| Server IP : 162.214.74.102 / Your IP : 216.73.217.114 Web Server : Apache System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64 User : lrsys ( 1015) PHP Version : 5.6.40 Disable Function : exec,passthru,shell_exec,system MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/lrsys/public_html/lrsys_apps/marisol/AR/ALT/ex/jsartoolkit5/ |
Upload File : |
// The Module object: Our interface to the outside world. We import
// and export values on it, and do the work to get that through
// closure compiler if necessary. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(Module) { ..generated code.. }
// 3. pre-run appended it, var Module = {}; ..generated code..
// 4. External script tag defines var Module.
// We need to do an eval in order to handle the closure compiler
// case, where this code here is minified but Module was defined
// elsewhere (e.g. case 4 above). We also need to check if Module
// already exists (e.g. case 3 above).
// Note that if you want to run closure, and also to use Module
// after the generated code, you will need to define var Module = {};
// before the code. Then that object will be used in the code, and you
// can continue to use Module afterwards as well.
var Module;
if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {};
// Sometimes an existing Module object exists with properties
// meant to overwrite the default module functionality. Here
// we collect those properties and reapply _after_ we configure
// the current environment's defaults to avoid having to be so
// defensive during initialization.
var moduleOverrides = {};
for (var key in Module) {
if (Module.hasOwnProperty(key)) {
moduleOverrides[key] = Module[key];
}
}
// The environment setup code below is customized to use Module.
// *** Environment setup code ***
var ENVIRONMENT_IS_WEB = typeof window === 'object';
// Three configurations we can be running in:
// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)
// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)
// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)
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) {
// Expose functionality in the same simple way that the shells work
// Note that we pollute the global namespace here, otherwise we break in node
if (!Module['print']) Module['print'] = function print(x) {
process['stdout'].write(x + '\n');
};
if (!Module['printErr']) Module['printErr'] = function printErr(x) {
process['stderr'].write(x + '\n');
};
var nodeFS = require('fs');
var nodePath = require('path');
Module['read'] = function read(filename, binary) {
filename = nodePath['normalize'](filename);
var ret = nodeFS['readFileSync'](filename);
// The path is absolute if the normalized version is the same as the resolved.
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) {
// suppress ExitStatus exceptions from showing an error
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; // not present in v8 or older sm
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 {
// Probably a worker, and without console.log. We can do very little here...
var TRY_USE_DUMP = false;
if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
dump(x);
}) : (function(x) {
// self.postMessage(x); // enable this if you want stdout to be sent as messages
}));
}
if (ENVIRONMENT_IS_WORKER) {
Module['load'] = importScripts;
}
if (typeof Module['setWindowTitle'] === 'undefined') {
Module['setWindowTitle'] = function(title) { document.title = title };
}
}
else {
// Unreachable because SHELL is dependant on the others
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';
}
// *** Environment setup code ***
// Closure helpers
Module.print = Module['print'];
Module.printErr = Module['printErr'];
// Callbacks
Module['preRun'] = [];
Module['postRun'] = [];
// Merge back in the overrides
for (var key in moduleOverrides) {
if (moduleOverrides.hasOwnProperty(key)) {
Module[key] = moduleOverrides[key];
}
}
// === Preamble library stuff ===
// Documentation for the public APIs defined in this file must be updated in:
// site/source/docs/api_reference/preamble.js.rst
// A prebuilt local version of the documentation is available at:
// site/build/text/docs/api_reference/preamble.js.txt
// You can also build docs locally as HTML or other formats in site/
// An online HTML version (which may be of a different version of Emscripten)
// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
//========================================
// Runtime code shared with compiler
//========================================
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; // A pointer
} 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') {
// move so the load is aligned
if (ptr & 7) {
assert((ptr & 7) === 4);
ptr += 4;
}
} else {
assert((ptr & 3) === 0);
}
return ptr;
},
getAlignSize: function (type, size, vararg) {
// we align i64s and doubles on 64-bit boundaries, unlike x86
if (!vararg && (type == 'i64' || type == 'double')) return 8;
if (!type) return Math.min(size, 8); // align structures internally to 64 bits
return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
},
dynCall: function (sig, ptr, args) {
if (args && args.length) {
assert(args.length == sig.length-1);
if (!args.splice) args = Array.prototype.slice.call(args);
args.splice(0, 0, ptr);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].apply(null, args);
} else {
assert(sig.length == 1);
assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\'');
return Module['dynCall_' + sig].call(null, ptr);
}
},
functionPointers: [],
addFunction: function (func) {
for (var i = 0; i < Runtime.functionPointers.length; i++) {
if (!Runtime.functionPointers[i]) {
Runtime.functionPointers[i] = func;
return 2*(1 + i);
}
}
throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
},
removeFunction: function (index) {
Runtime.functionPointers[(index-2)/2] = null;
},
warnOnce: function (text) {
if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
if (!Runtime.warnOnce.shown[text]) {
Runtime.warnOnce.shown[text] = 1;
Module.printErr(text);
}
},
funcWrappers: {},
getFuncWrapper: function (func, sig) {
assert(sig);
if (!Runtime.funcWrappers[sig]) {
Runtime.funcWrappers[sig] = {};
}
var sigCache = Runtime.funcWrappers[sig];
if (!sigCache[func]) {
sigCache[func] = function dynCall_wrapper() {
return Runtime.dynCall(sig, func, arguments);
};
}
return sigCache[func];
},
getCompilerSetting: function (name) {
throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work';
},
stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; },
staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; },
dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + (assert(DYNAMICTOP > 0),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;
//========================================
// Runtime essentials
//========================================
var __THREW__ = 0; // Used in checking for thrown exceptions.
var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
var EXITSTATUS = 0;
var undef = 0;
// tempInt is used for 32-bit signed values or smaller. tempBigInt is used
// for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
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;
// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
function getCFunc(ident) {
var func = Module['_' + ident]; // closure exported function
if (!func) {
try {
func = eval('_' + ident); // explicit lookup
} catch(e) {}
}
assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
return func;
}
var cwrap, ccall;
(function(){
var JSfuncs = {
// Helpers for cwrap -- it can't refer to Runtime directly because it might
// be renamed by closure, instead it calls JSfuncs['stackSave'].body to find
// out what the minified function name is.
'stackSave': function() {
Runtime.stackSave()
},
'stackRestore': function() {
Runtime.stackRestore()
},
// type conversion from js to c
'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) { // null string
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
ret = Runtime.stackAlloc((str.length << 2) + 1);
writeStringToMemory(str, ret);
}
return ret;
}
};
// For fast lookup of conversion functions
var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']};
// C calling interface.
ccall = function ccallFunc(ident, returnType, argTypes, args, opts) {
var func = getCFunc(ident);
var cArgs = [];
var stack = 0;
assert(returnType !== 'array', 'Return type should not be "array".');
if (args) {
for (var i = 0; i < args.length; i++) {
var converter = toC[argTypes[i]];
if (converter) {
if (stack === 0) stack = Runtime.stackSave();
cArgs[i] = converter(args[i]);
} else {
cArgs[i] = args[i];
}
}
}
var ret = func.apply(null, cArgs);
if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') {
assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall');
}
if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values');
if (returnType === '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) {
// Match the body and the return value of a javascript function source
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)) {
// Elements of toCsource are arrays of three items:
// the code, and the return value
JSsource[fun] = parseJSFunc(JSfuncs[fun]);
}
}
cwrap = function cwrap(ident, returnType, argTypes) {
argTypes = argTypes || [];
var cfunc = getCFunc(ident);
// When the function takes numbers and returns a number, we can just return
// the original function
var numericArgs = argTypes.every(function(type){ return type === 'number'});
var numericRet = (returnType !== 'string');
if ( numericRet && numericArgs) {
return cfunc;
}
// Creation of the arguments list (["$1","$2",...,"$nargs"])
var argNames = argTypes.map(function(x,i){return '$'+i});
var funcstr = "(function(" + argNames.join(',') + ") {";
var nargs = argTypes.length;
if (!numericArgs) {
// Generate the code needed to convert the arguments from javascript
// values to pointers
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']; // [code, return]
funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';';
funcstr += convertCode.body + ';';
funcstr += arg + '=' + convertCode.returnValue + ';';
}
}
// When the code is compressed, the name of cfunc is not literally 'cfunc' anymore
var cfuncname = parseJSFunc(function(){return cfunc}).returnValue;
// Call the function
funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');';
if (!numericRet) { // Return type can only by 'string' or 'number'
// Convert the result to a string
var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue;
funcstr += 'ret = ' + strgfy + '(ret);';
}
funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }";
if (!numericArgs) {
// If we had a stack, restore it
funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';';
}
funcstr += 'return ret})';
return eval(funcstr);
};
})();
Module["ccall"] = ccall;
Module["cwrap"] = cwrap;
function setValue(ptr, value, type, noSafe) {
type = type || 'i8';
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
switch(type) {
case 'i1': HEAP8[((ptr)>>0)]=value; break;
case 'i8': HEAP8[((ptr)>>0)]=value; break;
case 'i16': HEAP16[((ptr)>>1)]=value; break;
case 'i32': HEAP32[((ptr)>>2)]=value; break;
case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
case 'float': HEAPF32[((ptr)>>2)]=value; break;
case 'double': HEAPF64[((ptr)>>3)]=value; break;
default: abort('invalid type for setValue: ' + type);
}
}
Module["setValue"] = setValue;
function getValue(ptr, type, noSafe) {
type = type || 'i8';
if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
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; // Tries to use _malloc()
var ALLOC_STACK = 1; // Lives for the duration of the current function call
var ALLOC_STATIC = 2; // Cannot be freed
var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
var ALLOC_NONE = 4; // Do not allocate
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;
// allocate(): This is for internal use. You can use it yourself as well, but the interface
// is a little tricky (see docs right below). The reason is that it is optimized
// for multiple syntaxes to save space in generated code. So you should
// normally not use allocate(), and instead allocate memory using _malloc(),
// initialize it with setValue(), and so forth.
// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
// in *bytes* (note that this is sometimes confusing: the next parameter does not
// affect this!)
// @types: Either an array of types, one for each byte (or 0 if no type at that position),
// or a single type which is used for the entire block. This only matters if there
// is initial data - if @slab is a number, then this does not matter at all and is
// ignored.
// @allocator: How to allocate memory, see ALLOC_*
function allocate(slab, types, allocator, ptr) {
var zeroinit, size;
if (typeof slab === 'number') {
zeroinit = true;
size = slab;
} else {
zeroinit = false;
size = slab.length;
}
var singleType = typeof types === 'string' ? types : null;
var ret;
if (allocator == ALLOC_NONE) {
ret = ptr;
} else {
ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
}
if (zeroinit) {
var ptr = ret, stop;
assert((ret & 3) == 0);
stop = ret + (size & ~3);
for (; ptr < stop; ptr += 4) {
HEAP32[((ptr)>>2)]=0;
}
stop = ret + size;
while (ptr < stop) {
HEAP8[((ptr++)>>0)]=0;
}
return ret;
}
if (singleType === 'i8') {
if (slab.subarray || slab.slice) {
HEAPU8.set(slab, ret);
} else {
HEAPU8.set(new Uint8Array(slab), ret);
}
return ret;
}
var i = 0, type, typeSize, previousType;
while (i < size) {
var curr = slab[i];
if (typeof curr === 'function') {
curr = Runtime.getFunctionIndex(curr);
}
type = singleType || types[i];
if (type === 0) {
i++;
continue;
}
assert(type, 'Must know what type to store in allocate!');
if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
setValue(ret+i, curr, type);
// no need to look up size unless type changes, so cache it
if (previousType !== type) {
typeSize = Runtime.getNativeTypeSize(type);
previousType = type;
}
i += typeSize;
}
return ret;
}
Module["allocate"] = allocate;
// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready
function getMemory(size) {
if (!staticSealed) return Runtime.staticAlloc(size);
if ((typeof _sbrk !== 'undefined' && !_sbrk.called) || !runtimeInitialized) return Runtime.dynamicAlloc(size);
return _malloc(size);
}
Module["getMemory"] = getMemory;
function Pointer_stringify(ptr, /* optional */ length) {
if (length === 0 || !ptr) return '';
// TODO: use TextDecoder
// Find the length, and check for UTF while doing so
var hasUtf = 0;
var t;
var i = 0;
while (1) {
assert(ptr + i < TOTAL_MEMORY);
t = HEAPU8[(((ptr)+(i))>>0)];
hasUtf |= t;
if (t == 0 && !length) break;
i++;
if (length && i == length) break;
}
if (!length) length = i;
var ret = '';
if (hasUtf < 128) {
var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
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;
// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function AsciiToString(ptr) {
var str = '';
while (1) {
var ch = HEAP8[((ptr++)>>0)];
if (!ch) return str;
str += String.fromCharCode(ch);
}
}
Module["AsciiToString"] = AsciiToString;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.
function stringToAscii(str, outPtr) {
return writeAsciiToMemory(str, outPtr, false);
}
Module["stringToAscii"] = stringToAscii;
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns
// a copy of that string as a Javascript String object.
function UTF8ArrayToString(u8Array, idx) {
var u0, u1, u2, u3, u4, u5;
var str = '';
while (1) {
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
u0 = u8Array[idx++];
if (!u0) return str;
if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
u1 = u8Array[idx++] & 63;
if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
u2 = u8Array[idx++] & 63;
if ((u0 & 0xF0) == 0xE0) {
u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
} else {
u3 = u8Array[idx++] & 63;
if ((u0 & 0xF8) == 0xF0) {
u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3;
} else {
u4 = u8Array[idx++] & 63;
if ((u0 & 0xFC) == 0xF8) {
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 < 0x10000) {
str += String.fromCharCode(u0);
} else {
var ch = u0 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
}
}
}
Module["UTF8ArrayToString"] = UTF8ArrayToString;
// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function UTF8ToString(ptr) {
return UTF8ArrayToString(HEAPU8,ptr);
}
Module["UTF8ToString"] = UTF8ToString;
// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.
// outIdx: The starting offset in the array to begin the copying.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.
// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
return 0;
var startIdx = outIdx;
var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
var u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
if (outIdx >= endIdx) break;
outU8Array[outIdx++] = u;
} else if (u <= 0x7FF) {
if (outIdx + 1 >= endIdx) break;
outU8Array[outIdx++] = 0xC0 | (u >> 6);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0xFFFF) {
if (outIdx + 2 >= endIdx) break;
outU8Array[outIdx++] = 0xE0 | (u >> 12);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x1FFFFF) {
if (outIdx + 3 >= endIdx) break;
outU8Array[outIdx++] = 0xF0 | (u >> 18);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else if (u <= 0x3FFFFFF) {
if (outIdx + 4 >= endIdx) break;
outU8Array[outIdx++] = 0xF8 | (u >> 24);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
} else {
if (outIdx + 5 >= endIdx) break;
outU8Array[outIdx++] = 0xFC | (u >> 30);
outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
outU8Array[outIdx++] = 0x80 | (u & 63);
}
}
// Null-terminate the pointer to the buffer.
outU8Array[outIdx] = 0;
return outIdx - startIdx;
}
Module["stringToUTF8Array"] = stringToUTF8Array;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.
// Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF8(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
}
Module["stringToUTF8"] = stringToUTF8;
// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF8(str) {
var len = 0;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var u = str.charCodeAt(i); // possibly a lead surrogate
if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
if (u <= 0x7F) {
++len;
} else if (u <= 0x7FF) {
len += 2;
} else if (u <= 0xFFFF) {
len += 3;
} else if (u <= 0x1FFFFF) {
len += 4;
} else if (u <= 0x3FFFFFF) {
len += 5;
} else {
len += 6;
}
}
return len;
}
Module["lengthBytesUTF8"] = lengthBytesUTF8;
// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
// a copy of that string as a Javascript String object.
function UTF16ToString(ptr) {
var i = 0;
var str = '';
while (1) {
var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
if (codeUnit == 0)
return str;
++i;
// fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
str += String.fromCharCode(codeUnit);
}
}
Module["UTF16ToString"] = UTF16ToString;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.
// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.
// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF16(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 0x7FFFFFFF;
}
if (maxBytesToWrite < 2) return 0;
maxBytesToWrite -= 2; // Null terminator.
var startPtr = outPtr;
var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;
for (var i = 0; i < numCharsToWrite; ++i) {
// charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
HEAP16[((outPtr)>>1)]=codeUnit;
outPtr += 2;
}
// Null-terminate the pointer to the HEAP.
HEAP16[((outPtr)>>1)]=0;
return outPtr - startPtr;
}
Module["stringToUTF16"] = stringToUTF16;
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
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;
// Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
// See http://unicode.org/faq/utf_bom.html#utf16-3
if (utf32 >= 0x10000) {
var ch = utf32 - 0x10000;
str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
} else {
str += String.fromCharCode(utf32);
}
}
}
Module["UTF32ToString"] = UTF32ToString;
// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.
// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.
// Parameters:
// str: the Javascript string to copy.
// outPtr: Byte address in Emscripten HEAP where to write the string to.
// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.
// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.
// Returns the number of bytes written, EXCLUDING the null terminator.
function stringToUTF32(str, outPtr, maxBytesToWrite) {
assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');
// Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
if (maxBytesToWrite === undefined) {
maxBytesToWrite = 0x7FFFFFFF;
}
if (maxBytesToWrite < 4) return 0;
var startPtr = outPtr;
var endPtr = startPtr + maxBytesToWrite - 4;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
var trailSurrogate = str.charCodeAt(++i);
codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
}
HEAP32[((outPtr)>>2)]=codeUnit;
outPtr += 4;
if (outPtr + 4 > endPtr) break;
}
// Null-terminate the pointer to the HEAP.
HEAP32[((outPtr)>>2)]=0;
return outPtr - startPtr;
}
Module["stringToUTF32"] = stringToUTF32;
// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
function lengthBytesUTF32(str) {
var len = 0;
for (var i = 0; i < str.length; ++i) {
// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
// See http://unicode.org/faq/utf_bom.html#utf16-3
var codeUnit = str.charCodeAt(i);
if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.
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);
}
// otherwise, libcxxabi failed, we can try ours which may return a partial result
} catch(e) {
// failure when using libcxxabi, we can try ours which may return a partial result
} finally {
if (buf) _free(buf);
if (status) _free(status);
if (ret) _free(ret);
}
}
var i = 3;
// params, etc.
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) {
//return;
if (x) Module.print(x);
Module.print(func);
var pre = '';
for (var a = 0; a < i; a++) pre += ' ';
Module.print (pre + '^');
}
function parseNested() {
i++;
if (func[i] === 'K') i++; // ignore const
var parts = [];
while (func[i] !== 'E') {
if (func[i] === 'S') { // substitution
i++;
var next = func.indexOf('_', i);
var num = func.substring(i, next) || 0;
parts.push(subs[num] || '?');
i = next+1;
continue;
}
if (func[i] === 'C') { // constructor
parts.push(parts[parts.length-1]);
i += 2;
continue;
}
var size = parseInt(func.substr(i));
var pre = size.toString().length;
if (!size || !pre) { i--; break; } // counter i++ below us
var curr = func.substr(i + pre, size);
parts.push(curr);
subs.push(curr);
i += pre + size;
}
i++; // skip E
return parts;
}
function parse(rawList, limit, allowVoid) { // main parser
limit = limit || Infinity;
var ret = '', list = [];
function flushList() {
return '(' + list.join(', ') + ')';
}
var name;
if (func[i] === 'N') {
// namespaced N-E
name = parseNested().join('::');
limit--;
if (limit === 0) return rawList ? [name] : name;
} else {
// not namespaced
if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L'
var size = parseInt(func.substr(i));
if (size) {
var pre = size.toString().length;
name = func.substr(i + pre, size);
i += pre + size;
}
}
first = false;
if (func[i] === 'I') {
i++;
var iList = parse(true);
var iRet = parse(true, 1, true);
ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>';
} else {
ret = name;
}
paramLoop: while (i < func.length && limit-- > 0) {
//dump('paramLoop');
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; // pointer
case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference
case 'L': { // literal
i++; // skip basic type
var end = func.indexOf('E', i);
var size = end - i;
list.push(func.substr(i, size));
i += size + 2; // size + 'EE'
break;
}
case 'A': { // array
var size = parseInt(func.substr(i));
i += size.toString().length;
if (func[i] !== '_') throw '?';
i++; // skip _
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 = []; // avoid (void)
if (rawList) {
if (ret) {
list.push(ret + '?');
}
return list;
} else {
return ret + flushList();
}
}
var parsed = func;
try {
// Special-case the entry point, since its name differs from other name mangling.
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; // C function
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) {
// IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,
// so try that as a special-case.
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;
// Memory management
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; // static area
var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
function enlargeMemory() {
// TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top.
assert(DYNAMICTOP >= TOTAL_MEMORY);
assert(TOTAL_MEMORY > 4); // So the loop below will not be infinite
var OLD_TOTAL_MEMORY = TOTAL_MEMORY;
var LIMIT = Math.pow(2, 31); // 2GB is a practical maximum, as we use signed ints as pointers
// and JS engines seem unhappy to give us 2GB arrays currently
if (DYNAMICTOP >= LIMIT) return false;
while (TOTAL_MEMORY <= DYNAMICTOP) { // Simple heuristic.
if (TOTAL_MEMORY < LIMIT/2) {
TOTAL_MEMORY = alignMemoryPage(2*TOTAL_MEMORY); // double until 1GB
} else {
var last = TOTAL_MEMORY;
TOTAL_MEMORY = alignMemoryPage((3*TOTAL_MEMORY + LIMIT)/4); // add smaller increments towards 2GB, which we cannot reach
if (TOTAL_MEMORY <= last) return false;
}
}
TOTAL_MEMORY = Math.max(TOTAL_MEMORY, 16*1024*1024);
if (TOTAL_MEMORY >= LIMIT) return false;
Module.printErr('Warning: Enlarging memory arrays, this is not fast! ' + [OLD_TOTAL_MEMORY, TOTAL_MEMORY]);
var start = Date.now();
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;
// everything worked
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);
}
Module.printErr('enlarged memory arrays from ' + OLD_TOTAL_MEMORY + ' to ' + TOTAL_MEMORY + ', took ' + (Date.now() - start) + ' ms (has ArrayBuffer.transfer? ' + (!!ArrayBuffer.transfer) + ')');
return true;
}
var byteLength;
try {
byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get);
byteLength(new ArrayBuffer(4)); // can fail on older ie
} catch(e) { // can fail on older node/v8
byteLength = function(buffer) { return buffer.byteLength; };
}
var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 268435456;
var totalMemory = 64*1024;
while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) {
if (totalMemory < 16*1024*1024) {
totalMemory *= 2;
} else {
totalMemory += 16*1024*1024
}
}
totalMemory = Math.max(totalMemory, 16*1024*1024);
if (totalMemory !== TOTAL_MEMORY) {
Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be compliant with the asm.js spec (and given that TOTAL_STACK=' + TOTAL_STACK + ')');
TOTAL_MEMORY = totalMemory;
}
// Initialize the runtime's memory
// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
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);
// Endianness check (note: assumes compiler arch was little-endian)
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 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__ = []; // functions called before the runtime is initialized
var __ATINIT__ = []; // functions called during startup
var __ATMAIN__ = []; // functions called when main() is to be run
var __ATEXIT__ = []; // functions called during shutdown
var __ATPOSTRUN__ = []; // functions called after the runtime has exited
var runtimeInitialized = false;
var runtimeExited = false;
function preRun() {
// compatibility - merge in anything from Module['preRun'] at this time
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() {
// compatibility - merge in anything from Module['postRun'] at this time
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;
// Tools
function intArrayFromString(stringy, dontAddNull, length /* optional */) {
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; i < array.length; i++) {
var chr = array[i];
if (chr > 0xFF) {
assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');
chr &= 0xFF;
}
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 < array.length) {
var chr = array[i];
HEAP8[(((buffer)+(i))>>0)]=chr;
i = i + 1;
}
}
Module["writeStringToMemory"] = writeStringToMemory;
function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
HEAP8[((buffer++)>>0)]=array[i];
}
}
Module["writeArrayToMemory"] = writeArrayToMemory;
function writeAsciiToMemory(str, buffer, dontAddNull) {
for (var i = 0; i < str.length; ++i) {
assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff);
HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
}
// Null-terminate the pointer to the HEAP.
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 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
: Math.pow(2, bits) + value;
}
function reSign(value, bits, ignore) {
if (value <= 0) {
return value;
}
var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
: Math.pow(2, bits-1);
if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
// but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
// TODO: In i64 mode 1, resign the two parts separately and safely
value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
}
return value;
}
// check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) {
var ah = a >>> 16;
var al = a & 0xffff;
var bh = b >>> 16;
var bl = b & 0xffff;
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;
// A counter of dependencies for calling run(). If we need to
// do asynchronous work before running, increment this and
// decrement it. Incrementing must happen in a place like
// PRE_RUN_ADDITIONS (used by emcc to add file preloading).
// Note that you can add dependencies in preRun, even though
// it happens right before run - run will be postponed until
// the dependencies are met.
var runDependencies = 0;
var runDependencyWatcher = null;
var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
var runDependencyTracking = {};
function getUniqueRunDependency(id) {
var orig = id;
while (1) {
if (!runDependencyTracking[id]) return id;
id = orig + Math.random();
}
return id;
}
function addRunDependency(id) {
runDependencies++;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(!runDependencyTracking[id]);
runDependencyTracking[id] = 1;
if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
// Check for missing dependencies every few seconds
runDependencyWatcher = setInterval(function() {
if (ABORT) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
return;
}
var shown = false;
for (var dep in runDependencyTracking) {
if (!shown) {
shown = true;
Module.printErr('still waiting on run dependencies:');
}
Module.printErr('dependency: ' + dep);
}
if (shown) {
Module.printErr('(end of list)');
}
}, 10000);
}
} else {
Module.printErr('warning: run dependency added without ID');
}
}
Module["addRunDependency"] = addRunDependency;
function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
if (id) {
assert(runDependencyTracking[id]);
delete runDependencyTracking[id];
} else {
Module.printErr('warning: run dependency removed without ID');
}
if (runDependencies == 0) {
if (runDependencyWatcher !== null) {
clearInterval(runDependencyWatcher);
runDependencyWatcher = null;
}
if (dependenciesFulfilled) {
var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
callback(); // can add another dependenciesFulfilled
}
}
}
Module["removeRunDependency"] = removeRunDependency;
Module["preloadedImages"] = {}; // maps url to image data
Module["preloadedAudios"] = {}; // maps url to audio data
var memoryInitializer = null;
// === Body ===
var ASM_CONSTS = [function($0, $1, $2, $3) { { if (!artoolkit["multiEachMarkerInfo"]) { artoolkit["multiEachMarkerInfo"] = ({}); } var multiEachMarker = artoolkit["multiEachMarkerInfo"]; multiEachMarker['visible'] = $0; multiEachMarker['pattId'] = $1; multiEachMarker['pattType'] = $2; multiEachMarker['width'] = $3; } },
function($0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32) { { var $a = arguments; var i = 12; if (!artoolkit["markerInfo"]) { artoolkit["markerInfo"] = ({ pos: [0,0], line: [[0,0,0], [0,0,0], [0,0,0], [0,0,0]], vertex: [[0,0], [0,0], [0,0], [0,0]] }); } var markerInfo = artoolkit["markerInfo"]; markerInfo["area"] = $0; markerInfo["id"] = $1; markerInfo["idPatt"] = $2; markerInfo["idMatrix"] = $3; markerInfo["dir"] = $4; markerInfo["dirPatt"] = $5; markerInfo["dirMatrix"] = $6; markerInfo["cf"] = $7; markerInfo["cfPatt"] = $8; markerInfo["cfMatrix"] = $9; markerInfo["pos"][0] = $10; markerInfo["pos"][1] = $11; markerInfo["line"][0][0] = $a[i++]; markerInfo["line"][0][1] = $a[i++]; markerInfo["line"][0][2] = $a[i++]; markerInfo["line"][1][0] = $a[i++]; markerInfo["line"][1][1] = $a[i++]; markerInfo["line"][1][2] = $a[i++]; markerInfo["line"][2][0] = $a[i++]; markerInfo["line"][2][1] = $a[i++]; markerInfo["line"][2][2] = $a[i++]; markerInfo["line"][3][0] = $a[i++]; markerInfo["line"][3][1] = $a[i++]; markerInfo["line"][3][2] = $a[i++]; markerInfo["vertex"][0][0] = $a[i++]; markerInfo["vertex"][0][1] = $a[i++]; markerInfo["vertex"][1][0] = $a[i++]; markerInfo["vertex"][1][1] = $a[i++]; markerInfo["vertex"][2][0] = $a[i++]; markerInfo["vertex"][2][1] = $a[i++]; markerInfo["vertex"][3][0] = $a[i++]; markerInfo["vertex"][3][1] = $a[i++]; markerInfo["errorCorrected"] = $a[i++]; } },
function($0, $1, $2, $3, $4) { { if (!artoolkit["frameMalloc"]) { artoolkit["frameMalloc"] = ({}); } var frameMalloc = artoolkit["frameMalloc"]; frameMalloc["framepointer"] = $1; frameMalloc["framesize"] = $2; frameMalloc["camera"] = $3; frameMalloc["transform"] = $4; } }];
function _emscripten_asm_const_33(code, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32) {
return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32);
}
function _emscripten_asm_const_4(code, a0, a1, a2, a3) {
return ASM_CONSTS[code](a0, a1, a2, a3);
}
function _emscripten_asm_const_5(code, a0, a1, a2, a3, a4) {
return ASM_CONSTS[code](a0, a1, a2, a3, a4);
}
STATIC_BASE = 8;
STATICTOP = STATIC_BASE + 18336;
/* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_ARToolKitJS_cpp() } }, { func: function() { __GLOBAL__sub_I_bind_cpp() } });
/* memory initializer */ allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,9,0,0,52,42,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,228,8,0,0,115,42,0,0,52,9,0,0,12,47,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,52,9,0,0,205,46,0,0,0,0,0,0,1,0,0,0,128,1,0,0,0,0,0,0,228,8,0,0,186,46,0,0,228,8,0,0,155,46,0,0,228,8,0,0,194,45,0,0,228,8,0,0,163,45,0,0,228,8,0,0,132,45,0,0,228,8,0,0,101,45,0,0,228,8,0,0,70,45,0,0,228,8,0,0,225,45,0,0,228,8,0,0,0,46,0,0,228,8,0,0,31,46,0,0,228,8,0,0,62,46,0,0,228,8,0,0,93,46,0,0,228,8,0,0,124,46,0,0,12,9,0,0,75,47,0,0,48,2,0,0,0,0,0,0,228,8,0,0,88,47,0,0,228,8,0,0,101,47,0,0,12,9,0,0,114,47,0,0,56,2,0,0,0,0,0,0,12,9,0,0,147,47,0,0,64,2,0,0,0,0,0,0,12,9,0,0,181,47,0,0,64,2,0,0,0,0,0,0,200,8,0,0,221,47,0,0,200,8,0,0,223,47,0,0,200,8,0,0,225,47,0,0,200,8,0,0,227,47,0,0,200,8,0,0,229,47,0,0,200,8,0,0,231,47,0,0,200,8,0,0,233,47,0,0,200,8,0,0,235,47,0,0,200,8,0,0,237,47,0,0,200,8,0,0,14,54,0,0,200,8,0,0,239,47,0,0,200,8,0,0,241,47,0,0,200,8,0,0,243,47,0,0,12,9,0,0,245,47,0,0,80,2,0,0,0,0,0,0,12,9,0,0,26,48,0,0,80,2,0,0,0,0,0,0,255,15,0,0,6,16,0,0,18,16,0,0,28,16,0,0,255,255,255,255,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,11,0,0,0,5,0,0,0,10,0,0,0,7,0,0,0,14,0,0,0,15,0,0,0,13,0,0,0,9,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,3,0,0,0,6,0,0,0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0,0,67,0,0,0,5,0,0,0,10,0,0,0,20,0,0,0,40,0,0,0,80,0,0,0,35,0,0,0,70,0,0,0,15,0,0,0,30,0,0,0,60,0,0,0,120,0,0,0,115,0,0,0,101,0,0,0,73,0,0,0,17,0,0,0,34,0,0,0,68,0,0,0,11,0,0,0,22,0,0,0,44,0,0,0,88,0,0,0,51,0,0,0,102,0,0,0,79,0,0,0,29,0,0,0,58,0,0,0,116,0,0,0,107,0,0,0,85,0,0,0,41,0,0,0,82,0,0,0,39,0,0,0,78,0,0,0,31,0,0,0,62,0,0,0,124,0,0,0,123,0,0,0,117,0,0,0,105,0,0,0,81,0,0,0,33,0,0,0,66,0,0,0,7,0,0,0,14,0,0,0,28,0,0,0,56,0,0,0,112,0,0,0,99,0,0,0,69,0,0,0,9,0,0,0,18,0,0,0,36,0,0,0,72,0,0,0,19,0,0,0,38,0,0,0,76,0,0,0,27,0,0,0,54,0,0,0,108,0,0,0,91,0,0,0,53,0,0,0,106,0,0,0,87,0,0,0,45,0,0,0,90,0,0,0,55,0,0,0,110,0,0,0,95,0,0,0,61,0,0,0,122,0,0,0,119,0,0,0,109,0,0,0,89,0,0,0,49,0,0,0,98,0,0,0,71,0,0,0,13,0,0,0,26,0,0,0,52,0,0,0,104,0,0,0,83,0,0,0,37,0,0,0,74,0,0,0,23,0,0,0,46,0,0,0,92,0,0,0,59,0,0,0,118,0,0,0,111,0,0,0,93,0,0,0,57,0,0,0,114,0,0,0,103,0,0,0,77,0,0,0,25,0,0,0,50,0,0,0,100,0,0,0,75,0,0,0,21,0,0,0,42,0,0,0,84,0,0,0,43,0,0,0,86,0,0,0,47,0,0,0,94,0,0,0,63,0,0,0,126,0,0,0,127,0,0,0,125,0,0,0,121,0,0,0,113,0,0,0,97,0,0,0,65,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,8,0,0,0,5,0,0,0,10,0,0,0,3,0,0,0,14,0,0,0,9,0,0,0,7,0,0,0,6,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,14,0,0,0,8,0,0,0,56,0,0,0,3,0,0,0,63,0,0,0,15,0,0,0,31,0,0,0,9,0,0,0,90,0,0,0,57,0,0,0,21,0,0,0,4,0,0,0,28,0,0,0,64,0,0,0,67,0,0,0,16,0,0,0,112,0,0,0,32,0,0,0,97,0,0,0,10,0,0,0,108,0,0,0,91,0,0,0,70,0,0,0,58,0,0,0,38,0,0,0,22,0,0,0,47,0,0,0,5,0,0,0,54,0,0,0,29,0,0,0,19,0,0,0,65,0,0,0,95,0,0,0,68,0,0,0,45,0,0,0,17,0,0,0,43,0,0,0,113,0,0,0,115,0,0,0,33,0,0,0,77,0,0,0,98,0,0,0,117,0,0,0,11,0,0,0,87,0,0,0,109,0,0,0,35,0,0,0,92,0,0,0,74,0,0,0,71,0,0,0,79,0,0,0,59,0,0,0,104,0,0,0,39,0,0,0,100,0,0,0,23,0,0,0,82,0,0,0,48,0,0,0,119,0,0,0,6,0,0,0,126,0,0,0,55,0,0,0,13,0,0,0,30,0,0,0,62,0,0,0,20,0,0,0,89,0,0,0,66,0,0,0,27,0,0,0,96,0,0,0,111,0,0,0,69,0,0,0,107,0,0,0,46,0,0,0,37,0,0,0,18,0,0,0,53,0,0,0,44,0,0,0,94,0,0,0,114,0,0,0,42,0,0,0,116,0,0,0,76,0,0,0,34,0,0,0,86,0,0,0,78,0,0,0,73,0,0,0,99,0,0,0,103,0,0,0,118,0,0,0,81,0,0,0,12,0,0,0,125,0,0,0,88,0,0,0,61,0,0,0,110,0,0,0,26,0,0,0,36,0,0,0,106,0,0,0,93,0,0,0,52,0,0,0,75,0,0,0,41,0,0,0,72,0,0,0,85,0,0,0,80,0,0,0,102,0,0,0,60,0,0,0,124,0,0,0,105,0,0,0,25,0,0,0,40,0,0,0,51,0,0,0,101,0,0,0,84,0,0,0,24,0,0,0,123,0,0,0,83,0,0,0,50,0,0,0,49,0,0,0,122,0,0,0,120,0,0,0,121,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,136,0,0,0,5,0,0,0,144,0,0,0,6,0,0,0,152,0,0,0,9,0,0,0,176,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,253,255,255,255,254,255,255,255,0,0,0,0,112,2,0,0,168,2,0,0,200,2,0,0,112,2,0,0,168,2,0,0,168,2,0,0,208,2,0,0,168,2,0,0,112,2,0,0,168,2,0,0,208,2,0,0,168,2,0,0,112,2,0,0,168,2,0,0,168,2,0,0,104,1,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,104,1,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,168,2,0,0,0,0,0,0,32,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,96,2,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,0,0,0,0,80,2,0,0,3,0,0,0,7,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,216,2,0,0,3,0,0,0,8,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,2,0,0,3,0,0,0,9,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,240,10,0,0,96,11,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,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,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,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,139,69,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,5,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,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,131,65,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,2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,211,0,0,0,1,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0,23,0,0,0,29,0,0,0,31,0,0,0,37,0,0,0,41,0,0,0,43,0,0,0,47,0,0,0,53,0,0,0,59,0,0,0,61,0,0,0,67,0,0,0,71,0,0,0,73,0,0,0,79,0,0,0,83,0,0,0,89,0,0,0,97,0,0,0,101,0,0,0,103,0,0,0,107,0,0,0,109,0,0,0,113,0,0,0,121,0,0,0,127,0,0,0,131,0,0,0,137,0,0,0,139,0,0,0,143,0,0,0,149,0,0,0,151,0,0,0,157,0,0,0,163,0,0,0,167,0,0,0,169,0,0,0,173,0,0,0,179,0,0,0,181,0,0,0,187,0,0,0,191,0,0,0,193,0,0,0,197,0,0,0,199,0,0,0,209,0,0,0,69,114,114,111,114,58,32,108,97,98,101,108,105,110,103,32,119,111,114,107,32,111,118,101,114,102,108,111,119,46,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,40,37,100,41,32,114,101,113,117,101,115,116,101,100,46,10,0,85,110,107,110,111,119,110,32,111,114,32,117,110,115,117,112,112,111,114,116,101,100,32,108,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,114,101,113,117,101,115,116,101,100,46,32,83,101,116,32,116,111,32,109,97,110,117,97,108,46,10,0,76,97,98,101,108,105,110,103,32,116,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,46,10,0,77,65,78,85,65,76,0,65,85,84,79,95,77,69,68,73,65,78,0,65,85,84,79,95,79,84,83,85,0,65,85,84,79,95,65,68,65,80,84,73,86,69,65,85,84,79,95,66,82,65,67,75,69,84,73,78,71,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,109,97,114,107,101,114,32,99,111,117,110,116,115,32,45,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,32,91,37,51,100,58,32,37,51,100,93,43,46,10,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,98,114,97,99,107,101,116,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,109,101,100,105,97,110,0,79,116,115,117,0,65,117,116,111,32,116,104,114,101,115,104,111,108,100,32,40,37,115,41,32,97,100,106,117,115,116,101,100,32,116,104,114,101,115,104,111,108,100,32,116,111,32,37,100,46,10,0,63,63,63,32,49,10,0,63,63,63,32,50,10,0,63,63,63,32,51,10,0,69,114,114,111,114,58,32,85,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,32,112,97,115,115,101,100,32,116,111,32,97,114,73,109,97,103,101,80,114,111,99,72,105,115,116,40,41,46,10,0,0,0,0,1,0,1,1,1,0,2,4,255,255,5,3,1,0,2,255,6,7,255,3,1,2,2,3,2,3,2,3,3,0,255,4,6,7,5,255,1,4,5,4,4,5,5,4,5,7,6,6,6,7,7,7,6,255,2,4,6,7,5,3,255,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,255,255,3,255,5,6,255,255,9,10,255,12,255,255,15,255,17,18,255,20,255,255,23,24,255,255,27,255,29,30,255,255,1,2,255,4,255,255,7,8,255,255,11,255,13,14,255,16,255,255,19,255,21,22,255,255,25,26,255,28,255,255,31,69,114,114,111,114,58,32,117,110,115,117,112,112,111,114,116,101,100,32,112,105,120,101,108,32,102,111,114,109,97,116,46,10,0,69,114,114,111,114,58,32,78,85,76,76,32,112,97,116,116,72,97,110,100,108,101,46,10,0,69,114,114,111,114,58,32,99,97,110,39,116,32,108,111,97,100,32,112,97,116,116,101,114,110,32,102,114,111,109,32,78,85,76,76,32,98,117,102,102,101,114,46,10,0,69,114,114,111,114,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,46,10,0,32,9,10,13,0,80,97,116,116,101,114,110,32,68,97,116,97,32,114,101,97,100,32,101,114,114,111,114,33,33,10,0,69,114,114,111,114,32,111,112,101,110,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,114,101,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,39,37,115,39,46,10,0,114,98,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,115,32,102,105,108,101,32,34,37,115,34,32,102,111,114,32,114,101,97,100,105,110,103,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,102,105,108,101,32,108,101,110,103,116,104,46,0,69,114,114,111,114,58,32,115,117,112,112,108,105,101,100,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,97,112,112,101,97,114,32,116,111,32,98,101,32,97,110,32,65,82,84,111,111,108,75,105,116,32,99,97,109,101,114,97,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,46,10,0,69,114,114,111,114,32,40,37,100,41,58,32,117,110,97,98,108,101,32,116,111,32,114,101,97,100,32,102,114,111,109,32,102,105,108,101,46,0,69,114,114,111,114,58,32,105,99,112,71,101,116,74,95,85,95,88,99,0,69,114,114,111,114,58,32,109,97,108,108,111,99,10,0,69,114,114,111,114,32,49,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,50,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,51,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,52,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,53,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,54,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,69,114,114,111,114,32,55,58,32,105,99,112,71,101,116,73,110,105,116,88,119,50,88,99,10,0,114,0,69,114,114,111,114,58,32,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,46,10,0,37,115,37,115,10,0,37,100,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,110,117,109,98,101,114,32,111,102,32,109,97,114,107,101,114,32,99,111,110,102,105,103,115,32,116,111,32,114,101,97,100,46,10,0,79,117,116,32,111,102,32,109,101,109,111,114,121,33,33,10,0,37,108,108,117,37,99,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,112,97,116,116,101,114,110,32,39,37,115,39,32,115,112,101,99,105,102,105,101,100,32,105,110,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,104,105,108,101,32,105,110,32,98,97,114,99,111,100,101,45,111,110,108,121,32,109,111,100,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,100,101,116,101,114,109,105,110,101,32,100,105,114,101,99,116,111,114,121,32,110,97,109,101,46,10,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,58,32,85,110,97,98,108,101,32,116,111,32,108,111,97,100,32,112,97,116,116,101,114,110,32,39,37,115,39,46,10,0,37,108,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,70,105,114,115,116,32,108,105,110,101,32,109,117,115,116,32,98,101,32,112,97,116,116,101,114,110,32,119,105,100,116,104,46,10,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,37,102,32,37,102,0,69,114,114,111,114,32,112,114,111,99,101,115,115,105,110,103,32,109,117,108,116,105,109,97,114,107,101,114,32,99,111,110,102,105,103,32,102,105,108,101,32,39,37,115,39,44,32,109,97,114,107,101,114,32,100,101,102,105,110,105,116,105,111,110,32,37,51,100,58,32,76,105,110,101,115,32,50,32,45,32,52,32,109,117,115,116,32,98,101,32,109,97,114,107,101,114,32,116,114,97,110,115,102,111,114,109,46,10,0,97,114,103,108,67,97,109,101,114,97,70,114,117,115,116,117,109,40,41,58,32,97,114,80,97,114,97,109,68,101,99,111,109,112,77,97,116,40,41,32,105,110,100,105,99,97,116,101,100,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,46,10,0,108,111,97,100,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,114,97,109,101,116,101,114,32,102,105,108,101,32,37,115,32,102,111,114,32,99,97,109,101,114,97,46,10,0,42,42,42,32,67,97,109,101,114,97,32,80,97,114,97,109,101,116,101,114,32,114,101,115,105,122,101,100,32,102,114,111,109,32,37,100,44,32,37,100,46,32,42,42,42,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,114,97,109,76,84,67,114,101,97,116,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,58,32,97,114,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,115,101,116,67,97,109,101,114,97,40,41,58,32,69,114,114,111,114,32,99,114,101,97,116,105,110,103,32,51,68,32,104,97,110,100,108,101,0,108,111,97,100,77,97,114,107,101,114,40,41,58,32,69,114,114,111,114,32,108,111,97,100,105,110,103,32,112,97,116,116,101,114,110,32,102,105,108,101,32,37,115,46,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,97,114,107,101,114,46,10,0,99,111,110,102,105,103,32,100,97,116,97,32,108,111,97,100,32,101,114,114,111,114,32,33,33,10,0,65,82,84,111,111,108,75,105,116,74,83,40,41,58,32,85,110,97,98,108,101,32,116,111,32,115,101,116,32,117,112,32,65,82,32,109,117,108,116,105,109,97,114,107,101,114,46,10,0,80,97,116,116,101,114,110,32,100,101,116,101,99,116,105,111,110,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,80,97,116,116,101,114,110,32,114,97,116,105,111,32,115,105,122,101,32,115,101,116,32,116,111,32,37,102,46,10,0,76,97,98,101,108,105,110,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,115,101,116,32,116,111,32,37,100,10,0,84,104,114,101,115,104,111,108,100,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,10,0,111,110,46,0,111,102,102,46,0,68,101,98,117,103,32,109,111,100,101,32,115,101,116,32,116,111,32,37,115,10,0,73,109,97,103,101,32,112,114,111,99,46,32,109,111,100,101,32,115,101,116,32,116,111,32,37,100,46,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,73,110,102,111,34,93,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,118,105,115,105,98,108,101,39,93,32,61,32,36,48,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,73,100,39,93,32,61,32,36,49,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,112,97,116,116,84,121,112,101,39,93,32,61,32,36,50,59,32,109,117,108,116,105,69,97,99,104,77,97,114,107,101,114,91,39,119,105,100,116,104,39,93,32,61,32,36,51,59,32,125,0,123,32,118,97,114,32,36,97,32,61,32,97,114,103,117,109,101,110,116,115,59,32,118,97,114,32,105,32,61,32,49,50,59,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,32,61,32,40,123,32,112,111,115,58,32,91,48,44,48,93,44,32,108,105,110,101,58,32,91,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,44,32,91,48,44,48,44,48,93,93,44,32,118,101,114,116,101,120,58,32,91,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,44,32,91,48,44,48,93,93,32,125,41,59,32,125,32,118,97,114,32,109,97,114,107,101,114,73,110,102,111,32,61,32,97,114,116,111,111,108,107,105,116,91,34,109,97,114,107,101,114,73,110,102,111,34,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,97,114,101,97,34,93,32,61,32,36,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,34,93,32,61,32,36,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,80,97,116,116,34,93,32,61,32,36,50,59,32,109,97,114,107,101,114,73,110,102,111,91,34,105,100,77,97,116,114,105,120,34,93,32,61,32,36,51,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,34,93,32,61,32,36,52,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,80,97,116,116,34,93,32,61,32,36,53,59,32,109,97,114,107,101,114,73,110,102,111,91,34,100,105,114,77,97,116,114,105,120,34,93,32,61,32,36,54,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,34,93,32,61,32,36,55,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,80,97,116,116,34,93,32,61,32,36,56,59,32,109,97,114,107,101,114,73,110,102,111,91,34,99,102,77,97,116,114,105,120,34,93,32,61,32,36,57,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,48,93,32,61,32,36,49,48,59,32,109,97,114,107,101,114,73,110,102,111,91,34,112,111,115,34,93,91,49,93,32,61,32,36,49,49,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,48,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,49,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,50,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,108,105,110,101,34,93,91,51,93,91,50,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,48,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,49,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,50,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,48,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,118,101,114,116,101,120,34,93,91,51,93,91,49,93,32,61,32,36,97,91,105,43,43,93,59,32,109,97,114,107,101,114,73,110,102,111,91,34,101,114,114,111,114,67,111,114,114,101,99,116,101,100,34,93,32,61,32,36,97,91,105,43,43,93,59,32,125,0,115,101,116,117,112,40,41,58,32,69,114,114,111,114,58,32,97,114,80,97,116,116,67,114,101,97,116,101,72,97,110,100,108,101,46,10,0,65,108,108,111,99,97,116,101,100,32,118,105,100,101,111,70,114,97,109,101,83,105,122,101,32,37,100,10,0,123,32,105,102,32,40,33,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,41,32,123,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,32,61,32,40,123,125,41,59,32,125,32,118,97,114,32,102,114,97,109,101,77,97,108,108,111,99,32,61,32,97,114,116,111,111,108,107,105,116,91,34,102,114,97,109,101,77,97,108,108,111,99,34,93,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,112,111,105,110,116,101,114,34,93,32,61,32,36,49,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,102,114,97,109,101,115,105,122,101,34,93,32,61,32,36,50,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,99,97,109,101,114,97,34,93,32,61,32,36,51,59,32,102,114,97,109,101,77,97,108,108,111,99,91,34,116,114,97,110,115,102,111,114,109,34,93,32,61,32,36,52,59,32,125,0,115,101,116,117,112,0,116,101,97,114,100,111,119,110,0,95,97,100,100,77,97,114,107,101,114,0,95,97,100,100,77,117,108,116,105,77,97,114,107,101,114,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,77,97,114,107,101,114,67,111,117,110,116,0,95,108,111,97,100,67,97,109,101,114,97,0,115,101,116,77,97,114,107,101,114,73,110,102,111,68,105,114,0,115,101,116,77,97,114,107,101,114,73,110,102,111,86,101,114,116,101,120,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,83,113,117,97,114,101,67,111,110,116,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,0,103,101,116,84,114,97,110,115,77,97,116,77,117,108,116,105,83,113,117,97,114,101,82,111,98,117,115,116,0,100,101,116,101,99,116,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,78,117,109,0,103,101,116,77,117,108,116,105,69,97,99,104,77,97,114,107,101,114,0,103,101,116,77,97,114,107,101,114,0,115,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,68,101,98,117,103,77,111,100,101,0,103,101,116,80,114,111,99,101,115,115,105,110,103,73,109,97,103,101,0,115,101,116,76,111,103,76,101,118,101,108,0,103,101,116,76,111,103,76,101,118,101,108,0,115,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,78,101,97,114,80,108,97,110,101,0,115,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,103,101,116,80,114,111,106,101,99,116,105,111,110,70,97,114,80,108,97,110,101,0,115,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,103,101,116,84,104,114,101,115,104,111,108,100,77,111,100,101,0,115,101,116,84,104,114,101,115,104,111,108,100,0,103,101,116,84,104,114,101,115,104,111,108,100,0,115,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,103,101,116,80,97,116,116,101,114,110,68,101,116,101,99,116,105,111,110,77,111,100,101,0,115,101,116,80,97,116,116,82,97,116,105,111,0,103,101,116,80,97,116,116,82,97,116,105,111,0,115,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,103,101,116,77,97,116,114,105,120,67,111,100,101,84,121,112,101,0,115,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,103,101,116,76,97,98,101,108,105,110,103,77,111,100,101,0,115,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,103,101,116,73,109,97,103,101,80,114,111,99,77,111,100,101,0,69,82,82,79,82,95,65,82,67,79,78,84,82,79,76,76,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,85,76,84,73,77,65,82,75,69,82,95,78,79,84,95,70,79,85,78,68,0,69,82,82,79,82,95,77,65,82,75,69,82,95,73,78,68,69,88,95,79,85,84,95,79,70,95,66,79,85,78,68,83,0,65,82,95,68,69,66,85,71,95,68,73,83,65,66,76,69,0,65,82,95,68,69,66,85,71,95,69,78,65,66,76,69,0,65,82,95,68,69,70,65,85,76,84,95,68,69,66,85,71,95,77,79,68,69,0,65,82,95,76,65,66,69,76,73,78,71,95,87,72,73,84,69,95,82,69,71,73,79,78,0,65,82,95,76,65,66,69,76,73,78,71,95,66,76,65,67,75,95,82,69,71,73,79,78,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,77,79,68,69,0,65,82,95,68,69,70,65,85,76,84,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,82,65,77,69,95,73,77,65,71,69,0,65,82,95,73,77,65,71,69,95,80,82,79,67,95,70,73,69,76,68,95,73,77,65,71,69,0,65,82,95,68,69,70,65,85,76,84,95,73,77,65,71,69,95,80,82,79,67,95,77,79,68,69,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,68,69,84,69,67,84,73,79,78,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,67,79,76,79,82,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,84,69,77,80,76,65,84,69,95,77,65,84,67,72,73,78,71,95,77,79,78,79,95,65,78,68,95,77,65,84,82,73,88,0,65,82,95,68,69,70,65,85,76,84,95,80,65,84,84,69,82,78,95,68,69,84,69,67,84,73,79,78,95,77,79,68,69,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,78,79,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,0,65,82,95,85,83,69,95,84,82,65,67,75,73,78,71,95,72,73,83,84,79,82,89,95,86,50,0,65,82,95,68,69,70,65,85,76,84,95,77,65,82,75,69,82,95,69,88,84,82,65,67,84,73,79,78,95,77,79,68,69,0,65,82,95,77,65,88,95,76,79,79,80,95,67,79,85,78,84,0,65,82,95,76,79,79,80,95,66,82,69,65,75,95,84,72,82,69,83,72,0,65,82,95,76,79,71,95,76,69,86,69,76,95,68,69,66,85,71,0,65,82,95,76,79,71,95,76,69,86,69,76,95,73,78,70,79,0,65,82,95,76,79,71,95,76,69,86,69,76,95,87,65,82,78,0,65,82,95,76,79,71,95,76,69,86,69,76,95,69,82,82,79,82,0,65,82,95,76,79,71,95,76,69,86,69,76,95,82,69,76,95,73,78,70,79,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,72,65,77,77,73,78,71,54,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,51,120,51,95,80,65,82,73,84,89,54,53,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,57,95,51,0,65,82,95,77,65,84,82,73,88,95,67,79,68,69,95,52,120,52,95,66,67,72,95,49,51,95,53,95,53,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,77,65,78,85,65,76,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,77,69,68,73,65,78,0,65,82,95,76,65,66], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
/* memory initializer */ allocate([69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,79,84,83,85,0,65,82,95,76,65,66,69,76,73,78,71,95,84,72,82,69,83,72,95,77,79,68,69,95,65,85,84,79,95,65,68,65,80,84,73,86,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,78,79,78,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,65,84,84,69,82,78,95,69,88,84,82,65,67,84,73,79,78,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,71,69,78,69,82,73,67,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,84,82,65,83,84,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,78,79,84,95,70,79,85,78,68,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,66,65,82,67,79,68,69,95,69,68,67,95,70,65,73,76,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,77,65,84,67,72,95,67,79,78,70,73,68,69,78,67,69,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,80,79,83,69,95,69,82,82,79,82,95,77,85,76,84,73,0,65,82,95,77,65,82,75,69,82,95,73,78,70,79,95,67,85,84,79,70,70,95,80,72,65,83,69,95,72,69,85,82,73,83,84,73,67,95,84,82,79,85,66,76,69,83,79,77,69,95,77,65,84,82,73,88,95,67,79,68,69,83,0,118,105,105,102,0,118,105,105,105,0,100,105,105,0,118,105,105,100,0,105,105,0,118,105,105,0,105,105,105,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,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,50,49,95,95,98,97,115,105,99,95,115,116,114,105,110,103,95,99,111,109,109,111,110,73,76,98,49,69,69,69,0,105,105,105,105,0,105,105,105,105,105,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,115,116,100,58,58,119,115,116,114,105,110,103,0,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,99,104,97,114,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,115,104,111,114,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,105,110,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,110,115,105,103,110,101,100,32,108,111,110,103,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,56,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,49,54,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,117,105,110,116,51,50,95,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,102,108,111,97,116,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,100,111,117,98,108,101,62,0,101,109,115,99,114,105,112,116,101,110,58,58,109,101,109,111,114,121,95,118,105,101,119,60,108,111,110,103,32,100,111,117,98,108,101,62,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,101,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,100,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,102,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,109,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,108,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,106,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,105,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,116,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,115,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,104,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,97,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,49,49,109,101,109,111,114,121,95,118,105,101,119,73,99,69,69,0,78,49,48,101,109,115,99,114,105,112,116,101,110,51,118,97,108,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,50,98,97,115,105,99,95,115,116,114,105,110,103,73,104,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,104,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,104,69,69,69,69,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,57,116,121,112,101,95,105,110,102,111,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,50,51,95,95,102,117,110,100,97,109,101,110,116,97,108,95,116,121,112,101,95,105,110,102,111,69,0,118,0,98,0,99,0,104,0,97,0,115,0,116,0,105,0,106,0,109,0,102,0,100,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,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,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,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,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,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,106,101,114,111,109,101,101,116,105,101,110,110,101,47,119,111,114,107,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,32,40,0,41,0,95,98,108,111,99,107,95,105,110,118,111,107,101,0,105,110,118,111,99,97,116,105,111,110,32,102,117,110,99,116,105,111,110,32,102,111,114,32,98,108,111,99,107,32,105,110,32,0,32,99,111,110,115,116,0,32,118,111,108,97,116,105,108,101,0,32,114,101,115,116,114,105,99,116,0,32,91,0,32,91,93,0,93,0,32,99,111,109,112,108,101,120,0,40,0,44,32,0,32,38,0,32,38,38,0,32,0,32,105,109,97,103,105,110,97,114,121,0,58,58,42,0,38,38,0,111,98,106,99,95,111,98,106,101,99,116,60,0,42,0,105,100,0,38,0,111,98,106,99,112,114,111,116,111,0,60,0,62,0,32,118,101,99,116,111,114,91,0,112,105,120,101,108,32,118,101,99,116,111,114,91,0,100,101,99,108,116,121,112,101,40,0,115,116,100,58,58,97,108,108,111,99,97,116,111,114,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,115,116,114,105,110,103,0,115,116,100,58,58,105,115,116,114,101,97,109,0,115,116,100,58,58,111,115,116,114,101,97,109,0,115,116,100,58,58,105,111,115,116,114,101,97,109,0,115,116,100,0,58,58,0,58,58,115,116,114,105,110,103,32,108,105,116,101,114,97,108,0,115,116,100,58,58,0,126,0,39,117,110,110,97,109,101,100,0,39,108,97,109,98,100,97,39,40,0,111,112,101,114,97,116,111,114,38,38,0,111,112,101,114,97,116,111,114,38,0,111,112,101,114,97,116,111,114,38,61,0,111,112,101,114,97,116,111,114,61,0,111,112,101,114,97,116,111,114,40,41,0,111,112,101,114,97,116,111,114,44,0,111,112,101,114,97,116,111,114,126,0,111,112,101,114,97,116,111,114,32,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,91,93,0,111,112,101,114,97,116,111,114,42,0,111,112,101,114,97,116,111,114,32,100,101,108,101,116,101,0,111,112,101,114,97,116,111,114,47,0,111,112,101,114,97,116,111,114,47,61,0,111,112,101,114,97,116,111,114,94,0,111,112,101,114,97,116,111,114,94,61,0,111,112,101,114,97,116,111,114,61,61,0,111,112,101,114,97,116,111,114,62,61,0,111,112,101,114,97,116,111,114,62,0,111,112,101,114,97,116,111,114,91,93,0,111,112,101,114,97,116,111,114,60,61,0,111,112,101,114,97,116,111,114,34,34,32,0,111,112,101,114,97,116,111,114,60,60,0,111,112,101,114,97,116,111,114,60,60,61,0,111,112,101,114,97,116,111,114,60,0,111,112,101,114,97,116,111,114,45,0,111,112,101,114,97,116,111,114,45,61,0,111,112,101,114,97,116,111,114,42,61,0,111,112,101,114,97,116,111,114,45,45,0,111,112,101,114,97,116,111,114,32,110,101,119,91,93,0,111,112,101,114,97,116,111,114,33,61,0,111,112,101,114,97,116,111,114,33,0,111,112,101,114,97,116,111,114,32,110,101,119,0,111,112,101,114,97,116,111,114,124,124,0,111,112,101,114,97,116,111,114,124,0,111,112,101,114,97,116,111,114,124,61,0,111,112,101,114,97,116,111,114,45,62,42,0,111,112,101,114,97,116,111,114,43,0,111,112,101,114,97,116,111,114,43,61,0,111,112,101,114,97,116,111,114,43,43,0,111,112,101,114,97,116,111,114,45,62,0,111,112,101,114,97,116,111,114,63,0,111,112,101,114,97,116,111,114,37,0,111,112,101,114,97,116,111,114,37,61,0,111,112,101,114,97,116,111,114,62,62,0,111,112,101,114,97,116,111,114,62,62,61,0,115,116,100,58,58,98,97,115,105,99,95,115,116,114,105,110,103,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,44,32,115,116,100,58,58,97,108,108,111,99,97,116,111,114,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,115,116,114,105,110,103,0,115,116,100,58,58,98,97,115,105,99,95,105,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,111,115,116,114,101,97,109,0,115,116,100,58,58,98,97,115,105,99,95,105,111,115,116,114,101,97,109,60,99,104,97,114,44,32,115,116,100,58,58,99,104,97,114,95,116,114,97,105,116,115,60,99,104,97,114,62,32,62,0,98,97,115,105,99,95,105,111,115,116,114,101,97,109,0,95,71,76,79,66,65,76,95,95,78,0,40,97,110,111,110,121,109,111,117,115,32,110,97,109,101,115,112,97,99,101,41,0,32,62,0,119,99,104,97,114,95,116,0,102,97,108,115,101,0,116,114,117,101,0,99,104,97,114,0,115,105,103,110,101,100,32,99,104,97,114,0,117,110,115,105,103,110,101,100,32,99,104,97,114,0,115,104,111,114,116,0,117,110,115,105,103,110,101,100,32,115,104,111,114,116,0,0,117,0,108,0,117,108,0,108,108,0,117,108,108,0,95,95,105,110,116,49,50,56,0,117,110,115,105,103,110,101,100,32,95,95,105,110,116,49,50,56,0,37,97,102,0,37,97,0,37,76,97,76,0,38,61,0,61,0,97,108,105,103,110,111,102,32,40,0,99,111,110,115,116,95,99,97,115,116,60,0,62,40,0,44,0,41,40,0,100,101,108,101,116,101,91,93,32,0,100,121,110,97,109,105,99,95,99,97,115,116,60,0,100,101,108,101,116,101,32,0,46,42,0,47,0,47,61,0,94,0,94,61,0,61,61,0,62,61,0,41,91,0,60,61,0,60,60,0,60,60,61,0,45,0,45,61,0,42,61,0,45,45,0,41,45,45,0,91,93,32,0,41,32,0,33,61,0,33,0,110,111,101,120,99,101,112,116,32,40,0,124,124,0,124,0,124,61,0,45,62,42,0,43,0,43,61,0,43,43,0,41,43,43,0,45,62,0,41,32,63,32,40,0,41,32,58,32,40,0,114,101,105,110,116,101,114,112,114,101,116,95,99,97,115,116,60,0,37,0,37,61,0,62,62,0,62,62,61,0,115,116,97,116,105,99,95,99,97,115,116,60,0,115,105,122,101,111,102,32,40,0,115,105,122,101,111,102,46,46,46,40,0,116,121,112,101,105,100,40,0,116,104,114,111,119,0,116,104,114,111,119,32,0,102,112,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,111,117,116,95,111,102,95,114,97,110,103,101,34,0,95,95,116,104,114,111,119,95,111,117,116,95,111,102,95,114,97,110,103,101,0,118,111,105,100,0,98,111,111,108,0,105,110,116,0,117,110,115,105,103,110,101,100,32,105,110,116,0,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,0,108,111,110,103,32,108,111,110,103,0,117,110,115,105,103,110,101,100,32,108,111,110,103,32,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,108,111,110,103,32,100,111,117,98,108,101,0,95,95,102,108,111,97,116,49,50,56,0,46,46,46,0,100,101,99,105,109,97,108,54,52,0,100,101,99,105,109,97,108,49,50,56,0,100,101,99,105,109,97,108,51,50,0,100,101,99,105,109,97,108,49,54,0,99,104,97,114,51,50,95,116,0,99,104,97,114,49,54,95,116,0,97,117,116,111,0,115,116,100,58,58,110,117,108,108,112,116,114,95,116,0,118,116,97,98,108,101,32,102,111,114,32,0,86,84,84,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,102,111,114,32,0,116,121,112,101,105,110,102,111,32,110,97,109,101,32,102,111,114,32,0,99,111,118,97,114,105,97,110,116,32,114,101,116,117,114,110,32,116,104,117,110,107,32,116,111,32,0,99,111,110,115,116,114,117,99,116,105,111,110,32,118,116,97,98,108,101,32,102,111,114,32,0,45,105,110,45,0,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,110,111,110,45,118,105,114,116,117,97,108,32,116,104,117,110,107,32,116,111,32,0,103,117,97,114,100,32,118,97,114,105,97,98,108,101,32,102,111,114,32,0,114,101,102,101,114,101,110,99,101,32,116,101,109,112,111,114,97,114,121,32,102,111,114,32,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,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,114,119,97], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
/* memory initializer */ 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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+17795);
/* no memory initializer */
var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
assert(tempDoublePtr % 8 == 0);
function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
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];
}
// {{PRE_LIBRARY}}
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 embind_init_charCodes() {
var codes = new Array(256);
for (var i = 0; i < 256; ++i) {
codes[i] = String.fromCharCode(i);
}
embind_charCodes = codes;
}var embind_charCodes=undefined;function readLatin1String(ptr) {
var ret = "";
var c = ptr;
while (HEAPU8[c]) {
ret += embind_charCodes[HEAPU8[c++]];
}
return ret;
}
var awaitingDependencies={};
var registeredTypes={};
var typeDependencies={};
var char_0=48;
var char_9=57;function makeLegalFunctionName(name) {
if (undefined === name) {
return '_unknown';
}
name = name.replace(/[^a-zA-Z0-9_]/g, '$');
var f = name.charCodeAt(0);
if (f >= char_0 && f <= char_9) {
return '_' + name;
} else {
return name;
}
}function createNamedFunction(name, body) {
name = makeLegalFunctionName(name);
/*jshint evil:true*/
return new Function(
"body",
"return function " + name + "() {\n" +
" \"use strict\";" +
" return body.apply(this, arguments);\n" +
"};\n"
)(body);
}function extendError(baseErrorType, errorName) {
var errorClass = createNamedFunction(errorName, function(message) {
this.name = errorName;
this.message = message;
var stack = (new Error(message)).stack;
if (stack !== undefined) {
this.stack = this.toString() + '\n' +
stack.replace(/^Error(:[^\n]*)?\n/, '');
}
});
errorClass.prototype = Object.create(baseErrorType.prototype);
errorClass.prototype.constructor = errorClass;
errorClass.prototype.toString = function() {
if (this.message === undefined) {
return this.name;
} else {
return this.name + ': ' + this.message;
}
};
return errorClass;
}var BindingError=undefined;function throwBindingError(message) {
throw new BindingError(message);
}
var InternalError=undefined;function throwInternalError(message) {
throw new InternalError(message);
}function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
myTypes.forEach(function(type) {
typeDependencies[type] = dependentTypes;
});
function onComplete(typeConverters) {
var myTypeConverters = getTypeConverters(typeConverters);
if (myTypeConverters.length !== myTypes.length) {
throwInternalError('Mismatched type converter count');
}
for (var i = 0; i < myTypes.length; ++i) {
registerType(myTypes[i], myTypeConverters[i]);
}
}
var typeConverters = new Array(dependentTypes.length);
var unregisteredTypes = [];
var registered = 0;
dependentTypes.forEach(function(dt, i) {
if (registeredTypes.hasOwnProperty(dt)) {
typeConverters[i] = registeredTypes[dt];
} else {
unregisteredTypes.push(dt);
if (!awaitingDependencies.hasOwnProperty(dt)) {
awaitingDependencies[dt] = [];
}
awaitingDependencies[dt].push(function() {
typeConverters[i] = registeredTypes[dt];
++registered;
if (registered === unregisteredTypes.length) {
onComplete(typeConverters);
}
});
}
});
if (0 === unregisteredTypes.length) {
onComplete(typeConverters);
}
}function registerType(rawType, registeredInstance, options) {
options = options || {};
if (!('argPackAdvance' in registeredInstance)) {
throw new TypeError('registerType registeredInstance requires argPackAdvance');
}
var name = registeredInstance.name;
if (!rawType) {
throwBindingError('type "' + name + '" must have a positive integer typeid pointer');
}
if (registeredTypes.hasOwnProperty(rawType)) {
if (options.ignoreDuplicateRegistrations) {
return;
} else {
throwBindingError("Cannot register type '" + name + "' twice");
}
}
registeredTypes[rawType] = registeredInstance;
delete typeDependencies[rawType];
if (awaitingDependencies.hasOwnProperty(rawType)) {
var callbacks = awaitingDependencies[rawType];
delete awaitingDependencies[rawType];
callbacks.forEach(function(cb) {
cb();
});
}
}function __embind_register_void(rawType, name) {
name = readLatin1String(name);
registerType(rawType, {
isVoid: true, // void return values can be optimized out sometimes
name: name,
'argPackAdvance': 0,
'fromWireType': function() {
return undefined;
},
'toWireType': function(destructors, o) {
// TODO: assert if anything else is given?
return undefined;
},
});
}
function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()
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)); // exception refcount should be cleared, but don't free it
throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
}function ___cxa_find_matching_catch() {
var thrown = EXCEPTIONS.last;
if (!thrown) {
// just pass through the null ptr
return ((asm["setTempRet0"](0),0)|0);
}
var info = EXCEPTIONS.infos[thrown];
var throwntype = info.type;
if (!throwntype) {
// just pass through the thrown ptr
return ((asm["setTempRet0"](0),thrown)|0);
}
var typeArray = Array.prototype.slice.call(arguments);
var pointer = Module['___cxa_is_pointer_type'](throwntype);
// can_catch receives a **, add indirection
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;
// The different catch blocks are denoted by different types.
// Due to inheritance, those types may not precisely match the
// type of the thrown object. Find one which matches, and
// return the type of the catch block which should be called.
for (var i = 0; i < typeArray.length; i++) {
if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) {
thrown = HEAP32[((thrown)>>2)]; // undo indirection
info.adjusted = thrown;
return ((asm["setTempRet0"](typeArray[i]),thrown)|0);
}
}
// Shouldn't happen unless we have bogus data in typeArray
// or encounter a type for which emscripten doesn't have suitable
// typeinfo defined. Best-efforts match just in case.
thrown = HEAP32[((thrown)>>2)]; // undo indirection
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 + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
}
Module["_memset"] = _memset;
var _BDtoILow=true;
function getShiftFromSize(size) {
switch (size) {
case 1: return 0;
case 2: return 1;
case 4: return 2;
case 8: return 3;
default:
throw new TypeError('Unknown type size: ' + size);
}
}function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
var shift = getShiftFromSize(size);
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': function(wt) {
// ambiguous emscripten ABI: sometimes return values are
// true or false, and sometimes integers (0 or 1)
return !!wt;
},
'toWireType': function(destructors, o) {
return o ? trueValue : falseValue;
},
'argPackAdvance': 8,
'readValueFromPointer': function(pointer) {
// TODO: if heap is fixed (like in asm.js) this could be executed outside
var heap;
if (size === 1) {
heap = HEAP8;
} else if (size === 2) {
heap = HEAP16;
} else if (size === 4) {
heap = HEAP32;
} else {
throw new TypeError("Unknown boolean type size: " + name);
}
return this['fromWireType'](heap[pointer >> shift]);
},
destructorFunction: null, // This type does not need a destructor
});
}
Module["_bitshift64Shl"] = _bitshift64Shl;
function _abort() {
Module['abort']();
}
function _free() {
}
Module["_free"] = _free;
function _malloc(bytes) {
/* Over-allocate to make sure it is byte-aligned by 8.
* This will leak memory, but this is only the dummy
* implementation (replaced by dlmalloc normally) so
* not an issue.
*/
var ptr = Runtime.dynamicAlloc(bytes + 8);
return (ptr+8) & 0xFFFFFFF8;
}
Module["_malloc"] = _malloc;
function simpleReadValueFromPointer(pointer) {
return this['fromWireType'](HEAPU32[pointer >> 2]);
}function __embind_register_std_string(rawType, name) {
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': function(value) {
var length = HEAPU32[value >> 2];
var a = new Array(length);
for (var i = 0; i < length; ++i) {
a[i] = String.fromCharCode(HEAPU8[value + 4 + i]);
}
_free(value);
return a.join('');
},
'toWireType': function(destructors, value) {
if (value instanceof ArrayBuffer) {
value = new Uint8Array(value);
}
function getTAElement(ta, index) {
return ta[index];
}
function getStringElement(string, index) {
return string.charCodeAt(index);
}
var getElement;
if (value instanceof Uint8Array) {
getElement = getTAElement;
} else if (value instanceof Int8Array) {
getElement = getTAElement;
} else if (typeof value === 'string') {
getElement = getStringElement;
} else {
throwBindingError('Cannot pass non-string to std::string');
}
// assumes 4-byte alignment
var length = value.length;
var ptr = _malloc(4 + length);
HEAPU32[ptr >> 2] = length;
for (var i = 0; i < length; ++i) {
var charCode = getElement(value, i);
if (charCode > 255) {
_free(ptr);
throwBindingError('String has UTF-16 code units that do not fit in 8 bits');
}
HEAPU8[ptr + 4 + i] = charCode;
}
if (destructors !== null) {
destructors.push(_free, ptr);
}
return ptr;
},
'argPackAdvance': 8,
'readValueFromPointer': simpleReadValueFromPointer,
destructorFunction: function(ptr) { _free(ptr); },
});
}
function __embind_register_std_wstring(rawType, charSize, name) {
// nb. do not cache HEAPU16 and HEAPU32, they may be destroyed by enlargeMemory().
name = readLatin1String(name);
var getHeap, shift;
if (charSize === 2) {
getHeap = function() { return HEAPU16; };
shift = 1;
} else if (charSize === 4) {
getHeap = function() { return HEAPU32; };
shift = 2;
}
registerType(rawType, {
name: name,
'fromWireType': function(value) {
var HEAP = getHeap();
var length = HEAPU32[value >> 2];
var a = new Array(length);
var start = (value + 4) >> shift;
for (var i = 0; i < length; ++i) {
a[i] = String.fromCharCode(HEAP[start + i]);
}
_free(value);
return a.join('');
},
'toWireType': function(destructors, value) {
// assumes 4-byte alignment
var HEAP = getHeap();
var length = value.length;
var ptr = _malloc(4 + length * charSize);
HEAPU32[ptr >> 2] = length;
var start = (ptr + 4) >> shift;
for (var i = 0; i < length; ++i) {
HEAP[start + i] = value.charCodeAt(i);
}
if (destructors !== null) {
destructors.push(_free, ptr);
}
return ptr;
},
'argPackAdvance': 8,
'readValueFromPointer': simpleReadValueFromPointer,
destructorFunction: function(ptr) { _free(ptr); },
});
}
function ___lock() {}
function ___unlock() {}
var _emscripten_asm_const_int=true;
Module["_i64Add"] = _i64Add;
var _fabs=Math_abs;
var _sqrt=Math_sqrt;
function _embind_repr(v) {
if (v === null) {
return 'null';
}
var t = typeof v;
if (t === 'object' || t === 'array' || t === 'function') {
return v.toString();
} else {
return '' + v;
}
}
function integerReadValueFromPointer(name, shift, signed) {
// integers are quite common, so generate very specialized functions
switch (shift) {
case 0: return signed ?
function readS8FromPointer(pointer) { return HEAP8[pointer]; } :
function readU8FromPointer(pointer) { return HEAPU8[pointer]; };
case 1: return signed ?
function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } :
function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; };
case 2: return signed ?
function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } :
function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; };
default:
throw new TypeError("Unknown integer type: " + name);
}
}function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
name = readLatin1String(name);
if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32.
maxRange = 4294967295;
}
var shift = getShiftFromSize(size);
var fromWireType = function(value) {
return value;
};
if (minRange === 0) {
var bitshift = 32 - 8*size;
fromWireType = function(value) {
return (value << bitshift) >>> bitshift;
};
}
registerType(primitiveType, {
name: name,
'fromWireType': fromWireType,
'toWireType': function(destructors, value) {
// todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could
// avoid the following two if()s and assume value is of proper type.
if (typeof value !== "number" && typeof value !== "boolean") {
throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
}
if (value < minRange || value > maxRange) {
throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!');
}
return value | 0;
},
'argPackAdvance': 8,
'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0),
destructorFunction: null, // This type does not need a destructor
});
}
var emval_free_list=[];
var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) {
if (handle > 4 && 0 === --emval_handle_array[handle].refcount) {
emval_handle_array[handle] = undefined;
emval_free_list.push(handle);
}
}
function count_emval_handles() {
var count = 0;
for (var i = 5; i < emval_handle_array.length; ++i) {
if (emval_handle_array[i] !== undefined) {
++count;
}
}
return count;
}
function get_first_emval() {
for (var i = 5; i < emval_handle_array.length; ++i) {
if (emval_handle_array[i] !== undefined) {
return emval_handle_array[i];
}
}
return null;
}function init_emval() {
Module['count_emval_handles'] = count_emval_handles;
Module['get_first_emval'] = get_first_emval;
}function __emval_register(value) {
switch(value){
case undefined :{ return 1; }
case null :{ return 2; }
case true :{ return 3; }
case false :{ return 4; }
default:{
var handle = emval_free_list.length ?
emval_free_list.pop() :
emval_handle_array.length;
emval_handle_array[handle] = {refcount: 1, value: value};
return handle;
}
}
}function __embind_register_emval(rawType, name) {
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': function(handle) {
var rv = emval_handle_array[handle].value;
__emval_decref(handle);
return rv;
},
'toWireType': function(destructors, value) {
return __emval_register(value);
},
'argPackAdvance': 8,
'readValueFromPointer': simpleReadValueFromPointer,
destructorFunction: null, // This type does not need a destructor
// TODO: do we need a deleteObject here? write a test where
// emval is passed into JS via an interface
});
}
function ___cxa_allocate_exception(size) {
return _malloc(size);
}
var _sin=Math_sin;
function ___setErrNo(value) {
if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
else Module.printErr('failed to set errno from JS');
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) {
// long sysconf(int name);
// http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
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 1000;
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;
}
Module["_bitshift64Lshr"] = _bitshift64Lshr;
function __exit(status) {
// void _exit(int status);
// http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
Module['exit'](status);
}function _exit(status) {
__exit(status);
}
var _llvm_ctlz_i32=true;
function floatReadValueFromPointer(name, shift) {
switch (shift) {
case 2: return function(pointer) {
return this['fromWireType'](HEAPF32[pointer >> 2]);
};
case 3: return function(pointer) {
return this['fromWireType'](HEAPF64[pointer >> 3]);
};
default:
throw new TypeError("Unknown float type: " + name);
}
}function __embind_register_float(rawType, name, size) {
var shift = getShiftFromSize(size);
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': function(value) {
return value;
},
'toWireType': function(destructors, value) {
// todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could
// avoid the following if() and assume value is of proper type.
if (typeof value !== "number" && typeof value !== "boolean") {
throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name);
}
return value;
},
'argPackAdvance': 8,
'readValueFromPointer': floatReadValueFromPointer(name, shift),
destructorFunction: null, // This type does not need a destructor
});
}
var _BDtoIHigh=true;
function _pthread_cleanup_push(routine, arg) {
__ATEXIT__.push(function() { Runtime.dynCall('vi', routine, [arg]) })
_pthread_cleanup_push.level = __ATEXIT__.length;
}
function new_(constructor, argumentList) {
if (!(constructor instanceof Function)) {
throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function");
}
/*
* Previously, the following line was just:
function dummy() {};
* Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the
* correct constructor name. Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which
* isn't very helpful. Using IMVU.createNamedFunction addresses the issue. Doublely-unfortunately, there's no way
* to write a test for this behavior. -NRD 2013.02.22
*/
var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){});
dummy.prototype = constructor.prototype;
var obj = new dummy;
var r = constructor.apply(obj, argumentList);
return (r instanceof Object) ? r : obj;
}
function runDestructors(destructors) {
while (destructors.length) {
var ptr = destructors.pop();
var del = destructors.pop();
del(ptr);
}
}function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) {
// humanName: a human-readable string name for the function to be generated.
// argTypes: An array that contains the embind type objects for all types in the function signature.
// argTypes[0] is the type object for the function return value.
// argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method.
// argTypes[2...] are the actual function parameters.
// classType: The embind type object for the class to be bound, or null if this is not a method of a class.
// cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code.
// cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling.
var argCount = argTypes.length;
if (argCount < 2) {
throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
}
var isClassMethodFunc = (argTypes[1] !== null && classType !== null);
// Free functions with signature "void function()" do not need an invoker that marshalls between wire types.
// TODO: This omits argument count check - enable only at -O3 or similar.
// if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) {
// return FUNCTION_TABLE[fn];
// }
var argsList = "";
var argsListWired = "";
for(var i = 0; i < argCount - 2; ++i) {
argsList += (i!==0?", ":"")+"arg"+i;
argsListWired += (i!==0?", ":"")+"arg"+i+"Wired";
}
var invokerFnBody =
"return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" +
"if (arguments.length !== "+(argCount - 2)+") {\n" +
"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" +
"}\n";
// Determine if we need to use a dynamic stack to store the destructors for the function parameters.
// TODO: Remove this completely once all function invokers are being dynamically generated.
var needsDestructorStack = false;
for(var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here.
if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack
needsDestructorStack = true;
break;
}
}
if (needsDestructorStack) {
invokerFnBody +=
"var destructors = [];\n";
}
var dtorStack = needsDestructorStack ? "destructors" : "null";
var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
if (isClassMethodFunc) {
invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n";
}
for(var i = 0; i < argCount - 2; ++i) {
invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";
args1.push("argType"+i);
args2.push(argTypes[i+2]);
}
if (isClassMethodFunc) {
argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
}
var returns = (argTypes[0].name !== "void");
invokerFnBody +=
(returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";
if (needsDestructorStack) {
invokerFnBody += "runDestructors(destructors);\n";
} else {
for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method.
var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired"));
if (argTypes[i].destructorFunction !== null) {
invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";
args1.push(paramName+"_dtor");
args2.push(argTypes[i].destructorFunction);
}
}
}
if (returns) {
invokerFnBody += "var ret = retType.fromWireType(rv);\n" +
"return ret;\n";
} else {
}
invokerFnBody += "}\n";
args1.push(invokerFnBody);
var invokerFunction = new_(Function, args1).apply(null, args2);
return invokerFunction;
}
function ensureOverloadTable(proto, methodName, humanName) {
if (undefined === proto[methodName].overloadTable) {
var prevFunc = proto[methodName];
// Inject an overload resolver function that routes to the appropriate overload based on the number of arguments.
proto[methodName] = function() {
// TODO This check can be removed in -O3 level "unsafe" optimizations.
if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {
throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!");
}
return proto[methodName].overloadTable[arguments.length].apply(this, arguments);
};
// Move the previous function into the overload table.
proto[methodName].overloadTable = [];
proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
}
}function exposePublicSymbol(name, value, numArguments) {
if (Module.hasOwnProperty(name)) {
if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) {
throwBindingError("Cannot register public name '" + name + "' twice");
}
// We are exposing a function with the same name as an existing function. Create an overload table and a function selector
// that routes between the two.
ensureOverloadTable(Module, name, name);
if (Module.hasOwnProperty(numArguments)) {
throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!");
}
// Add the new function into the overload table.
Module[name].overloadTable[numArguments] = value;
}
else {
Module[name] = value;
if (undefined !== numArguments) {
Module[name].numArguments = numArguments;
}
}
}
function heap32VectorToArray(count, firstElement) {
var array = [];
for (var i = 0; i < count; i++) {
array.push(HEAP32[(firstElement >> 2) + i]);
}
return array;
}
function replacePublicSymbol(name, value, numArguments) {
if (!Module.hasOwnProperty(name)) {
throwInternalError('Replacing nonexistant public symbol');
}
// If there's an overload table for this symbol, replace the symbol in the overload table instead.
if (undefined !== Module[name].overloadTable && undefined !== numArguments) {
Module[name].overloadTable[numArguments] = value;
}
else {
Module[name] = value;
}
}
function requireFunction(signature, rawFunction) {
signature = readLatin1String(signature);
function makeDynCaller(dynCall) {
var args = [];
for (var i = 1; i < signature.length; ++i) {
args.push('a' + i);
}
var name = 'dynCall_' + signature + '_' + rawFunction;
var body = 'return function ' + name + '(' + args.join(', ') + ') {\n';
body += ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n';
body += '};\n';
return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction);
}
var fp;
if (Module['FUNCTION_TABLE_' + signature] !== undefined) {
fp = Module['FUNCTION_TABLE_' + signature][rawFunction];
} else if (typeof FUNCTION_TABLE !== "undefined") {
fp = FUNCTION_TABLE[rawFunction];
} else {
// asm.js does not give direct access to the function tables,
// and thus we must go through the dynCall interface which allows
// calling into a signature's function table by pointer value.
//
// https://github.com/dherman/asm.js/issues/83
//
// This has three main penalties:
// - dynCall is another function call in the path from JavaScript to C++.
// - JITs may not predict through the function table indirection at runtime.
var dc = asm['dynCall_' + signature];
if (dc === undefined) {
// We will always enter this branch if the signature
// contains 'f' and PRECISE_F32 is not enabled.
//
// Try again, replacing 'f' with 'd'.
dc = asm['dynCall_' + signature.replace(/f/g, 'd')];
if (dc === undefined) {
throwBindingError("No dynCall invoker for signature: " + signature);
}
}
fp = makeDynCaller(dc);
}
if (typeof fp !== "function") {
throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction);
}
return fp;
}
var UnboundTypeError=undefined;
function getTypeName(type) {
var ptr = ___getTypeName(type);
var rv = readLatin1String(ptr);
_free(ptr);
return rv;
}function throwUnboundTypeError(message, types) {
var unboundTypes = [];
var seen = {};
function visit(type) {
if (seen[type]) {
return;
}
if (registeredTypes[type]) {
return;
}
if (typeDependencies[type]) {
typeDependencies[type].forEach(visit);
return;
}
unboundTypes.push(type);
seen[type] = true;
}
types.forEach(visit);
throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', ']));
}function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) {
var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
name = readLatin1String(name);
rawInvoker = requireFunction(signature, rawInvoker);
exposePublicSymbol(name, function() {
throwUnboundTypeError('Cannot call ' + name + ' due to unbound types', argTypes);
}, argCount - 1);
whenDependentTypesAreResolved([], argTypes, function(argTypes) {
var invokerArgsArray = [argTypes[0] /* return value */, null /* no class 'this'*/].concat(argTypes.slice(1) /* actual params */);
replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null /* no class 'this'*/, rawInvoker, fn), argCount - 1);
return [];
});
}
function __embind_register_constant(name, type, value) {
name = readLatin1String(name);
whenDependentTypesAreResolved([], [type], function(type) {
type = type[0];
Module[name] = type['fromWireType'](value);
return [];
});
}
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;
}
var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};
var PATH={splitPath:function (filename) {
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
return splitPathRe.exec(filename).slice(1);
},normalizeArray:function (parts, allowAboveRoot) {
// if the path tries to go above the root, `up` ends up > 0
var up = 0;
for (var i = parts.length - 1; i >= 0; i--) {
var last = parts[i];
if (last === '.') {
parts.splice(i, 1);
} else if (last === '..') {
parts.splice(i, 1);
up++;
} else if (up) {
parts.splice(i, 1);
up--;
}
}
// if the path is allowed to go above the root, restore leading ..s
if (allowAboveRoot) {
for (; up--; up) {
parts.unshift('..');
}
}
return parts;
},normalize:function (path) {
var isAbsolute = path.charAt(0) === '/',
trailingSlash = path.substr(-1) === '/';
// Normalize the path
path = PATH.normalizeArray(path.split('/').filter(function(p) {
return !!p;
}), !isAbsolute).join('/');
if (!path && !isAbsolute) {
path = '.';
}
if (path && trailingSlash) {
path += '/';
}
return (isAbsolute ? '/' : '') + path;
},dirname:function (path) {
var result = PATH.splitPath(path),
root = result[0],
dir = result[1];
if (!root && !dir) {
// No dirname whatsoever
return '.';
}
if (dir) {
// It has a dirname, strip trailing slash
dir = dir.substr(0, dir.length - 1);
}
return root + dir;
},basename:function (path) {
// EMSCRIPTEN return '/'' for '/', not an empty string
if (path === '/') return '/';
var lastSlash = path.lastIndexOf('/');
if (lastSlash === -1) return path;
return path.substr(lastSlash+1);
},extname:function (path) {
return PATH.splitPath(path)[3];
},join:function () {
var paths = Array.prototype.slice.call(arguments, 0);
return PATH.normalize(paths.join('/'));
},join2:function (l, r) {
return PATH.normalize(l + '/' + r);
},resolve:function () {
var resolvedPath = '',
resolvedAbsolute = false;
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
var path = (i >= 0) ? arguments[i] : FS.cwd();
// Skip empty and invalid entries
if (typeof path !== 'string') {
throw new TypeError('Arguments to path.resolve must be strings');
} else if (!path) {
return ''; // an invalid portion invalidates the whole thing
}
resolvedPath = path + '/' + resolvedPath;
resolvedAbsolute = path.charAt(0) === '/';
}
// 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)
resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
return !!p;
}), !resolvedAbsolute).join('/');
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
},relative:function (from, to) {
from = PATH.resolve(from).substr(1);
to = PATH.resolve(to).substr(1);
function trim(arr) {
var start = 0;
for (; start < arr.length; start++) {
if (arr[start] !== '') break;
}
var end = arr.length - 1;
for (; end >= 0; end--) {
if (arr[end] !== '') break;
}
if (start > end) return [];
return arr.slice(start, end - start + 1);
}
var fromParts = trim(from.split('/'));
var toParts = trim(to.split('/'));
var length = Math.min(fromParts.length, toParts.length);
var samePartsLength = length;
for (var i = 0; i < length; i++) {
if (fromParts[i] !== toParts[i]) {
samePartsLength = i;
break;
}
}
var outputParts = [];
for (var i = samePartsLength; i < fromParts.length; i++) {
outputParts.push('..');
}
outputParts = outputParts.concat(toParts.slice(samePartsLength));
return outputParts.join('/');
}};
var TTY={ttys:[],init:function () {
// https://github.com/kripken/emscripten/pull/1555
// if (ENVIRONMENT_IS_NODE) {
// // currently, FS.init does not distinguish if process.stdin is a file or TTY
// // device, it always assumes it's a TTY device. because of this, we're forcing
// // process.stdin to UTF8 encoding to at least make stdin reading compatible
// // with text files until FS.init can be refactored.
// process['stdin']['setEncoding']('utf8');
// }
},shutdown:function () {
// https://github.com/kripken/emscripten/pull/1555
// if (ENVIRONMENT_IS_NODE) {
// // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
// // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
// // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
// // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
// // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
// process['stdin']['pause']();
// }
},register:function (dev, ops) {
TTY.ttys[dev] = { input: [], output: [], ops: ops };
FS.registerDevice(dev, TTY.stream_ops);
},stream_ops:{open:function (stream) {
var tty = TTY.ttys[stream.node.rdev];
if (!tty) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
stream.tty = tty;
stream.seekable = false;
},close:function (stream) {
// flush any pending line data
stream.tty.ops.flush(stream.tty);
},flush:function (stream) {
stream.tty.ops.flush(stream.tty);
},read:function (stream, buffer, offset, length, pos /* ignored */) {
if (!stream.tty || !stream.tty.ops.get_char) {
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
}
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = stream.tty.ops.get_char(stream.tty);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
if (result === null || result === undefined) break;
bytesRead++;
buffer[offset+i] = result;
}
if (bytesRead) {
stream.node.timestamp = Date.now();
}
return bytesRead;
},write:function (stream, buffer, offset, length, pos) {
if (!stream.tty || !stream.tty.ops.put_char) {
throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
}
for (var i = 0; i < length; i++) {
try {
stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
}
if (length) {
stream.node.timestamp = Date.now();
}
return i;
}},default_tty_ops:{get_char:function (tty) {
if (!tty.input.length) {
var result = null;
if (ENVIRONMENT_IS_NODE) {
// we will read data by chunks of BUFSIZE
var BUFSIZE = 256;
var buf = new Buffer(BUFSIZE);
var bytesRead = 0;
var fd = process.stdin.fd;
// Linux and Mac cannot use process.stdin.fd (which isn't set up as sync)
var usingDevice = false;
try {
fd = fs.openSync('/dev/stdin', 'r');
usingDevice = true;
} catch (e) {}
bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);
if (usingDevice) { fs.closeSync(fd); }
if (bytesRead > 0) {
result = buf.slice(0, bytesRead).toString('utf-8');
} else {
result = null;
}
} else if (typeof window != 'undefined' &&
typeof window.prompt == 'function') {
// Browser.
result = window.prompt('Input: '); // returns null on cancel
if (result !== null) {
result += '\n';
}
} else if (typeof readline == 'function') {
// Command line.
result = readline();
if (result !== null) {
result += '\n';
}
}
if (!result) {
return null;
}
tty.input = intArrayFromString(result, true);
}
return tty.input.shift();
},put_char:function (tty, val) {
if (val === null || val === 10) {
Module['print'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
} else {
if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle.
}
},flush:function (tty) {
if (tty.output && tty.output.length > 0) {
Module['print'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
}
}},default_tty1_ops:{put_char:function (tty, val) {
if (val === null || val === 10) {
Module['printErr'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
} else {
if (val != 0) tty.output.push(val);
}
},flush:function (tty) {
if (tty.output && tty.output.length > 0) {
Module['printErr'](UTF8ArrayToString(tty.output, 0));
tty.output = [];
}
}}};
var MEMFS={ops_table:null,mount:function (mount) {
return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
},createNode:function (parent, name, mode, dev) {
if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
// no supported
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (!MEMFS.ops_table) {
MEMFS.ops_table = {
dir: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
lookup: MEMFS.node_ops.lookup,
mknod: MEMFS.node_ops.mknod,
rename: MEMFS.node_ops.rename,
unlink: MEMFS.node_ops.unlink,
rmdir: MEMFS.node_ops.rmdir,
readdir: MEMFS.node_ops.readdir,
symlink: MEMFS.node_ops.symlink
},
stream: {
llseek: MEMFS.stream_ops.llseek
}
},
file: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: {
llseek: MEMFS.stream_ops.llseek,
read: MEMFS.stream_ops.read,
write: MEMFS.stream_ops.write,
allocate: MEMFS.stream_ops.allocate,
mmap: MEMFS.stream_ops.mmap,
msync: MEMFS.stream_ops.msync
}
},
link: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
readlink: MEMFS.node_ops.readlink
},
stream: {}
},
chrdev: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: FS.chrdev_stream_ops
}
};
}
var node = FS.createNode(parent, name, mode, dev);
if (FS.isDir(node.mode)) {
node.node_ops = MEMFS.ops_table.dir.node;
node.stream_ops = MEMFS.ops_table.dir.stream;
node.contents = {};
} else if (FS.isFile(node.mode)) {
node.node_ops = MEMFS.ops_table.file.node;
node.stream_ops = MEMFS.ops_table.file.stream;
node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.buffer.byteLength which gives the whole capacity.
// When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred
// for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size
// penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme.
node.contents = null;
} else if (FS.isLink(node.mode)) {
node.node_ops = MEMFS.ops_table.link.node;
node.stream_ops = MEMFS.ops_table.link.stream;
} else if (FS.isChrdev(node.mode)) {
node.node_ops = MEMFS.ops_table.chrdev.node;
node.stream_ops = MEMFS.ops_table.chrdev.stream;
}
node.timestamp = Date.now();
// add the new node to the parent
if (parent) {
parent.contents[name] = node;
}
return node;
},getFileDataAsRegularArray:function (node) {
if (node.contents && node.contents.subarray) {
var arr = [];
for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
return arr; // Returns a copy of the original data.
}
return node.contents; // No-op, the file contents are already in a JS array. Return as-is.
},getFileDataAsTypedArray:function (node) {
if (!node.contents) return new Uint8Array;
if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes.
return new Uint8Array(node.contents);
},expandFileStorage:function (node, newCapacity) {
// If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file
// instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to
// increase the size.
if (node.contents && node.contents.subarray && newCapacity > node.contents.length) {
node.contents = MEMFS.getFileDataAsRegularArray(node);
node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it.
}
if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well.
var prevCapacity = node.contents ? node.contents.buffer.byteLength : 0;
if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough.
// Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity.
// For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to
// avoid overshooting the allocation cap by a very large margin.
var CAPACITY_DOUBLING_MAX = 1024 * 1024;
newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0);
if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding.
var oldContents = node.contents;
node.contents = new Uint8Array(newCapacity); // Allocate new storage.
if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage.
return;
}
// Not using a typed array to back the file storage. Use a standard JS array instead.
if (!node.contents && newCapacity > 0) node.contents = [];
while (node.contents.length < newCapacity) node.contents.push(0);
},resizeFileStorage:function (node, newSize) {
if (node.usedBytes == newSize) return;
if (newSize == 0) {
node.contents = null; // Fully decommit when requesting a resize to zero.
node.usedBytes = 0;
return;
}
if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store.
var oldContents = node.contents;
node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage.
if (oldContents) {
node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage.
}
node.usedBytes = newSize;
return;
}
// Backing with a JS array.
if (!node.contents) node.contents = [];
if (node.contents.length > newSize) node.contents.length = newSize;
else while (node.contents.length < newSize) node.contents.push(0);
node.usedBytes = newSize;
},node_ops:{getattr:function (node) {
var attr = {};
// device numbers reuse inode numbers.
attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
attr.ino = node.id;
attr.mode = node.mode;
attr.nlink = 1;
attr.uid = 0;
attr.gid = 0;
attr.rdev = node.rdev;
if (FS.isDir(node.mode)) {
attr.size = 4096;
} else if (FS.isFile(node.mode)) {
attr.size = node.usedBytes;
} else if (FS.isLink(node.mode)) {
attr.size = node.link.length;
} else {
attr.size = 0;
}
attr.atime = new Date(node.timestamp);
attr.mtime = new Date(node.timestamp);
attr.ctime = new Date(node.timestamp);
// NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
// but this is not required by the standard.
attr.blksize = 4096;
attr.blocks = Math.ceil(attr.size / attr.blksize);
return attr;
},setattr:function (node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp;
}
if (attr.size !== undefined) {
MEMFS.resizeFileStorage(node, attr.size);
}
},lookup:function (parent, name) {
throw FS.genericErrors[ERRNO_CODES.ENOENT];
},mknod:function (parent, name, mode, dev) {
return MEMFS.createNode(parent, name, mode, dev);
},rename:function (old_node, new_dir, new_name) {
// if we're overwriting a directory at new_name, make sure it's empty.
if (FS.isDir(old_node.mode)) {
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name);
} catch (e) {
}
if (new_node) {
for (var i in new_node.contents) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
}
}
// do the internal rewiring
delete old_node.parent.contents[old_node.name];
old_node.name = new_name;
new_dir.contents[new_name] = old_node;
old_node.parent = new_dir;
},unlink:function (parent, name) {
delete parent.contents[name];
},rmdir:function (parent, name) {
var node = FS.lookupNode(parent, name);
for (var i in node.contents) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
delete parent.contents[name];
},readdir:function (node) {
var entries = ['.', '..']
for (var key in node.contents) {
if (!node.contents.hasOwnProperty(key)) {
continue;
}
entries.push(key);
}
return entries;
},symlink:function (parent, newname, oldpath) {
var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
node.link = oldpath;
return node;
},readlink:function (node) {
if (!FS.isLink(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return node.link;
}},stream_ops:{read:function (stream, buffer, offset, length, position) {
var contents = stream.node.contents;
if (position >= stream.node.usedBytes) return 0;
var size = Math.min(stream.node.usedBytes - position, length);
assert(size >= 0);
if (size > 8 && contents.subarray) { // non-trivial, and typed array
buffer.set(contents.subarray(position, position + size), offset);
} else {
for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];
}
return size;
},write:function (stream, buffer, offset, length, position, canOwn) {
if (!length) return 0;
var node = stream.node;
node.timestamp = Date.now();
if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array?
if (canOwn) { // Can we just reuse the buffer we are given?
assert(position === 0, 'canOwn must imply no weird position inside the file');
node.contents = buffer.subarray(offset, offset + length);
node.usedBytes = length;
return length;
} else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data.
node.contents = new Uint8Array(buffer.subarray(offset, offset + length));
node.usedBytes = length;
return length;
} else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file?
node.contents.set(buffer.subarray(offset, offset + length), position);
return length;
}
}
// Appending to an existing file and we need to reallocate, or source data did not come as a typed array.
MEMFS.expandFileStorage(node, position+length);
if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available.
else {
for (var i = 0; i < length; i++) {
node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not.
}
}
node.usedBytes = Math.max(node.usedBytes, position+length);
return length;
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
position += stream.node.usedBytes;
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
},allocate:function (stream, offset, length) {
MEMFS.expandFileStorage(stream.node, offset + length);
stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
},mmap:function (stream, buffer, offset, length, position, prot, flags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
var ptr;
var allocated;
var contents = stream.node.contents;
// Only make a new copy when MAP_PRIVATE is specified.
if ( !(flags & 2) &&
(contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
// We can't emulate MAP_SHARED when the file is not backed by the buffer
// we're mapping to (e.g. the HEAP buffer).
allocated = false;
ptr = contents.byteOffset;
} else {
// Try to avoid unnecessary slices.
if (position > 0 || position + length < stream.node.usedBytes) {
if (contents.subarray) {
contents = contents.subarray(position, position + length);
} else {
contents = Array.prototype.slice.call(contents, position, position + length);
}
}
allocated = true;
ptr = _malloc(length);
if (!ptr) {
throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
}
buffer.set(contents, ptr);
}
return { ptr: ptr, allocated: allocated };
},msync:function (stream, buffer, offset, length, mmapFlags) {
if (!FS.isFile(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
if (mmapFlags & 2) {
// MAP_PRIVATE calls need not to be synced back to underlying fs
return 0;
}
var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
// should we check if bytesWritten and length are the same?
return 0;
}}};
var IDBFS={dbs:{},indexedDB:function () {
if (typeof indexedDB !== 'undefined') return indexedDB;
var ret = null;
if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
assert(ret, 'IDBFS used, but indexedDB not supported');
return ret;
},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {
// reuse all of the core MEMFS functionality
return MEMFS.mount.apply(null, arguments);
},syncfs:function (mount, populate, callback) {
IDBFS.getLocalSet(mount, function(err, local) {
if (err) return callback(err);
IDBFS.getRemoteSet(mount, function(err, remote) {
if (err) return callback(err);
var src = populate ? remote : local;
var dst = populate ? local : remote;
IDBFS.reconcile(src, dst, callback);
});
});
},getDB:function (name, callback) {
// check the cache first
var db = IDBFS.dbs[name];
if (db) {
return callback(null, db);
}
var req;
try {
req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
} catch (e) {
return callback(e);
}
req.onupgradeneeded = function(e) {
var db = e.target.result;
var transaction = e.target.transaction;
var fileStore;
if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
} else {
fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
}
if (!fileStore.indexNames.contains('timestamp')) {
fileStore.createIndex('timestamp', 'timestamp', { unique: false });
}
};
req.onsuccess = function() {
db = req.result;
// add to the cache
IDBFS.dbs[name] = db;
callback(null, db);
};
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},getLocalSet:function (mount, callback) {
var entries = {};
function isRealDir(p) {
return p !== '.' && p !== '..';
};
function toAbsolute(root) {
return function(p) {
return PATH.join2(root, p);
}
};
var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
while (check.length) {
var path = check.pop();
var stat;
try {
stat = FS.stat(path);
} catch (e) {
return callback(e);
}
if (FS.isDir(stat.mode)) {
check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
}
entries[path] = { timestamp: stat.mtime };
}
return callback(null, { type: 'local', entries: entries });
},getRemoteSet:function (mount, callback) {
var entries = {};
IDBFS.getDB(mount.mountpoint, function(err, db) {
if (err) return callback(err);
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
transaction.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
var index = store.index('timestamp');
index.openKeyCursor().onsuccess = function(event) {
var cursor = event.target.result;
if (!cursor) {
return callback(null, { type: 'remote', db: db, entries: entries });
}
entries[cursor.primaryKey] = { timestamp: cursor.key };
cursor.continue();
};
});
},loadLocalEntry:function (path, callback) {
var stat, node;
try {
var lookup = FS.lookupPath(path);
node = lookup.node;
stat = FS.stat(path);
} catch (e) {
return callback(e);
}
if (FS.isDir(stat.mode)) {
return callback(null, { timestamp: stat.mtime, mode: stat.mode });
} else if (FS.isFile(stat.mode)) {
// Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array.
// Therefore always convert the file contents to a typed array first before writing the data to IndexedDB.
node.contents = MEMFS.getFileDataAsTypedArray(node);
return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
} else {
return callback(new Error('node type not supported'));
}
},storeLocalEntry:function (path, entry, callback) {
try {
if (FS.isDir(entry.mode)) {
FS.mkdir(path, entry.mode);
} else if (FS.isFile(entry.mode)) {
FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true });
} else {
return callback(new Error('node type not supported'));
}
FS.chmod(path, entry.mode);
FS.utime(path, entry.timestamp, entry.timestamp);
} catch (e) {
return callback(e);
}
callback(null);
},removeLocalEntry:function (path, callback) {
try {
var lookup = FS.lookupPath(path);
var stat = FS.stat(path);
if (FS.isDir(stat.mode)) {
FS.rmdir(path);
} else if (FS.isFile(stat.mode)) {
FS.unlink(path);
}
} catch (e) {
return callback(e);
}
callback(null);
},loadRemoteEntry:function (store, path, callback) {
var req = store.get(path);
req.onsuccess = function(event) { callback(null, event.target.result); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},storeRemoteEntry:function (store, path, entry, callback) {
var req = store.put(entry, path);
req.onsuccess = function() { callback(null); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},removeRemoteEntry:function (store, path, callback) {
var req = store.delete(path);
req.onsuccess = function() { callback(null); };
req.onerror = function(e) {
callback(this.error);
e.preventDefault();
};
},reconcile:function (src, dst, callback) {
var total = 0;
var create = [];
Object.keys(src.entries).forEach(function (key) {
var e = src.entries[key];
var e2 = dst.entries[key];
if (!e2 || e.timestamp > e2.timestamp) {
create.push(key);
total++;
}
});
var remove = [];
Object.keys(dst.entries).forEach(function (key) {
var e = dst.entries[key];
var e2 = src.entries[key];
if (!e2) {
remove.push(key);
total++;
}
});
if (!total) {
return callback(null);
}
var errored = false;
var completed = 0;
var db = src.type === 'remote' ? src.db : dst.db;
var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return callback(err);
}
return;
}
if (++completed >= total) {
return callback(null);
}
};
transaction.onerror = function(e) {
done(this.error);
e.preventDefault();
};
// sort paths in ascending order so directory entries are created
// before the files inside them
create.sort().forEach(function (path) {
if (dst.type === 'local') {
IDBFS.loadRemoteEntry(store, path, function (err, entry) {
if (err) return done(err);
IDBFS.storeLocalEntry(path, entry, done);
});
} else {
IDBFS.loadLocalEntry(path, function (err, entry) {
if (err) return done(err);
IDBFS.storeRemoteEntry(store, path, entry, done);
});
}
});
// sort paths in descending order so files are deleted before their
// parent directories
remove.sort().reverse().forEach(function(path) {
if (dst.type === 'local') {
IDBFS.removeLocalEntry(path, done);
} else {
IDBFS.removeRemoteEntry(store, path, done);
}
});
}};
var NODEFS={isWindows:false,staticInit:function () {
NODEFS.isWindows = !!process.platform.match(/^win/);
},mount:function (mount) {
assert(ENVIRONMENT_IS_NODE);
return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
},createNode:function (parent, name, mode, dev) {
if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var node = FS.createNode(parent, name, mode);
node.node_ops = NODEFS.node_ops;
node.stream_ops = NODEFS.stream_ops;
return node;
},getMode:function (path) {
var stat;
try {
stat = fs.lstatSync(path);
if (NODEFS.isWindows) {
// On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so
// propagate write bits to execute bits.
stat.mode = stat.mode | ((stat.mode & 146) >> 1);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return stat.mode;
},realPath:function (node) {
var parts = [];
while (node.parent !== node) {
parts.push(node.name);
node = node.parent;
}
parts.push(node.mount.opts.root);
parts.reverse();
return PATH.join.apply(null, parts);
},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) {
flags &= ~0100000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
if (flags in NODEFS.flagsToPermissionStringMap) {
return NODEFS.flagsToPermissionStringMap[flags];
} else {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
},node_ops:{getattr:function (node) {
var path = NODEFS.realPath(node);
var stat;
try {
stat = fs.lstatSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
// node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
// See http://support.microsoft.com/kb/140365
if (NODEFS.isWindows && !stat.blksize) {
stat.blksize = 4096;
}
if (NODEFS.isWindows && !stat.blocks) {
stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
}
return {
dev: stat.dev,
ino: stat.ino,
mode: stat.mode,
nlink: stat.nlink,
uid: stat.uid,
gid: stat.gid,
rdev: stat.rdev,
size: stat.size,
atime: stat.atime,
mtime: stat.mtime,
ctime: stat.ctime,
blksize: stat.blksize,
blocks: stat.blocks
};
},setattr:function (node, attr) {
var path = NODEFS.realPath(node);
try {
if (attr.mode !== undefined) {
fs.chmodSync(path, attr.mode);
// update the common node structure mode as well
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
var date = new Date(attr.timestamp);
fs.utimesSync(path, date, date);
}
if (attr.size !== undefined) {
fs.truncateSync(path, attr.size);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},lookup:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
var mode = NODEFS.getMode(path);
return NODEFS.createNode(parent, name, mode);
},mknod:function (parent, name, mode, dev) {
var node = NODEFS.createNode(parent, name, mode, dev);
// create the backing node for this in the fs root as well
var path = NODEFS.realPath(node);
try {
if (FS.isDir(node.mode)) {
fs.mkdirSync(path, node.mode);
} else {
fs.writeFileSync(path, '', { mode: node.mode });
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return node;
},rename:function (oldNode, newDir, newName) {
var oldPath = NODEFS.realPath(oldNode);
var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
try {
fs.renameSync(oldPath, newPath);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},unlink:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
try {
fs.unlinkSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},rmdir:function (parent, name) {
var path = PATH.join2(NODEFS.realPath(parent), name);
try {
fs.rmdirSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},readdir:function (node) {
var path = NODEFS.realPath(node);
try {
return fs.readdirSync(path);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},symlink:function (parent, newName, oldPath) {
var newPath = PATH.join2(NODEFS.realPath(parent), newName);
try {
fs.symlinkSync(oldPath, newPath);
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},readlink:function (node) {
var path = NODEFS.realPath(node);
try {
path = fs.readlinkSync(path);
path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path);
return path;
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
}},stream_ops:{open:function (stream) {
var path = NODEFS.realPath(stream.node);
try {
if (FS.isFile(stream.node.mode)) {
stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags));
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},close:function (stream) {
try {
if (FS.isFile(stream.node.mode) && stream.nfd) {
fs.closeSync(stream.nfd);
}
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
},read:function (stream, buffer, offset, length, position) {
if (length === 0) return 0; // node errors on 0 length reads
// FIXME this is terrible.
var nbuffer = new Buffer(length);
var res;
try {
res = fs.readSync(stream.nfd, nbuffer, 0, length, position);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
if (res > 0) {
for (var i = 0; i < res; i++) {
buffer[offset + i] = nbuffer[i];
}
}
return res;
},write:function (stream, buffer, offset, length, position) {
// FIXME this is terrible.
var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
var res;
try {
res = fs.writeSync(stream.nfd, nbuffer, 0, length, position);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
return res;
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
try {
var stat = fs.fstatSync(stream.nfd);
position += stat.size;
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code]);
}
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
}}};
var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function (mount) {
assert(ENVIRONMENT_IS_WORKER);
if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();
var root = WORKERFS.createNode(null, '/', WORKERFS.DIR_MODE, 0);
var createdParents = {};
function ensureParent(path) {
// return the parent node, creating subdirs as necessary
var parts = path.split('/');
var parent = root;
for (var i = 0; i < parts.length-1; i++) {
var curr = parts.slice(0, i+1).join('/');
if (!createdParents[curr]) {
createdParents[curr] = WORKERFS.createNode(parent, curr, WORKERFS.DIR_MODE, 0);
}
parent = createdParents[curr];
}
return parent;
}
function base(path) {
var parts = path.split('/');
return parts[parts.length-1];
}
// We also accept FileList here, by using Array.prototype
Array.prototype.forEach.call(mount.opts["files"] || [], function(file) {
WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);
});
(mount.opts["blobs"] || []).forEach(function(obj) {
WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]);
});
(mount.opts["packages"] || []).forEach(function(pack) {
pack['metadata'].files.forEach(function(file) {
var name = file.filename.substr(1); // remove initial slash
WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack['blob'].slice(file.start, file.end));
});
});
return root;
},createNode:function (parent, name, mode, dev, contents, mtime) {
var node = FS.createNode(parent, name, mode);
node.mode = mode;
node.node_ops = WORKERFS.node_ops;
node.stream_ops = WORKERFS.stream_ops;
node.timestamp = (mtime || new Date).getTime();
assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);
if (mode === WORKERFS.FILE_MODE) {
node.size = contents.size;
node.contents = contents;
} else {
node.size = 4096;
node.contents = {};
}
if (parent) {
parent.contents[name] = node;
}
return node;
},node_ops:{getattr:function (node) {
return {
dev: 1,
ino: undefined,
mode: node.mode,
nlink: 1,
uid: 0,
gid: 0,
rdev: undefined,
size: node.size,
atime: new Date(node.timestamp),
mtime: new Date(node.timestamp),
ctime: new Date(node.timestamp),
blksize: 4096,
blocks: Math.ceil(node.size / 4096),
};
},setattr:function (node, attr) {
if (attr.mode !== undefined) {
node.mode = attr.mode;
}
if (attr.timestamp !== undefined) {
node.timestamp = attr.timestamp;
}
},lookup:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
},mknod:function (parent, name, mode, dev) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},rename:function (oldNode, newDir, newName) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},unlink:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},rmdir:function (parent, name) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},readdir:function (node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},symlink:function (parent, newName, oldPath) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
},readlink:function (node) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}},stream_ops:{read:function (stream, buffer, offset, length, position) {
if (position >= stream.node.size) return 0;
var chunk = stream.node.contents.slice(position, position + length);
var ab = WORKERFS.reader.readAsArrayBuffer(chunk);
buffer.set(new Uint8Array(ab), offset);
return chunk.size;
},write:function (stream, buffer, offset, length, position) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
},llseek:function (stream, offset, whence) {
var position = offset;
if (whence === 1) { // SEEK_CUR.
position += stream.position;
} else if (whence === 2) { // SEEK_END.
if (FS.isFile(stream.node.mode)) {
position += stream.node.size;
}
}
if (position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return position;
}}};
var _stdin=allocate(1, "i32*", ALLOC_STATIC);
var _stdout=allocate(1, "i32*", ALLOC_STATIC);
var _stderr=allocate(1, "i32*", ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:function (e) {
if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
return ___setErrNo(e.errno);
},lookupPath:function (path, opts) {
path = PATH.resolve(FS.cwd(), path);
opts = opts || {};
if (!path) return { path: '', node: null };
var defaults = {
follow_mount: true,
recurse_count: 0
};
for (var key in defaults) {
if (opts[key] === undefined) {
opts[key] = defaults[key];
}
}
if (opts.recurse_count > 8) { // max recursive lookup of 8
throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
}
// split the path
var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
return !!p;
}), false);
// start at the root
var current = FS.root;
var current_path = '/';
for (var i = 0; i < parts.length; i++) {
var islast = (i === parts.length-1);
if (islast && opts.parent) {
// stop resolving
break;
}
current = FS.lookupNode(current, parts[i]);
current_path = PATH.join2(current_path, parts[i]);
// jump to the mount's root node if this is a mountpoint
if (FS.isMountpoint(current)) {
if (!islast || (islast && opts.follow_mount)) {
current = current.mounted.root;
}
}
// by default, lookupPath will not follow a symlink if it is the final path component.
// setting opts.follow = true will override this behavior.
if (!islast || opts.follow) {
var count = 0;
while (FS.isLink(current.mode)) {
var link = FS.readlink(current_path);
current_path = PATH.resolve(PATH.dirname(current_path), link);
var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
current = lookup.node;
if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
}
}
}
}
return { path: current_path, node: current };
},getPath:function (node) {
var path;
while (true) {
if (FS.isRoot(node)) {
var mount = node.mount.mountpoint;
if (!path) return mount;
return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
}
path = path ? node.name + '/' + path : node.name;
node = node.parent;
}
},hashName:function (parentid, name) {
var hash = 0;
for (var i = 0; i < name.length; i++) {
hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
}
return ((parentid + hash) >>> 0) % FS.nameTable.length;
},hashAddNode:function (node) {
var hash = FS.hashName(node.parent.id, node.name);
node.name_next = FS.nameTable[hash];
FS.nameTable[hash] = node;
},hashRemoveNode:function (node) {
var hash = FS.hashName(node.parent.id, node.name);
if (FS.nameTable[hash] === node) {
FS.nameTable[hash] = node.name_next;
} else {
var current = FS.nameTable[hash];
while (current) {
if (current.name_next === node) {
current.name_next = node.name_next;
break;
}
current = current.name_next;
}
}
},lookupNode:function (parent, name) {
var err = FS.mayLookup(parent);
if (err) {
throw new FS.ErrnoError(err, parent);
}
var hash = FS.hashName(parent.id, name);
for (var node = FS.nameTable[hash]; node; node = node.name_next) {
var nodeName = node.name;
if (node.parent.id === parent.id && nodeName === name) {
return node;
}
}
// if we failed to find it in the cache, call into the VFS
return FS.lookup(parent, name);
},createNode:function (parent, name, mode, rdev) {
if (!FS.FSNode) {
FS.FSNode = function(parent, name, mode, rdev) {
if (!parent) {
parent = this; // root node sets parent to itself
}
this.parent = parent;
this.mount = parent.mount;
this.mounted = null;
this.id = FS.nextInode++;
this.name = name;
this.mode = mode;
this.node_ops = {};
this.stream_ops = {};
this.rdev = rdev;
};
FS.FSNode.prototype = {};
// compatibility
var readMode = 292 | 73;
var writeMode = 146;
// NOTE we must use Object.defineProperties instead of individual calls to
// Object.defineProperty in order to make closure compiler happy
Object.defineProperties(FS.FSNode.prototype, {
read: {
get: function() { return (this.mode & readMode) === readMode; },
set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
},
write: {
get: function() { return (this.mode & writeMode) === writeMode; },
set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
},
isFolder: {
get: function() { return FS.isDir(this.mode); }
},
isDevice: {
get: function() { return FS.isChrdev(this.mode); }
}
});
}
var node = new FS.FSNode(parent, name, mode, rdev);
FS.hashAddNode(node);
return node;
},destroyNode:function (node) {
FS.hashRemoveNode(node);
},isRoot:function (node) {
return node === node.parent;
},isMountpoint:function (node) {
return !!node.mounted;
},isFile:function (mode) {
return (mode & 61440) === 32768;
},isDir:function (mode) {
return (mode & 61440) === 16384;
},isLink:function (mode) {
return (mode & 61440) === 40960;
},isChrdev:function (mode) {
return (mode & 61440) === 8192;
},isBlkdev:function (mode) {
return (mode & 61440) === 24576;
},isFIFO:function (mode) {
return (mode & 61440) === 4096;
},isSocket:function (mode) {
return (mode & 49152) === 49152;
},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) {
var flags = FS.flagModes[str];
if (typeof flags === 'undefined') {
throw new Error('Unknown file open mode: ' + str);
}
return flags;
},flagsToPermissionString:function (flag) {
var perms = ['r', 'w', 'rw'][flag & 3];
if ((flag & 512)) {
perms += 'w';
}
return perms;
},nodePermissions:function (node, perms) {
if (FS.ignorePermissions) {
return 0;
}
// return 0 if any user, group or owner bits are set.
if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
return ERRNO_CODES.EACCES;
} else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
return ERRNO_CODES.EACCES;
} else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
return ERRNO_CODES.EACCES;
}
return 0;
},mayLookup:function (dir) {
var err = FS.nodePermissions(dir, 'x');
if (err) return err;
if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES;
return 0;
},mayCreate:function (dir, name) {
try {
var node = FS.lookupNode(dir, name);
return ERRNO_CODES.EEXIST;
} catch (e) {
}
return FS.nodePermissions(dir, 'wx');
},mayDelete:function (dir, name, isdir) {
var node;
try {
node = FS.lookupNode(dir, name);
} catch (e) {
return e.errno;
}
var err = FS.nodePermissions(dir, 'wx');
if (err) {
return err;
}
if (isdir) {
if (!FS.isDir(node.mode)) {
return ERRNO_CODES.ENOTDIR;
}
if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
return ERRNO_CODES.EBUSY;
}
} else {
if (FS.isDir(node.mode)) {
return ERRNO_CODES.EISDIR;
}
}
return 0;
},mayOpen:function (node, flags) {
if (!node) {
return ERRNO_CODES.ENOENT;
}
if (FS.isLink(node.mode)) {
return ERRNO_CODES.ELOOP;
} else if (FS.isDir(node.mode)) {
if ((flags & 2097155) !== 0 || // opening for write
(flags & 512)) {
return ERRNO_CODES.EISDIR;
}
}
return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
},MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
fd_start = fd_start || 0;
fd_end = fd_end || FS.MAX_OPEN_FDS;
for (var fd = fd_start; fd <= fd_end; fd++) {
if (!FS.streams[fd]) {
return fd;
}
}
throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
},getStream:function (fd) {
return FS.streams[fd];
},createStream:function (stream, fd_start, fd_end) {
if (!FS.FSStream) {
FS.FSStream = function(){};
FS.FSStream.prototype = {};
// compatibility
Object.defineProperties(FS.FSStream.prototype, {
object: {
get: function() { return this.node; },
set: function(val) { this.node = val; }
},
isRead: {
get: function() { return (this.flags & 2097155) !== 1; }
},
isWrite: {
get: function() { return (this.flags & 2097155) !== 0; }
},
isAppend: {
get: function() { return (this.flags & 1024); }
}
});
}
// clone it, so we can return an instance of FSStream
var newStream = new FS.FSStream();
for (var p in stream) {
newStream[p] = stream[p];
}
stream = newStream;
var fd = FS.nextfd(fd_start, fd_end);
stream.fd = fd;
FS.streams[fd] = stream;
return stream;
},closeStream:function (fd) {
FS.streams[fd] = null;
},chrdev_stream_ops:{open:function (stream) {
var device = FS.getDevice(stream.node.rdev);
// override node's stream ops with the device's
stream.stream_ops = device.stream_ops;
// forward the open call
if (stream.stream_ops.open) {
stream.stream_ops.open(stream);
}
},llseek:function () {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}},major:function (dev) {
return ((dev) >> 8);
},minor:function (dev) {
return ((dev) & 0xff);
},makedev:function (ma, mi) {
return ((ma) << 8 | (mi));
},registerDevice:function (dev, ops) {
FS.devices[dev] = { stream_ops: ops };
},getDevice:function (dev) {
return FS.devices[dev];
},getMounts:function (mount) {
var mounts = [];
var check = [mount];
while (check.length) {
var m = check.pop();
mounts.push(m);
check.push.apply(check, m.mounts);
}
return mounts;
},syncfs:function (populate, callback) {
if (typeof(populate) === 'function') {
callback = populate;
populate = false;
}
var mounts = FS.getMounts(FS.root.mount);
var completed = 0;
function done(err) {
if (err) {
if (!done.errored) {
done.errored = true;
return callback(err);
}
return;
}
if (++completed >= mounts.length) {
callback(null);
}
};
// sync all mounts
mounts.forEach(function (mount) {
if (!mount.type.syncfs) {
return done(null);
}
mount.type.syncfs(mount, populate, done);
});
},mount:function (type, opts, mountpoint) {
var root = mountpoint === '/';
var pseudo = !mountpoint;
var node;
if (root && FS.root) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
} else if (!root && !pseudo) {
var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
mountpoint = lookup.path; // use the absolute path
node = lookup.node;
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
if (!FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
}
var mount = {
type: type,
opts: opts,
mountpoint: mountpoint,
mounts: []
};
// create a root node for the fs
var mountRoot = type.mount(mount);
mountRoot.mount = mount;
mount.root = mountRoot;
if (root) {
FS.root = mountRoot;
} else if (node) {
// set as a mountpoint
node.mounted = mount;
// add the new mount to the current mount's children
if (node.mount) {
node.mount.mounts.push(mount);
}
}
return mountRoot;
},unmount:function (mountpoint) {
var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
if (!FS.isMountpoint(lookup.node)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
// destroy the nodes for this mount, and all its child mounts
var node = lookup.node;
var mount = node.mounted;
var mounts = FS.getMounts(mount);
Object.keys(FS.nameTable).forEach(function (hash) {
var current = FS.nameTable[hash];
while (current) {
var next = current.name_next;
if (mounts.indexOf(current.mount) !== -1) {
FS.destroyNode(current);
}
current = next;
}
});
// no longer a mountpoint
node.mounted = null;
// remove this mount from the child mounts
var idx = node.mount.mounts.indexOf(mount);
assert(idx !== -1);
node.mount.mounts.splice(idx, 1);
},lookup:function (parent, name) {
return parent.node_ops.lookup(parent, name);
},mknod:function (path, mode, dev) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
if (!name || name === '.' || name === '..') {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var err = FS.mayCreate(parent, name);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.mknod) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
return parent.node_ops.mknod(parent, name, mode, dev);
},create:function (path, mode) {
mode = mode !== undefined ? mode : 438 /* 0666 */;
mode &= 4095;
mode |= 32768;
return FS.mknod(path, mode, 0);
},mkdir:function (path, mode) {
mode = mode !== undefined ? mode : 511 /* 0777 */;
mode &= 511 | 512;
mode |= 16384;
return FS.mknod(path, mode, 0);
},mkdev:function (path, mode, dev) {
if (typeof(dev) === 'undefined') {
dev = mode;
mode = 438 /* 0666 */;
}
mode |= 8192;
return FS.mknod(path, mode, dev);
},symlink:function (oldpath, newpath) {
if (!PATH.resolve(oldpath)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
var lookup = FS.lookupPath(newpath, { parent: true });
var parent = lookup.node;
if (!parent) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
var newname = PATH.basename(newpath);
var err = FS.mayCreate(parent, newname);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.symlink) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
return parent.node_ops.symlink(parent, newname, oldpath);
},rename:function (old_path, new_path) {
var old_dirname = PATH.dirname(old_path);
var new_dirname = PATH.dirname(new_path);
var old_name = PATH.basename(old_path);
var new_name = PATH.basename(new_path);
// parents must exist
var lookup, old_dir, new_dir;
try {
lookup = FS.lookupPath(old_path, { parent: true });
old_dir = lookup.node;
lookup = FS.lookupPath(new_path, { parent: true });
new_dir = lookup.node;
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
// need to be part of the same mount
if (old_dir.mount !== new_dir.mount) {
throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
}
// source must exist
var old_node = FS.lookupNode(old_dir, old_name);
// old path should not be an ancestor of the new path
var relative = PATH.relative(old_path, new_dirname);
if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
// new path should not be an ancestor of the old path
relative = PATH.relative(new_path, old_dirname);
if (relative.charAt(0) !== '.') {
throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
}
// see if the new path already exists
var new_node;
try {
new_node = FS.lookupNode(new_dir, new_name);
} catch (e) {
// not fatal
}
// early out if nothing needs to change
if (old_node === new_node) {
return;
}
// we'll need to delete the old entry
var isdir = FS.isDir(old_node.mode);
var err = FS.mayDelete(old_dir, old_name, isdir);
if (err) {
throw new FS.ErrnoError(err);
}
// need delete permissions if we'll be overwriting.
// need create permissions if new doesn't already exist.
err = new_node ?
FS.mayDelete(new_dir, new_name, isdir) :
FS.mayCreate(new_dir, new_name);
if (err) {
throw new FS.ErrnoError(err);
}
if (!old_dir.node_ops.rename) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
// if we are going to change the parent, check write permissions
if (new_dir !== old_dir) {
err = FS.nodePermissions(old_dir, 'w');
if (err) {
throw new FS.ErrnoError(err);
}
}
try {
if (FS.trackingDelegate['willMovePath']) {
FS.trackingDelegate['willMovePath'](old_path, new_path);
}
} catch(e) {
console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
}
// remove the node from the lookup hash
FS.hashRemoveNode(old_node);
// do the underlying fs rename
try {
old_dir.node_ops.rename(old_node, new_dir, new_name);
} catch (e) {
throw e;
} finally {
// add the node back to the hash (in case node_ops.rename
// changed its name)
FS.hashAddNode(old_node);
}
try {
if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path);
} catch(e) {
console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message);
}
},rmdir:function (path) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
var node = FS.lookupNode(parent, name);
var err = FS.mayDelete(parent, name, true);
if (err) {
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.rmdir) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
try {
if (FS.trackingDelegate['willDeletePath']) {
FS.trackingDelegate['willDeletePath'](path);
}
} catch(e) {
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
}
parent.node_ops.rmdir(parent, name);
FS.destroyNode(node);
try {
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
} catch(e) {
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
}
},readdir:function (path) {
var lookup = FS.lookupPath(path, { follow: true });
var node = lookup.node;
if (!node.node_ops.readdir) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
return node.node_ops.readdir(node);
},unlink:function (path) {
var lookup = FS.lookupPath(path, { parent: true });
var parent = lookup.node;
var name = PATH.basename(path);
var node = FS.lookupNode(parent, name);
var err = FS.mayDelete(parent, name, false);
if (err) {
// POSIX says unlink should set EPERM, not EISDIR
if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
throw new FS.ErrnoError(err);
}
if (!parent.node_ops.unlink) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isMountpoint(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
}
try {
if (FS.trackingDelegate['willDeletePath']) {
FS.trackingDelegate['willDeletePath'](path);
}
} catch(e) {
console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message);
}
parent.node_ops.unlink(parent, name);
FS.destroyNode(node);
try {
if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path);
} catch(e) {
console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message);
}
},readlink:function (path) {
var lookup = FS.lookupPath(path);
var link = lookup.node;
if (!link) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
if (!link.node_ops.readlink) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
},stat:function (path, dontFollow) {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
var node = lookup.node;
if (!node) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
if (!node.node_ops.getattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
return node.node_ops.getattr(node);
},lstat:function (path) {
return FS.stat(path, true);
},chmod:function (path, mode, dontFollow) {
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
node.node_ops.setattr(node, {
mode: (mode & 4095) | (node.mode & ~4095),
timestamp: Date.now()
});
},lchmod:function (path, mode) {
FS.chmod(path, mode, true);
},fchmod:function (fd, mode) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
FS.chmod(stream.node, mode);
},chown:function (path, uid, gid, dontFollow) {
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: !dontFollow });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
node.node_ops.setattr(node, {
timestamp: Date.now()
// we ignore the uid / gid for now
});
},lchown:function (path, uid, gid) {
FS.chown(path, uid, gid, true);
},fchown:function (fd, uid, gid) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
FS.chown(stream.node, uid, gid);
},truncate:function (path, len) {
if (len < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var node;
if (typeof path === 'string') {
var lookup = FS.lookupPath(path, { follow: true });
node = lookup.node;
} else {
node = path;
}
if (!node.node_ops.setattr) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM);
}
if (FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
}
if (!FS.isFile(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var err = FS.nodePermissions(node, 'w');
if (err) {
throw new FS.ErrnoError(err);
}
node.node_ops.setattr(node, {
size: len,
timestamp: Date.now()
});
},ftruncate:function (fd, len) {
var stream = FS.getStream(fd);
if (!stream) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
FS.truncate(stream.node, len);
},utime:function (path, atime, mtime) {
var lookup = FS.lookupPath(path, { follow: true });
var node = lookup.node;
node.node_ops.setattr(node, {
timestamp: Math.max(atime, mtime)
});
},open:function (path, flags, mode, fd_start, fd_end) {
if (path === "") {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
if ((flags & 64)) {
mode = (mode & 4095) | 32768;
} else {
mode = 0;
}
var node;
if (typeof path === 'object') {
node = path;
} else {
path = PATH.normalize(path);
try {
var lookup = FS.lookupPath(path, {
follow: !(flags & 131072)
});
node = lookup.node;
} catch (e) {
// ignore
}
}
// perhaps we need to create the node
var created = false;
if ((flags & 64)) {
if (node) {
// if O_CREAT and O_EXCL are set, error out if the node already exists
if ((flags & 128)) {
throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
}
} else {
// node doesn't exist, try to create it
node = FS.mknod(path, mode, 0);
created = true;
}
}
if (!node) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
}
// can't truncate a device
if (FS.isChrdev(node.mode)) {
flags &= ~512;
}
// if asked only for a directory, then this must be one
if ((flags & 65536) && !FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
// check permissions, if this is not a file we just created now (it is ok to
// create and write to a file with read-only permissions; it is read-only
// for later use)
if (!created) {
var err = FS.mayOpen(node, flags);
if (err) {
throw new FS.ErrnoError(err);
}
}
// do truncation if necessary
if ((flags & 512)) {
FS.truncate(node, 0);
}
// we've already handled these, don't pass down to the underlying vfs
flags &= ~(128 | 512);
// register the stream with the filesystem
var stream = FS.createStream({
node: node,
path: FS.getPath(node), // we want the absolute path to the node
flags: flags,
seekable: true,
position: 0,
stream_ops: node.stream_ops,
// used by the file family libc calls (fopen, fwrite, ferror, etc.)
ungotten: [],
error: false
}, fd_start, fd_end);
// call the new stream's open function
if (stream.stream_ops.open) {
stream.stream_ops.open(stream);
}
if (Module['logReadFiles'] && !(flags & 1)) {
if (!FS.readFiles) FS.readFiles = {};
if (!(path in FS.readFiles)) {
FS.readFiles[path] = 1;
Module['printErr']('read file: ' + path);
}
}
try {
if (FS.trackingDelegate['onOpenFile']) {
var trackingFlags = 0;
if ((flags & 2097155) !== 1) {
trackingFlags |= FS.tracking.openFlags.READ;
}
if ((flags & 2097155) !== 0) {
trackingFlags |= FS.tracking.openFlags.WRITE;
}
FS.trackingDelegate['onOpenFile'](path, trackingFlags);
}
} catch(e) {
console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message);
}
return stream;
},close:function (stream) {
if (stream.getdents) stream.getdents = null; // free readdir state
try {
if (stream.stream_ops.close) {
stream.stream_ops.close(stream);
}
} catch (e) {
throw e;
} finally {
FS.closeStream(stream.fd);
}
},llseek:function (stream, offset, whence) {
if (!stream.seekable || !stream.stream_ops.llseek) {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}
stream.position = stream.stream_ops.llseek(stream, offset, whence);
stream.ungotten = [];
return stream.position;
},read:function (stream, buffer, offset, length, position) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if ((stream.flags & 2097155) === 1) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if (FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
}
if (!stream.stream_ops.read) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
var seeking = true;
if (typeof position === 'undefined') {
position = stream.position;
seeking = false;
} else if (!stream.seekable) {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}
var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
if (!seeking) stream.position += bytesRead;
return bytesRead;
},write:function (stream, buffer, offset, length, position, canOwn) {
if (length < 0 || position < 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if (FS.isDir(stream.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
}
if (!stream.stream_ops.write) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if (stream.flags & 1024) {
// seek to the end before writing in append mode
FS.llseek(stream, 0, 2);
}
var seeking = true;
if (typeof position === 'undefined') {
position = stream.position;
seeking = false;
} else if (!stream.seekable) {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
}
var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
if (!seeking) stream.position += bytesWritten;
try {
if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path);
} catch(e) {
console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message);
}
return bytesWritten;
},allocate:function (stream, offset, length) {
if (offset < 0 || length <= 0) {
throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
}
if ((stream.flags & 2097155) === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EBADF);
}
if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
if (!stream.stream_ops.allocate) {
throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
}
stream.stream_ops.allocate(stream, offset, length);
},mmap:function (stream, buffer, offset, length, position, prot, flags) {
// TODO if PROT is PROT_WRITE, make sure we have write access
if ((stream.flags & 2097155) === 1) {
throw new FS.ErrnoError(ERRNO_CODES.EACCES);
}
if (!stream.stream_ops.mmap) {
throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
}
return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
},msync:function (stream, buffer, offset, length, mmapFlags) {
if (!stream || !stream.stream_ops.msync) {
return 0;
}
return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
},munmap:function (stream) {
return 0;
},ioctl:function (stream, cmd, arg) {
if (!stream.stream_ops.ioctl) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
}
return stream.stream_ops.ioctl(stream, cmd, arg);
},readFile:function (path, opts) {
opts = opts || {};
opts.flags = opts.flags || 'r';
opts.encoding = opts.encoding || 'binary';
if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
throw new Error('Invalid encoding type "' + opts.encoding + '"');
}
var ret;
var stream = FS.open(path, opts.flags);
var stat = FS.stat(path);
var length = stat.size;
var buf = new Uint8Array(length);
FS.read(stream, buf, 0, length, 0);
if (opts.encoding === 'utf8') {
ret = UTF8ArrayToString(buf, 0);
} else if (opts.encoding === 'binary') {
ret = buf;
}
FS.close(stream);
return ret;
},writeFile:function (path, data, opts) {
opts = opts || {};
opts.flags = opts.flags || 'w';
opts.encoding = opts.encoding || 'utf8';
if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
throw new Error('Invalid encoding type "' + opts.encoding + '"');
}
var stream = FS.open(path, opts.flags, opts.mode);
if (opts.encoding === 'utf8') {
var buf = new Uint8Array(lengthBytesUTF8(data)+1);
var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn);
} else if (opts.encoding === 'binary') {
FS.write(stream, data, 0, data.length, 0, opts.canOwn);
}
FS.close(stream);
},cwd:function () {
return FS.currentPath;
},chdir:function (path) {
var lookup = FS.lookupPath(path, { follow: true });
if (!FS.isDir(lookup.node.mode)) {
throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
}
var err = FS.nodePermissions(lookup.node, 'x');
if (err) {
throw new FS.ErrnoError(err);
}
FS.currentPath = lookup.path;
},createDefaultDirectories:function () {
FS.mkdir('/tmp');
FS.mkdir('/home');
FS.mkdir('/home/web_user');
},createDefaultDevices:function () {
// create /dev
FS.mkdir('/dev');
// setup /dev/null
FS.registerDevice(FS.makedev(1, 3), {
read: function() { return 0; },
write: function(stream, buffer, offset, length, pos) { return length; }
});
FS.mkdev('/dev/null', FS.makedev(1, 3));
// setup /dev/tty and /dev/tty1
// stderr needs to print output using Module['printErr']
// so we register a second tty just for it.
TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
FS.mkdev('/dev/tty', FS.makedev(5, 0));
FS.mkdev('/dev/tty1', FS.makedev(6, 0));
// setup /dev/[u]random
var random_device;
if (typeof crypto !== 'undefined') {
// for modern web browsers
var randomBuffer = new Uint8Array(1);
random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };
} else if (ENVIRONMENT_IS_NODE) {
// for nodejs
random_device = function() { return require('crypto').randomBytes(1)[0]; };
} else {
// default for ES5 platforms
random_device = function() { return (Math.random()*256)|0; };
}
FS.createDevice('/dev', 'random', random_device);
FS.createDevice('/dev', 'urandom', random_device);
// we're not going to emulate the actual shm device,
// just create the tmp dirs that reside in it commonly
FS.mkdir('/dev/shm');
FS.mkdir('/dev/shm/tmp');
},createSpecialDirectories:function () {
// create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the name of the stream for fd 6 (see test_unistd_ttyname)
FS.mkdir('/proc');
FS.mkdir('/proc/self');
FS.mkdir('/proc/self/fd');
FS.mount({
mount: function() {
var node = FS.createNode('/proc/self', 'fd', 16384 | 0777, 73);
node.node_ops = {
lookup: function(parent, name) {
var fd = +name;
var stream = FS.getStream(fd);
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
var ret = {
parent: null,
mount: { mountpoint: 'fake' },
node_ops: { readlink: function() { return stream.path } }
};
ret.parent = ret; // make it look like a simple root node
return ret;
}
};
return node;
}
}, {}, '/proc/self/fd');
},createStandardStreams:function () {
// TODO deprecate the old functionality of a single
// input / output callback and that utilizes FS.createDevice
// and instead require a unique set of stream ops
// by default, we symlink the standard streams to the
// default tty devices. however, if the standard streams
// have been overwritten we create a unique device for
// them instead.
if (Module['stdin']) {
FS.createDevice('/dev', 'stdin', Module['stdin']);
} else {
FS.symlink('/dev/tty', '/dev/stdin');
}
if (Module['stdout']) {
FS.createDevice('/dev', 'stdout', null, Module['stdout']);
} else {
FS.symlink('/dev/tty', '/dev/stdout');
}
if (Module['stderr']) {
FS.createDevice('/dev', 'stderr', null, Module['stderr']);
} else {
FS.symlink('/dev/tty1', '/dev/stderr');
}
// open default streams for the stdin, stdout and stderr devices
var stdin = FS.open('/dev/stdin', 'r');
assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');
var stdout = FS.open('/dev/stdout', 'w');
assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');
var stderr = FS.open('/dev/stderr', 'w');
assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');
},ensureErrnoError:function () {
if (FS.ErrnoError) return;
FS.ErrnoError = function ErrnoError(errno, node) {
//Module.printErr(stackTrace()); // useful for debugging
this.node = node;
this.setErrno = function(errno) {
this.errno = errno;
for (var key in ERRNO_CODES) {
if (ERRNO_CODES[key] === errno) {
this.code = key;
break;
}
}
};
this.setErrno(errno);
this.message = ERRNO_MESSAGES[errno];
if (this.stack) this.stack = demangleAll(this.stack);
};
FS.ErrnoError.prototype = new Error();
FS.ErrnoError.prototype.constructor = FS.ErrnoError;
// Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
[ERRNO_CODES.ENOENT].forEach(function(code) {
FS.genericErrors[code] = new FS.ErrnoError(code);
FS.genericErrors[code].stack = '<generic error, no stack>';
});
},staticInit:function () {
FS.ensureErrnoError();
FS.nameTable = new Array(4096);
FS.mount(MEMFS, {}, '/');
FS.createDefaultDirectories();
FS.createDefaultDevices();
FS.createSpecialDirectories();
FS.filesystems = {
'MEMFS': MEMFS,
'IDBFS': IDBFS,
'NODEFS': NODEFS,
'WORKERFS': WORKERFS,
};
},init:function (input, output, error) {
assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
FS.init.initialized = true;
FS.ensureErrnoError();
// Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
Module['stdin'] = input || Module['stdin'];
Module['stdout'] = output || Module['stdout'];
Module['stderr'] = error || Module['stderr'];
FS.createStandardStreams();
},quit:function () {
FS.init.initialized = false;
// force-flush all streams, so we get musl std streams printed out
var fflush = Module['_fflush'];
if (fflush) fflush(0);
// close all of our streams
for (var i = 0; i < FS.streams.length; i++) {
var stream = FS.streams[i];
if (!stream) {
continue;
}
FS.close(stream);
}
},getMode:function (canRead, canWrite) {
var mode = 0;
if (canRead) mode |= 292 | 73;
if (canWrite) mode |= 146;
return mode;
},joinPath:function (parts, forceRelative) {
var path = PATH.join.apply(null, parts);
if (forceRelative && path[0] == '/') path = path.substr(1);
return path;
},absolutePath:function (relative, base) {
return PATH.resolve(base, relative);
},standardizePath:function (path) {
return PATH.normalize(path);
},findObject:function (path, dontResolveLastLink) {
var ret = FS.analyzePath(path, dontResolveLastLink);
if (ret.exists) {
return ret.object;
} else {
___setErrNo(ret.error);
return null;
}
},analyzePath:function (path, dontResolveLastLink) {
// operate from within the context of the symlink's target
try {
var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
path = lookup.path;
} catch (e) {
}
var ret = {
isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
parentExists: false, parentPath: null, parentObject: null
};
try {
var lookup = FS.lookupPath(path, { parent: true });
ret.parentExists = true;
ret.parentPath = lookup.path;
ret.parentObject = lookup.node;
ret.name = PATH.basename(path);
lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
ret.exists = true;
ret.path = lookup.path;
ret.object = lookup.node;
ret.name = lookup.node.name;
ret.isRoot = lookup.path === '/';
} catch (e) {
ret.error = e.errno;
};
return ret;
},createFolder:function (parent, name, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.mkdir(path, mode);
},createPath:function (parent, path, canRead, canWrite) {
parent = typeof parent === 'string' ? parent : FS.getPath(parent);
var parts = path.split('/').reverse();
while (parts.length) {
var part = parts.pop();
if (!part) continue;
var current = PATH.join2(parent, part);
try {
FS.mkdir(current);
} catch (e) {
// ignore EEXIST
}
parent = current;
}
return current;
},createFile:function (parent, name, properties, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(canRead, canWrite);
return FS.create(path, mode);
},createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
var mode = FS.getMode(canRead, canWrite);
var node = FS.create(path, mode);
if (data) {
if (typeof data === 'string') {
var arr = new Array(data.length);
for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
data = arr;
}
// make sure we can write to the file
FS.chmod(node, mode | 146);
var stream = FS.open(node, 'w');
FS.write(stream, data, 0, data.length, 0, canOwn);
FS.close(stream);
FS.chmod(node, mode);
}
return node;
},createDevice:function (parent, name, input, output) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
var mode = FS.getMode(!!input, !!output);
if (!FS.createDevice.major) FS.createDevice.major = 64;
var dev = FS.makedev(FS.createDevice.major++, 0);
// Create a fake device that a set of stream ops to emulate
// the old behavior.
FS.registerDevice(dev, {
open: function(stream) {
stream.seekable = false;
},
close: function(stream) {
// flush any pending line data
if (output && output.buffer && output.buffer.length) {
output(10);
}
},
read: function(stream, buffer, offset, length, pos /* ignored */) {
var bytesRead = 0;
for (var i = 0; i < length; i++) {
var result;
try {
result = input();
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
if (result === undefined && bytesRead === 0) {
throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
}
if (result === null || result === undefined) break;
bytesRead++;
buffer[offset+i] = result;
}
if (bytesRead) {
stream.node.timestamp = Date.now();
}
return bytesRead;
},
write: function(stream, buffer, offset, length, pos) {
for (var i = 0; i < length; i++) {
try {
output(buffer[offset+i]);
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
}
if (length) {
stream.node.timestamp = Date.now();
}
return i;
}
});
return FS.mkdev(path, mode, dev);
},createLink:function (parent, name, target, canRead, canWrite) {
var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
return FS.symlink(target, path);
},forceLoadFile:function (obj) {
if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
var success = true;
if (typeof XMLHttpRequest !== 'undefined') {
throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
} else if (Module['read']) {
// Command-line.
try {
// WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
// read() will try to parse UTF8.
obj.contents = intArrayFromString(Module['read'](obj.url), true);
obj.usedBytes = obj.contents.length;
} catch (e) {
success = false;
}
} else {
throw new Error('Cannot load without read() or XMLHttpRequest.');
}
if (!success) ___setErrNo(ERRNO_CODES.EIO);
return success;
},createLazyFile:function (parent, name, url, canRead, canWrite) {
// Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
function LazyUint8Array() {
this.lengthKnown = false;
this.chunks = []; // Loaded chunks. Index is the chunk number
}
LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
if (idx > this.length-1 || idx < 0) {
return undefined;
}
var chunkOffset = idx % this.chunkSize;
var chunkNum = (idx / this.chunkSize)|0;
return this.getter(chunkNum)[chunkOffset];
}
LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
this.getter = getter;
}
LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
// Find length
var xhr = new XMLHttpRequest();
xhr.open('HEAD', url, false);
xhr.send(null);
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
var datalength = Number(xhr.getResponseHeader("Content-length"));
var header;
var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
var chunkSize = 1024*1024; // Chunk size in bytes
if (!hasByteServing) chunkSize = datalength;
// Function to get a range from the remote URL.
var doXHR = (function(from, to) {
if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
// TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
// Some hints to the browser that we want binary data.
if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
if (xhr.overrideMimeType) {
xhr.overrideMimeType('text/plain; charset=x-user-defined');
}
xhr.send(null);
if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
if (xhr.response !== undefined) {
return new Uint8Array(xhr.response || []);
} else {
return intArrayFromString(xhr.responseText || '', true);
}
});
var lazyArray = this;
lazyArray.setDataGetter(function(chunkNum) {
var start = chunkNum * chunkSize;
var end = (chunkNum+1) * chunkSize - 1; // including this byte
end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
lazyArray.chunks[chunkNum] = doXHR(start, end);
}
if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
return lazyArray.chunks[chunkNum];
});
this._length = datalength;
this._chunkSize = chunkSize;
this.lengthKnown = true;
}
if (typeof XMLHttpRequest !== 'undefined') {
if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
var lazyArray = new LazyUint8Array();
Object.defineProperty(lazyArray, "length", {
get: function() {
if(!this.lengthKnown) {
this.cacheLength();
}
return this._length;
}
});
Object.defineProperty(lazyArray, "chunkSize", {
get: function() {
if(!this.lengthKnown) {
this.cacheLength();
}
return this._chunkSize;
}
});
var properties = { isDevice: false, contents: lazyArray };
} else {
var properties = { isDevice: false, url: url };
}
var node = FS.createFile(parent, name, properties, canRead, canWrite);
// This is a total hack, but I want to get this lazy file code out of the
// core of MEMFS. If we want to keep this lazy file concept I feel it should
// be its own thin LAZYFS proxying calls to MEMFS.
if (properties.contents) {
node.contents = properties.contents;
} else if (properties.url) {
node.contents = null;
node.url = properties.url;
}
// Add a function that defers querying the file size until it is asked the first time.
Object.defineProperty(node, "usedBytes", {
get: function() { return this.contents.length; }
});
// override each stream op with one that tries to force load the lazy file first
var stream_ops = {};
var keys = Object.keys(node.stream_ops);
keys.forEach(function(key) {
var fn = node.stream_ops[key];
stream_ops[key] = function forceLoadLazyFile() {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
return fn.apply(null, arguments);
};
});
// use a custom read function
stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
if (!FS.forceLoadFile(node)) {
throw new FS.ErrnoError(ERRNO_CODES.EIO);
}
var contents = stream.node.contents;
if (position >= contents.length)
return 0;
var size = Math.min(contents.length - position, length);
assert(size >= 0);
if (contents.slice) { // normal array
for (var i = 0; i < size; i++) {
buffer[offset + i] = contents[position + i];
}
} else {
for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
buffer[offset + i] = contents.get(position + i);
}
}
return size;
};
node.stream_ops = stream_ops;
return node;
},createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
Browser.init();
// TODO we should allow people to just pass in a complete filename instead
// of parent and name being that we just join them anyways
var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname
function processData(byteArray) {
function finish(byteArray) {
if (preFinish) preFinish();
if (!dontCreateFile) {
FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
}
if (onload) onload();
removeRunDependency(dep);
}
var handled = false;
Module['preloadPlugins'].forEach(function(plugin) {
if (handled) return;
if (plugin['canHandle'](fullname)) {
plugin['handle'](byteArray, fullname, finish, function() {
if (onerror) onerror();
removeRunDependency(dep);
});
handled = true;
}
});
if (!handled) finish(byteArray);
}
addRunDependency(dep);
if (typeof url == 'string') {
Browser.asyncLoad(url, function(byteArray) {
processData(byteArray);
}, onerror);
} else {
processData(url);
}
},indexedDB:function () {
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
},DB_NAME:function () {
return 'EM_FS_' + window.location.pathname;
},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
onload = onload || function(){};
onerror = onerror || function(){};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
} catch (e) {
return onerror(e);
}
openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
console.log('creating db');
var db = openRequest.result;
db.createObjectStore(FS.DB_STORE_NAME);
};
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0, fail = 0, total = paths.length;
function finish() {
if (fail == 0) onload(); else onerror();
}
paths.forEach(function(path) {
var putRequest = files.put(FS.analyzePath(path).object.contents, path);
putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
});
transaction.onerror = onerror;
};
openRequest.onerror = onerror;
},loadFilesFromDB:function (paths, onload, onerror) {
onload = onload || function(){};
onerror = onerror || function(){};
var indexedDB = FS.indexedDB();
try {
var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
} catch (e) {
return onerror(e);
}
openRequest.onupgradeneeded = onerror; // no database to load from
openRequest.onsuccess = function openRequest_onsuccess() {
var db = openRequest.result;
try {
var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
} catch(e) {
onerror(e);
return;
}
var files = transaction.objectStore(FS.DB_STORE_NAME);
var ok = 0, fail = 0, total = paths.length;
function finish() {
if (fail == 0) onload(); else onerror();
}
paths.forEach(function(path) {
var getRequest = files.get(path);
getRequest.onsuccess = function getRequest_onsuccess() {
if (FS.analyzePath(path).exists) {
FS.unlink(path);
}
FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
ok++;
if (ok + fail == total) finish();
};
getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
});
transaction.onerror = onerror;
};
openRequest.onerror = onerror;
}};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function (dirfd, path) {
if (path[0] !== '/') {
// relative path
var dir;
if (dirfd === -100) {
dir = FS.cwd();
} else {
var dirstream = FS.getStream(dirfd);
if (!dirstream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
dir = dirstream.path;
}
path = PATH.join2(dir, path);
}
return path;
},doStat:function (func, path, buf) {
try {
var stat = func(path);
} catch (e) {
if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
// an error occurred while trying to look up the path; we should just report ENOTDIR
return -ERRNO_CODES.ENOTDIR;
}
throw e;
}
HEAP32[((buf)>>2)]=stat.dev;
HEAP32[(((buf)+(4))>>2)]=0;
HEAP32[(((buf)+(8))>>2)]=stat.ino;
HEAP32[(((buf)+(12))>>2)]=stat.mode;
HEAP32[(((buf)+(16))>>2)]=stat.nlink;
HEAP32[(((buf)+(20))>>2)]=stat.uid;
HEAP32[(((buf)+(24))>>2)]=stat.gid;
HEAP32[(((buf)+(28))>>2)]=stat.rdev;
HEAP32[(((buf)+(32))>>2)]=0;
HEAP32[(((buf)+(36))>>2)]=stat.size;
HEAP32[(((buf)+(40))>>2)]=4096;
HEAP32[(((buf)+(44))>>2)]=stat.blocks;
HEAP32[(((buf)+(48))>>2)]=(stat.atime.getTime() / 1000)|0;
HEAP32[(((buf)+(52))>>2)]=0;
HEAP32[(((buf)+(56))>>2)]=(stat.mtime.getTime() / 1000)|0;
HEAP32[(((buf)+(60))>>2)]=0;
HEAP32[(((buf)+(64))>>2)]=(stat.ctime.getTime() / 1000)|0;
HEAP32[(((buf)+(68))>>2)]=0;
HEAP32[(((buf)+(72))>>2)]=stat.ino;
return 0;
},doMsync:function (addr, stream, len, flags) {
var buffer = new Uint8Array(HEAPU8.subarray(addr, addr + len));
FS.msync(stream, buffer, 0, len, flags);
},doMkdir:function (path, mode) {
// remove a trailing slash, if one - /a/b/ has basename of '', but
// we want to create b in the context of this function
path = PATH.normalize(path);
if (path[path.length-1] === '/') path = path.substr(0, path.length-1);
FS.mkdir(path, mode, 0);
return 0;
},doMknod:function (path, mode, dev) {
// we don't want this in the JS API as it uses mknod to create all nodes.
switch (mode & 61440) {
case 32768:
case 8192:
case 24576:
case 4096:
case 49152:
break;
default: return -ERRNO_CODES.EINVAL;
}
FS.mknod(path, mode, dev);
return 0;
},doReadlink:function (path, buf, bufsize) {
if (bufsize <= 0) return -ERRNO_CODES.EINVAL;
var ret = FS.readlink(path);
ret = ret.slice(0, Math.max(0, bufsize));
writeStringToMemory(ret, buf, true);
return ret.length;
},doAccess:function (path, amode) {
if (amode & ~7) {
// need a valid mode
return -ERRNO_CODES.EINVAL;
}
var node;
var lookup = FS.lookupPath(path, { follow: true });
node = lookup.node;
var perms = '';
if (amode & 4) perms += 'r';
if (amode & 2) perms += 'w';
if (amode & 1) perms += 'x';
if (perms /* otherwise, they've just passed F_OK */ && FS.nodePermissions(node, perms)) {
return -ERRNO_CODES.EACCES;
}
return 0;
},doDup:function (path, flags, suggestFD) {
var suggest = FS.getStream(suggestFD);
if (suggest) FS.close(suggest);
return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
},doReadv:function (stream, iov, iovcnt, offset) {
var ret = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
var curr = FS.read(stream, HEAP8,ptr, len, offset);
if (curr < 0) return -1;
ret += curr;
if (curr < len) break; // nothing more to read
}
return ret;
},doWritev:function (stream, iov, iovcnt, offset) {
var ret = 0;
for (var i = 0; i < iovcnt; i++) {
var ptr = HEAP32[(((iov)+(i*8))>>2)];
var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
var curr = FS.write(stream, HEAP8,ptr, len, offset);
if (curr < 0) return -1;
ret += curr;
}
return ret;
},varargs:0,get:function (varargs) {
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function () {
var ret = Pointer_stringify(SYSCALLS.get());
return ret;
},getStreamFromFD:function () {
var stream = FS.getStream(SYSCALLS.get());
if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return stream;
},getSocketFromFD:function () {
var socket = SOCKFS.getSocket(SYSCALLS.get());
if (!socket) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return socket;
},getSocketAddress:function (allowNull) {
var addrp = SYSCALLS.get(), addrlen = SYSCALLS.get();
if (allowNull && addrp === 0) return null;
var info = __read_sockaddr(addrp, addrlen);
if (info.errno) throw new FS.ErrnoError(info.errno);
info.addr = DNS.lookup_addr(info.addr) || info.addr;
return info;
},get64:function () {
var low = SYSCALLS.get(), high = SYSCALLS.get();
if (low >= 0) assert(high === 0);
else assert(high === -1);
return low;
},getZero:function () {
assert(SYSCALLS.get() === 0);
}};function ___syscall5(which, varargs) {SYSCALLS.varargs = varargs;
try {
// open
var pathname = SYSCALLS.getStr(), flags = SYSCALLS.get(), mode = SYSCALLS.get() // optional TODO
var stream = FS.open(pathname, flags, mode);
return stream.fd;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function _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 {
// close
var stream = SYSCALLS.getStreamFromFD();
FS.close(stream);
return 0;
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
var _cos=Math_cos;
function _sbrk(bytes) {
// Implement a Linux-like 'memory area' for our 'process'.
// Changes the size of the memory area by |bytes|; returns the
// address of the previous top ('break') of the memory area
// We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
var self = _sbrk;
if (!self.called) {
DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
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; // sbrk failure code
}
return ret; // Previous break location.
}
Module["_memmove"] = _memmove;
var _BItoD=true;
function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ioctl
var stream = SYSCALLS.getStreamFromFD(), op = SYSCALLS.get();
switch (op) {
case 21505: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0;
}
case 21506: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return 0; // no-op, not actually adjusting terminal settings
}
case 21519: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
var argp = SYSCALLS.get();
HEAP32[((argp)>>2)]=0;
return 0;
}
case 21520: {
if (!stream.tty) return -ERRNO_CODES.ENOTTY;
return -ERRNO_CODES.EINVAL; // not supported
}
case 21531: {
var argp = SYSCALLS.get();
return FS.ioctl(stream, op, argp);
}
default: abort('bad ioctl syscall ' + op);
}
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
var _ceilf=Math_ceil;
function __embind_register_memory_view(rawType, dataTypeIndex, name) {
var typeMapping = [
Int8Array,
Uint8Array,
Int16Array,
Uint16Array,
Int32Array,
Uint32Array,
Float32Array,
Float64Array,
];
var TA = typeMapping[dataTypeIndex];
function decodeMemoryView(handle) {
handle = handle >> 2;
var heap = HEAPU32;
var size = heap[handle]; // in elements
var data = heap[handle + 1]; // byte offset into emscripten heap
return new TA(heap['buffer'], data, size);
}
name = readLatin1String(name);
registerType(rawType, {
name: name,
'fromWireType': decodeMemoryView,
'argPackAdvance': 8,
'readValueFromPointer': decodeMemoryView,
}, {
ignoreDuplicateRegistrations: true,
});
}
function _time(ptr) {
var ret = (Date.now()/1000)|0;
if (ptr) {
HEAP32[((ptr)>>2)]=ret;
}
return ret;
}
function _pthread_self() {
//FIXME: assumes only a single thread
return 0;
}
function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs;
try {
// llseek
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; // reset readdir state
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 {
// writev
var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
return SYSCALLS.doWritev(stream, iov, iovcnt);
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall221(which, varargs) {SYSCALLS.varargs = varargs;
try {
// fcntl64
var stream = SYSCALLS.getStreamFromFD(), cmd = SYSCALLS.get();
switch (cmd) {
case 0: {
var arg = SYSCALLS.get();
if (arg < 0) {
return -ERRNO_CODES.EINVAL;
}
var newStream;
newStream = FS.open(stream.path, stream.flags, 0, arg);
return newStream.fd;
}
case 1:
case 2:
return 0; // FD_CLOEXEC makes no sense for a single process.
case 3:
return stream.flags;
case 4: {
var arg = SYSCALLS.get();
stream.flags |= arg;
return 0;
}
case 12:
case 12: {
var arg = SYSCALLS.get();
var offset = 0;
// We're always unlocked.
HEAP16[(((arg)+(offset))>>1)]=2;
return 0;
}
case 13:
case 14:
case 13:
case 14:
return 0; // Pretend that the locking is successful.
case 16:
case 8:
return -ERRNO_CODES.EINVAL; // These are for sockets. We don't have them fully implemented yet.
case 9:
// musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fnctl() returns that, and we set errno ourselves.
___setErrNo(ERRNO_CODES.EINVAL);
return -1;
default: {
return -ERRNO_CODES.EINVAL;
}
}
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
}
}
function ___syscall145(which, varargs) {SYSCALLS.varargs = varargs;
try {
// readv
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);
embind_init_charCodes()
BindingError = Module['BindingError'] = extendError(Error, 'BindingError');
InternalError = Module['InternalError'] = extendError(Error, 'InternalError');
init_emval();
UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');
FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;Module["FS_unlink"] = FS.unlink;
__ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() });
if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); }
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
staticSealed = true; // seal the static portion of memory
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 nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_dii(x) { Module["printErr"]("Invalid function pointer called with signature 'dii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vid(x) { Module["printErr"]("Invalid function pointer called with signature 'vid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_di(x) { Module["printErr"]("Invalid function pointer called with signature 'di'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viid(x) { Module["printErr"]("Invalid function pointer called with signature 'viid'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_iiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) }
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_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_dii(index,a1,a2) {
try {
return Module["dynCall_dii"](index,a1,a2);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_vid(index,a1,a2) {
try {
Module["dynCall_vid"](index,a1,a2);
} catch(e) {
if (typeof e !== 'number' && e !== 'longjmp') throw e;
asm["setThrew"](1, 0);
}
}
function invoke_di(index,a1) {
try {
return Module["dynCall_di"](index,a1);
} 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_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_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_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_viid(index,a1,a2,a3) {
try {
Module["dynCall_viid"](index,a1,a2,a3);
} 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_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_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_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, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_dii": nullFunc_dii, "nullFunc_vid": nullFunc_vid, "nullFunc_di": nullFunc_di, "nullFunc_i": nullFunc_i, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viii": nullFunc_viii, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_iiiii": nullFunc_iiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_viiii": nullFunc_viiii, "invoke_iiii": invoke_iiii, "invoke_viiiii": invoke_viiiii, "invoke_dii": invoke_dii, "invoke_vid": invoke_vid, "invoke_di": invoke_di, "invoke_i": invoke_i, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_iiiii": invoke_iiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_iii": invoke_iii, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "___syscall221": ___syscall221, "_sin": _sin, "floatReadValueFromPointer": floatReadValueFromPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "___syscall54": ___syscall54, "__embind_register_memory_view": __embind_register_memory_view, "throwInternalError": throwInternalError, "get_first_emval": get_first_emval, "_abort": _abort, "_pthread_cleanup_push": _pthread_cleanup_push, "extendError": extendError, "__embind_register_integer": __embind_register_integer, "___assert_fail": ___assert_fail, "init_emval": init_emval, "___cxa_allocate_exception": ___cxa_allocate_exception, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_ceilf": _ceilf, "getShiftFromSize": getShiftFromSize, "__embind_register_function": __embind_register_function, "__embind_register_emval": __embind_register_emval, "_emscripten_asm_const_33": _emscripten_asm_const_33, "__embind_register_constant": __embind_register_constant, "___setErrNo": ___setErrNo, "__emval_register": __emval_register, "_sbrk": _sbrk, "readLatin1String": readLatin1String, "__embind_register_void": __embind_register_void, "_emscripten_memcpy_big": _emscripten_memcpy_big, "__embind_register_bool": __embind_register_bool, "___resumeException": ___resumeException, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "_sysconf": _sysconf, "_embind_repr": _embind_repr, "__embind_register_std_wstring": __embind_register_std_wstring, "createNamedFunction": createNamedFunction, "embind_init_charCodes": embind_init_charCodes, "_cos": _cos, "getTypeName": getTypeName, "throwUnboundTypeError": throwUnboundTypeError, "_pthread_self": _pthread_self, "craftInvokerFunction": craftInvokerFunction, "__emval_decref": __emval_decref, "_sqrt": _sqrt, "__embind_register_float": __embind_register_float, "makeLegalFunctionName": makeLegalFunctionName, "integerReadValueFromPointer": integerReadValueFromPointer, "___unlock": ___unlock, "heap32VectorToArray": heap32VectorToArray, "_pthread_cleanup_pop": _pthread_cleanup_pop, "whenDependentTypesAreResolved": whenDependentTypesAreResolved, "_exit": _exit, "___syscall5": ___syscall5, "_emscripten_asm_const_4": _emscripten_asm_const_4, "___cxa_atexit": ___cxa_atexit, "registerType": registerType, "___cxa_throw": ___cxa_throw, "__exit": __exit, "___lock": ___lock, "___syscall6": ___syscall6, "throwBindingError": throwBindingError, "ensureOverloadTable": ensureOverloadTable, "count_emval_handles": count_emval_handles, "_time": _time, "requireFunction": requireFunction, "runDestructors": runDestructors, "new_": new_, "_atexit": _atexit, "___syscall140": ___syscall140, "exposePublicSymbol": exposePublicSymbol, "_emscripten_asm_const_5": _emscripten_asm_const_5, "__embind_register_std_string": __embind_register_std_string, "replacePublicSymbol": replacePublicSymbol, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "___dso_handle": ___dso_handle };
// EMSCRIPTEN_START_ASM
var asm = (function(global, env, buffer) {
'use asm';
var Int8View = global.Int8Array;
var Int16View = global.Int16Array;
var Int32View = global.Int32Array;
var Uint8View = global.Uint8Array;
var Uint16View = global.Uint16Array;
var Uint32View = global.Uint32Array;
var Float32View = global.Float32Array;
var Float64View = global.Float64Array;
var HEAP8 = new Int8View(buffer);
var HEAP16 = new Int16View(buffer);
var HEAP32 = new Int32View(buffer);
var HEAPU8 = new Uint8View(buffer);
var HEAPU16 = new Uint16View(buffer);
var HEAPU32 = new Uint32View(buffer);
var HEAPF32 = new Float32View(buffer);
var HEAPF64 = new Float64View(buffer);
var byteLength = global.byteLength;
var STACKTOP=env.STACKTOP|0;
var STACK_MAX=env.STACK_MAX|0;
var tempDoublePtr=env.tempDoublePtr|0;
var ABORT=env.ABORT|0;
var cttz_i8=env.cttz_i8|0;
var ___dso_handle=env.___dso_handle|0;
var __THREW__ = 0;
var threwValue = 0;
var setjmpId = 0;
var undef = 0;
var nan = global.NaN, inf = global.Infinity;
var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
var tempRet0 = 0;
var tempRet1 = 0;
var tempRet2 = 0;
var tempRet3 = 0;
var tempRet4 = 0;
var tempRet5 = 0;
var tempRet6 = 0;
var tempRet7 = 0;
var tempRet8 = 0;
var tempRet9 = 0;
var Math_floor=global.Math.floor;
var Math_abs=global.Math.abs;
var Math_sqrt=global.Math.sqrt;
var Math_pow=global.Math.pow;
var Math_cos=global.Math.cos;
var Math_sin=global.Math.sin;
var Math_tan=global.Math.tan;
var Math_acos=global.Math.acos;
var Math_asin=global.Math.asin;
var Math_atan=global.Math.atan;
var Math_atan2=global.Math.atan2;
var Math_exp=global.Math.exp;
var Math_log=global.Math.log;
var Math_ceil=global.Math.ceil;
var Math_imul=global.Math.imul;
var Math_min=global.Math.min;
var Math_clz32=global.Math.clz32;
var abort=env.abort;
var assert=env.assert;
var nullFunc_iiii=env.nullFunc_iiii;
var nullFunc_viiiii=env.nullFunc_viiiii;
var nullFunc_dii=env.nullFunc_dii;
var nullFunc_vid=env.nullFunc_vid;
var nullFunc_di=env.nullFunc_di;
var nullFunc_i=env.nullFunc_i;
var nullFunc_vi=env.nullFunc_vi;
var nullFunc_vii=env.nullFunc_vii;
var nullFunc_ii=env.nullFunc_ii;
var nullFunc_viii=env.nullFunc_viii;
var nullFunc_v=env.nullFunc_v;
var nullFunc_viid=env.nullFunc_viid;
var nullFunc_iiiii=env.nullFunc_iiiii;
var nullFunc_viiiiii=env.nullFunc_viiiiii;
var nullFunc_iii=env.nullFunc_iii;
var nullFunc_viiii=env.nullFunc_viiii;
var invoke_iiii=env.invoke_iiii;
var invoke_viiiii=env.invoke_viiiii;
var invoke_dii=env.invoke_dii;
var invoke_vid=env.invoke_vid;
var invoke_di=env.invoke_di;
var invoke_i=env.invoke_i;
var invoke_vi=env.invoke_vi;
var invoke_vii=env.invoke_vii;
var invoke_ii=env.invoke_ii;
var invoke_viii=env.invoke_viii;
var invoke_v=env.invoke_v;
var invoke_viid=env.invoke_viid;
var invoke_iiiii=env.invoke_iiiii;
var invoke_viiiiii=env.invoke_viiiiii;
var invoke_iii=env.invoke_iii;
var invoke_viiii=env.invoke_viiii;
var _fabs=env._fabs;
var ___syscall221=env.___syscall221;
var _sin=env._sin;
var floatReadValueFromPointer=env.floatReadValueFromPointer;
var simpleReadValueFromPointer=env.simpleReadValueFromPointer;
var ___syscall54=env.___syscall54;
var __embind_register_memory_view=env.__embind_register_memory_view;
var throwInternalError=env.throwInternalError;
var get_first_emval=env.get_first_emval;
var _abort=env._abort;
var _pthread_cleanup_push=env._pthread_cleanup_push;
var extendError=env.extendError;
var __embind_register_integer=env.__embind_register_integer;
var ___assert_fail=env.___assert_fail;
var init_emval=env.init_emval;
var ___cxa_allocate_exception=env.___cxa_allocate_exception;
var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv;
var _ceilf=env._ceilf;
var getShiftFromSize=env.getShiftFromSize;
var __embind_register_function=env.__embind_register_function;
var __embind_register_emval=env.__embind_register_emval;
var _emscripten_asm_const_33=env._emscripten_asm_const_33;
var __embind_register_constant=env.__embind_register_constant;
var ___setErrNo=env.___setErrNo;
var __emval_register=env.__emval_register;
var _sbrk=env._sbrk;
var readLatin1String=env.readLatin1String;
var __embind_register_void=env.__embind_register_void;
var _emscripten_memcpy_big=env._emscripten_memcpy_big;
var __embind_register_bool=env.__embind_register_bool;
var ___resumeException=env.___resumeException;
var ___cxa_find_matching_catch=env.___cxa_find_matching_catch;
var _sysconf=env._sysconf;
var _embind_repr=env._embind_repr;
var __embind_register_std_wstring=env.__embind_register_std_wstring;
var createNamedFunction=env.createNamedFunction;
var embind_init_charCodes=env.embind_init_charCodes;
var _cos=env._cos;
var getTypeName=env.getTypeName;
var throwUnboundTypeError=env.throwUnboundTypeError;
var _pthread_self=env._pthread_self;
var craftInvokerFunction=env.craftInvokerFunction;
var __emval_decref=env.__emval_decref;
var _sqrt=env._sqrt;
var __embind_register_float=env.__embind_register_float;
var makeLegalFunctionName=env.makeLegalFunctionName;
var integerReadValueFromPointer=env.integerReadValueFromPointer;
var ___unlock=env.___unlock;
var heap32VectorToArray=env.heap32VectorToArray;
var _pthread_cleanup_pop=env._pthread_cleanup_pop;
var whenDependentTypesAreResolved=env.whenDependentTypesAreResolved;
var _exit=env._exit;
var ___syscall5=env.___syscall5;
var _emscripten_asm_const_4=env._emscripten_asm_const_4;
var ___cxa_atexit=env.___cxa_atexit;
var registerType=env.registerType;
var ___cxa_throw=env.___cxa_throw;
var __exit=env.__exit;
var ___lock=env.___lock;
var ___syscall6=env.___syscall6;
var throwBindingError=env.throwBindingError;
var ensureOverloadTable=env.ensureOverloadTable;
var count_emval_handles=env.count_emval_handles;
var _time=env._time;
var requireFunction=env.requireFunction;
var runDestructors=env.runDestructors;
var new_=env.new_;
var _atexit=env._atexit;
var ___syscall140=env.___syscall140;
var exposePublicSymbol=env.exposePublicSymbol;
var _emscripten_asm_const_5=env._emscripten_asm_const_5;
var __embind_register_std_string=env.__embind_register_std_string;
var replacePublicSymbol=env.replacePublicSymbol;
var ___syscall145=env.___syscall145;
var ___syscall146=env.___syscall146;
var tempFloat = 0.0;
function _emscripten_replace_memory(newBuffer) {
if ((byteLength(newBuffer) & 0xffffff || byteLength(newBuffer) <= 0xffffff) || byteLength(newBuffer) > 0x80000000) return false;
HEAP8 = new Int8View(newBuffer);
HEAP16 = new Int16View(newBuffer);
HEAP32 = new Int32View(newBuffer);
HEAPU8 = new Uint8View(newBuffer);
HEAPU16 = new Uint16View(newBuffer);
HEAPU32 = new Uint32View(newBuffer);
HEAPF32 = new Float32View(newBuffer);
HEAPF64 = new Float64View(newBuffer);
buffer = newBuffer;
return true;
}
// EMSCRIPTEN_START_FUNCS
function __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i105 = 0, $$0$i$i$i113 = 0, $$0$i$i$i123 = 0, $$0$i$i$i131 = 0, $$0$i$i$i136 = 0, $$0$i$i$i148 = 0, $$0$i$i$i153 = 0, $$0$i$i$i17 = 0, $$0$i$i$i181 = 0, $$0$i$i$i191509 = 0, $$0$i$i$i22 = 0, $$0$i$i$i27 = 0, $$0$i$i$i29 = 0, $$0$i$i$i31 = 0, $$0$i$i$i38 = 0, $$0$i$i$i43 = 0, $$0$i$i$i51 = 0, $$0$i$i$i56 = 0, $$0$i$i$i61 = 0, $$0$i$i$i66 = 0, $$0$i$i$i71 = 0, $$0$i$i$i76 = 0, $$0$i$i$i81 = 0, $$0$i$i$i87 = 0, $$0$i$i$i95 = 0, $$01$i$i = 0, $$03$i$i = 0, $$08$i = 0, $$1$i$i = 0, $$1$i263 = 0, $$12$i$i = 0, $$13$i259$ph = 0, $$14$i$i = 0, $$2$i$i = 0, $$in = 0, $$lcssa667 = 0, $$lcssa674 = 0, $$lcssa682 = 0, $$lcssa690 = 0, $$lcssa698 = 0, $$lcssa706 = 0, $$ph390 = 0, $$pre$i$i$i$i = 0, $$pre$i$i$i$i203 = 0, $$pre$i$i$i21$i = 0, $$pre$i$i$i36$i = 0, $$pre$i$i$i52$i = 0, $$pre$i$i$i71$i = 0, $0 = 0, $1 = 0, $10 = 0, $1001 = 0, $1003 = 0, $1006 = 0, $101 = 0, $1010 = 0, $1013 = 0, $1018 = 0, $1019 = 0, $1022 = 0, $1023 = 0, $1025 = 0, $1026 = 0, $1035 = 0, $1038 = 0, $104 = 0, $1043 = 0, $1044 = 0, $1049 = 0, $1051 = 0, $1054 = 0, $1058 = 0, $1061 = 0, $1066 = 0, $1067 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1073 = 0, $1074 = 0, $108 = 0, $1083 = 0, $1086 = 0, $1094 = 0, $1096 = 0, $11 = 0, $1100 = 0, $1101 = 0, $1103 = 0, $1110 = 0, $1112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1126 = 0, $1129 = 0, $113 = 0, $1132 = 0, $1133 = 0, $1139 = 0, $1141 = 0, $1145 = 0, $115 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1159 = 0, $1161 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1168 = 0, $117 = 0, $1178 = 0, $1179 = 0, $1180 = 0, $1181 = 0, $1184 = 0, $1187 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1205 = 0, $1210 = 0, $1217 = 0, $1219 = 0, $122 = 0, $1223 = 0, $1226 = 0, $1228 = 0, $123 = 0, $1233 = 0, $1237 = 0, $124 = 0, $1245 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $126 = 0, $1269 = 0, $1270 = 0, $1271 = 0, $1274 = 0, $1277 = 0, $1283 = 0, $1289 = 0, $1290 = 0, $1291 = 0, $1297 = 0, $1299 = 0, $13 = 0, $1302 = 0, $1303 = 0, $1304 = 0, $1306 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $1322 = 0, $1325 = 0, $1328 = 0, $1329 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0, $134 = 0, $1340 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1346 = 0, $1351 = 0, $1358 = 0, $136 = 0, $1360 = 0, $1364 = 0, $1367 = 0, $1369 = 0, $1374 = 0, $1378 = 0, $1386 = 0, $1393 = 0, $1394 = 0, $1395 = 0, $1397 = 0, $14 = 0, $1402 = 0, $1409 = 0, $1411 = 0, $1415 = 0, $1418 = 0, $1420 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1432 = 0, $1436 = 0, $1439 = 0, $1443 = 0, $1444 = 0, $1446 = 0, $1449 = 0, $1455 = 0, $1458 = 0, $147 = 0, $1470 = 0, $1474 = 0, $1475 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $15 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1508 = 0, $1511 = 0, $1517 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1531 = 0, $1533 = 0, $1536 = 0, $1537 = 0, $1538 = 0, $1540 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1556 = 0, $1559 = 0, $1562 = 0, $1563 = 0, $1568 = 0, $1569 = 0, $1570 = 0, $1571 = 0, $1573 = 0, $1574 = 0, $1575 = 0, $1577 = 0, $1582 = 0, $1589 = 0, $1591 = 0, $1595 = 0, $1598 = 0, $16 = 0, $1600 = 0, $1605 = 0, $1609 = 0, $1617 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0, $1628 = 0, $1629 = 0, $164 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1646 = 0, $1649 = 0, $165 = 0, $1655 = 0, $166 = 0, $1661 = 0, $1662 = 0, $1668 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $168 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1693 = 0, $1696 = 0, $1699 = 0, $17 = 0, $1700 = 0, $1705 = 0, $1707 = 0, $1708 = 0, $1709 = 0, $1710 = 0, $1711 = 0, $1712 = 0, $1724 = 0, $1725 = 0, $1726 = 0, $1729 = 0, $1732 = 0, $1743 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $1750 = 0, $1753 = 0, $1755 = 0, $1766 = 0, $1768 = 0, $1769 = 0, $1776 = 0, $1778 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $1792 = 0, $1795 = 0, $1798 = 0, $1799 = 0, $18 = 0, $1805 = 0, $1807 = 0, $181 = 0, $1811 = 0, $1813 = 0, $1815 = 0, $1817 = 0, $1818 = 0, $182 = 0, $1826 = 0, $1827 = 0, $1828 = 0, $1829 = 0, $183 = 0, $1831 = 0, $1832 = 0, $1834 = 0, $1839 = 0, $1846 = 0, $1848 = 0, $1853 = 0, $1858 = 0, $186 = 0, $1860 = 0, $1866 = 0, $1869 = 0, $1871 = 0, $1881 = 0, $1884 = 0, $1885 = 0, $1886 = 0, $1887 = 0, $1889 = 0, $189 = 0, $1891 = 0, $1892 = 0, $1894 = 0, $1895 = 0, $1897 = 0, $19 = 0, $1903 = 0, $1912 = 0, $1915 = 0, $1917 = 0, $1927 = 0, $1930 = 0, $1933 = 0, $1935 = 0, $1942 = 0, $1945 = 0, $1947 = 0, $195 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1961 = 0, $1963 = 0, $1966 = 0, $1967 = 0, $197 = 0, $1970 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1977 = 0, $1984 = 0, $1986 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2003 = 0, $2006 = 0, $2007 = 0, $2013 = 0, $2015 = 0, $2019 = 0, $202 = 0, $2023 = 0, $2027 = 0, $2029 = 0, $2033 = 0, $2034 = 0, $2036 = 0, $204 = 0, $2043 = 0, $2045 = 0, $205 = 0, $2053 = 0, $2054 = 0, $2055 = 0, $2056 = 0, $2059 = 0, $2062 = 0, $2065 = 0, $2066 = 0, $2072 = 0, $2074 = 0, $2078 = 0, $208 = 0, $2080 = 0, $2082 = 0, $2083 = 0, $209 = 0, $2091 = 0, $2092 = 0, $2093 = 0, $2094 = 0, $2097 = 0, $2099 = 0, $21 = 0, $211 = 0, $2110 = 0, $2113 = 0, $2114 = 0, $2115 = 0, $2117 = 0, $212 = 0, $2124 = 0, $2126 = 0, $2134 = 0, $2135 = 0, $2136 = 0, $2137 = 0, $214 = 0, $2140 = 0, $2143 = 0, $2146 = 0, $2147 = 0, $2153 = 0, $2155 = 0, $2159 = 0, $2161 = 0, $2163 = 0, $2169 = 0, $2170 = 0, $2171 = 0, $2177 = 0, $2179 = 0, $2182 = 0, $2183 = 0, $2184 = 0, $2186 = 0, $219 = 0, $2196 = 0, $2197 = 0, $2198 = 0, $2199 = 0, $22 = 0, $2202 = 0, $2205 = 0, $2208 = 0, $2209 = 0, $2214 = 0, $2216 = 0, $2217 = 0, $2218 = 0, $2219 = 0, $2220 = 0, $2221 = 0, $2233 = 0, $2234 = 0, $2235 = 0, $2238 = 0, $2241 = 0, $2247 = 0, $2251 = 0, $2253 = 0, $2257 = 0, $2258 = 0, $226 = 0, $2260 = 0, $2267 = 0, $2269 = 0, $2277 = 0, $2278 = 0, $2279 = 0, $228 = 0, $2280 = 0, $2283 = 0, $2286 = 0, $2289 = 0, $2290 = 0, $2296 = 0, $2298 = 0, $23 = 0, $2308 = 0, $2309 = 0, $2311 = 0, $2317 = 0, $2318 = 0, $2322 = 0, $2326 = 0, $2329 = 0, $233 = 0, $2332 = 0, $2335 = 0, $2337 = 0, $2347 = 0, $2348 = 0, $2351 = 0, $2354 = 0, $2355 = 0, $2357 = 0, $2364 = 0, $2365 = 0, $2366 = 0, $2367 = 0, $2371 = 0, $2373 = 0, $2376 = 0, $2377 = 0, $238 = 0, $2382 = 0, $2385 = 0, $2386 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2398 = 0, $24 = 0, $240 = 0, $2402 = 0, $2405 = 0, $2408 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2432 = 0, $2434 = 0, $2438 = 0, $2441 = 0, $2444 = 0, $2446 = 0, $2459 = 0, $2461 = 0, $2465 = 0, $2466 = 0, $2468 = 0, $2475 = 0, $2477 = 0, $2485 = 0, $2486 = 0, $2487 = 0, $2488 = 0, $2491 = 0, $2494 = 0, $2497 = 0, $2498 = 0, $25 = 0, $250 = 0, $2504 = 0, $2506 = 0, $2510 = 0, $2512 = 0, $2516 = 0, $2518 = 0, $2522 = 0, $2523 = 0, $2525 = 0, $2532 = 0, $2534 = 0, $254 = 0, $2542 = 0, $2543 = 0, $2544 = 0, $2545 = 0, $2548 = 0, $255 = 0, $2551 = 0, $2554 = 0, $2555 = 0, $2561 = 0, $2563 = 0, $2567 = 0, $2568 = 0, $2569 = 0, $2570 = 0, $2571 = 0, $2572 = 0, $2573 = 0, $258 = 0, $259 = 0, $26 = 0, $261 = 0, $262 = 0, $264 = 0, $269 = 0, $27 = 0, $276 = 0, $278 = 0, $28 = 0, $283 = 0, $288 = 0, $29 = 0, $290 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $308 = 0, $309 = 0, $31 = 0, $318 = 0, $32 = 0, $321 = 0, $324 = 0, $326 = 0, $33 = 0, $336 = 0, $34 = 0, $341 = 0, $342 = 0, $344 = 0, $345 = 0, $35 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $359 = 0, $36 = 0, $360 = 0, $365 = 0, $367 = 0, $37 = 0, $370 = 0, $374 = 0, $377 = 0, $38 = 0, $382 = 0, $383 = 0, $386 = 0, $387 = 0, $389 = 0, $39 = 0, $390 = 0, $399 = 0, $4 = 0, $40 = 0, $402 = 0, $407 = 0, $408 = 0, $41 = 0, $410 = 0, $411 = 0, $415 = 0, $416 = 0, $418 = 0, $42 = 0, $422 = 0, $424 = 0, $429 = 0, $43 = 0, $434 = 0, $436 = 0, $44 = 0, $441 = 0, $442 = 0, $443 = 0, $446 = 0, $449 = 0, $45 = 0, $451 = 0, $458 = 0, $46 = 0, $465 = 0, $467 = 0, $47 = 0, $470 = 0, $474 = 0, $477 = 0, $48 = 0, $482 = 0, $483 = 0, $486 = 0, $487 = 0, $489 = 0, $49 = 0, $490 = 0, $499 = 0, $5 = 0, $50 = 0, $502 = 0, $510 = 0, $512 = 0, $516 = 0, $517 = 0, $519 = 0, $526 = 0, $528 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $542 = 0, $545 = 0, $548 = 0, $549 = 0, $555 = 0, $557 = 0, $56 = 0, $561 = 0, $562 = 0, $565 = 0, $566 = 0, $569 = 0, $57 = 0, $571 = 0, $574 = 0, $575 = 0, $577 = 0, $584 = 0, $586 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $6 = 0, $600 = 0, $603 = 0, $606 = 0, $607 = 0, $613 = 0, $615 = 0, $620 = 0, $624 = 0, $626 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $64 = 0, $641 = 0, $644 = 0, $648 = 0, $657 = 0, $658 = 0, $664 = 0, $669 = 0, $679 = 0, $681 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $698 = 0, $7 = 0, $70 = 0, $703 = 0, $705 = 0, $716 = 0, $718 = 0, $72 = 0, $722 = 0, $723 = 0, $725 = 0, $73 = 0, $732 = 0, $734 = 0, $74 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $748 = 0, $75 = 0, $751 = 0, $754 = 0, $755 = 0, $76 = 0, $761 = 0, $763 = 0, $767 = 0, $768 = 0, $77 = 0, $771 = 0, $772 = 0, $775 = 0, $777 = 0, $780 = 0, $781 = 0, $783 = 0, $79 = 0, $790 = 0, $792 = 0, $8 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $806 = 0, $809 = 0, $812 = 0, $813 = 0, $819 = 0, $82 = 0, $821 = 0, $826 = 0, $827 = 0, $829 = 0, $831 = 0, $832 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $846 = 0, $856 = 0, $857 = 0, $858 = 0, $86 = 0, $861 = 0, $863 = 0, $873 = 0, $876 = 0, $883 = 0, $885 = 0, $888 = 0, $892 = 0, $895 = 0, $9 = 0, $900 = 0, $901 = 0, $904 = 0, $905 = 0, $907 = 0, $908 = 0, $917 = 0, $920 = 0, $925 = 0, $926 = 0, $929 = 0, $934 = 0, $936 = 0, $939 = 0, $943 = 0, $946 = 0, $95 = 0, $951 = 0, $952 = 0, $955 = 0, $956 = 0, $958 = 0, $959 = 0, $96 = 0, $968 = 0, $97 = 0, $971 = 0, $976 = 0, $979 = 0, $98 = 0, $981 = 0, $991 = 0, $994 = 0, $__p$0$i$i$i508 = 0, $__p$0$ph$i$i$i = 0, $__v$i$i$i = 0, $args = 0, $cv = 0, $k$0$i515 = 0, $k$0560 = 0, $k11$0540 = 0, $k15$0543 = 0, $k2$0$i516 = 0, $k20$0550 = 0, $k5$0533 = 0, $k8$0536 = 0, $num1$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $phitmp$i$i$i$i$i$i$i240 = 0, $phitmp$i2$i$i$i$i$i$i243 = 0, $proto = 0, $ref_qual$0$i$ph$ph = 0, $ref_qual$0$i$ph521 = 0, $ref_qual$0$i$ph521$lcssa = 0, $t$0$i = 0, $t$1$i$be = 0, $t$1$i$ph$ph = 0, $t$1$i$ph520 = 0, $t$1$i518 = 0, $t$1$i518$lcssa = 0, $t12$0$i = 0, $template_args = 0, $type = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 784 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i$i = sp + 752 | 0;
$0 = sp + 728 | 0;
$1 = sp + 716 | 0;
$2 = sp + 704 | 0;
$3 = sp + 680 | 0;
$4 = sp + 656 | 0;
$5 = sp + 632 | 0;
$6 = sp + 620 | 0;
$num1$i = sp + 608 | 0;
$7 = sp + 596 | 0;
$8 = sp + 584 | 0;
$9 = sp + 572 | 0;
$cv = sp + 568 | 0;
$10 = sp + 552 | 0;
$11 = sp + 544 | 0;
$12 = sp + 528 | 0;
$13 = sp + 520 | 0;
$14 = sp + 504 | 0;
$15 = sp + 496 | 0;
$16 = sp + 480 | 0;
$17 = sp + 472 | 0;
$18 = sp + 456 | 0;
$19 = sp + 452 | 0;
$20 = sp + 440 | 0;
$21 = sp + 428 | 0;
$22 = sp + 416 | 0;
$23 = sp + 404 | 0;
$args = sp + 392 | 0;
$24 = sp + 376 | 0;
$25 = sp + 368 | 0;
$type = sp + 356 | 0;
$26 = sp + 344 | 0;
$27 = sp + 320 | 0;
$28 = sp + 308 | 0;
$29 = sp + 296 | 0;
$30 = sp + 284 | 0;
$proto = sp + 272 | 0;
$31 = sp + 248 | 0;
$32 = sp + 236 | 0;
$33 = sp + 224 | 0;
$34 = sp + 212 | 0;
$35 = sp + 200 | 0;
$36 = sp + 176 | 0;
$37 = sp + 164 | 0;
$38 = sp + 152 | 0;
$39 = sp + 136 | 0;
$40 = sp + 128 | 0;
$41 = sp + 112 | 0;
$42 = sp + 108 | 0;
$template_args = sp + 96 | 0;
$43 = sp + 80 | 0;
$44 = sp + 72 | 0;
$45 = sp + 56 | 0;
$46 = sp + 48 | 0;
$47 = sp + 32 | 0;
$48 = sp + 24 | 0;
$49 = sp + 8 | 0;
$50 = sp;
L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else {
switch (HEAP8[$first >> 0] | 0) {
case 75:
case 86:
case 114:
{
HEAP32[$cv >> 2] = 0;
$54 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first, $last, $cv) | 0;
if (($54 | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$56 = HEAP8[$54 >> 0] | 0;
$57 = $db + 4 | 0;
$63 = ((HEAP32[$57 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$64 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($54, $last, $db) | 0;
$70 = ((HEAP32[$57 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($64 | 0) == ($54 | 0)) {
$$0 = $first;
break L1;
}
$72 = $56 << 24 >> 24 == 70;
$73 = $db + 20 | 0;
$74 = HEAP32[$73 >> 2] | 0;
if ($72) {
$75 = $74 + -16 | 0;
$77 = $74;
do {
$76 = $77 + -16 | 0;
HEAP32[$73 >> 2] = $76;
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($76);
$77 = HEAP32[$73 >> 2] | 0;
} while (($77 | 0) != ($75 | 0));
$86 = $75;
} else $86 = $74;
$79 = $db + 16 | 0;
$82 = HEAP32[$db + 12 >> 2] | 0;
$84 = HEAP32[$db + 24 >> 2] | 0;
if ($86 >>> 0 < $84 >>> 0) {
HEAP32[$86 >> 2] = 0;
HEAP32[$86 + 4 >> 2] = 0;
HEAP32[$86 + 8 >> 2] = 0;
HEAP32[$86 + 12 >> 2] = $82;
HEAP32[$73 >> 2] = (HEAP32[$73 >> 2] | 0) + 16;
} else {
$95 = HEAP32[$79 >> 2] | 0;
$96 = $86 - $95 | 0;
$97 = $96 >> 4;
$98 = $97 + 1 | 0;
if (($96 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($79);
$101 = $84 - $95 | 0;
if ($101 >> 4 >>> 0 < 1073741823) {
$104 = $101 >> 3;
$$0$i$i$i38 = $104 >>> 0 < $98 >>> 0 ? $98 : $104;
} else $$0$i$i$i38 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i38, $97, $db + 28 | 0);
$107 = $__v$i$i$i + 8 | 0;
$108 = HEAP32[$107 >> 2] | 0;
HEAP32[$108 >> 2] = 0;
HEAP32[$108 + 4 >> 2] = 0;
HEAP32[$108 + 8 >> 2] = 0;
HEAP32[$108 + 12 >> 2] = $82;
HEAP32[$107 >> 2] = $108 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($79, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
$113 = HEAP32[$cv >> 2] | 0;
$115 = ($113 & 1 | 0) == 0;
$117 = ($113 & 2 | 0) == 0;
$119 = ($113 & 4 | 0) == 0;
$120 = $__v$i$i$i + 8 | 0;
if ($63 >>> 0 < $70 >>> 0) $k$0560 = $63; else {
$$0 = $64;
break L1;
}
while (1) {
if ($72) {
$122 = HEAP32[$db >> 2] | 0;
$123 = $122 + ($k$0560 * 24 | 0) + 12 | 0;
$124 = HEAP8[$123 >> 0] | 0;
$126 = ($124 & 1) == 0;
if ($126) {
$$in = ($124 & 255) >>> 1;
$136 = $123 + 1 | 0;
} else {
$$in = HEAP32[$122 + ($k$0560 * 24 | 0) + 16 >> 2] | 0;
$136 = HEAP32[$122 + ($k$0560 * 24 | 0) + 20 >> 2] | 0;
}
$134 = $$in + -2 | 0;
if ((HEAP8[$136 + $134 >> 0] | 0) == 38) $p$0 = $$in + -3 | 0; else {
if ($126) {
$147 = ($124 & 255) >>> 1;
$149 = $123 + 1 | 0;
} else {
$147 = HEAP32[$122 + ($k$0560 * 24 | 0) + 16 >> 2] | 0;
$149 = HEAP32[$122 + ($k$0560 * 24 | 0) + 20 >> 2] | 0;
}
$p$0 = (HEAP8[$149 + ($147 + -1) >> 0] | 0) == 38 ? $134 : $$in;
}
if ($115) $p$1 = $p$0; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($123, $p$0, 12669) | 0;
$p$1 = $p$0 + 6 | 0;
}
if ($117) $p$2 = $p$1; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) + 12 | 0, $p$1, 12676) | 0;
$p$2 = $p$1 + 9 | 0;
}
if (!$119) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) + 12 | 0, $p$2, 12686) | 0;
} else {
if (!$115) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 12669) | 0;
if (!$117) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 12676) | 0;
if (!$119) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k$0560 * 24 | 0) | 0, 12686) | 0;
}
$164 = HEAP32[$73 >> 2] | 0;
$165 = $164 + -16 | 0;
$166 = HEAP32[$db >> 2] | 0;
$167 = $166 + ($k$0560 * 24 | 0) | 0;
$168 = $164 + -12 | 0;
$169 = HEAP32[$168 >> 2] | 0;
if (($169 | 0) == (HEAP32[$164 + -8 >> 2] | 0)) {
$181 = $169 - (HEAP32[$165 >> 2] | 0) | 0;
$182 = ($181 | 0) / 24 | 0;
$183 = $182 + 1 | 0;
if (($181 | 0) < -24) {
$$lcssa706 = $165;
break;
}
if ($182 >>> 0 < 1073741823) {
$186 = $182 << 1;
$$0$i$i$i43 = $186 >>> 0 < $183 >>> 0 ? $183 : $186;
} else $$0$i$i$i43 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i43, $182, $164 + -4 | 0);
$189 = HEAP32[$120 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($189, $167);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($189 + 12 | 0, $166 + ($k$0560 * 24 | 0) + 12 | 0);
HEAP32[$120 >> 2] = $189 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($165, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($169, $167);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($169 + 12 | 0, $166 + ($k$0560 * 24 | 0) + 12 | 0);
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 24;
}
$k$0560 = $k$0560 + 1 | 0;
if ($k$0560 >>> 0 >= $70 >>> 0) {
$$0 = $64;
break L1;
}
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa706);
break;
}
default:
{}
}
$195 = __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($195 | 0) == ($first | 0)) {
$197 = HEAP8[$first >> 0] | 0;
L65 : do switch ($197 << 24 >> 24 | 0) {
case 65:
{
do if ($197 << 24 >> 24 == 65) {
$200 = $first + 1 | 0;
if (($200 | 0) == ($last | 0)) $$0$i = $first; else {
$202 = HEAP8[$200 >> 0] | 0;
if ($202 << 24 >> 24 == 95) {
$204 = $first + 2 | 0;
$205 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($204, $last, $db) | 0;
if (($205 | 0) == ($204 | 0)) {
$$0$i = $first;
break;
}
$208 = $db + 4 | 0;
$209 = HEAP32[$208 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($209 | 0)) {
$$0$i = $first;
break;
}
$211 = $209 + -12 | 0;
$212 = HEAP8[$211 >> 0] | 0;
$214 = ($212 & 1) == 0;
$219 = $214 ? ($212 & 255) >>> 1 : HEAP32[$209 + -8 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($__v$i$i$i, $214 ? $211 + 1 | 0 : HEAP32[$209 + -4 >> 2] | 0, $219 >>> 0 < 2 ? $219 : 2);
$226 = HEAP8[$__v$i$i$i >> 0] | 0;
$228 = ($226 & 1) == 0;
$233 = $228 ? ($226 & 255) >>> 1 : HEAP32[$__v$i$i$i + 4 >> 2] | 0;
$238 = $233 >>> 0 > 2;
$240 = _memcmp($228 ? $__v$i$i$i + 1 | 0 : HEAP32[$__v$i$i$i + 8 >> 2] | 0, 12696, $238 ? 2 : $233) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i);
if (!((($240 | 0) == 0 ? ($233 >>> 0 < 2 ? -1 : $238 & 1) : $240) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj((HEAP32[$208 >> 2] | 0) + -12 | 0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$208 >> 2] | 0) + -12 | 0, 0, 12699) | 0;
$$0$i = $205;
break;
}
if (($202 + -49 & 255) < 9) {
$250 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($200, $last) | 0;
if (($250 | 0) == ($last | 0)) {
$$0$i = $first;
break;
}
if ((HEAP8[$250 >> 0] | 0) != 95) {
$$0$i = $first;
break;
}
$254 = $250 + 1 | 0;
$255 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($254, $last, $db) | 0;
if (($255 | 0) == ($254 | 0)) {
$$0$i = $first;
break;
}
$258 = $db + 4 | 0;
$259 = HEAP32[$258 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($259 | 0)) {
$$0$i = $first;
break;
}
$261 = $259 + -12 | 0;
$262 = HEAP8[$261 >> 0] | 0;
$264 = ($262 & 1) == 0;
$269 = $264 ? ($262 & 255) >>> 1 : HEAP32[$259 + -8 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($0, $264 ? $261 + 1 | 0 : HEAP32[$259 + -4 >> 2] | 0, $269 >>> 0 < 2 ? $269 : 2);
$276 = HEAP8[$0 >> 0] | 0;
$278 = ($276 & 1) == 0;
$283 = $278 ? ($276 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0;
$288 = $283 >>> 0 > 2;
$290 = _memcmp($278 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, 12696, $288 ? 2 : $283) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
if (!((($290 | 0) == 0 ? ($283 >>> 0 < 2 ? -1 : $288 & 1) : $290) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj((HEAP32[$258 >> 2] | 0) + -12 | 0);
$298 = (HEAP32[$258 >> 2] | 0) + -12 | 0;
$301 = $250 - $200 | 0;
if ($301 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($3);
if ($301 >>> 0 < 11) {
HEAP8[$3 >> 0] = $301 << 1;
$__p$0$ph$i$i$i = $3 + 1 | 0;
} else {
$308 = $301 + 16 & -16;
$309 = _malloc($308) | 0;
HEAP32[$3 + 8 >> 2] = $309;
HEAP32[$3 >> 2] = $308 | 1;
HEAP32[$3 + 4 >> 2] = $301;
$__p$0$ph$i$i$i = $309;
}
if (($200 | 0) != ($250 | 0)) {
$$0$i$i$i191509 = $200;
$__p$0$i$i$i508 = $__p$0$ph$i$i$i;
while (1) {
HEAP8[$__p$0$i$i$i508 >> 0] = HEAP8[$$0$i$i$i191509 >> 0] | 0;
$$0$i$i$i191509 = $$0$i$i$i191509 + 1 | 0;
if (($$0$i$i$i191509 | 0) == ($250 | 0)) break; else $__p$0$i$i$i508 = $__p$0$i$i$i508 + 1 | 0;
}
}
HEAP8[$__p$0$ph$i$i$i + $301 >> 0] = 0;
$318 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 12696) | 0;
HEAP32[$2 >> 2] = HEAP32[$318 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$318 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$318 + 8 >> 2];
HEAP32[$318 >> 2] = 0;
HEAP32[$318 + 4 >> 2] = 0;
HEAP32[$318 + 8 >> 2] = 0;
$321 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12703) | 0;
HEAP32[$1 >> 2] = HEAP32[$321 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$321 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$321 + 8 >> 2];
HEAP32[$321 >> 2] = 0;
HEAP32[$321 + 4 >> 2] = 0;
HEAP32[$321 + 8 >> 2] = 0;
$324 = HEAP8[$1 >> 0] | 0;
$326 = ($324 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($298, 0, $326 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $326 ? ($324 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$0$i = $255;
break;
}
$336 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($200, $last, $db) | 0;
if (($336 | 0) == ($200 | 0) | ($336 | 0) == ($last | 0)) $$0$i = $first; else if ((HEAP8[$336 >> 0] | 0) == 95) {
$341 = $336 + 1 | 0;
$342 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($341, $last, $db) | 0;
if (($342 | 0) == ($341 | 0)) $$0$i = $first; else {
$344 = $db + 4 | 0;
$345 = HEAP32[$344 >> 2] | 0;
if ((($345 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0$i = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($4, $345 + -24 | 0);
$353 = HEAP32[$344 >> 2] | 0;
$354 = $353 + -24 | 0;
$356 = $353;
do {
$355 = $356 + -24 | 0;
HEAP32[$344 >> 2] = $355;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($355);
$356 = HEAP32[$344 >> 2] | 0;
} while (($356 | 0) != ($354 | 0));
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($5, $353 + -48 | 0);
$359 = HEAP32[$344 >> 2] | 0;
$360 = $359 + -24 | 0;
do if (!(HEAP8[$360 >> 0] & 1)) {
HEAP8[$360 + 1 >> 0] = 0;
HEAP8[$360 >> 0] = 0;
} else {
$365 = $359 + -16 | 0;
HEAP8[HEAP32[$365 >> 2] >> 0] = 0;
$367 = $359 + -20 | 0;
HEAP32[$367 >> 2] = 0;
$$pre$i$i$i$i203 = HEAP8[$360 >> 0] | 0;
if (!($$pre$i$i$i$i203 & 1)) {
$374 = $$pre$i$i$i$i203;
$383 = 10;
} else {
$370 = HEAP32[$360 >> 2] | 0;
$374 = $370 & 255;
$383 = ($370 & -2) + -1 | 0;
}
if (!($374 & 1)) {
$377 = ($374 & 255) >>> 1;
if (($374 & 255) < 22) {
$2567 = 1;
$382 = 10;
$402 = $377;
} else {
$2567 = 1;
$382 = ($377 + 16 & 240) + -1 | 0;
$402 = $377;
}
} else {
$2567 = 0;
$382 = 10;
$402 = 0;
}
if (($382 | 0) != ($383 | 0)) {
if (($382 | 0) == 10) {
$389 = $360 + 1 | 0;
$390 = HEAP32[$365 >> 2] | 0;
if ($2567) {
_memcpy($389 | 0, $390 | 0, (($374 & 255) >>> 1) + 1 | 0) | 0;
_free($390);
} else {
HEAP8[$389 >> 0] = HEAP8[$390 >> 0] | 0;
_free($390);
}
HEAP8[$360 >> 0] = $402 << 1;
break;
}
$386 = $382 + 1 | 0;
$387 = _malloc($386) | 0;
if (!($382 >>> 0 <= $383 >>> 0 & ($387 | 0) == 0)) {
if ($2567) _memcpy($387 | 0, $360 + 1 | 0, (($374 & 255) >>> 1) + 1 | 0) | 0; else {
$399 = HEAP32[$365 >> 2] | 0;
HEAP8[$387 >> 0] = HEAP8[$399 >> 0] | 0;
_free($399);
}
HEAP32[$360 >> 2] = $386 | 1;
HEAP32[$367 >> 2] = $402;
HEAP32[$365 >> 2] = $387;
}
}
} while (0);
HEAP32[$360 >> 2] = HEAP32[$4 >> 2];
HEAP32[$360 + 4 >> 2] = HEAP32[$4 + 4 >> 2];
HEAP32[$360 + 8 >> 2] = HEAP32[$4 + 8 >> 2];
HEAP32[$4 >> 2] = 0;
HEAP32[$4 + 4 >> 2] = 0;
HEAP32[$4 + 8 >> 2] = 0;
$407 = $4 + 12 | 0;
$408 = HEAP8[$407 >> 0] | 0;
$410 = ($408 & 1) == 0;
$411 = $4 + 16 | 0;
$415 = $410 ? ($408 & 255) >>> 1 : HEAP32[$411 >> 2] | 0;
$416 = $4 + 20 | 0;
$418 = $407 + 1 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, $410 ? $418 : HEAP32[$416 >> 2] | 0, $415 >>> 0 < 2 ? $415 : 2);
$422 = HEAP8[$6 >> 0] | 0;
$424 = ($422 & 1) == 0;
$429 = $424 ? ($422 & 255) >>> 1 : HEAP32[$6 + 4 >> 2] | 0;
$434 = $429 >>> 0 > 2;
$436 = _memcmp($424 ? $6 + 1 | 0 : HEAP32[$6 + 8 >> 2] | 0, 12696, $434 ? 2 : $429) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
if (!((($436 | 0) == 0 ? ($429 >>> 0 < 2 ? -1 : $434 & 1) : $436) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj($407);
$441 = HEAP32[$344 >> 2] | 0;
$442 = $441 + -12 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($9, $5);
$443 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($9, 0, 12696) | 0;
HEAP32[$8 >> 2] = HEAP32[$443 >> 2];
HEAP32[$8 + 4 >> 2] = HEAP32[$443 + 4 >> 2];
HEAP32[$8 + 8 >> 2] = HEAP32[$443 + 8 >> 2];
HEAP32[$443 >> 2] = 0;
HEAP32[$443 + 4 >> 2] = 0;
HEAP32[$443 + 8 >> 2] = 0;
$446 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($8, 12703) | 0;
HEAP32[$7 >> 2] = HEAP32[$446 >> 2];
HEAP32[$7 + 4 >> 2] = HEAP32[$446 + 4 >> 2];
HEAP32[$7 + 8 >> 2] = HEAP32[$446 + 8 >> 2];
HEAP32[$446 >> 2] = 0;
HEAP32[$446 + 4 >> 2] = 0;
HEAP32[$446 + 8 >> 2] = 0;
$449 = HEAP8[$407 >> 0] | 0;
$451 = ($449 & 1) == 0;
$458 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($7, $451 ? $418 : HEAP32[$416 >> 2] | 0, $451 ? ($449 & 255) >>> 1 : HEAP32[$411 >> 2] | 0) | 0;
HEAP32[$num1$i >> 2] = HEAP32[$458 >> 2];
HEAP32[$num1$i + 4 >> 2] = HEAP32[$458 + 4 >> 2];
HEAP32[$num1$i + 8 >> 2] = HEAP32[$458 + 8 >> 2];
HEAP32[$458 >> 2] = 0;
HEAP32[$458 + 4 >> 2] = 0;
HEAP32[$458 + 8 >> 2] = 0;
do if (!(HEAP8[$442 >> 0] & 1)) {
HEAP8[$442 + 1 >> 0] = 0;
HEAP8[$442 >> 0] = 0;
} else {
$465 = $441 + -4 | 0;
HEAP8[HEAP32[$465 >> 2] >> 0] = 0;
$467 = $441 + -8 | 0;
HEAP32[$467 >> 2] = 0;
$$pre$i$i$i36$i = HEAP8[$442 >> 0] | 0;
if (!($$pre$i$i$i36$i & 1)) {
$474 = $$pre$i$i$i36$i;
$483 = 10;
} else {
$470 = HEAP32[$442 >> 2] | 0;
$474 = $470 & 255;
$483 = ($470 & -2) + -1 | 0;
}
do if (!($474 & 1)) {
$477 = ($474 & 255) >>> 1;
if (($474 & 255) < 22) {
$2568 = 1;
$482 = 10;
$502 = $477;
break;
}
$2568 = 1;
$482 = ($477 + 16 & 240) + -1 | 0;
$502 = $477;
} else {
$2568 = 0;
$482 = 10;
$502 = 0;
} while (0);
if (($482 | 0) != ($483 | 0)) {
if (($482 | 0) == 10) {
$489 = $442 + 1 | 0;
$490 = HEAP32[$465 >> 2] | 0;
if ($2568) {
_memcpy($489 | 0, $490 | 0, (($474 & 255) >>> 1) + 1 | 0) | 0;
_free($490);
} else {
HEAP8[$489 >> 0] = HEAP8[$490 >> 0] | 0;
_free($490);
}
HEAP8[$442 >> 0] = $502 << 1;
break;
}
$486 = $482 + 1 | 0;
$487 = _malloc($486) | 0;
if ($482 >>> 0 <= $483 >>> 0 & ($487 | 0) == 0) break;
if ($2568) _memcpy($487 | 0, $442 + 1 | 0, (($474 & 255) >>> 1) + 1 | 0) | 0; else {
$499 = HEAP32[$465 >> 2] | 0;
HEAP8[$487 >> 0] = HEAP8[$499 >> 0] | 0;
_free($499);
}
HEAP32[$442 >> 2] = $486 | 1;
HEAP32[$467 >> 2] = $502;
HEAP32[$465 >> 2] = $487;
}
} while (0);
HEAP32[$442 >> 2] = HEAP32[$num1$i >> 2];
HEAP32[$442 + 4 >> 2] = HEAP32[$num1$i + 4 >> 2];
HEAP32[$442 + 8 >> 2] = HEAP32[$num1$i + 8 >> 2];
HEAP32[$num1$i >> 2] = 0;
HEAP32[$num1$i + 4 >> 2] = 0;
HEAP32[$num1$i + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4);
$$0$i = $342;
}
}
} else $$0$i = $first;
}
} else $$0$i = $first; while (0);
if (($$0$i | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$510 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($510 | 0)) {
$$0 = $first;
break L1;
}
$512 = $db + 16 | 0;
HEAP32[$11 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($10, $510 + -24 | 0, $11);
$516 = $db + 20 | 0;
$517 = HEAP32[$516 >> 2] | 0;
$519 = HEAP32[$db + 24 >> 2] | 0;
if ($517 >>> 0 < $519 >>> 0) {
HEAP32[$517 + 12 >> 2] = HEAP32[$10 + 12 >> 2];
HEAP32[$517 >> 2] = HEAP32[$10 >> 2];
$526 = $10 + 4 | 0;
HEAP32[$517 + 4 >> 2] = HEAP32[$526 >> 2];
$528 = $10 + 8 | 0;
HEAP32[$517 + 8 >> 2] = HEAP32[$528 >> 2];
HEAP32[$528 >> 2] = 0;
HEAP32[$526 >> 2] = 0;
HEAP32[$10 >> 2] = 0;
HEAP32[$516 >> 2] = (HEAP32[$516 >> 2] | 0) + 16;
} else {
$536 = HEAP32[$512 >> 2] | 0;
$537 = $517 - $536 | 0;
$538 = $537 >> 4;
$539 = $538 + 1 | 0;
if (($537 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($512);
$542 = $519 - $536 | 0;
if ($542 >> 4 >>> 0 < 1073741823) {
$545 = $542 >> 3;
$$0$i$i$i56 = $545 >>> 0 < $539 >>> 0 ? $539 : $545;
} else $$0$i$i$i56 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i56, $538, $db + 28 | 0);
$548 = $__v$i$i$i + 8 | 0;
$549 = HEAP32[$548 >> 2] | 0;
HEAP32[$549 + 12 >> 2] = HEAP32[$10 + 12 >> 2];
HEAP32[$549 >> 2] = HEAP32[$10 >> 2];
$555 = $10 + 4 | 0;
HEAP32[$549 + 4 >> 2] = HEAP32[$555 >> 2];
$557 = $10 + 8 | 0;
HEAP32[$549 + 8 >> 2] = HEAP32[$557 >> 2];
HEAP32[$557 >> 2] = 0;
HEAP32[$555 >> 2] = 0;
HEAP32[$10 >> 2] = 0;
HEAP32[$548 >> 2] = $549 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($512, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($10);
$$0 = $$0$i;
break L1;
break;
}
case 67:
{
$561 = $first + 1 | 0;
$562 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($561, $last, $db) | 0;
if (($562 | 0) == ($561 | 0)) {
$$0 = $first;
break L1;
}
$565 = $db + 4 | 0;
$566 = HEAP32[$565 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($566 | 0)) {
$$0 = $first;
break L1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($566 + -24 | 0, 12705) | 0;
$569 = $db + 16 | 0;
$571 = (HEAP32[$565 >> 2] | 0) + -24 | 0;
HEAP32[$13 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($12, $571, $13);
$574 = $db + 20 | 0;
$575 = HEAP32[$574 >> 2] | 0;
$577 = HEAP32[$db + 24 >> 2] | 0;
if ($575 >>> 0 < $577 >>> 0) {
HEAP32[$575 + 12 >> 2] = HEAP32[$12 + 12 >> 2];
HEAP32[$575 >> 2] = HEAP32[$12 >> 2];
$584 = $12 + 4 | 0;
HEAP32[$575 + 4 >> 2] = HEAP32[$584 >> 2];
$586 = $12 + 8 | 0;
HEAP32[$575 + 8 >> 2] = HEAP32[$586 >> 2];
HEAP32[$586 >> 2] = 0;
HEAP32[$584 >> 2] = 0;
HEAP32[$12 >> 2] = 0;
HEAP32[$574 >> 2] = (HEAP32[$574 >> 2] | 0) + 16;
} else {
$594 = HEAP32[$569 >> 2] | 0;
$595 = $575 - $594 | 0;
$596 = $595 >> 4;
$597 = $596 + 1 | 0;
if (($595 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($569);
$600 = $577 - $594 | 0;
if ($600 >> 4 >>> 0 < 1073741823) {
$603 = $600 >> 3;
$$0$i$i$i61 = $603 >>> 0 < $597 >>> 0 ? $597 : $603;
} else $$0$i$i$i61 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i61, $596, $db + 28 | 0);
$606 = $__v$i$i$i + 8 | 0;
$607 = HEAP32[$606 >> 2] | 0;
HEAP32[$607 + 12 >> 2] = HEAP32[$12 + 12 >> 2];
HEAP32[$607 >> 2] = HEAP32[$12 >> 2];
$613 = $12 + 4 | 0;
HEAP32[$607 + 4 >> 2] = HEAP32[$613 >> 2];
$615 = $12 + 8 | 0;
HEAP32[$607 + 8 >> 2] = HEAP32[$615 >> 2];
HEAP32[$615 >> 2] = 0;
HEAP32[$613 >> 2] = 0;
HEAP32[$12 >> 2] = 0;
HEAP32[$606 >> 2] = $607 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($569, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($12);
$$0 = $562;
break L1;
break;
}
case 70:
{
do if ($197 << 24 >> 24 == 70) {
$620 = $first + 1 | 0;
if (($620 | 0) != ($last | 0)) {
if ((HEAP8[$620 >> 0] | 0) == 89) {
$624 = $first + 2 | 0;
if (($624 | 0) == ($last | 0)) break; else $t$0$i = $624;
} else $t$0$i = $620;
$626 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$0$i, $last, $db) | 0;
if (($626 | 0) != ($t$0$i | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($__v$i$i$i, 12714, 1);
$628 = $db + 4 | 0;
$629 = $__v$i$i$i + 4 | 0;
$630 = $0 + 8 | 0;
$631 = $0 + 1 | 0;
$632 = $0 + 4 | 0;
L191 : do if (($626 | 0) == ($last | 0)) label = 144; else {
$ref_qual$0$i$ph521 = 0;
$t$1$i$ph520 = $626;
L192 : while (1) {
$t$1$i518 = $t$1$i$ph520;
L194 : while (1) {
switch (HEAP8[$t$1$i518 >> 0] | 0) {
case 69:
{
$ref_qual$0$i$ph521$lcssa = $ref_qual$0$i$ph521;
$t$1$i518$lcssa = $t$1$i518;
break L192;
break;
}
case 118:
{
$t$1$i$be = $t$1$i518 + 1 | 0;
break;
}
case 82:
{
$644 = $t$1$i518 + 1 | 0;
if (($644 | 0) == ($last | 0)) label = 154; else if ((HEAP8[$644 >> 0] | 0) == 69) {
$ref_qual$0$i$ph$ph = 1;
$t$1$i$ph$ph = $644;
break L194;
} else label = 154;
break;
}
case 79:
{
$648 = $t$1$i518 + 1 | 0;
if (($648 | 0) == ($last | 0)) label = 154; else if ((HEAP8[$648 >> 0] | 0) == 69) {
$ref_qual$0$i$ph$ph = 2;
$t$1$i$ph$ph = $648;
break L194;
} else label = 154;
break;
}
default:
label = 154;
}
if ((label | 0) == 154) {
label = 0;
$657 = ((HEAP32[$628 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$658 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$1$i518, $last, $db) | 0;
$664 = ((HEAP32[$628 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($658 | 0) == ($t$1$i518 | 0) | ($658 | 0) == ($last | 0)) break L191;
if ($657 >>> 0 < $664 >>> 0) {
$k$0$i515 = $657;
do {
$669 = HEAP8[$__v$i$i$i >> 0] | 0;
if ((($669 & 1) == 0 ? ($669 & 255) >>> 1 : HEAP32[$629 >> 2] | 0) >>> 0 > 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12716) | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, (HEAP32[$db >> 2] | 0) + ($k$0$i515 * 24 | 0) | 0);
$679 = HEAP8[$0 >> 0] | 0;
$681 = ($679 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($__v$i$i$i, $681 ? $631 : HEAP32[$630 >> 2] | 0, $681 ? ($679 & 255) >>> 1 : HEAP32[$632 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$k$0$i515 = $k$0$i515 + 1 | 0;
} while ($k$0$i515 >>> 0 < $664 >>> 0);
}
if ($657 >>> 0 < $664 >>> 0) {
$k2$0$i516 = $657;
do {
$690 = HEAP32[$628 >> 2] | 0;
$691 = $690 + -24 | 0;
$693 = $690;
do {
$692 = $693 + -24 | 0;
HEAP32[$628 >> 2] = $692;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($692);
$693 = HEAP32[$628 >> 2] | 0;
} while (($693 | 0) != ($691 | 0));
$k2$0$i516 = $k2$0$i516 + 1 | 0;
} while ($k2$0$i516 >>> 0 < $664 >>> 0);
$t$1$i$be = $658;
} else $t$1$i$be = $658;
}
if (($t$1$i$be | 0) == ($last | 0)) {
label = 144;
break L191;
} else $t$1$i518 = $t$1$i$be;
}
if (($t$1$i$ph$ph | 0) == ($last | 0)) {
label = 144;
break L191;
} else {
$ref_qual$0$i$ph521 = $ref_qual$0$i$ph$ph;
$t$1$i$ph520 = $t$1$i$ph$ph;
}
}
$641 = $t$1$i518$lcssa + 1 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12619) | 0;
switch ($ref_qual$0$i$ph521$lcssa | 0) {
case 1:
{
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12719) | 0;
break;
}
case 2:
{
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12722) | 0;
break;
}
default:
{}
}
$698 = HEAP32[$628 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) != ($698 | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($698 + -24 | 0, 12726) | 0;
$703 = HEAP8[$__v$i$i$i >> 0] | 0;
$705 = ($703 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj((HEAP32[$628 >> 2] | 0) + -12 | 0, 0, $705 ? $__v$i$i$i + 1 | 0 : HEAP32[$__v$i$i$i + 8 >> 2] | 0, $705 ? ($703 & 255) >>> 1 : HEAP32[$629 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i);
if (($641 | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$716 = HEAP32[$628 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($716 | 0)) {
$$0 = $first;
break L1;
}
$718 = $db + 16 | 0;
HEAP32[$15 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($14, $716 + -24 | 0, $15);
$722 = $db + 20 | 0;
$723 = HEAP32[$722 >> 2] | 0;
$725 = HEAP32[$db + 24 >> 2] | 0;
if ($723 >>> 0 < $725 >>> 0) {
HEAP32[$723 + 12 >> 2] = HEAP32[$14 + 12 >> 2];
HEAP32[$723 >> 2] = HEAP32[$14 >> 2];
$732 = $14 + 4 | 0;
HEAP32[$723 + 4 >> 2] = HEAP32[$732 >> 2];
$734 = $14 + 8 | 0;
HEAP32[$723 + 8 >> 2] = HEAP32[$734 >> 2];
HEAP32[$734 >> 2] = 0;
HEAP32[$732 >> 2] = 0;
HEAP32[$14 >> 2] = 0;
HEAP32[$722 >> 2] = (HEAP32[$722 >> 2] | 0) + 16;
} else {
$742 = HEAP32[$718 >> 2] | 0;
$743 = $723 - $742 | 0;
$744 = $743 >> 4;
$745 = $744 + 1 | 0;
if (($743 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($718);
$748 = $725 - $742 | 0;
if ($748 >> 4 >>> 0 < 1073741823) {
$751 = $748 >> 3;
$$0$i$i$i66 = $751 >>> 0 < $745 >>> 0 ? $745 : $751;
} else $$0$i$i$i66 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i66, $744, $db + 28 | 0);
$754 = $__v$i$i$i + 8 | 0;
$755 = HEAP32[$754 >> 2] | 0;
HEAP32[$755 + 12 >> 2] = HEAP32[$14 + 12 >> 2];
HEAP32[$755 >> 2] = HEAP32[$14 >> 2];
$761 = $14 + 4 | 0;
HEAP32[$755 + 4 >> 2] = HEAP32[$761 >> 2];
$763 = $14 + 8 | 0;
HEAP32[$755 + 8 >> 2] = HEAP32[$763 >> 2];
HEAP32[$763 >> 2] = 0;
HEAP32[$761 >> 2] = 0;
HEAP32[$14 >> 2] = 0;
HEAP32[$754 >> 2] = $755 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($718, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($14);
$$0 = $641;
break L1;
}
} while (0);
if ((label | 0) == 144) {
$635 = HEAP32[$628 >> 2] | 0;
$636 = $635 + -24 | 0;
$638 = $635;
do {
$637 = $638 + -24 | 0;
HEAP32[$628 >> 2] = $637;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($637);
$638 = HEAP32[$628 >> 2] | 0;
} while (($638 | 0) != ($636 | 0));
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i$i);
}
}
} while (0);
$$0 = $first;
break L1;
break;
}
case 71:
{
$767 = $first + 1 | 0;
$768 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($767, $last, $db) | 0;
if (($768 | 0) == ($767 | 0)) {
$$0 = $first;
break L1;
}
$771 = $db + 4 | 0;
$772 = HEAP32[$771 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($772 | 0)) {
$$0 = $first;
break L1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($772 + -24 | 0, 12728) | 0;
$775 = $db + 16 | 0;
$777 = (HEAP32[$771 >> 2] | 0) + -24 | 0;
HEAP32[$17 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($16, $777, $17);
$780 = $db + 20 | 0;
$781 = HEAP32[$780 >> 2] | 0;
$783 = HEAP32[$db + 24 >> 2] | 0;
if ($781 >>> 0 < $783 >>> 0) {
HEAP32[$781 + 12 >> 2] = HEAP32[$16 + 12 >> 2];
HEAP32[$781 >> 2] = HEAP32[$16 >> 2];
$790 = $16 + 4 | 0;
HEAP32[$781 + 4 >> 2] = HEAP32[$790 >> 2];
$792 = $16 + 8 | 0;
HEAP32[$781 + 8 >> 2] = HEAP32[$792 >> 2];
HEAP32[$792 >> 2] = 0;
HEAP32[$790 >> 2] = 0;
HEAP32[$16 >> 2] = 0;
HEAP32[$780 >> 2] = (HEAP32[$780 >> 2] | 0) + 16;
} else {
$800 = HEAP32[$775 >> 2] | 0;
$801 = $781 - $800 | 0;
$802 = $801 >> 4;
$803 = $802 + 1 | 0;
if (($801 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($775);
$806 = $783 - $800 | 0;
if ($806 >> 4 >>> 0 < 1073741823) {
$809 = $806 >> 3;
$$0$i$i$i71 = $809 >>> 0 < $803 >>> 0 ? $803 : $809;
} else $$0$i$i$i71 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i71, $802, $db + 28 | 0);
$812 = $__v$i$i$i + 8 | 0;
$813 = HEAP32[$812 >> 2] | 0;
HEAP32[$813 + 12 >> 2] = HEAP32[$16 + 12 >> 2];
HEAP32[$813 >> 2] = HEAP32[$16 >> 2];
$819 = $16 + 4 | 0;
HEAP32[$813 + 4 >> 2] = HEAP32[$819 >> 2];
$821 = $16 + 8 | 0;
HEAP32[$813 + 8 >> 2] = HEAP32[$821 >> 2];
HEAP32[$821 >> 2] = 0;
HEAP32[$819 >> 2] = 0;
HEAP32[$16 >> 2] = 0;
HEAP32[$812 >> 2] = $813 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($775, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($16);
$$0 = $768;
break L1;
break;
}
case 77:
{
if ($197 << 24 >> 24 == 77) {
$826 = $first + 1 | 0;
$827 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($826, $last, $db) | 0;
if (($827 | 0) == ($826 | 0)) $$08$i = $first; else {
$829 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($827, $last, $db) | 0;
if (($829 | 0) == ($827 | 0)) $$08$i = $first; else {
$831 = $db + 4 | 0;
$832 = HEAP32[$831 >> 2] | 0;
if ((($832 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$08$i = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($__v$i$i$i, $832 + -24 | 0);
$840 = HEAP32[$831 >> 2] | 0;
$841 = $840 + -24 | 0;
$843 = $840;
do {
$842 = $843 + -24 | 0;
HEAP32[$831 >> 2] = $842;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($842);
$843 = HEAP32[$831 >> 2] | 0;
} while (($843 | 0) != ($841 | 0));
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($0, $840 + -48 | 0);
$846 = $__v$i$i$i + 12 | 0;
$856 = HEAP32[$831 >> 2] | 0;
$857 = $856 + -24 | 0;
if ((HEAP8[((HEAP8[$846 >> 0] & 1) == 0 ? $846 + 1 | 0 : HEAP32[$__v$i$i$i + 20 >> 2] | 0) >> 0] | 0) == 40) {
$858 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12714) | 0;
HEAP32[$3 >> 2] = HEAP32[$858 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$858 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$858 + 8 >> 2];
HEAP32[$858 >> 2] = 0;
HEAP32[$858 + 4 >> 2] = 0;
HEAP32[$858 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, $0);
$861 = HEAP8[$4 >> 0] | 0;
$863 = ($861 & 1) == 0;
$873 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($3, $863 ? $4 + 1 | 0 : HEAP32[$4 + 8 >> 2] | 0, $863 ? ($861 & 255) >>> 1 : HEAP32[$4 + 4 >> 2] | 0) | 0;
HEAP32[$2 >> 2] = HEAP32[$873 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$873 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$873 + 8 >> 2];
HEAP32[$873 >> 2] = 0;
HEAP32[$873 + 4 >> 2] = 0;
HEAP32[$873 + 8 >> 2] = 0;
$876 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12739) | 0;
HEAP32[$1 >> 2] = HEAP32[$876 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$876 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$876 + 8 >> 2];
HEAP32[$876 >> 2] = 0;
HEAP32[$876 + 4 >> 2] = 0;
HEAP32[$876 + 8 >> 2] = 0;
do if (!(HEAP8[$857 >> 0] & 1)) {
HEAP8[$857 + 1 >> 0] = 0;
HEAP8[$857 >> 0] = 0;
} else {
$883 = $856 + -16 | 0;
HEAP8[HEAP32[$883 >> 2] >> 0] = 0;
$885 = $856 + -20 | 0;
HEAP32[$885 >> 2] = 0;
$$pre$i$i$i$i = HEAP8[$857 >> 0] | 0;
if (!($$pre$i$i$i$i & 1)) {
$892 = $$pre$i$i$i$i;
$901 = 10;
} else {
$888 = HEAP32[$857 >> 2] | 0;
$892 = $888 & 255;
$901 = ($888 & -2) + -1 | 0;
}
if (!($892 & 1)) {
$895 = ($892 & 255) >>> 1;
if (($892 & 255) < 22) {
$2569 = 1;
$900 = 10;
$920 = $895;
} else {
$2569 = 1;
$900 = ($895 + 16 & 240) + -1 | 0;
$920 = $895;
}
} else {
$2569 = 0;
$900 = 10;
$920 = 0;
}
if (($900 | 0) != ($901 | 0)) {
if (($900 | 0) == 10) {
$907 = $857 + 1 | 0;
$908 = HEAP32[$883 >> 2] | 0;
if ($2569) {
_memcpy($907 | 0, $908 | 0, (($892 & 255) >>> 1) + 1 | 0) | 0;
_free($908);
} else {
HEAP8[$907 >> 0] = HEAP8[$908 >> 0] | 0;
_free($908);
}
HEAP8[$857 >> 0] = $920 << 1;
break;
}
$904 = $900 + 1 | 0;
$905 = _malloc($904) | 0;
if (!($900 >>> 0 <= $901 >>> 0 & ($905 | 0) == 0)) {
if ($2569) _memcpy($905 | 0, $857 + 1 | 0, (($892 & 255) >>> 1) + 1 | 0) | 0; else {
$917 = HEAP32[$883 >> 2] | 0;
HEAP8[$905 >> 0] = HEAP8[$917 >> 0] | 0;
_free($917);
}
HEAP32[$857 >> 2] = $904 | 1;
HEAP32[$885 >> 2] = $920;
HEAP32[$883 >> 2] = $905;
}
}
} while (0);
HEAP32[$857 >> 2] = HEAP32[$1 >> 2];
HEAP32[$857 + 4 >> 2] = HEAP32[$1 + 4 >> 2];
HEAP32[$857 + 8 >> 2] = HEAP32[$1 + 8 >> 2];
HEAP32[$1 >> 2] = 0;
HEAP32[$1 + 4 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$925 = HEAP32[$831 >> 2] | 0;
$926 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($846, 0, 12619) | 0;
HEAP32[$5 >> 2] = HEAP32[$926 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$926 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$926 + 8 >> 2];
HEAP32[$926 >> 2] = 0;
HEAP32[$926 + 4 >> 2] = 0;
HEAP32[$926 + 8 >> 2] = 0;
$929 = $925 + -12 | 0;
do if (!(HEAP8[$929 >> 0] & 1)) {
HEAP8[$929 + 1 >> 0] = 0;
HEAP8[$929 >> 0] = 0;
} else {
$934 = $925 + -4 | 0;
HEAP8[HEAP32[$934 >> 2] >> 0] = 0;
$936 = $925 + -8 | 0;
HEAP32[$936 >> 2] = 0;
$$pre$i$i$i21$i = HEAP8[$929 >> 0] | 0;
if (!($$pre$i$i$i21$i & 1)) {
$943 = $$pre$i$i$i21$i;
$952 = 10;
} else {
$939 = HEAP32[$929 >> 2] | 0;
$943 = $939 & 255;
$952 = ($939 & -2) + -1 | 0;
}
if (!($943 & 1)) {
$946 = ($943 & 255) >>> 1;
if (($943 & 255) < 22) {
$2570 = 1;
$951 = 10;
$971 = $946;
} else {
$2570 = 1;
$951 = ($946 + 16 & 240) + -1 | 0;
$971 = $946;
}
} else {
$2570 = 0;
$951 = 10;
$971 = 0;
}
if (($951 | 0) != ($952 | 0)) {
if (($951 | 0) == 10) {
$958 = $929 + 1 | 0;
$959 = HEAP32[$934 >> 2] | 0;
if ($2570) {
_memcpy($958 | 0, $959 | 0, (($943 & 255) >>> 1) + 1 | 0) | 0;
_free($959);
} else {
HEAP8[$958 >> 0] = HEAP8[$959 >> 0] | 0;
_free($959);
}
HEAP8[$929 >> 0] = $971 << 1;
break;
}
$955 = $951 + 1 | 0;
$956 = _malloc($955) | 0;
if (!($951 >>> 0 <= $952 >>> 0 & ($956 | 0) == 0)) {
if ($2570) _memcpy($956 | 0, $929 + 1 | 0, (($943 & 255) >>> 1) + 1 | 0) | 0; else {
$968 = HEAP32[$934 >> 2] | 0;
HEAP8[$956 >> 0] = HEAP8[$968 >> 0] | 0;
_free($968);
}
HEAP32[$929 >> 2] = $955 | 1;
HEAP32[$936 >> 2] = $971;
HEAP32[$934 >> 2] = $956;
}
}
} while (0);
HEAP32[$929 >> 2] = HEAP32[$5 >> 2];
HEAP32[$929 + 4 >> 2] = HEAP32[$5 + 4 >> 2];
HEAP32[$929 + 8 >> 2] = HEAP32[$5 + 8 >> 2];
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
} else {
$976 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($__v$i$i$i, 12726) | 0;
HEAP32[$7 >> 2] = HEAP32[$976 >> 2];
HEAP32[$7 + 4 >> 2] = HEAP32[$976 + 4 >> 2];
HEAP32[$7 + 8 >> 2] = HEAP32[$976 + 8 >> 2];
HEAP32[$976 >> 2] = 0;
HEAP32[$976 + 4 >> 2] = 0;
HEAP32[$976 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($8, $0);
$979 = HEAP8[$8 >> 0] | 0;
$981 = ($979 & 1) == 0;
$991 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($7, $981 ? $8 + 1 | 0 : HEAP32[$8 + 8 >> 2] | 0, $981 ? ($979 & 255) >>> 1 : HEAP32[$8 + 4 >> 2] | 0) | 0;
HEAP32[$num1$i >> 2] = HEAP32[$991 >> 2];
HEAP32[$num1$i + 4 >> 2] = HEAP32[$991 + 4 >> 2];
HEAP32[$num1$i + 8 >> 2] = HEAP32[$991 + 8 >> 2];
HEAP32[$991 >> 2] = 0;
HEAP32[$991 + 4 >> 2] = 0;
HEAP32[$991 + 8 >> 2] = 0;
$994 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($num1$i, 12739) | 0;
HEAP32[$6 >> 2] = HEAP32[$994 >> 2];
HEAP32[$6 + 4 >> 2] = HEAP32[$994 + 4 >> 2];
HEAP32[$6 + 8 >> 2] = HEAP32[$994 + 8 >> 2];
HEAP32[$994 >> 2] = 0;
HEAP32[$994 + 4 >> 2] = 0;
HEAP32[$994 + 8 >> 2] = 0;
do if (!(HEAP8[$857 >> 0] & 1)) {
HEAP8[$857 + 1 >> 0] = 0;
HEAP8[$857 >> 0] = 0;
} else {
$1001 = $856 + -16 | 0;
HEAP8[HEAP32[$1001 >> 2] >> 0] = 0;
$1003 = $856 + -20 | 0;
HEAP32[$1003 >> 2] = 0;
$$pre$i$i$i52$i = HEAP8[$857 >> 0] | 0;
if (!($$pre$i$i$i52$i & 1)) {
$1010 = $$pre$i$i$i52$i;
$1019 = 10;
} else {
$1006 = HEAP32[$857 >> 2] | 0;
$1010 = $1006 & 255;
$1019 = ($1006 & -2) + -1 | 0;
}
if (!($1010 & 1)) {
$1013 = ($1010 & 255) >>> 1;
if (($1010 & 255) < 22) {
$1018 = 10;
$1038 = $1013;
$2571 = 1;
} else {
$1018 = ($1013 + 16 & 240) + -1 | 0;
$1038 = $1013;
$2571 = 1;
}
} else {
$1018 = 10;
$1038 = 0;
$2571 = 0;
}
if (($1018 | 0) != ($1019 | 0)) {
if (($1018 | 0) == 10) {
$1025 = $857 + 1 | 0;
$1026 = HEAP32[$1001 >> 2] | 0;
if ($2571) {
_memcpy($1025 | 0, $1026 | 0, (($1010 & 255) >>> 1) + 1 | 0) | 0;
_free($1026);
} else {
HEAP8[$1025 >> 0] = HEAP8[$1026 >> 0] | 0;
_free($1026);
}
HEAP8[$857 >> 0] = $1038 << 1;
break;
}
$1022 = $1018 + 1 | 0;
$1023 = _malloc($1022) | 0;
if (!($1018 >>> 0 <= $1019 >>> 0 & ($1023 | 0) == 0)) {
if ($2571) _memcpy($1023 | 0, $857 + 1 | 0, (($1010 & 255) >>> 1) + 1 | 0) | 0; else {
$1035 = HEAP32[$1001 >> 2] | 0;
HEAP8[$1023 >> 0] = HEAP8[$1035 >> 0] | 0;
_free($1035);
}
HEAP32[$857 >> 2] = $1022 | 1;
HEAP32[$1003 >> 2] = $1038;
HEAP32[$1001 >> 2] = $1023;
}
}
} while (0);
HEAP32[$857 >> 2] = HEAP32[$6 >> 2];
HEAP32[$857 + 4 >> 2] = HEAP32[$6 + 4 >> 2];
HEAP32[$857 + 8 >> 2] = HEAP32[$6 + 8 >> 2];
HEAP32[$6 >> 2] = 0;
HEAP32[$6 + 4 >> 2] = 0;
HEAP32[$6 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7);
$1043 = HEAP32[$831 >> 2] | 0;
$1044 = $1043 + -12 | 0;
do if (!(HEAP8[$1044 >> 0] & 1)) {
HEAP8[$1044 + 1 >> 0] = 0;
HEAP8[$1044 >> 0] = 0;
} else {
$1049 = $1043 + -4 | 0;
HEAP8[HEAP32[$1049 >> 2] >> 0] = 0;
$1051 = $1043 + -8 | 0;
HEAP32[$1051 >> 2] = 0;
$$pre$i$i$i71$i = HEAP8[$1044 >> 0] | 0;
if (!($$pre$i$i$i71$i & 1)) {
$1058 = $$pre$i$i$i71$i;
$1067 = 10;
} else {
$1054 = HEAP32[$1044 >> 2] | 0;
$1058 = $1054 & 255;
$1067 = ($1054 & -2) + -1 | 0;
}
if (!($1058 & 1)) {
$1061 = ($1058 & 255) >>> 1;
if (($1058 & 255) < 22) {
$1066 = 10;
$1086 = $1061;
$2572 = 1;
} else {
$1066 = ($1061 + 16 & 240) + -1 | 0;
$1086 = $1061;
$2572 = 1;
}
} else {
$1066 = 10;
$1086 = 0;
$2572 = 0;
}
if (($1066 | 0) != ($1067 | 0)) {
if (($1066 | 0) == 10) {
$1073 = $1044 + 1 | 0;
$1074 = HEAP32[$1049 >> 2] | 0;
if ($2572) {
_memcpy($1073 | 0, $1074 | 0, (($1058 & 255) >>> 1) + 1 | 0) | 0;
_free($1074);
} else {
HEAP8[$1073 >> 0] = HEAP8[$1074 >> 0] | 0;
_free($1074);
}
HEAP8[$1044 >> 0] = $1086 << 1;
break;
}
$1070 = $1066 + 1 | 0;
$1071 = _malloc($1070) | 0;
if (!($1066 >>> 0 <= $1067 >>> 0 & ($1071 | 0) == 0)) {
if ($2572) _memcpy($1071 | 0, $1044 + 1 | 0, (($1058 & 255) >>> 1) + 1 | 0) | 0; else {
$1083 = HEAP32[$1049 >> 2] | 0;
HEAP8[$1071 >> 0] = HEAP8[$1083 >> 0] | 0;
_free($1083);
}
HEAP32[$1044 >> 2] = $1070 | 1;
HEAP32[$1051 >> 2] = $1086;
HEAP32[$1049 >> 2] = $1071;
}
}
} while (0);
HEAP32[$1044 >> 2] = HEAP32[$846 >> 2];
HEAP32[$1044 + 4 >> 2] = HEAP32[$846 + 4 >> 2];
HEAP32[$1044 + 8 >> 2] = HEAP32[$846 + 8 >> 2];
HEAP32[$846 >> 2] = 0;
HEAP32[$846 + 4 >> 2] = 0;
HEAP32[$846 + 8 >> 2] = 0;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($__v$i$i$i);
$$08$i = $829;
}
}
}
} else $$08$i = $first;
if (($$08$i | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$1094 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1094 | 0)) {
$$0 = $first;
break L1;
}
$1096 = $db + 16 | 0;
HEAP32[$19 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($18, $1094 + -24 | 0, $19);
$1100 = $db + 20 | 0;
$1101 = HEAP32[$1100 >> 2] | 0;
$1103 = HEAP32[$db + 24 >> 2] | 0;
if ($1101 >>> 0 < $1103 >>> 0) {
HEAP32[$1101 + 12 >> 2] = HEAP32[$18 + 12 >> 2];
HEAP32[$1101 >> 2] = HEAP32[$18 >> 2];
$1110 = $18 + 4 | 0;
HEAP32[$1101 + 4 >> 2] = HEAP32[$1110 >> 2];
$1112 = $18 + 8 | 0;
HEAP32[$1101 + 8 >> 2] = HEAP32[$1112 >> 2];
HEAP32[$1112 >> 2] = 0;
HEAP32[$1110 >> 2] = 0;
HEAP32[$18 >> 2] = 0;
HEAP32[$1100 >> 2] = (HEAP32[$1100 >> 2] | 0) + 16;
} else {
$1120 = HEAP32[$1096 >> 2] | 0;
$1121 = $1101 - $1120 | 0;
$1122 = $1121 >> 4;
$1123 = $1122 + 1 | 0;
if (($1121 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1096);
$1126 = $1103 - $1120 | 0;
if ($1126 >> 4 >>> 0 < 1073741823) {
$1129 = $1126 >> 3;
$$0$i$i$i76 = $1129 >>> 0 < $1123 >>> 0 ? $1123 : $1129;
} else $$0$i$i$i76 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i76, $1122, $db + 28 | 0);
$1132 = $__v$i$i$i + 8 | 0;
$1133 = HEAP32[$1132 >> 2] | 0;
HEAP32[$1133 + 12 >> 2] = HEAP32[$18 + 12 >> 2];
HEAP32[$1133 >> 2] = HEAP32[$18 >> 2];
$1139 = $18 + 4 | 0;
HEAP32[$1133 + 4 >> 2] = HEAP32[$1139 >> 2];
$1141 = $18 + 8 | 0;
HEAP32[$1133 + 8 >> 2] = HEAP32[$1141 >> 2];
HEAP32[$1141 >> 2] = 0;
HEAP32[$1139 >> 2] = 0;
HEAP32[$18 >> 2] = 0;
HEAP32[$1132 >> 2] = $1133 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1096, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($18);
$$0 = $$08$i;
break L1;
break;
}
case 79:
{
$1145 = $db + 4 | 0;
$1151 = ((HEAP32[$1145 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$1152 = $first + 1 | 0;
$1153 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1152, $last, $db) | 0;
$1159 = ((HEAP32[$1145 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($1153 | 0) == ($1152 | 0)) {
$$0 = $first;
break L1;
}
$1161 = $db + 16 | 0;
$1164 = HEAP32[$db + 12 >> 2] | 0;
$1165 = $db + 20 | 0;
$1166 = HEAP32[$1165 >> 2] | 0;
$1168 = HEAP32[$db + 24 >> 2] | 0;
if ($1166 >>> 0 < $1168 >>> 0) {
HEAP32[$1166 >> 2] = 0;
HEAP32[$1166 + 4 >> 2] = 0;
HEAP32[$1166 + 8 >> 2] = 0;
HEAP32[$1166 + 12 >> 2] = $1164;
HEAP32[$1165 >> 2] = (HEAP32[$1165 >> 2] | 0) + 16;
} else {
$1178 = HEAP32[$1161 >> 2] | 0;
$1179 = $1166 - $1178 | 0;
$1180 = $1179 >> 4;
$1181 = $1180 + 1 | 0;
if (($1179 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1161);
$1184 = $1168 - $1178 | 0;
if ($1184 >> 4 >>> 0 < 1073741823) {
$1187 = $1184 >> 3;
$$0$i$i$i81 = $1187 >>> 0 < $1181 >>> 0 ? $1181 : $1187;
} else $$0$i$i$i81 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i81, $1180, $db + 28 | 0);
$1190 = $__v$i$i$i + 8 | 0;
$1191 = HEAP32[$1190 >> 2] | 0;
HEAP32[$1191 >> 2] = 0;
HEAP32[$1191 + 4 >> 2] = 0;
HEAP32[$1191 + 8 >> 2] = 0;
HEAP32[$1191 + 12 >> 2] = $1164;
HEAP32[$1190 >> 2] = $1191 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1161, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
$1196 = $20 + 4 | 0;
$1197 = $20 + 8 | 0;
$1198 = $20 + 1 | 0;
$1199 = $__v$i$i$i + 8 | 0;
if ($1151 >>> 0 < $1159 >>> 0) $k5$0533 = $1151; else {
$$0 = $1153;
break L1;
}
while (1) {
$1201 = HEAP32[$db >> 2] | 0;
$1202 = $1201 + ($k5$0533 * 24 | 0) + 12 | 0;
$1203 = HEAP8[$1202 >> 0] | 0;
$1205 = ($1203 & 1) == 0;
$1210 = $1205 ? ($1203 & 255) >>> 1 : HEAP32[$1201 + ($k5$0533 * 24 | 0) + 16 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($20, $1205 ? $1202 + 1 | 0 : HEAP32[$1201 + ($k5$0533 * 24 | 0) + 20 >> 2] | 0, $1210 >>> 0 < 2 ? $1210 : 2);
$1217 = HEAP8[$20 >> 0] | 0;
$1219 = ($1217 & 1) == 0;
$1223 = $1219 ? ($1217 & 255) >>> 1 : HEAP32[$1196 >> 2] | 0;
$1226 = $1223 >>> 0 > 2;
$1228 = _memcmp($1219 ? $1198 : HEAP32[$1197 >> 2] | 0, 12696, $1226 ? 2 : $1223) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20);
$1233 = HEAP32[$db >> 2] | 0;
if (!((($1228 | 0) == 0 ? ($1223 >>> 0 < 2 ? -1 : $1226 & 1) : $1228) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1233 + ($k5$0533 * 24 | 0) | 0, 12616) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) + 12 | 0, 0, 12619) | 0;
} else {
$1237 = $1233 + ($k5$0533 * 24 | 0) + 12 | 0;
if (!(HEAP8[$1237 >> 0] & 1)) $1245 = $1237 + 1 | 0; else $1245 = HEAP32[$1233 + ($k5$0533 * 24 | 0) + 20 >> 2] | 0;
if ((HEAP8[$1245 >> 0] | 0) == 40) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1233 + ($k5$0533 * 24 | 0) | 0, 12714) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) + 12 | 0, 0, 12619) | 0;
}
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k5$0533 * 24 | 0) | 0, 12743) | 0;
$1252 = HEAP32[$1165 >> 2] | 0;
$1253 = $1252 + -16 | 0;
$1254 = HEAP32[$db >> 2] | 0;
$1255 = $1254 + ($k5$0533 * 24 | 0) | 0;
$1256 = $1252 + -12 | 0;
$1257 = HEAP32[$1256 >> 2] | 0;
if (($1257 | 0) == (HEAP32[$1252 + -8 >> 2] | 0)) {
$1269 = $1257 - (HEAP32[$1253 >> 2] | 0) | 0;
$1270 = ($1269 | 0) / 24 | 0;
$1271 = $1270 + 1 | 0;
if (($1269 | 0) < -24) {
$$lcssa667 = $1253;
break;
}
if ($1270 >>> 0 < 1073741823) {
$1274 = $1270 << 1;
$$0$i$i$i87 = $1274 >>> 0 < $1271 >>> 0 ? $1271 : $1274;
} else $$0$i$i$i87 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i87, $1270, $1252 + -4 | 0);
$1277 = HEAP32[$1199 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1277, $1255);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1277 + 12 | 0, $1254 + ($k5$0533 * 24 | 0) + 12 | 0);
HEAP32[$1199 >> 2] = $1277 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1253, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1257, $1255);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1257 + 12 | 0, $1254 + ($k5$0533 * 24 | 0) + 12 | 0);
HEAP32[$1256 >> 2] = (HEAP32[$1256 >> 2] | 0) + 24;
}
$k5$0533 = $k5$0533 + 1 | 0;
if ($k5$0533 >>> 0 >= $1159 >>> 0) {
$$0 = $1153;
break L1;
}
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa667);
break;
}
case 80:
{
$1283 = $db + 4 | 0;
$1289 = ((HEAP32[$1283 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$1290 = $first + 1 | 0;
$1291 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1290, $last, $db) | 0;
$1297 = ((HEAP32[$1283 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($1291 | 0) == ($1290 | 0)) {
$$0 = $first;
break L1;
}
$1299 = $db + 16 | 0;
$1302 = HEAP32[$db + 12 >> 2] | 0;
$1303 = $db + 20 | 0;
$1304 = HEAP32[$1303 >> 2] | 0;
$1306 = HEAP32[$db + 24 >> 2] | 0;
if ($1304 >>> 0 < $1306 >>> 0) {
HEAP32[$1304 >> 2] = 0;
HEAP32[$1304 + 4 >> 2] = 0;
HEAP32[$1304 + 8 >> 2] = 0;
HEAP32[$1304 + 12 >> 2] = $1302;
HEAP32[$1303 >> 2] = (HEAP32[$1303 >> 2] | 0) + 16;
} else {
$1316 = HEAP32[$1299 >> 2] | 0;
$1317 = $1304 - $1316 | 0;
$1318 = $1317 >> 4;
$1319 = $1318 + 1 | 0;
if (($1317 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1299);
$1322 = $1306 - $1316 | 0;
if ($1322 >> 4 >>> 0 < 1073741823) {
$1325 = $1322 >> 3;
$$0$i$i$i95 = $1325 >>> 0 < $1319 >>> 0 ? $1319 : $1325;
} else $$0$i$i$i95 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i95, $1318, $db + 28 | 0);
$1328 = $__v$i$i$i + 8 | 0;
$1329 = HEAP32[$1328 >> 2] | 0;
HEAP32[$1329 >> 2] = 0;
HEAP32[$1329 + 4 >> 2] = 0;
HEAP32[$1329 + 8 >> 2] = 0;
HEAP32[$1329 + 12 >> 2] = $1302;
HEAP32[$1328 >> 2] = $1329 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1299, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
$1334 = $21 + 4 | 0;
$1335 = $21 + 8 | 0;
$1336 = $21 + 1 | 0;
$1337 = $22 + 4 | 0;
$1338 = $22 + 8 | 0;
$1339 = $22 + 1 | 0;
$1340 = $__v$i$i$i + 8 | 0;
if ($1289 >>> 0 < $1297 >>> 0) $k8$0536 = $1289; else {
$$0 = $1291;
break L1;
}
while (1) {
$1342 = HEAP32[$db >> 2] | 0;
$1343 = $1342 + ($k8$0536 * 24 | 0) + 12 | 0;
$1344 = HEAP8[$1343 >> 0] | 0;
$1346 = ($1344 & 1) == 0;
$1351 = $1346 ? ($1344 & 255) >>> 1 : HEAP32[$1342 + ($k8$0536 * 24 | 0) + 16 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($21, $1346 ? $1343 + 1 | 0 : HEAP32[$1342 + ($k8$0536 * 24 | 0) + 20 >> 2] | 0, $1351 >>> 0 < 2 ? $1351 : 2);
$1358 = HEAP8[$21 >> 0] | 0;
$1360 = ($1358 & 1) == 0;
$1364 = $1360 ? ($1358 & 255) >>> 1 : HEAP32[$1334 >> 2] | 0;
$1367 = $1364 >>> 0 > 2;
$1369 = _memcmp($1360 ? $1336 : HEAP32[$1335 >> 2] | 0, 12696, $1367 ? 2 : $1364) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21);
$1374 = HEAP32[$db >> 2] | 0;
if (!((($1369 | 0) == 0 ? ($1364 >>> 0 < 2 ? -1 : $1367 & 1) : $1369) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1374 + ($k8$0536 * 24 | 0) | 0, 12616) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k8$0536 * 24 | 0) + 12 | 0, 0, 12619) | 0;
} else {
$1378 = $1374 + ($k8$0536 * 24 | 0) + 12 | 0;
if (!(HEAP8[$1378 >> 0] & 1)) $1386 = $1378 + 1 | 0; else $1386 = HEAP32[$1374 + ($k8$0536 * 24 | 0) + 20 >> 2] | 0;
if ((HEAP8[$1386 >> 0] | 0) == 40) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1374 + ($k8$0536 * 24 | 0) | 0, 12714) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k8$0536 * 24 | 0) + 12 | 0, 0, 12619) | 0;
}
}
$1393 = HEAP32[$db >> 2] | 0;
$1394 = $1393 + ($k8$0536 * 24 | 0) | 0;
do if ((HEAP8[$1290 >> 0] | 0) == 85) {
$1395 = HEAP8[$1394 >> 0] | 0;
$1397 = ($1395 & 1) == 0;
$1402 = $1397 ? ($1395 & 255) >>> 1 : HEAP32[$1393 + ($k8$0536 * 24 | 0) + 4 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($22, $1397 ? $1394 + 1 | 0 : HEAP32[$1393 + ($k8$0536 * 24 | 0) + 8 >> 2] | 0, $1402 >>> 0 < 12 ? $1402 : 12);
$1409 = HEAP8[$22 >> 0] | 0;
$1411 = ($1409 & 1) == 0;
$1415 = $1411 ? ($1409 & 255) >>> 1 : HEAP32[$1337 >> 2] | 0;
$1418 = $1415 >>> 0 > 12;
$1420 = _memcmp($1411 ? $1339 : HEAP32[$1338 >> 2] | 0, 12746, $1418 ? 12 : $1415) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22);
$1425 = HEAP32[$db >> 2] | 0;
$1426 = $1425 + ($k8$0536 * 24 | 0) | 0;
if (!((($1420 | 0) == 0 ? ($1415 >>> 0 < 12 ? -1 : $1418 & 1) : $1420) | 0)) {
$1428 = HEAP8[$1426 >> 0] | 0;
if (!($1428 & 1)) {
$1432 = ($1428 & 255) >>> 1;
$1443 = $1432 >>> 0 < 11 ? $1432 : 11;
$1444 = $1432;
$1446 = 10;
$1449 = $1428;
} else {
$1436 = HEAP32[$1425 + ($k8$0536 * 24 | 0) + 4 >> 2] | 0;
$1439 = HEAP32[$1426 >> 2] | 0;
$1443 = $1436 >>> 0 < 11 ? $1436 : 11;
$1444 = $1436;
$1446 = ($1439 & -2) + -1 | 0;
$1449 = $1439 & 255;
}
if (($1443 - $1444 + $1446 | 0) >>> 0 < 2) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($1426, $1446, 2 - $1443 + $1444 - $1446 | 0, $1444, 0, $1443, 2, 12761);
break;
}
if (!($1449 & 1)) $1458 = $1426 + 1 | 0; else $1458 = HEAP32[$1425 + ($k8$0536 * 24 | 0) + 8 >> 2] | 0;
do if (($1443 | 0) == 2) {
$$1$i$i = 0;
$$12$i$i = 12761;
$$14$i$i = 2;
$2573 = 2;
label = 339;
} else {
$1455 = $1444 - $1443 | 0;
if (($1444 | 0) == ($1443 | 0)) {
$$1$i$i = 0;
$$12$i$i = 12761;
$$14$i$i = 2;
$2573 = $1443;
label = 339;
} else {
if ($1443 >>> 0 > 2) {
HEAP8[$1458 >> 0] = 105;
HEAP8[$1458 + 1 >> 0] = 100;
_memmove($1458 + 2 | 0, $1458 + $1443 | 0, $1455 | 0) | 0;
$$2$i$i = 2;
$1474 = $1443;
break;
}
do if ($1458 >>> 0 < 12761 >>> 0 & ($1458 + $1444 | 0) >>> 0 > 12761 >>> 0) if (($1458 + $1443 | 0) >>> 0 > 12761 >>> 0) {
_memcpy($1458 | 0, 12761, $1443 | 0) | 0;
$$0$i$i = $1443;
$$01$i$i = 12763;
$$03$i$i = 2 - $1443 | 0;
$1470 = 0;
break;
} else {
$$0$i$i = 0;
$$01$i$i = 12761 + (2 - $1443) | 0;
$$03$i$i = 2;
$1470 = $1443;
break;
} else {
$$0$i$i = 0;
$$01$i$i = 12761;
$$03$i$i = 2;
$1470 = $1443;
} while (0);
_memmove($1458 + ($$0$i$i + $$03$i$i) | 0, $1458 + ($$0$i$i + $1470) | 0, $1455 | 0) | 0;
$$1$i$i = $$0$i$i;
$$12$i$i = $$01$i$i;
$$14$i$i = $$03$i$i;
$2573 = $1470;
label = 339;
}
} while (0);
if ((label | 0) == 339) {
label = 0;
_memmove($1458 + $$1$i$i | 0, $$12$i$i | 0, $$14$i$i | 0) | 0;
$$2$i$i = $$14$i$i;
$1474 = $2573;
}
$1475 = $$2$i$i - $1474 + $1444 | 0;
if (!(HEAP8[$1426 >> 0] & 1)) HEAP8[$1426 >> 0] = $1475 << 1; else HEAP32[$1425 + ($k8$0536 * 24 | 0) + 4 >> 2] = $1475;
HEAP8[$1458 + $1475 >> 0] = 0;
} else {
$1427 = $1426;
label = 322;
}
} else {
$1427 = $1394;
label = 322;
} while (0);
if ((label | 0) == 322) {
label = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1427, 12759) | 0;
}
$1486 = HEAP32[$1303 >> 2] | 0;
$1487 = $1486 + -16 | 0;
$1488 = HEAP32[$db >> 2] | 0;
$1489 = $1488 + ($k8$0536 * 24 | 0) | 0;
$1490 = $1486 + -12 | 0;
$1491 = HEAP32[$1490 >> 2] | 0;
if (($1491 | 0) == (HEAP32[$1486 + -8 >> 2] | 0)) {
$1503 = $1491 - (HEAP32[$1487 >> 2] | 0) | 0;
$1504 = ($1503 | 0) / 24 | 0;
$1505 = $1504 + 1 | 0;
if (($1503 | 0) < -24) {
$$lcssa674 = $1487;
break;
}
if ($1504 >>> 0 < 1073741823) {
$1508 = $1504 << 1;
$$0$i$i$i105 = $1508 >>> 0 < $1505 >>> 0 ? $1505 : $1508;
} else $$0$i$i$i105 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i105, $1504, $1486 + -4 | 0);
$1511 = HEAP32[$1340 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1511, $1489);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1511 + 12 | 0, $1488 + ($k8$0536 * 24 | 0) + 12 | 0);
HEAP32[$1340 >> 2] = $1511 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1487, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1491, $1489);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1491 + 12 | 0, $1488 + ($k8$0536 * 24 | 0) + 12 | 0);
HEAP32[$1490 >> 2] = (HEAP32[$1490 >> 2] | 0) + 24;
}
$k8$0536 = $k8$0536 + 1 | 0;
if ($k8$0536 >>> 0 >= $1297 >>> 0) {
$$0 = $1291;
break L1;
}
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa674);
break;
}
case 82:
{
$1517 = $db + 4 | 0;
$1523 = ((HEAP32[$1517 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$1524 = $first + 1 | 0;
$1525 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1524, $last, $db) | 0;
$1531 = ((HEAP32[$1517 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($1525 | 0) == ($1524 | 0)) {
$$0 = $first;
break L1;
}
$1533 = $db + 16 | 0;
$1536 = HEAP32[$db + 12 >> 2] | 0;
$1537 = $db + 20 | 0;
$1538 = HEAP32[$1537 >> 2] | 0;
$1540 = HEAP32[$db + 24 >> 2] | 0;
if ($1538 >>> 0 < $1540 >>> 0) {
HEAP32[$1538 >> 2] = 0;
HEAP32[$1538 + 4 >> 2] = 0;
HEAP32[$1538 + 8 >> 2] = 0;
HEAP32[$1538 + 12 >> 2] = $1536;
HEAP32[$1537 >> 2] = (HEAP32[$1537 >> 2] | 0) + 16;
} else {
$1550 = HEAP32[$1533 >> 2] | 0;
$1551 = $1538 - $1550 | 0;
$1552 = $1551 >> 4;
$1553 = $1552 + 1 | 0;
if (($1551 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1533);
$1556 = $1540 - $1550 | 0;
if ($1556 >> 4 >>> 0 < 1073741823) {
$1559 = $1556 >> 3;
$$0$i$i$i113 = $1559 >>> 0 < $1553 >>> 0 ? $1553 : $1559;
} else $$0$i$i$i113 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i113, $1552, $db + 28 | 0);
$1562 = $__v$i$i$i + 8 | 0;
$1563 = HEAP32[$1562 >> 2] | 0;
HEAP32[$1563 >> 2] = 0;
HEAP32[$1563 + 4 >> 2] = 0;
HEAP32[$1563 + 8 >> 2] = 0;
HEAP32[$1563 + 12 >> 2] = $1536;
HEAP32[$1562 >> 2] = $1563 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1533, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
$1568 = $23 + 4 | 0;
$1569 = $23 + 8 | 0;
$1570 = $23 + 1 | 0;
$1571 = $__v$i$i$i + 8 | 0;
if ($1523 >>> 0 < $1531 >>> 0) $k11$0540 = $1523; else {
$$0 = $1525;
break L1;
}
while (1) {
$1573 = HEAP32[$db >> 2] | 0;
$1574 = $1573 + ($k11$0540 * 24 | 0) + 12 | 0;
$1575 = HEAP8[$1574 >> 0] | 0;
$1577 = ($1575 & 1) == 0;
$1582 = $1577 ? ($1575 & 255) >>> 1 : HEAP32[$1573 + ($k11$0540 * 24 | 0) + 16 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($23, $1577 ? $1574 + 1 | 0 : HEAP32[$1573 + ($k11$0540 * 24 | 0) + 20 >> 2] | 0, $1582 >>> 0 < 2 ? $1582 : 2);
$1589 = HEAP8[$23 >> 0] | 0;
$1591 = ($1589 & 1) == 0;
$1595 = $1591 ? ($1589 & 255) >>> 1 : HEAP32[$1568 >> 2] | 0;
$1598 = $1595 >>> 0 > 2;
$1600 = _memcmp($1591 ? $1570 : HEAP32[$1569 >> 2] | 0, 12696, $1598 ? 2 : $1595) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23);
$1605 = HEAP32[$db >> 2] | 0;
if (!((($1600 | 0) == 0 ? ($1595 >>> 0 < 2 ? -1 : $1598 & 1) : $1600) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1605 + ($k11$0540 * 24 | 0) | 0, 12616) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) + 12 | 0, 0, 12619) | 0;
} else {
$1609 = $1605 + ($k11$0540 * 24 | 0) + 12 | 0;
if (!(HEAP8[$1609 >> 0] & 1)) $1617 = $1609 + 1 | 0; else $1617 = HEAP32[$1605 + ($k11$0540 * 24 | 0) + 20 >> 2] | 0;
if ((HEAP8[$1617 >> 0] | 0) == 40) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1605 + ($k11$0540 * 24 | 0) | 0, 12714) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) + 12 | 0, 0, 12619) | 0;
}
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$db >> 2] | 0) + ($k11$0540 * 24 | 0) | 0, 12764) | 0;
$1624 = HEAP32[$1537 >> 2] | 0;
$1625 = $1624 + -16 | 0;
$1626 = HEAP32[$db >> 2] | 0;
$1627 = $1626 + ($k11$0540 * 24 | 0) | 0;
$1628 = $1624 + -12 | 0;
$1629 = HEAP32[$1628 >> 2] | 0;
if (($1629 | 0) == (HEAP32[$1624 + -8 >> 2] | 0)) {
$1641 = $1629 - (HEAP32[$1625 >> 2] | 0) | 0;
$1642 = ($1641 | 0) / 24 | 0;
$1643 = $1642 + 1 | 0;
if (($1641 | 0) < -24) {
$$lcssa682 = $1625;
break;
}
if ($1642 >>> 0 < 1073741823) {
$1646 = $1642 << 1;
$$0$i$i$i123 = $1646 >>> 0 < $1643 >>> 0 ? $1643 : $1646;
} else $$0$i$i$i123 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i123, $1642, $1624 + -4 | 0);
$1649 = HEAP32[$1571 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1649, $1627);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1649 + 12 | 0, $1626 + ($k11$0540 * 24 | 0) + 12 | 0);
HEAP32[$1571 >> 2] = $1649 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1625, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1629, $1627);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1629 + 12 | 0, $1626 + ($k11$0540 * 24 | 0) + 12 | 0);
HEAP32[$1628 >> 2] = (HEAP32[$1628 >> 2] | 0) + 24;
}
$k11$0540 = $k11$0540 + 1 | 0;
if ($k11$0540 >>> 0 >= $1531 >>> 0) {
$$0 = $1525;
break L1;
}
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa682);
break;
}
case 84:
{
$1655 = $db + 4 | 0;
$1661 = ((HEAP32[$1655 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$1662 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
$1668 = ((HEAP32[$1655 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($1662 | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$1670 = $db + 16 | 0;
$1671 = $db + 12 | 0;
$1673 = HEAP32[$1671 >> 2] | 0;
$1674 = $db + 20 | 0;
$1675 = HEAP32[$1674 >> 2] | 0;
$1676 = $db + 24 | 0;
$1677 = HEAP32[$1676 >> 2] | 0;
if ($1675 >>> 0 < $1677 >>> 0) {
HEAP32[$1675 >> 2] = 0;
HEAP32[$1675 + 4 >> 2] = 0;
HEAP32[$1675 + 8 >> 2] = 0;
HEAP32[$1675 + 12 >> 2] = $1673;
HEAP32[$1674 >> 2] = (HEAP32[$1674 >> 2] | 0) + 16;
} else {
$1687 = HEAP32[$1670 >> 2] | 0;
$1688 = $1675 - $1687 | 0;
$1689 = $1688 >> 4;
$1690 = $1689 + 1 | 0;
if (($1688 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1670);
$1693 = $1677 - $1687 | 0;
if ($1693 >> 4 >>> 0 < 1073741823) {
$1696 = $1693 >> 3;
$$0$i$i$i131 = $1696 >>> 0 < $1690 >>> 0 ? $1690 : $1696;
} else $$0$i$i$i131 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i131, $1689, $db + 28 | 0);
$1699 = $__v$i$i$i + 8 | 0;
$1700 = HEAP32[$1699 >> 2] | 0;
HEAP32[$1700 >> 2] = 0;
HEAP32[$1700 + 4 >> 2] = 0;
HEAP32[$1700 + 8 >> 2] = 0;
HEAP32[$1700 + 12 >> 2] = $1673;
HEAP32[$1699 >> 2] = $1700 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1670, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
$1705 = $__v$i$i$i + 8 | 0;
L522 : do if ($1661 >>> 0 < $1668 >>> 0) {
$k15$0543 = $1661;
while (1) {
$1707 = HEAP32[$1674 >> 2] | 0;
$1708 = $1707 + -16 | 0;
$1709 = HEAP32[$db >> 2] | 0;
$1710 = $1709 + ($k15$0543 * 24 | 0) | 0;
$1711 = $1707 + -12 | 0;
$1712 = HEAP32[$1711 >> 2] | 0;
if (($1712 | 0) == (HEAP32[$1707 + -8 >> 2] | 0)) {
$1724 = $1712 - (HEAP32[$1708 >> 2] | 0) | 0;
$1725 = ($1724 | 0) / 24 | 0;
$1726 = $1725 + 1 | 0;
if (($1724 | 0) < -24) {
$$lcssa690 = $1708;
break;
}
if ($1725 >>> 0 < 1073741823) {
$1729 = $1725 << 1;
$$0$i$i$i136 = $1729 >>> 0 < $1726 >>> 0 ? $1726 : $1729;
} else $$0$i$i$i136 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i136, $1725, $1707 + -4 | 0);
$1732 = HEAP32[$1705 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1732, $1710);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1732 + 12 | 0, $1709 + ($k15$0543 * 24 | 0) + 12 | 0);
HEAP32[$1705 >> 2] = $1732 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($1708, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1712, $1710);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($1712 + 12 | 0, $1709 + ($k15$0543 * 24 | 0) + 12 | 0);
HEAP32[$1711 >> 2] = (HEAP32[$1711 >> 2] | 0) + 24;
}
$k15$0543 = $k15$0543 + 1 | 0;
if ($k15$0543 >>> 0 >= $1668 >>> 0) break L522;
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa690);
} while (0);
if (!(($1668 | 0) == ($1661 + 1 | 0) & (HEAP8[$db + 63 >> 0] | 0) != 0)) {
$$0 = $1662;
break L1;
}
$1743 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($1662, $last, $db) | 0;
if (($1743 | 0) == ($1662 | 0)) {
$$0 = $1662;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, (HEAP32[$1655 >> 2] | 0) + -24 | 0);
$1747 = HEAP32[$1655 >> 2] | 0;
$1748 = $1747 + -24 | 0;
$1750 = $1747;
do {
$1749 = $1750 + -24 | 0;
HEAP32[$1655 >> 2] = $1749;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1749);
$1750 = HEAP32[$1655 >> 2] | 0;
} while (($1750 | 0) != ($1748 | 0));
$1753 = HEAP8[$args >> 0] | 0;
$1755 = ($1753 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1747 + -48 | 0, $1755 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $1755 ? ($1753 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0;
$1766 = (HEAP32[$1655 >> 2] | 0) + -24 | 0;
HEAP32[$25 >> 2] = HEAP32[$1671 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($24, $1766, $25);
$1768 = HEAP32[$1674 >> 2] | 0;
$1769 = HEAP32[$1676 >> 2] | 0;
if ($1768 >>> 0 < $1769 >>> 0) {
HEAP32[$1768 + 12 >> 2] = HEAP32[$24 + 12 >> 2];
HEAP32[$1768 >> 2] = HEAP32[$24 >> 2];
$1776 = $24 + 4 | 0;
HEAP32[$1768 + 4 >> 2] = HEAP32[$1776 >> 2];
$1778 = $24 + 8 | 0;
HEAP32[$1768 + 8 >> 2] = HEAP32[$1778 >> 2];
HEAP32[$1778 >> 2] = 0;
HEAP32[$1776 >> 2] = 0;
HEAP32[$24 >> 2] = 0;
HEAP32[$1674 >> 2] = (HEAP32[$1674 >> 2] | 0) + 16;
} else {
$1786 = HEAP32[$1670 >> 2] | 0;
$1787 = $1768 - $1786 | 0;
$1788 = $1787 >> 4;
$1789 = $1788 + 1 | 0;
if (($1787 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1670);
$1792 = $1769 - $1786 | 0;
if ($1792 >> 4 >>> 0 < 1073741823) {
$1795 = $1792 >> 3;
$$0$i$i$i148 = $1795 >>> 0 < $1789 >>> 0 ? $1789 : $1795;
} else $$0$i$i$i148 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i148, $1788, $db + 28 | 0);
$1798 = $__v$i$i$i + 8 | 0;
$1799 = HEAP32[$1798 >> 2] | 0;
HEAP32[$1799 + 12 >> 2] = HEAP32[$24 + 12 >> 2];
HEAP32[$1799 >> 2] = HEAP32[$24 >> 2];
$1805 = $24 + 4 | 0;
HEAP32[$1799 + 4 >> 2] = HEAP32[$1805 >> 2];
$1807 = $24 + 8 | 0;
HEAP32[$1799 + 8 >> 2] = HEAP32[$1807 >> 2];
HEAP32[$1807 >> 2] = 0;
HEAP32[$1805 >> 2] = 0;
HEAP32[$24 >> 2] = 0;
HEAP32[$1798 >> 2] = $1799 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1670, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($24);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$0 = $1743;
break L1;
break;
}
case 85:
{
$1811 = $first + 1 | 0;
if (($1811 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
$1813 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1811, $last, $db) | 0;
if (($1813 | 0) == ($1811 | 0)) {
$$0 = $first;
break L1;
}
$1815 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1813, $last, $db) | 0;
if (($1815 | 0) == ($1813 | 0)) {
$$0 = $first;
break L1;
}
$1817 = $db + 4 | 0;
$1818 = HEAP32[$1817 >> 2] | 0;
if ((($1818 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($type, $1818 + -24 | 0);
$1826 = HEAP32[$1817 >> 2] | 0;
$1827 = $1826 + -24 | 0;
$1829 = $1826;
do {
$1828 = $1829 + -24 | 0;
HEAP32[$1817 >> 2] = $1828;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1828);
$1829 = HEAP32[$1817 >> 2] | 0;
} while (($1829 | 0) != ($1827 | 0));
$1831 = $1826 + -48 | 0;
$1832 = HEAP8[$1831 >> 0] | 0;
$1834 = ($1832 & 1) == 0;
$1839 = $1834 ? ($1832 & 255) >>> 1 : HEAP32[$1826 + -44 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($26, $1834 ? $1831 + 1 | 0 : HEAP32[$1826 + -40 >> 2] | 0, $1839 >>> 0 < 9 ? $1839 : 9);
$1846 = HEAP8[$26 >> 0] | 0;
$1848 = ($1846 & 1) == 0;
$1853 = $1848 ? ($1846 & 255) >>> 1 : HEAP32[$26 + 4 >> 2] | 0;
$1858 = $1853 >>> 0 > 9;
$1860 = _memcmp($1848 ? $26 + 1 | 0 : HEAP32[$26 + 8 >> 2] | 0, 12766, $1858 ? 9 : $1853) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($26);
$1866 = (HEAP32[$1817 >> 2] | 0) + -24 | 0;
if (!((($1860 | 0) == 0 ? ($1853 >>> 0 < 9 ? -1 : $1858 & 1) : $1860) | 0)) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($proto, $1866);
$1884 = HEAP32[$1817 >> 2] | 0;
$1885 = $1884 + -24 | 0;
$1887 = $1884;
do {
$1886 = $1887 + -24 | 0;
HEAP32[$1817 >> 2] = $1886;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1886);
$1887 = HEAP32[$1817 >> 2] | 0;
} while (($1887 | 0) != ($1885 | 0));
$1889 = HEAP8[$proto >> 0] | 0;
$1891 = ($1889 & 1) == 0;
$1892 = $proto + 8 | 0;
$1894 = $proto + 1 | 0;
$1895 = $1891 ? $1894 : HEAP32[$1892 >> 2] | 0;
$1897 = $proto + 4 | 0;
$1903 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1895 + 9 | 0, $1895 + ($1891 ? ($1889 & 255) >>> 1 : HEAP32[$1897 >> 2] | 0) | 0, $db) | 0;
if (($1903 | 0) == (((HEAP8[$proto >> 0] & 1) == 0 ? $1894 : HEAP32[$1892 >> 2] | 0) + 9 | 0)) {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($38, $type, 12726);
$1933 = HEAP8[$proto >> 0] | 0;
$1935 = ($1933 & 1) == 0;
$1942 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($38, $1935 ? $1894 : HEAP32[$1892 >> 2] | 0, $1935 ? ($1933 & 255) >>> 1 : HEAP32[$1897 >> 2] | 0) | 0;
HEAP32[$37 >> 2] = HEAP32[$1942 >> 2];
HEAP32[$37 + 4 >> 2] = HEAP32[$1942 + 4 >> 2];
HEAP32[$37 + 8 >> 2] = HEAP32[$1942 + 8 >> 2];
HEAP32[$1942 >> 2] = 0;
HEAP32[$1942 + 4 >> 2] = 0;
HEAP32[$1942 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($36, $37);
$1945 = HEAP32[$1817 >> 2] | 0;
$1947 = HEAP32[$db + 8 >> 2] | 0;
if ($1945 >>> 0 < $1947 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1945, $36);
HEAP32[$1817 >> 2] = (HEAP32[$1817 >> 2] | 0) + 24;
} else {
$1954 = HEAP32[$db >> 2] | 0;
$1955 = $1945 - $1954 | 0;
$1956 = ($1955 | 0) / 24 | 0;
$1957 = $1956 + 1 | 0;
if (($1955 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1961 = ($1947 - $1954 | 0) / 24 | 0;
if ($1961 >>> 0 < 1073741823) {
$1963 = $1961 << 1;
$$0$i$i$i181 = $1963 >>> 0 < $1957 >>> 0 ? $1957 : $1963;
} else $$0$i$i$i181 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i181, $1956, $db + 12 | 0);
$1966 = $__v$i$i$i + 8 | 0;
$1967 = HEAP32[$1966 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1967, $36);
HEAP32[$1966 >> 2] = $1967 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($37);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($38);
} else {
$1912 = (HEAP32[$1817 >> 2] | 0) + -24 | 0;
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($34, $type, 12776);
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($35, (HEAP32[$1817 >> 2] | 0) + -24 | 0);
$1915 = HEAP8[$35 >> 0] | 0;
$1917 = ($1915 & 1) == 0;
$1927 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($34, $1917 ? $35 + 1 | 0 : HEAP32[$35 + 8 >> 2] | 0, $1917 ? ($1915 & 255) >>> 1 : HEAP32[$35 + 4 >> 2] | 0) | 0;
HEAP32[$33 >> 2] = HEAP32[$1927 >> 2];
HEAP32[$33 + 4 >> 2] = HEAP32[$1927 + 4 >> 2];
HEAP32[$33 + 8 >> 2] = HEAP32[$1927 + 8 >> 2];
HEAP32[$1927 >> 2] = 0;
HEAP32[$1927 + 4 >> 2] = 0;
HEAP32[$1927 + 8 >> 2] = 0;
$1930 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($33, 12778) | 0;
HEAP32[$32 >> 2] = HEAP32[$1930 >> 2];
HEAP32[$32 + 4 >> 2] = HEAP32[$1930 + 4 >> 2];
HEAP32[$32 + 8 >> 2] = HEAP32[$1930 + 8 >> 2];
HEAP32[$1930 >> 2] = 0;
HEAP32[$1930 + 4 >> 2] = 0;
HEAP32[$1930 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($31, $32);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1912, $31);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($31);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($32);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($33);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($35);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($34);
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($proto);
} else {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($29, $type, 12726);
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($30, (HEAP32[$1817 >> 2] | 0) + -24 | 0);
$1869 = HEAP8[$30 >> 0] | 0;
$1871 = ($1869 & 1) == 0;
$1881 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($29, $1871 ? $30 + 1 | 0 : HEAP32[$30 + 8 >> 2] | 0, $1871 ? ($1869 & 255) >>> 1 : HEAP32[$30 + 4 >> 2] | 0) | 0;
HEAP32[$28 >> 2] = HEAP32[$1881 >> 2];
HEAP32[$28 + 4 >> 2] = HEAP32[$1881 + 4 >> 2];
HEAP32[$28 + 8 >> 2] = HEAP32[$1881 + 8 >> 2];
HEAP32[$1881 >> 2] = 0;
HEAP32[$1881 + 4 >> 2] = 0;
HEAP32[$1881 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($27, $28);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1866, $27);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($28);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($30);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($29);
}
$1970 = (HEAP32[$1817 >> 2] | 0) + -24 | 0;
HEAP32[$40 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($39, $1970, $40);
$1973 = $db + 16 | 0;
$1974 = $db + 20 | 0;
$1975 = HEAP32[$1974 >> 2] | 0;
$1977 = HEAP32[$db + 24 >> 2] | 0;
if ($1975 >>> 0 < $1977 >>> 0) {
HEAP32[$1975 + 12 >> 2] = HEAP32[$39 + 12 >> 2];
HEAP32[$1975 >> 2] = HEAP32[$39 >> 2];
$1984 = $39 + 4 | 0;
HEAP32[$1975 + 4 >> 2] = HEAP32[$1984 >> 2];
$1986 = $39 + 8 | 0;
HEAP32[$1975 + 8 >> 2] = HEAP32[$1986 >> 2];
HEAP32[$1986 >> 2] = 0;
HEAP32[$1984 >> 2] = 0;
HEAP32[$39 >> 2] = 0;
HEAP32[$1974 >> 2] = (HEAP32[$1974 >> 2] | 0) + 16;
} else {
$1994 = HEAP32[$1973 >> 2] | 0;
$1995 = $1975 - $1994 | 0;
$1996 = $1995 >> 4;
$1997 = $1996 + 1 | 0;
if (($1995 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($1973);
$2000 = $1977 - $1994 | 0;
if ($2000 >> 4 >>> 0 < 1073741823) {
$2003 = $2000 >> 3;
$$0$i$i$i153 = $2003 >>> 0 < $1997 >>> 0 ? $1997 : $2003;
} else $$0$i$i$i153 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i153, $1996, $db + 28 | 0);
$2006 = $__v$i$i$i + 8 | 0;
$2007 = HEAP32[$2006 >> 2] | 0;
HEAP32[$2007 + 12 >> 2] = HEAP32[$39 + 12 >> 2];
HEAP32[$2007 >> 2] = HEAP32[$39 >> 2];
$2013 = $39 + 4 | 0;
HEAP32[$2007 + 4 >> 2] = HEAP32[$2013 >> 2];
$2015 = $39 + 8 | 0;
HEAP32[$2007 + 8 >> 2] = HEAP32[$2015 >> 2];
HEAP32[$2015 >> 2] = 0;
HEAP32[$2013 >> 2] = 0;
HEAP32[$39 >> 2] = 0;
HEAP32[$2006 >> 2] = $2007 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($1973, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($39);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($type);
$$0 = $1815;
break L1;
break;
}
case 83:
{
$2019 = $first + 1 | 0;
if (($2019 | 0) != ($last | 0)) if ((HEAP8[$2019 >> 0] | 0) == 116) {
$2023 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($2023 | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$2027 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($2027 | 0)) {
$$0 = $first;
break L1;
}
$2029 = $db + 16 | 0;
HEAP32[$42 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($41, $2027 + -24 | 0, $42);
$2033 = $db + 20 | 0;
$2034 = HEAP32[$2033 >> 2] | 0;
$2036 = HEAP32[$db + 24 >> 2] | 0;
if ($2034 >>> 0 < $2036 >>> 0) {
HEAP32[$2034 + 12 >> 2] = HEAP32[$41 + 12 >> 2];
HEAP32[$2034 >> 2] = HEAP32[$41 >> 2];
$2043 = $41 + 4 | 0;
HEAP32[$2034 + 4 >> 2] = HEAP32[$2043 >> 2];
$2045 = $41 + 8 | 0;
HEAP32[$2034 + 8 >> 2] = HEAP32[$2045 >> 2];
HEAP32[$2045 >> 2] = 0;
HEAP32[$2043 >> 2] = 0;
HEAP32[$41 >> 2] = 0;
HEAP32[$2033 >> 2] = (HEAP32[$2033 >> 2] | 0) + 16;
} else {
$2053 = HEAP32[$2029 >> 2] | 0;
$2054 = $2034 - $2053 | 0;
$2055 = $2054 >> 4;
$2056 = $2055 + 1 | 0;
if (($2054 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2029);
$2059 = $2036 - $2053 | 0;
if ($2059 >> 4 >>> 0 < 1073741823) {
$2062 = $2059 >> 3;
$$0$i$i$i51 = $2062 >>> 0 < $2056 >>> 0 ? $2056 : $2062;
} else $$0$i$i$i51 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i51, $2055, $db + 28 | 0);
$2065 = $__v$i$i$i + 8 | 0;
$2066 = HEAP32[$2065 >> 2] | 0;
HEAP32[$2066 + 12 >> 2] = HEAP32[$41 + 12 >> 2];
HEAP32[$2066 >> 2] = HEAP32[$41 >> 2];
$2072 = $41 + 4 | 0;
HEAP32[$2066 + 4 >> 2] = HEAP32[$2072 >> 2];
$2074 = $41 + 8 | 0;
HEAP32[$2066 + 8 >> 2] = HEAP32[$2074 >> 2];
HEAP32[$2074 >> 2] = 0;
HEAP32[$2072 >> 2] = 0;
HEAP32[$41 >> 2] = 0;
HEAP32[$2065 >> 2] = $2066 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2029, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($41);
$$0 = $2023;
break L1;
}
$2078 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($2078 | 0) == ($first | 0)) {
$$0 = $first;
break L1;
}
$2080 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($2078, $last, $db) | 0;
if (($2080 | 0) == ($2078 | 0)) {
$$0 = $2078;
break L1;
}
$2082 = $db + 4 | 0;
$2083 = HEAP32[$2082 >> 2] | 0;
if ((($2083 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0 = $2078;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($template_args, $2083 + -24 | 0);
$2091 = HEAP32[$2082 >> 2] | 0;
$2092 = $2091 + -24 | 0;
$2094 = $2091;
do {
$2093 = $2094 + -24 | 0;
HEAP32[$2082 >> 2] = $2093;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2093);
$2094 = HEAP32[$2082 >> 2] | 0;
} while (($2094 | 0) != ($2092 | 0));
$2097 = HEAP8[$template_args >> 0] | 0;
$2099 = ($2097 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2091 + -48 | 0, $2099 ? $template_args + 1 | 0 : HEAP32[$template_args + 8 >> 2] | 0, $2099 ? ($2097 & 255) >>> 1 : HEAP32[$template_args + 4 >> 2] | 0) | 0;
$2110 = (HEAP32[$2082 >> 2] | 0) + -24 | 0;
HEAP32[$44 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($43, $2110, $44);
$2113 = $db + 16 | 0;
$2114 = $db + 20 | 0;
$2115 = HEAP32[$2114 >> 2] | 0;
$2117 = HEAP32[$db + 24 >> 2] | 0;
if ($2115 >>> 0 < $2117 >>> 0) {
HEAP32[$2115 + 12 >> 2] = HEAP32[$43 + 12 >> 2];
HEAP32[$2115 >> 2] = HEAP32[$43 >> 2];
$2124 = $43 + 4 | 0;
HEAP32[$2115 + 4 >> 2] = HEAP32[$2124 >> 2];
$2126 = $43 + 8 | 0;
HEAP32[$2115 + 8 >> 2] = HEAP32[$2126 >> 2];
HEAP32[$2126 >> 2] = 0;
HEAP32[$2124 >> 2] = 0;
HEAP32[$43 >> 2] = 0;
HEAP32[$2114 >> 2] = (HEAP32[$2114 >> 2] | 0) + 16;
} else {
$2134 = HEAP32[$2113 >> 2] | 0;
$2135 = $2115 - $2134 | 0;
$2136 = $2135 >> 4;
$2137 = $2136 + 1 | 0;
if (($2135 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2113);
$2140 = $2117 - $2134 | 0;
if ($2140 >> 4 >>> 0 < 1073741823) {
$2143 = $2140 >> 3;
$$0$i$i$i31 = $2143 >>> 0 < $2137 >>> 0 ? $2137 : $2143;
} else $$0$i$i$i31 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i31, $2136, $db + 28 | 0);
$2146 = $__v$i$i$i + 8 | 0;
$2147 = HEAP32[$2146 >> 2] | 0;
HEAP32[$2147 + 12 >> 2] = HEAP32[$43 + 12 >> 2];
HEAP32[$2147 >> 2] = HEAP32[$43 >> 2];
$2153 = $43 + 4 | 0;
HEAP32[$2147 + 4 >> 2] = HEAP32[$2153 >> 2];
$2155 = $43 + 8 | 0;
HEAP32[$2147 + 8 >> 2] = HEAP32[$2155 >> 2];
HEAP32[$2155 >> 2] = 0;
HEAP32[$2153 >> 2] = 0;
HEAP32[$43 >> 2] = 0;
HEAP32[$2146 >> 2] = $2147 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2113, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($43);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($template_args);
$$0 = $2080;
break L1;
break;
}
case 68:
{
$2159 = $first + 1 | 0;
if (($2159 | 0) != ($last | 0)) {
$2161 = HEAP8[$2159 >> 0] | 0;
switch ($2161 << 24 >> 24 | 0) {
case 112:
{
$2163 = $db + 4 | 0;
$2169 = ((HEAP32[$2163 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$2170 = $first + 2 | 0;
$2171 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2170, $last, $db) | 0;
$2177 = ((HEAP32[$2163 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (($2171 | 0) == ($2170 | 0)) break L65;
$2179 = $db + 16 | 0;
$2182 = HEAP32[$db + 12 >> 2] | 0;
$2183 = $db + 20 | 0;
$2184 = HEAP32[$2183 >> 2] | 0;
$2186 = HEAP32[$db + 24 >> 2] | 0;
if ($2184 >>> 0 < $2186 >>> 0) {
HEAP32[$2184 >> 2] = 0;
HEAP32[$2184 + 4 >> 2] = 0;
HEAP32[$2184 + 8 >> 2] = 0;
HEAP32[$2184 + 12 >> 2] = $2182;
HEAP32[$2183 >> 2] = (HEAP32[$2183 >> 2] | 0) + 16;
} else {
$2196 = HEAP32[$2179 >> 2] | 0;
$2197 = $2184 - $2196 | 0;
$2198 = $2197 >> 4;
$2199 = $2198 + 1 | 0;
if (($2197 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2179);
$2202 = $2186 - $2196 | 0;
if ($2202 >> 4 >>> 0 < 1073741823) {
$2205 = $2202 >> 3;
$$0$i$i$i29 = $2205 >>> 0 < $2199 >>> 0 ? $2199 : $2205;
} else $$0$i$i$i29 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i29, $2198, $db + 28 | 0);
$2208 = $__v$i$i$i + 8 | 0;
$2209 = HEAP32[$2208 >> 2] | 0;
HEAP32[$2209 >> 2] = 0;
HEAP32[$2209 + 4 >> 2] = 0;
HEAP32[$2209 + 8 >> 2] = 0;
HEAP32[$2209 + 12 >> 2] = $2182;
HEAP32[$2208 >> 2] = $2209 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2179, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
$2214 = $__v$i$i$i + 8 | 0;
if ($2169 >>> 0 < $2177 >>> 0) $k20$0550 = $2169; else {
$$0 = $2171;
break L1;
}
while (1) {
$2216 = HEAP32[$2183 >> 2] | 0;
$2217 = $2216 + -16 | 0;
$2218 = HEAP32[$db >> 2] | 0;
$2219 = $2218 + ($k20$0550 * 24 | 0) | 0;
$2220 = $2216 + -12 | 0;
$2221 = HEAP32[$2220 >> 2] | 0;
if (($2221 | 0) == (HEAP32[$2216 + -8 >> 2] | 0)) {
$2233 = $2221 - (HEAP32[$2217 >> 2] | 0) | 0;
$2234 = ($2233 | 0) / 24 | 0;
$2235 = $2234 + 1 | 0;
if (($2233 | 0) < -24) {
$$lcssa698 = $2217;
break;
}
if ($2234 >>> 0 < 1073741823) {
$2238 = $2234 << 1;
$$0$i$i$i27 = $2238 >>> 0 < $2235 >>> 0 ? $2235 : $2238;
} else $$0$i$i$i27 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i27, $2234, $2216 + -4 | 0);
$2241 = HEAP32[$2214 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2241, $2219);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2241 + 12 | 0, $2218 + ($k20$0550 * 24 | 0) + 12 | 0);
HEAP32[$2214 >> 2] = $2241 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($2217, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2221, $2219);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($2221 + 12 | 0, $2218 + ($k20$0550 * 24 | 0) + 12 | 0);
HEAP32[$2220 >> 2] = (HEAP32[$2220 >> 2] | 0) + 24;
}
$k20$0550 = $k20$0550 + 1 | 0;
if ($k20$0550 >>> 0 >= $2177 >>> 0) {
$$0 = $2171;
break L1;
}
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa698);
break;
}
case 84:
case 116:
{
$2247 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($2247 | 0) == ($first | 0)) break L65;
$2251 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($2251 | 0)) {
$$0 = $first;
break L1;
}
$2253 = $db + 16 | 0;
HEAP32[$46 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($45, $2251 + -24 | 0, $46);
$2257 = $db + 20 | 0;
$2258 = HEAP32[$2257 >> 2] | 0;
$2260 = HEAP32[$db + 24 >> 2] | 0;
if ($2258 >>> 0 < $2260 >>> 0) {
HEAP32[$2258 + 12 >> 2] = HEAP32[$45 + 12 >> 2];
HEAP32[$2258 >> 2] = HEAP32[$45 >> 2];
$2267 = $45 + 4 | 0;
HEAP32[$2258 + 4 >> 2] = HEAP32[$2267 >> 2];
$2269 = $45 + 8 | 0;
HEAP32[$2258 + 8 >> 2] = HEAP32[$2269 >> 2];
HEAP32[$2269 >> 2] = 0;
HEAP32[$2267 >> 2] = 0;
HEAP32[$45 >> 2] = 0;
HEAP32[$2257 >> 2] = (HEAP32[$2257 >> 2] | 0) + 16;
} else {
$2277 = HEAP32[$2253 >> 2] | 0;
$2278 = $2258 - $2277 | 0;
$2279 = $2278 >> 4;
$2280 = $2279 + 1 | 0;
if (($2278 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2253);
$2283 = $2260 - $2277 | 0;
if ($2283 >> 4 >>> 0 < 1073741823) {
$2286 = $2283 >> 3;
$$0$i$i$i22 = $2286 >>> 0 < $2280 >>> 0 ? $2280 : $2286;
} else $$0$i$i$i22 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i22, $2279, $db + 28 | 0);
$2289 = $__v$i$i$i + 8 | 0;
$2290 = HEAP32[$2289 >> 2] | 0;
HEAP32[$2290 + 12 >> 2] = HEAP32[$45 + 12 >> 2];
HEAP32[$2290 >> 2] = HEAP32[$45 >> 2];
$2296 = $45 + 4 | 0;
HEAP32[$2290 + 4 >> 2] = HEAP32[$2296 >> 2];
$2298 = $45 + 8 | 0;
HEAP32[$2290 + 8 >> 2] = HEAP32[$2298 >> 2];
HEAP32[$2298 >> 2] = 0;
HEAP32[$2296 >> 2] = 0;
HEAP32[$45 >> 2] = 0;
HEAP32[$2289 >> 2] = $2290 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2253, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($45);
$$0 = $2247;
break L1;
break;
}
case 118:
{
L662 : do if (($last - $first | 0) > 3 & $197 << 24 >> 24 == 68 & $2161 << 24 >> 24 == 118) {
$2308 = $first + 2 | 0;
$2309 = HEAP8[$2308 >> 0] | 0;
if (($2309 + -49 & 255) < 9) {
$2311 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($2308, $last) | 0;
if (($2311 | 0) == ($last | 0)) {
$$1$i263 = $first;
break;
}
if ((HEAP8[$2311 >> 0] | 0) != 95) {
$$1$i263 = $first;
break;
}
$2317 = $2311 - $2308 | 0;
$2318 = $2311 + 1 | 0;
if (($2318 | 0) == ($last | 0)) {
$$1$i263 = $first;
break;
}
if ((HEAP8[$2318 >> 0] | 0) != 112) {
$2322 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2318, $last, $db) | 0;
if (($2322 | 0) == ($2318 | 0)) {
$$1$i263 = $first;
break;
}
$2326 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($2326 | 0)) {
$$1$i263 = $first;
break;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $2308, $2317);
$2329 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 12780) | 0;
HEAP32[$1 >> 2] = HEAP32[$2329 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$2329 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$2329 + 8 >> 2];
HEAP32[$2329 >> 2] = 0;
HEAP32[$2329 + 4 >> 2] = 0;
HEAP32[$2329 + 8 >> 2] = 0;
$2332 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12703) | 0;
HEAP32[$0 >> 2] = HEAP32[$2332 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$2332 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$2332 + 8 >> 2];
HEAP32[$2332 >> 2] = 0;
HEAP32[$2332 + 4 >> 2] = 0;
HEAP32[$2332 + 8 >> 2] = 0;
$2335 = HEAP8[$0 >> 0] | 0;
$2337 = ($2335 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2326 + -24 | 0, $2337 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $2337 ? ($2335 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$1$i263 = $2322;
break;
}
$2347 = $2311 + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, $2308, $2317);
$2348 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 12789) | 0;
HEAP32[$5 >> 2] = HEAP32[$2348 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$2348 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$2348 + 8 >> 2];
HEAP32[$2348 >> 2] = 0;
HEAP32[$2348 + 4 >> 2] = 0;
HEAP32[$2348 + 8 >> 2] = 0;
$2351 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 12703) | 0;
HEAP32[$4 >> 2] = HEAP32[$2351 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$2351 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$2351 + 8 >> 2];
HEAP32[$2351 >> 2] = 0;
HEAP32[$2351 + 4 >> 2] = 0;
HEAP32[$2351 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($3, $4);
$2354 = $db + 4 | 0;
$2355 = HEAP32[$2354 >> 2] | 0;
$2357 = HEAP32[$db + 8 >> 2] | 0;
if ($2355 >>> 0 < $2357 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($2355, $3);
HEAP32[$2354 >> 2] = (HEAP32[$2354 >> 2] | 0) + 24;
} else {
$2364 = HEAP32[$db >> 2] | 0;
$2365 = $2355 - $2364 | 0;
$2366 = ($2365 | 0) / 24 | 0;
$2367 = $2366 + 1 | 0;
if (($2365 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$2371 = ($2357 - $2364 | 0) / 24 | 0;
if ($2371 >>> 0 < 1073741823) {
$2373 = $2371 << 1;
$$0$i$i$i$i = $2373 >>> 0 < $2367 >>> 0 ? $2367 : $2373;
} else $$0$i$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i$i, $$0$i$i$i$i, $2366, $db + 12 | 0);
$2376 = $__v$i$i$i + 8 | 0;
$2377 = HEAP32[$2376 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($2377, $3);
HEAP32[$2376 >> 2] = $2377 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
$$1$i263 = $2347;
break;
}
HEAP32[$num1$i >> 2] = 0;
HEAP32[$num1$i + 4 >> 2] = 0;
HEAP32[$num1$i + 8 >> 2] = 0;
if ($2309 << 24 >> 24 == 95) {
$t12$0$i = $2308;
label = 521;
} else {
$2382 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($2308, $last, $db) | 0;
if (($2382 | 0) == ($2308 | 0)) {
$t12$0$i = $2308;
label = 521;
} else {
$2385 = $db + 4 | 0;
$2386 = HEAP32[$2385 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) != ($2386 | 0)) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($7, $2386 + -24 | 0);
L689 : do if (!(HEAP8[$num1$i >> 0] & 1)) {
HEAP8[$num1$i + 1 >> 0] = 0;
HEAP8[$num1$i >> 0] = 0;
} else {
$2393 = $num1$i + 8 | 0;
$2394 = HEAP32[$2393 >> 2] | 0;
HEAP8[$2394 >> 0] = 0;
$2395 = $num1$i + 4 | 0;
HEAP32[$2395 >> 2] = 0;
$2396 = HEAP32[$num1$i >> 2] | 0;
$phitmp$i$i$i$i$i$i$i240 = ($2396 & -2) + -1 | 0;
$2398 = $2396 & 255;
do if (!($2398 & 1)) {
$2402 = $2396 >>> 1 & 127;
if (($2398 & 255) < 22) {
_memcpy($num1$i + 1 | 0, $2394 | 0, ($2396 >>> 1 & 127) + 1 | 0) | 0;
_free($2394);
$$ph390 = $2402;
break;
}
$2405 = $2402 + 16 & 240;
$phitmp$i2$i$i$i$i$i$i243 = $2405 + -1 | 0;
if (($phitmp$i2$i$i$i$i$i$i243 | 0) == ($phitmp$i$i$i$i$i$i$i240 | 0)) break L689;
$2408 = _malloc($2405) | 0;
if ($phitmp$i2$i$i$i$i$i$i243 >>> 0 <= $phitmp$i$i$i$i$i$i$i240 >>> 0 & ($2408 | 0) == 0) break L689;
_memcpy($2408 | 0, $num1$i + 1 | 0, ($2396 >>> 1 & 127) + 1 | 0) | 0;
HEAP32[$num1$i >> 2] = $2405 | 1;
HEAP32[$2395 >> 2] = $2402;
HEAP32[$2393 >> 2] = $2408;
break L689;
} else {
HEAP8[$num1$i + 1 >> 0] = 0;
_free($2394);
$$ph390 = 0;
} while (0);
HEAP8[$num1$i >> 0] = $$ph390 << 1;
} while (0);
HEAP32[$num1$i >> 2] = HEAP32[$7 >> 2];
HEAP32[$num1$i + 4 >> 2] = HEAP32[$7 + 4 >> 2];
HEAP32[$num1$i + 8 >> 2] = HEAP32[$7 + 8 >> 2];
HEAP32[$7 >> 2] = 0;
HEAP32[$7 + 4 >> 2] = 0;
HEAP32[$7 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7);
$2424 = HEAP32[$2385 >> 2] | 0;
$2425 = $2424 + -24 | 0;
$2427 = $2424;
do {
$2426 = $2427 + -24 | 0;
HEAP32[$2385 >> 2] = $2426;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2426);
$2427 = HEAP32[$2385 >> 2] | 0;
} while (($2427 | 0) != ($2425 | 0));
$t12$0$i = $2382;
label = 521;
}
}
}
do if ((label | 0) == 521) {
if (($t12$0$i | 0) == ($last | 0)) $$13$i259$ph = $first; else if ((HEAP8[$t12$0$i >> 0] | 0) == 95) {
$2432 = $t12$0$i + 1 | 0;
if (($2432 | 0) == ($last | 0)) $$13$i259$ph = $first; else {
$2434 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($2432, $last, $db) | 0;
if (($2434 | 0) == ($2432 | 0)) $$13$i259$ph = $first; else {
$2438 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($2438 | 0)) break;
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($9, 12780, $num1$i);
$2441 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($9, 12703) | 0;
HEAP32[$8 >> 2] = HEAP32[$2441 >> 2];
HEAP32[$8 + 4 >> 2] = HEAP32[$2441 + 4 >> 2];
HEAP32[$8 + 8 >> 2] = HEAP32[$2441 + 8 >> 2];
HEAP32[$2441 >> 2] = 0;
HEAP32[$2441 + 4 >> 2] = 0;
HEAP32[$2441 + 8 >> 2] = 0;
$2444 = HEAP8[$8 >> 0] | 0;
$2446 = ($2444 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2438 + -24 | 0, $2446 ? $8 + 1 | 0 : HEAP32[$8 + 8 >> 2] | 0, $2446 ? ($2444 & 255) >>> 1 : HEAP32[$8 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9);
$$13$i259$ph = $2434;
}
}
} else $$13$i259$ph = $first;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i);
$$1$i263 = $$13$i259$ph;
break L662;
} while (0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($num1$i);
$$1$i263 = $first;
} else $$1$i263 = $first; while (0);
if (($$1$i263 | 0) == ($first | 0)) break L65;
$2459 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($2459 | 0)) {
$$0 = $first;
break L1;
}
$2461 = $db + 16 | 0;
HEAP32[$48 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($47, $2459 + -24 | 0, $48);
$2465 = $db + 20 | 0;
$2466 = HEAP32[$2465 >> 2] | 0;
$2468 = HEAP32[$db + 24 >> 2] | 0;
if ($2466 >>> 0 < $2468 >>> 0) {
HEAP32[$2466 + 12 >> 2] = HEAP32[$47 + 12 >> 2];
HEAP32[$2466 >> 2] = HEAP32[$47 >> 2];
$2475 = $47 + 4 | 0;
HEAP32[$2466 + 4 >> 2] = HEAP32[$2475 >> 2];
$2477 = $47 + 8 | 0;
HEAP32[$2466 + 8 >> 2] = HEAP32[$2477 >> 2];
HEAP32[$2477 >> 2] = 0;
HEAP32[$2475 >> 2] = 0;
HEAP32[$47 >> 2] = 0;
HEAP32[$2465 >> 2] = (HEAP32[$2465 >> 2] | 0) + 16;
} else {
$2485 = HEAP32[$2461 >> 2] | 0;
$2486 = $2466 - $2485 | 0;
$2487 = $2486 >> 4;
$2488 = $2487 + 1 | 0;
if (($2486 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2461);
$2491 = $2468 - $2485 | 0;
if ($2491 >> 4 >>> 0 < 1073741823) {
$2494 = $2491 >> 3;
$$0$i$i$i17 = $2494 >>> 0 < $2488 >>> 0 ? $2488 : $2494;
} else $$0$i$i$i17 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i17, $2487, $db + 28 | 0);
$2497 = $__v$i$i$i + 8 | 0;
$2498 = HEAP32[$2497 >> 2] | 0;
HEAP32[$2498 + 12 >> 2] = HEAP32[$47 + 12 >> 2];
HEAP32[$2498 >> 2] = HEAP32[$47 >> 2];
$2504 = $47 + 4 | 0;
HEAP32[$2498 + 4 >> 2] = HEAP32[$2504 >> 2];
$2506 = $47 + 8 | 0;
HEAP32[$2498 + 8 >> 2] = HEAP32[$2506 >> 2];
HEAP32[$2506 >> 2] = 0;
HEAP32[$2504 >> 2] = 0;
HEAP32[$47 >> 2] = 0;
HEAP32[$2497 >> 2] = $2498 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2461, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($47);
$$0 = $$1$i263;
break L1;
break;
}
default:
break L65;
}
}
break;
}
default:
{}
} while (0);
$2510 = __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($2510 | 0) == ($first | 0)) {
$2512 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($2512 | 0) == ($first | 0)) $$0 = $first; else {
$2516 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($2516 | 0)) $$0 = $first; else {
$2518 = $db + 16 | 0;
HEAP32[$50 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($49, $2516 + -24 | 0, $50);
$2522 = $db + 20 | 0;
$2523 = HEAP32[$2522 >> 2] | 0;
$2525 = HEAP32[$db + 24 >> 2] | 0;
if ($2523 >>> 0 < $2525 >>> 0) {
HEAP32[$2523 + 12 >> 2] = HEAP32[$49 + 12 >> 2];
HEAP32[$2523 >> 2] = HEAP32[$49 >> 2];
$2532 = $49 + 4 | 0;
HEAP32[$2523 + 4 >> 2] = HEAP32[$2532 >> 2];
$2534 = $49 + 8 | 0;
HEAP32[$2523 + 8 >> 2] = HEAP32[$2534 >> 2];
HEAP32[$2534 >> 2] = 0;
HEAP32[$2532 >> 2] = 0;
HEAP32[$49 >> 2] = 0;
HEAP32[$2522 >> 2] = (HEAP32[$2522 >> 2] | 0) + 16;
} else {
$2542 = HEAP32[$2518 >> 2] | 0;
$2543 = $2523 - $2542 | 0;
$2544 = $2543 >> 4;
$2545 = $2544 + 1 | 0;
if (($2543 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($2518);
$2548 = $2525 - $2542 | 0;
if ($2548 >> 4 >>> 0 < 1073741823) {
$2551 = $2548 >> 3;
$$0$i$i$i = $2551 >>> 0 < $2545 >>> 0 ? $2545 : $2551;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i$i, $$0$i$i$i, $2544, $db + 28 | 0);
$2554 = $__v$i$i$i + 8 | 0;
$2555 = HEAP32[$2554 >> 2] | 0;
HEAP32[$2555 + 12 >> 2] = HEAP32[$49 + 12 >> 2];
HEAP32[$2555 >> 2] = HEAP32[$49 >> 2];
$2561 = $49 + 4 | 0;
HEAP32[$2555 + 4 >> 2] = HEAP32[$2561 >> 2];
$2563 = $49 + 8 | 0;
HEAP32[$2555 + 8 >> 2] = HEAP32[$2563 >> 2];
HEAP32[$2563 >> 2] = 0;
HEAP32[$2561 >> 2] = 0;
HEAP32[$49 >> 2] = 0;
HEAP32[$2554 >> 2] = $2555 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($2518, $__v$i$i$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($49);
$$0 = $2512;
}
}
} else $$0 = $2510;
} else $$0 = $195;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i299 = 0, $$0$i$i$i$i348 = 0, $$0$i254 = 0, $$019$i = 0, $$02$i = 0, $$02$i310 = 0, $$02$i317 = 0, $$03$i = 0, $$03$i174 = 0, $$03$i189 = 0, $$03$i200 = 0, $$03$i211 = 0, $$03$i265 = 0, $$03$i456 = 0, $$03$i486 = 0, $$06$i = 0, $$06$i248 = 0, $$06$i345 = 0, $$06$i426 = 0, $$2$i302 = 0, $$2$i398 = 0, $$221$i = 0, $$311$i = 0, $$9$i = 0, $$first$i = 0, $$ph518 = 0, $$ph520524 = 0, $$phi$trans$insert = 0, $$pre$i$i$i = 0, $$pre$i$i$i$i = 0, $$pre$i$i$i$i372 = 0, $$pre$i$i$i$i436 = 0, $$pre$i$i$i$i466 = 0, $$pre$i$i$i87 = 0, $$pre$phi511Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1022 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $103 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1043 = 0, $1047 = 0, $1050 = 0, $1053 = 0, $106 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1076 = 0, $1079 = 0, $1081 = 0, $109 = 0, $1091 = 0, $1093 = 0, $11 = 0, $110 = 0, $1103 = 0, $1106 = 0, $1108 = 0, $112 = 0, $1120 = 0, $1122 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1136 = 0, $1138 = 0, $1141 = 0, $1142 = 0, $1145 = 0, $1146 = 0, $1148 = 0, $1149 = 0, $1151 = 0, $1152 = 0, $1154 = 0, $1155 = 0, $1159 = 0, $1161 = 0, $1162 = 0, $1165 = 0, $1172 = 0, $1174 = 0, $1177 = 0, $1181 = 0, $1184 = 0, $1189 = 0, $1190 = 0, $1193 = 0, $1194 = 0, $1196 = 0, $1197 = 0, $12 = 0, $1206 = 0, $1209 = 0, $121 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1222 = 0, $1223 = 0, $1225 = 0, $1226 = 0, $1231 = 0, $1232 = 0, $1234 = 0, $1235 = 0, $1237 = 0, $1238 = 0, $1240 = 0, $1244 = 0, $1245 = 0, $1247 = 0, $1251 = 0, $1253 = 0, $1254 = 0, $1257 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1269 = 0, $1270 = 0, $1272 = 0, $1274 = 0, $1275 = 0, $128 = 0, $1283 = 0, $1284 = 0, $1285 = 0, $1286 = 0, $129 = 0, $1291 = 0, $1293 = 0, $13 = 0, $1306 = 0, $1307 = 0, $1309 = 0, $1311 = 0, $1313 = 0, $1314 = 0, $132 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1328 = 0, $1329 = 0, $1330 = 0, $1331 = 0, $1335 = 0, $1336 = 0, $1339 = 0, $1341 = 0, $1351 = 0, $1354 = 0, $1357 = 0, $1359 = 0, $1369 = 0, $1372 = 0, $1375 = 0, $1376 = 0, $1377 = 0, $1379 = 0, $1380 = 0, $1381 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $139 = 0, $1398 = 0, $1399 = 0, $14 = 0, $1401 = 0, $1403 = 0, $1404 = 0, $141 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1417 = 0, $1418 = 0, $1421 = 0, $1424 = 0, $1426 = 0, $1436 = 0, $1439 = 0, $144 = 0, $1442 = 0, $1443 = 0, $1445 = 0, $1446 = 0, $1448 = 0, $1449 = 0, $1451 = 0, $1452 = 0, $1463 = 0, $1464 = 0, $1466 = 0, $1468 = 0, $1469 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1482 = 0, $1483 = 0, $1486 = 0, $1489 = 0, $1491 = 0, $15 = 0, $1501 = 0, $1504 = 0, $151 = 0, $1513 = 0, $1514 = 0, $1523 = 0, $1524 = 0, $1528 = 0, $1530 = 0, $1531 = 0, $1534 = 0, $1543 = 0, $1544 = 0, $1548 = 0, $1550 = 0, $1551 = 0, $1554 = 0, $156 = 0, $1569 = 0, $157 = 0, $1572 = 0, $1578 = 0, $1579 = 0, $1581 = 0, $1585 = 0, $1591 = 0, $1593 = 0, $16 = 0, $160 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1609 = 0, $161 = 0, $1612 = 0, $1614 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $163 = 0, $1632 = 0, $1634 = 0, $164 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1648 = 0, $1650 = 0, $1653 = 0, $1654 = 0, $1662 = 0, $1665 = 0, $1669 = 0, $1671 = 0, $1672 = 0, $1675 = 0, $1685 = 0, $1687 = 0, $1693 = 0, $1695 = 0, $1696 = 0, $1699 = 0, $17 = 0, $1702 = 0, $1703 = 0, $1705 = 0, $1712 = 0, $1713 = 0, $1714 = 0, $1715 = 0, $1719 = 0, $1721 = 0, $1724 = 0, $1725 = 0, $173 = 0, $1734 = 0, $1735 = 0, $1739 = 0, $1741 = 0, $1742 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $1750 = 0, $1751 = 0, $176 = 0, $18 = 0, $187 = 0, $188 = 0, $19 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $214 = 0, $217 = 0, $22 = 0, $222 = 0, $223 = 0, $226 = 0, $227 = 0, $229 = 0, $23 = 0, $230 = 0, $239 = 0, $24 = 0, $242 = 0, $25 = 0, $256 = 0, $257 = 0, $259 = 0, $26 = 0, $261 = 0, $262 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $275 = 0, $276 = 0, $279 = 0, $28 = 0, $282 = 0, $284 = 0, $29 = 0, $294 = 0, $297 = 0, $3 = 0, $30 = 0, $305 = 0, $306 = 0, $31 = 0, $310 = 0, $311 = 0, $314 = 0, $315 = 0, $317 = 0, $32 = 0, $327 = 0, $33 = 0, $330 = 0, $335 = 0, $337 = 0, $34 = 0, $340 = 0, $344 = 0, $347 = 0, $35 = 0, $352 = 0, $353 = 0, $356 = 0, $357 = 0, $359 = 0, $36 = 0, $360 = 0, $369 = 0, $37 = 0, $372 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $384 = 0, $388 = 0, $39 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $396 = 0, $398 = 0, $4 = 0, $40 = 0, $402 = 0, $41 = 0, $412 = 0, $416 = 0, $417 = 0, $419 = 0, $42 = 0, $420 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $436 = 0, $438 = 0, $44 = 0, $442 = 0, $443 = 0, $445 = 0, $449 = 0, $45 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $464 = 0, $466 = 0, $469 = 0, $47 = 0, $470 = 0, $473 = 0, $477 = 0, $48 = 0, $482 = 0, $483 = 0, $49 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $496 = 0, $497 = 0, $5 = 0, $50 = 0, $500 = 0, $503 = 0, $505 = 0, $51 = 0, $515 = 0, $518 = 0, $52 = 0, $524 = 0, $525 = 0, $528 = 0, $529 = 0, $53 = 0, $531 = 0, $534 = 0, $539 = 0, $54 = 0, $541 = 0, $55 = 0, $551 = 0, $558 = 0, $56 = 0, $560 = 0, $563 = 0, $567 = 0, $57 = 0, $570 = 0, $575 = 0, $576 = 0, $579 = 0, $58 = 0, $580 = 0, $582 = 0, $583 = 0, $59 = 0, $592 = 0, $595 = 0, $6 = 0, $60 = 0, $606 = 0, $607 = 0, $609 = 0, $61 = 0, $611 = 0, $612 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $625 = 0, $626 = 0, $629 = 0, $63 = 0, $632 = 0, $634 = 0, $64 = 0, $644 = 0, $647 = 0, $65 = 0, $650 = 0, $651 = 0, $653 = 0, $654 = 0, $657 = 0, $658 = 0, $66 = 0, $660 = 0, $663 = 0, $668 = 0, $67 = 0, $670 = 0, $68 = 0, $680 = 0, $687 = 0, $689 = 0, $69 = 0, $692 = 0, $696 = 0, $699 = 0, $7 = 0, $70 = 0, $704 = 0, $705 = 0, $708 = 0, $709 = 0, $71 = 0, $711 = 0, $712 = 0, $72 = 0, $721 = 0, $724 = 0, $73 = 0, $736 = 0, $737 = 0, $739 = 0, $74 = 0, $741 = 0, $742 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $756 = 0, $758 = 0, $76 = 0, $77 = 0, $774 = 0, $775 = 0, $777 = 0, $779 = 0, $78 = 0, $780 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $794 = 0, $796 = 0, $8 = 0, $80 = 0, $806 = 0, $807 = 0, $809 = 0, $81 = 0, $810 = 0, $815 = 0, $816 = 0, $818 = 0, $819 = 0, $821 = 0, $822 = 0, $827 = 0, $828 = 0, $83 = 0, $830 = 0, $831 = 0, $836 = 0, $837 = 0, $839 = 0, $841 = 0, $842 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $857 = 0, $858 = 0, $861 = 0, $863 = 0, $873 = 0, $876 = 0, $879 = 0, $880 = 0, $881 = 0, $886 = 0, $887 = 0, $889 = 0, $890 = 0, $892 = 0, $893 = 0, $895 = 0, $896 = 0, $9 = 0, $90 = 0, $901 = 0, $902 = 0, $904 = 0, $905 = 0, $907 = 0, $908 = 0, $910 = 0, $911 = 0, $913 = 0, $917 = 0, $918 = 0, $920 = 0, $924 = 0, $926 = 0, $927 = 0, $930 = 0, $936 = 0, $940 = 0, $943 = 0, $945 = 0, $946 = 0, $947 = 0, $954 = 0, $955 = 0, $961 = 0, $976 = 0, $977 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $989 = 0, $993 = 0, $996 = 0, $999 = 0, $has_expr_list$0$off0$i = 0, $has_expr_list$0$off0$i$lcssa = 0, $has_init$0$off0$i513 = 0, $k$0$i621 = 0, $k$0$i622 = 0, $k1$0$i618 = 0, $op1 = 0, $op18 = 0, $op2 = 0, $op27 = 0, $op3 = 0, $parsed_gs$0$off0 = 0, $parsed_gs$0$off0$i = 0, $phitmp$i$i$i$i$i$i$i273 = 0, $phitmp$i$i$i$i$i$i32$i = 0, $phitmp$i2$i$i$i$i$i$i276 = 0, $phitmp$i2$i$i$i$i$i35$i = 0, $t$0 = 0, $t$0$i = 0, $t$0$i267 = 0, $t$0$i349567 = 0, $t$0$i390$lcssa = 0, $t$0$i390556 = 0, $t$1$i = 0, $t$1$i$lcssa = 0, $t$1$i350 = 0, $t$2$i = 0, $t$2$i351 = 0, $t$3$i512 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0, $t$1$i$looptemp = 0, $t$2$i$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1168 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 1144 | 0;
$1 = sp + 1120 | 0;
$2 = sp + 1096 | 0;
$3 = sp + 1084 | 0;
$4 = sp + 1072 | 0;
$5 = sp + 1048 | 0;
$6 = sp + 1032 | 0;
$7 = sp + 900 | 0;
$8 = sp + 632 | 0;
$9 = sp + 620 | 0;
$10 = sp + 584 | 0;
$11 = sp + 560 | 0;
$12 = sp + 524 | 0;
$13 = sp + 1020 | 0;
$14 = sp + 1008 | 0;
$15 = sp + 996 | 0;
$16 = sp + 984 | 0;
$17 = sp + 972 | 0;
$18 = sp + 960 | 0;
$19 = sp + 948 | 0;
$20 = sp + 936 | 0;
$21 = sp + 924 | 0;
$22 = sp + 912 | 0;
$23 = sp + 888 | 0;
$24 = sp + 876 | 0;
$25 = sp + 864 | 0;
$26 = sp + 852 | 0;
$27 = sp + 840 | 0;
$28 = sp + 828 | 0;
$29 = sp + 816 | 0;
$30 = sp + 804 | 0;
$31 = sp + 792 | 0;
$32 = sp + 780 | 0;
$33 = sp + 768 | 0;
$34 = sp + 756 | 0;
$35 = sp + 744 | 0;
$op2 = sp + 732 | 0;
$op1 = sp + 720 | 0;
$36 = sp + 696 | 0;
$37 = sp + 680 | 0;
$38 = sp + 668 | 0;
$39 = sp + 656 | 0;
$40 = sp + 644 | 0;
$41 = sp + 608 | 0;
$42 = sp + 596 | 0;
$43 = sp + 548 | 0;
$44 = sp + 536 | 0;
$45 = sp + 512 | 0;
$46 = sp + 500 | 0;
$47 = sp + 488 | 0;
$48 = sp + 476 | 0;
$49 = sp + 464 | 0;
$50 = sp + 440 | 0;
$51 = sp + 424 | 0;
$52 = sp + 412 | 0;
$53 = sp + 400 | 0;
$54 = sp + 388 | 0;
$55 = sp + 376 | 0;
$56 = sp + 364 | 0;
$57 = sp + 352 | 0;
$58 = sp + 340 | 0;
$59 = sp + 328 | 0;
$60 = sp + 316 | 0;
$61 = sp + 304 | 0;
$62 = sp + 292 | 0;
$63 = sp + 280 | 0;
$64 = sp + 256 | 0;
$65 = sp + 240 | 0;
$66 = sp + 228 | 0;
$67 = sp + 216 | 0;
$68 = sp + 204 | 0;
$op3 = sp + 192 | 0;
$op27 = sp + 180 | 0;
$op18 = sp + 168 | 0;
$69 = sp + 144 | 0;
$70 = sp + 132 | 0;
$71 = sp + 120 | 0;
$72 = sp + 108 | 0;
$73 = sp + 96 | 0;
$74 = sp + 84 | 0;
$75 = sp + 72 | 0;
$76 = sp + 60 | 0;
$77 = sp + 48 | 0;
$78 = sp + 36 | 0;
$79 = sp + 24 | 0;
$80 = sp;
$81 = $last;
$83 = $81 - $first | 0;
L1 : do if (($83 | 0) > 1) {
$85 = ($83 | 0) > 3;
if ($85) if ((HEAP8[$first >> 0] | 0) == 103) {
$90 = (HEAP8[$first + 1 >> 0] | 0) == 115;
$parsed_gs$0$off0 = $90;
$t$0 = $90 ? $first + 2 | 0 : $first;
} else {
$parsed_gs$0$off0 = 0;
$t$0 = $first;
} else {
$parsed_gs$0$off0 = 0;
$t$0 = $first;
}
do switch (HEAP8[$t$0 >> 0] | 0) {
case 76:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
case 84:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
case 102:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
case 97:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 97:
{
$100 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($13, 12743, 2);
$101 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($100, $last, $13, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($13);
$$0 = ($101 | 0) == ($100 | 0) ? $first : $101;
break L1;
break;
}
case 100:
{
$103 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($14, 12764, 1);
$104 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($103, $last, $14, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($14);
$$0 = ($104 | 0) == ($103 | 0) ? $first : $104;
break L1;
break;
}
case 110:
{
$106 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($15, 12764, 1);
$107 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($106, $last, $15, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($15);
$$0 = ($107 | 0) == ($106 | 0) ? $first : $107;
break L1;
break;
}
case 78:
{
$109 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($16, 13889, 2);
$110 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($109, $last, $16, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($16);
$$0 = ($110 | 0) == ($109 | 0) ? $first : $110;
break L1;
break;
}
case 83:
{
$112 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($17, 13892, 1);
$113 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($112, $last, $17, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($17);
$$0 = ($113 | 0) == ($112 | 0) ? $first : $113;
break L1;
break;
}
case 116:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 97) if ((HEAP8[$first + 1 >> 0] | 0) == 116) {
$121 = $first + 2 | 0;
$122 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($121, $last, $db) | 0;
if (($122 | 0) == ($121 | 0)) $$03$i486 = $first; else {
$126 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($126 | 0)) $$03$i486 = $first; else {
$128 = $126 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $128);
$129 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 13894) | 0;
HEAP32[$1 >> 2] = HEAP32[$129 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$129 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$129 + 8 >> 2];
HEAP32[$129 >> 2] = 0;
HEAP32[$129 + 4 >> 2] = 0;
HEAP32[$129 + 8 >> 2] = 0;
$132 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
HEAP32[$0 >> 2] = HEAP32[$132 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$132 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$132 + 8 >> 2];
HEAP32[$132 >> 2] = 0;
HEAP32[$132 + 4 >> 2] = 0;
HEAP32[$132 + 8 >> 2] = 0;
do if (!(HEAP8[$128 >> 0] & 1)) {
HEAP8[$128 + 1 >> 0] = 0;
HEAP8[$128 >> 0] = 0;
} else {
$139 = $126 + -16 | 0;
HEAP8[HEAP32[$139 >> 2] >> 0] = 0;
$141 = $126 + -20 | 0;
HEAP32[$141 >> 2] = 0;
$$pre$i$i$i$i466 = HEAP8[$128 >> 0] | 0;
if (!($$pre$i$i$i$i466 & 1)) {
$148 = $$pre$i$i$i$i466;
$157 = 10;
} else {
$144 = HEAP32[$128 >> 2] | 0;
$148 = $144 & 255;
$157 = ($144 & -2) + -1 | 0;
}
if (!($148 & 1)) {
$151 = ($148 & 255) >>> 1;
if (($148 & 255) < 22) {
$156 = 10;
$1746 = 1;
$176 = $151;
} else {
$156 = ($151 + 16 & 240) + -1 | 0;
$1746 = 1;
$176 = $151;
}
} else {
$156 = 10;
$1746 = 0;
$176 = 0;
}
if (($156 | 0) != ($157 | 0)) {
if (($156 | 0) == 10) {
$163 = $128 + 1 | 0;
$164 = HEAP32[$139 >> 2] | 0;
if ($1746) {
_memcpy($163 | 0, $164 | 0, (($148 & 255) >>> 1) + 1 | 0) | 0;
_free($164);
} else {
HEAP8[$163 >> 0] = HEAP8[$164 >> 0] | 0;
_free($164);
}
HEAP8[$128 >> 0] = $176 << 1;
break;
}
$160 = $156 + 1 | 0;
$161 = _malloc($160) | 0;
if (!($156 >>> 0 <= $157 >>> 0 & ($161 | 0) == 0)) {
if ($1746) _memcpy($161 | 0, $128 + 1 | 0, (($148 & 255) >>> 1) + 1 | 0) | 0; else {
$173 = HEAP32[$139 >> 2] | 0;
HEAP8[$161 >> 0] = HEAP8[$173 >> 0] | 0;
_free($173);
}
HEAP32[$128 >> 2] = $160 | 1;
HEAP32[$141 >> 2] = $176;
HEAP32[$139 >> 2] = $161;
}
}
} while (0);
HEAP32[$128 >> 2] = HEAP32[$0 >> 2];
HEAP32[$128 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$128 + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$03$i486 = $122;
}
}
} else $$03$i486 = $first; else $$03$i486 = $first; else $$03$i486 = $first;
$$0 = $$03$i486;
break L1;
break;
}
case 122:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 97) if ((HEAP8[$first + 1 >> 0] | 0) == 122) {
$187 = $first + 2 | 0;
$188 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($187, $last, $db) | 0;
if (($188 | 0) == ($187 | 0)) $$03$i456 = $first; else {
$192 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($192 | 0)) $$03$i456 = $first; else {
$194 = $192 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $194);
$195 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 13894) | 0;
HEAP32[$1 >> 2] = HEAP32[$195 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$195 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$195 + 8 >> 2];
HEAP32[$195 >> 2] = 0;
HEAP32[$195 + 4 >> 2] = 0;
HEAP32[$195 + 8 >> 2] = 0;
$198 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
HEAP32[$0 >> 2] = HEAP32[$198 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$198 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$198 + 8 >> 2];
HEAP32[$198 >> 2] = 0;
HEAP32[$198 + 4 >> 2] = 0;
HEAP32[$198 + 8 >> 2] = 0;
do if (!(HEAP8[$194 >> 0] & 1)) {
HEAP8[$194 + 1 >> 0] = 0;
HEAP8[$194 >> 0] = 0;
} else {
$205 = $192 + -16 | 0;
HEAP8[HEAP32[$205 >> 2] >> 0] = 0;
$207 = $192 + -20 | 0;
HEAP32[$207 >> 2] = 0;
$$pre$i$i$i$i436 = HEAP8[$194 >> 0] | 0;
if (!($$pre$i$i$i$i436 & 1)) {
$214 = $$pre$i$i$i$i436;
$223 = 10;
} else {
$210 = HEAP32[$194 >> 2] | 0;
$214 = $210 & 255;
$223 = ($210 & -2) + -1 | 0;
}
if (!($214 & 1)) {
$217 = ($214 & 255) >>> 1;
if (($214 & 255) < 22) {
$1747 = 1;
$222 = 10;
$242 = $217;
} else {
$1747 = 1;
$222 = ($217 + 16 & 240) + -1 | 0;
$242 = $217;
}
} else {
$1747 = 0;
$222 = 10;
$242 = 0;
}
if (($222 | 0) != ($223 | 0)) {
if (($222 | 0) == 10) {
$229 = $194 + 1 | 0;
$230 = HEAP32[$205 >> 2] | 0;
if ($1747) {
_memcpy($229 | 0, $230 | 0, (($214 & 255) >>> 1) + 1 | 0) | 0;
_free($230);
} else {
HEAP8[$229 >> 0] = HEAP8[$230 >> 0] | 0;
_free($230);
}
HEAP8[$194 >> 0] = $242 << 1;
break;
}
$226 = $222 + 1 | 0;
$227 = _malloc($226) | 0;
if (!($222 >>> 0 <= $223 >>> 0 & ($227 | 0) == 0)) {
if ($1747) _memcpy($227 | 0, $194 + 1 | 0, (($214 & 255) >>> 1) + 1 | 0) | 0; else {
$239 = HEAP32[$205 >> 2] | 0;
HEAP8[$227 >> 0] = HEAP8[$239 >> 0] | 0;
_free($239);
}
HEAP32[$194 >> 2] = $226 | 1;
HEAP32[$207 >> 2] = $242;
HEAP32[$205 >> 2] = $227;
}
}
} while (0);
HEAP32[$194 >> 2] = HEAP32[$0 >> 2];
HEAP32[$194 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$194 + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$03$i456 = $188;
}
}
} else $$03$i456 = $first; else $$03$i456 = $first; else $$03$i456 = $first;
$$0 = $$03$i456;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 99:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 99:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 99) {
$256 = $first + 2 | 0;
$257 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($256, $last, $db) | 0;
if (($257 | 0) == ($256 | 0)) $$06$i426 = $first; else {
$259 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($257, $last, $db) | 0;
if (($259 | 0) == ($257 | 0)) $$06$i426 = $first; else {
$261 = $db + 4 | 0;
$262 = HEAP32[$261 >> 2] | 0;
if ((($262 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i426 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $262 + -24 | 0);
$270 = HEAP32[$261 >> 2] | 0;
$271 = $270 + -24 | 0;
$273 = $270;
do {
$272 = $273 + -24 | 0;
HEAP32[$261 >> 2] = $272;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($272);
$273 = HEAP32[$261 >> 2] | 0;
} while (($273 | 0) != ($271 | 0));
$275 = $270 + -48 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $275);
$276 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 13904) | 0;
HEAP32[$5 >> 2] = HEAP32[$276 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$276 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$276 + 8 >> 2];
HEAP32[$276 >> 2] = 0;
HEAP32[$276 + 4 >> 2] = 0;
HEAP32[$276 + 8 >> 2] = 0;
$279 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0;
HEAP32[$4 >> 2] = HEAP32[$279 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$279 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$279 + 8 >> 2];
HEAP32[$279 >> 2] = 0;
HEAP32[$279 + 4 >> 2] = 0;
HEAP32[$279 + 8 >> 2] = 0;
$282 = HEAP8[$0 >> 0] | 0;
$284 = ($282 & 1) == 0;
$294 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $284 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $284 ? ($282 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
HEAP32[$3 >> 2] = HEAP32[$294 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$294 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$294 + 8 >> 2];
HEAP32[$294 >> 2] = 0;
HEAP32[$294 + 4 >> 2] = 0;
HEAP32[$294 + 8 >> 2] = 0;
$297 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0;
HEAP32[$2 >> 2] = HEAP32[$297 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$297 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$297 + 8 >> 2];
HEAP32[$297 >> 2] = 0;
HEAP32[$297 + 4 >> 2] = 0;
HEAP32[$297 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($275, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$06$i426 = $259;
}
}
}
} else $$06$i426 = $first; else $$06$i426 = $first; else $$06$i426 = $first;
$$0 = $$06$i426;
break L1;
break;
}
case 108:
{
L97 : do if ($85) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 108) {
$305 = $first + 2 | 0;
$306 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($305, $last, $db) | 0;
if (($306 | 0) == ($305 | 0) | ($306 | 0) == ($last | 0)) $$2$i398 = $first; else {
$310 = $db + 4 | 0;
$311 = HEAP32[$310 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($311 | 0)) $$2$i398 = $first; else {
$314 = $311 + -12 | 0;
$315 = HEAP8[$314 >> 0] | 0;
$317 = ($315 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($311 + -24 | 0, $317 ? $314 + 1 | 0 : HEAP32[$311 + -4 >> 2] | 0, $317 ? ($315 & 255) >>> 1 : HEAP32[$311 + -8 >> 2] | 0) | 0;
$327 = HEAP32[$310 >> 2] | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
$330 = $327 + -12 | 0;
do if (!(HEAP8[$330 >> 0] & 1)) {
HEAP8[$330 + 1 >> 0] = 0;
HEAP8[$330 >> 0] = 0;
} else {
$335 = $327 + -4 | 0;
HEAP8[HEAP32[$335 >> 2] >> 0] = 0;
$337 = $327 + -8 | 0;
HEAP32[$337 >> 2] = 0;
$$pre$i$i$i$i372 = HEAP8[$330 >> 0] | 0;
if (!($$pre$i$i$i$i372 & 1)) {
$344 = $$pre$i$i$i$i372;
$353 = 10;
} else {
$340 = HEAP32[$330 >> 2] | 0;
$344 = $340 & 255;
$353 = ($340 & -2) + -1 | 0;
}
if (!($344 & 1)) {
$347 = ($344 & 255) >>> 1;
if (($344 & 255) < 22) {
$1748 = 1;
$352 = 10;
$372 = $347;
} else {
$1748 = 1;
$352 = ($347 + 16 & 240) + -1 | 0;
$372 = $347;
}
} else {
$1748 = 0;
$352 = 10;
$372 = 0;
}
if (($352 | 0) != ($353 | 0)) {
if (($352 | 0) == 10) {
$359 = $330 + 1 | 0;
$360 = HEAP32[$335 >> 2] | 0;
if ($1748) {
_memcpy($359 | 0, $360 | 0, (($344 & 255) >>> 1) + 1 | 0) | 0;
_free($360);
} else {
HEAP8[$359 >> 0] = HEAP8[$360 >> 0] | 0;
_free($360);
}
HEAP8[$330 >> 0] = $372 << 1;
break;
}
$356 = $352 + 1 | 0;
$357 = _malloc($356) | 0;
if (!($352 >>> 0 <= $353 >>> 0 & ($357 | 0) == 0)) {
if ($1748) _memcpy($357 | 0, $330 + 1 | 0, (($344 & 255) >>> 1) + 1 | 0) | 0; else {
$369 = HEAP32[$335 >> 2] | 0;
HEAP8[$357 >> 0] = HEAP8[$369 >> 0] | 0;
_free($369);
}
HEAP32[$330 >> 2] = $356 | 1;
HEAP32[$337 >> 2] = $372;
HEAP32[$335 >> 2] = $357;
}
}
} while (0);
HEAP32[$330 >> 2] = HEAP32[$0 >> 2];
HEAP32[$330 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$330 + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$310 >> 2] | 0) + -24 | 0, 12714) | 0;
$379 = $1 + 4 | 0;
$380 = $1 + 8 | 0;
$381 = $1 + 1 | 0;
L127 : do if ((HEAP8[$306 >> 0] | 0) == 69) $t$0$i390$lcssa = $306; else {
$t$0$i390556 = $306;
while (1) {
$384 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$0$i390556, $last, $db) | 0;
if (($384 | 0) == ($t$0$i390556 | 0) | ($384 | 0) == ($last | 0)) {
$$2$i398 = $first;
break L97;
}
$388 = HEAP32[$310 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($388 | 0)) {
$$2$i398 = $first;
break L97;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($1, $388 + -24 | 0);
$391 = HEAP32[$310 >> 2] | 0;
$392 = $391 + -24 | 0;
$394 = $391;
do {
$393 = $394 + -24 | 0;
HEAP32[$310 >> 2] = $393;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($393);
$394 = HEAP32[$310 >> 2] | 0;
} while (($394 | 0) != ($392 | 0));
$396 = HEAP8[$1 >> 0] | 0;
$398 = ($396 & 1) == 0;
$402 = $398 ? ($396 & 255) >>> 1 : HEAP32[$379 >> 2] | 0;
if ($402) {
if ((HEAP32[$db >> 2] | 0) == ($392 | 0)) break;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($391 + -48 | 0, $398 ? $381 : HEAP32[$380 >> 2] | 0, $402) | 0;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
if ((HEAP8[$384 >> 0] | 0) == 69) {
$t$0$i390$lcssa = $384;
break L127;
} else $t$0$i390556 = $384;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
$$2$i398 = $first;
break L97;
} while (0);
$412 = HEAP32[$310 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($412 | 0)) $$2$i398 = $first; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($412 + -24 | 0, 12619) | 0;
$$2$i398 = $t$0$i390$lcssa + 1 | 0;
}
}
}
} else $$2$i398 = $first; else $$2$i398 = $first; else $$2$i398 = $first; while (0);
$$0 = $$2$i398;
break L1;
break;
}
case 109:
{
$416 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($18, 13919, 1);
$417 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($416, $last, $18, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($18);
$$0 = ($417 | 0) == ($416 | 0) ? $first : $417;
break L1;
break;
}
case 111:
{
$419 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($19, 12928, 1);
$420 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($419, $last, $19, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($19);
$$0 = ($420 | 0) == ($419 | 0) ? $first : $420;
break L1;
break;
}
case 118:
{
L146 : do if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 99) if ((HEAP8[$first + 1 >> 0] | 0) == 118) {
$428 = $db + 63 | 0;
$429 = HEAP8[$428 >> 0] | 0;
HEAP8[$428 >> 0] = 0;
$430 = $first + 2 | 0;
$431 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($430, $last, $db) | 0;
HEAP8[$428 >> 0] = $429;
if (($431 | 0) == ($430 | 0) | ($431 | 0) == ($last | 0)) $$311$i = $first; else {
if ((HEAP8[$431 >> 0] | 0) == 95) {
$438 = $431 + 1 | 0;
if (($438 | 0) == ($last | 0)) {
$$311$i = $first;
break;
}
do if ((HEAP8[$438 >> 0] | 0) == 69) {
$442 = $db + 4 | 0;
$443 = HEAP32[$442 >> 2] | 0;
$445 = HEAP32[$db + 8 >> 2] | 0;
if ($443 >>> 0 < $445 >>> 0) {
HEAP32[$443 >> 2] = 0;
HEAP32[$443 + 4 >> 2] = 0;
HEAP32[$443 + 8 >> 2] = 0;
HEAP32[$443 + 12 >> 2] = 0;
HEAP32[$443 + 16 >> 2] = 0;
HEAP32[$443 + 20 >> 2] = 0;
HEAP32[$443 >> 2] = 0;
HEAP32[$443 + 4 >> 2] = 0;
HEAP32[$443 + 8 >> 2] = 0;
$449 = $443 + 12 | 0;
HEAP32[$449 >> 2] = 0;
HEAP32[$449 + 4 >> 2] = 0;
HEAP32[$449 + 8 >> 2] = 0;
HEAP32[$442 >> 2] = (HEAP32[$442 >> 2] | 0) + 24;
$t$1$i350 = $438;
break;
}
$457 = HEAP32[$db >> 2] | 0;
$458 = $443 - $457 | 0;
$459 = ($458 | 0) / 24 | 0;
$460 = $459 + 1 | 0;
if (($458 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$464 = ($445 - $457 | 0) / 24 | 0;
if ($464 >>> 0 < 1073741823) {
$466 = $464 << 1;
$$0$i$i$i$i348 = $466 >>> 0 < $460 >>> 0 ? $460 : $466;
} else $$0$i$i$i$i348 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i348, $459, $db + 12 | 0);
$469 = $0 + 8 | 0;
$470 = HEAP32[$469 >> 2] | 0;
HEAP32[$470 >> 2] = 0;
HEAP32[$470 + 4 >> 2] = 0;
HEAP32[$470 + 8 >> 2] = 0;
HEAP32[$470 + 12 >> 2] = 0;
HEAP32[$470 + 16 >> 2] = 0;
HEAP32[$470 + 20 >> 2] = 0;
HEAP32[$470 >> 2] = 0;
HEAP32[$470 + 4 >> 2] = 0;
HEAP32[$470 + 8 >> 2] = 0;
$473 = $470 + 12 | 0;
HEAP32[$473 >> 2] = 0;
HEAP32[$473 + 4 >> 2] = 0;
HEAP32[$473 + 8 >> 2] = 0;
HEAP32[$469 >> 2] = $470 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0);
$t$1$i350 = $438;
} else {
$t$0$i349567 = $438;
while (1) {
$477 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$0$i349567, $last, $db) | 0;
if (($477 | 0) == ($t$0$i349567 | 0) | ($477 | 0) == ($last | 0)) {
$$311$i = $first;
break L146;
}
if ((HEAP8[$477 >> 0] | 0) == 69) {
$t$1$i350 = $477;
break;
} else $t$0$i349567 = $477;
}
} while (0);
$t$2$i351 = $t$1$i350 + 1 | 0;
} else {
$436 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($431, $last, $db) | 0;
if (($436 | 0) == ($431 | 0)) {
$$311$i = $first;
break;
} else $t$2$i351 = $436;
}
$482 = $db + 4 | 0;
$483 = HEAP32[$482 >> 2] | 0;
if ((($483 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$311$i = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($1, $483 + -24 | 0);
$491 = HEAP32[$482 >> 2] | 0;
$492 = $491 + -24 | 0;
$494 = $491;
do {
$493 = $494 + -24 | 0;
HEAP32[$482 >> 2] = $493;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($493);
$494 = HEAP32[$482 >> 2] | 0;
} while (($494 | 0) != ($492 | 0));
$496 = $491 + -48 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($7, $496);
$497 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($7, 0, 12714) | 0;
HEAP32[$6 >> 2] = HEAP32[$497 >> 2];
HEAP32[$6 + 4 >> 2] = HEAP32[$497 + 4 >> 2];
HEAP32[$6 + 8 >> 2] = HEAP32[$497 + 8 >> 2];
HEAP32[$497 >> 2] = 0;
HEAP32[$497 + 4 >> 2] = 0;
HEAP32[$497 + 8 >> 2] = 0;
$500 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 13921) | 0;
HEAP32[$5 >> 2] = HEAP32[$500 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$500 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$500 + 8 >> 2];
HEAP32[$500 >> 2] = 0;
HEAP32[$500 + 4 >> 2] = 0;
HEAP32[$500 + 8 >> 2] = 0;
$503 = HEAP8[$1 >> 0] | 0;
$505 = ($503 & 1) == 0;
$515 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($5, $505 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $505 ? ($503 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0;
HEAP32[$4 >> 2] = HEAP32[$515 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$515 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$515 + 8 >> 2];
HEAP32[$515 >> 2] = 0;
HEAP32[$515 + 4 >> 2] = 0;
HEAP32[$515 + 8 >> 2] = 0;
$518 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($4, 12619) | 0;
HEAP32[$3 >> 2] = HEAP32[$518 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$518 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$518 + 8 >> 2];
HEAP32[$518 >> 2] = 0;
HEAP32[$518 + 4 >> 2] = 0;
HEAP32[$518 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($496, $2);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
$$311$i = $t$2$i351;
}
}
} else $$311$i = $first; else $$311$i = $first; else $$311$i = $first; while (0);
$$0 = $$311$i;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 100:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 97:
{
$524 = $t$0 + 2 | 0;
$525 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($524, $last, $db) | 0;
if (($525 | 0) == ($524 | 0)) {
$$0 = $first;
break L1;
}
$528 = $db + 4 | 0;
$529 = HEAP32[$528 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($529 | 0)) {
$$0 = $first;
break L1;
}
$531 = $529 + -24 | 0;
if ($parsed_gs$0$off0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($22, 12902, 2); else {
HEAP32[$22 >> 2] = 0;
HEAP32[$22 + 4 >> 2] = 0;
HEAP32[$22 + 8 >> 2] = 0;
}
$534 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($22, 13924) | 0;
HEAP32[$21 >> 2] = HEAP32[$534 >> 2];
HEAP32[$21 + 4 >> 2] = HEAP32[$534 + 4 >> 2];
HEAP32[$21 + 8 >> 2] = HEAP32[$534 + 8 >> 2];
HEAP32[$534 >> 2] = 0;
HEAP32[$534 + 4 >> 2] = 0;
HEAP32[$534 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($23, (HEAP32[$528 >> 2] | 0) + -24 | 0);
$539 = HEAP8[$23 >> 0] | 0;
$541 = ($539 & 1) == 0;
$551 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($21, $541 ? $23 + 1 | 0 : HEAP32[$23 + 8 >> 2] | 0, $541 ? ($539 & 255) >>> 1 : HEAP32[$23 + 4 >> 2] | 0) | 0;
HEAP32[$20 >> 2] = HEAP32[$551 >> 2];
HEAP32[$20 + 4 >> 2] = HEAP32[$551 + 4 >> 2];
HEAP32[$20 + 8 >> 2] = HEAP32[$551 + 8 >> 2];
HEAP32[$551 >> 2] = 0;
HEAP32[$551 + 4 >> 2] = 0;
HEAP32[$551 + 8 >> 2] = 0;
do if (!(HEAP8[$531 >> 0] & 1)) {
HEAP8[$531 + 1 >> 0] = 0;
HEAP8[$531 >> 0] = 0;
} else {
$558 = $529 + -16 | 0;
HEAP8[HEAP32[$558 >> 2] >> 0] = 0;
$560 = $529 + -20 | 0;
HEAP32[$560 >> 2] = 0;
$$pre$i$i$i = HEAP8[$531 >> 0] | 0;
if (!($$pre$i$i$i & 1)) {
$567 = $$pre$i$i$i;
$576 = 10;
} else {
$563 = HEAP32[$531 >> 2] | 0;
$567 = $563 & 255;
$576 = ($563 & -2) + -1 | 0;
}
if (!($567 & 1)) {
$570 = ($567 & 255) >>> 1;
if (($567 & 255) < 22) {
$1749 = 1;
$575 = 10;
$595 = $570;
} else {
$1749 = 1;
$575 = ($570 + 16 & 240) + -1 | 0;
$595 = $570;
}
} else {
$1749 = 0;
$575 = 10;
$595 = 0;
}
if (($575 | 0) != ($576 | 0)) {
if (($575 | 0) == 10) {
$582 = $531 + 1 | 0;
$583 = HEAP32[$558 >> 2] | 0;
if ($1749) {
_memcpy($582 | 0, $583 | 0, (($567 & 255) >>> 1) + 1 | 0) | 0;
_free($583);
} else {
HEAP8[$582 >> 0] = HEAP8[$583 >> 0] | 0;
_free($583);
}
HEAP8[$531 >> 0] = $595 << 1;
break;
}
$579 = $575 + 1 | 0;
$580 = _malloc($579) | 0;
if (!($575 >>> 0 <= $576 >>> 0 & ($580 | 0) == 0)) {
if ($1749) _memcpy($580 | 0, $531 + 1 | 0, (($567 & 255) >>> 1) + 1 | 0) | 0; else {
$592 = HEAP32[$558 >> 2] | 0;
HEAP8[$580 >> 0] = HEAP8[$592 >> 0] | 0;
_free($592);
}
HEAP32[$531 >> 2] = $579 | 1;
HEAP32[$560 >> 2] = $595;
HEAP32[$558 >> 2] = $580;
}
}
} while (0);
HEAP32[$531 >> 2] = HEAP32[$20 >> 2];
HEAP32[$531 + 4 >> 2] = HEAP32[$20 + 4 >> 2];
HEAP32[$531 + 8 >> 2] = HEAP32[$20 + 8 >> 2];
HEAP32[$20 >> 2] = 0;
HEAP32[$20 + 4 >> 2] = 0;
HEAP32[$20 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22);
$$0 = $525;
break L1;
break;
}
case 99:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 99) {
$606 = $first + 2 | 0;
$607 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($606, $last, $db) | 0;
if (($607 | 0) == ($606 | 0)) $$06$i345 = $first; else {
$609 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($607, $last, $db) | 0;
if (($609 | 0) == ($607 | 0)) $$06$i345 = $first; else {
$611 = $db + 4 | 0;
$612 = HEAP32[$611 >> 2] | 0;
if ((($612 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i345 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $612 + -24 | 0);
$620 = HEAP32[$611 >> 2] | 0;
$621 = $620 + -24 | 0;
$623 = $620;
do {
$622 = $623 + -24 | 0;
HEAP32[$611 >> 2] = $622;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($622);
$623 = HEAP32[$611 >> 2] | 0;
} while (($623 | 0) != ($621 | 0));
$625 = $620 + -48 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $625);
$626 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 13934) | 0;
HEAP32[$5 >> 2] = HEAP32[$626 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$626 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$626 + 8 >> 2];
HEAP32[$626 >> 2] = 0;
HEAP32[$626 + 4 >> 2] = 0;
HEAP32[$626 + 8 >> 2] = 0;
$629 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0;
HEAP32[$4 >> 2] = HEAP32[$629 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$629 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$629 + 8 >> 2];
HEAP32[$629 >> 2] = 0;
HEAP32[$629 + 4 >> 2] = 0;
HEAP32[$629 + 8 >> 2] = 0;
$632 = HEAP8[$0 >> 0] | 0;
$634 = ($632 & 1) == 0;
$644 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $634 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $634 ? ($632 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
HEAP32[$3 >> 2] = HEAP32[$644 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$644 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$644 + 8 >> 2];
HEAP32[$644 >> 2] = 0;
HEAP32[$644 + 4 >> 2] = 0;
HEAP32[$644 + 8 >> 2] = 0;
$647 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0;
HEAP32[$2 >> 2] = HEAP32[$647 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$647 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$647 + 8 >> 2];
HEAP32[$647 >> 2] = 0;
HEAP32[$647 + 4 >> 2] = 0;
HEAP32[$647 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($625, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$06$i345 = $609;
}
}
}
} else $$06$i345 = $first; else $$06$i345 = $first; else $$06$i345 = $first;
$$0 = $$06$i345;
break L1;
break;
}
case 101:
{
$650 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($24, 12759, 1);
$651 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($650, $last, $24, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($24);
$$0 = ($651 | 0) == ($650 | 0) ? $first : $651;
break L1;
break;
}
case 108:
{
$653 = $t$0 + 2 | 0;
$654 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($653, $last, $db) | 0;
if (($654 | 0) == ($653 | 0)) {
$$0 = $first;
break L1;
}
$657 = $db + 4 | 0;
$658 = HEAP32[$657 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($658 | 0)) {
$$0 = $first;
break L1;
}
$660 = $658 + -24 | 0;
if ($parsed_gs$0$off0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($27, 12902, 2); else {
HEAP32[$27 >> 2] = 0;
HEAP32[$27 + 4 >> 2] = 0;
HEAP32[$27 + 8 >> 2] = 0;
}
$663 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($27, 13948) | 0;
HEAP32[$26 >> 2] = HEAP32[$663 >> 2];
HEAP32[$26 + 4 >> 2] = HEAP32[$663 + 4 >> 2];
HEAP32[$26 + 8 >> 2] = HEAP32[$663 + 8 >> 2];
HEAP32[$663 >> 2] = 0;
HEAP32[$663 + 4 >> 2] = 0;
HEAP32[$663 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($28, (HEAP32[$657 >> 2] | 0) + -24 | 0);
$668 = HEAP8[$28 >> 0] | 0;
$670 = ($668 & 1) == 0;
$680 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($26, $670 ? $28 + 1 | 0 : HEAP32[$28 + 8 >> 2] | 0, $670 ? ($668 & 255) >>> 1 : HEAP32[$28 + 4 >> 2] | 0) | 0;
HEAP32[$25 >> 2] = HEAP32[$680 >> 2];
HEAP32[$25 + 4 >> 2] = HEAP32[$680 + 4 >> 2];
HEAP32[$25 + 8 >> 2] = HEAP32[$680 + 8 >> 2];
HEAP32[$680 >> 2] = 0;
HEAP32[$680 + 4 >> 2] = 0;
HEAP32[$680 + 8 >> 2] = 0;
do if (!(HEAP8[$660 >> 0] & 1)) {
HEAP8[$660 + 1 >> 0] = 0;
HEAP8[$660 >> 0] = 0;
} else {
$687 = $658 + -16 | 0;
HEAP8[HEAP32[$687 >> 2] >> 0] = 0;
$689 = $658 + -20 | 0;
HEAP32[$689 >> 2] = 0;
$$pre$i$i$i87 = HEAP8[$660 >> 0] | 0;
if (!($$pre$i$i$i87 & 1)) {
$696 = $$pre$i$i$i87;
$705 = 10;
} else {
$692 = HEAP32[$660 >> 2] | 0;
$696 = $692 & 255;
$705 = ($692 & -2) + -1 | 0;
}
if (!($696 & 1)) {
$699 = ($696 & 255) >>> 1;
if (($696 & 255) < 22) {
$1750 = 1;
$704 = 10;
$724 = $699;
} else {
$1750 = 1;
$704 = ($699 + 16 & 240) + -1 | 0;
$724 = $699;
}
} else {
$1750 = 0;
$704 = 10;
$724 = 0;
}
if (($704 | 0) != ($705 | 0)) {
if (($704 | 0) == 10) {
$711 = $660 + 1 | 0;
$712 = HEAP32[$687 >> 2] | 0;
if ($1750) {
_memcpy($711 | 0, $712 | 0, (($696 & 255) >>> 1) + 1 | 0) | 0;
_free($712);
} else {
HEAP8[$711 >> 0] = HEAP8[$712 >> 0] | 0;
_free($712);
}
HEAP8[$660 >> 0] = $724 << 1;
break;
}
$708 = $704 + 1 | 0;
$709 = _malloc($708) | 0;
if (!($704 >>> 0 <= $705 >>> 0 & ($709 | 0) == 0)) {
if ($1750) _memcpy($709 | 0, $660 + 1 | 0, (($696 & 255) >>> 1) + 1 | 0) | 0; else {
$721 = HEAP32[$687 >> 2] | 0;
HEAP8[$709 >> 0] = HEAP8[$721 >> 0] | 0;
_free($721);
}
HEAP32[$660 >> 2] = $708 | 1;
HEAP32[$689 >> 2] = $724;
HEAP32[$687 >> 2] = $709;
}
}
} while (0);
HEAP32[$660 >> 2] = HEAP32[$25 >> 2];
HEAP32[$660 + 4 >> 2] = HEAP32[$25 + 4 >> 2];
HEAP32[$660 + 8 >> 2] = HEAP32[$25 + 8 >> 2];
HEAP32[$25 >> 2] = 0;
HEAP32[$25 + 4 >> 2] = 0;
HEAP32[$25 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($25);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($28);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($26);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($27);
$$0 = $654;
break L1;
break;
}
case 110:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
case 115:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 115) {
$736 = $first + 2 | 0;
$737 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($736, $last, $db) | 0;
if (($737 | 0) == ($736 | 0)) $$02$i317 = $first; else {
$739 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($737, $last, $db) | 0;
if (($739 | 0) == ($737 | 0)) $$02$i317 = $first; else {
$741 = $db + 4 | 0;
$742 = HEAP32[$741 >> 2] | 0;
if ((($742 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$02$i317 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $742 + -24 | 0);
$750 = HEAP32[$741 >> 2] | 0;
$751 = $750 + -24 | 0;
$753 = $750;
do {
$752 = $753 + -24 | 0;
HEAP32[$741 >> 2] = $752;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($752);
$753 = HEAP32[$741 >> 2] | 0;
} while (($753 | 0) != ($751 | 0));
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($1, 13956, $0);
$756 = HEAP8[$1 >> 0] | 0;
$758 = ($756 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($750 + -48 | 0, $758 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $758 ? ($756 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$02$i317 = $739;
}
}
}
} else $$02$i317 = $first; else $$02$i317 = $first; else $$02$i317 = $first;
$$0 = $$02$i317;
break L1;
break;
}
case 116:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 100) if ((HEAP8[$first + 1 >> 0] | 0) == 116) {
$774 = $first + 2 | 0;
$775 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($774, $last, $db) | 0;
if (($775 | 0) == ($774 | 0)) $$02$i310 = $first; else {
$777 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($775, $last, $db) | 0;
if (($777 | 0) == ($775 | 0)) $$02$i310 = $first; else {
$779 = $db + 4 | 0;
$780 = HEAP32[$779 >> 2] | 0;
if ((($780 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$02$i310 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $780 + -24 | 0);
$788 = HEAP32[$779 >> 2] | 0;
$789 = $788 + -24 | 0;
$791 = $788;
do {
$790 = $791 + -24 | 0;
HEAP32[$779 >> 2] = $790;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($790);
$791 = HEAP32[$779 >> 2] | 0;
} while (($791 | 0) != ($789 | 0));
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($1, 18335, $0);
$794 = HEAP8[$1 >> 0] | 0;
$796 = ($794 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($788 + -48 | 0, $796 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $796 ? ($794 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$02$i310 = $777;
}
}
}
} else $$02$i310 = $first; else $$02$i310 = $first; else $$02$i310 = $first;
$$0 = $$02$i310;
break L1;
break;
}
case 118:
{
$806 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($29, 13959, 1);
$807 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($806, $last, $29, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($29);
$$0 = ($807 | 0) == ($806 | 0) ? $first : $807;
break L1;
break;
}
case 86:
{
$809 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($30, 13961, 2);
$810 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($809, $last, $30, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($30);
$$0 = ($810 | 0) == ($809 | 0) ? $first : $810;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 101:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 111:
{
$815 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($31, 13964, 1);
$816 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($815, $last, $31, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($31);
$$0 = ($816 | 0) == ($815 | 0) ? $first : $816;
break L1;
break;
}
case 79:
{
$818 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($32, 13966, 2);
$819 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($818, $last, $32, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($32);
$$0 = ($819 | 0) == ($818 | 0) ? $first : $819;
break L1;
break;
}
case 113:
{
$821 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($33, 13969, 2);
$822 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($821, $last, $33, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($33);
$$0 = ($822 | 0) == ($821 | 0) ? $first : $822;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 103:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 101:
{
$827 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($34, 13972, 2);
$828 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($827, $last, $34, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($34);
$$0 = ($828 | 0) == ($827 | 0) ? $first : $828;
break L1;
break;
}
case 116:
{
$830 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($35, 12778, 1);
$831 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($830, $last, $35, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($35);
$$0 = ($831 | 0) == ($830 | 0) ? $first : $831;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 105:
{
if ((HEAP8[$t$0 + 1 >> 0] | 0) != 120) {
$$0 = $first;
break L1;
}
$836 = $first + 2 | 0;
$837 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($836, $last, $db) | 0;
if (($837 | 0) == ($836 | 0)) {
$$0 = $first;
break L1;
}
$839 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($837, $last, $db) | 0;
$841 = $db + 4 | 0;
$842 = HEAP32[$841 >> 2] | 0;
if (($839 | 0) == ($837 | 0)) {
$879 = $842 + -24 | 0;
$881 = $842;
while (1) {
$880 = $881 + -24 | 0;
HEAP32[$841 >> 2] = $880;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($880);
$881 = HEAP32[$841 >> 2] | 0;
if (($881 | 0) == ($879 | 0)) {
$$0 = $first;
break L1;
}
}
}
if ((($842 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op2, $842 + -24 | 0);
$850 = HEAP32[$841 >> 2] | 0;
$851 = $850 + -24 | 0;
$853 = $850;
do {
$852 = $853 + -24 | 0;
HEAP32[$841 >> 2] = $852;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($852);
$853 = HEAP32[$841 >> 2] | 0;
} while (($853 | 0) != ($851 | 0));
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op1, $850 + -48 | 0);
$857 = (HEAP32[$841 >> 2] | 0) + -24 | 0;
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($40, 12714, $op1);
$858 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($40, 13975) | 0;
HEAP32[$39 >> 2] = HEAP32[$858 >> 2];
HEAP32[$39 + 4 >> 2] = HEAP32[$858 + 4 >> 2];
HEAP32[$39 + 8 >> 2] = HEAP32[$858 + 8 >> 2];
HEAP32[$858 >> 2] = 0;
HEAP32[$858 + 4 >> 2] = 0;
HEAP32[$858 + 8 >> 2] = 0;
$861 = HEAP8[$op2 >> 0] | 0;
$863 = ($861 & 1) == 0;
$873 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($39, $863 ? $op2 + 1 | 0 : HEAP32[$op2 + 8 >> 2] | 0, $863 ? ($861 & 255) >>> 1 : HEAP32[$op2 + 4 >> 2] | 0) | 0;
HEAP32[$38 >> 2] = HEAP32[$873 >> 2];
HEAP32[$38 + 4 >> 2] = HEAP32[$873 + 4 >> 2];
HEAP32[$38 + 8 >> 2] = HEAP32[$873 + 8 >> 2];
HEAP32[$873 >> 2] = 0;
HEAP32[$873 + 4 >> 2] = 0;
HEAP32[$873 + 8 >> 2] = 0;
$876 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($38, 12703) | 0;
HEAP32[$37 >> 2] = HEAP32[$876 >> 2];
HEAP32[$37 + 4 >> 2] = HEAP32[$876 + 4 >> 2];
HEAP32[$37 + 8 >> 2] = HEAP32[$876 + 8 >> 2];
HEAP32[$876 >> 2] = 0;
HEAP32[$876 + 4 >> 2] = 0;
HEAP32[$876 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($36, $37);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($857, $36);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($37);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($38);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($39);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($40);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op2);
$$0 = $839;
break L1;
break;
}
case 108:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 101:
{
$886 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($41, 13978, 2);
$887 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($886, $last, $41, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($41);
$$0 = ($887 | 0) == ($886 | 0) ? $first : $887;
break L1;
break;
}
case 115:
{
$889 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($42, 13981, 2);
$890 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($889, $last, $42, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($42);
$$0 = ($890 | 0) == ($889 | 0) ? $first : $890;
break L1;
break;
}
case 83:
{
$892 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($43, 13984, 3);
$893 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($892, $last, $43, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($43);
$$0 = ($893 | 0) == ($892 | 0) ? $first : $893;
break L1;
break;
}
case 116:
{
$895 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($44, 12776, 1);
$896 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($895, $last, $44, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($44);
$$0 = ($896 | 0) == ($895 | 0) ? $first : $896;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 109:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 105:
{
$901 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($45, 13988, 1);
$902 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($901, $last, $45, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($45);
$$0 = ($902 | 0) == ($901 | 0) ? $first : $902;
break L1;
break;
}
case 73:
{
$904 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($46, 13990, 2);
$905 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($904, $last, $46, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($46);
$$0 = ($905 | 0) == ($904 | 0) ? $first : $905;
break L1;
break;
}
case 108:
{
$907 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($47, 12759, 1);
$908 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($907, $last, $47, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($47);
$$0 = ($908 | 0) == ($907 | 0) ? $first : $908;
break L1;
break;
}
case 76:
{
$910 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($48, 13993, 2);
$911 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($910, $last, $48, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($48);
$$0 = ($911 | 0) == ($910 | 0) ? $first : $911;
break L1;
break;
}
case 109:
{
$913 = $first + 2 | 0;
if (($913 | 0) != ($last | 0)) if ((HEAP8[$913 >> 0] | 0) == 95) {
$917 = $first + 3 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($49, 13996, 2);
$918 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($917, $last, $49, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($49);
$$0 = ($918 | 0) == ($917 | 0) ? $first : $918;
break L1;
}
$920 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($913, $last, $db) | 0;
if (($920 | 0) == ($913 | 0)) {
$$0 = $first;
break L1;
}
$924 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($924 | 0)) {
$$0 = $first;
break L1;
}
$926 = $924 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($53, $926);
$927 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($53, 0, 12714) | 0;
HEAP32[$52 >> 2] = HEAP32[$927 >> 2];
HEAP32[$52 + 4 >> 2] = HEAP32[$927 + 4 >> 2];
HEAP32[$52 + 8 >> 2] = HEAP32[$927 + 8 >> 2];
HEAP32[$927 >> 2] = 0;
HEAP32[$927 + 4 >> 2] = 0;
HEAP32[$927 + 8 >> 2] = 0;
$930 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($52, 13999) | 0;
HEAP32[$51 >> 2] = HEAP32[$930 >> 2];
HEAP32[$51 + 4 >> 2] = HEAP32[$930 + 4 >> 2];
HEAP32[$51 + 8 >> 2] = HEAP32[$930 + 8 >> 2];
HEAP32[$930 >> 2] = 0;
HEAP32[$930 + 4 >> 2] = 0;
HEAP32[$930 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($50, $51);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($926, $50);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($50);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($51);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($52);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($53);
$$0 = $920;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 110:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 119:
case 97:
{
L323 : do if ($85) {
$936 = HEAP8[$first >> 0] | 0;
if ($936 << 24 >> 24 == 103) {
$940 = (HEAP8[$first + 1 >> 0] | 0) == 115;
$$first$i = $940 ? $first + 2 | 0 : $first;
$943 = HEAP8[$$first$i >> 0] | 0;
$parsed_gs$0$off0$i = $940;
$t$0$i267 = $$first$i;
} else {
$943 = $936;
$parsed_gs$0$off0$i = 0;
$t$0$i267 = $first;
}
if ($943 << 24 >> 24 == 110) {
$945 = HEAP8[$t$0$i267 + 1 >> 0] | 0;
switch ($945 << 24 >> 24) {
case 97:
case 119:
break;
default:
{
$$221$i = $first;
label = 319;
break L323;
}
}
$946 = $945 << 24 >> 24 == 97;
$947 = $t$0$i267 + 2 | 0;
if (($947 | 0) == ($last | 0)) $$9$i = $first; else {
$has_expr_list$0$off0$i = 0;
$t$1$i = $947;
while (1) {
if ((HEAP8[$t$1$i >> 0] | 0) == 95) {
$has_expr_list$0$off0$i$lcssa = $has_expr_list$0$off0$i;
$t$1$i$lcssa = $t$1$i;
break;
}
$t$1$i$looptemp = $t$1$i;
$t$1$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$1$i, $last, $db) | 0;
if (($t$1$i | 0) == ($t$1$i$looptemp | 0) | ($t$1$i | 0) == ($last | 0)) {
$$9$i = $first;
break L323;
} else $has_expr_list$0$off0$i = 1;
}
$954 = $t$1$i$lcssa + 1 | 0;
$955 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($954, $last, $db) | 0;
if (($955 | 0) == ($954 | 0) | ($955 | 0) == ($last | 0)) $$9$i = $first; else {
$961 = HEAP8[$955 >> 0] | 0;
L335 : do if (($81 - $955 | 0) > 2 & $961 << 24 >> 24 == 112) {
if ((HEAP8[$955 + 1 >> 0] | 0) != 105) {
$$9$i = $first;
break L323;
}
$t$2$i = $955 + 2 | 0;
while (1) {
if ((HEAP8[$t$2$i >> 0] | 0) == 69) {
$has_init$0$off0$i513 = 1;
$t$3$i512 = $t$2$i;
break L335;
}
$t$2$i$looptemp = $t$2$i;
$t$2$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($t$2$i, $last, $db) | 0;
if (($t$2$i | 0) == ($t$2$i$looptemp | 0) | ($t$2$i | 0) == ($last | 0)) {
$$9$i = $first;
break L323;
}
}
} else if ($961 << 24 >> 24 == 69) {
$has_init$0$off0$i513 = 0;
$t$3$i512 = $955;
} else {
$$9$i = $first;
break L323;
} while (0);
HEAP32[$1 >> 2] = 0;
HEAP32[$1 + 4 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
if ($has_init$0$off0$i513) {
$976 = $db + 4 | 0;
$977 = HEAP32[$976 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) != ($977 | 0)) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $977 + -24 | 0);
L346 : do if (!(HEAP8[$1 >> 0] & 1)) {
HEAP8[$1 + 1 >> 0] = 0;
HEAP8[$1 >> 0] = 0;
} else {
$984 = $1 + 8 | 0;
$985 = HEAP32[$984 >> 2] | 0;
HEAP8[$985 >> 0] = 0;
$986 = $1 + 4 | 0;
HEAP32[$986 >> 2] = 0;
$987 = HEAP32[$1 >> 2] | 0;
$phitmp$i$i$i$i$i$i$i273 = ($987 & -2) + -1 | 0;
$989 = $987 & 255;
do if (!($989 & 1)) {
$993 = $987 >>> 1 & 127;
if (($989 & 255) < 22) {
_memcpy($1 + 1 | 0, $985 | 0, ($987 >>> 1 & 127) + 1 | 0) | 0;
_free($985);
$$ph518 = $993;
break;
}
$996 = $993 + 16 & 240;
$phitmp$i2$i$i$i$i$i$i276 = $996 + -1 | 0;
if (($phitmp$i2$i$i$i$i$i$i276 | 0) == ($phitmp$i$i$i$i$i$i$i273 | 0)) break L346;
$999 = _malloc($996) | 0;
if ($phitmp$i2$i$i$i$i$i$i276 >>> 0 <= $phitmp$i$i$i$i$i$i$i273 >>> 0 & ($999 | 0) == 0) break L346;
_memcpy($999 | 0, $1 + 1 | 0, ($987 >>> 1 & 127) + 1 | 0) | 0;
HEAP32[$1 >> 2] = $996 | 1;
HEAP32[$986 >> 2] = $993;
HEAP32[$984 >> 2] = $999;
break L346;
} else {
HEAP8[$1 + 1 >> 0] = 0;
_free($985);
$$ph518 = 0;
} while (0);
HEAP8[$1 >> 0] = $$ph518 << 1;
} while (0);
HEAP32[$1 >> 2] = HEAP32[$2 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$2 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$2 + 8 >> 2];
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$1015 = HEAP32[$976 >> 2] | 0;
$1016 = $1015 + -24 | 0;
$1018 = $1015;
do {
$1017 = $1018 + -24 | 0;
HEAP32[$976 >> 2] = $1017;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1017);
$1018 = HEAP32[$976 >> 2] | 0;
} while (($1018 | 0) != ($1016 | 0));
$$pre$phi511Z2D = $976;
$$pre$phiZ2D = $db;
$1022 = $1016;
label = 283;
}
} else {
$$phi$trans$insert = $db + 4 | 0;
$$pre$phi511Z2D = $$phi$trans$insert;
$$pre$phiZ2D = $db;
$1022 = HEAP32[$$phi$trans$insert >> 2] | 0;
label = 283;
}
if ((label | 0) == 283) if ((HEAP32[$$pre$phiZ2D >> 2] | 0) != ($1022 | 0)) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1022 + -24 | 0);
$1024 = HEAP32[$$pre$phi511Z2D >> 2] | 0;
$1025 = $1024 + -24 | 0;
$1027 = $1024;
do {
$1026 = $1027 + -24 | 0;
HEAP32[$$pre$phi511Z2D >> 2] = $1026;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1026);
$1027 = HEAP32[$$pre$phi511Z2D >> 2] | 0;
} while (($1027 | 0) != ($1025 | 0));
HEAP32[$4 >> 2] = 0;
HEAP32[$4 + 4 >> 2] = 0;
HEAP32[$4 + 8 >> 2] = 0;
if ($has_expr_list$0$off0$i$lcssa) if ((HEAP32[$$pre$phiZ2D >> 2] | 0) == ($1025 | 0)) {
$$019$i = $first;
$$2$i302 = 0;
} else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($5, $1024 + -48 | 0);
L371 : do if (!(HEAP8[$4 >> 0] & 1)) {
HEAP8[$4 + 1 >> 0] = 0;
HEAP8[$4 >> 0] = 0;
} else {
$1038 = $4 + 8 | 0;
$1039 = HEAP32[$1038 >> 2] | 0;
HEAP8[$1039 >> 0] = 0;
$1040 = $4 + 4 | 0;
HEAP32[$1040 >> 2] = 0;
$1041 = HEAP32[$4 >> 2] | 0;
$phitmp$i$i$i$i$i$i32$i = ($1041 & -2) + -1 | 0;
$1043 = $1041 & 255;
do if (!($1043 & 1)) {
$1047 = $1041 >>> 1 & 127;
if (($1043 & 255) < 22) {
_memcpy($4 + 1 | 0, $1039 | 0, ($1041 >>> 1 & 127) + 1 | 0) | 0;
_free($1039);
$$ph520524 = $1047;
break;
}
$1050 = $1047 + 16 & 240;
$phitmp$i2$i$i$i$i$i35$i = $1050 + -1 | 0;
if (($phitmp$i2$i$i$i$i$i35$i | 0) == ($phitmp$i$i$i$i$i$i32$i | 0)) break L371;
$1053 = _malloc($1050) | 0;
if ($phitmp$i2$i$i$i$i$i35$i >>> 0 <= $phitmp$i$i$i$i$i$i32$i >>> 0 & ($1053 | 0) == 0) break L371;
_memcpy($1053 | 0, $4 + 1 | 0, ($1041 >>> 1 & 127) + 1 | 0) | 0;
HEAP32[$4 >> 2] = $1050 | 1;
HEAP32[$1040 >> 2] = $1047;
HEAP32[$1038 >> 2] = $1053;
break L371;
} else {
HEAP8[$4 + 1 >> 0] = 0;
_free($1039);
$$ph520524 = 0;
} while (0);
HEAP8[$4 >> 0] = $$ph520524 << 1;
} while (0);
HEAP32[$4 >> 2] = HEAP32[$5 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$5 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$5 + 8 >> 2];
HEAP32[$5 >> 2] = 0;
HEAP32[$5 + 4 >> 2] = 0;
HEAP32[$5 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
$1069 = HEAP32[$$pre$phi511Z2D >> 2] | 0;
$1070 = $1069 + -24 | 0;
$1072 = $1069;
do {
$1071 = $1072 + -24 | 0;
HEAP32[$$pre$phi511Z2D >> 2] = $1071;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1071);
$1072 = HEAP32[$$pre$phi511Z2D >> 2] | 0;
} while (($1072 | 0) != ($1070 | 0));
label = 300;
} else label = 300;
if ((label | 0) == 300) {
HEAP32[$6 >> 2] = 0;
HEAP32[$6 + 4 >> 2] = 0;
HEAP32[$6 + 8 >> 2] = 0;
if ($parsed_gs$0$off0$i) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($6, 12902, 2);
if ($946) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 14003) | 0; else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($6, 12726) | 0;
if ($has_expr_list$0$off0$i$lcssa) {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($8, 12714, $4);
$1076 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($8, 14007) | 0;
HEAP32[$7 >> 2] = HEAP32[$1076 >> 2];
HEAP32[$7 + 4 >> 2] = HEAP32[$1076 + 4 >> 2];
HEAP32[$7 + 8 >> 2] = HEAP32[$1076 + 8 >> 2];
HEAP32[$1076 >> 2] = 0;
HEAP32[$1076 + 4 >> 2] = 0;
HEAP32[$1076 + 8 >> 2] = 0;
$1079 = HEAP8[$7 >> 0] | 0;
$1081 = ($1079 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1081 ? $7 + 1 | 0 : HEAP32[$7 + 8 >> 2] | 0, $1081 ? ($1079 & 255) >>> 1 : HEAP32[$7 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8);
}
$1091 = HEAP8[$3 >> 0] | 0;
$1093 = ($1091 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1093 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $1093 ? ($1091 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0;
if ($has_init$0$off0$i513) {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($10, 12616, $1);
$1103 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($10, 12619) | 0;
HEAP32[$9 >> 2] = HEAP32[$1103 >> 2];
HEAP32[$9 + 4 >> 2] = HEAP32[$1103 + 4 >> 2];
HEAP32[$9 + 8 >> 2] = HEAP32[$1103 + 8 >> 2];
HEAP32[$1103 >> 2] = 0;
HEAP32[$1103 + 4 >> 2] = 0;
HEAP32[$1103 + 8 >> 2] = 0;
$1106 = HEAP8[$9 >> 0] | 0;
$1108 = ($1106 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($6, $1108 ? $9 + 1 | 0 : HEAP32[$9 + 8 >> 2] | 0, $1108 ? ($1106 & 255) >>> 1 : HEAP32[$9 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($10);
};
HEAP32[$12 >> 2] = HEAP32[$6 >> 2];
HEAP32[$12 + 4 >> 2] = HEAP32[$6 + 4 >> 2];
HEAP32[$12 + 8 >> 2] = HEAP32[$6 + 8 >> 2];
HEAP32[$6 >> 2] = 0;
HEAP32[$6 + 4 >> 2] = 0;
HEAP32[$6 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($11, $12);
$1120 = HEAP32[$$pre$phi511Z2D >> 2] | 0;
$1122 = HEAP32[$db + 8 >> 2] | 0;
if ($1120 >>> 0 < $1122 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1120, $11);
HEAP32[$$pre$phi511Z2D >> 2] = (HEAP32[$$pre$phi511Z2D >> 2] | 0) + 24;
} else {
$1129 = HEAP32[$$pre$phiZ2D >> 2] | 0;
$1130 = $1120 - $1129 | 0;
$1131 = ($1130 | 0) / 24 | 0;
$1132 = $1131 + 1 | 0;
if (($1130 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1136 = ($1122 - $1129 | 0) / 24 | 0;
if ($1136 >>> 0 < 1073741823) {
$1138 = $1136 << 1;
$$0$i$i$i$i299 = $1138 >>> 0 < $1132 >>> 0 ? $1132 : $1138;
} else $$0$i$i$i$i299 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i299, $1131, $db + 12 | 0);
$1141 = $0 + 8 | 0;
$1142 = HEAP32[$1141 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1142, $11);
HEAP32[$1141 >> 2] = $1142 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($12);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
$$019$i = $t$3$i512 + 1 | 0;
$$2$i302 = 1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
if ($$2$i302) {
$$221$i = $$019$i;
label = 319;
break;
} else {
$$9$i = $first;
break;
}
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
$$9$i = $first;
}
}
} else {
$$221$i = $first;
label = 319;
}
} else {
$$221$i = $first;
label = 319;
} while (0);
if ((label | 0) == 319) $$9$i = $$221$i;
$$0 = $$9$i;
break L1;
break;
}
case 101:
{
$1145 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($54, 14010, 2);
$1146 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1145, $last, $54, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($54);
$$0 = ($1146 | 0) == ($1145 | 0) ? $first : $1146;
break L1;
break;
}
case 103:
{
$1148 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($55, 13988, 1);
$1149 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1148, $last, $55, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($55);
$$0 = ($1149 | 0) == ($1148 | 0) ? $first : $1149;
break L1;
break;
}
case 116:
{
$1151 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($56, 14013, 1);
$1152 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1151, $last, $56, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($56);
$$0 = ($1152 | 0) == ($1151 | 0) ? $first : $1152;
break L1;
break;
}
case 120:
{
$1154 = $first + 2 | 0;
$1155 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1154, $last, $db) | 0;
if (($1155 | 0) == ($1154 | 0)) $$03$i265 = $1154; else {
$1159 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1159 | 0)) $$03$i265 = $1154; else {
$1161 = $1159 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1161);
$1162 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 14015) | 0;
HEAP32[$1 >> 2] = HEAP32[$1162 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$1162 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$1162 + 8 >> 2];
HEAP32[$1162 >> 2] = 0;
HEAP32[$1162 + 4 >> 2] = 0;
HEAP32[$1162 + 8 >> 2] = 0;
$1165 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
HEAP32[$0 >> 2] = HEAP32[$1165 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$1165 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$1165 + 8 >> 2];
HEAP32[$1165 >> 2] = 0;
HEAP32[$1165 + 4 >> 2] = 0;
HEAP32[$1165 + 8 >> 2] = 0;
do if (!(HEAP8[$1161 >> 0] & 1)) {
HEAP8[$1161 + 1 >> 0] = 0;
HEAP8[$1161 >> 0] = 0;
} else {
$1172 = $1159 + -16 | 0;
HEAP8[HEAP32[$1172 >> 2] >> 0] = 0;
$1174 = $1159 + -20 | 0;
HEAP32[$1174 >> 2] = 0;
$$pre$i$i$i$i = HEAP8[$1161 >> 0] | 0;
if (!($$pre$i$i$i$i & 1)) {
$1181 = $$pre$i$i$i$i;
$1190 = 10;
} else {
$1177 = HEAP32[$1161 >> 2] | 0;
$1181 = $1177 & 255;
$1190 = ($1177 & -2) + -1 | 0;
}
if (!($1181 & 1)) {
$1184 = ($1181 & 255) >>> 1;
if (($1181 & 255) < 22) {
$1189 = 10;
$1209 = $1184;
$1751 = 1;
} else {
$1189 = ($1184 + 16 & 240) + -1 | 0;
$1209 = $1184;
$1751 = 1;
}
} else {
$1189 = 10;
$1209 = 0;
$1751 = 0;
}
if (($1189 | 0) != ($1190 | 0)) {
if (($1189 | 0) == 10) {
$1196 = $1161 + 1 | 0;
$1197 = HEAP32[$1172 >> 2] | 0;
if ($1751) {
_memcpy($1196 | 0, $1197 | 0, (($1181 & 255) >>> 1) + 1 | 0) | 0;
_free($1197);
} else {
HEAP8[$1196 >> 0] = HEAP8[$1197 >> 0] | 0;
_free($1197);
}
HEAP8[$1161 >> 0] = $1209 << 1;
break;
}
$1193 = $1189 + 1 | 0;
$1194 = _malloc($1193) | 0;
if (!($1189 >>> 0 <= $1190 >>> 0 & ($1194 | 0) == 0)) {
if ($1751) _memcpy($1194 | 0, $1161 + 1 | 0, (($1181 & 255) >>> 1) + 1 | 0) | 0; else {
$1206 = HEAP32[$1172 >> 2] | 0;
HEAP8[$1194 >> 0] = HEAP8[$1206 >> 0] | 0;
_free($1206);
}
HEAP32[$1161 >> 2] = $1193 | 1;
HEAP32[$1174 >> 2] = $1209;
HEAP32[$1172 >> 2] = $1194;
}
}
} while (0);
HEAP32[$1161 >> 2] = HEAP32[$0 >> 2];
HEAP32[$1161 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$1161 + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$03$i265 = $1155;
}
}
$$0 = ($$03$i265 | 0) == ($1154 | 0) ? $first : $$03$i265;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 111:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 110:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
case 111:
{
$1219 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($57, 14026, 2);
$1220 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1219, $last, $57, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($57);
$$0 = ($1220 | 0) == ($1219 | 0) ? $first : $1220;
break L1;
break;
}
case 114:
{
$1222 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($58, 14029, 1);
$1223 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1222, $last, $58, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($58);
$$0 = ($1223 | 0) == ($1222 | 0) ? $first : $1223;
break L1;
break;
}
case 82:
{
$1225 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($59, 14031, 2);
$1226 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1225, $last, $59, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($59);
$$0 = ($1226 | 0) == ($1225 | 0) ? $first : $1226;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 112:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 109:
{
$1231 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($60, 14034, 3);
$1232 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1231, $last, $60, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($60);
$$0 = ($1232 | 0) == ($1231 | 0) ? $first : $1232;
break L1;
break;
}
case 108:
{
$1234 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($61, 14038, 1);
$1235 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1234, $last, $61, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($61);
$$0 = ($1235 | 0) == ($1234 | 0) ? $first : $1235;
break L1;
break;
}
case 76:
{
$1237 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($62, 14040, 2);
$1238 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1237, $last, $62, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($62);
$$0 = ($1238 | 0) == ($1237 | 0) ? $first : $1238;
break L1;
break;
}
case 112:
{
$1240 = $first + 2 | 0;
if (($1240 | 0) != ($last | 0)) if ((HEAP8[$1240 >> 0] | 0) == 95) {
$1244 = $first + 3 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($63, 14043, 2);
$1245 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1244, $last, $63, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($63);
$$0 = ($1245 | 0) == ($1244 | 0) ? $first : $1245;
break L1;
}
$1247 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1240, $last, $db) | 0;
if (($1247 | 0) == ($1240 | 0)) {
$$0 = $first;
break L1;
}
$1251 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1251 | 0)) {
$$0 = $first;
break L1;
}
$1253 = $1251 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($67, $1253);
$1254 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($67, 0, 12714) | 0;
HEAP32[$66 >> 2] = HEAP32[$1254 >> 2];
HEAP32[$66 + 4 >> 2] = HEAP32[$1254 + 4 >> 2];
HEAP32[$66 + 8 >> 2] = HEAP32[$1254 + 8 >> 2];
HEAP32[$1254 >> 2] = 0;
HEAP32[$1254 + 4 >> 2] = 0;
HEAP32[$1254 + 8 >> 2] = 0;
$1257 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($66, 14046) | 0;
HEAP32[$65 >> 2] = HEAP32[$1257 >> 2];
HEAP32[$65 + 4 >> 2] = HEAP32[$1257 + 4 >> 2];
HEAP32[$65 + 8 >> 2] = HEAP32[$1257 + 8 >> 2];
HEAP32[$1257 >> 2] = 0;
HEAP32[$1257 + 4 >> 2] = 0;
HEAP32[$1257 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($64, $65);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1253, $64);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($64);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($65);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($66);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($67);
$$0 = $1247;
break L1;
break;
}
case 115:
{
$1260 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($68, 14038, 1);
$1261 = __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1260, $last, $68, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($68);
$$0 = ($1261 | 0) == ($1260 | 0) ? $first : $1261;
break L1;
break;
}
case 116:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 112) if ((HEAP8[$first + 1 >> 0] | 0) == 116) {
$1269 = $first + 2 | 0;
$1270 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1269, $last, $db) | 0;
if (($1270 | 0) == ($1269 | 0)) $$0$i254 = $first; else {
$1272 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1270, $last, $db) | 0;
if (($1272 | 0) == ($1270 | 0)) $$0$i254 = $first; else {
$1274 = $db + 4 | 0;
$1275 = HEAP32[$1274 >> 2] | 0;
if ((($1275 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0$i254 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1275 + -24 | 0);
$1283 = HEAP32[$1274 >> 2] | 0;
$1284 = $1283 + -24 | 0;
$1286 = $1283;
do {
$1285 = $1286 + -24 | 0;
HEAP32[$1274 >> 2] = $1285;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1285);
$1286 = HEAP32[$1274 >> 2] | 0;
} while (($1286 | 0) != ($1284 | 0));
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1283 + -48 | 0, 14050) | 0;
$1291 = HEAP8[$0 >> 0] | 0;
$1293 = ($1291 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$1274 >> 2] | 0) + -24 | 0, $1293 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1293 ? ($1291 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$0$i254 = $1272;
}
}
}
} else $$0$i254 = $first; else $$0$i254 = $first; else $$0$i254 = $first;
$$0 = $$0$i254;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 113:
{
if ((HEAP8[$t$0 + 1 >> 0] | 0) != 117) {
$$0 = $first;
break L1;
}
$1306 = $first + 2 | 0;
$1307 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1306, $last, $db) | 0;
if (($1307 | 0) == ($1306 | 0)) {
$$0 = $first;
break L1;
}
$1309 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1307, $last, $db) | 0;
if (($1309 | 0) == ($1307 | 0)) {
$1383 = $db + 4 | 0;
$1384 = HEAP32[$1383 >> 2] | 0;
$1385 = $1384 + -24 | 0;
$1387 = $1384;
while (1) {
$1386 = $1387 + -24 | 0;
HEAP32[$1383 >> 2] = $1386;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1386);
$1387 = HEAP32[$1383 >> 2] | 0;
if (($1387 | 0) == ($1385 | 0)) {
$$0 = $first;
break L1;
}
}
}
$1311 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1309, $last, $db) | 0;
$1313 = $db + 4 | 0;
$1314 = HEAP32[$1313 >> 2] | 0;
if (($1311 | 0) == ($1309 | 0)) {
$1375 = $1314 + -24 | 0;
$1377 = $1314;
do {
$1376 = $1377 + -24 | 0;
HEAP32[$1313 >> 2] = $1376;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1376);
$1377 = HEAP32[$1313 >> 2] | 0;
} while (($1377 | 0) != ($1375 | 0));
$1379 = $1314 + -48 | 0;
$1381 = $1375;
while (1) {
$1380 = $1381 + -24 | 0;
HEAP32[$1313 >> 2] = $1380;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1380);
$1381 = HEAP32[$1313 >> 2] | 0;
if (($1381 | 0) == ($1379 | 0)) {
$$0 = $first;
break L1;
}
}
}
if ((($1314 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 3) {
$$0 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op3, $1314 + -24 | 0);
$1322 = HEAP32[$1313 >> 2] | 0;
$1323 = $1322 + -24 | 0;
$1325 = $1322;
do {
$1324 = $1325 + -24 | 0;
HEAP32[$1313 >> 2] = $1324;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1324);
$1325 = HEAP32[$1313 >> 2] | 0;
} while (($1325 | 0) != ($1323 | 0));
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op27, $1322 + -48 | 0);
$1328 = HEAP32[$1313 >> 2] | 0;
$1329 = $1328 + -24 | 0;
$1331 = $1328;
do {
$1330 = $1331 + -24 | 0;
HEAP32[$1313 >> 2] = $1330;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1330);
$1331 = HEAP32[$1313 >> 2] | 0;
} while (($1331 | 0) != ($1329 | 0));
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op18, $1328 + -48 | 0);
$1335 = (HEAP32[$1313 >> 2] | 0) + -24 | 0;
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($75, 12714, $op18);
$1336 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($75, 14053) | 0;
HEAP32[$74 >> 2] = HEAP32[$1336 >> 2];
HEAP32[$74 + 4 >> 2] = HEAP32[$1336 + 4 >> 2];
HEAP32[$74 + 8 >> 2] = HEAP32[$1336 + 8 >> 2];
HEAP32[$1336 >> 2] = 0;
HEAP32[$1336 + 4 >> 2] = 0;
HEAP32[$1336 + 8 >> 2] = 0;
$1339 = HEAP8[$op27 >> 0] | 0;
$1341 = ($1339 & 1) == 0;
$1351 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($74, $1341 ? $op27 + 1 | 0 : HEAP32[$op27 + 8 >> 2] | 0, $1341 ? ($1339 & 255) >>> 1 : HEAP32[$op27 + 4 >> 2] | 0) | 0;
HEAP32[$73 >> 2] = HEAP32[$1351 >> 2];
HEAP32[$73 + 4 >> 2] = HEAP32[$1351 + 4 >> 2];
HEAP32[$73 + 8 >> 2] = HEAP32[$1351 + 8 >> 2];
HEAP32[$1351 >> 2] = 0;
HEAP32[$1351 + 4 >> 2] = 0;
HEAP32[$1351 + 8 >> 2] = 0;
$1354 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($73, 14059) | 0;
HEAP32[$72 >> 2] = HEAP32[$1354 >> 2];
HEAP32[$72 + 4 >> 2] = HEAP32[$1354 + 4 >> 2];
HEAP32[$72 + 8 >> 2] = HEAP32[$1354 + 8 >> 2];
HEAP32[$1354 >> 2] = 0;
HEAP32[$1354 + 4 >> 2] = 0;
HEAP32[$1354 + 8 >> 2] = 0;
$1357 = HEAP8[$op3 >> 0] | 0;
$1359 = ($1357 & 1) == 0;
$1369 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($72, $1359 ? $op3 + 1 | 0 : HEAP32[$op3 + 8 >> 2] | 0, $1359 ? ($1357 & 255) >>> 1 : HEAP32[$op3 + 4 >> 2] | 0) | 0;
HEAP32[$71 >> 2] = HEAP32[$1369 >> 2];
HEAP32[$71 + 4 >> 2] = HEAP32[$1369 + 4 >> 2];
HEAP32[$71 + 8 >> 2] = HEAP32[$1369 + 8 >> 2];
HEAP32[$1369 >> 2] = 0;
HEAP32[$1369 + 4 >> 2] = 0;
HEAP32[$1369 + 8 >> 2] = 0;
$1372 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($71, 12619) | 0;
HEAP32[$70 >> 2] = HEAP32[$1372 >> 2];
HEAP32[$70 + 4 >> 2] = HEAP32[$1372 + 4 >> 2];
HEAP32[$70 + 8 >> 2] = HEAP32[$1372 + 8 >> 2];
HEAP32[$1372 >> 2] = 0;
HEAP32[$1372 + 4 >> 2] = 0;
HEAP32[$1372 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($69, $70);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1335, $69);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($69);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($70);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($71);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($72);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($73);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($74);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($75);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op18);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op27);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op3);
$$0 = $1311;
break L1;
break;
}
case 114:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 99:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 114) if ((HEAP8[$first + 1 >> 0] | 0) == 99) {
$1398 = $first + 2 | 0;
$1399 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1398, $last, $db) | 0;
if (($1399 | 0) == ($1398 | 0)) $$06$i248 = $first; else {
$1401 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1399, $last, $db) | 0;
if (($1401 | 0) == ($1399 | 0)) $$06$i248 = $first; else {
$1403 = $db + 4 | 0;
$1404 = HEAP32[$1403 >> 2] | 0;
if ((($1404 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i248 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1404 + -24 | 0);
$1412 = HEAP32[$1403 >> 2] | 0;
$1413 = $1412 + -24 | 0;
$1415 = $1412;
do {
$1414 = $1415 + -24 | 0;
HEAP32[$1403 >> 2] = $1414;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1414);
$1415 = HEAP32[$1403 >> 2] | 0;
} while (($1415 | 0) != ($1413 | 0));
$1417 = $1412 + -48 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $1417);
$1418 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 14065) | 0;
HEAP32[$5 >> 2] = HEAP32[$1418 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$1418 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$1418 + 8 >> 2];
HEAP32[$1418 >> 2] = 0;
HEAP32[$1418 + 4 >> 2] = 0;
HEAP32[$1418 + 8 >> 2] = 0;
$1421 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0;
HEAP32[$4 >> 2] = HEAP32[$1421 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$1421 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$1421 + 8 >> 2];
HEAP32[$1421 >> 2] = 0;
HEAP32[$1421 + 4 >> 2] = 0;
HEAP32[$1421 + 8 >> 2] = 0;
$1424 = HEAP8[$0 >> 0] | 0;
$1426 = ($1424 & 1) == 0;
$1436 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $1426 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1426 ? ($1424 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
HEAP32[$3 >> 2] = HEAP32[$1436 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$1436 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$1436 + 8 >> 2];
HEAP32[$1436 >> 2] = 0;
HEAP32[$1436 + 4 >> 2] = 0;
HEAP32[$1436 + 8 >> 2] = 0;
$1439 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0;
HEAP32[$2 >> 2] = HEAP32[$1439 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1439 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1439 + 8 >> 2];
HEAP32[$1439 >> 2] = 0;
HEAP32[$1439 + 4 >> 2] = 0;
HEAP32[$1439 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1417, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$06$i248 = $1401;
}
}
}
} else $$06$i248 = $first; else $$06$i248 = $first; else $$06$i248 = $first;
$$0 = $$06$i248;
break L1;
break;
}
case 109:
{
$1442 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($76, 14083, 1);
$1443 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1442, $last, $76, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($76);
$$0 = ($1443 | 0) == ($1442 | 0) ? $first : $1443;
break L1;
break;
}
case 77:
{
$1445 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($77, 14085, 2);
$1446 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1445, $last, $77, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($77);
$$0 = ($1446 | 0) == ($1445 | 0) ? $first : $1446;
break L1;
break;
}
case 115:
{
$1448 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($78, 14088, 2);
$1449 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1448, $last, $78, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($78);
$$0 = ($1449 | 0) == ($1448 | 0) ? $first : $1449;
break L1;
break;
}
case 83:
{
$1451 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($79, 14091, 3);
$1452 = __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($1451, $last, $79, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($79);
STACKTOP = sp;
return (($1452 | 0) == ($1451 | 0) ? $first : $1452) | 0;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 115:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 99:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 99) {
$1463 = $first + 2 | 0;
$1464 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1463, $last, $db) | 0;
if (($1464 | 0) == ($1463 | 0)) $$06$i = $first; else {
$1466 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1464, $last, $db) | 0;
if (($1466 | 0) == ($1464 | 0)) $$06$i = $first; else {
$1468 = $db + 4 | 0;
$1469 = HEAP32[$1468 >> 2] | 0;
if ((($1469 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$06$i = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, $1469 + -24 | 0);
$1477 = HEAP32[$1468 >> 2] | 0;
$1478 = $1477 + -24 | 0;
$1480 = $1477;
do {
$1479 = $1480 + -24 | 0;
HEAP32[$1468 >> 2] = $1479;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1479);
$1480 = HEAP32[$1468 >> 2] | 0;
} while (($1480 | 0) != ($1478 | 0));
$1482 = $1477 + -48 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($6, $1482);
$1483 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($6, 0, 14095) | 0;
HEAP32[$5 >> 2] = HEAP32[$1483 >> 2];
HEAP32[$5 + 4 >> 2] = HEAP32[$1483 + 4 >> 2];
HEAP32[$5 + 8 >> 2] = HEAP32[$1483 + 8 >> 2];
HEAP32[$1483 >> 2] = 0;
HEAP32[$1483 + 4 >> 2] = 0;
HEAP32[$1483 + 8 >> 2] = 0;
$1486 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 13916) | 0;
HEAP32[$4 >> 2] = HEAP32[$1486 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$1486 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$1486 + 8 >> 2];
HEAP32[$1486 >> 2] = 0;
HEAP32[$1486 + 4 >> 2] = 0;
HEAP32[$1486 + 8 >> 2] = 0;
$1489 = HEAP8[$0 >> 0] | 0;
$1491 = ($1489 & 1) == 0;
$1501 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $1491 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $1491 ? ($1489 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
HEAP32[$3 >> 2] = HEAP32[$1501 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$1501 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$1501 + 8 >> 2];
HEAP32[$1501 >> 2] = 0;
HEAP32[$1501 + 4 >> 2] = 0;
HEAP32[$1501 + 8 >> 2] = 0;
$1504 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12619) | 0;
HEAP32[$2 >> 2] = HEAP32[$1504 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1504 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1504 + 8 >> 2];
HEAP32[$1504 >> 2] = 0;
HEAP32[$1504 + 4 >> 2] = 0;
HEAP32[$1504 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1482, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$$06$i = $1466;
}
}
}
} else $$06$i = $first; else $$06$i = $first; else $$06$i = $first;
$$0 = $$06$i;
break L1;
break;
}
case 112:
{
if (($83 | 0) <= 2) {
$$0 = $first;
break L1;
}
if ((HEAP8[$first >> 0] | 0) != 115) {
$$0 = $first;
break L1;
}
if ((HEAP8[$first + 1 >> 0] | 0) != 112) {
$$0 = $first;
break L1;
}
$1513 = $first + 2 | 0;
$1514 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1513, $last, $db) | 0;
$$0 = ($1514 | 0) == ($1513 | 0) ? $first : $1514;
break L1;
break;
}
case 114:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
case 116:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 116) {
$1523 = $first + 2 | 0;
$1524 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1523, $last, $db) | 0;
if (($1524 | 0) == ($1523 | 0)) $$03$i211 = $first; else {
$1528 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1528 | 0)) $$03$i211 = $first; else {
$1530 = $1528 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1530);
$1531 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14108) | 0;
HEAP32[$2 >> 2] = HEAP32[$1531 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1531 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1531 + 8 >> 2];
HEAP32[$1531 >> 2] = 0;
HEAP32[$1531 + 4 >> 2] = 0;
HEAP32[$1531 + 8 >> 2] = 0;
$1534 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0;
HEAP32[$1 >> 2] = HEAP32[$1534 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$1534 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$1534 + 8 >> 2];
HEAP32[$1534 >> 2] = 0;
HEAP32[$1534 + 4 >> 2] = 0;
HEAP32[$1534 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1530, $0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$03$i211 = $1524;
}
}
} else $$03$i211 = $first; else $$03$i211 = $first; else $$03$i211 = $first;
$$0 = $$03$i211;
break L1;
break;
}
case 122:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 122) {
$1543 = $first + 2 | 0;
$1544 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1543, $last, $db) | 0;
if (($1544 | 0) == ($1543 | 0)) $$03$i200 = $first; else {
$1548 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1548 | 0)) $$03$i200 = $first; else {
$1550 = $1548 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1550);
$1551 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14108) | 0;
HEAP32[$2 >> 2] = HEAP32[$1551 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1551 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1551 + 8 >> 2];
HEAP32[$1551 >> 2] = 0;
HEAP32[$1551 + 4 >> 2] = 0;
HEAP32[$1551 + 8 >> 2] = 0;
$1554 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0;
HEAP32[$1 >> 2] = HEAP32[$1554 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$1554 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$1554 + 8 >> 2];
HEAP32[$1554 >> 2] = 0;
HEAP32[$1554 + 4 >> 2] = 0;
HEAP32[$1554 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1550, $0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$03$i200 = $1544;
}
}
} else $$03$i200 = $first; else $$03$i200 = $first; else $$03$i200 = $first;
$$0 = $$03$i200;
break L1;
break;
}
case 90:
{
if (($81 - $t$0 | 0) <= 2) {
$$0 = $first;
break L1;
}
switch (HEAP8[$t$0 + 2 >> 0] | 0) {
case 84:
break;
case 102:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 90) {
$1662 = $first + 2 | 0;
if ((HEAP8[$1662 >> 0] | 0) == 102) {
$1665 = __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($1662, $last, $db) | 0;
if (($1665 | 0) == ($1662 | 0)) $$03$i174 = $first; else {
$1669 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1669 | 0)) $$03$i174 = $first; else {
$1671 = $1669 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1671);
$1672 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14117) | 0;
HEAP32[$2 >> 2] = HEAP32[$1672 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1672 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1672 + 8 >> 2];
HEAP32[$1672 >> 2] = 0;
HEAP32[$1672 + 4 >> 2] = 0;
HEAP32[$1672 + 8 >> 2] = 0;
$1675 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0;
HEAP32[$1 >> 2] = HEAP32[$1675 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$1675 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$1675 + 8 >> 2];
HEAP32[$1675 >> 2] = 0;
HEAP32[$1675 + 4 >> 2] = 0;
HEAP32[$1675 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1671, $0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$03$i174 = $1665;
}
}
} else $$03$i174 = $first;
} else $$03$i174 = $first; else $$03$i174 = $first; else $$03$i174 = $first;
$$0 = $$03$i174;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 115) if ((HEAP8[$first + 1 >> 0] | 0) == 90) {
$1569 = $first + 2 | 0;
if ((HEAP8[$1569 >> 0] | 0) == 84) {
$1572 = $db + 4 | 0;
$1578 = ((HEAP32[$1572 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$1579 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($1569, $last, $db) | 0;
$1581 = HEAP32[$db >> 2] | 0;
$1585 = ((HEAP32[$1572 >> 2] | 0) - $1581 | 0) / 24 | 0;
if (($1579 | 0) == ($1569 | 0)) $$03$i = $first; else {
HEAP8[$1 >> 0] = 20;
dest = $1 + 1 | 0;
src = 14117;
stop = dest + 10 | 0;
do {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$1 + 11 >> 0] = 0;
if (($1578 | 0) != ($1585 | 0)) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1581 + ($1578 * 24 | 0) | 0);
$1591 = HEAP8[$2 >> 0] | 0;
$1593 = ($1591 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $1593 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0, $1593 ? ($1591 & 255) >>> 1 : HEAP32[$2 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$1603 = $3 + 8 | 0;
$1604 = $3 + 1 | 0;
$1605 = $3 + 4 | 0;
$k$0$i621 = $1578 + 1 | 0;
if (($k$0$i621 | 0) != ($1585 | 0)) {
$k$0$i622 = $k$0$i621;
do {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, (HEAP32[$db >> 2] | 0) + ($k$0$i622 * 24 | 0) | 0);
$1609 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($4, 0, 12716) | 0;
HEAP32[$3 >> 2] = HEAP32[$1609 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$1609 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$1609 + 8 >> 2];
HEAP32[$1609 >> 2] = 0;
HEAP32[$1609 + 4 >> 2] = 0;
HEAP32[$1609 + 8 >> 2] = 0;
$1612 = HEAP8[$3 >> 0] | 0;
$1614 = ($1612 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $1614 ? $1604 : HEAP32[$1603 >> 2] | 0, $1614 ? ($1612 & 255) >>> 1 : HEAP32[$1605 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
$k$0$i622 = $k$0$i622 + 1 | 0;
} while (($k$0$i622 | 0) != ($1585 | 0));
}
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
if (($1585 | 0) != ($1578 | 0)) {
$k1$0$i618 = $1585;
do {
$1623 = HEAP32[$1572 >> 2] | 0;
$1624 = $1623 + -24 | 0;
$1626 = $1623;
do {
$1625 = $1626 + -24 | 0;
HEAP32[$1572 >> 2] = $1625;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1625);
$1626 = HEAP32[$1572 >> 2] | 0;
} while (($1626 | 0) != ($1624 | 0));
$k1$0$i618 = $k1$0$i618 + -1 | 0;
} while (($k1$0$i618 | 0) != ($1578 | 0));
};
HEAP32[$6 >> 2] = HEAP32[$1 >> 2];
HEAP32[$6 + 4 >> 2] = HEAP32[$1 + 4 >> 2];
HEAP32[$6 + 8 >> 2] = HEAP32[$1 + 8 >> 2];
HEAP32[$1 >> 2] = 0;
HEAP32[$1 + 4 >> 2] = 0;
HEAP32[$1 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($5, $6);
$1632 = HEAP32[$1572 >> 2] | 0;
$1634 = HEAP32[$db + 8 >> 2] | 0;
if ($1632 >>> 0 < $1634 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1632, $5);
HEAP32[$1572 >> 2] = (HEAP32[$1572 >> 2] | 0) + 24;
} else {
$1641 = HEAP32[$db >> 2] | 0;
$1642 = $1632 - $1641 | 0;
$1643 = ($1642 | 0) / 24 | 0;
$1644 = $1643 + 1 | 0;
if (($1642 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1648 = ($1634 - $1641 | 0) / 24 | 0;
if ($1648 >>> 0 < 1073741823) {
$1650 = $1648 << 1;
$$0$i$i$i$i = $1650 >>> 0 < $1644 >>> 0 ? $1644 : $1650;
} else $$0$i$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i$i, $1643, $db + 12 | 0);
$1653 = $0 + 8 | 0;
$1654 = HEAP32[$1653 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1654, $5);
HEAP32[$1653 >> 2] = $1654 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
$$03$i = $1579;
}
} else $$03$i = $first;
} else $$03$i = $first; else $$03$i = $first; else $$03$i = $first;
$$0 = $$03$i;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 116:
{
switch (HEAP8[$t$0 + 1 >> 0] | 0) {
case 105:
case 101:
{
L600 : do if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 116) {
$1685 = HEAP8[$first + 1 >> 0] | 0;
switch ($1685 << 24 >> 24) {
case 105:
case 101:
break;
default:
{
$$03$i189 = $first;
break L600;
}
}
$1687 = $first + 2 | 0;
if ($1685 << 24 >> 24 == 101) $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1687, $last, $db) | 0; else $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($1687, $last, $db) | 0;
if (($t$0$i | 0) == ($1687 | 0)) $$03$i189 = $first; else {
$1693 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1693 | 0)) $$03$i189 = $first; else {
$1695 = $1693 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $1695);
$1696 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 14128) | 0;
HEAP32[$2 >> 2] = HEAP32[$1696 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$1696 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$1696 + 8 >> 2];
HEAP32[$1696 >> 2] = 0;
HEAP32[$1696 + 4 >> 2] = 0;
HEAP32[$1696 + 8 >> 2] = 0;
$1699 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0;
HEAP32[$1 >> 2] = HEAP32[$1699 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$1699 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$1699 + 8 >> 2];
HEAP32[$1699 >> 2] = 0;
HEAP32[$1699 + 4 >> 2] = 0;
HEAP32[$1699 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1695, $0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$03$i189 = $t$0$i;
}
}
} else $$03$i189 = $first; else $$03$i189 = $first; while (0);
$$0 = $$03$i189;
break L1;
break;
}
case 114:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($80, 14136);
$1702 = $db + 4 | 0;
$1703 = HEAP32[$1702 >> 2] | 0;
$1705 = HEAP32[$db + 8 >> 2] | 0;
if ($1703 >>> 0 < $1705 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1703, $80);
HEAP32[$1702 >> 2] = (HEAP32[$1702 >> 2] | 0) + 24;
} else {
$1712 = HEAP32[$db >> 2] | 0;
$1713 = $1703 - $1712 | 0;
$1714 = ($1713 | 0) / 24 | 0;
$1715 = $1714 + 1 | 0;
if (($1713 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1719 = ($1705 - $1712 | 0) / 24 | 0;
if ($1719 >>> 0 < 1073741823) {
$1721 = $1719 << 1;
$$0$i$i$i = $1721 >>> 0 < $1715 >>> 0 ? $1715 : $1721;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i, $1714, $db + 12 | 0);
$1724 = $0 + 8 | 0;
$1725 = HEAP32[$1724 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1725, $80);
HEAP32[$1724 >> 2] = $1725 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($80);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 119:
{
if (($83 | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 116) if ((HEAP8[$first + 1 >> 0] | 0) == 119) {
$1734 = $first + 2 | 0;
$1735 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($1734, $last, $db) | 0;
if (($1735 | 0) == ($1734 | 0)) $$02$i = $first; else {
$1739 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1739 | 0)) $$02$i = $first; else {
$1741 = $1739 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($2, $1741);
$1742 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 14142) | 0;
HEAP32[$1 >> 2] = HEAP32[$1742 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$1742 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$1742 + 8 >> 2];
HEAP32[$1742 >> 2] = 0;
HEAP32[$1742 + 4 >> 2] = 0;
HEAP32[$1742 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($1741, $0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$02$i = $1735;
}
}
} else $$02$i = $first; else $$02$i = $first; else $$02$i = $first;
$$0 = $$02$i;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 57:
case 56:
case 55:
case 54:
case 53:
case 52:
case 51:
case 50:
case 49:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
} while (0);
} else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i10 = 0, $$0$i$i$i100 = 0, $$0$i$i$i105 = 0, $$0$i$i$i110 = 0, $$0$i$i$i115 = 0, $$0$i$i$i120 = 0, $$0$i$i$i125 = 0, $$0$i$i$i130 = 0, $$0$i$i$i135 = 0, $$0$i$i$i140 = 0, $$0$i$i$i145 = 0, $$0$i$i$i15 = 0, $$0$i$i$i150 = 0, $$0$i$i$i155 = 0, $$0$i$i$i160 = 0, $$0$i$i$i165 = 0, $$0$i$i$i170 = 0, $$0$i$i$i175 = 0, $$0$i$i$i180 = 0, $$0$i$i$i185 = 0, $$0$i$i$i190 = 0, $$0$i$i$i195 = 0, $$0$i$i$i20 = 0, $$0$i$i$i200 = 0, $$0$i$i$i205 = 0, $$0$i$i$i210 = 0, $$0$i$i$i215 = 0, $$0$i$i$i220 = 0, $$0$i$i$i225 = 0, $$0$i$i$i25 = 0, $$0$i$i$i30 = 0, $$0$i$i$i35 = 0, $$0$i$i$i40 = 0, $$0$i$i$i45 = 0, $$0$i$i$i5 = 0, $$0$i$i$i50 = 0, $$0$i$i$i55 = 0, $$0$i$i$i60 = 0, $$0$i$i$i65 = 0, $$0$i$i$i70 = 0, $$0$i$i$i75 = 0, $$0$i$i$i80 = 0, $$0$i$i$i85 = 0, $$0$i$i$i90 = 0, $$0$i$i$i95 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1009 = 0, $1011 = 0, $1014 = 0, $1015 = 0, $1021 = 0, $1022 = 0, $1024 = 0, $103 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1038 = 0, $104 = 0, $1040 = 0, $1043 = 0, $1044 = 0, $1047 = 0, $1048 = 0, $1050 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $1060 = 0, $1064 = 0, $1066 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1073 = 0, $1074 = 0, $1076 = 0, $108 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1090 = 0, $1092 = 0, $1095 = 0, $1096 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1102 = 0, $1109 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1116 = 0, $1118 = 0, $1121 = 0, $1122 = 0, $1125 = 0, $1126 = 0, $1128 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1142 = 0, $1144 = 0, $1147 = 0, $1148 = 0, $1151 = 0, $1152 = 0, $1154 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1168 = 0, $117 = 0, $1170 = 0, $1173 = 0, $1174 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1183 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1197 = 0, $1199 = 0, $12 = 0, $120 = 0, $1202 = 0, $1203 = 0, $1209 = 0, $1210 = 0, $1212 = 0, $1219 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1226 = 0, $1228 = 0, $1231 = 0, $1232 = 0, $1235 = 0, $1236 = 0, $1238 = 0, $124 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1252 = 0, $1254 = 0, $1257 = 0, $1258 = 0, $126 = 0, $1261 = 0, $1262 = 0, $1264 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1278 = 0, $1280 = 0, $1283 = 0, $1284 = 0, $1287 = 0, $1288 = 0, $129 = 0, $1290 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1304 = 0, $1306 = 0, $1309 = 0, $1310 = 0, $1316 = 0, $1317 = 0, $1321 = 0, $133 = 0, $134 = 0, $136 = 0, $14 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $15 = 0, $150 = 0, $152 = 0, $155 = 0, $156 = 0, $16 = 0, $162 = 0, $163 = 0, $165 = 0, $17 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $179 = 0, $18 = 0, $181 = 0, $184 = 0, $185 = 0, $188 = 0, $189 = 0, $19 = 0, $191 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $205 = 0, $207 = 0, $21 = 0, $210 = 0, $211 = 0, $214 = 0, $215 = 0, $217 = 0, $22 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $23 = 0, $231 = 0, $233 = 0, $236 = 0, $237 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $247 = 0, $25 = 0, $254 = 0, $255 = 0, $257 = 0, $26 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $27 = 0, $271 = 0, $273 = 0, $276 = 0, $277 = 0, $28 = 0, $280 = 0, $281 = 0, $283 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $297 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $316 = 0, $32 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $33 = 0, $330 = 0, $332 = 0, $335 = 0, $336 = 0, $339 = 0, $34 = 0, $340 = 0, $342 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $356 = 0, $358 = 0, $36 = 0, $361 = 0, $362 = 0, $365 = 0, $366 = 0, $368 = 0, $37 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $38 = 0, $382 = 0, $384 = 0, $387 = 0, $388 = 0, $39 = 0, $394 = 0, $395 = 0, $397 = 0, $4 = 0, $40 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $41 = 0, $411 = 0, $413 = 0, $416 = 0, $417 = 0, $42 = 0, $420 = 0, $421 = 0, $423 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $437 = 0, $439 = 0, $44 = 0, $442 = 0, $443 = 0, $446 = 0, $447 = 0, $449 = 0, $45 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $463 = 0, $465 = 0, $468 = 0, $469 = 0, $475 = 0, $476 = 0, $478 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $492 = 0, $494 = 0, $497 = 0, $498 = 0, $5 = 0, $501 = 0, $502 = 0, $504 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $518 = 0, $520 = 0, $523 = 0, $524 = 0, $530 = 0, $531 = 0, $533 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $547 = 0, $549 = 0, $55 = 0, $552 = 0, $553 = 0, $559 = 0, $56 = 0, $560 = 0, $562 = 0, $569 = 0, $570 = 0, $571 = 0, $572 = 0, $576 = 0, $578 = 0, $58 = 0, $581 = 0, $582 = 0, $585 = 0, $586 = 0, $590 = 0, $593 = 0, $594 = 0, $596 = 0, $6 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $610 = 0, $612 = 0, $615 = 0, $616 = 0, $619 = 0, $620 = 0, $622 = 0, $629 = 0, $630 = 0, $631 = 0, $632 = 0, $636 = 0, $638 = 0, $641 = 0, $642 = 0, $645 = 0, $646 = 0, $648 = 0, $65 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $66 = 0, $662 = 0, $664 = 0, $667 = 0, $668 = 0, $67 = 0, $674 = 0, $675 = 0, $677 = 0, $68 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $691 = 0, $693 = 0, $696 = 0, $697 = 0, $7 = 0, $700 = 0, $701 = 0, $703 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $717 = 0, $719 = 0, $72 = 0, $722 = 0, $723 = 0, $726 = 0, $727 = 0, $729 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $743 = 0, $745 = 0, $748 = 0, $749 = 0, $752 = 0, $753 = 0, $755 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $769 = 0, $77 = 0, $771 = 0, $774 = 0, $775 = 0, $778 = 0, $779 = 0, $78 = 0, $781 = 0, $788 = 0, $789 = 0, $790 = 0, $791 = 0, $795 = 0, $797 = 0, $8 = 0, $800 = 0, $801 = 0, $807 = 0, $808 = 0, $81 = 0, $810 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $824 = 0, $826 = 0, $829 = 0, $830 = 0, $833 = 0, $834 = 0, $836 = 0, $84 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $850 = 0, $852 = 0, $855 = 0, $856 = 0, $859 = 0, $860 = 0, $862 = 0, $869 = 0, $870 = 0, $871 = 0, $872 = 0, $876 = 0, $878 = 0, $881 = 0, $882 = 0, $885 = 0, $886 = 0, $888 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $9 = 0, $902 = 0, $904 = 0, $907 = 0, $908 = 0, $91 = 0, $911 = 0, $912 = 0, $914 = 0, $92 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $928 = 0, $93 = 0, $930 = 0, $933 = 0, $934 = 0, $94 = 0, $940 = 0, $941 = 0, $943 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $957 = 0, $959 = 0, $962 = 0, $963 = 0, $966 = 0, $967 = 0, $969 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $983 = 0, $985 = 0, $988 = 0, $989 = 0, $992 = 0, $993 = 0, $995 = 0, $__v$i$i224 = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1136 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i224 = sp + 1104 | 0;
$0 = sp + 1080 | 0;
$1 = sp + 1056 | 0;
$2 = sp + 1032 | 0;
$3 = sp + 1008 | 0;
$4 = sp + 984 | 0;
$5 = sp + 960 | 0;
$6 = sp + 936 | 0;
$7 = sp + 912 | 0;
$8 = sp + 888 | 0;
$9 = sp + 864 | 0;
$10 = sp + 840 | 0;
$11 = sp + 816 | 0;
$12 = sp + 792 | 0;
$13 = sp + 768 | 0;
$14 = sp + 744 | 0;
$15 = sp + 720 | 0;
$16 = sp + 696 | 0;
$17 = sp + 672 | 0;
$18 = sp + 648 | 0;
$19 = sp + 624 | 0;
$20 = sp + 600 | 0;
$21 = sp + 576 | 0;
$22 = sp + 552 | 0;
$23 = sp + 528 | 0;
$24 = sp + 504 | 0;
$25 = sp + 480 | 0;
$26 = sp + 456 | 0;
$27 = sp + 432 | 0;
$28 = sp + 408 | 0;
$29 = sp + 384 | 0;
$30 = sp + 360 | 0;
$31 = sp + 336 | 0;
$32 = sp + 312 | 0;
$33 = sp + 288 | 0;
$34 = sp + 264 | 0;
$35 = sp + 240 | 0;
$36 = sp + 216 | 0;
$37 = sp + 192 | 0;
$38 = sp + 168 | 0;
$39 = sp + 144 | 0;
$40 = sp + 120 | 0;
$41 = sp + 96 | 0;
$42 = sp + 72 | 0;
$43 = sp + 48 | 0;
$44 = sp + 24 | 0;
$45 = sp;
L1 : do if (($last - $first | 0) > 1) do switch (HEAP8[$first >> 0] | 0) {
case 97:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 97:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($0, 12949);
$55 = $db + 4 | 0;
$56 = HEAP32[$55 >> 2] | 0;
$58 = HEAP32[$db + 8 >> 2] | 0;
if ($56 >>> 0 < $58 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($56, $0);
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 24;
} else {
$65 = HEAP32[$db >> 2] | 0;
$66 = $56 - $65 | 0;
$67 = ($66 | 0) / 24 | 0;
$68 = $67 + 1 | 0;
if (($66 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$72 = ($58 - $65 | 0) / 24 | 0;
if ($72 >>> 0 < 1073741823) {
$74 = $72 << 1;
$$0$i$i$i = $74 >>> 0 < $68 >>> 0 ? $68 : $74;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i, $67, $db + 12 | 0);
$77 = $__v$i$i224 + 8 | 0;
$78 = HEAP32[$77 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($78, $0);
HEAP32[$77 >> 2] = $78 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 110:
case 100:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($1, 12960);
$81 = $db + 4 | 0;
$82 = HEAP32[$81 >> 2] | 0;
$84 = HEAP32[$db + 8 >> 2] | 0;
if ($82 >>> 0 < $84 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($82, $1);
HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 24;
} else {
$91 = HEAP32[$db >> 2] | 0;
$92 = $82 - $91 | 0;
$93 = ($92 | 0) / 24 | 0;
$94 = $93 + 1 | 0;
if (($92 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$98 = ($84 - $91 | 0) / 24 | 0;
if ($98 >>> 0 < 1073741823) {
$100 = $98 << 1;
$$0$i$i$i5 = $100 >>> 0 < $94 >>> 0 ? $94 : $100;
} else $$0$i$i$i5 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i5, $93, $db + 12 | 0);
$103 = $__v$i$i224 + 8 | 0;
$104 = HEAP32[$103 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($104, $1);
HEAP32[$103 >> 2] = $104 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 78:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($2, 12970);
$107 = $db + 4 | 0;
$108 = HEAP32[$107 >> 2] | 0;
$110 = HEAP32[$db + 8 >> 2] | 0;
if ($108 >>> 0 < $110 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($108, $2);
HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + 24;
} else {
$117 = HEAP32[$db >> 2] | 0;
$118 = $108 - $117 | 0;
$119 = ($118 | 0) / 24 | 0;
$120 = $119 + 1 | 0;
if (($118 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$124 = ($110 - $117 | 0) / 24 | 0;
if ($124 >>> 0 < 1073741823) {
$126 = $124 << 1;
$$0$i$i$i10 = $126 >>> 0 < $120 >>> 0 ? $120 : $126;
} else $$0$i$i$i10 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i10, $119, $db + 12 | 0);
$129 = $__v$i$i224 + 8 | 0;
$130 = HEAP32[$129 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($130, $2);
HEAP32[$129 >> 2] = $130 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 83:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($3, 12981);
$133 = $db + 4 | 0;
$134 = HEAP32[$133 >> 2] | 0;
$136 = HEAP32[$db + 8 >> 2] | 0;
if ($134 >>> 0 < $136 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($134, $3);
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 24;
} else {
$143 = HEAP32[$db >> 2] | 0;
$144 = $134 - $143 | 0;
$145 = ($144 | 0) / 24 | 0;
$146 = $145 + 1 | 0;
if (($144 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$150 = ($136 - $143 | 0) / 24 | 0;
if ($150 >>> 0 < 1073741823) {
$152 = $150 << 1;
$$0$i$i$i15 = $152 >>> 0 < $146 >>> 0 ? $146 : $152;
} else $$0$i$i$i15 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i15, $145, $db + 12 | 0);
$155 = $__v$i$i224 + 8 | 0;
$156 = HEAP32[$155 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($156, $3);
HEAP32[$155 >> 2] = $156 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 99:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 108:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($4, 12991);
$162 = $db + 4 | 0;
$163 = HEAP32[$162 >> 2] | 0;
$165 = HEAP32[$db + 8 >> 2] | 0;
if ($163 >>> 0 < $165 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($163, $4);
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 24;
} else {
$172 = HEAP32[$db >> 2] | 0;
$173 = $163 - $172 | 0;
$174 = ($173 | 0) / 24 | 0;
$175 = $174 + 1 | 0;
if (($173 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$179 = ($165 - $172 | 0) / 24 | 0;
if ($179 >>> 0 < 1073741823) {
$181 = $179 << 1;
$$0$i$i$i20 = $181 >>> 0 < $175 >>> 0 ? $175 : $181;
} else $$0$i$i$i20 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i20, $174, $db + 12 | 0);
$184 = $__v$i$i224 + 8 | 0;
$185 = HEAP32[$184 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($185, $4);
HEAP32[$184 >> 2] = $185 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 109:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($5, 13002);
$188 = $db + 4 | 0;
$189 = HEAP32[$188 >> 2] | 0;
$191 = HEAP32[$db + 8 >> 2] | 0;
if ($189 >>> 0 < $191 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($189, $5);
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 24;
} else {
$198 = HEAP32[$db >> 2] | 0;
$199 = $189 - $198 | 0;
$200 = ($199 | 0) / 24 | 0;
$201 = $200 + 1 | 0;
if (($199 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$205 = ($191 - $198 | 0) / 24 | 0;
if ($205 >>> 0 < 1073741823) {
$207 = $205 << 1;
$$0$i$i$i25 = $207 >>> 0 < $201 >>> 0 ? $201 : $207;
} else $$0$i$i$i25 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i25, $200, $db + 12 | 0);
$210 = $__v$i$i224 + 8 | 0;
$211 = HEAP32[$210 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($211, $5);
HEAP32[$210 >> 2] = $211 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 111:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($6, 13012);
$214 = $db + 4 | 0;
$215 = HEAP32[$214 >> 2] | 0;
$217 = HEAP32[$db + 8 >> 2] | 0;
if ($215 >>> 0 < $217 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($215, $6);
HEAP32[$214 >> 2] = (HEAP32[$214 >> 2] | 0) + 24;
} else {
$224 = HEAP32[$db >> 2] | 0;
$225 = $215 - $224 | 0;
$226 = ($225 | 0) / 24 | 0;
$227 = $226 + 1 | 0;
if (($225 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$231 = ($217 - $224 | 0) / 24 | 0;
if ($231 >>> 0 < 1073741823) {
$233 = $231 << 1;
$$0$i$i$i30 = $233 >>> 0 < $227 >>> 0 ? $227 : $233;
} else $$0$i$i$i30 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i30, $226, $db + 12 | 0);
$236 = $__v$i$i224 + 8 | 0;
$237 = HEAP32[$236 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($237, $6);
HEAP32[$236 >> 2] = $237 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($6);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 118:
{
$240 = $db + 63 | 0;
$241 = HEAP8[$240 >> 0] | 0;
HEAP8[$240 >> 0] = 0;
$242 = $first + 2 | 0;
$243 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($242, $last, $db) | 0;
HEAP8[$240 >> 0] = $241;
if (($243 | 0) == ($242 | 0)) {
$$0 = $first;
break L1;
}
$247 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($247 | 0)) {
$$0 = $first;
break L1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($247 + -24 | 0, 0, 13022) | 0;
HEAP8[$db + 60 >> 0] = 1;
$$0 = $243;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 100:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 97:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($7, 13032);
$254 = $db + 4 | 0;
$255 = HEAP32[$254 >> 2] | 0;
$257 = HEAP32[$db + 8 >> 2] | 0;
if ($255 >>> 0 < $257 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($255, $7);
HEAP32[$254 >> 2] = (HEAP32[$254 >> 2] | 0) + 24;
} else {
$264 = HEAP32[$db >> 2] | 0;
$265 = $255 - $264 | 0;
$266 = ($265 | 0) / 24 | 0;
$267 = $266 + 1 | 0;
if (($265 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$271 = ($257 - $264 | 0) / 24 | 0;
if ($271 >>> 0 < 1073741823) {
$273 = $271 << 1;
$$0$i$i$i35 = $273 >>> 0 < $267 >>> 0 ? $267 : $273;
} else $$0$i$i$i35 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i35, $266, $db + 12 | 0);
$276 = $__v$i$i224 + 8 | 0;
$277 = HEAP32[$276 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($277, $7);
HEAP32[$276 >> 2] = $277 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($7);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 101:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($8, 13050);
$280 = $db + 4 | 0;
$281 = HEAP32[$280 >> 2] | 0;
$283 = HEAP32[$db + 8 >> 2] | 0;
if ($281 >>> 0 < $283 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($281, $8);
HEAP32[$280 >> 2] = (HEAP32[$280 >> 2] | 0) + 24;
} else {
$290 = HEAP32[$db >> 2] | 0;
$291 = $281 - $290 | 0;
$292 = ($291 | 0) / 24 | 0;
$293 = $292 + 1 | 0;
if (($291 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$297 = ($283 - $290 | 0) / 24 | 0;
if ($297 >>> 0 < 1073741823) {
$299 = $297 << 1;
$$0$i$i$i40 = $299 >>> 0 < $293 >>> 0 ? $293 : $299;
} else $$0$i$i$i40 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i40, $292, $db + 12 | 0);
$302 = $__v$i$i224 + 8 | 0;
$303 = HEAP32[$302 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($303, $8);
HEAP32[$302 >> 2] = $303 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($8);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 108:
{
$306 = _malloc(16) | 0;
HEAP32[$9 + 8 >> 2] = $306;
HEAP32[$9 >> 2] = 17;
HEAP32[$9 + 4 >> 2] = 15;
dest = $306;
src = 13060;
stop = dest + 15 | 0;
do {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$306 + 15 >> 0] = 0;
$310 = $9 + 12 | 0;
HEAP32[$310 >> 2] = 0;
HEAP32[$310 + 4 >> 2] = 0;
HEAP32[$310 + 8 >> 2] = 0;
$313 = $db + 4 | 0;
$314 = HEAP32[$313 >> 2] | 0;
$316 = HEAP32[$db + 8 >> 2] | 0;
if ($314 >>> 0 < $316 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($314, $9);
HEAP32[$313 >> 2] = (HEAP32[$313 >> 2] | 0) + 24;
} else {
$323 = HEAP32[$db >> 2] | 0;
$324 = $314 - $323 | 0;
$325 = ($324 | 0) / 24 | 0;
$326 = $325 + 1 | 0;
if (($324 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$330 = ($316 - $323 | 0) / 24 | 0;
if ($330 >>> 0 < 1073741823) {
$332 = $330 << 1;
$$0$i$i$i45 = $332 >>> 0 < $326 >>> 0 ? $326 : $332;
} else $$0$i$i$i45 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i45, $325, $db + 12 | 0);
$335 = $__v$i$i224 + 8 | 0;
$336 = HEAP32[$335 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($336, $9);
HEAP32[$335 >> 2] = $336 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($9);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 118:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($10, 13076);
$339 = $db + 4 | 0;
$340 = HEAP32[$339 >> 2] | 0;
$342 = HEAP32[$db + 8 >> 2] | 0;
if ($340 >>> 0 < $342 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($340, $10);
HEAP32[$339 >> 2] = (HEAP32[$339 >> 2] | 0) + 24;
} else {
$349 = HEAP32[$db >> 2] | 0;
$350 = $340 - $349 | 0;
$351 = ($350 | 0) / 24 | 0;
$352 = $351 + 1 | 0;
if (($350 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$356 = ($342 - $349 | 0) / 24 | 0;
if ($356 >>> 0 < 1073741823) {
$358 = $356 << 1;
$$0$i$i$i50 = $358 >>> 0 < $352 >>> 0 ? $352 : $358;
} else $$0$i$i$i50 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i50, $351, $db + 12 | 0);
$361 = $__v$i$i224 + 8 | 0;
$362 = HEAP32[$361 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($362, $10);
HEAP32[$361 >> 2] = $362 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($10);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 86:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($11, 13086);
$365 = $db + 4 | 0;
$366 = HEAP32[$365 >> 2] | 0;
$368 = HEAP32[$db + 8 >> 2] | 0;
if ($366 >>> 0 < $368 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($366, $11);
HEAP32[$365 >> 2] = (HEAP32[$365 >> 2] | 0) + 24;
} else {
$375 = HEAP32[$db >> 2] | 0;
$376 = $366 - $375 | 0;
$377 = ($376 | 0) / 24 | 0;
$378 = $377 + 1 | 0;
if (($376 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$382 = ($368 - $375 | 0) / 24 | 0;
if ($382 >>> 0 < 1073741823) {
$384 = $382 << 1;
$$0$i$i$i55 = $384 >>> 0 < $378 >>> 0 ? $378 : $384;
} else $$0$i$i$i55 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i55, $377, $db + 12 | 0);
$387 = $__v$i$i224 + 8 | 0;
$388 = HEAP32[$387 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($388, $11);
HEAP32[$387 >> 2] = $388 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 101:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 111:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($12, 13097);
$394 = $db + 4 | 0;
$395 = HEAP32[$394 >> 2] | 0;
$397 = HEAP32[$db + 8 >> 2] | 0;
if ($395 >>> 0 < $397 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($395, $12);
HEAP32[$394 >> 2] = (HEAP32[$394 >> 2] | 0) + 24;
} else {
$404 = HEAP32[$db >> 2] | 0;
$405 = $395 - $404 | 0;
$406 = ($405 | 0) / 24 | 0;
$407 = $406 + 1 | 0;
if (($405 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$411 = ($397 - $404 | 0) / 24 | 0;
if ($411 >>> 0 < 1073741823) {
$413 = $411 << 1;
$$0$i$i$i60 = $413 >>> 0 < $407 >>> 0 ? $407 : $413;
} else $$0$i$i$i60 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i60, $406, $db + 12 | 0);
$416 = $__v$i$i224 + 8 | 0;
$417 = HEAP32[$416 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($417, $12);
HEAP32[$416 >> 2] = $417 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($12);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 79:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($13, 13107);
$420 = $db + 4 | 0;
$421 = HEAP32[$420 >> 2] | 0;
$423 = HEAP32[$db + 8 >> 2] | 0;
if ($421 >>> 0 < $423 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($421, $13);
HEAP32[$420 >> 2] = (HEAP32[$420 >> 2] | 0) + 24;
} else {
$430 = HEAP32[$db >> 2] | 0;
$431 = $421 - $430 | 0;
$432 = ($431 | 0) / 24 | 0;
$433 = $432 + 1 | 0;
if (($431 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$437 = ($423 - $430 | 0) / 24 | 0;
if ($437 >>> 0 < 1073741823) {
$439 = $437 << 1;
$$0$i$i$i65 = $439 >>> 0 < $433 >>> 0 ? $433 : $439;
} else $$0$i$i$i65 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i65, $432, $db + 12 | 0);
$442 = $__v$i$i224 + 8 | 0;
$443 = HEAP32[$442 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($443, $13);
HEAP32[$442 >> 2] = $443 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($13);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 113:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($14, 13118);
$446 = $db + 4 | 0;
$447 = HEAP32[$446 >> 2] | 0;
$449 = HEAP32[$db + 8 >> 2] | 0;
if ($447 >>> 0 < $449 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($447, $14);
HEAP32[$446 >> 2] = (HEAP32[$446 >> 2] | 0) + 24;
} else {
$456 = HEAP32[$db >> 2] | 0;
$457 = $447 - $456 | 0;
$458 = ($457 | 0) / 24 | 0;
$459 = $458 + 1 | 0;
if (($457 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$463 = ($449 - $456 | 0) / 24 | 0;
if ($463 >>> 0 < 1073741823) {
$465 = $463 << 1;
$$0$i$i$i70 = $465 >>> 0 < $459 >>> 0 ? $459 : $465;
} else $$0$i$i$i70 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i70, $458, $db + 12 | 0);
$468 = $__v$i$i224 + 8 | 0;
$469 = HEAP32[$468 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($469, $14);
HEAP32[$468 >> 2] = $469 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($14);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 103:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 101:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($15, 13129);
$475 = $db + 4 | 0;
$476 = HEAP32[$475 >> 2] | 0;
$478 = HEAP32[$db + 8 >> 2] | 0;
if ($476 >>> 0 < $478 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($476, $15);
HEAP32[$475 >> 2] = (HEAP32[$475 >> 2] | 0) + 24;
} else {
$485 = HEAP32[$db >> 2] | 0;
$486 = $476 - $485 | 0;
$487 = ($486 | 0) / 24 | 0;
$488 = $487 + 1 | 0;
if (($486 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$492 = ($478 - $485 | 0) / 24 | 0;
if ($492 >>> 0 < 1073741823) {
$494 = $492 << 1;
$$0$i$i$i75 = $494 >>> 0 < $488 >>> 0 ? $488 : $494;
} else $$0$i$i$i75 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i75, $487, $db + 12 | 0);
$497 = $__v$i$i224 + 8 | 0;
$498 = HEAP32[$497 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($498, $15);
HEAP32[$497 >> 2] = $498 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($15);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 116:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($16, 13140);
$501 = $db + 4 | 0;
$502 = HEAP32[$501 >> 2] | 0;
$504 = HEAP32[$db + 8 >> 2] | 0;
if ($502 >>> 0 < $504 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($502, $16);
HEAP32[$501 >> 2] = (HEAP32[$501 >> 2] | 0) + 24;
} else {
$511 = HEAP32[$db >> 2] | 0;
$512 = $502 - $511 | 0;
$513 = ($512 | 0) / 24 | 0;
$514 = $513 + 1 | 0;
if (($512 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$518 = ($504 - $511 | 0) / 24 | 0;
if ($518 >>> 0 < 1073741823) {
$520 = $518 << 1;
$$0$i$i$i80 = $520 >>> 0 < $514 >>> 0 ? $514 : $520;
} else $$0$i$i$i80 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i80, $513, $db + 12 | 0);
$523 = $__v$i$i224 + 8 | 0;
$524 = HEAP32[$523 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($524, $16);
HEAP32[$523 >> 2] = $524 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 105:
{
if ((HEAP8[$first + 1 >> 0] | 0) != 120) {
$$0 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($17, 13150);
$530 = $db + 4 | 0;
$531 = HEAP32[$530 >> 2] | 0;
$533 = HEAP32[$db + 8 >> 2] | 0;
if ($531 >>> 0 < $533 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($531, $17);
HEAP32[$530 >> 2] = (HEAP32[$530 >> 2] | 0) + 24;
} else {
$540 = HEAP32[$db >> 2] | 0;
$541 = $531 - $540 | 0;
$542 = ($541 | 0) / 24 | 0;
$543 = $542 + 1 | 0;
if (($541 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$547 = ($533 - $540 | 0) / 24 | 0;
if ($547 >>> 0 < 1073741823) {
$549 = $547 << 1;
$$0$i$i$i85 = $549 >>> 0 < $543 >>> 0 ? $543 : $549;
} else $$0$i$i$i85 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i85, $542, $db + 12 | 0);
$552 = $__v$i$i224 + 8 | 0;
$553 = HEAP32[$552 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($553, $17);
HEAP32[$552 >> 2] = $553 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($17);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 108:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 101:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($18, 13161);
$559 = $db + 4 | 0;
$560 = HEAP32[$559 >> 2] | 0;
$562 = HEAP32[$db + 8 >> 2] | 0;
if ($560 >>> 0 < $562 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($560, $18);
HEAP32[$559 >> 2] = (HEAP32[$559 >> 2] | 0) + 24;
} else {
$569 = HEAP32[$db >> 2] | 0;
$570 = $560 - $569 | 0;
$571 = ($570 | 0) / 24 | 0;
$572 = $571 + 1 | 0;
if (($570 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$576 = ($562 - $569 | 0) / 24 | 0;
if ($576 >>> 0 < 1073741823) {
$578 = $576 << 1;
$$0$i$i$i90 = $578 >>> 0 < $572 >>> 0 ? $572 : $578;
} else $$0$i$i$i90 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i90, $571, $db + 12 | 0);
$581 = $__v$i$i224 + 8 | 0;
$582 = HEAP32[$581 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($582, $18);
HEAP32[$581 >> 2] = $582 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($18);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 105:
{
$585 = $first + 2 | 0;
$586 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($585, $last, $db) | 0;
if (($586 | 0) == ($585 | 0)) {
$$0 = $first;
break L1;
}
$590 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($590 | 0)) {
$$0 = $first;
break L1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($590 + -24 | 0, 0, 13172) | 0;
$$0 = $586;
break L1;
break;
}
case 115:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($19, 13184);
$593 = $db + 4 | 0;
$594 = HEAP32[$593 >> 2] | 0;
$596 = HEAP32[$db + 8 >> 2] | 0;
if ($594 >>> 0 < $596 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($594, $19);
HEAP32[$593 >> 2] = (HEAP32[$593 >> 2] | 0) + 24;
} else {
$603 = HEAP32[$db >> 2] | 0;
$604 = $594 - $603 | 0;
$605 = ($604 | 0) / 24 | 0;
$606 = $605 + 1 | 0;
if (($604 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$610 = ($596 - $603 | 0) / 24 | 0;
if ($610 >>> 0 < 1073741823) {
$612 = $610 << 1;
$$0$i$i$i95 = $612 >>> 0 < $606 >>> 0 ? $606 : $612;
} else $$0$i$i$i95 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i95, $605, $db + 12 | 0);
$615 = $__v$i$i224 + 8 | 0;
$616 = HEAP32[$615 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($616, $19);
HEAP32[$615 >> 2] = $616 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 83:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($20, 13195);
$619 = $db + 4 | 0;
$620 = HEAP32[$619 >> 2] | 0;
$622 = HEAP32[$db + 8 >> 2] | 0;
if ($620 >>> 0 < $622 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($620, $20);
HEAP32[$619 >> 2] = (HEAP32[$619 >> 2] | 0) + 24;
} else {
$629 = HEAP32[$db >> 2] | 0;
$630 = $620 - $629 | 0;
$631 = ($630 | 0) / 24 | 0;
$632 = $631 + 1 | 0;
if (($630 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$636 = ($622 - $629 | 0) / 24 | 0;
if ($636 >>> 0 < 1073741823) {
$638 = $636 << 1;
$$0$i$i$i100 = $638 >>> 0 < $632 >>> 0 ? $632 : $638;
} else $$0$i$i$i100 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i100, $631, $db + 12 | 0);
$641 = $__v$i$i224 + 8 | 0;
$642 = HEAP32[$641 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($642, $20);
HEAP32[$641 >> 2] = $642 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($20);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 116:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($21, 13207);
$645 = $db + 4 | 0;
$646 = HEAP32[$645 >> 2] | 0;
$648 = HEAP32[$db + 8 >> 2] | 0;
if ($646 >>> 0 < $648 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($646, $21);
HEAP32[$645 >> 2] = (HEAP32[$645 >> 2] | 0) + 24;
} else {
$655 = HEAP32[$db >> 2] | 0;
$656 = $646 - $655 | 0;
$657 = ($656 | 0) / 24 | 0;
$658 = $657 + 1 | 0;
if (($656 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$662 = ($648 - $655 | 0) / 24 | 0;
if ($662 >>> 0 < 1073741823) {
$664 = $662 << 1;
$$0$i$i$i105 = $664 >>> 0 < $658 >>> 0 ? $658 : $664;
} else $$0$i$i$i105 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i105, $657, $db + 12 | 0);
$667 = $__v$i$i224 + 8 | 0;
$668 = HEAP32[$667 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($668, $21);
HEAP32[$667 >> 2] = $668 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 109:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 105:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($22, 13217);
$674 = $db + 4 | 0;
$675 = HEAP32[$674 >> 2] | 0;
$677 = HEAP32[$db + 8 >> 2] | 0;
if ($675 >>> 0 < $677 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($675, $22);
HEAP32[$674 >> 2] = (HEAP32[$674 >> 2] | 0) + 24;
} else {
$684 = HEAP32[$db >> 2] | 0;
$685 = $675 - $684 | 0;
$686 = ($685 | 0) / 24 | 0;
$687 = $686 + 1 | 0;
if (($685 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$691 = ($677 - $684 | 0) / 24 | 0;
if ($691 >>> 0 < 1073741823) {
$693 = $691 << 1;
$$0$i$i$i110 = $693 >>> 0 < $687 >>> 0 ? $687 : $693;
} else $$0$i$i$i110 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i110, $686, $db + 12 | 0);
$696 = $__v$i$i224 + 8 | 0;
$697 = HEAP32[$696 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($697, $22);
HEAP32[$696 >> 2] = $697 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($22);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 73:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($23, 13227);
$700 = $db + 4 | 0;
$701 = HEAP32[$700 >> 2] | 0;
$703 = HEAP32[$db + 8 >> 2] | 0;
if ($701 >>> 0 < $703 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($701, $23);
HEAP32[$700 >> 2] = (HEAP32[$700 >> 2] | 0) + 24;
} else {
$710 = HEAP32[$db >> 2] | 0;
$711 = $701 - $710 | 0;
$712 = ($711 | 0) / 24 | 0;
$713 = $712 + 1 | 0;
if (($711 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$717 = ($703 - $710 | 0) / 24 | 0;
if ($717 >>> 0 < 1073741823) {
$719 = $717 << 1;
$$0$i$i$i115 = $719 >>> 0 < $713 >>> 0 ? $713 : $719;
} else $$0$i$i$i115 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i115, $712, $db + 12 | 0);
$722 = $__v$i$i224 + 8 | 0;
$723 = HEAP32[$722 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($723, $23);
HEAP32[$722 >> 2] = $723 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($23);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 108:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($24, 13050);
$726 = $db + 4 | 0;
$727 = HEAP32[$726 >> 2] | 0;
$729 = HEAP32[$db + 8 >> 2] | 0;
if ($727 >>> 0 < $729 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($727, $24);
HEAP32[$726 >> 2] = (HEAP32[$726 >> 2] | 0) + 24;
} else {
$736 = HEAP32[$db >> 2] | 0;
$737 = $727 - $736 | 0;
$738 = ($737 | 0) / 24 | 0;
$739 = $738 + 1 | 0;
if (($737 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$743 = ($729 - $736 | 0) / 24 | 0;
if ($743 >>> 0 < 1073741823) {
$745 = $743 << 1;
$$0$i$i$i120 = $745 >>> 0 < $739 >>> 0 ? $739 : $745;
} else $$0$i$i$i120 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i120, $738, $db + 12 | 0);
$748 = $__v$i$i224 + 8 | 0;
$749 = HEAP32[$748 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($749, $24);
HEAP32[$748 >> 2] = $749 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($24);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 76:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($25, 13238);
$752 = $db + 4 | 0;
$753 = HEAP32[$752 >> 2] | 0;
$755 = HEAP32[$db + 8 >> 2] | 0;
if ($753 >>> 0 < $755 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($753, $25);
HEAP32[$752 >> 2] = (HEAP32[$752 >> 2] | 0) + 24;
} else {
$762 = HEAP32[$db >> 2] | 0;
$763 = $753 - $762 | 0;
$764 = ($763 | 0) / 24 | 0;
$765 = $764 + 1 | 0;
if (($763 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$769 = ($755 - $762 | 0) / 24 | 0;
if ($769 >>> 0 < 1073741823) {
$771 = $769 << 1;
$$0$i$i$i125 = $771 >>> 0 < $765 >>> 0 ? $765 : $771;
} else $$0$i$i$i125 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i125, $764, $db + 12 | 0);
$774 = $__v$i$i224 + 8 | 0;
$775 = HEAP32[$774 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($775, $25);
HEAP32[$774 >> 2] = $775 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 109:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($26, 13249);
$778 = $db + 4 | 0;
$779 = HEAP32[$778 >> 2] | 0;
$781 = HEAP32[$db + 8 >> 2] | 0;
if ($779 >>> 0 < $781 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($779, $26);
HEAP32[$778 >> 2] = (HEAP32[$778 >> 2] | 0) + 24;
} else {
$788 = HEAP32[$db >> 2] | 0;
$789 = $779 - $788 | 0;
$790 = ($789 | 0) / 24 | 0;
$791 = $790 + 1 | 0;
if (($789 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$795 = ($781 - $788 | 0) / 24 | 0;
if ($795 >>> 0 < 1073741823) {
$797 = $795 << 1;
$$0$i$i$i130 = $797 >>> 0 < $791 >>> 0 ? $791 : $797;
} else $$0$i$i$i130 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i130, $790, $db + 12 | 0);
$800 = $__v$i$i224 + 8 | 0;
$801 = HEAP32[$800 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($801, $26);
HEAP32[$800 >> 2] = $801 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($26);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 110:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 97:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($27, 13260);
$807 = $db + 4 | 0;
$808 = HEAP32[$807 >> 2] | 0;
$810 = HEAP32[$db + 8 >> 2] | 0;
if ($808 >>> 0 < $810 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($808, $27);
HEAP32[$807 >> 2] = (HEAP32[$807 >> 2] | 0) + 24;
} else {
$817 = HEAP32[$db >> 2] | 0;
$818 = $808 - $817 | 0;
$819 = ($818 | 0) / 24 | 0;
$820 = $819 + 1 | 0;
if (($818 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$824 = ($810 - $817 | 0) / 24 | 0;
if ($824 >>> 0 < 1073741823) {
$826 = $824 << 1;
$$0$i$i$i135 = $826 >>> 0 < $820 >>> 0 ? $820 : $826;
} else $$0$i$i$i135 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i135, $819, $db + 12 | 0);
$829 = $__v$i$i224 + 8 | 0;
$830 = HEAP32[$829 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($830, $27);
HEAP32[$829 >> 2] = $830 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 101:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($28, 13275);
$833 = $db + 4 | 0;
$834 = HEAP32[$833 >> 2] | 0;
$836 = HEAP32[$db + 8 >> 2] | 0;
if ($834 >>> 0 < $836 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($834, $28);
HEAP32[$833 >> 2] = (HEAP32[$833 >> 2] | 0) + 24;
} else {
$843 = HEAP32[$db >> 2] | 0;
$844 = $834 - $843 | 0;
$845 = ($844 | 0) / 24 | 0;
$846 = $845 + 1 | 0;
if (($844 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$850 = ($836 - $843 | 0) / 24 | 0;
if ($850 >>> 0 < 1073741823) {
$852 = $850 << 1;
$$0$i$i$i140 = $852 >>> 0 < $846 >>> 0 ? $846 : $852;
} else $$0$i$i$i140 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i140, $845, $db + 12 | 0);
$855 = $__v$i$i224 + 8 | 0;
$856 = HEAP32[$855 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($856, $28);
HEAP32[$855 >> 2] = $856 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($28);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 103:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($29, 13217);
$859 = $db + 4 | 0;
$860 = HEAP32[$859 >> 2] | 0;
$862 = HEAP32[$db + 8 >> 2] | 0;
if ($860 >>> 0 < $862 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($860, $29);
HEAP32[$859 >> 2] = (HEAP32[$859 >> 2] | 0) + 24;
} else {
$869 = HEAP32[$db >> 2] | 0;
$870 = $860 - $869 | 0;
$871 = ($870 | 0) / 24 | 0;
$872 = $871 + 1 | 0;
if (($870 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$876 = ($862 - $869 | 0) / 24 | 0;
if ($876 >>> 0 < 1073741823) {
$878 = $876 << 1;
$$0$i$i$i145 = $878 >>> 0 < $872 >>> 0 ? $872 : $878;
} else $$0$i$i$i145 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i145, $871, $db + 12 | 0);
$881 = $__v$i$i224 + 8 | 0;
$882 = HEAP32[$881 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($882, $29);
HEAP32[$881 >> 2] = $882 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($29);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 116:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($30, 13286);
$885 = $db + 4 | 0;
$886 = HEAP32[$885 >> 2] | 0;
$888 = HEAP32[$db + 8 >> 2] | 0;
if ($886 >>> 0 < $888 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($886, $30);
HEAP32[$885 >> 2] = (HEAP32[$885 >> 2] | 0) + 24;
} else {
$895 = HEAP32[$db >> 2] | 0;
$896 = $886 - $895 | 0;
$897 = ($896 | 0) / 24 | 0;
$898 = $897 + 1 | 0;
if (($896 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$902 = ($888 - $895 | 0) / 24 | 0;
if ($902 >>> 0 < 1073741823) {
$904 = $902 << 1;
$$0$i$i$i150 = $904 >>> 0 < $898 >>> 0 ? $898 : $904;
} else $$0$i$i$i150 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i150, $897, $db + 12 | 0);
$907 = $__v$i$i224 + 8 | 0;
$908 = HEAP32[$907 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($908, $30);
HEAP32[$907 >> 2] = $908 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($30);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 119:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($31, 13296);
$911 = $db + 4 | 0;
$912 = HEAP32[$911 >> 2] | 0;
$914 = HEAP32[$db + 8 >> 2] | 0;
if ($912 >>> 0 < $914 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($912, $31);
HEAP32[$911 >> 2] = (HEAP32[$911 >> 2] | 0) + 24;
} else {
$921 = HEAP32[$db >> 2] | 0;
$922 = $912 - $921 | 0;
$923 = ($922 | 0) / 24 | 0;
$924 = $923 + 1 | 0;
if (($922 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$928 = ($914 - $921 | 0) / 24 | 0;
if ($928 >>> 0 < 1073741823) {
$930 = $928 << 1;
$$0$i$i$i155 = $930 >>> 0 < $924 >>> 0 ? $924 : $930;
} else $$0$i$i$i155 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i155, $923, $db + 12 | 0);
$933 = $__v$i$i224 + 8 | 0;
$934 = HEAP32[$933 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($934, $31);
HEAP32[$933 >> 2] = $934 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($31);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 111:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 111:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($32, 13309);
$940 = $db + 4 | 0;
$941 = HEAP32[$940 >> 2] | 0;
$943 = HEAP32[$db + 8 >> 2] | 0;
if ($941 >>> 0 < $943 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($941, $32);
HEAP32[$940 >> 2] = (HEAP32[$940 >> 2] | 0) + 24;
} else {
$950 = HEAP32[$db >> 2] | 0;
$951 = $941 - $950 | 0;
$952 = ($951 | 0) / 24 | 0;
$953 = $952 + 1 | 0;
if (($951 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$957 = ($943 - $950 | 0) / 24 | 0;
if ($957 >>> 0 < 1073741823) {
$959 = $957 << 1;
$$0$i$i$i160 = $959 >>> 0 < $953 >>> 0 ? $953 : $959;
} else $$0$i$i$i160 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i160, $952, $db + 12 | 0);
$962 = $__v$i$i224 + 8 | 0;
$963 = HEAP32[$962 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($963, $32);
HEAP32[$962 >> 2] = $963 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($32);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 114:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($33, 13320);
$966 = $db + 4 | 0;
$967 = HEAP32[$966 >> 2] | 0;
$969 = HEAP32[$db + 8 >> 2] | 0;
if ($967 >>> 0 < $969 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($967, $33);
HEAP32[$966 >> 2] = (HEAP32[$966 >> 2] | 0) + 24;
} else {
$976 = HEAP32[$db >> 2] | 0;
$977 = $967 - $976 | 0;
$978 = ($977 | 0) / 24 | 0;
$979 = $978 + 1 | 0;
if (($977 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$983 = ($969 - $976 | 0) / 24 | 0;
if ($983 >>> 0 < 1073741823) {
$985 = $983 << 1;
$$0$i$i$i165 = $985 >>> 0 < $979 >>> 0 ? $979 : $985;
} else $$0$i$i$i165 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i165, $978, $db + 12 | 0);
$988 = $__v$i$i224 + 8 | 0;
$989 = HEAP32[$988 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($989, $33);
HEAP32[$988 >> 2] = $989 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($33);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 82:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($34, 13330);
$992 = $db + 4 | 0;
$993 = HEAP32[$992 >> 2] | 0;
$995 = HEAP32[$db + 8 >> 2] | 0;
if ($993 >>> 0 < $995 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($993, $34);
HEAP32[$992 >> 2] = (HEAP32[$992 >> 2] | 0) + 24;
} else {
$1002 = HEAP32[$db >> 2] | 0;
$1003 = $993 - $1002 | 0;
$1004 = ($1003 | 0) / 24 | 0;
$1005 = $1004 + 1 | 0;
if (($1003 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1009 = ($995 - $1002 | 0) / 24 | 0;
if ($1009 >>> 0 < 1073741823) {
$1011 = $1009 << 1;
$$0$i$i$i170 = $1011 >>> 0 < $1005 >>> 0 ? $1005 : $1011;
} else $$0$i$i$i170 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i170, $1004, $db + 12 | 0);
$1014 = $__v$i$i224 + 8 | 0;
$1015 = HEAP32[$1014 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1015, $34);
HEAP32[$1014 >> 2] = $1015 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($34);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 112:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 109:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($35, 13341);
$1021 = $db + 4 | 0;
$1022 = HEAP32[$1021 >> 2] | 0;
$1024 = HEAP32[$db + 8 >> 2] | 0;
if ($1022 >>> 0 < $1024 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1022, $35);
HEAP32[$1021 >> 2] = (HEAP32[$1021 >> 2] | 0) + 24;
} else {
$1031 = HEAP32[$db >> 2] | 0;
$1032 = $1022 - $1031 | 0;
$1033 = ($1032 | 0) / 24 | 0;
$1034 = $1033 + 1 | 0;
if (($1032 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1038 = ($1024 - $1031 | 0) / 24 | 0;
if ($1038 >>> 0 < 1073741823) {
$1040 = $1038 << 1;
$$0$i$i$i175 = $1040 >>> 0 < $1034 >>> 0 ? $1034 : $1040;
} else $$0$i$i$i175 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i175, $1033, $db + 12 | 0);
$1043 = $__v$i$i224 + 8 | 0;
$1044 = HEAP32[$1043 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1044, $35);
HEAP32[$1043 >> 2] = $1044 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($35);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 108:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($36, 13353);
$1047 = $db + 4 | 0;
$1048 = HEAP32[$1047 >> 2] | 0;
$1050 = HEAP32[$db + 8 >> 2] | 0;
if ($1048 >>> 0 < $1050 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1048, $36);
HEAP32[$1047 >> 2] = (HEAP32[$1047 >> 2] | 0) + 24;
} else {
$1057 = HEAP32[$db >> 2] | 0;
$1058 = $1048 - $1057 | 0;
$1059 = ($1058 | 0) / 24 | 0;
$1060 = $1059 + 1 | 0;
if (($1058 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1064 = ($1050 - $1057 | 0) / 24 | 0;
if ($1064 >>> 0 < 1073741823) {
$1066 = $1064 << 1;
$$0$i$i$i180 = $1066 >>> 0 < $1060 >>> 0 ? $1060 : $1066;
} else $$0$i$i$i180 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i180, $1059, $db + 12 | 0);
$1069 = $__v$i$i224 + 8 | 0;
$1070 = HEAP32[$1069 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1070, $36);
HEAP32[$1069 >> 2] = $1070 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($36);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 76:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($37, 13363);
$1073 = $db + 4 | 0;
$1074 = HEAP32[$1073 >> 2] | 0;
$1076 = HEAP32[$db + 8 >> 2] | 0;
if ($1074 >>> 0 < $1076 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1074, $37);
HEAP32[$1073 >> 2] = (HEAP32[$1073 >> 2] | 0) + 24;
} else {
$1083 = HEAP32[$db >> 2] | 0;
$1084 = $1074 - $1083 | 0;
$1085 = ($1084 | 0) / 24 | 0;
$1086 = $1085 + 1 | 0;
if (($1084 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1090 = ($1076 - $1083 | 0) / 24 | 0;
if ($1090 >>> 0 < 1073741823) {
$1092 = $1090 << 1;
$$0$i$i$i185 = $1092 >>> 0 < $1086 >>> 0 ? $1086 : $1092;
} else $$0$i$i$i185 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i185, $1085, $db + 12 | 0);
$1095 = $__v$i$i224 + 8 | 0;
$1096 = HEAP32[$1095 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1096, $37);
HEAP32[$1095 >> 2] = $1096 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($37);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 112:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($38, 13374);
$1099 = $db + 4 | 0;
$1100 = HEAP32[$1099 >> 2] | 0;
$1102 = HEAP32[$db + 8 >> 2] | 0;
if ($1100 >>> 0 < $1102 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1100, $38);
HEAP32[$1099 >> 2] = (HEAP32[$1099 >> 2] | 0) + 24;
} else {
$1109 = HEAP32[$db >> 2] | 0;
$1110 = $1100 - $1109 | 0;
$1111 = ($1110 | 0) / 24 | 0;
$1112 = $1111 + 1 | 0;
if (($1110 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1116 = ($1102 - $1109 | 0) / 24 | 0;
if ($1116 >>> 0 < 1073741823) {
$1118 = $1116 << 1;
$$0$i$i$i190 = $1118 >>> 0 < $1112 >>> 0 ? $1112 : $1118;
} else $$0$i$i$i190 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i190, $1111, $db + 12 | 0);
$1121 = $__v$i$i224 + 8 | 0;
$1122 = HEAP32[$1121 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1122, $38);
HEAP32[$1121 >> 2] = $1122 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($38);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 115:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($39, 13353);
$1125 = $db + 4 | 0;
$1126 = HEAP32[$1125 >> 2] | 0;
$1128 = HEAP32[$db + 8 >> 2] | 0;
if ($1126 >>> 0 < $1128 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1126, $39);
HEAP32[$1125 >> 2] = (HEAP32[$1125 >> 2] | 0) + 24;
} else {
$1135 = HEAP32[$db >> 2] | 0;
$1136 = $1126 - $1135 | 0;
$1137 = ($1136 | 0) / 24 | 0;
$1138 = $1137 + 1 | 0;
if (($1136 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1142 = ($1128 - $1135 | 0) / 24 | 0;
if ($1142 >>> 0 < 1073741823) {
$1144 = $1142 << 1;
$$0$i$i$i195 = $1144 >>> 0 < $1138 >>> 0 ? $1138 : $1144;
} else $$0$i$i$i195 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i195, $1137, $db + 12 | 0);
$1147 = $__v$i$i224 + 8 | 0;
$1148 = HEAP32[$1147 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1148, $39);
HEAP32[$1147 >> 2] = $1148 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($39);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 116:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($40, 13385);
$1151 = $db + 4 | 0;
$1152 = HEAP32[$1151 >> 2] | 0;
$1154 = HEAP32[$db + 8 >> 2] | 0;
if ($1152 >>> 0 < $1154 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1152, $40);
HEAP32[$1151 >> 2] = (HEAP32[$1151 >> 2] | 0) + 24;
} else {
$1161 = HEAP32[$db >> 2] | 0;
$1162 = $1152 - $1161 | 0;
$1163 = ($1162 | 0) / 24 | 0;
$1164 = $1163 + 1 | 0;
if (($1162 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1168 = ($1154 - $1161 | 0) / 24 | 0;
if ($1168 >>> 0 < 1073741823) {
$1170 = $1168 << 1;
$$0$i$i$i200 = $1170 >>> 0 < $1164 >>> 0 ? $1164 : $1170;
} else $$0$i$i$i200 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i200, $1163, $db + 12 | 0);
$1173 = $__v$i$i224 + 8 | 0;
$1174 = HEAP32[$1173 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1174, $40);
HEAP32[$1173 >> 2] = $1174 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($40);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 113:
{
if ((HEAP8[$first + 1 >> 0] | 0) != 117) {
$$0 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($41, 13396);
$1180 = $db + 4 | 0;
$1181 = HEAP32[$1180 >> 2] | 0;
$1183 = HEAP32[$db + 8 >> 2] | 0;
if ($1181 >>> 0 < $1183 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1181, $41);
HEAP32[$1180 >> 2] = (HEAP32[$1180 >> 2] | 0) + 24;
} else {
$1190 = HEAP32[$db >> 2] | 0;
$1191 = $1181 - $1190 | 0;
$1192 = ($1191 | 0) / 24 | 0;
$1193 = $1192 + 1 | 0;
if (($1191 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1197 = ($1183 - $1190 | 0) / 24 | 0;
if ($1197 >>> 0 < 1073741823) {
$1199 = $1197 << 1;
$$0$i$i$i205 = $1199 >>> 0 < $1193 >>> 0 ? $1193 : $1199;
} else $$0$i$i$i205 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i205, $1192, $db + 12 | 0);
$1202 = $__v$i$i224 + 8 | 0;
$1203 = HEAP32[$1202 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1203, $41);
HEAP32[$1202 >> 2] = $1203 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($41);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 114:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 109:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($42, 13406);
$1209 = $db + 4 | 0;
$1210 = HEAP32[$1209 >> 2] | 0;
$1212 = HEAP32[$db + 8 >> 2] | 0;
if ($1210 >>> 0 < $1212 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1210, $42);
HEAP32[$1209 >> 2] = (HEAP32[$1209 >> 2] | 0) + 24;
} else {
$1219 = HEAP32[$db >> 2] | 0;
$1220 = $1210 - $1219 | 0;
$1221 = ($1220 | 0) / 24 | 0;
$1222 = $1221 + 1 | 0;
if (($1220 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1226 = ($1212 - $1219 | 0) / 24 | 0;
if ($1226 >>> 0 < 1073741823) {
$1228 = $1226 << 1;
$$0$i$i$i210 = $1228 >>> 0 < $1222 >>> 0 ? $1222 : $1228;
} else $$0$i$i$i210 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i210, $1221, $db + 12 | 0);
$1231 = $__v$i$i224 + 8 | 0;
$1232 = HEAP32[$1231 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1232, $42);
HEAP32[$1231 >> 2] = $1232 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($42);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 77:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($43, 13416);
$1235 = $db + 4 | 0;
$1236 = HEAP32[$1235 >> 2] | 0;
$1238 = HEAP32[$db + 8 >> 2] | 0;
if ($1236 >>> 0 < $1238 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1236, $43);
HEAP32[$1235 >> 2] = (HEAP32[$1235 >> 2] | 0) + 24;
} else {
$1245 = HEAP32[$db >> 2] | 0;
$1246 = $1236 - $1245 | 0;
$1247 = ($1246 | 0) / 24 | 0;
$1248 = $1247 + 1 | 0;
if (($1246 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1252 = ($1238 - $1245 | 0) / 24 | 0;
if ($1252 >>> 0 < 1073741823) {
$1254 = $1252 << 1;
$$0$i$i$i215 = $1254 >>> 0 < $1248 >>> 0 ? $1248 : $1254;
} else $$0$i$i$i215 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i215, $1247, $db + 12 | 0);
$1257 = $__v$i$i224 + 8 | 0;
$1258 = HEAP32[$1257 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1258, $43);
HEAP32[$1257 >> 2] = $1258 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($43);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 115:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($44, 13427);
$1261 = $db + 4 | 0;
$1262 = HEAP32[$1261 >> 2] | 0;
$1264 = HEAP32[$db + 8 >> 2] | 0;
if ($1262 >>> 0 < $1264 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1262, $44);
HEAP32[$1261 >> 2] = (HEAP32[$1261 >> 2] | 0) + 24;
} else {
$1271 = HEAP32[$db >> 2] | 0;
$1272 = $1262 - $1271 | 0;
$1273 = ($1272 | 0) / 24 | 0;
$1274 = $1273 + 1 | 0;
if (($1272 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1278 = ($1264 - $1271 | 0) / 24 | 0;
if ($1278 >>> 0 < 1073741823) {
$1280 = $1278 << 1;
$$0$i$i$i220 = $1280 >>> 0 < $1274 >>> 0 ? $1274 : $1280;
} else $$0$i$i$i220 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i220, $1273, $db + 12 | 0);
$1283 = $__v$i$i224 + 8 | 0;
$1284 = HEAP32[$1283 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1284, $44);
HEAP32[$1283 >> 2] = $1284 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($44);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 83:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($45, 13438);
$1287 = $db + 4 | 0;
$1288 = HEAP32[$1287 >> 2] | 0;
$1290 = HEAP32[$db + 8 >> 2] | 0;
if ($1288 >>> 0 < $1290 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1288, $45);
HEAP32[$1287 >> 2] = (HEAP32[$1287 >> 2] | 0) + 24;
} else {
$1297 = HEAP32[$db >> 2] | 0;
$1298 = $1288 - $1297 | 0;
$1299 = ($1298 | 0) / 24 | 0;
$1300 = $1299 + 1 | 0;
if (($1298 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$1304 = ($1290 - $1297 | 0) / 24 | 0;
if ($1304 >>> 0 < 1073741823) {
$1306 = $1304 << 1;
$$0$i$i$i225 = $1306 >>> 0 < $1300 >>> 0 ? $1300 : $1306;
} else $$0$i$i$i225 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i224, $$0$i$i$i225, $1299, $db + 12 | 0);
$1309 = $__v$i$i224 + 8 | 0;
$1310 = HEAP32[$1309 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($1310, $45);
HEAP32[$1309 >> 2] = $1310 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i224);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i224);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($45);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 118:
{
if (((HEAP8[$first + 1 >> 0] | 0) + -48 | 0) >>> 0 >= 10) {
$$0 = $first;
break L1;
}
$1316 = $first + 2 | 0;
$1317 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($1316, $last, $db) | 0;
if (($1317 | 0) == ($1316 | 0)) {
$$0 = $first;
break L1;
}
$1321 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($1321 | 0)) {
$$0 = $first;
break L1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($1321 + -24 | 0, 0, 13022) | 0;
$$0 = $1317;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
} while (0); else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arPattGetImage2($imageProcMode, $pattDetectMode, $patt_size, $sample_size, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) {
$imageProcMode = $imageProcMode | 0;
$pattDetectMode = $pattDetectMode | 0;
$patt_size = $patt_size | 0;
$sample_size = $sample_size | 0;
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$pixelFormat = $pixelFormat | 0;
$paramLTf = $paramLTf | 0;
$vertex = $vertex | 0;
$pattRatio = +$pattRatio;
$ext_patt = $ext_patt | 0;
var $$0 = 0, $100 = 0, $1001 = 0, $1005 = 0, $1009 = 0, $1012 = 0, $1023 = 0.0, $1028 = 0.0, $103 = 0.0, $1035 = 0.0, $104 = 0.0, $1045 = 0.0, $1054 = 0.0, $1055 = 0.0, $106 = 0, $107 = 0, $1074 = 0, $108 = 0, $1084 = 0, $1090 = 0.0, $1096 = 0.0, $1097 = 0.0, $110 = 0.0, $1101 = 0, $1107 = 0, $111 = 0.0, $1111 = 0, $1113 = 0, $1119 = 0, $112 = 0.0, $1120 = 0, $1124 = 0, $1128 = 0, $113 = 0, $1132 = 0, $1135 = 0, $114 = 0, $1146 = 0.0, $115 = 0, $1151 = 0.0, $1158 = 0.0, $116 = 0, $1168 = 0.0, $117 = 0, $1177 = 0.0, $1178 = 0.0, $118 = 0, $119 = 0, $1199 = 0, $120 = 0, $1203 = 0, $121 = 0, $1211 = 0, $1212 = 0, $1217 = 0, $1225 = 0, $123 = 0, $1231 = 0, $124 = 0.0, $1242 = 0.0, $1247 = 0.0, $125 = 0.0, $1254 = 0.0, $126 = 0.0, $1264 = 0.0, $127 = 0, $1273 = 0.0, $1274 = 0.0, $128 = 0, $129 = 0, $1295 = 0, $1299 = 0, $130 = 0, $1307 = 0, $1308 = 0, $131 = 0, $1313 = 0, $132 = 0, $1321 = 0, $1327 = 0, $133 = 0, $1338 = 0.0, $134 = 0, $1343 = 0.0, $135 = 0, $1350 = 0.0, $1360 = 0.0, $1369 = 0.0, $137 = 0, $1370 = 0.0, $138 = 0.0, $139 = 0.0, $1391 = 0, $140 = 0.0, $1402 = 0, $1403 = 0, $1408 = 0, $141 = 0, $1413 = 0, $1419 = 0, $142 = 0, $143 = 0, $1433 = 0, $1436 = 0.0, $1437 = 0.0, $1438 = 0.0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1456 = 0.0, $146 = 0, $1461 = 0.0, $1468 = 0.0, $147 = 0, $1478 = 0.0, $148 = 0, $1487 = 0.0, $1488 = 0.0, $149 = 0, $1509 = 0, $151 = 0, $152 = 0.0, $1528 = 0, $153 = 0.0, $1537 = 0.0, $1538 = 0.0, $1539 = 0.0, $154 = 0.0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $155 = 0, $1550 = 0, $1555 = 0.0, $156 = 0, $1560 = 0.0, $1567 = 0.0, $157 = 0, $1577 = 0.0, $158 = 0, $1586 = 0.0, $1587 = 0.0, $159 = 0, $160 = 0, $1608 = 0, $161 = 0, $162 = 0, $1627 = 0, $163 = 0, $1636 = 0.0, $1637 = 0.0, $1638 = 0.0, $1639 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0, $1646 = 0, $1647 = 0, $1649 = 0, $165 = 0, $1654 = 0.0, $1659 = 0.0, $166 = 0.0, $1666 = 0.0, $167 = 0.0, $1676 = 0.0, $168 = 0.0, $1685 = 0.0, $1686 = 0.0, $169 = 0, $170 = 0, $1707 = 0, $171 = 0, $172 = 0, $1727 = 0, $173 = 0, $1734 = 0.0, $1735 = 0.0, $1736 = 0.0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1747 = 0, $1748 = 0.0, $1749 = 0.0, $175 = 0, $1750 = 0.0, $1751 = 0, $1752 = 0, $1753 = 0, $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0, $1761 = 0, $1762 = 0.0, $1763 = 0.0, $1764 = 0.0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0, $1770 = 0, $1771 = 0, $1772 = 0, $1773 = 0, $1775 = 0, $1776 = 0.0, $1777 = 0.0, $1778 = 0.0, $1779 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1789 = 0, $179 = 0, $1790 = 0.0, $1791 = 0.0, $1792 = 0.0, $1793 = 0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0, $180 = 0.0, $1800 = 0, $1801 = 0, $1803 = 0, $1804 = 0.0, $1805 = 0.0, $1806 = 0.0, $1807 = 0, $1808 = 0, $1809 = 0, $181 = 0.0, $1810 = 0, $1811 = 0, $1812 = 0, $1813 = 0, $1814 = 0, $1815 = 0, $1817 = 0, $182 = 0.0, $1822 = 0.0, $1827 = 0.0, $183 = 0, $1834 = 0.0, $184 = 0, $1844 = 0.0, $185 = 0, $1853 = 0.0, $1854 = 0.0, $186 = 0, $187 = 0, $1875 = 0, $188 = 0, $1882 = 0, $189 = 0, $1893 = 0.0, $1898 = 0.0, $190 = 0, $1905 = 0.0, $191 = 0, $1915 = 0.0, $1924 = 0.0, $1925 = 0.0, $193 = 0, $194 = 0.0, $1948 = 0, $195 = 0.0, $1955 = 0, $196 = 0.0, $1966 = 0.0, $197 = 0, $1971 = 0.0, $1978 = 0.0, $198 = 0, $1988 = 0.0, $199 = 0, $1997 = 0.0, $1998 = 0.0, $200 = 0, $201 = 0, $202 = 0, $2020 = 0, $2027 = 0, $203 = 0, $2038 = 0.0, $204 = 0, $2043 = 0.0, $205 = 0, $2050 = 0.0, $2060 = 0.0, $2069 = 0.0, $207 = 0, $2070 = 0.0, $208 = 0.0, $209 = 0.0, $2091 = 0, $2094 = 0, $210 = 0.0, $2102 = 0, $211 = 0, $2117 = 0, $212 = 0, $2128 = 0.0, $213 = 0, $2133 = 0.0, $214 = 0, $2140 = 0.0, $215 = 0, $2150 = 0.0, $2159 = 0.0, $216 = 0, $2160 = 0.0, $217 = 0, $218 = 0, $2181 = 0, $2184 = 0, $219 = 0, $2192 = 0, $2207 = 0, $221 = 0, $2218 = 0.0, $222 = 0.0, $2223 = 0.0, $223 = 0.0, $2230 = 0.0, $224 = 0.0, $2240 = 0.0, $2249 = 0.0, $225 = 0, $2250 = 0.0, $226 = 0, $227 = 0, $2271 = 0, $2274 = 0, $228 = 0, $229 = 0, $2293 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $235 = 0, $236 = 0.0, $237 = 0.0, $238 = 0.0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $249 = 0, $250 = 0.0, $251 = 0.0, $252 = 0.0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $260 = 0, $261 = 0, $263 = 0, $264 = 0.0, $265 = 0.0, $266 = 0.0, $267 = 0, $268 = 0, $269 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $277 = 0, $278 = 0, $284 = 0.0, $289 = 0.0, $29 = 0.0, $296 = 0.0, $306 = 0.0, $31 = 0.0, $315 = 0.0, $316 = 0.0, $32 = 0.0, $337 = 0, $346 = 0, $347 = 0, $35 = 0.0, $355 = 0, $362 = 0, $37 = 0.0, $373 = 0.0, $378 = 0.0, $38 = 0.0, $385 = 0.0, $395 = 0.0, $404 = 0.0, $405 = 0.0, $41 = 0, $426 = 0, $43 = 0.0, $434 = 0, $435 = 0, $443 = 0, $45 = 0.0, $451 = 0, $46 = 0.0, $462 = 0.0, $467 = 0.0, $474 = 0.0, $484 = 0.0, $49 = 0.0, $493 = 0.0, $494 = 0.0, $51 = 0.0, $515 = 0, $52 = 0.0, $524 = 0, $525 = 0, $533 = 0, $540 = 0, $55 = 0, $551 = 0.0, $556 = 0.0, $56 = 0.0, $563 = 0.0, $573 = 0.0, $58 = 0.0, $582 = 0.0, $583 = 0.0, $604 = 0, $61 = 0, $612 = 0, $613 = 0, $62 = 0.0, $621 = 0, $629 = 0, $64 = 0.0, $640 = 0.0, $645 = 0.0, $652 = 0.0, $662 = 0.0, $67 = 0, $671 = 0.0, $672 = 0.0, $693 = 0, $702 = 0, $703 = 0, $711 = 0, $719 = 0, $73 = 0, $730 = 0.0, $735 = 0.0, $742 = 0.0, $752 = 0.0, $761 = 0.0, $762 = 0.0, $77 = 0, $783 = 0, $785 = 0, $790 = 0, $791 = 0, $795 = 0, $799 = 0, $810 = 0.0, $815 = 0.0, $822 = 0.0, $832 = 0.0, $841 = 0.0, $842 = 0.0, $863 = 0, $872 = 0, $873 = 0, $881 = 0, $889 = 0, $900 = 0.0, $905 = 0.0, $912 = 0.0, $922 = 0.0, $931 = 0.0, $932 = 0.0, $951 = 0, $954 = 0, $959 = 0.0, $973 = 0.0, $974 = 0.0, $978 = 0, $984 = 0, $988 = 0, $99 = 0, $990 = 0, $996 = 0, $997 = 0, $ext_patt2$0 = 0, $i$10291 = 0, $i$11297 = 0, $i$12303 = 0, $i$1237 = 0, $i$13236 = 0, $i$14312 = 0, $i$15318 = 0, $i$16324 = 0, $i$17330 = 0, $i$18336 = 0, $i$19342 = 0, $i$20348 = 0, $i$21354 = 0, $i$22360 = 0, $i$2243 = 0, $i$23309 = 0, $i$3249 = 0, $i$4255 = 0, $i$5261 = 0, $i$6267 = 0, $i$7273 = 0, $i$8279 = 0, $i$9285 = 0, $j$0241 = 0, $j$10301 = 0, $j$11307 = 0, $j$12316 = 0, $j$1247 = 0, $j$13322 = 0, $j$14328 = 0, $j$15334 = 0, $j$16340 = 0, $j$17346 = 0, $j$18352 = 0, $j$19358 = 0, $j$20364 = 0, $j$2253 = 0, $j$3259 = 0, $j$4265 = 0, $j$5271 = 0, $j$6277 = 0, $j$7283 = 0, $j$8289 = 0, $j$9295 = 0, $local = 0, $para = 0, $sample_size$xdiv2$2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $world = 0, $xc$0 = 0, $xc$1 = 0, $xc$10 = 0, $xc$11 = 0, $xc$12 = 0, $xc$13 = 0, $xc$14 = 0, $xc$15 = 0, $xc$16 = 0, $xc$17 = 0, $xc$18 = 0, $xc$19 = 0, $xc$2 = 0, $xc$20 = 0, $xc$3 = 0, $xc$4 = 0, $xc$5 = 0, $xc$6 = 0, $xc$7 = 0, $xc$8 = 0, $xc$9 = 0, $xc2 = 0, $xdiv2$0 = 0, $xdiv2$0$lcssa = 0, $xdiv2$1 = 0, $xdiv2$1$lcssa = 0, $xdiv2$2 = 0, $yc$0 = 0, $yc$1 = 0, $yc$10 = 0, $yc$11 = 0, $yc$12 = 0, $yc$13 = 0, $yc$14 = 0, $yc$15 = 0, $yc$16 = 0, $yc$17 = 0, $yc$18 = 0, $yc$19 = 0, $yc$2 = 0, $yc$20 = 0, $yc$3 = 0, $yc$4 = 0, $yc$5 = 0, $yc$6 = 0, $yc$7 = 0, $yc$8 = 0, $yc$9 = 0, $yc2 = 0, $ydiv2$0 = 0, $ydiv2$1 = 0, $ydiv2$2 = 0, $ydiv2$3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer5 = sp + 224 | 0;
$vararg_buffer3 = sp + 216 | 0;
$vararg_buffer1 = sp + 208 | 0;
$vararg_buffer = sp + 200 | 0;
$world = sp + 136 | 0;
$local = sp + 72 | 0;
$para = sp;
$xc2 = sp + 232 | 0;
$yc2 = sp + 228 | 0;
HEAPF64[$world >> 3] = 100.0;
HEAPF64[$world + 8 >> 3] = 100.0;
HEAPF64[$world + 16 >> 3] = 110.0;
HEAPF64[$world + 24 >> 3] = 100.0;
HEAPF64[$world + 32 >> 3] = 110.0;
HEAPF64[$world + 40 >> 3] = 110.0;
HEAPF64[$world + 48 >> 3] = 100.0;
HEAPF64[$world + 56 >> 3] = 110.0;
HEAPF64[$local >> 3] = +HEAPF64[$vertex >> 3];
HEAPF64[$local + 8 >> 3] = +HEAPF64[$vertex + 8 >> 3];
HEAPF64[$local + 16 >> 3] = +HEAPF64[$vertex + 16 >> 3];
HEAPF64[$local + 24 >> 3] = +HEAPF64[$vertex + 24 >> 3];
HEAPF64[$local + 32 >> 3] = +HEAPF64[$vertex + 32 >> 3];
HEAPF64[$local + 40 >> 3] = +HEAPF64[$vertex + 40 >> 3];
HEAPF64[$local + 48 >> 3] = +HEAPF64[$vertex + 48 >> 3];
HEAPF64[$local + 56 >> 3] = +HEAPF64[$vertex + 56 >> 3];
_get_cpara($world, $local, $para);
$29 = +HEAPF64[$local >> 3];
$31 = +HEAPF64[$local + 16 >> 3];
$32 = $29 - $31;
$35 = +HEAPF64[$local + 8 >> 3];
$37 = +HEAPF64[$local + 24 >> 3];
$38 = $35 - $37;
$41 = ~~($32 * $32 + $38 * $38);
$43 = +HEAPF64[$local + 32 >> 3];
$45 = +HEAPF64[$local + 48 >> 3];
$46 = $43 - $45;
$49 = +HEAPF64[$local + 40 >> 3];
$51 = +HEAPF64[$local + 56 >> 3];
$52 = $49 - $51;
$55 = ~~($46 * $46 + $52 * $52);
$56 = $31 - $43;
$58 = $37 - $49;
$61 = ~~($56 * $56 + $58 * $58);
$62 = $45 - $29;
$64 = $51 - $35;
$67 = ~~($62 * $62 + $64 * $64);
$73 = ~~(+((($55 | 0) > ($41 | 0) ? $55 : $41) | 0) * $pattRatio * $pattRatio);
$77 = ~~(+((($67 | 0) > ($61 | 0) ? $67 : $61) | 0) * $pattRatio * $pattRatio);
if (!$imageProcMode) {
$xdiv2$0 = $patt_size;
while (1) if (($xdiv2$0 | 0) < ($sample_size | 0) & (Math_imul($xdiv2$0, $xdiv2$0) | 0) < ($73 | 0)) $xdiv2$0 = $xdiv2$0 << 1; else {
$xdiv2$0$lcssa = $xdiv2$0;
break;
}
$ydiv2$0 = $patt_size;
while (1) if (($ydiv2$0 | 0) < ($sample_size | 0) & (Math_imul($ydiv2$0, $ydiv2$0) | 0) < ($77 | 0)) $ydiv2$0 = $ydiv2$0 << 1; else {
$xdiv2$2 = $xdiv2$0$lcssa;
$ydiv2$2 = $ydiv2$0;
break;
}
} else {
$xdiv2$1 = $patt_size;
while (1) if (($xdiv2$1 | 0) < ($sample_size | 0) & (Math_imul($xdiv2$1 << 2, $xdiv2$1) | 0) < ($73 | 0)) $xdiv2$1 = $xdiv2$1 << 1; else {
$xdiv2$1$lcssa = $xdiv2$1;
break;
}
$ydiv2$1 = $patt_size;
while (1) if (($ydiv2$1 | 0) < ($sample_size | 0) & (Math_imul($ydiv2$1 << 2, $ydiv2$1) | 0) < ($77 | 0)) $ydiv2$1 = $ydiv2$1 << 1; else {
$xdiv2$2 = $xdiv2$1$lcssa;
$ydiv2$2 = $ydiv2$1;
break;
}
}
$sample_size$xdiv2$2 = ($xdiv2$2 | 0) > ($sample_size | 0) ? $sample_size : $xdiv2$2;
$ydiv2$3 = ($ydiv2$2 | 0) > ($sample_size | 0) ? $sample_size : $ydiv2$2;
$99 = ($sample_size$xdiv2$2 | 0) / ($patt_size | 0) | 0;
$100 = ($ydiv2$3 | 0) / ($patt_size | 0) | 0;
$103 = (1.0 - $pattRatio) * .5 * 10.0;
$104 = $pattRatio * 10.0;
$106 = Math_imul($patt_size, $patt_size) | 0;
L13 : do if (!$pattDetectMode) {
$107 = $106 * 3 | 0;
$108 = _calloc($107, 4) | 0;
if (!$108) {
_arLog(3, 5471, $vararg_buffer);
_exit(1);
}
do switch ($pixelFormat | 0) {
case 0:
{
$264 = $103 + 100.0;
$265 = +($ydiv2$3 | 0);
$266 = +($sample_size$xdiv2$2 | 0);
$267 = $para + 48 | 0;
$268 = $para + 56 | 0;
$269 = $para + 64 | 0;
$270 = $para + 8 | 0;
$271 = $para + 16 | 0;
$272 = $para + 24 | 0;
$273 = $para + 32 | 0;
$274 = $para + 40 | 0;
$275 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$277 = ($sample_size$xdiv2$2 | 0) > 0;
$j$0241 = 0;
do {
$284 = $264 + $104 * (+($j$0241 | 0) + .5) / $265;
if ($277) {
$i$1237 = 0;
do {
$289 = $264 + $104 * (+($i$1237 | 0) + .5) / $266;
$296 = +HEAPF64[$269 >> 3] + (+HEAPF64[$267 >> 3] * $289 + $284 * +HEAPF64[$268 >> 3]);
if ($296 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$306 = (+HEAPF64[$271 >> 3] + ($289 * +HEAPF64[$para >> 3] + $284 * +HEAPF64[$270 >> 3])) / $296;
HEAPF32[$xc2 >> 2] = $306;
$315 = (+HEAPF64[$274 >> 3] + ($289 * +HEAPF64[$272 >> 3] + $284 * +HEAPF64[$273 >> 3])) / $296;
HEAPF32[$yc2 >> 2] = $315;
_arParamIdeal2ObservLTf($paramLTf, $306, $315, $xc2, $yc2) | 0;
$316 = +HEAPF32[$xc2 >> 2];
if ($275) {
$xc$0 = ((~~($316 + 1.0) | 0) / 2 | 0) << 1;
$yc$0 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$0 = ~~($316 + .5);
$yc$0 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$0 | 0) > -1) if (($yc$0 | 0) < ($ysize | 0) & (($yc$0 | 0) > -1 & ($xc$0 | 0) < ($xsize | 0))) {
$337 = ((Math_imul($yc$0, $xsize) | 0) + $xc$0 | 0) * 3 | 0;
$346 = ((Math_imul(($j$0241 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$1237 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$347 = $108 + ($346 << 2) | 0;
HEAP32[$347 >> 2] = (HEAP32[$347 >> 2] | 0) + (HEAPU8[$image + ($337 + 2) >> 0] | 0);
$355 = $108 + ($346 + 1 << 2) | 0;
HEAP32[$355 >> 2] = (HEAP32[$355 >> 2] | 0) + (HEAPU8[$image + ($337 + 1) >> 0] | 0);
$362 = $108 + ($346 + 2 << 2) | 0;
HEAP32[$362 >> 2] = (HEAP32[$362 >> 2] | 0) + (HEAPU8[$image + $337 >> 0] | 0);
}
$i$1237 = $i$1237 + 1 | 0;
} while (($i$1237 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$0241 = $j$0241 + 1 | 0;
} while (($j$0241 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 1:
{
$250 = $103 + 100.0;
$251 = +($ydiv2$3 | 0);
$252 = +($sample_size$xdiv2$2 | 0);
$253 = $para + 48 | 0;
$254 = $para + 56 | 0;
$255 = $para + 64 | 0;
$256 = $para + 8 | 0;
$257 = $para + 16 | 0;
$258 = $para + 24 | 0;
$259 = $para + 32 | 0;
$260 = $para + 40 | 0;
$261 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$263 = ($sample_size$xdiv2$2 | 0) > 0;
$j$1247 = 0;
do {
$373 = $250 + $104 * (+($j$1247 | 0) + .5) / $251;
if ($263) {
$i$2243 = 0;
do {
$378 = $250 + $104 * (+($i$2243 | 0) + .5) / $252;
$385 = +HEAPF64[$255 >> 3] + (+HEAPF64[$253 >> 3] * $378 + $373 * +HEAPF64[$254 >> 3]);
if ($385 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$395 = (+HEAPF64[$257 >> 3] + ($378 * +HEAPF64[$para >> 3] + $373 * +HEAPF64[$256 >> 3])) / $385;
HEAPF32[$xc2 >> 2] = $395;
$404 = (+HEAPF64[$260 >> 3] + ($378 * +HEAPF64[$258 >> 3] + $373 * +HEAPF64[$259 >> 3])) / $385;
HEAPF32[$yc2 >> 2] = $404;
_arParamIdeal2ObservLTf($paramLTf, $395, $404, $xc2, $yc2) | 0;
$405 = +HEAPF32[$xc2 >> 2];
if ($261) {
$xc$1 = ((~~($405 + 1.0) | 0) / 2 | 0) << 1;
$yc$1 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$1 = ~~($405 + .5);
$yc$1 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$1 | 0) > -1) if (($yc$1 | 0) < ($ysize | 0) & (($yc$1 | 0) > -1 & ($xc$1 | 0) < ($xsize | 0))) {
$426 = ((Math_imul($yc$1, $xsize) | 0) + $xc$1 | 0) * 3 | 0;
$434 = ((Math_imul(($j$1247 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$2243 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$435 = $108 + ($434 << 2) | 0;
HEAP32[$435 >> 2] = (HEAP32[$435 >> 2] | 0) + (HEAPU8[$image + $426 >> 0] | 0);
$443 = $108 + ($434 + 1 << 2) | 0;
HEAP32[$443 >> 2] = (HEAP32[$443 >> 2] | 0) + (HEAPU8[$image + ($426 + 1) >> 0] | 0);
$451 = $108 + ($434 + 2 << 2) | 0;
HEAP32[$451 >> 2] = (HEAP32[$451 >> 2] | 0) + (HEAPU8[$image + ($426 + 2) >> 0] | 0);
}
$i$2243 = $i$2243 + 1 | 0;
} while (($i$2243 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$1247 = $j$1247 + 1 | 0;
} while (($j$1247 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 2:
{
$236 = $103 + 100.0;
$237 = +($ydiv2$3 | 0);
$238 = +($sample_size$xdiv2$2 | 0);
$239 = $para + 48 | 0;
$240 = $para + 56 | 0;
$241 = $para + 64 | 0;
$242 = $para + 8 | 0;
$243 = $para + 16 | 0;
$244 = $para + 24 | 0;
$245 = $para + 32 | 0;
$246 = $para + 40 | 0;
$247 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$249 = ($sample_size$xdiv2$2 | 0) > 0;
$j$2253 = 0;
do {
$462 = $236 + $104 * (+($j$2253 | 0) + .5) / $237;
if ($249) {
$i$3249 = 0;
do {
$467 = $236 + $104 * (+($i$3249 | 0) + .5) / $238;
$474 = +HEAPF64[$241 >> 3] + (+HEAPF64[$239 >> 3] * $467 + $462 * +HEAPF64[$240 >> 3]);
if ($474 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$484 = (+HEAPF64[$243 >> 3] + ($467 * +HEAPF64[$para >> 3] + $462 * +HEAPF64[$242 >> 3])) / $474;
HEAPF32[$xc2 >> 2] = $484;
$493 = (+HEAPF64[$246 >> 3] + ($467 * +HEAPF64[$244 >> 3] + $462 * +HEAPF64[$245 >> 3])) / $474;
HEAPF32[$yc2 >> 2] = $493;
_arParamIdeal2ObservLTf($paramLTf, $484, $493, $xc2, $yc2) | 0;
$494 = +HEAPF32[$xc2 >> 2];
if ($247) {
$xc$2 = ((~~($494 + 1.0) | 0) / 2 | 0) << 1;
$yc$2 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$2 = ~~($494 + .5);
$yc$2 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$2 | 0) > -1) if (($yc$2 | 0) < ($ysize | 0) & (($yc$2 | 0) > -1 & ($xc$2 | 0) < ($xsize | 0))) {
$515 = (Math_imul($yc$2, $xsize) | 0) + $xc$2 << 2;
$524 = ((Math_imul(($j$2253 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$3249 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$525 = $108 + ($524 << 2) | 0;
HEAP32[$525 >> 2] = (HEAP32[$525 >> 2] | 0) + (HEAPU8[$image + ($515 | 2) >> 0] | 0);
$533 = $108 + ($524 + 1 << 2) | 0;
HEAP32[$533 >> 2] = (HEAP32[$533 >> 2] | 0) + (HEAPU8[$image + ($515 | 1) >> 0] | 0);
$540 = $108 + ($524 + 2 << 2) | 0;
HEAP32[$540 >> 2] = (HEAP32[$540 >> 2] | 0) + (HEAPU8[$image + $515 >> 0] | 0);
}
$i$3249 = $i$3249 + 1 | 0;
} while (($i$3249 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$2253 = $j$2253 + 1 | 0;
} while (($j$2253 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 3:
{
$222 = $103 + 100.0;
$223 = +($ydiv2$3 | 0);
$224 = +($sample_size$xdiv2$2 | 0);
$225 = $para + 48 | 0;
$226 = $para + 56 | 0;
$227 = $para + 64 | 0;
$228 = $para + 8 | 0;
$229 = $para + 16 | 0;
$230 = $para + 24 | 0;
$231 = $para + 32 | 0;
$232 = $para + 40 | 0;
$233 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$235 = ($sample_size$xdiv2$2 | 0) > 0;
$j$3259 = 0;
do {
$551 = $222 + $104 * (+($j$3259 | 0) + .5) / $223;
if ($235) {
$i$4255 = 0;
do {
$556 = $222 + $104 * (+($i$4255 | 0) + .5) / $224;
$563 = +HEAPF64[$227 >> 3] + (+HEAPF64[$225 >> 3] * $556 + $551 * +HEAPF64[$226 >> 3]);
if ($563 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$573 = (+HEAPF64[$229 >> 3] + ($556 * +HEAPF64[$para >> 3] + $551 * +HEAPF64[$228 >> 3])) / $563;
HEAPF32[$xc2 >> 2] = $573;
$582 = (+HEAPF64[$232 >> 3] + ($556 * +HEAPF64[$230 >> 3] + $551 * +HEAPF64[$231 >> 3])) / $563;
HEAPF32[$yc2 >> 2] = $582;
_arParamIdeal2ObservLTf($paramLTf, $573, $582, $xc2, $yc2) | 0;
$583 = +HEAPF32[$xc2 >> 2];
if ($233) {
$xc$3 = ((~~($583 + 1.0) | 0) / 2 | 0) << 1;
$yc$3 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$3 = ~~($583 + .5);
$yc$3 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$3 | 0) > -1) if (($yc$3 | 0) < ($ysize | 0) & (($yc$3 | 0) > -1 & ($xc$3 | 0) < ($xsize | 0))) {
$604 = (Math_imul($yc$3, $xsize) | 0) + $xc$3 << 2;
$612 = ((Math_imul(($j$3259 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$4255 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$613 = $108 + ($612 << 2) | 0;
HEAP32[$613 >> 2] = (HEAP32[$613 >> 2] | 0) + (HEAPU8[$image + $604 >> 0] | 0);
$621 = $108 + ($612 + 1 << 2) | 0;
HEAP32[$621 >> 2] = (HEAP32[$621 >> 2] | 0) + (HEAPU8[$image + ($604 | 1) >> 0] | 0);
$629 = $108 + ($612 + 2 << 2) | 0;
HEAP32[$629 >> 2] = (HEAP32[$629 >> 2] | 0) + (HEAPU8[$image + ($604 | 2) >> 0] | 0);
}
$i$4255 = $i$4255 + 1 | 0;
} while (($i$4255 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$3259 = $j$3259 + 1 | 0;
} while (($j$3259 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 4:
{
$208 = $103 + 100.0;
$209 = +($ydiv2$3 | 0);
$210 = +($sample_size$xdiv2$2 | 0);
$211 = $para + 48 | 0;
$212 = $para + 56 | 0;
$213 = $para + 64 | 0;
$214 = $para + 8 | 0;
$215 = $para + 16 | 0;
$216 = $para + 24 | 0;
$217 = $para + 32 | 0;
$218 = $para + 40 | 0;
$219 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$221 = ($sample_size$xdiv2$2 | 0) > 0;
$j$4265 = 0;
do {
$640 = $208 + $104 * (+($j$4265 | 0) + .5) / $209;
if ($221) {
$i$5261 = 0;
do {
$645 = $208 + $104 * (+($i$5261 | 0) + .5) / $210;
$652 = +HEAPF64[$213 >> 3] + (+HEAPF64[$211 >> 3] * $645 + $640 * +HEAPF64[$212 >> 3]);
if ($652 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$662 = (+HEAPF64[$215 >> 3] + ($645 * +HEAPF64[$para >> 3] + $640 * +HEAPF64[$214 >> 3])) / $652;
HEAPF32[$xc2 >> 2] = $662;
$671 = (+HEAPF64[$218 >> 3] + ($645 * +HEAPF64[$216 >> 3] + $640 * +HEAPF64[$217 >> 3])) / $652;
HEAPF32[$yc2 >> 2] = $671;
_arParamIdeal2ObservLTf($paramLTf, $662, $671, $xc2, $yc2) | 0;
$672 = +HEAPF32[$xc2 >> 2];
if ($219) {
$xc$4 = ((~~($672 + 1.0) | 0) / 2 | 0) << 1;
$yc$4 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$4 = ~~($672 + .5);
$yc$4 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$4 | 0) > -1) if (($yc$4 | 0) < ($ysize | 0) & (($yc$4 | 0) > -1 & ($xc$4 | 0) < ($xsize | 0))) {
$693 = (Math_imul($yc$4, $xsize) | 0) + $xc$4 << 2;
$702 = ((Math_imul(($j$4265 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$5261 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$703 = $108 + ($702 << 2) | 0;
HEAP32[$703 >> 2] = (HEAP32[$703 >> 2] | 0) + (HEAPU8[$image + ($693 | 1) >> 0] | 0);
$711 = $108 + ($702 + 1 << 2) | 0;
HEAP32[$711 >> 2] = (HEAP32[$711 >> 2] | 0) + (HEAPU8[$image + ($693 | 2) >> 0] | 0);
$719 = $108 + ($702 + 2 << 2) | 0;
HEAP32[$719 >> 2] = (HEAP32[$719 >> 2] | 0) + (HEAPU8[$image + ($693 | 3) >> 0] | 0);
}
$i$5261 = $i$5261 + 1 | 0;
} while (($i$5261 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$4265 = $j$4265 + 1 | 0;
} while (($j$4265 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 5:
case 12:
case 13:
case 14:
{
$194 = $103 + 100.0;
$195 = +($ydiv2$3 | 0);
$196 = +($sample_size$xdiv2$2 | 0);
$197 = $para + 48 | 0;
$198 = $para + 56 | 0;
$199 = $para + 64 | 0;
$200 = $para + 8 | 0;
$201 = $para + 16 | 0;
$202 = $para + 24 | 0;
$203 = $para + 32 | 0;
$204 = $para + 40 | 0;
$205 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$207 = ($sample_size$xdiv2$2 | 0) > 0;
$j$5271 = 0;
do {
$730 = $194 + $104 * (+($j$5271 | 0) + .5) / $195;
if ($207) {
$i$6267 = 0;
do {
$735 = $194 + $104 * (+($i$6267 | 0) + .5) / $196;
$742 = +HEAPF64[$199 >> 3] + (+HEAPF64[$197 >> 3] * $735 + $730 * +HEAPF64[$198 >> 3]);
if ($742 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$752 = (+HEAPF64[$201 >> 3] + ($735 * +HEAPF64[$para >> 3] + $730 * +HEAPF64[$200 >> 3])) / $742;
HEAPF32[$xc2 >> 2] = $752;
$761 = (+HEAPF64[$204 >> 3] + ($735 * +HEAPF64[$202 >> 3] + $730 * +HEAPF64[$203 >> 3])) / $742;
HEAPF32[$yc2 >> 2] = $761;
_arParamIdeal2ObservLTf($paramLTf, $752, $761, $xc2, $yc2) | 0;
$762 = +HEAPF32[$xc2 >> 2];
if ($205) {
$xc$5 = ((~~($762 + 1.0) | 0) / 2 | 0) << 1;
$yc$5 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$5 = ~~($762 + .5);
$yc$5 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$5 | 0) > -1) if (($yc$5 | 0) < ($ysize | 0) & (($yc$5 | 0) > -1 & ($xc$5 | 0) < ($xsize | 0))) {
$783 = $image + ((Math_imul($yc$5, $xsize) | 0) + $xc$5) | 0;
$785 = HEAPU8[$783 >> 0] | 0;
$790 = ((Math_imul(($j$5271 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$6267 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$791 = $108 + ($790 << 2) | 0;
HEAP32[$791 >> 2] = (HEAP32[$791 >> 2] | 0) + $785;
$795 = $108 + ($790 + 1 << 2) | 0;
HEAP32[$795 >> 2] = (HEAP32[$795 >> 2] | 0) + $785;
$799 = $108 + ($790 + 2 << 2) | 0;
HEAP32[$799 >> 2] = (HEAP32[$799 >> 2] | 0) + $785;
}
$i$6267 = $i$6267 + 1 | 0;
} while (($i$6267 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$5271 = $j$5271 + 1 | 0;
} while (($j$5271 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 6:
{
$180 = $103 + 100.0;
$181 = +($ydiv2$3 | 0);
$182 = +($sample_size$xdiv2$2 | 0);
$183 = $para + 48 | 0;
$184 = $para + 56 | 0;
$185 = $para + 64 | 0;
$186 = $para + 8 | 0;
$187 = $para + 16 | 0;
$188 = $para + 24 | 0;
$189 = $para + 32 | 0;
$190 = $para + 40 | 0;
$191 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$193 = ($sample_size$xdiv2$2 | 0) > 0;
$j$6277 = 0;
do {
$810 = $180 + $104 * (+($j$6277 | 0) + .5) / $181;
if ($193) {
$i$7273 = 0;
do {
$815 = $180 + $104 * (+($i$7273 | 0) + .5) / $182;
$822 = +HEAPF64[$185 >> 3] + (+HEAPF64[$183 >> 3] * $815 + $810 * +HEAPF64[$184 >> 3]);
if ($822 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$832 = (+HEAPF64[$187 >> 3] + ($815 * +HEAPF64[$para >> 3] + $810 * +HEAPF64[$186 >> 3])) / $822;
HEAPF32[$xc2 >> 2] = $832;
$841 = (+HEAPF64[$190 >> 3] + ($815 * +HEAPF64[$188 >> 3] + $810 * +HEAPF64[$189 >> 3])) / $822;
HEAPF32[$yc2 >> 2] = $841;
_arParamIdeal2ObservLTf($paramLTf, $832, $841, $xc2, $yc2) | 0;
$842 = +HEAPF32[$xc2 >> 2];
if ($191) {
$xc$6 = ((~~($842 + 1.0) | 0) / 2 | 0) << 1;
$yc$6 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$6 = ~~($842 + .5);
$yc$6 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$6 | 0) > -1) if (($yc$6 | 0) < ($ysize | 0) & (($yc$6 | 0) > -1 & ($xc$6 | 0) < ($xsize | 0))) {
$863 = (Math_imul($yc$6, $xsize) | 0) + $xc$6 << 2;
$872 = ((Math_imul(($j$6277 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$7273 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$873 = $108 + ($872 << 2) | 0;
HEAP32[$873 >> 2] = (HEAP32[$873 >> 2] | 0) + (HEAPU8[$image + ($863 | 3) >> 0] | 0);
$881 = $108 + ($872 + 1 << 2) | 0;
HEAP32[$881 >> 2] = (HEAP32[$881 >> 2] | 0) + (HEAPU8[$image + ($863 | 2) >> 0] | 0);
$889 = $108 + ($872 + 2 << 2) | 0;
HEAP32[$889 >> 2] = (HEAP32[$889 >> 2] | 0) + (HEAPU8[$image + ($863 | 1) >> 0] | 0);
}
$i$7273 = $i$7273 + 1 | 0;
} while (($i$7273 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$6277 = $j$6277 + 1 | 0;
} while (($j$6277 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 7:
{
$166 = $103 + 100.0;
$167 = +($ydiv2$3 | 0);
$168 = +($sample_size$xdiv2$2 | 0);
$169 = $para + 48 | 0;
$170 = $para + 56 | 0;
$171 = $para + 64 | 0;
$172 = $para + 8 | 0;
$173 = $para + 16 | 0;
$174 = $para + 24 | 0;
$175 = $para + 32 | 0;
$176 = $para + 40 | 0;
$177 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$179 = ($sample_size$xdiv2$2 | 0) > 0;
$j$7283 = 0;
do {
$900 = $166 + $104 * (+($j$7283 | 0) + .5) / $167;
if ($179) {
$i$8279 = 0;
do {
$905 = $166 + $104 * (+($i$8279 | 0) + .5) / $168;
$912 = +HEAPF64[$171 >> 3] + (+HEAPF64[$169 >> 3] * $905 + $900 * +HEAPF64[$170 >> 3]);
if ($912 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$922 = (+HEAPF64[$173 >> 3] + ($905 * +HEAPF64[$para >> 3] + $900 * +HEAPF64[$172 >> 3])) / $912;
HEAPF32[$xc2 >> 2] = $922;
$931 = (+HEAPF64[$176 >> 3] + ($905 * +HEAPF64[$174 >> 3] + $900 * +HEAPF64[$175 >> 3])) / $912;
HEAPF32[$yc2 >> 2] = $931;
_arParamIdeal2ObservLTf($paramLTf, $922, $931, $xc2, $yc2) | 0;
$932 = +HEAPF32[$xc2 >> 2];
if ($177) {
$xc$7 = ((~~($932 + 1.0) | 0) / 2 | 0) << 1;
$yc$7 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$7 = ~~($932 + .5);
$yc$7 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$7 | 0) > -1) if (($yc$7 | 0) < ($ysize | 0) & (($yc$7 | 0) > -1 & ($xc$7 | 0) < ($xsize | 0))) {
$951 = Math_imul($yc$7, $xsize) | 0;
$954 = ($xc$7 & 65534) + $951 << 1;
$959 = +((HEAPU8[$image + $954 >> 0] | 0) + -128 | 0);
$973 = +((HEAPU8[$image + ($954 + 2) >> 0] | 0) + -128 | 0);
$974 = +((HEAPU8[$image + ($951 + $xc$7 << 1 | 1) >> 0] | 0) + -16 | 0) * 298.0820007324219;
$978 = ~~($959 * 516.4110107421875 + $974) >> 8;
$984 = ~~($974 - $959 * 100.29100036621094 - $973 * 208.1199951171875) >> 8;
$988 = ~~($974 + $973 * 408.5830078125) >> 8;
$990 = ($978 | 0) > 0 ? $978 : 0;
$996 = ((Math_imul(($j$7283 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$8279 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$997 = $108 + ($996 << 2) | 0;
HEAP32[$997 >> 2] = (($990 | 0) < 255 ? $990 : 255) + (HEAP32[$997 >> 2] | 0);
$1001 = ($984 | 0) > 0 ? $984 : 0;
$1005 = $108 + ($996 + 1 << 2) | 0;
HEAP32[$1005 >> 2] = (($1001 | 0) < 255 ? $1001 : 255) + (HEAP32[$1005 >> 2] | 0);
$1009 = ($988 | 0) > 0 ? $988 : 0;
$1012 = $108 + ($996 + 2 << 2) | 0;
HEAP32[$1012 >> 2] = (($1009 | 0) < 255 ? $1009 : 255) + (HEAP32[$1012 >> 2] | 0);
}
$i$8279 = $i$8279 + 1 | 0;
} while (($i$8279 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$7283 = $j$7283 + 1 | 0;
} while (($j$7283 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 8:
{
$152 = $103 + 100.0;
$153 = +($ydiv2$3 | 0);
$154 = +($sample_size$xdiv2$2 | 0);
$155 = $para + 48 | 0;
$156 = $para + 56 | 0;
$157 = $para + 64 | 0;
$158 = $para + 8 | 0;
$159 = $para + 16 | 0;
$160 = $para + 24 | 0;
$161 = $para + 32 | 0;
$162 = $para + 40 | 0;
$163 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$165 = ($sample_size$xdiv2$2 | 0) > 0;
$j$8289 = 0;
do {
$1023 = $152 + $104 * (+($j$8289 | 0) + .5) / $153;
if ($165) {
$i$9285 = 0;
do {
$1028 = $152 + $104 * (+($i$9285 | 0) + .5) / $154;
$1035 = +HEAPF64[$157 >> 3] + (+HEAPF64[$155 >> 3] * $1028 + $1023 * +HEAPF64[$156 >> 3]);
if ($1035 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$1045 = (+HEAPF64[$159 >> 3] + ($1028 * +HEAPF64[$para >> 3] + $1023 * +HEAPF64[$158 >> 3])) / $1035;
HEAPF32[$xc2 >> 2] = $1045;
$1054 = (+HEAPF64[$162 >> 3] + ($1028 * +HEAPF64[$160 >> 3] + $1023 * +HEAPF64[$161 >> 3])) / $1035;
HEAPF32[$yc2 >> 2] = $1054;
_arParamIdeal2ObservLTf($paramLTf, $1045, $1054, $xc2, $yc2) | 0;
$1055 = +HEAPF32[$xc2 >> 2];
if ($163) {
$xc$8 = ((~~($1055 + 1.0) | 0) / 2 | 0) << 1;
$yc$8 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$8 = ~~($1055 + .5);
$yc$8 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$8 | 0) > -1) if (($yc$8 | 0) < ($ysize | 0) & (($yc$8 | 0) > -1 & ($xc$8 | 0) < ($xsize | 0))) {
$1074 = Math_imul($yc$8, $xsize) | 0;
$1084 = ($xc$8 & 65534) + $1074 << 1;
$1090 = +((HEAPU8[$image + ($1084 | 1) >> 0] | 0) + -128 | 0);
$1096 = +((HEAPU8[$image + ($1084 + 3) >> 0] | 0) + -128 | 0);
$1097 = +((HEAPU8[$image + ($1074 + $xc$8 << 1) >> 0] | 0) + -16 | 0) * 298.0820007324219;
$1101 = ~~($1097 + $1090 * 516.4110107421875) >> 8;
$1107 = ~~($1097 - $1090 * 100.29100036621094 - $1096 * 208.1199951171875) >> 8;
$1111 = ~~($1097 + $1096 * 408.5830078125) >> 8;
$1113 = ($1101 | 0) > 0 ? $1101 : 0;
$1119 = ((Math_imul(($j$8289 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$9285 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$1120 = $108 + ($1119 << 2) | 0;
HEAP32[$1120 >> 2] = (($1113 | 0) < 255 ? $1113 : 255) + (HEAP32[$1120 >> 2] | 0);
$1124 = ($1107 | 0) > 0 ? $1107 : 0;
$1128 = $108 + ($1119 + 1 << 2) | 0;
HEAP32[$1128 >> 2] = (($1124 | 0) < 255 ? $1124 : 255) + (HEAP32[$1128 >> 2] | 0);
$1132 = ($1111 | 0) > 0 ? $1111 : 0;
$1135 = $108 + ($1119 + 2 << 2) | 0;
HEAP32[$1135 >> 2] = (($1132 | 0) < 255 ? $1132 : 255) + (HEAP32[$1135 >> 2] | 0);
}
$i$9285 = $i$9285 + 1 | 0;
} while (($i$9285 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$8289 = $j$8289 + 1 | 0;
} while (($j$8289 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 9:
{
$138 = $103 + 100.0;
$139 = +($ydiv2$3 | 0);
$140 = +($sample_size$xdiv2$2 | 0);
$141 = $para + 48 | 0;
$142 = $para + 56 | 0;
$143 = $para + 64 | 0;
$144 = $para + 8 | 0;
$145 = $para + 16 | 0;
$146 = $para + 24 | 0;
$147 = $para + 32 | 0;
$148 = $para + 40 | 0;
$149 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$151 = ($sample_size$xdiv2$2 | 0) > 0;
$j$9295 = 0;
do {
$1146 = $138 + $104 * (+($j$9295 | 0) + .5) / $139;
if ($151) {
$i$10291 = 0;
do {
$1151 = $138 + $104 * (+($i$10291 | 0) + .5) / $140;
$1158 = +HEAPF64[$143 >> 3] + (+HEAPF64[$141 >> 3] * $1151 + $1146 * +HEAPF64[$142 >> 3]);
if ($1158 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$1168 = (+HEAPF64[$145 >> 3] + ($1151 * +HEAPF64[$para >> 3] + $1146 * +HEAPF64[$144 >> 3])) / $1158;
HEAPF32[$xc2 >> 2] = $1168;
$1177 = (+HEAPF64[$148 >> 3] + ($1151 * +HEAPF64[$146 >> 3] + $1146 * +HEAPF64[$147 >> 3])) / $1158;
HEAPF32[$yc2 >> 2] = $1177;
_arParamIdeal2ObservLTf($paramLTf, $1168, $1177, $xc2, $yc2) | 0;
$1178 = +HEAPF32[$xc2 >> 2];
if ($149) {
$xc$9 = ((~~($1178 + 1.0) | 0) / 2 | 0) << 1;
$yc$9 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$9 = ~~($1178 + .5);
$yc$9 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$9 | 0) > -1) if (($yc$9 | 0) < ($ysize | 0) & (($yc$9 | 0) > -1 & ($xc$9 | 0) < ($xsize | 0))) {
$1199 = (Math_imul($yc$9, $xsize) | 0) + $xc$9 << 1;
$1203 = HEAPU8[$image + ($1199 | 1) >> 0] | 0;
$1211 = ((Math_imul(($j$9295 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$10291 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$1212 = $108 + ($1211 << 2) | 0;
HEAP32[$1212 >> 2] = ($1203 << 3 & 248 | 4) + (HEAP32[$1212 >> 2] | 0);
$1217 = HEAPU8[$image + $1199 >> 0] | 0;
$1225 = $108 + ($1211 + 1 << 2) | 0;
HEAP32[$1225 >> 2] = ($1217 << 5 & 224 | $1203 >>> 3 & 28 | 2) + (HEAP32[$1225 >> 2] | 0);
$1231 = $108 + ($1211 + 2 << 2) | 0;
HEAP32[$1231 >> 2] = ($1217 & 248 | 4) + (HEAP32[$1231 >> 2] | 0);
}
$i$10291 = $i$10291 + 1 | 0;
} while (($i$10291 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$9295 = $j$9295 + 1 | 0;
} while (($j$9295 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 10:
{
$124 = $103 + 100.0;
$125 = +($ydiv2$3 | 0);
$126 = +($sample_size$xdiv2$2 | 0);
$127 = $para + 48 | 0;
$128 = $para + 56 | 0;
$129 = $para + 64 | 0;
$130 = $para + 8 | 0;
$131 = $para + 16 | 0;
$132 = $para + 24 | 0;
$133 = $para + 32 | 0;
$134 = $para + 40 | 0;
$135 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$137 = ($sample_size$xdiv2$2 | 0) > 0;
$j$10301 = 0;
do {
$1242 = $124 + $104 * (+($j$10301 | 0) + .5) / $125;
if ($137) {
$i$11297 = 0;
do {
$1247 = $124 + $104 * (+($i$11297 | 0) + .5) / $126;
$1254 = +HEAPF64[$129 >> 3] + (+HEAPF64[$127 >> 3] * $1247 + $1242 * +HEAPF64[$128 >> 3]);
if ($1254 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$1264 = (+HEAPF64[$131 >> 3] + ($1247 * +HEAPF64[$para >> 3] + $1242 * +HEAPF64[$130 >> 3])) / $1254;
HEAPF32[$xc2 >> 2] = $1264;
$1273 = (+HEAPF64[$134 >> 3] + ($1247 * +HEAPF64[$132 >> 3] + $1242 * +HEAPF64[$133 >> 3])) / $1254;
HEAPF32[$yc2 >> 2] = $1273;
_arParamIdeal2ObservLTf($paramLTf, $1264, $1273, $xc2, $yc2) | 0;
$1274 = +HEAPF32[$xc2 >> 2];
if ($135) {
$xc$10 = ((~~($1274 + 1.0) | 0) / 2 | 0) << 1;
$yc$10 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$10 = ~~($1274 + .5);
$yc$10 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$10 | 0) > -1) if (($yc$10 | 0) < ($ysize | 0) & (($yc$10 | 0) > -1 & ($xc$10 | 0) < ($xsize | 0))) {
$1295 = (Math_imul($yc$10, $xsize) | 0) + $xc$10 << 1;
$1299 = HEAPU8[$image + ($1295 | 1) >> 0] | 0;
$1307 = ((Math_imul(($j$10301 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$11297 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$1308 = $108 + ($1307 << 2) | 0;
HEAP32[$1308 >> 2] = ($1299 << 2 & 248 | 4) + (HEAP32[$1308 >> 2] | 0);
$1313 = HEAPU8[$image + $1295 >> 0] | 0;
$1321 = $108 + ($1307 + 1 << 2) | 0;
HEAP32[$1321 >> 2] = ($1313 << 5 & 224 | $1299 >>> 3 & 24 | 4) + (HEAP32[$1321 >> 2] | 0);
$1327 = $108 + ($1307 + 2 << 2) | 0;
HEAP32[$1327 >> 2] = ($1313 & 248 | 4) + (HEAP32[$1327 >> 2] | 0);
}
$i$11297 = $i$11297 + 1 | 0;
} while (($i$11297 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$10301 = $j$10301 + 1 | 0;
} while (($j$10301 | 0) < ($ydiv2$3 | 0));
}
break;
}
case 11:
{
$110 = $103 + 100.0;
$111 = +($ydiv2$3 | 0);
$112 = +($sample_size$xdiv2$2 | 0);
$113 = $para + 48 | 0;
$114 = $para + 56 | 0;
$115 = $para + 64 | 0;
$116 = $para + 8 | 0;
$117 = $para + 16 | 0;
$118 = $para + 24 | 0;
$119 = $para + 32 | 0;
$120 = $para + 40 | 0;
$121 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$123 = ($sample_size$xdiv2$2 | 0) > 0;
$j$11307 = 0;
do {
$1338 = $110 + $104 * (+($j$11307 | 0) + .5) / $111;
if ($123) {
$i$12303 = 0;
do {
$1343 = $110 + $104 * (+($i$12303 | 0) + .5) / $112;
$1350 = +HEAPF64[$115 >> 3] + (+HEAPF64[$113 >> 3] * $1343 + $1338 * +HEAPF64[$114 >> 3]);
if ($1350 == 0.0) {
$ext_patt2$0 = $108;
label = 278;
break L13;
}
$1360 = (+HEAPF64[$117 >> 3] + ($1343 * +HEAPF64[$para >> 3] + $1338 * +HEAPF64[$116 >> 3])) / $1350;
HEAPF32[$xc2 >> 2] = $1360;
$1369 = (+HEAPF64[$120 >> 3] + ($1343 * +HEAPF64[$118 >> 3] + $1338 * +HEAPF64[$119 >> 3])) / $1350;
HEAPF32[$yc2 >> 2] = $1369;
_arParamIdeal2ObservLTf($paramLTf, $1360, $1369, $xc2, $yc2) | 0;
$1370 = +HEAPF32[$xc2 >> 2];
if ($121) {
$xc$11 = ((~~($1370 + 1.0) | 0) / 2 | 0) << 1;
$yc$11 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$11 = ~~($1370 + .5);
$yc$11 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$11 | 0) > -1) if (($yc$11 | 0) < ($ysize | 0) & (($yc$11 | 0) > -1 & ($xc$11 | 0) < ($xsize | 0))) {
$1391 = (Math_imul($yc$11, $xsize) | 0) + $xc$11 << 1;
$1402 = ((Math_imul(($j$11307 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$12303 | 0) / ($99 | 0) | 0) | 0) * 3 | 0;
$1403 = $108 + ($1402 << 2) | 0;
HEAP32[$1403 >> 2] = (HEAP32[$1403 >> 2] | 0) + ((HEAPU8[$image + ($1391 | 1) >> 0] | 0) & 240 | 8);
$1408 = HEAPU8[$image + $1391 >> 0] | 0;
$1413 = $108 + ($1402 + 1 << 2) | 0;
HEAP32[$1413 >> 2] = ($1408 << 4 & 240 | 8) + (HEAP32[$1413 >> 2] | 0);
$1419 = $108 + ($1402 + 2 << 2) | 0;
HEAP32[$1419 >> 2] = ($1408 & 240 | 8) + (HEAP32[$1419 >> 2] | 0);
}
$i$12303 = $i$12303 + 1 | 0;
} while (($i$12303 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$11307 = $j$11307 + 1 | 0;
} while (($j$11307 | 0) < ($ydiv2$3 | 0));
}
break;
}
default:
{
_arLog(3, 4615, $vararg_buffer1);
$ext_patt2$0 = $108;
label = 278;
break L13;
}
} while (0);
$278 = Math_imul($100, $99) | 0;
if ($106) {
$i$13236 = 0;
do {
HEAP8[$ext_patt + $i$13236 >> 0] = ((HEAP32[$108 + ($i$13236 << 2) >> 2] | 0) >>> 0) / ($278 >>> 0) | 0;
$i$13236 = $i$13236 + 1 | 0;
} while (($i$13236 | 0) < ($107 | 0));
}
_free($108);
$$0 = 0;
} else {
$1433 = _calloc($106, 4) | 0;
if (!$1433) {
_arLog(3, 5471, $vararg_buffer3);
_exit(1);
}
L233 : do if ($pixelFormat >>> 0 < 2) {
$1436 = $103 + 100.0;
$1437 = +($ydiv2$3 | 0);
$1438 = +($sample_size$xdiv2$2 | 0);
$1439 = $para + 48 | 0;
$1440 = $para + 56 | 0;
$1441 = $para + 64 | 0;
$1442 = $para + 8 | 0;
$1443 = $para + 16 | 0;
$1444 = $para + 24 | 0;
$1445 = $para + 32 | 0;
$1446 = $para + 40 | 0;
$1447 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) > 0) {
$1449 = ($sample_size$xdiv2$2 | 0) > 0;
$j$12316 = 0;
do {
$1456 = $1436 + $104 * (+($j$12316 | 0) + .5) / $1437;
if ($1449) {
$i$14312 = 0;
do {
$1461 = $1436 + $104 * (+($i$14312 | 0) + .5) / $1438;
$1468 = +HEAPF64[$1441 >> 3] + (+HEAPF64[$1439 >> 3] * $1461 + $1456 * +HEAPF64[$1440 >> 3]);
if ($1468 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$1478 = (+HEAPF64[$1443 >> 3] + ($1461 * +HEAPF64[$para >> 3] + $1456 * +HEAPF64[$1442 >> 3])) / $1468;
HEAPF32[$xc2 >> 2] = $1478;
$1487 = (+HEAPF64[$1446 >> 3] + ($1461 * +HEAPF64[$1444 >> 3] + $1456 * +HEAPF64[$1445 >> 3])) / $1468;
HEAPF32[$yc2 >> 2] = $1487;
_arParamIdeal2ObservLTf($paramLTf, $1478, $1487, $xc2, $yc2) | 0;
$1488 = +HEAPF32[$xc2 >> 2];
if ($1447) {
$xc$12 = ((~~($1488 + 1.0) | 0) / 2 | 0) << 1;
$yc$12 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$12 = ~~($1488 + .5);
$yc$12 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$12 | 0) > -1) if (($yc$12 | 0) < ($ysize | 0) & (($yc$12 | 0) > -1 & ($xc$12 | 0) < ($xsize | 0))) {
$1509 = ((Math_imul($yc$12, $xsize) | 0) + $xc$12 | 0) * 3 | 0;
$1528 = $1433 + ((Math_imul(($j$12316 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$14312 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$1528 >> 2] = (HEAP32[$1528 >> 2] | 0) + ((((HEAPU8[$image + ($1509 + 1) >> 0] | 0) + (HEAPU8[$image + $1509 >> 0] | 0) + (HEAPU8[$image + ($1509 + 2) >> 0] | 0) | 0) >>> 0) / 3 | 0);
}
$i$14312 = $i$14312 + 1 | 0;
} while (($i$14312 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$12316 = $j$12316 + 1 | 0;
} while (($j$12316 | 0) < ($ydiv2$3 | 0));
}
} else {
if (($pixelFormat & -2 | 0) == 2) {
$1537 = $103 + 100.0;
$1538 = +($ydiv2$3 | 0);
$1539 = +($sample_size$xdiv2$2 | 0);
$1540 = $para + 48 | 0;
$1541 = $para + 56 | 0;
$1542 = $para + 64 | 0;
$1543 = $para + 8 | 0;
$1544 = $para + 16 | 0;
$1545 = $para + 24 | 0;
$1546 = $para + 32 | 0;
$1547 = $para + 40 | 0;
$1548 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break;
$1550 = ($sample_size$xdiv2$2 | 0) > 0;
$j$13322 = 0;
while (1) {
$1555 = $1537 + $104 * (+($j$13322 | 0) + .5) / $1538;
if ($1550) {
$i$15318 = 0;
do {
$1560 = $1537 + $104 * (+($i$15318 | 0) + .5) / $1539;
$1567 = +HEAPF64[$1542 >> 3] + (+HEAPF64[$1540 >> 3] * $1560 + $1555 * +HEAPF64[$1541 >> 3]);
if ($1567 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$1577 = (+HEAPF64[$1544 >> 3] + ($1560 * +HEAPF64[$para >> 3] + $1555 * +HEAPF64[$1543 >> 3])) / $1567;
HEAPF32[$xc2 >> 2] = $1577;
$1586 = (+HEAPF64[$1547 >> 3] + ($1560 * +HEAPF64[$1545 >> 3] + $1555 * +HEAPF64[$1546 >> 3])) / $1567;
HEAPF32[$yc2 >> 2] = $1586;
_arParamIdeal2ObservLTf($paramLTf, $1577, $1586, $xc2, $yc2) | 0;
$1587 = +HEAPF32[$xc2 >> 2];
if ($1548) {
$xc$13 = ((~~($1587 + 1.0) | 0) / 2 | 0) << 1;
$yc$13 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$13 = ~~($1587 + .5);
$yc$13 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$13 | 0) > -1) if (($yc$13 | 0) < ($ysize | 0) & (($yc$13 | 0) > -1 & ($xc$13 | 0) < ($xsize | 0))) {
$1608 = (Math_imul($yc$13, $xsize) | 0) + $xc$13 << 2;
$1627 = $1433 + ((Math_imul(($j$13322 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$15318 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$1627 >> 2] = (HEAP32[$1627 >> 2] | 0) + ((((HEAPU8[$image + ($1608 | 1) >> 0] | 0) + (HEAPU8[$image + $1608 >> 0] | 0) + (HEAPU8[$image + ($1608 | 2) >> 0] | 0) | 0) >>> 0) / 3 | 0);
}
$i$15318 = $i$15318 + 1 | 0;
} while (($i$15318 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$13322 = $j$13322 + 1 | 0;
if (($j$13322 | 0) >= ($ydiv2$3 | 0)) break L233;
}
}
if (($pixelFormat & -3 | 0) == 4) {
$1636 = $103 + 100.0;
$1637 = +($ydiv2$3 | 0);
$1638 = +($sample_size$xdiv2$2 | 0);
$1639 = $para + 48 | 0;
$1640 = $para + 56 | 0;
$1641 = $para + 64 | 0;
$1642 = $para + 8 | 0;
$1643 = $para + 16 | 0;
$1644 = $para + 24 | 0;
$1645 = $para + 32 | 0;
$1646 = $para + 40 | 0;
$1647 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break;
$1649 = ($sample_size$xdiv2$2 | 0) > 0;
$j$14328 = 0;
while (1) {
$1654 = $1636 + $104 * (+($j$14328 | 0) + .5) / $1637;
if ($1649) {
$i$16324 = 0;
do {
$1659 = $1636 + $104 * (+($i$16324 | 0) + .5) / $1638;
$1666 = +HEAPF64[$1641 >> 3] + (+HEAPF64[$1639 >> 3] * $1659 + $1654 * +HEAPF64[$1640 >> 3]);
if ($1666 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$1676 = (+HEAPF64[$1643 >> 3] + ($1659 * +HEAPF64[$para >> 3] + $1654 * +HEAPF64[$1642 >> 3])) / $1666;
HEAPF32[$xc2 >> 2] = $1676;
$1685 = (+HEAPF64[$1646 >> 3] + ($1659 * +HEAPF64[$1644 >> 3] + $1654 * +HEAPF64[$1645 >> 3])) / $1666;
HEAPF32[$yc2 >> 2] = $1685;
_arParamIdeal2ObservLTf($paramLTf, $1676, $1685, $xc2, $yc2) | 0;
$1686 = +HEAPF32[$xc2 >> 2];
if ($1647) {
$xc$14 = ((~~($1686 + 1.0) | 0) / 2 | 0) << 1;
$yc$14 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$14 = ~~($1686 + .5);
$yc$14 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$14 | 0) > -1) if (($yc$14 | 0) < ($ysize | 0) & (($yc$14 | 0) > -1 & ($xc$14 | 0) < ($xsize | 0))) {
$1707 = (Math_imul($yc$14, $xsize) | 0) + $xc$14 << 2;
$1727 = $1433 + ((Math_imul(($j$14328 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$16324 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$1727 >> 2] = (HEAP32[$1727 >> 2] | 0) + ((((HEAPU8[$image + ($1707 | 2) >> 0] | 0) + (HEAPU8[$image + ($1707 | 1) >> 0] | 0) + (HEAPU8[$image + ($1707 | 3) >> 0] | 0) | 0) >>> 0) / 3 | 0);
}
$i$16324 = $i$16324 + 1 | 0;
} while (($i$16324 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$14328 = $j$14328 + 1 | 0;
if (($j$14328 | 0) >= ($ydiv2$3 | 0)) break L233;
}
}
switch ($pixelFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$1804 = $103 + 100.0;
$1805 = +($ydiv2$3 | 0);
$1806 = +($sample_size$xdiv2$2 | 0);
$1807 = $para + 48 | 0;
$1808 = $para + 56 | 0;
$1809 = $para + 64 | 0;
$1810 = $para + 8 | 0;
$1811 = $para + 16 | 0;
$1812 = $para + 24 | 0;
$1813 = $para + 32 | 0;
$1814 = $para + 40 | 0;
$1815 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break L233;
$1817 = ($sample_size$xdiv2$2 | 0) > 0;
$j$15334 = 0;
do {
$1822 = $1804 + $104 * (+($j$15334 | 0) + .5) / $1805;
if ($1817) {
$i$17330 = 0;
do {
$1827 = $1804 + $104 * (+($i$17330 | 0) + .5) / $1806;
$1834 = +HEAPF64[$1809 >> 3] + (+HEAPF64[$1807 >> 3] * $1827 + $1822 * +HEAPF64[$1808 >> 3]);
if ($1834 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$1844 = (+HEAPF64[$1811 >> 3] + ($1827 * +HEAPF64[$para >> 3] + $1822 * +HEAPF64[$1810 >> 3])) / $1834;
HEAPF32[$xc2 >> 2] = $1844;
$1853 = (+HEAPF64[$1814 >> 3] + ($1827 * +HEAPF64[$1812 >> 3] + $1822 * +HEAPF64[$1813 >> 3])) / $1834;
HEAPF32[$yc2 >> 2] = $1853;
_arParamIdeal2ObservLTf($paramLTf, $1844, $1853, $xc2, $yc2) | 0;
$1854 = +HEAPF32[$xc2 >> 2];
if ($1815) {
$xc$15 = ((~~($1854 + 1.0) | 0) / 2 | 0) << 1;
$yc$15 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$15 = ~~($1854 + .5);
$yc$15 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$15 | 0) > -1) if (($yc$15 | 0) < ($ysize | 0) & (($yc$15 | 0) > -1 & ($xc$15 | 0) < ($xsize | 0))) {
$1875 = $image + ((Math_imul($yc$15, $xsize) | 0) + $xc$15) | 0;
$1882 = $1433 + ((Math_imul(($j$15334 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$17330 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$1882 >> 2] = (HEAP32[$1882 >> 2] | 0) + (HEAPU8[$1875 >> 0] | 0);
}
$i$17330 = $i$17330 + 1 | 0;
} while (($i$17330 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$15334 = $j$15334 + 1 | 0;
} while (($j$15334 | 0) < ($ydiv2$3 | 0));
break;
}
case 7:
{
$1790 = $103 + 100.0;
$1791 = +($ydiv2$3 | 0);
$1792 = +($sample_size$xdiv2$2 | 0);
$1793 = $para + 48 | 0;
$1794 = $para + 56 | 0;
$1795 = $para + 64 | 0;
$1796 = $para + 8 | 0;
$1797 = $para + 16 | 0;
$1798 = $para + 24 | 0;
$1799 = $para + 32 | 0;
$1800 = $para + 40 | 0;
$1801 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break L233;
$1803 = ($sample_size$xdiv2$2 | 0) > 0;
$j$16340 = 0;
do {
$1893 = $1790 + $104 * (+($j$16340 | 0) + .5) / $1791;
if ($1803) {
$i$18336 = 0;
do {
$1898 = $1790 + $104 * (+($i$18336 | 0) + .5) / $1792;
$1905 = +HEAPF64[$1795 >> 3] + (+HEAPF64[$1793 >> 3] * $1898 + $1893 * +HEAPF64[$1794 >> 3]);
if ($1905 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$1915 = (+HEAPF64[$1797 >> 3] + ($1898 * +HEAPF64[$para >> 3] + $1893 * +HEAPF64[$1796 >> 3])) / $1905;
HEAPF32[$xc2 >> 2] = $1915;
$1924 = (+HEAPF64[$1800 >> 3] + ($1898 * +HEAPF64[$1798 >> 3] + $1893 * +HEAPF64[$1799 >> 3])) / $1905;
HEAPF32[$yc2 >> 2] = $1924;
_arParamIdeal2ObservLTf($paramLTf, $1915, $1924, $xc2, $yc2) | 0;
$1925 = +HEAPF32[$xc2 >> 2];
if ($1801) {
$xc$16 = ((~~($1925 + 1.0) | 0) / 2 | 0) << 1;
$yc$16 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$16 = ~~($1925 + .5);
$yc$16 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$16 | 0) > -1) if (($yc$16 | 0) < ($ysize | 0) & (($yc$16 | 0) > -1 & ($xc$16 | 0) < ($xsize | 0))) {
$1948 = $image + ((Math_imul($yc$16, $xsize) | 0) + $xc$16 << 1 | 1) | 0;
$1955 = $1433 + ((Math_imul(($j$16340 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$18336 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$1955 >> 2] = (HEAP32[$1955 >> 2] | 0) + (HEAPU8[$1948 >> 0] | 0);
}
$i$18336 = $i$18336 + 1 | 0;
} while (($i$18336 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$16340 = $j$16340 + 1 | 0;
} while (($j$16340 | 0) < ($ydiv2$3 | 0));
break;
}
case 8:
{
$1776 = $103 + 100.0;
$1777 = +($ydiv2$3 | 0);
$1778 = +($sample_size$xdiv2$2 | 0);
$1779 = $para + 48 | 0;
$1780 = $para + 56 | 0;
$1781 = $para + 64 | 0;
$1782 = $para + 8 | 0;
$1783 = $para + 16 | 0;
$1784 = $para + 24 | 0;
$1785 = $para + 32 | 0;
$1786 = $para + 40 | 0;
$1787 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break L233;
$1789 = ($sample_size$xdiv2$2 | 0) > 0;
$j$17346 = 0;
do {
$1966 = $1776 + $104 * (+($j$17346 | 0) + .5) / $1777;
if ($1789) {
$i$19342 = 0;
do {
$1971 = $1776 + $104 * (+($i$19342 | 0) + .5) / $1778;
$1978 = +HEAPF64[$1781 >> 3] + (+HEAPF64[$1779 >> 3] * $1971 + $1966 * +HEAPF64[$1780 >> 3]);
if ($1978 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$1988 = (+HEAPF64[$1783 >> 3] + ($1971 * +HEAPF64[$para >> 3] + $1966 * +HEAPF64[$1782 >> 3])) / $1978;
HEAPF32[$xc2 >> 2] = $1988;
$1997 = (+HEAPF64[$1786 >> 3] + ($1971 * +HEAPF64[$1784 >> 3] + $1966 * +HEAPF64[$1785 >> 3])) / $1978;
HEAPF32[$yc2 >> 2] = $1997;
_arParamIdeal2ObservLTf($paramLTf, $1988, $1997, $xc2, $yc2) | 0;
$1998 = +HEAPF32[$xc2 >> 2];
if ($1787) {
$xc$17 = ((~~($1998 + 1.0) | 0) / 2 | 0) << 1;
$yc$17 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$17 = ~~($1998 + .5);
$yc$17 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$17 | 0) > -1) if (($yc$17 | 0) < ($ysize | 0) & (($yc$17 | 0) > -1 & ($xc$17 | 0) < ($xsize | 0))) {
$2020 = $image + ((Math_imul($yc$17, $xsize) | 0) + $xc$17 << 1) | 0;
$2027 = $1433 + ((Math_imul(($j$17346 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$19342 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$2027 >> 2] = (HEAP32[$2027 >> 2] | 0) + (HEAPU8[$2020 >> 0] | 0);
}
$i$19342 = $i$19342 + 1 | 0;
} while (($i$19342 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$17346 = $j$17346 + 1 | 0;
} while (($j$17346 | 0) < ($ydiv2$3 | 0));
break;
}
case 9:
{
$1762 = $103 + 100.0;
$1763 = +($ydiv2$3 | 0);
$1764 = +($sample_size$xdiv2$2 | 0);
$1765 = $para + 48 | 0;
$1766 = $para + 56 | 0;
$1767 = $para + 64 | 0;
$1768 = $para + 8 | 0;
$1769 = $para + 16 | 0;
$1770 = $para + 24 | 0;
$1771 = $para + 32 | 0;
$1772 = $para + 40 | 0;
$1773 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break L233;
$1775 = ($sample_size$xdiv2$2 | 0) > 0;
$j$18352 = 0;
do {
$2038 = $1762 + $104 * (+($j$18352 | 0) + .5) / $1763;
if ($1775) {
$i$20348 = 0;
do {
$2043 = $1762 + $104 * (+($i$20348 | 0) + .5) / $1764;
$2050 = +HEAPF64[$1767 >> 3] + (+HEAPF64[$1765 >> 3] * $2043 + $2038 * +HEAPF64[$1766 >> 3]);
if ($2050 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$2060 = (+HEAPF64[$1769 >> 3] + ($2043 * +HEAPF64[$para >> 3] + $2038 * +HEAPF64[$1768 >> 3])) / $2050;
HEAPF32[$xc2 >> 2] = $2060;
$2069 = (+HEAPF64[$1772 >> 3] + ($2043 * +HEAPF64[$1770 >> 3] + $2038 * +HEAPF64[$1771 >> 3])) / $2050;
HEAPF32[$yc2 >> 2] = $2069;
_arParamIdeal2ObservLTf($paramLTf, $2060, $2069, $xc2, $yc2) | 0;
$2070 = +HEAPF32[$xc2 >> 2];
if ($1773) {
$xc$18 = ((~~($2070 + 1.0) | 0) / 2 | 0) << 1;
$yc$18 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$18 = ~~($2070 + .5);
$yc$18 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$18 | 0) > -1) if (($yc$18 | 0) < ($ysize | 0) & (($yc$18 | 0) > -1 & ($xc$18 | 0) < ($xsize | 0))) {
$2091 = (Math_imul($yc$18, $xsize) | 0) + $xc$18 << 1;
$2094 = HEAPU8[$image + $2091 >> 0] | 0;
$2102 = HEAPU8[$image + ($2091 | 1) >> 0] | 0;
$2117 = $1433 + ((Math_imul(($j$18352 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$20348 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$2117 >> 2] = (HEAP32[$2117 >> 2] | 0) + (((($2102 << 3 & 248 | 4) + ($2094 & 248 | 4) + ($2094 << 5 & 224 | $2102 >>> 3 & 28 | 2) | 0) >>> 0) / 3 | 0);
}
$i$20348 = $i$20348 + 1 | 0;
} while (($i$20348 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$18352 = $j$18352 + 1 | 0;
} while (($j$18352 | 0) < ($ydiv2$3 | 0));
break;
}
case 10:
{
$1748 = $103 + 100.0;
$1749 = +($ydiv2$3 | 0);
$1750 = +($sample_size$xdiv2$2 | 0);
$1751 = $para + 48 | 0;
$1752 = $para + 56 | 0;
$1753 = $para + 64 | 0;
$1754 = $para + 8 | 0;
$1755 = $para + 16 | 0;
$1756 = $para + 24 | 0;
$1757 = $para + 32 | 0;
$1758 = $para + 40 | 0;
$1759 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break L233;
$1761 = ($sample_size$xdiv2$2 | 0) > 0;
$j$19358 = 0;
do {
$2128 = $1748 + $104 * (+($j$19358 | 0) + .5) / $1749;
if ($1761) {
$i$21354 = 0;
do {
$2133 = $1748 + $104 * (+($i$21354 | 0) + .5) / $1750;
$2140 = +HEAPF64[$1753 >> 3] + (+HEAPF64[$1751 >> 3] * $2133 + $2128 * +HEAPF64[$1752 >> 3]);
if ($2140 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$2150 = (+HEAPF64[$1755 >> 3] + ($2133 * +HEAPF64[$para >> 3] + $2128 * +HEAPF64[$1754 >> 3])) / $2140;
HEAPF32[$xc2 >> 2] = $2150;
$2159 = (+HEAPF64[$1758 >> 3] + ($2133 * +HEAPF64[$1756 >> 3] + $2128 * +HEAPF64[$1757 >> 3])) / $2140;
HEAPF32[$yc2 >> 2] = $2159;
_arParamIdeal2ObservLTf($paramLTf, $2150, $2159, $xc2, $yc2) | 0;
$2160 = +HEAPF32[$xc2 >> 2];
if ($1759) {
$xc$19 = ((~~($2160 + 1.0) | 0) / 2 | 0) << 1;
$yc$19 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$19 = ~~($2160 + .5);
$yc$19 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$19 | 0) > -1) if (($yc$19 | 0) < ($ysize | 0) & (($yc$19 | 0) > -1 & ($xc$19 | 0) < ($xsize | 0))) {
$2181 = (Math_imul($yc$19, $xsize) | 0) + $xc$19 << 1;
$2184 = HEAPU8[$image + $2181 >> 0] | 0;
$2192 = HEAPU8[$image + ($2181 | 1) >> 0] | 0;
$2207 = $1433 + ((Math_imul(($j$19358 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$21354 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$2207 >> 2] = (HEAP32[$2207 >> 2] | 0) + (((($2192 << 2 & 248 | 4) + ($2184 & 248 | 4) + ($2184 << 5 & 224 | $2192 >>> 3 & 24 | 4) | 0) >>> 0) / 3 | 0);
}
$i$21354 = $i$21354 + 1 | 0;
} while (($i$21354 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$19358 = $j$19358 + 1 | 0;
} while (($j$19358 | 0) < ($ydiv2$3 | 0));
break;
}
case 11:
{
$1734 = $103 + 100.0;
$1735 = +($ydiv2$3 | 0);
$1736 = +($sample_size$xdiv2$2 | 0);
$1737 = $para + 48 | 0;
$1738 = $para + 56 | 0;
$1739 = $para + 64 | 0;
$1740 = $para + 8 | 0;
$1741 = $para + 16 | 0;
$1742 = $para + 24 | 0;
$1743 = $para + 32 | 0;
$1744 = $para + 40 | 0;
$1745 = ($imageProcMode | 0) == 1;
if (($ydiv2$3 | 0) <= 0) break L233;
$1747 = ($sample_size$xdiv2$2 | 0) > 0;
$j$20364 = 0;
do {
$2218 = $1734 + $104 * (+($j$20364 | 0) + .5) / $1735;
if ($1747) {
$i$22360 = 0;
do {
$2223 = $1734 + $104 * (+($i$22360 | 0) + .5) / $1736;
$2230 = +HEAPF64[$1739 >> 3] + (+HEAPF64[$1737 >> 3] * $2223 + $2218 * +HEAPF64[$1738 >> 3]);
if ($2230 == 0.0) {
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
$2240 = (+HEAPF64[$1741 >> 3] + ($2223 * +HEAPF64[$para >> 3] + $2218 * +HEAPF64[$1740 >> 3])) / $2230;
HEAPF32[$xc2 >> 2] = $2240;
$2249 = (+HEAPF64[$1744 >> 3] + ($2223 * +HEAPF64[$1742 >> 3] + $2218 * +HEAPF64[$1743 >> 3])) / $2230;
HEAPF32[$yc2 >> 2] = $2249;
_arParamIdeal2ObservLTf($paramLTf, $2240, $2249, $xc2, $yc2) | 0;
$2250 = +HEAPF32[$xc2 >> 2];
if ($1745) {
$xc$20 = ((~~($2250 + 1.0) | 0) / 2 | 0) << 1;
$yc$20 = ((~~(+HEAPF32[$yc2 >> 2] + 1.0) | 0) / 2 | 0) << 1;
} else {
$xc$20 = ~~($2250 + .5);
$yc$20 = ~~(+HEAPF32[$yc2 >> 2] + .5);
}
if (($xc$20 | 0) > -1) if (($yc$20 | 0) < ($ysize | 0) & (($yc$20 | 0) > -1 & ($xc$20 | 0) < ($xsize | 0))) {
$2271 = (Math_imul($yc$20, $xsize) | 0) + $xc$20 << 1;
$2274 = HEAPU8[$image + $2271 >> 0] | 0;
$2293 = $1433 + ((Math_imul(($j$20364 | 0) / ($100 | 0) | 0, $patt_size) | 0) + (($i$22360 | 0) / ($99 | 0) | 0) << 2) | 0;
HEAP32[$2293 >> 2] = (HEAP32[$2293 >> 2] | 0) + (((($2274 << 4 & 240 | 8) + ($2274 & 240 | 8) + ((HEAPU8[$image + ($2271 | 1) >> 0] | 0) & 240 | 8) | 0) >>> 0) / 3 | 0);
}
$i$22360 = $i$22360 + 1 | 0;
} while (($i$22360 | 0) < ($sample_size$xdiv2$2 | 0));
}
$j$20364 = $j$20364 + 1 | 0;
} while (($j$20364 | 0) < ($ydiv2$3 | 0));
break;
}
default:
{
_arLog(3, 4615, $vararg_buffer5);
$ext_patt2$0 = $1433;
label = 278;
break L13;
}
}
} while (0);
$1450 = Math_imul($100, $99) | 0;
if ($106) {
$i$23309 = 0;
do {
HEAP8[$ext_patt + $i$23309 >> 0] = ((HEAP32[$1433 + ($i$23309 << 2) >> 2] | 0) >>> 0) / ($1450 >>> 0) | 0;
$i$23309 = $i$23309 + 1 | 0;
} while (($i$23309 | 0) < ($106 | 0));
}
_free($1433);
$$0 = 0;
} while (0);
if ((label | 0) == 278) {
_free($ext_patt2$0);
$$0 = -1;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_118parse_builtin_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i103 = 0, $$0$i$i$i108 = 0, $$0$i$i$i113 = 0, $$0$i$i$i118 = 0, $$0$i$i$i123 = 0, $$0$i$i$i128 = 0, $$0$i$i$i133 = 0, $$0$i$i$i138 = 0, $$0$i$i$i14 = 0, $$0$i$i$i143 = 0, $$0$i$i$i19 = 0, $$0$i$i$i24 = 0, $$0$i$i$i29 = 0, $$0$i$i$i34 = 0, $$0$i$i$i39 = 0, $$0$i$i$i4 = 0, $$0$i$i$i44 = 0, $$0$i$i$i49 = 0, $$0$i$i$i54 = 0, $$0$i$i$i59 = 0, $$0$i$i$i66 = 0, $$0$i$i$i71 = 0, $$0$i$i$i76 = 0, $$0$i$i$i81 = 0, $$0$i$i$i88 = 0, $$0$i$i$i9 = 0, $$0$i$i$i93 = 0, $$0$i$i$i98 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $106 = 0, $108 = 0, $11 = 0, $111 = 0, $112 = 0, $115 = 0, $116 = 0, $118 = 0, $12 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $132 = 0, $134 = 0, $137 = 0, $138 = 0, $14 = 0, $141 = 0, $142 = 0, $144 = 0, $15 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $158 = 0, $16 = 0, $160 = 0, $163 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $184 = 0, $186 = 0, $189 = 0, $19 = 0, $190 = 0, $193 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $21 = 0, $210 = 0, $212 = 0, $215 = 0, $216 = 0, $219 = 0, $22 = 0, $220 = 0, $222 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $236 = 0, $238 = 0, $24 = 0, $241 = 0, $242 = 0, $245 = 0, $246 = 0, $248 = 0, $25 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $26 = 0, $262 = 0, $264 = 0, $267 = 0, $268 = 0, $27 = 0, $271 = 0, $272 = 0, $274 = 0, $28 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $288 = 0, $290 = 0, $293 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $300 = 0, $307 = 0, $308 = 0, $309 = 0, $310 = 0, $314 = 0, $316 = 0, $319 = 0, $32 = 0, $320 = 0, $323 = 0, $324 = 0, $326 = 0, $33 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $340 = 0, $342 = 0, $345 = 0, $346 = 0, $349 = 0, $35 = 0, $350 = 0, $352 = 0, $359 = 0, $360 = 0, $361 = 0, $362 = 0, $366 = 0, $368 = 0, $371 = 0, $372 = 0, $375 = 0, $379 = 0, $382 = 0, $383 = 0, $385 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $399 = 0, $4 = 0, $401 = 0, $404 = 0, $405 = 0, $408 = 0, $409 = 0, $411 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $425 = 0, $427 = 0, $43 = 0, $430 = 0, $431 = 0, $434 = 0, $435 = 0, $437 = 0, $44 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $45 = 0, $451 = 0, $453 = 0, $456 = 0, $457 = 0, $460 = 0, $461 = 0, $463 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $477 = 0, $479 = 0, $482 = 0, $483 = 0, $486 = 0, $488 = 0, $49 = 0, $491 = 0, $492 = 0, $494 = 0, $5 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $508 = 0, $51 = 0, $510 = 0, $513 = 0, $514 = 0, $517 = 0, $518 = 0, $520 = 0, $527 = 0, $528 = 0, $529 = 0, $530 = 0, $534 = 0, $536 = 0, $539 = 0, $54 = 0, $540 = 0, $543 = 0, $544 = 0, $546 = 0, $55 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $560 = 0, $562 = 0, $565 = 0, $566 = 0, $569 = 0, $570 = 0, $572 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $586 = 0, $588 = 0, $591 = 0, $592 = 0, $595 = 0, $596 = 0, $598 = 0, $6 = 0, $60 = 0, $602 = 0, $603 = 0, $605 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $619 = 0, $621 = 0, $624 = 0, $625 = 0, $628 = 0, $629 = 0, $63 = 0, $631 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $645 = 0, $647 = 0, $650 = 0, $651 = 0, $654 = 0, $655 = 0, $657 = 0, $66 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $671 = 0, $673 = 0, $676 = 0, $677 = 0, $680 = 0, $681 = 0, $683 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $697 = 0, $699 = 0, $7 = 0, $702 = 0, $703 = 0, $706 = 0, $707 = 0, $709 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $723 = 0, $725 = 0, $728 = 0, $729 = 0, $73 = 0, $732 = 0, $733 = 0, $735 = 0, $74 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $749 = 0, $75 = 0, $751 = 0, $754 = 0, $755 = 0, $758 = 0, $759 = 0, $76 = 0, $761 = 0, $768 = 0, $769 = 0, $770 = 0, $771 = 0, $775 = 0, $777 = 0, $780 = 0, $781 = 0, $784 = 0, $785 = 0, $787 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $8 = 0, $80 = 0, $801 = 0, $803 = 0, $806 = 0, $807 = 0, $82 = 0, $85 = 0, $86 = 0, $89 = 0, $9 = 0, $90 = 0, $92 = 0, $99 = 0, $__v$i$i142 = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 720 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i142 = sp + 696 | 0;
$0 = sp + 672 | 0;
$1 = sp + 648 | 0;
$2 = sp + 624 | 0;
$3 = sp + 600 | 0;
$4 = sp + 576 | 0;
$5 = sp + 552 | 0;
$6 = sp + 528 | 0;
$7 = sp + 504 | 0;
$8 = sp + 480 | 0;
$9 = sp + 456 | 0;
$10 = sp + 432 | 0;
$11 = sp + 408 | 0;
$12 = sp + 384 | 0;
$13 = sp + 360 | 0;
$14 = sp + 336 | 0;
$15 = sp + 312 | 0;
$16 = sp + 288 | 0;
$17 = sp + 264 | 0;
$18 = sp + 240 | 0;
$19 = sp + 216 | 0;
$20 = sp + 192 | 0;
$21 = sp + 168 | 0;
$22 = sp + 144 | 0;
$23 = sp + 120 | 0;
$24 = sp + 96 | 0;
$25 = sp + 72 | 0;
$26 = sp + 48 | 0;
$27 = sp + 24 | 0;
$28 = sp;
L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else do switch (HEAP8[$first >> 0] | 0) {
case 118:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($0, 14202);
$32 = $db + 4 | 0;
$33 = HEAP32[$32 >> 2] | 0;
$35 = HEAP32[$db + 8 >> 2] | 0;
if ($33 >>> 0 < $35 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($33, $0);
HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 24;
} else {
$42 = HEAP32[$db >> 2] | 0;
$43 = $33 - $42 | 0;
$44 = ($43 | 0) / 24 | 0;
$45 = $44 + 1 | 0;
if (($43 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$49 = ($35 - $42 | 0) / 24 | 0;
if ($49 >>> 0 < 1073741823) {
$51 = $49 << 1;
$$0$i$i$i = $51 >>> 0 < $45 >>> 0 ? $45 : $51;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i, $44, $db + 12 | 0);
$54 = $__v$i$i142 + 8 | 0;
$55 = HEAP32[$54 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($55, $0);
HEAP32[$54 >> 2] = $55 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 119:
{
HEAP8[$1 >> 0] = 14;
$58 = $1 + 1 | 0;
HEAP8[$58 >> 0] = HEAP8[13764] | 0;
HEAP8[$58 + 1 >> 0] = HEAP8[13765] | 0;
HEAP8[$58 + 2 >> 0] = HEAP8[13766] | 0;
HEAP8[$58 + 3 >> 0] = HEAP8[13767] | 0;
HEAP8[$58 + 4 >> 0] = HEAP8[13768] | 0;
HEAP8[$58 + 5 >> 0] = HEAP8[13769] | 0;
HEAP8[$58 + 6 >> 0] = HEAP8[13770] | 0;
HEAP8[$1 + 8 >> 0] = 0;
$60 = $1 + 12 | 0;
HEAP32[$60 >> 2] = 0;
HEAP32[$60 + 4 >> 2] = 0;
HEAP32[$60 + 8 >> 2] = 0;
$63 = $db + 4 | 0;
$64 = HEAP32[$63 >> 2] | 0;
$66 = HEAP32[$db + 8 >> 2] | 0;
if ($64 >>> 0 < $66 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($64, $1);
HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + 24;
} else {
$73 = HEAP32[$db >> 2] | 0;
$74 = $64 - $73 | 0;
$75 = ($74 | 0) / 24 | 0;
$76 = $75 + 1 | 0;
if (($74 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$80 = ($66 - $73 | 0) / 24 | 0;
if ($80 >>> 0 < 1073741823) {
$82 = $80 << 1;
$$0$i$i$i4 = $82 >>> 0 < $76 >>> 0 ? $76 : $82;
} else $$0$i$i$i4 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i4, $75, $db + 12 | 0);
$85 = $__v$i$i142 + 8 | 0;
$86 = HEAP32[$85 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($86, $1);
HEAP32[$85 >> 2] = $86 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 98:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($2, 14207);
$89 = $db + 4 | 0;
$90 = HEAP32[$89 >> 2] | 0;
$92 = HEAP32[$db + 8 >> 2] | 0;
if ($90 >>> 0 < $92 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($90, $2);
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 24;
} else {
$99 = HEAP32[$db >> 2] | 0;
$100 = $90 - $99 | 0;
$101 = ($100 | 0) / 24 | 0;
$102 = $101 + 1 | 0;
if (($100 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$106 = ($92 - $99 | 0) / 24 | 0;
if ($106 >>> 0 < 1073741823) {
$108 = $106 << 1;
$$0$i$i$i9 = $108 >>> 0 < $102 >>> 0 ? $102 : $108;
} else $$0$i$i$i9 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i9, $101, $db + 12 | 0);
$111 = $__v$i$i142 + 8 | 0;
$112 = HEAP32[$111 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($112, $2);
HEAP32[$111 >> 2] = $112 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 99:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($3, 13783);
$115 = $db + 4 | 0;
$116 = HEAP32[$115 >> 2] | 0;
$118 = HEAP32[$db + 8 >> 2] | 0;
if ($116 >>> 0 < $118 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($116, $3);
HEAP32[$115 >> 2] = (HEAP32[$115 >> 2] | 0) + 24;
} else {
$125 = HEAP32[$db >> 2] | 0;
$126 = $116 - $125 | 0;
$127 = ($126 | 0) / 24 | 0;
$128 = $127 + 1 | 0;
if (($126 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$132 = ($118 - $125 | 0) / 24 | 0;
if ($132 >>> 0 < 1073741823) {
$134 = $132 << 1;
$$0$i$i$i14 = $134 >>> 0 < $128 >>> 0 ? $128 : $134;
} else $$0$i$i$i14 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i14, $127, $db + 12 | 0);
$137 = $__v$i$i142 + 8 | 0;
$138 = HEAP32[$137 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($138, $3);
HEAP32[$137 >> 2] = $138 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 97:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($4, 13788);
$141 = $db + 4 | 0;
$142 = HEAP32[$141 >> 2] | 0;
$144 = HEAP32[$db + 8 >> 2] | 0;
if ($142 >>> 0 < $144 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($142, $4);
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 24;
} else {
$151 = HEAP32[$db >> 2] | 0;
$152 = $142 - $151 | 0;
$153 = ($152 | 0) / 24 | 0;
$154 = $153 + 1 | 0;
if (($152 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$158 = ($144 - $151 | 0) / 24 | 0;
if ($158 >>> 0 < 1073741823) {
$160 = $158 << 1;
$$0$i$i$i19 = $160 >>> 0 < $154 >>> 0 ? $154 : $160;
} else $$0$i$i$i19 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i19, $153, $db + 12 | 0);
$163 = $__v$i$i142 + 8 | 0;
$164 = HEAP32[$163 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($164, $4);
HEAP32[$163 >> 2] = $164 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 104:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($5, 13800);
$167 = $db + 4 | 0;
$168 = HEAP32[$167 >> 2] | 0;
$170 = HEAP32[$db + 8 >> 2] | 0;
if ($168 >>> 0 < $170 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $5);
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 24;
} else {
$177 = HEAP32[$db >> 2] | 0;
$178 = $168 - $177 | 0;
$179 = ($178 | 0) / 24 | 0;
$180 = $179 + 1 | 0;
if (($178 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$184 = ($170 - $177 | 0) / 24 | 0;
if ($184 >>> 0 < 1073741823) {
$186 = $184 << 1;
$$0$i$i$i24 = $186 >>> 0 < $180 >>> 0 ? $180 : $186;
} else $$0$i$i$i24 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i24, $179, $db + 12 | 0);
$189 = $__v$i$i142 + 8 | 0;
$190 = HEAP32[$189 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($190, $5);
HEAP32[$189 >> 2] = $190 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 115:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($6, 13814);
$193 = $db + 4 | 0;
$194 = HEAP32[$193 >> 2] | 0;
$196 = HEAP32[$db + 8 >> 2] | 0;
if ($194 >>> 0 < $196 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($194, $6);
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 24;
} else {
$203 = HEAP32[$db >> 2] | 0;
$204 = $194 - $203 | 0;
$205 = ($204 | 0) / 24 | 0;
$206 = $205 + 1 | 0;
if (($204 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$210 = ($196 - $203 | 0) / 24 | 0;
if ($210 >>> 0 < 1073741823) {
$212 = $210 << 1;
$$0$i$i$i29 = $212 >>> 0 < $206 >>> 0 ? $206 : $212;
} else $$0$i$i$i29 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i29, $205, $db + 12 | 0);
$215 = $__v$i$i142 + 8 | 0;
$216 = HEAP32[$215 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($216, $6);
HEAP32[$215 >> 2] = $216 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($6);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 116:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($7, 13820);
$219 = $db + 4 | 0;
$220 = HEAP32[$219 >> 2] | 0;
$222 = HEAP32[$db + 8 >> 2] | 0;
if ($220 >>> 0 < $222 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($220, $7);
HEAP32[$219 >> 2] = (HEAP32[$219 >> 2] | 0) + 24;
} else {
$229 = HEAP32[$db >> 2] | 0;
$230 = $220 - $229 | 0;
$231 = ($230 | 0) / 24 | 0;
$232 = $231 + 1 | 0;
if (($230 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$236 = ($222 - $229 | 0) / 24 | 0;
if ($236 >>> 0 < 1073741823) {
$238 = $236 << 1;
$$0$i$i$i34 = $238 >>> 0 < $232 >>> 0 ? $232 : $238;
} else $$0$i$i$i34 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i34, $231, $db + 12 | 0);
$241 = $__v$i$i142 + 8 | 0;
$242 = HEAP32[$241 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($242, $7);
HEAP32[$241 >> 2] = $242 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($7);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 105:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($8, 14212);
$245 = $db + 4 | 0;
$246 = HEAP32[$245 >> 2] | 0;
$248 = HEAP32[$db + 8 >> 2] | 0;
if ($246 >>> 0 < $248 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($246, $8);
HEAP32[$245 >> 2] = (HEAP32[$245 >> 2] | 0) + 24;
} else {
$255 = HEAP32[$db >> 2] | 0;
$256 = $246 - $255 | 0;
$257 = ($256 | 0) / 24 | 0;
$258 = $257 + 1 | 0;
if (($256 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$262 = ($248 - $255 | 0) / 24 | 0;
if ($262 >>> 0 < 1073741823) {
$264 = $262 << 1;
$$0$i$i$i39 = $264 >>> 0 < $258 >>> 0 ? $258 : $264;
} else $$0$i$i$i39 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i39, $257, $db + 12 | 0);
$267 = $__v$i$i142 + 8 | 0;
$268 = HEAP32[$267 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($268, $8);
HEAP32[$267 >> 2] = $268 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($8);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 106:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($9, 14216);
$271 = $db + 4 | 0;
$272 = HEAP32[$271 >> 2] | 0;
$274 = HEAP32[$db + 8 >> 2] | 0;
if ($272 >>> 0 < $274 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($272, $9);
HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + 24;
} else {
$281 = HEAP32[$db >> 2] | 0;
$282 = $272 - $281 | 0;
$283 = ($282 | 0) / 24 | 0;
$284 = $283 + 1 | 0;
if (($282 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$288 = ($274 - $281 | 0) / 24 | 0;
if ($288 >>> 0 < 1073741823) {
$290 = $288 << 1;
$$0$i$i$i44 = $290 >>> 0 < $284 >>> 0 ? $284 : $290;
} else $$0$i$i$i44 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i44, $283, $db + 12 | 0);
$293 = $__v$i$i142 + 8 | 0;
$294 = HEAP32[$293 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($294, $9);
HEAP32[$293 >> 2] = $294 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($9);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 108:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($10, 14229);
$297 = $db + 4 | 0;
$298 = HEAP32[$297 >> 2] | 0;
$300 = HEAP32[$db + 8 >> 2] | 0;
if ($298 >>> 0 < $300 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($298, $10);
HEAP32[$297 >> 2] = (HEAP32[$297 >> 2] | 0) + 24;
} else {
$307 = HEAP32[$db >> 2] | 0;
$308 = $298 - $307 | 0;
$309 = ($308 | 0) / 24 | 0;
$310 = $309 + 1 | 0;
if (($308 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$314 = ($300 - $307 | 0) / 24 | 0;
if ($314 >>> 0 < 1073741823) {
$316 = $314 << 1;
$$0$i$i$i49 = $316 >>> 0 < $310 >>> 0 ? $310 : $316;
} else $$0$i$i$i49 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i49, $309, $db + 12 | 0);
$319 = $__v$i$i142 + 8 | 0;
$320 = HEAP32[$319 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($320, $10);
HEAP32[$319 >> 2] = $320 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($10);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 109:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($11, 14234);
$323 = $db + 4 | 0;
$324 = HEAP32[$323 >> 2] | 0;
$326 = HEAP32[$db + 8 >> 2] | 0;
if ($324 >>> 0 < $326 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($324, $11);
HEAP32[$323 >> 2] = (HEAP32[$323 >> 2] | 0) + 24;
} else {
$333 = HEAP32[$db >> 2] | 0;
$334 = $324 - $333 | 0;
$335 = ($334 | 0) / 24 | 0;
$336 = $335 + 1 | 0;
if (($334 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$340 = ($326 - $333 | 0) / 24 | 0;
if ($340 >>> 0 < 1073741823) {
$342 = $340 << 1;
$$0$i$i$i54 = $342 >>> 0 < $336 >>> 0 ? $336 : $342;
} else $$0$i$i$i54 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i54, $335, $db + 12 | 0);
$345 = $__v$i$i142 + 8 | 0;
$346 = HEAP32[$345 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($346, $11);
HEAP32[$345 >> 2] = $346 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($11);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 120:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($12, 14248);
$349 = $db + 4 | 0;
$350 = HEAP32[$349 >> 2] | 0;
$352 = HEAP32[$db + 8 >> 2] | 0;
if ($350 >>> 0 < $352 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($350, $12);
HEAP32[$349 >> 2] = (HEAP32[$349 >> 2] | 0) + 24;
} else {
$359 = HEAP32[$db >> 2] | 0;
$360 = $350 - $359 | 0;
$361 = ($360 | 0) / 24 | 0;
$362 = $361 + 1 | 0;
if (($360 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$366 = ($352 - $359 | 0) / 24 | 0;
if ($366 >>> 0 < 1073741823) {
$368 = $366 << 1;
$$0$i$i$i59 = $368 >>> 0 < $362 >>> 0 ? $362 : $368;
} else $$0$i$i$i59 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i59, $361, $db + 12 | 0);
$371 = $__v$i$i142 + 8 | 0;
$372 = HEAP32[$371 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($372, $12);
HEAP32[$371 >> 2] = $372 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($12);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 121:
{
$375 = _malloc(32) | 0;
HEAP32[$13 + 8 >> 2] = $375;
HEAP32[$13 >> 2] = 33;
HEAP32[$13 + 4 >> 2] = 18;
dest = $375;
src = 14258;
stop = dest + 18 | 0;
do {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$375 + 18 >> 0] = 0;
$379 = $13 + 12 | 0;
HEAP32[$379 >> 2] = 0;
HEAP32[$379 + 4 >> 2] = 0;
HEAP32[$379 + 8 >> 2] = 0;
$382 = $db + 4 | 0;
$383 = HEAP32[$382 >> 2] | 0;
$385 = HEAP32[$db + 8 >> 2] | 0;
if ($383 >>> 0 < $385 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($383, $13);
HEAP32[$382 >> 2] = (HEAP32[$382 >> 2] | 0) + 24;
} else {
$392 = HEAP32[$db >> 2] | 0;
$393 = $383 - $392 | 0;
$394 = ($393 | 0) / 24 | 0;
$395 = $394 + 1 | 0;
if (($393 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$399 = ($385 - $392 | 0) / 24 | 0;
if ($399 >>> 0 < 1073741823) {
$401 = $399 << 1;
$$0$i$i$i66 = $401 >>> 0 < $395 >>> 0 ? $395 : $401;
} else $$0$i$i$i66 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i66, $394, $db + 12 | 0);
$404 = $__v$i$i142 + 8 | 0;
$405 = HEAP32[$404 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($405, $13);
HEAP32[$404 >> 2] = $405 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($13);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 110:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($14, 13850);
$408 = $db + 4 | 0;
$409 = HEAP32[$408 >> 2] | 0;
$411 = HEAP32[$db + 8 >> 2] | 0;
if ($409 >>> 0 < $411 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($409, $14);
HEAP32[$408 >> 2] = (HEAP32[$408 >> 2] | 0) + 24;
} else {
$418 = HEAP32[$db >> 2] | 0;
$419 = $409 - $418 | 0;
$420 = ($419 | 0) / 24 | 0;
$421 = $420 + 1 | 0;
if (($419 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$425 = ($411 - $418 | 0) / 24 | 0;
if ($425 >>> 0 < 1073741823) {
$427 = $425 << 1;
$$0$i$i$i71 = $427 >>> 0 < $421 >>> 0 ? $421 : $427;
} else $$0$i$i$i71 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i71, $420, $db + 12 | 0);
$430 = $__v$i$i142 + 8 | 0;
$431 = HEAP32[$430 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($431, $14);
HEAP32[$430 >> 2] = $431 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($14);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 111:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($15, 13859);
$434 = $db + 4 | 0;
$435 = HEAP32[$434 >> 2] | 0;
$437 = HEAP32[$db + 8 >> 2] | 0;
if ($435 >>> 0 < $437 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($435, $15);
HEAP32[$434 >> 2] = (HEAP32[$434 >> 2] | 0) + 24;
} else {
$444 = HEAP32[$db >> 2] | 0;
$445 = $435 - $444 | 0;
$446 = ($445 | 0) / 24 | 0;
$447 = $446 + 1 | 0;
if (($445 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$451 = ($437 - $444 | 0) / 24 | 0;
if ($451 >>> 0 < 1073741823) {
$453 = $451 << 1;
$$0$i$i$i76 = $453 >>> 0 < $447 >>> 0 ? $447 : $453;
} else $$0$i$i$i76 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i76, $446, $db + 12 | 0);
$456 = $__v$i$i142 + 8 | 0;
$457 = HEAP32[$456 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($457, $15);
HEAP32[$456 >> 2] = $457 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($15);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 102:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($16, 14277);
$460 = $db + 4 | 0;
$461 = HEAP32[$460 >> 2] | 0;
$463 = HEAP32[$db + 8 >> 2] | 0;
if ($461 >>> 0 < $463 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($461, $16);
HEAP32[$460 >> 2] = (HEAP32[$460 >> 2] | 0) + 24;
} else {
$470 = HEAP32[$db >> 2] | 0;
$471 = $461 - $470 | 0;
$472 = ($471 | 0) / 24 | 0;
$473 = $472 + 1 | 0;
if (($471 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$477 = ($463 - $470 | 0) / 24 | 0;
if ($477 >>> 0 < 1073741823) {
$479 = $477 << 1;
$$0$i$i$i81 = $479 >>> 0 < $473 >>> 0 ? $473 : $479;
} else $$0$i$i$i81 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i81, $472, $db + 12 | 0);
$482 = $__v$i$i142 + 8 | 0;
$483 = HEAP32[$482 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($483, $16);
HEAP32[$482 >> 2] = $483 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 100:
{
HEAP8[$17 >> 0] = 12;
$486 = $17 + 1 | 0;
HEAP8[$486 >> 0] = HEAP8[14283] | 0;
HEAP8[$486 + 1 >> 0] = HEAP8[14284] | 0;
HEAP8[$486 + 2 >> 0] = HEAP8[14285] | 0;
HEAP8[$486 + 3 >> 0] = HEAP8[14286] | 0;
HEAP8[$486 + 4 >> 0] = HEAP8[14287] | 0;
HEAP8[$486 + 5 >> 0] = HEAP8[14288] | 0;
HEAP8[$17 + 7 >> 0] = 0;
$488 = $17 + 12 | 0;
HEAP32[$488 >> 2] = 0;
HEAP32[$488 + 4 >> 2] = 0;
HEAP32[$488 + 8 >> 2] = 0;
$491 = $db + 4 | 0;
$492 = HEAP32[$491 >> 2] | 0;
$494 = HEAP32[$db + 8 >> 2] | 0;
if ($492 >>> 0 < $494 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($492, $17);
HEAP32[$491 >> 2] = (HEAP32[$491 >> 2] | 0) + 24;
} else {
$501 = HEAP32[$db >> 2] | 0;
$502 = $492 - $501 | 0;
$503 = ($502 | 0) / 24 | 0;
$504 = $503 + 1 | 0;
if (($502 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$508 = ($494 - $501 | 0) / 24 | 0;
if ($508 >>> 0 < 1073741823) {
$510 = $508 << 1;
$$0$i$i$i88 = $510 >>> 0 < $504 >>> 0 ? $504 : $510;
} else $$0$i$i$i88 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i88, $503, $db + 12 | 0);
$513 = $__v$i$i142 + 8 | 0;
$514 = HEAP32[$513 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($514, $17);
HEAP32[$513 >> 2] = $514 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($17);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 101:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($18, 14290);
$517 = $db + 4 | 0;
$518 = HEAP32[$517 >> 2] | 0;
$520 = HEAP32[$db + 8 >> 2] | 0;
if ($518 >>> 0 < $520 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($518, $18);
HEAP32[$517 >> 2] = (HEAP32[$517 >> 2] | 0) + 24;
} else {
$527 = HEAP32[$db >> 2] | 0;
$528 = $518 - $527 | 0;
$529 = ($528 | 0) / 24 | 0;
$530 = $529 + 1 | 0;
if (($528 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$534 = ($520 - $527 | 0) / 24 | 0;
if ($534 >>> 0 < 1073741823) {
$536 = $534 << 1;
$$0$i$i$i93 = $536 >>> 0 < $530 >>> 0 ? $530 : $536;
} else $$0$i$i$i93 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i93, $529, $db + 12 | 0);
$539 = $__v$i$i142 + 8 | 0;
$540 = HEAP32[$539 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($540, $18);
HEAP32[$539 >> 2] = $540 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($18);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 103:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($19, 14302);
$543 = $db + 4 | 0;
$544 = HEAP32[$543 >> 2] | 0;
$546 = HEAP32[$db + 8 >> 2] | 0;
if ($544 >>> 0 < $546 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($544, $19);
HEAP32[$543 >> 2] = (HEAP32[$543 >> 2] | 0) + 24;
} else {
$553 = HEAP32[$db >> 2] | 0;
$554 = $544 - $553 | 0;
$555 = ($554 | 0) / 24 | 0;
$556 = $555 + 1 | 0;
if (($554 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$560 = ($546 - $553 | 0) / 24 | 0;
if ($560 >>> 0 < 1073741823) {
$562 = $560 << 1;
$$0$i$i$i98 = $562 >>> 0 < $556 >>> 0 ? $556 : $562;
} else $$0$i$i$i98 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i98, $555, $db + 12 | 0);
$565 = $__v$i$i142 + 8 | 0;
$566 = HEAP32[$565 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($566, $19);
HEAP32[$565 >> 2] = $566 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 122:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($20, 14313);
$569 = $db + 4 | 0;
$570 = HEAP32[$569 >> 2] | 0;
$572 = HEAP32[$db + 8 >> 2] | 0;
if ($570 >>> 0 < $572 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($570, $20);
HEAP32[$569 >> 2] = (HEAP32[$569 >> 2] | 0) + 24;
} else {
$579 = HEAP32[$db >> 2] | 0;
$580 = $570 - $579 | 0;
$581 = ($580 | 0) / 24 | 0;
$582 = $581 + 1 | 0;
if (($580 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$586 = ($572 - $579 | 0) / 24 | 0;
if ($586 >>> 0 < 1073741823) {
$588 = $586 << 1;
$$0$i$i$i103 = $588 >>> 0 < $582 >>> 0 ? $582 : $588;
} else $$0$i$i$i103 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i103, $581, $db + 12 | 0);
$591 = $__v$i$i142 + 8 | 0;
$592 = HEAP32[$591 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($592, $20);
HEAP32[$591 >> 2] = $592 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($20);
$$0 = $first + 1 | 0;
break L1;
break;
}
case 117:
{
$595 = $first + 1 | 0;
$596 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($595, $last, $db) | 0;
STACKTOP = sp;
return (($596 | 0) == ($595 | 0) ? $first : $596) | 0;
}
case 68:
{
$598 = $first + 1 | 0;
if (($598 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
switch (HEAP8[$598 >> 0] | 0) {
case 100:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($21, 14317);
$602 = $db + 4 | 0;
$603 = HEAP32[$602 >> 2] | 0;
$605 = HEAP32[$db + 8 >> 2] | 0;
if ($603 >>> 0 < $605 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($603, $21);
HEAP32[$602 >> 2] = (HEAP32[$602 >> 2] | 0) + 24;
} else {
$612 = HEAP32[$db >> 2] | 0;
$613 = $603 - $612 | 0;
$614 = ($613 | 0) / 24 | 0;
$615 = $614 + 1 | 0;
if (($613 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$619 = ($605 - $612 | 0) / 24 | 0;
if ($619 >>> 0 < 1073741823) {
$621 = $619 << 1;
$$0$i$i$i108 = $621 >>> 0 < $615 >>> 0 ? $615 : $621;
} else $$0$i$i$i108 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i108, $614, $db + 12 | 0);
$624 = $__v$i$i142 + 8 | 0;
$625 = HEAP32[$624 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($625, $21);
HEAP32[$624 >> 2] = $625 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 101:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($22, 14327);
$628 = $db + 4 | 0;
$629 = HEAP32[$628 >> 2] | 0;
$631 = HEAP32[$db + 8 >> 2] | 0;
if ($629 >>> 0 < $631 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($629, $22);
HEAP32[$628 >> 2] = (HEAP32[$628 >> 2] | 0) + 24;
} else {
$638 = HEAP32[$db >> 2] | 0;
$639 = $629 - $638 | 0;
$640 = ($639 | 0) / 24 | 0;
$641 = $640 + 1 | 0;
if (($639 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$645 = ($631 - $638 | 0) / 24 | 0;
if ($645 >>> 0 < 1073741823) {
$647 = $645 << 1;
$$0$i$i$i113 = $647 >>> 0 < $641 >>> 0 ? $641 : $647;
} else $$0$i$i$i113 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i113, $640, $db + 12 | 0);
$650 = $__v$i$i142 + 8 | 0;
$651 = HEAP32[$650 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($651, $22);
HEAP32[$650 >> 2] = $651 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($22);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 102:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($23, 14338);
$654 = $db + 4 | 0;
$655 = HEAP32[$654 >> 2] | 0;
$657 = HEAP32[$db + 8 >> 2] | 0;
if ($655 >>> 0 < $657 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($655, $23);
HEAP32[$654 >> 2] = (HEAP32[$654 >> 2] | 0) + 24;
} else {
$664 = HEAP32[$db >> 2] | 0;
$665 = $655 - $664 | 0;
$666 = ($665 | 0) / 24 | 0;
$667 = $666 + 1 | 0;
if (($665 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$671 = ($657 - $664 | 0) / 24 | 0;
if ($671 >>> 0 < 1073741823) {
$673 = $671 << 1;
$$0$i$i$i118 = $673 >>> 0 < $667 >>> 0 ? $667 : $673;
} else $$0$i$i$i118 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i118, $666, $db + 12 | 0);
$676 = $__v$i$i142 + 8 | 0;
$677 = HEAP32[$676 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($677, $23);
HEAP32[$676 >> 2] = $677 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($23);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 104:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($24, 14348);
$680 = $db + 4 | 0;
$681 = HEAP32[$680 >> 2] | 0;
$683 = HEAP32[$db + 8 >> 2] | 0;
if ($681 >>> 0 < $683 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($681, $24);
HEAP32[$680 >> 2] = (HEAP32[$680 >> 2] | 0) + 24;
} else {
$690 = HEAP32[$db >> 2] | 0;
$691 = $681 - $690 | 0;
$692 = ($691 | 0) / 24 | 0;
$693 = $692 + 1 | 0;
if (($691 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$697 = ($683 - $690 | 0) / 24 | 0;
if ($697 >>> 0 < 1073741823) {
$699 = $697 << 1;
$$0$i$i$i123 = $699 >>> 0 < $693 >>> 0 ? $693 : $699;
} else $$0$i$i$i123 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i123, $692, $db + 12 | 0);
$702 = $__v$i$i142 + 8 | 0;
$703 = HEAP32[$702 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($703, $24);
HEAP32[$702 >> 2] = $703 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($24);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 105:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($25, 14358);
$706 = $db + 4 | 0;
$707 = HEAP32[$706 >> 2] | 0;
$709 = HEAP32[$db + 8 >> 2] | 0;
if ($707 >>> 0 < $709 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($707, $25);
HEAP32[$706 >> 2] = (HEAP32[$706 >> 2] | 0) + 24;
} else {
$716 = HEAP32[$db >> 2] | 0;
$717 = $707 - $716 | 0;
$718 = ($717 | 0) / 24 | 0;
$719 = $718 + 1 | 0;
if (($717 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$723 = ($709 - $716 | 0) / 24 | 0;
if ($723 >>> 0 < 1073741823) {
$725 = $723 << 1;
$$0$i$i$i128 = $725 >>> 0 < $719 >>> 0 ? $719 : $725;
} else $$0$i$i$i128 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i128, $718, $db + 12 | 0);
$728 = $__v$i$i142 + 8 | 0;
$729 = HEAP32[$728 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($729, $25);
HEAP32[$728 >> 2] = $729 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 115:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($26, 14367);
$732 = $db + 4 | 0;
$733 = HEAP32[$732 >> 2] | 0;
$735 = HEAP32[$db + 8 >> 2] | 0;
if ($733 >>> 0 < $735 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($733, $26);
HEAP32[$732 >> 2] = (HEAP32[$732 >> 2] | 0) + 24;
} else {
$742 = HEAP32[$db >> 2] | 0;
$743 = $733 - $742 | 0;
$744 = ($743 | 0) / 24 | 0;
$745 = $744 + 1 | 0;
if (($743 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$749 = ($735 - $742 | 0) / 24 | 0;
if ($749 >>> 0 < 1073741823) {
$751 = $749 << 1;
$$0$i$i$i133 = $751 >>> 0 < $745 >>> 0 ? $745 : $751;
} else $$0$i$i$i133 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i133, $744, $db + 12 | 0);
$754 = $__v$i$i142 + 8 | 0;
$755 = HEAP32[$754 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($755, $26);
HEAP32[$754 >> 2] = $755 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($26);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 97:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($27, 14376);
$758 = $db + 4 | 0;
$759 = HEAP32[$758 >> 2] | 0;
$761 = HEAP32[$db + 8 >> 2] | 0;
if ($759 >>> 0 < $761 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($759, $27);
HEAP32[$758 >> 2] = (HEAP32[$758 >> 2] | 0) + 24;
} else {
$768 = HEAP32[$db >> 2] | 0;
$769 = $759 - $768 | 0;
$770 = ($769 | 0) / 24 | 0;
$771 = $770 + 1 | 0;
if (($769 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$775 = ($761 - $768 | 0) / 24 | 0;
if ($775 >>> 0 < 1073741823) {
$777 = $775 << 1;
$$0$i$i$i138 = $777 >>> 0 < $771 >>> 0 ? $771 : $777;
} else $$0$i$i$i138 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i138, $770, $db + 12 | 0);
$780 = $__v$i$i142 + 8 | 0;
$781 = HEAP32[$780 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($781, $27);
HEAP32[$780 >> 2] = $781 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($27);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 110:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($28, 14381);
$784 = $db + 4 | 0;
$785 = HEAP32[$784 >> 2] | 0;
$787 = HEAP32[$db + 8 >> 2] | 0;
if ($785 >>> 0 < $787 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($785, $28);
HEAP32[$784 >> 2] = (HEAP32[$784 >> 2] | 0) + 24;
} else {
$794 = HEAP32[$db >> 2] | 0;
$795 = $785 - $794 | 0;
$796 = ($795 | 0) / 24 | 0;
$797 = $796 + 1 | 0;
if (($795 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$801 = ($787 - $794 | 0) / 24 | 0;
if ($801 >>> 0 < 1073741823) {
$803 = $801 << 1;
$$0$i$i$i143 = $803 >>> 0 < $797 >>> 0 ? $797 : $803;
} else $$0$i$i$i143 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i142, $$0$i$i$i143, $796, $db + 12 | 0);
$806 = $__v$i$i142 + 8 | 0;
$807 = HEAP32[$806 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($807, $28);
HEAP32[$806 >> 2] = $807 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i142);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i142);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($28);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
default:
{
$$0 = $first;
break L1;
}
} while (0); while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _malloc($bytes) {
$bytes = $bytes | 0;
var $$3$i = 0, $$lcssa = 0, $$lcssa211 = 0, $$lcssa215 = 0, $$lcssa216 = 0, $$lcssa217 = 0, $$lcssa219 = 0, $$lcssa222 = 0, $$lcssa224 = 0, $$lcssa226 = 0, $$lcssa228 = 0, $$lcssa230 = 0, $$lcssa232 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i23$iZ2D = 0, $$pre$phi$i26Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi58$i$iZ2D = 0, $$pre$phiZ2D = 0, $$rsize$3$i = 0, $$sum$i19$i = 0, $$sum2$i21$i = 0, $$sum3132$i$i = 0, $$sum67$i$i = 0, $100 = 0, $1000 = 0, $1002 = 0, $1005 = 0, $1010 = 0, $1016 = 0, $1019 = 0, $1020 = 0, $1027 = 0, $1039 = 0, $1044 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $106 = 0, $1060 = 0, $1062 = 0, $1063 = 0, $1070 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $117 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $127 = 0, $13 = 0, $132 = 0, $138 = 0, $14 = 0, $141 = 0, $144 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $151 = 0, $154 = 0, $156 = 0, $159 = 0, $16 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $17 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $197 = 0, $201 = 0, $207 = 0, $214 = 0, $217 = 0, $225 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $236 = 0, $237 = 0, $245 = 0, $246 = 0, $247 = 0, $249 = 0, $25 = 0, $250 = 0, $255 = 0, $256 = 0, $259 = 0, $261 = 0, $264 = 0, $269 = 0, $276 = 0, $28 = 0, $285 = 0, $286 = 0, $290 = 0, $300 = 0, $303 = 0, $307 = 0, $309 = 0, $31 = 0, $310 = 0, $312 = 0, $314 = 0, $316 = 0, $318 = 0, $320 = 0, $322 = 0, $324 = 0, $334 = 0, $335 = 0, $337 = 0, $34 = 0, $346 = 0, $348 = 0, $351 = 0, $353 = 0, $356 = 0, $358 = 0, $361 = 0, $364 = 0, $365 = 0, $367 = 0, $368 = 0, $370 = 0, $371 = 0, $373 = 0, $374 = 0, $379 = 0, $38 = 0, $380 = 0, $389 = 0, $394 = 0, $398 = 0, $4 = 0, $404 = 0, $41 = 0, $411 = 0, $414 = 0, $422 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $431 = 0, $432 = 0, $438 = 0, $44 = 0, $443 = 0, $444 = 0, $447 = 0, $449 = 0, $452 = 0, $457 = 0, $46 = 0, $463 = 0, $467 = 0, $468 = 0, $47 = 0, $475 = 0, $487 = 0, $49 = 0, $492 = 0, $499 = 0, $5 = 0, $500 = 0, $501 = 0, $509 = 0, $51 = 0, $511 = 0, $512 = 0, $522 = 0, $526 = 0, $528 = 0, $529 = 0, $53 = 0, $538 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $552 = 0, $554 = 0, $555 = 0, $561 = 0, $563 = 0, $565 = 0, $57 = 0, $572 = 0, $574 = 0, $575 = 0, $576 = 0, $584 = 0, $585 = 0, $588 = 0, $59 = 0, $592 = 0, $593 = 0, $596 = 0, $598 = 0, $6 = 0, $602 = 0, $604 = 0, $608 = 0, $61 = 0, $612 = 0, $621 = 0, $622 = 0, $628 = 0, $630 = 0, $632 = 0, $635 = 0, $637 = 0, $64 = 0, $641 = 0, $642 = 0, $648 = 0, $65 = 0, $653 = 0, $655 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $67 = 0, $676 = 0, $678 = 0, $68 = 0, $683 = 0, $685 = 0, $69 = 0, $690 = 0, $692 = 0, $7 = 0, $70 = 0, $702 = 0, $706 = 0, $711 = 0, $714 = 0, $719 = 0, $720 = 0, $724 = 0, $725 = 0, $730 = 0, $736 = 0, $741 = 0, $744 = 0, $745 = 0, $748 = 0, $750 = 0, $752 = 0, $755 = 0, $766 = 0, $77 = 0, $771 = 0, $773 = 0, $776 = 0, $778 = 0, $781 = 0, $784 = 0, $785 = 0, $787 = 0, $788 = 0, $790 = 0, $791 = 0, $793 = 0, $794 = 0, $799 = 0, $80 = 0, $800 = 0, $809 = 0, $81 = 0, $814 = 0, $818 = 0, $824 = 0, $832 = 0, $838 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $847 = 0, $848 = 0, $854 = 0, $859 = 0, $860 = 0, $863 = 0, $865 = 0, $868 = 0, $873 = 0, $879 = 0, $883 = 0, $884 = 0, $89 = 0, $891 = 0, $90 = 0, $903 = 0, $908 = 0, $91 = 0, $915 = 0, $916 = 0, $917 = 0, $92 = 0, $925 = 0, $928 = 0, $929 = 0, $93 = 0, $934 = 0, $94 = 0, $940 = 0, $941 = 0, $943 = 0, $944 = 0, $947 = 0, $95 = 0, $952 = 0, $954 = 0, $959 = 0, $960 = 0, $964 = 0, $970 = 0, $975 = 0, $977 = 0, $978 = 0, $979 = 0, $980 = 0, $984 = 0, $985 = 0, $99 = 0, $991 = 0, $996 = 0, $997 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0, $F5$0$i = 0, $I1$0$i$i = 0, $I7$0$i = 0, $I7$0$i$i = 0, $K12$029$i = 0, $K2$07$i$i = 0, $K8$051$i$i = 0, $R$0$i = 0, $R$0$i$i = 0, $R$0$i$i$lcssa = 0, $R$0$i$lcssa = 0, $R$0$i18 = 0, $R$0$i18$lcssa = 0, $R$1$i = 0, $R$1$i$i = 0, $R$1$i20 = 0, $RP$0$i = 0, $RP$0$i$i = 0, $RP$0$i$i$lcssa = 0, $RP$0$i$lcssa = 0, $RP$0$i17 = 0, $RP$0$i17$lcssa = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i25$i = 0, $T$028$i = 0, $T$028$i$lcssa = 0, $T$050$i$i = 0, $T$050$i$i$lcssa = 0, $T$06$i$i = 0, $T$06$i$i$lcssa = 0, $br$0$ph$i = 0, $i$02$i$i = 0, $idx$0$i = 0, $mem$0 = 0, $nb$0 = 0, $oldfirst$0$i$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$lcssa = 0, $rsize$0$i15 = 0, $rsize$1$i = 0, $rsize$2$i = 0, $rsize$3$lcssa$i = 0, $rsize$331$i = 0, $rst$0$i = 0, $rst$1$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$084$i = 0, $sp$084$i$lcssa = 0, $sp$183$i = 0, $sp$183$i$lcssa = 0, $ssize$0$$i = 0, $ssize$0$i = 0, $ssize$1$ph$i = 0, $ssize$2$i = 0, $t$0$i = 0, $t$0$i14 = 0, $t$1$i = 0, $t$2$ph$i = 0, $t$2$v$3$i = 0, $t$230$i = 0, $tbase$255$i = 0, $tsize$0$ph$i = 0, $tsize$0323944$i = 0, $tsize$1$i = 0, $tsize$254$i = 0, $v$0$i = 0, $v$0$i$lcssa = 0, $v$0$i16 = 0, $v$1$i = 0, $v$2$i = 0, $v$3$lcssa$i = 0, $v$3$ph$i = 0, $v$332$i = 0, label = 0, $964$looptemp = 0;
do if ($bytes >>> 0 < 245) {
$4 = $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8;
$5 = $4 >>> 3;
$6 = HEAP32[756] | 0;
$7 = $6 >>> $5;
if ($7 & 3) {
$12 = ($7 & 1 ^ 1) + $5 | 0;
$13 = $12 << 1;
$14 = 3064 + ($13 << 2) | 0;
$15 = 3064 + ($13 + 2 << 2) | 0;
$16 = HEAP32[$15 >> 2] | 0;
$17 = $16 + 8 | 0;
$18 = HEAP32[$17 >> 2] | 0;
do if (($14 | 0) == ($18 | 0)) HEAP32[756] = $6 & ~(1 << $12); else {
if ($18 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$25 = $18 + 12 | 0;
if ((HEAP32[$25 >> 2] | 0) == ($16 | 0)) {
HEAP32[$25 >> 2] = $14;
HEAP32[$15 >> 2] = $18;
break;
} else _abort();
} while (0);
$28 = $12 << 3;
HEAP32[$16 + 4 >> 2] = $28 | 3;
$31 = $16 + ($28 | 4) | 0;
HEAP32[$31 >> 2] = HEAP32[$31 >> 2] | 1;
$mem$0 = $17;
return $mem$0 | 0;
}
$34 = HEAP32[758] | 0;
if ($4 >>> 0 > $34 >>> 0) {
if ($7) {
$38 = 2 << $5;
$41 = $7 << $5 & ($38 | 0 - $38);
$44 = ($41 & 0 - $41) + -1 | 0;
$46 = $44 >>> 12 & 16;
$47 = $44 >>> $46;
$49 = $47 >>> 5 & 8;
$51 = $47 >>> $49;
$53 = $51 >>> 2 & 4;
$55 = $51 >>> $53;
$57 = $55 >>> 1 & 2;
$59 = $55 >>> $57;
$61 = $59 >>> 1 & 1;
$64 = ($49 | $46 | $53 | $57 | $61) + ($59 >>> $61) | 0;
$65 = $64 << 1;
$66 = 3064 + ($65 << 2) | 0;
$67 = 3064 + ($65 + 2 << 2) | 0;
$68 = HEAP32[$67 >> 2] | 0;
$69 = $68 + 8 | 0;
$70 = HEAP32[$69 >> 2] | 0;
do if (($66 | 0) == ($70 | 0)) {
HEAP32[756] = $6 & ~(1 << $64);
$89 = $34;
} else {
if ($70 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$77 = $70 + 12 | 0;
if ((HEAP32[$77 >> 2] | 0) == ($68 | 0)) {
HEAP32[$77 >> 2] = $66;
HEAP32[$67 >> 2] = $70;
$89 = HEAP32[758] | 0;
break;
} else _abort();
} while (0);
$80 = $64 << 3;
$81 = $80 - $4 | 0;
HEAP32[$68 + 4 >> 2] = $4 | 3;
$84 = $68 + $4 | 0;
HEAP32[$68 + ($4 | 4) >> 2] = $81 | 1;
HEAP32[$68 + $80 >> 2] = $81;
if ($89) {
$90 = HEAP32[761] | 0;
$91 = $89 >>> 3;
$92 = $91 << 1;
$93 = 3064 + ($92 << 2) | 0;
$94 = HEAP32[756] | 0;
$95 = 1 << $91;
if (!($94 & $95)) {
HEAP32[756] = $94 | $95;
$$pre$phiZ2D = 3064 + ($92 + 2 << 2) | 0;
$F4$0 = $93;
} else {
$99 = 3064 + ($92 + 2 << 2) | 0;
$100 = HEAP32[$99 >> 2] | 0;
if ($100 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
$$pre$phiZ2D = $99;
$F4$0 = $100;
}
}
HEAP32[$$pre$phiZ2D >> 2] = $90;
HEAP32[$F4$0 + 12 >> 2] = $90;
HEAP32[$90 + 8 >> 2] = $F4$0;
HEAP32[$90 + 12 >> 2] = $93;
}
HEAP32[758] = $81;
HEAP32[761] = $84;
$mem$0 = $69;
return $mem$0 | 0;
}
$106 = HEAP32[757] | 0;
if (!$106) $nb$0 = $4; else {
$110 = ($106 & 0 - $106) + -1 | 0;
$112 = $110 >>> 12 & 16;
$113 = $110 >>> $112;
$115 = $113 >>> 5 & 8;
$117 = $113 >>> $115;
$119 = $117 >>> 2 & 4;
$121 = $117 >>> $119;
$123 = $121 >>> 1 & 2;
$125 = $121 >>> $123;
$127 = $125 >>> 1 & 1;
$132 = HEAP32[3328 + (($115 | $112 | $119 | $123 | $127) + ($125 >>> $127) << 2) >> 2] | 0;
$rsize$0$i = (HEAP32[$132 + 4 >> 2] & -8) - $4 | 0;
$t$0$i = $132;
$v$0$i = $132;
while (1) {
$138 = HEAP32[$t$0$i + 16 >> 2] | 0;
if (!$138) {
$141 = HEAP32[$t$0$i + 20 >> 2] | 0;
if (!$141) {
$rsize$0$i$lcssa = $rsize$0$i;
$v$0$i$lcssa = $v$0$i;
break;
} else $144 = $141;
} else $144 = $138;
$147 = (HEAP32[$144 + 4 >> 2] & -8) - $4 | 0;
$148 = $147 >>> 0 < $rsize$0$i >>> 0;
$rsize$0$i = $148 ? $147 : $rsize$0$i;
$t$0$i = $144;
$v$0$i = $148 ? $144 : $v$0$i;
}
$149 = HEAP32[760] | 0;
if ($v$0$i$lcssa >>> 0 < $149 >>> 0) _abort();
$151 = $v$0$i$lcssa + $4 | 0;
if ($v$0$i$lcssa >>> 0 >= $151 >>> 0) _abort();
$154 = HEAP32[$v$0$i$lcssa + 24 >> 2] | 0;
$156 = HEAP32[$v$0$i$lcssa + 12 >> 2] | 0;
do if (($156 | 0) == ($v$0$i$lcssa | 0)) {
$167 = $v$0$i$lcssa + 20 | 0;
$168 = HEAP32[$167 >> 2] | 0;
if (!$168) {
$170 = $v$0$i$lcssa + 16 | 0;
$171 = HEAP32[$170 >> 2] | 0;
if (!$171) {
$R$1$i = 0;
break;
} else {
$R$0$i = $171;
$RP$0$i = $170;
}
} else {
$R$0$i = $168;
$RP$0$i = $167;
}
while (1) {
$173 = $R$0$i + 20 | 0;
$174 = HEAP32[$173 >> 2] | 0;
if ($174) {
$R$0$i = $174;
$RP$0$i = $173;
continue;
}
$176 = $R$0$i + 16 | 0;
$177 = HEAP32[$176 >> 2] | 0;
if (!$177) {
$R$0$i$lcssa = $R$0$i;
$RP$0$i$lcssa = $RP$0$i;
break;
} else {
$R$0$i = $177;
$RP$0$i = $176;
}
}
if ($RP$0$i$lcssa >>> 0 < $149 >>> 0) _abort(); else {
HEAP32[$RP$0$i$lcssa >> 2] = 0;
$R$1$i = $R$0$i$lcssa;
break;
}
} else {
$159 = HEAP32[$v$0$i$lcssa + 8 >> 2] | 0;
if ($159 >>> 0 < $149 >>> 0) _abort();
$161 = $159 + 12 | 0;
if ((HEAP32[$161 >> 2] | 0) != ($v$0$i$lcssa | 0)) _abort();
$164 = $156 + 8 | 0;
if ((HEAP32[$164 >> 2] | 0) == ($v$0$i$lcssa | 0)) {
HEAP32[$161 >> 2] = $156;
HEAP32[$164 >> 2] = $159;
$R$1$i = $156;
break;
} else _abort();
} while (0);
do if ($154) {
$182 = HEAP32[$v$0$i$lcssa + 28 >> 2] | 0;
$183 = 3328 + ($182 << 2) | 0;
if (($v$0$i$lcssa | 0) == (HEAP32[$183 >> 2] | 0)) {
HEAP32[$183 >> 2] = $R$1$i;
if (!$R$1$i) {
HEAP32[757] = HEAP32[757] & ~(1 << $182);
break;
}
} else {
if ($154 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$192 = $154 + 16 | 0;
if ((HEAP32[$192 >> 2] | 0) == ($v$0$i$lcssa | 0)) HEAP32[$192 >> 2] = $R$1$i; else HEAP32[$154 + 20 >> 2] = $R$1$i;
if (!$R$1$i) break;
}
$197 = HEAP32[760] | 0;
if ($R$1$i >>> 0 < $197 >>> 0) _abort();
HEAP32[$R$1$i + 24 >> 2] = $154;
$201 = HEAP32[$v$0$i$lcssa + 16 >> 2] | 0;
do if ($201) if ($201 >>> 0 < $197 >>> 0) _abort(); else {
HEAP32[$R$1$i + 16 >> 2] = $201;
HEAP32[$201 + 24 >> 2] = $R$1$i;
break;
} while (0);
$207 = HEAP32[$v$0$i$lcssa + 20 >> 2] | 0;
if ($207) if ($207 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R$1$i + 20 >> 2] = $207;
HEAP32[$207 + 24 >> 2] = $R$1$i;
break;
}
} while (0);
if ($rsize$0$i$lcssa >>> 0 < 16) {
$214 = $rsize$0$i$lcssa + $4 | 0;
HEAP32[$v$0$i$lcssa + 4 >> 2] = $214 | 3;
$217 = $v$0$i$lcssa + ($214 + 4) | 0;
HEAP32[$217 >> 2] = HEAP32[$217 >> 2] | 1;
} else {
HEAP32[$v$0$i$lcssa + 4 >> 2] = $4 | 3;
HEAP32[$v$0$i$lcssa + ($4 | 4) >> 2] = $rsize$0$i$lcssa | 1;
HEAP32[$v$0$i$lcssa + ($rsize$0$i$lcssa + $4) >> 2] = $rsize$0$i$lcssa;
$225 = HEAP32[758] | 0;
if ($225) {
$227 = HEAP32[761] | 0;
$228 = $225 >>> 3;
$229 = $228 << 1;
$230 = 3064 + ($229 << 2) | 0;
$231 = HEAP32[756] | 0;
$232 = 1 << $228;
if (!($231 & $232)) {
HEAP32[756] = $231 | $232;
$$pre$phi$iZ2D = 3064 + ($229 + 2 << 2) | 0;
$F1$0$i = $230;
} else {
$236 = 3064 + ($229 + 2 << 2) | 0;
$237 = HEAP32[$236 >> 2] | 0;
if ($237 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
$$pre$phi$iZ2D = $236;
$F1$0$i = $237;
}
}
HEAP32[$$pre$phi$iZ2D >> 2] = $227;
HEAP32[$F1$0$i + 12 >> 2] = $227;
HEAP32[$227 + 8 >> 2] = $F1$0$i;
HEAP32[$227 + 12 >> 2] = $230;
}
HEAP32[758] = $rsize$0$i$lcssa;
HEAP32[761] = $151;
}
$mem$0 = $v$0$i$lcssa + 8 | 0;
return $mem$0 | 0;
}
} else $nb$0 = $4;
} else if ($bytes >>> 0 > 4294967231) $nb$0 = -1; else {
$245 = $bytes + 11 | 0;
$246 = $245 & -8;
$247 = HEAP32[757] | 0;
if (!$247) $nb$0 = $246; else {
$249 = 0 - $246 | 0;
$250 = $245 >>> 8;
if (!$250) $idx$0$i = 0; else if ($246 >>> 0 > 16777215) $idx$0$i = 31; else {
$255 = ($250 + 1048320 | 0) >>> 16 & 8;
$256 = $250 << $255;
$259 = ($256 + 520192 | 0) >>> 16 & 4;
$261 = $256 << $259;
$264 = ($261 + 245760 | 0) >>> 16 & 2;
$269 = 14 - ($259 | $255 | $264) + ($261 << $264 >>> 15) | 0;
$idx$0$i = $246 >>> ($269 + 7 | 0) & 1 | $269 << 1;
}
$276 = HEAP32[3328 + ($idx$0$i << 2) >> 2] | 0;
L123 : do if (!$276) {
$rsize$2$i = $249;
$t$1$i = 0;
$v$2$i = 0;
label = 86;
} else {
$rsize$0$i15 = $249;
$rst$0$i = 0;
$sizebits$0$i = $246 << (($idx$0$i | 0) == 31 ? 0 : 25 - ($idx$0$i >>> 1) | 0);
$t$0$i14 = $276;
$v$0$i16 = 0;
while (1) {
$285 = HEAP32[$t$0$i14 + 4 >> 2] & -8;
$286 = $285 - $246 | 0;
if ($286 >>> 0 < $rsize$0$i15 >>> 0) if (($285 | 0) == ($246 | 0)) {
$rsize$331$i = $286;
$t$230$i = $t$0$i14;
$v$332$i = $t$0$i14;
label = 90;
break L123;
} else {
$rsize$1$i = $286;
$v$1$i = $t$0$i14;
} else {
$rsize$1$i = $rsize$0$i15;
$v$1$i = $v$0$i16;
}
$290 = HEAP32[$t$0$i14 + 20 >> 2] | 0;
$t$0$i14 = HEAP32[$t$0$i14 + 16 + ($sizebits$0$i >>> 31 << 2) >> 2] | 0;
$rst$1$i = ($290 | 0) == 0 | ($290 | 0) == ($t$0$i14 | 0) ? $rst$0$i : $290;
if (!$t$0$i14) {
$rsize$2$i = $rsize$1$i;
$t$1$i = $rst$1$i;
$v$2$i = $v$1$i;
label = 86;
break;
} else {
$rsize$0$i15 = $rsize$1$i;
$rst$0$i = $rst$1$i;
$sizebits$0$i = $sizebits$0$i << 1;
$v$0$i16 = $v$1$i;
}
}
} while (0);
if ((label | 0) == 86) {
if (($t$1$i | 0) == 0 & ($v$2$i | 0) == 0) {
$300 = 2 << $idx$0$i;
$303 = $247 & ($300 | 0 - $300);
if (!$303) {
$nb$0 = $246;
break;
}
$307 = ($303 & 0 - $303) + -1 | 0;
$309 = $307 >>> 12 & 16;
$310 = $307 >>> $309;
$312 = $310 >>> 5 & 8;
$314 = $310 >>> $312;
$316 = $314 >>> 2 & 4;
$318 = $314 >>> $316;
$320 = $318 >>> 1 & 2;
$322 = $318 >>> $320;
$324 = $322 >>> 1 & 1;
$t$2$ph$i = HEAP32[3328 + (($312 | $309 | $316 | $320 | $324) + ($322 >>> $324) << 2) >> 2] | 0;
$v$3$ph$i = 0;
} else {
$t$2$ph$i = $t$1$i;
$v$3$ph$i = $v$2$i;
}
if (!$t$2$ph$i) {
$rsize$3$lcssa$i = $rsize$2$i;
$v$3$lcssa$i = $v$3$ph$i;
} else {
$rsize$331$i = $rsize$2$i;
$t$230$i = $t$2$ph$i;
$v$332$i = $v$3$ph$i;
label = 90;
}
}
if ((label | 0) == 90) while (1) {
label = 0;
$334 = (HEAP32[$t$230$i + 4 >> 2] & -8) - $246 | 0;
$335 = $334 >>> 0 < $rsize$331$i >>> 0;
$$rsize$3$i = $335 ? $334 : $rsize$331$i;
$t$2$v$3$i = $335 ? $t$230$i : $v$332$i;
$337 = HEAP32[$t$230$i + 16 >> 2] | 0;
if ($337) {
$rsize$331$i = $$rsize$3$i;
$t$230$i = $337;
$v$332$i = $t$2$v$3$i;
label = 90;
continue;
}
$t$230$i = HEAP32[$t$230$i + 20 >> 2] | 0;
if (!$t$230$i) {
$rsize$3$lcssa$i = $$rsize$3$i;
$v$3$lcssa$i = $t$2$v$3$i;
break;
} else {
$rsize$331$i = $$rsize$3$i;
$v$332$i = $t$2$v$3$i;
label = 90;
}
}
if (!$v$3$lcssa$i) $nb$0 = $246; else if ($rsize$3$lcssa$i >>> 0 < ((HEAP32[758] | 0) - $246 | 0) >>> 0) {
$346 = HEAP32[760] | 0;
if ($v$3$lcssa$i >>> 0 < $346 >>> 0) _abort();
$348 = $v$3$lcssa$i + $246 | 0;
if ($v$3$lcssa$i >>> 0 >= $348 >>> 0) _abort();
$351 = HEAP32[$v$3$lcssa$i + 24 >> 2] | 0;
$353 = HEAP32[$v$3$lcssa$i + 12 >> 2] | 0;
do if (($353 | 0) == ($v$3$lcssa$i | 0)) {
$364 = $v$3$lcssa$i + 20 | 0;
$365 = HEAP32[$364 >> 2] | 0;
if (!$365) {
$367 = $v$3$lcssa$i + 16 | 0;
$368 = HEAP32[$367 >> 2] | 0;
if (!$368) {
$R$1$i20 = 0;
break;
} else {
$R$0$i18 = $368;
$RP$0$i17 = $367;
}
} else {
$R$0$i18 = $365;
$RP$0$i17 = $364;
}
while (1) {
$370 = $R$0$i18 + 20 | 0;
$371 = HEAP32[$370 >> 2] | 0;
if ($371) {
$R$0$i18 = $371;
$RP$0$i17 = $370;
continue;
}
$373 = $R$0$i18 + 16 | 0;
$374 = HEAP32[$373 >> 2] | 0;
if (!$374) {
$R$0$i18$lcssa = $R$0$i18;
$RP$0$i17$lcssa = $RP$0$i17;
break;
} else {
$R$0$i18 = $374;
$RP$0$i17 = $373;
}
}
if ($RP$0$i17$lcssa >>> 0 < $346 >>> 0) _abort(); else {
HEAP32[$RP$0$i17$lcssa >> 2] = 0;
$R$1$i20 = $R$0$i18$lcssa;
break;
}
} else {
$356 = HEAP32[$v$3$lcssa$i + 8 >> 2] | 0;
if ($356 >>> 0 < $346 >>> 0) _abort();
$358 = $356 + 12 | 0;
if ((HEAP32[$358 >> 2] | 0) != ($v$3$lcssa$i | 0)) _abort();
$361 = $353 + 8 | 0;
if ((HEAP32[$361 >> 2] | 0) == ($v$3$lcssa$i | 0)) {
HEAP32[$358 >> 2] = $353;
HEAP32[$361 >> 2] = $356;
$R$1$i20 = $353;
break;
} else _abort();
} while (0);
do if ($351) {
$379 = HEAP32[$v$3$lcssa$i + 28 >> 2] | 0;
$380 = 3328 + ($379 << 2) | 0;
if (($v$3$lcssa$i | 0) == (HEAP32[$380 >> 2] | 0)) {
HEAP32[$380 >> 2] = $R$1$i20;
if (!$R$1$i20) {
HEAP32[757] = HEAP32[757] & ~(1 << $379);
break;
}
} else {
if ($351 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$389 = $351 + 16 | 0;
if ((HEAP32[$389 >> 2] | 0) == ($v$3$lcssa$i | 0)) HEAP32[$389 >> 2] = $R$1$i20; else HEAP32[$351 + 20 >> 2] = $R$1$i20;
if (!$R$1$i20) break;
}
$394 = HEAP32[760] | 0;
if ($R$1$i20 >>> 0 < $394 >>> 0) _abort();
HEAP32[$R$1$i20 + 24 >> 2] = $351;
$398 = HEAP32[$v$3$lcssa$i + 16 >> 2] | 0;
do if ($398) if ($398 >>> 0 < $394 >>> 0) _abort(); else {
HEAP32[$R$1$i20 + 16 >> 2] = $398;
HEAP32[$398 + 24 >> 2] = $R$1$i20;
break;
} while (0);
$404 = HEAP32[$v$3$lcssa$i + 20 >> 2] | 0;
if ($404) if ($404 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R$1$i20 + 20 >> 2] = $404;
HEAP32[$404 + 24 >> 2] = $R$1$i20;
break;
}
} while (0);
L199 : do if ($rsize$3$lcssa$i >>> 0 < 16) {
$411 = $rsize$3$lcssa$i + $246 | 0;
HEAP32[$v$3$lcssa$i + 4 >> 2] = $411 | 3;
$414 = $v$3$lcssa$i + ($411 + 4) | 0;
HEAP32[$414 >> 2] = HEAP32[$414 >> 2] | 1;
} else {
HEAP32[$v$3$lcssa$i + 4 >> 2] = $246 | 3;
HEAP32[$v$3$lcssa$i + ($246 | 4) >> 2] = $rsize$3$lcssa$i | 1;
HEAP32[$v$3$lcssa$i + ($rsize$3$lcssa$i + $246) >> 2] = $rsize$3$lcssa$i;
$422 = $rsize$3$lcssa$i >>> 3;
if ($rsize$3$lcssa$i >>> 0 < 256) {
$424 = $422 << 1;
$425 = 3064 + ($424 << 2) | 0;
$426 = HEAP32[756] | 0;
$427 = 1 << $422;
if (!($426 & $427)) {
HEAP32[756] = $426 | $427;
$$pre$phi$i26Z2D = 3064 + ($424 + 2 << 2) | 0;
$F5$0$i = $425;
} else {
$431 = 3064 + ($424 + 2 << 2) | 0;
$432 = HEAP32[$431 >> 2] | 0;
if ($432 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
$$pre$phi$i26Z2D = $431;
$F5$0$i = $432;
}
}
HEAP32[$$pre$phi$i26Z2D >> 2] = $348;
HEAP32[$F5$0$i + 12 >> 2] = $348;
HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $F5$0$i;
HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $425;
break;
}
$438 = $rsize$3$lcssa$i >>> 8;
if (!$438) $I7$0$i = 0; else if ($rsize$3$lcssa$i >>> 0 > 16777215) $I7$0$i = 31; else {
$443 = ($438 + 1048320 | 0) >>> 16 & 8;
$444 = $438 << $443;
$447 = ($444 + 520192 | 0) >>> 16 & 4;
$449 = $444 << $447;
$452 = ($449 + 245760 | 0) >>> 16 & 2;
$457 = 14 - ($447 | $443 | $452) + ($449 << $452 >>> 15) | 0;
$I7$0$i = $rsize$3$lcssa$i >>> ($457 + 7 | 0) & 1 | $457 << 1;
}
$463 = 3328 + ($I7$0$i << 2) | 0;
HEAP32[$v$3$lcssa$i + ($246 + 28) >> 2] = $I7$0$i;
HEAP32[$v$3$lcssa$i + ($246 + 20) >> 2] = 0;
HEAP32[$v$3$lcssa$i + ($246 + 16) >> 2] = 0;
$467 = HEAP32[757] | 0;
$468 = 1 << $I7$0$i;
if (!($467 & $468)) {
HEAP32[757] = $467 | $468;
HEAP32[$463 >> 2] = $348;
HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = $463;
HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $348;
HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $348;
break;
}
$475 = HEAP32[$463 >> 2] | 0;
L217 : do if ((HEAP32[$475 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) $T$0$lcssa$i = $475; else {
$K12$029$i = $rsize$3$lcssa$i << (($I7$0$i | 0) == 31 ? 0 : 25 - ($I7$0$i >>> 1) | 0);
$T$028$i = $475;
while (1) {
$492 = $T$028$i + 16 + ($K12$029$i >>> 31 << 2) | 0;
$487 = HEAP32[$492 >> 2] | 0;
if (!$487) {
$$lcssa232 = $492;
$T$028$i$lcssa = $T$028$i;
break;
}
if ((HEAP32[$487 + 4 >> 2] & -8 | 0) == ($rsize$3$lcssa$i | 0)) {
$T$0$lcssa$i = $487;
break L217;
} else {
$K12$029$i = $K12$029$i << 1;
$T$028$i = $487;
}
}
if ($$lcssa232 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa232 >> 2] = $348;
HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = $T$028$i$lcssa;
HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $348;
HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $348;
break L199;
}
} while (0);
$499 = $T$0$lcssa$i + 8 | 0;
$500 = HEAP32[$499 >> 2] | 0;
$501 = HEAP32[760] | 0;
if ($500 >>> 0 >= $501 >>> 0 & $T$0$lcssa$i >>> 0 >= $501 >>> 0) {
HEAP32[$500 + 12 >> 2] = $348;
HEAP32[$499 >> 2] = $348;
HEAP32[$v$3$lcssa$i + ($246 + 8) >> 2] = $500;
HEAP32[$v$3$lcssa$i + ($246 + 12) >> 2] = $T$0$lcssa$i;
HEAP32[$v$3$lcssa$i + ($246 + 24) >> 2] = 0;
break;
} else _abort();
} while (0);
$mem$0 = $v$3$lcssa$i + 8 | 0;
return $mem$0 | 0;
} else $nb$0 = $246;
}
} while (0);
$509 = HEAP32[758] | 0;
if ($509 >>> 0 >= $nb$0 >>> 0) {
$511 = $509 - $nb$0 | 0;
$512 = HEAP32[761] | 0;
if ($511 >>> 0 > 15) {
HEAP32[761] = $512 + $nb$0;
HEAP32[758] = $511;
HEAP32[$512 + ($nb$0 + 4) >> 2] = $511 | 1;
HEAP32[$512 + $509 >> 2] = $511;
HEAP32[$512 + 4 >> 2] = $nb$0 | 3;
} else {
HEAP32[758] = 0;
HEAP32[761] = 0;
HEAP32[$512 + 4 >> 2] = $509 | 3;
$522 = $512 + ($509 + 4) | 0;
HEAP32[$522 >> 2] = HEAP32[$522 >> 2] | 1;
}
$mem$0 = $512 + 8 | 0;
return $mem$0 | 0;
}
$526 = HEAP32[759] | 0;
if ($526 >>> 0 > $nb$0 >>> 0) {
$528 = $526 - $nb$0 | 0;
HEAP32[759] = $528;
$529 = HEAP32[762] | 0;
HEAP32[762] = $529 + $nb$0;
HEAP32[$529 + ($nb$0 + 4) >> 2] = $528 | 1;
HEAP32[$529 + 4 >> 2] = $nb$0 | 3;
$mem$0 = $529 + 8 | 0;
return $mem$0 | 0;
}
do if (!(HEAP32[874] | 0)) {
$538 = _sysconf(30) | 0;
if (!($538 + -1 & $538)) {
HEAP32[876] = $538;
HEAP32[875] = $538;
HEAP32[877] = -1;
HEAP32[878] = -1;
HEAP32[879] = 0;
HEAP32[867] = 0;
$544 = (_time(0) | 0) & -16 ^ 1431655768;
HEAP32[874] = $544;
break;
} else _abort();
} while (0);
$545 = $nb$0 + 48 | 0;
$546 = HEAP32[876] | 0;
$547 = $nb$0 + 47 | 0;
$548 = $546 + $547 | 0;
$549 = 0 - $546 | 0;
$550 = $548 & $549;
if ($550 >>> 0 <= $nb$0 >>> 0) {
$mem$0 = 0;
return $mem$0 | 0;
}
$552 = HEAP32[866] | 0;
if ($552) {
$554 = HEAP32[864] | 0;
$555 = $554 + $550 | 0;
if ($555 >>> 0 <= $554 >>> 0 | $555 >>> 0 > $552 >>> 0) {
$mem$0 = 0;
return $mem$0 | 0;
}
}
L258 : do if (!(HEAP32[867] & 4)) {
$561 = HEAP32[762] | 0;
L260 : do if (!$561) label = 174; else {
$sp$0$i$i = 3472;
while (1) {
$563 = HEAP32[$sp$0$i$i >> 2] | 0;
if ($563 >>> 0 <= $561 >>> 0) {
$565 = $sp$0$i$i + 4 | 0;
if (($563 + (HEAP32[$565 >> 2] | 0) | 0) >>> 0 > $561 >>> 0) {
$$lcssa228 = $sp$0$i$i;
$$lcssa230 = $565;
break;
}
}
$sp$0$i$i = HEAP32[$sp$0$i$i + 8 >> 2] | 0;
if (!$sp$0$i$i) {
label = 174;
break L260;
}
}
$596 = $548 - (HEAP32[759] | 0) & $549;
if ($596 >>> 0 < 2147483647) {
$598 = _sbrk($596 | 0) | 0;
$602 = ($598 | 0) == ((HEAP32[$$lcssa228 >> 2] | 0) + (HEAP32[$$lcssa230 >> 2] | 0) | 0);
$$3$i = $602 ? $596 : 0;
if ($602) if (($598 | 0) == (-1 | 0)) $tsize$0323944$i = $$3$i; else {
$tbase$255$i = $598;
$tsize$254$i = $$3$i;
label = 194;
break L258;
} else {
$br$0$ph$i = $598;
$ssize$1$ph$i = $596;
$tsize$0$ph$i = $$3$i;
label = 184;
}
} else $tsize$0323944$i = 0;
} while (0);
do if ((label | 0) == 174) {
$572 = _sbrk(0) | 0;
if (($572 | 0) == (-1 | 0)) $tsize$0323944$i = 0; else {
$574 = $572;
$575 = HEAP32[875] | 0;
$576 = $575 + -1 | 0;
if (!($576 & $574)) $ssize$0$i = $550; else $ssize$0$i = $550 - $574 + ($576 + $574 & 0 - $575) | 0;
$584 = HEAP32[864] | 0;
$585 = $584 + $ssize$0$i | 0;
if ($ssize$0$i >>> 0 > $nb$0 >>> 0 & $ssize$0$i >>> 0 < 2147483647) {
$588 = HEAP32[866] | 0;
if ($588) if ($585 >>> 0 <= $584 >>> 0 | $585 >>> 0 > $588 >>> 0) {
$tsize$0323944$i = 0;
break;
}
$592 = _sbrk($ssize$0$i | 0) | 0;
$593 = ($592 | 0) == ($572 | 0);
$ssize$0$$i = $593 ? $ssize$0$i : 0;
if ($593) {
$tbase$255$i = $572;
$tsize$254$i = $ssize$0$$i;
label = 194;
break L258;
} else {
$br$0$ph$i = $592;
$ssize$1$ph$i = $ssize$0$i;
$tsize$0$ph$i = $ssize$0$$i;
label = 184;
}
} else $tsize$0323944$i = 0;
}
} while (0);
L280 : do if ((label | 0) == 184) {
$604 = 0 - $ssize$1$ph$i | 0;
do if ($545 >>> 0 > $ssize$1$ph$i >>> 0 & ($ssize$1$ph$i >>> 0 < 2147483647 & ($br$0$ph$i | 0) != (-1 | 0))) {
$608 = HEAP32[876] | 0;
$612 = $547 - $ssize$1$ph$i + $608 & 0 - $608;
if ($612 >>> 0 < 2147483647) if ((_sbrk($612 | 0) | 0) == (-1 | 0)) {
_sbrk($604 | 0) | 0;
$tsize$0323944$i = $tsize$0$ph$i;
break L280;
} else {
$ssize$2$i = $612 + $ssize$1$ph$i | 0;
break;
} else $ssize$2$i = $ssize$1$ph$i;
} else $ssize$2$i = $ssize$1$ph$i; while (0);
if (($br$0$ph$i | 0) == (-1 | 0)) $tsize$0323944$i = $tsize$0$ph$i; else {
$tbase$255$i = $br$0$ph$i;
$tsize$254$i = $ssize$2$i;
label = 194;
break L258;
}
} while (0);
HEAP32[867] = HEAP32[867] | 4;
$tsize$1$i = $tsize$0323944$i;
label = 191;
} else {
$tsize$1$i = 0;
label = 191;
} while (0);
if ((label | 0) == 191) if ($550 >>> 0 < 2147483647) {
$621 = _sbrk($550 | 0) | 0;
$622 = _sbrk(0) | 0;
if ($621 >>> 0 < $622 >>> 0 & (($621 | 0) != (-1 | 0) & ($622 | 0) != (-1 | 0))) {
$628 = $622 - $621 | 0;
$630 = $628 >>> 0 > ($nb$0 + 40 | 0) >>> 0;
if ($630) {
$tbase$255$i = $621;
$tsize$254$i = $630 ? $628 : $tsize$1$i;
label = 194;
}
}
}
if ((label | 0) == 194) {
$632 = (HEAP32[864] | 0) + $tsize$254$i | 0;
HEAP32[864] = $632;
if ($632 >>> 0 > (HEAP32[865] | 0) >>> 0) HEAP32[865] = $632;
$635 = HEAP32[762] | 0;
L299 : do if (!$635) {
$637 = HEAP32[760] | 0;
if (($637 | 0) == 0 | $tbase$255$i >>> 0 < $637 >>> 0) HEAP32[760] = $tbase$255$i;
HEAP32[868] = $tbase$255$i;
HEAP32[869] = $tsize$254$i;
HEAP32[871] = 0;
HEAP32[765] = HEAP32[874];
HEAP32[764] = -1;
$i$02$i$i = 0;
do {
$641 = $i$02$i$i << 1;
$642 = 3064 + ($641 << 2) | 0;
HEAP32[3064 + ($641 + 3 << 2) >> 2] = $642;
HEAP32[3064 + ($641 + 2 << 2) >> 2] = $642;
$i$02$i$i = $i$02$i$i + 1 | 0;
} while (($i$02$i$i | 0) != 32);
$648 = $tbase$255$i + 8 | 0;
$653 = ($648 & 7 | 0) == 0 ? 0 : 0 - $648 & 7;
$655 = $tsize$254$i + -40 - $653 | 0;
HEAP32[762] = $tbase$255$i + $653;
HEAP32[759] = $655;
HEAP32[$tbase$255$i + ($653 + 4) >> 2] = $655 | 1;
HEAP32[$tbase$255$i + ($tsize$254$i + -36) >> 2] = 40;
HEAP32[763] = HEAP32[878];
} else {
$sp$084$i = 3472;
do {
$660 = HEAP32[$sp$084$i >> 2] | 0;
$661 = $sp$084$i + 4 | 0;
$662 = HEAP32[$661 >> 2] | 0;
if (($tbase$255$i | 0) == ($660 + $662 | 0)) {
$$lcssa222 = $660;
$$lcssa224 = $661;
$$lcssa226 = $662;
$sp$084$i$lcssa = $sp$084$i;
label = 204;
break;
}
$sp$084$i = HEAP32[$sp$084$i + 8 >> 2] | 0;
} while (($sp$084$i | 0) != 0);
if ((label | 0) == 204) if (!(HEAP32[$sp$084$i$lcssa + 12 >> 2] & 8)) if ($635 >>> 0 < $tbase$255$i >>> 0 & $635 >>> 0 >= $$lcssa222 >>> 0) {
HEAP32[$$lcssa224 >> 2] = $$lcssa226 + $tsize$254$i;
$676 = (HEAP32[759] | 0) + $tsize$254$i | 0;
$678 = $635 + 8 | 0;
$683 = ($678 & 7 | 0) == 0 ? 0 : 0 - $678 & 7;
$685 = $676 - $683 | 0;
HEAP32[762] = $635 + $683;
HEAP32[759] = $685;
HEAP32[$635 + ($683 + 4) >> 2] = $685 | 1;
HEAP32[$635 + ($676 + 4) >> 2] = 40;
HEAP32[763] = HEAP32[878];
break;
}
$690 = HEAP32[760] | 0;
if ($tbase$255$i >>> 0 < $690 >>> 0) {
HEAP32[760] = $tbase$255$i;
$755 = $tbase$255$i;
} else $755 = $690;
$692 = $tbase$255$i + $tsize$254$i | 0;
$sp$183$i = 3472;
while (1) {
if ((HEAP32[$sp$183$i >> 2] | 0) == ($692 | 0)) {
$$lcssa219 = $sp$183$i;
$sp$183$i$lcssa = $sp$183$i;
label = 212;
break;
}
$sp$183$i = HEAP32[$sp$183$i + 8 >> 2] | 0;
if (!$sp$183$i) {
$sp$0$i$i$i = 3472;
break;
}
}
if ((label | 0) == 212) if (!(HEAP32[$sp$183$i$lcssa + 12 >> 2] & 8)) {
HEAP32[$$lcssa219 >> 2] = $tbase$255$i;
$702 = $sp$183$i$lcssa + 4 | 0;
HEAP32[$702 >> 2] = (HEAP32[$702 >> 2] | 0) + $tsize$254$i;
$706 = $tbase$255$i + 8 | 0;
$711 = ($706 & 7 | 0) == 0 ? 0 : 0 - $706 & 7;
$714 = $tbase$255$i + ($tsize$254$i + 8) | 0;
$719 = ($714 & 7 | 0) == 0 ? 0 : 0 - $714 & 7;
$720 = $tbase$255$i + ($719 + $tsize$254$i) | 0;
$$sum$i19$i = $711 + $nb$0 | 0;
$724 = $tbase$255$i + $$sum$i19$i | 0;
$725 = $720 - ($tbase$255$i + $711) - $nb$0 | 0;
HEAP32[$tbase$255$i + ($711 + 4) >> 2] = $nb$0 | 3;
L324 : do if (($720 | 0) == ($635 | 0)) {
$730 = (HEAP32[759] | 0) + $725 | 0;
HEAP32[759] = $730;
HEAP32[762] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $730 | 1;
} else {
if (($720 | 0) == (HEAP32[761] | 0)) {
$736 = (HEAP32[758] | 0) + $725 | 0;
HEAP32[758] = $736;
HEAP32[761] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $736 | 1;
HEAP32[$tbase$255$i + ($736 + $$sum$i19$i) >> 2] = $736;
break;
}
$$sum2$i21$i = $tsize$254$i + 4 | 0;
$741 = HEAP32[$tbase$255$i + ($$sum2$i21$i + $719) >> 2] | 0;
if (($741 & 3 | 0) == 1) {
$744 = $741 & -8;
$745 = $741 >>> 3;
L332 : do if ($741 >>> 0 < 256) {
$748 = HEAP32[$tbase$255$i + (($719 | 8) + $tsize$254$i) >> 2] | 0;
$750 = HEAP32[$tbase$255$i + ($tsize$254$i + 12 + $719) >> 2] | 0;
$752 = 3064 + ($745 << 1 << 2) | 0;
do if (($748 | 0) != ($752 | 0)) {
if ($748 >>> 0 < $755 >>> 0) _abort();
if ((HEAP32[$748 + 12 >> 2] | 0) == ($720 | 0)) break;
_abort();
} while (0);
if (($750 | 0) == ($748 | 0)) {
HEAP32[756] = HEAP32[756] & ~(1 << $745);
break;
}
do if (($750 | 0) == ($752 | 0)) $$pre$phi58$i$iZ2D = $750 + 8 | 0; else {
if ($750 >>> 0 < $755 >>> 0) _abort();
$766 = $750 + 8 | 0;
if ((HEAP32[$766 >> 2] | 0) == ($720 | 0)) {
$$pre$phi58$i$iZ2D = $766;
break;
}
_abort();
} while (0);
HEAP32[$748 + 12 >> 2] = $750;
HEAP32[$$pre$phi58$i$iZ2D >> 2] = $748;
} else {
$771 = HEAP32[$tbase$255$i + (($719 | 24) + $tsize$254$i) >> 2] | 0;
$773 = HEAP32[$tbase$255$i + ($tsize$254$i + 12 + $719) >> 2] | 0;
do if (($773 | 0) == ($720 | 0)) {
$$sum67$i$i = $719 | 16;
$784 = $tbase$255$i + ($$sum2$i21$i + $$sum67$i$i) | 0;
$785 = HEAP32[$784 >> 2] | 0;
if (!$785) {
$787 = $tbase$255$i + ($$sum67$i$i + $tsize$254$i) | 0;
$788 = HEAP32[$787 >> 2] | 0;
if (!$788) {
$R$1$i$i = 0;
break;
} else {
$R$0$i$i = $788;
$RP$0$i$i = $787;
}
} else {
$R$0$i$i = $785;
$RP$0$i$i = $784;
}
while (1) {
$790 = $R$0$i$i + 20 | 0;
$791 = HEAP32[$790 >> 2] | 0;
if ($791) {
$R$0$i$i = $791;
$RP$0$i$i = $790;
continue;
}
$793 = $R$0$i$i + 16 | 0;
$794 = HEAP32[$793 >> 2] | 0;
if (!$794) {
$R$0$i$i$lcssa = $R$0$i$i;
$RP$0$i$i$lcssa = $RP$0$i$i;
break;
} else {
$R$0$i$i = $794;
$RP$0$i$i = $793;
}
}
if ($RP$0$i$i$lcssa >>> 0 < $755 >>> 0) _abort(); else {
HEAP32[$RP$0$i$i$lcssa >> 2] = 0;
$R$1$i$i = $R$0$i$i$lcssa;
break;
}
} else {
$776 = HEAP32[$tbase$255$i + (($719 | 8) + $tsize$254$i) >> 2] | 0;
if ($776 >>> 0 < $755 >>> 0) _abort();
$778 = $776 + 12 | 0;
if ((HEAP32[$778 >> 2] | 0) != ($720 | 0)) _abort();
$781 = $773 + 8 | 0;
if ((HEAP32[$781 >> 2] | 0) == ($720 | 0)) {
HEAP32[$778 >> 2] = $773;
HEAP32[$781 >> 2] = $776;
$R$1$i$i = $773;
break;
} else _abort();
} while (0);
if (!$771) break;
$799 = HEAP32[$tbase$255$i + ($tsize$254$i + 28 + $719) >> 2] | 0;
$800 = 3328 + ($799 << 2) | 0;
do if (($720 | 0) == (HEAP32[$800 >> 2] | 0)) {
HEAP32[$800 >> 2] = $R$1$i$i;
if ($R$1$i$i) break;
HEAP32[757] = HEAP32[757] & ~(1 << $799);
break L332;
} else {
if ($771 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$809 = $771 + 16 | 0;
if ((HEAP32[$809 >> 2] | 0) == ($720 | 0)) HEAP32[$809 >> 2] = $R$1$i$i; else HEAP32[$771 + 20 >> 2] = $R$1$i$i;
if (!$R$1$i$i) break L332;
} while (0);
$814 = HEAP32[760] | 0;
if ($R$1$i$i >>> 0 < $814 >>> 0) _abort();
HEAP32[$R$1$i$i + 24 >> 2] = $771;
$$sum3132$i$i = $719 | 16;
$818 = HEAP32[$tbase$255$i + ($$sum3132$i$i + $tsize$254$i) >> 2] | 0;
do if ($818) if ($818 >>> 0 < $814 >>> 0) _abort(); else {
HEAP32[$R$1$i$i + 16 >> 2] = $818;
HEAP32[$818 + 24 >> 2] = $R$1$i$i;
break;
} while (0);
$824 = HEAP32[$tbase$255$i + ($$sum2$i21$i + $$sum3132$i$i) >> 2] | 0;
if (!$824) break;
if ($824 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R$1$i$i + 20 >> 2] = $824;
HEAP32[$824 + 24 >> 2] = $R$1$i$i;
break;
}
} while (0);
$oldfirst$0$i$i = $tbase$255$i + (($744 | $719) + $tsize$254$i) | 0;
$qsize$0$i$i = $744 + $725 | 0;
} else {
$oldfirst$0$i$i = $720;
$qsize$0$i$i = $725;
}
$832 = $oldfirst$0$i$i + 4 | 0;
HEAP32[$832 >> 2] = HEAP32[$832 >> 2] & -2;
HEAP32[$tbase$255$i + ($$sum$i19$i + 4) >> 2] = $qsize$0$i$i | 1;
HEAP32[$tbase$255$i + ($qsize$0$i$i + $$sum$i19$i) >> 2] = $qsize$0$i$i;
$838 = $qsize$0$i$i >>> 3;
if ($qsize$0$i$i >>> 0 < 256) {
$840 = $838 << 1;
$841 = 3064 + ($840 << 2) | 0;
$842 = HEAP32[756] | 0;
$843 = 1 << $838;
do if (!($842 & $843)) {
HEAP32[756] = $842 | $843;
$$pre$phi$i23$iZ2D = 3064 + ($840 + 2 << 2) | 0;
$F4$0$i$i = $841;
} else {
$847 = 3064 + ($840 + 2 << 2) | 0;
$848 = HEAP32[$847 >> 2] | 0;
if ($848 >>> 0 >= (HEAP32[760] | 0) >>> 0) {
$$pre$phi$i23$iZ2D = $847;
$F4$0$i$i = $848;
break;
}
_abort();
} while (0);
HEAP32[$$pre$phi$i23$iZ2D >> 2] = $724;
HEAP32[$F4$0$i$i + 12 >> 2] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $F4$0$i$i;
HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $841;
break;
}
$854 = $qsize$0$i$i >>> 8;
do if (!$854) $I7$0$i$i = 0; else {
if ($qsize$0$i$i >>> 0 > 16777215) {
$I7$0$i$i = 31;
break;
}
$859 = ($854 + 1048320 | 0) >>> 16 & 8;
$860 = $854 << $859;
$863 = ($860 + 520192 | 0) >>> 16 & 4;
$865 = $860 << $863;
$868 = ($865 + 245760 | 0) >>> 16 & 2;
$873 = 14 - ($863 | $859 | $868) + ($865 << $868 >>> 15) | 0;
$I7$0$i$i = $qsize$0$i$i >>> ($873 + 7 | 0) & 1 | $873 << 1;
} while (0);
$879 = 3328 + ($I7$0$i$i << 2) | 0;
HEAP32[$tbase$255$i + ($$sum$i19$i + 28) >> 2] = $I7$0$i$i;
HEAP32[$tbase$255$i + ($$sum$i19$i + 20) >> 2] = 0;
HEAP32[$tbase$255$i + ($$sum$i19$i + 16) >> 2] = 0;
$883 = HEAP32[757] | 0;
$884 = 1 << $I7$0$i$i;
if (!($883 & $884)) {
HEAP32[757] = $883 | $884;
HEAP32[$879 >> 2] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = $879;
HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $724;
break;
}
$891 = HEAP32[$879 >> 2] | 0;
L418 : do if ((HEAP32[$891 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) $T$0$lcssa$i25$i = $891; else {
$K8$051$i$i = $qsize$0$i$i << (($I7$0$i$i | 0) == 31 ? 0 : 25 - ($I7$0$i$i >>> 1) | 0);
$T$050$i$i = $891;
while (1) {
$908 = $T$050$i$i + 16 + ($K8$051$i$i >>> 31 << 2) | 0;
$903 = HEAP32[$908 >> 2] | 0;
if (!$903) {
$$lcssa = $908;
$T$050$i$i$lcssa = $T$050$i$i;
break;
}
if ((HEAP32[$903 + 4 >> 2] & -8 | 0) == ($qsize$0$i$i | 0)) {
$T$0$lcssa$i25$i = $903;
break L418;
} else {
$K8$051$i$i = $K8$051$i$i << 1;
$T$050$i$i = $903;
}
}
if ($$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa >> 2] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = $T$050$i$i$lcssa;
HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $724;
break L324;
}
} while (0);
$915 = $T$0$lcssa$i25$i + 8 | 0;
$916 = HEAP32[$915 >> 2] | 0;
$917 = HEAP32[760] | 0;
if ($916 >>> 0 >= $917 >>> 0 & $T$0$lcssa$i25$i >>> 0 >= $917 >>> 0) {
HEAP32[$916 + 12 >> 2] = $724;
HEAP32[$915 >> 2] = $724;
HEAP32[$tbase$255$i + ($$sum$i19$i + 8) >> 2] = $916;
HEAP32[$tbase$255$i + ($$sum$i19$i + 12) >> 2] = $T$0$lcssa$i25$i;
HEAP32[$tbase$255$i + ($$sum$i19$i + 24) >> 2] = 0;
break;
} else _abort();
} while (0);
$mem$0 = $tbase$255$i + ($711 | 8) | 0;
return $mem$0 | 0;
} else $sp$0$i$i$i = 3472;
while (1) {
$925 = HEAP32[$sp$0$i$i$i >> 2] | 0;
if ($925 >>> 0 <= $635 >>> 0) {
$928 = HEAP32[$sp$0$i$i$i + 4 >> 2] | 0;
$929 = $925 + $928 | 0;
if ($929 >>> 0 > $635 >>> 0) {
$$lcssa215 = $925;
$$lcssa216 = $928;
$$lcssa217 = $929;
break;
}
}
$sp$0$i$i$i = HEAP32[$sp$0$i$i$i + 8 >> 2] | 0;
}
$934 = $$lcssa215 + ($$lcssa216 + -39) | 0;
$940 = $$lcssa215 + ($$lcssa216 + -47 + (($934 & 7 | 0) == 0 ? 0 : 0 - $934 & 7)) | 0;
$941 = $635 + 16 | 0;
$943 = $940 >>> 0 < $941 >>> 0 ? $635 : $940;
$944 = $943 + 8 | 0;
$947 = $tbase$255$i + 8 | 0;
$952 = ($947 & 7 | 0) == 0 ? 0 : 0 - $947 & 7;
$954 = $tsize$254$i + -40 - $952 | 0;
HEAP32[762] = $tbase$255$i + $952;
HEAP32[759] = $954;
HEAP32[$tbase$255$i + ($952 + 4) >> 2] = $954 | 1;
HEAP32[$tbase$255$i + ($tsize$254$i + -36) >> 2] = 40;
HEAP32[763] = HEAP32[878];
$959 = $943 + 4 | 0;
HEAP32[$959 >> 2] = 27;
HEAP32[$944 >> 2] = HEAP32[868];
HEAP32[$944 + 4 >> 2] = HEAP32[869];
HEAP32[$944 + 8 >> 2] = HEAP32[870];
HEAP32[$944 + 12 >> 2] = HEAP32[871];
HEAP32[868] = $tbase$255$i;
HEAP32[869] = $tsize$254$i;
HEAP32[871] = 0;
HEAP32[870] = $944;
$960 = $943 + 28 | 0;
HEAP32[$960 >> 2] = 7;
if (($943 + 32 | 0) >>> 0 < $$lcssa217 >>> 0) {
$964 = $960;
do {
$964$looptemp = $964;
$964 = $964 + 4 | 0;
HEAP32[$964 >> 2] = 7;
} while (($964$looptemp + 8 | 0) >>> 0 < $$lcssa217 >>> 0);
}
if (($943 | 0) != ($635 | 0)) {
$970 = $943 - $635 | 0;
HEAP32[$959 >> 2] = HEAP32[$959 >> 2] & -2;
HEAP32[$635 + 4 >> 2] = $970 | 1;
HEAP32[$943 >> 2] = $970;
$975 = $970 >>> 3;
if ($970 >>> 0 < 256) {
$977 = $975 << 1;
$978 = 3064 + ($977 << 2) | 0;
$979 = HEAP32[756] | 0;
$980 = 1 << $975;
if (!($979 & $980)) {
HEAP32[756] = $979 | $980;
$$pre$phi$i$iZ2D = 3064 + ($977 + 2 << 2) | 0;
$F$0$i$i = $978;
} else {
$984 = 3064 + ($977 + 2 << 2) | 0;
$985 = HEAP32[$984 >> 2] | 0;
if ($985 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
$$pre$phi$i$iZ2D = $984;
$F$0$i$i = $985;
}
}
HEAP32[$$pre$phi$i$iZ2D >> 2] = $635;
HEAP32[$F$0$i$i + 12 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $F$0$i$i;
HEAP32[$635 + 12 >> 2] = $978;
break;
}
$991 = $970 >>> 8;
if (!$991) $I1$0$i$i = 0; else if ($970 >>> 0 > 16777215) $I1$0$i$i = 31; else {
$996 = ($991 + 1048320 | 0) >>> 16 & 8;
$997 = $991 << $996;
$1000 = ($997 + 520192 | 0) >>> 16 & 4;
$1002 = $997 << $1000;
$1005 = ($1002 + 245760 | 0) >>> 16 & 2;
$1010 = 14 - ($1000 | $996 | $1005) + ($1002 << $1005 >>> 15) | 0;
$I1$0$i$i = $970 >>> ($1010 + 7 | 0) & 1 | $1010 << 1;
}
$1016 = 3328 + ($I1$0$i$i << 2) | 0;
HEAP32[$635 + 28 >> 2] = $I1$0$i$i;
HEAP32[$635 + 20 >> 2] = 0;
HEAP32[$941 >> 2] = 0;
$1019 = HEAP32[757] | 0;
$1020 = 1 << $I1$0$i$i;
if (!($1019 & $1020)) {
HEAP32[757] = $1019 | $1020;
HEAP32[$1016 >> 2] = $635;
HEAP32[$635 + 24 >> 2] = $1016;
HEAP32[$635 + 12 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $635;
break;
}
$1027 = HEAP32[$1016 >> 2] | 0;
L459 : do if ((HEAP32[$1027 + 4 >> 2] & -8 | 0) == ($970 | 0)) $T$0$lcssa$i$i = $1027; else {
$K2$07$i$i = $970 << (($I1$0$i$i | 0) == 31 ? 0 : 25 - ($I1$0$i$i >>> 1) | 0);
$T$06$i$i = $1027;
while (1) {
$1044 = $T$06$i$i + 16 + ($K2$07$i$i >>> 31 << 2) | 0;
$1039 = HEAP32[$1044 >> 2] | 0;
if (!$1039) {
$$lcssa211 = $1044;
$T$06$i$i$lcssa = $T$06$i$i;
break;
}
if ((HEAP32[$1039 + 4 >> 2] & -8 | 0) == ($970 | 0)) {
$T$0$lcssa$i$i = $1039;
break L459;
} else {
$K2$07$i$i = $K2$07$i$i << 1;
$T$06$i$i = $1039;
}
}
if ($$lcssa211 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa211 >> 2] = $635;
HEAP32[$635 + 24 >> 2] = $T$06$i$i$lcssa;
HEAP32[$635 + 12 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $635;
break L299;
}
} while (0);
$1051 = $T$0$lcssa$i$i + 8 | 0;
$1052 = HEAP32[$1051 >> 2] | 0;
$1053 = HEAP32[760] | 0;
if ($1052 >>> 0 >= $1053 >>> 0 & $T$0$lcssa$i$i >>> 0 >= $1053 >>> 0) {
HEAP32[$1052 + 12 >> 2] = $635;
HEAP32[$1051 >> 2] = $635;
HEAP32[$635 + 8 >> 2] = $1052;
HEAP32[$635 + 12 >> 2] = $T$0$lcssa$i$i;
HEAP32[$635 + 24 >> 2] = 0;
break;
} else _abort();
}
} while (0);
$1060 = HEAP32[759] | 0;
if ($1060 >>> 0 > $nb$0 >>> 0) {
$1062 = $1060 - $nb$0 | 0;
HEAP32[759] = $1062;
$1063 = HEAP32[762] | 0;
HEAP32[762] = $1063 + $nb$0;
HEAP32[$1063 + ($nb$0 + 4) >> 2] = $1062 | 1;
HEAP32[$1063 + 4 >> 2] = $nb$0 | 3;
$mem$0 = $1063 + 8 | 0;
return $mem$0 | 0;
}
}
$1070 = ___errno_location() | 0;
HEAP32[$1070 >> 2] = 12;
$mem$0 = 0;
return $mem$0 | 0;
}
function ___floatscan($f, $prec, $pok) {
$f = $f | 0;
$prec = $prec | 0;
$pok = $pok | 0;
var $$0 = 0.0, $$0$i27 = 0.0, $$010$i = 0, $$07$i = 0, $$0710$i = 0, $$0711$i = 0, $$09$i = 0, $$1$be$i = 0, $$1$ph$i = 0, $$18$i = 0, $$2$i = 0, $$3$be$i = 0, $$3$lcssa$i = 0, $$3105$i = 0, $$in = 0, $$lcssa = 0, $$lcssa256 = 0, $$lcssa256$lcssa = 0, $$lcssa257 = 0, $$lcssa257$lcssa = 0, $$lcssa263 = 0, $$lcssa264 = 0, $$lcssa265 = 0, $$lcssa275 = 0, $$not$i = 0, $$pre$i = 0, $$pre$i17 = 0, $$pre$phi42$iZ2D = 0.0, $$sink$off0$i = 0, $0 = 0, $1 = 0, $103 = 0, $113 = 0, $115 = 0, $123 = 0, $125 = 0, $132 = 0, $139 = 0, $147 = 0, $15 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $183 = 0.0, $190 = 0, $192 = 0, $2 = 0, $201 = 0, $205 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $223 = 0, $224 = 0, $225 = 0, $235 = 0, $236 = 0, $249 = 0, $251 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $266 = 0, $270 = 0, $272 = 0, $279 = 0, $283 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $295 = 0, $297 = 0, $298 = 0, $299 = 0, $300 = 0, $310 = 0.0, $322 = 0.0, $324 = 0, $330 = 0, $331 = 0, $338 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $350 = 0, $358 = 0, $36 = 0, $360 = 0, $362 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $371 = 0, $376 = 0, $377 = 0, $381 = 0, $39 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $402 = 0, $403 = 0, $412 = 0, $413 = 0, $414 = 0, $42 = 0, $421 = 0, $422 = 0, $427 = 0, $428 = 0, $430 = 0, $431 = 0, $444 = 0, $446 = 0, $452 = 0, $456 = 0, $458 = 0, $464 = 0, $470 = 0, $471 = 0, $472 = 0, $494 = 0, $506 = 0, $510 = 0, $513 = 0, $515 = 0, $516 = 0, $517 = 0, $520 = 0, $521 = 0, $533 = 0, $534 = 0, $535 = 0, $539 = 0, $541 = 0, $543 = 0, $544 = 0, $550 = 0, $552 = 0, $557 = 0, $560 = 0, $564 = 0, $567 = 0, $572 = 0, $576 = 0, $577 = 0, $579 = 0, $583 = 0, $585 = 0, $588 = 0, $589 = 0, $590 = 0, $591 = 0, $594 = 0, $595 = 0, $60 = 0, $604 = 0, $609 = 0, $610 = 0, $617 = 0, $619 = 0.0, $621 = 0, $625 = 0.0, $626 = 0.0, $629 = 0.0, $633 = 0, $636 = 0, $643 = 0.0, $661 = 0.0, $663 = 0, $669 = 0, $67 = 0, $670 = 0, $677 = 0, $680 = 0, $69 = 0, $691 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $77 = 0, $82 = 0, $9 = 0, $90 = 0, $99 = 0, $a$0$lcssa151$i = 0, $a$085$i = 0, $a$1$i = 0, $a$1$i$lcssa = 0, $a$2$ph38$i = 0, $a$3$i = 0, $a$3$i$lcssa248 = 0, $a$3$i249 = 0, $a$3$ph$i = 0, $a$3$ph157$i = 0, $a$478$i = 0, $a$5$i = 0, $a$5$i$lcssa = 0, $a$5$i$lcssa$lcssa = 0, $bias$0$i = 0.0, $bias$0$i25 = 0.0, $bits$0$ph = 0, $c$0 = 0, $c$0$i = 0, $c$1$lcssa = 0, $c$1$ph$i = 0, $c$179 = 0, $c$2 = 0, $c$2$i = 0, $c$2$lcssa$i = 0, $c$377 = 0, $c$4 = 0, $c$5 = 0, $c$6 = 0, $carry$087$i = 0, $carry1$0$i = 0, $carry1$1$i = 0, $carry1$1$i$lcssa = 0, $carry1$1$i$lcssa$lcssa = 0, $carry3$081$i = 0, $d$0$i = 0, $denormal$0$i = 0, $denormal$2$i = 0, $e2$0$i19 = 0, $e2$0$ph$i = 0, $e2$1$i = 0, $e2$1$i246 = 0, $e2$1$ph$i = 0, $e2$1$ph156$i = 0, $e2$2$i = 0, $e2$3$i = 0, $emin$0$ph = 0, $frac$0$i = 0.0, $frac$1$i = 0.0, $frac$2$i = 0.0, $gotdig$0$i = 0, $gotdig$0$i$lcssa242 = 0, $gotdig$0$i12 = 0, $gotdig$0$i12$lcssa273 = 0, $gotdig$2$i = 0, $gotdig$2$i$lcssa = 0, $gotdig$2$i13 = 0, $gotdig$3$i = 0, $gotdig$3$lcssa$i = 0, $gotdig$3101$i = 0, $gotdig$3101$i$lcssa = 0, $gotdig$4$i = 0, $gotrad$0$i = 0, $gotrad$0$i$lcssa = 0, $gotrad$0$i14 = 0, $gotrad$1$i = 0, $gotrad$1$lcssa$i = 0, $gotrad$1102$i = 0, $gotrad$2$i = 0, $gottail$0$i = 0, $gottail$1$i = 0, $gottail$2$i = 0, $i$0$lcssa = 0, $i$078 = 0, $i$1 = 0, $i$276 = 0, $i$3 = 0, $i$4 = 0, $i$4$lcssa = 0, $j$0$lcssa$i = 0, $j$0104$i = 0, $j$0104$i$lcssa = 0, $j$067$i = 0, $j$068$i = 0, $j$069$i = 0, $j$2$i = 0, $j$394$i = 0, $k$0$lcssa$i = 0, $k$0103$i = 0, $k$0103$i$lcssa = 0, $k$063$i = 0, $k$064$i = 0, $k$065$i = 0, $k$2$i = 0, $k$3$i = 0, $k$486$i = 0, $k$5$i = 0, $k$5$in$i = 0, $k$679$i = 0, $lnz$0$lcssa$i = 0, $lnz$0100$i = 0, $lnz$0100$i$lcssa = 0, $lnz$057$i = 0, $lnz$058$i = 0, $lnz$059$i = 0, $lnz$2$i = 0, $or$cond16$i = 0, $or$cond19$i = 0, $or$cond9$i = 0, $rp$0$lcssa152$i = 0, $rp$084$i = 0, $rp$1$i18 = 0, $rp$1$i18$lcssa = 0, $rp$2$ph36$i = 0, $rp$3$ph$i = 0, $rp$3$ph34$i = 0, $rp$477$i = 0, $rp$5$i = 0, $rp$5$i$lcssa = 0, $rp$5$i$lcssa$lcssa = 0, $scale$0$i = 0.0, $scale$1$i = 0.0, $scale$2$i = 0.0, $sign$0 = 0, $storemerge$i = 0, $sum$i = 0, $x$0$i = 0, $x$0$i$lcssa = 0, $x$1$i = 0, $x$2$i = 0, $x$3$lcssa$i = 0, $x$324$i = 0, $x$4$lcssa$i = 0, $x$419$i = 0, $x$5$i = 0, $x$i = 0, $y$0$i = 0.0, $y$0$i$lcssa = 0.0, $y$1$i = 0.0, $y$1$i24 = 0.0, $y$2$i = 0.0, $y$2$i26 = 0.0, $y$3$i = 0.0, $y$3$lcssa$i = 0.0, $y$320$i = 0.0, $y$4$i = 0.0, $z$0$i = 0, $z$1$i = 0, $z$1$ph37$i = 0, $z$2$i = 0, $z$3$i = 0, $z$3$i$lcssa = 0, $z$3$i$lcssa$lcssa = 0, $z$4$i = 0, $z$5$ph$i = 0, $z$7$1$i = 0, $z$7$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 512 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$x$i = sp;
switch ($prec | 0) {
case 0:
{
$bits$0$ph = 24;
$emin$0$ph = -149;
label = 4;
break;
}
case 1:
{
$bits$0$ph = 53;
$emin$0$ph = -1074;
label = 4;
break;
}
case 2:
{
$bits$0$ph = 53;
$emin$0$ph = -1074;
label = 4;
break;
}
default:
$$0 = 0.0;
}
L4 : do if ((label | 0) == 4) {
$0 = $f + 4 | 0;
$1 = $f + 100 | 0;
do {
$2 = HEAP32[$0 >> 2] | 0;
if ($2 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $2 + 1;
$9 = HEAPU8[$2 >> 0] | 0;
} else $9 = ___shgetc($f) | 0;
} while ((_isspace($9) | 0) != 0);
$$lcssa275 = $9;
L13 : do switch ($$lcssa275 | 0) {
case 43:
case 45:
{
$15 = 1 - ((($$lcssa275 | 0) == 45 & 1) << 1) | 0;
$16 = HEAP32[$0 >> 2] | 0;
if ($16 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $16 + 1;
$c$0 = HEAPU8[$16 >> 0] | 0;
$sign$0 = $15;
break L13;
} else {
$c$0 = ___shgetc($f) | 0;
$sign$0 = $15;
break L13;
}
break;
}
default:
{
$c$0 = $$lcssa275;
$sign$0 = 1;
}
} while (0);
$c$179 = $c$0;
$i$078 = 0;
while (1) {
if (($c$179 | 32 | 0) != (HEAP8[16484 + $i$078 >> 0] | 0)) {
$c$1$lcssa = $c$179;
$i$0$lcssa = $i$078;
break;
}
do if ($i$078 >>> 0 < 7) {
$29 = HEAP32[$0 >> 2] | 0;
if ($29 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $29 + 1;
$c$2 = HEAPU8[$29 >> 0] | 0;
break;
} else {
$c$2 = ___shgetc($f) | 0;
break;
}
} else $c$2 = $c$179; while (0);
$36 = $i$078 + 1 | 0;
if ($36 >>> 0 < 8) {
$c$179 = $c$2;
$i$078 = $36;
} else {
$c$1$lcssa = $c$2;
$i$0$lcssa = $36;
break;
}
}
L29 : do switch ($i$0$lcssa | 0) {
case 8:
break;
case 3:
{
label = 23;
break;
}
default:
{
$39 = ($pok | 0) != 0;
if ($39 & $i$0$lcssa >>> 0 > 3) if (($i$0$lcssa | 0) == 8) break L29; else {
label = 23;
break L29;
}
L34 : do if (!$i$0$lcssa) {
$c$377 = $c$1$lcssa;
$i$276 = 0;
while (1) {
if (($c$377 | 32 | 0) != (HEAP8[18327 + $i$276 >> 0] | 0)) {
$c$5 = $c$377;
$i$3 = $i$276;
break L34;
}
do if ($i$276 >>> 0 < 2) {
$60 = HEAP32[$0 >> 2] | 0;
if ($60 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $60 + 1;
$c$4 = HEAPU8[$60 >> 0] | 0;
break;
} else {
$c$4 = ___shgetc($f) | 0;
break;
}
} else $c$4 = $c$377; while (0);
$67 = $i$276 + 1 | 0;
if ($67 >>> 0 < 3) {
$c$377 = $c$4;
$i$276 = $67;
} else {
$c$5 = $c$4;
$i$3 = $67;
break;
}
}
} else {
$c$5 = $c$1$lcssa;
$i$3 = $i$0$lcssa;
} while (0);
switch ($i$3 | 0) {
case 3:
{
$69 = HEAP32[$0 >> 2] | 0;
if ($69 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $69 + 1;
$77 = HEAPU8[$69 >> 0] | 0;
} else $77 = ___shgetc($f) | 0;
if (($77 | 0) == 40) $i$4 = 1; else {
if (!(HEAP32[$1 >> 2] | 0)) {
$$0 = nan;
break L4;
}
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$$0 = nan;
break L4;
}
while (1) {
$82 = HEAP32[$0 >> 2] | 0;
if ($82 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $82 + 1;
$90 = HEAPU8[$82 >> 0] | 0;
} else $90 = ___shgetc($f) | 0;
if (!(($90 + -48 | 0) >>> 0 < 10 | ($90 + -65 | 0) >>> 0 < 26)) if (!(($90 | 0) == 95 | ($90 + -97 | 0) >>> 0 < 26)) {
$$lcssa = $90;
$i$4$lcssa = $i$4;
break;
}
$i$4 = $i$4 + 1 | 0;
}
if (($$lcssa | 0) == 41) {
$$0 = nan;
break L4;
}
$99 = (HEAP32[$1 >> 2] | 0) == 0;
if (!$99) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
if (!$39) {
$103 = ___errno_location() | 0;
HEAP32[$103 >> 2] = 22;
___shlim($f, 0);
$$0 = 0.0;
break L4;
}
if (!$i$4$lcssa) {
$$0 = nan;
break L4;
} else $$in = $i$4$lcssa;
while (1) {
$$in = $$in + -1 | 0;
if (!$99) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
if (!$$in) {
$$0 = nan;
break L4;
}
}
break;
}
case 0:
{
do if (($c$5 | 0) == 48) {
$115 = HEAP32[$0 >> 2] | 0;
if ($115 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $115 + 1;
$123 = HEAPU8[$115 >> 0] | 0;
} else $123 = ___shgetc($f) | 0;
if (($123 | 32 | 0) != 120) {
if (!(HEAP32[$1 >> 2] | 0)) {
$c$6 = 48;
break;
}
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$c$6 = 48;
break;
}
$125 = HEAP32[$0 >> 2] | 0;
if ($125 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $125 + 1;
$c$0$i = HEAPU8[$125 >> 0] | 0;
$gotdig$0$i = 0;
} else {
$c$0$i = ___shgetc($f) | 0;
$gotdig$0$i = 0;
}
L94 : while (1) {
switch ($c$0$i | 0) {
case 46:
{
$gotdig$0$i$lcssa242 = $gotdig$0$i;
label = 74;
break L94;
break;
}
case 48:
break;
default:
{
$169 = 0;
$171 = 0;
$694 = 0;
$695 = 0;
$c$2$i = $c$0$i;
$gotdig$2$i = $gotdig$0$i;
$gotrad$0$i = 0;
$gottail$0$i = 0;
$scale$0$i = 1.0;
$x$0$i = 0;
$y$0$i = 0.0;
break L94;
}
}
$132 = HEAP32[$0 >> 2] | 0;
if ($132 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $132 + 1;
$c$0$i = HEAPU8[$132 >> 0] | 0;
$gotdig$0$i = 1;
continue;
} else {
$c$0$i = ___shgetc($f) | 0;
$gotdig$0$i = 1;
continue;
}
}
if ((label | 0) == 74) {
$139 = HEAP32[$0 >> 2] | 0;
if ($139 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $139 + 1;
$c$1$ph$i = HEAPU8[$139 >> 0] | 0;
} else $c$1$ph$i = ___shgetc($f) | 0;
if (($c$1$ph$i | 0) == 48) {
$154 = 0;
$155 = 0;
while (1) {
$147 = HEAP32[$0 >> 2] | 0;
if ($147 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $147 + 1;
$159 = HEAPU8[$147 >> 0] | 0;
} else $159 = ___shgetc($f) | 0;
$156 = _i64Add($154 | 0, $155 | 0, -1, -1) | 0;
$157 = tempRet0;
if (($159 | 0) == 48) {
$154 = $156;
$155 = $157;
} else {
$169 = 0;
$171 = 0;
$694 = $156;
$695 = $157;
$c$2$i = $159;
$gotdig$2$i = 1;
$gotrad$0$i = 1;
$gottail$0$i = 0;
$scale$0$i = 1.0;
$x$0$i = 0;
$y$0$i = 0.0;
break;
}
}
} else {
$169 = 0;
$171 = 0;
$694 = 0;
$695 = 0;
$c$2$i = $c$1$ph$i;
$gotdig$2$i = $gotdig$0$i$lcssa242;
$gotrad$0$i = 1;
$gottail$0$i = 0;
$scale$0$i = 1.0;
$x$0$i = 0;
$y$0$i = 0.0;
}
}
while (1) {
$160 = $c$2$i + -48 | 0;
$$pre$i = $c$2$i | 32;
if ($160 >>> 0 < 10) label = 86; else {
$164 = ($c$2$i | 0) == 46;
if (!($164 | ($$pre$i + -97 | 0) >>> 0 < 6)) {
$213 = $171;
$214 = $694;
$216 = $169;
$217 = $695;
$c$2$lcssa$i = $c$2$i;
$gotdig$2$i$lcssa = $gotdig$2$i;
$gotrad$0$i$lcssa = $gotrad$0$i;
$x$0$i$lcssa = $x$0$i;
$y$0$i$lcssa = $y$0$i;
break;
}
if ($164) if (!$gotrad$0$i) {
$696 = $171;
$697 = $169;
$698 = $171;
$699 = $169;
$gotdig$3$i = $gotdig$2$i;
$gotrad$1$i = 1;
$gottail$2$i = $gottail$0$i;
$scale$2$i = $scale$0$i;
$x$2$i = $x$0$i;
$y$2$i = $y$0$i;
} else {
$213 = $171;
$214 = $694;
$216 = $169;
$217 = $695;
$c$2$lcssa$i = 46;
$gotdig$2$i$lcssa = $gotdig$2$i;
$gotrad$0$i$lcssa = $gotrad$0$i;
$x$0$i$lcssa = $x$0$i;
$y$0$i$lcssa = $y$0$i;
break;
} else label = 86;
}
if ((label | 0) == 86) {
label = 0;
$d$0$i = ($c$2$i | 0) > 57 ? $$pre$i + -87 | 0 : $160;
do if (($169 | 0) < 0 | ($169 | 0) == 0 & $171 >>> 0 < 8) {
$gottail$1$i = $gottail$0$i;
$scale$1$i = $scale$0$i;
$x$1$i = $d$0$i + ($x$0$i << 4) | 0;
$y$1$i = $y$0$i;
} else {
if (($169 | 0) < 0 | ($169 | 0) == 0 & $171 >>> 0 < 14) {
$183 = $scale$0$i * .0625;
$gottail$1$i = $gottail$0$i;
$scale$1$i = $183;
$x$1$i = $x$0$i;
$y$1$i = $y$0$i + $183 * +($d$0$i | 0);
break;
}
if (($gottail$0$i | 0) != 0 | ($d$0$i | 0) == 0) {
$gottail$1$i = $gottail$0$i;
$scale$1$i = $scale$0$i;
$x$1$i = $x$0$i;
$y$1$i = $y$0$i;
} else {
$gottail$1$i = 1;
$scale$1$i = $scale$0$i;
$x$1$i = $x$0$i;
$y$1$i = $y$0$i + $scale$0$i * .5;
}
} while (0);
$190 = _i64Add($171 | 0, $169 | 0, 1, 0) | 0;
$696 = $694;
$697 = $695;
$698 = $190;
$699 = tempRet0;
$gotdig$3$i = 1;
$gotrad$1$i = $gotrad$0$i;
$gottail$2$i = $gottail$1$i;
$scale$2$i = $scale$1$i;
$x$2$i = $x$1$i;
$y$2$i = $y$1$i;
}
$192 = HEAP32[$0 >> 2] | 0;
if ($192 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $192 + 1;
$169 = $699;
$171 = $698;
$694 = $696;
$695 = $697;
$c$2$i = HEAPU8[$192 >> 0] | 0;
$gotdig$2$i = $gotdig$3$i;
$gotrad$0$i = $gotrad$1$i;
$gottail$0$i = $gottail$2$i;
$scale$0$i = $scale$2$i;
$x$0$i = $x$2$i;
$y$0$i = $y$2$i;
continue;
} else {
$169 = $699;
$171 = $698;
$694 = $696;
$695 = $697;
$c$2$i = ___shgetc($f) | 0;
$gotdig$2$i = $gotdig$3$i;
$gotrad$0$i = $gotrad$1$i;
$gottail$0$i = $gottail$2$i;
$scale$0$i = $scale$2$i;
$x$0$i = $x$2$i;
$y$0$i = $y$2$i;
continue;
}
}
if (!$gotdig$2$i$lcssa) {
$201 = (HEAP32[$1 >> 2] | 0) == 0;
if (!$201) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
if (!$pok) ___shlim($f, 0); else if (!$201) {
$205 = HEAP32[$0 >> 2] | 0;
HEAP32[$0 >> 2] = $205 + -1;
if ($gotrad$0$i$lcssa) HEAP32[$0 >> 2] = $205 + -2;
}
$$0 = +($sign$0 | 0) * 0.0;
break L4;
}
$211 = ($gotrad$0$i$lcssa | 0) == 0;
$212 = $211 ? $213 : $214;
$215 = $211 ? $216 : $217;
if (($216 | 0) < 0 | ($216 | 0) == 0 & $213 >>> 0 < 8) {
$224 = $213;
$225 = $216;
$x$324$i = $x$0$i$lcssa;
while (1) {
$223 = $x$324$i << 4;
$224 = _i64Add($224 | 0, $225 | 0, 1, 0) | 0;
$225 = tempRet0;
if (!(($225 | 0) < 0 | ($225 | 0) == 0 & $224 >>> 0 < 8)) {
$x$3$lcssa$i = $223;
break;
} else $x$324$i = $223;
}
} else $x$3$lcssa$i = $x$0$i$lcssa;
if (($c$2$lcssa$i | 32 | 0) == 112) {
$235 = _scanexp($f, $pok) | 0;
$236 = tempRet0;
if (($235 | 0) == 0 & ($236 | 0) == -2147483648) {
if (!$pok) {
___shlim($f, 0);
$$0 = 0.0;
break L4;
}
if (!(HEAP32[$1 >> 2] | 0)) {
$253 = 0;
$254 = 0;
} else {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$253 = 0;
$254 = 0;
}
} else {
$253 = $235;
$254 = $236;
}
} else if (!(HEAP32[$1 >> 2] | 0)) {
$253 = 0;
$254 = 0;
} else {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$253 = 0;
$254 = 0;
}
$249 = _bitshift64Shl($212 | 0, $215 | 0, 2) | 0;
$251 = _i64Add($249 | 0, tempRet0 | 0, -32, -1) | 0;
$255 = _i64Add($251 | 0, tempRet0 | 0, $253 | 0, $254 | 0) | 0;
$256 = tempRet0;
if (!$x$3$lcssa$i) {
$$0 = +($sign$0 | 0) * 0.0;
break L4;
}
if (($256 | 0) > 0 | ($256 | 0) == 0 & $255 >>> 0 > (0 - $emin$0$ph | 0) >>> 0) {
$266 = ___errno_location() | 0;
HEAP32[$266 >> 2] = 34;
$$0 = +($sign$0 | 0) * 1797693134862315708145274.0e284 * 1797693134862315708145274.0e284;
break L4;
}
$270 = $emin$0$ph + -106 | 0;
$272 = (($270 | 0) < 0) << 31 >> 31;
if (($256 | 0) < ($272 | 0) | ($256 | 0) == ($272 | 0) & $255 >>> 0 < $270 >>> 0) {
$279 = ___errno_location() | 0;
HEAP32[$279 >> 2] = 34;
$$0 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
break L4;
}
if (($x$3$lcssa$i | 0) > -1) {
$288 = $255;
$289 = $256;
$x$419$i = $x$3$lcssa$i;
$y$320$i = $y$0$i$lcssa;
while (1) {
$283 = !($y$320$i >= .5);
$287 = $283 & 1 | $x$419$i << 1;
$x$5$i = $287 ^ 1;
$y$4$i = $y$320$i + ($283 ? $y$320$i : $y$320$i + -1.0);
$290 = _i64Add($288 | 0, $289 | 0, -1, -1) | 0;
$291 = tempRet0;
if (($287 | 0) > -1) {
$288 = $290;
$289 = $291;
$x$419$i = $x$5$i;
$y$320$i = $y$4$i;
} else {
$297 = $290;
$298 = $291;
$x$4$lcssa$i = $x$5$i;
$y$3$lcssa$i = $y$4$i;
break;
}
}
} else {
$297 = $255;
$298 = $256;
$x$4$lcssa$i = $x$3$lcssa$i;
$y$3$lcssa$i = $y$0$i$lcssa;
}
$295 = _i64Subtract(32, 0, $emin$0$ph | 0, (($emin$0$ph | 0) < 0) << 31 >> 31 | 0) | 0;
$299 = _i64Add($297 | 0, $298 | 0, $295 | 0, tempRet0 | 0) | 0;
$300 = tempRet0;
if (0 > ($300 | 0) | 0 == ($300 | 0) & $bits$0$ph >>> 0 > $299 >>> 0) if (($299 | 0) < 0) {
$$0710$i = 0;
label = 127;
} else {
$$07$i = $299;
label = 125;
} else {
$$07$i = $bits$0$ph;
label = 125;
}
if ((label | 0) == 125) if (($$07$i | 0) < 53) {
$$0710$i = $$07$i;
label = 127;
} else {
$$0711$i = $$07$i;
$$pre$phi42$iZ2D = +($sign$0 | 0);
$bias$0$i = 0.0;
}
if ((label | 0) == 127) {
$310 = +($sign$0 | 0);
$$0711$i = $$0710$i;
$$pre$phi42$iZ2D = $310;
$bias$0$i = +_copysignl(+_scalbn(1.0, 84 - $$0710$i | 0), $310);
}
$or$cond9$i = ($x$4$lcssa$i & 1 | 0) == 0 & ($y$3$lcssa$i != 0.0 & ($$0711$i | 0) < 32);
$322 = $$pre$phi42$iZ2D * ($or$cond9$i ? 0.0 : $y$3$lcssa$i) + ($bias$0$i + $$pre$phi42$iZ2D * +((($or$cond9$i & 1) + $x$4$lcssa$i | 0) >>> 0)) - $bias$0$i;
if (!($322 != 0.0)) {
$324 = ___errno_location() | 0;
HEAP32[$324 >> 2] = 34;
}
$$0 = +_scalbnl($322, $297);
break L4;
} else $c$6 = $c$5; while (0);
$sum$i = $emin$0$ph + $bits$0$ph | 0;
$330 = 0 - $sum$i | 0;
$$09$i = $c$6;
$gotdig$0$i12 = 0;
L184 : while (1) {
switch ($$09$i | 0) {
case 46:
{
$gotdig$0$i12$lcssa273 = $gotdig$0$i12;
label = 138;
break L184;
break;
}
case 48:
break;
default:
{
$$2$i = $$09$i;
$700 = 0;
$701 = 0;
$gotdig$2$i13 = $gotdig$0$i12;
$gotrad$0$i14 = 0;
break L184;
}
}
$331 = HEAP32[$0 >> 2] | 0;
if ($331 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $331 + 1;
$$09$i = HEAPU8[$331 >> 0] | 0;
$gotdig$0$i12 = 1;
continue;
} else {
$$09$i = ___shgetc($f) | 0;
$gotdig$0$i12 = 1;
continue;
}
}
if ((label | 0) == 138) {
$338 = HEAP32[$0 >> 2] | 0;
if ($338 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $338 + 1;
$$1$ph$i = HEAPU8[$338 >> 0] | 0;
} else $$1$ph$i = ___shgetc($f) | 0;
if (($$1$ph$i | 0) == 48) {
$346 = 0;
$347 = 0;
while (1) {
$348 = _i64Add($346 | 0, $347 | 0, -1, -1) | 0;
$349 = tempRet0;
$350 = HEAP32[$0 >> 2] | 0;
if ($350 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $350 + 1;
$$1$be$i = HEAPU8[$350 >> 0] | 0;
} else $$1$be$i = ___shgetc($f) | 0;
if (($$1$be$i | 0) == 48) {
$346 = $348;
$347 = $349;
} else {
$$2$i = $$1$be$i;
$700 = $348;
$701 = $349;
$gotdig$2$i13 = 1;
$gotrad$0$i14 = 1;
break;
}
}
} else {
$$2$i = $$1$ph$i;
$700 = 0;
$701 = 0;
$gotdig$2$i13 = $gotdig$0$i12$lcssa273;
$gotrad$0$i14 = 1;
}
}
HEAP32[$x$i >> 2] = 0;
$358 = $$2$i + -48 | 0;
$360 = ($$2$i | 0) == 46;
L203 : do if ($360 | $358 >>> 0 < 10) {
$362 = $x$i + 496 | 0;
$$3105$i = $$2$i;
$365 = 0;
$366 = 0;
$702 = $360;
$703 = $358;
$704 = $700;
$705 = $701;
$gotdig$3101$i = $gotdig$2$i13;
$gotrad$1102$i = $gotrad$0$i14;
$j$0104$i = 0;
$k$0103$i = 0;
$lnz$0100$i = 0;
L205 : while (1) {
do if ($702) if (!$gotrad$1102$i) {
$706 = $365;
$707 = $366;
$708 = $365;
$709 = $366;
$gotdig$4$i = $gotdig$3101$i;
$gotrad$2$i = 1;
$j$2$i = $j$0104$i;
$k$2$i = $k$0103$i;
$lnz$2$i = $lnz$0100$i;
} else {
$710 = $704;
$711 = $705;
$712 = $365;
$713 = $366;
$gotdig$3101$i$lcssa = $gotdig$3101$i;
$j$0104$i$lcssa = $j$0104$i;
$k$0103$i$lcssa = $k$0103$i;
$lnz$0100$i$lcssa = $lnz$0100$i;
break L205;
} else {
$367 = _i64Add($365 | 0, $366 | 0, 1, 0) | 0;
$368 = tempRet0;
$369 = ($$3105$i | 0) != 48;
if (($k$0103$i | 0) >= 125) {
if (!$369) {
$706 = $704;
$707 = $705;
$708 = $367;
$709 = $368;
$gotdig$4$i = $gotdig$3101$i;
$gotrad$2$i = $gotrad$1102$i;
$j$2$i = $j$0104$i;
$k$2$i = $k$0103$i;
$lnz$2$i = $lnz$0100$i;
break;
}
HEAP32[$362 >> 2] = HEAP32[$362 >> 2] | 1;
$706 = $704;
$707 = $705;
$708 = $367;
$709 = $368;
$gotdig$4$i = $gotdig$3101$i;
$gotrad$2$i = $gotrad$1102$i;
$j$2$i = $j$0104$i;
$k$2$i = $k$0103$i;
$lnz$2$i = $lnz$0100$i;
break;
}
$371 = $x$i + ($k$0103$i << 2) | 0;
if (!$j$0104$i) $storemerge$i = $703; else $storemerge$i = $$3105$i + -48 + ((HEAP32[$371 >> 2] | 0) * 10 | 0) | 0;
HEAP32[$371 >> 2] = $storemerge$i;
$376 = $j$0104$i + 1 | 0;
$377 = ($376 | 0) == 9;
$706 = $704;
$707 = $705;
$708 = $367;
$709 = $368;
$gotdig$4$i = 1;
$gotrad$2$i = $gotrad$1102$i;
$j$2$i = $377 ? 0 : $376;
$k$2$i = ($377 & 1) + $k$0103$i | 0;
$lnz$2$i = $369 ? $367 : $lnz$0100$i;
} while (0);
$381 = HEAP32[$0 >> 2] | 0;
if ($381 >>> 0 < (HEAP32[$1 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $381 + 1;
$$3$be$i = HEAPU8[$381 >> 0] | 0;
} else $$3$be$i = ___shgetc($f) | 0;
$703 = $$3$be$i + -48 | 0;
$702 = ($$3$be$i | 0) == 46;
if (!($702 | $703 >>> 0 < 10)) {
$$3$lcssa$i = $$3$be$i;
$394 = $708;
$395 = $706;
$397 = $709;
$398 = $707;
$gotdig$3$lcssa$i = $gotdig$4$i;
$gotrad$1$lcssa$i = $gotrad$2$i;
$j$0$lcssa$i = $j$2$i;
$k$0$lcssa$i = $k$2$i;
$lnz$0$lcssa$i = $lnz$2$i;
label = 161;
break L203;
} else {
$$3105$i = $$3$be$i;
$365 = $708;
$366 = $709;
$704 = $706;
$705 = $707;
$gotdig$3101$i = $gotdig$4$i;
$gotrad$1102$i = $gotrad$2$i;
$j$0104$i = $j$2$i;
$k$0103$i = $k$2$i;
$lnz$0100$i = $lnz$2$i;
}
}
$714 = $712;
$715 = $713;
$716 = $710;
$717 = $711;
$718 = ($gotdig$3101$i$lcssa | 0) != 0;
$j$069$i = $j$0104$i$lcssa;
$k$065$i = $k$0103$i$lcssa;
$lnz$059$i = $lnz$0100$i$lcssa;
label = 169;
} else {
$$3$lcssa$i = $$2$i;
$394 = 0;
$395 = $700;
$397 = 0;
$398 = $701;
$gotdig$3$lcssa$i = $gotdig$2$i13;
$gotrad$1$lcssa$i = $gotrad$0$i14;
$j$0$lcssa$i = 0;
$k$0$lcssa$i = 0;
$lnz$0$lcssa$i = 0;
label = 161;
} while (0);
do if ((label | 0) == 161) {
$392 = ($gotrad$1$lcssa$i | 0) == 0;
$393 = $392 ? $394 : $395;
$396 = $392 ? $397 : $398;
$399 = ($gotdig$3$lcssa$i | 0) != 0;
if (!(($$3$lcssa$i | 32 | 0) == 101 & $399)) if (($$3$lcssa$i | 0) > -1) {
$714 = $394;
$715 = $397;
$716 = $393;
$717 = $396;
$718 = $399;
$j$069$i = $j$0$lcssa$i;
$k$065$i = $k$0$lcssa$i;
$lnz$059$i = $lnz$0$lcssa$i;
label = 169;
break;
} else {
$719 = $394;
$720 = $397;
$721 = $399;
$722 = $393;
$723 = $396;
$j$068$i = $j$0$lcssa$i;
$k$064$i = $k$0$lcssa$i;
$lnz$058$i = $lnz$0$lcssa$i;
label = 171;
break;
}
$402 = _scanexp($f, $pok) | 0;
$403 = tempRet0;
if (($402 | 0) == 0 & ($403 | 0) == -2147483648) {
if (!$pok) {
___shlim($f, 0);
$$0$i27 = 0.0;
break;
}
if (!(HEAP32[$1 >> 2] | 0)) {
$412 = 0;
$413 = 0;
} else {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$412 = 0;
$413 = 0;
}
} else {
$412 = $402;
$413 = $403;
}
$414 = _i64Add($412 | 0, $413 | 0, $393 | 0, $396 | 0) | 0;
$427 = $414;
$428 = $394;
$430 = tempRet0;
$431 = $397;
$j$067$i = $j$0$lcssa$i;
$k$063$i = $k$0$lcssa$i;
$lnz$057$i = $lnz$0$lcssa$i;
label = 173;
} while (0);
if ((label | 0) == 169) if (!(HEAP32[$1 >> 2] | 0)) {
$719 = $714;
$720 = $715;
$721 = $718;
$722 = $716;
$723 = $717;
$j$068$i = $j$069$i;
$k$064$i = $k$065$i;
$lnz$058$i = $lnz$059$i;
label = 171;
} else {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
if ($718) {
$427 = $716;
$428 = $714;
$430 = $717;
$431 = $715;
$j$067$i = $j$069$i;
$k$063$i = $k$065$i;
$lnz$057$i = $lnz$059$i;
label = 173;
} else label = 172;
}
if ((label | 0) == 171) if ($721) {
$427 = $722;
$428 = $719;
$430 = $723;
$431 = $720;
$j$067$i = $j$068$i;
$k$063$i = $k$064$i;
$lnz$057$i = $lnz$058$i;
label = 173;
} else label = 172;
do if ((label | 0) == 172) {
$421 = ___errno_location() | 0;
HEAP32[$421 >> 2] = 22;
___shlim($f, 0);
$$0$i27 = 0.0;
} else if ((label | 0) == 173) {
$422 = HEAP32[$x$i >> 2] | 0;
if (!$422) {
$$0$i27 = +($sign$0 | 0) * 0.0;
break;
}
if ((($431 | 0) < 0 | ($431 | 0) == 0 & $428 >>> 0 < 10) & (($427 | 0) == ($428 | 0) & ($430 | 0) == ($431 | 0))) if ($bits$0$ph >>> 0 > 30 | ($422 >>> $bits$0$ph | 0) == 0) {
$$0$i27 = +($sign$0 | 0) * +($422 >>> 0);
break;
}
$444 = ($emin$0$ph | 0) / -2 | 0;
$446 = (($444 | 0) < 0) << 31 >> 31;
if (($430 | 0) > ($446 | 0) | ($430 | 0) == ($446 | 0) & $427 >>> 0 > $444 >>> 0) {
$452 = ___errno_location() | 0;
HEAP32[$452 >> 2] = 34;
$$0$i27 = +($sign$0 | 0) * 1797693134862315708145274.0e284 * 1797693134862315708145274.0e284;
break;
}
$456 = $emin$0$ph + -106 | 0;
$458 = (($456 | 0) < 0) << 31 >> 31;
if (($430 | 0) < ($458 | 0) | ($430 | 0) == ($458 | 0) & $427 >>> 0 < $456 >>> 0) {
$464 = ___errno_location() | 0;
HEAP32[$464 >> 2] = 34;
$$0$i27 = +($sign$0 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
break;
}
if (!$j$067$i) $k$3$i = $k$063$i; else {
if (($j$067$i | 0) < 9) {
$470 = $x$i + ($k$063$i << 2) | 0;
$472 = HEAP32[$470 >> 2] | 0;
$j$394$i = $j$067$i;
while (1) {
$471 = $472 * 10 | 0;
$j$394$i = $j$394$i + 1 | 0;
if (($j$394$i | 0) == 9) {
$$lcssa265 = $471;
break;
} else $472 = $471;
}
HEAP32[$470 >> 2] = $$lcssa265;
}
$k$3$i = $k$063$i + 1 | 0;
}
if (($lnz$057$i | 0) < 9) if (($lnz$057$i | 0) <= ($427 | 0) & ($427 | 0) < 18) {
if (($427 | 0) == 9) {
$$0$i27 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0);
break;
}
if (($427 | 0) < 9) {
$$0$i27 = +($sign$0 | 0) * +((HEAP32[$x$i >> 2] | 0) >>> 0) / +(HEAP32[2648 + (8 - $427 << 2) >> 2] | 0);
break;
}
$494 = $bits$0$ph + 27 + (Math_imul($427, -3) | 0) | 0;
$$pre$i17 = HEAP32[$x$i >> 2] | 0;
if (($494 | 0) > 30 | ($$pre$i17 >>> $494 | 0) == 0) {
$$0$i27 = +($sign$0 | 0) * +($$pre$i17 >>> 0) * +(HEAP32[2648 + ($427 + -10 << 2) >> 2] | 0);
break;
}
}
$506 = ($427 | 0) % 9 | 0;
if (!$506) {
$a$2$ph38$i = 0;
$e2$0$ph$i = 0;
$rp$2$ph36$i = $427;
$z$1$ph37$i = $k$3$i;
} else {
$510 = ($427 | 0) > -1 ? $506 : $506 + 9 | 0;
$513 = HEAP32[2648 + (8 - $510 << 2) >> 2] | 0;
if (!$k$3$i) {
$a$0$lcssa151$i = 0;
$rp$0$lcssa152$i = $427;
$z$0$i = 0;
} else {
$515 = 1e9 / ($513 | 0) | 0;
$a$085$i = 0;
$carry$087$i = 0;
$k$486$i = 0;
$rp$084$i = $427;
while (1) {
$516 = $x$i + ($k$486$i << 2) | 0;
$517 = HEAP32[$516 >> 2] | 0;
$520 = (($517 >>> 0) / ($513 >>> 0) | 0) + $carry$087$i | 0;
HEAP32[$516 >> 2] = $520;
$521 = Math_imul(($517 >>> 0) % ($513 >>> 0) | 0, $515) | 0;
$or$cond16$i = ($k$486$i | 0) == ($a$085$i | 0) & ($520 | 0) == 0;
$k$486$i = $k$486$i + 1 | 0;
$rp$1$i18 = $or$cond16$i ? $rp$084$i + -9 | 0 : $rp$084$i;
$a$1$i = $or$cond16$i ? $k$486$i & 127 : $a$085$i;
if (($k$486$i | 0) == ($k$3$i | 0)) {
$$lcssa264 = $521;
$a$1$i$lcssa = $a$1$i;
$rp$1$i18$lcssa = $rp$1$i18;
break;
} else {
$a$085$i = $a$1$i;
$carry$087$i = $521;
$rp$084$i = $rp$1$i18;
}
}
if (!$$lcssa264) {
$a$0$lcssa151$i = $a$1$i$lcssa;
$rp$0$lcssa152$i = $rp$1$i18$lcssa;
$z$0$i = $k$3$i;
} else {
HEAP32[$x$i + ($k$3$i << 2) >> 2] = $$lcssa264;
$a$0$lcssa151$i = $a$1$i$lcssa;
$rp$0$lcssa152$i = $rp$1$i18$lcssa;
$z$0$i = $k$3$i + 1 | 0;
}
}
$a$2$ph38$i = $a$0$lcssa151$i;
$e2$0$ph$i = 0;
$rp$2$ph36$i = 9 - $510 + $rp$0$lcssa152$i | 0;
$z$1$ph37$i = $z$0$i;
}
L284 : while (1) {
$533 = ($rp$2$ph36$i | 0) < 18;
$534 = ($rp$2$ph36$i | 0) == 18;
$535 = $x$i + ($a$2$ph38$i << 2) | 0;
$e2$0$i19 = $e2$0$ph$i;
$z$1$i = $z$1$ph37$i;
while (1) {
if (!$533) {
if (!$534) {
$a$3$ph$i = $a$2$ph38$i;
$e2$1$ph$i = $e2$0$i19;
$rp$3$ph34$i = $rp$2$ph36$i;
$z$5$ph$i = $z$1$i;
break L284;
}
if ((HEAP32[$535 >> 2] | 0) >>> 0 >= 9007199) {
$a$3$ph$i = $a$2$ph38$i;
$e2$1$ph$i = $e2$0$i19;
$rp$3$ph34$i = 18;
$z$5$ph$i = $z$1$i;
break L284;
}
}
$carry1$0$i = 0;
$k$5$in$i = $z$1$i + 127 | 0;
$z$2$i = $z$1$i;
while (1) {
$k$5$i = $k$5$in$i & 127;
$539 = $x$i + ($k$5$i << 2) | 0;
$541 = _bitshift64Shl(HEAP32[$539 >> 2] | 0, 0, 29) | 0;
$543 = _i64Add($541 | 0, tempRet0 | 0, $carry1$0$i | 0, 0) | 0;
$544 = tempRet0;
if ($544 >>> 0 > 0 | ($544 | 0) == 0 & $543 >>> 0 > 1e9) {
$550 = ___udivdi3($543 | 0, $544 | 0, 1e9, 0) | 0;
$552 = ___uremdi3($543 | 0, $544 | 0, 1e9, 0) | 0;
$$sink$off0$i = $552;
$carry1$1$i = $550;
} else {
$$sink$off0$i = $543;
$carry1$1$i = 0;
}
HEAP32[$539 >> 2] = $$sink$off0$i;
$557 = ($k$5$i | 0) == ($a$2$ph38$i | 0);
$z$3$i = ($k$5$i | 0) != ($z$2$i + 127 & 127 | 0) | $557 ? $z$2$i : ($$sink$off0$i | 0) == 0 ? $k$5$i : $z$2$i;
if ($557) {
$carry1$1$i$lcssa = $carry1$1$i;
$z$3$i$lcssa = $z$3$i;
break;
} else {
$carry1$0$i = $carry1$1$i;
$k$5$in$i = $k$5$i + -1 | 0;
$z$2$i = $z$3$i;
}
}
$560 = $e2$0$i19 + -29 | 0;
if (!$carry1$1$i$lcssa) {
$e2$0$i19 = $560;
$z$1$i = $z$3$i$lcssa;
} else {
$$lcssa263 = $560;
$carry1$1$i$lcssa$lcssa = $carry1$1$i$lcssa;
$z$3$i$lcssa$lcssa = $z$3$i$lcssa;
break;
}
}
$564 = $a$2$ph38$i + 127 & 127;
if (($564 | 0) == ($z$3$i$lcssa$lcssa | 0)) {
$567 = $z$3$i$lcssa$lcssa + 127 & 127;
$572 = $x$i + (($z$3$i$lcssa$lcssa + 126 & 127) << 2) | 0;
HEAP32[$572 >> 2] = HEAP32[$572 >> 2] | HEAP32[$x$i + ($567 << 2) >> 2];
$z$4$i = $567;
} else $z$4$i = $z$3$i$lcssa$lcssa;
HEAP32[$x$i + ($564 << 2) >> 2] = $carry1$1$i$lcssa$lcssa;
$a$2$ph38$i = $564;
$e2$0$ph$i = $$lcssa263;
$rp$2$ph36$i = $rp$2$ph36$i + 9 | 0;
$z$1$ph37$i = $z$4$i;
}
L302 : while (1) {
$604 = $z$5$ph$i + 1 & 127;
$609 = $x$i + (($z$5$ph$i + 127 & 127) << 2) | 0;
$a$3$ph157$i = $a$3$ph$i;
$e2$1$ph156$i = $e2$1$ph$i;
$rp$3$ph$i = $rp$3$ph34$i;
while (1) {
$610 = ($rp$3$ph$i | 0) == 18;
$$18$i = ($rp$3$ph$i | 0) > 27 ? 9 : 1;
$$not$i = $610 ^ 1;
$a$3$i = $a$3$ph157$i;
$e2$1$i = $e2$1$ph156$i;
while (1) {
$576 = $a$3$i & 127;
$577 = ($576 | 0) == ($z$5$ph$i | 0);
do if ($577) label = 219; else {
$579 = HEAP32[$x$i + ($576 << 2) >> 2] | 0;
if ($579 >>> 0 < 9007199) {
label = 219;
break;
}
if ($579 >>> 0 > 9007199) break;
$583 = $a$3$i + 1 & 127;
if (($583 | 0) == ($z$5$ph$i | 0)) {
label = 219;
break;
}
$691 = HEAP32[$x$i + ($583 << 2) >> 2] | 0;
if ($691 >>> 0 < 254740991) {
label = 219;
break;
}
if (!($691 >>> 0 > 254740991 | $$not$i)) {
$617 = $576;
$a$3$i249 = $a$3$i;
$e2$1$i246 = $e2$1$i;
$z$7$i = $z$5$ph$i;
break L302;
}
} while (0);
if ((label | 0) == 219) {
label = 0;
if ($610) {
label = 220;
break L302;
}
}
$585 = $e2$1$i + $$18$i | 0;
if (($a$3$i | 0) == ($z$5$ph$i | 0)) {
$a$3$i = $z$5$ph$i;
$e2$1$i = $585;
} else {
$$lcssa256 = $585;
$a$3$i$lcssa248 = $a$3$i;
break;
}
}
$588 = (1 << $$18$i) + -1 | 0;
$589 = 1e9 >>> $$18$i;
$a$478$i = $a$3$i$lcssa248;
$carry3$081$i = 0;
$k$679$i = $a$3$i$lcssa248;
$rp$477$i = $rp$3$ph$i;
while (1) {
$590 = $x$i + ($k$679$i << 2) | 0;
$591 = HEAP32[$590 >> 2] | 0;
$594 = ($591 >>> $$18$i) + $carry3$081$i | 0;
HEAP32[$590 >> 2] = $594;
$595 = Math_imul($591 & $588, $589) | 0;
$or$cond19$i = ($k$679$i | 0) == ($a$478$i | 0) & ($594 | 0) == 0;
$k$679$i = $k$679$i + 1 & 127;
$rp$5$i = $or$cond19$i ? $rp$477$i + -9 | 0 : $rp$477$i;
$a$5$i = $or$cond19$i ? $k$679$i : $a$478$i;
if (($k$679$i | 0) == ($z$5$ph$i | 0)) {
$$lcssa257 = $595;
$a$5$i$lcssa = $a$5$i;
$rp$5$i$lcssa = $rp$5$i;
break;
} else {
$a$478$i = $a$5$i;
$carry3$081$i = $595;
$rp$477$i = $rp$5$i;
}
}
if (!$$lcssa257) {
$a$3$ph157$i = $a$5$i$lcssa;
$e2$1$ph156$i = $$lcssa256;
$rp$3$ph$i = $rp$5$i$lcssa;
continue;
}
if (($604 | 0) != ($a$5$i$lcssa | 0)) {
$$lcssa256$lcssa = $$lcssa256;
$$lcssa257$lcssa = $$lcssa257;
$a$5$i$lcssa$lcssa = $a$5$i$lcssa;
$rp$5$i$lcssa$lcssa = $rp$5$i$lcssa;
break;
}
HEAP32[$609 >> 2] = HEAP32[$609 >> 2] | 1;
$a$3$ph157$i = $a$5$i$lcssa;
$e2$1$ph156$i = $$lcssa256;
$rp$3$ph$i = $rp$5$i$lcssa;
}
HEAP32[$x$i + ($z$5$ph$i << 2) >> 2] = $$lcssa257$lcssa;
$a$3$ph$i = $a$5$i$lcssa$lcssa;
$e2$1$ph$i = $$lcssa256$lcssa;
$rp$3$ph34$i = $rp$5$i$lcssa$lcssa;
$z$5$ph$i = $604;
}
if ((label | 0) == 220) if ($577) {
HEAP32[$x$i + ($604 + -1 << 2) >> 2] = 0;
$617 = $z$5$ph$i;
$a$3$i249 = $a$3$i;
$e2$1$i246 = $e2$1$i;
$z$7$i = $604;
} else {
$617 = $576;
$a$3$i249 = $a$3$i;
$e2$1$i246 = $e2$1$i;
$z$7$i = $z$5$ph$i;
}
$619 = +((HEAP32[$x$i + ($617 << 2) >> 2] | 0) >>> 0);
$621 = $a$3$i249 + 1 & 127;
if (($621 | 0) == ($z$7$i | 0)) {
$680 = $a$3$i249 + 2 & 127;
HEAP32[$x$i + ($680 + -1 << 2) >> 2] = 0;
$z$7$1$i = $680;
} else $z$7$1$i = $z$7$i;
$643 = +($sign$0 | 0);
$625 = $643 * ($619 * 1.0e9 + +((HEAP32[$x$i + ($621 << 2) >> 2] | 0) >>> 0));
$663 = $e2$1$i246 + 53 | 0;
$669 = $663 - $emin$0$ph | 0;
$670 = ($669 | 0) < ($bits$0$ph | 0);
$denormal$0$i = $670 & 1;
$$010$i = $670 ? (($669 | 0) < 0 ? 0 : $669) : $bits$0$ph;
if (($$010$i | 0) < 53) {
$626 = +_copysignl(+_scalbn(1.0, 105 - $$010$i | 0), $625);
$629 = +_fmodl($625, +_scalbn(1.0, 53 - $$010$i | 0));
$bias$0$i25 = $626;
$frac$0$i = $629;
$y$1$i24 = $626 + ($625 - $629);
} else {
$bias$0$i25 = 0.0;
$frac$0$i = 0.0;
$y$1$i24 = $625;
}
$633 = $a$3$i249 + 2 & 127;
do if (($633 | 0) == ($z$7$1$i | 0)) $frac$2$i = $frac$0$i; else {
$636 = HEAP32[$x$i + ($633 << 2) >> 2] | 0;
do if ($636 >>> 0 < 5e8) {
if (!$636) if (($a$3$i249 + 3 & 127 | 0) == ($z$7$1$i | 0)) {
$frac$1$i = $frac$0$i;
break;
}
$frac$1$i = $643 * .25 + $frac$0$i;
} else {
if ($636 >>> 0 > 5e8) {
$frac$1$i = $643 * .75 + $frac$0$i;
break;
}
if (($a$3$i249 + 3 & 127 | 0) == ($z$7$1$i | 0)) {
$frac$1$i = $643 * .5 + $frac$0$i;
break;
} else {
$frac$1$i = $643 * .75 + $frac$0$i;
break;
}
} while (0);
if ((53 - $$010$i | 0) <= 1) {
$frac$2$i = $frac$1$i;
break;
}
if (+_fmodl($frac$1$i, 1.0) != 0.0) {
$frac$2$i = $frac$1$i;
break;
}
$frac$2$i = $frac$1$i + 1.0;
} while (0);
$661 = $y$1$i24 + $frac$2$i - $bias$0$i25;
do if (($663 & 2147483647 | 0) > (-2 - $sum$i | 0)) {
if (!(+Math_abs(+$661) >= 9007199254740992.0)) {
$denormal$2$i = $denormal$0$i;
$e2$2$i = $e2$1$i246;
$y$2$i26 = $661;
} else {
$denormal$2$i = $670 & ($$010$i | 0) == ($669 | 0) ? 0 : $denormal$0$i;
$e2$2$i = $e2$1$i246 + 1 | 0;
$y$2$i26 = $661 * .5;
}
if (($e2$2$i + 50 | 0) <= ($330 | 0)) if (!($frac$2$i != 0.0 & ($denormal$2$i | 0) != 0)) {
$e2$3$i = $e2$2$i;
$y$3$i = $y$2$i26;
break;
}
$677 = ___errno_location() | 0;
HEAP32[$677 >> 2] = 34;
$e2$3$i = $e2$2$i;
$y$3$i = $y$2$i26;
} else {
$e2$3$i = $e2$1$i246;
$y$3$i = $661;
} while (0);
$$0$i27 = +_scalbnl($y$3$i, $e2$3$i);
} while (0);
$$0 = $$0$i27;
break L4;
break;
}
default:
{
if (HEAP32[$1 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$113 = ___errno_location() | 0;
HEAP32[$113 >> 2] = 22;
___shlim($f, 0);
$$0 = 0.0;
break L4;
}
}
}
} while (0);
if ((label | 0) == 23) {
$42 = (HEAP32[$1 >> 2] | 0) == 0;
if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
if (($pok | 0) != 0 & $i$0$lcssa >>> 0 > 3) {
$i$1 = $i$0$lcssa;
do {
if (!$42) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$i$1 = $i$1 + -1 | 0;
} while ($i$1 >>> 0 > 3);
}
}
$$0 = +($sign$0 | 0) * inf;
} while (0);
STACKTOP = sp;
return +$$0;
}
function __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i16$i = 0, $$0$i$i$i23$i = 0, $$0$i$i$i33$i = 0, $$0$i$i$i42$i = 0, $$0$i$i$i52$i = 0, $$0$i10 = 0, $$02 = 0, $$07$i = 0, $$first = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $129 = 0, $13 = 0, $130 = 0, $134 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $144 = 0, $145 = 0, $15 = 0, $153 = 0, $154 = 0, $156 = 0, $16 = 0, $164 = 0, $166 = 0, $167 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $186 = 0, $189 = 0, $192 = 0, $2 = 0, $201 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $211 = 0, $212 = 0, $220 = 0, $221 = 0, $223 = 0, $23 = 0, $231 = 0, $233 = 0, $234 = 0, $247 = 0, $248 = 0, $249 = 0, $250 = 0, $253 = 0, $256 = 0, $259 = 0, $268 = 0, $271 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $281 = 0, $282 = 0, $290 = 0, $291 = 0, $293 = 0, $3 = 0, $30 = 0, $301 = 0, $303 = 0, $304 = 0, $317 = 0, $318 = 0, $319 = 0, $320 = 0, $323 = 0, $326 = 0, $329 = 0, $338 = 0, $34 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $349 = 0, $35 = 0, $351 = 0, $359 = 0, $361 = 0, $362 = 0, $37 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $381 = 0, $384 = 0, $387 = 0, $398 = 0, $4 = 0, $400 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $41 = 0, $410 = 0, $411 = 0, $419 = 0, $420 = 0, $422 = 0, $430 = 0, $432 = 0, $433 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $452 = 0, $455 = 0, $458 = 0, $469 = 0, $474 = 0, $476 = 0, $477 = 0, $478 = 0, $483 = 0, $484 = 0, $489 = 0, $49 = 0, $494 = 0, $497 = 0, $5 = 0, $50 = 0, $500 = 0, $502 = 0, $506 = 0, $507 = 0, $509 = 0, $51 = 0, $510 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $526 = 0, $528 = 0, $538 = 0, $539 = 0, $540 = 0, $542 = 0, $544 = 0, $545 = 0, $546 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $56 = 0, $562 = 0, $564 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $58 = 0, $588 = 0, $593 = 0, $594 = 0, $597 = 0, $6 = 0, $605 = 0, $606 = 0, $608 = 0, $61 = 0, $612 = 0, $613 = 0, $615 = 0, $62 = 0, $622 = 0, $624 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $638 = 0, $641 = 0, $644 = 0, $645 = 0, $65 = 0, $651 = 0, $653 = 0, $657 = 0, $659 = 0, $667 = 0, $668 = 0, $669 = 0, $670 = 0, $673 = 0, $675 = 0, $685 = 0, $690 = 0, $692 = 0, $693 = 0, $7 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $707 = 0, $709 = 0, $719 = 0, $8 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $St$0$off0$i = 0, $__v$i$i51$i = 0, $cv$i = 0, $name$i11 = 0, $name1$i = 0, $name2$i12 = 0, $name3$i = 0, $name4$i = 0, $pop_subs$0$off0$i$ph$lcssa = 0, $pop_subs$0$off0$i$ph136 = 0, $t0$0$i = 0, $t0$0$i13 = 0, $t0$1$i = 0, $t0$2$i$be = 0, $t0$2$i$lcssa = 0, $t0$2$i$ph$be = 0, $t0$2$i$ph135 = 0, $t0$2$i131 = 0, $t0$2$i131$lcssa177 = 0, $t0$2$i131$lcssa178 = 0, $t0$2$i131$lcssa179 = 0, $t0$2$i131184 = 0, $tmp = 0, $tmp3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 304 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i51$i = sp + 276 | 0;
$cv$i = sp + 264 | 0;
$name$i11 = sp + 252 | 0;
$0 = sp + 240 | 0;
$1 = sp + 224 | 0;
$2 = sp + 216 | 0;
$name1$i = sp + 204 | 0;
$3 = sp + 192 | 0;
$4 = sp + 176 | 0;
$5 = sp + 168 | 0;
$name2$i12 = sp + 156 | 0;
$6 = sp + 144 | 0;
$7 = sp + 128 | 0;
$8 = sp + 124 | 0;
$name3$i = sp + 112 | 0;
$9 = sp + 96 | 0;
$10 = sp + 76 | 0;
$name4$i = sp + 64 | 0;
$11 = sp + 48 | 0;
$12 = sp + 8 | 0;
$13 = sp;
$14 = sp + 80 | 0;
$15 = sp + 60 | 0;
$tmp = sp + 36 | 0;
$tmp3 = sp + 24 | 0;
$16 = $last;
L1 : do if (($16 - $first | 0) > 1) {
$$first = (HEAP8[$first >> 0] | 0) == 76 ? $first + 1 | 0 : $first;
$23 = HEAP8[$$first >> 0] | 0;
switch ($23 << 24 >> 24 | 0) {
case 78:
{
L44 : do if (($$first | 0) == ($last | 0)) $$07$i = $last; else if ($23 << 24 >> 24 == 78) {
$28 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($$first + 1 | 0, $last, $cv$i) | 0;
if (($28 | 0) == ($last | 0)) $$07$i = $$first; else {
$30 = $db + 52 | 0;
HEAP32[$30 >> 2] = 0;
switch (HEAP8[$28 >> 0] | 0) {
case 82:
{
HEAP32[$30 >> 2] = 1;
$t0$0$i13 = $28 + 1 | 0;
break;
}
case 79:
{
HEAP32[$30 >> 2] = 2;
$t0$0$i13 = $28 + 1 | 0;
break;
}
default:
$t0$0$i13 = $28;
}
$34 = $db + 4 | 0;
$35 = HEAP32[$34 >> 2] | 0;
$37 = HEAP32[$db + 8 >> 2] | 0;
if ($35 >>> 0 < $37 >>> 0) {
HEAP32[$35 >> 2] = 0;
HEAP32[$35 + 4 >> 2] = 0;
HEAP32[$35 + 8 >> 2] = 0;
HEAP32[$35 + 12 >> 2] = 0;
HEAP32[$35 + 16 >> 2] = 0;
HEAP32[$35 + 20 >> 2] = 0;
HEAP32[$35 >> 2] = 0;
HEAP32[$35 + 4 >> 2] = 0;
HEAP32[$35 + 8 >> 2] = 0;
$41 = $35 + 12 | 0;
HEAP32[$41 >> 2] = 0;
HEAP32[$41 + 4 >> 2] = 0;
HEAP32[$41 + 8 >> 2] = 0;
HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 24;
} else {
$49 = HEAP32[$db >> 2] | 0;
$50 = $35 - $49 | 0;
$51 = ($50 | 0) / 24 | 0;
$52 = $51 + 1 | 0;
if (($50 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$56 = ($37 - $49 | 0) / 24 | 0;
if ($56 >>> 0 < 1073741823) {
$58 = $56 << 1;
$$0$i$i$i$i = $58 >>> 0 < $52 >>> 0 ? $52 : $58;
} else $$0$i$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i51$i, $$0$i$i$i$i, $51, $db + 12 | 0);
$61 = $__v$i$i51$i + 8 | 0;
$62 = HEAP32[$61 >> 2] | 0;
HEAP32[$62 >> 2] = 0;
HEAP32[$62 + 4 >> 2] = 0;
HEAP32[$62 + 8 >> 2] = 0;
HEAP32[$62 + 12 >> 2] = 0;
HEAP32[$62 + 16 >> 2] = 0;
HEAP32[$62 + 20 >> 2] = 0;
HEAP32[$62 >> 2] = 0;
HEAP32[$62 + 4 >> 2] = 0;
HEAP32[$62 + 8 >> 2] = 0;
$65 = $62 + 12 | 0;
HEAP32[$65 >> 2] = 0;
HEAP32[$65 + 4 >> 2] = 0;
HEAP32[$65 + 8 >> 2] = 0;
HEAP32[$61 >> 2] = $62 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i51$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i51$i);
}
if (($16 - $t0$0$i13 | 0) > 1) if ((HEAP8[$t0$0$i13 >> 0] | 0) == 83) if ((HEAP8[$t0$0$i13 + 1 >> 0] | 0) == 116) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj((HEAP32[$34 >> 2] | 0) + -24 | 0, 12898, 3);
$t0$1$i = $t0$0$i13 + 2 | 0;
} else $t0$1$i = $t0$0$i13; else $t0$1$i = $t0$0$i13; else $t0$1$i = $t0$0$i13;
if (($t0$1$i | 0) == ($last | 0)) {
$123 = HEAP32[$34 >> 2] | 0;
$124 = $123 + -24 | 0;
$126 = $123;
while (1) {
$125 = $126 + -24 | 0;
HEAP32[$34 >> 2] = $125;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($125);
$126 = HEAP32[$34 >> 2] | 0;
if (($126 | 0) == ($124 | 0)) {
$$07$i = $$first;
break L44;
}
}
}
$81 = $name3$i + 8 | 0;
$82 = $name3$i + 1 | 0;
$83 = $name3$i + 4 | 0;
$84 = $db + 12 | 0;
$85 = $db + 16 | 0;
$86 = $db + 20 | 0;
$87 = $db + 24 | 0;
$88 = $9 + 12 | 0;
$89 = $9 + 4 | 0;
$90 = $9 + 8 | 0;
$91 = $db + 28 | 0;
$92 = $__v$i$i51$i + 8 | 0;
$93 = $12 + 12 | 0;
$94 = $12 + 4 | 0;
$95 = $12 + 8 | 0;
$96 = $__v$i$i51$i + 8 | 0;
$97 = $11 + 8 | 0;
$98 = $11 + 1 | 0;
$99 = $11 + 4 | 0;
$100 = $0 + 8 | 0;
$101 = $0 + 1 | 0;
$102 = $0 + 4 | 0;
$103 = $1 + 12 | 0;
$104 = $1 + 4 | 0;
$105 = $1 + 8 | 0;
$106 = $__v$i$i51$i + 8 | 0;
$107 = $4 + 12 | 0;
$108 = $4 + 4 | 0;
$109 = $4 + 8 | 0;
$110 = $__v$i$i51$i + 8 | 0;
$111 = $3 + 8 | 0;
$112 = $3 + 1 | 0;
$113 = $3 + 4 | 0;
$114 = $7 + 12 | 0;
$115 = $7 + 4 | 0;
$116 = $7 + 8 | 0;
$117 = $__v$i$i51$i + 8 | 0;
$118 = $6 + 8 | 0;
$119 = $6 + 1 | 0;
$120 = $6 + 4 | 0;
$121 = HEAP8[$t0$1$i >> 0] | 0;
L72 : do if ($121 << 24 >> 24 == 69) {
$pop_subs$0$off0$i$ph$lcssa = 0;
$t0$2$i$lcssa = $t0$1$i;
} else {
$719 = $121;
$pop_subs$0$off0$i$ph136 = 0;
$t0$2$i$ph135 = $t0$1$i;
L73 : while (1) {
$129 = $719;
$t0$2$i131 = $t0$2$i$ph135;
L75 : while (1) {
switch ($129 << 24 >> 24 | 0) {
case 83:
{
$t0$2$i131$lcssa177 = $t0$2$i131;
label = 25;
break L75;
break;
}
case 84:
{
$t0$2$i131$lcssa178 = $t0$2$i131;
label = 44;
break L75;
break;
}
case 68:
{
$t0$2$i131$lcssa179 = $t0$2$i131;
label = 61;
break L75;
break;
}
case 73:
{
$338 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131, $last, $db) | 0;
if (($338 | 0) == ($t0$2$i131 | 0) | ($338 | 0) == ($last | 0)) {
$$07$i = $$first;
break L44;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name3$i, (HEAP32[$34 >> 2] | 0) + -24 | 0);
$343 = HEAP32[$34 >> 2] | 0;
$344 = $343 + -24 | 0;
$346 = $343;
do {
$345 = $346 + -24 | 0;
HEAP32[$34 >> 2] = $345;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($345);
$346 = HEAP32[$34 >> 2] | 0;
} while (($346 | 0) != ($344 | 0));
$349 = HEAP8[$name3$i >> 0] | 0;
$351 = ($349 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($343 + -48 | 0, $351 ? $82 : HEAP32[$81 >> 2] | 0, $351 ? ($349 & 255) >>> 1 : HEAP32[$83 >> 2] | 0) | 0;
$359 = (HEAP32[$34 >> 2] | 0) + -24 | 0;
HEAP32[$10 >> 2] = HEAP32[$84 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($9, $359, $10);
$361 = HEAP32[$86 >> 2] | 0;
$362 = HEAP32[$87 >> 2] | 0;
if ($361 >>> 0 < $362 >>> 0) {
HEAP32[$361 + 12 >> 2] = HEAP32[$88 >> 2];
HEAP32[$361 >> 2] = HEAP32[$9 >> 2];
HEAP32[$361 + 4 >> 2] = HEAP32[$89 >> 2];
HEAP32[$361 + 8 >> 2] = HEAP32[$90 >> 2];
HEAP32[$90 >> 2] = 0;
HEAP32[$89 >> 2] = 0;
HEAP32[$9 >> 2] = 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16;
} else {
$375 = HEAP32[$85 >> 2] | 0;
$376 = $361 - $375 | 0;
$377 = $376 >> 4;
$378 = $377 + 1 | 0;
if (($376 | 0) < -16) {
label = 86;
break L73;
}
$381 = $362 - $375 | 0;
if ($381 >> 4 >>> 0 < 1073741823) {
$384 = $381 >> 3;
$$0$i$i$i42$i = $384 >>> 0 < $378 >>> 0 ? $378 : $384;
} else $$0$i$i$i42$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i42$i, $377, $91);
$387 = HEAP32[$92 >> 2] | 0;
HEAP32[$387 + 12 >> 2] = HEAP32[$88 >> 2];
HEAP32[$387 >> 2] = HEAP32[$9 >> 2];
HEAP32[$387 + 4 >> 2] = HEAP32[$89 >> 2];
HEAP32[$387 + 8 >> 2] = HEAP32[$90 >> 2];
HEAP32[$90 >> 2] = 0;
HEAP32[$89 >> 2] = 0;
HEAP32[$9 >> 2] = 0;
HEAP32[$92 >> 2] = $387 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($9);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name3$i);
$t0$2$i$be = $338;
break;
}
case 76:
{
$398 = $t0$2$i131 + 1 | 0;
if (($398 | 0) == ($last | 0)) {
$$07$i = $$first;
break L44;
} else $t0$2$i$be = $398;
break;
}
default:
{
$t0$2$i131184 = $t0$2$i131;
label = 93;
break L75;
}
}
$129 = HEAP8[$t0$2$i$be >> 0] | 0;
if ($129 << 24 >> 24 == 69) {
$pop_subs$0$off0$i$ph$lcssa = $pop_subs$0$off0$i$ph136;
$t0$2$i$lcssa = $t0$2$i$be;
break L72;
} else $t0$2$i131 = $t0$2$i$be;
}
L93 : do if ((label | 0) == 25) {
label = 0;
$130 = $t0$2$i131$lcssa177 + 1 | 0;
if (($130 | 0) != ($last | 0)) if ((HEAP8[$130 >> 0] | 0) == 116) {
$t0$2$i131184 = $t0$2$i131$lcssa177;
label = 93;
break;
}
$134 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa177, $last, $db) | 0;
if (($134 | 0) == ($t0$2$i131$lcssa177 | 0) | ($134 | 0) == ($last | 0)) {
$$07$i = $$first;
break L44;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name$i11, (HEAP32[$34 >> 2] | 0) + -24 | 0);
$139 = HEAP32[$34 >> 2] | 0;
$140 = $139 + -24 | 0;
$142 = $139;
do {
$141 = $142 + -24 | 0;
HEAP32[$34 >> 2] = $141;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($141);
$142 = HEAP32[$34 >> 2] | 0;
} while (($142 | 0) != ($140 | 0));
$144 = $139 + -48 | 0;
$145 = HEAP8[$144 >> 0] | 0;
if (!($145 & 1)) $153 = ($145 & 255) >>> 1; else $153 = HEAP32[$139 + -44 >> 2] | 0;
if (!$153) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($144, $name$i11); else {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($0, 12902, $name$i11);
$154 = HEAP8[$0 >> 0] | 0;
$156 = ($154 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($144, $156 ? $101 : HEAP32[$100 >> 2] | 0, $156 ? ($154 & 255) >>> 1 : HEAP32[$102 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$164 = (HEAP32[$34 >> 2] | 0) + -24 | 0;
HEAP32[$2 >> 2] = HEAP32[$84 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($1, $164, $2);
$166 = HEAP32[$86 >> 2] | 0;
$167 = HEAP32[$87 >> 2] | 0;
if ($166 >>> 0 < $167 >>> 0) {
HEAP32[$166 + 12 >> 2] = HEAP32[$103 >> 2];
HEAP32[$166 >> 2] = HEAP32[$1 >> 2];
HEAP32[$166 + 4 >> 2] = HEAP32[$104 >> 2];
HEAP32[$166 + 8 >> 2] = HEAP32[$105 >> 2];
HEAP32[$105 >> 2] = 0;
HEAP32[$104 >> 2] = 0;
HEAP32[$1 >> 2] = 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16;
} else {
$180 = HEAP32[$85 >> 2] | 0;
$181 = $166 - $180 | 0;
$182 = $181 >> 4;
$183 = $182 + 1 | 0;
if (($181 | 0) < -16) {
label = 37;
break L73;
}
$186 = $167 - $180 | 0;
if ($186 >> 4 >>> 0 < 1073741823) {
$189 = $186 >> 3;
$$0$i$i$i16$i = $189 >>> 0 < $183 >>> 0 ? $183 : $189;
} else $$0$i$i$i16$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i16$i, $182, $91);
$192 = HEAP32[$106 >> 2] | 0;
HEAP32[$192 + 12 >> 2] = HEAP32[$103 >> 2];
HEAP32[$192 >> 2] = HEAP32[$1 >> 2];
HEAP32[$192 + 4 >> 2] = HEAP32[$104 >> 2];
HEAP32[$192 + 8 >> 2] = HEAP32[$105 >> 2];
HEAP32[$105 >> 2] = 0;
HEAP32[$104 >> 2] = 0;
HEAP32[$1 >> 2] = 0;
HEAP32[$106 >> 2] = $192 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($1);
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name$i11);
$t0$2$i$ph$be = $134;
} else if ((label | 0) == 44) {
label = 0;
$201 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa178, $last, $db) | 0;
if (($201 | 0) == ($t0$2$i131$lcssa178 | 0) | ($201 | 0) == ($last | 0)) {
$$07$i = $$first;
break L44;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name1$i, (HEAP32[$34 >> 2] | 0) + -24 | 0);
$206 = HEAP32[$34 >> 2] | 0;
$207 = $206 + -24 | 0;
$209 = $206;
do {
$208 = $209 + -24 | 0;
HEAP32[$34 >> 2] = $208;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($208);
$209 = HEAP32[$34 >> 2] | 0;
} while (($209 | 0) != ($207 | 0));
$211 = $206 + -48 | 0;
$212 = HEAP8[$211 >> 0] | 0;
if (!($212 & 1)) $220 = ($212 & 255) >>> 1; else $220 = HEAP32[$206 + -44 >> 2] | 0;
if (!$220) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($211, $name1$i); else {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($3, 12902, $name1$i);
$221 = HEAP8[$3 >> 0] | 0;
$223 = ($221 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($211, $223 ? $112 : HEAP32[$111 >> 2] | 0, $223 ? ($221 & 255) >>> 1 : HEAP32[$113 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
}
$231 = (HEAP32[$34 >> 2] | 0) + -24 | 0;
HEAP32[$5 >> 2] = HEAP32[$84 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($4, $231, $5);
$233 = HEAP32[$86 >> 2] | 0;
$234 = HEAP32[$87 >> 2] | 0;
if ($233 >>> 0 < $234 >>> 0) {
HEAP32[$233 + 12 >> 2] = HEAP32[$107 >> 2];
HEAP32[$233 >> 2] = HEAP32[$4 >> 2];
HEAP32[$233 + 4 >> 2] = HEAP32[$108 >> 2];
HEAP32[$233 + 8 >> 2] = HEAP32[$109 >> 2];
HEAP32[$109 >> 2] = 0;
HEAP32[$108 >> 2] = 0;
HEAP32[$4 >> 2] = 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16;
} else {
$247 = HEAP32[$85 >> 2] | 0;
$248 = $233 - $247 | 0;
$249 = $248 >> 4;
$250 = $249 + 1 | 0;
if (($248 | 0) < -16) {
label = 56;
break L73;
}
$253 = $234 - $247 | 0;
if ($253 >> 4 >>> 0 < 1073741823) {
$256 = $253 >> 3;
$$0$i$i$i23$i = $256 >>> 0 < $250 >>> 0 ? $250 : $256;
} else $$0$i$i$i23$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i23$i, $249, $91);
$259 = HEAP32[$110 >> 2] | 0;
HEAP32[$259 + 12 >> 2] = HEAP32[$107 >> 2];
HEAP32[$259 >> 2] = HEAP32[$4 >> 2];
HEAP32[$259 + 4 >> 2] = HEAP32[$108 >> 2];
HEAP32[$259 + 8 >> 2] = HEAP32[$109 >> 2];
HEAP32[$109 >> 2] = 0;
HEAP32[$108 >> 2] = 0;
HEAP32[$4 >> 2] = 0;
HEAP32[$110 >> 2] = $259 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name1$i);
$t0$2$i$ph$be = $201;
} else if ((label | 0) == 61) {
label = 0;
$268 = $t0$2$i131$lcssa179 + 1 | 0;
if (($268 | 0) != ($last | 0)) switch (HEAP8[$268 >> 0] | 0) {
case 84:
case 116:
break;
default:
{
$t0$2$i131184 = $t0$2$i131$lcssa179;
label = 93;
break L93;
}
}
$271 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131$lcssa179, $last, $db) | 0;
if (($271 | 0) == ($t0$2$i131$lcssa179 | 0) | ($271 | 0) == ($last | 0)) {
$$07$i = $$first;
break L44;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name2$i12, (HEAP32[$34 >> 2] | 0) + -24 | 0);
$276 = HEAP32[$34 >> 2] | 0;
$277 = $276 + -24 | 0;
$279 = $276;
do {
$278 = $279 + -24 | 0;
HEAP32[$34 >> 2] = $278;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($278);
$279 = HEAP32[$34 >> 2] | 0;
} while (($279 | 0) != ($277 | 0));
$281 = $276 + -48 | 0;
$282 = HEAP8[$281 >> 0] | 0;
if (!($282 & 1)) $290 = ($282 & 255) >>> 1; else $290 = HEAP32[$276 + -44 >> 2] | 0;
if (!$290) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($281, $name2$i12); else {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($6, 12902, $name2$i12);
$291 = HEAP8[$6 >> 0] | 0;
$293 = ($291 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($281, $293 ? $119 : HEAP32[$118 >> 2] | 0, $293 ? ($291 & 255) >>> 1 : HEAP32[$120 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
}
$301 = (HEAP32[$34 >> 2] | 0) + -24 | 0;
HEAP32[$8 >> 2] = HEAP32[$84 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($7, $301, $8);
$303 = HEAP32[$86 >> 2] | 0;
$304 = HEAP32[$87 >> 2] | 0;
if ($303 >>> 0 < $304 >>> 0) {
HEAP32[$303 + 12 >> 2] = HEAP32[$114 >> 2];
HEAP32[$303 >> 2] = HEAP32[$7 >> 2];
HEAP32[$303 + 4 >> 2] = HEAP32[$115 >> 2];
HEAP32[$303 + 8 >> 2] = HEAP32[$116 >> 2];
HEAP32[$116 >> 2] = 0;
HEAP32[$115 >> 2] = 0;
HEAP32[$7 >> 2] = 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16;
} else {
$317 = HEAP32[$85 >> 2] | 0;
$318 = $303 - $317 | 0;
$319 = $318 >> 4;
$320 = $319 + 1 | 0;
if (($318 | 0) < -16) {
label = 75;
break L73;
}
$323 = $304 - $317 | 0;
if ($323 >> 4 >>> 0 < 1073741823) {
$326 = $323 >> 3;
$$0$i$i$i33$i = $326 >>> 0 < $320 >>> 0 ? $320 : $326;
} else $$0$i$i$i33$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i33$i, $319, $91);
$329 = HEAP32[$117 >> 2] | 0;
HEAP32[$329 + 12 >> 2] = HEAP32[$114 >> 2];
HEAP32[$329 >> 2] = HEAP32[$7 >> 2];
HEAP32[$329 + 4 >> 2] = HEAP32[$115 >> 2];
HEAP32[$329 + 8 >> 2] = HEAP32[$116 >> 2];
HEAP32[$116 >> 2] = 0;
HEAP32[$115 >> 2] = 0;
HEAP32[$7 >> 2] = 0;
HEAP32[$117 >> 2] = $329 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($7);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name2$i12);
$t0$2$i$ph$be = $271;
} while (0);
if ((label | 0) == 93) {
label = 0;
$400 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($t0$2$i131184, $last, $db) | 0;
if (($400 | 0) == ($t0$2$i131184 | 0) | ($400 | 0) == ($last | 0)) {
$$07$i = $$first;
break L44;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($name4$i, (HEAP32[$34 >> 2] | 0) + -24 | 0);
$405 = HEAP32[$34 >> 2] | 0;
$406 = $405 + -24 | 0;
$408 = $405;
do {
$407 = $408 + -24 | 0;
HEAP32[$34 >> 2] = $407;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($407);
$408 = HEAP32[$34 >> 2] | 0;
} while (($408 | 0) != ($406 | 0));
$410 = $405 + -48 | 0;
$411 = HEAP8[$410 >> 0] | 0;
if (!($411 & 1)) $419 = ($411 & 255) >>> 1; else $419 = HEAP32[$405 + -44 >> 2] | 0;
if (!$419) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($410, $name4$i); else {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($11, 12902, $name4$i);
$420 = HEAP8[$11 >> 0] | 0;
$422 = ($420 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($410, $422 ? $98 : HEAP32[$97 >> 2] | 0, $422 ? ($420 & 255) >>> 1 : HEAP32[$99 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($11);
}
$430 = (HEAP32[$34 >> 2] | 0) + -24 | 0;
HEAP32[$13 >> 2] = HEAP32[$84 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($12, $430, $13);
$432 = HEAP32[$86 >> 2] | 0;
$433 = HEAP32[$87 >> 2] | 0;
if ($432 >>> 0 < $433 >>> 0) {
HEAP32[$432 + 12 >> 2] = HEAP32[$93 >> 2];
HEAP32[$432 >> 2] = HEAP32[$12 >> 2];
HEAP32[$432 + 4 >> 2] = HEAP32[$94 >> 2];
HEAP32[$432 + 8 >> 2] = HEAP32[$95 >> 2];
HEAP32[$95 >> 2] = 0;
HEAP32[$94 >> 2] = 0;
HEAP32[$12 >> 2] = 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 16;
} else {
$446 = HEAP32[$85 >> 2] | 0;
$447 = $432 - $446 | 0;
$448 = $447 >> 4;
$449 = $448 + 1 | 0;
if (($447 | 0) < -16) {
label = 105;
break;
}
$452 = $433 - $446 | 0;
if ($452 >> 4 >>> 0 < 1073741823) {
$455 = $452 >> 3;
$$0$i$i$i52$i = $455 >>> 0 < $449 >>> 0 ? $449 : $455;
} else $$0$i$i$i52$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i52$i, $448, $91);
$458 = HEAP32[$96 >> 2] | 0;
HEAP32[$458 + 12 >> 2] = HEAP32[$93 >> 2];
HEAP32[$458 >> 2] = HEAP32[$12 >> 2];
HEAP32[$458 + 4 >> 2] = HEAP32[$94 >> 2];
HEAP32[$458 + 8 >> 2] = HEAP32[$95 >> 2];
HEAP32[$95 >> 2] = 0;
HEAP32[$94 >> 2] = 0;
HEAP32[$12 >> 2] = 0;
HEAP32[$96 >> 2] = $458 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($85, $__v$i$i51$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($12);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($name4$i);
$t0$2$i$ph$be = $400;
}
$719 = HEAP8[$t0$2$i$ph$be >> 0] | 0;
if ($719 << 24 >> 24 == 69) {
$pop_subs$0$off0$i$ph$lcssa = 1;
$t0$2$i$lcssa = $t0$2$i$ph$be;
break L72;
} else {
$pop_subs$0$off0$i$ph136 = 1;
$t0$2$i$ph135 = $t0$2$i$ph$be;
}
}
if ((label | 0) == 37) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 56) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 75) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 86) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85); else if ((label | 0) == 105) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($85);
} while (0);
$469 = $t0$2$i$lcssa + 1 | 0;
HEAP32[$db + 48 >> 2] = HEAP32[$cv$i >> 2];
if ($pop_subs$0$off0$i$ph$lcssa) {
$474 = HEAP32[$86 >> 2] | 0;
if ((HEAP32[$db + 16 >> 2] | 0) == ($474 | 0)) $$07$i = $469; else {
$476 = $474 + -16 | 0;
$478 = $474;
do {
$477 = $478 + -16 | 0;
HEAP32[$86 >> 2] = $477;
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($477);
$478 = HEAP32[$86 >> 2] | 0;
} while (($478 | 0) != ($476 | 0));
$$07$i = $469;
}
} else $$07$i = $469;
}
} else $$07$i = $$first; while (0);
$$02 = ($$07$i | 0) == ($$first | 0) ? $first : $$07$i;
break L1;
break;
}
case 90:
{
L199 : do if (($$first | 0) == ($last | 0)) $$0$i10 = $last; else if ($23 << 24 >> 24 == 90) {
$483 = $$first + 1 | 0;
$484 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($483, $last, $db) | 0;
if (($484 | 0) == ($483 | 0) | ($484 | 0) == ($last | 0)) $$0$i10 = $$first; else if ((HEAP8[$484 >> 0] | 0) == 69) {
$489 = $484 + 1 | 0;
if (($489 | 0) == ($last | 0)) $$0$i10 = $$first; else switch (HEAP8[$489 >> 0] | 0) {
case 115:
{
$494 = __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($484 + 2 | 0, $last) | 0;
$497 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($497 | 0)) {
$$0$i10 = $494;
break L199;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($497 + -24 | 0, 12905) | 0;
$$0$i10 = $494;
break L199;
break;
}
case 100:
{
$500 = $484 + 2 | 0;
if (($500 | 0) == ($last | 0)) {
$$0$i10 = $$first;
break L199;
}
$502 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($500, $last) | 0;
if (($502 | 0) == ($last | 0)) {
$$0$i10 = $$first;
break L199;
}
if ((HEAP8[$502 >> 0] | 0) != 95) {
$$0$i10 = $$first;
break L199;
}
$506 = $502 + 1 | 0;
$507 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($506, $last, $db) | 0;
$509 = $db + 4 | 0;
$510 = HEAP32[$509 >> 2] | 0;
if (($507 | 0) == ($506 | 0)) {
$538 = $510 + -24 | 0;
$540 = $510;
while (1) {
$539 = $540 + -24 | 0;
HEAP32[$509 >> 2] = $539;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($539);
$540 = HEAP32[$509 >> 2] | 0;
if (($540 | 0) == ($538 | 0)) {
$$0$i10 = $$first;
break L199;
}
}
}
if ((($510 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0$i10 = $$first;
break L199;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($__v$i$i51$i, $510 + -24 | 0);
$518 = HEAP32[$509 >> 2] | 0;
$519 = $518 + -24 | 0;
$521 = $518;
do {
$520 = $521 + -24 | 0;
HEAP32[$509 >> 2] = $520;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($520);
$521 = HEAP32[$509 >> 2] | 0;
} while (($521 | 0) != ($519 | 0));
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($518 + -48 | 0, 12902) | 0;
$526 = HEAP8[$__v$i$i51$i >> 0] | 0;
$528 = ($526 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$509 >> 2] | 0) + -24 | 0, $528 ? $__v$i$i51$i + 1 | 0 : HEAP32[$__v$i$i51$i + 8 >> 2] | 0, $528 ? ($526 & 255) >>> 1 : HEAP32[$__v$i$i51$i + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($__v$i$i51$i);
$$0$i10 = $507;
break L199;
break;
}
default:
{
$542 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($489, $last, $db) | 0;
if (($542 | 0) == ($489 | 0)) {
$574 = $db + 4 | 0;
$575 = HEAP32[$574 >> 2] | 0;
$576 = $575 + -24 | 0;
$578 = $575;
while (1) {
$577 = $578 + -24 | 0;
HEAP32[$574 >> 2] = $577;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($577);
$578 = HEAP32[$574 >> 2] | 0;
if (($578 | 0) == ($576 | 0)) {
$$0$i10 = $$first;
break L199;
}
}
}
$544 = __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($542, $last) | 0;
$545 = $db + 4 | 0;
$546 = HEAP32[$545 >> 2] | 0;
if ((($546 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0$i10 = $544;
break L199;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($cv$i, $546 + -24 | 0);
$554 = HEAP32[$545 >> 2] | 0;
$555 = $554 + -24 | 0;
$557 = $554;
do {
$556 = $557 + -24 | 0;
HEAP32[$545 >> 2] = $556;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($556);
$557 = HEAP32[$545 >> 2] | 0;
} while (($557 | 0) != ($555 | 0));
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($554 + -48 | 0, 12902) | 0;
$562 = HEAP8[$cv$i >> 0] | 0;
$564 = ($562 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$545 >> 2] | 0) + -24 | 0, $564 ? $cv$i + 1 | 0 : HEAP32[$cv$i + 8 >> 2] | 0, $564 ? ($562 & 255) >>> 1 : HEAP32[$cv$i + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($cv$i);
$$0$i10 = $544;
break L199;
}
}
} else $$0$i10 = $$first;
} else $$0$i10 = $$first; while (0);
STACKTOP = sp;
return (($$0$i10 | 0) == ($$first | 0) ? $first : $$0$i10) | 0;
}
default:
{
do if (($16 - $$first | 0) > 1) {
if ($23 << 24 >> 24 == 83) if ((HEAP8[$$first + 1 >> 0] | 0) == 116) {
$588 = $$first + 2 | 0;
if (($588 | 0) == ($last | 0)) {
$St$0$off0$i = 0;
$t0$0$i = $last;
} else {
$St$0$off0$i = 0;
$t0$0$i = (HEAP8[$588 >> 0] | 0) == 76 ? $$first + 3 | 0 : $588;
}
} else {
$St$0$off0$i = 1;
$t0$0$i = $$first;
} else {
$St$0$off0$i = 1;
$t0$0$i = $$first;
}
$593 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($t0$0$i, $last, $db) | 0;
$594 = ($593 | 0) == ($t0$0$i | 0);
if ($St$0$off0$i | $594) $$0$i = $594 ? $$first : $593; else {
$597 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($597 | 0)) break;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($597 + -24 | 0, 0, 12922) | 0;
$$0$i = $593;
}
if (($$0$i | 0) != ($$first | 0)) {
if (($$0$i | 0) == ($last | 0)) {
$$02 = $last;
break L1;
}
if ((HEAP8[$$0$i >> 0] | 0) != 73) {
$$02 = $$0$i;
break L1;
}
$605 = $db + 4 | 0;
$606 = HEAP32[$605 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($606 | 0)) {
$$02 = $first;
break L1;
}
$608 = $db + 16 | 0;
HEAP32[$15 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($14, $606 + -24 | 0, $15);
$612 = $db + 20 | 0;
$613 = HEAP32[$612 >> 2] | 0;
$615 = HEAP32[$db + 24 >> 2] | 0;
if ($613 >>> 0 < $615 >>> 0) {
HEAP32[$613 + 12 >> 2] = HEAP32[$14 + 12 >> 2];
HEAP32[$613 >> 2] = HEAP32[$14 >> 2];
$622 = $14 + 4 | 0;
HEAP32[$613 + 4 >> 2] = HEAP32[$622 >> 2];
$624 = $14 + 8 | 0;
HEAP32[$613 + 8 >> 2] = HEAP32[$624 >> 2];
HEAP32[$624 >> 2] = 0;
HEAP32[$622 >> 2] = 0;
HEAP32[$14 >> 2] = 0;
HEAP32[$612 >> 2] = (HEAP32[$612 >> 2] | 0) + 16;
} else {
$632 = HEAP32[$608 >> 2] | 0;
$633 = $613 - $632 | 0;
$634 = $633 >> 4;
$635 = $634 + 1 | 0;
if (($633 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($608);
$638 = $615 - $632 | 0;
if ($638 >> 4 >>> 0 < 1073741823) {
$641 = $638 >> 3;
$$0$i$i$i = $641 >>> 0 < $635 >>> 0 ? $635 : $641;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i51$i, $$0$i$i$i, $634, $db + 28 | 0);
$644 = $__v$i$i51$i + 8 | 0;
$645 = HEAP32[$644 >> 2] | 0;
HEAP32[$645 + 12 >> 2] = HEAP32[$14 + 12 >> 2];
HEAP32[$645 >> 2] = HEAP32[$14 >> 2];
$651 = $14 + 4 | 0;
HEAP32[$645 + 4 >> 2] = HEAP32[$651 >> 2];
$653 = $14 + 8 | 0;
HEAP32[$645 + 8 >> 2] = HEAP32[$653 >> 2];
HEAP32[$653 >> 2] = 0;
HEAP32[$651 >> 2] = 0;
HEAP32[$14 >> 2] = 0;
HEAP32[$644 >> 2] = $645 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($608, $__v$i$i51$i);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i51$i);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($14);
$657 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($$0$i, $last, $db) | 0;
if (($657 | 0) == ($$0$i | 0)) {
$$02 = $first;
break L1;
}
$659 = HEAP32[$605 >> 2] | 0;
if ((($659 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$02 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp, $659 + -24 | 0);
$667 = HEAP32[$605 >> 2] | 0;
$668 = $667 + -24 | 0;
$670 = $667;
do {
$669 = $670 + -24 | 0;
HEAP32[$605 >> 2] = $669;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($669);
$670 = HEAP32[$605 >> 2] | 0;
} while (($670 | 0) != ($668 | 0));
$673 = HEAP8[$tmp >> 0] | 0;
$675 = ($673 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($667 + -48 | 0, $675 ? $tmp + 1 | 0 : HEAP32[$tmp + 8 >> 2] | 0, $675 ? ($673 & 255) >>> 1 : HEAP32[$tmp + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp);
$$02 = $657;
break L1;
}
} while (0);
$685 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($$first, $last, $db) | 0;
if (($685 | 0) == ($$first | 0) | ($685 | 0) == ($last | 0)) {
$$02 = $first;
break L1;
}
if ((HEAP8[$685 >> 0] | 0) != 73) {
$$02 = $first;
break L1;
}
$690 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($685, $last, $db) | 0;
if (($690 | 0) == ($685 | 0)) {
$$02 = $first;
break L1;
}
$692 = $db + 4 | 0;
$693 = HEAP32[$692 >> 2] | 0;
if ((($693 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$02 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp3, $693 + -24 | 0);
$701 = HEAP32[$692 >> 2] | 0;
$702 = $701 + -24 | 0;
$704 = $701;
do {
$703 = $704 + -24 | 0;
HEAP32[$692 >> 2] = $703;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($703);
$704 = HEAP32[$692 >> 2] | 0;
} while (($704 | 0) != ($702 | 0));
$707 = HEAP8[$tmp3 >> 0] | 0;
$709 = ($707 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($701 + -48 | 0, $709 ? $tmp3 + 1 | 0 : HEAP32[$tmp3 + 8 >> 2] | 0, $709 ? ($707 & 255) >>> 1 : HEAP32[$tmp3 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp3);
$$02 = $690;
break L1;
}
}
} else $$02 = $first; while (0);
STACKTOP = sp;
return $$02 | 0;
}
function _printf_core($f, $fmt, $ap, $nl_arg, $nl_type) {
$f = $f | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
$nl_arg = $nl_arg | 0;
$nl_type = $nl_type | 0;
var $$0 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$012$i = 0, $$013$i = 0, $$03$i33 = 0, $$07$i = 0.0, $$1$i = 0.0, $$114$i = 0, $$2$i = 0.0, $$20$i = 0.0, $$21$i = 0, $$210$i = 0, $$23$i = 0, $$3$i = 0.0, $$31$i = 0, $$311$i = 0, $$4$i = 0.0, $$412$lcssa$i = 0, $$41276$i = 0, $$5$lcssa$i = 0, $$51 = 0, $$587$i = 0, $$a$3$i = 0, $$a$3186$i = 0, $$fl$4 = 0, $$lcssa = 0, $$lcssa159$i = 0, $$lcssa318 = 0, $$lcssa323 = 0, $$lcssa324 = 0, $$lcssa325 = 0, $$lcssa326 = 0, $$lcssa327 = 0, $$lcssa329 = 0, $$lcssa339 = 0, $$lcssa342 = 0.0, $$lcssa344 = 0, $$p$$i = 0, $$p$5 = 0, $$p$i = 0, $$pn$i = 0, $$pr$i = 0, $$pr47$i = 0, $$pre$phi184$iZ2D = 0, $$pre182$i = 0, $$z$4$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $107 = 0, $109 = 0, $11 = 0, $12 = 0, $13 = 0, $133 = 0, $134 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $144 = 0, $146 = 0, $148 = 0, $149 = 0, $15 = 0, $154 = 0, $157 = 0, $162 = 0, $163 = 0, $168 = 0, $175 = 0, $176 = 0, $187 = 0, $19 = 0, $199 = 0, $2 = 0, $206 = 0, $208 = 0, $21 = 0, $211 = 0, $212 = 0, $217 = 0, $223 = 0, $224 = 0, $23 = 0, $230 = 0, $24 = 0, $243 = 0, $245 = 0, $248 = 0, $253 = 0, $256 = 0, $257 = 0, $267 = 0, $269 = 0, $271 = 0, $274 = 0, $276 = 0, $277 = 0, $278 = 0, $28 = 0, $284 = 0, $286 = 0, $287 = 0, $29 = 0, $291 = 0, $299 = 0, $3 = 0, $305 = 0, $314 = 0, $317 = 0, $320 = 0, $321 = 0, $334 = 0, $336 = 0, $34 = 0, $341 = 0, $346 = 0, $349 = 0, $359 = 0.0, $366 = 0, $370 = 0, $377 = 0, $379 = 0, $381 = 0, $382 = 0, $386 = 0, $39 = 0, $392 = 0.0, $393 = 0, $396 = 0, $398 = 0, $4 = 0, $40 = 0, $401 = 0, $403 = 0, $407 = 0.0, $417 = 0, $420 = 0, $423 = 0, $432 = 0, $434 = 0, $435 = 0, $44 = 0, $441 = 0, $459 = 0, $46 = 0, $464 = 0, $469 = 0, $47 = 0, $479 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $491 = 0, $492 = 0, $495 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $501 = 0, $505 = 0, $507 = 0, $51 = 0, $511 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $521 = 0, $527 = 0, $528 = 0, $529 = 0, $533 = 0, $541 = 0, $555 = 0, $556 = 0, $559 = 0, $56 = 0, $564 = 0, $565 = 0, $567 = 0, $574 = 0, $575 = 0, $576 = 0, $579 = 0, $580 = 0, $581 = 0, $588 = 0, $59 = 0, $598 = 0, $6 = 0, $60 = 0, $601 = 0, $603 = 0, $605 = 0, $607 = 0, $61 = 0, $612 = 0, $613 = 0, $616 = 0, $618 = 0, $620 = 0, $622 = 0, $633 = 0, $636 = 0, $641 = 0, $650 = 0, $651 = 0, $655 = 0, $658 = 0, $66 = 0, $660 = 0, $662 = 0, $666 = 0, $669 = 0, $67 = 0, $673 = 0, $683 = 0, $688 = 0, $695 = 0, $698 = 0, $7 = 0, $706 = 0, $716 = 0, $718 = 0, $726 = 0, $733 = 0, $735 = 0, $739 = 0, $741 = 0, $750 = 0, $756 = 0, $771 = 0, $773 = 0, $786 = 0, $8 = 0, $9 = 0, $91 = 0, $92 = 0, $98 = 0, $99 = 0, $a$0 = 0, $a$1 = 0, $a$1$lcssa$i = 0, $a$1147$i = 0, $a$2 = 0, $a$2$ph$i = 0, $a$3$lcssa$i = 0, $a$3134$i = 0, $a$5$lcssa$i = 0, $a$5109$i = 0, $a$6$i = 0, $a$7$i = 0, $a$8$ph$i = 0, $arg = 0, $argpos$0 = 0, $big$i = 0, $buf = 0, $buf$i = 0, $carry$0140$i = 0, $carry3$0128$i = 0, $cnt$0 = 0, $cnt$1 = 0, $cnt$1$lcssa = 0, $d$0139$i = 0, $d$0141$i = 0, $d$1127$i = 0, $d$2$lcssa$i = 0, $d$2108$i = 0, $d$3$i = 0, $d$482$i = 0, $d$575$i = 0, $d$686$i = 0, $e$0123$i = 0, $e$1$i = 0, $e$2104$i = 0, $e$3$i = 0, $e$4$ph$i = 0, $e2$i = 0, $ebuf0$i = 0, $estr$0$i = 0, $estr$1$lcssa$i = 0, $estr$193$i = 0, $estr$2$i = 0, $fl$0109 = 0, $fl$062 = 0, $fl$1 = 0, $fl$1$ = 0, $fl$3 = 0, $fl$4 = 0, $fl$6 = 0, $fmt39$lcssa = 0, $fmt39101 = 0, $fmt40 = 0, $fmt41 = 0, $fmt42 = 0, $fmt44 = 0, $fmt44$lcssa321 = 0, $fmt45 = 0, $i$0$lcssa = 0, $i$0$lcssa200 = 0, $i$0114 = 0, $i$0122$i = 0, $i$03$i = 0, $i$03$i25 = 0, $i$1$lcssa$i = 0, $i$1116$i = 0, $i$1125 = 0, $i$2100 = 0, $i$2100$lcssa = 0, $i$2103$i = 0, $i$398 = 0, $i$399$i = 0, $isdigittmp = 0, $isdigittmp1$i = 0, $isdigittmp1$i22 = 0, $isdigittmp11 = 0, $isdigittmp4$i = 0, $isdigittmp4$i24 = 0, $isdigittmp9 = 0, $j$0115$i = 0, $j$0117$i = 0, $j$1100$i = 0, $j$2$i = 0, $l$0 = 0, $l$0$i = 0, $l$1113 = 0, $l$2 = 0, $l10n$0 = 0, $l10n$0$lcssa = 0, $l10n$1 = 0, $l10n$2 = 0, $l10n$3 = 0, $mb = 0, $notrhs$i = 0, $p$0 = 0, $p$1 = 0, $p$2 = 0, $p$4198 = 0, $p$5 = 0, $pl$0 = 0, $pl$0$i = 0, $pl$1 = 0, $pl$1$i = 0, $pl$2 = 0, $prefix$0 = 0, $prefix$0$$i = 0, $prefix$0$i = 0, $prefix$1 = 0, $prefix$2 = 0, $r$0$a$8$i = 0, $re$169$i = 0, $round$068$i = 0.0, $round6$1$i = 0.0, $s$0$i = 0, $s$1$i = 0, $s$1$i$lcssa = 0, $s7$079$i = 0, $s7$1$i = 0, $s8$0$lcssa$i = 0, $s8$070$i = 0, $s9$0$i = 0, $s9$183$i = 0, $s9$2$i = 0, $small$0$i = 0.0, $small$1$i = 0.0, $st$0 = 0, $st$0$lcssa322 = 0, $storemerge = 0, $storemerge13 = 0, $storemerge8108 = 0, $storemerge860 = 0, $t$0 = 0, $t$1 = 0, $w$0 = 0, $w$1 = 0, $w$2 = 0, $wc = 0, $ws$0115 = 0, $ws$1126 = 0, $z$0$i = 0, $z$0$lcssa = 0, $z$0102 = 0, $z$1$lcssa$i = 0, $z$1146$i = 0, $z$2 = 0, $z$2$i = 0, $z$2$i$lcssa = 0, $z$3$lcssa$i = 0, $z$3133$i = 0, $z$4$i = 0, $z$6$$i = 0, $z$6$i = 0, $z$6$i$lcssa = 0, $z$6$ph$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 624 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$big$i = sp + 24 | 0;
$e2$i = sp + 16 | 0;
$buf$i = sp + 588 | 0;
$ebuf0$i = sp + 576 | 0;
$arg = sp;
$buf = sp + 536 | 0;
$wc = sp + 8 | 0;
$mb = sp + 528 | 0;
$0 = ($f | 0) != 0;
$1 = $buf + 40 | 0;
$2 = $1;
$3 = $buf + 39 | 0;
$4 = $wc + 4 | 0;
$5 = $ebuf0$i + 12 | 0;
$6 = $ebuf0$i + 11 | 0;
$7 = $buf$i;
$8 = $5;
$9 = $8 - $7 | 0;
$10 = -2 - $7 | 0;
$11 = $8 + 2 | 0;
$12 = $big$i + 288 | 0;
$13 = $buf$i + 9 | 0;
$14 = $13;
$15 = $buf$i + 8 | 0;
$cnt$0 = 0;
$fmt41 = $fmt;
$l$0 = 0;
$l10n$0 = 0;
L1 : while (1) {
do if (($cnt$0 | 0) > -1) if (($l$0 | 0) > (2147483647 - $cnt$0 | 0)) {
$19 = ___errno_location() | 0;
HEAP32[$19 >> 2] = 75;
$cnt$1 = -1;
break;
} else {
$cnt$1 = $l$0 + $cnt$0 | 0;
break;
} else $cnt$1 = $cnt$0; while (0);
$21 = HEAP8[$fmt41 >> 0] | 0;
if (!($21 << 24 >> 24)) {
$cnt$1$lcssa = $cnt$1;
$l10n$0$lcssa = $l10n$0;
label = 245;
break;
} else {
$23 = $21;
$fmt40 = $fmt41;
}
L9 : while (1) {
switch ($23 << 24 >> 24) {
case 37:
{
$fmt39101 = $fmt40;
$z$0102 = $fmt40;
label = 9;
break L9;
break;
}
case 0:
{
$fmt39$lcssa = $fmt40;
$z$0$lcssa = $fmt40;
break L9;
break;
}
default:
{}
}
$24 = $fmt40 + 1 | 0;
$23 = HEAP8[$24 >> 0] | 0;
$fmt40 = $24;
}
L12 : do if ((label | 0) == 9) while (1) {
label = 0;
if ((HEAP8[$fmt39101 + 1 >> 0] | 0) != 37) {
$fmt39$lcssa = $fmt39101;
$z$0$lcssa = $z$0102;
break L12;
}
$28 = $z$0102 + 1 | 0;
$29 = $fmt39101 + 2 | 0;
if ((HEAP8[$29 >> 0] | 0) == 37) {
$fmt39101 = $29;
$z$0102 = $28;
label = 9;
} else {
$fmt39$lcssa = $29;
$z$0$lcssa = $28;
break;
}
} while (0);
$34 = $z$0$lcssa - $fmt41 | 0;
if ($0) if (!(HEAP32[$f >> 2] & 32)) ___fwritex($fmt41, $34, $f) | 0;
if (($z$0$lcssa | 0) != ($fmt41 | 0)) {
$cnt$0 = $cnt$1;
$fmt41 = $fmt39$lcssa;
$l$0 = $34;
continue;
}
$39 = $fmt39$lcssa + 1 | 0;
$40 = HEAP8[$39 >> 0] | 0;
$isdigittmp = ($40 << 24 >> 24) + -48 | 0;
if ($isdigittmp >>> 0 < 10) {
$44 = (HEAP8[$fmt39$lcssa + 2 >> 0] | 0) == 36;
$$51 = $44 ? $fmt39$lcssa + 3 | 0 : $39;
$47 = HEAP8[$$51 >> 0] | 0;
$argpos$0 = $44 ? $isdigittmp : -1;
$l10n$1 = $44 ? 1 : $l10n$0;
$storemerge = $$51;
} else {
$47 = $40;
$argpos$0 = -1;
$l10n$1 = $l10n$0;
$storemerge = $39;
}
$46 = $47 << 24 >> 24;
L25 : do if (($46 & -32 | 0) == 32) {
$51 = $46;
$56 = $47;
$fl$0109 = 0;
$storemerge8108 = $storemerge;
while (1) {
if (!(1 << $51 + -32 & 75913)) {
$66 = $56;
$fl$062 = $fl$0109;
$storemerge860 = $storemerge8108;
break L25;
}
$59 = 1 << ($56 << 24 >> 24) + -32 | $fl$0109;
$60 = $storemerge8108 + 1 | 0;
$61 = HEAP8[$60 >> 0] | 0;
$51 = $61 << 24 >> 24;
if (($51 & -32 | 0) != 32) {
$66 = $61;
$fl$062 = $59;
$storemerge860 = $60;
break;
} else {
$56 = $61;
$fl$0109 = $59;
$storemerge8108 = $60;
}
}
} else {
$66 = $47;
$fl$062 = 0;
$storemerge860 = $storemerge;
} while (0);
do if ($66 << 24 >> 24 == 42) {
$67 = $storemerge860 + 1 | 0;
$isdigittmp11 = (HEAP8[$67 >> 0] | 0) + -48 | 0;
if ($isdigittmp11 >>> 0 < 10) if ((HEAP8[$storemerge860 + 2 >> 0] | 0) == 36) {
HEAP32[$nl_type + ($isdigittmp11 << 2) >> 2] = 10;
$l10n$2 = 1;
$storemerge13 = $storemerge860 + 3 | 0;
$w$0 = HEAP32[$nl_arg + ((HEAP8[$67 >> 0] | 0) + -48 << 3) >> 2] | 0;
} else label = 24; else label = 24;
if ((label | 0) == 24) {
label = 0;
if ($l10n$1) {
$$0 = -1;
break L1;
}
if (!$0) {
$fl$1 = $fl$062;
$fmt42 = $67;
$l10n$3 = 0;
$w$1 = 0;
break;
}
$91 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$92 = HEAP32[$91 >> 2] | 0;
HEAP32[$ap >> 2] = $91 + 4;
$l10n$2 = 0;
$storemerge13 = $67;
$w$0 = $92;
}
if (($w$0 | 0) < 0) {
$fl$1 = $fl$062 | 8192;
$fmt42 = $storemerge13;
$l10n$3 = $l10n$2;
$w$1 = 0 - $w$0 | 0;
} else {
$fl$1 = $fl$062;
$fmt42 = $storemerge13;
$l10n$3 = $l10n$2;
$w$1 = $w$0;
}
} else {
$isdigittmp1$i = ($66 << 24 >> 24) + -48 | 0;
if ($isdigittmp1$i >>> 0 < 10) {
$100 = $storemerge860;
$i$03$i = 0;
$isdigittmp4$i = $isdigittmp1$i;
while (1) {
$98 = ($i$03$i * 10 | 0) + $isdigittmp4$i | 0;
$99 = $100 + 1 | 0;
$isdigittmp4$i = (HEAP8[$99 >> 0] | 0) + -48 | 0;
if ($isdigittmp4$i >>> 0 >= 10) {
$$lcssa = $98;
$$lcssa318 = $99;
break;
} else {
$100 = $99;
$i$03$i = $98;
}
}
if (($$lcssa | 0) < 0) {
$$0 = -1;
break L1;
} else {
$fl$1 = $fl$062;
$fmt42 = $$lcssa318;
$l10n$3 = $l10n$1;
$w$1 = $$lcssa;
}
} else {
$fl$1 = $fl$062;
$fmt42 = $storemerge860;
$l10n$3 = $l10n$1;
$w$1 = 0;
}
} while (0);
L46 : do if ((HEAP8[$fmt42 >> 0] | 0) == 46) {
$106 = $fmt42 + 1 | 0;
$107 = HEAP8[$106 >> 0] | 0;
if ($107 << 24 >> 24 != 42) {
$isdigittmp1$i22 = ($107 << 24 >> 24) + -48 | 0;
if ($isdigittmp1$i22 >>> 0 < 10) {
$139 = $106;
$i$03$i25 = 0;
$isdigittmp4$i24 = $isdigittmp1$i22;
} else {
$fmt45 = $106;
$p$0 = 0;
break;
}
while (1) {
$137 = ($i$03$i25 * 10 | 0) + $isdigittmp4$i24 | 0;
$138 = $139 + 1 | 0;
$isdigittmp4$i24 = (HEAP8[$138 >> 0] | 0) + -48 | 0;
if ($isdigittmp4$i24 >>> 0 >= 10) {
$fmt45 = $138;
$p$0 = $137;
break L46;
} else {
$139 = $138;
$i$03$i25 = $137;
}
}
}
$109 = $fmt42 + 2 | 0;
$isdigittmp9 = (HEAP8[$109 >> 0] | 0) + -48 | 0;
if ($isdigittmp9 >>> 0 < 10) if ((HEAP8[$fmt42 + 3 >> 0] | 0) == 36) {
HEAP32[$nl_type + ($isdigittmp9 << 2) >> 2] = 10;
$fmt45 = $fmt42 + 4 | 0;
$p$0 = HEAP32[$nl_arg + ((HEAP8[$109 >> 0] | 0) + -48 << 3) >> 2] | 0;
break;
}
if ($l10n$3) {
$$0 = -1;
break L1;
}
if ($0) {
$133 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$134 = HEAP32[$133 >> 2] | 0;
HEAP32[$ap >> 2] = $133 + 4;
$fmt45 = $109;
$p$0 = $134;
} else {
$fmt45 = $109;
$p$0 = 0;
}
} else {
$fmt45 = $fmt42;
$p$0 = -1;
} while (0);
$fmt44 = $fmt45;
$st$0 = 0;
while (1) {
$144 = (HEAP8[$fmt44 >> 0] | 0) + -65 | 0;
if ($144 >>> 0 > 57) {
$$0 = -1;
break L1;
}
$146 = $fmt44 + 1 | 0;
$148 = HEAP8[17803 + ($st$0 * 58 | 0) + $144 >> 0] | 0;
$149 = $148 & 255;
if (($149 + -1 | 0) >>> 0 < 8) {
$fmt44 = $146;
$st$0 = $149;
} else {
$$lcssa323 = $146;
$$lcssa324 = $148;
$$lcssa325 = $149;
$fmt44$lcssa321 = $fmt44;
$st$0$lcssa322 = $st$0;
break;
}
}
if (!($$lcssa324 << 24 >> 24)) {
$$0 = -1;
break;
}
$154 = ($argpos$0 | 0) > -1;
do if ($$lcssa324 << 24 >> 24 == 19) if ($154) {
$$0 = -1;
break L1;
} else label = 52; else {
if ($154) {
HEAP32[$nl_type + ($argpos$0 << 2) >> 2] = $$lcssa325;
$157 = $nl_arg + ($argpos$0 << 3) | 0;
$162 = HEAP32[$157 + 4 >> 2] | 0;
$163 = $arg;
HEAP32[$163 >> 2] = HEAP32[$157 >> 2];
HEAP32[$163 + 4 >> 2] = $162;
label = 52;
break;
}
if (!$0) {
$$0 = 0;
break L1;
}
_pop_arg($arg, $$lcssa325, $ap);
} while (0);
if ((label | 0) == 52) {
label = 0;
if (!$0) {
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue;
}
}
$168 = HEAP8[$fmt44$lcssa321 >> 0] | 0;
$t$0 = ($st$0$lcssa322 | 0) != 0 & ($168 & 15 | 0) == 3 ? $168 & -33 : $168;
$175 = $fl$1 & -65537;
$fl$1$ = ($fl$1 & 8192 | 0) == 0 ? $fl$1 : $175;
L75 : do switch ($t$0 | 0) {
case 110:
{
switch ($st$0$lcssa322 | 0) {
case 0:
{
HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
case 1:
{
HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
case 2:
{
$187 = HEAP32[$arg >> 2] | 0;
HEAP32[$187 >> 2] = $cnt$1;
HEAP32[$187 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
case 3:
{
HEAP16[HEAP32[$arg >> 2] >> 1] = $cnt$1;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
case 4:
{
HEAP8[HEAP32[$arg >> 2] >> 0] = $cnt$1;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
case 6:
{
HEAP32[HEAP32[$arg >> 2] >> 2] = $cnt$1;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
case 7:
{
$199 = HEAP32[$arg >> 2] | 0;
HEAP32[$199 >> 2] = $cnt$1;
HEAP32[$199 + 4 >> 2] = (($cnt$1 | 0) < 0) << 31 >> 31;
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
break;
}
default:
{
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $34;
$l10n$0 = $l10n$3;
continue L1;
}
}
break;
}
case 112:
{
$fl$3 = $fl$1$ | 8;
$p$1 = $p$0 >>> 0 > 8 ? $p$0 : 8;
$t$1 = 120;
label = 64;
break;
}
case 88:
case 120:
{
$fl$3 = $fl$1$;
$p$1 = $p$0;
$t$1 = $t$0;
label = 64;
break;
}
case 111:
{
$243 = $arg;
$245 = HEAP32[$243 >> 2] | 0;
$248 = HEAP32[$243 + 4 >> 2] | 0;
if (($245 | 0) == 0 & ($248 | 0) == 0) $$0$lcssa$i = $1; else {
$$03$i33 = $1;
$253 = $245;
$257 = $248;
while (1) {
$256 = $$03$i33 + -1 | 0;
HEAP8[$256 >> 0] = $253 & 7 | 48;
$253 = _bitshift64Lshr($253 | 0, $257 | 0, 3) | 0;
$257 = tempRet0;
if (($253 | 0) == 0 & ($257 | 0) == 0) {
$$0$lcssa$i = $256;
break;
} else $$03$i33 = $256;
}
}
if (!($fl$1$ & 8)) {
$a$0 = $$0$lcssa$i;
$fl$4 = $fl$1$;
$p$2 = $p$0;
$pl$1 = 0;
$prefix$1 = 18283;
label = 77;
} else {
$267 = $2 - $$0$lcssa$i + 1 | 0;
$a$0 = $$0$lcssa$i;
$fl$4 = $fl$1$;
$p$2 = ($p$0 | 0) < ($267 | 0) ? $267 : $p$0;
$pl$1 = 0;
$prefix$1 = 18283;
label = 77;
}
break;
}
case 105:
case 100:
{
$269 = $arg;
$271 = HEAP32[$269 >> 2] | 0;
$274 = HEAP32[$269 + 4 >> 2] | 0;
if (($274 | 0) < 0) {
$276 = _i64Subtract(0, 0, $271 | 0, $274 | 0) | 0;
$277 = tempRet0;
$278 = $arg;
HEAP32[$278 >> 2] = $276;
HEAP32[$278 + 4 >> 2] = $277;
$286 = $276;
$287 = $277;
$pl$0 = 1;
$prefix$0 = 18283;
label = 76;
break L75;
}
if (!($fl$1$ & 2048)) {
$284 = $fl$1$ & 1;
$286 = $271;
$287 = $274;
$pl$0 = $284;
$prefix$0 = ($284 | 0) == 0 ? 18283 : 18285;
label = 76;
} else {
$286 = $271;
$287 = $274;
$pl$0 = 1;
$prefix$0 = 18284;
label = 76;
}
break;
}
case 117:
{
$176 = $arg;
$286 = HEAP32[$176 >> 2] | 0;
$287 = HEAP32[$176 + 4 >> 2] | 0;
$pl$0 = 0;
$prefix$0 = 18283;
label = 76;
break;
}
case 99:
{
HEAP8[$3 >> 0] = HEAP32[$arg >> 2];
$a$2 = $3;
$fl$6 = $175;
$p$5 = 1;
$pl$2 = 0;
$prefix$2 = 18283;
$z$2 = $1;
break;
}
case 109:
{
$314 = ___errno_location() | 0;
$a$1 = _strerror(HEAP32[$314 >> 2] | 0) | 0;
label = 82;
break;
}
case 115:
{
$317 = HEAP32[$arg >> 2] | 0;
$a$1 = ($317 | 0) != 0 ? $317 : 18293;
label = 82;
break;
}
case 67:
{
HEAP32[$wc >> 2] = HEAP32[$arg >> 2];
HEAP32[$4 >> 2] = 0;
HEAP32[$arg >> 2] = $wc;
$p$4198 = -1;
label = 86;
break;
}
case 83:
{
if (!$p$0) {
_pad($f, 32, $w$1, 0, $fl$1$);
$i$0$lcssa200 = 0;
label = 98;
} else {
$p$4198 = $p$0;
label = 86;
}
break;
}
case 65:
case 71:
case 70:
case 69:
case 97:
case 103:
case 102:
case 101:
{
$359 = +HEAPF64[$arg >> 3];
HEAP32[$e2$i >> 2] = 0;
HEAPF64[tempDoublePtr >> 3] = $359;
if ((HEAP32[tempDoublePtr + 4 >> 2] | 0) < 0) {
$$07$i = -$359;
$pl$0$i = 1;
$prefix$0$i = 18300;
} else if (!($fl$1$ & 2048)) {
$366 = $fl$1$ & 1;
$$07$i = $359;
$pl$0$i = $366;
$prefix$0$i = ($366 | 0) == 0 ? 18301 : 18306;
} else {
$$07$i = $359;
$pl$0$i = 1;
$prefix$0$i = 18303;
}
HEAPF64[tempDoublePtr >> 3] = $$07$i;
$370 = HEAP32[tempDoublePtr + 4 >> 2] & 2146435072;
do if ($370 >>> 0 < 2146435072 | ($370 | 0) == 2146435072 & 0 < 0) {
$392 = +_frexpl($$07$i, $e2$i) * 2.0;
$393 = $392 != 0.0;
if ($393) HEAP32[$e2$i >> 2] = (HEAP32[$e2$i >> 2] | 0) + -1;
$396 = $t$0 | 32;
if (($396 | 0) == 97) {
$398 = $t$0 & 32;
$prefix$0$$i = ($398 | 0) == 0 ? $prefix$0$i : $prefix$0$i + 9 | 0;
$401 = $pl$0$i | 2;
$403 = 12 - $p$0 | 0;
do if ($p$0 >>> 0 > 11 | ($403 | 0) == 0) $$1$i = $392; else {
$re$169$i = $403;
$round$068$i = 8.0;
while (1) {
$re$169$i = $re$169$i + -1 | 0;
$407 = $round$068$i * 16.0;
if (!$re$169$i) {
$$lcssa342 = $407;
break;
} else $round$068$i = $407;
}
if ((HEAP8[$prefix$0$$i >> 0] | 0) == 45) {
$$1$i = -($$lcssa342 + (-$392 - $$lcssa342));
break;
} else {
$$1$i = $392 + $$lcssa342 - $$lcssa342;
break;
}
} while (0);
$417 = HEAP32[$e2$i >> 2] | 0;
$420 = ($417 | 0) < 0 ? 0 - $417 | 0 : $417;
$423 = _fmt_u($420, (($420 | 0) < 0) << 31 >> 31, $5) | 0;
if (($423 | 0) == ($5 | 0)) {
HEAP8[$6 >> 0] = 48;
$estr$0$i = $6;
} else $estr$0$i = $423;
HEAP8[$estr$0$i + -1 >> 0] = ($417 >> 31 & 2) + 43;
$432 = $estr$0$i + -2 | 0;
HEAP8[$432 >> 0] = $t$0 + 15;
$notrhs$i = ($p$0 | 0) < 1;
$434 = ($fl$1$ & 8 | 0) == 0;
$$2$i = $$1$i;
$s$0$i = $buf$i;
while (1) {
$435 = ~~$$2$i;
$441 = $s$0$i + 1 | 0;
HEAP8[$s$0$i >> 0] = HEAPU8[18267 + $435 >> 0] | $398;
$$2$i = ($$2$i - +($435 | 0)) * 16.0;
do if (($441 - $7 | 0) == 1) {
if ($434 & ($notrhs$i & $$2$i == 0.0)) {
$s$1$i = $441;
break;
}
HEAP8[$441 >> 0] = 46;
$s$1$i = $s$0$i + 2 | 0;
} else $s$1$i = $441; while (0);
if (!($$2$i != 0.0)) {
$s$1$i$lcssa = $s$1$i;
break;
} else $s$0$i = $s$1$i;
}
$$pre182$i = $s$1$i$lcssa;
$l$0$i = ($p$0 | 0) != 0 & ($10 + $$pre182$i | 0) < ($p$0 | 0) ? $11 + $p$0 - $432 | 0 : $9 - $432 + $$pre182$i | 0;
$459 = $l$0$i + $401 | 0;
_pad($f, 32, $w$1, $459, $fl$1$);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$$i, $401, $f) | 0;
_pad($f, 48, $w$1, $459, $fl$1$ ^ 65536);
$464 = $$pre182$i - $7 | 0;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($buf$i, $464, $f) | 0;
$469 = $8 - $432 | 0;
_pad($f, 48, $l$0$i - ($464 + $469) | 0, 0, 0);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($432, $469, $f) | 0;
_pad($f, 32, $w$1, $459, $fl$1$ ^ 8192);
$$0$i = ($459 | 0) < ($w$1 | 0) ? $w$1 : $459;
break;
}
$$p$i = ($p$0 | 0) < 0 ? 6 : $p$0;
if ($393) {
$479 = (HEAP32[$e2$i >> 2] | 0) + -28 | 0;
HEAP32[$e2$i >> 2] = $479;
$$3$i = $392 * 268435456.0;
$481 = $479;
} else {
$$3$i = $392;
$481 = HEAP32[$e2$i >> 2] | 0;
}
$$31$i = ($481 | 0) < 0 ? $big$i : $12;
$482 = $$31$i;
$$4$i = $$3$i;
$z$0$i = $$31$i;
while (1) {
$483 = ~~$$4$i >>> 0;
HEAP32[$z$0$i >> 2] = $483;
$484 = $z$0$i + 4 | 0;
$$4$i = ($$4$i - +($483 >>> 0)) * 1.0e9;
if (!($$4$i != 0.0)) {
$$lcssa326 = $484;
break;
} else $z$0$i = $484;
}
$$pr$i = HEAP32[$e2$i >> 2] | 0;
if (($$pr$i | 0) > 0) {
$491 = $$pr$i;
$a$1147$i = $$31$i;
$z$1146$i = $$lcssa326;
while (1) {
$492 = ($491 | 0) > 29 ? 29 : $491;
$d$0139$i = $z$1146$i + -4 | 0;
do if ($d$0139$i >>> 0 < $a$1147$i >>> 0) $a$2$ph$i = $a$1147$i; else {
$carry$0140$i = 0;
$d$0141$i = $d$0139$i;
while (1) {
$495 = _bitshift64Shl(HEAP32[$d$0141$i >> 2] | 0, 0, $492 | 0) | 0;
$497 = _i64Add($495 | 0, tempRet0 | 0, $carry$0140$i | 0, 0) | 0;
$498 = tempRet0;
$499 = ___uremdi3($497 | 0, $498 | 0, 1e9, 0) | 0;
HEAP32[$d$0141$i >> 2] = $499;
$501 = ___udivdi3($497 | 0, $498 | 0, 1e9, 0) | 0;
$d$0141$i = $d$0141$i + -4 | 0;
if ($d$0141$i >>> 0 < $a$1147$i >>> 0) {
$$lcssa327 = $501;
break;
} else $carry$0140$i = $501;
}
if (!$$lcssa327) {
$a$2$ph$i = $a$1147$i;
break;
}
$505 = $a$1147$i + -4 | 0;
HEAP32[$505 >> 2] = $$lcssa327;
$a$2$ph$i = $505;
} while (0);
$z$2$i = $z$1146$i;
while (1) {
if ($z$2$i >>> 0 <= $a$2$ph$i >>> 0) {
$z$2$i$lcssa = $z$2$i;
break;
}
$507 = $z$2$i + -4 | 0;
if (!(HEAP32[$507 >> 2] | 0)) $z$2$i = $507; else {
$z$2$i$lcssa = $z$2$i;
break;
}
}
$511 = (HEAP32[$e2$i >> 2] | 0) - $492 | 0;
HEAP32[$e2$i >> 2] = $511;
if (($511 | 0) > 0) {
$491 = $511;
$a$1147$i = $a$2$ph$i;
$z$1146$i = $z$2$i$lcssa;
} else {
$$pr47$i = $511;
$a$1$lcssa$i = $a$2$ph$i;
$z$1$lcssa$i = $z$2$i$lcssa;
break;
}
}
} else {
$$pr47$i = $$pr$i;
$a$1$lcssa$i = $$31$i;
$z$1$lcssa$i = $$lcssa326;
}
if (($$pr47$i | 0) < 0) {
$516 = (($$p$i + 25 | 0) / 9 | 0) + 1 | 0;
$517 = ($396 | 0) == 102;
$519 = $$pr47$i;
$a$3134$i = $a$1$lcssa$i;
$z$3133$i = $z$1$lcssa$i;
while (1) {
$518 = 0 - $519 | 0;
$521 = ($518 | 0) > 9 ? 9 : $518;
do if ($a$3134$i >>> 0 < $z$3133$i >>> 0) {
$527 = (1 << $521) + -1 | 0;
$528 = 1e9 >>> $521;
$carry3$0128$i = 0;
$d$1127$i = $a$3134$i;
while (1) {
$529 = HEAP32[$d$1127$i >> 2] | 0;
HEAP32[$d$1127$i >> 2] = ($529 >>> $521) + $carry3$0128$i;
$533 = Math_imul($529 & $527, $528) | 0;
$d$1127$i = $d$1127$i + 4 | 0;
if ($d$1127$i >>> 0 >= $z$3133$i >>> 0) {
$$lcssa329 = $533;
break;
} else $carry3$0128$i = $533;
}
$$a$3$i = (HEAP32[$a$3134$i >> 2] | 0) == 0 ? $a$3134$i + 4 | 0 : $a$3134$i;
if (!$$lcssa329) {
$$a$3186$i = $$a$3$i;
$z$4$i = $z$3133$i;
break;
}
HEAP32[$z$3133$i >> 2] = $$lcssa329;
$$a$3186$i = $$a$3$i;
$z$4$i = $z$3133$i + 4 | 0;
} else {
$$a$3186$i = (HEAP32[$a$3134$i >> 2] | 0) == 0 ? $a$3134$i + 4 | 0 : $a$3134$i;
$z$4$i = $z$3133$i;
} while (0);
$541 = $517 ? $$31$i : $$a$3186$i;
$$z$4$i = ($z$4$i - $541 >> 2 | 0) > ($516 | 0) ? $541 + ($516 << 2) | 0 : $z$4$i;
$519 = (HEAP32[$e2$i >> 2] | 0) + $521 | 0;
HEAP32[$e2$i >> 2] = $519;
if (($519 | 0) >= 0) {
$a$3$lcssa$i = $$a$3186$i;
$z$3$lcssa$i = $$z$4$i;
break;
} else {
$a$3134$i = $$a$3186$i;
$z$3133$i = $$z$4$i;
}
}
} else {
$a$3$lcssa$i = $a$1$lcssa$i;
$z$3$lcssa$i = $z$1$lcssa$i;
}
do if ($a$3$lcssa$i >>> 0 < $z$3$lcssa$i >>> 0) {
$555 = ($482 - $a$3$lcssa$i >> 2) * 9 | 0;
$556 = HEAP32[$a$3$lcssa$i >> 2] | 0;
if ($556 >>> 0 < 10) {
$e$1$i = $555;
break;
} else {
$e$0123$i = $555;
$i$0122$i = 10;
}
while (1) {
$i$0122$i = $i$0122$i * 10 | 0;
$559 = $e$0123$i + 1 | 0;
if ($556 >>> 0 < $i$0122$i >>> 0) {
$e$1$i = $559;
break;
} else $e$0123$i = $559;
}
} else $e$1$i = 0; while (0);
$564 = ($396 | 0) == 103;
$565 = ($$p$i | 0) != 0;
$567 = $$p$i - (($396 | 0) != 102 ? $e$1$i : 0) + (($565 & $564) << 31 >> 31) | 0;
if (($567 | 0) < ((($z$3$lcssa$i - $482 >> 2) * 9 | 0) + -9 | 0)) {
$574 = $567 + 9216 | 0;
$575 = ($574 | 0) / 9 | 0;
$576 = $$31$i + ($575 + -1023 << 2) | 0;
$j$0115$i = (($574 | 0) % 9 | 0) + 1 | 0;
if (($j$0115$i | 0) < 9) {
$i$1116$i = 10;
$j$0117$i = $j$0115$i;
while (1) {
$579 = $i$1116$i * 10 | 0;
$j$0117$i = $j$0117$i + 1 | 0;
if (($j$0117$i | 0) == 9) {
$i$1$lcssa$i = $579;
break;
} else $i$1116$i = $579;
}
} else $i$1$lcssa$i = 10;
$580 = HEAP32[$576 >> 2] | 0;
$581 = ($580 >>> 0) % ($i$1$lcssa$i >>> 0) | 0;
if (!$581) if (($$31$i + ($575 + -1022 << 2) | 0) == ($z$3$lcssa$i | 0)) {
$a$7$i = $a$3$lcssa$i;
$d$3$i = $576;
$e$3$i = $e$1$i;
} else label = 163; else label = 163;
do if ((label | 0) == 163) {
label = 0;
$$20$i = ((($580 >>> 0) / ($i$1$lcssa$i >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0;
$588 = ($i$1$lcssa$i | 0) / 2 | 0;
do if ($581 >>> 0 < $588 >>> 0) $small$0$i = .5; else {
if (($581 | 0) == ($588 | 0)) if (($$31$i + ($575 + -1022 << 2) | 0) == ($z$3$lcssa$i | 0)) {
$small$0$i = 1.0;
break;
}
$small$0$i = 1.5;
} while (0);
do if (!$pl$0$i) {
$round6$1$i = $$20$i;
$small$1$i = $small$0$i;
} else {
if ((HEAP8[$prefix$0$i >> 0] | 0) != 45) {
$round6$1$i = $$20$i;
$small$1$i = $small$0$i;
break;
}
$round6$1$i = -$$20$i;
$small$1$i = -$small$0$i;
} while (0);
$598 = $580 - $581 | 0;
HEAP32[$576 >> 2] = $598;
if (!($round6$1$i + $small$1$i != $round6$1$i)) {
$a$7$i = $a$3$lcssa$i;
$d$3$i = $576;
$e$3$i = $e$1$i;
break;
}
$601 = $598 + $i$1$lcssa$i | 0;
HEAP32[$576 >> 2] = $601;
if ($601 >>> 0 > 999999999) {
$a$5109$i = $a$3$lcssa$i;
$d$2108$i = $576;
while (1) {
$603 = $d$2108$i + -4 | 0;
HEAP32[$d$2108$i >> 2] = 0;
if ($603 >>> 0 < $a$5109$i >>> 0) {
$605 = $a$5109$i + -4 | 0;
HEAP32[$605 >> 2] = 0;
$a$6$i = $605;
} else $a$6$i = $a$5109$i;
$607 = (HEAP32[$603 >> 2] | 0) + 1 | 0;
HEAP32[$603 >> 2] = $607;
if ($607 >>> 0 > 999999999) {
$a$5109$i = $a$6$i;
$d$2108$i = $603;
} else {
$a$5$lcssa$i = $a$6$i;
$d$2$lcssa$i = $603;
break;
}
}
} else {
$a$5$lcssa$i = $a$3$lcssa$i;
$d$2$lcssa$i = $576;
}
$612 = ($482 - $a$5$lcssa$i >> 2) * 9 | 0;
$613 = HEAP32[$a$5$lcssa$i >> 2] | 0;
if ($613 >>> 0 < 10) {
$a$7$i = $a$5$lcssa$i;
$d$3$i = $d$2$lcssa$i;
$e$3$i = $612;
break;
} else {
$e$2104$i = $612;
$i$2103$i = 10;
}
while (1) {
$i$2103$i = $i$2103$i * 10 | 0;
$616 = $e$2104$i + 1 | 0;
if ($613 >>> 0 < $i$2103$i >>> 0) {
$a$7$i = $a$5$lcssa$i;
$d$3$i = $d$2$lcssa$i;
$e$3$i = $616;
break;
} else $e$2104$i = $616;
}
} while (0);
$618 = $d$3$i + 4 | 0;
$a$8$ph$i = $a$7$i;
$e$4$ph$i = $e$3$i;
$z$6$ph$i = $z$3$lcssa$i >>> 0 > $618 >>> 0 ? $618 : $z$3$lcssa$i;
} else {
$a$8$ph$i = $a$3$lcssa$i;
$e$4$ph$i = $e$1$i;
$z$6$ph$i = $z$3$lcssa$i;
}
$620 = 0 - $e$4$ph$i | 0;
$z$6$i = $z$6$ph$i;
while (1) {
if ($z$6$i >>> 0 <= $a$8$ph$i >>> 0) {
$$lcssa159$i = 0;
$z$6$i$lcssa = $z$6$i;
break;
}
$622 = $z$6$i + -4 | 0;
if (!(HEAP32[$622 >> 2] | 0)) $z$6$i = $622; else {
$$lcssa159$i = 1;
$z$6$i$lcssa = $z$6$i;
break;
}
}
do if ($564) {
$$p$$i = ($565 & 1 ^ 1) + $$p$i | 0;
if (($$p$$i | 0) > ($e$4$ph$i | 0) & ($e$4$ph$i | 0) > -5) {
$$013$i = $t$0 + -1 | 0;
$$210$i = $$p$$i + -1 - $e$4$ph$i | 0;
} else {
$$013$i = $t$0 + -2 | 0;
$$210$i = $$p$$i + -1 | 0;
}
$633 = $fl$1$ & 8;
if ($633) {
$$114$i = $$013$i;
$$311$i = $$210$i;
$$pre$phi184$iZ2D = $633;
break;
}
do if ($$lcssa159$i) {
$636 = HEAP32[$z$6$i$lcssa + -4 >> 2] | 0;
if (!$636) {
$j$2$i = 9;
break;
}
if (!(($636 >>> 0) % 10 | 0)) {
$i$399$i = 10;
$j$1100$i = 0;
} else {
$j$2$i = 0;
break;
}
while (1) {
$i$399$i = $i$399$i * 10 | 0;
$641 = $j$1100$i + 1 | 0;
if (($636 >>> 0) % ($i$399$i >>> 0) | 0) {
$j$2$i = $641;
break;
} else $j$1100$i = $641;
}
} else $j$2$i = 9; while (0);
$650 = (($z$6$i$lcssa - $482 >> 2) * 9 | 0) + -9 | 0;
if (($$013$i | 32 | 0) == 102) {
$651 = $650 - $j$2$i | 0;
$$21$i = ($651 | 0) < 0 ? 0 : $651;
$$114$i = $$013$i;
$$311$i = ($$210$i | 0) < ($$21$i | 0) ? $$210$i : $$21$i;
$$pre$phi184$iZ2D = 0;
break;
} else {
$655 = $650 + $e$4$ph$i - $j$2$i | 0;
$$23$i = ($655 | 0) < 0 ? 0 : $655;
$$114$i = $$013$i;
$$311$i = ($$210$i | 0) < ($$23$i | 0) ? $$210$i : $$23$i;
$$pre$phi184$iZ2D = 0;
break;
}
} else {
$$114$i = $t$0;
$$311$i = $$p$i;
$$pre$phi184$iZ2D = $fl$1$ & 8;
} while (0);
$658 = $$311$i | $$pre$phi184$iZ2D;
$660 = ($658 | 0) != 0 & 1;
$662 = ($$114$i | 32 | 0) == 102;
if ($662) {
$$pn$i = ($e$4$ph$i | 0) > 0 ? $e$4$ph$i : 0;
$estr$2$i = 0;
} else {
$666 = ($e$4$ph$i | 0) < 0 ? $620 : $e$4$ph$i;
$669 = _fmt_u($666, (($666 | 0) < 0) << 31 >> 31, $5) | 0;
if (($8 - $669 | 0) < 2) {
$estr$193$i = $669;
while (1) {
$673 = $estr$193$i + -1 | 0;
HEAP8[$673 >> 0] = 48;
if (($8 - $673 | 0) < 2) $estr$193$i = $673; else {
$estr$1$lcssa$i = $673;
break;
}
}
} else $estr$1$lcssa$i = $669;
HEAP8[$estr$1$lcssa$i + -1 >> 0] = ($e$4$ph$i >> 31 & 2) + 43;
$683 = $estr$1$lcssa$i + -2 | 0;
HEAP8[$683 >> 0] = $$114$i;
$$pn$i = $8 - $683 | 0;
$estr$2$i = $683;
}
$688 = $pl$0$i + 1 + $$311$i + $660 + $$pn$i | 0;
_pad($f, 32, $w$1, $688, $fl$1$);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$0$i, $pl$0$i, $f) | 0;
_pad($f, 48, $w$1, $688, $fl$1$ ^ 65536);
do if ($662) {
$r$0$a$8$i = $a$8$ph$i >>> 0 > $$31$i >>> 0 ? $$31$i : $a$8$ph$i;
$d$482$i = $r$0$a$8$i;
while (1) {
$695 = _fmt_u(HEAP32[$d$482$i >> 2] | 0, 0, $13) | 0;
do if (($d$482$i | 0) == ($r$0$a$8$i | 0)) {
if (($695 | 0) != ($13 | 0)) {
$s7$1$i = $695;
break;
}
HEAP8[$15 >> 0] = 48;
$s7$1$i = $15;
} else {
if ($695 >>> 0 > $buf$i >>> 0) $s7$079$i = $695; else {
$s7$1$i = $695;
break;
}
while (1) {
$698 = $s7$079$i + -1 | 0;
HEAP8[$698 >> 0] = 48;
if ($698 >>> 0 > $buf$i >>> 0) $s7$079$i = $698; else {
$s7$1$i = $698;
break;
}
}
} while (0);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s7$1$i, $14 - $s7$1$i | 0, $f) | 0;
$706 = $d$482$i + 4 | 0;
if ($706 >>> 0 > $$31$i >>> 0) {
$$lcssa339 = $706;
break;
} else $d$482$i = $706;
}
do if ($658) {
if (HEAP32[$f >> 2] & 32) break;
___fwritex(18335, 1, $f) | 0;
} while (0);
if (($$311$i | 0) > 0 & $$lcssa339 >>> 0 < $z$6$i$lcssa >>> 0) {
$$41276$i = $$311$i;
$d$575$i = $$lcssa339;
while (1) {
$716 = _fmt_u(HEAP32[$d$575$i >> 2] | 0, 0, $13) | 0;
if ($716 >>> 0 > $buf$i >>> 0) {
$s8$070$i = $716;
while (1) {
$718 = $s8$070$i + -1 | 0;
HEAP8[$718 >> 0] = 48;
if ($718 >>> 0 > $buf$i >>> 0) $s8$070$i = $718; else {
$s8$0$lcssa$i = $718;
break;
}
}
} else $s8$0$lcssa$i = $716;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s8$0$lcssa$i, ($$41276$i | 0) > 9 ? 9 : $$41276$i, $f) | 0;
$d$575$i = $d$575$i + 4 | 0;
$726 = $$41276$i + -9 | 0;
if (!(($$41276$i | 0) > 9 & $d$575$i >>> 0 < $z$6$i$lcssa >>> 0)) {
$$412$lcssa$i = $726;
break;
} else $$41276$i = $726;
}
} else $$412$lcssa$i = $$311$i;
_pad($f, 48, $$412$lcssa$i + 9 | 0, 9, 0);
} else {
$z$6$$i = $$lcssa159$i ? $z$6$i$lcssa : $a$8$ph$i + 4 | 0;
if (($$311$i | 0) > -1) {
$733 = ($$pre$phi184$iZ2D | 0) == 0;
$$587$i = $$311$i;
$d$686$i = $a$8$ph$i;
while (1) {
$735 = _fmt_u(HEAP32[$d$686$i >> 2] | 0, 0, $13) | 0;
if (($735 | 0) == ($13 | 0)) {
HEAP8[$15 >> 0] = 48;
$s9$0$i = $15;
} else $s9$0$i = $735;
do if (($d$686$i | 0) == ($a$8$ph$i | 0)) {
$741 = $s9$0$i + 1 | 0;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$0$i, 1, $f) | 0;
if ($733 & ($$587$i | 0) < 1) {
$s9$2$i = $741;
break;
}
if (HEAP32[$f >> 2] & 32) {
$s9$2$i = $741;
break;
}
___fwritex(18335, 1, $f) | 0;
$s9$2$i = $741;
} else {
if ($s9$0$i >>> 0 > $buf$i >>> 0) $s9$183$i = $s9$0$i; else {
$s9$2$i = $s9$0$i;
break;
}
while (1) {
$739 = $s9$183$i + -1 | 0;
HEAP8[$739 >> 0] = 48;
if ($739 >>> 0 > $buf$i >>> 0) $s9$183$i = $739; else {
$s9$2$i = $739;
break;
}
}
} while (0);
$750 = $14 - $s9$2$i | 0;
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($s9$2$i, ($$587$i | 0) > ($750 | 0) ? $750 : $$587$i, $f) | 0;
$756 = $$587$i - $750 | 0;
$d$686$i = $d$686$i + 4 | 0;
if (!($d$686$i >>> 0 < $z$6$$i >>> 0 & ($756 | 0) > -1)) {
$$5$lcssa$i = $756;
break;
} else $$587$i = $756;
}
} else $$5$lcssa$i = $$311$i;
_pad($f, 48, $$5$lcssa$i + 18 | 0, 18, 0);
if (HEAP32[$f >> 2] & 32) break;
___fwritex($estr$2$i, $8 - $estr$2$i | 0, $f) | 0;
} while (0);
_pad($f, 32, $w$1, $688, $fl$1$ ^ 8192);
$$0$i = ($688 | 0) < ($w$1 | 0) ? $w$1 : $688;
} else {
$377 = ($t$0 & 32 | 0) != 0;
$379 = $$07$i != $$07$i | 0.0 != 0.0;
$pl$1$i = $379 ? 0 : $pl$0$i;
$381 = $pl$1$i + 3 | 0;
_pad($f, 32, $w$1, $381, $175);
$382 = HEAP32[$f >> 2] | 0;
if (!($382 & 32)) {
___fwritex($prefix$0$i, $pl$1$i, $f) | 0;
$386 = HEAP32[$f >> 2] | 0;
} else $386 = $382;
if (!($386 & 32)) ___fwritex($379 ? ($377 ? 18327 : 18331) : $377 ? 18319 : 18323, 3, $f) | 0;
_pad($f, 32, $w$1, $381, $fl$1$ ^ 8192);
$$0$i = ($381 | 0) < ($w$1 | 0) ? $w$1 : $381;
} while (0);
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $$0$i;
$l10n$0 = $l10n$3;
continue L1;
break;
}
default:
{
$a$2 = $fmt41;
$fl$6 = $fl$1$;
$p$5 = $p$0;
$pl$2 = 0;
$prefix$2 = 18283;
$z$2 = $1;
}
} while (0);
L313 : do if ((label | 0) == 64) {
label = 0;
$206 = $arg;
$208 = HEAP32[$206 >> 2] | 0;
$211 = HEAP32[$206 + 4 >> 2] | 0;
$212 = $t$1 & 32;
if (($208 | 0) == 0 & ($211 | 0) == 0) {
$a$0 = $1;
$fl$4 = $fl$3;
$p$2 = $p$1;
$pl$1 = 0;
$prefix$1 = 18283;
label = 77;
} else {
$$012$i = $1;
$217 = $208;
$224 = $211;
while (1) {
$223 = $$012$i + -1 | 0;
HEAP8[$223 >> 0] = HEAPU8[18267 + ($217 & 15) >> 0] | $212;
$217 = _bitshift64Lshr($217 | 0, $224 | 0, 4) | 0;
$224 = tempRet0;
if (($217 | 0) == 0 & ($224 | 0) == 0) {
$$lcssa344 = $223;
break;
} else $$012$i = $223;
}
$230 = $arg;
if (($fl$3 & 8 | 0) == 0 | (HEAP32[$230 >> 2] | 0) == 0 & (HEAP32[$230 + 4 >> 2] | 0) == 0) {
$a$0 = $$lcssa344;
$fl$4 = $fl$3;
$p$2 = $p$1;
$pl$1 = 0;
$prefix$1 = 18283;
label = 77;
} else {
$a$0 = $$lcssa344;
$fl$4 = $fl$3;
$p$2 = $p$1;
$pl$1 = 2;
$prefix$1 = 18283 + ($t$1 >> 4) | 0;
label = 77;
}
}
} else if ((label | 0) == 76) {
label = 0;
$a$0 = _fmt_u($286, $287, $1) | 0;
$fl$4 = $fl$1$;
$p$2 = $p$0;
$pl$1 = $pl$0;
$prefix$1 = $prefix$0;
label = 77;
} else if ((label | 0) == 82) {
label = 0;
$320 = _memchr($a$1, 0, $p$0) | 0;
$321 = ($320 | 0) == 0;
$a$2 = $a$1;
$fl$6 = $175;
$p$5 = $321 ? $p$0 : $320 - $a$1 | 0;
$pl$2 = 0;
$prefix$2 = 18283;
$z$2 = $321 ? $a$1 + $p$0 | 0 : $320;
} else if ((label | 0) == 86) {
label = 0;
$i$0114 = 0;
$l$1113 = 0;
$ws$0115 = HEAP32[$arg >> 2] | 0;
while (1) {
$334 = HEAP32[$ws$0115 >> 2] | 0;
if (!$334) {
$i$0$lcssa = $i$0114;
$l$2 = $l$1113;
break;
}
$336 = _wctomb($mb, $334) | 0;
if (($336 | 0) < 0 | $336 >>> 0 > ($p$4198 - $i$0114 | 0) >>> 0) {
$i$0$lcssa = $i$0114;
$l$2 = $336;
break;
}
$341 = $336 + $i$0114 | 0;
if ($p$4198 >>> 0 > $341 >>> 0) {
$i$0114 = $341;
$l$1113 = $336;
$ws$0115 = $ws$0115 + 4 | 0;
} else {
$i$0$lcssa = $341;
$l$2 = $336;
break;
}
}
if (($l$2 | 0) < 0) {
$$0 = -1;
break L1;
}
_pad($f, 32, $w$1, $i$0$lcssa, $fl$1$);
if (!$i$0$lcssa) {
$i$0$lcssa200 = 0;
label = 98;
} else {
$i$1125 = 0;
$ws$1126 = HEAP32[$arg >> 2] | 0;
while (1) {
$346 = HEAP32[$ws$1126 >> 2] | 0;
if (!$346) {
$i$0$lcssa200 = $i$0$lcssa;
label = 98;
break L313;
}
$349 = _wctomb($mb, $346) | 0;
$i$1125 = $349 + $i$1125 | 0;
if (($i$1125 | 0) > ($i$0$lcssa | 0)) {
$i$0$lcssa200 = $i$0$lcssa;
label = 98;
break L313;
}
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($mb, $349, $f) | 0;
if ($i$1125 >>> 0 >= $i$0$lcssa >>> 0) {
$i$0$lcssa200 = $i$0$lcssa;
label = 98;
break;
} else $ws$1126 = $ws$1126 + 4 | 0;
}
}
} while (0);
if ((label | 0) == 98) {
label = 0;
_pad($f, 32, $w$1, $i$0$lcssa200, $fl$1$ ^ 8192);
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = ($w$1 | 0) > ($i$0$lcssa200 | 0) ? $w$1 : $i$0$lcssa200;
$l10n$0 = $l10n$3;
continue;
}
if ((label | 0) == 77) {
label = 0;
$$fl$4 = ($p$2 | 0) > -1 ? $fl$4 & -65537 : $fl$4;
$291 = $arg;
$299 = (HEAP32[$291 >> 2] | 0) != 0 | (HEAP32[$291 + 4 >> 2] | 0) != 0;
if (($p$2 | 0) != 0 | $299) {
$305 = ($299 & 1 ^ 1) + ($2 - $a$0) | 0;
$a$2 = $a$0;
$fl$6 = $$fl$4;
$p$5 = ($p$2 | 0) > ($305 | 0) ? $p$2 : $305;
$pl$2 = $pl$1;
$prefix$2 = $prefix$1;
$z$2 = $1;
} else {
$a$2 = $1;
$fl$6 = $$fl$4;
$p$5 = 0;
$pl$2 = $pl$1;
$prefix$2 = $prefix$1;
$z$2 = $1;
}
}
$771 = $z$2 - $a$2 | 0;
$$p$5 = ($p$5 | 0) < ($771 | 0) ? $771 : $p$5;
$773 = $pl$2 + $$p$5 | 0;
$w$2 = ($w$1 | 0) < ($773 | 0) ? $773 : $w$1;
_pad($f, 32, $w$2, $773, $fl$6);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($prefix$2, $pl$2, $f) | 0;
_pad($f, 48, $w$2, $773, $fl$6 ^ 65536);
_pad($f, 48, $$p$5, $771, 0);
if (!(HEAP32[$f >> 2] & 32)) ___fwritex($a$2, $771, $f) | 0;
_pad($f, 32, $w$2, $773, $fl$6 ^ 8192);
$cnt$0 = $cnt$1;
$fmt41 = $$lcssa323;
$l$0 = $w$2;
$l10n$0 = $l10n$3;
}
L348 : do if ((label | 0) == 245) if (!$f) if (!$l10n$0$lcssa) $$0 = 0; else {
$i$2100 = 1;
while (1) {
$786 = HEAP32[$nl_type + ($i$2100 << 2) >> 2] | 0;
if (!$786) {
$i$2100$lcssa = $i$2100;
break;
}
_pop_arg($nl_arg + ($i$2100 << 3) | 0, $786, $ap);
$i$2100 = $i$2100 + 1 | 0;
if (($i$2100 | 0) >= 10) {
$$0 = 1;
break L348;
}
}
if (($i$2100$lcssa | 0) < 10) {
$i$398 = $i$2100$lcssa;
while (1) {
if (HEAP32[$nl_type + ($i$398 << 2) >> 2] | 0) {
$$0 = -1;
break L348;
}
$i$398 = $i$398 + 1 | 0;
if (($i$398 | 0) >= 10) {
$$0 = 1;
break;
}
}
} else $$0 = 1;
} else $$0 = $cnt$1$lcssa; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i = 0, $$0$i$i$i = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i46 = 0, $$0$i$i$i$i62 = 0, $$0$i$i$i26 = 0, $$0$i$i117 = 0, $$0$i49 = 0, $$01$i$i$i122 = 0, $$01$i$i$i41126 = 0, $$01$i$i$i57130 = 0, $$1$i = 0, $$lcssa = 0, $$lcssa154 = 0, $$lcssa155 = 0, $$lcssa157 = 0, $$lcssa158 = 0, $$lcssa160 = 0, $$lcssa161 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $105 = 0, $107 = 0, $108 = 0, $11 = 0, $110 = 0, $111 = 0, $113 = 0, $114 = 0, $116 = 0, $117 = 0, $119 = 0, $12 = 0, $120 = 0, $122 = 0, $123 = 0, $125 = 0, $126 = 0, $128 = 0, $129 = 0, $13 = 0, $131 = 0, $132 = 0, $134 = 0, $138 = 0, $14 = 0, $141 = 0, $145 = 0, $148 = 0, $148$phi = 0, $149 = 0, $15 = 0, $156 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $165 = 0, $17 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $18 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $19 = 0, $190 = 0, $192 = 0, $195 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $21 = 0, $211 = 0, $214 = 0, $214$phi = 0, $215 = 0, $22 = 0, $222 = 0, $223 = 0, $225 = 0, $229 = 0, $23 = 0, $231 = 0, $236 = 0, $238 = 0, $239 = 0, $24 = 0, $241 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $255 = 0, $257 = 0, $260 = 0, $261 = 0, $265 = 0, $269 = 0, $272 = 0, $276 = 0, $279 = 0, $279$phi = 0, $280 = 0, $287 = 0, $288 = 0, $290 = 0, $294 = 0, $296 = 0, $3 = 0, $301 = 0, $303 = 0, $304 = 0, $306 = 0, $31 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $320 = 0, $322 = 0, $325 = 0, $326 = 0, $333 = 0, $334 = 0, $34 = 0, $340 = 0, $346 = 0, $35 = 0, $354 = 0, $356 = 0, $357 = 0, $360 = 0, $365 = 0, $372 = 0, $373 = 0, $382 = 0, $384 = 0, $394 = 0, $4 = 0, $43 = 0, $44 = 0, $46 = 0, $5 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $60 = 0, $62 = 0, $65 = 0, $66 = 0, $69 = 0, $7 = 0, $70 = 0, $72 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $86 = 0, $88 = 0, $9 = 0, $91 = 0, $92 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $__p$0$i$i116 = 0, $__p$0$ph$i$i = 0, $e$0$i124 = 0, $e$0$i124$lcssa153 = 0, $e$0$i33128 = 0, $e$0$i33128$lcssa156 = 0, $e$0$i52132 = 0, $e$0$i52132$lcssa159 = 0, $n$0120 = 0, $n$0120$lcssa = 0, $num$i51 = 0, $t$0$i125 = 0, $t$0$i34129 = 0, $t$0$i53133 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer4 = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 480 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer4 = sp + 72 | 0;
$vararg_buffer1 = sp + 48 | 0;
$vararg_buffer = sp + 24 | 0;
$0 = sp;
$num$i51 = sp + 432 | 0;
$1 = sp + 408 | 0;
$2 = sp + 396 | 0;
$3 = sp + 384 | 0;
$4 = sp + 360 | 0;
$5 = sp + 336 | 0;
$6 = sp + 320 | 0;
$7 = sp + 308 | 0;
$8 = sp + 296 | 0;
$9 = sp + 284 | 0;
$10 = sp + 272 | 0;
$11 = sp + 260 | 0;
$12 = sp + 248 | 0;
$13 = sp + 236 | 0;
$14 = sp + 224 | 0;
$15 = sp + 212 | 0;
$16 = sp + 200 | 0;
$17 = sp + 188 | 0;
$18 = sp + 176 | 0;
$19 = sp + 152 | 0;
$20 = sp + 140 | 0;
$21 = sp + 128 | 0;
$22 = sp + 116 | 0;
$23 = sp + 104 | 0;
$24 = sp + 92 | 0;
$25 = $last;
L1 : do if (($25 - $first | 0) > 3) if ((HEAP8[$first >> 0] | 0) == 76) {
$31 = $first + 1 | 0;
do switch (HEAP8[$31 >> 0] | 0) {
case 84:
{
$$0 = $first;
break L1;
break;
}
case 119:
{
$34 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($3, 13764, 7);
$35 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($34, $last, $3, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$0 = ($35 | 0) == ($34 | 0) ? $first : $35;
break L1;
break;
}
case 98:
{
if ((HEAP8[$first + 3 >> 0] | 0) != 69) {
$$0 = $first;
break L1;
}
switch (HEAP8[$first + 2 >> 0] | 0) {
case 48:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($4, 13772);
$43 = $db + 4 | 0;
$44 = HEAP32[$43 >> 2] | 0;
$46 = HEAP32[$db + 8 >> 2] | 0;
if ($44 >>> 0 < $46 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($44, $4);
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 24;
} else {
$53 = HEAP32[$db >> 2] | 0;
$54 = $44 - $53 | 0;
$55 = ($54 | 0) / 24 | 0;
$56 = $55 + 1 | 0;
if (($54 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$60 = ($46 - $53 | 0) / 24 | 0;
if ($60 >>> 0 < 1073741823) {
$62 = $60 << 1;
$$0$i$i$i = $62 >>> 0 < $56 >>> 0 ? $56 : $62;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i, $55, $db + 12 | 0);
$65 = $0 + 8 | 0;
$66 = HEAP32[$65 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($66, $4);
HEAP32[$65 >> 2] = $66 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4);
$$0 = $first + 4 | 0;
break L1;
break;
}
case 49:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($5, 13778);
$69 = $db + 4 | 0;
$70 = HEAP32[$69 >> 2] | 0;
$72 = HEAP32[$db + 8 >> 2] | 0;
if ($70 >>> 0 < $72 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($70, $5);
HEAP32[$69 >> 2] = (HEAP32[$69 >> 2] | 0) + 24;
} else {
$79 = HEAP32[$db >> 2] | 0;
$80 = $70 - $79 | 0;
$81 = ($80 | 0) / 24 | 0;
$82 = $81 + 1 | 0;
if (($80 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$86 = ($72 - $79 | 0) / 24 | 0;
if ($86 >>> 0 < 1073741823) {
$88 = $86 << 1;
$$0$i$i$i26 = $88 >>> 0 < $82 >>> 0 ? $82 : $88;
} else $$0$i$i$i26 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($0, $$0$i$i$i26, $81, $db + 12 | 0);
$91 = $0 + 8 | 0;
$92 = HEAP32[$91 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($92, $5);
HEAP32[$91 >> 2] = $92 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $0);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($0);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
$$0 = $first + 4 | 0;
break L1;
break;
}
default:
{
$$0 = $first;
break L1;
}
}
break;
}
case 99:
{
$95 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($6, 13783, 4);
$96 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($95, $last, $6, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($6);
$$0 = ($96 | 0) == ($95 | 0) ? $first : $96;
break L1;
break;
}
case 97:
{
$98 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($7, 13788, 11);
$99 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($98, $last, $7, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($7);
$$0 = ($99 | 0) == ($98 | 0) ? $first : $99;
break L1;
break;
}
case 104:
{
$101 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($8, 13800, 13);
$102 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($101, $last, $8, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($8);
$$0 = ($102 | 0) == ($101 | 0) ? $first : $102;
break L1;
break;
}
case 115:
{
$104 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($9, 13814, 5);
$105 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($104, $last, $9, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($9);
$$0 = ($105 | 0) == ($104 | 0) ? $first : $105;
break L1;
break;
}
case 116:
{
$107 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($10, 13820, 14);
$108 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($107, $last, $10, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($10);
$$0 = ($108 | 0) == ($107 | 0) ? $first : $108;
break L1;
break;
}
case 105:
{
$110 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($11, 13835, 0);
$111 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($110, $last, $11, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($11);
$$0 = ($111 | 0) == ($110 | 0) ? $first : $111;
break L1;
break;
}
case 106:
{
$113 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($12, 13836, 1);
$114 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($113, $last, $12, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($12);
$$0 = ($114 | 0) == ($113 | 0) ? $first : $114;
break L1;
break;
}
case 108:
{
$116 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($13, 13838, 1);
$117 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($116, $last, $13, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($13);
$$0 = ($117 | 0) == ($116 | 0) ? $first : $117;
break L1;
break;
}
case 109:
{
$119 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($14, 13840, 2);
$120 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($119, $last, $14, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($14);
$$0 = ($120 | 0) == ($119 | 0) ? $first : $120;
break L1;
break;
}
case 120:
{
$122 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($15, 13843, 2);
$123 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($122, $last, $15, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($15);
$$0 = ($123 | 0) == ($122 | 0) ? $first : $123;
break L1;
break;
}
case 121:
{
$125 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($16, 13846, 3);
$126 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($125, $last, $16, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($16);
$$0 = ($126 | 0) == ($125 | 0) ? $first : $126;
break L1;
break;
}
case 110:
{
$128 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($17, 13850, 8);
$129 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($128, $last, $17, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($17);
$$0 = ($129 | 0) == ($128 | 0) ? $first : $129;
break L1;
break;
}
case 111:
{
$131 = $first + 2 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($18, 13859, 17);
$132 = __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($131, $last, $18, $db) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($18);
$$0 = ($132 | 0) == ($131 | 0) ? $first : $132;
break L1;
break;
}
case 102:
{
$134 = $first + 2 | 0;
L67 : do if (($25 - $134 | 0) >>> 0 > 8) {
$138 = $first + 10 | 0;
$141 = HEAP8[$134 >> 0] | 0;
$148 = $first;
$e$0$i124 = $0;
$t$0$i125 = $134;
while (1) {
if (!(_isxdigit($141 << 24 >> 24) | 0)) {
$$0$i = $134;
break L67;
}
$145 = HEAP8[$t$0$i125 >> 0] | 0;
$149 = HEAP8[$148 + 3 >> 0] | 0;
HEAP8[$e$0$i124 >> 0] = ((($149 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($149 & 255) + ((($145 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $145 << 4);
$156 = $t$0$i125 + 2 | 0;
$157 = $e$0$i124 + 1 | 0;
$159 = HEAP8[$156 >> 0] | 0;
if (($156 | 0) == ($138 | 0)) {
$$lcssa154 = $157;
$$lcssa155 = $159;
$e$0$i124$lcssa153 = $e$0$i124;
break;
} else {
$148$phi = $t$0$i125;
$141 = $159;
$e$0$i124 = $157;
$t$0$i125 = $156;
$148 = $148$phi;
}
}
if ($$lcssa155 << 24 >> 24 == 69) {
if (($0 | 0) != ($$lcssa154 | 0) & $0 >>> 0 < $e$0$i124$lcssa153 >>> 0) {
$$01$i$i$i122 = $0;
$165 = $e$0$i124$lcssa153;
do {
$163 = HEAP8[$$01$i$i$i122 >> 0] | 0;
HEAP8[$$01$i$i$i122 >> 0] = HEAP8[$165 >> 0] | 0;
HEAP8[$165 >> 0] = $163;
$$01$i$i$i122 = $$01$i$i$i122 + 1 | 0;
$165 = $165 + -1 | 0;
} while ($$01$i$i$i122 >>> 0 < $165 >>> 0);
}
dest = $num$i51;
stop = dest + 24 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$vararg_buffer >> 3] = +HEAPF32[$0 >> 2];
$171 = _snprintf($num$i51, 24, 13877, $vararg_buffer) | 0;
if ($171 >>> 0 > 23) $$0$i = $134; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $171);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
$173 = $db + 4 | 0;
$174 = HEAP32[$173 >> 2] | 0;
$176 = HEAP32[$db + 8 >> 2] | 0;
if ($174 >>> 0 < $176 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($174, $1);
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 24;
} else {
$183 = HEAP32[$db >> 2] | 0;
$184 = $174 - $183 | 0;
$185 = ($184 | 0) / 24 | 0;
$186 = $185 + 1 | 0;
if (($184 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$190 = ($176 - $183 | 0) / 24 | 0;
if ($190 >>> 0 < 1073741823) {
$192 = $190 << 1;
$$0$i$i$i$i = $192 >>> 0 < $186 >>> 0 ? $186 : $192;
} else $$0$i$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer, $$0$i$i$i$i, $185, $db + 12 | 0);
$195 = $vararg_buffer + 8 | 0;
$196 = HEAP32[$195 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($196, $1);
HEAP32[$195 >> 2] = $196 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$0$i = $first + 11 | 0;
}
} else $$0$i = $134;
} else $$0$i = $134; while (0);
$$0 = ($$0$i | 0) == ($134 | 0) ? $first : $$0$i;
break L1;
break;
}
case 100:
{
$200 = $first + 2 | 0;
L91 : do if (($25 - $200 | 0) >>> 0 > 16) {
$204 = $first + 18 | 0;
$207 = HEAP8[$200 >> 0] | 0;
$214 = $first;
$e$0$i33128 = $0;
$t$0$i34129 = $200;
while (1) {
if (!(_isxdigit($207 << 24 >> 24) | 0)) {
$$0$i49 = $200;
break L91;
}
$211 = HEAP8[$t$0$i34129 >> 0] | 0;
$215 = HEAP8[$214 + 3 >> 0] | 0;
HEAP8[$e$0$i33128 >> 0] = ((($215 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($215 & 255) + ((($211 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $211 << 4);
$222 = $t$0$i34129 + 2 | 0;
$223 = $e$0$i33128 + 1 | 0;
$225 = HEAP8[$222 >> 0] | 0;
if (($222 | 0) == ($204 | 0)) {
$$lcssa157 = $223;
$$lcssa158 = $225;
$e$0$i33128$lcssa156 = $e$0$i33128;
break;
} else {
$214$phi = $t$0$i34129;
$207 = $225;
$e$0$i33128 = $223;
$t$0$i34129 = $222;
$214 = $214$phi;
}
}
if ($$lcssa158 << 24 >> 24 == 69) {
if (($0 | 0) != ($$lcssa157 | 0) & $0 >>> 0 < $e$0$i33128$lcssa156 >>> 0) {
$$01$i$i$i41126 = $0;
$231 = $e$0$i33128$lcssa156;
do {
$229 = HEAP8[$$01$i$i$i41126 >> 0] | 0;
HEAP8[$$01$i$i$i41126 >> 0] = HEAP8[$231 >> 0] | 0;
HEAP8[$231 >> 0] = $229;
$$01$i$i$i41126 = $$01$i$i$i41126 + 1 | 0;
$231 = $231 + -1 | 0;
} while ($$01$i$i$i41126 >>> 0 < $231 >>> 0);
}
dest = $num$i51;
stop = dest + 32 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$vararg_buffer1 >> 3] = +HEAPF64[$0 >> 3];
$236 = _snprintf($num$i51, 32, 13881, $vararg_buffer1) | 0;
if ($236 >>> 0 > 31) $$0$i49 = $200; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $236);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
$238 = $db + 4 | 0;
$239 = HEAP32[$238 >> 2] | 0;
$241 = HEAP32[$db + 8 >> 2] | 0;
if ($239 >>> 0 < $241 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($239, $1);
HEAP32[$238 >> 2] = (HEAP32[$238 >> 2] | 0) + 24;
} else {
$248 = HEAP32[$db >> 2] | 0;
$249 = $239 - $248 | 0;
$250 = ($249 | 0) / 24 | 0;
$251 = $250 + 1 | 0;
if (($249 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$255 = ($241 - $248 | 0) / 24 | 0;
if ($255 >>> 0 < 1073741823) {
$257 = $255 << 1;
$$0$i$i$i$i46 = $257 >>> 0 < $251 >>> 0 ? $251 : $257;
} else $$0$i$i$i$i46 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer1, $$0$i$i$i$i46, $250, $db + 12 | 0);
$260 = $vararg_buffer1 + 8 | 0;
$261 = HEAP32[$260 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($261, $1);
HEAP32[$260 >> 2] = $261 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer1);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer1);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$0$i49 = $first + 19 | 0;
}
} else $$0$i49 = $200;
} else $$0$i49 = $200; while (0);
$$0 = ($$0$i49 | 0) == ($200 | 0) ? $first : $$0$i49;
break L1;
break;
}
case 101:
{
$265 = $first + 2 | 0;
L115 : do if (($25 - $265 | 0) >>> 0 > 20) {
$269 = $first + 22 | 0;
$272 = HEAP8[$265 >> 0] | 0;
$279 = $first;
$e$0$i52132 = $0;
$t$0$i53133 = $265;
while (1) {
if (!(_isxdigit($272 << 24 >> 24) | 0)) {
$$1$i = $265;
break L115;
}
$276 = HEAP8[$t$0$i53133 >> 0] | 0;
$280 = HEAP8[$279 + 3 >> 0] | 0;
HEAP8[$e$0$i52132 >> 0] = ((($280 << 24 >> 24) + -48 | 0) >>> 0 < 10 ? 208 : 169) + ($280 & 255) + ((($276 + -48 | 0) >>> 0 < 10 ? 0 : 9) + $276 << 4);
$287 = $t$0$i53133 + 2 | 0;
$288 = $e$0$i52132 + 1 | 0;
$290 = HEAP8[$287 >> 0] | 0;
if (($287 | 0) == ($269 | 0)) {
$$lcssa160 = $288;
$$lcssa161 = $290;
$e$0$i52132$lcssa159 = $e$0$i52132;
break;
} else {
$279$phi = $t$0$i53133;
$272 = $290;
$e$0$i52132 = $288;
$t$0$i53133 = $287;
$279 = $279$phi;
}
}
if ($$lcssa161 << 24 >> 24 == 69) {
if (($0 | 0) != ($$lcssa160 | 0) & $0 >>> 0 < $e$0$i52132$lcssa159 >>> 0) {
$$01$i$i$i57130 = $0;
$296 = $e$0$i52132$lcssa159;
do {
$294 = HEAP8[$$01$i$i$i57130 >> 0] | 0;
HEAP8[$$01$i$i$i57130 >> 0] = HEAP8[$296 >> 0] | 0;
HEAP8[$296 >> 0] = $294;
$$01$i$i$i57130 = $$01$i$i$i57130 + 1 | 0;
$296 = $296 + -1 | 0;
} while ($$01$i$i$i57130 >>> 0 < $296 >>> 0);
}
dest = $num$i51;
stop = dest + 40 | 0;
do {
HEAP8[dest >> 0] = 0;
dest = dest + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$vararg_buffer4 >> 3] = +HEAPF64[$0 >> 3];
$301 = _snprintf($num$i51, 40, 13884, $vararg_buffer4) | 0;
if ($301 >>> 0 > 39) {
$$1$i = $265;
break;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($2, $num$i51, $301);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
$303 = $db + 4 | 0;
$304 = HEAP32[$303 >> 2] | 0;
$306 = HEAP32[$db + 8 >> 2] | 0;
if ($304 >>> 0 < $306 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($304, $1);
HEAP32[$303 >> 2] = (HEAP32[$303 >> 2] | 0) + 24;
} else {
$313 = HEAP32[$db >> 2] | 0;
$314 = $304 - $313 | 0;
$315 = ($314 | 0) / 24 | 0;
$316 = $315 + 1 | 0;
if (($314 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$320 = ($306 - $313 | 0) / 24 | 0;
if ($320 >>> 0 < 1073741823) {
$322 = $320 << 1;
$$0$i$i$i$i62 = $322 >>> 0 < $316 >>> 0 ? $316 : $322;
} else $$0$i$i$i$i62 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($vararg_buffer4, $$0$i$i$i$i62, $315, $db + 12 | 0);
$325 = $vararg_buffer4 + 8 | 0;
$326 = HEAP32[$325 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($326, $1);
HEAP32[$325 >> 2] = $326 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $vararg_buffer4);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($vararg_buffer4);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$1$i = $first + 23 | 0;
} else $$1$i = $265;
} else $$1$i = $265; while (0);
$$0 = ($$1$i | 0) == ($265 | 0) ? $first : $$1$i;
break L1;
break;
}
case 95:
{
if ((HEAP8[$first + 2 >> 0] | 0) != 90) {
$$0 = $first;
break L1;
}
$333 = $first + 3 | 0;
$334 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($333, $last, $db) | 0;
if (($334 | 0) == ($333 | 0) | ($334 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
STACKTOP = sp;
return ((HEAP8[$334 >> 0] | 0) == 69 ? $334 + 1 | 0 : $first) | 0;
}
default:
{
$340 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($31, $last, $db) | 0;
if (($340 | 0) == ($31 | 0) | ($340 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
if ((HEAP8[$340 >> 0] | 0) == 69) {
$$0 = $340 + 1 | 0;
break L1;
}
if (($340 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
} else $n$0120 = $340;
while (1) {
$346 = HEAP8[$n$0120 >> 0] | 0;
if ((($346 << 24 >> 24) + -48 | 0) >>> 0 >= 10) {
$$lcssa = $346;
$n$0120$lcssa = $n$0120;
break;
}
$n$0120 = $n$0120 + 1 | 0;
if (($n$0120 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
}
if (!(($n$0120$lcssa | 0) != ($340 | 0) & $$lcssa << 24 >> 24 == 69)) {
$$0 = $first;
break L1;
}
$354 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($354 | 0)) {
$$0 = $first;
break L1;
}
$356 = $354 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($23, $356);
$357 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($23, 0, 12714) | 0;
HEAP32[$22 >> 2] = HEAP32[$357 >> 2];
HEAP32[$22 + 4 >> 2] = HEAP32[$357 + 4 >> 2];
HEAP32[$22 + 8 >> 2] = HEAP32[$357 + 8 >> 2];
HEAP32[$357 >> 2] = 0;
HEAP32[$357 + 4 >> 2] = 0;
HEAP32[$357 + 8 >> 2] = 0;
$360 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($22, 12619) | 0;
HEAP32[$21 >> 2] = HEAP32[$360 >> 2];
HEAP32[$21 + 4 >> 2] = HEAP32[$360 + 4 >> 2];
HEAP32[$21 + 8 >> 2] = HEAP32[$360 + 8 >> 2];
HEAP32[$360 >> 2] = 0;
HEAP32[$360 + 4 >> 2] = 0;
HEAP32[$360 + 8 >> 2] = 0;
$365 = $n$0120$lcssa - $340 | 0;
if ($365 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($24);
if ($365 >>> 0 < 11) {
HEAP8[$24 >> 0] = $365 << 1;
$__p$0$ph$i$i = $24 + 1 | 0;
} else {
$372 = $365 + 16 & -16;
$373 = _malloc($372) | 0;
HEAP32[$24 + 8 >> 2] = $373;
HEAP32[$24 >> 2] = $372 | 1;
HEAP32[$24 + 4 >> 2] = $365;
$__p$0$ph$i$i = $373;
}
if (($340 | 0) != ($n$0120$lcssa | 0)) {
$$0$i$i117 = $340;
$__p$0$i$i116 = $__p$0$ph$i$i;
while (1) {
HEAP8[$__p$0$i$i116 >> 0] = HEAP8[$$0$i$i117 >> 0] | 0;
$$0$i$i117 = $$0$i$i117 + 1 | 0;
if (($$0$i$i117 | 0) == ($n$0120$lcssa | 0)) break; else $__p$0$i$i116 = $__p$0$i$i116 + 1 | 0;
}
}
HEAP8[$__p$0$ph$i$i + $365 >> 0] = 0;
$382 = HEAP8[$24 >> 0] | 0;
$384 = ($382 & 1) == 0;
$394 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($21, $384 ? $24 + 1 | 0 : HEAP32[$24 + 8 >> 2] | 0, $384 ? ($382 & 255) >>> 1 : HEAP32[$24 + 4 >> 2] | 0) | 0;
HEAP32[$20 >> 2] = HEAP32[$394 >> 2];
HEAP32[$20 + 4 >> 2] = HEAP32[$394 + 4 >> 2];
HEAP32[$20 + 8 >> 2] = HEAP32[$394 + 8 >> 2];
HEAP32[$394 >> 2] = 0;
HEAP32[$394 + 4 >> 2] = 0;
HEAP32[$394 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($19, $20);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($356, $19);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($19);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($20);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($24);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($21);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($22);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($23);
$$0 = $n$0120$lcssa + 1 | 0;
break L1;
}
} while (0);
} else $$0 = $first; else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0$i = 0, $$24$ph = 0, $$7 = 0, $$in = 0, $$in109 = 0, $$lcssa150 = 0, $$lcssa151 = 0, $$lcssa156 = 0, $$ph96 = 0, $$pre$i$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $111 = 0, $118 = 0, $120 = 0, $123 = 0, $127 = 0, $13 = 0, $130 = 0, $135 = 0, $136 = 0, $139 = 0, $140 = 0, $142 = 0, $143 = 0, $152 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $171 = 0, $175 = 0, $176 = 0, $18 = 0, $180 = 0, $183 = 0, $184 = 0, $188 = 0, $191 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $203 = 0, $204 = 0, $206 = 0, $207 = 0, $209 = 0, $21 = 0, $215 = 0, $22 = 0, $226 = 0, $228 = 0, $240 = 0, $252 = 0, $255 = 0, $257 = 0, $26 = 0, $264 = 0, $267 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $277 = 0, $281 = 0, $284 = 0, $287 = 0, $29 = 0, $3 = 0, $30 = 0, $303 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $318 = 0, $320 = 0, $331 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $345 = 0, $347 = 0, $349 = 0, $350 = 0, $356 = 0, $361 = 0, $37 = 0, $371 = 0, $373 = 0, $38 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $389 = 0, $392 = 0, $398 = 0, $4 = 0, $402 = 0, $404 = 0, $405 = 0, $411 = 0, $413 = 0, $414 = 0, $42 = 0, $434 = 0, $436 = 0, $446 = 0, $45 = 0, $46 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $58 = 0, $6 = 0, $62 = 0, $65 = 0, $66 = 0, $68 = 0, $7 = 0, $73 = 0, $74 = 0, $76 = 0, $77 = 0, $8 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $90 = 0, $91 = 0, $94 = 0, $99 = 0, $first_arg$0$off0$ph = 0, $first_arg$3$off0$ph = 0, $k$0121 = 0, $k2$0122 = 0, $left$i = 0, $phitmp$i$i$i$i$i$i = 0, $phitmp$i2$i$i$i$i$i = 0, $ret1 = 0, $ret2 = 0, $t$0 = 0, $t$1 = 0, $t$1$ph = 0, $t$2 = 0, $tmp = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$left$i = sp + 96 | 0;
$0 = sp + 84 | 0;
$1 = sp + 72 | 0;
$2 = sp + 60 | 0;
$3 = sp + 48 | 0;
$ret2 = sp + 36 | 0;
$ret1 = sp + 24 | 0;
$tmp = sp + 12 | 0;
$4 = sp;
L1 : do if (($first | 0) == ($last | 0)) $$7 = $first; else {
$6 = $db + 56 | 0;
$7 = HEAP32[$6 >> 2] | 0;
$8 = $7 + 1 | 0;
HEAP32[$6 >> 2] = $8;
$9 = $db + 61 | 0;
$10 = HEAP8[$9 >> 0] | 0;
if ($8 >>> 0 > 1) HEAP8[$9 >> 0] = 1;
$13 = HEAP8[$first >> 0] | 0;
L6 : do switch ($13 | 0) {
case 84:
case 71:
{
L107 : do if (($last - $first | 0) > 2) {
switch ($13 | 0) {
case 84:
break;
case 71:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 86:
{
$175 = $first + 2 | 0;
$176 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($175, $last, $db) | 0;
if (($176 | 0) == ($175 | 0)) {
$$0$i = $first;
break L107;
}
$180 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($180 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($180 + -24 | 0, 0, 14547) | 0;
$$0$i = $176;
break L107;
break;
}
case 82:
{
$183 = $first + 2 | 0;
$184 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($183, $last, $db) | 0;
if (($184 | 0) == ($183 | 0)) {
$$0$i = $first;
break L107;
}
$188 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($188 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($188 + -24 | 0, 0, 14567) | 0;
$$0$i = $184;
break L107;
break;
}
default:
{
$$0$i = $first;
break L107;
}
}
break;
}
default:
{
$$0$i = $first;
break L107;
}
}
$18 = $first + 1 | 0;
switch (HEAP8[$18 >> 0] | 0) {
case 86:
{
$21 = $first + 2 | 0;
$22 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($21, $last, $db) | 0;
if (($22 | 0) == ($21 | 0)) {
$$0$i = $first;
break L107;
}
$26 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($26 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($26 + -24 | 0, 0, 14396) | 0;
$$0$i = $22;
break L107;
break;
}
case 84:
{
$29 = $first + 2 | 0;
$30 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($29, $last, $db) | 0;
if (($30 | 0) == ($29 | 0)) {
$$0$i = $first;
break L107;
}
$34 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($34 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($34 + -24 | 0, 0, 14408) | 0;
$$0$i = $30;
break L107;
break;
}
case 73:
{
$37 = $first + 2 | 0;
$38 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($37, $last, $db) | 0;
if (($38 | 0) == ($37 | 0)) {
$$0$i = $first;
break L107;
}
$42 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($42 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($42 + -24 | 0, 0, 14417) | 0;
$$0$i = $38;
break L107;
break;
}
case 83:
{
$45 = $first + 2 | 0;
$46 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($45, $last, $db) | 0;
if (($46 | 0) == ($45 | 0)) {
$$0$i = $first;
break L107;
}
$50 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($50 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($50 + -24 | 0, 0, 14431) | 0;
$$0$i = $46;
break L107;
break;
}
case 99:
{
$53 = $first + 2 | 0;
$54 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($53, $last) | 0;
if (($54 | 0) == ($53 | 0)) {
$$0$i = $first;
break L107;
}
$56 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($54, $last) | 0;
if (($56 | 0) == ($54 | 0)) {
$$0$i = $first;
break L107;
}
$58 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($56, $last, $db) | 0;
if (($58 | 0) == ($56 | 0)) {
$$0$i = $first;
break L107;
}
$62 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($62 | 0)) {
$$0$i = $first;
break L107;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($62 + -24 | 0, 0, 14450) | 0;
$$0$i = $58;
break L107;
break;
}
case 67:
{
$65 = $first + 2 | 0;
$66 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($65, $last, $db) | 0;
if (($66 | 0) == ($65 | 0)) {
$$0$i = $first;
break L107;
}
$68 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($66, $last) | 0;
if (($68 | 0) == ($66 | 0) | ($68 | 0) == ($last | 0)) {
$$0$i = $first;
break L107;
}
if ((HEAP8[$68 >> 0] | 0) != 95) {
$$0$i = $first;
break L107;
}
$73 = $68 + 1 | 0;
$74 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($73, $last, $db) | 0;
if (($74 | 0) == ($73 | 0)) {
$$0$i = $first;
break L107;
}
$76 = $db + 4 | 0;
$77 = HEAP32[$76 >> 2] | 0;
if ((($77 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0$i = $first;
break L107;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($left$i, $77 + -24 | 0);
$85 = HEAP32[$76 >> 2] | 0;
$86 = $85 + -24 | 0;
$88 = $85;
do {
$87 = $88 + -24 | 0;
HEAP32[$76 >> 2] = $87;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($87);
$88 = HEAP32[$76 >> 2] | 0;
} while (($88 | 0) != ($86 | 0));
$90 = $85 + -48 | 0;
$91 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($left$i, 0, 14477) | 0;
HEAP32[$2 >> 2] = HEAP32[$91 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$91 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$91 + 8 >> 2];
HEAP32[$91 >> 2] = 0;
HEAP32[$91 + 4 >> 2] = 0;
HEAP32[$91 + 8 >> 2] = 0;
$94 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 14502) | 0;
HEAP32[$1 >> 2] = HEAP32[$94 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$94 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$94 + 8 >> 2];
HEAP32[$94 >> 2] = 0;
HEAP32[$94 + 4 >> 2] = 0;
HEAP32[$94 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, (HEAP32[$76 >> 2] | 0) + -24 | 0);
$99 = HEAP8[$3 >> 0] | 0;
$101 = ($99 & 1) == 0;
$111 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($1, $101 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $101 ? ($99 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0;
HEAP32[$0 >> 2] = HEAP32[$111 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$111 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$111 + 8 >> 2];
HEAP32[$111 >> 2] = 0;
HEAP32[$111 + 4 >> 2] = 0;
HEAP32[$111 + 8 >> 2] = 0;
do if (!(HEAP8[$90 >> 0] & 1)) {
HEAP8[$90 + 1 >> 0] = 0;
HEAP8[$90 >> 0] = 0;
} else {
$118 = $85 + -40 | 0;
HEAP8[HEAP32[$118 >> 2] >> 0] = 0;
$120 = $85 + -44 | 0;
HEAP32[$120 >> 2] = 0;
$$pre$i$i$i$i = HEAP8[$90 >> 0] | 0;
if (!($$pre$i$i$i$i & 1)) {
$127 = $$pre$i$i$i$i;
$136 = 10;
} else {
$123 = HEAP32[$90 >> 2] | 0;
$127 = $123 & 255;
$136 = ($123 & -2) + -1 | 0;
}
if (!($127 & 1)) {
$130 = ($127 & 255) >>> 1;
if (($127 & 255) < 22) {
$135 = 10;
$155 = $130;
$446 = 1;
} else {
$135 = ($130 + 16 & 240) + -1 | 0;
$155 = $130;
$446 = 1;
}
} else {
$135 = 10;
$155 = 0;
$446 = 0;
}
if (($135 | 0) != ($136 | 0)) {
if (($135 | 0) == 10) {
$142 = $90 + 1 | 0;
$143 = HEAP32[$118 >> 2] | 0;
if ($446) {
_memcpy($142 | 0, $143 | 0, (($127 & 255) >>> 1) + 1 | 0) | 0;
_free($143);
} else {
HEAP8[$142 >> 0] = HEAP8[$143 >> 0] | 0;
_free($143);
}
HEAP8[$90 >> 0] = $155 << 1;
break;
}
$139 = $135 + 1 | 0;
$140 = _malloc($139) | 0;
if (!($135 >>> 0 <= $136 >>> 0 & ($140 | 0) == 0)) {
if ($446) _memcpy($140 | 0, $90 + 1 | 0, (($127 & 255) >>> 1) + 1 | 0) | 0; else {
$152 = HEAP32[$118 >> 2] | 0;
HEAP8[$140 >> 0] = HEAP8[$152 >> 0] | 0;
_free($152);
}
HEAP32[$90 >> 2] = $139 | 1;
HEAP32[$120 >> 2] = $155;
HEAP32[$118 >> 2] = $140;
}
}
} while (0);
HEAP32[$90 >> 2] = HEAP32[$0 >> 2];
HEAP32[$90 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$90 + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($left$i);
$$0$i = $74;
break L107;
break;
}
default:
{
$160 = __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($18, $last) | 0;
if (($160 | 0) == ($18 | 0)) {
$$0$i = $first;
break L107;
}
$162 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($160, $last, $db) | 0;
if (($162 | 0) == ($160 | 0)) {
$$0$i = $first;
break L107;
}
$166 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($166 | 0)) {
$$0$i = $first;
break L107;
}
$171 = $166 + -24 | 0;
if ((HEAP8[$first + 2 >> 0] | 0) == 118) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($171, 0, 14507) | 0;
$$0$i = $162;
break L107;
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($171, 0, 14525) | 0;
$$0$i = $162;
break L107;
}
}
}
} else $$0$i = $first; while (0);
$$24$ph = $$0$i;
break;
}
default:
{
$191 = __ZN10__cxxabiv112_GLOBAL__N_110parse_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
$193 = HEAP32[$db + 48 >> 2] | 0;
$195 = HEAP32[$db + 52 >> 2] | 0;
if (($191 | 0) == ($first | 0)) $$24$ph = $first; else if (($191 | 0) == ($last | 0)) $$24$ph = $last; else {
switch (HEAP8[$191 >> 0] | 0) {
case 46:
case 69:
{
$$24$ph = $191;
break L6;
break;
}
default:
{}
}
$199 = HEAP8[$9 >> 0] | 0;
HEAP8[$9 >> 0] = 0;
HEAP32[$ret2 >> 2] = 0;
HEAP32[$ret2 + 4 >> 2] = 0;
HEAP32[$ret2 + 8 >> 2] = 0;
$203 = $db + 4 | 0;
$204 = HEAP32[$203 >> 2] | 0;
L11 : do if ((HEAP32[$db >> 2] | 0) != ($204 | 0)) {
$206 = $204 + -24 | 0;
$207 = HEAP8[$206 >> 0] | 0;
$209 = ($207 & 1) == 0;
if ($209) $215 = ($207 & 255) >>> 1; else $215 = HEAP32[$204 + -20 >> 2] | 0;
if ($215) {
if (!(HEAP8[$db + 60 >> 0] | 0)) {
if ($209) {
$226 = ($207 & 255) >>> 1;
$228 = $206 + 1 | 0;
} else {
$226 = HEAP32[$204 + -20 >> 2] | 0;
$228 = HEAP32[$204 + -16 >> 2] | 0;
}
if ((HEAP8[$228 + ($226 + -1) >> 0] | 0) == 62) {
if ($209) {
$$in = ($207 & 255) >>> 1;
$240 = $206 + 1 | 0;
} else {
$$in = HEAP32[$204 + -20 >> 2] | 0;
$240 = HEAP32[$204 + -16 >> 2] | 0;
}
if ((HEAP8[$240 + ($$in + -2) >> 0] | 0) == 45) {
$331 = $204;
$t$0 = $191;
} else {
if ($209) {
$$in109 = ($207 & 255) >>> 1;
$252 = $206 + 1 | 0;
} else {
$$in109 = HEAP32[$204 + -20 >> 2] | 0;
$252 = HEAP32[$204 + -16 >> 2] | 0;
}
if ((HEAP8[$252 + ($$in109 + -2) >> 0] | 0) == 62) {
$331 = $204;
$t$0 = $191;
} else {
$255 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($191, $last, $db) | 0;
if (($255 | 0) == ($191 | 0)) break;
$257 = HEAP32[$203 >> 2] | 0;
if ((($257 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) break;
$264 = $257 + -24 | 0;
HEAP32[$ret1 >> 2] = HEAP32[$264 >> 2];
HEAP32[$ret1 + 4 >> 2] = HEAP32[$264 + 4 >> 2];
HEAP32[$ret1 + 8 >> 2] = HEAP32[$264 + 8 >> 2];
HEAP32[$264 >> 2] = 0;
HEAP32[$264 + 4 >> 2] = 0;
HEAP32[$264 + 8 >> 2] = 0;
$267 = $257 + -12 | 0;
L37 : do if (!(HEAP8[$ret2 >> 0] & 1)) {
HEAP8[$ret2 + 1 >> 0] = 0;
HEAP8[$ret2 >> 0] = 0;
} else {
$272 = $ret2 + 8 | 0;
$273 = HEAP32[$272 >> 2] | 0;
HEAP8[$273 >> 0] = 0;
$274 = $ret2 + 4 | 0;
HEAP32[$274 >> 2] = 0;
$275 = HEAP32[$ret2 >> 2] | 0;
$phitmp$i$i$i$i$i$i = ($275 & -2) + -1 | 0;
$277 = $275 & 255;
do if (!($277 & 1)) {
$281 = $275 >>> 1 & 127;
if (($277 & 255) < 22) {
_memcpy($ret2 + 1 | 0, $273 | 0, ($275 >>> 1 & 127) + 1 | 0) | 0;
_free($273);
$$ph96 = $281;
break;
}
$284 = $281 + 16 & 240;
$phitmp$i2$i$i$i$i$i = $284 + -1 | 0;
if (($phitmp$i2$i$i$i$i$i | 0) == ($phitmp$i$i$i$i$i$i | 0)) break L37;
$287 = _malloc($284) | 0;
if ($phitmp$i2$i$i$i$i$i >>> 0 <= $phitmp$i$i$i$i$i$i >>> 0 & ($287 | 0) == 0) break L37;
_memcpy($287 | 0, $ret2 + 1 | 0, ($275 >>> 1 & 127) + 1 | 0) | 0;
HEAP32[$ret2 >> 2] = $284 | 1;
HEAP32[$274 >> 2] = $281;
HEAP32[$272 >> 2] = $287;
break L37;
} else {
HEAP8[$ret2 + 1 >> 0] = 0;
_free($273);
$$ph96 = 0;
} while (0);
HEAP8[$ret2 >> 0] = $$ph96 << 1;
} while (0);
HEAP32[$ret2 >> 2] = HEAP32[$267 >> 2];
HEAP32[$ret2 + 4 >> 2] = HEAP32[$267 + 4 >> 2];
HEAP32[$ret2 + 8 >> 2] = HEAP32[$267 + 8 >> 2];
HEAP32[$267 >> 2] = 0;
HEAP32[$267 + 4 >> 2] = 0;
HEAP32[$267 + 8 >> 2] = 0;
$303 = HEAP8[$ret2 >> 0] | 0;
if (!((($303 & 1) == 0 ? ($303 & 255) >>> 1 : HEAP32[$ret2 + 4 >> 2] | 0) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($ret1, 32);
$312 = HEAP32[$203 >> 2] | 0;
$313 = $312 + -24 | 0;
$315 = $312;
do {
$314 = $315 + -24 | 0;
HEAP32[$203 >> 2] = $314;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($314);
$315 = HEAP32[$203 >> 2] | 0;
} while (($315 | 0) != ($313 | 0));
$318 = HEAP8[$ret1 >> 0] | 0;
$320 = ($318 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($312 + -48 | 0, 0, $320 ? $ret1 + 1 | 0 : HEAP32[$ret1 + 8 >> 2] | 0, $320 ? ($318 & 255) >>> 1 : HEAP32[$ret1 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret1);
$331 = HEAP32[$203 >> 2] | 0;
$t$0 = $255;
}
}
} else {
$331 = $204;
$t$0 = $191;
}
} else {
$331 = $204;
$t$0 = $191;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($331 + -24 | 0, 40);
if (($t$0 | 0) == ($last | 0)) label = 105; else if ((HEAP8[$t$0 >> 0] | 0) == 118) {
$413 = HEAP32[$db >> 2] | 0;
$414 = HEAP32[$203 >> 2] | 0;
$t$2 = $t$0 + 1 | 0;
} else label = 105;
L60 : do if ((label | 0) == 105) {
$335 = $tmp + 4 | 0;
$336 = $4 + 8 | 0;
$337 = $4 + 1 | 0;
$338 = $4 + 4 | 0;
$339 = $tmp + 8 | 0;
$340 = $tmp + 1 | 0;
$341 = $tmp + 4 | 0;
$342 = $tmp + 8 | 0;
$first_arg$0$off0$ph = 1;
$t$1$ph = $t$0;
while (1) {
$345 = HEAP32[$203 >> 2] | 0;
$347 = HEAP32[$db >> 2] | 0;
$t$1 = $t$1$ph;
while (1) {
$349 = ($345 - $347 | 0) / 24 | 0;
$350 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t$1, $last, $db) | 0;
$345 = HEAP32[$203 >> 2] | 0;
$347 = HEAP32[$db >> 2] | 0;
$356 = ($345 - $347 | 0) / 24 | 0;
if (($350 | 0) == ($t$1 | 0)) {
$413 = $347;
$414 = $345;
$t$2 = $t$1;
break L60;
}
if ($356 >>> 0 > $349 >>> 0) {
$$lcssa150 = $349;
$$lcssa151 = $350;
$$lcssa156 = $356;
break;
} else $t$1 = $350;
}
HEAP32[$tmp >> 2] = 0;
HEAP32[$341 >> 2] = 0;
HEAP32[$342 >> 2] = 0;
if ($$lcssa150 >>> 0 < $$lcssa156 >>> 0) {
$k$0121 = $$lcssa150;
do {
$361 = HEAP8[$tmp >> 0] | 0;
if ((($361 & 1) == 0 ? ($361 & 255) >>> 1 : HEAP32[$335 >> 2] | 0) | 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($tmp, 12716) | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, (HEAP32[$db >> 2] | 0) + ($k$0121 * 24 | 0) | 0);
$371 = HEAP8[$4 >> 0] | 0;
$373 = ($371 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($tmp, $373 ? $337 : HEAP32[$336 >> 2] | 0, $373 ? ($371 & 255) >>> 1 : HEAP32[$338 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
$k$0121 = $k$0121 + 1 | 0;
} while ($k$0121 >>> 0 < $$lcssa156 >>> 0);
}
if ($$lcssa150 >>> 0 < $$lcssa156 >>> 0) {
$k2$0122 = $$lcssa150;
do {
$382 = HEAP32[$203 >> 2] | 0;
$383 = $382 + -24 | 0;
$385 = $382;
do {
$384 = $385 + -24 | 0;
HEAP32[$203 >> 2] = $384;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($384);
$385 = HEAP32[$203 >> 2] | 0;
} while (($385 | 0) != ($383 | 0));
$k2$0122 = $k2$0122 + 1 | 0;
} while ($k2$0122 >>> 0 < $$lcssa156 >>> 0);
}
$389 = HEAP8[$tmp >> 0] | 0;
$392 = HEAP32[$335 >> 2] | 0;
if (!((($389 & 1) == 0 ? ($389 & 255) >>> 1 : $392) | 0)) $first_arg$3$off0$ph = $first_arg$0$off0$ph; else {
$398 = HEAP32[$203 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($398 | 0)) break;
if ($first_arg$0$off0$ph) {
$402 = $398;
$404 = $389;
$411 = $392;
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($398 + -24 | 0, 12716) | 0;
$402 = HEAP32[$203 >> 2] | 0;
$404 = HEAP8[$tmp >> 0] | 0;
$411 = HEAP32[$335 >> 2] | 0;
}
$405 = ($404 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($402 + -24 | 0, $405 ? $340 : HEAP32[$339 >> 2] | 0, $405 ? ($404 & 255) >>> 1 : $411) | 0;
$first_arg$3$off0$ph = 0;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp);
$first_arg$0$off0$ph = $first_arg$3$off0$ph;
$t$1$ph = $$lcssa151;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp);
break L11;
} while (0);
if (($413 | 0) != ($414 | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($414 + -24 | 0, 41);
if ($193 & 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12669) | 0;
if ($193 & 2) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12676) | 0;
if ($193 & 4) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12686) | 0;
switch ($195 | 0) {
case 1:
{
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12719) | 0;
break;
}
case 2:
{
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc((HEAP32[$203 >> 2] | 0) + -24 | 0, 12722) | 0;
break;
}
default:
{}
}
$434 = HEAP8[$ret2 >> 0] | 0;
$436 = ($434 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$203 >> 2] | 0) + -24 | 0, $436 ? $ret2 + 1 | 0 : HEAP32[$ret2 + 8 >> 2] | 0, $436 ? ($434 & 255) >>> 1 : HEAP32[$ret2 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret2);
HEAP8[$9 >> 0] = $199;
$$24$ph = $t$2;
break L6;
}
}
} while (0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($ret2);
HEAP8[$9 >> 0] = $10;
HEAP32[$6 >> 2] = $7;
$$7 = $first;
break L1;
}
}
} while (0);
HEAP8[$9 >> 0] = $10;
HEAP32[$6 >> 2] = $7;
$$7 = $$24$ph;
} while (0);
STACKTOP = sp;
return $$7 | 0;
}
function _vfscanf($f, $fmt, $ap) {
$f = $f | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
var $$ = 0, $$lcssa = 0, $$lcssa38 = 0, $$lcssa384 = 0, $$pre = 0, $$pre$phi182Z2D = 0, $$pre170 = 0, $$pre178 = 0, $$size$0 = 0, $0 = 0, $10 = 0, $104 = 0, $105 = 0, $107 = 0, $109 = 0, $11 = 0, $112 = 0, $115 = 0, $117 = 0, $12 = 0, $125 = 0, $129 = 0, $13 = 0, $136 = 0, $14 = 0, $141 = 0, $145 = 0, $15 = 0, $150 = 0, $151 = 0, $157 = 0, $160 = 0, $164 = 0, $166 = 0, $168 = 0, $17 = 0, $173 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $181 = 0, $186 = 0, $190 = 0, $195 = 0, $196 = 0, $197 = 0, $199 = 0, $20 = 0, $201 = 0, $202 = 0, $210 = 0, $220 = 0, $222 = 0, $226 = 0, $228 = 0, $236 = 0, $244 = 0, $245 = 0, $248 = 0, $25 = 0, $250 = 0, $256 = 0, $263 = 0, $265 = 0, $271 = 0, $277 = 0, $281 = 0, $284 = 0, $291 = 0, $306 = 0, $310 = 0.0, $32 = 0, $334 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $51 = 0, $52 = 0, $62 = 0, $7 = 0, $8 = 0, $81 = 0, $82 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $alloc$0 = 0, $alloc$0400 = 0, $alloc$1 = 0, $alloc$2 = 0, $ap2$i = 0, $base$0 = 0, $c$0100 = 0, $dest$0 = 0, $i$0$i = 0, $i$0$ph = 0, $i$0$ph$phi = 0, $i$0$ph20 = 0, $i$0$ph20$lcssa = 0, $i$1 = 0, $i$2 = 0, $i$2$ph = 0, $i$2$ph$phi = 0, $i$3 = 0, $i$4 = 0, $invert$0 = 0, $isdigittmp = 0, $k$0$ph = 0, $k$1$ph = 0, $matches$0104 = 0, $matches$0104$lcssa = 0, $matches$0104376 = 0, $matches$1 = 0, $matches$2 = 0, $matches$3 = 0, $p$0109 = 0, $p$1 = 0, $p$1$lcssa = 0, $p$10 = 0, $p$11 = 0, $p$2 = 0, $p$3$lcssa = 0, $p$396 = 0, $p$4 = 0, $p$5 = 0, $p$6 = 0, $p$7 = 0, $p$7$ph = 0, $p$8 = 0, $p$9 = 0, $pos$0108 = 0, $pos$1 = 0, $pos$2 = 0, $s$0107 = 0, $s$0107$lcssa = 0, $s$1 = 0, $s$2$ph = 0, $s$3 = 0, $s$4 = 0, $s$5 = 0, $s$6 = 0, $s$7 = 0, $s$8 = 0, $scanset = 0, $size$0 = 0, $st = 0, $wc = 0, $wcs$0103 = 0, $wcs$0103$lcssa = 0, $wcs$1 = 0, $wcs$2 = 0, $wcs$3$ph = 0, $wcs$3$ph$lcssa = 0, $wcs$4 = 0, $wcs$5 = 0, $wcs$6 = 0, $wcs$7 = 0, $wcs$8 = 0, $wcs$9 = 0, $width$0$lcssa = 0, $width$097 = 0, $width$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 304 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ap2$i = sp + 16 | 0;
$st = sp + 8 | 0;
$scanset = sp + 33 | 0;
$wc = sp;
$0 = sp + 32 | 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) $334 = ___lockfile($f) | 0; else $334 = 0;
$5 = HEAP8[$fmt >> 0] | 0;
L4 : do if (!($5 << 24 >> 24)) $matches$3 = 0; else {
$7 = $f + 4 | 0;
$8 = $f + 100 | 0;
$9 = $f + 108 | 0;
$10 = $f + 8 | 0;
$11 = $scanset + 10 | 0;
$12 = $scanset + 33 | 0;
$13 = $st + 4 | 0;
$14 = $scanset + 46 | 0;
$15 = $scanset + 94 | 0;
$17 = $5;
$matches$0104 = 0;
$p$0109 = $fmt;
$pos$0108 = 0;
$s$0107 = 0;
$wcs$0103 = 0;
L6 : while (1) {
L8 : do if (!(_isspace($17 & 255) | 0)) {
$47 = (HEAP8[$p$0109 >> 0] | 0) == 37;
L10 : do if ($47) {
$48 = $p$0109 + 1 | 0;
$49 = HEAP8[$48 >> 0] | 0;
L12 : do switch ($49 << 24 >> 24) {
case 37:
{
break L10;
break;
}
case 42:
{
$dest$0 = 0;
$p$2 = $p$0109 + 2 | 0;
break;
}
default:
{
$isdigittmp = ($49 & 255) + -48 | 0;
if ($isdigittmp >>> 0 < 10) if ((HEAP8[$p$0109 + 2 >> 0] | 0) == 36) {
HEAP32[$ap2$i >> 2] = HEAP32[$ap >> 2];
$i$0$i = $isdigittmp;
while (1) {
$81 = (HEAP32[$ap2$i >> 2] | 0) + (4 - 1) & ~(4 - 1);
$82 = HEAP32[$81 >> 2] | 0;
HEAP32[$ap2$i >> 2] = $81 + 4;
if ($i$0$i >>> 0 > 1) $i$0$i = $i$0$i + -1 | 0; else {
$$lcssa = $82;
break;
}
}
$dest$0 = $$lcssa;
$p$2 = $p$0109 + 3 | 0;
break L12;
}
$90 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$91 = HEAP32[$90 >> 2] | 0;
HEAP32[$ap >> 2] = $90 + 4;
$dest$0 = $91;
$p$2 = $48;
}
} while (0);
$92 = HEAP8[$p$2 >> 0] | 0;
$93 = $92 & 255;
if (($93 + -48 | 0) >>> 0 < 10) {
$97 = $93;
$p$396 = $p$2;
$width$097 = 0;
while (1) {
$96 = ($width$097 * 10 | 0) + -48 + $97 | 0;
$98 = $p$396 + 1 | 0;
$99 = HEAP8[$98 >> 0] | 0;
$97 = $99 & 255;
if (($97 + -48 | 0) >>> 0 >= 10) {
$$lcssa38 = $99;
$p$3$lcssa = $98;
$width$0$lcssa = $96;
break;
} else {
$p$396 = $98;
$width$097 = $96;
}
}
} else {
$$lcssa38 = $92;
$p$3$lcssa = $p$2;
$width$0$lcssa = 0;
}
if ($$lcssa38 << 24 >> 24 == 109) {
$104 = $p$3$lcssa + 1 | 0;
$107 = HEAP8[$104 >> 0] | 0;
$alloc$0 = ($dest$0 | 0) != 0 & 1;
$p$4 = $104;
$s$1 = 0;
$wcs$1 = 0;
} else {
$107 = $$lcssa38;
$alloc$0 = 0;
$p$4 = $p$3$lcssa;
$s$1 = $s$0107;
$wcs$1 = $wcs$0103;
}
$105 = $p$4 + 1 | 0;
switch ($107 & 255 | 0) {
case 104:
{
$109 = (HEAP8[$105 >> 0] | 0) == 104;
$p$5 = $109 ? $p$4 + 2 | 0 : $105;
$size$0 = $109 ? -2 : -1;
break;
}
case 108:
{
$112 = (HEAP8[$105 >> 0] | 0) == 108;
$p$5 = $112 ? $p$4 + 2 | 0 : $105;
$size$0 = $112 ? 3 : 1;
break;
}
case 106:
{
$p$5 = $105;
$size$0 = 3;
break;
}
case 116:
case 122:
{
$p$5 = $105;
$size$0 = 1;
break;
}
case 76:
{
$p$5 = $105;
$size$0 = 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:
{
$p$5 = $p$4;
$size$0 = 0;
break;
}
default:
{
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = $s$1;
$wcs$7 = $wcs$1;
label = 152;
break L6;
}
}
$115 = HEAPU8[$p$5 >> 0] | 0;
$117 = ($115 & 47 | 0) == 3;
$$ = $117 ? $115 | 32 : $115;
$$size$0 = $117 ? 1 : $size$0;
switch ($$ | 0) {
case 99:
{
$pos$1 = $pos$0108;
$width$1 = ($width$0$lcssa | 0) < 1 ? 1 : $width$0$lcssa;
break;
}
case 91:
{
$pos$1 = $pos$0108;
$width$1 = $width$0$lcssa;
break;
}
case 110:
{
if (!$dest$0) {
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
}
switch ($$size$0 | 0) {
case -2:
{
HEAP8[$dest$0 >> 0] = $pos$0108;
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
break;
}
case -1:
{
HEAP16[$dest$0 >> 1] = $pos$0108;
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
break;
}
case 0:
{
HEAP32[$dest$0 >> 2] = $pos$0108;
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
break;
}
case 1:
{
HEAP32[$dest$0 >> 2] = $pos$0108;
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
break;
}
case 3:
{
$125 = $dest$0;
HEAP32[$125 >> 2] = $pos$0108;
HEAP32[$125 + 4 >> 2] = (($pos$0108 | 0) < 0) << 31 >> 31;
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
break;
}
default:
{
$matches$1 = $matches$0104;
$p$11 = $p$5;
$pos$2 = $pos$0108;
$s$5 = $s$1;
$wcs$6 = $wcs$1;
break L8;
}
}
break;
}
default:
{
___shlim($f, 0);
do {
$129 = HEAP32[$7 >> 2] | 0;
if ($129 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) {
HEAP32[$7 >> 2] = $129 + 1;
$136 = HEAPU8[$129 >> 0] | 0;
} else $136 = ___shgetc($f) | 0;
} while ((_isspace($136) | 0) != 0);
$$pre170 = HEAP32[$7 >> 2] | 0;
if (!(HEAP32[$8 >> 2] | 0)) $145 = $$pre170; else {
$141 = $$pre170 + -1 | 0;
HEAP32[$7 >> 2] = $141;
$145 = $141;
}
$pos$1 = (HEAP32[$9 >> 2] | 0) + $pos$0108 + $145 - (HEAP32[$10 >> 2] | 0) | 0;
$width$1 = $width$0$lcssa;
}
}
___shlim($f, $width$1);
$150 = HEAP32[$7 >> 2] | 0;
$151 = HEAP32[$8 >> 2] | 0;
if ($150 >>> 0 < $151 >>> 0) {
HEAP32[$7 >> 2] = $150 + 1;
$157 = $151;
} else {
if ((___shgetc($f) | 0) < 0) {
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = $s$1;
$wcs$7 = $wcs$1;
label = 152;
break L6;
}
$157 = HEAP32[$8 >> 2] | 0;
}
if ($157) HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + -1;
L67 : do switch ($$ | 0) {
case 91:
case 99:
case 115:
{
$160 = ($$ | 0) == 99;
L69 : do if (($$ & 239 | 0) == 99) {
_memset($scanset | 0, -1, 257) | 0;
HEAP8[$scanset >> 0] = 0;
if (($$ | 0) == 115) {
HEAP8[$12 >> 0] = 0;
HEAP8[$11 >> 0] = 0;
HEAP8[$11 + 1 >> 0] = 0;
HEAP8[$11 + 2 >> 0] = 0;
HEAP8[$11 + 3 >> 0] = 0;
HEAP8[$11 + 4 >> 0] = 0;
$p$9 = $p$5;
} else $p$9 = $p$5;
} else {
$164 = $p$5 + 1 | 0;
$166 = (HEAP8[$164 >> 0] | 0) == 94;
$invert$0 = $166 & 1;
$168 = $166 ? $164 : $p$5;
$p$6 = $166 ? $p$5 + 2 | 0 : $164;
_memset($scanset | 0, $166 & 1 | 0, 257) | 0;
HEAP8[$scanset >> 0] = 0;
switch (HEAP8[$p$6 >> 0] | 0) {
case 45:
{
$173 = ($invert$0 ^ 1) & 255;
HEAP8[$14 >> 0] = $173;
$$pre$phi182Z2D = $173;
$p$7$ph = $168 + 2 | 0;
break;
}
case 93:
{
$176 = ($invert$0 ^ 1) & 255;
HEAP8[$15 >> 0] = $176;
$$pre$phi182Z2D = $176;
$p$7$ph = $168 + 2 | 0;
break;
}
default:
{
$$pre$phi182Z2D = ($invert$0 ^ 1) & 255;
$p$7$ph = $p$6;
}
}
$p$7 = $p$7$ph;
while (1) {
$177 = HEAP8[$p$7 >> 0] | 0;
L80 : do switch ($177 << 24 >> 24) {
case 0:
{
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = $s$1;
$wcs$7 = $wcs$1;
label = 152;
break L6;
break;
}
case 93:
{
$p$9 = $p$7;
break L69;
break;
}
case 45:
{
$178 = $p$7 + 1 | 0;
$179 = HEAP8[$178 >> 0] | 0;
switch ($179 << 24 >> 24) {
case 93:
case 0:
{
$190 = 45;
$p$8 = $p$7;
break L80;
break;
}
default:
{}
}
$181 = HEAP8[$p$7 + -1 >> 0] | 0;
if (($181 & 255) < ($179 & 255)) {
$c$0100 = $181 & 255;
do {
$c$0100 = $c$0100 + 1 | 0;
HEAP8[$scanset + $c$0100 >> 0] = $$pre$phi182Z2D;
$186 = HEAP8[$178 >> 0] | 0;
} while (($c$0100 | 0) < ($186 & 255 | 0));
$190 = $186;
$p$8 = $178;
} else {
$190 = $179;
$p$8 = $178;
}
break;
}
default:
{
$190 = $177;
$p$8 = $p$7;
}
} while (0);
HEAP8[$scanset + (($190 & 255) + 1) >> 0] = $$pre$phi182Z2D;
$p$7 = $p$8 + 1 | 0;
}
} while (0);
$195 = $160 ? $width$1 + 1 | 0 : 31;
$196 = ($$size$0 | 0) == 1;
$197 = ($alloc$0 | 0) != 0;
L88 : do if ($196) {
if ($197) {
$199 = _malloc($195 << 2) | 0;
if (!$199) {
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = 0;
$wcs$7 = $199;
label = 152;
break L6;
} else $wcs$2 = $199;
} else $wcs$2 = $dest$0;
HEAP32[$st >> 2] = 0;
HEAP32[$13 >> 2] = 0;
$i$0$ph = 0;
$k$0$ph = $195;
$wcs$3$ph = $wcs$2;
L94 : while (1) {
$201 = ($wcs$3$ph | 0) == 0;
$i$0$ph20 = $i$0$ph;
while (1) {
L98 : while (1) {
$202 = HEAP32[$7 >> 2] | 0;
if ($202 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) {
HEAP32[$7 >> 2] = $202 + 1;
$210 = HEAPU8[$202 >> 0] | 0;
} else $210 = ___shgetc($f) | 0;
if (!(HEAP8[$scanset + ($210 + 1) >> 0] | 0)) {
$i$0$ph20$lcssa = $i$0$ph20;
$wcs$3$ph$lcssa = $wcs$3$ph;
break L94;
}
HEAP8[$0 >> 0] = $210;
switch (_mbrtowc($wc, $0, 1, $st) | 0) {
case -1:
{
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = 0;
$wcs$7 = $wcs$3$ph;
label = 152;
break L6;
break;
}
case -2:
break;
default:
break L98;
}
}
if ($201) $i$1 = $i$0$ph20; else {
HEAP32[$wcs$3$ph + ($i$0$ph20 << 2) >> 2] = HEAP32[$wc >> 2];
$i$1 = $i$0$ph20 + 1 | 0;
}
if ($197 & ($i$1 | 0) == ($k$0$ph | 0)) break; else $i$0$ph20 = $i$1;
}
$220 = $k$0$ph << 1 | 1;
$222 = _realloc($wcs$3$ph, $220 << 2) | 0;
if (!$222) {
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = 0;
$wcs$7 = $wcs$3$ph;
label = 152;
break L6;
}
$i$0$ph$phi = $k$0$ph;
$k$0$ph = $220;
$wcs$3$ph = $222;
$i$0$ph = $i$0$ph$phi;
}
if (!(_mbsinit($st) | 0)) {
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = 0;
$wcs$7 = $wcs$3$ph$lcssa;
label = 152;
break L6;
} else {
$i$4 = $i$0$ph20$lcssa;
$s$3 = 0;
$wcs$4 = $wcs$3$ph$lcssa;
}
} else {
if ($197) {
$226 = _malloc($195) | 0;
if (!$226) {
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = 0;
$wcs$7 = 0;
label = 152;
break L6;
} else {
$i$2$ph = 0;
$k$1$ph = $195;
$s$2$ph = $226;
}
while (1) {
$i$2 = $i$2$ph;
do {
$228 = HEAP32[$7 >> 2] | 0;
if ($228 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) {
HEAP32[$7 >> 2] = $228 + 1;
$236 = HEAPU8[$228 >> 0] | 0;
} else $236 = ___shgetc($f) | 0;
if (!(HEAP8[$scanset + ($236 + 1) >> 0] | 0)) {
$i$4 = $i$2;
$s$3 = $s$2$ph;
$wcs$4 = 0;
break L88;
}
HEAP8[$s$2$ph + $i$2 >> 0] = $236;
$i$2 = $i$2 + 1 | 0;
} while (($i$2 | 0) != ($k$1$ph | 0));
$244 = $k$1$ph << 1 | 1;
$245 = _realloc($s$2$ph, $244) | 0;
if (!$245) {
$alloc$0400 = $alloc$0;
$matches$0104376 = $matches$0104;
$s$6 = $s$2$ph;
$wcs$7 = 0;
label = 152;
break L6;
} else {
$i$2$ph$phi = $k$1$ph;
$k$1$ph = $244;
$s$2$ph = $245;
$i$2$ph = $i$2$ph$phi;
}
}
}
if (!$dest$0) {
$265 = $157;
while (1) {
$263 = HEAP32[$7 >> 2] | 0;
if ($263 >>> 0 < $265 >>> 0) {
HEAP32[$7 >> 2] = $263 + 1;
$271 = HEAPU8[$263 >> 0] | 0;
} else $271 = ___shgetc($f) | 0;
if (!(HEAP8[$scanset + ($271 + 1) >> 0] | 0)) {
$i$4 = 0;
$s$3 = 0;
$wcs$4 = 0;
break L88;
}
$265 = HEAP32[$8 >> 2] | 0;
}
} else {
$250 = $157;
$i$3 = 0;
while (1) {
$248 = HEAP32[$7 >> 2] | 0;
if ($248 >>> 0 < $250 >>> 0) {
HEAP32[$7 >> 2] = $248 + 1;
$256 = HEAPU8[$248 >> 0] | 0;
} else $256 = ___shgetc($f) | 0;
if (!(HEAP8[$scanset + ($256 + 1) >> 0] | 0)) {
$i$4 = $i$3;
$s$3 = $dest$0;
$wcs$4 = 0;
break L88;
}
HEAP8[$dest$0 + $i$3 >> 0] = $256;
$250 = HEAP32[$8 >> 2] | 0;
$i$3 = $i$3 + 1 | 0;
}
}
} while (0);
$$pre178 = HEAP32[$7 >> 2] | 0;
if (!(HEAP32[$8 >> 2] | 0)) $281 = $$pre178; else {
$277 = $$pre178 + -1 | 0;
HEAP32[$7 >> 2] = $277;
$281 = $277;
}
$284 = $281 - (HEAP32[$10 >> 2] | 0) + (HEAP32[$9 >> 2] | 0) | 0;
if (!$284) {
$alloc$2 = $alloc$0;
$matches$2 = $matches$0104;
$s$8 = $s$3;
$wcs$9 = $wcs$4;
break L6;
}
if (!(($284 | 0) == ($width$1 | 0) | $160 ^ 1)) {
$alloc$2 = $alloc$0;
$matches$2 = $matches$0104;
$s$8 = $s$3;
$wcs$9 = $wcs$4;
break L6;
}
do if ($197) if ($196) {
HEAP32[$dest$0 >> 2] = $wcs$4;
break;
} else {
HEAP32[$dest$0 >> 2] = $s$3;
break;
} while (0);
if ($160) {
$p$10 = $p$9;
$s$4 = $s$3;
$wcs$5 = $wcs$4;
} else {
if ($wcs$4) HEAP32[$wcs$4 + ($i$4 << 2) >> 2] = 0;
if (!$s$3) {
$p$10 = $p$9;
$s$4 = 0;
$wcs$5 = $wcs$4;
break L67;
}
HEAP8[$s$3 + $i$4 >> 0] = 0;
$p$10 = $p$9;
$s$4 = $s$3;
$wcs$5 = $wcs$4;
}
break;
}
case 120:
case 88:
case 112:
{
$base$0 = 16;
label = 134;
break;
}
case 111:
{
$base$0 = 8;
label = 134;
break;
}
case 117:
case 100:
{
$base$0 = 10;
label = 134;
break;
}
case 105:
{
$base$0 = 0;
label = 134;
break;
}
case 71:
case 103:
case 70:
case 102:
case 69:
case 101:
case 65:
case 97:
{
$310 = +___floatscan($f, $$size$0, 0);
if ((HEAP32[$9 >> 2] | 0) == ((HEAP32[$10 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) | 0)) {
$alloc$2 = $alloc$0;
$matches$2 = $matches$0104;
$s$8 = $s$1;
$wcs$9 = $wcs$1;
break L6;
}
if (!$dest$0) {
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
} else switch ($$size$0 | 0) {
case 0:
{
HEAPF32[$dest$0 >> 2] = $310;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L67;
break;
}
case 1:
{
HEAPF64[$dest$0 >> 3] = $310;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L67;
break;
}
case 2:
{
HEAPF64[$dest$0 >> 3] = $310;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L67;
break;
}
default:
{
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L67;
}
}
break;
}
default:
{
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
}
} while (0);
L168 : do if ((label | 0) == 134) {
label = 0;
$291 = ___intscan($f, $base$0, 0, -1, -1) | 0;
if ((HEAP32[$9 >> 2] | 0) == ((HEAP32[$10 >> 2] | 0) - (HEAP32[$7 >> 2] | 0) | 0)) {
$alloc$2 = $alloc$0;
$matches$2 = $matches$0104;
$s$8 = $s$1;
$wcs$9 = $wcs$1;
break L6;
}
if (($dest$0 | 0) != 0 & ($$ | 0) == 112) {
HEAP32[$dest$0 >> 2] = $291;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break;
}
if (!$dest$0) {
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
} else switch ($$size$0 | 0) {
case -2:
{
HEAP8[$dest$0 >> 0] = $291;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L168;
break;
}
case -1:
{
HEAP16[$dest$0 >> 1] = $291;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L168;
break;
}
case 0:
{
HEAP32[$dest$0 >> 2] = $291;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L168;
break;
}
case 1:
{
HEAP32[$dest$0 >> 2] = $291;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L168;
break;
}
case 3:
{
$306 = $dest$0;
HEAP32[$306 >> 2] = $291;
HEAP32[$306 + 4 >> 2] = tempRet0;
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L168;
break;
}
default:
{
$p$10 = $p$5;
$s$4 = $s$1;
$wcs$5 = $wcs$1;
break L168;
}
}
} while (0);
$matches$1 = (($dest$0 | 0) != 0 & 1) + $matches$0104 | 0;
$p$11 = $p$10;
$pos$2 = (HEAP32[$9 >> 2] | 0) + $pos$1 + (HEAP32[$7 >> 2] | 0) - (HEAP32[$10 >> 2] | 0) | 0;
$s$5 = $s$4;
$wcs$6 = $wcs$5;
break L8;
} while (0);
$51 = $p$0109 + ($47 & 1) | 0;
___shlim($f, 0);
$52 = HEAP32[$7 >> 2] | 0;
if ($52 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) {
HEAP32[$7 >> 2] = $52 + 1;
$62 = HEAPU8[$52 >> 0] | 0;
} else $62 = ___shgetc($f) | 0;
if (($62 | 0) != (HEAPU8[$51 >> 0] | 0)) {
$$lcssa384 = $62;
$matches$0104$lcssa = $matches$0104;
$s$0107$lcssa = $s$0107;
$wcs$0103$lcssa = $wcs$0103;
label = 21;
break L6;
}
$matches$1 = $matches$0104;
$p$11 = $51;
$pos$2 = $pos$0108 + 1 | 0;
$s$5 = $s$0107;
$wcs$6 = $wcs$0103;
} else {
$p$1 = $p$0109;
while (1) {
$20 = $p$1 + 1 | 0;
if (!(_isspace(HEAPU8[$20 >> 0] | 0) | 0)) {
$p$1$lcssa = $p$1;
break;
} else $p$1 = $20;
}
___shlim($f, 0);
do {
$25 = HEAP32[$7 >> 2] | 0;
if ($25 >>> 0 < (HEAP32[$8 >> 2] | 0) >>> 0) {
HEAP32[$7 >> 2] = $25 + 1;
$32 = HEAPU8[$25 >> 0] | 0;
} else $32 = ___shgetc($f) | 0;
} while ((_isspace($32) | 0) != 0);
$$pre = HEAP32[$7 >> 2] | 0;
if (!(HEAP32[$8 >> 2] | 0)) $41 = $$pre; else {
$37 = $$pre + -1 | 0;
HEAP32[$7 >> 2] = $37;
$41 = $37;
}
$matches$1 = $matches$0104;
$p$11 = $p$1$lcssa;
$pos$2 = (HEAP32[$9 >> 2] | 0) + $pos$0108 + $41 - (HEAP32[$10 >> 2] | 0) | 0;
$s$5 = $s$0107;
$wcs$6 = $wcs$0103;
} while (0);
$p$0109 = $p$11 + 1 | 0;
$17 = HEAP8[$p$0109 >> 0] | 0;
if (!($17 << 24 >> 24)) {
$matches$3 = $matches$1;
break L4;
} else {
$matches$0104 = $matches$1;
$pos$0108 = $pos$2;
$s$0107 = $s$5;
$wcs$0103 = $wcs$6;
}
}
if ((label | 0) == 21) {
if (HEAP32[$8 >> 2] | 0) HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + -1;
if (($matches$0104$lcssa | 0) != 0 | ($$lcssa384 | 0) > -1) {
$matches$3 = $matches$0104$lcssa;
break;
} else {
$alloc$1 = 0;
$s$7 = $s$0107$lcssa;
$wcs$8 = $wcs$0103$lcssa;
label = 153;
}
} else if ((label | 0) == 152) if (!$matches$0104376) {
$alloc$1 = $alloc$0400;
$s$7 = $s$6;
$wcs$8 = $wcs$7;
label = 153;
} else {
$alloc$2 = $alloc$0400;
$matches$2 = $matches$0104376;
$s$8 = $s$6;
$wcs$9 = $wcs$7;
}
if ((label | 0) == 153) {
$alloc$2 = $alloc$1;
$matches$2 = -1;
$s$8 = $s$7;
$wcs$9 = $wcs$8;
}
if (!$alloc$2) $matches$3 = $matches$2; else {
_free($s$8);
_free($wcs$9);
$matches$3 = $matches$2;
}
} while (0);
if ($334) ___unlockfile($f);
STACKTOP = sp;
return $matches$3 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i$i = 0, $$0$i$i$i$i6 = 0, $$0$i$i$i18$i = 0, $$0$i$i$i7$i = 0, $$0$i$i49 = 0, $$03$i = 0, $$1$i9 = 0, $$lcssa = 0, $$ph26 = 0, $$pre$i$i$i$i = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $106 = 0, $109 = 0, $110 = 0, $112 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $121 = 0, $13 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $140 = 0, $141 = 0, $143 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $157 = 0, $159 = 0, $162 = 0, $163 = 0, $165 = 0, $171 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $191 = 0, $193 = 0, $194 = 0, $196 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $204 = 0, $205 = 0, $207 = 0, $217 = 0, $218 = 0, $22 = 0, $220 = 0, $224 = 0, $227 = 0, $230 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $246 = 0, $248 = 0, $252 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $268 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $277 = 0, $283 = 0, $284 = 0, $285 = 0, $29 = 0, $292 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $304 = 0, $31 = 0, $312 = 0, $318 = 0, $32 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $341 = 0, $36 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $50 = 0, $53 = 0, $55 = 0, $6 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $69 = 0, $7 = 0, $71 = 0, $74 = 0, $75 = 0, $87 = 0, $88 = 0, $90 = 0, $97 = 0, $98 = 0, $99 = 0, $__p$0$i$i = 0, $__p$1$i$i48 = 0, $__v$i$i17$i = 0, $phitmp$i$i$i$i$i$i$i = 0, $phitmp$i2$i$i$i$i$i$i = 0, $t0$0$i = 0, $t01$0$i = 0, $t01$0$i$lcssa67 = 0, $t01$1$i = 0, $t01$2$i = 0, $t1$0$i$lcssa = 0, $t1$0$i45 = 0, $t13$0$i$lcssa = 0, $t13$0$i51 = 0, $tmp$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i17$i = sp + 104 | 0;
$0 = sp + 80 | 0;
$1 = sp + 64 | 0;
$2 = sp + 40 | 0;
$3 = sp + 24 | 0;
$tmp$i = sp + 12 | 0;
$4 = sp;
L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else {
$6 = HEAP8[$first >> 0] | 0;
$7 = $6 << 24 >> 24;
switch ($7 | 0) {
case 68:
case 67:
{
L6 : do if (($last - $first | 0) > 1) {
$13 = $db + 4 | 0;
$14 = HEAP32[$13 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($14 | 0)) $$03$i = $first; else switch ($7 | 0) {
case 67:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 53:
case 51:
case 50:
case 49:
break;
default:
{
$$03$i = $first;
break L6;
}
}
__ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($1, $14 + -24 | 0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
$20 = HEAP32[$13 >> 2] | 0;
$22 = HEAP32[$db + 8 >> 2] | 0;
if ($20 >>> 0 < $22 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($20, $0);
HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 24;
} else {
$29 = HEAP32[$db >> 2] | 0;
$30 = $20 - $29 | 0;
$31 = ($30 | 0) / 24 | 0;
$32 = $31 + 1 | 0;
if (($30 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$36 = ($22 - $29 | 0) / 24 | 0;
if ($36 >>> 0 < 1073741823) {
$38 = $36 << 1;
$$0$i$i$i$i = $38 >>> 0 < $32 >>> 0 ? $32 : $38;
} else $$0$i$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i$i, $31, $db + 12 | 0);
$41 = $__v$i$i17$i + 8 | 0;
$42 = HEAP32[$41 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($42, $0);
HEAP32[$41 >> 2] = $42 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
HEAP8[$db + 60 >> 0] = 1;
$$03$i = $first + 2 | 0;
break L6;
break;
}
case 68:
{
switch (HEAP8[$first + 1 >> 0] | 0) {
case 53:
case 50:
case 49:
case 48:
break;
default:
{
$$03$i = $first;
break L6;
}
}
__ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($tmp$i, $14 + -24 | 0);
$50 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($tmp$i, 0, 12928) | 0;
HEAP32[$3 >> 2] = HEAP32[$50 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$50 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$50 + 8 >> 2];
HEAP32[$50 >> 2] = 0;
HEAP32[$50 + 4 >> 2] = 0;
HEAP32[$50 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3);
$53 = HEAP32[$13 >> 2] | 0;
$55 = HEAP32[$db + 8 >> 2] | 0;
if ($53 >>> 0 < $55 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($53, $2);
HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 24;
} else {
$62 = HEAP32[$db >> 2] | 0;
$63 = $53 - $62 | 0;
$64 = ($63 | 0) / 24 | 0;
$65 = $64 + 1 | 0;
if (($63 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$69 = ($55 - $62 | 0) / 24 | 0;
if ($69 >>> 0 < 1073741823) {
$71 = $69 << 1;
$$0$i$i$i7$i = $71 >>> 0 < $65 >>> 0 ? $65 : $71;
} else $$0$i$i$i7$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i7$i, $64, $db + 12 | 0);
$74 = $__v$i$i17$i + 8 | 0;
$75 = HEAP32[$74 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($75, $2);
HEAP32[$74 >> 2] = $75 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i);
HEAP8[$db + 60 >> 0] = 1;
$$03$i = $first + 2 | 0;
break L6;
break;
}
default:
{
$$03$i = $first;
break L6;
}
}
} else $$03$i = $first; while (0);
$$0 = $$03$i;
break L1;
break;
}
case 85:
{
L36 : do if (($last - $first | 0) > 2 & $6 << 24 >> 24 == 85) {
switch (HEAP8[$first + 1 >> 0] | 0) {
case 116:
{
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($1, 12930, 8);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
$87 = $db + 4 | 0;
$88 = HEAP32[$87 >> 2] | 0;
$90 = HEAP32[$db + 8 >> 2] | 0;
if ($88 >>> 0 < $90 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($88, $0);
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 24;
} else {
$97 = HEAP32[$db >> 2] | 0;
$98 = $88 - $97 | 0;
$99 = ($98 | 0) / 24 | 0;
$100 = $99 + 1 | 0;
if (($98 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$104 = ($90 - $97 | 0) / 24 | 0;
if ($104 >>> 0 < 1073741823) {
$106 = $104 << 1;
$$0$i$i$i$i6 = $106 >>> 0 < $100 >>> 0 ? $100 : $106;
} else $$0$i$i$i$i6 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i$i6, $99, $db + 12 | 0);
$109 = $__v$i$i17$i + 8 | 0;
$110 = HEAP32[$109 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($110, $0);
HEAP32[$109 >> 2] = $110 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
$112 = $first + 2 | 0;
if (($112 | 0) == ($last | 0)) {
$114 = HEAP32[$87 >> 2] | 0;
$115 = $114 + -24 | 0;
$117 = $114;
while (1) {
$116 = $117 + -24 | 0;
HEAP32[$87 >> 2] = $116;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($116);
$117 = HEAP32[$87 >> 2] | 0;
if (($117 | 0) == ($115 | 0)) {
$$1$i9 = $first;
break L36;
}
}
}
if (((HEAP8[$112 >> 0] | 0) + -48 | 0) >>> 0 < 10) {
$121 = $first + 3 | 0;
L57 : do if (($121 | 0) == ($last | 0)) $t1$0$i$lcssa = $last; else {
$t1$0$i45 = $121;
while (1) {
if (((HEAP8[$t1$0$i45 >> 0] | 0) + -48 | 0) >>> 0 >= 10) {
$t1$0$i$lcssa = $t1$0$i45;
break L57;
}
$t1$0$i45 = $t1$0$i45 + 1 | 0;
if (($t1$0$i45 | 0) == ($last | 0)) {
$t1$0$i$lcssa = $last;
break;
}
}
} while (0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_((HEAP32[$87 >> 2] | 0) + -24 | 0, $112, $t1$0$i$lcssa);
$t0$0$i = $t1$0$i$lcssa;
} else $t0$0$i = $112;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$87 >> 2] | 0) + -24 | 0, 39);
if (($t0$0$i | 0) != ($last | 0)) if ((HEAP8[$t0$0$i >> 0] | 0) == 95) {
$$1$i9 = $t0$0$i + 1 | 0;
break L36;
}
$134 = HEAP32[$87 >> 2] | 0;
$135 = $134 + -24 | 0;
$137 = $134;
while (1) {
$136 = $137 + -24 | 0;
HEAP32[$87 >> 2] = $136;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($136);
$137 = HEAP32[$87 >> 2] | 0;
if (($137 | 0) == ($135 | 0)) {
$$1$i9 = $first;
break L36;
}
}
break;
}
case 108:
break;
default:
{
$$1$i9 = $first;
break L36;
}
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($3, 12939, 9);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3);
$140 = $db + 4 | 0;
$141 = HEAP32[$140 >> 2] | 0;
$143 = HEAP32[$db + 8 >> 2] | 0;
if ($141 >>> 0 < $143 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($141, $2);
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 24;
} else {
$150 = HEAP32[$db >> 2] | 0;
$151 = $141 - $150 | 0;
$152 = ($151 | 0) / 24 | 0;
$153 = $152 + 1 | 0;
if (($151 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$157 = ($143 - $150 | 0) / 24 | 0;
if ($157 >>> 0 < 1073741823) {
$159 = $157 << 1;
$$0$i$i$i18$i = $159 >>> 0 < $153 >>> 0 ? $153 : $159;
} else $$0$i$i$i18$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17$i, $$0$i$i$i18$i, $152, $db + 12 | 0);
$162 = $__v$i$i17$i + 8 | 0;
$163 = HEAP32[$162 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($163, $2);
HEAP32[$162 >> 2] = $163 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17$i);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17$i);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$165 = $first + 2 | 0;
do if ((HEAP8[$165 >> 0] | 0) == 118) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$140 >> 2] | 0) + -24 | 0, 41);
$t01$1$i = $first + 3 | 0;
} else {
$171 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($165, $last, $db) | 0;
$173 = HEAP32[$140 >> 2] | 0;
if (($171 | 0) == ($165 | 0)) {
$174 = $173 + -24 | 0;
$176 = $173;
while (1) {
$175 = $176 + -24 | 0;
HEAP32[$140 >> 2] = $175;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($175);
$176 = HEAP32[$140 >> 2] | 0;
if (($176 | 0) == ($174 | 0)) {
$$1$i9 = $first;
break L36;
}
}
}
if ((($173 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$1$i9 = $first;
break L36;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($tmp$i, $173 + -24 | 0);
$185 = HEAP32[$140 >> 2] | 0;
$186 = $185 + -24 | 0;
$188 = $185;
do {
$187 = $188 + -24 | 0;
HEAP32[$140 >> 2] = $187;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($187);
$188 = HEAP32[$140 >> 2] | 0;
} while (($188 | 0) != ($186 | 0));
$191 = HEAP8[$tmp$i >> 0] | 0;
$193 = ($191 & 1) == 0;
$194 = $tmp$i + 8 | 0;
$196 = $tmp$i + 1 | 0;
$198 = $tmp$i + 4 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($185 + -48 | 0, $193 ? $196 : HEAP32[$194 >> 2] | 0, $193 ? ($191 & 255) >>> 1 : HEAP32[$198 >> 2] | 0) | 0;
$203 = $4 + 4 | 0;
$204 = $4 + 8 | 0;
$$pre$i$i$i$i = $191;
$t01$0$i = $171;
while (1) {
$205 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($t01$0$i, $last, $db) | 0;
$207 = HEAP32[$140 >> 2] | 0;
if (($205 | 0) == ($t01$0$i | 0)) {
$$lcssa = $207;
$t01$0$i$lcssa67 = $t01$0$i;
label = 79;
break;
}
if ((($207 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
label = 113;
break;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($4, $207 + -24 | 0);
L96 : do if (!($$pre$i$i$i$i & 1)) {
HEAP8[$196 >> 0] = 0;
HEAP8[$tmp$i >> 0] = 0;
} else {
$217 = HEAP32[$194 >> 2] | 0;
HEAP8[$217 >> 0] = 0;
HEAP32[$198 >> 2] = 0;
$218 = HEAP32[$tmp$i >> 2] | 0;
$phitmp$i$i$i$i$i$i$i = ($218 & -2) + -1 | 0;
$220 = $218 & 255;
do if (!($220 & 1)) {
$224 = $218 >>> 1 & 127;
if (($220 & 255) < 22) {
_memcpy($196 | 0, $217 | 0, ($218 >>> 1 & 127) + 1 | 0) | 0;
_free($217);
$$ph26 = $224;
break;
}
$227 = $224 + 16 & 240;
$phitmp$i2$i$i$i$i$i$i = $227 + -1 | 0;
if (($phitmp$i2$i$i$i$i$i$i | 0) == ($phitmp$i$i$i$i$i$i$i | 0)) break L96;
$230 = _malloc($227) | 0;
if ($phitmp$i2$i$i$i$i$i$i >>> 0 <= $phitmp$i$i$i$i$i$i$i >>> 0 & ($230 | 0) == 0) break L96;
_memcpy($230 | 0, $196 | 0, ($218 >>> 1 & 127) + 1 | 0) | 0;
HEAP32[$tmp$i >> 2] = $227 | 1;
HEAP32[$198 >> 2] = $224;
HEAP32[$194 >> 2] = $230;
break L96;
} else {
HEAP8[$196 >> 0] = 0;
_free($217);
$$ph26 = 0;
} while (0);
HEAP8[$tmp$i >> 0] = $$ph26 << 1;
} while (0);
HEAP32[$tmp$i >> 2] = HEAP32[$4 >> 2];
HEAP32[$tmp$i + 4 >> 2] = HEAP32[$4 + 4 >> 2];
HEAP32[$tmp$i + 8 >> 2] = HEAP32[$4 + 8 >> 2];
HEAP32[$4 >> 2] = 0;
HEAP32[$203 >> 2] = 0;
HEAP32[$204 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
$241 = HEAP32[$140 >> 2] | 0;
$242 = $241 + -24 | 0;
$244 = $241;
do {
$243 = $244 + -24 | 0;
HEAP32[$140 >> 2] = $243;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($243);
$244 = HEAP32[$140 >> 2] | 0;
} while (($244 | 0) != ($242 | 0));
$246 = HEAP8[$tmp$i >> 0] | 0;
$248 = ($246 & 1) == 0;
$252 = $248 ? ($246 & 255) >>> 1 : HEAP32[$198 >> 2] | 0;
if (!$252) {
$$pre$i$i$i$i = $246;
$t01$0$i = $205;
continue;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($241 + -48 | 0, 12716) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$140 >> 2] | 0) + -24 | 0, $248 ? $196 : HEAP32[$194 >> 2] | 0, $252) | 0;
$$pre$i$i$i$i = $246;
$t01$0$i = $205;
}
if ((label | 0) == 79) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($$lcssa + -24 | 0, 12619) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i);
$t01$1$i = $t01$0$i$lcssa67;
break;
} else if ((label | 0) == 113) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($tmp$i);
$$1$i9 = $first;
break L36;
}
} while (0);
if (($t01$1$i | 0) != ($last | 0)) if ((HEAP8[$t01$1$i >> 0] | 0) == 69) {
$268 = $t01$1$i + 1 | 0;
if (($268 | 0) == ($last | 0)) {
$270 = HEAP32[$140 >> 2] | 0;
$271 = $270 + -24 | 0;
$273 = $270;
while (1) {
$272 = $273 + -24 | 0;
HEAP32[$140 >> 2] = $272;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($272);
$273 = HEAP32[$140 >> 2] | 0;
if (($273 | 0) == ($271 | 0)) {
$$1$i9 = $first;
break L36;
}
}
}
if (((HEAP8[$268 >> 0] | 0) + -48 | 0) >>> 0 < 10) {
$277 = $t01$1$i + 2 | 0;
L127 : do if (($277 | 0) == ($last | 0)) $t13$0$i$lcssa = $last; else {
$t13$0$i51 = $277;
while (1) {
if (((HEAP8[$t13$0$i51 >> 0] | 0) + -48 | 0) >>> 0 >= 10) {
$t13$0$i$lcssa = $t13$0$i51;
break L127;
}
$t13$0$i51 = $t13$0$i51 + 1 | 0;
if (($t13$0$i51 | 0) == ($last | 0)) {
$t13$0$i$lcssa = $last;
break;
}
}
} while (0);
$283 = HEAP32[$140 >> 2] | 0;
$284 = $283 + -24 | 0;
$285 = HEAP8[$284 >> 0] | 0;
if (!($285 & 1)) {
$300 = 10;
$301 = ($285 & 255) >>> 1;
$304 = $285;
} else {
$292 = HEAP32[$284 >> 2] | 0;
$300 = ($292 & -2) + -1 | 0;
$301 = HEAP32[$283 + -20 >> 2] | 0;
$304 = $292 & 255;
}
$297 = $t13$0$i$lcssa - $268 | 0;
if (($t13$0$i$lcssa | 0) == ($268 | 0)) $t01$2$i = $268; else {
if (($300 - $301 | 0) >>> 0 < $297 >>> 0) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($284, $300, $301 + $297 - $300 | 0, $301, 7, $297);
$__p$0$i$i = HEAP32[$283 + -16 >> 2] | 0;
} else {
if (!($304 & 1)) $312 = $284 + 1 | 0; else $312 = HEAP32[$283 + -16 >> 2] | 0;
if (($301 | 0) == 7) $__p$0$i$i = $312; else {
_memmove($312 + ($297 + 7) | 0, $312 + 7 | 0, $301 + -7 | 0) | 0;
$__p$0$i$i = $312;
}
}
$318 = $301 + $297 | 0;
if (!(HEAP8[$284 >> 0] & 1)) HEAP8[$284 >> 0] = $318 << 1; else HEAP32[$283 + -20 >> 2] = $318;
HEAP8[$__p$0$i$i + $318 >> 0] = 0;
if (($268 | 0) == ($t13$0$i$lcssa | 0)) $t01$2$i = $t13$0$i$lcssa; else {
$$0$i$i49 = $268;
$__p$1$i$i48 = $__p$0$i$i + 7 | 0;
while (1) {
HEAP8[$__p$1$i$i48 >> 0] = HEAP8[$$0$i$i49 >> 0] | 0;
$$0$i$i49 = $$0$i$i49 + 1 | 0;
if (($$0$i$i49 | 0) == ($t13$0$i$lcssa | 0)) {
$t01$2$i = $t13$0$i$lcssa;
break;
} else $__p$1$i$i48 = $__p$1$i$i48 + 1 | 0;
}
}
}
} else $t01$2$i = $268;
if (($t01$2$i | 0) != ($last | 0)) if ((HEAP8[$t01$2$i >> 0] | 0) == 95) {
$$1$i9 = $t01$2$i + 1 | 0;
break;
}
$335 = HEAP32[$140 >> 2] | 0;
$336 = $335 + -24 | 0;
$338 = $335;
while (1) {
$337 = $338 + -24 | 0;
HEAP32[$140 >> 2] = $337;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($337);
$338 = HEAP32[$140 >> 2] | 0;
if (($338 | 0) == ($336 | 0)) {
$$1$i9 = $first;
break L36;
}
}
}
$263 = HEAP32[$140 >> 2] | 0;
$264 = $263 + -24 | 0;
$266 = $263;
do {
$265 = $266 + -24 | 0;
HEAP32[$140 >> 2] = $265;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($265);
$266 = HEAP32[$140 >> 2] | 0;
} while (($266 | 0) != ($264 | 0));
$$1$i9 = $first;
} else $$1$i9 = $first; while (0);
$$0 = $$1$i9;
break L1;
break;
}
case 57:
case 56:
case 55:
case 54:
case 53:
case 52:
case 51:
case 50:
case 49:
{
$341 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
STACKTOP = sp;
return $341 | 0;
}
default:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
}
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _PCA($input, $output, $ev) {
$input = $input | 0;
$output = $output | 0;
$ev = $ev | 0;
var $$0 = 0, $0 = 0, $1 = 0, $102 = 0.0, $11 = 0, $112 = 0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $120 = 0, $121 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0.0, $128 = 0.0, $138 = 0.0, $14 = 0, $143 = 0.0, $147 = 0.0, $150 = 0.0, $154 = 0.0, $156 = 0, $157 = 0.0, $159 = 0, $160 = 0.0, $161 = 0.0, $164 = 0, $168 = 0.0, $17 = 0, $172 = 0, $179 = 0.0, $18 = 0, $184 = 0, $185 = 0, $186 = 0, $188 = 0, $189 = 0.0, $191 = 0, $192 = 0.0, $2 = 0, $202 = 0.0, $204 = 0, $205 = 0.0, $21 = 0, $210 = 0.0, $212 = 0.0, $219 = 0, $220 = 0.0, $223 = 0.0, $224 = 0, $232 = 0.0, $237 = 0, $238 = 0, $24 = 0, $25 = 0, $251 = 0, $253 = 0, $256 = 0, $257 = 0, $259 = 0.0, $26 = 0, $263 = 0.0, $264 = 0, $272 = 0.0, $279 = 0, $28 = 0, $287 = 0, $289 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $30 = 0, $304 = 0, $31 = 0, $35 = 0, $37 = 0, $47 = 0.0, $5 = 0, $55 = 0, $57 = 0, $61 = 0, $63 = 0, $70 = 0.0, $8 = 0, $82 = 0, $84 = 0, $90 = 0, $92 = 0, $93 = 0, $97 = 0.0, $98 = 0, $99 = 0, $c$0$i = 0.0, $ev1$i = 0, $exitcond$i133 = 0, $exitcond$i14148 = 0, $exitcond$i28106 = 0, $exitcond$i651 = 0, $exitcond3$i59 = 0, $exitcond6$i115 = 0, $exitcond82 = 0, $h$0$i127 = 0, $h$1$i$lcssa = 0, $h$1$i100 = 0, $h$2$i = 0, $i$0$i11155 = 0, $i$0$i141 = 0, $i$0$i2$lcssa = 0, $i$0$i25116 = 0, $i$0$i266 = 0, $i$0$lcssa = 0, $i$090 = 0, $i$1$i2799 = 0, $i$1$i49 = 0, $i$180 = 0, $i$2$i109 = 0, $in1$0$i129 = 0, $in1$0$i17144 = 0, $in2$0$i128 = 0, $in2$0$i16143 = 0, $iter$0$i = 0, $j$0$i13152 = 0, $j$0$i137 = 0, $j$0$i23 = 0, $j$0$i23$lcssa = 0, $j$0$i461 = 0, $j$085 = 0, $j$1$i47 = 0, $j$175 = 0, $k$0$i130 = 0, $k$0$i18145 = 0, $k$0$i24124 = 0, $k$0$i555 = 0, $k$1$i113 = 0, $m$0$i$lcssa = 0, $m$0$i65 = 0, $m$1$i60 = 0, $m$2$i48 = 0, $m$3$i46 = 0, $m1$0$i54 = 0, $m1$089 = 0, $m1$184 = 0, $m2$0$i52 = 0, $m2$0$lcssa = 0, $m2$088 = 0, $m2$183 = 0, $m2$279 = 0, $m2$374 = 0, $out$0$i10154 = 0, $out$0$i140 = 0, $out$1$i12149 = 0, $out$1$i134 = 0, $s$1$i = 0.0, $scevgep2$i = 0, $scevgep41 = 0, $smax$i = 0, $smax38 = 0, $sum$0$i$lcssa = 0.0, $sum$0$i53 = 0.0, $t$0$i$lcssa = 0.0, $t$0$i98 = 0.0, $t$1$i = 0.0, $v1$0$i107 = 0, $v2$0$i108 = 0, $x$0$i$be = 0.0, $x$0$i122 = 0.0, $x$1$i$lcssa = 0.0, $y$0$i$be = 0.0, $y$0$i123 = 0.0, $y$1$i$lcssa = 0.0, sp = 0, $k$0$i24124$looptemp = 0, $h$0$i127$looptemp = 0, $k$1$i113$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ev1$i = sp;
$0 = $input + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = $input + 8 | 0;
$3 = HEAP32[$2 >> 2] | 0;
$5 = ($3 | 0) < ($1 | 0) ? $3 : $1;
L1 : do if (($1 | 0) < 2 | ($3 | 0) < 2) $$0 = -1; else {
$8 = $output + 8 | 0;
if ((HEAP32[$8 >> 2] | 0) == ($3 | 0)) {
$11 = $output + 4 | 0;
if ((HEAP32[$11 >> 2] | 0) == ($5 | 0)) {
$14 = $ev + 4 | 0;
if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) {
$17 = _arMatrixAlloc($5, $5) | 0;
$18 = $17 + 4 | 0;
if ((HEAP32[$18 >> 2] | 0) == ($5 | 0)) {
$21 = $17 + 8 | 0;
if ((HEAP32[$21 >> 2] | 0) == ($5 | 0)) {
$24 = ($1 | 0) < ($3 | 0);
$25 = HEAP32[$0 >> 2] | 0;
$26 = HEAP32[$2 >> 2] | 0;
if ($24) {
if (($5 | 0) != ($25 | 0)) {
_arMatrixFree($17) | 0;
$$0 = -1;
break;
}
$28 = HEAP32[$17 >> 2] | 0;
if (($5 | 0) > 0) {
$exitcond$i133 = ($5 | 0) == 0;
$30 = ($26 | 0) > 0;
$i$0$i141 = 0;
$out$0$i140 = $28;
while (1) {
$31 = Math_imul($i$0$i141, $26) | 0;
if (!$exitcond$i133) {
$j$0$i137 = 0;
$out$1$i134 = $out$0$i140;
while (1) {
if (($j$0$i137 | 0) < ($i$0$i141 | 0)) {
$35 = $28 + ((Math_imul($j$0$i137, $5) | 0) + $i$0$i141 << 3) | 0;
HEAPF64[$out$1$i134 >> 3] = +HEAPF64[$35 >> 3];
} else {
$37 = HEAP32[$input >> 2] | 0;
HEAPF64[$out$1$i134 >> 3] = 0.0;
if ($30) {
$47 = 0.0;
$in1$0$i129 = $37 + ($31 << 3) | 0;
$in2$0$i128 = $37 + ((Math_imul($j$0$i137, $26) | 0) << 3) | 0;
$k$0$i130 = 0;
while (1) {
$47 = $47 + +HEAPF64[$in1$0$i129 >> 3] * +HEAPF64[$in2$0$i128 >> 3];
HEAPF64[$out$1$i134 >> 3] = $47;
$k$0$i130 = $k$0$i130 + 1 | 0;
if (($k$0$i130 | 0) >= ($26 | 0)) break; else {
$in1$0$i129 = $in1$0$i129 + 8 | 0;
$in2$0$i128 = $in2$0$i128 + 8 | 0;
}
}
}
}
$j$0$i137 = $j$0$i137 + 1 | 0;
if (($j$0$i137 | 0) == ($5 | 0)) break; else $out$1$i134 = $out$1$i134 + 8 | 0;
}
}
$i$0$i141 = $i$0$i141 + 1 | 0;
if (($i$0$i141 | 0) >= ($5 | 0)) break; else $out$0$i140 = $out$0$i140 + ($5 << 3) | 0;
}
}
} else {
if (($5 | 0) != ($26 | 0)) {
_arMatrixFree($17) | 0;
$$0 = -1;
break;
}
$55 = HEAP32[$17 >> 2] | 0;
if (($5 | 0) > 0) {
$exitcond$i14148 = ($5 | 0) == 0;
$57 = ($25 | 0) > 0;
$i$0$i11155 = 0;
$out$0$i10154 = $55;
while (1) {
if (!$exitcond$i14148) {
$j$0$i13152 = 0;
$out$1$i12149 = $out$0$i10154;
while (1) {
if (($j$0$i13152 | 0) < ($i$0$i11155 | 0)) {
$61 = $55 + ((Math_imul($j$0$i13152, $5) | 0) + $i$0$i11155 << 3) | 0;
HEAPF64[$out$1$i12149 >> 3] = +HEAPF64[$61 >> 3];
} else {
$63 = HEAP32[$input >> 2] | 0;
HEAPF64[$out$1$i12149 >> 3] = 0.0;
if ($57) {
$70 = 0.0;
$in1$0$i17144 = $63 + ($i$0$i11155 << 3) | 0;
$in2$0$i16143 = $63 + ($j$0$i13152 << 3) | 0;
$k$0$i18145 = 0;
while (1) {
$70 = $70 + +HEAPF64[$in1$0$i17144 >> 3] * +HEAPF64[$in2$0$i16143 >> 3];
HEAPF64[$out$1$i12149 >> 3] = $70;
$k$0$i18145 = $k$0$i18145 + 1 | 0;
if (($k$0$i18145 | 0) >= ($25 | 0)) break; else {
$in1$0$i17144 = $in1$0$i17144 + ($5 << 3) | 0;
$in2$0$i16143 = $in2$0$i16143 + ($5 << 3) | 0;
}
}
}
}
$j$0$i13152 = $j$0$i13152 + 1 | 0;
if (($j$0$i13152 | 0) == ($5 | 0)) break; else $out$1$i12149 = $out$1$i12149 + 8 | 0;
}
}
$i$0$i11155 = $i$0$i11155 + 1 | 0;
if (($i$0$i11155 | 0) >= ($5 | 0)) break; else $out$0$i10154 = $out$0$i10154 + ($5 << 3) | 0;
}
}
}
do if (($5 | 0) >= 2) if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) {
$82 = _arVecAlloc($5) | 0;
if ($82) {
$84 = $5 + -1 | 0;
HEAP32[$ev1$i + 4 >> 2] = $84;
HEAP32[$ev1$i >> 2] = (HEAP32[$82 >> 2] | 0) + 8;
if ((_arVecTridiagonalize($17, $ev, $ev1$i) | 0) < 0) {
_arVecFree($82) | 0;
break;
}
$90 = HEAP32[$82 >> 2] | 0;
HEAPF64[$90 >> 3] = 0.0;
if (($84 | 0) > 0) {
$exitcond6$i115 = ($5 | 0) == 0;
$h$0$i127 = $84;
do {
$j$0$i23 = $h$0$i127;
while (1) {
if (($j$0$i23 | 0) <= 0) {
$j$0$i23$lcssa = $j$0$i23;
break;
}
$97 = +Math_abs(+(+HEAPF64[$90 + ($j$0$i23 << 3) >> 3]));
$98 = $j$0$i23 + -1 | 0;
$99 = HEAP32[$ev >> 2] | 0;
$102 = +Math_abs(+(+HEAPF64[$99 + ($98 << 3) >> 3]));
if ($97 > ($102 + +Math_abs(+(+HEAPF64[$99 + ($j$0$i23 << 3) >> 3]))) * 1.0e-06) $j$0$i23 = $98; else {
$j$0$i23$lcssa = $j$0$i23;
break;
}
}
$h$0$i127$looptemp = $h$0$i127;
$h$0$i127 = $h$0$i127 + -1 | 0;
L62 : do if (($j$0$i23$lcssa | 0) != ($h$0$i127$looptemp | 0)) {
$112 = $90 + ($h$0$i127$looptemp << 3) | 0;
$113 = $90 + ($j$0$i23$lcssa + 1 << 3) | 0;
$114 = ($j$0$i23$lcssa | 0) < ($h$0$i127$looptemp | 0);
$iter$0$i = 0;
do {
if (($iter$0$i | 0) > 99) break L62;
$iter$0$i = $iter$0$i + 1 | 0;
$117 = HEAP32[$ev >> 2] | 0;
$118 = $117 + ($h$0$i127 << 3) | 0;
$120 = $117 + ($h$0$i127$looptemp << 3) | 0;
$121 = +HEAPF64[$120 >> 3];
$123 = (+HEAPF64[$118 >> 3] - $121) * .5;
$124 = +HEAPF64[$112 >> 3];
$125 = $124 * $124;
$128 = +Math_sqrt(+($125 + $123 * $123));
if ($114) {
$k$0$i24124 = $j$0$i23$lcssa;
$x$0$i122 = +HEAPF64[$117 + ($j$0$i23$lcssa << 3) >> 3] - $121 + $125 / ($123 + ($123 < 0.0 ? -$128 : $128));
$y$0$i123 = +HEAPF64[$113 >> 3];
while (1) {
$138 = +Math_abs(+$x$0$i122);
do if (!($138 >= +Math_abs(+$y$0$i123))) {
$150 = -$x$0$i122 / $y$0$i123;
$154 = 1.0 / +Math_sqrt(+($150 * $150 + 1.0));
$c$0$i = $150 * $154;
$s$1$i = $154;
} else {
if (!($138 > 1.0e-16)) {
$c$0$i = 1.0;
$s$1$i = 0.0;
break;
}
$143 = -$y$0$i123 / $x$0$i122;
$147 = 1.0 / +Math_sqrt(+($143 * $143 + 1.0));
$c$0$i = $147;
$s$1$i = $143 * $147;
} while (0);
$156 = $117 + ($k$0$i24124 << 3) | 0;
$157 = +HEAPF64[$156 >> 3];
$k$0$i24124$looptemp = $k$0$i24124;
$k$0$i24124 = $k$0$i24124 + 1 | 0;
$159 = $117 + ($k$0$i24124 << 3) | 0;
$160 = +HEAPF64[$159 >> 3];
$161 = $157 - $160;
$164 = $90 + ($k$0$i24124 << 3) | 0;
$168 = $s$1$i * ($s$1$i * $161 + $c$0$i * 2.0 * +HEAPF64[$164 >> 3]);
HEAPF64[$156 >> 3] = $157 - $168;
HEAPF64[$159 >> 3] = $160 + $168;
if (($k$0$i24124$looptemp | 0) > ($j$0$i23$lcssa | 0)) {
$172 = $90 + ($k$0$i24124$looptemp << 3) | 0;
HEAPF64[$172 >> 3] = $c$0$i * +HEAPF64[$172 >> 3] - $y$0$i123 * $s$1$i;
}
$179 = +HEAPF64[$164 >> 3];
HEAPF64[$164 >> 3] = $179 + $s$1$i * ($c$0$i * $161 - $s$1$i * 2.0 * $179);
$184 = Math_imul($k$0$i24124$looptemp, $5) | 0;
$185 = Math_imul($k$0$i24124, $5) | 0;
if ($exitcond6$i115) {
$x$1$i$lcssa = $x$0$i122;
$y$1$i$lcssa = $y$0$i123;
} else {
$186 = HEAP32[$17 >> 2] | 0;
$i$0$i25116 = 0;
do {
$188 = $186 + ($i$0$i25116 + $184 << 3) | 0;
$189 = +HEAPF64[$188 >> 3];
$191 = $186 + ($i$0$i25116 + $185 << 3) | 0;
$192 = +HEAPF64[$191 >> 3];
HEAPF64[$188 >> 3] = $c$0$i * $189 - $s$1$i * $192;
HEAPF64[$191 >> 3] = $s$1$i * $189 + $c$0$i * $192;
$i$0$i25116 = $i$0$i25116 + 1 | 0;
} while (($i$0$i25116 | 0) != ($5 | 0));
$x$1$i$lcssa = $189;
$y$1$i$lcssa = $192;
}
if (($k$0$i24124$looptemp | 0) < ($h$0$i127 | 0)) {
$202 = +HEAPF64[$164 >> 3];
$204 = $90 + ($k$0$i24124$looptemp + 2 << 3) | 0;
$205 = +HEAPF64[$204 >> 3];
HEAPF64[$204 >> 3] = $c$0$i * $205;
$x$0$i$be = $202;
$y$0$i$be = -($s$1$i * $205);
} else {
$x$0$i$be = $x$1$i$lcssa;
$y$0$i$be = $y$1$i$lcssa;
}
if (($k$0$i24124 | 0) >= ($h$0$i127$looptemp | 0)) break; else {
$x$0$i122 = $x$0$i$be;
$y$0$i123 = $y$0$i$be;
}
}
}
$210 = +Math_abs(+(+HEAPF64[$112 >> 3]));
$212 = +Math_abs(+(+HEAPF64[$118 >> 3]));
} while ($210 > ($212 + +Math_abs(+(+HEAPF64[$120 >> 3]))) * 1.0e-06);
} while (0);
} while (($h$0$i127$looptemp | 0) > 1);
}
if ($84) {
$92 = HEAP32[$ev >> 2] | 0;
$93 = HEAP32[$17 >> 2] | 0;
$exitcond$i28106 = ($5 | 0) == 0;
$k$1$i113 = 0;
do {
$219 = $92 + ($k$1$i113 << 3) | 0;
$220 = +HEAPF64[$219 >> 3];
$k$1$i113$looptemp = $k$1$i113;
$k$1$i113 = $k$1$i113 + 1 | 0;
if (($k$1$i113 | 0) < ($5 | 0)) {
$h$1$i100 = $k$1$i113$looptemp;
$i$1$i2799 = $k$1$i113;
$t$0$i98 = $220;
while (1) {
$223 = +HEAPF64[$92 + ($i$1$i2799 << 3) >> 3];
$224 = $223 > $t$0$i98;
$t$1$i = $224 ? $223 : $t$0$i98;
$h$2$i = $224 ? $i$1$i2799 : $h$1$i100;
$i$1$i2799 = $i$1$i2799 + 1 | 0;
if (($i$1$i2799 | 0) >= ($5 | 0)) {
$h$1$i$lcssa = $h$2$i;
$t$0$i$lcssa = $t$1$i;
break;
} else {
$h$1$i100 = $h$2$i;
$t$0$i98 = $t$1$i;
}
}
} else {
$h$1$i$lcssa = $k$1$i113$looptemp;
$t$0$i$lcssa = $220;
}
HEAPF64[$92 + ($h$1$i$lcssa << 3) >> 3] = $220;
HEAPF64[$219 >> 3] = $t$0$i$lcssa;
if (!$exitcond$i28106) {
$i$2$i109 = 0;
$v1$0$i107 = $93 + ((Math_imul($h$1$i$lcssa, $5) | 0) << 3) | 0;
$v2$0$i108 = $93 + ((Math_imul($k$1$i113$looptemp, $5) | 0) << 3) | 0;
while (1) {
$232 = +HEAPF64[$v1$0$i107 >> 3];
HEAPF64[$v1$0$i107 >> 3] = +HEAPF64[$v2$0$i108 >> 3];
HEAPF64[$v2$0$i108 >> 3] = $232;
$i$2$i109 = $i$2$i109 + 1 | 0;
if (($i$2$i109 | 0) == ($5 | 0)) break; else {
$v1$0$i107 = $v1$0$i107 + 8 | 0;
$v2$0$i108 = $v2$0$i108 + 8 | 0;
}
}
}
} while (($k$1$i113 | 0) != ($84 | 0));
}
_arVecFree($82) | 0;
L104 : do if ($24) {
$237 = HEAP32[$0 >> 2] | 0;
$238 = HEAP32[$2 >> 2] | 0;
do if (!(($237 | 0) < 1 | ($238 | 0) < 1)) {
if ((HEAP32[$18 >> 2] | 0) != ($237 | 0)) break;
if ((HEAP32[$21 >> 2] | 0) != ($237 | 0)) break;
if ((HEAP32[$11 >> 2] | 0) != ($237 | 0)) break;
if ((HEAP32[$8 >> 2] | 0) != ($238 | 0)) break;
if ((HEAP32[$14 >> 2] | 0) != ($237 | 0)) break;
$251 = HEAP32[$output >> 2] | 0;
L113 : do if (($237 | 0) > 0) {
$253 = HEAP32[$ev >> 2] | 0;
$exitcond3$i59 = ($238 | 0) == 0;
$exitcond$i651 = ($237 | 0) == 0;
$i$0$i266 = 0;
$m$0$i65 = $251;
while (1) {
$259 = +HEAPF64[$253 + ($i$0$i266 << 3) >> 3];
if ($259 < 1.0e-16) {
$i$0$i2$lcssa = $i$0$i266;
$m$0$i$lcssa = $m$0$i65;
break L113;
}
$263 = 1.0 / +Math_sqrt(+(+Math_abs(+$259)));
$264 = Math_imul($i$0$i266, $237) | 0;
if (!$exitcond3$i59) {
$j$0$i461 = 0;
$m$1$i60 = $m$0$i65;
while (1) {
if ($exitcond$i651) $sum$0$i$lcssa = 0.0; else {
$k$0$i555 = 0;
$m1$0$i54 = (HEAP32[$17 >> 2] | 0) + ($264 << 3) | 0;
$m2$0$i52 = (HEAP32[$input >> 2] | 0) + ($j$0$i461 << 3) | 0;
$sum$0$i53 = 0.0;
while (1) {
$272 = $sum$0$i53 + +HEAPF64[$m1$0$i54 >> 3] * +HEAPF64[$m2$0$i52 >> 3];
$k$0$i555 = $k$0$i555 + 1 | 0;
if (($k$0$i555 | 0) == ($237 | 0)) {
$sum$0$i$lcssa = $272;
break;
} else {
$m1$0$i54 = $m1$0$i54 + 8 | 0;
$m2$0$i52 = $m2$0$i52 + ($238 << 3) | 0;
$sum$0$i53 = $272;
}
}
}
HEAPF64[$m$1$i60 >> 3] = $263 * $sum$0$i$lcssa;
$j$0$i461 = $j$0$i461 + 1 | 0;
if (($j$0$i461 | 0) == ($238 | 0)) break; else $m$1$i60 = $m$1$i60 + 8 | 0;
}
}
$scevgep2$i = $m$0$i65 + ($238 << 3) | 0;
$279 = $i$0$i266 + 1 | 0;
if (($279 | 0) < ($237 | 0)) {
$i$0$i266 = $279;
$m$0$i65 = $scevgep2$i;
} else {
$i$0$i2$lcssa = $279;
$m$0$i$lcssa = $scevgep2$i;
break;
}
}
} else {
$i$0$i2$lcssa = 0;
$m$0$i$lcssa = $251;
} while (0);
$smax$i = ($238 | 0) > 0 ? $238 : 0;
if (($i$0$i2$lcssa | 0) >= ($237 | 0)) break L104;
$256 = HEAP32[$ev >> 2] | 0;
$257 = ($238 | 0) > 0;
$i$1$i49 = $i$0$i2$lcssa;
$m$2$i48 = $m$0$i$lcssa;
while (1) {
HEAPF64[$256 + ($i$1$i49 << 3) >> 3] = 0.0;
if ($257) {
$j$1$i47 = 0;
$m$3$i46 = $m$2$i48;
while (1) {
HEAPF64[$m$3$i46 >> 3] = 0.0;
$j$1$i47 = $j$1$i47 + 1 | 0;
if (($j$1$i47 | 0) >= ($238 | 0)) break; else $m$3$i46 = $m$3$i46 + 8 | 0;
}
}
$i$1$i49 = $i$1$i49 + 1 | 0;
if (($i$1$i49 | 0) >= ($237 | 0)) break L104; else $m$2$i48 = $m$2$i48 + ($smax$i << 3) | 0;
}
} while (0);
_arMatrixFree($17) | 0;
$$0 = -1;
break L1;
} else {
$287 = HEAP32[$output >> 2] | 0;
$289 = ($1 | 0) > ($3 | 0) ? $3 : $1;
L137 : do if (($5 | 0) > 0) {
$292 = HEAP32[$ev >> 2] | 0;
$exitcond82 = ($289 | 0) == 0;
$i$090 = 0;
$m1$089 = HEAP32[$17 >> 2] | 0;
$m2$088 = $287;
while (1) {
if (+HEAPF64[$292 + ($i$090 << 3) >> 3] < 1.0e-16) {
$i$0$lcssa = $i$090;
$m2$0$lcssa = $m2$088;
break L137;
}
if (!$exitcond82) {
$j$085 = 0;
$m1$184 = $m1$089;
$m2$183 = $m2$088;
while (1) {
HEAPF64[$m2$183 >> 3] = +HEAPF64[$m1$184 >> 3];
$j$085 = $j$085 + 1 | 0;
if (($j$085 | 0) == ($289 | 0)) break; else {
$m1$184 = $m1$184 + 8 | 0;
$m2$183 = $m2$183 + 8 | 0;
}
}
}
$m1$089 = $m1$089 + ($289 << 3) | 0;
$scevgep41 = $m2$088 + ($289 << 3) | 0;
$304 = $i$090 + 1 | 0;
if (($304 | 0) >= ($5 | 0)) {
$i$0$lcssa = $304;
$m2$0$lcssa = $scevgep41;
break;
} else {
$i$090 = $304;
$m2$088 = $scevgep41;
}
}
} else {
$i$0$lcssa = 0;
$m2$0$lcssa = $287;
} while (0);
$smax38 = ($289 | 0) > 0 ? $289 : 0;
if (($i$0$lcssa | 0) < ($5 | 0)) {
$295 = HEAP32[$ev >> 2] | 0;
$296 = ($5 | 0) > 0;
$i$180 = $i$0$lcssa;
$m2$279 = $m2$0$lcssa;
while (1) {
HEAPF64[$295 + ($i$180 << 3) >> 3] = 0.0;
if ($296) {
$j$175 = 0;
$m2$374 = $m2$279;
while (1) {
HEAPF64[$m2$374 >> 3] = 0.0;
$j$175 = $j$175 + 1 | 0;
if (($j$175 | 0) >= ($5 | 0)) break; else $m2$374 = $m2$374 + 8 | 0;
}
}
$i$180 = $i$180 + 1 | 0;
if (($i$180 | 0) >= ($5 | 0)) break; else $m2$279 = $m2$279 + ($smax38 << 3) | 0;
}
}
} while (0);
_arMatrixFree($17) | 0;
$$0 = 0;
break L1;
}
} while (0);
_arMatrixFree($17) | 0;
$$0 = -1;
break;
}
}
_arMatrixFree($17) | 0;
$$0 = -1;
} else $$0 = -1;
} else $$0 = -1;
} else $$0 = -1;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arDetectMarker($arHandle, $dataPtr) {
$arHandle = $arHandle | 0;
$dataPtr = $dataPtr | 0;
var $$ = 0, $$0 = 0, $$lcssa = 0, $$lcssa109 = 0.0, $$lcssa110 = 0.0, $$pr10 = 0, $$pre$phi45Z2D = 0, $$pre$phi47Z2D = 0, $$pre$phi49Z2D = 0, $$pre$phi51Z2D = 0, $$pre$phi53Z2D = 0, $$pre$phiZ2D = 0, $$pre35 = 0, $$pre37 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $104 = 0, $106 = 0, $115 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $126 = 0, $132 = 0, $135 = 0, $14 = 0, $144 = 0, $146 = 0, $155 = 0, $157 = 0, $16 = 0, $163 = 0, $164 = 0, $187 = 0, $190 = 0, $191 = 0, $193 = 0, $195 = 0, $196 = 0, $199 = 0.0, $2 = 0, $20 = 0, $202 = 0.0, $203 = 0.0, $209 = 0.0, $21 = 0, $214 = 0.0, $217 = 0.0, $22 = 0, $222 = 0, $223 = 0, $226 = 0.0, $229 = 0, $23 = 0, $231 = 0, $235 = 0, $238 = 0.0, $24 = 0, $244 = 0.0, $247 = 0.0, $25 = 0, $26 = 0, $262 = 0, $265 = 0.0, $267 = 0, $269 = 0, $27 = 0, $28 = 0, $282 = 0, $285 = 0.0, $29 = 0, $291 = 0.0, $294 = 0.0, $296 = 0, $30 = 0, $300 = 0, $31 = 0, $313 = 0, $314 = 0, $316 = 0, $32 = 0, $324 = 0, $326 = 0, $328 = 0, $33 = 0, $330 = 0, $335 = 0, $343 = 0, $350 = 0, $351 = 0, $353 = 0, $355 = 0.0, $358 = 0.0, $359 = 0.0, $365 = 0.0, $370 = 0.0, $375 = 0, $381 = 0, $385 = 0, $386 = 0, $387 = 0, $4 = 0, $5 = 0, $69 = 0, $71 = 0, $72 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $8 = 0, $80 = 0, $83 = 0, $86 = 0, $89 = 0, $9 = 0, $91 = 0, $92 = 0, $cdir$1 = 0, $cdir$1$lcssa = 0, $cdir$295 = 0, $cdir$3 = 0, $cdir$3$lcssa = 0, $cid$0$lcssa = 0, $cid$087 = 0, $cid$1 = 0, $diff$097 = 0.0, $diff$192 = 0.0, $diffmin$099 = 0.0, $diffmin$1 = 0.0, $diffmin$294 = 0.0, $i$0104 = 0, $i$1101 = 0, $i$280 = 0, $i$373 = 0, $i$467 = 0, $j$088 = 0, $j$1100 = 0, $j$296 = 0, $j$3$lcssa = 0, $j$381 = 0, $j$4 = 0, $j$5$lcssa = 0, $j$568 = 0, $j$6$lcssa = 0, $j$663 = 0, $k$098 = 0, $k$193 = 0, $marker_nums = 0, $ret1$0 = 0, $rlenmin$086 = 0.0, $rlenmin$1 = 0.0, $storemerge = 0, $storemerge11 = 0, $storemerge4 = 0, $thresholds = 0, $value = 0, $vararg_buffer = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer9 = sp + 32 | 0;
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer = sp;
$thresholds = sp + 52 | 0;
$marker_nums = sp + 40 | 0;
$value = sp + 64 | 0;
$0 = $arHandle + 44 | 0;
HEAP32[$0 >> 2] = 0;
$1 = $arHandle + 7062388 | 0;
$2 = HEAP32[$1 >> 2] | 0;
L1 : do if (($2 | 0) == 4) {
$4 = $arHandle + 7062396 | 0;
$5 = HEAP32[$4 >> 2] | 0;
do if (($5 | 0) > 0) {
$$pr10 = 4;
$storemerge11 = $5 + -1 | 0;
} else {
$8 = $arHandle + 16 | 0;
$9 = HEAP32[$8 >> 2] | 0;
$10 = $arHandle + 7062400 | 0;
$12 = (HEAP32[$10 >> 2] | 0) + $9 | 0;
$$ = ($12 | 0) > 255 ? 255 : $12;
HEAP32[$thresholds >> 2] = $$;
$14 = $arHandle + 7062404 | 0;
$16 = $9 - (HEAP32[$14 >> 2] | 0) | 0;
$storemerge4 = ($16 | 0) < 0 ? 0 : $16;
HEAP32[$thresholds + 4 >> 2] = $storemerge4;
HEAP32[$thresholds + 8 >> 2] = $9;
$20 = $arHandle + 36 | 0;
$21 = $arHandle + 40 | 0;
$22 = $arHandle + 4 | 0;
$23 = $arHandle + 12 | 0;
$24 = $arHandle + 20 | 0;
$25 = $arHandle + 4834144 | 0;
$26 = $arHandle + 15416 | 0;
$27 = $arHandle + 15408 | 0;
$28 = $arHandle + 7062384 | 0;
$29 = $arHandle + 24 | 0;
$30 = $arHandle + 32 | 0;
$31 = $arHandle + 7062416 | 0;
$32 = $arHandle + 48 | 0;
$33 = $arHandle + 7062424 | 0;
$i$0104 = 0;
do {
if ((_arLabeling($dataPtr, HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, HEAP32[$22 >> 2] | 0, HEAP32[$arHandle >> 2] | 0, HEAP32[$23 >> 2] | 0, HEAP32[$thresholds + ($i$0104 << 2) >> 2] | 0, HEAP32[$24 >> 2] | 0, $25, 0) | 0) < 0) {
$$0 = -1;
break L1;
}
if ((_arDetectMarker2(HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, $25, HEAP32[$24 >> 2] | 0, 1e6, 70, 1.0, $26, $27) | 0) < 0) {
$$0 = -1;
break L1;
}
if ((_arGetMarkerInfo($dataPtr, HEAP32[$20 >> 2] | 0, HEAP32[$21 >> 2] | 0, HEAP32[$22 >> 2] | 0, $26, HEAP32[$27 >> 2] | 0, HEAP32[$28 >> 2] | 0, HEAP32[$24 >> 2] | 0, HEAP32[$29 >> 2] | 0, (HEAP32[$30 >> 2] | 0) + 184 | 0, +HEAPF64[$31 >> 3], $32, $0, HEAP32[$33 >> 2] | 0) | 0) < 0) {
$$0 = -1;
break L1;
}
HEAP32[$marker_nums + ($i$0104 << 2) >> 2] = HEAP32[$0 >> 2];
$i$0104 = $i$0104 + 1 | 0;
} while (($i$0104 | 0) < 3);
if ((HEAP32[$arHandle >> 2] | 0) == 1) {
$69 = HEAP32[$marker_nums + 4 >> 2] | 0;
$71 = HEAP32[$marker_nums + 8 >> 2] | 0;
$72 = HEAP32[$marker_nums >> 2] | 0;
HEAP32[$vararg_buffer >> 2] = $storemerge4;
HEAP32[$vararg_buffer + 4 >> 2] = $69;
HEAP32[$vararg_buffer + 8 >> 2] = $9;
HEAP32[$vararg_buffer + 12 >> 2] = $71;
HEAP32[$vararg_buffer + 16 >> 2] = $$;
HEAP32[$vararg_buffer + 20 >> 2] = $72;
_arLog(3, 4153, $vararg_buffer);
$74 = $72;
$75 = $71;
} else {
$74 = HEAP32[$marker_nums >> 2] | 0;
$75 = HEAP32[$marker_nums + 8 >> 2] | 0;
}
$$pre35 = HEAP32[$marker_nums + 4 >> 2] | 0;
if (($74 | 0) > ($75 | 0) | ($$pre35 | 0) > ($75 | 0)) {
$91 = ($74 | 0) >= ($$pre35 | 0) ? $$ : $storemerge4;
HEAP32[$8 >> 2] = $91;
$92 = $91 - $9 | 0;
if (($92 | 0) > 0) {
HEAP32[$10 >> 2] = $92;
$storemerge = 1;
} else {
HEAP32[$10 >> 2] = 1;
$storemerge = 0 - $92 | 0;
}
HEAP32[$14 >> 2] = $storemerge;
if ((HEAP32[$arHandle >> 2] | 0) == 1) {
HEAP32[$vararg_buffer6 >> 2] = $91;
_arLog(3, 4229, $vararg_buffer6);
}
$$pr10 = HEAP32[$1 >> 2] | 0;
$storemerge11 = HEAP32[$arHandle + 7062392 >> 2] | 0;
break;
}
$77 = HEAP32[$10 >> 2] | 0;
$78 = HEAP32[$14 >> 2] | 0;
do if (($77 | 0) < ($78 | 0)) {
$80 = $77 + 1 | 0;
HEAP32[$10 >> 2] = $80;
$86 = $80;
} else if (($77 | 0) > ($78 | 0)) {
HEAP32[$14 >> 2] = $78 + 1;
$86 = $77;
break;
} else {
$83 = $77 + 1 | 0;
HEAP32[$10 >> 2] = $83;
HEAP32[$14 >> 2] = $78 + 1;
$86 = $83;
break;
} while (0);
if (($86 + $9 | 0) > 254) {
HEAP32[$10 >> 2] = 1;
$89 = 1;
} else $89 = $86;
if (($9 | 0) <= ($89 | 0)) HEAP32[$14 >> 2] = 1;
HEAP32[$4 >> 2] = HEAP32[$arHandle + 7062392 >> 2];
label = 47;
break L1;
} while (0);
HEAP32[$4 >> 2] = $storemerge11;
$101 = $$pr10;
label = 30;
} else {
$101 = $2;
label = 30;
} while (0);
L40 : do if ((label | 0) == 30) {
L42 : do switch ($101 | 0) {
case 3:
{
$102 = $arHandle + 7062408 | 0;
$104 = _arImageProcLumaHistAndBoxFilterWithBias(HEAP32[$102 >> 2] | 0, $dataPtr, 9, -7) | 0;
if (($104 | 0) < 0) {
$$0 = $104;
break L40;
}
$106 = HEAP32[$102 >> 2] | 0;
$115 = $arHandle + 4834144 | 0;
$118 = _arLabeling(HEAP32[$106 >> 2] | 0, HEAP32[$106 + 8 >> 2] | 0, HEAP32[$106 + 12 >> 2] | 0, 5, HEAP32[$arHandle >> 2] | 0, HEAP32[$arHandle + 12 >> 2] | 0, 0, 0, $115, HEAP32[$106 + 4 >> 2] | 0) | 0;
if (($118 | 0) < 0) {
$$0 = $118;
break L40;
}
$$pre$phi45Z2D = $arHandle + 36 | 0;
$$pre$phi47Z2D = $arHandle + 40 | 0;
$$pre$phi49Z2D = $arHandle + 20 | 0;
$$pre$phiZ2D = $115;
break;
}
case 2:
case 1:
{
$120 = $arHandle + 7062396 | 0;
$121 = HEAP32[$120 >> 2] | 0;
if (($121 | 0) > 0) {
HEAP32[$120 >> 2] = $121 + -1;
label = 44;
break L42;
}
$126 = HEAP32[$arHandle + 7062408 >> 2] | 0;
if (($101 | 0) == 1) $ret1$0 = _arImageProcLumaHistAndCDFAndMedian($126, $dataPtr, $value) | 0; else $ret1$0 = _arImageProcLumaHistAndOtsu($126, $dataPtr, $value) | 0;
if (($ret1$0 | 0) < 0) {
$$0 = $ret1$0;
break L40;
}
$132 = $arHandle + 16 | 0;
if ((HEAP32[$arHandle >> 2] | 0) == 1) {
$135 = HEAPU8[$value >> 0] | 0;
if ((HEAP32[$132 >> 2] | 0) != ($135 | 0)) {
HEAP32[$vararg_buffer9 >> 2] = (HEAP32[$1 >> 2] | 0) == 1 ? 4281 : 4288;
HEAP32[$vararg_buffer9 + 4 >> 2] = $135;
_arLog(3, 4293, $vararg_buffer9);
}
}
HEAP32[$132 >> 2] = HEAPU8[$value >> 0];
HEAP32[$120 >> 2] = HEAP32[$arHandle + 7062392 >> 2];
label = 44;
break;
}
default:
label = 44;
} while (0);
if ((label | 0) == 44) {
$144 = $arHandle + 36 | 0;
$146 = $arHandle + 40 | 0;
$155 = $arHandle + 20 | 0;
$157 = $arHandle + 4834144 | 0;
if ((_arLabeling($dataPtr, HEAP32[$144 >> 2] | 0, HEAP32[$146 >> 2] | 0, HEAP32[$arHandle + 4 >> 2] | 0, HEAP32[$arHandle >> 2] | 0, HEAP32[$arHandle + 12 >> 2] | 0, HEAP32[$arHandle + 16 >> 2] | 0, HEAP32[$155 >> 2] | 0, $157, 0) | 0) < 0) {
$$0 = -1;
break;
} else {
$$pre$phi45Z2D = $144;
$$pre$phi47Z2D = $146;
$$pre$phi49Z2D = $155;
$$pre$phiZ2D = $157;
}
}
$163 = $arHandle + 15416 | 0;
$164 = $arHandle + 15408 | 0;
if ((_arDetectMarker2(HEAP32[$$pre$phi45Z2D >> 2] | 0, HEAP32[$$pre$phi47Z2D >> 2] | 0, $$pre$phiZ2D, HEAP32[$$pre$phi49Z2D >> 2] | 0, 1e6, 70, 1.0, $163, $164) | 0) < 0) $$0 = -1; else if ((_arGetMarkerInfo($dataPtr, HEAP32[$$pre$phi45Z2D >> 2] | 0, HEAP32[$$pre$phi47Z2D >> 2] | 0, HEAP32[$arHandle + 4 >> 2] | 0, $163, HEAP32[$164 >> 2] | 0, HEAP32[$arHandle + 7062384 >> 2] | 0, HEAP32[$$pre$phi49Z2D >> 2] | 0, HEAP32[$arHandle + 24 >> 2] | 0, (HEAP32[$arHandle + 32 >> 2] | 0) + 184 | 0, +HEAPF64[$arHandle + 7062416 >> 3], $arHandle + 48 | 0, $0, HEAP32[$arHandle + 7062424 >> 2] | 0) | 0) < 0) $$0 = -1; else label = 47;
} while (0);
L63 : do if ((label | 0) == 47) {
$187 = $arHandle + 28 | 0;
if ((HEAP32[$187 >> 2] | 0) == 1) {
_confidenceCutoff($arHandle);
$$0 = 0;
break;
}
$190 = $arHandle + 4818296 | 0;
$191 = $arHandle + 24 | 0;
$$pre37 = HEAP32[$190 >> 2] | 0;
if (($$pre37 | 0) > 0) {
$i$1101 = 0;
do {
$193 = HEAP32[$0 >> 2] | 0;
$195 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 56 | 0;
$196 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 64 | 0;
if (($193 | 0) > 0) {
$199 = +(HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) >> 2] | 0);
$cid$087 = -1;
$j$088 = 0;
$rlenmin$086 = .5;
while (1) {
$202 = +(HEAP32[$arHandle + 48 + ($j$088 << 8) >> 2] | 0);
$203 = $199 / $202;
if ($203 < .7 | $203 > 1.43) {
$cid$1 = $cid$087;
$rlenmin$1 = $rlenmin$086;
} else {
$209 = +HEAPF64[$arHandle + 48 + ($j$088 << 8) + 56 >> 3] - +HEAPF64[$195 >> 3];
$214 = +HEAPF64[$arHandle + 48 + ($j$088 << 8) + 64 >> 3] - +HEAPF64[$196 >> 3];
$217 = ($209 * $209 + $214 * $214) / $202;
if ($217 < $rlenmin$086) {
$cid$1 = $j$088;
$rlenmin$1 = $217;
} else {
$cid$1 = $cid$087;
$rlenmin$1 = $rlenmin$086;
}
}
$j$088 = $j$088 + 1 | 0;
if (($j$088 | 0) >= ($193 | 0)) {
$cid$0$lcssa = $cid$1;
break;
} else {
$cid$087 = $cid$1;
$rlenmin$086 = $rlenmin$1;
}
}
} else $cid$0$lcssa = -1;
L80 : do if (($cid$0$lcssa | 0) > -1) {
$222 = HEAP32[$191 >> 2] | 0;
switch ($222 | 0) {
case 2:
case 1:
case 0:
break;
case 4:
case 3:
{
$262 = $arHandle + 48 + ($cid$0$lcssa << 8) + 40 | 0;
$265 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 40 >> 3];
if (+HEAPF64[$262 >> 3] < $265) {
$$pre$phi51Z2D = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 48 | 0;
$$pre$phi53Z2D = $arHandle + 48 + ($cid$0$lcssa << 8) + 48 | 0;
} else {
$267 = $arHandle + 48 + ($cid$0$lcssa << 8) + 48 | 0;
$269 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 48 | 0;
if (+HEAPF64[$267 >> 3] < +HEAPF64[$269 >> 3]) {
$$pre$phi51Z2D = $269;
$$pre$phi53Z2D = $267;
} else break L80;
}
HEAPF64[$262 >> 3] = $265;
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 8 >> 2] = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 8 >> 2];
HEAPF64[$$pre$phi53Z2D >> 3] = +HEAPF64[$$pre$phi51Z2D >> 3];
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 12 >> 2] = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 12 >> 2];
$cdir$295 = -1;
$diffmin$294 = 1.0e8;
$j$296 = 0;
while (1) {
$diff$192 = 0.0;
$k$193 = 0;
while (1) {
$282 = ($k$193 + $j$296 | 0) % 4 | 0;
$285 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$193 << 4) >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($282 << 4) >> 3];
$291 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$193 << 4) + 8 >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($282 << 4) + 8 >> 3];
$294 = $diff$192 + ($285 * $285 + $291 * $291);
$k$193 = $k$193 + 1 | 0;
if (($k$193 | 0) == 4) {
$$lcssa109 = $294;
break;
} else $diff$192 = $294;
}
$296 = $$lcssa109 < $diffmin$294;
$cdir$3 = $296 ? $j$296 : $cdir$295;
$j$296 = $j$296 + 1 | 0;
if (($j$296 | 0) == 4) {
$cdir$3$lcssa = $cdir$3;
break;
} else {
$cdir$295 = $cdir$3;
$diffmin$294 = $296 ? $$lcssa109 : $diffmin$294;
}
}
$300 = 4 - $cdir$3$lcssa | 0;
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 20 >> 2] = ($300 + (HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 20 >> 2] | 0) | 0) % 4 | 0;
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 24 >> 2] = ($300 + (HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 24 >> 2] | 0) | 0) % 4 | 0;
break L80;
break;
}
default:
{
$$0 = -1;
break L63;
}
}
$223 = $arHandle + 48 + ($cid$0$lcssa << 8) + 32 | 0;
$226 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 32 >> 3];
if (+HEAPF64[$223 >> 3] < $226) {
HEAPF64[$223 >> 3] = $226;
$229 = HEAP32[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 4 >> 2] | 0;
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 4 >> 2] = $229;
$231 = $arHandle + 4818304 + ($i$1101 * 264 | 0) + 16 | 0;
$385 = -1;
$diffmin$099 = 1.0e8;
$j$1100 = 0;
while (1) {
$diff$097 = 0.0;
$k$098 = 0;
while (1) {
$235 = ($k$098 + $j$1100 | 0) % 4 | 0;
$238 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$098 << 4) >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($235 << 4) >> 3];
$244 = +HEAPF64[$arHandle + 4818304 + ($i$1101 * 264 | 0) + 168 + ($k$098 << 4) + 8 >> 3] - +HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 168 + ($235 << 4) + 8 >> 3];
$247 = $diff$097 + ($238 * $238 + $244 * $244);
$k$098 = $k$098 + 1 | 0;
if (($k$098 | 0) == 4) {
$$lcssa110 = $247;
break;
} else $diff$097 = $247;
}
if ($$lcssa110 < $diffmin$099) {
$cdir$1 = (4 - $j$1100 + (HEAP32[$231 >> 2] | 0) | 0) % 4 | 0;
$diffmin$1 = $$lcssa110;
} else {
$cdir$1 = $385;
$diffmin$1 = $diffmin$099;
}
$j$1100 = $j$1100 + 1 | 0;
if (($j$1100 | 0) == 4) {
$cdir$1$lcssa = $cdir$1;
break;
} else {
$385 = $cdir$1;
$diffmin$099 = $diffmin$1;
}
}
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 16 >> 2] = $cdir$1$lcssa;
if ($222 >>> 0 < 2) {
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 8 >> 2] = $229;
HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 40 >> 3] = $226;
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 20 >> 2] = $cdir$1$lcssa;
break;
} else {
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 12 >> 2] = $229;
HEAPF64[$arHandle + 48 + ($cid$0$lcssa << 8) + 48 >> 3] = $226;
HEAP32[$arHandle + 48 + ($cid$0$lcssa << 8) + 24 >> 2] = $cdir$1$lcssa;
break;
}
}
} while (0);
$i$1101 = $i$1101 + 1 | 0;
} while (($i$1101 | 0) < ($$pre37 | 0));
}
_confidenceCutoff($arHandle);
if ((HEAP32[$190 >> 2] | 0) > 0) {
$i$280 = 0;
$j$381 = 0;
while (1) {
$313 = $arHandle + 4818304 + ($i$280 * 264 | 0) | 0;
$314 = $arHandle + 4818304 + ($i$280 * 264 | 0) + 256 | 0;
$316 = (HEAP32[$314 >> 2] | 0) + 1 | 0;
HEAP32[$314 >> 2] = $316;
if (($316 | 0) < 4) {
if (($i$280 | 0) != ($j$381 | 0)) _memcpy($arHandle + 4818304 + ($j$381 * 264 | 0) | 0, $313 | 0, 264) | 0;
$j$4 = $j$381 + 1 | 0;
} else $j$4 = $j$381;
$i$280 = $i$280 + 1 | 0;
if (($i$280 | 0) >= (HEAP32[$190 >> 2] | 0)) {
$j$3$lcssa = $j$4;
break;
} else $j$381 = $j$4;
}
} else $j$3$lcssa = 0;
HEAP32[$190 >> 2] = $j$3$lcssa;
$324 = HEAP32[$0 >> 2] | 0;
L120 : do if (($324 | 0) > 0) {
$386 = $324;
$i$373 = 0;
while (1) {
$326 = $arHandle + 48 + ($i$373 << 8) | 0;
$328 = HEAP32[$arHandle + 48 + ($i$373 << 8) + 4 >> 2] | 0;
if (($328 | 0) >= 0) {
$330 = HEAP32[$190 >> 2] | 0;
L125 : do if (($330 | 0) > 0) {
$j$568 = 0;
while (1) {
if ((HEAP32[$arHandle + 4818304 + ($j$568 * 264 | 0) + 4 >> 2] | 0) == ($328 | 0)) {
$j$5$lcssa = $j$568;
break L125;
}
$335 = $j$568 + 1 | 0;
if (($335 | 0) < ($330 | 0)) $j$568 = $335; else {
$j$5$lcssa = $335;
break;
}
}
} else $j$5$lcssa = 0; while (0);
if (($j$5$lcssa | 0) == ($330 | 0)) {
if (($330 | 0) == 60) {
$$lcssa = $386;
break L120;
}
HEAP32[$190 >> 2] = $330 + 1;
}
_memcpy($arHandle + 4818304 + ($j$5$lcssa * 264 | 0) | 0, $326 | 0, 256) | 0;
HEAP32[$arHandle + 4818304 + ($j$5$lcssa * 264 | 0) + 256 >> 2] = 1;
}
$i$373 = $i$373 + 1 | 0;
$343 = HEAP32[$0 >> 2] | 0;
if (($i$373 | 0) >= ($343 | 0)) {
$$lcssa = $343;
break;
} else $386 = $343;
}
} else $$lcssa = $324; while (0);
if ((HEAP32[$187 >> 2] | 0) == 2) $$0 = 0; else if ((HEAP32[$190 >> 2] | 0) > 0) {
$353 = $$lcssa;
$i$467 = 0;
while (1) {
$350 = $arHandle + 4818304 + ($i$467 * 264 | 0) + 56 | 0;
$351 = $arHandle + 4818304 + ($i$467 * 264 | 0) + 64 | 0;
L139 : do if (($353 | 0) > 0) {
$355 = +(HEAP32[$arHandle + 4818304 + ($i$467 * 264 | 0) >> 2] | 0);
$j$663 = 0;
while (1) {
$358 = +(HEAP32[$arHandle + 48 + ($j$663 << 8) >> 2] | 0);
$359 = $355 / $358;
if (!($359 < .7 | $359 > 1.43)) {
$365 = +HEAPF64[$arHandle + 48 + ($j$663 << 8) + 56 >> 3] - +HEAPF64[$350 >> 3];
$370 = +HEAPF64[$arHandle + 48 + ($j$663 << 8) + 64 >> 3] - +HEAPF64[$351 >> 3];
if (($365 * $365 + $370 * $370) / $358 < .5) {
$j$6$lcssa = $j$663;
break L139;
}
}
$375 = $j$663 + 1 | 0;
if (($375 | 0) < ($353 | 0)) $j$663 = $375; else {
$j$6$lcssa = $375;
break;
}
}
} else $j$6$lcssa = 0; while (0);
if (($j$6$lcssa | 0) == ($353 | 0)) {
_memcpy($arHandle + 48 + ($353 << 8) | 0, $arHandle + 4818304 + ($i$467 * 264 | 0) | 0, 256) | 0;
$381 = (HEAP32[$0 >> 2] | 0) + 1 | 0;
HEAP32[$0 >> 2] = $381;
$387 = $381;
} else $387 = $353;
$i$467 = $i$467 + 1 | 0;
if (($i$467 | 0) >= (HEAP32[$190 >> 2] | 0)) {
$$0 = 0;
break;
} else $353 = $387;
}
} else $$0 = 0;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$19 = 0, $$pre = 0, $$pre$phi80Z2D = 0, $$pre$phi82Z2D = 0, $$pre$phi84Z2D = 0, $0 = 0, $1 = 0, $107 = 0, $108 = 0, $111 = 0, $113 = 0, $114 = 0, $115 = 0, $117 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $13 = 0, $130 = 0, $134 = 0, $136 = 0, $146 = 0, $148 = 0, $15 = 0, $150 = 0, $151 = 0, $159 = 0, $160 = 0, $161 = 0, $162 = 0, $165 = 0, $167 = 0, $177 = 0, $180 = 0, $181 = 0, $183 = 0, $184 = 0, $185 = 0, $187 = 0, $188 = 0, $19 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $201 = 0, $205 = 0, $207 = 0, $217 = 0, $221 = 0, $222 = 0, $225 = 0, $226 = 0, $227 = 0, $230 = 0, $233 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $246 = 0, $250 = 0, $252 = 0, $261 = 0, $262 = 0, $265 = 0, $267 = 0, $268 = 0, $269 = 0, $271 = 0, $279 = 0, $280 = 0, $281 = 0, $282 = 0, $284 = 0, $288 = 0, $290 = 0, $3 = 0, $30 = 0, $33 = 0, $34 = 0, $37 = 0, $39 = 0, $4 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $53 = 0, $55 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $71 = 0, $72 = 0, $73 = 0, $76 = 0, $79 = 0, $87 = 0, $88 = 0, $89 = 0, $90 = 0, $92 = 0, $96 = 0, $98 = 0, $args = 0, $args3 = 0, $global$0$off0 = 0, $s = 0, $s1 = 0, $s4 = 0, $s5 = 0, $s6 = 0, $t$0 = 0, $t$1$lcssa = 0, $t$1$ph = 0, $t$1107 = 0, $t$2 = 0, $t$3$lcssa = 0, $t$3110 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 144 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$args = sp + 132 | 0;
$s = sp + 120 | 0;
$0 = sp + 108 | 0;
$s1 = sp + 96 | 0;
$1 = sp + 84 | 0;
$args3 = sp + 72 | 0;
$s4 = sp + 60 | 0;
$2 = sp + 48 | 0;
$s5 = sp + 36 | 0;
$3 = sp + 24 | 0;
$s6 = sp + 12 | 0;
$4 = sp;
$5 = $last;
L1 : do if (($5 - $first | 0) > 2) {
if ((HEAP8[$first >> 0] | 0) == 103) {
$13 = (HEAP8[$first + 1 >> 0] | 0) == 115;
$global$0$off0 = $13;
$t$0 = $13 ? $first + 2 | 0 : $first;
} else {
$global$0$off0 = 0;
$t$0 = $first;
}
$15 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($t$0, $last, $db) | 0;
if (($15 | 0) != ($t$0 | 0)) {
if (!$global$0$off0) {
$$19 = $15;
break;
}
$19 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($19 | 0)) {
$$19 = $first;
break;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($19 + -24 | 0, 0, 12902) | 0;
$$19 = $15;
break;
}
if (($5 - $t$0 | 0) > 2) if ((HEAP8[$t$0 >> 0] | 0) == 115) if ((HEAP8[$t$0 + 1 >> 0] | 0) == 114) {
$30 = $t$0 + 2 | 0;
if ((HEAP8[$30 >> 0] | 0) == 78) {
$33 = $t$0 + 3 | 0;
$34 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($33, $last, $db) | 0;
if (($34 | 0) == ($33 | 0) | ($34 | 0) == ($last | 0)) {
$$19 = $first;
break;
}
$37 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($34, $last, $db) | 0;
$$pre = $db + 4 | 0;
do if (($37 | 0) == ($34 | 0)) {
$$pre$phi80Z2D = $db;
$t$1$ph = $34;
} else {
$39 = HEAP32[$$pre >> 2] | 0;
if ((($39 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$19 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $39 + -24 | 0);
$47 = HEAP32[$$pre >> 2] | 0;
$48 = $47 + -24 | 0;
$50 = $47;
do {
$49 = $50 + -24 | 0;
HEAP32[$$pre >> 2] = $49;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($49);
$50 = HEAP32[$$pre >> 2] | 0;
} while (($50 | 0) != ($48 | 0));
$53 = HEAP8[$args >> 0] | 0;
$55 = ($53 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($47 + -48 | 0, $55 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $55 ? ($53 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0;
if (($37 | 0) != ($last | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$pre$phi80Z2D = $db;
$t$1$ph = $37;
break;
}
$66 = HEAP32[$$pre >> 2] | 0;
$67 = $66 + -24 | 0;
$69 = $66;
do {
$68 = $69 + -24 | 0;
HEAP32[$$pre >> 2] = $68;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($68);
$69 = HEAP32[$$pre >> 2] | 0;
} while (($69 | 0) != ($67 | 0));
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$19 = $first;
break L1;
} while (0);
$71 = $0 + 8 | 0;
$72 = $0 + 1 | 0;
$73 = $0 + 4 | 0;
if ((HEAP8[$t$1$ph >> 0] | 0) == 69) $t$1$lcssa = $t$1$ph; else {
$t$1107 = $t$1$ph;
while (1) {
$76 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($t$1107, $last, $db) | 0;
if (($76 | 0) == ($t$1107 | 0) | ($76 | 0) == ($last | 0)) {
$$19 = $first;
break L1;
}
$79 = HEAP32[$$pre >> 2] | 0;
if ((($79 - (HEAP32[$$pre$phi80Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$19 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s, $79 + -24 | 0);
$87 = HEAP32[$$pre >> 2] | 0;
$88 = $87 + -24 | 0;
$90 = $87;
do {
$89 = $90 + -24 | 0;
HEAP32[$$pre >> 2] = $89;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($89);
$90 = HEAP32[$$pre >> 2] | 0;
} while (($90 | 0) != ($88 | 0));
$92 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s, 0, 12902) | 0;
HEAP32[$0 >> 2] = HEAP32[$92 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$92 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$92 + 8 >> 2];
HEAP32[$92 >> 2] = 0;
HEAP32[$92 + 4 >> 2] = 0;
HEAP32[$92 + 8 >> 2] = 0;
$96 = HEAP8[$0 >> 0] | 0;
$98 = ($96 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($87 + -48 | 0, $98 ? $72 : HEAP32[$71 >> 2] | 0, $98 ? ($96 & 255) >>> 1 : HEAP32[$73 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s);
if ((HEAP8[$76 >> 0] | 0) == 69) {
$t$1$lcssa = $76;
break;
} else $t$1107 = $76;
}
}
$107 = $t$1$lcssa + 1 | 0;
$108 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($107, $last, $db) | 0;
if (($108 | 0) == ($107 | 0)) {
$111 = HEAP32[$$pre >> 2] | 0;
if ((HEAP32[$$pre$phi80Z2D >> 2] | 0) == ($111 | 0)) {
$$19 = $first;
break;
}
$113 = $111 + -24 | 0;
$115 = $111;
while (1) {
$114 = $115 + -24 | 0;
HEAP32[$$pre >> 2] = $114;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($114);
$115 = HEAP32[$$pre >> 2] | 0;
if (($115 | 0) == ($113 | 0)) {
$$19 = $first;
break L1;
}
}
}
$117 = HEAP32[$$pre >> 2] | 0;
if ((($117 - (HEAP32[$$pre$phi80Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$19 = $first;
break;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s1, $117 + -24 | 0);
$125 = HEAP32[$$pre >> 2] | 0;
$126 = $125 + -24 | 0;
$128 = $125;
do {
$127 = $128 + -24 | 0;
HEAP32[$$pre >> 2] = $127;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($127);
$128 = HEAP32[$$pre >> 2] | 0;
} while (($128 | 0) != ($126 | 0));
$130 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s1, 0, 12902) | 0;
HEAP32[$1 >> 2] = HEAP32[$130 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$130 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$130 + 8 >> 2];
HEAP32[$130 >> 2] = 0;
HEAP32[$130 + 4 >> 2] = 0;
HEAP32[$130 + 8 >> 2] = 0;
$134 = HEAP8[$1 >> 0] | 0;
$136 = ($134 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($125 + -48 | 0, $136 ? $1 + 1 | 0 : HEAP32[$1 + 8 >> 2] | 0, $136 ? ($134 & 255) >>> 1 : HEAP32[$1 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s1);
$$19 = $108;
break;
}
$146 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($30, $last, $db) | 0;
if (($146 | 0) != ($30 | 0)) {
$148 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($146, $last, $db) | 0;
if (($148 | 0) == ($146 | 0)) $t$2 = $146; else {
$150 = $db + 4 | 0;
$151 = HEAP32[$150 >> 2] | 0;
if ((($151 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$19 = $first;
break;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args3, $151 + -24 | 0);
$159 = HEAP32[$150 >> 2] | 0;
$160 = $159 + -24 | 0;
$162 = $159;
do {
$161 = $162 + -24 | 0;
HEAP32[$150 >> 2] = $161;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($161);
$162 = HEAP32[$150 >> 2] | 0;
} while (($162 | 0) != ($160 | 0));
$165 = HEAP8[$args3 >> 0] | 0;
$167 = ($165 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($159 + -48 | 0, $167 ? $args3 + 1 | 0 : HEAP32[$args3 + 8 >> 2] | 0, $167 ? ($165 & 255) >>> 1 : HEAP32[$args3 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args3);
$t$2 = $148;
}
$177 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($t$2, $last, $db) | 0;
if (($177 | 0) == ($t$2 | 0)) {
$180 = $db + 4 | 0;
$181 = HEAP32[$180 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($181 | 0)) {
$$19 = $first;
break;
}
$183 = $181 + -24 | 0;
$185 = $181;
while (1) {
$184 = $185 + -24 | 0;
HEAP32[$180 >> 2] = $184;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($184);
$185 = HEAP32[$180 >> 2] | 0;
if (($185 | 0) == ($183 | 0)) {
$$19 = $first;
break L1;
}
}
}
$187 = $db + 4 | 0;
$188 = HEAP32[$187 >> 2] | 0;
if ((($188 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$19 = $first;
break;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s4, $188 + -24 | 0);
$196 = HEAP32[$187 >> 2] | 0;
$197 = $196 + -24 | 0;
$199 = $196;
do {
$198 = $199 + -24 | 0;
HEAP32[$187 >> 2] = $198;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($198);
$199 = HEAP32[$187 >> 2] | 0;
} while (($199 | 0) != ($197 | 0));
$201 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s4, 0, 12902) | 0;
HEAP32[$2 >> 2] = HEAP32[$201 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$201 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$201 + 8 >> 2];
HEAP32[$201 >> 2] = 0;
HEAP32[$201 + 4 >> 2] = 0;
HEAP32[$201 + 8 >> 2] = 0;
$205 = HEAP8[$2 >> 0] | 0;
$207 = ($205 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($196 + -48 | 0, $207 ? $2 + 1 | 0 : HEAP32[$2 + 8 >> 2] | 0, $207 ? ($205 & 255) >>> 1 : HEAP32[$2 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s4);
$$19 = $177;
break;
}
$217 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($30, $last, $db) | 0;
if (($217 | 0) == ($30 | 0) | ($217 | 0) == ($last | 0)) $$19 = $first; else {
if ($global$0$off0) {
$221 = $db + 4 | 0;
$222 = HEAP32[$221 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($222 | 0)) {
$$19 = $first;
break;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($222 + -24 | 0, 0, 12902) | 0;
$$pre$phi82Z2D = $221;
$$pre$phi84Z2D = $db;
} else {
$$pre$phi82Z2D = $db + 4 | 0;
$$pre$phi84Z2D = $db;
}
$225 = $3 + 8 | 0;
$226 = $3 + 1 | 0;
$227 = $3 + 4 | 0;
if ((HEAP8[$217 >> 0] | 0) == 69) $t$3$lcssa = $217; else {
$t$3110 = $217;
while (1) {
$230 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($t$3110, $last, $db) | 0;
if (($230 | 0) == ($t$3110 | 0) | ($230 | 0) == ($last | 0)) {
$$19 = $first;
break L1;
}
$233 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
if ((($233 - (HEAP32[$$pre$phi84Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$19 = $first;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s5, $233 + -24 | 0);
$241 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
$242 = $241 + -24 | 0;
$244 = $241;
do {
$243 = $244 + -24 | 0;
HEAP32[$$pre$phi82Z2D >> 2] = $243;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($243);
$244 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
} while (($244 | 0) != ($242 | 0));
$246 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s5, 0, 12902) | 0;
HEAP32[$3 >> 2] = HEAP32[$246 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$246 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$246 + 8 >> 2];
HEAP32[$246 >> 2] = 0;
HEAP32[$246 + 4 >> 2] = 0;
HEAP32[$246 + 8 >> 2] = 0;
$250 = HEAP8[$3 >> 0] | 0;
$252 = ($250 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($241 + -48 | 0, $252 ? $226 : HEAP32[$225 >> 2] | 0, $252 ? ($250 & 255) >>> 1 : HEAP32[$227 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s5);
if ((HEAP8[$230 >> 0] | 0) == 69) {
$t$3$lcssa = $230;
break;
} else $t$3110 = $230;
}
}
$261 = $t$3$lcssa + 1 | 0;
$262 = __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($261, $last, $db) | 0;
if (($262 | 0) == ($261 | 0)) {
$265 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
if ((HEAP32[$$pre$phi84Z2D >> 2] | 0) == ($265 | 0)) {
$$19 = $first;
break;
}
$267 = $265 + -24 | 0;
$269 = $265;
while (1) {
$268 = $269 + -24 | 0;
HEAP32[$$pre$phi82Z2D >> 2] = $268;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($268);
$269 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
if (($269 | 0) == ($267 | 0)) {
$$19 = $first;
break L1;
}
}
}
$271 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
if ((($271 - (HEAP32[$$pre$phi84Z2D >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$19 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($s6, $271 + -24 | 0);
$279 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
$280 = $279 + -24 | 0;
$282 = $279;
do {
$281 = $282 + -24 | 0;
HEAP32[$$pre$phi82Z2D >> 2] = $281;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($281);
$282 = HEAP32[$$pre$phi82Z2D >> 2] | 0;
} while (($282 | 0) != ($280 | 0));
$284 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($s6, 0, 12902) | 0;
HEAP32[$4 >> 2] = HEAP32[$284 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$284 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$284 + 8 >> 2];
HEAP32[$284 >> 2] = 0;
HEAP32[$284 + 4 >> 2] = 0;
HEAP32[$284 + 8 >> 2] = 0;
$288 = HEAP8[$4 >> 0] | 0;
$290 = ($288 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($279 + -48 | 0, $290 ? $4 + 1 | 0 : HEAP32[$4 + 8 >> 2] | 0, $290 ? ($288 & 255) >>> 1 : HEAP32[$4 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($s6);
$$19 = $262;
}
}
} else $$19 = $first; else $$19 = $first; else $$19 = $first;
} else $$19 = $first; while (0);
STACKTOP = sp;
return $$19 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i12 = 0, $$0$i$i$i17 = 0, $$0$i$i$i22 = 0, $$0$i$i$i27 = 0, $$0$i$i$i32 = 0, $$0$i$i$i37 = 0, $$0$i$i$i40 = 0, $$lcssa98 = 0, $0 = 0, $1 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $110 = 0, $112 = 0, $115 = 0, $116 = 0, $119 = 0, $12 = 0, $120 = 0, $122 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $136 = 0, $138 = 0, $14 = 0, $141 = 0, $142 = 0, $145 = 0, $146 = 0, $148 = 0, $15 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $162 = 0, $164 = 0, $167 = 0, $168 = 0, $172 = 0, $176 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $184 = 0, $187 = 0, $195 = 0, $196 = 0, $197 = 0, $2 = 0, $200 = 0, $203 = 0, $212 = 0, $213 = 0, $214 = 0, $217 = 0, $218 = 0, $220 = 0, $221 = 0, $223 = 0, $224 = 0, $229 = 0, $233 = 0, $240 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $248 = 0, $25 = 0, $251 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $267 = 0, $27 = 0, $28 = 0, $3 = 0, $32 = 0, $34 = 0, $37 = 0, $38 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $58 = 0, $60 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $84 = 0, $86 = 0, $89 = 0, $90 = 0, $93 = 0, $94 = 0, $96 = 0, $__v$i$i38 = 0, $isdigittmp5 = 0, $isdigittmp9 = 0, $sub$179 = 0, $sub$179$lcssa = 0, $t$080 = 0, $t$080$lcssa = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i38 = sp + 144 | 0;
$0 = sp + 120 | 0;
$1 = sp + 96 | 0;
$2 = sp + 72 | 0;
$3 = sp + 48 | 0;
$4 = sp + 24 | 0;
$5 = sp;
L1 : do if (($last - $first | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 83) {
$12 = $first + 1 | 0;
$13 = HEAP8[$12 >> 0] | 0;
$14 = $13 << 24 >> 24;
switch ($14 | 0) {
case 97:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($0, 12813);
$15 = $db + 4 | 0;
$16 = HEAP32[$15 >> 2] | 0;
$18 = HEAP32[$db + 8 >> 2] | 0;
if ($16 >>> 0 < $18 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($16, $0);
HEAP32[$15 >> 2] = (HEAP32[$15 >> 2] | 0) + 24;
} else {
$25 = HEAP32[$db >> 2] | 0;
$26 = $16 - $25 | 0;
$27 = ($26 | 0) / 24 | 0;
$28 = $27 + 1 | 0;
if (($26 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$32 = ($18 - $25 | 0) / 24 | 0;
if ($32 >>> 0 < 1073741823) {
$34 = $32 << 1;
$$0$i$i$i = $34 >>> 0 < $28 >>> 0 ? $28 : $34;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i, $27, $db + 12 | 0);
$37 = $__v$i$i38 + 8 | 0;
$38 = HEAP32[$37 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($38, $0);
HEAP32[$37 >> 2] = $38 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 98:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($1, 12828);
$41 = $db + 4 | 0;
$42 = HEAP32[$41 >> 2] | 0;
$44 = HEAP32[$db + 8 >> 2] | 0;
if ($42 >>> 0 < $44 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($42, $1);
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 24;
} else {
$51 = HEAP32[$db >> 2] | 0;
$52 = $42 - $51 | 0;
$53 = ($52 | 0) / 24 | 0;
$54 = $53 + 1 | 0;
if (($52 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$58 = ($44 - $51 | 0) / 24 | 0;
if ($58 >>> 0 < 1073741823) {
$60 = $58 << 1;
$$0$i$i$i12 = $60 >>> 0 < $54 >>> 0 ? $54 : $60;
} else $$0$i$i$i12 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i12, $53, $db + 12 | 0);
$63 = $__v$i$i38 + 8 | 0;
$64 = HEAP32[$63 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($64, $1);
HEAP32[$63 >> 2] = $64 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 115:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($2, 12846);
$67 = $db + 4 | 0;
$68 = HEAP32[$67 >> 2] | 0;
$70 = HEAP32[$db + 8 >> 2] | 0;
if ($68 >>> 0 < $70 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($68, $2);
HEAP32[$67 >> 2] = (HEAP32[$67 >> 2] | 0) + 24;
} else {
$77 = HEAP32[$db >> 2] | 0;
$78 = $68 - $77 | 0;
$79 = ($78 | 0) / 24 | 0;
$80 = $79 + 1 | 0;
if (($78 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$84 = ($70 - $77 | 0) / 24 | 0;
if ($84 >>> 0 < 1073741823) {
$86 = $84 << 1;
$$0$i$i$i17 = $86 >>> 0 < $80 >>> 0 ? $80 : $86;
} else $$0$i$i$i17 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i17, $79, $db + 12 | 0);
$89 = $__v$i$i38 + 8 | 0;
$90 = HEAP32[$89 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($90, $2);
HEAP32[$89 >> 2] = $90 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 105:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($3, 12858);
$93 = $db + 4 | 0;
$94 = HEAP32[$93 >> 2] | 0;
$96 = HEAP32[$db + 8 >> 2] | 0;
if ($94 >>> 0 < $96 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($94, $3);
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 24;
} else {
$103 = HEAP32[$db >> 2] | 0;
$104 = $94 - $103 | 0;
$105 = ($104 | 0) / 24 | 0;
$106 = $105 + 1 | 0;
if (($104 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$110 = ($96 - $103 | 0) / 24 | 0;
if ($110 >>> 0 < 1073741823) {
$112 = $110 << 1;
$$0$i$i$i22 = $112 >>> 0 < $106 >>> 0 ? $106 : $112;
} else $$0$i$i$i22 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i22, $105, $db + 12 | 0);
$115 = $__v$i$i38 + 8 | 0;
$116 = HEAP32[$115 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($116, $3);
HEAP32[$115 >> 2] = $116 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 111:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($4, 12871);
$119 = $db + 4 | 0;
$120 = HEAP32[$119 >> 2] | 0;
$122 = HEAP32[$db + 8 >> 2] | 0;
if ($120 >>> 0 < $122 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($120, $4);
HEAP32[$119 >> 2] = (HEAP32[$119 >> 2] | 0) + 24;
} else {
$129 = HEAP32[$db >> 2] | 0;
$130 = $120 - $129 | 0;
$131 = ($130 | 0) / 24 | 0;
$132 = $131 + 1 | 0;
if (($130 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$136 = ($122 - $129 | 0) / 24 | 0;
if ($136 >>> 0 < 1073741823) {
$138 = $136 << 1;
$$0$i$i$i27 = $138 >>> 0 < $132 >>> 0 ? $132 : $138;
} else $$0$i$i$i27 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i27, $131, $db + 12 | 0);
$141 = $__v$i$i38 + 8 | 0;
$142 = HEAP32[$141 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($142, $4);
HEAP32[$141 >> 2] = $142 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($4);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 100:
{
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($5, 12884);
$145 = $db + 4 | 0;
$146 = HEAP32[$145 >> 2] | 0;
$148 = HEAP32[$db + 8 >> 2] | 0;
if ($146 >>> 0 < $148 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($146, $5);
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 24;
} else {
$155 = HEAP32[$db >> 2] | 0;
$156 = $146 - $155 | 0;
$157 = ($156 | 0) / 24 | 0;
$158 = $157 + 1 | 0;
if (($156 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$162 = ($148 - $155 | 0) / 24 | 0;
if ($162 >>> 0 < 1073741823) {
$164 = $162 << 1;
$$0$i$i$i32 = $164 >>> 0 < $158 >>> 0 ? $158 : $164;
} else $$0$i$i$i32 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i32, $157, $db + 12 | 0);
$167 = $__v$i$i38 + 8 | 0;
$168 = HEAP32[$167 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $5);
HEAP32[$167 >> 2] = $168 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
$$0 = $first + 2 | 0;
break L1;
break;
}
case 95:
{
$172 = HEAP32[$db + 16 >> 2] | 0;
if (($172 | 0) == (HEAP32[$db + 20 >> 2] | 0)) {
$$0 = $first;
break L1;
}
$176 = HEAP32[$172 >> 2] | 0;
$178 = HEAP32[$172 + 4 >> 2] | 0;
$179 = $db + 4 | 0;
$180 = $db + 8 | 0;
$181 = $db + 12 | 0;
$182 = $__v$i$i38 + 8 | 0;
L100 : do if (($176 | 0) != ($178 | 0)) {
$187 = $176;
while (1) {
$184 = HEAP32[$179 >> 2] | 0;
if (($184 | 0) == (HEAP32[$180 >> 2] | 0)) {
$195 = $184 - (HEAP32[$db >> 2] | 0) | 0;
$196 = ($195 | 0) / 24 | 0;
$197 = $196 + 1 | 0;
if (($195 | 0) < -24) break;
if ($196 >>> 0 < 1073741823) {
$200 = $196 << 1;
$$0$i$i$i37 = $200 >>> 0 < $197 >>> 0 ? $197 : $200;
} else $$0$i$i$i37 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i37, $196, $181);
$203 = HEAP32[$182 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($203, $187);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($203 + 12 | 0, $187 + 12 | 0);
HEAP32[$182 >> 2] = $203 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($184, $187);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($184 + 12 | 0, $187 + 12 | 0);
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 24;
}
$187 = $187 + 24 | 0;
if (($187 | 0) == ($178 | 0)) break L100;
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
} while (0);
$$0 = $first + 2 | 0;
break L1;
break;
}
default:
{
if (($14 + -48 | 0) >>> 0 < 10) $213 = $13; else {
if (!(_isupper($14) | 0)) {
$$0 = $first;
break L1;
}
$213 = HEAP8[$12 >> 0] | 0;
}
$212 = $213 << 24 >> 24;
$isdigittmp5 = $212 + -48 | 0;
$214 = $first + 2 | 0;
if (($214 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
$sub$179 = $isdigittmp5 >>> 0 < 10 ? $isdigittmp5 : $212 + -55 | 0;
$t$080 = $214;
while (1) {
$217 = HEAP8[$t$080 >> 0] | 0;
$218 = $217 << 24 >> 24;
if (($218 + -48 | 0) >>> 0 < 10) $224 = $217; else {
$220 = (_isupper($218) | 0) == 0;
$221 = HEAP8[$t$080 >> 0] | 0;
if ($220) {
$$lcssa98 = $221;
$sub$179$lcssa = $sub$179;
$t$080$lcssa = $t$080;
break;
} else $224 = $221;
}
$223 = $224 << 24 >> 24;
$isdigittmp9 = $223 + -48 | 0;
$t$080 = $t$080 + 1 | 0;
if (($t$080 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
} else $sub$179 = ($isdigittmp9 >>> 0 < 10 ? $isdigittmp9 : $223 + -55 | 0) + ($sub$179 * 36 | 0) | 0;
}
if ($$lcssa98 << 24 >> 24 != 95) {
$$0 = $first;
break L1;
}
$229 = $sub$179$lcssa + 1 | 0;
$233 = HEAP32[$db + 16 >> 2] | 0;
if ($229 >>> 0 >= (HEAP32[$db + 20 >> 2] | 0) - $233 >> 4 >>> 0) {
$$0 = $first;
break L1;
}
$240 = HEAP32[$233 + ($229 << 4) >> 2] | 0;
$242 = HEAP32[$233 + ($229 << 4) + 4 >> 2] | 0;
$243 = $db + 4 | 0;
$244 = $db + 8 | 0;
$245 = $db + 12 | 0;
$246 = $__v$i$i38 + 8 | 0;
L19 : do if (($240 | 0) != ($242 | 0)) {
$251 = $240;
while (1) {
$248 = HEAP32[$243 >> 2] | 0;
if (($248 | 0) == (HEAP32[$244 >> 2] | 0)) {
$259 = $248 - (HEAP32[$db >> 2] | 0) | 0;
$260 = ($259 | 0) / 24 | 0;
$261 = $260 + 1 | 0;
if (($259 | 0) < -24) break;
if ($260 >>> 0 < 1073741823) {
$264 = $260 << 1;
$$0$i$i$i40 = $264 >>> 0 < $261 >>> 0 ? $261 : $264;
} else $$0$i$i$i40 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i38, $$0$i$i$i40, $260, $245);
$267 = HEAP32[$246 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($267, $251);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($267 + 12 | 0, $251 + 12 | 0);
HEAP32[$246 >> 2] = $267 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i38);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i38);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($248, $251);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($248 + 12 | 0, $251 + 12 | 0);
HEAP32[$243 >> 2] = (HEAP32[$243 >> 2] | 0) + 24;
}
$251 = $251 + 24 | 0;
if (($251 | 0) == ($242 | 0)) break L19;
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
} while (0);
$$0 = $t$080$lcssa + 1 | 0;
break L1;
}
}
} else $$0 = $first; else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _icpGetInitXw2Xc_from_PlanarData($matXc2U, $screenCoord, $worldCoord, $num, $initMatXw2Xc) {
$matXc2U = $matXc2U | 0;
$screenCoord = $screenCoord | 0;
$worldCoord = $worldCoord | 0;
$num = $num | 0;
$initMatXw2Xc = $initMatXw2Xc | 0;
var $$$10$i = 0.0, $$$16$i = 0.0, $$$18$i = 0.0, $$$8$i = 0.0, $$0 = 0, $$10$$i = 0.0, $$10$i = 0.0, $$15$i = 0.0, $$16$$i = 0.0, $$16$i = 0.0, $$17$i = 0.0, $$18$$i = 0.0, $$18$i = 0.0, $$7$i = 0.0, $$7$i1 = 0.0, $$7$i2 = 0.0, $$8$$i = 0.0, $$8$i = 0.0, $$9$i = 0.0, $102 = 0, $104 = 0, $106 = 0, $11 = 0, $110 = 0, $112 = 0, $114 = 0.0, $118 = 0.0, $121 = 0.0, $122 = 0.0, $125 = 0.0, $129 = 0.0, $132 = 0.0, $133 = 0.0, $135 = 0.0, $140 = 0.0, $147 = 0.0, $151 = 0.0, $157 = 0.0, $163 = 0.0, $169 = 0.0, $170 = 0.0, $171 = 0.0, $172 = 0.0, $173 = 0.0, $174 = 0.0, $175 = 0.0, $177 = 0.0, $178 = 0.0, $180 = 0.0, $191 = 0.0, $193 = 0.0, $194 = 0.0, $195 = 0.0, $197 = 0.0, $199 = 0.0, $200 = 0.0, $203 = 0.0, $209 = 0.0, $211 = 0.0, $212 = 0.0, $213 = 0.0, $218 = 0.0, $226 = 0.0, $234 = 0, $235 = 0.0, $236 = 0.0, $237 = 0.0, $242 = 0.0, $244 = 0.0, $248 = 0.0, $249 = 0.0, $251 = 0.0, $255 = 0.0, $258 = 0.0, $265 = 0.0, $268 = 0.0, $270 = 0.0, $272 = 0.0, $274 = 0.0, $276 = 0.0, $278 = 0.0, $280 = 0.0, $281 = 0, $283 = 0, $291 = 0, $292 = 0.0, $293 = 0.0, $294 = 0.0, $299 = 0.0, $301 = 0.0, $305 = 0.0, $306 = 0.0, $308 = 0.0, $312 = 0.0, $315 = 0.0, $32 = 0, $322 = 0.0, $325 = 0.0, $327 = 0.0, $329 = 0.0, $33 = 0, $331 = 0.0, $333 = 0.0, $335 = 0.0, $337 = 0.0, $338 = 0, $340 = 0, $345 = 0.0, $35 = 0, $352 = 0.0, $359 = 0.0, $366 = 0.0, $37 = 0, $377 = 0.0, $379 = 0.0, $38 = 0, $380 = 0.0, $381 = 0.0, $383 = 0.0, $385 = 0.0, $386 = 0.0, $389 = 0.0, $39 = 0, $395 = 0.0, $41 = 0, $43 = 0, $56 = 0, $83 = 0, $96 = 0, $cb$0$i = 0.0, $e1$0$i = 0.0, $e2$0$i = 0.0, $e3$0$i = 0.0, $e4$0$i = 0.0, $f$0$i = 0, $f$2$i = 0, $i$0 = 0, $i$15 = 0, $t$sroa$0$0 = 0.0, $t$sroa$6$0 = 0.0, $v1$sroa$0$0$i = 0.0, $v1$sroa$16$0$i = 0.0, $v1$sroa$31$0$i = 0.0, $v2$sroa$0$0$i = 0.0, $v2$sroa$16$0$i = 0.0, $v2$sroa$31$0$i = 0.0, $v3$sroa$0$0$i = 0.0, $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i = 0.0, $v3$sroa$0$2$i = 0.0, $v3$sroa$31$0$i = 0.0, $v3$sroa$31$0$v3$sroa$60$0$i = 0.0, $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i = 0.0, $v3$sroa$31$2$i = 0.0, $v3$sroa$60$0$i = 0.0, $v3$sroa$60$0$v3$sroa$31$0$i = 0.0, $v3$sroa$60$3$i = 0.0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer11 = sp + 48 | 0;
$vararg_buffer9 = sp + 40 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
L1 : do if (($num | 0) < 4) $$0 = -1; else {
$i$0 = 0;
while (1) {
if (($i$0 | 0) >= ($num | 0)) break;
if (+HEAPF64[$worldCoord + ($i$0 * 24 | 0) + 16 >> 3] != 0.0) {
$$0 = -1;
break L1;
} else $i$0 = $i$0 + 1 | 0;
}
if (+HEAPF64[$matXc2U >> 3] == 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 32 >> 3] != 0.0) $$0 = -1; else {
$11 = $matXc2U + 40 | 0;
if (+HEAPF64[$11 >> 3] == 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 64 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 72 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 80 >> 3] != 1.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 24 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 56 >> 3] != 0.0) $$0 = -1; else if (+HEAPF64[$matXc2U + 88 >> 3] != 0.0) $$0 = -1; else {
$32 = $num << 1;
$33 = _arMatrixAlloc($32, 8) | 0;
if (!$33) {
_arLog(3, 5124, $vararg_buffer);
$$0 = -1;
break;
}
$35 = _arMatrixAlloc($32, 1) | 0;
if (!$35) {
_arMatrixFree($33) | 0;
_arLog(3, 5150, $vararg_buffer1);
$$0 = -1;
break;
}
if ($num) {
$37 = HEAP32[$33 >> 2] | 0;
$38 = HEAP32[$35 >> 2] | 0;
$i$15 = 0;
do {
$39 = $worldCoord + ($i$15 * 24 | 0) | 0;
$41 = $i$15 << 4;
HEAPF64[$37 + ($41 << 3) >> 3] = +HEAPF64[$39 >> 3];
$43 = $worldCoord + ($i$15 * 24 | 0) + 8 | 0;
HEAPF64[$37 + (($41 | 1) << 3) >> 3] = +HEAPF64[$43 >> 3];
HEAPF64[$37 + (($41 | 2) << 3) >> 3] = 1.0;
HEAPF64[$37 + (($41 | 3) << 3) >> 3] = 0.0;
HEAPF64[$37 + (($41 | 4) << 3) >> 3] = 0.0;
HEAPF64[$37 + (($41 | 5) << 3) >> 3] = 0.0;
$56 = $screenCoord + ($i$15 << 4) | 0;
HEAPF64[$37 + (($41 | 6) << 3) >> 3] = -(+HEAPF64[$39 >> 3] * +HEAPF64[$56 >> 3]);
HEAPF64[$37 + (($41 | 7) << 3) >> 3] = -(+HEAPF64[$43 >> 3] * +HEAPF64[$56 >> 3]);
HEAPF64[$37 + (($41 | 8) << 3) >> 3] = 0.0;
HEAPF64[$37 + (($41 | 9) << 3) >> 3] = 0.0;
HEAPF64[$37 + (($41 | 10) << 3) >> 3] = 0.0;
HEAPF64[$37 + (($41 | 11) << 3) >> 3] = +HEAPF64[$39 >> 3];
HEAPF64[$37 + (($41 | 12) << 3) >> 3] = +HEAPF64[$43 >> 3];
HEAPF64[$37 + (($41 | 13) << 3) >> 3] = 1.0;
$83 = $screenCoord + ($i$15 << 4) + 8 | 0;
HEAPF64[$37 + (($41 | 14) << 3) >> 3] = -(+HEAPF64[$39 >> 3] * +HEAPF64[$83 >> 3]);
HEAPF64[$37 + (($41 | 15) << 3) >> 3] = -(+HEAPF64[$43 >> 3] * +HEAPF64[$83 >> 3]);
$96 = $i$15 << 1;
HEAPF64[$38 + ($96 << 3) >> 3] = +HEAPF64[$56 >> 3];
HEAPF64[$38 + (($96 | 1) << 3) >> 3] = +HEAPF64[$83 >> 3];
$i$15 = $i$15 + 1 | 0;
} while (($i$15 | 0) != ($num | 0));
}
$102 = _arMatrixAllocTrans($33) | 0;
if (!$102) {
_arMatrixFree($33) | 0;
_arMatrixFree($35) | 0;
_arLog(3, 5176, $vararg_buffer3);
$$0 = -1;
break;
}
$104 = _arMatrixAllocMul($102, $33) | 0;
if (!$104) {
_arMatrixFree($33) | 0;
_arMatrixFree($35) | 0;
_arMatrixFree($102) | 0;
_arLog(3, 5202, $vararg_buffer5);
$$0 = -1;
break;
}
$106 = _arMatrixAllocMul($102, $35) | 0;
if (!$106) {
_arMatrixFree($33) | 0;
_arMatrixFree($35) | 0;
_arMatrixFree($102) | 0;
_arMatrixFree($104) | 0;
_arLog(3, 5228, $vararg_buffer7);
$$0 = -1;
break;
}
if ((_arMatrixSelfInv($104) | 0) < 0) {
_arMatrixFree($33) | 0;
_arMatrixFree($35) | 0;
_arMatrixFree($102) | 0;
_arMatrixFree($104) | 0;
_arMatrixFree($106) | 0;
_arLog(3, 5254, $vararg_buffer9);
$$0 = -1;
break;
}
$110 = _arMatrixAllocMul($104, $106) | 0;
if (!$110) {
_arMatrixFree($33) | 0;
_arMatrixFree($35) | 0;
_arMatrixFree($102) | 0;
_arMatrixFree($104) | 0;
_arMatrixFree($106) | 0;
_arLog(3, 5280, $vararg_buffer11);
$$0 = -1;
break;
}
$112 = HEAP32[$110 >> 2] | 0;
$114 = +HEAPF64[$112 + 48 >> 3];
$118 = +HEAPF64[$matXc2U + 48 >> 3];
$121 = +HEAPF64[$11 >> 3];
$122 = (+HEAPF64[$112 + 24 >> 3] - $114 * $118) / $121;
$125 = +HEAPF64[$matXc2U + 16 >> 3];
$129 = +HEAPF64[$matXc2U + 8 >> 3];
$132 = +HEAPF64[$matXc2U >> 3];
$133 = (+HEAPF64[$112 >> 3] - $114 * $125 - $122 * $129) / $132;
$135 = +HEAPF64[$112 + 56 >> 3];
$140 = (+HEAPF64[$112 + 32 >> 3] - $118 * $135) / $121;
$147 = (+HEAPF64[$112 + 8 >> 3] - $125 * $135 - $129 * $140) / $132;
$151 = (+HEAPF64[$112 + 40 >> 3] - $118) / $121;
$157 = (+HEAPF64[$112 + 16 >> 3] - $125 - $129 * $151) / $132;
_arMatrixFree($33) | 0;
_arMatrixFree($35) | 0;
_arMatrixFree($102) | 0;
_arMatrixFree($104) | 0;
_arMatrixFree($106) | 0;
_arMatrixFree($110) | 0;
$163 = +Math_sqrt(+($114 * $114 + ($122 * $122 + $133 * $133)));
$169 = +Math_sqrt(+($135 * $135 + ($140 * $140 + $147 * $147)));
$170 = $133 / $163;
$171 = $122 / $163;
$172 = $114 / $163;
$173 = $147 / $169;
$174 = $140 / $169;
$175 = $135 / $169;
$177 = ($163 + $169) * .5;
$178 = $157 / $177;
$180 = 1.0 / $177;
if ($180 < 0.0) {
$$7$i1 = -$171;
$191 = -$175;
$193 = -$174;
$194 = -$172;
$197 = -$173;
$199 = -$170;
$t$sroa$0$0 = -$178;
$t$sroa$6$0 = -$180;
} else {
$$7$i1 = $171;
$191 = $175;
$193 = $174;
$194 = $172;
$197 = $173;
$199 = $170;
$t$sroa$0$0 = $178;
$t$sroa$6$0 = $151 / $177;
}
$195 = $191 * $$7$i1 - $193 * $194;
$200 = $197 * $194 - $191 * $199;
$203 = $193 * $199 - $197 * $$7$i1;
$209 = +Math_sqrt(+($203 * $203 + ($195 * $195 + $200 * $200)));
do if ($209 == 0.0) {
$$7$i2 = $$7$i1;
$377 = $191;
$379 = $193;
$380 = $194;
$383 = $197;
$385 = $199;
} else {
$211 = $195 / $209;
$212 = $200 / $209;
$213 = $203 / $209;
$218 = $191 * $194 + ($193 * $$7$i1 + $197 * $199);
$cb$0$i = $218 < 0.0 ? -$218 : $218;
$226 = (+Math_sqrt(+($cb$0$i + 1.0)) + +Math_sqrt(+(1.0 - $cb$0$i))) * .5;
if ($199 * $212 - $$7$i1 * $211 != 0.0) {
$f$0$i = 0;
$v1$sroa$0$0$i = $199;
$v1$sroa$16$0$i = $$7$i1;
$v1$sroa$31$0$i = $194;
$v3$sroa$0$0$i = $211;
$v3$sroa$31$0$i = $212;
$v3$sroa$60$0$i = $213;
} else {
$234 = $199 * $213 - $194 * $211 != 0.0;
$f$0$i = $234 ? 1 : 2;
$v1$sroa$0$0$i = $234 ? $199 : $194;
$v1$sroa$16$0$i = $234 ? $194 : $$7$i1;
$v1$sroa$31$0$i = $234 ? $$7$i1 : $199;
$v3$sroa$0$0$i = $234 ? $211 : $213;
$v3$sroa$31$0$i = $234 ? $213 : $212;
$v3$sroa$60$0$i = $234 ? $212 : $211;
}
$235 = $v1$sroa$0$0$i * $v3$sroa$31$0$i;
$236 = $v1$sroa$16$0$i * $v3$sroa$0$0$i;
$237 = $235 - $236;
if ($237 == 0.0) {
$$7$i2 = $$7$i1;
$377 = $191;
$379 = $193;
$380 = $194;
$383 = $197;
$385 = $199;
break;
}
$242 = ($v1$sroa$16$0$i * $v3$sroa$60$0$i - $v1$sroa$31$0$i * $v3$sroa$31$0$i) / $237;
$244 = $226 * $v3$sroa$31$0$i / $237;
$248 = $236 - $235;
$249 = ($v1$sroa$0$0$i * $v3$sroa$60$0$i - $v1$sroa$31$0$i * $v3$sroa$0$0$i) / $248;
$251 = $226 * $v3$sroa$0$0$i / $248;
$255 = $242 * $242 + $249 * $249 + 1.0;
$258 = $242 * $244 + $249 * $251;
$265 = $258 * $258 - $255 * ($244 * $244 + $251 * $251 + -1.0);
if ($265 < 0.0) {
$$7$i2 = $$7$i1;
$377 = $191;
$379 = $193;
$380 = $194;
$383 = $197;
$385 = $199;
break;
}
$268 = +Math_sqrt(+$265);
$270 = ($268 - $258) / $255;
$272 = $244 + $242 * $270;
$274 = $251 + $249 * $270;
$276 = (-$258 - $268) / $255;
$278 = $244 + $242 * $276;
$280 = $251 + $249 * $276;
$281 = ($f$0$i | 0) == 1;
$v3$sroa$31$0$v3$sroa$60$0$i = $281 ? $v3$sroa$31$0$i : $v3$sroa$60$0$i;
$v3$sroa$60$0$v3$sroa$31$0$i = $281 ? $v3$sroa$60$0$i : $v3$sroa$31$0$i;
$$7$i = $281 ? $270 : $274;
$$8$i = $281 ? $274 : $270;
$$9$i = $281 ? $276 : $280;
$$10$i = $281 ? $280 : $276;
$283 = ($f$0$i | 0) == 2 & ($281 ^ 1);
$v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i = $283 ? $v3$sroa$0$0$i : $v3$sroa$31$0$v3$sroa$60$0$i;
$v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i = $283 ? $v3$sroa$31$0$v3$sroa$60$0$i : $v3$sroa$0$0$i;
$$8$$i = $283 ? $$8$i : $272;
$$$8$i = $283 ? $272 : $$8$i;
$$10$$i = $283 ? $$10$i : $278;
$$$10$i = $283 ? $278 : $$10$i;
if ($197 * $v3$sroa$60$0$v3$sroa$31$0$i - $193 * $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i != 0.0) {
$f$2$i = 0;
$v2$sroa$0$0$i = $197;
$v2$sroa$16$0$i = $193;
$v2$sroa$31$0$i = $191;
$v3$sroa$0$2$i = $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i;
$v3$sroa$31$2$i = $v3$sroa$60$0$v3$sroa$31$0$i;
$v3$sroa$60$3$i = $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i;
} else {
$291 = $197 * $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i - $191 * $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i != 0.0;
$f$2$i = $291 ? 1 : 2;
$v2$sroa$0$0$i = $291 ? $197 : $191;
$v2$sroa$16$0$i = $291 ? $191 : $193;
$v2$sroa$31$0$i = $291 ? $193 : $197;
$v3$sroa$0$2$i = $291 ? $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i : $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i;
$v3$sroa$31$2$i = $291 ? $v3$sroa$0$0$v3$sroa$31$0$v3$sroa$60$0$i : $v3$sroa$60$0$v3$sroa$31$0$i;
$v3$sroa$60$3$i = $291 ? $v3$sroa$60$0$v3$sroa$31$0$i : $v3$sroa$31$0$v3$sroa$60$0$v3$sroa$0$0$i;
}
$292 = $v2$sroa$0$0$i * $v3$sroa$31$2$i;
$293 = $v2$sroa$16$0$i * $v3$sroa$0$2$i;
$294 = $292 - $293;
if ($294 == 0.0) {
$$7$i2 = $$7$i1;
$377 = $191;
$379 = $193;
$380 = $194;
$383 = $197;
$385 = $199;
break;
}
$299 = ($v2$sroa$16$0$i * $v3$sroa$60$3$i - $v2$sroa$31$0$i * $v3$sroa$31$2$i) / $294;
$301 = $226 * $v3$sroa$31$2$i / $294;
$305 = $293 - $292;
$306 = ($v2$sroa$0$0$i * $v3$sroa$60$3$i - $v2$sroa$31$0$i * $v3$sroa$0$2$i) / $305;
$308 = $226 * $v3$sroa$0$2$i / $305;
$312 = $299 * $299 + $306 * $306 + 1.0;
$315 = $299 * $301 + $306 * $308;
$322 = $315 * $315 - $312 * ($301 * $301 + $308 * $308 + -1.0);
if ($322 < 0.0) {
$$7$i2 = $$7$i1;
$377 = $191;
$379 = $193;
$380 = $194;
$383 = $197;
$385 = $199;
break;
}
$325 = +Math_sqrt(+$322);
$327 = ($325 - $315) / $312;
$329 = $301 + $299 * $327;
$331 = $308 + $306 * $327;
$333 = (-$315 - $325) / $312;
$335 = $301 + $299 * $333;
$337 = $308 + $306 * $333;
$338 = ($f$2$i | 0) == 1;
$$15$i = $338 ? $327 : $331;
$$16$i = $338 ? $331 : $327;
$$17$i = $338 ? $333 : $337;
$$18$i = $338 ? $337 : $333;
$340 = ($f$2$i | 0) == 2 & ($338 ^ 1);
$$16$$i = $340 ? $$16$i : $329;
$$$16$i = $340 ? $329 : $$16$i;
$$18$$i = $340 ? $$18$i : $335;
$$$18$i = $340 ? $335 : $$18$i;
$345 = $$$8$i * $$$16$i + ($$7$i * $$15$i + $$8$$i * $$16$$i);
$e1$0$i = $345 < 0.0 ? -$345 : $345;
$352 = $$$8$i * $$$18$i + ($$7$i * $$17$i + $$8$$i * $$18$$i);
$e2$0$i = $352 < 0.0 ? -$352 : $352;
$359 = $$$10$i * $$$16$i + ($$9$i * $$15$i + $$10$$i * $$16$$i);
$e3$0$i = $359 < 0.0 ? -$359 : $359;
$366 = $$$10$i * $$$18$i + ($$9$i * $$17$i + $$10$$i * $$18$$i);
$e4$0$i = $366 < 0.0 ? -$366 : $366;
if ($e1$0$i < $e2$0$i) if ($e1$0$i < $e3$0$i) {
if ($e1$0$i < $e4$0$i) {
$$7$i2 = $$7$i;
$377 = $$$16$i;
$379 = $$15$i;
$380 = $$$8$i;
$383 = $$16$$i;
$385 = $$8$$i;
break;
}
$$7$i2 = $$9$i;
$377 = $$$18$i;
$379 = $$17$i;
$380 = $$$10$i;
$383 = $$18$$i;
$385 = $$10$$i;
break;
} else {
if ($e3$0$i < $e4$0$i) {
$$7$i2 = $$9$i;
$377 = $$$16$i;
$379 = $$15$i;
$380 = $$$10$i;
$383 = $$16$$i;
$385 = $$10$$i;
break;
}
$$7$i2 = $$9$i;
$377 = $$$18$i;
$379 = $$17$i;
$380 = $$$10$i;
$383 = $$18$$i;
$385 = $$10$$i;
break;
} else if ($e2$0$i < $e3$0$i) {
if ($e2$0$i < $e4$0$i) {
$$7$i2 = $$7$i;
$377 = $$$18$i;
$379 = $$17$i;
$380 = $$$8$i;
$383 = $$18$$i;
$385 = $$8$$i;
break;
}
$$7$i2 = $$9$i;
$377 = $$$18$i;
$379 = $$17$i;
$380 = $$$10$i;
$383 = $$18$$i;
$385 = $$10$$i;
break;
} else {
if ($e3$0$i < $e4$0$i) {
$$7$i2 = $$9$i;
$377 = $$$16$i;
$379 = $$15$i;
$380 = $$$10$i;
$383 = $$16$$i;
$385 = $$10$$i;
break;
}
$$7$i2 = $$9$i;
$377 = $$$18$i;
$379 = $$17$i;
$380 = $$$10$i;
$383 = $$18$$i;
$385 = $$10$$i;
break;
}
} while (0);
$381 = $377 * $$7$i2 - $379 * $380;
$386 = $383 * $380 - $377 * $385;
$389 = $379 * $385 - $383 * $$7$i2;
$395 = +Math_sqrt(+($389 * $389 + ($381 * $381 + $386 * $386)));
HEAPF64[$initMatXw2Xc >> 3] = $385;
HEAPF64[$initMatXw2Xc + 32 >> 3] = $$7$i2;
HEAPF64[$initMatXw2Xc + 64 >> 3] = $380;
HEAPF64[$initMatXw2Xc + 8 >> 3] = $383;
HEAPF64[$initMatXw2Xc + 40 >> 3] = $379;
HEAPF64[$initMatXw2Xc + 72 >> 3] = $377;
HEAPF64[$initMatXw2Xc + 16 >> 3] = $381 / $395;
HEAPF64[$initMatXw2Xc + 48 >> 3] = $386 / $395;
HEAPF64[$initMatXw2Xc + 80 >> 3] = $389 / $395;
HEAPF64[$initMatXw2Xc + 24 >> 3] = $t$sroa$0$0;
HEAPF64[$initMatXw2Xc + 56 >> 3] = $t$sroa$6$0;
HEAPF64[$initMatXw2Xc + 88 >> 3] = $180;
$$0 = 0;
}
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arGetTransMatMultiSquare2($handle, $marker_info, $marker_num, $config, $robustFlag) {
$handle = $handle | 0;
$marker_info = $marker_info | 0;
$marker_num = $marker_num | 0;
$config = $config | 0;
$robustFlag = $robustFlag | 0;
var $$0 = 0.0, $$pre38 = 0, $0 = 0, $1 = 0, $114 = 0, $116 = 0, $119 = 0, $12 = 0, $121 = 0, $123 = 0, $125 = 0, $128 = 0, $13 = 0, $130 = 0, $133 = 0, $140 = 0, $15 = 0, $150 = 0, $160 = 0, $171 = 0, $2 = 0, $20 = 0.0, $209 = 0, $221 = 0, $224 = 0, $225 = 0, $226 = 0.0, $229 = 0.0, $232 = 0.0, $235 = 0.0, $239 = 0.0, $240 = 0, $241 = 0.0, $242 = 0, $258 = 0.0, $259 = 0.0, $276 = 0.0, $277 = 0.0, $294 = 0.0, $295 = 0.0, $3 = 0, $312 = 0.0, $313 = 0.0, $342 = 0, $344 = 0, $346 = 0, $348 = 0, $35 = 0, $38 = 0, $40 = 0, $43 = 0, $47 = 0, $5 = 0, $59 = 0.0, $6 = 0, $7 = 0, $75 = 0, $77 = 0, $79 = 0, $86 = 0, $err$0 = 0.0, $err$1 = 0.0, $err$2 = 0.0, $err$3 = 0.0, $err$4 = 0.0, $err$5 = 0.0, $err$6 = 0.0, $i$081 = 0, $i$165 = 0, $i$256 = 0, $i$942 = 0, $j$077 = 0, $j$1055 = 0, $j$171 = 0, $j$261 = 0, $j$357 = 0, $j$4 = 0, $j$553 = 0, $j$651 = 0, $j$749 = 0, $j$847 = 0, $j$945 = 0, $k$0$lcssa = 0, $k$078 = 0, $k$1 = 0, $k$2$lcssa = 0, $k$273 = 0, $k$3 = 0, $max$0$lcssa = 0, $max$062 = 0, $max$1 = 0, $max$2 = 0, $maxArea$063 = 0, $maxArea$1 = 0, $maxArea$2 = 0, $trans1 = 0, $trans2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vnum$0$lcssa = 0, $vnum$064 = 0, $vnum$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 200 | 0;
$vararg_buffer = sp + 192 | 0;
$trans1 = sp + 96 | 0;
$trans2 = sp;
$0 = $config + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = $config + 112 | 0;
$3 = $config + 120 | 0;
if (($1 | 0) > 0) {
$5 = HEAP32[$config >> 2] | 0;
$6 = ($marker_num | 0) > 0;
$7 = ($marker_num | 0) > 0;
$i$081 = 0;
do {
if (!(HEAP32[$5 + ($i$081 * 320 | 0) + 4 >> 2] | 0)) {
if ($6) {
$15 = HEAP32[$5 + ($i$081 * 320 | 0) >> 2] | 0;
$j$077 = 0;
$k$078 = -1;
while (1) {
if ((HEAP32[$marker_info + ($j$077 << 8) + 8 >> 2] | 0) == ($15 | 0)) {
$20 = +HEAPF64[$marker_info + ($j$077 << 8) + 40 >> 3];
if ($20 < +HEAPF64[$2 >> 3]) $k$1 = $k$078; else if (($k$078 | 0) == -1) $k$1 = $j$077; else if (+HEAPF64[$marker_info + ($k$078 << 8) + 40 >> 3] < $20) $k$1 = $j$077; else $k$1 = $k$078;
} else $k$1 = $k$078;
$j$077 = $j$077 + 1 | 0;
if (($j$077 | 0) >= ($marker_num | 0)) {
$k$0$lcssa = $k$1;
break;
} else $k$078 = $k$1;
}
} else $k$0$lcssa = -1;
HEAP32[$5 + ($i$081 * 320 | 0) + 304 >> 2] = $k$0$lcssa;
if (($k$0$lcssa | 0) > -1) HEAP32[$marker_info + ($k$0$lcssa << 8) + 16 >> 2] = HEAP32[$marker_info + ($k$0$lcssa << 8) + 20 >> 2];
} else {
$12 = $5 + ($i$081 * 320 | 0) + 312 | 0;
$13 = $5 + ($i$081 * 320 | 0) | 0;
if ($7) {
$j$171 = 0;
$k$273 = -1;
while (1) {
$35 = HEAP32[$marker_info + ($j$171 << 8) + 12 >> 2] | 0;
if (!$35) {
$38 = $marker_info + ($j$171 << 8) + 248 | 0;
$40 = HEAP32[$38 >> 2] | 0;
$43 = HEAP32[$38 + 4 >> 2] | 0;
if (($40 | 0) == 0 & ($43 | 0) == 0) label = 19; else {
$47 = $12;
if (($40 | 0) == (HEAP32[$47 >> 2] | 0) ? ($43 | 0) == (HEAP32[$47 + 4 >> 2] | 0) : 0) label = 20; else $k$3 = $k$273;
}
} else label = 19;
if ((label | 0) == 19) {
label = 0;
if (($35 | 0) == (HEAP32[$13 >> 2] | 0)) label = 20; else $k$3 = $k$273;
}
if ((label | 0) == 20) {
label = 0;
$59 = +HEAPF64[$marker_info + ($j$171 << 8) + 48 >> 3];
if ($59 < +HEAPF64[$3 >> 3]) $k$3 = $k$273; else if (($k$273 | 0) == -1) $k$3 = $j$171; else if (+HEAPF64[$marker_info + ($k$273 << 8) + 48 >> 3] < $59) $k$3 = $j$171; else $k$3 = $k$273;
}
$j$171 = $j$171 + 1 | 0;
if (($j$171 | 0) >= ($marker_num | 0)) {
$k$2$lcssa = $k$3;
break;
} else $k$273 = $k$3;
}
} else $k$2$lcssa = -1;
HEAP32[$5 + ($i$081 * 320 | 0) + 304 >> 2] = $k$2$lcssa;
if (($k$2$lcssa | 0) > -1) HEAP32[$marker_info + ($k$2$lcssa << 8) + 16 >> 2] = HEAP32[$marker_info + ($k$2$lcssa << 8) + 24 >> 2];
}
$i$081 = $i$081 + 1 | 0;
} while (($i$081 | 0) < ($1 | 0));
}
if (($1 | 0) > 0) {
$i$165 = 0;
$max$062 = 0;
$maxArea$063 = 0;
$vnum$064 = 0;
while (1) {
$75 = HEAP32[$config >> 2] | 0;
$77 = HEAP32[$75 + ($i$165 * 320 | 0) + 304 >> 2] | 0;
do if (($77 | 0) < 0) {
$max$2 = $max$062;
$maxArea$2 = $maxArea$063;
$vnum$1 = $vnum$064;
} else {
$79 = $marker_info + ($77 << 8) | 0;
if (+_arGetTransMatSquare($handle, $79, +HEAPF64[$75 + ($i$165 * 320 | 0) + 8 >> 3], $trans2) > 4.0) {
HEAP32[(HEAP32[$config >> 2] | 0) + ($i$165 * 320 | 0) + 304 >> 2] = -1;
$86 = $marker_info + ($77 << 8) + 236 | 0;
if (HEAP32[$86 >> 2] | 0) {
$max$2 = $max$062;
$maxArea$2 = $maxArea$063;
$vnum$1 = $vnum$064;
break;
}
HEAP32[$86 >> 2] = 7;
$max$2 = $max$062;
$maxArea$2 = $maxArea$063;
$vnum$1 = $vnum$064;
break;
}
$$pre38 = HEAP32[$79 >> 2] | 0;
if (($vnum$064 | 0) == 0 | ($maxArea$063 | 0) < ($$pre38 | 0)) {
$j$261 = 0;
do {
HEAPF64[$trans1 + ($j$261 << 5) >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) >> 3];
HEAPF64[$trans1 + ($j$261 << 5) + 8 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 8 >> 3];
HEAPF64[$trans1 + ($j$261 << 5) + 16 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 16 >> 3];
HEAPF64[$trans1 + ($j$261 << 5) + 24 >> 3] = +HEAPF64[$trans2 + ($j$261 << 5) + 24 >> 3];
$j$261 = $j$261 + 1 | 0;
} while (($j$261 | 0) != 3);
$max$1 = $i$165;
$maxArea$1 = $$pre38;
} else {
$max$1 = $max$062;
$maxArea$1 = $maxArea$063;
}
$max$2 = $max$1;
$maxArea$2 = $maxArea$1;
$vnum$1 = $vnum$064 + 1 | 0;
} while (0);
$i$165 = $i$165 + 1 | 0;
if (($i$165 | 0) >= (HEAP32[$0 >> 2] | 0)) {
$max$0$lcssa = $max$2;
$vnum$0$lcssa = $vnum$1;
break;
} else {
$max$062 = $max$2;
$maxArea$063 = $maxArea$2;
$vnum$064 = $vnum$1;
}
}
} else {
$max$0$lcssa = 0;
$vnum$0$lcssa = 0;
}
do if (!$vnum$0$lcssa) label = 38; else if (($vnum$0$lcssa | 0) < (HEAP32[$config + 128 >> 2] | 0)) label = 38; else {
_arUtilMatMul($trans1, (HEAP32[$config >> 2] | 0) + ($max$0$lcssa * 320 | 0) + 112 | 0, $trans2) | 0;
$114 = $vnum$0$lcssa << 2;
$116 = _malloc($vnum$0$lcssa << 6) | 0;
if (!$116) {
_arLog(3, 5471, $vararg_buffer);
_exit(1);
}
$119 = _malloc($vnum$0$lcssa * 96 | 0) | 0;
if (!$119) {
_arLog(3, 5471, $vararg_buffer1);
_exit(1);
}
$121 = HEAP32[$0 >> 2] | 0;
if (($121 | 0) > 0) {
$123 = HEAP32[$config >> 2] | 0;
$i$256 = 0;
$j$357 = 0;
while (1) {
$125 = HEAP32[$123 + ($i$256 * 320 | 0) + 304 >> 2] | 0;
if (($125 | 0) < 0) $j$4 = $j$357; else {
$128 = HEAP32[$marker_info + ($125 << 8) + 16 >> 2] | 0;
$130 = (4 - $128 | 0) % 4 | 0;
$133 = $j$357 << 3;
HEAPF64[$116 + ($133 << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($130 << 4) >> 3];
HEAPF64[$116 + (($133 | 1) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($130 << 4) + 8 >> 3];
$140 = (5 - $128 | 0) % 4 | 0;
HEAPF64[$116 + (($133 | 2) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($140 << 4) >> 3];
HEAPF64[$116 + (($133 | 3) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($140 << 4) + 8 >> 3];
$150 = (6 - $128 | 0) % 4 | 0;
HEAPF64[$116 + (($133 | 4) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($150 << 4) >> 3];
HEAPF64[$116 + (($133 | 5) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($150 << 4) + 8 >> 3];
$160 = (7 - $128 | 0) % 4 | 0;
HEAPF64[$116 + (($133 | 6) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($160 << 4) >> 3];
HEAPF64[$116 + (($133 | 7) << 3) >> 3] = +HEAPF64[$marker_info + ($125 << 8) + 168 + ($160 << 4) + 8 >> 3];
$171 = $j$357 * 12 | 0;
HEAPF64[$119 + ($171 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 208 >> 3];
HEAPF64[$119 + (($171 | 1) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 216 >> 3];
HEAPF64[$119 + (($171 | 2) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 224 >> 3];
HEAPF64[$119 + (($171 | 3) << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 232 >> 3];
HEAPF64[$119 + ($171 + 4 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 240 >> 3];
HEAPF64[$119 + ($171 + 5 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 248 >> 3];
HEAPF64[$119 + ($171 + 6 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 256 >> 3];
HEAPF64[$119 + ($171 + 7 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 264 >> 3];
HEAPF64[$119 + ($171 + 8 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 272 >> 3];
HEAPF64[$119 + ($171 + 9 << 3) >> 3] = +HEAPF64[$123 + ($i$256 * 320 | 0) + 280 >> 3];
$209 = HEAP32[$config >> 2] | 0;
HEAPF64[$119 + ($171 + 10 << 3) >> 3] = +HEAPF64[$209 + ($i$256 * 320 | 0) + 288 >> 3];
HEAPF64[$119 + ($171 + 11 << 3) >> 3] = +HEAPF64[$209 + ($i$256 * 320 | 0) + 296 >> 3];
$j$4 = $j$357 + 1 | 0;
}
$i$256 = $i$256 + 1 | 0;
if (($i$256 | 0) >= ($121 | 0)) break; else $j$357 = $j$4;
}
}
$221 = $config + 104 | 0;
$224 = ($robustFlag | 0) != 0;
if (!(HEAP32[$221 >> 2] | 0)) {
$225 = $config + 8 | 0;
$226 = +_arGetTransMat($handle, $trans2, $116, $119, $114, $225);
if ($224 & $226 >= 20.0) {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .8) | 0;
$229 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225);
if (!($229 >= 20.0)) $err$0 = $229; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .6) | 0;
$232 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225);
if (!($232 >= 20.0)) $err$0 = $232; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .4) | 0;
$235 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225);
if (!($235 >= 20.0)) $err$0 = $235; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, 0.0) | 0;
$err$0 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $225);
}
}
}
} else $err$0 = $226;
_free($119);
_free($116);
$err$6 = $err$0;
} else {
$239 = +_arGetTransMat($handle, $trans2, $116, $119, $114, $trans1);
$240 = $config + 8 | 0;
$241 = +_arGetTransMat($handle, $240, $116, $119, $114, $240);
$242 = $239 < $241;
do if ($224) {
if ($242) {
$j$553 = 0;
do {
HEAPF64[$config + 8 + ($j$553 << 5) >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) >> 3];
HEAPF64[$config + 8 + ($j$553 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 8 >> 3];
HEAPF64[$config + 8 + ($j$553 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 16 >> 3];
HEAPF64[$config + 8 + ($j$553 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$553 << 5) + 24 >> 3];
$j$553 = $j$553 + 1 | 0;
} while (($j$553 | 0) != 3);
$err$1 = $239;
} else $err$1 = $241;
if (!($err$1 >= 20.0)) $err$5 = $err$1; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .8) | 0;
$258 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1);
$259 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240);
if ($258 < $259) {
$j$651 = 0;
do {
HEAPF64[$config + 8 + ($j$651 << 5) >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) >> 3];
HEAPF64[$config + 8 + ($j$651 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 8 >> 3];
HEAPF64[$config + 8 + ($j$651 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 16 >> 3];
HEAPF64[$config + 8 + ($j$651 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$651 << 5) + 24 >> 3];
$j$651 = $j$651 + 1 | 0;
} while (($j$651 | 0) != 3);
$err$2 = $258;
} else $err$2 = $259;
if (!($err$2 >= 20.0)) $err$5 = $err$2; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .6) | 0;
$276 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1);
$277 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240);
if ($276 < $277) {
$j$749 = 0;
do {
HEAPF64[$config + 8 + ($j$749 << 5) >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) >> 3];
HEAPF64[$config + 8 + ($j$749 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 8 >> 3];
HEAPF64[$config + 8 + ($j$749 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 16 >> 3];
HEAPF64[$config + 8 + ($j$749 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$749 << 5) + 24 >> 3];
$j$749 = $j$749 + 1 | 0;
} while (($j$749 | 0) != 3);
$err$3 = $276;
} else $err$3 = $277;
if (!($err$3 >= 20.0)) $err$5 = $err$3; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, .4) | 0;
$294 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1);
$295 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240);
if ($294 < $295) {
$j$847 = 0;
do {
HEAPF64[$config + 8 + ($j$847 << 5) >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) >> 3];
HEAPF64[$config + 8 + ($j$847 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 8 >> 3];
HEAPF64[$config + 8 + ($j$847 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 16 >> 3];
HEAPF64[$config + 8 + ($j$847 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$847 << 5) + 24 >> 3];
$j$847 = $j$847 + 1 | 0;
} while (($j$847 | 0) != 3);
$err$4 = $294;
} else $err$4 = $295;
if (!($err$4 >= 20.0)) $err$5 = $err$4; else {
_icpSetInlierProbability(HEAP32[$handle >> 2] | 0, 0.0) | 0;
$312 = +_arGetTransMatRobust($handle, $trans2, $116, $119, $114, $trans1);
$313 = +_arGetTransMatRobust($handle, $240, $116, $119, $114, $240);
if ($312 < $313) $j$945 = 0; else {
$err$5 = $313;
break;
}
do {
HEAPF64[$config + 8 + ($j$945 << 5) >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) >> 3];
HEAPF64[$config + 8 + ($j$945 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 8 >> 3];
HEAPF64[$config + 8 + ($j$945 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 16 >> 3];
HEAPF64[$config + 8 + ($j$945 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$945 << 5) + 24 >> 3];
$j$945 = $j$945 + 1 | 0;
} while (($j$945 | 0) != 3);
$err$5 = $312;
}
}
}
}
} else if ($242) {
$j$1055 = 0;
do {
HEAPF64[$config + 8 + ($j$1055 << 5) >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) >> 3];
HEAPF64[$config + 8 + ($j$1055 << 5) + 8 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 8 >> 3];
HEAPF64[$config + 8 + ($j$1055 << 5) + 16 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 16 >> 3];
HEAPF64[$config + 8 + ($j$1055 << 5) + 24 >> 3] = +HEAPF64[$trans1 + ($j$1055 << 5) + 24 >> 3];
$j$1055 = $j$1055 + 1 | 0;
} while (($j$1055 | 0) != 3);
$err$5 = $239;
} else $err$5 = $241; while (0);
_free($119);
_free($116);
$err$6 = $err$5;
}
if ($err$6 < 20.0) {
HEAP32[$221 >> 2] = 1;
$$0 = $err$6;
break;
}
HEAP32[$221 >> 2] = 0;
$342 = HEAP32[$0 >> 2] | 0;
if (($342 | 0) > 0) {
$344 = HEAP32[$config >> 2] | 0;
$i$942 = 0;
do {
$346 = HEAP32[$344 + ($i$942 * 320 | 0) + 304 >> 2] | 0;
if (($346 | 0) >= 0) {
$348 = $marker_info + ($346 << 8) + 236 | 0;
if (!(HEAP32[$348 >> 2] | 0)) HEAP32[$348 >> 2] = 8;
}
$i$942 = $i$942 + 1 | 0;
} while (($i$942 | 0) < ($342 | 0));
$$0 = $err$6;
} else $$0 = $err$6;
} while (0);
if ((label | 0) == 38) {
HEAP32[$config + 104 >> 2] = 0;
$$0 = -1.0;
}
STACKTOP = sp;
return +$$0;
}
function __ZNSt3__112__next_primeEj($n) {
$n = $n | 0;
var $$ = 0, $$0 = 0, $$k0$0 = 0, $0 = 0, $1 = 0, $103 = 0, $104 = 0, $108 = 0, $109 = 0, $113 = 0, $114 = 0, $118 = 0, $119 = 0, $12 = 0, $123 = 0, $124 = 0, $128 = 0, $129 = 0, $133 = 0, $134 = 0, $138 = 0, $139 = 0, $143 = 0, $144 = 0, $148 = 0, $149 = 0, $153 = 0, $154 = 0, $158 = 0, $159 = 0, $163 = 0, $164 = 0, $168 = 0, $169 = 0, $173 = 0, $174 = 0, $178 = 0, $179 = 0, $18 = 0, $183 = 0, $184 = 0, $188 = 0, $189 = 0, $19 = 0, $193 = 0, $194 = 0, $198 = 0, $199 = 0, $2 = 0, $203 = 0, $204 = 0, $208 = 0, $209 = 0, $213 = 0, $214 = 0, $218 = 0, $219 = 0, $223 = 0, $224 = 0, $228 = 0, $229 = 0, $233 = 0, $234 = 0, $238 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $248 = 0, $249 = 0, $253 = 0, $254 = 0, $258 = 0, $259 = 0, $264 = 0, $265 = 0, $28 = 0, $29 = 0, $33 = 0, $34 = 0, $38 = 0, $39 = 0, $4 = 0, $43 = 0, $44 = 0, $48 = 0, $49 = 0, $53 = 0, $54 = 0, $58 = 0, $59 = 0, $6 = 0, $63 = 0, $64 = 0, $68 = 0, $69 = 0, $7 = 0, $73 = 0, $74 = 0, $78 = 0, $79 = 0, $83 = 0, $84 = 0, $88 = 0, $89 = 0, $93 = 0, $94 = 0, $98 = 0, $99 = 0, $i$0 = 0, $in$0 = 0, $j$0 = 0, $k0$0 = 0, $storemerge = 0, $storemerge$lcssa = 0, $storemerge$lcssa15 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 8 | 0;
$1 = sp + 4 | 0;
$2 = sp;
HEAP32[$1 >> 2] = $n;
do if ($n >>> 0 < 212) {
$4 = __ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_(3520, 3712, $1, $0) | 0;
$$0 = HEAP32[$4 >> 2] | 0;
} else {
$6 = ($n >>> 0) / 210 | 0;
$7 = $6 * 210 | 0;
HEAP32[$2 >> 2] = $n - $7;
$12 = (__ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_(3712, 3904, $2, $0) | 0) - 3712 >> 2;
$in$0 = $12;
$k0$0 = $6;
$storemerge = (HEAP32[3712 + ($12 << 2) >> 2] | 0) + $7 | 0;
L4 : while (1) {
$j$0 = 5;
while (1) {
if ($j$0 >>> 0 >= 47) {
$i$0 = 211;
label = 8;
break;
}
$18 = HEAP32[3520 + ($j$0 << 2) >> 2] | 0;
$19 = ($storemerge >>> 0) / ($18 >>> 0) | 0;
if ($19 >>> 0 < $18 >>> 0) {
$storemerge$lcssa15 = $storemerge;
label = 106;
break L4;
}
if (($storemerge | 0) == (Math_imul($19, $18) | 0)) break; else $j$0 = $j$0 + 1 | 0;
}
L10 : do if ((label | 0) == 8) while (1) {
label = 0;
$24 = ($storemerge >>> 0) / ($i$0 >>> 0) | 0;
if ($24 >>> 0 < $i$0 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($24, $i$0) | 0)) break L10;
$28 = $i$0 + 10 | 0;
$29 = ($storemerge >>> 0) / ($28 >>> 0) | 0;
if ($29 >>> 0 < $28 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($29, $28) | 0)) break L10;
$33 = $i$0 + 12 | 0;
$34 = ($storemerge >>> 0) / ($33 >>> 0) | 0;
if ($34 >>> 0 < $33 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($34, $33) | 0)) break L10;
$38 = $i$0 + 16 | 0;
$39 = ($storemerge >>> 0) / ($38 >>> 0) | 0;
if ($39 >>> 0 < $38 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($39, $38) | 0)) break L10;
$43 = $i$0 + 18 | 0;
$44 = ($storemerge >>> 0) / ($43 >>> 0) | 0;
if ($44 >>> 0 < $43 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($44, $43) | 0)) break L10;
$48 = $i$0 + 22 | 0;
$49 = ($storemerge >>> 0) / ($48 >>> 0) | 0;
if ($49 >>> 0 < $48 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($49, $48) | 0)) break L10;
$53 = $i$0 + 28 | 0;
$54 = ($storemerge >>> 0) / ($53 >>> 0) | 0;
if ($54 >>> 0 < $53 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($54, $53) | 0)) break L10;
$58 = $i$0 + 30 | 0;
$59 = ($storemerge >>> 0) / ($58 >>> 0) | 0;
if ($59 >>> 0 < $58 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($59, $58) | 0)) break L10;
$63 = $i$0 + 36 | 0;
$64 = ($storemerge >>> 0) / ($63 >>> 0) | 0;
if ($64 >>> 0 < $63 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($64, $63) | 0)) break L10;
$68 = $i$0 + 40 | 0;
$69 = ($storemerge >>> 0) / ($68 >>> 0) | 0;
if ($69 >>> 0 < $68 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($69, $68) | 0)) break L10;
$73 = $i$0 + 42 | 0;
$74 = ($storemerge >>> 0) / ($73 >>> 0) | 0;
if ($74 >>> 0 < $73 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($74, $73) | 0)) break L10;
$78 = $i$0 + 46 | 0;
$79 = ($storemerge >>> 0) / ($78 >>> 0) | 0;
if ($79 >>> 0 < $78 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($79, $78) | 0)) break L10;
$83 = $i$0 + 52 | 0;
$84 = ($storemerge >>> 0) / ($83 >>> 0) | 0;
if ($84 >>> 0 < $83 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($84, $83) | 0)) break L10;
$88 = $i$0 + 58 | 0;
$89 = ($storemerge >>> 0) / ($88 >>> 0) | 0;
if ($89 >>> 0 < $88 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($89, $88) | 0)) break L10;
$93 = $i$0 + 60 | 0;
$94 = ($storemerge >>> 0) / ($93 >>> 0) | 0;
if ($94 >>> 0 < $93 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($94, $93) | 0)) break L10;
$98 = $i$0 + 66 | 0;
$99 = ($storemerge >>> 0) / ($98 >>> 0) | 0;
if ($99 >>> 0 < $98 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($99, $98) | 0)) break L10;
$103 = $i$0 + 70 | 0;
$104 = ($storemerge >>> 0) / ($103 >>> 0) | 0;
if ($104 >>> 0 < $103 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($104, $103) | 0)) break L10;
$108 = $i$0 + 72 | 0;
$109 = ($storemerge >>> 0) / ($108 >>> 0) | 0;
if ($109 >>> 0 < $108 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($109, $108) | 0)) break L10;
$113 = $i$0 + 78 | 0;
$114 = ($storemerge >>> 0) / ($113 >>> 0) | 0;
if ($114 >>> 0 < $113 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($114, $113) | 0)) break L10;
$118 = $i$0 + 82 | 0;
$119 = ($storemerge >>> 0) / ($118 >>> 0) | 0;
if ($119 >>> 0 < $118 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($119, $118) | 0)) break L10;
$123 = $i$0 + 88 | 0;
$124 = ($storemerge >>> 0) / ($123 >>> 0) | 0;
if ($124 >>> 0 < $123 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($124, $123) | 0)) break L10;
$128 = $i$0 + 96 | 0;
$129 = ($storemerge >>> 0) / ($128 >>> 0) | 0;
if ($129 >>> 0 < $128 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($129, $128) | 0)) break L10;
$133 = $i$0 + 100 | 0;
$134 = ($storemerge >>> 0) / ($133 >>> 0) | 0;
if ($134 >>> 0 < $133 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($134, $133) | 0)) break L10;
$138 = $i$0 + 102 | 0;
$139 = ($storemerge >>> 0) / ($138 >>> 0) | 0;
if ($139 >>> 0 < $138 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($139, $138) | 0)) break L10;
$143 = $i$0 + 106 | 0;
$144 = ($storemerge >>> 0) / ($143 >>> 0) | 0;
if ($144 >>> 0 < $143 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($144, $143) | 0)) break L10;
$148 = $i$0 + 108 | 0;
$149 = ($storemerge >>> 0) / ($148 >>> 0) | 0;
if ($149 >>> 0 < $148 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($149, $148) | 0)) break L10;
$153 = $i$0 + 112 | 0;
$154 = ($storemerge >>> 0) / ($153 >>> 0) | 0;
if ($154 >>> 0 < $153 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($154, $153) | 0)) break L10;
$158 = $i$0 + 120 | 0;
$159 = ($storemerge >>> 0) / ($158 >>> 0) | 0;
if ($159 >>> 0 < $158 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($159, $158) | 0)) break L10;
$163 = $i$0 + 126 | 0;
$164 = ($storemerge >>> 0) / ($163 >>> 0) | 0;
if ($164 >>> 0 < $163 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($164, $163) | 0)) break L10;
$168 = $i$0 + 130 | 0;
$169 = ($storemerge >>> 0) / ($168 >>> 0) | 0;
if ($169 >>> 0 < $168 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($169, $168) | 0)) break L10;
$173 = $i$0 + 136 | 0;
$174 = ($storemerge >>> 0) / ($173 >>> 0) | 0;
if ($174 >>> 0 < $173 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($174, $173) | 0)) break L10;
$178 = $i$0 + 138 | 0;
$179 = ($storemerge >>> 0) / ($178 >>> 0) | 0;
if ($179 >>> 0 < $178 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($179, $178) | 0)) break L10;
$183 = $i$0 + 142 | 0;
$184 = ($storemerge >>> 0) / ($183 >>> 0) | 0;
if ($184 >>> 0 < $183 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($184, $183) | 0)) break L10;
$188 = $i$0 + 148 | 0;
$189 = ($storemerge >>> 0) / ($188 >>> 0) | 0;
if ($189 >>> 0 < $188 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($189, $188) | 0)) break L10;
$193 = $i$0 + 150 | 0;
$194 = ($storemerge >>> 0) / ($193 >>> 0) | 0;
if ($194 >>> 0 < $193 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($194, $193) | 0)) break L10;
$198 = $i$0 + 156 | 0;
$199 = ($storemerge >>> 0) / ($198 >>> 0) | 0;
if ($199 >>> 0 < $198 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($199, $198) | 0)) break L10;
$203 = $i$0 + 162 | 0;
$204 = ($storemerge >>> 0) / ($203 >>> 0) | 0;
if ($204 >>> 0 < $203 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($204, $203) | 0)) break L10;
$208 = $i$0 + 166 | 0;
$209 = ($storemerge >>> 0) / ($208 >>> 0) | 0;
if ($209 >>> 0 < $208 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($209, $208) | 0)) break L10;
$213 = $i$0 + 168 | 0;
$214 = ($storemerge >>> 0) / ($213 >>> 0) | 0;
if ($214 >>> 0 < $213 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($214, $213) | 0)) break L10;
$218 = $i$0 + 172 | 0;
$219 = ($storemerge >>> 0) / ($218 >>> 0) | 0;
if ($219 >>> 0 < $218 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($219, $218) | 0)) break L10;
$223 = $i$0 + 178 | 0;
$224 = ($storemerge >>> 0) / ($223 >>> 0) | 0;
if ($224 >>> 0 < $223 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($224, $223) | 0)) break L10;
$228 = $i$0 + 180 | 0;
$229 = ($storemerge >>> 0) / ($228 >>> 0) | 0;
if ($229 >>> 0 < $228 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($229, $228) | 0)) break L10;
$233 = $i$0 + 186 | 0;
$234 = ($storemerge >>> 0) / ($233 >>> 0) | 0;
if ($234 >>> 0 < $233 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($234, $233) | 0)) break L10;
$238 = $i$0 + 190 | 0;
$239 = ($storemerge >>> 0) / ($238 >>> 0) | 0;
if ($239 >>> 0 < $238 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($239, $238) | 0)) break L10;
$243 = $i$0 + 192 | 0;
$244 = ($storemerge >>> 0) / ($243 >>> 0) | 0;
if ($244 >>> 0 < $243 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($244, $243) | 0)) break L10;
$248 = $i$0 + 196 | 0;
$249 = ($storemerge >>> 0) / ($248 >>> 0) | 0;
if ($249 >>> 0 < $248 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($249, $248) | 0)) break L10;
$253 = $i$0 + 198 | 0;
$254 = ($storemerge >>> 0) / ($253 >>> 0) | 0;
if ($254 >>> 0 < $253 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($254, $253) | 0)) break L10;
$258 = $i$0 + 208 | 0;
$259 = ($storemerge >>> 0) / ($258 >>> 0) | 0;
if ($259 >>> 0 < $258 >>> 0) {
$storemerge$lcssa = $storemerge;
label = 105;
break L4;
}
if (($storemerge | 0) == (Math_imul($259, $258) | 0)) break; else {
$i$0 = $i$0 + 210 | 0;
label = 8;
}
} while (0);
$264 = $in$0 + 1 | 0;
$265 = ($264 | 0) == 48;
$$ = $265 ? 0 : $264;
$$k0$0 = ($265 & 1) + $k0$0 | 0;
$in$0 = $$;
$k0$0 = $$k0$0;
$storemerge = (HEAP32[3712 + ($$ << 2) >> 2] | 0) + ($$k0$0 * 210 | 0) | 0;
}
if ((label | 0) == 105) {
HEAP32[$1 >> 2] = $storemerge$lcssa;
$$0 = $storemerge$lcssa;
break;
} else if ((label | 0) == 106) {
HEAP32[$1 >> 2] = $storemerge$lcssa15;
$$0 = $storemerge$lcssa15;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$image_thresh = $image_thresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $227 = 0, $229 = 0, $235 = 0, $239 = 0, $240 = 0, $247 = 0, $26 = 0, $261 = 0, $262 = 0, $265 = 0, $272 = 0, $273 = 0, $281 = 0, $284 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $324 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$080 = 0, $dpnt$1$lcssa = 0, $dpnt$163 = 0, $i$096 = 0, $i$190 = 0, $i$270 = 0, $i$345 = 0, $i$443 = 0, $i$541 = 0, $i$640 = 0, $j$083 = 0, $j$1$lcssa = 0, $j$146 = 0, $j$2 = 0, $k$059 = 0, $k$156 = 0, $k$252 = 0, $k$349 = 0, $pnt$086 = 0, $pnt$1$lcssa = 0, $pnt$173 = 0, $pnt1$097 = 0, $pnt1$191 = 0, $pnt2$095 = 0, $pnt2$189 = 0, $pnt2$281 = 0, $pnt2$3$lcssa = 0, $pnt2$364 = 0, $pnt_thresh$085 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$172 = 0, $vararg_buffer = 0, $wk$060 = 0, $wk$157 = 0, $wk$253 = 0, $wk$350 = 0, $wk$447 = 0, $wk_max$0$lcssa = 0, $wk_max$082 = 0, $wk_max$1$lcssa = 0, $wk_max$165 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$096 = 0;
$pnt1$097 = $0;
$pnt2$095 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$095 >> 1] = 0;
HEAP16[$pnt1$097 >> 1] = 0;
$i$096 = $i$096 + 1 | 0;
if (($i$096 | 0) >= ($xsize | 0)) break; else {
$pnt1$097 = $pnt1$097 + 2 | 0;
$pnt2$095 = $pnt2$095 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$190 = 0;
$pnt1$191 = $0;
$pnt2$189 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$189 >> 1] = 0;
HEAP16[$pnt1$191 >> 1] = 0;
$i$190 = $i$190 + 1 | 0;
if (($i$190 | 0) >= ($ysize | 0)) break; else {
$pnt1$191 = $pnt1$191 + ($xsize << 1) | 0;
$pnt2$189 = $pnt2$189 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$26 = ($9 | 0) > 1;
$dpnt$080 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$083 = 1;
$pnt$086 = $image + $17 | 0;
$pnt2$281 = $0 + ($17 << 1) | 0;
$pnt_thresh$085 = $image_thresh + $17 | 0;
$wk_max$082 = 0;
L13 : while (1) {
if ($26) {
$dpnt$163 = $dpnt$080;
$i$270 = 1;
$pnt$173 = $pnt$086;
$pnt2$364 = $pnt2$281;
$pnt_thresh$172 = $pnt_thresh$085;
$wk_max$165 = $wk_max$082;
while (1) {
do if ((HEAPU8[$pnt$173 >> 0] | 0) > (HEAPU8[$pnt_thresh$172 >> 0] | 0)) {
HEAP8[$dpnt$163 >> 0] = -1;
$31 = HEAP16[$pnt2$364 + ($18 << 1) >> 1] | 0;
if ($31 << 16 >> 16 > 0) {
HEAP16[$pnt2$364 >> 1] = $31;
$34 = ($31 << 16 >> 16) * 7 | 0;
$36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1;
$40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$270;
$44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$083;
HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$50 = HEAP16[$pnt2$364 + ($$sum << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$54 = HEAP16[$pnt2$364 + ($$sum1 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$56 = $54 << 16 >> 16 > 0;
if ($50 << 16 >> 16 <= 0) {
if ($56) {
HEAP16[$pnt2$364 >> 1] = $54;
$156 = $55 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$270;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$083;
$170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) < ($i$270 | 0)) HEAP32[$170 >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$176 = HEAP16[$pnt2$364 + -2 >> 1] | 0;
if ($176 << 16 >> 16 > 0) {
HEAP16[$pnt2$364 >> 1] = $176;
$179 = ($176 << 16 >> 16) * 7 | 0;
$181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1;
$185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$270;
$189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$083;
$193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0;
if ((HEAP32[$193 >> 2] | 0) >= ($i$270 | 0)) {
$wk_max$2 = $wk_max$165;
break;
}
HEAP32[$193 >> 2] = $i$270;
$wk_max$2 = $wk_max$165;
break;
} else {
$196 = $wk_max$165 + 1 | 0;
if (($wk_max$165 | 0) > 32767) break L13;
HEAP16[$pnt2$364 >> 1] = $196;
HEAP32[$labelInfo + 1179664 + ($wk_max$165 << 2) >> 2] = $196 << 16 >> 16;
$201 = $wk_max$165 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$083;
HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$083;
HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$083;
$wk_max$2 = $196;
break;
}
}
if ($56) {
$59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
if (($59 | 0) > ($62 | 0)) {
HEAP16[$pnt2$364 >> 1] = $62;
if (($wk_max$165 | 0) > 0) {
$k$059 = 0;
$wk$060 = $16;
while (1) {
if ((HEAP32[$wk$060 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$060 >> 2] = $62;
$k$059 = $k$059 + 1 | 0;
if (($k$059 | 0) >= ($wk_max$165 | 0)) {
$79 = $62;
break;
} else $wk$060 = $wk$060 + 4 | 0;
}
} else $79 = $62;
} else {
HEAP16[$pnt2$364 >> 1] = $59;
if (($59 | 0) < ($62 | 0) & ($wk_max$165 | 0) > 0) {
$k$156 = 0;
$wk$157 = $16;
while (1) {
if ((HEAP32[$wk$157 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$157 >> 2] = $59;
$k$156 = $k$156 + 1 | 0;
if (($k$156 | 0) >= ($wk_max$165 | 0)) {
$79 = $59;
break;
} else $wk$157 = $wk$157 + 4 | 0;
}
} else $79 = $59;
}
$81 = ($79 << 16 >> 16) * 7 | 0;
$83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1;
$87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$270;
$91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$083;
HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$97 = HEAP16[$pnt2$364 + -2 >> 1] | 0;
if ($97 << 16 >> 16 <= 0) {
HEAP16[$pnt2$364 >> 1] = $50;
$137 = $51 * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$270;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$083;
$151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0;
if ((HEAP32[$151 >> 2] | 0) > ($i$270 | 0)) HEAP32[$151 >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($102 | 0) > ($105 | 0)) {
HEAP16[$pnt2$364 >> 1] = $105;
if (($wk_max$165 | 0) > 0) {
$k$252 = 0;
$wk$253 = $16;
while (1) {
if ((HEAP32[$wk$253 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$253 >> 2] = $105;
$k$252 = $k$252 + 1 | 0;
if (($k$252 | 0) >= ($wk_max$165 | 0)) {
$122 = $105;
break;
} else $wk$253 = $wk$253 + 4 | 0;
}
} else $122 = $105;
} else {
HEAP16[$pnt2$364 >> 1] = $102;
if (($102 | 0) < ($105 | 0) & ($wk_max$165 | 0) > 0) {
$k$349 = 0;
$wk$350 = $16;
while (1) {
if ((HEAP32[$wk$350 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$350 >> 2] = $102;
$k$349 = $k$349 + 1 | 0;
if (($k$349 | 0) >= ($wk_max$165 | 0)) {
$122 = $102;
break;
} else $wk$350 = $wk$350 + 4 | 0;
}
} else $122 = $102;
}
$124 = ($122 << 16 >> 16) * 7 | 0;
$126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1;
$130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$270;
$134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$083;
$wk_max$2 = $wk_max$165;
} else {
HEAP16[$pnt2$364 >> 1] = 0;
HEAP8[$dpnt$163 >> 0] = 0;
$wk_max$2 = $wk_max$165;
} while (0);
$i$270 = $i$270 + 1 | 0;
$216 = $pnt$173 + 1 | 0;
$217 = $pnt_thresh$172 + 1 | 0;
$218 = $pnt2$364 + 2 | 0;
$219 = $dpnt$163 + 1 | 0;
if (($i$270 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $219;
$pnt$1$lcssa = $216;
$pnt2$3$lcssa = $218;
$pnt_thresh$1$lcssa = $217;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$163 = $219;
$pnt$173 = $216;
$pnt2$364 = $218;
$pnt_thresh$172 = $217;
$wk_max$165 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$080;
$pnt$1$lcssa = $pnt$086;
$pnt2$3$lcssa = $pnt2$281;
$pnt_thresh$1$lcssa = $pnt_thresh$085;
$wk_max$1$lcssa = $wk_max$082;
}
$j$083 = $j$083 + 1 | 0;
if (($j$083 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$080 = $dpnt$1$lcssa + 2 | 0;
$pnt$086 = $pnt$1$lcssa + 2 | 0;
$pnt2$281 = $pnt2$3$lcssa + 4 | 0;
$pnt_thresh$085 = $pnt_thresh$1$lcssa + 2 | 0;
$wk_max$082 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$227 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$345 = 1;
$j$146 = 1;
$wk$447 = $16;
while (1) {
$229 = HEAP32[$wk$447 >> 2] | 0;
if (($229 | 0) == ($i$345 | 0)) {
$235 = $j$146;
$j$2 = $j$146 + 1 | 0;
} else {
$235 = HEAP32[$labelInfo + 1179664 + ($229 + -1 << 2) >> 2] | 0;
$j$2 = $j$146;
}
HEAP32[$wk$447 >> 2] = $235;
if (($i$345 | 0) < ($wk_max$0$lcssa | 0)) {
$i$345 = $i$345 + 1 | 0;
$j$146 = $j$2;
$wk$447 = $wk$447 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$239 = $labelInfo + 8 | 0;
$240 = $j$1$lcssa + -1 | 0;
HEAP32[$239 >> 2] = $240;
if (!$240) $$0 = 0; else {
_memset($227 | 0, 0, $240 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $240 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$443 = 0;
do {
$247 = $i$443 << 2;
HEAP32[$labelInfo + 131084 + ($247 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($247 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($247 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($247 | 3) << 2) >> 2] = 0;
$i$443 = $i$443 + 1 | 0;
} while (($i$443 | 0) < (HEAP32[$239 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$541 = 0;
do {
$261 = (HEAP32[$labelInfo + 1179664 + ($i$541 << 2) >> 2] | 0) + -1 | 0;
$262 = $i$541 * 7 | 0;
$265 = $labelInfo + 12 + ($261 << 2) | 0;
HEAP32[$265 >> 2] = (HEAP32[$265 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($262 << 2) >> 2] | 0);
$272 = $261 << 1;
$273 = $labelInfo + 655376 + ($272 << 3) | 0;
HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 1 << 2) >> 2] | 0);
$281 = $labelInfo + 655376 + (($272 | 1) << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 2 << 2) >> 2] | 0);
$284 = $261 << 2;
$285 = $labelInfo + 131084 + ($284 << 2) | 0;
$289 = HEAP32[$labelInfo + 1310736 + ($262 + 3 << 2) >> 2] | 0;
if ((HEAP32[$285 >> 2] | 0) > ($289 | 0)) HEAP32[$285 >> 2] = $289;
$292 = $labelInfo + 131084 + (($284 | 1) << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($262 + 4 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) < ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($284 | 2) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($262 + 5 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) > ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($284 | 3) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($262 + 6 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) < ($310 | 0)) HEAP32[$306 >> 2] = $310;
$i$541 = $i$541 + 1 | 0;
} while (($i$541 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$239 >> 2] | 0) > 0) {
$i$640 = 0;
do {
$314 = $labelInfo + 12 + ($i$640 << 2) | 0;
$317 = $i$640 << 1;
$318 = $labelInfo + 655376 + ($317 << 3) | 0;
HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$314 >> 2] | 0);
$324 = $labelInfo + 655376 + (($317 | 1) << 3) | 0;
HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$314 >> 2] | 0);
$i$640 = $i$640 + 1 | 0;
} while (($i$640 | 0) < (HEAP32[$239 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$image_thresh = $image_thresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $227 = 0, $229 = 0, $235 = 0, $239 = 0, $240 = 0, $247 = 0, $26 = 0, $261 = 0, $262 = 0, $265 = 0, $272 = 0, $273 = 0, $281 = 0, $284 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $318 = 0, $324 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$080 = 0, $dpnt$1$lcssa = 0, $dpnt$163 = 0, $i$096 = 0, $i$190 = 0, $i$270 = 0, $i$345 = 0, $i$443 = 0, $i$541 = 0, $i$640 = 0, $j$083 = 0, $j$1$lcssa = 0, $j$146 = 0, $j$2 = 0, $k$059 = 0, $k$156 = 0, $k$252 = 0, $k$349 = 0, $pnt$086 = 0, $pnt$1$lcssa = 0, $pnt$173 = 0, $pnt1$097 = 0, $pnt1$191 = 0, $pnt2$095 = 0, $pnt2$189 = 0, $pnt2$281 = 0, $pnt2$3$lcssa = 0, $pnt2$364 = 0, $pnt_thresh$085 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$172 = 0, $vararg_buffer = 0, $wk$060 = 0, $wk$157 = 0, $wk$253 = 0, $wk$350 = 0, $wk$447 = 0, $wk_max$0$lcssa = 0, $wk_max$082 = 0, $wk_max$1$lcssa = 0, $wk_max$165 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$096 = 0;
$pnt1$097 = $0;
$pnt2$095 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$095 >> 1] = 0;
HEAP16[$pnt1$097 >> 1] = 0;
$i$096 = $i$096 + 1 | 0;
if (($i$096 | 0) >= ($xsize | 0)) break; else {
$pnt1$097 = $pnt1$097 + 2 | 0;
$pnt2$095 = $pnt2$095 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$190 = 0;
$pnt1$191 = $0;
$pnt2$189 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$189 >> 1] = 0;
HEAP16[$pnt1$191 >> 1] = 0;
$i$190 = $i$190 + 1 | 0;
if (($i$190 | 0) >= ($ysize | 0)) break; else {
$pnt1$191 = $pnt1$191 + ($xsize << 1) | 0;
$pnt2$189 = $pnt2$189 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$26 = ($9 | 0) > 1;
$dpnt$080 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$083 = 1;
$pnt$086 = $image + $17 | 0;
$pnt2$281 = $0 + ($17 << 1) | 0;
$pnt_thresh$085 = $image_thresh + $17 | 0;
$wk_max$082 = 0;
L13 : while (1) {
if ($26) {
$dpnt$163 = $dpnt$080;
$i$270 = 1;
$pnt$173 = $pnt$086;
$pnt2$364 = $pnt2$281;
$pnt_thresh$172 = $pnt_thresh$085;
$wk_max$165 = $wk_max$082;
while (1) {
do if ((HEAPU8[$pnt$173 >> 0] | 0) > (HEAPU8[$pnt_thresh$172 >> 0] | 0)) {
HEAP16[$pnt2$364 >> 1] = 0;
HEAP8[$dpnt$163 >> 0] = 0;
$wk_max$2 = $wk_max$165;
} else {
HEAP8[$dpnt$163 >> 0] = -1;
$31 = HEAP16[$pnt2$364 + ($18 << 1) >> 1] | 0;
if ($31 << 16 >> 16 > 0) {
HEAP16[$pnt2$364 >> 1] = $31;
$34 = ($31 << 16 >> 16) * 7 | 0;
$36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1;
$40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$270;
$44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$083;
HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$50 = HEAP16[$pnt2$364 + ($$sum << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$54 = HEAP16[$pnt2$364 + ($$sum1 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$56 = $54 << 16 >> 16 > 0;
if ($50 << 16 >> 16 <= 0) {
if ($56) {
HEAP16[$pnt2$364 >> 1] = $54;
$156 = $55 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$270;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$083;
$170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) < ($i$270 | 0)) HEAP32[$170 >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$176 = HEAP16[$pnt2$364 + -2 >> 1] | 0;
if ($176 << 16 >> 16 > 0) {
HEAP16[$pnt2$364 >> 1] = $176;
$179 = ($176 << 16 >> 16) * 7 | 0;
$181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1;
$185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$270;
$189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$083;
$193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0;
if ((HEAP32[$193 >> 2] | 0) >= ($i$270 | 0)) {
$wk_max$2 = $wk_max$165;
break;
}
HEAP32[$193 >> 2] = $i$270;
$wk_max$2 = $wk_max$165;
break;
} else {
$196 = $wk_max$165 + 1 | 0;
if (($wk_max$165 | 0) > 32767) break L13;
HEAP16[$pnt2$364 >> 1] = $196;
HEAP32[$labelInfo + 1179664 + ($wk_max$165 << 2) >> 2] = $196 << 16 >> 16;
$201 = $wk_max$165 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$083;
HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$083;
HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$083;
$wk_max$2 = $196;
break;
}
}
if ($56) {
$59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
if (($59 | 0) > ($62 | 0)) {
HEAP16[$pnt2$364 >> 1] = $62;
if (($wk_max$165 | 0) > 0) {
$k$059 = 0;
$wk$060 = $16;
while (1) {
if ((HEAP32[$wk$060 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$060 >> 2] = $62;
$k$059 = $k$059 + 1 | 0;
if (($k$059 | 0) >= ($wk_max$165 | 0)) {
$79 = $62;
break;
} else $wk$060 = $wk$060 + 4 | 0;
}
} else $79 = $62;
} else {
HEAP16[$pnt2$364 >> 1] = $59;
if (($59 | 0) < ($62 | 0) & ($wk_max$165 | 0) > 0) {
$k$156 = 0;
$wk$157 = $16;
while (1) {
if ((HEAP32[$wk$157 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$157 >> 2] = $59;
$k$156 = $k$156 + 1 | 0;
if (($k$156 | 0) >= ($wk_max$165 | 0)) {
$79 = $59;
break;
} else $wk$157 = $wk$157 + 4 | 0;
}
} else $79 = $59;
}
$81 = ($79 << 16 >> 16) * 7 | 0;
$83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1;
$87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$270;
$91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$083;
HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$97 = HEAP16[$pnt2$364 + -2 >> 1] | 0;
if ($97 << 16 >> 16 <= 0) {
HEAP16[$pnt2$364 >> 1] = $50;
$137 = $51 * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$270;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$083;
$151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0;
if ((HEAP32[$151 >> 2] | 0) > ($i$270 | 0)) HEAP32[$151 >> 2] = $i$270;
HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$083;
$wk_max$2 = $wk_max$165;
break;
}
$102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($102 | 0) > ($105 | 0)) {
HEAP16[$pnt2$364 >> 1] = $105;
if (($wk_max$165 | 0) > 0) {
$k$252 = 0;
$wk$253 = $16;
while (1) {
if ((HEAP32[$wk$253 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$253 >> 2] = $105;
$k$252 = $k$252 + 1 | 0;
if (($k$252 | 0) >= ($wk_max$165 | 0)) {
$122 = $105;
break;
} else $wk$253 = $wk$253 + 4 | 0;
}
} else $122 = $105;
} else {
HEAP16[$pnt2$364 >> 1] = $102;
if (($102 | 0) < ($105 | 0) & ($wk_max$165 | 0) > 0) {
$k$349 = 0;
$wk$350 = $16;
while (1) {
if ((HEAP32[$wk$350 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$350 >> 2] = $102;
$k$349 = $k$349 + 1 | 0;
if (($k$349 | 0) >= ($wk_max$165 | 0)) {
$122 = $102;
break;
} else $wk$350 = $wk$350 + 4 | 0;
}
} else $122 = $102;
}
$124 = ($122 << 16 >> 16) * 7 | 0;
$126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1;
$130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$270;
$134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$083;
$wk_max$2 = $wk_max$165;
} while (0);
$i$270 = $i$270 + 1 | 0;
$216 = $pnt$173 + 1 | 0;
$217 = $pnt_thresh$172 + 1 | 0;
$218 = $pnt2$364 + 2 | 0;
$219 = $dpnt$163 + 1 | 0;
if (($i$270 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $219;
$pnt$1$lcssa = $216;
$pnt2$3$lcssa = $218;
$pnt_thresh$1$lcssa = $217;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$163 = $219;
$pnt$173 = $216;
$pnt2$364 = $218;
$pnt_thresh$172 = $217;
$wk_max$165 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$080;
$pnt$1$lcssa = $pnt$086;
$pnt2$3$lcssa = $pnt2$281;
$pnt_thresh$1$lcssa = $pnt_thresh$085;
$wk_max$1$lcssa = $wk_max$082;
}
$j$083 = $j$083 + 1 | 0;
if (($j$083 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$080 = $dpnt$1$lcssa + 2 | 0;
$pnt$086 = $pnt$1$lcssa + 2 | 0;
$pnt2$281 = $pnt2$3$lcssa + 4 | 0;
$pnt_thresh$085 = $pnt_thresh$1$lcssa + 2 | 0;
$wk_max$082 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$227 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$345 = 1;
$j$146 = 1;
$wk$447 = $16;
while (1) {
$229 = HEAP32[$wk$447 >> 2] | 0;
if (($229 | 0) == ($i$345 | 0)) {
$235 = $j$146;
$j$2 = $j$146 + 1 | 0;
} else {
$235 = HEAP32[$labelInfo + 1179664 + ($229 + -1 << 2) >> 2] | 0;
$j$2 = $j$146;
}
HEAP32[$wk$447 >> 2] = $235;
if (($i$345 | 0) < ($wk_max$0$lcssa | 0)) {
$i$345 = $i$345 + 1 | 0;
$j$146 = $j$2;
$wk$447 = $wk$447 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$239 = $labelInfo + 8 | 0;
$240 = $j$1$lcssa + -1 | 0;
HEAP32[$239 >> 2] = $240;
if (!$240) $$0 = 0; else {
_memset($227 | 0, 0, $240 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $240 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$443 = 0;
do {
$247 = $i$443 << 2;
HEAP32[$labelInfo + 131084 + ($247 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($247 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($247 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($247 | 3) << 2) >> 2] = 0;
$i$443 = $i$443 + 1 | 0;
} while (($i$443 | 0) < (HEAP32[$239 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$541 = 0;
do {
$261 = (HEAP32[$labelInfo + 1179664 + ($i$541 << 2) >> 2] | 0) + -1 | 0;
$262 = $i$541 * 7 | 0;
$265 = $labelInfo + 12 + ($261 << 2) | 0;
HEAP32[$265 >> 2] = (HEAP32[$265 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($262 << 2) >> 2] | 0);
$272 = $261 << 1;
$273 = $labelInfo + 655376 + ($272 << 3) | 0;
HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 1 << 2) >> 2] | 0);
$281 = $labelInfo + 655376 + (($272 | 1) << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($262 + 2 << 2) >> 2] | 0);
$284 = $261 << 2;
$285 = $labelInfo + 131084 + ($284 << 2) | 0;
$289 = HEAP32[$labelInfo + 1310736 + ($262 + 3 << 2) >> 2] | 0;
if ((HEAP32[$285 >> 2] | 0) > ($289 | 0)) HEAP32[$285 >> 2] = $289;
$292 = $labelInfo + 131084 + (($284 | 1) << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($262 + 4 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) < ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($284 | 2) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($262 + 5 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) > ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($284 | 3) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($262 + 6 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) < ($310 | 0)) HEAP32[$306 >> 2] = $310;
$i$541 = $i$541 + 1 | 0;
} while (($i$541 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$239 >> 2] | 0) > 0) {
$i$640 = 0;
do {
$314 = $labelInfo + 12 + ($i$640 << 2) | 0;
$317 = $i$640 << 1;
$318 = $labelInfo + 655376 + ($317 << 3) | 0;
HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$314 >> 2] | 0);
$324 = $labelInfo + 655376 + (($317 | 1) << 3) | 0;
HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$314 >> 2] | 0);
$i$640 = $i$640 + 1 | 0;
} while (($i$640 | 0) < (HEAP32[$239 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$22 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
$33 = HEAPU8[$pnt$169 >> 0] | 0;
$39 = HEAPU8[$pnt$169 + 1 >> 0] | 0;
do if ((($33 & 248) + 12 + ($33 << 5 & 224) + ($39 >>> 3 & 24) + ($39 << 2 & 248) | 0) > ($11 | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0;
if ($50 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $50;
$53 = ($50 << 16 >> 16) * 7 | 0;
$55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1;
$59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265;
$63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0;
HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$74 = $73 << 16 >> 16;
$75 = $73 << 16 >> 16 > 0;
if ($69 << 16 >> 16 <= 0) {
if ($75) {
HEAP16[$pnt2$368 >> 1] = $73;
$175 = $74 * 7 | 0;
$177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1;
$181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265;
$185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076;
$189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0;
if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$195 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($195 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $195;
$198 = ($195 << 16 >> 16) * 7 | 0;
$200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1;
$204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265;
$208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0;
HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076;
$212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0;
if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$212 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$215 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $215;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16;
$220 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $215;
break;
}
}
if ($75) {
$78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0;
if (($78 | 0) > ($81 | 0)) {
HEAP16[$pnt2$368 >> 1] = $81;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$98 = $81;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $98 = $81;
} else {
HEAP16[$pnt2$368 >> 1] = $78;
if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$98 = $78;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $98 = $78;
}
$100 = ($98 << 16 >> 16) * 7 | 0;
$102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1;
$106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265;
$110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0;
HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$116 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($116 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $69;
$156 = $70 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076;
$170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($121 | 0) > ($124 | 0)) {
HEAP16[$pnt2$368 >> 1] = $124;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$141 = $124;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $141 = $124;
} else {
HEAP16[$pnt2$368 >> 1] = $121;
if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$141 = $121;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $141 = $121;
}
$143 = ($141 << 16 >> 16) * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$235 = $pnt$169 + 4 | 0;
$236 = $pnt2$368 + 2 | 0;
$237 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $237;
$pnt$1$lcssa = $235;
$pnt2$3$lcssa = $236;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $237;
$pnt$169 = $235;
$pnt2$368 = $236;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$244 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$246 = HEAP32[$wk$444 >> 2] | 0;
if (($246 | 0) == ($i$342 | 0)) {
$252 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $252;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$256 = $labelInfo + 8 | 0;
$257 = $j$1$lcssa + -1 | 0;
HEAP32[$256 >> 2] = $257;
if (!$257) $$0 = 0; else {
_memset($244 | 0, 0, $257 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$264 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$279 = $i$538 * 7 | 0;
$282 = $labelInfo + 12 + ($278 << 2) | 0;
HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0);
$289 = $278 << 1;
$290 = $labelInfo + 655376 + ($289 << 3) | 0;
HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0);
$298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0;
HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0);
$301 = $278 << 2;
$302 = $labelInfo + 131084 + ($301 << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0;
$320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0;
if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320;
$323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0;
$327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0;
if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$256 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$331 = $labelInfo + 12 + ($i$637 << 2) | 0;
$334 = $i$637 << 1;
$335 = $labelInfo + 655376 + ($334 << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0);
$341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0;
HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$22 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
$33 = HEAPU8[$pnt$169 >> 0] | 0;
$39 = HEAPU8[$pnt$169 + 1 >> 0] | 0;
do if ((($33 & 248) + 12 + ($33 << 5 & 224) + ($39 >>> 3 & 24) + ($39 << 2 & 248) | 0) > ($11 | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0;
if ($50 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $50;
$53 = ($50 << 16 >> 16) * 7 | 0;
$55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1;
$59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265;
$63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0;
HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$74 = $73 << 16 >> 16;
$75 = $73 << 16 >> 16 > 0;
if ($69 << 16 >> 16 <= 0) {
if ($75) {
HEAP16[$pnt2$368 >> 1] = $73;
$175 = $74 * 7 | 0;
$177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1;
$181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265;
$185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076;
$189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0;
if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$195 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($195 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $195;
$198 = ($195 << 16 >> 16) * 7 | 0;
$200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1;
$204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265;
$208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0;
HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076;
$212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0;
if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$212 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$215 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $215;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16;
$220 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $215;
break;
}
}
if ($75) {
$78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0;
if (($78 | 0) > ($81 | 0)) {
HEAP16[$pnt2$368 >> 1] = $81;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$98 = $81;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $98 = $81;
} else {
HEAP16[$pnt2$368 >> 1] = $78;
if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$98 = $78;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $98 = $78;
}
$100 = ($98 << 16 >> 16) * 7 | 0;
$102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1;
$106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265;
$110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0;
HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$116 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($116 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $69;
$156 = $70 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076;
$170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($121 | 0) > ($124 | 0)) {
HEAP16[$pnt2$368 >> 1] = $124;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$141 = $124;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $141 = $124;
} else {
HEAP16[$pnt2$368 >> 1] = $121;
if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$141 = $121;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $141 = $121;
}
$143 = ($141 << 16 >> 16) * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$235 = $pnt$169 + 4 | 0;
$236 = $pnt2$368 + 2 | 0;
$237 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $237;
$pnt$1$lcssa = $235;
$pnt2$3$lcssa = $236;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $237;
$pnt$169 = $235;
$pnt2$368 = $236;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$244 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$246 = HEAP32[$wk$444 >> 2] | 0;
if (($246 | 0) == ($i$342 | 0)) {
$252 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $252;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$256 = $labelInfo + 8 | 0;
$257 = $j$1$lcssa + -1 | 0;
HEAP32[$256 >> 2] = $257;
if (!$257) $$0 = 0; else {
_memset($244 | 0, 0, $257 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$264 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$279 = $i$538 * 7 | 0;
$282 = $labelInfo + 12 + ($278 << 2) | 0;
HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0);
$289 = $278 << 1;
$290 = $labelInfo + 655376 + ($289 << 3) | 0;
HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0);
$298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0;
HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0);
$301 = $278 << 2;
$302 = $labelInfo + 131084 + ($301 << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0;
$320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0;
if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320;
$323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0;
$327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0;
if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$256 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$331 = $labelInfo + 12 + ($i$637 << 2) | 0;
$334 = $i$637 << 1;
$335 = $labelInfo + 655376 + ($334 << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0);
$341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0;
HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$22 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
$33 = HEAPU8[$pnt$169 >> 0] | 0;
$39 = HEAPU8[$pnt$169 + 1 >> 0] | 0;
do if ((($33 & 248) + 10 + ($33 << 5 & 224) + ($39 >>> 3 & 28) + ($39 << 3 & 248) | 0) > ($11 | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0;
if ($50 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $50;
$53 = ($50 << 16 >> 16) * 7 | 0;
$55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1;
$59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265;
$63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0;
HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$74 = $73 << 16 >> 16;
$75 = $73 << 16 >> 16 > 0;
if ($69 << 16 >> 16 <= 0) {
if ($75) {
HEAP16[$pnt2$368 >> 1] = $73;
$175 = $74 * 7 | 0;
$177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1;
$181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265;
$185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076;
$189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0;
if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$195 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($195 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $195;
$198 = ($195 << 16 >> 16) * 7 | 0;
$200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1;
$204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265;
$208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0;
HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076;
$212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0;
if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$212 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$215 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $215;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16;
$220 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $215;
break;
}
}
if ($75) {
$78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0;
if (($78 | 0) > ($81 | 0)) {
HEAP16[$pnt2$368 >> 1] = $81;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$98 = $81;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $98 = $81;
} else {
HEAP16[$pnt2$368 >> 1] = $78;
if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$98 = $78;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $98 = $78;
}
$100 = ($98 << 16 >> 16) * 7 | 0;
$102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1;
$106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265;
$110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0;
HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$116 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($116 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $69;
$156 = $70 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076;
$170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($121 | 0) > ($124 | 0)) {
HEAP16[$pnt2$368 >> 1] = $124;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$141 = $124;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $141 = $124;
} else {
HEAP16[$pnt2$368 >> 1] = $121;
if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$141 = $121;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $141 = $121;
}
$143 = ($141 << 16 >> 16) * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$235 = $pnt$169 + 4 | 0;
$236 = $pnt2$368 + 2 | 0;
$237 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $237;
$pnt$1$lcssa = $235;
$pnt2$3$lcssa = $236;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $237;
$pnt$169 = $235;
$pnt2$368 = $236;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$244 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$246 = HEAP32[$wk$444 >> 2] | 0;
if (($246 | 0) == ($i$342 | 0)) {
$252 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $252;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$256 = $labelInfo + 8 | 0;
$257 = $j$1$lcssa + -1 | 0;
HEAP32[$256 >> 2] = $257;
if (!$257) $$0 = 0; else {
_memset($244 | 0, 0, $257 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$264 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$279 = $i$538 * 7 | 0;
$282 = $labelInfo + 12 + ($278 << 2) | 0;
HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0);
$289 = $278 << 1;
$290 = $labelInfo + 655376 + ($289 << 3) | 0;
HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0);
$298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0;
HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0);
$301 = $278 << 2;
$302 = $labelInfo + 131084 + ($301 << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0;
$320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0;
if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320;
$323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0;
$327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0;
if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$256 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$331 = $labelInfo + 12 + ($i$637 << 2) | 0;
$334 = $i$637 << 1;
$335 = $labelInfo + 655376 + ($334 << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0);
$341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0;
HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $106 = 0, $11 = 0, $110 = 0, $116 = 0, $12 = 0, $121 = 0, $124 = 0, $141 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $175 = 0, $177 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $212 = 0, $215 = 0, $22 = 0, $220 = 0, $235 = 0, $236 = 0, $237 = 0, $244 = 0, $246 = 0, $252 = 0, $256 = 0, $257 = 0, $264 = 0, $278 = 0, $279 = 0, $282 = 0, $289 = 0, $290 = 0, $298 = 0, $3 = 0, $301 = 0, $302 = 0, $306 = 0, $309 = 0, $31 = 0, $313 = 0, $316 = 0, $320 = 0, $323 = 0, $327 = 0, $33 = 0, $331 = 0, $334 = 0, $335 = 0, $341 = 0, $39 = 0, $50 = 0, $53 = 0, $55 = 0, $59 = 0, $63 = 0, $69 = 0, $70 = 0, $73 = 0, $74 = 0, $75 = 0, $78 = 0, $81 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$22 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
$33 = HEAPU8[$pnt$169 >> 0] | 0;
$39 = HEAPU8[$pnt$169 + 1 >> 0] | 0;
do if ((($33 & 248) + 10 + ($33 << 5 & 224) + ($39 >>> 3 & 28) + ($39 << 3 & 248) | 0) > ($11 | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$50 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0;
if ($50 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $50;
$53 = ($50 << 16 >> 16) * 7 | 0;
$55 = $labelInfo + 1310736 + ($53 + -7 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + 1;
$59 = $labelInfo + 1310736 + ($53 + -6 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $i$265;
$63 = $labelInfo + 1310736 + ($53 + -5 << 2) | 0;
HEAP32[$63 >> 2] = (HEAP32[$63 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($53 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$69 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$73 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$74 = $73 << 16 >> 16;
$75 = $73 << 16 >> 16 > 0;
if ($69 << 16 >> 16 <= 0) {
if ($75) {
HEAP16[$pnt2$368 >> 1] = $73;
$175 = $74 * 7 | 0;
$177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1;
$181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$265;
$185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$076;
$189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0;
if ((HEAP32[$189 >> 2] | 0) < ($i$265 | 0)) HEAP32[$189 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($175 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$195 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($195 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $195;
$198 = ($195 << 16 >> 16) * 7 | 0;
$200 = $labelInfo + 1310736 + ($198 + -7 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + 1;
$204 = $labelInfo + 1310736 + ($198 + -6 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $i$265;
$208 = $labelInfo + 1310736 + ($198 + -5 << 2) | 0;
HEAP32[$208 >> 2] = (HEAP32[$208 >> 2] | 0) + $j$076;
$212 = $labelInfo + 1310736 + ($198 + -3 << 2) | 0;
if ((HEAP32[$212 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$212 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$215 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $215;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $215 << 16 >> 16;
$220 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($220 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($220 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($220 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($220 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $215;
break;
}
}
if ($75) {
$78 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$81 = HEAP32[$labelInfo + 1179664 + ($74 + -1 << 2) >> 2] | 0;
if (($78 | 0) > ($81 | 0)) {
HEAP16[$pnt2$368 >> 1] = $81;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$057 >> 2] = $81;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$98 = $81;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $98 = $81;
} else {
HEAP16[$pnt2$368 >> 1] = $78;
if (($78 | 0) < ($81 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($81 | 0)) HEAP32[$wk$154 >> 2] = $78;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$98 = $78;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $98 = $78;
}
$100 = ($98 << 16 >> 16) * 7 | 0;
$102 = $labelInfo + 1310736 + ($100 + -7 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + 1;
$106 = $labelInfo + 1310736 + ($100 + -6 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $i$265;
$110 = $labelInfo + 1310736 + ($100 + -5 << 2) | 0;
HEAP32[$110 >> 2] = (HEAP32[$110 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($100 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$116 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($116 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $69;
$156 = $70 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$265;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$076;
$170 = $labelInfo + 1310736 + ($156 + -4 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) > ($i$265 | 0)) HEAP32[$170 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$121 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
$124 = HEAP32[$labelInfo + 1179664 + (($116 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($121 | 0) > ($124 | 0)) {
HEAP16[$pnt2$368 >> 1] = $124;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$250 >> 2] = $124;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$141 = $124;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $141 = $124;
} else {
HEAP16[$pnt2$368 >> 1] = $121;
if (($121 | 0) < ($124 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($124 | 0)) HEAP32[$wk$347 >> 2] = $121;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$141 = $121;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $141 = $121;
}
$143 = ($141 << 16 >> 16) * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$265;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$235 = $pnt$169 + 4 | 0;
$236 = $pnt2$368 + 2 | 0;
$237 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $237;
$pnt$1$lcssa = $235;
$pnt2$3$lcssa = $236;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $237;
$pnt$169 = $235;
$pnt2$368 = $236;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$244 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$246 = HEAP32[$wk$444 >> 2] | 0;
if (($246 | 0) == ($i$342 | 0)) {
$252 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$252 = HEAP32[$labelInfo + 1179664 + ($246 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $252;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$256 = $labelInfo + 8 | 0;
$257 = $j$1$lcssa + -1 | 0;
HEAP32[$256 >> 2] = $257;
if (!$257) $$0 = 0; else {
_memset($244 | 0, 0, $257 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $257 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$264 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($264 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($264 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($264 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($264 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$256 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$278 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$279 = $i$538 * 7 | 0;
$282 = $labelInfo + 12 + ($278 << 2) | 0;
HEAP32[$282 >> 2] = (HEAP32[$282 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($279 << 2) >> 2] | 0);
$289 = $278 << 1;
$290 = $labelInfo + 655376 + ($289 << 3) | 0;
HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 1 << 2) >> 2] | 0);
$298 = $labelInfo + 655376 + (($289 | 1) << 3) | 0;
HEAPF64[$298 >> 3] = +HEAPF64[$298 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($279 + 2 << 2) >> 2] | 0);
$301 = $278 << 2;
$302 = $labelInfo + 131084 + ($301 << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($279 + 3 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($301 | 1) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($279 + 4 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$316 = $labelInfo + 131084 + (($301 | 2) << 2) | 0;
$320 = HEAP32[$labelInfo + 1310736 + ($279 + 5 << 2) >> 2] | 0;
if ((HEAP32[$316 >> 2] | 0) > ($320 | 0)) HEAP32[$316 >> 2] = $320;
$323 = $labelInfo + 131084 + (($301 | 3) << 2) | 0;
$327 = HEAP32[$labelInfo + 1310736 + ($279 + 6 << 2) >> 2] | 0;
if ((HEAP32[$323 >> 2] | 0) < ($327 | 0)) HEAP32[$323 >> 2] = $327;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$256 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$331 = $labelInfo + 12 + ($i$637 << 2) | 0;
$334 = $i$637 << 1;
$335 = $labelInfo + 655376 + ($334 << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$331 >> 2] | 0);
$341 = $labelInfo + 655376 + (($334 | 1) << 3) | 0;
HEAPF64[$341 >> 3] = +HEAPF64[$341 >> 3] / +(HEAP32[$331 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$256 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $106 = 0, $11 = 0, $112 = 0, $117 = 0, $12 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $171 = 0, $173 = 0, $177 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $22 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $33 = 0, $330 = 0, $331 = 0, $337 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$22 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
$33 = HEAPU8[$pnt$169 >> 0] | 0;
do if ((($33 & 240) + 24 + ($33 << 4 & 240) + ((HEAPU8[$pnt$169 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$46 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0;
if ($46 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $46;
$49 = ($46 << 16 >> 16) * 7 | 0;
$51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1;
$55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$265;
$59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$65 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$69 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$71 = $69 << 16 >> 16 > 0;
if ($65 << 16 >> 16 <= 0) {
if ($71) {
HEAP16[$pnt2$368 >> 1] = $69;
$171 = $70 * 7 | 0;
$173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1;
$177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$265;
$181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$076;
$185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0;
if ((HEAP32[$185 >> 2] | 0) < ($i$265 | 0)) HEAP32[$185 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$191 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($191 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $191;
$194 = ($191 << 16 >> 16) * 7 | 0;
$196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1;
$200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$265;
$204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$076;
$208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0;
if ((HEAP32[$208 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$208 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$211 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $211;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $211 << 16 >> 16;
$216 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $211;
break;
}
}
if ($71) {
$74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
if (($74 | 0) > ($77 | 0)) {
HEAP16[$pnt2$368 >> 1] = $77;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$057 >> 2] = $77;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$94 = $77;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $94 = $77;
} else {
HEAP16[$pnt2$368 >> 1] = $74;
if (($74 | 0) < ($77 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$154 >> 2] = $74;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$94 = $74;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $94 = $74;
}
$96 = ($94 << 16 >> 16) * 7 | 0;
$98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1;
$102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$265;
$106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$112 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($112 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $65;
$152 = $66 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$265;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$076;
$166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) > ($i$265 | 0)) HEAP32[$166 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($117 | 0) > ($120 | 0)) {
HEAP16[$pnt2$368 >> 1] = $120;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$250 >> 2] = $120;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$137 = $120;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $137 = $120;
} else {
HEAP16[$pnt2$368 >> 1] = $117;
if (($117 | 0) < ($120 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$347 >> 2] = $117;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$137 = $117;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $137 = $117;
}
$139 = ($137 << 16 >> 16) * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$265;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$231 = $pnt$169 + 4 | 0;
$232 = $pnt2$368 + 2 | 0;
$233 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $233;
$pnt$1$lcssa = $231;
$pnt2$3$lcssa = $232;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $233;
$pnt$169 = $231;
$pnt2$368 = $232;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$240 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$242 = HEAP32[$wk$444 >> 2] | 0;
if (($242 | 0) == ($i$342 | 0)) {
$248 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $248;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$252 = $labelInfo + 8 | 0;
$253 = $j$1$lcssa + -1 | 0;
HEAP32[$252 >> 2] = $253;
if (!$253) $$0 = 0; else {
_memset($240 | 0, 0, $253 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$260 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$252 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$274 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$275 = $i$538 * 7 | 0;
$278 = $labelInfo + 12 + ($274 << 2) | 0;
HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0);
$285 = $274 << 1;
$286 = $labelInfo + 655376 + ($285 << 3) | 0;
HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0);
$294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0;
HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0);
$297 = $274 << 2;
$298 = $labelInfo + 131084 + ($297 << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316;
$319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0;
$323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0;
if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$252 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$327 = $labelInfo + 12 + ($i$637 << 2) | 0;
$330 = $i$637 << 1;
$331 = $labelInfo + 655376 + ($330 << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0);
$337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0;
HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$252 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $106 = 0, $11 = 0, $112 = 0, $117 = 0, $12 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $171 = 0, $173 = 0, $177 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $22 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $294 = 0, $297 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $33 = 0, $330 = 0, $331 = 0, $337 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$22 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
$33 = HEAPU8[$pnt$169 >> 0] | 0;
do if ((($33 & 240) + 24 + ($33 << 4 & 240) + ((HEAPU8[$pnt$169 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$46 = HEAP16[$pnt2$368 + ($22 << 1) >> 1] | 0;
if ($46 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $46;
$49 = ($46 << 16 >> 16) * 7 | 0;
$51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1;
$55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$265;
$59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$65 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$69 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$71 = $69 << 16 >> 16 > 0;
if ($65 << 16 >> 16 <= 0) {
if ($71) {
HEAP16[$pnt2$368 >> 1] = $69;
$171 = $70 * 7 | 0;
$173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1;
$177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$265;
$181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$076;
$185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0;
if ((HEAP32[$185 >> 2] | 0) < ($i$265 | 0)) HEAP32[$185 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$191 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($191 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $191;
$194 = ($191 << 16 >> 16) * 7 | 0;
$196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1;
$200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$265;
$204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$076;
$208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0;
if ((HEAP32[$208 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$208 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$211 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $211;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $211 << 16 >> 16;
$216 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $211;
break;
}
}
if ($71) {
$74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
if (($74 | 0) > ($77 | 0)) {
HEAP16[$pnt2$368 >> 1] = $77;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$057 >> 2] = $77;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$94 = $77;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $94 = $77;
} else {
HEAP16[$pnt2$368 >> 1] = $74;
if (($74 | 0) < ($77 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$154 >> 2] = $74;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$94 = $74;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $94 = $74;
}
$96 = ($94 << 16 >> 16) * 7 | 0;
$98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1;
$102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$265;
$106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$112 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($112 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $65;
$152 = $66 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$265;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$076;
$166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) > ($i$265 | 0)) HEAP32[$166 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($117 | 0) > ($120 | 0)) {
HEAP16[$pnt2$368 >> 1] = $120;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$250 >> 2] = $120;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$137 = $120;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $137 = $120;
} else {
HEAP16[$pnt2$368 >> 1] = $117;
if (($117 | 0) < ($120 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$347 >> 2] = $117;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$137 = $117;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $137 = $117;
}
$139 = ($137 << 16 >> 16) * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$265;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$231 = $pnt$169 + 4 | 0;
$232 = $pnt2$368 + 2 | 0;
$233 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $233;
$pnt$1$lcssa = $231;
$pnt2$3$lcssa = $232;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $233;
$pnt$169 = $231;
$pnt2$368 = $232;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$240 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$242 = HEAP32[$wk$444 >> 2] | 0;
if (($242 | 0) == ($i$342 | 0)) {
$248 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $248;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$252 = $labelInfo + 8 | 0;
$253 = $j$1$lcssa + -1 | 0;
HEAP32[$252 >> 2] = $253;
if (!$253) $$0 = 0; else {
_memset($240 | 0, 0, $253 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$260 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$252 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$274 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$275 = $i$538 * 7 | 0;
$278 = $labelInfo + 12 + ($274 << 2) | 0;
HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0);
$285 = $274 << 1;
$286 = $labelInfo + 655376 + ($285 << 3) | 0;
HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0);
$294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0;
HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0);
$297 = $274 << 2;
$298 = $labelInfo + 131084 + ($297 << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316;
$319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0;
$323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0;
if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$252 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$327 = $labelInfo + 12 + ($i$637 << 2) | 0;
$330 = $i$637 << 1;
$331 = $labelInfo + 655376 + ($330 << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0);
$337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0;
HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$252 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize * 3 | 0) + 12 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize * 6 | 0) + 6) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($44 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $44;
$47 = ($44 << 16 >> 16) * 7 | 0;
$49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1;
$53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265;
$57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0;
HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$68 = $67 << 16 >> 16;
$69 = $67 << 16 >> 16 > 0;
if ($63 << 16 >> 16 <= 0) {
if ($69) {
HEAP16[$pnt2$368 >> 1] = $67;
$169 = $68 * 7 | 0;
$171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1;
$175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265;
$179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0;
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076;
$183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0;
if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$189 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($189 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $189;
$192 = ($189 << 16 >> 16) * 7 | 0;
$194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1;
$198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265;
$202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0;
HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076;
$206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0;
if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$206 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$209 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $209;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16;
$214 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $209;
break;
}
}
if ($69) {
$72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0;
if (($72 | 0) > ($75 | 0)) {
HEAP16[$pnt2$368 >> 1] = $75;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$92 = $75;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $92 = $75;
} else {
HEAP16[$pnt2$368 >> 1] = $72;
if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$92 = $72;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $92 = $72;
}
$94 = ($92 << 16 >> 16) * 7 | 0;
$96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1;
$100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265;
$104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0;
HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$110 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($110 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $63;
$150 = $64 * 7 | 0;
$152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1;
$156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265;
$160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076;
$164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0;
if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($115 | 0) > ($118 | 0)) {
HEAP16[$pnt2$368 >> 1] = $118;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$135 = $118;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $135 = $118;
} else {
HEAP16[$pnt2$368 >> 1] = $115;
if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$135 = $115;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $135 = $115;
}
$137 = ($135 << 16 >> 16) * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$229 = $pnt$169 + 6 | 0;
$230 = $pnt2$368 + 2 | 0;
$231 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $231;
$pnt$1$lcssa = $229;
$pnt2$3$lcssa = $230;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $231;
$pnt$169 = $229;
$pnt2$368 = $230;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$238 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$240 = HEAP32[$wk$444 >> 2] | 0;
if (($240 | 0) == ($i$342 | 0)) {
$246 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $246;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$250 = $labelInfo + 8 | 0;
$251 = $j$1$lcssa + -1 | 0;
HEAP32[$250 >> 2] = $251;
if (!$251) $$0 = 0; else {
_memset($238 | 0, 0, $251 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$258 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$273 = $i$538 * 7 | 0;
$276 = $labelInfo + 12 + ($272 << 2) | 0;
HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0);
$283 = $272 << 1;
$284 = $labelInfo + 655376 + ($283 << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0);
$292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0;
HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0);
$295 = $272 << 2;
$296 = $labelInfo + 131084 + ($295 << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0;
$314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0;
if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314;
$317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0;
$321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0;
if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$250 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$325 = $labelInfo + 12 + ($i$637 << 2) | 0;
$328 = $i$637 << 1;
$329 = $labelInfo + 655376 + ($328 << 3) | 0;
HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0);
$335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize * 3 | 0) + 12 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize * 6 | 0) + 6) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($44 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $44;
$47 = ($44 << 16 >> 16) * 7 | 0;
$49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1;
$53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265;
$57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0;
HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$68 = $67 << 16 >> 16;
$69 = $67 << 16 >> 16 > 0;
if ($63 << 16 >> 16 <= 0) {
if ($69) {
HEAP16[$pnt2$368 >> 1] = $67;
$169 = $68 * 7 | 0;
$171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1;
$175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265;
$179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0;
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076;
$183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0;
if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$189 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($189 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $189;
$192 = ($189 << 16 >> 16) * 7 | 0;
$194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1;
$198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265;
$202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0;
HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076;
$206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0;
if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$206 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$209 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $209;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16;
$214 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $209;
break;
}
}
if ($69) {
$72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0;
if (($72 | 0) > ($75 | 0)) {
HEAP16[$pnt2$368 >> 1] = $75;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$92 = $75;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $92 = $75;
} else {
HEAP16[$pnt2$368 >> 1] = $72;
if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$92 = $72;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $92 = $72;
}
$94 = ($92 << 16 >> 16) * 7 | 0;
$96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1;
$100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265;
$104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0;
HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$110 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($110 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $63;
$150 = $64 * 7 | 0;
$152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1;
$156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265;
$160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076;
$164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0;
if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($115 | 0) > ($118 | 0)) {
HEAP16[$pnt2$368 >> 1] = $118;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$135 = $118;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $135 = $118;
} else {
HEAP16[$pnt2$368 >> 1] = $115;
if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$135 = $115;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $135 = $115;
}
$137 = ($135 << 16 >> 16) * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$229 = $pnt$169 + 6 | 0;
$230 = $pnt2$368 + 2 | 0;
$231 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $231;
$pnt$1$lcssa = $229;
$pnt2$3$lcssa = $230;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $231;
$pnt$169 = $229;
$pnt2$368 = $230;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$238 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$240 = HEAP32[$wk$444 >> 2] | 0;
if (($240 | 0) == ($i$342 | 0)) {
$246 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $246;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$250 = $labelInfo + 8 | 0;
$251 = $j$1$lcssa + -1 | 0;
HEAP32[$250 >> 2] = $251;
if (!$251) $$0 = 0; else {
_memset($238 | 0, 0, $251 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$258 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$273 = $i$538 * 7 | 0;
$276 = $labelInfo + 12 + ($272 << 2) | 0;
HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0);
$283 = $272 << 1;
$284 = $labelInfo + 655376 + ($283 << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0);
$292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0;
HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0);
$295 = $272 << 2;
$296 = $labelInfo + 131084 + ($295 << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0;
$314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0;
if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314;
$317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0;
$321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0;
if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$250 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$325 = $labelInfo + 12 + ($i$637 << 2) | 0;
$328 = $i$637 << 1;
$329 = $labelInfo + 655376 + ($328 << 3) | 0;
HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0);
$335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $105 = 0, $11 = 0, $111 = 0, $116 = 0, $119 = 0, $12 = 0, $136 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $151 = 0, $153 = 0, $157 = 0, $161 = 0, $165 = 0, $170 = 0, $172 = 0, $176 = 0, $180 = 0, $184 = 0, $19 = 0, $190 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $207 = 0, $21 = 0, $210 = 0, $215 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $45 = 0, $48 = 0, $50 = 0, $54 = 0, $58 = 0, $64 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $76 = 0, $93 = 0, $95 = 0, $97 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 3) + 8) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if (((HEAPU8[$pnt$169 + 2 >> 0] | 0) + (HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 + 3 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$45 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($45 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $45;
$48 = ($45 << 16 >> 16) * 7 | 0;
$50 = $labelInfo + 1310736 + ($48 + -7 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1;
$54 = $labelInfo + 1310736 + ($48 + -6 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $i$265;
$58 = $labelInfo + 1310736 + ($48 + -5 << 2) | 0;
HEAP32[$58 >> 2] = (HEAP32[$58 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($48 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$64 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$68 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$69 = $68 << 16 >> 16;
$70 = $68 << 16 >> 16 > 0;
if ($64 << 16 >> 16 <= 0) {
if ($70) {
HEAP16[$pnt2$368 >> 1] = $68;
$170 = $69 * 7 | 0;
$172 = $labelInfo + 1310736 + ($170 + -7 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + 1;
$176 = $labelInfo + 1310736 + ($170 + -6 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $i$265;
$180 = $labelInfo + 1310736 + ($170 + -5 << 2) | 0;
HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + $j$076;
$184 = $labelInfo + 1310736 + ($170 + -3 << 2) | 0;
if ((HEAP32[$184 >> 2] | 0) < ($i$265 | 0)) HEAP32[$184 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($170 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$190 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($190 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $190;
$193 = ($190 << 16 >> 16) * 7 | 0;
$195 = $labelInfo + 1310736 + ($193 + -7 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + 1;
$199 = $labelInfo + 1310736 + ($193 + -6 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $i$265;
$203 = $labelInfo + 1310736 + ($193 + -5 << 2) | 0;
HEAP32[$203 >> 2] = (HEAP32[$203 >> 2] | 0) + $j$076;
$207 = $labelInfo + 1310736 + ($193 + -3 << 2) | 0;
if ((HEAP32[$207 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$207 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$210 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $210;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $210 << 16 >> 16;
$215 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($215 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($215 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($215 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($215 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($215 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($215 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($215 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $210;
break;
}
}
if ($70) {
$73 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
$76 = HEAP32[$labelInfo + 1179664 + ($69 + -1 << 2) >> 2] | 0;
if (($73 | 0) > ($76 | 0)) {
HEAP16[$pnt2$368 >> 1] = $76;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$057 >> 2] = $76;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$93 = $76;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $93 = $76;
} else {
HEAP16[$pnt2$368 >> 1] = $73;
if (($73 | 0) < ($76 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($76 | 0)) HEAP32[$wk$154 >> 2] = $73;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$93 = $73;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $93 = $73;
}
$95 = ($93 << 16 >> 16) * 7 | 0;
$97 = $labelInfo + 1310736 + ($95 + -7 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + 1;
$101 = $labelInfo + 1310736 + ($95 + -6 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $i$265;
$105 = $labelInfo + 1310736 + ($95 + -5 << 2) | 0;
HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($95 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$111 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($111 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $64;
$151 = $65 * 7 | 0;
$153 = $labelInfo + 1310736 + ($151 + -7 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + 1;
$157 = $labelInfo + 1310736 + ($151 + -6 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $i$265;
$161 = $labelInfo + 1310736 + ($151 + -5 << 2) | 0;
HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $j$076;
$165 = $labelInfo + 1310736 + ($151 + -4 << 2) | 0;
if ((HEAP32[$165 >> 2] | 0) > ($i$265 | 0)) HEAP32[$165 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($151 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$116 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
$119 = HEAP32[$labelInfo + 1179664 + (($111 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($116 | 0) > ($119 | 0)) {
HEAP16[$pnt2$368 >> 1] = $119;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$250 >> 2] = $119;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$136 = $119;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $136 = $119;
} else {
HEAP16[$pnt2$368 >> 1] = $116;
if (($116 | 0) < ($119 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($119 | 0)) HEAP32[$wk$347 >> 2] = $116;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$136 = $116;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $136 = $116;
}
$138 = ($136 << 16 >> 16) * 7 | 0;
$140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1;
$144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$265;
$148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$230 = $pnt$169 + 8 | 0;
$231 = $pnt2$368 + 2 | 0;
$232 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $232;
$pnt$1$lcssa = $230;
$pnt2$3$lcssa = $231;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $232;
$pnt$169 = $230;
$pnt2$368 = $231;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$239 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$241 = HEAP32[$wk$444 >> 2] | 0;
if (($241 | 0) == ($i$342 | 0)) {
$247 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $247;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$251 = $labelInfo + 8 | 0;
$252 = $j$1$lcssa + -1 | 0;
HEAP32[$251 >> 2] = $252;
if (!$252) $$0 = 0; else {
_memset($239 | 0, 0, $252 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$259 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$251 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$273 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$274 = $i$538 * 7 | 0;
$277 = $labelInfo + 12 + ($273 << 2) | 0;
HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0);
$284 = $273 << 1;
$285 = $labelInfo + 655376 + ($284 << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0);
$293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0;
HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0);
$296 = $273 << 2;
$297 = $labelInfo + 131084 + ($296 << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0;
$315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0;
if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315;
$318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0;
$322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0;
if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$251 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$326 = $labelInfo + 12 + ($i$637 << 2) | 0;
$329 = $i$637 << 1;
$330 = $labelInfo + 655376 + ($329 << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0);
$336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0;
HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$251 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $105 = 0, $11 = 0, $111 = 0, $116 = 0, $119 = 0, $12 = 0, $136 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $151 = 0, $153 = 0, $157 = 0, $161 = 0, $165 = 0, $170 = 0, $172 = 0, $176 = 0, $180 = 0, $184 = 0, $19 = 0, $190 = 0, $193 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $207 = 0, $21 = 0, $210 = 0, $215 = 0, $230 = 0, $231 = 0, $232 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $45 = 0, $48 = 0, $50 = 0, $54 = 0, $58 = 0, $64 = 0, $65 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $76 = 0, $93 = 0, $95 = 0, $97 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 3) + 8) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if (((HEAPU8[$pnt$169 + 2 >> 0] | 0) + (HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 + 3 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$45 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($45 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $45;
$48 = ($45 << 16 >> 16) * 7 | 0;
$50 = $labelInfo + 1310736 + ($48 + -7 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + 1;
$54 = $labelInfo + 1310736 + ($48 + -6 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $i$265;
$58 = $labelInfo + 1310736 + ($48 + -5 << 2) | 0;
HEAP32[$58 >> 2] = (HEAP32[$58 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($48 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$64 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$68 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$69 = $68 << 16 >> 16;
$70 = $68 << 16 >> 16 > 0;
if ($64 << 16 >> 16 <= 0) {
if ($70) {
HEAP16[$pnt2$368 >> 1] = $68;
$170 = $69 * 7 | 0;
$172 = $labelInfo + 1310736 + ($170 + -7 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + 1;
$176 = $labelInfo + 1310736 + ($170 + -6 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $i$265;
$180 = $labelInfo + 1310736 + ($170 + -5 << 2) | 0;
HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + $j$076;
$184 = $labelInfo + 1310736 + ($170 + -3 << 2) | 0;
if ((HEAP32[$184 >> 2] | 0) < ($i$265 | 0)) HEAP32[$184 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($170 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$190 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($190 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $190;
$193 = ($190 << 16 >> 16) * 7 | 0;
$195 = $labelInfo + 1310736 + ($193 + -7 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + 1;
$199 = $labelInfo + 1310736 + ($193 + -6 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $i$265;
$203 = $labelInfo + 1310736 + ($193 + -5 << 2) | 0;
HEAP32[$203 >> 2] = (HEAP32[$203 >> 2] | 0) + $j$076;
$207 = $labelInfo + 1310736 + ($193 + -3 << 2) | 0;
if ((HEAP32[$207 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$207 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$210 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $210;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $210 << 16 >> 16;
$215 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($215 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($215 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($215 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($215 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($215 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($215 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($215 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $210;
break;
}
}
if ($70) {
$73 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
$76 = HEAP32[$labelInfo + 1179664 + ($69 + -1 << 2) >> 2] | 0;
if (($73 | 0) > ($76 | 0)) {
HEAP16[$pnt2$368 >> 1] = $76;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$057 >> 2] = $76;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$93 = $76;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $93 = $76;
} else {
HEAP16[$pnt2$368 >> 1] = $73;
if (($73 | 0) < ($76 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($76 | 0)) HEAP32[$wk$154 >> 2] = $73;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$93 = $73;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $93 = $73;
}
$95 = ($93 << 16 >> 16) * 7 | 0;
$97 = $labelInfo + 1310736 + ($95 + -7 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + 1;
$101 = $labelInfo + 1310736 + ($95 + -6 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $i$265;
$105 = $labelInfo + 1310736 + ($95 + -5 << 2) | 0;
HEAP32[$105 >> 2] = (HEAP32[$105 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($95 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$111 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($111 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $64;
$151 = $65 * 7 | 0;
$153 = $labelInfo + 1310736 + ($151 + -7 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + 1;
$157 = $labelInfo + 1310736 + ($151 + -6 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $i$265;
$161 = $labelInfo + 1310736 + ($151 + -5 << 2) | 0;
HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $j$076;
$165 = $labelInfo + 1310736 + ($151 + -4 << 2) | 0;
if ((HEAP32[$165 >> 2] | 0) > ($i$265 | 0)) HEAP32[$165 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($151 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$116 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
$119 = HEAP32[$labelInfo + 1179664 + (($111 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($116 | 0) > ($119 | 0)) {
HEAP16[$pnt2$368 >> 1] = $119;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$250 >> 2] = $119;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$136 = $119;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $136 = $119;
} else {
HEAP16[$pnt2$368 >> 1] = $116;
if (($116 | 0) < ($119 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($119 | 0)) HEAP32[$wk$347 >> 2] = $116;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$136 = $116;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $136 = $116;
}
$138 = ($136 << 16 >> 16) * 7 | 0;
$140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1;
$144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$265;
$148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$230 = $pnt$169 + 8 | 0;
$231 = $pnt2$368 + 2 | 0;
$232 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $232;
$pnt$1$lcssa = $230;
$pnt2$3$lcssa = $231;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $232;
$pnt$169 = $230;
$pnt2$368 = $231;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$239 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$241 = HEAP32[$wk$444 >> 2] | 0;
if (($241 | 0) == ($i$342 | 0)) {
$247 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $247;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$251 = $labelInfo + 8 | 0;
$252 = $j$1$lcssa + -1 | 0;
HEAP32[$251 >> 2] = $252;
if (!$252) $$0 = 0; else {
_memset($239 | 0, 0, $252 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$259 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$251 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$273 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$274 = $i$538 * 7 | 0;
$277 = $labelInfo + 12 + ($273 << 2) | 0;
HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0);
$284 = $273 << 1;
$285 = $labelInfo + 655376 + ($284 << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0);
$293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0;
HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0);
$296 = $273 << 2;
$297 = $labelInfo + 131084 + ($296 << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0;
$315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0;
if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315;
$318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0;
$322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0;
if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$251 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$326 = $labelInfo + 12 + ($i$637 << 2) | 0;
$329 = $i$637 << 1;
$330 = $labelInfo + 655376 + ($329 << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0);
$336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0;
HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$251 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 3) + 8) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($44 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $44;
$47 = ($44 << 16 >> 16) * 7 | 0;
$49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1;
$53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265;
$57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0;
HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$68 = $67 << 16 >> 16;
$69 = $67 << 16 >> 16 > 0;
if ($63 << 16 >> 16 <= 0) {
if ($69) {
HEAP16[$pnt2$368 >> 1] = $67;
$169 = $68 * 7 | 0;
$171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1;
$175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265;
$179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0;
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076;
$183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0;
if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$189 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($189 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $189;
$192 = ($189 << 16 >> 16) * 7 | 0;
$194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1;
$198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265;
$202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0;
HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076;
$206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0;
if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$206 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$209 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $209;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16;
$214 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $209;
break;
}
}
if ($69) {
$72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0;
if (($72 | 0) > ($75 | 0)) {
HEAP16[$pnt2$368 >> 1] = $75;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$92 = $75;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $92 = $75;
} else {
HEAP16[$pnt2$368 >> 1] = $72;
if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$92 = $72;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $92 = $72;
}
$94 = ($92 << 16 >> 16) * 7 | 0;
$96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1;
$100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265;
$104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0;
HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$110 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($110 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $63;
$150 = $64 * 7 | 0;
$152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1;
$156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265;
$160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076;
$164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0;
if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($115 | 0) > ($118 | 0)) {
HEAP16[$pnt2$368 >> 1] = $118;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$135 = $118;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $135 = $118;
} else {
HEAP16[$pnt2$368 >> 1] = $115;
if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$135 = $115;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $135 = $115;
}
$137 = ($135 << 16 >> 16) * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$229 = $pnt$169 + 8 | 0;
$230 = $pnt2$368 + 2 | 0;
$231 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $231;
$pnt$1$lcssa = $229;
$pnt2$3$lcssa = $230;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $231;
$pnt$169 = $229;
$pnt2$368 = $230;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$238 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$240 = HEAP32[$wk$444 >> 2] | 0;
if (($240 | 0) == ($i$342 | 0)) {
$246 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $246;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$250 = $labelInfo + 8 | 0;
$251 = $j$1$lcssa + -1 | 0;
HEAP32[$250 >> 2] = $251;
if (!$251) $$0 = 0; else {
_memset($238 | 0, 0, $251 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$258 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$273 = $i$538 * 7 | 0;
$276 = $labelInfo + 12 + ($272 << 2) | 0;
HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0);
$283 = $272 << 1;
$284 = $labelInfo + 655376 + ($283 << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0);
$292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0;
HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0);
$295 = $272 << 2;
$296 = $labelInfo + 131084 + ($295 << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0;
$314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0;
if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314;
$317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0;
$321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0;
if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$250 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$325 = $labelInfo + 12 + ($i$637 << 2) | 0;
$328 = $i$637 << 1;
$329 = $labelInfo + 655376 + ($328 << 3) | 0;
HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0);
$335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $104 = 0, $11 = 0, $110 = 0, $115 = 0, $118 = 0, $12 = 0, $135 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $150 = 0, $152 = 0, $156 = 0, $160 = 0, $164 = 0, $169 = 0, $171 = 0, $175 = 0, $179 = 0, $183 = 0, $189 = 0, $19 = 0, $192 = 0, $194 = 0, $198 = 0, $2 = 0, $20 = 0, $202 = 0, $206 = 0, $209 = 0, $21 = 0, $214 = 0, $229 = 0, $230 = 0, $231 = 0, $238 = 0, $240 = 0, $246 = 0, $250 = 0, $251 = 0, $258 = 0, $272 = 0, $273 = 0, $276 = 0, $283 = 0, $284 = 0, $292 = 0, $295 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $314 = 0, $317 = 0, $321 = 0, $325 = 0, $328 = 0, $329 = 0, $335 = 0, $44 = 0, $47 = 0, $49 = 0, $53 = 0, $57 = 0, $63 = 0, $64 = 0, $67 = 0, $68 = 0, $69 = 0, $72 = 0, $75 = 0, $92 = 0, $94 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$31 = ($12 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $20 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 3) + 8) | 0;
$pnt2$279 = $2 + ($20 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($31) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if (((HEAPU8[$pnt$169 + 1 >> 0] | 0) + (HEAPU8[$pnt$169 >> 0] | 0) + (HEAPU8[$pnt$169 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$44 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($44 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $44;
$47 = ($44 << 16 >> 16) * 7 | 0;
$49 = $labelInfo + 1310736 + ($47 + -7 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1;
$53 = $labelInfo + 1310736 + ($47 + -6 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $i$265;
$57 = $labelInfo + 1310736 + ($47 + -5 << 2) | 0;
HEAP32[$57 >> 2] = (HEAP32[$57 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($47 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$63 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$67 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$68 = $67 << 16 >> 16;
$69 = $67 << 16 >> 16 > 0;
if ($63 << 16 >> 16 <= 0) {
if ($69) {
HEAP16[$pnt2$368 >> 1] = $67;
$169 = $68 * 7 | 0;
$171 = $labelInfo + 1310736 + ($169 + -7 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + 1;
$175 = $labelInfo + 1310736 + ($169 + -6 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $i$265;
$179 = $labelInfo + 1310736 + ($169 + -5 << 2) | 0;
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + $j$076;
$183 = $labelInfo + 1310736 + ($169 + -3 << 2) | 0;
if ((HEAP32[$183 >> 2] | 0) < ($i$265 | 0)) HEAP32[$183 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($169 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$189 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($189 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $189;
$192 = ($189 << 16 >> 16) * 7 | 0;
$194 = $labelInfo + 1310736 + ($192 + -7 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + 1;
$198 = $labelInfo + 1310736 + ($192 + -6 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $i$265;
$202 = $labelInfo + 1310736 + ($192 + -5 << 2) | 0;
HEAP32[$202 >> 2] = (HEAP32[$202 >> 2] | 0) + $j$076;
$206 = $labelInfo + 1310736 + ($192 + -3 << 2) | 0;
if ((HEAP32[$206 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$206 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$209 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $209;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $209 << 16 >> 16;
$214 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($214 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($214 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($214 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($214 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $209;
break;
}
}
if ($69) {
$72 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$75 = HEAP32[$labelInfo + 1179664 + ($68 + -1 << 2) >> 2] | 0;
if (($72 | 0) > ($75 | 0)) {
HEAP16[$pnt2$368 >> 1] = $75;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $19;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$057 >> 2] = $75;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$92 = $75;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $92 = $75;
} else {
HEAP16[$pnt2$368 >> 1] = $72;
if (($72 | 0) < ($75 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $19;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$154 >> 2] = $72;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$92 = $72;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $92 = $72;
}
$94 = ($92 << 16 >> 16) * 7 | 0;
$96 = $labelInfo + 1310736 + ($94 + -7 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + 1;
$100 = $labelInfo + 1310736 + ($94 + -6 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $i$265;
$104 = $labelInfo + 1310736 + ($94 + -5 << 2) | 0;
HEAP32[$104 >> 2] = (HEAP32[$104 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($94 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$110 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($110 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $63;
$150 = $64 * 7 | 0;
$152 = $labelInfo + 1310736 + ($150 + -7 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + 1;
$156 = $labelInfo + 1310736 + ($150 + -6 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $i$265;
$160 = $labelInfo + 1310736 + ($150 + -5 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $j$076;
$164 = $labelInfo + 1310736 + ($150 + -4 << 2) | 0;
if ((HEAP32[$164 >> 2] | 0) > ($i$265 | 0)) HEAP32[$164 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($150 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$115 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
$118 = HEAP32[$labelInfo + 1179664 + (($110 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($115 | 0) > ($118 | 0)) {
HEAP16[$pnt2$368 >> 1] = $118;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $19;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$250 >> 2] = $118;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$135 = $118;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $135 = $118;
} else {
HEAP16[$pnt2$368 >> 1] = $115;
if (($115 | 0) < ($118 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $19;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$347 >> 2] = $115;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$135 = $115;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $135 = $115;
}
$137 = ($135 << 16 >> 16) * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$265;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$229 = $pnt$169 + 8 | 0;
$230 = $pnt2$368 + 2 | 0;
$231 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($12 | 0)) {
$dpnt$1$lcssa = $231;
$pnt$1$lcssa = $229;
$pnt2$3$lcssa = $230;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $231;
$pnt$169 = $229;
$pnt2$368 = $230;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$238 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $19;
while (1) {
$240 = HEAP32[$wk$444 >> 2] | 0;
if (($240 | 0) == ($i$342 | 0)) {
$246 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$246 = HEAP32[$labelInfo + 1179664 + ($240 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $246;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$250 = $labelInfo + 8 | 0;
$251 = $j$1$lcssa + -1 | 0;
HEAP32[$250 >> 2] = $251;
if (!$251) $$0 = 0; else {
_memset($238 | 0, 0, $251 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $251 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$258 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($258 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($258 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($258 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($258 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$250 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$272 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$273 = $i$538 * 7 | 0;
$276 = $labelInfo + 12 + ($272 << 2) | 0;
HEAP32[$276 >> 2] = (HEAP32[$276 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($273 << 2) >> 2] | 0);
$283 = $272 << 1;
$284 = $labelInfo + 655376 + ($283 << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 1 << 2) >> 2] | 0);
$292 = $labelInfo + 655376 + (($283 | 1) << 3) | 0;
HEAPF64[$292 >> 3] = +HEAPF64[$292 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($273 + 2 << 2) >> 2] | 0);
$295 = $272 << 2;
$296 = $labelInfo + 131084 + ($295 << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($273 + 3 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($295 | 1) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($273 + 4 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$310 = $labelInfo + 131084 + (($295 | 2) << 2) | 0;
$314 = HEAP32[$labelInfo + 1310736 + ($273 + 5 << 2) >> 2] | 0;
if ((HEAP32[$310 >> 2] | 0) > ($314 | 0)) HEAP32[$310 >> 2] = $314;
$317 = $labelInfo + 131084 + (($295 | 3) << 2) | 0;
$321 = HEAP32[$labelInfo + 1310736 + ($273 + 6 << 2) >> 2] | 0;
if ((HEAP32[$317 >> 2] | 0) < ($321 | 0)) HEAP32[$317 >> 2] = $321;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$250 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$325 = $labelInfo + 12 + ($i$637 << 2) | 0;
$328 = $i$637 << 1;
$329 = $labelInfo + 655376 + ($328 << 3) | 0;
HEAPF64[$329 >> 3] = +HEAPF64[$329 >> 3] / +(HEAP32[$325 >> 2] | 0);
$335 = $labelInfo + 655376 + (($328 | 1) << 3) | 0;
HEAPF64[$335 >> 3] = +HEAPF64[$335 >> 3] / +(HEAP32[$325 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$250 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 1) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
$29 = HEAPU8[$pnt$168 >> 0] | 0;
$35 = HEAPU8[$pnt$168 + 1 >> 0] | 0;
do if ((($29 & 248) + 12 + ($29 << 5 & 224) + ($35 >>> 3 & 24) + ($35 << 2 & 248) | 0) > ($9 | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($46 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $46;
$49 = ($46 << 16 >> 16) * 7 | 0;
$51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1;
$55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264;
$59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$71 = $69 << 16 >> 16 > 0;
if ($65 << 16 >> 16 <= 0) {
if ($71) {
HEAP16[$pnt2$367 >> 1] = $69;
$171 = $70 * 7 | 0;
$173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1;
$177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264;
$181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075;
$185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0;
if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$191 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($191 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $191;
$194 = ($191 << 16 >> 16) * 7 | 0;
$196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1;
$200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264;
$204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075;
$208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0;
if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$208 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$211 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $211;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16;
$216 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $211;
break;
}
}
if ($71) {
$74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
if (($74 | 0) > ($77 | 0)) {
HEAP16[$pnt2$367 >> 1] = $77;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$94 = $77;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $94 = $77;
} else {
HEAP16[$pnt2$367 >> 1] = $74;
if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$94 = $74;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $94 = $74;
}
$96 = ($94 << 16 >> 16) * 7 | 0;
$98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1;
$102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264;
$106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$112 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($112 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $65;
$152 = $66 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075;
$166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($117 | 0) > ($120 | 0)) {
HEAP16[$pnt2$367 >> 1] = $120;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$137 = $120;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $137 = $120;
} else {
HEAP16[$pnt2$367 >> 1] = $117;
if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$137 = $117;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $137 = $117;
}
$139 = ($137 << 16 >> 16) * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$231 = $pnt$168 + 2 | 0;
$232 = $pnt2$367 + 2 | 0;
$233 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $233;
$pnt$1$lcssa = $231;
$pnt2$3$lcssa = $232;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $233;
$pnt$168 = $231;
$pnt2$367 = $232;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$240 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$242 = HEAP32[$wk$443 >> 2] | 0;
if (($242 | 0) == ($i$341 | 0)) {
$248 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $248;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$252 = $labelInfo + 8 | 0;
$253 = $j$1$lcssa + -1 | 0;
HEAP32[$252 >> 2] = $253;
if (!$253) $$0 = 0; else {
_memset($240 | 0, 0, $253 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$260 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$275 = $i$537 * 7 | 0;
$278 = $labelInfo + 12 + ($274 << 2) | 0;
HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0);
$285 = $274 << 1;
$286 = $labelInfo + 655376 + ($285 << 3) | 0;
HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0);
$294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0;
HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0);
$297 = $274 << 2;
$298 = $labelInfo + 131084 + ($297 << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316;
$319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0;
$323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0;
if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$252 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$327 = $labelInfo + 12 + ($i$636 << 2) | 0;
$330 = $i$636 << 1;
$331 = $labelInfo + 655376 + ($330 << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0);
$337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0;
HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 1) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
$29 = HEAPU8[$pnt$168 >> 0] | 0;
$35 = HEAPU8[$pnt$168 + 1 >> 0] | 0;
do if ((($29 & 248) + 12 + ($29 << 5 & 224) + ($35 >>> 3 & 24) + ($35 << 2 & 248) | 0) > ($9 | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($46 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $46;
$49 = ($46 << 16 >> 16) * 7 | 0;
$51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1;
$55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264;
$59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$71 = $69 << 16 >> 16 > 0;
if ($65 << 16 >> 16 <= 0) {
if ($71) {
HEAP16[$pnt2$367 >> 1] = $69;
$171 = $70 * 7 | 0;
$173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1;
$177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264;
$181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075;
$185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0;
if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$191 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($191 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $191;
$194 = ($191 << 16 >> 16) * 7 | 0;
$196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1;
$200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264;
$204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075;
$208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0;
if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$208 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$211 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $211;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16;
$216 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $211;
break;
}
}
if ($71) {
$74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
if (($74 | 0) > ($77 | 0)) {
HEAP16[$pnt2$367 >> 1] = $77;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$94 = $77;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $94 = $77;
} else {
HEAP16[$pnt2$367 >> 1] = $74;
if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$94 = $74;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $94 = $74;
}
$96 = ($94 << 16 >> 16) * 7 | 0;
$98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1;
$102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264;
$106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$112 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($112 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $65;
$152 = $66 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075;
$166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($117 | 0) > ($120 | 0)) {
HEAP16[$pnt2$367 >> 1] = $120;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$137 = $120;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $137 = $120;
} else {
HEAP16[$pnt2$367 >> 1] = $117;
if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$137 = $117;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $137 = $117;
}
$139 = ($137 << 16 >> 16) * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$231 = $pnt$168 + 2 | 0;
$232 = $pnt2$367 + 2 | 0;
$233 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $233;
$pnt$1$lcssa = $231;
$pnt2$3$lcssa = $232;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $233;
$pnt$168 = $231;
$pnt2$367 = $232;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$240 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$242 = HEAP32[$wk$443 >> 2] | 0;
if (($242 | 0) == ($i$341 | 0)) {
$248 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $248;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$252 = $labelInfo + 8 | 0;
$253 = $j$1$lcssa + -1 | 0;
HEAP32[$252 >> 2] = $253;
if (!$253) $$0 = 0; else {
_memset($240 | 0, 0, $253 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$260 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$275 = $i$537 * 7 | 0;
$278 = $labelInfo + 12 + ($274 << 2) | 0;
HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0);
$285 = $274 << 1;
$286 = $labelInfo + 655376 + ($285 << 3) | 0;
HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0);
$294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0;
HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0);
$297 = $274 << 2;
$298 = $labelInfo + 131084 + ($297 << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316;
$319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0;
$323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0;
if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$252 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$327 = $labelInfo + 12 + ($i$636 << 2) | 0;
$330 = $i$636 << 1;
$331 = $labelInfo + 655376 + ($330 << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0);
$337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0;
HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 1) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
$29 = HEAPU8[$pnt$168 >> 0] | 0;
$35 = HEAPU8[$pnt$168 + 1 >> 0] | 0;
do if ((($29 & 248) + 10 + ($29 << 5 & 224) + ($35 >>> 3 & 28) + ($35 << 3 & 248) | 0) > ($9 | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($46 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $46;
$49 = ($46 << 16 >> 16) * 7 | 0;
$51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1;
$55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264;
$59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$71 = $69 << 16 >> 16 > 0;
if ($65 << 16 >> 16 <= 0) {
if ($71) {
HEAP16[$pnt2$367 >> 1] = $69;
$171 = $70 * 7 | 0;
$173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1;
$177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264;
$181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075;
$185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0;
if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$191 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($191 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $191;
$194 = ($191 << 16 >> 16) * 7 | 0;
$196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1;
$200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264;
$204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075;
$208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0;
if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$208 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$211 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $211;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16;
$216 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $211;
break;
}
}
if ($71) {
$74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
if (($74 | 0) > ($77 | 0)) {
HEAP16[$pnt2$367 >> 1] = $77;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$94 = $77;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $94 = $77;
} else {
HEAP16[$pnt2$367 >> 1] = $74;
if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$94 = $74;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $94 = $74;
}
$96 = ($94 << 16 >> 16) * 7 | 0;
$98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1;
$102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264;
$106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$112 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($112 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $65;
$152 = $66 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075;
$166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($117 | 0) > ($120 | 0)) {
HEAP16[$pnt2$367 >> 1] = $120;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$137 = $120;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $137 = $120;
} else {
HEAP16[$pnt2$367 >> 1] = $117;
if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$137 = $117;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $137 = $117;
}
$139 = ($137 << 16 >> 16) * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$231 = $pnt$168 + 2 | 0;
$232 = $pnt2$367 + 2 | 0;
$233 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $233;
$pnt$1$lcssa = $231;
$pnt2$3$lcssa = $232;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $233;
$pnt$168 = $231;
$pnt2$367 = $232;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$240 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$242 = HEAP32[$wk$443 >> 2] | 0;
if (($242 | 0) == ($i$341 | 0)) {
$248 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $248;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$252 = $labelInfo + 8 | 0;
$253 = $j$1$lcssa + -1 | 0;
HEAP32[$252 >> 2] = $253;
if (!$253) $$0 = 0; else {
_memset($240 | 0, 0, $253 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$260 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$275 = $i$537 * 7 | 0;
$278 = $labelInfo + 12 + ($274 << 2) | 0;
HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0);
$285 = $274 << 1;
$286 = $labelInfo + 655376 + ($285 << 3) | 0;
HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0);
$294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0;
HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0);
$297 = $274 << 2;
$298 = $labelInfo + 131084 + ($297 << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316;
$319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0;
$323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0;
if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$252 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$327 = $labelInfo + 12 + ($i$636 << 2) | 0;
$330 = $i$636 << 1;
$331 = $labelInfo + 655376 + ($330 << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0);
$337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0;
HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $106 = 0, $112 = 0, $117 = 0, $120 = 0, $137 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $152 = 0, $154 = 0, $158 = 0, $162 = 0, $166 = 0, $17 = 0, $171 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $19 = 0, $191 = 0, $194 = 0, $196 = 0, $200 = 0, $204 = 0, $208 = 0, $211 = 0, $216 = 0, $231 = 0, $232 = 0, $233 = 0, $240 = 0, $242 = 0, $248 = 0, $252 = 0, $253 = 0, $260 = 0, $27 = 0, $274 = 0, $275 = 0, $278 = 0, $285 = 0, $286 = 0, $29 = 0, $294 = 0, $297 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $319 = 0, $323 = 0, $327 = 0, $330 = 0, $331 = 0, $337 = 0, $35 = 0, $46 = 0, $49 = 0, $51 = 0, $55 = 0, $59 = 0, $65 = 0, $66 = 0, $69 = 0, $70 = 0, $71 = 0, $74 = 0, $77 = 0, $9 = 0, $94 = 0, $96 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 1) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
$29 = HEAPU8[$pnt$168 >> 0] | 0;
$35 = HEAPU8[$pnt$168 + 1 >> 0] | 0;
do if ((($29 & 248) + 10 + ($29 << 5 & 224) + ($35 >>> 3 & 28) + ($35 << 3 & 248) | 0) > ($9 | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$46 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($46 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $46;
$49 = ($46 << 16 >> 16) * 7 | 0;
$51 = $labelInfo + 1310736 + ($49 + -7 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + 1;
$55 = $labelInfo + 1310736 + ($49 + -6 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $i$264;
$59 = $labelInfo + 1310736 + ($49 + -5 << 2) | 0;
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($49 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$65 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$69 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$70 = $69 << 16 >> 16;
$71 = $69 << 16 >> 16 > 0;
if ($65 << 16 >> 16 <= 0) {
if ($71) {
HEAP16[$pnt2$367 >> 1] = $69;
$171 = $70 * 7 | 0;
$173 = $labelInfo + 1310736 + ($171 + -7 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + 1;
$177 = $labelInfo + 1310736 + ($171 + -6 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $i$264;
$181 = $labelInfo + 1310736 + ($171 + -5 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $j$075;
$185 = $labelInfo + 1310736 + ($171 + -3 << 2) | 0;
if ((HEAP32[$185 >> 2] | 0) < ($i$264 | 0)) HEAP32[$185 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($171 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$191 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($191 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $191;
$194 = ($191 << 16 >> 16) * 7 | 0;
$196 = $labelInfo + 1310736 + ($194 + -7 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + 1;
$200 = $labelInfo + 1310736 + ($194 + -6 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $i$264;
$204 = $labelInfo + 1310736 + ($194 + -5 << 2) | 0;
HEAP32[$204 >> 2] = (HEAP32[$204 >> 2] | 0) + $j$075;
$208 = $labelInfo + 1310736 + ($194 + -3 << 2) | 0;
if ((HEAP32[$208 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$208 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$211 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $211;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $211 << 16 >> 16;
$216 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($216 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($216 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($216 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($216 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $211;
break;
}
}
if ($71) {
$74 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$77 = HEAP32[$labelInfo + 1179664 + ($70 + -1 << 2) >> 2] | 0;
if (($74 | 0) > ($77 | 0)) {
HEAP16[$pnt2$367 >> 1] = $77;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$056 >> 2] = $77;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$94 = $77;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $94 = $77;
} else {
HEAP16[$pnt2$367 >> 1] = $74;
if (($74 | 0) < ($77 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($77 | 0)) HEAP32[$wk$153 >> 2] = $74;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$94 = $74;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $94 = $74;
}
$96 = ($94 << 16 >> 16) * 7 | 0;
$98 = $labelInfo + 1310736 + ($96 + -7 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + 1;
$102 = $labelInfo + 1310736 + ($96 + -6 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $i$264;
$106 = $labelInfo + 1310736 + ($96 + -5 << 2) | 0;
HEAP32[$106 >> 2] = (HEAP32[$106 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($96 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$112 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($112 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $65;
$152 = $66 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$264;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$075;
$166 = $labelInfo + 1310736 + ($152 + -4 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) > ($i$264 | 0)) HEAP32[$166 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$117 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
$120 = HEAP32[$labelInfo + 1179664 + (($112 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($117 | 0) > ($120 | 0)) {
HEAP16[$pnt2$367 >> 1] = $120;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$249 >> 2] = $120;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$137 = $120;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $137 = $120;
} else {
HEAP16[$pnt2$367 >> 1] = $117;
if (($117 | 0) < ($120 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($120 | 0)) HEAP32[$wk$346 >> 2] = $117;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$137 = $117;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $137 = $117;
}
$139 = ($137 << 16 >> 16) * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$264;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$231 = $pnt$168 + 2 | 0;
$232 = $pnt2$367 + 2 | 0;
$233 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $233;
$pnt$1$lcssa = $231;
$pnt2$3$lcssa = $232;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $233;
$pnt$168 = $231;
$pnt2$367 = $232;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$240 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$242 = HEAP32[$wk$443 >> 2] | 0;
if (($242 | 0) == ($i$341 | 0)) {
$248 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$248 = HEAP32[$labelInfo + 1179664 + ($242 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $248;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$252 = $labelInfo + 8 | 0;
$253 = $j$1$lcssa + -1 | 0;
HEAP32[$252 >> 2] = $253;
if (!$253) $$0 = 0; else {
_memset($240 | 0, 0, $253 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $253 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$260 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($260 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($260 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($260 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($260 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$252 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$274 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$275 = $i$537 * 7 | 0;
$278 = $labelInfo + 12 + ($274 << 2) | 0;
HEAP32[$278 >> 2] = (HEAP32[$278 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($275 << 2) >> 2] | 0);
$285 = $274 << 1;
$286 = $labelInfo + 655376 + ($285 << 3) | 0;
HEAPF64[$286 >> 3] = +HEAPF64[$286 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 1 << 2) >> 2] | 0);
$294 = $labelInfo + 655376 + (($285 | 1) << 3) | 0;
HEAPF64[$294 >> 3] = +HEAPF64[$294 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($275 + 2 << 2) >> 2] | 0);
$297 = $274 << 2;
$298 = $labelInfo + 131084 + ($297 << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($275 + 3 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($297 | 1) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($275 + 4 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($297 | 2) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($275 + 5 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) > ($316 | 0)) HEAP32[$312 >> 2] = $316;
$319 = $labelInfo + 131084 + (($297 | 3) << 2) | 0;
$323 = HEAP32[$labelInfo + 1310736 + ($275 + 6 << 2) >> 2] | 0;
if ((HEAP32[$319 >> 2] | 0) < ($323 | 0)) HEAP32[$319 >> 2] = $323;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$252 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$327 = $labelInfo + 12 + ($i$636 << 2) | 0;
$330 = $i$636 << 1;
$331 = $labelInfo + 655376 + ($330 << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$327 >> 2] | 0);
$337 = $labelInfo + 655376 + (($330 | 1) << 3) | 0;
HEAPF64[$337 >> 3] = +HEAPF64[$337 >> 3] / +(HEAP32[$327 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$252 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arPattGetIDGlobal($pattHandle, $imageProcMode, $pattDetectMode, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $codePatt, $dirPatt, $cfPatt, $codeMatrix, $dirMatrix, $cfMatrix, $matrixCodeType, $errorCorrected, $codeGlobalID_p) {
$pattHandle = $pattHandle | 0;
$imageProcMode = $imageProcMode | 0;
$pattDetectMode = $pattDetectMode | 0;
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$pixelFormat = $pixelFormat | 0;
$paramLTf = $paramLTf | 0;
$vertex = $vertex | 0;
$pattRatio = +$pattRatio;
$codePatt = $codePatt | 0;
$dirPatt = $dirPatt | 0;
$cfPatt = $cfPatt | 0;
$codeMatrix = $codeMatrix | 0;
$dirMatrix = $dirMatrix | 0;
$cfMatrix = $cfMatrix | 0;
$matrixCodeType = $matrixCodeType | 0;
$errorCorrected = $errorCorrected | 0;
$codeGlobalID_p = $codeGlobalID_p | 0;
var $$0 = 0, $$0$i = 0, $$max$0$i = 0, $$max$0$i$1 = 0, $$max$0$i$2 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $107 = 0, $114 = 0, $118 = 0, $122 = 0, $126 = 0, $137 = 0, $14 = 0, $141 = 0, $147 = 0, $148 = 0, $149 = 0, $162 = 0, $166 = 0, $175 = 0, $178 = 0, $186 = 0, $188 = 0, $196 = 0, $20 = 0, $200 = 0, $204 = 0, $206 = 0, $211 = 0, $212 = 0, $213 = 0, $26 = 0, $29 = 0, $30 = 0, $34 = 0, $68 = 0, $8 = 0, $80 = 0, $81 = 0, $84 = 0, $93 = 0, $97 = 0, $bit$0$i28 = 0, $bit$1$i25 = 0, $bit$10$i43 = 0, $bit$11$i = 0, $bit$11$i$lcssa = 0, $bit$2$i = 0, $bit$2$i$lcssa = 0, $bit$3$i34 = 0, $bit$4$i31 = 0, $bit$5$i = 0, $bit$5$i$lcssa = 0, $bit$6$i40 = 0, $bit$7$i37 = 0, $bit$8$i = 0, $bit$8$i$lcssa = 0, $bit$9$i46 = 0, $code$i = 0, $contrastMin$0$i26 = 0, $contrastMin$1$i23 = 0, $contrastMin$10$i41 = 0, $contrastMin$11$i = 0, $contrastMin$11$i$lcssa = 0, $contrastMin$12$i = 0, $contrastMin$2$i = 0, $contrastMin$2$i$lcssa = 0, $contrastMin$3$i32 = 0, $contrastMin$4$i29 = 0, $contrastMin$5$i = 0, $contrastMin$5$i$lcssa = 0, $contrastMin$6$i38 = 0, $contrastMin$7$i35 = 0, $contrastMin$8$i = 0, $contrastMin$8$i$lcssa = 0, $contrastMin$9$i44 = 0, $corner$i = 0, $dirCode$i = 0, $errorCodeMtx$0 = 0, $errorCodePatt$0 = 0, $ext_patt = 0, $i$2$i$lcssa = 0, $i$2$i47 = 0, $i$3$i24 = 0, $i$4$i33 = 0, $i$4$off$i = 0, $i$5$i36 = 0, $i$6$i45 = 0, $i$6$off$i = 0, $j$0$i27 = 0, $j$0$off$i = 0, $j$1$i30 = 0, $j$2$i39 = 0, $j$2$off$i = 0, $j$3$i42 = 0, $min$1$i = 0, $min$1$i$1 = 0, $min$1$i$2 = 0, $or$cond4454$i = 0, $recd127$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 12448 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$dirCode$i = sp + 12440 | 0;
$corner$i = sp + 8 | 0;
$code$i = sp;
$recd127$i = sp + 12312 | 0;
$ext_patt = sp + 24 | 0;
do if (($pattDetectMode + -2 | 0) >>> 0 < 3) {
if (($matrixCodeType | 0) != 2830) {
$200 = $matrixCodeType & 255;
if ((_arPattGetImage2($imageProcMode, 2, $200, $200 * 3 | 0, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) {
HEAP32[$codeMatrix >> 2] = -1;
$errorCodeMtx$0 = -6;
break;
}
$204 = _get_matrix_code($ext_patt, $200, $codeMatrix, $dirMatrix, $cfMatrix, $matrixCodeType, $errorCorrected) | 0;
if (!$codeGlobalID_p) {
$errorCodeMtx$0 = $204;
break;
}
$206 = $codeGlobalID_p;
HEAP32[$206 >> 2] = 0;
HEAP32[$206 + 4 >> 2] = 0;
$errorCodeMtx$0 = $204;
break;
}
if ((_arPattGetImage2($imageProcMode, 2, 14, 42, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, .875, $ext_patt) | 0) < 0) {
HEAP32[$codeMatrix >> 2] = -1;
$errorCodeMtx$0 = -6;
break;
}
HEAP32[$corner$i >> 2] = 0;
HEAP32[$corner$i + 4 >> 2] = 182;
HEAP32[$corner$i + 8 >> 2] = 195;
HEAP32[$corner$i + 12 >> 2] = 13;
$8 = HEAP8[$ext_patt + (HEAP32[$corner$i >> 2] | 0) >> 0] | 0;
$$max$0$i = ($8 & 255) > 0 ? $8 : 0;
$min$1$i = ($8 & 255) < 255 ? $8 : -1;
$14 = HEAP8[$ext_patt + (HEAP32[$corner$i + 4 >> 2] | 0) >> 0] | 0;
$$max$0$i$1 = ($14 & 255) > ($$max$0$i & 255) ? $14 : $$max$0$i;
$min$1$i$1 = ($14 & 255) < ($min$1$i & 255) ? $14 : $min$1$i;
$20 = HEAP8[$ext_patt + (HEAP32[$corner$i + 8 >> 2] | 0) >> 0] | 0;
$$max$0$i$2 = ($20 & 255) > ($$max$0$i$1 & 255) ? $20 : $$max$0$i$1;
$min$1$i$2 = ($20 & 255) < ($min$1$i$1 & 255) ? $20 : $min$1$i$1;
$26 = HEAP8[$ext_patt + (HEAP32[$corner$i + 12 >> 2] | 0) >> 0] | 0;
$29 = (($26 & 255) > ($$max$0$i$2 & 255) ? $26 : $$max$0$i$2) & 255;
$30 = (($26 & 255) < ($min$1$i$2 & 255) ? $26 : $min$1$i$2) & 255;
L13 : do if (($29 - $30 | 0) < 30) {
HEAP32[$dirMatrix >> 2] = 0;
HEAPF64[$cfMatrix >> 3] = -1.0;
$$0$i = -2;
$186 = 0;
$188 = 0;
} else {
$34 = ($29 + $30 | 0) >>> 1;
HEAP8[$dirCode$i >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1;
HEAP8[$dirCode$i + 1 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 4 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1;
HEAP8[$dirCode$i + 2 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 8 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1;
HEAP8[$dirCode$i + 3 >> 0] = (HEAPU8[$ext_patt + (HEAP32[$corner$i + 12 >> 2] | 0) >> 0] | 0) >>> 0 < $34 >>> 0 & 1;
$i$2$i47 = 0;
while (1) {
$68 = $i$2$i47 + 1 | 0;
if ((HEAP8[$dirCode$i + $i$2$i47 >> 0] | 0) == 1) if ((HEAP8[$dirCode$i + (($68 | 0) % 4 | 0) >> 0] | 0) == 1) if (!(HEAP8[$dirCode$i + (($i$2$i47 + 2 | 0) % 4 | 0) >> 0] | 0)) {
$i$2$i$lcssa = $i$2$i47;
break;
}
if (($68 | 0) < 4) $i$2$i47 = $68; else {
$i$2$i$lcssa = $68;
break;
}
}
switch ($i$2$i$lcssa | 0) {
case 4:
{
HEAP32[$dirMatrix >> 2] = 0;
HEAPF64[$cfMatrix >> 3] = -1.0;
$$0$i = -3;
$186 = 0;
$188 = 0;
break L13;
break;
}
case 0:
{
$bit$0$i28 = 119;
$contrastMin$0$i26 = 255;
$j$0$i27 = 0;
while (1) {
$j$0$off$i = $j$0$i27 + -3 | 0;
$80 = ($j$0$i27 & -2 | 0) == 12;
$81 = $j$0$i27 * 14 | 0;
$bit$1$i25 = $bit$0$i28;
$contrastMin$1$i23 = $contrastMin$0$i26;
$i$3$i24 = 0;
while (1) {
if (($i$3$i24 + -3 | $j$0$off$i) >>> 0 < 8) {
$bit$2$i = $bit$1$i25;
$contrastMin$2$i = $contrastMin$1$i23;
} else {
$84 = $i$3$i24 & -2;
if (($i$3$i24 | $j$0$i27) >>> 0 < 2) {
$bit$2$i = $bit$1$i25;
$contrastMin$2$i = $contrastMin$1$i23;
} else if ($80 & (($84 | 0) == 0 | ($84 | 0) == 12)) {
$bit$2$i = $bit$1$i25;
$contrastMin$2$i = $contrastMin$1$i23;
} else {
$93 = (HEAPU8[$ext_patt + ($i$3$i24 + $81) >> 0] | 0) - $34 | 0;
HEAP8[$recd127$i + $bit$1$i25 >> 0] = $93 >>> 31;
$97 = ($93 | 0) > -1 ? $93 : 0 - $93 | 0;
$bit$2$i = $bit$1$i25 + -1 | 0;
$contrastMin$2$i = ($97 | 0) < ($contrastMin$1$i23 | 0) ? $97 : $contrastMin$1$i23;
}
}
$i$3$i24 = $i$3$i24 + 1 | 0;
if (($i$3$i24 | 0) == 14) {
$bit$2$i$lcssa = $bit$2$i;
$contrastMin$2$i$lcssa = $contrastMin$2$i;
break;
} else {
$bit$1$i25 = $bit$2$i;
$contrastMin$1$i23 = $contrastMin$2$i;
}
}
$100 = $j$0$i27 + 1 | 0;
if (($100 | 0) == 14) {
$contrastMin$12$i = $contrastMin$2$i$lcssa;
break;
} else {
$bit$0$i28 = $bit$2$i$lcssa;
$contrastMin$0$i26 = $contrastMin$2$i$lcssa;
$j$0$i27 = $100;
}
}
break;
}
case 1:
{
$bit$3$i34 = 119;
$contrastMin$3$i32 = 255;
$i$4$i33 = 0;
while (1) {
$i$4$off$i = $i$4$i33 + -3 | 0;
$101 = $i$4$i33 & -2;
$102 = ($101 | 0) == 0;
$103 = ($101 | 0) == 12;
$bit$4$i31 = $bit$3$i34;
$contrastMin$4$i29 = $contrastMin$3$i32;
$j$1$i30 = 13;
while (1) {
if (($j$1$i30 + -3 | $i$4$off$i) >>> 0 < 8) {
$bit$5$i = $bit$4$i31;
$contrastMin$5$i = $contrastMin$4$i29;
} else {
$107 = ($j$1$i30 & -2 | 0) == 12;
if ($102 & $107) {
$bit$5$i = $bit$4$i31;
$contrastMin$5$i = $contrastMin$4$i29;
} else if ($103 & ($j$1$i30 >>> 0 < 2 | $107)) {
$bit$5$i = $bit$4$i31;
$contrastMin$5$i = $contrastMin$4$i29;
} else {
$114 = (HEAPU8[$ext_patt + (($j$1$i30 * 14 | 0) + $i$4$i33) >> 0] | 0) - $34 | 0;
HEAP8[$recd127$i + $bit$4$i31 >> 0] = $114 >>> 31;
$118 = ($114 | 0) > -1 ? $114 : 0 - $114 | 0;
$bit$5$i = $bit$4$i31 + -1 | 0;
$contrastMin$5$i = ($118 | 0) < ($contrastMin$4$i29 | 0) ? $118 : $contrastMin$4$i29;
}
}
if (($j$1$i30 | 0) > 0) {
$bit$4$i31 = $bit$5$i;
$contrastMin$4$i29 = $contrastMin$5$i;
$j$1$i30 = $j$1$i30 + -1 | 0;
} else {
$bit$5$i$lcssa = $bit$5$i;
$contrastMin$5$i$lcssa = $contrastMin$5$i;
break;
}
}
$122 = $i$4$i33 + 1 | 0;
if (($122 | 0) == 14) {
$contrastMin$12$i = $contrastMin$5$i$lcssa;
break;
} else {
$bit$3$i34 = $bit$5$i$lcssa;
$contrastMin$3$i32 = $contrastMin$5$i$lcssa;
$i$4$i33 = $122;
}
}
break;
}
case 2:
{
$bit$6$i40 = 119;
$contrastMin$6$i38 = 255;
$j$2$i39 = 13;
while (1) {
$j$2$off$i = $j$2$i39 + -3 | 0;
$or$cond4454$i = $j$2$i39 >>> 0 < 2 | ($j$2$i39 & -2 | 0) == 12;
$126 = $j$2$i39 * 14 | 0;
$bit$7$i37 = $bit$6$i40;
$contrastMin$7$i35 = $contrastMin$6$i38;
$i$5$i36 = 13;
while (1) {
if (($i$5$i36 + -3 | $j$2$off$i) >>> 0 < 8) {
$bit$8$i = $bit$7$i37;
$contrastMin$8$i = $contrastMin$7$i35;
} else if (($i$5$i36 | $j$2$i39) >>> 0 < 2 | $or$cond4454$i & ($i$5$i36 & -2 | 0) == 12) {
$bit$8$i = $bit$7$i37;
$contrastMin$8$i = $contrastMin$7$i35;
} else {
$137 = (HEAPU8[$ext_patt + ($i$5$i36 + $126) >> 0] | 0) - $34 | 0;
HEAP8[$recd127$i + $bit$7$i37 >> 0] = $137 >>> 31;
$141 = ($137 | 0) > -1 ? $137 : 0 - $137 | 0;
$bit$8$i = $bit$7$i37 + -1 | 0;
$contrastMin$8$i = ($141 | 0) < ($contrastMin$7$i35 | 0) ? $141 : $contrastMin$7$i35;
}
if (($i$5$i36 | 0) > 0) {
$bit$7$i37 = $bit$8$i;
$contrastMin$7$i35 = $contrastMin$8$i;
$i$5$i36 = $i$5$i36 + -1 | 0;
} else {
$bit$8$i$lcssa = $bit$8$i;
$contrastMin$8$i$lcssa = $contrastMin$8$i;
break;
}
}
if (($j$2$i39 | 0) > 0) {
$bit$6$i40 = $bit$8$i$lcssa;
$contrastMin$6$i38 = $contrastMin$8$i$lcssa;
$j$2$i39 = $j$2$i39 + -1 | 0;
} else {
$contrastMin$12$i = $contrastMin$8$i$lcssa;
break;
}
}
break;
}
case 3:
{
$bit$9$i46 = 119;
$contrastMin$9$i44 = 255;
$i$6$i45 = 13;
while (1) {
$i$6$off$i = $i$6$i45 + -3 | 0;
$147 = $i$6$i45 & -2;
$148 = ($147 | 0) == 12;
$149 = ($147 | 0) == 0;
$bit$10$i43 = $bit$9$i46;
$contrastMin$10$i41 = $contrastMin$9$i44;
$j$3$i42 = 0;
while (1) {
if (($j$3$i42 + -3 | $i$6$off$i) >>> 0 < 8) {
$bit$11$i = $bit$10$i43;
$contrastMin$11$i = $contrastMin$10$i41;
} else if ($148 & $j$3$i42 >>> 0 < 2 | ($j$3$i42 | $i$6$i45) >>> 0 < 2) {
$bit$11$i = $bit$10$i43;
$contrastMin$11$i = $contrastMin$10$i41;
} else if ($149 & ($j$3$i42 & -2 | 0) == 12) {
$bit$11$i = $bit$10$i43;
$contrastMin$11$i = $contrastMin$10$i41;
} else {
$162 = (HEAPU8[$ext_patt + (($j$3$i42 * 14 | 0) + $i$6$i45) >> 0] | 0) - $34 | 0;
HEAP8[$recd127$i + $bit$10$i43 >> 0] = $162 >>> 31;
$166 = ($162 | 0) > -1 ? $162 : 0 - $162 | 0;
$bit$11$i = $bit$10$i43 + -1 | 0;
$contrastMin$11$i = ($166 | 0) < ($contrastMin$10$i41 | 0) ? $166 : $contrastMin$10$i41;
}
$j$3$i42 = $j$3$i42 + 1 | 0;
if (($j$3$i42 | 0) == 14) {
$bit$11$i$lcssa = $bit$11$i;
$contrastMin$11$i$lcssa = $contrastMin$11$i;
break;
} else {
$bit$10$i43 = $bit$11$i;
$contrastMin$10$i41 = $contrastMin$11$i;
}
}
if (($i$6$i45 | 0) > 0) {
$bit$9$i46 = $bit$11$i$lcssa;
$contrastMin$9$i44 = $contrastMin$11$i$lcssa;
$i$6$i45 = $i$6$i45 + -1 | 0;
} else {
$contrastMin$12$i = $contrastMin$11$i$lcssa;
break;
}
}
break;
}
default:
$contrastMin$12$i = 255;
}
HEAP32[$dirMatrix >> 2] = $i$2$i$lcssa;
HEAPF64[$cfMatrix >> 3] = ($contrastMin$12$i | 0) > 30 ? 1.0 : +($contrastMin$12$i | 0) / 30.0;
$175 = _decode_bch(2830, 0, 0, $recd127$i, $code$i) | 0;
if (($175 | 0) < 0) {
$$0$i = -4;
$186 = 0;
$188 = 0;
} else {
if ($errorCorrected) HEAP32[$errorCorrected >> 2] = $175;
$178 = $code$i;
$$0$i = 0;
$186 = HEAP32[$178 >> 2] | 0;
$188 = HEAP32[$178 + 4 >> 2] | 0;
}
} while (0);
if (($$0$i | 0) < 0) {
HEAP32[$codeMatrix >> 2] = -1;
$errorCodeMtx$0 = $$0$i;
break;
}
if (($186 | 0) == -1 & ($188 | 0) == -1) {
HEAP32[$codeMatrix >> 2] = -1;
$errorCodeMtx$0 = -5;
break;
}
HEAP32[$codeMatrix >> 2] = ($186 & -32768 | 0) == 0 & 0 == 0 ? $186 & 32767 : 0;
if (!$codeGlobalID_p) $errorCodeMtx$0 = 0; else {
$196 = $codeGlobalID_p;
HEAP32[$196 >> 2] = $186;
HEAP32[$196 + 4 >> 2] = $188;
$errorCodeMtx$0 = 0;
}
} else $errorCodeMtx$0 = 1; while (0);
L78 : do switch ($pattDetectMode | 0) {
case 0:
case 1:
case 3:
case 4:
{
if (!$pattHandle) {
HEAP32[$codePatt >> 2] = -1;
$errorCodePatt$0 = -1;
break L78;
}
$211 = $pattHandle + 28 | 0;
$212 = HEAP32[$211 >> 2] | 0;
$213 = $212 << 2;
switch ($pattDetectMode | 0) {
case 0:
case 3:
{
if ((_arPattGetImage2($imageProcMode, 0, $212, $213, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) {
HEAP32[$codePatt >> 2] = -1;
$errorCodePatt$0 = -6;
break L78;
} else {
$errorCodePatt$0 = _pattern_match($pattHandle, 0, $ext_patt, HEAP32[$211 >> 2] | 0, $codePatt, $dirPatt, $cfPatt) | 0;
break L78;
}
break;
}
default:
if ((_arPattGetImage2($imageProcMode, 1, $212, $213, $image, $xsize, $ysize, $pixelFormat, $paramLTf, $vertex, $pattRatio, $ext_patt) | 0) < 0) {
HEAP32[$codePatt >> 2] = -1;
$errorCodePatt$0 = -6;
break L78;
} else {
$errorCodePatt$0 = _pattern_match($pattHandle, 1, $ext_patt, HEAP32[$211 >> 2] | 0, $codePatt, $dirPatt, $cfPatt) | 0;
break L78;
}
}
break;
}
default:
$errorCodePatt$0 = 1;
} while (0);
if (($errorCodeMtx$0 | 0) == 1) $$0 = $errorCodePatt$0; else if (($errorCodePatt$0 | 0) == 1) $$0 = $errorCodeMtx$0; else $$0 = ($errorCodePatt$0 & $errorCodeMtx$0 | 0) < 0 ? $errorCodePatt$0 : 0;
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $108 = 0, $113 = 0, $116 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $229 = 0, $236 = 0, $238 = 0, $244 = 0, $248 = 0, $249 = 0, $256 = 0, $27 = 0, $270 = 0, $271 = 0, $274 = 0, $281 = 0, $282 = 0, $29 = 0, $290 = 0, $293 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $315 = 0, $319 = 0, $323 = 0, $326 = 0, $327 = 0, $333 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $9 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 1) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
$29 = HEAPU8[$pnt$168 >> 0] | 0;
do if ((($29 & 240) + 24 + ($29 << 4 & 240) + ((HEAPU8[$pnt$168 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$42 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($42 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $42;
$45 = ($42 << 16 >> 16) * 7 | 0;
$47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1;
$51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$264;
$55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$61 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$62 = $61 << 16 >> 16;
$65 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$67 = $65 << 16 >> 16 > 0;
if ($61 << 16 >> 16 <= 0) {
if ($67) {
HEAP16[$pnt2$367 >> 1] = $65;
$167 = $66 * 7 | 0;
$169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1;
$173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$264;
$177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$075;
$181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0;
if ((HEAP32[$181 >> 2] | 0) < ($i$264 | 0)) HEAP32[$181 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$187 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($187 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $187;
$190 = ($187 << 16 >> 16) * 7 | 0;
$192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1;
$196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$264;
$200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$075;
$204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0;
if ((HEAP32[$204 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$204 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$207 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $207;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $207 << 16 >> 16;
$212 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $207;
break;
}
}
if ($67) {
$70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
if (($70 | 0) > ($73 | 0)) {
HEAP16[$pnt2$367 >> 1] = $73;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$056 >> 2] = $73;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$90 = $73;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $90 = $73;
} else {
HEAP16[$pnt2$367 >> 1] = $70;
if (($70 | 0) < ($73 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$153 >> 2] = $70;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$90 = $70;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $90 = $70;
}
$92 = ($90 << 16 >> 16) * 7 | 0;
$94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1;
$98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$264;
$102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$108 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($108 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $61;
$148 = $62 * 7 | 0;
$150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1;
$154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$264;
$158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$075;
$162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0;
if ((HEAP32[$162 >> 2] | 0) > ($i$264 | 0)) HEAP32[$162 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($113 | 0) > ($116 | 0)) {
HEAP16[$pnt2$367 >> 1] = $116;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$249 >> 2] = $116;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$133 = $116;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $133 = $116;
} else {
HEAP16[$pnt2$367 >> 1] = $113;
if (($113 | 0) < ($116 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$346 >> 2] = $113;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$133 = $113;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $133 = $113;
}
$135 = ($133 << 16 >> 16) * 7 | 0;
$137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1;
$141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$264;
$145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$227 = $pnt$168 + 2 | 0;
$228 = $pnt2$367 + 2 | 0;
$229 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $229;
$pnt$1$lcssa = $227;
$pnt2$3$lcssa = $228;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $229;
$pnt$168 = $227;
$pnt2$367 = $228;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$236 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$238 = HEAP32[$wk$443 >> 2] | 0;
if (($238 | 0) == ($i$341 | 0)) {
$244 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$244 = HEAP32[$labelInfo + 1179664 + ($238 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $244;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$248 = $labelInfo + 8 | 0;
$249 = $j$1$lcssa + -1 | 0;
HEAP32[$248 >> 2] = $249;
if (!$249) $$0 = 0; else {
_memset($236 | 0, 0, $249 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $249 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$256 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($256 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($256 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($256 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($256 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$248 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$270 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$271 = $i$537 * 7 | 0;
$274 = $labelInfo + 12 + ($270 << 2) | 0;
HEAP32[$274 >> 2] = (HEAP32[$274 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($271 << 2) >> 2] | 0);
$281 = $270 << 1;
$282 = $labelInfo + 655376 + ($281 << 3) | 0;
HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 1 << 2) >> 2] | 0);
$290 = $labelInfo + 655376 + (($281 | 1) << 3) | 0;
HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 2 << 2) >> 2] | 0);
$293 = $270 << 2;
$294 = $labelInfo + 131084 + ($293 << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($271 + 3 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($293 | 1) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($271 + 4 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($293 | 2) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($271 + 5 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) > ($312 | 0)) HEAP32[$308 >> 2] = $312;
$315 = $labelInfo + 131084 + (($293 | 3) << 2) | 0;
$319 = HEAP32[$labelInfo + 1310736 + ($271 + 6 << 2) >> 2] | 0;
if ((HEAP32[$315 >> 2] | 0) < ($319 | 0)) HEAP32[$315 >> 2] = $319;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$248 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$323 = $labelInfo + 12 + ($i$636 << 2) | 0;
$326 = $i$636 << 1;
$327 = $labelInfo + 655376 + ($326 << 3) | 0;
HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$323 >> 2] | 0);
$333 = $labelInfo + 655376 + (($326 | 1) << 3) | 0;
HEAPF64[$333 >> 3] = +HEAPF64[$333 >> 3] / +(HEAP32[$323 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$248 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $102 = 0, $108 = 0, $113 = 0, $116 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $229 = 0, $236 = 0, $238 = 0, $244 = 0, $248 = 0, $249 = 0, $256 = 0, $27 = 0, $270 = 0, $271 = 0, $274 = 0, $281 = 0, $282 = 0, $29 = 0, $290 = 0, $293 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $315 = 0, $319 = 0, $323 = 0, $326 = 0, $327 = 0, $333 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $9 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 1) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
$29 = HEAPU8[$pnt$168 >> 0] | 0;
do if ((($29 & 240) + 24 + ($29 << 4 & 240) + ((HEAPU8[$pnt$168 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$42 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($42 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $42;
$45 = ($42 << 16 >> 16) * 7 | 0;
$47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1;
$51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$264;
$55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$61 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$62 = $61 << 16 >> 16;
$65 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$67 = $65 << 16 >> 16 > 0;
if ($61 << 16 >> 16 <= 0) {
if ($67) {
HEAP16[$pnt2$367 >> 1] = $65;
$167 = $66 * 7 | 0;
$169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1;
$173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$264;
$177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$075;
$181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0;
if ((HEAP32[$181 >> 2] | 0) < ($i$264 | 0)) HEAP32[$181 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$187 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($187 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $187;
$190 = ($187 << 16 >> 16) * 7 | 0;
$192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1;
$196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$264;
$200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$075;
$204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0;
if ((HEAP32[$204 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$204 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$207 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $207;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $207 << 16 >> 16;
$212 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $207;
break;
}
}
if ($67) {
$70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
if (($70 | 0) > ($73 | 0)) {
HEAP16[$pnt2$367 >> 1] = $73;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$056 >> 2] = $73;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$90 = $73;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $90 = $73;
} else {
HEAP16[$pnt2$367 >> 1] = $70;
if (($70 | 0) < ($73 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$153 >> 2] = $70;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$90 = $70;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $90 = $70;
}
$92 = ($90 << 16 >> 16) * 7 | 0;
$94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1;
$98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$264;
$102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$108 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($108 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $61;
$148 = $62 * 7 | 0;
$150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1;
$154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$264;
$158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$075;
$162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0;
if ((HEAP32[$162 >> 2] | 0) > ($i$264 | 0)) HEAP32[$162 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($113 | 0) > ($116 | 0)) {
HEAP16[$pnt2$367 >> 1] = $116;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$249 >> 2] = $116;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$133 = $116;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $133 = $116;
} else {
HEAP16[$pnt2$367 >> 1] = $113;
if (($113 | 0) < ($116 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$346 >> 2] = $113;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$133 = $113;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $133 = $113;
}
$135 = ($133 << 16 >> 16) * 7 | 0;
$137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1;
$141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$264;
$145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$227 = $pnt$168 + 2 | 0;
$228 = $pnt2$367 + 2 | 0;
$229 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $229;
$pnt$1$lcssa = $227;
$pnt2$3$lcssa = $228;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $229;
$pnt$168 = $227;
$pnt2$367 = $228;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$236 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$238 = HEAP32[$wk$443 >> 2] | 0;
if (($238 | 0) == ($i$341 | 0)) {
$244 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$244 = HEAP32[$labelInfo + 1179664 + ($238 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $244;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$248 = $labelInfo + 8 | 0;
$249 = $j$1$lcssa + -1 | 0;
HEAP32[$248 >> 2] = $249;
if (!$249) $$0 = 0; else {
_memset($236 | 0, 0, $249 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $249 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$256 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($256 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($256 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($256 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($256 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$248 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$270 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$271 = $i$537 * 7 | 0;
$274 = $labelInfo + 12 + ($270 << 2) | 0;
HEAP32[$274 >> 2] = (HEAP32[$274 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($271 << 2) >> 2] | 0);
$281 = $270 << 1;
$282 = $labelInfo + 655376 + ($281 << 3) | 0;
HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 1 << 2) >> 2] | 0);
$290 = $labelInfo + 655376 + (($281 | 1) << 3) | 0;
HEAPF64[$290 >> 3] = +HEAPF64[$290 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($271 + 2 << 2) >> 2] | 0);
$293 = $270 << 2;
$294 = $labelInfo + 131084 + ($293 << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($271 + 3 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($293 | 1) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($271 + 4 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($293 | 2) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($271 + 5 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) > ($312 | 0)) HEAP32[$308 >> 2] = $312;
$315 = $labelInfo + 131084 + (($293 | 3) << 2) | 0;
$319 = HEAP32[$labelInfo + 1310736 + ($271 + 6 << 2) >> 2] | 0;
if ((HEAP32[$315 >> 2] | 0) < ($319 | 0)) HEAP32[$315 >> 2] = $319;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$248 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$323 = $labelInfo + 12 + ($i$636 << 2) | 0;
$326 = $i$636 << 1;
$327 = $labelInfo + 655376 + ($326 << 3) | 0;
HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$323 >> 2] | 0);
$333 = $labelInfo + 655376 + (($326 | 1) << 3) | 0;
HEAPF64[$333 >> 3] = +HEAPF64[$333 >> 3] / +(HEAP32[$323 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$248 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabeling($image, $xsize, $ysize, $pixFormat, $debugMode, $labelingMode, $labelingThresh, $imageProcMode, $labelInfo, $image_thresh) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$pixFormat = $pixFormat | 0;
$debugMode = $debugMode | 0;
$labelingMode = $labelingMode | 0;
$labelingThresh = $labelingThresh | 0;
$imageProcMode = $imageProcMode | 0;
$labelInfo = $labelInfo | 0;
$image_thresh = $image_thresh | 0;
var $$0 = 0;
L1 : do switch ($debugMode | 0) {
case 0:
{
switch ($labelingMode | 0) {
case 1:
{
if ($image_thresh) {
$$0 = _arLabelingSubDBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0;
break L1;
}
switch ($imageProcMode | 0) {
case 0:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubDBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubDBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubDBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubDBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubDBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubDBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubDBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubDBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubDBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
case 1:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubDBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubDBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubDBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubDBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubDBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubDBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubDBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubDBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubDBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
}
break;
}
case 0:
{
if ($image_thresh) {
$$0 = _arLabelingSubDWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0;
break L1;
}
switch ($imageProcMode | 0) {
case 0:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubDWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubDWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubDWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubDWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubDWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubDWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubDWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubDWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubDWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
case 1:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubDWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubDWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubDWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubDWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubDWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubDWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubDWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubDWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubDWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
}
break;
}
case 1:
{
switch ($labelingMode | 0) {
case 1:
{
if ($image_thresh) {
$$0 = _arLabelingSubEBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0;
break L1;
}
switch ($imageProcMode | 0) {
case 0:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubEBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubEBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubEBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubEBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubEBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubEBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubEBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubEBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubEBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
case 1:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubEBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubEBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubEBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubEBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubEBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubEBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubEBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubEBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubEBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
}
break;
}
case 0:
{
if ($image_thresh) {
$$0 = _arLabelingSubEWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) | 0;
break L1;
}
switch ($imageProcMode | 0) {
case 0:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubEWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubEWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubEWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubEWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubEWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubEWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubEWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubEWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubEWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
case 1:
{
if ($pixFormat >>> 0 < 2) {
$$0 = _arLabelingSubEWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -2 | 0) == 2) {
$$0 = _arLabelingSubEWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
if (($pixFormat & -3 | 0) == 4) {
$$0 = _arLabelingSubEWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
}
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
{
$$0 = _arLabelingSubEWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 8:
{
$$0 = _arLabelingSubEWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 7:
{
$$0 = _arLabelingSubEWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 9:
{
$$0 = _arLabelingSubEWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 10:
{
$$0 = _arLabelingSubEWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
case 11:
{
$$0 = _arLabelingSubEWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) | 0;
break L1;
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
}
break;
}
default:
_exit(0);
} while (0);
return $$0 | 0;
}
function _arLabelingSubEWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $112 = 0, $115 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $228 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 2) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if (((HEAPU8[$pnt$168 + 2 >> 0] | 0) + (HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 + 3 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$41 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($41 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $41;
$44 = ($41 << 16 >> 16) * 7 | 0;
$46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1;
$50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$264;
$54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$60 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$64 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$66 = $64 << 16 >> 16 > 0;
if ($60 << 16 >> 16 <= 0) {
if ($66) {
HEAP16[$pnt2$367 >> 1] = $64;
$166 = $65 * 7 | 0;
$168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1;
$172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$264;
$176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$075;
$180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0;
if ((HEAP32[$180 >> 2] | 0) < ($i$264 | 0)) HEAP32[$180 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$186 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($186 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $186;
$189 = ($186 << 16 >> 16) * 7 | 0;
$191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1;
$195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$264;
$199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$075;
$203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0;
if ((HEAP32[$203 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$203 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$206 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $206;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $206 << 16 >> 16;
$211 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $206;
break;
}
}
if ($66) {
$69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
if (($69 | 0) > ($72 | 0)) {
HEAP16[$pnt2$367 >> 1] = $72;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$056 >> 2] = $72;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$89 = $72;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $89 = $72;
} else {
HEAP16[$pnt2$367 >> 1] = $69;
if (($69 | 0) < ($72 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$153 >> 2] = $69;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$89 = $69;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $89 = $69;
}
$91 = ($89 << 16 >> 16) * 7 | 0;
$93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1;
$97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$264;
$101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$107 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($107 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $60;
$147 = $61 * 7 | 0;
$149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1;
$153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$264;
$157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$075;
$161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0;
if ((HEAP32[$161 >> 2] | 0) > ($i$264 | 0)) HEAP32[$161 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($112 | 0) > ($115 | 0)) {
HEAP16[$pnt2$367 >> 1] = $115;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$249 >> 2] = $115;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$132 = $115;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $132 = $115;
} else {
HEAP16[$pnt2$367 >> 1] = $112;
if (($112 | 0) < ($115 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$346 >> 2] = $112;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$132 = $112;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $132 = $112;
}
$134 = ($132 << 16 >> 16) * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$264;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$226 = $pnt$168 + 4 | 0;
$227 = $pnt2$367 + 2 | 0;
$228 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $228;
$pnt$1$lcssa = $226;
$pnt2$3$lcssa = $227;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $228;
$pnt$168 = $226;
$pnt2$367 = $227;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 8 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$237 = HEAP32[$wk$443 >> 2] | 0;
if (($237 | 0) == ($i$341 | 0)) {
$243 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $243;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$255 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$537 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$322 = $labelInfo + 12 + ($i$636 << 2) | 0;
$325 = $i$636 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $107 = 0, $112 = 0, $115 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $228 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $27 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $9 = 0, $91 = 0, $93 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 2) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if (((HEAPU8[$pnt$168 + 2 >> 0] | 0) + (HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 + 3 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$41 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($41 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $41;
$44 = ($41 << 16 >> 16) * 7 | 0;
$46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1;
$50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$264;
$54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$60 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$64 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$66 = $64 << 16 >> 16 > 0;
if ($60 << 16 >> 16 <= 0) {
if ($66) {
HEAP16[$pnt2$367 >> 1] = $64;
$166 = $65 * 7 | 0;
$168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1;
$172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$264;
$176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$075;
$180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0;
if ((HEAP32[$180 >> 2] | 0) < ($i$264 | 0)) HEAP32[$180 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$186 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($186 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $186;
$189 = ($186 << 16 >> 16) * 7 | 0;
$191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1;
$195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$264;
$199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$075;
$203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0;
if ((HEAP32[$203 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$203 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$206 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $206;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $206 << 16 >> 16;
$211 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $206;
break;
}
}
if ($66) {
$69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
if (($69 | 0) > ($72 | 0)) {
HEAP16[$pnt2$367 >> 1] = $72;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$056 >> 2] = $72;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$89 = $72;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $89 = $72;
} else {
HEAP16[$pnt2$367 >> 1] = $69;
if (($69 | 0) < ($72 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$153 >> 2] = $69;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$89 = $69;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $89 = $69;
}
$91 = ($89 << 16 >> 16) * 7 | 0;
$93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1;
$97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$264;
$101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$107 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($107 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $60;
$147 = $61 * 7 | 0;
$149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1;
$153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$264;
$157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$075;
$161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0;
if ((HEAP32[$161 >> 2] | 0) > ($i$264 | 0)) HEAP32[$161 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($112 | 0) > ($115 | 0)) {
HEAP16[$pnt2$367 >> 1] = $115;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$249 >> 2] = $115;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$132 = $115;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $132 = $115;
} else {
HEAP16[$pnt2$367 >> 1] = $112;
if (($112 | 0) < ($115 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$346 >> 2] = $112;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$132 = $112;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $132 = $112;
}
$134 = ($132 << 16 >> 16) * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$264;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$226 = $pnt$168 + 4 | 0;
$227 = $pnt2$367 + 2 | 0;
$228 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $228;
$pnt$1$lcssa = $226;
$pnt2$3$lcssa = $227;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $228;
$pnt$168 = $226;
$pnt2$367 = $227;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 8 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$237 = HEAP32[$wk$443 >> 2] | 0;
if (($237 | 0) == ($i$341 | 0)) {
$243 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $243;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$255 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$537 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$322 = $labelInfo + 12 + ($i$636 << 2) | 0;
$325 = $i$636 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 * 3 | 0) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($40 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $40;
$43 = ($40 << 16 >> 16) * 7 | 0;
$45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1;
$49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264;
$53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$60 = $59 << 16 >> 16;
$63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$65 = $63 << 16 >> 16 > 0;
if ($59 << 16 >> 16 <= 0) {
if ($65) {
HEAP16[$pnt2$367 >> 1] = $63;
$165 = $64 * 7 | 0;
$167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1;
$171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264;
$175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075;
$179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0;
if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$185 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($185 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $185;
$188 = ($185 << 16 >> 16) * 7 | 0;
$190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1;
$194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264;
$198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075;
$202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0;
if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$202 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$205 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $205;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16;
$210 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $205;
break;
}
}
if ($65) {
$68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
if (($68 | 0) > ($71 | 0)) {
HEAP16[$pnt2$367 >> 1] = $71;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$88 = $71;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $88 = $71;
} else {
HEAP16[$pnt2$367 >> 1] = $68;
if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$88 = $68;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $88 = $68;
}
$90 = ($88 << 16 >> 16) * 7 | 0;
$92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1;
$96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264;
$100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$106 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($106 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $59;
$146 = $60 * 7 | 0;
$148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1;
$152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264;
$156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075;
$160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0;
if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($111 | 0) > ($114 | 0)) {
HEAP16[$pnt2$367 >> 1] = $114;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$131 = $114;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $131 = $114;
} else {
HEAP16[$pnt2$367 >> 1] = $111;
if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$131 = $111;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $131 = $111;
}
$133 = ($131 << 16 >> 16) * 7 | 0;
$135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1;
$139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264;
$143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$225 = $pnt$168 + 3 | 0;
$226 = $pnt2$367 + 2 | 0;
$227 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $227;
$pnt$1$lcssa = $225;
$pnt2$3$lcssa = $226;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $227;
$pnt$168 = $225;
$pnt2$367 = $226;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 6 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$234 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$236 = HEAP32[$wk$443 >> 2] | 0;
if (($236 | 0) == ($i$341 | 0)) {
$242 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $242;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$246 = $labelInfo + 8 | 0;
$247 = $j$1$lcssa + -1 | 0;
HEAP32[$246 >> 2] = $247;
if (!$247) $$0 = 0; else {
_memset($234 | 0, 0, $247 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$254 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$269 = $i$537 * 7 | 0;
$272 = $labelInfo + 12 + ($268 << 2) | 0;
HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0);
$279 = $268 << 1;
$280 = $labelInfo + 655376 + ($279 << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0);
$288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0;
HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0);
$291 = $268 << 2;
$292 = $labelInfo + 131084 + ($291 << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310;
$313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0;
$317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0;
if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$246 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$321 = $labelInfo + 12 + ($i$636 << 2) | 0;
$324 = $i$636 << 1;
$325 = $labelInfo + 655376 + ($324 << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0);
$331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 * 3 | 0) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($40 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $40;
$43 = ($40 << 16 >> 16) * 7 | 0;
$45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1;
$49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264;
$53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$60 = $59 << 16 >> 16;
$63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$65 = $63 << 16 >> 16 > 0;
if ($59 << 16 >> 16 <= 0) {
if ($65) {
HEAP16[$pnt2$367 >> 1] = $63;
$165 = $64 * 7 | 0;
$167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1;
$171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264;
$175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075;
$179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0;
if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$185 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($185 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $185;
$188 = ($185 << 16 >> 16) * 7 | 0;
$190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1;
$194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264;
$198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075;
$202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0;
if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$202 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$205 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $205;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16;
$210 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $205;
break;
}
}
if ($65) {
$68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
if (($68 | 0) > ($71 | 0)) {
HEAP16[$pnt2$367 >> 1] = $71;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$88 = $71;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $88 = $71;
} else {
HEAP16[$pnt2$367 >> 1] = $68;
if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$88 = $68;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $88 = $68;
}
$90 = ($88 << 16 >> 16) * 7 | 0;
$92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1;
$96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264;
$100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$106 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($106 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $59;
$146 = $60 * 7 | 0;
$148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1;
$152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264;
$156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075;
$160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0;
if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($111 | 0) > ($114 | 0)) {
HEAP16[$pnt2$367 >> 1] = $114;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$131 = $114;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $131 = $114;
} else {
HEAP16[$pnt2$367 >> 1] = $111;
if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$131 = $111;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $131 = $111;
}
$133 = ($131 << 16 >> 16) * 7 | 0;
$135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1;
$139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264;
$143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$225 = $pnt$168 + 3 | 0;
$226 = $pnt2$367 + 2 | 0;
$227 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $227;
$pnt$1$lcssa = $225;
$pnt2$3$lcssa = $226;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $227;
$pnt$168 = $225;
$pnt2$367 = $226;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 6 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$234 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$236 = HEAP32[$wk$443 >> 2] | 0;
if (($236 | 0) == ($i$341 | 0)) {
$242 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $242;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$246 = $labelInfo + 8 | 0;
$247 = $j$1$lcssa + -1 | 0;
HEAP32[$246 >> 2] = $247;
if (!$247) $$0 = 0; else {
_memset($234 | 0, 0, $247 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$254 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$269 = $i$537 * 7 | 0;
$272 = $labelInfo + 12 + ($268 << 2) | 0;
HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0);
$279 = $268 << 1;
$280 = $labelInfo + 655376 + ($279 << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0);
$288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0;
HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0);
$291 = $268 << 2;
$292 = $labelInfo + 131084 + ($291 << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310;
$313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0;
$317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0;
if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$246 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$321 = $labelInfo + 12 + ($i$636 << 2) | 0;
$324 = $i$636 << 1;
$325 = $labelInfo + 655376 + ($324 << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0);
$331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 2) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($40 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $40;
$43 = ($40 << 16 >> 16) * 7 | 0;
$45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1;
$49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264;
$53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$60 = $59 << 16 >> 16;
$63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$65 = $63 << 16 >> 16 > 0;
if ($59 << 16 >> 16 <= 0) {
if ($65) {
HEAP16[$pnt2$367 >> 1] = $63;
$165 = $64 * 7 | 0;
$167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1;
$171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264;
$175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075;
$179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0;
if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$185 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($185 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $185;
$188 = ($185 << 16 >> 16) * 7 | 0;
$190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1;
$194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264;
$198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075;
$202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0;
if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$202 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$205 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $205;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16;
$210 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $205;
break;
}
}
if ($65) {
$68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
if (($68 | 0) > ($71 | 0)) {
HEAP16[$pnt2$367 >> 1] = $71;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$88 = $71;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $88 = $71;
} else {
HEAP16[$pnt2$367 >> 1] = $68;
if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$88 = $68;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $88 = $68;
}
$90 = ($88 << 16 >> 16) * 7 | 0;
$92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1;
$96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264;
$100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$106 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($106 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $59;
$146 = $60 * 7 | 0;
$148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1;
$152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264;
$156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075;
$160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0;
if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($111 | 0) > ($114 | 0)) {
HEAP16[$pnt2$367 >> 1] = $114;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$131 = $114;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $131 = $114;
} else {
HEAP16[$pnt2$367 >> 1] = $111;
if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$131 = $111;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $131 = $111;
}
$133 = ($131 << 16 >> 16) * 7 | 0;
$135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1;
$139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264;
$143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$225 = $pnt$168 + 4 | 0;
$226 = $pnt2$367 + 2 | 0;
$227 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $227;
$pnt$1$lcssa = $225;
$pnt2$3$lcssa = $226;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $227;
$pnt$168 = $225;
$pnt2$367 = $226;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 8 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$234 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$236 = HEAP32[$wk$443 >> 2] | 0;
if (($236 | 0) == ($i$341 | 0)) {
$242 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $242;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$246 = $labelInfo + 8 | 0;
$247 = $j$1$lcssa + -1 | 0;
HEAP32[$246 >> 2] = $247;
if (!$247) $$0 = 0; else {
_memset($234 | 0, 0, $247 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$254 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$269 = $i$537 * 7 | 0;
$272 = $labelInfo + 12 + ($268 << 2) | 0;
HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0);
$279 = $268 << 1;
$280 = $labelInfo + 655376 + ($279 << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0);
$288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0;
HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0);
$291 = $268 << 2;
$292 = $labelInfo + 131084 + ($291 << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310;
$313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0;
$317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0;
if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$246 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$321 = $labelInfo + 12 + ($i$636 << 2) | 0;
$324 = $i$636 << 1;
$325 = $labelInfo + 655376 + ($324 << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0);
$331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $106 = 0, $111 = 0, $114 = 0, $131 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $146 = 0, $148 = 0, $152 = 0, $156 = 0, $160 = 0, $165 = 0, $167 = 0, $17 = 0, $171 = 0, $175 = 0, $179 = 0, $18 = 0, $185 = 0, $188 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $202 = 0, $205 = 0, $210 = 0, $225 = 0, $226 = 0, $227 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $27 = 0, $272 = 0, $279 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $40 = 0, $43 = 0, $45 = 0, $49 = 0, $53 = 0, $59 = 0, $60 = 0, $63 = 0, $64 = 0, $65 = 0, $68 = 0, $71 = 0, $88 = 0, $9 = 0, $90 = 0, $92 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$27 = ($10 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $18 | 0;
$j$075 = 1;
$pnt$079 = $image + ($18 << 2) | 0;
$pnt2$278 = $0 + ($18 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($27) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if (((HEAPU8[$pnt$168 + 1 >> 0] | 0) + (HEAPU8[$pnt$168 >> 0] | 0) + (HEAPU8[$pnt$168 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$40 = HEAP16[$pnt2$367 + ($19 << 1) >> 1] | 0;
if ($40 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $40;
$43 = ($40 << 16 >> 16) * 7 | 0;
$45 = $labelInfo + 1310736 + ($43 + -7 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 1;
$49 = $labelInfo + 1310736 + ($43 + -6 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $i$264;
$53 = $labelInfo + 1310736 + ($43 + -5 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($43 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$59 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$60 = $59 << 16 >> 16;
$63 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$64 = $63 << 16 >> 16;
$65 = $63 << 16 >> 16 > 0;
if ($59 << 16 >> 16 <= 0) {
if ($65) {
HEAP16[$pnt2$367 >> 1] = $63;
$165 = $64 * 7 | 0;
$167 = $labelInfo + 1310736 + ($165 + -7 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 1;
$171 = $labelInfo + 1310736 + ($165 + -6 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $i$264;
$175 = $labelInfo + 1310736 + ($165 + -5 << 2) | 0;
HEAP32[$175 >> 2] = (HEAP32[$175 >> 2] | 0) + $j$075;
$179 = $labelInfo + 1310736 + ($165 + -3 << 2) | 0;
if ((HEAP32[$179 >> 2] | 0) < ($i$264 | 0)) HEAP32[$179 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($165 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$185 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($185 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $185;
$188 = ($185 << 16 >> 16) * 7 | 0;
$190 = $labelInfo + 1310736 + ($188 + -7 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + 1;
$194 = $labelInfo + 1310736 + ($188 + -6 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $i$264;
$198 = $labelInfo + 1310736 + ($188 + -5 << 2) | 0;
HEAP32[$198 >> 2] = (HEAP32[$198 >> 2] | 0) + $j$075;
$202 = $labelInfo + 1310736 + ($188 + -3 << 2) | 0;
if ((HEAP32[$202 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$202 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$205 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $205;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $205 << 16 >> 16;
$210 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($210 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($210 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($210 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($210 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $205;
break;
}
}
if ($65) {
$68 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$71 = HEAP32[$labelInfo + 1179664 + ($64 + -1 << 2) >> 2] | 0;
if (($68 | 0) > ($71 | 0)) {
HEAP16[$pnt2$367 >> 1] = $71;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $17;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$056 >> 2] = $71;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$88 = $71;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $88 = $71;
} else {
HEAP16[$pnt2$367 >> 1] = $68;
if (($68 | 0) < ($71 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $17;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$153 >> 2] = $68;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$88 = $68;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $88 = $68;
}
$90 = ($88 << 16 >> 16) * 7 | 0;
$92 = $labelInfo + 1310736 + ($90 + -7 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + 1;
$96 = $labelInfo + 1310736 + ($90 + -6 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $i$264;
$100 = $labelInfo + 1310736 + ($90 + -5 << 2) | 0;
HEAP32[$100 >> 2] = (HEAP32[$100 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($90 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$106 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($106 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $59;
$146 = $60 * 7 | 0;
$148 = $labelInfo + 1310736 + ($146 + -7 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + 1;
$152 = $labelInfo + 1310736 + ($146 + -6 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $i$264;
$156 = $labelInfo + 1310736 + ($146 + -5 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + $j$075;
$160 = $labelInfo + 1310736 + ($146 + -4 << 2) | 0;
if ((HEAP32[$160 >> 2] | 0) > ($i$264 | 0)) HEAP32[$160 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($146 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$111 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
$114 = HEAP32[$labelInfo + 1179664 + (($106 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($111 | 0) > ($114 | 0)) {
HEAP16[$pnt2$367 >> 1] = $114;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $17;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$249 >> 2] = $114;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$131 = $114;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $131 = $114;
} else {
HEAP16[$pnt2$367 >> 1] = $111;
if (($111 | 0) < ($114 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $17;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$346 >> 2] = $111;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$131 = $111;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $131 = $111;
}
$133 = ($131 << 16 >> 16) * 7 | 0;
$135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1;
$139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$264;
$143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$225 = $pnt$168 + 4 | 0;
$226 = $pnt2$367 + 2 | 0;
$227 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($10 | 0)) {
$dpnt$1$lcssa = $227;
$pnt$1$lcssa = $225;
$pnt2$3$lcssa = $226;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $227;
$pnt$168 = $225;
$pnt2$367 = $226;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 8 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$234 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $17;
while (1) {
$236 = HEAP32[$wk$443 >> 2] | 0;
if (($236 | 0) == ($i$341 | 0)) {
$242 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $242;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$246 = $labelInfo + 8 | 0;
$247 = $j$1$lcssa + -1 | 0;
HEAP32[$246 >> 2] = $247;
if (!$247) $$0 = 0; else {
_memset($234 | 0, 0, $247 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$254 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$246 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$268 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$269 = $i$537 * 7 | 0;
$272 = $labelInfo + 12 + ($268 << 2) | 0;
HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0);
$279 = $268 << 1;
$280 = $labelInfo + 655376 + ($279 << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0);
$288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0;
HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0);
$291 = $268 << 2;
$292 = $labelInfo + 131084 + ($291 << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310;
$313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0;
$317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0;
if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$246 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$321 = $labelInfo + 12 + ($i$636 << 2) | 0;
$324 = $i$636 << 1;
$325 = $labelInfo + 655376 + ($324 << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0);
$331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$246 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $107 = 0, $11 = 0, $110 = 0, $127 = 0, $129 = 0, $131 = 0, $135 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $156 = 0, $161 = 0, $163 = 0, $167 = 0, $171 = 0, $175 = 0, $18 = 0, $181 = 0, $184 = 0, $186 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $2 = 0, $201 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $230 = 0, $232 = 0, $238 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $36 = 0, $39 = 0, $41 = 0, $45 = 0, $49 = 0, $55 = 0, $56 = 0, $59 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $84 = 0, $86 = 0, $88 = 0, $92 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$30 = ($11 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($19 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($30) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$169 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$36 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($36 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $36;
$39 = ($36 << 16 >> 16) * 7 | 0;
$41 = $labelInfo + 1310736 + ($39 + -7 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 1;
$45 = $labelInfo + 1310736 + ($39 + -6 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $i$265;
$49 = $labelInfo + 1310736 + ($39 + -5 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($39 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$55 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$56 = $55 << 16 >> 16;
$59 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$60 = $59 << 16 >> 16;
$61 = $59 << 16 >> 16 > 0;
if ($55 << 16 >> 16 <= 0) {
if ($61) {
HEAP16[$pnt2$368 >> 1] = $59;
$161 = $60 * 7 | 0;
$163 = $labelInfo + 1310736 + ($161 + -7 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + 1;
$167 = $labelInfo + 1310736 + ($161 + -6 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $i$265;
$171 = $labelInfo + 1310736 + ($161 + -5 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $j$076;
$175 = $labelInfo + 1310736 + ($161 + -3 << 2) | 0;
if ((HEAP32[$175 >> 2] | 0) < ($i$265 | 0)) HEAP32[$175 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($161 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$181 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($181 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $181;
$184 = ($181 << 16 >> 16) * 7 | 0;
$186 = $labelInfo + 1310736 + ($184 + -7 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + 1;
$190 = $labelInfo + 1310736 + ($184 + -6 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $i$265;
$194 = $labelInfo + 1310736 + ($184 + -5 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $j$076;
$198 = $labelInfo + 1310736 + ($184 + -3 << 2) | 0;
if ((HEAP32[$198 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$198 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$201 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $201;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $201 << 16 >> 16;
$206 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($206 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($206 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($206 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($206 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($206 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($206 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($206 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $201;
break;
}
}
if ($61) {
$64 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
$67 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
if (($64 | 0) > ($67 | 0)) {
HEAP16[$pnt2$368 >> 1] = $67;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $18;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$057 >> 2] = $67;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$84 = $67;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $84 = $67;
} else {
HEAP16[$pnt2$368 >> 1] = $64;
if (($64 | 0) < ($67 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $18;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$154 >> 2] = $64;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$84 = $64;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $84 = $64;
}
$86 = ($84 << 16 >> 16) * 7 | 0;
$88 = $labelInfo + 1310736 + ($86 + -7 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + 1;
$92 = $labelInfo + 1310736 + ($86 + -6 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $i$265;
$96 = $labelInfo + 1310736 + ($86 + -5 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($86 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$102 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($102 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $55;
$142 = $56 * 7 | 0;
$144 = $labelInfo + 1310736 + ($142 + -7 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + 1;
$148 = $labelInfo + 1310736 + ($142 + -6 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $i$265;
$152 = $labelInfo + 1310736 + ($142 + -5 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $j$076;
$156 = $labelInfo + 1310736 + ($142 + -4 << 2) | 0;
if ((HEAP32[$156 >> 2] | 0) > ($i$265 | 0)) HEAP32[$156 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($142 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$107 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
$110 = HEAP32[$labelInfo + 1179664 + (($102 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($107 | 0) > ($110 | 0)) {
HEAP16[$pnt2$368 >> 1] = $110;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $18;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$250 >> 2] = $110;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$127 = $110;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $127 = $110;
} else {
HEAP16[$pnt2$368 >> 1] = $107;
if (($107 | 0) < ($110 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $18;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$347 >> 2] = $107;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$127 = $107;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $127 = $107;
}
$129 = ($127 << 16 >> 16) * 7 | 0;
$131 = $labelInfo + 1310736 + ($129 + -7 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + 1;
$135 = $labelInfo + 1310736 + ($129 + -6 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $i$265;
$139 = $labelInfo + 1310736 + ($129 + -5 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$221 = $pnt$169 + 4 | 0;
$222 = $pnt2$368 + 2 | 0;
$223 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($11 | 0)) {
$dpnt$1$lcssa = $223;
$pnt$1$lcssa = $221;
$pnt2$3$lcssa = $222;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $223;
$pnt$169 = $221;
$pnt2$368 = $222;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$230 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $18;
while (1) {
$232 = HEAP32[$wk$444 >> 2] | 0;
if (($232 | 0) == ($i$342 | 0)) {
$238 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $238;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$242 = $labelInfo + 8 | 0;
$243 = $j$1$lcssa + -1 | 0;
HEAP32[$242 >> 2] = $243;
if (!$243) $$0 = 0; else {
_memset($230 | 0, 0, $243 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$250 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$242 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$264 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$265 = $i$538 * 7 | 0;
$268 = $labelInfo + 12 + ($264 << 2) | 0;
HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0);
$275 = $264 << 1;
$276 = $labelInfo + 655376 + ($275 << 3) | 0;
HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0);
$284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0);
$287 = $264 << 2;
$288 = $labelInfo + 131084 + ($287 << 2) | 0;
$292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0;
if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292;
$295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0;
$299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0;
if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299;
$302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$242 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$317 = $labelInfo + 12 + ($i$637 << 2) | 0;
$320 = $i$637 << 1;
$321 = $labelInfo + 655376 + ($320 << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0);
$327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0;
HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$242 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $107 = 0, $11 = 0, $110 = 0, $127 = 0, $129 = 0, $131 = 0, $135 = 0, $139 = 0, $142 = 0, $144 = 0, $148 = 0, $152 = 0, $156 = 0, $161 = 0, $163 = 0, $167 = 0, $171 = 0, $175 = 0, $18 = 0, $181 = 0, $184 = 0, $186 = 0, $19 = 0, $190 = 0, $194 = 0, $198 = 0, $2 = 0, $201 = 0, $206 = 0, $21 = 0, $221 = 0, $222 = 0, $223 = 0, $230 = 0, $232 = 0, $238 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $36 = 0, $39 = 0, $41 = 0, $45 = 0, $49 = 0, $55 = 0, $56 = 0, $59 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $84 = 0, $86 = 0, $88 = 0, $92 = 0, $96 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$30 = ($11 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($19 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($30) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$169 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$36 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($36 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $36;
$39 = ($36 << 16 >> 16) * 7 | 0;
$41 = $labelInfo + 1310736 + ($39 + -7 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + 1;
$45 = $labelInfo + 1310736 + ($39 + -6 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $i$265;
$49 = $labelInfo + 1310736 + ($39 + -5 << 2) | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($39 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$55 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$56 = $55 << 16 >> 16;
$59 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$60 = $59 << 16 >> 16;
$61 = $59 << 16 >> 16 > 0;
if ($55 << 16 >> 16 <= 0) {
if ($61) {
HEAP16[$pnt2$368 >> 1] = $59;
$161 = $60 * 7 | 0;
$163 = $labelInfo + 1310736 + ($161 + -7 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + 1;
$167 = $labelInfo + 1310736 + ($161 + -6 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $i$265;
$171 = $labelInfo + 1310736 + ($161 + -5 << 2) | 0;
HEAP32[$171 >> 2] = (HEAP32[$171 >> 2] | 0) + $j$076;
$175 = $labelInfo + 1310736 + ($161 + -3 << 2) | 0;
if ((HEAP32[$175 >> 2] | 0) < ($i$265 | 0)) HEAP32[$175 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($161 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$181 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($181 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $181;
$184 = ($181 << 16 >> 16) * 7 | 0;
$186 = $labelInfo + 1310736 + ($184 + -7 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + 1;
$190 = $labelInfo + 1310736 + ($184 + -6 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $i$265;
$194 = $labelInfo + 1310736 + ($184 + -5 << 2) | 0;
HEAP32[$194 >> 2] = (HEAP32[$194 >> 2] | 0) + $j$076;
$198 = $labelInfo + 1310736 + ($184 + -3 << 2) | 0;
if ((HEAP32[$198 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$198 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$201 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $201;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $201 << 16 >> 16;
$206 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($206 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($206 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($206 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($206 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($206 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($206 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($206 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $201;
break;
}
}
if ($61) {
$64 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
$67 = HEAP32[$labelInfo + 1179664 + ($60 + -1 << 2) >> 2] | 0;
if (($64 | 0) > ($67 | 0)) {
HEAP16[$pnt2$368 >> 1] = $67;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $18;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$057 >> 2] = $67;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$84 = $67;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $84 = $67;
} else {
HEAP16[$pnt2$368 >> 1] = $64;
if (($64 | 0) < ($67 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $18;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$154 >> 2] = $64;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$84 = $64;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $84 = $64;
}
$86 = ($84 << 16 >> 16) * 7 | 0;
$88 = $labelInfo + 1310736 + ($86 + -7 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + 1;
$92 = $labelInfo + 1310736 + ($86 + -6 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $i$265;
$96 = $labelInfo + 1310736 + ($86 + -5 << 2) | 0;
HEAP32[$96 >> 2] = (HEAP32[$96 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($86 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$102 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($102 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $55;
$142 = $56 * 7 | 0;
$144 = $labelInfo + 1310736 + ($142 + -7 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + 1;
$148 = $labelInfo + 1310736 + ($142 + -6 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $i$265;
$152 = $labelInfo + 1310736 + ($142 + -5 << 2) | 0;
HEAP32[$152 >> 2] = (HEAP32[$152 >> 2] | 0) + $j$076;
$156 = $labelInfo + 1310736 + ($142 + -4 << 2) | 0;
if ((HEAP32[$156 >> 2] | 0) > ($i$265 | 0)) HEAP32[$156 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($142 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$107 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
$110 = HEAP32[$labelInfo + 1179664 + (($102 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($107 | 0) > ($110 | 0)) {
HEAP16[$pnt2$368 >> 1] = $110;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $18;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$250 >> 2] = $110;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$127 = $110;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $127 = $110;
} else {
HEAP16[$pnt2$368 >> 1] = $107;
if (($107 | 0) < ($110 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $18;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$347 >> 2] = $107;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$127 = $107;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $127 = $107;
}
$129 = ($127 << 16 >> 16) * 7 | 0;
$131 = $labelInfo + 1310736 + ($129 + -7 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + 1;
$135 = $labelInfo + 1310736 + ($129 + -6 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $i$265;
$139 = $labelInfo + 1310736 + ($129 + -5 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$221 = $pnt$169 + 4 | 0;
$222 = $pnt2$368 + 2 | 0;
$223 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($11 | 0)) {
$dpnt$1$lcssa = $223;
$pnt$1$lcssa = $221;
$pnt2$3$lcssa = $222;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $223;
$pnt$169 = $221;
$pnt2$368 = $222;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$230 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $18;
while (1) {
$232 = HEAP32[$wk$444 >> 2] | 0;
if (($232 | 0) == ($i$342 | 0)) {
$238 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $238;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$242 = $labelInfo + 8 | 0;
$243 = $j$1$lcssa + -1 | 0;
HEAP32[$242 >> 2] = $243;
if (!$243) $$0 = 0; else {
_memset($230 | 0, 0, $243 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$250 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$242 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$264 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$265 = $i$538 * 7 | 0;
$268 = $labelInfo + 12 + ($264 << 2) | 0;
HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0);
$275 = $264 << 1;
$276 = $labelInfo + 655376 + ($275 << 3) | 0;
HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0);
$284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0);
$287 = $264 << 2;
$288 = $labelInfo + 131084 + ($287 << 2) | 0;
$292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0;
if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292;
$295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0;
$299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0;
if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299;
$302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$242 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$317 = $labelInfo + 12 + ($i$637 << 2) | 0;
$320 = $i$637 << 1;
$321 = $labelInfo + 655376 + ($320 << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0);
$327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0;
HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$242 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $106 = 0, $109 = 0, $11 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $138 = 0, $141 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $170 = 0, $174 = 0, $18 = 0, $180 = 0, $183 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $2 = 0, $200 = 0, $205 = 0, $21 = 0, $220 = 0, $221 = 0, $222 = 0, $229 = 0, $231 = 0, $237 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $35 = 0, $38 = 0, $40 = 0, $44 = 0, $48 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $60 = 0, $63 = 0, $66 = 0, $83 = 0, $85 = 0, $87 = 0, $91 = 0, $95 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$30 = ($11 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($19 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($30) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$35 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($35 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $35;
$38 = ($35 << 16 >> 16) * 7 | 0;
$40 = $labelInfo + 1310736 + ($38 + -7 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1;
$44 = $labelInfo + 1310736 + ($38 + -6 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $i$265;
$48 = $labelInfo + 1310736 + ($38 + -5 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($38 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$54 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$58 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$59 = $58 << 16 >> 16;
$60 = $58 << 16 >> 16 > 0;
if ($54 << 16 >> 16 <= 0) {
if ($60) {
HEAP16[$pnt2$368 >> 1] = $58;
$160 = $59 * 7 | 0;
$162 = $labelInfo + 1310736 + ($160 + -7 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 1;
$166 = $labelInfo + 1310736 + ($160 + -6 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $i$265;
$170 = $labelInfo + 1310736 + ($160 + -5 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $j$076;
$174 = $labelInfo + 1310736 + ($160 + -3 << 2) | 0;
if ((HEAP32[$174 >> 2] | 0) < ($i$265 | 0)) HEAP32[$174 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($160 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$180 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($180 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $180;
$183 = ($180 << 16 >> 16) * 7 | 0;
$185 = $labelInfo + 1310736 + ($183 + -7 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + 1;
$189 = $labelInfo + 1310736 + ($183 + -6 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $i$265;
$193 = $labelInfo + 1310736 + ($183 + -5 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $j$076;
$197 = $labelInfo + 1310736 + ($183 + -3 << 2) | 0;
if ((HEAP32[$197 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$197 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$200 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $200;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $200 << 16 >> 16;
$205 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($205 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($205 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($205 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($205 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($205 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($205 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($205 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $200;
break;
}
}
if ($60) {
$63 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
$66 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0;
if (($63 | 0) > ($66 | 0)) {
HEAP16[$pnt2$368 >> 1] = $66;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $18;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$057 >> 2] = $66;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$83 = $66;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $83 = $66;
} else {
HEAP16[$pnt2$368 >> 1] = $63;
if (($63 | 0) < ($66 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $18;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$154 >> 2] = $63;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$83 = $63;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $83 = $63;
}
$85 = ($83 << 16 >> 16) * 7 | 0;
$87 = $labelInfo + 1310736 + ($85 + -7 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 1;
$91 = $labelInfo + 1310736 + ($85 + -6 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $i$265;
$95 = $labelInfo + 1310736 + ($85 + -5 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($85 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$101 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($101 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $54;
$141 = $55 * 7 | 0;
$143 = $labelInfo + 1310736 + ($141 + -7 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + 1;
$147 = $labelInfo + 1310736 + ($141 + -6 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $i$265;
$151 = $labelInfo + 1310736 + ($141 + -5 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $j$076;
$155 = $labelInfo + 1310736 + ($141 + -4 << 2) | 0;
if ((HEAP32[$155 >> 2] | 0) > ($i$265 | 0)) HEAP32[$155 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($141 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$106 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
$109 = HEAP32[$labelInfo + 1179664 + (($101 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($106 | 0) > ($109 | 0)) {
HEAP16[$pnt2$368 >> 1] = $109;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $18;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$250 >> 2] = $109;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$126 = $109;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $126 = $109;
} else {
HEAP16[$pnt2$368 >> 1] = $106;
if (($106 | 0) < ($109 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $18;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$347 >> 2] = $106;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$126 = $106;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $126 = $106;
}
$128 = ($126 << 16 >> 16) * 7 | 0;
$130 = $labelInfo + 1310736 + ($128 + -7 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1;
$134 = $labelInfo + 1310736 + ($128 + -6 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $i$265;
$138 = $labelInfo + 1310736 + ($128 + -5 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$220 = $pnt$169 + 4 | 0;
$221 = $pnt2$368 + 2 | 0;
$222 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($11 | 0)) {
$dpnt$1$lcssa = $222;
$pnt$1$lcssa = $220;
$pnt2$3$lcssa = $221;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $222;
$pnt$169 = $220;
$pnt2$368 = $221;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$229 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $18;
while (1) {
$231 = HEAP32[$wk$444 >> 2] | 0;
if (($231 | 0) == ($i$342 | 0)) {
$237 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $237;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$241 = $labelInfo + 8 | 0;
$242 = $j$1$lcssa + -1 | 0;
HEAP32[$241 >> 2] = $242;
if (!$242) $$0 = 0; else {
_memset($229 | 0, 0, $242 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$249 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$241 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$263 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$264 = $i$538 * 7 | 0;
$267 = $labelInfo + 12 + ($263 << 2) | 0;
HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0);
$274 = $263 << 1;
$275 = $labelInfo + 655376 + ($274 << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0);
$283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0;
HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0);
$286 = $263 << 2;
$287 = $labelInfo + 131084 + ($286 << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$241 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$316 = $labelInfo + 12 + ($i$637 << 2) | 0;
$319 = $i$637 << 1;
$320 = $labelInfo + 655376 + ($319 << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0);
$326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$241 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $106 = 0, $109 = 0, $11 = 0, $126 = 0, $128 = 0, $130 = 0, $134 = 0, $138 = 0, $141 = 0, $143 = 0, $147 = 0, $151 = 0, $155 = 0, $160 = 0, $162 = 0, $166 = 0, $170 = 0, $174 = 0, $18 = 0, $180 = 0, $183 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $2 = 0, $200 = 0, $205 = 0, $21 = 0, $220 = 0, $221 = 0, $222 = 0, $229 = 0, $231 = 0, $237 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $3 = 0, $30 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $35 = 0, $38 = 0, $40 = 0, $44 = 0, $48 = 0, $54 = 0, $55 = 0, $58 = 0, $59 = 0, $60 = 0, $63 = 0, $66 = 0, $83 = 0, $85 = 0, $87 = 0, $91 = 0, $95 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = $0 + 1 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$30 = ($11 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 2) + 4) | 0;
$pnt2$279 = $2 + ($19 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($30) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$35 = HEAP16[$pnt2$368 + ($21 << 1) >> 1] | 0;
if ($35 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $35;
$38 = ($35 << 16 >> 16) * 7 | 0;
$40 = $labelInfo + 1310736 + ($38 + -7 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + 1;
$44 = $labelInfo + 1310736 + ($38 + -6 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $i$265;
$48 = $labelInfo + 1310736 + ($38 + -5 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($38 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$54 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$58 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$59 = $58 << 16 >> 16;
$60 = $58 << 16 >> 16 > 0;
if ($54 << 16 >> 16 <= 0) {
if ($60) {
HEAP16[$pnt2$368 >> 1] = $58;
$160 = $59 * 7 | 0;
$162 = $labelInfo + 1310736 + ($160 + -7 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + 1;
$166 = $labelInfo + 1310736 + ($160 + -6 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $i$265;
$170 = $labelInfo + 1310736 + ($160 + -5 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $j$076;
$174 = $labelInfo + 1310736 + ($160 + -3 << 2) | 0;
if ((HEAP32[$174 >> 2] | 0) < ($i$265 | 0)) HEAP32[$174 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($160 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$180 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($180 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $180;
$183 = ($180 << 16 >> 16) * 7 | 0;
$185 = $labelInfo + 1310736 + ($183 + -7 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + 1;
$189 = $labelInfo + 1310736 + ($183 + -6 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $i$265;
$193 = $labelInfo + 1310736 + ($183 + -5 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $j$076;
$197 = $labelInfo + 1310736 + ($183 + -3 << 2) | 0;
if ((HEAP32[$197 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$197 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$200 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $200;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $200 << 16 >> 16;
$205 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($205 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($205 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($205 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($205 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($205 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($205 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($205 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $200;
break;
}
}
if ($60) {
$63 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
$66 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0;
if (($63 | 0) > ($66 | 0)) {
HEAP16[$pnt2$368 >> 1] = $66;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $18;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$057 >> 2] = $66;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$83 = $66;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $83 = $66;
} else {
HEAP16[$pnt2$368 >> 1] = $63;
if (($63 | 0) < ($66 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $18;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$154 >> 2] = $63;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$83 = $63;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $83 = $63;
}
$85 = ($83 << 16 >> 16) * 7 | 0;
$87 = $labelInfo + 1310736 + ($85 + -7 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + 1;
$91 = $labelInfo + 1310736 + ($85 + -6 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $i$265;
$95 = $labelInfo + 1310736 + ($85 + -5 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($85 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$101 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($101 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $54;
$141 = $55 * 7 | 0;
$143 = $labelInfo + 1310736 + ($141 + -7 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + 1;
$147 = $labelInfo + 1310736 + ($141 + -6 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $i$265;
$151 = $labelInfo + 1310736 + ($141 + -5 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $j$076;
$155 = $labelInfo + 1310736 + ($141 + -4 << 2) | 0;
if ((HEAP32[$155 >> 2] | 0) > ($i$265 | 0)) HEAP32[$155 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($141 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$106 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
$109 = HEAP32[$labelInfo + 1179664 + (($101 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($106 | 0) > ($109 | 0)) {
HEAP16[$pnt2$368 >> 1] = $109;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $18;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$250 >> 2] = $109;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$126 = $109;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $126 = $109;
} else {
HEAP16[$pnt2$368 >> 1] = $106;
if (($106 | 0) < ($109 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $18;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$347 >> 2] = $106;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$126 = $106;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $126 = $106;
}
$128 = ($126 << 16 >> 16) * 7 | 0;
$130 = $labelInfo + 1310736 + ($128 + -7 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + 1;
$134 = $labelInfo + 1310736 + ($128 + -6 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $i$265;
$138 = $labelInfo + 1310736 + ($128 + -5 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$220 = $pnt$169 + 4 | 0;
$221 = $pnt2$368 + 2 | 0;
$222 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($11 | 0)) {
$dpnt$1$lcssa = $222;
$pnt$1$lcssa = $220;
$pnt2$3$lcssa = $221;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $222;
$pnt$169 = $220;
$pnt2$368 = $221;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$229 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $18;
while (1) {
$231 = HEAP32[$wk$444 >> 2] | 0;
if (($231 | 0) == ($i$342 | 0)) {
$237 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $237;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$241 = $labelInfo + 8 | 0;
$242 = $j$1$lcssa + -1 | 0;
HEAP32[$241 >> 2] = $242;
if (!$242) $$0 = 0; else {
_memset($229 | 0, 0, $242 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$249 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$241 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$263 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$264 = $i$538 * 7 | 0;
$267 = $labelInfo + 12 + ($263 << 2) | 0;
HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0);
$274 = $263 << 1;
$275 = $labelInfo + 655376 + ($274 << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0);
$283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0;
HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0);
$286 = $263 << 2;
$287 = $labelInfo + 131084 + ($286 << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$241 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$316 = $labelInfo + 12 + ($i$637 << 2) | 0;
$319 = $i$637 << 1;
$320 = $labelInfo + 655376 + ($319 << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0);
$326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$241 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $105 = 0, $108 = 0, $11 = 0, $125 = 0, $127 = 0, $129 = 0, $133 = 0, $137 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $154 = 0, $159 = 0, $161 = 0, $165 = 0, $169 = 0, $173 = 0, $179 = 0, $18 = 0, $182 = 0, $184 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $204 = 0, $219 = 0, $220 = 0, $221 = 0, $228 = 0, $230 = 0, $236 = 0, $240 = 0, $241 = 0, $248 = 0, $262 = 0, $263 = 0, $266 = 0, $273 = 0, $274 = 0, $282 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $3 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $315 = 0, $318 = 0, $319 = 0, $325 = 0, $34 = 0, $37 = 0, $39 = 0, $43 = 0, $47 = 0, $53 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $65 = 0, $82 = 0, $84 = 0, $86 = 0, $90 = 0, $94 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = $0 + 1 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = $xsize + 4 | 0;
L11 : do if (($3 | 0) > 1) {
$29 = ($11 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 1) + 2) | 0;
$pnt2$279 = $2 + ($19 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($29) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP8[$dpnt$167 >> 0] = -1;
$34 = HEAP16[$pnt2$368 + ($20 << 1) >> 1] | 0;
if ($34 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $34;
$37 = ($34 << 16 >> 16) * 7 | 0;
$39 = $labelInfo + 1310736 + ($37 + -7 << 2) | 0;
HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + 1;
$43 = $labelInfo + 1310736 + ($37 + -6 << 2) | 0;
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $i$265;
$47 = $labelInfo + 1310736 + ($37 + -5 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($37 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$53 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$54 = $53 << 16 >> 16;
$57 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$58 = $57 << 16 >> 16;
$59 = $57 << 16 >> 16 > 0;
if ($53 << 16 >> 16 <= 0) {
if ($59) {
HEAP16[$pnt2$368 >> 1] = $57;
$159 = $58 * 7 | 0;
$161 = $labelInfo + 1310736 + ($159 + -7 << 2) | 0;
HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + 1;
$165 = $labelInfo + 1310736 + ($159 + -6 << 2) | 0;
HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $i$265;
$169 = $labelInfo + 1310736 + ($159 + -5 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $j$076;
$173 = $labelInfo + 1310736 + ($159 + -3 << 2) | 0;
if ((HEAP32[$173 >> 2] | 0) < ($i$265 | 0)) HEAP32[$173 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($159 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$179 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($179 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $179;
$182 = ($179 << 16 >> 16) * 7 | 0;
$184 = $labelInfo + 1310736 + ($182 + -7 << 2) | 0;
HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + 1;
$188 = $labelInfo + 1310736 + ($182 + -6 << 2) | 0;
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $i$265;
$192 = $labelInfo + 1310736 + ($182 + -5 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $j$076;
$196 = $labelInfo + 1310736 + ($182 + -3 << 2) | 0;
if ((HEAP32[$196 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$196 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$199 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $199;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $199 << 16 >> 16;
$204 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($204 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($204 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($204 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($204 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($204 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($204 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($204 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $199;
break;
}
}
if ($59) {
$62 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0;
$65 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0;
if (($62 | 0) > ($65 | 0)) {
HEAP16[$pnt2$368 >> 1] = $65;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $18;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$057 >> 2] = $65;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$82 = $65;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $82 = $65;
} else {
HEAP16[$pnt2$368 >> 1] = $62;
if (($62 | 0) < ($65 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $18;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$154 >> 2] = $62;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$82 = $62;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $82 = $62;
}
$84 = ($82 << 16 >> 16) * 7 | 0;
$86 = $labelInfo + 1310736 + ($84 + -7 << 2) | 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 1;
$90 = $labelInfo + 1310736 + ($84 + -6 << 2) | 0;
HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $i$265;
$94 = $labelInfo + 1310736 + ($84 + -5 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($84 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$100 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($100 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $53;
$140 = $54 * 7 | 0;
$142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1;
$146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$265;
$150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$076;
$154 = $labelInfo + 1310736 + ($140 + -4 << 2) | 0;
if ((HEAP32[$154 >> 2] | 0) > ($i$265 | 0)) HEAP32[$154 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($140 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$105 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0;
$108 = HEAP32[$labelInfo + 1179664 + (($100 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($105 | 0) > ($108 | 0)) {
HEAP16[$pnt2$368 >> 1] = $108;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $18;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$250 >> 2] = $108;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$125 = $108;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $125 = $108;
} else {
HEAP16[$pnt2$368 >> 1] = $105;
if (($105 | 0) < ($108 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $18;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$347 >> 2] = $105;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$125 = $105;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $125 = $105;
}
$127 = ($125 << 16 >> 16) * 7 | 0;
$129 = $labelInfo + 1310736 + ($127 + -7 << 2) | 0;
HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1;
$133 = $labelInfo + 1310736 + ($127 + -6 << 2) | 0;
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $i$265;
$137 = $labelInfo + 1310736 + ($127 + -5 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$219 = $pnt$169 + 2 | 0;
$220 = $pnt2$368 + 2 | 0;
$221 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($11 | 0)) {
$dpnt$1$lcssa = $221;
$pnt$1$lcssa = $219;
$pnt2$3$lcssa = $220;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $221;
$pnt$169 = $219;
$pnt2$368 = $220;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$228 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $18;
while (1) {
$230 = HEAP32[$wk$444 >> 2] | 0;
if (($230 | 0) == ($i$342 | 0)) {
$236 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$236 = HEAP32[$labelInfo + 1179664 + ($230 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $236;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$240 = $labelInfo + 8 | 0;
$241 = $j$1$lcssa + -1 | 0;
HEAP32[$240 >> 2] = $241;
if (!$241) $$0 = 0; else {
_memset($228 | 0, 0, $241 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $241 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$248 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($248 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($248 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($248 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($248 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$240 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$262 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$263 = $i$538 * 7 | 0;
$266 = $labelInfo + 12 + ($262 << 2) | 0;
HEAP32[$266 >> 2] = (HEAP32[$266 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($263 << 2) >> 2] | 0);
$273 = $262 << 1;
$274 = $labelInfo + 655376 + ($273 << 3) | 0;
HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 1 << 2) >> 2] | 0);
$282 = $labelInfo + 655376 + (($273 | 1) << 3) | 0;
HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 2 << 2) >> 2] | 0);
$285 = $262 << 2;
$286 = $labelInfo + 131084 + ($285 << 2) | 0;
$290 = HEAP32[$labelInfo + 1310736 + ($263 + 3 << 2) >> 2] | 0;
if ((HEAP32[$286 >> 2] | 0) > ($290 | 0)) HEAP32[$286 >> 2] = $290;
$293 = $labelInfo + 131084 + (($285 | 1) << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($263 + 4 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) < ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($285 | 2) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($263 + 5 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) > ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($285 | 3) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($263 + 6 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) < ($311 | 0)) HEAP32[$307 >> 2] = $311;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$240 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$315 = $labelInfo + 12 + ($i$637 << 2) | 0;
$318 = $i$637 << 1;
$319 = $labelInfo + 655376 + ($318 << 3) | 0;
HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$315 >> 2] | 0);
$325 = $labelInfo + 655376 + (($318 | 1) << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$315 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$240 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $100 = 0, $105 = 0, $108 = 0, $11 = 0, $125 = 0, $127 = 0, $129 = 0, $133 = 0, $137 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $154 = 0, $159 = 0, $161 = 0, $165 = 0, $169 = 0, $173 = 0, $179 = 0, $18 = 0, $182 = 0, $184 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $199 = 0, $2 = 0, $20 = 0, $204 = 0, $219 = 0, $220 = 0, $221 = 0, $228 = 0, $230 = 0, $236 = 0, $240 = 0, $241 = 0, $248 = 0, $262 = 0, $263 = 0, $266 = 0, $273 = 0, $274 = 0, $282 = 0, $285 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $3 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $315 = 0, $318 = 0, $319 = 0, $325 = 0, $34 = 0, $37 = 0, $39 = 0, $43 = 0, $47 = 0, $53 = 0, $54 = 0, $57 = 0, $58 = 0, $59 = 0, $62 = 0, $65 = 0, $82 = 0, $84 = 0, $86 = 0, $90 = 0, $94 = 0, $dpnt$078 = 0, $dpnt$1$lcssa = 0, $dpnt$167 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$342 = 0, $i$440 = 0, $i$538 = 0, $i$637 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$143 = 0, $j$2 = 0, $k$056 = 0, $k$153 = 0, $k$249 = 0, $k$346 = 0, $pnt$080 = 0, $pnt$1$lcssa = 0, $pnt$169 = 0, $pnt1$091 = 0, $pnt1$185 = 0, $pnt2$090 = 0, $pnt2$184 = 0, $pnt2$279 = 0, $pnt2$3$lcssa = 0, $pnt2$368 = 0, $vararg_buffer = 0, $wk$057 = 0, $wk$154 = 0, $wk$250 = 0, $wk$347 = 0, $wk$444 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$089 = 0;
$pnt1$091 = $2;
$pnt2$090 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$090 >> 1] = 0;
HEAP16[$pnt1$091 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($0 | 0)) break; else {
$pnt1$091 = $pnt1$091 + 2 | 0;
$pnt2$090 = $pnt2$090 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$183 = 0;
$pnt1$185 = $2;
$pnt2$184 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$184 >> 1] = 0;
HEAP16[$pnt1$185 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($1 | 0)) break; else {
$pnt1$185 = $pnt1$185 + ($0 << 1) | 0;
$pnt2$184 = $pnt2$184 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = $0 + 1 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = $xsize + 4 | 0;
L11 : do if (($3 | 0) > 1) {
$29 = ($11 | 0) > 1;
$dpnt$078 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $19 | 0;
$j$076 = 1;
$pnt$080 = $image + (($xsize << 1) + 2) | 0;
$pnt2$279 = $2 + ($19 << 1) | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($29) {
$dpnt$167 = $dpnt$078;
$i$265 = 1;
$pnt$169 = $pnt$080;
$pnt2$368 = $pnt2$279;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$169 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$368 >> 1] = 0;
HEAP8[$dpnt$167 >> 0] = 0;
$wk_max$2 = $wk_max$160;
} else {
HEAP8[$dpnt$167 >> 0] = -1;
$34 = HEAP16[$pnt2$368 + ($20 << 1) >> 1] | 0;
if ($34 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $34;
$37 = ($34 << 16 >> 16) * 7 | 0;
$39 = $labelInfo + 1310736 + ($37 + -7 << 2) | 0;
HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + 1;
$43 = $labelInfo + 1310736 + ($37 + -6 << 2) | 0;
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $i$265;
$47 = $labelInfo + 1310736 + ($37 + -5 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($37 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$53 = HEAP16[$pnt2$368 + ($$sum1 << 1) >> 1] | 0;
$54 = $53 << 16 >> 16;
$57 = HEAP16[$pnt2$368 + ($$sum2 << 1) >> 1] | 0;
$58 = $57 << 16 >> 16;
$59 = $57 << 16 >> 16 > 0;
if ($53 << 16 >> 16 <= 0) {
if ($59) {
HEAP16[$pnt2$368 >> 1] = $57;
$159 = $58 * 7 | 0;
$161 = $labelInfo + 1310736 + ($159 + -7 << 2) | 0;
HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + 1;
$165 = $labelInfo + 1310736 + ($159 + -6 << 2) | 0;
HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $i$265;
$169 = $labelInfo + 1310736 + ($159 + -5 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $j$076;
$173 = $labelInfo + 1310736 + ($159 + -3 << 2) | 0;
if ((HEAP32[$173 >> 2] | 0) < ($i$265 | 0)) HEAP32[$173 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($159 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$179 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($179 << 16 >> 16 > 0) {
HEAP16[$pnt2$368 >> 1] = $179;
$182 = ($179 << 16 >> 16) * 7 | 0;
$184 = $labelInfo + 1310736 + ($182 + -7 << 2) | 0;
HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + 1;
$188 = $labelInfo + 1310736 + ($182 + -6 << 2) | 0;
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $i$265;
$192 = $labelInfo + 1310736 + ($182 + -5 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $j$076;
$196 = $labelInfo + 1310736 + ($182 + -3 << 2) | 0;
if ((HEAP32[$196 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$196 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$199 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$368 >> 1] = $199;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $199 << 16 >> 16;
$204 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($204 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($204 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($204 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($204 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($204 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($204 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($204 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $199;
break;
}
}
if ($59) {
$62 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0;
$65 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0;
if (($62 | 0) > ($65 | 0)) {
HEAP16[$pnt2$368 >> 1] = $65;
if (($wk_max$160 | 0) > 0) {
$k$056 = 0;
$wk$057 = $18;
while (1) {
if ((HEAP32[$wk$057 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$057 >> 2] = $65;
$k$056 = $k$056 + 1 | 0;
if (($k$056 | 0) >= ($wk_max$160 | 0)) {
$82 = $65;
break;
} else $wk$057 = $wk$057 + 4 | 0;
}
} else $82 = $65;
} else {
HEAP16[$pnt2$368 >> 1] = $62;
if (($62 | 0) < ($65 | 0) & ($wk_max$160 | 0) > 0) {
$k$153 = 0;
$wk$154 = $18;
while (1) {
if ((HEAP32[$wk$154 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$154 >> 2] = $62;
$k$153 = $k$153 + 1 | 0;
if (($k$153 | 0) >= ($wk_max$160 | 0)) {
$82 = $62;
break;
} else $wk$154 = $wk$154 + 4 | 0;
}
} else $82 = $62;
}
$84 = ($82 << 16 >> 16) * 7 | 0;
$86 = $labelInfo + 1310736 + ($84 + -7 << 2) | 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 1;
$90 = $labelInfo + 1310736 + ($84 + -6 << 2) | 0;
HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $i$265;
$94 = $labelInfo + 1310736 + ($84 + -5 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($84 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$100 = HEAP16[$pnt2$368 + -2 >> 1] | 0;
if ($100 << 16 >> 16 <= 0) {
HEAP16[$pnt2$368 >> 1] = $53;
$140 = $54 * 7 | 0;
$142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1;
$146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$265;
$150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$076;
$154 = $labelInfo + 1310736 + ($140 + -4 << 2) | 0;
if ((HEAP32[$154 >> 2] | 0) > ($i$265 | 0)) HEAP32[$154 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($140 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$105 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0;
$108 = HEAP32[$labelInfo + 1179664 + (($100 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($105 | 0) > ($108 | 0)) {
HEAP16[$pnt2$368 >> 1] = $108;
if (($wk_max$160 | 0) > 0) {
$k$249 = 0;
$wk$250 = $18;
while (1) {
if ((HEAP32[$wk$250 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$250 >> 2] = $108;
$k$249 = $k$249 + 1 | 0;
if (($k$249 | 0) >= ($wk_max$160 | 0)) {
$125 = $108;
break;
} else $wk$250 = $wk$250 + 4 | 0;
}
} else $125 = $108;
} else {
HEAP16[$pnt2$368 >> 1] = $105;
if (($105 | 0) < ($108 | 0) & ($wk_max$160 | 0) > 0) {
$k$346 = 0;
$wk$347 = $18;
while (1) {
if ((HEAP32[$wk$347 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$347 >> 2] = $105;
$k$346 = $k$346 + 1 | 0;
if (($k$346 | 0) >= ($wk_max$160 | 0)) {
$125 = $105;
break;
} else $wk$347 = $wk$347 + 4 | 0;
}
} else $125 = $105;
}
$127 = ($125 << 16 >> 16) * 7 | 0;
$129 = $labelInfo + 1310736 + ($127 + -7 << 2) | 0;
HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + 1;
$133 = $labelInfo + 1310736 + ($127 + -6 << 2) | 0;
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $i$265;
$137 = $labelInfo + 1310736 + ($127 + -5 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$219 = $pnt$169 + 2 | 0;
$220 = $pnt2$368 + 2 | 0;
$221 = $dpnt$167 + 1 | 0;
if (($i$265 | 0) >= ($11 | 0)) {
$dpnt$1$lcssa = $221;
$pnt$1$lcssa = $219;
$pnt2$3$lcssa = $220;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$167 = $221;
$pnt$169 = $219;
$pnt2$368 = $220;
$wk_max$160 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$078;
$pnt$1$lcssa = $pnt$080;
$pnt2$3$lcssa = $pnt2$279;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$078 = $dpnt$1$lcssa + 2 | 0;
$pnt$080 = $pnt$1$lcssa + $$sum | 0;
$pnt2$279 = $pnt2$3$lcssa + 4 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$228 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$342 = 1;
$j$143 = 1;
$wk$444 = $18;
while (1) {
$230 = HEAP32[$wk$444 >> 2] | 0;
if (($230 | 0) == ($i$342 | 0)) {
$236 = $j$143;
$j$2 = $j$143 + 1 | 0;
} else {
$236 = HEAP32[$labelInfo + 1179664 + ($230 + -1 << 2) >> 2] | 0;
$j$2 = $j$143;
}
HEAP32[$wk$444 >> 2] = $236;
if (($i$342 | 0) < ($wk_max$0$lcssa | 0)) {
$i$342 = $i$342 + 1 | 0;
$j$143 = $j$2;
$wk$444 = $wk$444 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$240 = $labelInfo + 8 | 0;
$241 = $j$1$lcssa + -1 | 0;
HEAP32[$240 >> 2] = $241;
if (!$241) $$0 = 0; else {
_memset($228 | 0, 0, $241 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $241 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$440 = 0;
do {
$248 = $i$440 << 2;
HEAP32[$labelInfo + 131084 + ($248 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($248 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($248 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($248 | 3) << 2) >> 2] = 0;
$i$440 = $i$440 + 1 | 0;
} while (($i$440 | 0) < (HEAP32[$240 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$538 = 0;
do {
$262 = (HEAP32[$labelInfo + 1179664 + ($i$538 << 2) >> 2] | 0) + -1 | 0;
$263 = $i$538 * 7 | 0;
$266 = $labelInfo + 12 + ($262 << 2) | 0;
HEAP32[$266 >> 2] = (HEAP32[$266 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($263 << 2) >> 2] | 0);
$273 = $262 << 1;
$274 = $labelInfo + 655376 + ($273 << 3) | 0;
HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 1 << 2) >> 2] | 0);
$282 = $labelInfo + 655376 + (($273 | 1) << 3) | 0;
HEAPF64[$282 >> 3] = +HEAPF64[$282 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($263 + 2 << 2) >> 2] | 0);
$285 = $262 << 2;
$286 = $labelInfo + 131084 + ($285 << 2) | 0;
$290 = HEAP32[$labelInfo + 1310736 + ($263 + 3 << 2) >> 2] | 0;
if ((HEAP32[$286 >> 2] | 0) > ($290 | 0)) HEAP32[$286 >> 2] = $290;
$293 = $labelInfo + 131084 + (($285 | 1) << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($263 + 4 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) < ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($285 | 2) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($263 + 5 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) > ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($285 | 3) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($263 + 6 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) < ($311 | 0)) HEAP32[$307 >> 2] = $311;
$i$538 = $i$538 + 1 | 0;
} while (($i$538 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$240 >> 2] | 0) > 0) {
$i$637 = 0;
do {
$315 = $labelInfo + 12 + ($i$637 << 2) | 0;
$318 = $i$637 << 1;
$319 = $labelInfo + 655376 + ($318 << 3) | 0;
HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$315 >> 2] | 0);
$325 = $labelInfo + 655376 + (($318 | 1) << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$315 >> 2] | 0);
$i$637 = $i$637 + 1 | 0;
} while (($i$637 | 0) < (HEAP32[$240 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $202 = 0, $217 = 0, $218 = 0, $219 = 0, $226 = 0, $228 = 0, $234 = 0, $238 = 0, $239 = 0, $246 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $271 = 0, $272 = 0, $280 = 0, $283 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $313 = 0, $316 = 0, $317 = 0, $32 = 0, $323 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $9 = 0, $92 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$26 = ($9 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$075 = 1;
$pnt$079 = $image + ($17 << 1) | 0;
$pnt2$278 = $0 + ($17 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($26) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if ((HEAPU8[$pnt$168 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$32 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0;
if ($32 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $32;
$35 = ($32 << 16 >> 16) * 7 | 0;
$37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1;
$41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$264;
$45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$51 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$55 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$56 = $55 << 16 >> 16;
$57 = $55 << 16 >> 16 > 0;
if ($51 << 16 >> 16 <= 0) {
if ($57) {
HEAP16[$pnt2$367 >> 1] = $55;
$157 = $56 * 7 | 0;
$159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1;
$163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$264;
$167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$075;
$171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0;
if ((HEAP32[$171 >> 2] | 0) < ($i$264 | 0)) HEAP32[$171 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$177 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($177 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $177;
$180 = ($177 << 16 >> 16) * 7 | 0;
$182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1;
$186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$264;
$190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$075;
$194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0;
if ((HEAP32[$194 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$194 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$197 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $197;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $197 << 16 >> 16;
$202 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $197;
break;
}
}
if ($57) {
$60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
if (($60 | 0) > ($63 | 0)) {
HEAP16[$pnt2$367 >> 1] = $63;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$056 >> 2] = $63;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$80 = $63;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $80 = $63;
} else {
HEAP16[$pnt2$367 >> 1] = $60;
if (($60 | 0) < ($63 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$153 >> 2] = $60;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$80 = $60;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $80 = $60;
}
$82 = ($80 << 16 >> 16) * 7 | 0;
$84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1;
$88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$264;
$92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$98 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($98 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $51;
$138 = $52 * 7 | 0;
$140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1;
$144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$264;
$148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$075;
$152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0;
if ((HEAP32[$152 >> 2] | 0) > ($i$264 | 0)) HEAP32[$152 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($103 | 0) > ($106 | 0)) {
HEAP16[$pnt2$367 >> 1] = $106;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$249 >> 2] = $106;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$123 = $106;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $123 = $106;
} else {
HEAP16[$pnt2$367 >> 1] = $103;
if (($103 | 0) < ($106 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$346 >> 2] = $103;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$123 = $103;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $123 = $103;
}
$125 = ($123 << 16 >> 16) * 7 | 0;
$127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1;
$131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$264;
$135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$217 = $pnt$168 + 2 | 0;
$218 = $pnt2$367 + 2 | 0;
$219 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $219;
$pnt$1$lcssa = $217;
$pnt2$3$lcssa = $218;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $219;
$pnt$168 = $217;
$pnt2$367 = $218;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$226 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$228 = HEAP32[$wk$443 >> 2] | 0;
if (($228 | 0) == ($i$341 | 0)) {
$234 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$234 = HEAP32[$labelInfo + 1179664 + ($228 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $234;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$238 = $labelInfo + 8 | 0;
$239 = $j$1$lcssa + -1 | 0;
HEAP32[$238 >> 2] = $239;
if (!$239) $$0 = 0; else {
_memset($226 | 0, 0, $239 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $239 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$246 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($246 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($246 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($246 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($246 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$238 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$260 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$261 = $i$537 * 7 | 0;
$264 = $labelInfo + 12 + ($260 << 2) | 0;
HEAP32[$264 >> 2] = (HEAP32[$264 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($261 << 2) >> 2] | 0);
$271 = $260 << 1;
$272 = $labelInfo + 655376 + ($271 << 3) | 0;
HEAPF64[$272 >> 3] = +HEAPF64[$272 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 1 << 2) >> 2] | 0);
$280 = $labelInfo + 655376 + (($271 | 1) << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 2 << 2) >> 2] | 0);
$283 = $260 << 2;
$284 = $labelInfo + 131084 + ($283 << 2) | 0;
$288 = HEAP32[$labelInfo + 1310736 + ($261 + 3 << 2) >> 2] | 0;
if ((HEAP32[$284 >> 2] | 0) > ($288 | 0)) HEAP32[$284 >> 2] = $288;
$291 = $labelInfo + 131084 + (($283 | 1) << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($261 + 4 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) < ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($283 | 2) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($261 + 5 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($283 | 3) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($261 + 6 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$238 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$313 = $labelInfo + 12 + ($i$636 << 2) | 0;
$316 = $i$636 << 1;
$317 = $labelInfo + 655376 + ($316 << 3) | 0;
HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$313 >> 2] | 0);
$323 = $labelInfo + 655376 + (($316 | 1) << 3) | 0;
HEAPF64[$323 >> 3] = +HEAPF64[$323 >> 3] / +(HEAP32[$313 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$238 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $202 = 0, $217 = 0, $218 = 0, $219 = 0, $226 = 0, $228 = 0, $234 = 0, $238 = 0, $239 = 0, $246 = 0, $26 = 0, $260 = 0, $261 = 0, $264 = 0, $271 = 0, $272 = 0, $280 = 0, $283 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $302 = 0, $305 = 0, $309 = 0, $313 = 0, $316 = 0, $317 = 0, $32 = 0, $323 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $9 = 0, $92 = 0, $98 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$26 = ($9 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$075 = 1;
$pnt$079 = $image + ($17 << 1) | 0;
$pnt2$278 = $0 + ($17 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($26) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if ((HEAPU8[$pnt$168 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$32 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0;
if ($32 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $32;
$35 = ($32 << 16 >> 16) * 7 | 0;
$37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1;
$41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$264;
$45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$51 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$55 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$56 = $55 << 16 >> 16;
$57 = $55 << 16 >> 16 > 0;
if ($51 << 16 >> 16 <= 0) {
if ($57) {
HEAP16[$pnt2$367 >> 1] = $55;
$157 = $56 * 7 | 0;
$159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1;
$163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$264;
$167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$075;
$171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0;
if ((HEAP32[$171 >> 2] | 0) < ($i$264 | 0)) HEAP32[$171 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$177 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($177 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $177;
$180 = ($177 << 16 >> 16) * 7 | 0;
$182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1;
$186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$264;
$190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$075;
$194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0;
if ((HEAP32[$194 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$194 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$197 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $197;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $197 << 16 >> 16;
$202 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $197;
break;
}
}
if ($57) {
$60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
if (($60 | 0) > ($63 | 0)) {
HEAP16[$pnt2$367 >> 1] = $63;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$056 >> 2] = $63;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$80 = $63;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $80 = $63;
} else {
HEAP16[$pnt2$367 >> 1] = $60;
if (($60 | 0) < ($63 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$153 >> 2] = $60;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$80 = $60;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $80 = $60;
}
$82 = ($80 << 16 >> 16) * 7 | 0;
$84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1;
$88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$264;
$92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$98 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($98 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $51;
$138 = $52 * 7 | 0;
$140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1;
$144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$264;
$148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$075;
$152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0;
if ((HEAP32[$152 >> 2] | 0) > ($i$264 | 0)) HEAP32[$152 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($103 | 0) > ($106 | 0)) {
HEAP16[$pnt2$367 >> 1] = $106;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$249 >> 2] = $106;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$123 = $106;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $123 = $106;
} else {
HEAP16[$pnt2$367 >> 1] = $103;
if (($103 | 0) < ($106 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$346 >> 2] = $103;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$123 = $103;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $123 = $103;
}
$125 = ($123 << 16 >> 16) * 7 | 0;
$127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1;
$131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$264;
$135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$217 = $pnt$168 + 2 | 0;
$218 = $pnt2$367 + 2 | 0;
$219 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $219;
$pnt$1$lcssa = $217;
$pnt2$3$lcssa = $218;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $219;
$pnt$168 = $217;
$pnt2$367 = $218;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$226 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$228 = HEAP32[$wk$443 >> 2] | 0;
if (($228 | 0) == ($i$341 | 0)) {
$234 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$234 = HEAP32[$labelInfo + 1179664 + ($228 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $234;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$238 = $labelInfo + 8 | 0;
$239 = $j$1$lcssa + -1 | 0;
HEAP32[$238 >> 2] = $239;
if (!$239) $$0 = 0; else {
_memset($226 | 0, 0, $239 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $239 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$246 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($246 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($246 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($246 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($246 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$238 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$260 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$261 = $i$537 * 7 | 0;
$264 = $labelInfo + 12 + ($260 << 2) | 0;
HEAP32[$264 >> 2] = (HEAP32[$264 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($261 << 2) >> 2] | 0);
$271 = $260 << 1;
$272 = $labelInfo + 655376 + ($271 << 3) | 0;
HEAPF64[$272 >> 3] = +HEAPF64[$272 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 1 << 2) >> 2] | 0);
$280 = $labelInfo + 655376 + (($271 | 1) << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($261 + 2 << 2) >> 2] | 0);
$283 = $260 << 2;
$284 = $labelInfo + 131084 + ($283 << 2) | 0;
$288 = HEAP32[$labelInfo + 1310736 + ($261 + 3 << 2) >> 2] | 0;
if ((HEAP32[$284 >> 2] | 0) > ($288 | 0)) HEAP32[$284 >> 2] = $288;
$291 = $labelInfo + 131084 + (($283 | 1) << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($261 + 4 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) < ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($283 | 2) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($261 + 5 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) > ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($283 | 3) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($261 + 6 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) < ($309 | 0)) HEAP32[$305 >> 2] = $309;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$238 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$313 = $labelInfo + 12 + ($i$636 << 2) | 0;
$316 = $i$636 << 1;
$317 = $labelInfo + 655376 + ($316 << 3) | 0;
HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$313 >> 2] | 0);
$323 = $labelInfo + 655376 + (($316 | 1) << 3) | 0;
HEAPF64[$323 >> 3] = +HEAPF64[$323 >> 3] / +(HEAP32[$313 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$238 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $26 = 0, $260 = 0, $263 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$26 = ($9 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$075 = 1;
$pnt$079 = $image + ($17 << 1) | 0;
$pnt2$278 = $0 + ($17 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($26) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$31 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0;
if ($31 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $31;
$34 = ($31 << 16 >> 16) * 7 | 0;
$36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1;
$40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$264;
$44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$50 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$54 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$56 = $54 << 16 >> 16 > 0;
if ($50 << 16 >> 16 <= 0) {
if ($56) {
HEAP16[$pnt2$367 >> 1] = $54;
$156 = $55 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$264;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$075;
$170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) < ($i$264 | 0)) HEAP32[$170 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$176 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($176 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $176;
$179 = ($176 << 16 >> 16) * 7 | 0;
$181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1;
$185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$264;
$189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$075;
$193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0;
if ((HEAP32[$193 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$193 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$196 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $196;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $196 << 16 >> 16;
$201 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $196;
break;
}
}
if ($56) {
$59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
if (($59 | 0) > ($62 | 0)) {
HEAP16[$pnt2$367 >> 1] = $62;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$056 >> 2] = $62;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$79 = $62;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $79 = $62;
} else {
HEAP16[$pnt2$367 >> 1] = $59;
if (($59 | 0) < ($62 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$153 >> 2] = $59;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$79 = $59;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $79 = $59;
}
$81 = ($79 << 16 >> 16) * 7 | 0;
$83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1;
$87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$264;
$91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$97 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($97 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $50;
$137 = $51 * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$264;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$075;
$151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0;
if ((HEAP32[$151 >> 2] | 0) > ($i$264 | 0)) HEAP32[$151 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($102 | 0) > ($105 | 0)) {
HEAP16[$pnt2$367 >> 1] = $105;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$249 >> 2] = $105;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$122 = $105;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $122 = $105;
} else {
HEAP16[$pnt2$367 >> 1] = $102;
if (($102 | 0) < ($105 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$346 >> 2] = $102;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$122 = $102;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $122 = $102;
}
$124 = ($122 << 16 >> 16) * 7 | 0;
$126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1;
$130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$264;
$134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$216 = $pnt$168 + 2 | 0;
$217 = $pnt2$367 + 2 | 0;
$218 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $218;
$pnt$1$lcssa = $216;
$pnt2$3$lcssa = $217;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $218;
$pnt$168 = $216;
$pnt2$367 = $217;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$225 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$227 = HEAP32[$wk$443 >> 2] | 0;
if (($227 | 0) == ($i$341 | 0)) {
$233 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $233;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$237 = $labelInfo + 8 | 0;
$238 = $j$1$lcssa + -1 | 0;
HEAP32[$237 >> 2] = $238;
if (!$238) $$0 = 0; else {
_memset($225 | 0, 0, $238 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$245 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$237 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$259 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$260 = $i$537 * 7 | 0;
$263 = $labelInfo + 12 + ($259 << 2) | 0;
HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0);
$270 = $259 << 1;
$271 = $labelInfo + 655376 + ($270 << 3) | 0;
HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0);
$279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0);
$282 = $259 << 2;
$283 = $labelInfo + 131084 + ($282 << 2) | 0;
$287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0;
if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287;
$290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0;
$294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0;
if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294;
$297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$237 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$312 = $labelInfo + 12 + ($i$636 << 2) | 0;
$315 = $i$636 << 1;
$316 = $labelInfo + 655376 + ($315 << 3) | 0;
HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0);
$322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0;
HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$237 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $193 = 0, $196 = 0, $201 = 0, $216 = 0, $217 = 0, $218 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $26 = 0, $260 = 0, $263 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $301 = 0, $304 = 0, $308 = 0, $31 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$26 = ($9 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$075 = 1;
$pnt$079 = $image + ($17 << 1) | 0;
$pnt2$278 = $0 + ($17 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($26) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$31 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0;
if ($31 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $31;
$34 = ($31 << 16 >> 16) * 7 | 0;
$36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1;
$40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$264;
$44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$50 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$54 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$56 = $54 << 16 >> 16 > 0;
if ($50 << 16 >> 16 <= 0) {
if ($56) {
HEAP16[$pnt2$367 >> 1] = $54;
$156 = $55 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$264;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$075;
$170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) < ($i$264 | 0)) HEAP32[$170 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$176 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($176 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $176;
$179 = ($176 << 16 >> 16) * 7 | 0;
$181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1;
$185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$264;
$189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$075;
$193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0;
if ((HEAP32[$193 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$193 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$196 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $196;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $196 << 16 >> 16;
$201 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $196;
break;
}
}
if ($56) {
$59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
if (($59 | 0) > ($62 | 0)) {
HEAP16[$pnt2$367 >> 1] = $62;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$056 >> 2] = $62;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$79 = $62;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $79 = $62;
} else {
HEAP16[$pnt2$367 >> 1] = $59;
if (($59 | 0) < ($62 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$153 >> 2] = $59;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$79 = $59;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $79 = $59;
}
$81 = ($79 << 16 >> 16) * 7 | 0;
$83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1;
$87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$264;
$91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$97 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($97 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $50;
$137 = $51 * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$264;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$075;
$151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0;
if ((HEAP32[$151 >> 2] | 0) > ($i$264 | 0)) HEAP32[$151 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($102 | 0) > ($105 | 0)) {
HEAP16[$pnt2$367 >> 1] = $105;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$249 >> 2] = $105;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$122 = $105;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $122 = $105;
} else {
HEAP16[$pnt2$367 >> 1] = $102;
if (($102 | 0) < ($105 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$346 >> 2] = $102;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$122 = $102;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $122 = $102;
}
$124 = ($122 << 16 >> 16) * 7 | 0;
$126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1;
$130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$264;
$134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$216 = $pnt$168 + 2 | 0;
$217 = $pnt2$367 + 2 | 0;
$218 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $218;
$pnt$1$lcssa = $216;
$pnt2$3$lcssa = $217;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $218;
$pnt$168 = $216;
$pnt2$367 = $217;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 4 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$225 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$227 = HEAP32[$wk$443 >> 2] | 0;
if (($227 | 0) == ($i$341 | 0)) {
$233 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $233;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$237 = $labelInfo + 8 | 0;
$238 = $j$1$lcssa + -1 | 0;
HEAP32[$237 >> 2] = $238;
if (!$238) $$0 = 0; else {
_memset($225 | 0, 0, $238 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$245 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$237 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$259 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$260 = $i$537 * 7 | 0;
$263 = $labelInfo + 12 + ($259 << 2) | 0;
HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0);
$270 = $259 << 1;
$271 = $labelInfo + 655376 + ($270 << 3) | 0;
HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0);
$279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0);
$282 = $259 << 2;
$283 = $labelInfo + 131084 + ($282 << 2) | 0;
$287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0;
if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287;
$290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0;
$294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0;
if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294;
$297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$237 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$312 = $labelInfo + 12 + ($i$636 << 2) | 0;
$315 = $i$636 << 1;
$316 = $labelInfo + 655376 + ($315 << 3) | 0;
HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0);
$322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0;
HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$237 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $121 = 0, $123 = 0, $125 = 0, $129 = 0, $133 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $150 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0, $175 = 0, $178 = 0, $18 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $200 = 0, $215 = 0, $216 = 0, $217 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $25 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $30 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $321 = 0, $33 = 0, $35 = 0, $39 = 0, $43 = 0, $49 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $61 = 0, $78 = 0, $80 = 0, $82 = 0, $86 = 0, $9 = 0, $90 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$25 = ($9 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$075 = 1;
$pnt$079 = $image + $17 | 0;
$pnt2$278 = $0 + ($17 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($25) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP8[$dpnt$166 >> 0] = -1;
$30 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0;
if ($30 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $30;
$33 = ($30 << 16 >> 16) * 7 | 0;
$35 = $labelInfo + 1310736 + ($33 + -7 << 2) | 0;
HEAP32[$35 >> 2] = (HEAP32[$35 >> 2] | 0) + 1;
$39 = $labelInfo + 1310736 + ($33 + -6 << 2) | 0;
HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + $i$264;
$43 = $labelInfo + 1310736 + ($33 + -5 << 2) | 0;
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($33 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$49 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$50 = $49 << 16 >> 16;
$53 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$54 = $53 << 16 >> 16;
$55 = $53 << 16 >> 16 > 0;
if ($49 << 16 >> 16 <= 0) {
if ($55) {
HEAP16[$pnt2$367 >> 1] = $53;
$155 = $54 * 7 | 0;
$157 = $labelInfo + 1310736 + ($155 + -7 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + 1;
$161 = $labelInfo + 1310736 + ($155 + -6 << 2) | 0;
HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $i$264;
$165 = $labelInfo + 1310736 + ($155 + -5 << 2) | 0;
HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $j$075;
$169 = $labelInfo + 1310736 + ($155 + -3 << 2) | 0;
if ((HEAP32[$169 >> 2] | 0) < ($i$264 | 0)) HEAP32[$169 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($155 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$175 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($175 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $175;
$178 = ($175 << 16 >> 16) * 7 | 0;
$180 = $labelInfo + 1310736 + ($178 + -7 << 2) | 0;
HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + 1;
$184 = $labelInfo + 1310736 + ($178 + -6 << 2) | 0;
HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + $i$264;
$188 = $labelInfo + 1310736 + ($178 + -5 << 2) | 0;
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $j$075;
$192 = $labelInfo + 1310736 + ($178 + -3 << 2) | 0;
if ((HEAP32[$192 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$192 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$195 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $195;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $195 << 16 >> 16;
$200 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($200 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($200 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($200 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($200 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($200 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($200 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($200 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $195;
break;
}
}
if ($55) {
$58 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0;
$61 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0;
if (($58 | 0) > ($61 | 0)) {
HEAP16[$pnt2$367 >> 1] = $61;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$056 >> 2] = $61;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$78 = $61;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $78 = $61;
} else {
HEAP16[$pnt2$367 >> 1] = $58;
if (($58 | 0) < ($61 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$153 >> 2] = $58;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$78 = $58;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $78 = $58;
}
$80 = ($78 << 16 >> 16) * 7 | 0;
$82 = $labelInfo + 1310736 + ($80 + -7 << 2) | 0;
HEAP32[$82 >> 2] = (HEAP32[$82 >> 2] | 0) + 1;
$86 = $labelInfo + 1310736 + ($80 + -6 << 2) | 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + $i$264;
$90 = $labelInfo + 1310736 + ($80 + -5 << 2) | 0;
HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($80 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$96 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($96 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $49;
$136 = $50 * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$264;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$075;
$150 = $labelInfo + 1310736 + ($136 + -4 << 2) | 0;
if ((HEAP32[$150 >> 2] | 0) > ($i$264 | 0)) HEAP32[$150 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($136 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$101 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0;
$104 = HEAP32[$labelInfo + 1179664 + (($96 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($101 | 0) > ($104 | 0)) {
HEAP16[$pnt2$367 >> 1] = $104;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$249 >> 2] = $104;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$121 = $104;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $121 = $104;
} else {
HEAP16[$pnt2$367 >> 1] = $101;
if (($101 | 0) < ($104 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$346 >> 2] = $101;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$121 = $101;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $121 = $101;
}
$123 = ($121 << 16 >> 16) * 7 | 0;
$125 = $labelInfo + 1310736 + ($123 + -7 << 2) | 0;
HEAP32[$125 >> 2] = (HEAP32[$125 >> 2] | 0) + 1;
$129 = $labelInfo + 1310736 + ($123 + -6 << 2) | 0;
HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + $i$264;
$133 = $labelInfo + 1310736 + ($123 + -5 << 2) | 0;
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} else {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$215 = $pnt$168 + 1 | 0;
$216 = $pnt2$367 + 2 | 0;
$217 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $217;
$pnt$1$lcssa = $215;
$pnt2$3$lcssa = $216;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $217;
$pnt$168 = $215;
$pnt2$367 = $216;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 2 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$224 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$226 = HEAP32[$wk$443 >> 2] | 0;
if (($226 | 0) == ($i$341 | 0)) {
$232 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $232;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$236 = $labelInfo + 8 | 0;
$237 = $j$1$lcssa + -1 | 0;
HEAP32[$236 >> 2] = $237;
if (!$237) $$0 = 0; else {
_memset($224 | 0, 0, $237 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$244 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$236 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$258 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$259 = $i$537 * 7 | 0;
$262 = $labelInfo + 12 + ($258 << 2) | 0;
HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0);
$269 = $258 << 1;
$270 = $labelInfo + 655376 + ($269 << 3) | 0;
HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0);
$278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0;
HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0);
$281 = $258 << 2;
$282 = $labelInfo + 131084 + ($281 << 2) | 0;
$286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0;
if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286;
$289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0;
$293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0;
if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293;
$296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$236 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$311 = $labelInfo + 12 + ($i$636 << 2) | 0;
$314 = $i$636 << 1;
$315 = $labelInfo + 655376 + ($314 << 3) | 0;
HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0);
$321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$236 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubEBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $104 = 0, $121 = 0, $123 = 0, $125 = 0, $129 = 0, $133 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $150 = 0, $155 = 0, $157 = 0, $16 = 0, $161 = 0, $165 = 0, $169 = 0, $17 = 0, $175 = 0, $178 = 0, $18 = 0, $180 = 0, $184 = 0, $188 = 0, $192 = 0, $195 = 0, $200 = 0, $215 = 0, $216 = 0, $217 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $25 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $30 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $321 = 0, $33 = 0, $35 = 0, $39 = 0, $43 = 0, $49 = 0, $50 = 0, $53 = 0, $54 = 0, $55 = 0, $58 = 0, $61 = 0, $78 = 0, $80 = 0, $82 = 0, $86 = 0, $9 = 0, $90 = 0, $96 = 0, $dpnt$077 = 0, $dpnt$1$lcssa = 0, $dpnt$166 = 0, $i$088 = 0, $i$182 = 0, $i$264 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$075 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$089 = 0, $pnt2$183 = 0, $pnt2$278 = 0, $pnt2$3$lcssa = 0, $pnt2$367 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$074 = 0, $wk_max$1$lcssa = 0, $wk_max$159 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$088 = 0;
$pnt1$090 = $0;
$pnt2$089 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$089 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$088 = $i$088 + 1 | 0;
if (($i$088 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$089 = $pnt2$089 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$182 = 0;
$pnt1$184 = $0;
$pnt2$183 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$183 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$182 = $i$182 + 1 | 0;
if (($i$182 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$183 = $pnt2$183 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$25 = ($9 | 0) > 1;
$dpnt$077 = (HEAP32[$labelInfo + 4 >> 2] | 0) + $17 | 0;
$j$075 = 1;
$pnt$079 = $image + $17 | 0;
$pnt2$278 = $0 + ($17 << 1) | 0;
$wk_max$074 = 0;
L13 : while (1) {
if ($25) {
$dpnt$166 = $dpnt$077;
$i$264 = 1;
$pnt$168 = $pnt$079;
$pnt2$367 = $pnt2$278;
$wk_max$159 = $wk_max$074;
while (1) {
do if ((HEAPU8[$pnt$168 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$367 >> 1] = 0;
HEAP8[$dpnt$166 >> 0] = 0;
$wk_max$2 = $wk_max$159;
} else {
HEAP8[$dpnt$166 >> 0] = -1;
$30 = HEAP16[$pnt2$367 + ($18 << 1) >> 1] | 0;
if ($30 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $30;
$33 = ($30 << 16 >> 16) * 7 | 0;
$35 = $labelInfo + 1310736 + ($33 + -7 << 2) | 0;
HEAP32[$35 >> 2] = (HEAP32[$35 >> 2] | 0) + 1;
$39 = $labelInfo + 1310736 + ($33 + -6 << 2) | 0;
HEAP32[$39 >> 2] = (HEAP32[$39 >> 2] | 0) + $i$264;
$43 = $labelInfo + 1310736 + ($33 + -5 << 2) | 0;
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($33 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$49 = HEAP16[$pnt2$367 + ($$sum << 1) >> 1] | 0;
$50 = $49 << 16 >> 16;
$53 = HEAP16[$pnt2$367 + ($$sum1 << 1) >> 1] | 0;
$54 = $53 << 16 >> 16;
$55 = $53 << 16 >> 16 > 0;
if ($49 << 16 >> 16 <= 0) {
if ($55) {
HEAP16[$pnt2$367 >> 1] = $53;
$155 = $54 * 7 | 0;
$157 = $labelInfo + 1310736 + ($155 + -7 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + 1;
$161 = $labelInfo + 1310736 + ($155 + -6 << 2) | 0;
HEAP32[$161 >> 2] = (HEAP32[$161 >> 2] | 0) + $i$264;
$165 = $labelInfo + 1310736 + ($155 + -5 << 2) | 0;
HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + $j$075;
$169 = $labelInfo + 1310736 + ($155 + -3 << 2) | 0;
if ((HEAP32[$169 >> 2] | 0) < ($i$264 | 0)) HEAP32[$169 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($155 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$175 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($175 << 16 >> 16 > 0) {
HEAP16[$pnt2$367 >> 1] = $175;
$178 = ($175 << 16 >> 16) * 7 | 0;
$180 = $labelInfo + 1310736 + ($178 + -7 << 2) | 0;
HEAP32[$180 >> 2] = (HEAP32[$180 >> 2] | 0) + 1;
$184 = $labelInfo + 1310736 + ($178 + -6 << 2) | 0;
HEAP32[$184 >> 2] = (HEAP32[$184 >> 2] | 0) + $i$264;
$188 = $labelInfo + 1310736 + ($178 + -5 << 2) | 0;
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + $j$075;
$192 = $labelInfo + 1310736 + ($178 + -3 << 2) | 0;
if ((HEAP32[$192 >> 2] | 0) >= ($i$264 | 0)) {
$wk_max$2 = $wk_max$159;
break;
}
HEAP32[$192 >> 2] = $i$264;
$wk_max$2 = $wk_max$159;
break;
} else {
$195 = $wk_max$159 + 1 | 0;
if (($wk_max$159 | 0) > 32767) break L13;
HEAP16[$pnt2$367 >> 1] = $195;
HEAP32[$labelInfo + 1179664 + ($wk_max$159 << 2) >> 2] = $195 << 16 >> 16;
$200 = $wk_max$159 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($200 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($200 + 1 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($200 + 2 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($200 + 3 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($200 + 4 << 2) >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($200 + 5 << 2) >> 2] = $j$075;
HEAP32[$labelInfo + 1310736 + ($200 + 6 << 2) >> 2] = $j$075;
$wk_max$2 = $195;
break;
}
}
if ($55) {
$58 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0;
$61 = HEAP32[$labelInfo + 1179664 + ($54 + -1 << 2) >> 2] | 0;
if (($58 | 0) > ($61 | 0)) {
HEAP16[$pnt2$367 >> 1] = $61;
if (($wk_max$159 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$056 >> 2] = $61;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$159 | 0)) {
$78 = $61;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $78 = $61;
} else {
HEAP16[$pnt2$367 >> 1] = $58;
if (($58 | 0) < ($61 | 0) & ($wk_max$159 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$153 >> 2] = $58;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$159 | 0)) {
$78 = $58;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $78 = $58;
}
$80 = ($78 << 16 >> 16) * 7 | 0;
$82 = $labelInfo + 1310736 + ($80 + -7 << 2) | 0;
HEAP32[$82 >> 2] = (HEAP32[$82 >> 2] | 0) + 1;
$86 = $labelInfo + 1310736 + ($80 + -6 << 2) | 0;
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + $i$264;
$90 = $labelInfo + 1310736 + ($80 + -5 << 2) | 0;
HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + $j$075;
HEAP32[$labelInfo + 1310736 + ($80 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$96 = HEAP16[$pnt2$367 + -2 >> 1] | 0;
if ($96 << 16 >> 16 <= 0) {
HEAP16[$pnt2$367 >> 1] = $49;
$136 = $50 * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$264;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$075;
$150 = $labelInfo + 1310736 + ($136 + -4 << 2) | 0;
if ((HEAP32[$150 >> 2] | 0) > ($i$264 | 0)) HEAP32[$150 >> 2] = $i$264;
HEAP32[$labelInfo + 1310736 + ($136 + -1 << 2) >> 2] = $j$075;
$wk_max$2 = $wk_max$159;
break;
}
$101 = HEAP32[$labelInfo + 1179664 + ($50 + -1 << 2) >> 2] | 0;
$104 = HEAP32[$labelInfo + 1179664 + (($96 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($101 | 0) > ($104 | 0)) {
HEAP16[$pnt2$367 >> 1] = $104;
if (($wk_max$159 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$249 >> 2] = $104;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$159 | 0)) {
$121 = $104;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $121 = $104;
} else {
HEAP16[$pnt2$367 >> 1] = $101;
if (($101 | 0) < ($104 | 0) & ($wk_max$159 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$346 >> 2] = $101;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$159 | 0)) {
$121 = $101;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $121 = $101;
}
$123 = ($121 << 16 >> 16) * 7 | 0;
$125 = $labelInfo + 1310736 + ($123 + -7 << 2) | 0;
HEAP32[$125 >> 2] = (HEAP32[$125 >> 2] | 0) + 1;
$129 = $labelInfo + 1310736 + ($123 + -6 << 2) | 0;
HEAP32[$129 >> 2] = (HEAP32[$129 >> 2] | 0) + $i$264;
$133 = $labelInfo + 1310736 + ($123 + -5 << 2) | 0;
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + $j$075;
$wk_max$2 = $wk_max$159;
} while (0);
$i$264 = $i$264 + 1 | 0;
$215 = $pnt$168 + 1 | 0;
$216 = $pnt2$367 + 2 | 0;
$217 = $dpnt$166 + 1 | 0;
if (($i$264 | 0) >= ($9 | 0)) {
$dpnt$1$lcssa = $217;
$pnt$1$lcssa = $215;
$pnt2$3$lcssa = $216;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$dpnt$166 = $217;
$pnt$168 = $215;
$pnt2$367 = $216;
$wk_max$159 = $wk_max$2;
}
}
} else {
$dpnt$1$lcssa = $dpnt$077;
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$278;
$wk_max$1$lcssa = $wk_max$074;
}
$j$075 = $j$075 + 1 | 0;
if (($j$075 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$dpnt$077 = $dpnt$1$lcssa + 2 | 0;
$pnt$079 = $pnt$1$lcssa + 2 | 0;
$pnt2$278 = $pnt2$3$lcssa + 4 | 0;
$wk_max$074 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$224 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$226 = HEAP32[$wk$443 >> 2] | 0;
if (($226 | 0) == ($i$341 | 0)) {
$232 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $232;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$236 = $labelInfo + 8 | 0;
$237 = $j$1$lcssa + -1 | 0;
HEAP32[$236 >> 2] = $237;
if (!$237) $$0 = 0; else {
_memset($224 | 0, 0, $237 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$244 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$236 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$258 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$259 = $i$537 * 7 | 0;
$262 = $labelInfo + 12 + ($258 << 2) | 0;
HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0);
$269 = $258 << 1;
$270 = $labelInfo + 655376 + ($269 << 3) | 0;
HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0);
$278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0;
HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0);
$281 = $258 << 2;
$282 = $labelInfo + 131084 + ($281 << 2) | 0;
$286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0;
if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286;
$289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0;
$293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0;
if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293;
$296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$236 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$311 = $labelInfo + 12 + ($i$636 << 2) | 0;
$314 = $i$636 << 1;
$315 = $labelInfo + 655376 + ($314 << 3) | 0;
HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0);
$321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$236 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWZ($image, $xsize, $ysize, $image_thresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$image_thresh = $image_thresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $224 = 0, $23 = 0, $230 = 0, $234 = 0, $235 = 0, $242 = 0, $256 = 0, $257 = 0, $260 = 0, $267 = 0, $268 = 0, $276 = 0, $279 = 0, $28 = 0, $280 = 0, $284 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $313 = 0, $319 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$088 = 0, $pnt2$182 = 0, $pnt2$274 = 0, $pnt2$3$lcssa = 0, $pnt2$359 = 0, $pnt_thresh$078 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$167 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$089 = 0;
$pnt1$090 = $0;
$pnt2$088 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$088 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$088 = $pnt2$088 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$183 = 0;
$pnt1$184 = $0;
$pnt2$182 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$182 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$182 = $pnt2$182 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$23 = ($9 | 0) > 1;
$j$076 = 1;
$pnt$079 = $image + $17 | 0;
$pnt2$274 = $0 + ($17 << 1) | 0;
$pnt_thresh$078 = $image_thresh + $17 | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($23) {
$i$265 = 1;
$pnt$168 = $pnt$079;
$pnt2$359 = $pnt2$274;
$pnt_thresh$167 = $pnt_thresh$078;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$168 >> 0] | 0) > (HEAPU8[$pnt_thresh$167 >> 0] | 0)) {
$28 = HEAP16[$pnt2$359 + ($18 << 1) >> 1] | 0;
if ($28 << 16 >> 16 > 0) {
HEAP16[$pnt2$359 >> 1] = $28;
$31 = ($28 << 16 >> 16) * 7 | 0;
$33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0;
HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1;
$37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$265;
$41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$47 = HEAP16[$pnt2$359 + ($$sum << 1) >> 1] | 0;
$48 = $47 << 16 >> 16;
$51 = HEAP16[$pnt2$359 + ($$sum1 << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$53 = $51 << 16 >> 16 > 0;
if ($47 << 16 >> 16 <= 0) {
if ($53) {
HEAP16[$pnt2$359 >> 1] = $51;
$153 = $52 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$265;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$076;
$167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) < ($i$265 | 0)) HEAP32[$167 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$173 = HEAP16[$pnt2$359 + -2 >> 1] | 0;
if ($173 << 16 >> 16 > 0) {
HEAP16[$pnt2$359 >> 1] = $173;
$176 = ($173 << 16 >> 16) * 7 | 0;
$178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1;
$182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$265;
$186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$076;
$190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0;
if ((HEAP32[$190 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$190 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$193 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$359 >> 1] = $193;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $193 << 16 >> 16;
$198 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $193;
break;
}
}
if ($53) {
$56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
if (($56 | 0) > ($59 | 0)) {
HEAP16[$pnt2$359 >> 1] = $59;
if (($wk_max$160 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$056 >> 2] = $59;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$160 | 0)) {
$76 = $59;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $76 = $59;
} else {
HEAP16[$pnt2$359 >> 1] = $56;
if (($56 | 0) < ($59 | 0) & ($wk_max$160 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$153 >> 2] = $56;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$160 | 0)) {
$76 = $56;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $76 = $56;
}
$78 = ($76 << 16 >> 16) * 7 | 0;
$80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0;
HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1;
$84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$265;
$88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$94 = HEAP16[$pnt2$359 + -2 >> 1] | 0;
if ($94 << 16 >> 16 <= 0) {
HEAP16[$pnt2$359 >> 1] = $47;
$134 = $48 * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$265;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$076;
$148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0;
if ((HEAP32[$148 >> 2] | 0) > ($i$265 | 0)) HEAP32[$148 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($99 | 0) > ($102 | 0)) {
HEAP16[$pnt2$359 >> 1] = $102;
if (($wk_max$160 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$249 >> 2] = $102;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$160 | 0)) {
$119 = $102;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $119 = $102;
} else {
HEAP16[$pnt2$359 >> 1] = $99;
if (($99 | 0) < ($102 | 0) & ($wk_max$160 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$346 >> 2] = $99;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$160 | 0)) {
$119 = $99;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $119 = $99;
}
$121 = ($119 << 16 >> 16) * 7 | 0;
$123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0;
HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1;
$127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$265;
$131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} else {
HEAP16[$pnt2$359 >> 1] = 0;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$213 = $pnt$168 + 1 | 0;
$214 = $pnt_thresh$167 + 1 | 0;
$215 = $pnt2$359 + 2 | 0;
if (($i$265 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $213;
$pnt2$3$lcssa = $215;
$pnt_thresh$1$lcssa = $214;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$168 = $213;
$pnt2$359 = $215;
$pnt_thresh$167 = $214;
$wk_max$160 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$274;
$pnt_thresh$1$lcssa = $pnt_thresh$078;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$079 = $pnt$1$lcssa + 2 | 0;
$pnt2$274 = $pnt2$3$lcssa + 4 | 0;
$pnt_thresh$078 = $pnt_thresh$1$lcssa + 2 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$222 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$224 = HEAP32[$wk$443 >> 2] | 0;
if (($224 | 0) == ($i$341 | 0)) {
$230 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$230 = HEAP32[$labelInfo + 1179664 + ($224 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $230;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$234 = $labelInfo + 8 | 0;
$235 = $j$1$lcssa + -1 | 0;
HEAP32[$234 >> 2] = $235;
if (!$235) $$0 = 0; else {
_memset($222 | 0, 0, $235 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $235 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$242 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($242 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($242 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($242 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($242 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$234 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$256 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$257 = $i$537 * 7 | 0;
$260 = $labelInfo + 12 + ($256 << 2) | 0;
HEAP32[$260 >> 2] = (HEAP32[$260 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($257 << 2) >> 2] | 0);
$267 = $256 << 1;
$268 = $labelInfo + 655376 + ($267 << 3) | 0;
HEAPF64[$268 >> 3] = +HEAPF64[$268 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 1 << 2) >> 2] | 0);
$276 = $labelInfo + 655376 + (($267 | 1) << 3) | 0;
HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 2 << 2) >> 2] | 0);
$279 = $256 << 2;
$280 = $labelInfo + 131084 + ($279 << 2) | 0;
$284 = HEAP32[$labelInfo + 1310736 + ($257 + 3 << 2) >> 2] | 0;
if ((HEAP32[$280 >> 2] | 0) > ($284 | 0)) HEAP32[$280 >> 2] = $284;
$287 = $labelInfo + 131084 + (($279 | 1) << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($257 + 4 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) < ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($279 | 2) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($257 + 5 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($279 | 3) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($257 + 6 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$234 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$309 = $labelInfo + 12 + ($i$636 << 2) | 0;
$312 = $i$636 << 1;
$313 = $labelInfo + 655376 + ($312 << 3) | 0;
HEAPF64[$313 >> 3] = +HEAPF64[$313 >> 3] / +(HEAP32[$309 >> 2] | 0);
$319 = $labelInfo + 655376 + (($312 | 1) << 3) | 0;
HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$309 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$234 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBZ($image, $xsize, $ysize, $image_thresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$image_thresh = $image_thresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $224 = 0, $23 = 0, $230 = 0, $234 = 0, $235 = 0, $242 = 0, $256 = 0, $257 = 0, $260 = 0, $267 = 0, $268 = 0, $276 = 0, $279 = 0, $28 = 0, $280 = 0, $284 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $309 = 0, $31 = 0, $312 = 0, $313 = 0, $319 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$089 = 0, $i$183 = 0, $i$265 = 0, $i$341 = 0, $i$439 = 0, $i$537 = 0, $i$636 = 0, $j$076 = 0, $j$1$lcssa = 0, $j$142 = 0, $j$2 = 0, $k$055 = 0, $k$152 = 0, $k$248 = 0, $k$345 = 0, $pnt$079 = 0, $pnt$1$lcssa = 0, $pnt$168 = 0, $pnt1$090 = 0, $pnt1$184 = 0, $pnt2$088 = 0, $pnt2$182 = 0, $pnt2$274 = 0, $pnt2$3$lcssa = 0, $pnt2$359 = 0, $pnt_thresh$078 = 0, $pnt_thresh$1$lcssa = 0, $pnt_thresh$167 = 0, $vararg_buffer = 0, $wk$056 = 0, $wk$153 = 0, $wk$249 = 0, $wk$346 = 0, $wk$443 = 0, $wk_max$0$lcssa = 0, $wk_max$075 = 0, $wk_max$1$lcssa = 0, $wk_max$160 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$089 = 0;
$pnt1$090 = $0;
$pnt2$088 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$088 >> 1] = 0;
HEAP16[$pnt1$090 >> 1] = 0;
$i$089 = $i$089 + 1 | 0;
if (($i$089 | 0) >= ($xsize | 0)) break; else {
$pnt1$090 = $pnt1$090 + 2 | 0;
$pnt2$088 = $pnt2$088 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$183 = 0;
$pnt1$184 = $0;
$pnt2$182 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$182 >> 1] = 0;
HEAP16[$pnt1$184 >> 1] = 0;
$i$183 = $i$183 + 1 | 0;
if (($i$183 | 0) >= ($ysize | 0)) break; else {
$pnt1$184 = $pnt1$184 + ($xsize << 1) | 0;
$pnt2$182 = $pnt2$182 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$23 = ($9 | 0) > 1;
$j$076 = 1;
$pnt$079 = $image + $17 | 0;
$pnt2$274 = $0 + ($17 << 1) | 0;
$pnt_thresh$078 = $image_thresh + $17 | 0;
$wk_max$075 = 0;
L13 : while (1) {
if ($23) {
$i$265 = 1;
$pnt$168 = $pnt$079;
$pnt2$359 = $pnt2$274;
$pnt_thresh$167 = $pnt_thresh$078;
$wk_max$160 = $wk_max$075;
while (1) {
do if ((HEAPU8[$pnt$168 >> 0] | 0) > (HEAPU8[$pnt_thresh$167 >> 0] | 0)) {
HEAP16[$pnt2$359 >> 1] = 0;
$wk_max$2 = $wk_max$160;
} else {
$28 = HEAP16[$pnt2$359 + ($18 << 1) >> 1] | 0;
if ($28 << 16 >> 16 > 0) {
HEAP16[$pnt2$359 >> 1] = $28;
$31 = ($28 << 16 >> 16) * 7 | 0;
$33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0;
HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1;
$37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$265;
$41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$47 = HEAP16[$pnt2$359 + ($$sum << 1) >> 1] | 0;
$48 = $47 << 16 >> 16;
$51 = HEAP16[$pnt2$359 + ($$sum1 << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$53 = $51 << 16 >> 16 > 0;
if ($47 << 16 >> 16 <= 0) {
if ($53) {
HEAP16[$pnt2$359 >> 1] = $51;
$153 = $52 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$265;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$076;
$167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) < ($i$265 | 0)) HEAP32[$167 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$173 = HEAP16[$pnt2$359 + -2 >> 1] | 0;
if ($173 << 16 >> 16 > 0) {
HEAP16[$pnt2$359 >> 1] = $173;
$176 = ($173 << 16 >> 16) * 7 | 0;
$178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1;
$182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$265;
$186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$076;
$190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0;
if ((HEAP32[$190 >> 2] | 0) >= ($i$265 | 0)) {
$wk_max$2 = $wk_max$160;
break;
}
HEAP32[$190 >> 2] = $i$265;
$wk_max$2 = $wk_max$160;
break;
} else {
$193 = $wk_max$160 + 1 | 0;
if (($wk_max$160 | 0) > 32767) break L13;
HEAP16[$pnt2$359 >> 1] = $193;
HEAP32[$labelInfo + 1179664 + ($wk_max$160 << 2) >> 2] = $193 << 16 >> 16;
$198 = $wk_max$160 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$076;
HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$076;
$wk_max$2 = $193;
break;
}
}
if ($53) {
$56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
if (($56 | 0) > ($59 | 0)) {
HEAP16[$pnt2$359 >> 1] = $59;
if (($wk_max$160 | 0) > 0) {
$k$055 = 0;
$wk$056 = $16;
while (1) {
if ((HEAP32[$wk$056 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$056 >> 2] = $59;
$k$055 = $k$055 + 1 | 0;
if (($k$055 | 0) >= ($wk_max$160 | 0)) {
$76 = $59;
break;
} else $wk$056 = $wk$056 + 4 | 0;
}
} else $76 = $59;
} else {
HEAP16[$pnt2$359 >> 1] = $56;
if (($56 | 0) < ($59 | 0) & ($wk_max$160 | 0) > 0) {
$k$152 = 0;
$wk$153 = $16;
while (1) {
if ((HEAP32[$wk$153 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$153 >> 2] = $56;
$k$152 = $k$152 + 1 | 0;
if (($k$152 | 0) >= ($wk_max$160 | 0)) {
$76 = $56;
break;
} else $wk$153 = $wk$153 + 4 | 0;
}
} else $76 = $56;
}
$78 = ($76 << 16 >> 16) * 7 | 0;
$80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0;
HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1;
$84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$265;
$88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$076;
HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$94 = HEAP16[$pnt2$359 + -2 >> 1] | 0;
if ($94 << 16 >> 16 <= 0) {
HEAP16[$pnt2$359 >> 1] = $47;
$134 = $48 * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$265;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$076;
$148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0;
if ((HEAP32[$148 >> 2] | 0) > ($i$265 | 0)) HEAP32[$148 >> 2] = $i$265;
HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$076;
$wk_max$2 = $wk_max$160;
break;
}
$99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($99 | 0) > ($102 | 0)) {
HEAP16[$pnt2$359 >> 1] = $102;
if (($wk_max$160 | 0) > 0) {
$k$248 = 0;
$wk$249 = $16;
while (1) {
if ((HEAP32[$wk$249 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$249 >> 2] = $102;
$k$248 = $k$248 + 1 | 0;
if (($k$248 | 0) >= ($wk_max$160 | 0)) {
$119 = $102;
break;
} else $wk$249 = $wk$249 + 4 | 0;
}
} else $119 = $102;
} else {
HEAP16[$pnt2$359 >> 1] = $99;
if (($99 | 0) < ($102 | 0) & ($wk_max$160 | 0) > 0) {
$k$345 = 0;
$wk$346 = $16;
while (1) {
if ((HEAP32[$wk$346 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$346 >> 2] = $99;
$k$345 = $k$345 + 1 | 0;
if (($k$345 | 0) >= ($wk_max$160 | 0)) {
$119 = $99;
break;
} else $wk$346 = $wk$346 + 4 | 0;
}
} else $119 = $99;
}
$121 = ($119 << 16 >> 16) * 7 | 0;
$123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0;
HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1;
$127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$265;
$131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$076;
$wk_max$2 = $wk_max$160;
} while (0);
$i$265 = $i$265 + 1 | 0;
$213 = $pnt$168 + 1 | 0;
$214 = $pnt_thresh$167 + 1 | 0;
$215 = $pnt2$359 + 2 | 0;
if (($i$265 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $213;
$pnt2$3$lcssa = $215;
$pnt_thresh$1$lcssa = $214;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$168 = $213;
$pnt2$359 = $215;
$pnt_thresh$167 = $214;
$wk_max$160 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$079;
$pnt2$3$lcssa = $pnt2$274;
$pnt_thresh$1$lcssa = $pnt_thresh$078;
$wk_max$1$lcssa = $wk_max$075;
}
$j$076 = $j$076 + 1 | 0;
if (($j$076 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$079 = $pnt$1$lcssa + 2 | 0;
$pnt2$274 = $pnt2$3$lcssa + 4 | 0;
$pnt_thresh$078 = $pnt_thresh$1$lcssa + 2 | 0;
$wk_max$075 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$222 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$341 = 1;
$j$142 = 1;
$wk$443 = $16;
while (1) {
$224 = HEAP32[$wk$443 >> 2] | 0;
if (($224 | 0) == ($i$341 | 0)) {
$230 = $j$142;
$j$2 = $j$142 + 1 | 0;
} else {
$230 = HEAP32[$labelInfo + 1179664 + ($224 + -1 << 2) >> 2] | 0;
$j$2 = $j$142;
}
HEAP32[$wk$443 >> 2] = $230;
if (($i$341 | 0) < ($wk_max$0$lcssa | 0)) {
$i$341 = $i$341 + 1 | 0;
$j$142 = $j$2;
$wk$443 = $wk$443 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$234 = $labelInfo + 8 | 0;
$235 = $j$1$lcssa + -1 | 0;
HEAP32[$234 >> 2] = $235;
if (!$235) $$0 = 0; else {
_memset($222 | 0, 0, $235 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $235 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$439 = 0;
do {
$242 = $i$439 << 2;
HEAP32[$labelInfo + 131084 + ($242 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($242 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($242 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($242 | 3) << 2) >> 2] = 0;
$i$439 = $i$439 + 1 | 0;
} while (($i$439 | 0) < (HEAP32[$234 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$537 = 0;
do {
$256 = (HEAP32[$labelInfo + 1179664 + ($i$537 << 2) >> 2] | 0) + -1 | 0;
$257 = $i$537 * 7 | 0;
$260 = $labelInfo + 12 + ($256 << 2) | 0;
HEAP32[$260 >> 2] = (HEAP32[$260 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($257 << 2) >> 2] | 0);
$267 = $256 << 1;
$268 = $labelInfo + 655376 + ($267 << 3) | 0;
HEAPF64[$268 >> 3] = +HEAPF64[$268 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 1 << 2) >> 2] | 0);
$276 = $labelInfo + 655376 + (($267 | 1) << 3) | 0;
HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($257 + 2 << 2) >> 2] | 0);
$279 = $256 << 2;
$280 = $labelInfo + 131084 + ($279 << 2) | 0;
$284 = HEAP32[$labelInfo + 1310736 + ($257 + 3 << 2) >> 2] | 0;
if ((HEAP32[$280 >> 2] | 0) > ($284 | 0)) HEAP32[$280 >> 2] = $284;
$287 = $labelInfo + 131084 + (($279 | 1) << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($257 + 4 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) < ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($279 | 2) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($257 + 5 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) > ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($279 | 3) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($257 + 6 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) < ($305 | 0)) HEAP32[$301 >> 2] = $305;
$i$537 = $i$537 + 1 | 0;
} while (($i$537 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$234 >> 2] | 0) > 0) {
$i$636 = 0;
do {
$309 = $labelInfo + 12 + ($i$636 << 2) | 0;
$312 = $i$636 << 1;
$313 = $labelInfo + 655376 + ($312 << 3) | 0;
HEAPF64[$313 >> 3] = +HEAPF64[$313 >> 3] / +(HEAP32[$309 >> 2] | 0);
$319 = $labelInfo + 655376 + (($312 | 1) << 3) | 0;
HEAPF64[$319 >> 3] = +HEAPF64[$319 >> 3] / +(HEAP32[$309 >> 2] | 0);
$i$636 = $i$636 + 1 | 0;
} while (($i$636 | 0) < (HEAP32[$234 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
$30 = HEAPU8[$pnt$164 >> 0] | 0;
$36 = HEAPU8[$pnt$164 + 1 >> 0] | 0;
do if ((($30 & 248) + 12 + ($30 << 5 & 224) + ($36 >>> 3 & 24) + ($36 << 2 & 248) | 0) > ($11 | 0)) {
$47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0;
if ($47 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $47;
$50 = ($47 << 16 >> 16) * 7 | 0;
$52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1;
$56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256;
$60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0;
HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$71 = $70 << 16 >> 16;
$72 = $70 << 16 >> 16 > 0;
if ($66 << 16 >> 16 <= 0) {
if ($72) {
HEAP16[$pnt2$363 >> 1] = $70;
$172 = $71 * 7 | 0;
$174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1;
$178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256;
$182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069;
$186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0;
if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$192 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($192 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $192;
$195 = ($192 << 16 >> 16) * 7 | 0;
$197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1;
$201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256;
$205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0;
HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069;
$209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0;
if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$209 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$212 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $212;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16;
$217 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $212;
break;
}
}
if ($72) {
$75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0;
if (($75 | 0) > ($78 | 0)) {
HEAP16[$pnt2$363 >> 1] = $78;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$95 = $78;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $95 = $78;
} else {
HEAP16[$pnt2$363 >> 1] = $75;
if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$95 = $75;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $95 = $75;
}
$97 = ($95 << 16 >> 16) * 7 | 0;
$99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1;
$103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256;
$107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0;
HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$113 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($113 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $66;
$153 = $67 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069;
$167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($118 | 0) > ($121 | 0)) {
HEAP16[$pnt2$363 >> 1] = $121;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$138 = $121;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $138 = $121;
} else {
HEAP16[$pnt2$363 >> 1] = $118;
if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$138 = $118;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $138 = $118;
}
$140 = ($138 << 16 >> 16) * 7 | 0;
$142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1;
$146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256;
$150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$232 = $pnt$164 + 4 | 0;
$233 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $232;
$pnt2$3$lcssa = $233;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $232;
$pnt2$363 = $233;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$239 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$241 = HEAP32[$wk$440 >> 2] | 0;
if (($241 | 0) == ($i$338 | 0)) {
$247 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $247;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$251 = $labelInfo + 8 | 0;
$252 = $j$1$lcssa + -1 | 0;
HEAP32[$251 >> 2] = $252;
if (!$252) $$0 = 0; else {
_memset($239 | 0, 0, $252 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$259 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$274 = $i$534 * 7 | 0;
$277 = $labelInfo + 12 + ($273 << 2) | 0;
HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0);
$284 = $273 << 1;
$285 = $labelInfo + 655376 + ($284 << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0);
$293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0;
HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0);
$296 = $273 << 2;
$297 = $labelInfo + 131084 + ($296 << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0;
$315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0;
if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315;
$318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0;
$322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0;
if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$251 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$326 = $labelInfo + 12 + ($i$633 << 2) | 0;
$329 = $i$633 << 1;
$330 = $labelInfo + 655376 + ($329 << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0);
$336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0;
HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBI3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
$30 = HEAPU8[$pnt$164 >> 0] | 0;
$36 = HEAPU8[$pnt$164 + 1 >> 0] | 0;
do if ((($30 & 248) + 12 + ($30 << 5 & 224) + ($36 >>> 3 & 24) + ($36 << 2 & 248) | 0) > ($11 | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0;
if ($47 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $47;
$50 = ($47 << 16 >> 16) * 7 | 0;
$52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1;
$56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256;
$60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0;
HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$71 = $70 << 16 >> 16;
$72 = $70 << 16 >> 16 > 0;
if ($66 << 16 >> 16 <= 0) {
if ($72) {
HEAP16[$pnt2$363 >> 1] = $70;
$172 = $71 * 7 | 0;
$174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1;
$178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256;
$182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069;
$186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0;
if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$192 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($192 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $192;
$195 = ($192 << 16 >> 16) * 7 | 0;
$197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1;
$201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256;
$205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0;
HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069;
$209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0;
if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$209 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$212 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $212;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16;
$217 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $212;
break;
}
}
if ($72) {
$75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0;
if (($75 | 0) > ($78 | 0)) {
HEAP16[$pnt2$363 >> 1] = $78;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$95 = $78;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $95 = $78;
} else {
HEAP16[$pnt2$363 >> 1] = $75;
if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$95 = $75;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $95 = $75;
}
$97 = ($95 << 16 >> 16) * 7 | 0;
$99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1;
$103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256;
$107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0;
HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$113 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($113 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $66;
$153 = $67 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069;
$167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($118 | 0) > ($121 | 0)) {
HEAP16[$pnt2$363 >> 1] = $121;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$138 = $121;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $138 = $121;
} else {
HEAP16[$pnt2$363 >> 1] = $118;
if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$138 = $118;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $138 = $118;
}
$140 = ($138 << 16 >> 16) * 7 | 0;
$142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1;
$146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256;
$150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$232 = $pnt$164 + 4 | 0;
$233 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $232;
$pnt2$3$lcssa = $233;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $232;
$pnt2$363 = $233;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$239 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$241 = HEAP32[$wk$440 >> 2] | 0;
if (($241 | 0) == ($i$338 | 0)) {
$247 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $247;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$251 = $labelInfo + 8 | 0;
$252 = $j$1$lcssa + -1 | 0;
HEAP32[$251 >> 2] = $252;
if (!$252) $$0 = 0; else {
_memset($239 | 0, 0, $252 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$259 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$274 = $i$534 * 7 | 0;
$277 = $labelInfo + 12 + ($273 << 2) | 0;
HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0);
$284 = $273 << 1;
$285 = $labelInfo + 655376 + ($284 << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0);
$293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0;
HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0);
$296 = $273 << 2;
$297 = $labelInfo + 131084 + ($296 << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0;
$315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0;
if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315;
$318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0;
$322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0;
if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$251 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$326 = $labelInfo + 12 + ($i$633 << 2) | 0;
$329 = $i$633 << 1;
$330 = $labelInfo + 655376 + ($329 << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0);
$336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0;
HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
$30 = HEAPU8[$pnt$164 >> 0] | 0;
$36 = HEAPU8[$pnt$164 + 1 >> 0] | 0;
do if ((($30 & 248) + 10 + ($30 << 5 & 224) + ($36 >>> 3 & 28) + ($36 << 3 & 248) | 0) > ($11 | 0)) {
$47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0;
if ($47 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $47;
$50 = ($47 << 16 >> 16) * 7 | 0;
$52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1;
$56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256;
$60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0;
HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$71 = $70 << 16 >> 16;
$72 = $70 << 16 >> 16 > 0;
if ($66 << 16 >> 16 <= 0) {
if ($72) {
HEAP16[$pnt2$363 >> 1] = $70;
$172 = $71 * 7 | 0;
$174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1;
$178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256;
$182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069;
$186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0;
if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$192 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($192 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $192;
$195 = ($192 << 16 >> 16) * 7 | 0;
$197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1;
$201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256;
$205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0;
HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069;
$209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0;
if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$209 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$212 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $212;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16;
$217 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $212;
break;
}
}
if ($72) {
$75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0;
if (($75 | 0) > ($78 | 0)) {
HEAP16[$pnt2$363 >> 1] = $78;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$95 = $78;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $95 = $78;
} else {
HEAP16[$pnt2$363 >> 1] = $75;
if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$95 = $75;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $95 = $75;
}
$97 = ($95 << 16 >> 16) * 7 | 0;
$99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1;
$103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256;
$107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0;
HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$113 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($113 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $66;
$153 = $67 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069;
$167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($118 | 0) > ($121 | 0)) {
HEAP16[$pnt2$363 >> 1] = $121;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$138 = $121;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $138 = $121;
} else {
HEAP16[$pnt2$363 >> 1] = $118;
if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$138 = $118;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $138 = $118;
}
$140 = ($138 << 16 >> 16) * 7 | 0;
$142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1;
$146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256;
$150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$232 = $pnt$164 + 4 | 0;
$233 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $232;
$pnt2$3$lcssa = $233;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $232;
$pnt2$363 = $233;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$239 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$241 = HEAP32[$wk$440 >> 2] | 0;
if (($241 | 0) == ($i$338 | 0)) {
$247 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $247;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$251 = $labelInfo + 8 | 0;
$252 = $j$1$lcssa + -1 | 0;
HEAP32[$251 >> 2] = $252;
if (!$252) $$0 = 0; else {
_memset($239 | 0, 0, $252 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$259 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$274 = $i$534 * 7 | 0;
$277 = $labelInfo + 12 + ($273 << 2) | 0;
HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0);
$284 = $273 << 1;
$285 = $labelInfo + 655376 + ($284 << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0);
$293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0;
HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0);
$296 = $273 << 2;
$297 = $labelInfo + 131084 + ($296 << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0;
$315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0;
if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315;
$318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0;
$322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0;
if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$251 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$326 = $labelInfo + 12 + ($i$633 << 2) | 0;
$329 = $i$633 << 1;
$330 = $labelInfo + 655376 + ($329 << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0);
$336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0;
HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBI3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $107 = 0, $11 = 0, $113 = 0, $118 = 0, $12 = 0, $121 = 0, $138 = 0, $140 = 0, $142 = 0, $146 = 0, $150 = 0, $153 = 0, $155 = 0, $159 = 0, $163 = 0, $167 = 0, $172 = 0, $174 = 0, $178 = 0, $182 = 0, $186 = 0, $19 = 0, $192 = 0, $195 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $209 = 0, $21 = 0, $212 = 0, $217 = 0, $232 = 0, $233 = 0, $239 = 0, $241 = 0, $247 = 0, $251 = 0, $252 = 0, $259 = 0, $273 = 0, $274 = 0, $277 = 0, $28 = 0, $284 = 0, $285 = 0, $293 = 0, $296 = 0, $297 = 0, $3 = 0, $30 = 0, $301 = 0, $304 = 0, $308 = 0, $311 = 0, $315 = 0, $318 = 0, $322 = 0, $326 = 0, $329 = 0, $330 = 0, $336 = 0, $36 = 0, $47 = 0, $50 = 0, $52 = 0, $56 = 0, $60 = 0, $66 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $75 = 0, $78 = 0, $95 = 0, $97 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
$30 = HEAPU8[$pnt$164 >> 0] | 0;
$36 = HEAPU8[$pnt$164 + 1 >> 0] | 0;
do if ((($30 & 248) + 10 + ($30 << 5 & 224) + ($36 >>> 3 & 28) + ($36 << 3 & 248) | 0) > ($11 | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$47 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0;
if ($47 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $47;
$50 = ($47 << 16 >> 16) * 7 | 0;
$52 = $labelInfo + 1310736 + ($50 + -7 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + 1;
$56 = $labelInfo + 1310736 + ($50 + -6 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $i$256;
$60 = $labelInfo + 1310736 + ($50 + -5 << 2) | 0;
HEAP32[$60 >> 2] = (HEAP32[$60 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($50 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$66 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$70 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$71 = $70 << 16 >> 16;
$72 = $70 << 16 >> 16 > 0;
if ($66 << 16 >> 16 <= 0) {
if ($72) {
HEAP16[$pnt2$363 >> 1] = $70;
$172 = $71 * 7 | 0;
$174 = $labelInfo + 1310736 + ($172 + -7 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + 1;
$178 = $labelInfo + 1310736 + ($172 + -6 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $i$256;
$182 = $labelInfo + 1310736 + ($172 + -5 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $j$069;
$186 = $labelInfo + 1310736 + ($172 + -3 << 2) | 0;
if ((HEAP32[$186 >> 2] | 0) < ($i$256 | 0)) HEAP32[$186 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($172 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$192 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($192 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $192;
$195 = ($192 << 16 >> 16) * 7 | 0;
$197 = $labelInfo + 1310736 + ($195 + -7 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + 1;
$201 = $labelInfo + 1310736 + ($195 + -6 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $i$256;
$205 = $labelInfo + 1310736 + ($195 + -5 << 2) | 0;
HEAP32[$205 >> 2] = (HEAP32[$205 >> 2] | 0) + $j$069;
$209 = $labelInfo + 1310736 + ($195 + -3 << 2) | 0;
if ((HEAP32[$209 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$209 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$212 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $212;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $212 << 16 >> 16;
$217 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($217 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($217 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($217 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($217 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $212;
break;
}
}
if ($72) {
$75 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$78 = HEAP32[$labelInfo + 1179664 + ($71 + -1 << 2) >> 2] | 0;
if (($75 | 0) > ($78 | 0)) {
HEAP16[$pnt2$363 >> 1] = $78;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($75 | 0)) HEAP32[$wk$053 >> 2] = $78;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$95 = $78;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $95 = $78;
} else {
HEAP16[$pnt2$363 >> 1] = $75;
if (($75 | 0) < ($78 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($78 | 0)) HEAP32[$wk$150 >> 2] = $75;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$95 = $75;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $95 = $75;
}
$97 = ($95 << 16 >> 16) * 7 | 0;
$99 = $labelInfo + 1310736 + ($97 + -7 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 1;
$103 = $labelInfo + 1310736 + ($97 + -6 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $i$256;
$107 = $labelInfo + 1310736 + ($97 + -5 << 2) | 0;
HEAP32[$107 >> 2] = (HEAP32[$107 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($97 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$113 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($113 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $66;
$153 = $67 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$256;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$069;
$167 = $labelInfo + 1310736 + ($153 + -4 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) > ($i$256 | 0)) HEAP32[$167 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$118 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
$121 = HEAP32[$labelInfo + 1179664 + (($113 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($118 | 0) > ($121 | 0)) {
HEAP16[$pnt2$363 >> 1] = $121;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($118 | 0)) HEAP32[$wk$246 >> 2] = $121;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$138 = $121;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $138 = $121;
} else {
HEAP16[$pnt2$363 >> 1] = $118;
if (($118 | 0) < ($121 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($121 | 0)) HEAP32[$wk$343 >> 2] = $118;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$138 = $118;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $138 = $118;
}
$140 = ($138 << 16 >> 16) * 7 | 0;
$142 = $labelInfo + 1310736 + ($140 + -7 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + 1;
$146 = $labelInfo + 1310736 + ($140 + -6 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $i$256;
$150 = $labelInfo + 1310736 + ($140 + -5 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$232 = $pnt$164 + 4 | 0;
$233 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $232;
$pnt2$3$lcssa = $233;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $232;
$pnt2$363 = $233;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$239 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$241 = HEAP32[$wk$440 >> 2] | 0;
if (($241 | 0) == ($i$338 | 0)) {
$247 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$247 = HEAP32[$labelInfo + 1179664 + ($241 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $247;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$251 = $labelInfo + 8 | 0;
$252 = $j$1$lcssa + -1 | 0;
HEAP32[$251 >> 2] = $252;
if (!$252) $$0 = 0; else {
_memset($239 | 0, 0, $252 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $252 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$259 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($259 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($259 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($259 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($259 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$251 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$273 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$274 = $i$534 * 7 | 0;
$277 = $labelInfo + 12 + ($273 << 2) | 0;
HEAP32[$277 >> 2] = (HEAP32[$277 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($274 << 2) >> 2] | 0);
$284 = $273 << 1;
$285 = $labelInfo + 655376 + ($284 << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 1 << 2) >> 2] | 0);
$293 = $labelInfo + 655376 + (($284 | 1) << 3) | 0;
HEAPF64[$293 >> 3] = +HEAPF64[$293 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($274 + 2 << 2) >> 2] | 0);
$296 = $273 << 2;
$297 = $labelInfo + 131084 + ($296 << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($274 + 3 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($296 | 1) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($274 + 4 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$311 = $labelInfo + 131084 + (($296 | 2) << 2) | 0;
$315 = HEAP32[$labelInfo + 1310736 + ($274 + 5 << 2) >> 2] | 0;
if ((HEAP32[$311 >> 2] | 0) > ($315 | 0)) HEAP32[$311 >> 2] = $315;
$318 = $labelInfo + 131084 + (($296 | 3) << 2) | 0;
$322 = HEAP32[$labelInfo + 1310736 + ($274 + 6 << 2) >> 2] | 0;
if ((HEAP32[$318 >> 2] | 0) < ($322 | 0)) HEAP32[$318 >> 2] = $322;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$251 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$326 = $labelInfo + 12 + ($i$633 << 2) | 0;
$329 = $i$633 << 1;
$330 = $labelInfo + 655376 + ($329 << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$326 >> 2] | 0);
$336 = $labelInfo + 655376 + (($329 | 1) << 3) | 0;
HEAPF64[$336 >> 3] = +HEAPF64[$336 >> 3] / +(HEAP32[$326 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$251 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $109 = 0, $11 = 0, $114 = 0, $117 = 0, $12 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $170 = 0, $174 = 0, $178 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $208 = 0, $21 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $270 = 0, $273 = 0, $28 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
$30 = HEAPU8[$pnt$164 >> 0] | 0;
do if ((($30 & 240) + 24 + ($30 << 4 & 240) + ((HEAPU8[$pnt$164 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$43 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0;
if ($43 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $43;
$46 = ($43 << 16 >> 16) * 7 | 0;
$48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1;
$52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$256;
$56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$62 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$66 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$68 = $66 << 16 >> 16 > 0;
if ($62 << 16 >> 16 <= 0) {
if ($68) {
HEAP16[$pnt2$363 >> 1] = $66;
$168 = $67 * 7 | 0;
$170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1;
$174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$256;
$178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$069;
$182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0;
if ((HEAP32[$182 >> 2] | 0) < ($i$256 | 0)) HEAP32[$182 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$188 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($188 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $188;
$191 = ($188 << 16 >> 16) * 7 | 0;
$193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1;
$197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$256;
$201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$069;
$205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0;
if ((HEAP32[$205 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$205 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$208 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $208;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $208 << 16 >> 16;
$213 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $208;
break;
}
}
if ($68) {
$71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
if (($71 | 0) > ($74 | 0)) {
HEAP16[$pnt2$363 >> 1] = $74;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$053 >> 2] = $74;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$91 = $74;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $91 = $74;
} else {
HEAP16[$pnt2$363 >> 1] = $71;
if (($71 | 0) < ($74 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$150 >> 2] = $71;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$91 = $71;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $91 = $71;
}
$93 = ($91 << 16 >> 16) * 7 | 0;
$95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1;
$99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$256;
$103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$109 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($109 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $62;
$149 = $63 * 7 | 0;
$151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1;
$155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$256;
$159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$069;
$163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0;
if ((HEAP32[$163 >> 2] | 0) > ($i$256 | 0)) HEAP32[$163 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($114 | 0) > ($117 | 0)) {
HEAP16[$pnt2$363 >> 1] = $117;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$246 >> 2] = $117;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$134 = $117;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $134 = $117;
} else {
HEAP16[$pnt2$363 >> 1] = $114;
if (($114 | 0) < ($117 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$343 >> 2] = $114;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$134 = $114;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $134 = $114;
}
$136 = ($134 << 16 >> 16) * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$256;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$228 = $pnt$164 + 4 | 0;
$229 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $228;
$pnt2$3$lcssa = $229;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $228;
$pnt2$363 = $229;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$237 = HEAP32[$wk$440 >> 2] | 0;
if (($237 | 0) == ($i$338 | 0)) {
$243 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $243;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$255 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$534 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$322 = $labelInfo + 12 + ($i$633 << 2) | 0;
$325 = $i$633 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWI3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $109 = 0, $11 = 0, $114 = 0, $117 = 0, $12 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $170 = 0, $174 = 0, $178 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $2 = 0, $201 = 0, $205 = 0, $208 = 0, $21 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $269 = 0, $270 = 0, $273 = 0, $28 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $3 = 0, $30 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$21 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
$30 = HEAPU8[$pnt$164 >> 0] | 0;
do if ((($30 & 240) + 24 + ($30 << 4 & 240) + ((HEAPU8[$pnt$164 + 1 >> 0] | 0) & 240) | 0) > ($11 | 0)) {
$43 = HEAP16[$pnt2$363 + ($21 << 1) >> 1] | 0;
if ($43 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $43;
$46 = ($43 << 16 >> 16) * 7 | 0;
$48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1;
$52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$256;
$56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$62 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$66 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$68 = $66 << 16 >> 16 > 0;
if ($62 << 16 >> 16 <= 0) {
if ($68) {
HEAP16[$pnt2$363 >> 1] = $66;
$168 = $67 * 7 | 0;
$170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1;
$174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$256;
$178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$069;
$182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0;
if ((HEAP32[$182 >> 2] | 0) < ($i$256 | 0)) HEAP32[$182 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$188 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($188 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $188;
$191 = ($188 << 16 >> 16) * 7 | 0;
$193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1;
$197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$256;
$201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$069;
$205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0;
if ((HEAP32[$205 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$205 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$208 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $208;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $208 << 16 >> 16;
$213 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $208;
break;
}
}
if ($68) {
$71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
if (($71 | 0) > ($74 | 0)) {
HEAP16[$pnt2$363 >> 1] = $74;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$053 >> 2] = $74;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$91 = $74;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $91 = $74;
} else {
HEAP16[$pnt2$363 >> 1] = $71;
if (($71 | 0) < ($74 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$150 >> 2] = $71;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$91 = $71;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $91 = $71;
}
$93 = ($91 << 16 >> 16) * 7 | 0;
$95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1;
$99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$256;
$103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$109 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($109 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $62;
$149 = $63 * 7 | 0;
$151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1;
$155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$256;
$159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$069;
$163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0;
if ((HEAP32[$163 >> 2] | 0) > ($i$256 | 0)) HEAP32[$163 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($114 | 0) > ($117 | 0)) {
HEAP16[$pnt2$363 >> 1] = $117;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$246 >> 2] = $117;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$134 = $117;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $134 = $117;
} else {
HEAP16[$pnt2$363 >> 1] = $114;
if (($114 | 0) < ($117 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$343 >> 2] = $114;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$134 = $114;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $134 = $114;
}
$136 = ($134 << 16 >> 16) * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$256;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$228 = $pnt$164 + 4 | 0;
$229 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $228;
$pnt2$3$lcssa = $229;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $228;
$pnt2$363 = $229;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$237 = HEAP32[$wk$440 >> 2] | 0;
if (($237 | 0) == ($i$338 | 0)) {
$243 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $243;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$255 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$534 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$322 = $labelInfo + 12 + ($i$633 << 2) | 0;
$325 = $i$633 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 1) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
$26 = HEAPU8[$pnt$163 >> 0] | 0;
$32 = HEAPU8[$pnt$163 + 1 >> 0] | 0;
do if ((($26 & 248) + 12 + ($26 << 5 & 224) + ($32 >>> 3 & 24) + ($32 << 2 & 248) | 0) > ($9 | 0)) {
$43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($43 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $43;
$46 = ($43 << 16 >> 16) * 7 | 0;
$48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1;
$52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255;
$56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$68 = $66 << 16 >> 16 > 0;
if ($62 << 16 >> 16 <= 0) {
if ($68) {
HEAP16[$pnt2$362 >> 1] = $66;
$168 = $67 * 7 | 0;
$170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1;
$174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255;
$178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068;
$182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0;
if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$188 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($188 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $188;
$191 = ($188 << 16 >> 16) * 7 | 0;
$193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1;
$197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255;
$201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068;
$205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0;
if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$205 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$208 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $208;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16;
$213 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $208;
break;
}
}
if ($68) {
$71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
if (($71 | 0) > ($74 | 0)) {
HEAP16[$pnt2$362 >> 1] = $74;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$91 = $74;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $91 = $74;
} else {
HEAP16[$pnt2$362 >> 1] = $71;
if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$91 = $71;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $91 = $71;
}
$93 = ($91 << 16 >> 16) * 7 | 0;
$95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1;
$99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255;
$103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$109 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($109 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $62;
$149 = $63 * 7 | 0;
$151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1;
$155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255;
$159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068;
$163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0;
if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($114 | 0) > ($117 | 0)) {
HEAP16[$pnt2$362 >> 1] = $117;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$134 = $117;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $134 = $117;
} else {
HEAP16[$pnt2$362 >> 1] = $114;
if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$134 = $114;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $134 = $114;
}
$136 = ($134 << 16 >> 16) * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$228 = $pnt$163 + 2 | 0;
$229 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $228;
$pnt2$3$lcssa = $229;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $228;
$pnt2$362 = $229;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$237 = HEAP32[$wk$439 >> 2] | 0;
if (($237 | 0) == ($i$337 | 0)) {
$243 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $243;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$255 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$533 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$322 = $labelInfo + 12 + ($i$632 << 2) | 0;
$325 = $i$632 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBR3CA5551($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 1) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
$26 = HEAPU8[$pnt$163 >> 0] | 0;
$32 = HEAPU8[$pnt$163 + 1 >> 0] | 0;
do if ((($26 & 248) + 12 + ($26 << 5 & 224) + ($32 >>> 3 & 24) + ($32 << 2 & 248) | 0) > ($9 | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($43 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $43;
$46 = ($43 << 16 >> 16) * 7 | 0;
$48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1;
$52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255;
$56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$68 = $66 << 16 >> 16 > 0;
if ($62 << 16 >> 16 <= 0) {
if ($68) {
HEAP16[$pnt2$362 >> 1] = $66;
$168 = $67 * 7 | 0;
$170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1;
$174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255;
$178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068;
$182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0;
if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$188 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($188 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $188;
$191 = ($188 << 16 >> 16) * 7 | 0;
$193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1;
$197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255;
$201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068;
$205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0;
if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$205 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$208 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $208;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16;
$213 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $208;
break;
}
}
if ($68) {
$71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
if (($71 | 0) > ($74 | 0)) {
HEAP16[$pnt2$362 >> 1] = $74;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$91 = $74;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $91 = $74;
} else {
HEAP16[$pnt2$362 >> 1] = $71;
if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$91 = $71;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $91 = $71;
}
$93 = ($91 << 16 >> 16) * 7 | 0;
$95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1;
$99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255;
$103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$109 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($109 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $62;
$149 = $63 * 7 | 0;
$151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1;
$155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255;
$159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068;
$163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0;
if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($114 | 0) > ($117 | 0)) {
HEAP16[$pnt2$362 >> 1] = $117;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$134 = $117;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $134 = $117;
} else {
HEAP16[$pnt2$362 >> 1] = $114;
if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$134 = $114;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $134 = $114;
}
$136 = ($134 << 16 >> 16) * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$228 = $pnt$163 + 2 | 0;
$229 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $228;
$pnt2$3$lcssa = $229;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $228;
$pnt2$362 = $229;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$237 = HEAP32[$wk$439 >> 2] | 0;
if (($237 | 0) == ($i$337 | 0)) {
$243 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $243;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$255 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$533 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$322 = $labelInfo + 12 + ($i$632 << 2) | 0;
$325 = $i$632 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 1) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
$26 = HEAPU8[$pnt$163 >> 0] | 0;
$32 = HEAPU8[$pnt$163 + 1 >> 0] | 0;
do if ((($26 & 248) + 10 + ($26 << 5 & 224) + ($32 >>> 3 & 28) + ($32 << 3 & 248) | 0) > ($9 | 0)) {
$43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($43 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $43;
$46 = ($43 << 16 >> 16) * 7 | 0;
$48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1;
$52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255;
$56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$68 = $66 << 16 >> 16 > 0;
if ($62 << 16 >> 16 <= 0) {
if ($68) {
HEAP16[$pnt2$362 >> 1] = $66;
$168 = $67 * 7 | 0;
$170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1;
$174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255;
$178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068;
$182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0;
if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$188 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($188 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $188;
$191 = ($188 << 16 >> 16) * 7 | 0;
$193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1;
$197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255;
$201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068;
$205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0;
if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$205 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$208 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $208;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16;
$213 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $208;
break;
}
}
if ($68) {
$71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
if (($71 | 0) > ($74 | 0)) {
HEAP16[$pnt2$362 >> 1] = $74;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$91 = $74;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $91 = $74;
} else {
HEAP16[$pnt2$362 >> 1] = $71;
if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$91 = $71;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $91 = $71;
}
$93 = ($91 << 16 >> 16) * 7 | 0;
$95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1;
$99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255;
$103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$109 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($109 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $62;
$149 = $63 * 7 | 0;
$151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1;
$155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255;
$159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068;
$163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0;
if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($114 | 0) > ($117 | 0)) {
HEAP16[$pnt2$362 >> 1] = $117;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$134 = $117;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $134 = $117;
} else {
HEAP16[$pnt2$362 >> 1] = $114;
if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$134 = $114;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $134 = $114;
}
$136 = ($134 << 16 >> 16) * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$228 = $pnt$163 + 2 | 0;
$229 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $228;
$pnt2$3$lcssa = $229;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $228;
$pnt2$362 = $229;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$237 = HEAP32[$wk$439 >> 2] | 0;
if (($237 | 0) == ($i$337 | 0)) {
$243 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $243;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$255 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$533 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$322 = $labelInfo + 12 + ($i$632 << 2) | 0;
$325 = $i$632 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBR3C565($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $109 = 0, $114 = 0, $117 = 0, $134 = 0, $136 = 0, $138 = 0, $142 = 0, $146 = 0, $149 = 0, $151 = 0, $155 = 0, $159 = 0, $163 = 0, $168 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $182 = 0, $188 = 0, $19 = 0, $191 = 0, $193 = 0, $197 = 0, $201 = 0, $205 = 0, $208 = 0, $213 = 0, $228 = 0, $229 = 0, $235 = 0, $237 = 0, $24 = 0, $243 = 0, $247 = 0, $248 = 0, $255 = 0, $26 = 0, $269 = 0, $270 = 0, $273 = 0, $280 = 0, $281 = 0, $289 = 0, $292 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $307 = 0, $311 = 0, $314 = 0, $318 = 0, $32 = 0, $322 = 0, $325 = 0, $326 = 0, $332 = 0, $43 = 0, $46 = 0, $48 = 0, $52 = 0, $56 = 0, $62 = 0, $63 = 0, $66 = 0, $67 = 0, $68 = 0, $71 = 0, $74 = 0, $9 = 0, $91 = 0, $93 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 1) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
$26 = HEAPU8[$pnt$163 >> 0] | 0;
$32 = HEAPU8[$pnt$163 + 1 >> 0] | 0;
do if ((($26 & 248) + 10 + ($26 << 5 & 224) + ($32 >>> 3 & 28) + ($32 << 3 & 248) | 0) > ($9 | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$43 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($43 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $43;
$46 = ($43 << 16 >> 16) * 7 | 0;
$48 = $labelInfo + 1310736 + ($46 + -7 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + 1;
$52 = $labelInfo + 1310736 + ($46 + -6 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $i$255;
$56 = $labelInfo + 1310736 + ($46 + -5 << 2) | 0;
HEAP32[$56 >> 2] = (HEAP32[$56 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($46 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$62 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$66 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$67 = $66 << 16 >> 16;
$68 = $66 << 16 >> 16 > 0;
if ($62 << 16 >> 16 <= 0) {
if ($68) {
HEAP16[$pnt2$362 >> 1] = $66;
$168 = $67 * 7 | 0;
$170 = $labelInfo + 1310736 + ($168 + -7 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + 1;
$174 = $labelInfo + 1310736 + ($168 + -6 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $i$255;
$178 = $labelInfo + 1310736 + ($168 + -5 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + $j$068;
$182 = $labelInfo + 1310736 + ($168 + -3 << 2) | 0;
if ((HEAP32[$182 >> 2] | 0) < ($i$255 | 0)) HEAP32[$182 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($168 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$188 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($188 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $188;
$191 = ($188 << 16 >> 16) * 7 | 0;
$193 = $labelInfo + 1310736 + ($191 + -7 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + 1;
$197 = $labelInfo + 1310736 + ($191 + -6 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $i$255;
$201 = $labelInfo + 1310736 + ($191 + -5 << 2) | 0;
HEAP32[$201 >> 2] = (HEAP32[$201 >> 2] | 0) + $j$068;
$205 = $labelInfo + 1310736 + ($191 + -3 << 2) | 0;
if ((HEAP32[$205 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$205 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$208 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $208;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $208 << 16 >> 16;
$213 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($213 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($213 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($213 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($213 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $208;
break;
}
}
if ($68) {
$71 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$74 = HEAP32[$labelInfo + 1179664 + ($67 + -1 << 2) >> 2] | 0;
if (($71 | 0) > ($74 | 0)) {
HEAP16[$pnt2$362 >> 1] = $74;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($71 | 0)) HEAP32[$wk$052 >> 2] = $74;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$91 = $74;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $91 = $74;
} else {
HEAP16[$pnt2$362 >> 1] = $71;
if (($71 | 0) < ($74 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($74 | 0)) HEAP32[$wk$149 >> 2] = $71;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$91 = $71;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $91 = $71;
}
$93 = ($91 << 16 >> 16) * 7 | 0;
$95 = $labelInfo + 1310736 + ($93 + -7 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + 1;
$99 = $labelInfo + 1310736 + ($93 + -6 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $i$255;
$103 = $labelInfo + 1310736 + ($93 + -5 << 2) | 0;
HEAP32[$103 >> 2] = (HEAP32[$103 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($93 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$109 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($109 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $62;
$149 = $63 * 7 | 0;
$151 = $labelInfo + 1310736 + ($149 + -7 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + 1;
$155 = $labelInfo + 1310736 + ($149 + -6 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $i$255;
$159 = $labelInfo + 1310736 + ($149 + -5 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $j$068;
$163 = $labelInfo + 1310736 + ($149 + -4 << 2) | 0;
if ((HEAP32[$163 >> 2] | 0) > ($i$255 | 0)) HEAP32[$163 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($149 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$114 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
$117 = HEAP32[$labelInfo + 1179664 + (($109 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($114 | 0) > ($117 | 0)) {
HEAP16[$pnt2$362 >> 1] = $117;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($114 | 0)) HEAP32[$wk$245 >> 2] = $117;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$134 = $117;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $134 = $117;
} else {
HEAP16[$pnt2$362 >> 1] = $114;
if (($114 | 0) < ($117 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($117 | 0)) HEAP32[$wk$342 >> 2] = $114;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$134 = $114;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $134 = $114;
}
$136 = ($134 << 16 >> 16) * 7 | 0;
$138 = $labelInfo + 1310736 + ($136 + -7 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + 1;
$142 = $labelInfo + 1310736 + ($136 + -6 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $i$255;
$146 = $labelInfo + 1310736 + ($136 + -5 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$228 = $pnt$163 + 2 | 0;
$229 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $228;
$pnt2$3$lcssa = $229;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $228;
$pnt2$362 = $229;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$235 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$237 = HEAP32[$wk$439 >> 2] | 0;
if (($237 | 0) == ($i$337 | 0)) {
$243 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$243 = HEAP32[$labelInfo + 1179664 + ($237 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $243;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$247 = $labelInfo + 8 | 0;
$248 = $j$1$lcssa + -1 | 0;
HEAP32[$247 >> 2] = $248;
if (!$248) $$0 = 0; else {
_memset($235 | 0, 0, $248 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $248 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$255 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($255 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($255 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($255 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($255 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$247 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$269 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$270 = $i$533 * 7 | 0;
$273 = $labelInfo + 12 + ($269 << 2) | 0;
HEAP32[$273 >> 2] = (HEAP32[$273 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($270 << 2) >> 2] | 0);
$280 = $269 << 1;
$281 = $labelInfo + 655376 + ($280 << 3) | 0;
HEAPF64[$281 >> 3] = +HEAPF64[$281 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 1 << 2) >> 2] | 0);
$289 = $labelInfo + 655376 + (($280 | 1) << 3) | 0;
HEAPF64[$289 >> 3] = +HEAPF64[$289 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($270 + 2 << 2) >> 2] | 0);
$292 = $269 << 2;
$293 = $labelInfo + 131084 + ($292 << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($270 + 3 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($292 | 1) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($270 + 4 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$307 = $labelInfo + 131084 + (($292 | 2) << 2) | 0;
$311 = HEAP32[$labelInfo + 1310736 + ($270 + 5 << 2) >> 2] | 0;
if ((HEAP32[$307 >> 2] | 0) > ($311 | 0)) HEAP32[$307 >> 2] = $311;
$314 = $labelInfo + 131084 + (($292 | 3) << 2) | 0;
$318 = HEAP32[$labelInfo + 1310736 + ($270 + 6 << 2) >> 2] | 0;
if ((HEAP32[$314 >> 2] | 0) < ($318 | 0)) HEAP32[$314 >> 2] = $318;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$247 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$322 = $labelInfo + 12 + ($i$632 << 2) | 0;
$325 = $i$632 << 1;
$326 = $labelInfo + 655376 + ($325 << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$322 >> 2] | 0);
$332 = $labelInfo + 655376 + (($325 | 1) << 3) | 0;
HEAPF64[$332 >> 3] = +HEAPF64[$332 >> 3] / +(HEAP32[$322 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$247 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize * 3 | 0) + 12 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize * 6 | 0) + 6) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
$41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($41 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $41;
$44 = ($41 << 16 >> 16) * 7 | 0;
$46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1;
$50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256;
$54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$66 = $64 << 16 >> 16 > 0;
if ($60 << 16 >> 16 <= 0) {
if ($66) {
HEAP16[$pnt2$363 >> 1] = $64;
$166 = $65 * 7 | 0;
$168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1;
$172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256;
$176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069;
$180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0;
if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$186 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($186 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $186;
$189 = ($186 << 16 >> 16) * 7 | 0;
$191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1;
$195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256;
$199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069;
$203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0;
if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$203 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$206 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $206;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16;
$211 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $206;
break;
}
}
if ($66) {
$69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
if (($69 | 0) > ($72 | 0)) {
HEAP16[$pnt2$363 >> 1] = $72;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$89 = $72;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $89 = $72;
} else {
HEAP16[$pnt2$363 >> 1] = $69;
if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$89 = $69;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $89 = $69;
}
$91 = ($89 << 16 >> 16) * 7 | 0;
$93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1;
$97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256;
$101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$107 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($107 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $60;
$147 = $61 * 7 | 0;
$149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1;
$153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256;
$157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069;
$161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0;
if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($112 | 0) > ($115 | 0)) {
HEAP16[$pnt2$363 >> 1] = $115;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$132 = $115;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $132 = $115;
} else {
HEAP16[$pnt2$363 >> 1] = $112;
if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$132 = $112;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $132 = $112;
}
$134 = ($132 << 16 >> 16) * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$226 = $pnt$164 + 6 | 0;
$227 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $226;
$pnt2$3$lcssa = $227;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $226;
$pnt2$363 = $227;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$233 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$235 = HEAP32[$wk$440 >> 2] | 0;
if (($235 | 0) == ($i$338 | 0)) {
$241 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $241;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$245 = $labelInfo + 8 | 0;
$246 = $j$1$lcssa + -1 | 0;
HEAP32[$245 >> 2] = $246;
if (!$246) $$0 = 0; else {
_memset($233 | 0, 0, $246 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$253 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$268 = $i$534 * 7 | 0;
$271 = $labelInfo + 12 + ($267 << 2) | 0;
HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0);
$278 = $267 << 1;
$279 = $labelInfo + 655376 + ($278 << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0);
$287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0;
HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0);
$290 = $267 << 2;
$291 = $labelInfo + 131084 + ($290 << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$245 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$320 = $labelInfo + 12 + ($i$633 << 2) | 0;
$323 = $i$633 << 1;
$324 = $labelInfo + 655376 + ($323 << 3) | 0;
HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0);
$330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBI3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize * 3 | 0) + 12 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize * 6 | 0) + 6) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($41 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $41;
$44 = ($41 << 16 >> 16) * 7 | 0;
$46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1;
$50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256;
$54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$66 = $64 << 16 >> 16 > 0;
if ($60 << 16 >> 16 <= 0) {
if ($66) {
HEAP16[$pnt2$363 >> 1] = $64;
$166 = $65 * 7 | 0;
$168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1;
$172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256;
$176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069;
$180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0;
if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$186 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($186 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $186;
$189 = ($186 << 16 >> 16) * 7 | 0;
$191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1;
$195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256;
$199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069;
$203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0;
if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$203 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$206 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $206;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16;
$211 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $206;
break;
}
}
if ($66) {
$69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
if (($69 | 0) > ($72 | 0)) {
HEAP16[$pnt2$363 >> 1] = $72;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$89 = $72;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $89 = $72;
} else {
HEAP16[$pnt2$363 >> 1] = $69;
if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$89 = $69;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $89 = $69;
}
$91 = ($89 << 16 >> 16) * 7 | 0;
$93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1;
$97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256;
$101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$107 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($107 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $60;
$147 = $61 * 7 | 0;
$149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1;
$153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256;
$157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069;
$161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0;
if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($112 | 0) > ($115 | 0)) {
HEAP16[$pnt2$363 >> 1] = $115;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$132 = $115;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $132 = $115;
} else {
HEAP16[$pnt2$363 >> 1] = $112;
if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$132 = $112;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $132 = $112;
}
$134 = ($132 << 16 >> 16) * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$226 = $pnt$164 + 6 | 0;
$227 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $226;
$pnt2$3$lcssa = $227;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $226;
$pnt2$363 = $227;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$233 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$235 = HEAP32[$wk$440 >> 2] | 0;
if (($235 | 0) == ($i$338 | 0)) {
$241 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $241;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$245 = $labelInfo + 8 | 0;
$246 = $j$1$lcssa + -1 | 0;
HEAP32[$245 >> 2] = $246;
if (!$246) $$0 = 0; else {
_memset($233 | 0, 0, $246 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$253 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$268 = $i$534 * 7 | 0;
$271 = $labelInfo + 12 + ($267 << 2) | 0;
HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0);
$278 = $267 << 1;
$279 = $labelInfo + 655376 + ($278 << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0);
$287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0;
HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0);
$290 = $267 << 2;
$291 = $labelInfo + 131084 + ($290 << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$245 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$320 = $labelInfo + 12 + ($i$633 << 2) | 0;
$323 = $i$633 << 1;
$324 = $labelInfo + 655376 + ($323 << 3) | 0;
HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0);
$330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $113 = 0, $116 = 0, $12 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $173 = 0, $177 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $272 = 0, $279 = 0, $28 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $3 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 3) + 8) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if (((HEAPU8[$pnt$164 + 2 >> 0] | 0) + (HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 + 3 >> 0] | 0) | 0) > ($11 | 0)) {
$42 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($42 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $42;
$45 = ($42 << 16 >> 16) * 7 | 0;
$47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1;
$51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$256;
$55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$61 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$62 = $61 << 16 >> 16;
$65 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$67 = $65 << 16 >> 16 > 0;
if ($61 << 16 >> 16 <= 0) {
if ($67) {
HEAP16[$pnt2$363 >> 1] = $65;
$167 = $66 * 7 | 0;
$169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1;
$173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$256;
$177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$069;
$181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0;
if ((HEAP32[$181 >> 2] | 0) < ($i$256 | 0)) HEAP32[$181 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$187 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($187 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $187;
$190 = ($187 << 16 >> 16) * 7 | 0;
$192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1;
$196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$256;
$200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$069;
$204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0;
if ((HEAP32[$204 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$204 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$207 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $207;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $207 << 16 >> 16;
$212 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $207;
break;
}
}
if ($67) {
$70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
if (($70 | 0) > ($73 | 0)) {
HEAP16[$pnt2$363 >> 1] = $73;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$053 >> 2] = $73;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$90 = $73;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $90 = $73;
} else {
HEAP16[$pnt2$363 >> 1] = $70;
if (($70 | 0) < ($73 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$150 >> 2] = $70;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$90 = $70;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $90 = $70;
}
$92 = ($90 << 16 >> 16) * 7 | 0;
$94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1;
$98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$256;
$102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$108 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($108 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $61;
$148 = $62 * 7 | 0;
$150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1;
$154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$256;
$158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$069;
$162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0;
if ((HEAP32[$162 >> 2] | 0) > ($i$256 | 0)) HEAP32[$162 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($113 | 0) > ($116 | 0)) {
HEAP16[$pnt2$363 >> 1] = $116;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$246 >> 2] = $116;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$133 = $116;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $133 = $116;
} else {
HEAP16[$pnt2$363 >> 1] = $113;
if (($113 | 0) < ($116 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$343 >> 2] = $113;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$133 = $113;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $133 = $113;
}
$135 = ($133 << 16 >> 16) * 7 | 0;
$137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1;
$141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$256;
$145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$227 = $pnt$164 + 8 | 0;
$228 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $227;
$pnt2$3$lcssa = $228;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $227;
$pnt2$363 = $228;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$234 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$236 = HEAP32[$wk$440 >> 2] | 0;
if (($236 | 0) == ($i$338 | 0)) {
$242 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $242;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$246 = $labelInfo + 8 | 0;
$247 = $j$1$lcssa + -1 | 0;
HEAP32[$246 >> 2] = $247;
if (!$247) $$0 = 0; else {
_memset($234 | 0, 0, $247 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$254 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$246 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$268 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$269 = $i$534 * 7 | 0;
$272 = $labelInfo + 12 + ($268 << 2) | 0;
HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0);
$279 = $268 << 1;
$280 = $labelInfo + 655376 + ($279 << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0);
$288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0;
HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0);
$291 = $268 << 2;
$292 = $labelInfo + 131084 + ($291 << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310;
$313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0;
$317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0;
if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$246 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$321 = $labelInfo + 12 + ($i$633 << 2) | 0;
$324 = $i$633 << 1;
$325 = $labelInfo + 655376 + ($324 << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0);
$331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$246 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBIA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $108 = 0, $11 = 0, $113 = 0, $116 = 0, $12 = 0, $133 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $148 = 0, $150 = 0, $154 = 0, $158 = 0, $162 = 0, $167 = 0, $169 = 0, $173 = 0, $177 = 0, $181 = 0, $187 = 0, $19 = 0, $190 = 0, $192 = 0, $196 = 0, $2 = 0, $20 = 0, $200 = 0, $204 = 0, $207 = 0, $212 = 0, $227 = 0, $228 = 0, $234 = 0, $236 = 0, $242 = 0, $246 = 0, $247 = 0, $254 = 0, $268 = 0, $269 = 0, $272 = 0, $279 = 0, $28 = 0, $280 = 0, $288 = 0, $291 = 0, $292 = 0, $296 = 0, $299 = 0, $3 = 0, $303 = 0, $306 = 0, $310 = 0, $313 = 0, $317 = 0, $321 = 0, $324 = 0, $325 = 0, $331 = 0, $42 = 0, $45 = 0, $47 = 0, $51 = 0, $55 = 0, $61 = 0, $62 = 0, $65 = 0, $66 = 0, $67 = 0, $70 = 0, $73 = 0, $90 = 0, $92 = 0, $94 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 3) + 8) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if (((HEAPU8[$pnt$164 + 2 >> 0] | 0) + (HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 + 3 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$42 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($42 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $42;
$45 = ($42 << 16 >> 16) * 7 | 0;
$47 = $labelInfo + 1310736 + ($45 + -7 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + 1;
$51 = $labelInfo + 1310736 + ($45 + -6 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $i$256;
$55 = $labelInfo + 1310736 + ($45 + -5 << 2) | 0;
HEAP32[$55 >> 2] = (HEAP32[$55 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($45 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$61 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$62 = $61 << 16 >> 16;
$65 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$66 = $65 << 16 >> 16;
$67 = $65 << 16 >> 16 > 0;
if ($61 << 16 >> 16 <= 0) {
if ($67) {
HEAP16[$pnt2$363 >> 1] = $65;
$167 = $66 * 7 | 0;
$169 = $labelInfo + 1310736 + ($167 + -7 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + 1;
$173 = $labelInfo + 1310736 + ($167 + -6 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $i$256;
$177 = $labelInfo + 1310736 + ($167 + -5 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + $j$069;
$181 = $labelInfo + 1310736 + ($167 + -3 << 2) | 0;
if ((HEAP32[$181 >> 2] | 0) < ($i$256 | 0)) HEAP32[$181 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($167 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$187 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($187 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $187;
$190 = ($187 << 16 >> 16) * 7 | 0;
$192 = $labelInfo + 1310736 + ($190 + -7 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + 1;
$196 = $labelInfo + 1310736 + ($190 + -6 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $i$256;
$200 = $labelInfo + 1310736 + ($190 + -5 << 2) | 0;
HEAP32[$200 >> 2] = (HEAP32[$200 >> 2] | 0) + $j$069;
$204 = $labelInfo + 1310736 + ($190 + -3 << 2) | 0;
if ((HEAP32[$204 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$204 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$207 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $207;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $207 << 16 >> 16;
$212 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($212 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($212 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($212 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($212 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($212 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($212 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($212 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $207;
break;
}
}
if ($67) {
$70 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$73 = HEAP32[$labelInfo + 1179664 + ($66 + -1 << 2) >> 2] | 0;
if (($70 | 0) > ($73 | 0)) {
HEAP16[$pnt2$363 >> 1] = $73;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$053 >> 2] = $73;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$90 = $73;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $90 = $73;
} else {
HEAP16[$pnt2$363 >> 1] = $70;
if (($70 | 0) < ($73 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($73 | 0)) HEAP32[$wk$150 >> 2] = $70;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$90 = $70;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $90 = $70;
}
$92 = ($90 << 16 >> 16) * 7 | 0;
$94 = $labelInfo + 1310736 + ($92 + -7 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + 1;
$98 = $labelInfo + 1310736 + ($92 + -6 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $i$256;
$102 = $labelInfo + 1310736 + ($92 + -5 << 2) | 0;
HEAP32[$102 >> 2] = (HEAP32[$102 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($92 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$108 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($108 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $61;
$148 = $62 * 7 | 0;
$150 = $labelInfo + 1310736 + ($148 + -7 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + 1;
$154 = $labelInfo + 1310736 + ($148 + -6 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $i$256;
$158 = $labelInfo + 1310736 + ($148 + -5 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $j$069;
$162 = $labelInfo + 1310736 + ($148 + -4 << 2) | 0;
if ((HEAP32[$162 >> 2] | 0) > ($i$256 | 0)) HEAP32[$162 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($148 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$113 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
$116 = HEAP32[$labelInfo + 1179664 + (($108 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($113 | 0) > ($116 | 0)) {
HEAP16[$pnt2$363 >> 1] = $116;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$246 >> 2] = $116;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$133 = $116;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $133 = $116;
} else {
HEAP16[$pnt2$363 >> 1] = $113;
if (($113 | 0) < ($116 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($116 | 0)) HEAP32[$wk$343 >> 2] = $113;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$133 = $113;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $133 = $113;
}
$135 = ($133 << 16 >> 16) * 7 | 0;
$137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1;
$141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$256;
$145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$227 = $pnt$164 + 8 | 0;
$228 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $227;
$pnt2$3$lcssa = $228;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $227;
$pnt2$363 = $228;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$234 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$236 = HEAP32[$wk$440 >> 2] | 0;
if (($236 | 0) == ($i$338 | 0)) {
$242 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$242 = HEAP32[$labelInfo + 1179664 + ($236 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $242;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$246 = $labelInfo + 8 | 0;
$247 = $j$1$lcssa + -1 | 0;
HEAP32[$246 >> 2] = $247;
if (!$247) $$0 = 0; else {
_memset($234 | 0, 0, $247 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $247 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$254 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($254 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($254 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($254 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($254 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$246 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$268 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$269 = $i$534 * 7 | 0;
$272 = $labelInfo + 12 + ($268 << 2) | 0;
HEAP32[$272 >> 2] = (HEAP32[$272 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($269 << 2) >> 2] | 0);
$279 = $268 << 1;
$280 = $labelInfo + 655376 + ($279 << 3) | 0;
HEAPF64[$280 >> 3] = +HEAPF64[$280 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 1 << 2) >> 2] | 0);
$288 = $labelInfo + 655376 + (($279 | 1) << 3) | 0;
HEAPF64[$288 >> 3] = +HEAPF64[$288 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($269 + 2 << 2) >> 2] | 0);
$291 = $268 << 2;
$292 = $labelInfo + 131084 + ($291 << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($269 + 3 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($291 | 1) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($269 + 4 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$306 = $labelInfo + 131084 + (($291 | 2) << 2) | 0;
$310 = HEAP32[$labelInfo + 1310736 + ($269 + 5 << 2) >> 2] | 0;
if ((HEAP32[$306 >> 2] | 0) > ($310 | 0)) HEAP32[$306 >> 2] = $310;
$313 = $labelInfo + 131084 + (($291 | 3) << 2) | 0;
$317 = HEAP32[$labelInfo + 1310736 + ($269 + 6 << 2) >> 2] | 0;
if ((HEAP32[$313 >> 2] | 0) < ($317 | 0)) HEAP32[$313 >> 2] = $317;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$246 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$321 = $labelInfo + 12 + ($i$633 << 2) | 0;
$324 = $i$633 << 1;
$325 = $labelInfo + 655376 + ($324 << 3) | 0;
HEAPF64[$325 >> 3] = +HEAPF64[$325 >> 3] / +(HEAP32[$321 >> 2] | 0);
$331 = $labelInfo + 655376 + (($324 | 1) << 3) | 0;
HEAPF64[$331 >> 3] = +HEAPF64[$331 >> 3] / +(HEAP32[$321 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$246 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 3) + 8) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
$41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($41 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $41;
$44 = ($41 << 16 >> 16) * 7 | 0;
$46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1;
$50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256;
$54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$66 = $64 << 16 >> 16 > 0;
if ($60 << 16 >> 16 <= 0) {
if ($66) {
HEAP16[$pnt2$363 >> 1] = $64;
$166 = $65 * 7 | 0;
$168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1;
$172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256;
$176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069;
$180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0;
if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$186 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($186 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $186;
$189 = ($186 << 16 >> 16) * 7 | 0;
$191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1;
$195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256;
$199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069;
$203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0;
if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$203 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$206 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $206;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16;
$211 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $206;
break;
}
}
if ($66) {
$69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
if (($69 | 0) > ($72 | 0)) {
HEAP16[$pnt2$363 >> 1] = $72;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$89 = $72;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $89 = $72;
} else {
HEAP16[$pnt2$363 >> 1] = $69;
if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$89 = $69;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $89 = $69;
}
$91 = ($89 << 16 >> 16) * 7 | 0;
$93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1;
$97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256;
$101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$107 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($107 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $60;
$147 = $61 * 7 | 0;
$149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1;
$153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256;
$157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069;
$161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0;
if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($112 | 0) > ($115 | 0)) {
HEAP16[$pnt2$363 >> 1] = $115;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$132 = $115;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $132 = $115;
} else {
HEAP16[$pnt2$363 >> 1] = $112;
if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$132 = $112;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $132 = $112;
}
$134 = ($132 << 16 >> 16) * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$226 = $pnt$164 + 8 | 0;
$227 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $226;
$pnt2$3$lcssa = $227;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $226;
$pnt2$363 = $227;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$233 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$235 = HEAP32[$wk$440 >> 2] | 0;
if (($235 | 0) == ($i$338 | 0)) {
$241 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $241;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$245 = $labelInfo + 8 | 0;
$246 = $j$1$lcssa + -1 | 0;
HEAP32[$245 >> 2] = $246;
if (!$246) $$0 = 0; else {
_memset($233 | 0, 0, $246 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$253 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$268 = $i$534 * 7 | 0;
$271 = $labelInfo + 12 + ($267 << 2) | 0;
HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0);
$278 = $267 << 1;
$279 = $labelInfo + 655376 + ($278 << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0);
$287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0;
HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0);
$290 = $267 << 2;
$291 = $labelInfo + 131084 + ($290 << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$245 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$320 = $labelInfo + 12 + ($i$633 << 2) | 0;
$323 = $i$633 << 1;
$324 = $labelInfo + 655376 + ($323 << 3) | 0;
HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0);
$330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBI3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $101 = 0, $107 = 0, $11 = 0, $112 = 0, $115 = 0, $12 = 0, $132 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $147 = 0, $149 = 0, $153 = 0, $157 = 0, $161 = 0, $166 = 0, $168 = 0, $172 = 0, $176 = 0, $180 = 0, $186 = 0, $189 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $2 = 0, $20 = 0, $203 = 0, $206 = 0, $211 = 0, $226 = 0, $227 = 0, $233 = 0, $235 = 0, $241 = 0, $245 = 0, $246 = 0, $253 = 0, $267 = 0, $268 = 0, $271 = 0, $278 = 0, $279 = 0, $28 = 0, $287 = 0, $290 = 0, $291 = 0, $295 = 0, $298 = 0, $3 = 0, $302 = 0, $305 = 0, $309 = 0, $312 = 0, $316 = 0, $320 = 0, $323 = 0, $324 = 0, $330 = 0, $41 = 0, $44 = 0, $46 = 0, $50 = 0, $54 = 0, $60 = 0, $61 = 0, $64 = 0, $65 = 0, $66 = 0, $69 = 0, $72 = 0, $89 = 0, $91 = 0, $93 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $labelingThresh * 3 | 0;
$12 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($12 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$19 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 2) + 16 | 0;
L11 : do if (($3 | 0) > 1) {
$28 = ($12 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 3) + 8) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($28) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if (((HEAPU8[$pnt$164 + 1 >> 0] | 0) + (HEAPU8[$pnt$164 >> 0] | 0) + (HEAPU8[$pnt$164 + 2 >> 0] | 0) | 0) > ($11 | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$41 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($41 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $41;
$44 = ($41 << 16 >> 16) * 7 | 0;
$46 = $labelInfo + 1310736 + ($44 + -7 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + 1;
$50 = $labelInfo + 1310736 + ($44 + -6 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $i$256;
$54 = $labelInfo + 1310736 + ($44 + -5 << 2) | 0;
HEAP32[$54 >> 2] = (HEAP32[$54 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($44 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$60 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$64 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$65 = $64 << 16 >> 16;
$66 = $64 << 16 >> 16 > 0;
if ($60 << 16 >> 16 <= 0) {
if ($66) {
HEAP16[$pnt2$363 >> 1] = $64;
$166 = $65 * 7 | 0;
$168 = $labelInfo + 1310736 + ($166 + -7 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + 1;
$172 = $labelInfo + 1310736 + ($166 + -6 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $i$256;
$176 = $labelInfo + 1310736 + ($166 + -5 << 2) | 0;
HEAP32[$176 >> 2] = (HEAP32[$176 >> 2] | 0) + $j$069;
$180 = $labelInfo + 1310736 + ($166 + -3 << 2) | 0;
if ((HEAP32[$180 >> 2] | 0) < ($i$256 | 0)) HEAP32[$180 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($166 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$186 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($186 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $186;
$189 = ($186 << 16 >> 16) * 7 | 0;
$191 = $labelInfo + 1310736 + ($189 + -7 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + 1;
$195 = $labelInfo + 1310736 + ($189 + -6 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $i$256;
$199 = $labelInfo + 1310736 + ($189 + -5 << 2) | 0;
HEAP32[$199 >> 2] = (HEAP32[$199 >> 2] | 0) + $j$069;
$203 = $labelInfo + 1310736 + ($189 + -3 << 2) | 0;
if ((HEAP32[$203 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$203 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$206 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $206;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $206 << 16 >> 16;
$211 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($211 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($211 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($211 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($211 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $206;
break;
}
}
if ($66) {
$69 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$72 = HEAP32[$labelInfo + 1179664 + ($65 + -1 << 2) >> 2] | 0;
if (($69 | 0) > ($72 | 0)) {
HEAP16[$pnt2$363 >> 1] = $72;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $19;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$053 >> 2] = $72;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$89 = $72;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $89 = $72;
} else {
HEAP16[$pnt2$363 >> 1] = $69;
if (($69 | 0) < ($72 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $19;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($72 | 0)) HEAP32[$wk$150 >> 2] = $69;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$89 = $69;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $89 = $69;
}
$91 = ($89 << 16 >> 16) * 7 | 0;
$93 = $labelInfo + 1310736 + ($91 + -7 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 1;
$97 = $labelInfo + 1310736 + ($91 + -6 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $i$256;
$101 = $labelInfo + 1310736 + ($91 + -5 << 2) | 0;
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($91 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$107 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($107 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $60;
$147 = $61 * 7 | 0;
$149 = $labelInfo + 1310736 + ($147 + -7 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + 1;
$153 = $labelInfo + 1310736 + ($147 + -6 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $i$256;
$157 = $labelInfo + 1310736 + ($147 + -5 << 2) | 0;
HEAP32[$157 >> 2] = (HEAP32[$157 >> 2] | 0) + $j$069;
$161 = $labelInfo + 1310736 + ($147 + -4 << 2) | 0;
if ((HEAP32[$161 >> 2] | 0) > ($i$256 | 0)) HEAP32[$161 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($147 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$112 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
$115 = HEAP32[$labelInfo + 1179664 + (($107 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($112 | 0) > ($115 | 0)) {
HEAP16[$pnt2$363 >> 1] = $115;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $19;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$246 >> 2] = $115;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$132 = $115;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $132 = $115;
} else {
HEAP16[$pnt2$363 >> 1] = $112;
if (($112 | 0) < ($115 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $19;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($115 | 0)) HEAP32[$wk$343 >> 2] = $112;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$132 = $112;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $132 = $112;
}
$134 = ($132 << 16 >> 16) * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$256;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$226 = $pnt$164 + 8 | 0;
$227 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($12 | 0)) {
$pnt$1$lcssa = $226;
$pnt2$3$lcssa = $227;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $226;
$pnt2$363 = $227;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$233 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $19;
while (1) {
$235 = HEAP32[$wk$440 >> 2] | 0;
if (($235 | 0) == ($i$338 | 0)) {
$241 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$241 = HEAP32[$labelInfo + 1179664 + ($235 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $241;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$245 = $labelInfo + 8 | 0;
$246 = $j$1$lcssa + -1 | 0;
HEAP32[$245 >> 2] = $246;
if (!$246) $$0 = 0; else {
_memset($233 | 0, 0, $246 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $246 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$253 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($253 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($253 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($253 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($253 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$245 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$267 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$268 = $i$534 * 7 | 0;
$271 = $labelInfo + 12 + ($267 << 2) | 0;
HEAP32[$271 >> 2] = (HEAP32[$271 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($268 << 2) >> 2] | 0);
$278 = $267 << 1;
$279 = $labelInfo + 655376 + ($278 << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 1 << 2) >> 2] | 0);
$287 = $labelInfo + 655376 + (($278 | 1) << 3) | 0;
HEAPF64[$287 >> 3] = +HEAPF64[$287 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($268 + 2 << 2) >> 2] | 0);
$290 = $267 << 2;
$291 = $labelInfo + 131084 + ($290 << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($268 + 3 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($290 | 1) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($268 + 4 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302;
$305 = $labelInfo + 131084 + (($290 | 2) << 2) | 0;
$309 = HEAP32[$labelInfo + 1310736 + ($268 + 5 << 2) >> 2] | 0;
if ((HEAP32[$305 >> 2] | 0) > ($309 | 0)) HEAP32[$305 >> 2] = $309;
$312 = $labelInfo + 131084 + (($290 | 3) << 2) | 0;
$316 = HEAP32[$labelInfo + 1310736 + ($268 + 6 << 2) >> 2] | 0;
if ((HEAP32[$312 >> 2] | 0) < ($316 | 0)) HEAP32[$312 >> 2] = $316;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$245 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$320 = $labelInfo + 12 + ($i$633 << 2) | 0;
$323 = $i$633 << 1;
$324 = $labelInfo + 655376 + ($323 << 3) | 0;
HEAPF64[$324 >> 3] = +HEAPF64[$324 >> 3] / +(HEAP32[$320 >> 2] | 0);
$330 = $labelInfo + 655376 + (($323 | 1) << 3) | 0;
HEAPF64[$330 >> 3] = +HEAPF64[$330 >> 3] / +(HEAP32[$320 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$245 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $110 = 0, $113 = 0, $130 = 0, $132 = 0, $134 = 0, $138 = 0, $142 = 0, $145 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $164 = 0, $166 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $184 = 0, $187 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $201 = 0, $204 = 0, $209 = 0, $224 = 0, $225 = 0, $231 = 0, $233 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $251 = 0, $26 = 0, $265 = 0, $266 = 0, $269 = 0, $276 = 0, $277 = 0, $285 = 0, $288 = 0, $289 = 0, $293 = 0, $296 = 0, $300 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $318 = 0, $321 = 0, $322 = 0, $328 = 0, $39 = 0, $42 = 0, $44 = 0, $48 = 0, $52 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $67 = 0, $70 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 1) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
$26 = HEAPU8[$pnt$163 >> 0] | 0;
do if ((($26 & 240) + 24 + ($26 << 4 & 240) + ((HEAPU8[$pnt$163 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) {
$39 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($39 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $39;
$42 = ($39 << 16 >> 16) * 7 | 0;
$44 = $labelInfo + 1310736 + ($42 + -7 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 1;
$48 = $labelInfo + 1310736 + ($42 + -6 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $i$255;
$52 = $labelInfo + 1310736 + ($42 + -5 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($42 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$58 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$59 = $58 << 16 >> 16;
$62 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$64 = $62 << 16 >> 16 > 0;
if ($58 << 16 >> 16 <= 0) {
if ($64) {
HEAP16[$pnt2$362 >> 1] = $62;
$164 = $63 * 7 | 0;
$166 = $labelInfo + 1310736 + ($164 + -7 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + 1;
$170 = $labelInfo + 1310736 + ($164 + -6 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $i$255;
$174 = $labelInfo + 1310736 + ($164 + -5 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $j$068;
$178 = $labelInfo + 1310736 + ($164 + -3 << 2) | 0;
if ((HEAP32[$178 >> 2] | 0) < ($i$255 | 0)) HEAP32[$178 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($164 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$184 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($184 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $184;
$187 = ($184 << 16 >> 16) * 7 | 0;
$189 = $labelInfo + 1310736 + ($187 + -7 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + 1;
$193 = $labelInfo + 1310736 + ($187 + -6 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $i$255;
$197 = $labelInfo + 1310736 + ($187 + -5 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $j$068;
$201 = $labelInfo + 1310736 + ($187 + -3 << 2) | 0;
if ((HEAP32[$201 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$201 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$204 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $204;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $204 << 16 >> 16;
$209 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($209 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($209 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($209 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($209 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($209 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($209 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($209 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $204;
break;
}
}
if ($64) {
$67 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0;
$70 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
if (($67 | 0) > ($70 | 0)) {
HEAP16[$pnt2$362 >> 1] = $70;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$052 >> 2] = $70;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$87 = $70;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $87 = $70;
} else {
HEAP16[$pnt2$362 >> 1] = $67;
if (($67 | 0) < ($70 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$149 >> 2] = $67;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$87 = $67;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $87 = $67;
}
$89 = ($87 << 16 >> 16) * 7 | 0;
$91 = $labelInfo + 1310736 + ($89 + -7 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + 1;
$95 = $labelInfo + 1310736 + ($89 + -6 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $i$255;
$99 = $labelInfo + 1310736 + ($89 + -5 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($89 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$105 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($105 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $58;
$145 = $59 * 7 | 0;
$147 = $labelInfo + 1310736 + ($145 + -7 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + 1;
$151 = $labelInfo + 1310736 + ($145 + -6 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $i$255;
$155 = $labelInfo + 1310736 + ($145 + -5 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $j$068;
$159 = $labelInfo + 1310736 + ($145 + -4 << 2) | 0;
if ((HEAP32[$159 >> 2] | 0) > ($i$255 | 0)) HEAP32[$159 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($145 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$110 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0;
$113 = HEAP32[$labelInfo + 1179664 + (($105 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($110 | 0) > ($113 | 0)) {
HEAP16[$pnt2$362 >> 1] = $113;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$245 >> 2] = $113;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$130 = $113;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $130 = $113;
} else {
HEAP16[$pnt2$362 >> 1] = $110;
if (($110 | 0) < ($113 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$342 >> 2] = $110;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$130 = $110;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $130 = $110;
}
$132 = ($130 << 16 >> 16) * 7 | 0;
$134 = $labelInfo + 1310736 + ($132 + -7 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + 1;
$138 = $labelInfo + 1310736 + ($132 + -6 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $i$255;
$142 = $labelInfo + 1310736 + ($132 + -5 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$224 = $pnt$163 + 2 | 0;
$225 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $224;
$pnt2$3$lcssa = $225;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $224;
$pnt2$362 = $225;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$231 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$233 = HEAP32[$wk$439 >> 2] | 0;
if (($233 | 0) == ($i$337 | 0)) {
$239 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$239 = HEAP32[$labelInfo + 1179664 + ($233 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $239;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$243 = $labelInfo + 8 | 0;
$244 = $j$1$lcssa + -1 | 0;
HEAP32[$243 >> 2] = $244;
if (!$244) $$0 = 0; else {
_memset($231 | 0, 0, $244 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $244 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$251 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($251 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($251 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($251 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($251 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$243 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$265 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$266 = $i$533 * 7 | 0;
$269 = $labelInfo + 12 + ($265 << 2) | 0;
HEAP32[$269 >> 2] = (HEAP32[$269 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($266 << 2) >> 2] | 0);
$276 = $265 << 1;
$277 = $labelInfo + 655376 + ($276 << 3) | 0;
HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 1 << 2) >> 2] | 0);
$285 = $labelInfo + 655376 + (($276 | 1) << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 2 << 2) >> 2] | 0);
$288 = $265 << 2;
$289 = $labelInfo + 131084 + ($288 << 2) | 0;
$293 = HEAP32[$labelInfo + 1310736 + ($266 + 3 << 2) >> 2] | 0;
if ((HEAP32[$289 >> 2] | 0) > ($293 | 0)) HEAP32[$289 >> 2] = $293;
$296 = $labelInfo + 131084 + (($288 | 1) << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($266 + 4 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) < ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($288 | 2) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($266 + 5 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) > ($307 | 0)) HEAP32[$303 >> 2] = $307;
$310 = $labelInfo + 131084 + (($288 | 3) << 2) | 0;
$314 = HEAP32[$labelInfo + 1310736 + ($266 + 6 << 2) >> 2] | 0;
if ((HEAP32[$310 >> 2] | 0) < ($314 | 0)) HEAP32[$310 >> 2] = $314;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$243 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$318 = $labelInfo + 12 + ($i$632 << 2) | 0;
$321 = $i$632 << 1;
$322 = $labelInfo + 655376 + ($321 << 3) | 0;
HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$318 >> 2] | 0);
$328 = $labelInfo + 655376 + (($321 | 1) << 3) | 0;
HEAPF64[$328 >> 3] = +HEAPF64[$328 >> 3] / +(HEAP32[$318 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$243 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBR3CA4444($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $105 = 0, $110 = 0, $113 = 0, $130 = 0, $132 = 0, $134 = 0, $138 = 0, $142 = 0, $145 = 0, $147 = 0, $151 = 0, $155 = 0, $159 = 0, $164 = 0, $166 = 0, $17 = 0, $170 = 0, $174 = 0, $178 = 0, $18 = 0, $184 = 0, $187 = 0, $189 = 0, $19 = 0, $193 = 0, $197 = 0, $201 = 0, $204 = 0, $209 = 0, $224 = 0, $225 = 0, $231 = 0, $233 = 0, $239 = 0, $24 = 0, $243 = 0, $244 = 0, $251 = 0, $26 = 0, $265 = 0, $266 = 0, $269 = 0, $276 = 0, $277 = 0, $285 = 0, $288 = 0, $289 = 0, $293 = 0, $296 = 0, $300 = 0, $303 = 0, $307 = 0, $310 = 0, $314 = 0, $318 = 0, $321 = 0, $322 = 0, $328 = 0, $39 = 0, $42 = 0, $44 = 0, $48 = 0, $52 = 0, $58 = 0, $59 = 0, $62 = 0, $63 = 0, $64 = 0, $67 = 0, $70 = 0, $87 = 0, $89 = 0, $9 = 0, $91 = 0, $95 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 1) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
$26 = HEAPU8[$pnt$163 >> 0] | 0;
do if ((($26 & 240) + 24 + ($26 << 4 & 240) + ((HEAPU8[$pnt$163 + 1 >> 0] | 0) & 240) | 0) > ($9 | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$39 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($39 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $39;
$42 = ($39 << 16 >> 16) * 7 | 0;
$44 = $labelInfo + 1310736 + ($42 + -7 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + 1;
$48 = $labelInfo + 1310736 + ($42 + -6 << 2) | 0;
HEAP32[$48 >> 2] = (HEAP32[$48 >> 2] | 0) + $i$255;
$52 = $labelInfo + 1310736 + ($42 + -5 << 2) | 0;
HEAP32[$52 >> 2] = (HEAP32[$52 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($42 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$58 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$59 = $58 << 16 >> 16;
$62 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$63 = $62 << 16 >> 16;
$64 = $62 << 16 >> 16 > 0;
if ($58 << 16 >> 16 <= 0) {
if ($64) {
HEAP16[$pnt2$362 >> 1] = $62;
$164 = $63 * 7 | 0;
$166 = $labelInfo + 1310736 + ($164 + -7 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + 1;
$170 = $labelInfo + 1310736 + ($164 + -6 << 2) | 0;
HEAP32[$170 >> 2] = (HEAP32[$170 >> 2] | 0) + $i$255;
$174 = $labelInfo + 1310736 + ($164 + -5 << 2) | 0;
HEAP32[$174 >> 2] = (HEAP32[$174 >> 2] | 0) + $j$068;
$178 = $labelInfo + 1310736 + ($164 + -3 << 2) | 0;
if ((HEAP32[$178 >> 2] | 0) < ($i$255 | 0)) HEAP32[$178 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($164 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$184 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($184 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $184;
$187 = ($184 << 16 >> 16) * 7 | 0;
$189 = $labelInfo + 1310736 + ($187 + -7 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + 1;
$193 = $labelInfo + 1310736 + ($187 + -6 << 2) | 0;
HEAP32[$193 >> 2] = (HEAP32[$193 >> 2] | 0) + $i$255;
$197 = $labelInfo + 1310736 + ($187 + -5 << 2) | 0;
HEAP32[$197 >> 2] = (HEAP32[$197 >> 2] | 0) + $j$068;
$201 = $labelInfo + 1310736 + ($187 + -3 << 2) | 0;
if ((HEAP32[$201 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$201 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$204 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $204;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $204 << 16 >> 16;
$209 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($209 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($209 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($209 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($209 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($209 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($209 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($209 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $204;
break;
}
}
if ($64) {
$67 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0;
$70 = HEAP32[$labelInfo + 1179664 + ($63 + -1 << 2) >> 2] | 0;
if (($67 | 0) > ($70 | 0)) {
HEAP16[$pnt2$362 >> 1] = $70;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($67 | 0)) HEAP32[$wk$052 >> 2] = $70;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$87 = $70;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $87 = $70;
} else {
HEAP16[$pnt2$362 >> 1] = $67;
if (($67 | 0) < ($70 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($70 | 0)) HEAP32[$wk$149 >> 2] = $67;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$87 = $67;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $87 = $67;
}
$89 = ($87 << 16 >> 16) * 7 | 0;
$91 = $labelInfo + 1310736 + ($89 + -7 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + 1;
$95 = $labelInfo + 1310736 + ($89 + -6 << 2) | 0;
HEAP32[$95 >> 2] = (HEAP32[$95 >> 2] | 0) + $i$255;
$99 = $labelInfo + 1310736 + ($89 + -5 << 2) | 0;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($89 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$105 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($105 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $58;
$145 = $59 * 7 | 0;
$147 = $labelInfo + 1310736 + ($145 + -7 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + 1;
$151 = $labelInfo + 1310736 + ($145 + -6 << 2) | 0;
HEAP32[$151 >> 2] = (HEAP32[$151 >> 2] | 0) + $i$255;
$155 = $labelInfo + 1310736 + ($145 + -5 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + $j$068;
$159 = $labelInfo + 1310736 + ($145 + -4 << 2) | 0;
if ((HEAP32[$159 >> 2] | 0) > ($i$255 | 0)) HEAP32[$159 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($145 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$110 = HEAP32[$labelInfo + 1179664 + ($59 + -1 << 2) >> 2] | 0;
$113 = HEAP32[$labelInfo + 1179664 + (($105 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($110 | 0) > ($113 | 0)) {
HEAP16[$pnt2$362 >> 1] = $113;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($110 | 0)) HEAP32[$wk$245 >> 2] = $113;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$130 = $113;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $130 = $113;
} else {
HEAP16[$pnt2$362 >> 1] = $110;
if (($110 | 0) < ($113 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($113 | 0)) HEAP32[$wk$342 >> 2] = $110;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$130 = $110;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $130 = $110;
}
$132 = ($130 << 16 >> 16) * 7 | 0;
$134 = $labelInfo + 1310736 + ($132 + -7 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + 1;
$138 = $labelInfo + 1310736 + ($132 + -6 << 2) | 0;
HEAP32[$138 >> 2] = (HEAP32[$138 >> 2] | 0) + $i$255;
$142 = $labelInfo + 1310736 + ($132 + -5 << 2) | 0;
HEAP32[$142 >> 2] = (HEAP32[$142 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$224 = $pnt$163 + 2 | 0;
$225 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $224;
$pnt2$3$lcssa = $225;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $224;
$pnt2$362 = $225;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$231 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$233 = HEAP32[$wk$439 >> 2] | 0;
if (($233 | 0) == ($i$337 | 0)) {
$239 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$239 = HEAP32[$labelInfo + 1179664 + ($233 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $239;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$243 = $labelInfo + 8 | 0;
$244 = $j$1$lcssa + -1 | 0;
HEAP32[$243 >> 2] = $244;
if (!$244) $$0 = 0; else {
_memset($231 | 0, 0, $244 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $244 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$251 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($251 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($251 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($251 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($251 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$243 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$265 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$266 = $i$533 * 7 | 0;
$269 = $labelInfo + 12 + ($265 << 2) | 0;
HEAP32[$269 >> 2] = (HEAP32[$269 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($266 << 2) >> 2] | 0);
$276 = $265 << 1;
$277 = $labelInfo + 655376 + ($276 << 3) | 0;
HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 1 << 2) >> 2] | 0);
$285 = $labelInfo + 655376 + (($276 | 1) << 3) | 0;
HEAPF64[$285 >> 3] = +HEAPF64[$285 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($266 + 2 << 2) >> 2] | 0);
$288 = $265 << 2;
$289 = $labelInfo + 131084 + ($288 << 2) | 0;
$293 = HEAP32[$labelInfo + 1310736 + ($266 + 3 << 2) >> 2] | 0;
if ((HEAP32[$289 >> 2] | 0) > ($293 | 0)) HEAP32[$289 >> 2] = $293;
$296 = $labelInfo + 131084 + (($288 | 1) << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($266 + 4 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) < ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($288 | 2) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($266 + 5 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) > ($307 | 0)) HEAP32[$303 >> 2] = $307;
$310 = $labelInfo + 131084 + (($288 | 3) << 2) | 0;
$314 = HEAP32[$labelInfo + 1310736 + ($266 + 6 << 2) >> 2] | 0;
if ((HEAP32[$310 >> 2] | 0) < ($314 | 0)) HEAP32[$310 >> 2] = $314;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$243 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$318 = $labelInfo + 12 + ($i$632 << 2) | 0;
$321 = $i$632 << 1;
$322 = $labelInfo + 655376 + ($321 << 3) | 0;
HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$318 >> 2] | 0);
$328 = $labelInfo + 655376 + (($321 | 1) << 3) | 0;
HEAPF64[$328 >> 3] = +HEAPF64[$328 >> 3] / +(HEAP32[$318 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$243 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $109 = 0, $112 = 0, $129 = 0, $131 = 0, $133 = 0, $137 = 0, $141 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $158 = 0, $163 = 0, $165 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $183 = 0, $186 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $200 = 0, $203 = 0, $208 = 0, $223 = 0, $224 = 0, $230 = 0, $232 = 0, $238 = 0, $24 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $38 = 0, $41 = 0, $43 = 0, $47 = 0, $51 = 0, $57 = 0, $58 = 0, $61 = 0, $62 = 0, $63 = 0, $66 = 0, $69 = 0, $86 = 0, $88 = 0, $9 = 0, $90 = 0, $94 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 2) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if (((HEAPU8[$pnt$163 + 2 >> 0] | 0) + (HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 + 3 >> 0] | 0) | 0) > ($9 | 0)) {
$38 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($38 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $38;
$41 = ($38 << 16 >> 16) * 7 | 0;
$43 = $labelInfo + 1310736 + ($41 + -7 << 2) | 0;
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 1;
$47 = $labelInfo + 1310736 + ($41 + -6 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $i$255;
$51 = $labelInfo + 1310736 + ($41 + -5 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($41 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$57 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$58 = $57 << 16 >> 16;
$61 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$62 = $61 << 16 >> 16;
$63 = $61 << 16 >> 16 > 0;
if ($57 << 16 >> 16 <= 0) {
if ($63) {
HEAP16[$pnt2$362 >> 1] = $61;
$163 = $62 * 7 | 0;
$165 = $labelInfo + 1310736 + ($163 + -7 << 2) | 0;
HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + 1;
$169 = $labelInfo + 1310736 + ($163 + -6 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $i$255;
$173 = $labelInfo + 1310736 + ($163 + -5 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $j$068;
$177 = $labelInfo + 1310736 + ($163 + -3 << 2) | 0;
if ((HEAP32[$177 >> 2] | 0) < ($i$255 | 0)) HEAP32[$177 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($163 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$183 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($183 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $183;
$186 = ($183 << 16 >> 16) * 7 | 0;
$188 = $labelInfo + 1310736 + ($186 + -7 << 2) | 0;
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 1;
$192 = $labelInfo + 1310736 + ($186 + -6 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $i$255;
$196 = $labelInfo + 1310736 + ($186 + -5 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $j$068;
$200 = $labelInfo + 1310736 + ($186 + -3 << 2) | 0;
if ((HEAP32[$200 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$200 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$203 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $203;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $203 << 16 >> 16;
$208 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($208 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($208 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($208 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($208 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($208 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($208 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($208 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $203;
break;
}
}
if ($63) {
$66 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0;
$69 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
if (($66 | 0) > ($69 | 0)) {
HEAP16[$pnt2$362 >> 1] = $69;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$052 >> 2] = $69;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$86 = $69;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $86 = $69;
} else {
HEAP16[$pnt2$362 >> 1] = $66;
if (($66 | 0) < ($69 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$149 >> 2] = $66;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$86 = $66;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $86 = $66;
}
$88 = ($86 << 16 >> 16) * 7 | 0;
$90 = $labelInfo + 1310736 + ($88 + -7 << 2) | 0;
HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1;
$94 = $labelInfo + 1310736 + ($88 + -6 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $i$255;
$98 = $labelInfo + 1310736 + ($88 + -5 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($88 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$104 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($104 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $57;
$144 = $58 * 7 | 0;
$146 = $labelInfo + 1310736 + ($144 + -7 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + 1;
$150 = $labelInfo + 1310736 + ($144 + -6 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $i$255;
$154 = $labelInfo + 1310736 + ($144 + -5 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $j$068;
$158 = $labelInfo + 1310736 + ($144 + -4 << 2) | 0;
if ((HEAP32[$158 >> 2] | 0) > ($i$255 | 0)) HEAP32[$158 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($144 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$109 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0;
$112 = HEAP32[$labelInfo + 1179664 + (($104 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($109 | 0) > ($112 | 0)) {
HEAP16[$pnt2$362 >> 1] = $112;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$245 >> 2] = $112;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$129 = $112;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $129 = $112;
} else {
HEAP16[$pnt2$362 >> 1] = $109;
if (($109 | 0) < ($112 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$342 >> 2] = $109;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$129 = $109;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $129 = $109;
}
$131 = ($129 << 16 >> 16) * 7 | 0;
$133 = $labelInfo + 1310736 + ($131 + -7 << 2) | 0;
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 1;
$137 = $labelInfo + 1310736 + ($131 + -6 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $i$255;
$141 = $labelInfo + 1310736 + ($131 + -5 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$223 = $pnt$163 + 4 | 0;
$224 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $223;
$pnt2$3$lcssa = $224;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $223;
$pnt2$362 = $224;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 8 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$230 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$232 = HEAP32[$wk$439 >> 2] | 0;
if (($232 | 0) == ($i$337 | 0)) {
$238 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $238;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$242 = $labelInfo + 8 | 0;
$243 = $j$1$lcssa + -1 | 0;
HEAP32[$242 >> 2] = $243;
if (!$243) $$0 = 0; else {
_memset($230 | 0, 0, $243 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$250 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$242 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$264 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$265 = $i$533 * 7 | 0;
$268 = $labelInfo + 12 + ($264 << 2) | 0;
HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0);
$275 = $264 << 1;
$276 = $labelInfo + 655376 + ($275 << 3) | 0;
HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0);
$284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0);
$287 = $264 << 2;
$288 = $labelInfo + 131084 + ($287 << 2) | 0;
$292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0;
if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292;
$295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0;
$299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0;
if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299;
$302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$242 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$317 = $labelInfo + 12 + ($i$632 << 2) | 0;
$320 = $i$632 << 1;
$321 = $labelInfo + 655376 + ($320 << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0);
$327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0;
HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$242 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBRA3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $104 = 0, $109 = 0, $112 = 0, $129 = 0, $131 = 0, $133 = 0, $137 = 0, $141 = 0, $144 = 0, $146 = 0, $150 = 0, $154 = 0, $158 = 0, $163 = 0, $165 = 0, $169 = 0, $17 = 0, $173 = 0, $177 = 0, $18 = 0, $183 = 0, $186 = 0, $188 = 0, $19 = 0, $192 = 0, $196 = 0, $200 = 0, $203 = 0, $208 = 0, $223 = 0, $224 = 0, $230 = 0, $232 = 0, $238 = 0, $24 = 0, $242 = 0, $243 = 0, $250 = 0, $264 = 0, $265 = 0, $268 = 0, $275 = 0, $276 = 0, $284 = 0, $287 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $302 = 0, $306 = 0, $309 = 0, $313 = 0, $317 = 0, $320 = 0, $321 = 0, $327 = 0, $38 = 0, $41 = 0, $43 = 0, $47 = 0, $51 = 0, $57 = 0, $58 = 0, $61 = 0, $62 = 0, $63 = 0, $66 = 0, $69 = 0, $86 = 0, $88 = 0, $9 = 0, $90 = 0, $94 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 2) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if (((HEAPU8[$pnt$163 + 2 >> 0] | 0) + (HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 + 3 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$38 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($38 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $38;
$41 = ($38 << 16 >> 16) * 7 | 0;
$43 = $labelInfo + 1310736 + ($41 + -7 << 2) | 0;
HEAP32[$43 >> 2] = (HEAP32[$43 >> 2] | 0) + 1;
$47 = $labelInfo + 1310736 + ($41 + -6 << 2) | 0;
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $i$255;
$51 = $labelInfo + 1310736 + ($41 + -5 << 2) | 0;
HEAP32[$51 >> 2] = (HEAP32[$51 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($41 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$57 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$58 = $57 << 16 >> 16;
$61 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$62 = $61 << 16 >> 16;
$63 = $61 << 16 >> 16 > 0;
if ($57 << 16 >> 16 <= 0) {
if ($63) {
HEAP16[$pnt2$362 >> 1] = $61;
$163 = $62 * 7 | 0;
$165 = $labelInfo + 1310736 + ($163 + -7 << 2) | 0;
HEAP32[$165 >> 2] = (HEAP32[$165 >> 2] | 0) + 1;
$169 = $labelInfo + 1310736 + ($163 + -6 << 2) | 0;
HEAP32[$169 >> 2] = (HEAP32[$169 >> 2] | 0) + $i$255;
$173 = $labelInfo + 1310736 + ($163 + -5 << 2) | 0;
HEAP32[$173 >> 2] = (HEAP32[$173 >> 2] | 0) + $j$068;
$177 = $labelInfo + 1310736 + ($163 + -3 << 2) | 0;
if ((HEAP32[$177 >> 2] | 0) < ($i$255 | 0)) HEAP32[$177 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($163 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$183 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($183 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $183;
$186 = ($183 << 16 >> 16) * 7 | 0;
$188 = $labelInfo + 1310736 + ($186 + -7 << 2) | 0;
HEAP32[$188 >> 2] = (HEAP32[$188 >> 2] | 0) + 1;
$192 = $labelInfo + 1310736 + ($186 + -6 << 2) | 0;
HEAP32[$192 >> 2] = (HEAP32[$192 >> 2] | 0) + $i$255;
$196 = $labelInfo + 1310736 + ($186 + -5 << 2) | 0;
HEAP32[$196 >> 2] = (HEAP32[$196 >> 2] | 0) + $j$068;
$200 = $labelInfo + 1310736 + ($186 + -3 << 2) | 0;
if ((HEAP32[$200 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$200 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$203 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $203;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $203 << 16 >> 16;
$208 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($208 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($208 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($208 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($208 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($208 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($208 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($208 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $203;
break;
}
}
if ($63) {
$66 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0;
$69 = HEAP32[$labelInfo + 1179664 + ($62 + -1 << 2) >> 2] | 0;
if (($66 | 0) > ($69 | 0)) {
HEAP16[$pnt2$362 >> 1] = $69;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($66 | 0)) HEAP32[$wk$052 >> 2] = $69;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$86 = $69;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $86 = $69;
} else {
HEAP16[$pnt2$362 >> 1] = $66;
if (($66 | 0) < ($69 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($69 | 0)) HEAP32[$wk$149 >> 2] = $66;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$86 = $66;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $86 = $66;
}
$88 = ($86 << 16 >> 16) * 7 | 0;
$90 = $labelInfo + 1310736 + ($88 + -7 << 2) | 0;
HEAP32[$90 >> 2] = (HEAP32[$90 >> 2] | 0) + 1;
$94 = $labelInfo + 1310736 + ($88 + -6 << 2) | 0;
HEAP32[$94 >> 2] = (HEAP32[$94 >> 2] | 0) + $i$255;
$98 = $labelInfo + 1310736 + ($88 + -5 << 2) | 0;
HEAP32[$98 >> 2] = (HEAP32[$98 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($88 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$104 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($104 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $57;
$144 = $58 * 7 | 0;
$146 = $labelInfo + 1310736 + ($144 + -7 << 2) | 0;
HEAP32[$146 >> 2] = (HEAP32[$146 >> 2] | 0) + 1;
$150 = $labelInfo + 1310736 + ($144 + -6 << 2) | 0;
HEAP32[$150 >> 2] = (HEAP32[$150 >> 2] | 0) + $i$255;
$154 = $labelInfo + 1310736 + ($144 + -5 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + $j$068;
$158 = $labelInfo + 1310736 + ($144 + -4 << 2) | 0;
if ((HEAP32[$158 >> 2] | 0) > ($i$255 | 0)) HEAP32[$158 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($144 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$109 = HEAP32[$labelInfo + 1179664 + ($58 + -1 << 2) >> 2] | 0;
$112 = HEAP32[$labelInfo + 1179664 + (($104 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($109 | 0) > ($112 | 0)) {
HEAP16[$pnt2$362 >> 1] = $112;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($109 | 0)) HEAP32[$wk$245 >> 2] = $112;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$129 = $112;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $129 = $112;
} else {
HEAP16[$pnt2$362 >> 1] = $109;
if (($109 | 0) < ($112 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($112 | 0)) HEAP32[$wk$342 >> 2] = $109;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$129 = $109;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $129 = $109;
}
$131 = ($129 << 16 >> 16) * 7 | 0;
$133 = $labelInfo + 1310736 + ($131 + -7 << 2) | 0;
HEAP32[$133 >> 2] = (HEAP32[$133 >> 2] | 0) + 1;
$137 = $labelInfo + 1310736 + ($131 + -6 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + $i$255;
$141 = $labelInfo + 1310736 + ($131 + -5 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$223 = $pnt$163 + 4 | 0;
$224 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $223;
$pnt2$3$lcssa = $224;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $223;
$pnt2$362 = $224;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 8 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$230 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$232 = HEAP32[$wk$439 >> 2] | 0;
if (($232 | 0) == ($i$337 | 0)) {
$238 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$238 = HEAP32[$labelInfo + 1179664 + ($232 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $238;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$242 = $labelInfo + 8 | 0;
$243 = $j$1$lcssa + -1 | 0;
HEAP32[$242 >> 2] = $243;
if (!$243) $$0 = 0; else {
_memset($230 | 0, 0, $243 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $243 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$250 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($250 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($250 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($250 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($250 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$242 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$264 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$265 = $i$533 * 7 | 0;
$268 = $labelInfo + 12 + ($264 << 2) | 0;
HEAP32[$268 >> 2] = (HEAP32[$268 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($265 << 2) >> 2] | 0);
$275 = $264 << 1;
$276 = $labelInfo + 655376 + ($275 << 3) | 0;
HEAPF64[$276 >> 3] = +HEAPF64[$276 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 1 << 2) >> 2] | 0);
$284 = $labelInfo + 655376 + (($275 | 1) << 3) | 0;
HEAPF64[$284 >> 3] = +HEAPF64[$284 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($265 + 2 << 2) >> 2] | 0);
$287 = $264 << 2;
$288 = $labelInfo + 131084 + ($287 << 2) | 0;
$292 = HEAP32[$labelInfo + 1310736 + ($265 + 3 << 2) >> 2] | 0;
if ((HEAP32[$288 >> 2] | 0) > ($292 | 0)) HEAP32[$288 >> 2] = $292;
$295 = $labelInfo + 131084 + (($287 | 1) << 2) | 0;
$299 = HEAP32[$labelInfo + 1310736 + ($265 + 4 << 2) >> 2] | 0;
if ((HEAP32[$295 >> 2] | 0) < ($299 | 0)) HEAP32[$295 >> 2] = $299;
$302 = $labelInfo + 131084 + (($287 | 2) << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($265 + 5 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) > ($306 | 0)) HEAP32[$302 >> 2] = $306;
$309 = $labelInfo + 131084 + (($287 | 3) << 2) | 0;
$313 = HEAP32[$labelInfo + 1310736 + ($265 + 6 << 2) >> 2] | 0;
if ((HEAP32[$309 >> 2] | 0) < ($313 | 0)) HEAP32[$309 >> 2] = $313;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$242 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$317 = $labelInfo + 12 + ($i$632 << 2) | 0;
$320 = $i$632 << 1;
$321 = $labelInfo + 655376 + ($320 << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$317 >> 2] | 0);
$327 = $labelInfo + 655376 + (($320 | 1) << 3) | 0;
HEAPF64[$327 >> 3] = +HEAPF64[$327 >> 3] / +(HEAP32[$317 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$242 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 * 3 | 0) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
$37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($37 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $37;
$40 = ($37 << 16 >> 16) * 7 | 0;
$42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1;
$46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255;
$50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$57 = $56 << 16 >> 16;
$60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$62 = $60 << 16 >> 16 > 0;
if ($56 << 16 >> 16 <= 0) {
if ($62) {
HEAP16[$pnt2$362 >> 1] = $60;
$162 = $61 * 7 | 0;
$164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1;
$168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255;
$172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068;
$176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0;
if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$182 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($182 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $182;
$185 = ($182 << 16 >> 16) * 7 | 0;
$187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1;
$191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255;
$195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068;
$199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0;
if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$199 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$202 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $202;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16;
$207 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $202;
break;
}
}
if ($62) {
$65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
if (($65 | 0) > ($68 | 0)) {
HEAP16[$pnt2$362 >> 1] = $68;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$85 = $68;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $85 = $68;
} else {
HEAP16[$pnt2$362 >> 1] = $65;
if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$85 = $65;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $85 = $65;
}
$87 = ($85 << 16 >> 16) * 7 | 0;
$89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1;
$93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255;
$97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$103 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($103 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $56;
$143 = $57 * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068;
$157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0;
if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($108 | 0) > ($111 | 0)) {
HEAP16[$pnt2$362 >> 1] = $111;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$128 = $111;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $128 = $111;
} else {
HEAP16[$pnt2$362 >> 1] = $108;
if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$128 = $108;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $128 = $108;
}
$130 = ($128 << 16 >> 16) * 7 | 0;
$132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1;
$136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255;
$140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$222 = $pnt$163 + 3 | 0;
$223 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $222;
$pnt2$3$lcssa = $223;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $222;
$pnt2$362 = $223;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 6 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$229 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$231 = HEAP32[$wk$439 >> 2] | 0;
if (($231 | 0) == ($i$337 | 0)) {
$237 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $237;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$241 = $labelInfo + 8 | 0;
$242 = $j$1$lcssa + -1 | 0;
HEAP32[$241 >> 2] = $242;
if (!$242) $$0 = 0; else {
_memset($229 | 0, 0, $242 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$249 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$264 = $i$533 * 7 | 0;
$267 = $labelInfo + 12 + ($263 << 2) | 0;
HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0);
$274 = $263 << 1;
$275 = $labelInfo + 655376 + ($274 << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0);
$283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0;
HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0);
$286 = $263 << 2;
$287 = $labelInfo + 131084 + ($286 << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$241 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$316 = $labelInfo + 12 + ($i$632 << 2) | 0;
$319 = $i$632 << 1;
$320 = $labelInfo + 655376 + ($319 << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0);
$326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBR3C($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 * 3 | 0) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($37 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $37;
$40 = ($37 << 16 >> 16) * 7 | 0;
$42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1;
$46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255;
$50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$57 = $56 << 16 >> 16;
$60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$62 = $60 << 16 >> 16 > 0;
if ($56 << 16 >> 16 <= 0) {
if ($62) {
HEAP16[$pnt2$362 >> 1] = $60;
$162 = $61 * 7 | 0;
$164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1;
$168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255;
$172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068;
$176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0;
if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$182 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($182 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $182;
$185 = ($182 << 16 >> 16) * 7 | 0;
$187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1;
$191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255;
$195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068;
$199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0;
if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$199 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$202 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $202;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16;
$207 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $202;
break;
}
}
if ($62) {
$65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
if (($65 | 0) > ($68 | 0)) {
HEAP16[$pnt2$362 >> 1] = $68;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$85 = $68;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $85 = $68;
} else {
HEAP16[$pnt2$362 >> 1] = $65;
if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$85 = $65;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $85 = $65;
}
$87 = ($85 << 16 >> 16) * 7 | 0;
$89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1;
$93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255;
$97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$103 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($103 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $56;
$143 = $57 * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068;
$157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0;
if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($108 | 0) > ($111 | 0)) {
HEAP16[$pnt2$362 >> 1] = $111;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$128 = $111;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $128 = $111;
} else {
HEAP16[$pnt2$362 >> 1] = $108;
if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$128 = $108;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $128 = $108;
}
$130 = ($128 << 16 >> 16) * 7 | 0;
$132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1;
$136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255;
$140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$222 = $pnt$163 + 3 | 0;
$223 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $222;
$pnt2$3$lcssa = $223;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $222;
$pnt2$362 = $223;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 6 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$229 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$231 = HEAP32[$wk$439 >> 2] | 0;
if (($231 | 0) == ($i$337 | 0)) {
$237 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $237;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$241 = $labelInfo + 8 | 0;
$242 = $j$1$lcssa + -1 | 0;
HEAP32[$241 >> 2] = $242;
if (!$242) $$0 = 0; else {
_memset($229 | 0, 0, $242 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$249 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$264 = $i$533 * 7 | 0;
$267 = $labelInfo + 12 + ($263 << 2) | 0;
HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0);
$274 = $263 << 1;
$275 = $labelInfo + 655376 + ($274 << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0);
$283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0;
HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0);
$286 = $263 << 2;
$287 = $labelInfo + 131084 + ($286 << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$241 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$316 = $labelInfo + 12 + ($i$632 << 2) | 0;
$319 = $i$632 << 1;
$320 = $labelInfo + 655376 + ($319 << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0);
$326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 2) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
$37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($37 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $37;
$40 = ($37 << 16 >> 16) * 7 | 0;
$42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1;
$46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255;
$50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$57 = $56 << 16 >> 16;
$60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$62 = $60 << 16 >> 16 > 0;
if ($56 << 16 >> 16 <= 0) {
if ($62) {
HEAP16[$pnt2$362 >> 1] = $60;
$162 = $61 * 7 | 0;
$164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1;
$168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255;
$172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068;
$176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0;
if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$182 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($182 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $182;
$185 = ($182 << 16 >> 16) * 7 | 0;
$187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1;
$191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255;
$195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068;
$199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0;
if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$199 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$202 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $202;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16;
$207 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $202;
break;
}
}
if ($62) {
$65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
if (($65 | 0) > ($68 | 0)) {
HEAP16[$pnt2$362 >> 1] = $68;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$85 = $68;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $85 = $68;
} else {
HEAP16[$pnt2$362 >> 1] = $65;
if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$85 = $65;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $85 = $65;
}
$87 = ($85 << 16 >> 16) * 7 | 0;
$89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1;
$93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255;
$97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$103 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($103 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $56;
$143 = $57 * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068;
$157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0;
if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($108 | 0) > ($111 | 0)) {
HEAP16[$pnt2$362 >> 1] = $111;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$128 = $111;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $128 = $111;
} else {
HEAP16[$pnt2$362 >> 1] = $108;
if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$128 = $108;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $128 = $108;
}
$130 = ($128 << 16 >> 16) * 7 | 0;
$132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1;
$136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255;
$140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$222 = $pnt$163 + 4 | 0;
$223 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $222;
$pnt2$3$lcssa = $223;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $222;
$pnt2$362 = $223;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 8 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$229 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$231 = HEAP32[$wk$439 >> 2] | 0;
if (($231 | 0) == ($i$337 | 0)) {
$237 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $237;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$241 = $labelInfo + 8 | 0;
$242 = $j$1$lcssa + -1 | 0;
HEAP32[$241 >> 2] = $242;
if (!$242) $$0 = 0; else {
_memset($229 | 0, 0, $242 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$249 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$264 = $i$533 * 7 | 0;
$267 = $labelInfo + 12 + ($263 << 2) | 0;
HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0);
$274 = $263 << 1;
$275 = $labelInfo + 655376 + ($274 << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0);
$283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0;
HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0);
$286 = $263 << 2;
$287 = $labelInfo + 131084 + ($286 << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$241 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$316 = $labelInfo + 12 + ($i$632 << 2) | 0;
$319 = $i$632 << 1;
$320 = $labelInfo + 655376 + ($319 << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0);
$326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBR3CA($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $108 = 0, $111 = 0, $128 = 0, $130 = 0, $132 = 0, $136 = 0, $140 = 0, $143 = 0, $145 = 0, $149 = 0, $153 = 0, $157 = 0, $162 = 0, $164 = 0, $168 = 0, $17 = 0, $172 = 0, $176 = 0, $18 = 0, $182 = 0, $185 = 0, $187 = 0, $19 = 0, $191 = 0, $195 = 0, $199 = 0, $202 = 0, $207 = 0, $222 = 0, $223 = 0, $229 = 0, $231 = 0, $237 = 0, $24 = 0, $241 = 0, $242 = 0, $249 = 0, $263 = 0, $264 = 0, $267 = 0, $274 = 0, $275 = 0, $283 = 0, $286 = 0, $287 = 0, $291 = 0, $294 = 0, $298 = 0, $301 = 0, $305 = 0, $308 = 0, $312 = 0, $316 = 0, $319 = 0, $320 = 0, $326 = 0, $37 = 0, $40 = 0, $42 = 0, $46 = 0, $50 = 0, $56 = 0, $57 = 0, $60 = 0, $61 = 0, $62 = 0, $65 = 0, $68 = 0, $85 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $97 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $labelingThresh * 3 | 0;
$10 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($10 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$17 = $labelInfo + 1179664 | 0;
$18 = $xsize + 1 | 0;
$19 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$24 = ($10 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($18 << 2) | 0;
$pnt2$271 = $0 + ($18 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($24) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if (((HEAPU8[$pnt$163 + 1 >> 0] | 0) + (HEAPU8[$pnt$163 >> 0] | 0) + (HEAPU8[$pnt$163 + 2 >> 0] | 0) | 0) > ($9 | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$37 = HEAP16[$pnt2$362 + ($19 << 1) >> 1] | 0;
if ($37 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $37;
$40 = ($37 << 16 >> 16) * 7 | 0;
$42 = $labelInfo + 1310736 + ($40 + -7 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 1;
$46 = $labelInfo + 1310736 + ($40 + -6 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $i$255;
$50 = $labelInfo + 1310736 + ($40 + -5 << 2) | 0;
HEAP32[$50 >> 2] = (HEAP32[$50 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($40 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$56 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$57 = $56 << 16 >> 16;
$60 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$61 = $60 << 16 >> 16;
$62 = $60 << 16 >> 16 > 0;
if ($56 << 16 >> 16 <= 0) {
if ($62) {
HEAP16[$pnt2$362 >> 1] = $60;
$162 = $61 * 7 | 0;
$164 = $labelInfo + 1310736 + ($162 + -7 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + 1;
$168 = $labelInfo + 1310736 + ($162 + -6 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $i$255;
$172 = $labelInfo + 1310736 + ($162 + -5 << 2) | 0;
HEAP32[$172 >> 2] = (HEAP32[$172 >> 2] | 0) + $j$068;
$176 = $labelInfo + 1310736 + ($162 + -3 << 2) | 0;
if ((HEAP32[$176 >> 2] | 0) < ($i$255 | 0)) HEAP32[$176 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($162 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$182 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($182 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $182;
$185 = ($182 << 16 >> 16) * 7 | 0;
$187 = $labelInfo + 1310736 + ($185 + -7 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + 1;
$191 = $labelInfo + 1310736 + ($185 + -6 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $i$255;
$195 = $labelInfo + 1310736 + ($185 + -5 << 2) | 0;
HEAP32[$195 >> 2] = (HEAP32[$195 >> 2] | 0) + $j$068;
$199 = $labelInfo + 1310736 + ($185 + -3 << 2) | 0;
if ((HEAP32[$199 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$199 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$202 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $202;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $202 << 16 >> 16;
$207 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($207 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($207 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($207 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($207 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $202;
break;
}
}
if ($62) {
$65 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$68 = HEAP32[$labelInfo + 1179664 + ($61 + -1 << 2) >> 2] | 0;
if (($65 | 0) > ($68 | 0)) {
HEAP16[$pnt2$362 >> 1] = $68;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $17;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($65 | 0)) HEAP32[$wk$052 >> 2] = $68;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$85 = $68;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $85 = $68;
} else {
HEAP16[$pnt2$362 >> 1] = $65;
if (($65 | 0) < ($68 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $17;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($68 | 0)) HEAP32[$wk$149 >> 2] = $65;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$85 = $65;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $85 = $65;
}
$87 = ($85 << 16 >> 16) * 7 | 0;
$89 = $labelInfo + 1310736 + ($87 + -7 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + 1;
$93 = $labelInfo + 1310736 + ($87 + -6 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $i$255;
$97 = $labelInfo + 1310736 + ($87 + -5 << 2) | 0;
HEAP32[$97 >> 2] = (HEAP32[$97 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($87 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$103 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($103 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $56;
$143 = $57 * 7 | 0;
$145 = $labelInfo + 1310736 + ($143 + -7 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + 1;
$149 = $labelInfo + 1310736 + ($143 + -6 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $i$255;
$153 = $labelInfo + 1310736 + ($143 + -5 << 2) | 0;
HEAP32[$153 >> 2] = (HEAP32[$153 >> 2] | 0) + $j$068;
$157 = $labelInfo + 1310736 + ($143 + -4 << 2) | 0;
if ((HEAP32[$157 >> 2] | 0) > ($i$255 | 0)) HEAP32[$157 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($143 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$108 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
$111 = HEAP32[$labelInfo + 1179664 + (($103 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($108 | 0) > ($111 | 0)) {
HEAP16[$pnt2$362 >> 1] = $111;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $17;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($108 | 0)) HEAP32[$wk$245 >> 2] = $111;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$128 = $111;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $128 = $111;
} else {
HEAP16[$pnt2$362 >> 1] = $108;
if (($108 | 0) < ($111 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $17;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($111 | 0)) HEAP32[$wk$342 >> 2] = $108;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$128 = $108;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $128 = $108;
}
$130 = ($128 << 16 >> 16) * 7 | 0;
$132 = $labelInfo + 1310736 + ($130 + -7 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + 1;
$136 = $labelInfo + 1310736 + ($130 + -6 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $i$255;
$140 = $labelInfo + 1310736 + ($130 + -5 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$222 = $pnt$163 + 4 | 0;
$223 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($10 | 0)) {
$pnt$1$lcssa = $222;
$pnt2$3$lcssa = $223;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $222;
$pnt2$362 = $223;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 8 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$229 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $17;
while (1) {
$231 = HEAP32[$wk$439 >> 2] | 0;
if (($231 | 0) == ($i$337 | 0)) {
$237 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$237 = HEAP32[$labelInfo + 1179664 + ($231 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $237;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$241 = $labelInfo + 8 | 0;
$242 = $j$1$lcssa + -1 | 0;
HEAP32[$241 >> 2] = $242;
if (!$242) $$0 = 0; else {
_memset($229 | 0, 0, $242 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $242 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$249 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($249 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($249 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($249 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($249 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$241 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$263 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$264 = $i$533 * 7 | 0;
$267 = $labelInfo + 12 + ($263 << 2) | 0;
HEAP32[$267 >> 2] = (HEAP32[$267 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($264 << 2) >> 2] | 0);
$274 = $263 << 1;
$275 = $labelInfo + 655376 + ($274 << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 1 << 2) >> 2] | 0);
$283 = $labelInfo + 655376 + (($274 | 1) << 3) | 0;
HEAPF64[$283 >> 3] = +HEAPF64[$283 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($264 + 2 << 2) >> 2] | 0);
$286 = $263 << 2;
$287 = $labelInfo + 131084 + ($286 << 2) | 0;
$291 = HEAP32[$labelInfo + 1310736 + ($264 + 3 << 2) >> 2] | 0;
if ((HEAP32[$287 >> 2] | 0) > ($291 | 0)) HEAP32[$287 >> 2] = $291;
$294 = $labelInfo + 131084 + (($286 | 1) << 2) | 0;
$298 = HEAP32[$labelInfo + 1310736 + ($264 + 4 << 2) >> 2] | 0;
if ((HEAP32[$294 >> 2] | 0) < ($298 | 0)) HEAP32[$294 >> 2] = $298;
$301 = $labelInfo + 131084 + (($286 | 2) << 2) | 0;
$305 = HEAP32[$labelInfo + 1310736 + ($264 + 5 << 2) >> 2] | 0;
if ((HEAP32[$301 >> 2] | 0) > ($305 | 0)) HEAP32[$301 >> 2] = $305;
$308 = $labelInfo + 131084 + (($286 | 3) << 2) | 0;
$312 = HEAP32[$labelInfo + 1310736 + ($264 + 6 << 2) >> 2] | 0;
if ((HEAP32[$308 >> 2] | 0) < ($312 | 0)) HEAP32[$308 >> 2] = $312;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$241 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$316 = $labelInfo + 12 + ($i$632 << 2) | 0;
$319 = $i$632 << 1;
$320 = $labelInfo + 655376 + ($319 << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$316 >> 2] | 0);
$326 = $labelInfo + 655376 + (($319 | 1) << 3) | 0;
HEAPF64[$326 >> 3] = +HEAPF64[$326 >> 3] / +(HEAP32[$316 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$241 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $104 = 0, $107 = 0, $11 = 0, $124 = 0, $126 = 0, $128 = 0, $132 = 0, $136 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $168 = 0, $172 = 0, $178 = 0, $18 = 0, $181 = 0, $183 = 0, $187 = 0, $191 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $218 = 0, $219 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $33 = 0, $36 = 0, $38 = 0, $42 = 0, $46 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $58 = 0, $61 = 0, $64 = 0, $81 = 0, $83 = 0, $85 = 0, $89 = 0, $93 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$27 = ($11 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($27) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if ((HEAPU8[$pnt$164 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
$33 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($33 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $33;
$36 = ($33 << 16 >> 16) * 7 | 0;
$38 = $labelInfo + 1310736 + ($36 + -7 << 2) | 0;
HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1;
$42 = $labelInfo + 1310736 + ($36 + -6 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $i$256;
$46 = $labelInfo + 1310736 + ($36 + -5 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($36 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$52 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$53 = $52 << 16 >> 16;
$56 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$57 = $56 << 16 >> 16;
$58 = $56 << 16 >> 16 > 0;
if ($52 << 16 >> 16 <= 0) {
if ($58) {
HEAP16[$pnt2$363 >> 1] = $56;
$158 = $57 * 7 | 0;
$160 = $labelInfo + 1310736 + ($158 + -7 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 1;
$164 = $labelInfo + 1310736 + ($158 + -6 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $i$256;
$168 = $labelInfo + 1310736 + ($158 + -5 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $j$069;
$172 = $labelInfo + 1310736 + ($158 + -3 << 2) | 0;
if ((HEAP32[$172 >> 2] | 0) < ($i$256 | 0)) HEAP32[$172 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($158 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$178 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($178 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $178;
$181 = ($178 << 16 >> 16) * 7 | 0;
$183 = $labelInfo + 1310736 + ($181 + -7 << 2) | 0;
HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + 1;
$187 = $labelInfo + 1310736 + ($181 + -6 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $i$256;
$191 = $labelInfo + 1310736 + ($181 + -5 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $j$069;
$195 = $labelInfo + 1310736 + ($181 + -3 << 2) | 0;
if ((HEAP32[$195 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$195 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$198 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $198;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $198 << 16 >> 16;
$203 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($203 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($203 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($203 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($203 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($203 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($203 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($203 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $198;
break;
}
}
if ($58) {
$61 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0;
$64 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
if (($61 | 0) > ($64 | 0)) {
HEAP16[$pnt2$363 >> 1] = $64;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $18;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$053 >> 2] = $64;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$81 = $64;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $81 = $64;
} else {
HEAP16[$pnt2$363 >> 1] = $61;
if (($61 | 0) < ($64 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $18;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$150 >> 2] = $61;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$81 = $61;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $81 = $61;
}
$83 = ($81 << 16 >> 16) * 7 | 0;
$85 = $labelInfo + 1310736 + ($83 + -7 << 2) | 0;
HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + 1;
$89 = $labelInfo + 1310736 + ($83 + -6 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $i$256;
$93 = $labelInfo + 1310736 + ($83 + -5 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($83 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$99 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($99 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $52;
$139 = $53 * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$256;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$069;
$153 = $labelInfo + 1310736 + ($139 + -4 << 2) | 0;
if ((HEAP32[$153 >> 2] | 0) > ($i$256 | 0)) HEAP32[$153 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($139 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$104 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0;
$107 = HEAP32[$labelInfo + 1179664 + (($99 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($104 | 0) > ($107 | 0)) {
HEAP16[$pnt2$363 >> 1] = $107;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $18;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$246 >> 2] = $107;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$124 = $107;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $124 = $107;
} else {
HEAP16[$pnt2$363 >> 1] = $104;
if (($104 | 0) < ($107 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $18;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$343 >> 2] = $104;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$124 = $104;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $124 = $104;
}
$126 = ($124 << 16 >> 16) * 7 | 0;
$128 = $labelInfo + 1310736 + ($126 + -7 << 2) | 0;
HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + 1;
$132 = $labelInfo + 1310736 + ($126 + -6 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $i$256;
$136 = $labelInfo + 1310736 + ($126 + -5 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$218 = $pnt$164 + 4 | 0;
$219 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($11 | 0)) {
$pnt$1$lcssa = $218;
$pnt2$3$lcssa = $219;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $218;
$pnt2$363 = $219;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$225 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $18;
while (1) {
$227 = HEAP32[$wk$440 >> 2] | 0;
if (($227 | 0) == ($i$338 | 0)) {
$233 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $233;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$237 = $labelInfo + 8 | 0;
$238 = $j$1$lcssa + -1 | 0;
HEAP32[$237 >> 2] = $238;
if (!$238) $$0 = 0; else {
_memset($225 | 0, 0, $238 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$245 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$237 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$259 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$260 = $i$534 * 7 | 0;
$263 = $labelInfo + 12 + ($259 << 2) | 0;
HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0);
$270 = $259 << 1;
$271 = $labelInfo + 655376 + ($270 << 3) | 0;
HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0);
$279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0);
$282 = $259 << 2;
$283 = $labelInfo + 131084 + ($282 << 2) | 0;
$287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0;
if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287;
$290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0;
$294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0;
if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294;
$297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$237 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$312 = $labelInfo + 12 + ($i$633 << 2) | 0;
$315 = $i$633 << 1;
$316 = $labelInfo + 655376 + ($315 << 3) | 0;
HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0);
$322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0;
HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$237 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBICY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $104 = 0, $107 = 0, $11 = 0, $124 = 0, $126 = 0, $128 = 0, $132 = 0, $136 = 0, $139 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $158 = 0, $160 = 0, $164 = 0, $168 = 0, $172 = 0, $178 = 0, $18 = 0, $181 = 0, $183 = 0, $187 = 0, $191 = 0, $195 = 0, $198 = 0, $2 = 0, $20 = 0, $203 = 0, $218 = 0, $219 = 0, $225 = 0, $227 = 0, $233 = 0, $237 = 0, $238 = 0, $245 = 0, $259 = 0, $260 = 0, $263 = 0, $27 = 0, $270 = 0, $271 = 0, $279 = 0, $282 = 0, $283 = 0, $287 = 0, $290 = 0, $294 = 0, $297 = 0, $3 = 0, $301 = 0, $304 = 0, $308 = 0, $312 = 0, $315 = 0, $316 = 0, $322 = 0, $33 = 0, $36 = 0, $38 = 0, $42 = 0, $46 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $58 = 0, $61 = 0, $64 = 0, $81 = 0, $83 = 0, $85 = 0, $89 = 0, $93 = 0, $99 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$27 = ($11 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($27) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if ((HEAPU8[$pnt$164 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$33 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($33 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $33;
$36 = ($33 << 16 >> 16) * 7 | 0;
$38 = $labelInfo + 1310736 + ($36 + -7 << 2) | 0;
HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + 1;
$42 = $labelInfo + 1310736 + ($36 + -6 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $i$256;
$46 = $labelInfo + 1310736 + ($36 + -5 << 2) | 0;
HEAP32[$46 >> 2] = (HEAP32[$46 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($36 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$52 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$53 = $52 << 16 >> 16;
$56 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$57 = $56 << 16 >> 16;
$58 = $56 << 16 >> 16 > 0;
if ($52 << 16 >> 16 <= 0) {
if ($58) {
HEAP16[$pnt2$363 >> 1] = $56;
$158 = $57 * 7 | 0;
$160 = $labelInfo + 1310736 + ($158 + -7 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 1;
$164 = $labelInfo + 1310736 + ($158 + -6 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $i$256;
$168 = $labelInfo + 1310736 + ($158 + -5 << 2) | 0;
HEAP32[$168 >> 2] = (HEAP32[$168 >> 2] | 0) + $j$069;
$172 = $labelInfo + 1310736 + ($158 + -3 << 2) | 0;
if ((HEAP32[$172 >> 2] | 0) < ($i$256 | 0)) HEAP32[$172 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($158 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$178 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($178 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $178;
$181 = ($178 << 16 >> 16) * 7 | 0;
$183 = $labelInfo + 1310736 + ($181 + -7 << 2) | 0;
HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + 1;
$187 = $labelInfo + 1310736 + ($181 + -6 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $i$256;
$191 = $labelInfo + 1310736 + ($181 + -5 << 2) | 0;
HEAP32[$191 >> 2] = (HEAP32[$191 >> 2] | 0) + $j$069;
$195 = $labelInfo + 1310736 + ($181 + -3 << 2) | 0;
if ((HEAP32[$195 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$195 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$198 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $198;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $198 << 16 >> 16;
$203 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($203 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($203 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($203 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($203 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($203 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($203 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($203 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $198;
break;
}
}
if ($58) {
$61 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0;
$64 = HEAP32[$labelInfo + 1179664 + ($57 + -1 << 2) >> 2] | 0;
if (($61 | 0) > ($64 | 0)) {
HEAP16[$pnt2$363 >> 1] = $64;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $18;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($61 | 0)) HEAP32[$wk$053 >> 2] = $64;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$81 = $64;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $81 = $64;
} else {
HEAP16[$pnt2$363 >> 1] = $61;
if (($61 | 0) < ($64 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $18;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($64 | 0)) HEAP32[$wk$150 >> 2] = $61;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$81 = $61;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $81 = $61;
}
$83 = ($81 << 16 >> 16) * 7 | 0;
$85 = $labelInfo + 1310736 + ($83 + -7 << 2) | 0;
HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + 1;
$89 = $labelInfo + 1310736 + ($83 + -6 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $i$256;
$93 = $labelInfo + 1310736 + ($83 + -5 << 2) | 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($83 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$99 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($99 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $52;
$139 = $53 * 7 | 0;
$141 = $labelInfo + 1310736 + ($139 + -7 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + 1;
$145 = $labelInfo + 1310736 + ($139 + -6 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $i$256;
$149 = $labelInfo + 1310736 + ($139 + -5 << 2) | 0;
HEAP32[$149 >> 2] = (HEAP32[$149 >> 2] | 0) + $j$069;
$153 = $labelInfo + 1310736 + ($139 + -4 << 2) | 0;
if ((HEAP32[$153 >> 2] | 0) > ($i$256 | 0)) HEAP32[$153 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($139 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$104 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0;
$107 = HEAP32[$labelInfo + 1179664 + (($99 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($104 | 0) > ($107 | 0)) {
HEAP16[$pnt2$363 >> 1] = $107;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $18;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($104 | 0)) HEAP32[$wk$246 >> 2] = $107;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$124 = $107;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $124 = $107;
} else {
HEAP16[$pnt2$363 >> 1] = $104;
if (($104 | 0) < ($107 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $18;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($107 | 0)) HEAP32[$wk$343 >> 2] = $104;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$124 = $104;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $124 = $104;
}
$126 = ($124 << 16 >> 16) * 7 | 0;
$128 = $labelInfo + 1310736 + ($126 + -7 << 2) | 0;
HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + 1;
$132 = $labelInfo + 1310736 + ($126 + -6 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $i$256;
$136 = $labelInfo + 1310736 + ($126 + -5 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$218 = $pnt$164 + 4 | 0;
$219 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($11 | 0)) {
$pnt$1$lcssa = $218;
$pnt2$3$lcssa = $219;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $218;
$pnt2$363 = $219;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$225 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $18;
while (1) {
$227 = HEAP32[$wk$440 >> 2] | 0;
if (($227 | 0) == ($i$338 | 0)) {
$233 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$233 = HEAP32[$labelInfo + 1179664 + ($227 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $233;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$237 = $labelInfo + 8 | 0;
$238 = $j$1$lcssa + -1 | 0;
HEAP32[$237 >> 2] = $238;
if (!$238) $$0 = 0; else {
_memset($225 | 0, 0, $238 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $238 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$245 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($245 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($245 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($245 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($245 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$237 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$259 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$260 = $i$534 * 7 | 0;
$263 = $labelInfo + 12 + ($259 << 2) | 0;
HEAP32[$263 >> 2] = (HEAP32[$263 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($260 << 2) >> 2] | 0);
$270 = $259 << 1;
$271 = $labelInfo + 655376 + ($270 << 3) | 0;
HEAPF64[$271 >> 3] = +HEAPF64[$271 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 1 << 2) >> 2] | 0);
$279 = $labelInfo + 655376 + (($270 | 1) << 3) | 0;
HEAPF64[$279 >> 3] = +HEAPF64[$279 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($260 + 2 << 2) >> 2] | 0);
$282 = $259 << 2;
$283 = $labelInfo + 131084 + ($282 << 2) | 0;
$287 = HEAP32[$labelInfo + 1310736 + ($260 + 3 << 2) >> 2] | 0;
if ((HEAP32[$283 >> 2] | 0) > ($287 | 0)) HEAP32[$283 >> 2] = $287;
$290 = $labelInfo + 131084 + (($282 | 1) << 2) | 0;
$294 = HEAP32[$labelInfo + 1310736 + ($260 + 4 << 2) >> 2] | 0;
if ((HEAP32[$290 >> 2] | 0) < ($294 | 0)) HEAP32[$290 >> 2] = $294;
$297 = $labelInfo + 131084 + (($282 | 2) << 2) | 0;
$301 = HEAP32[$labelInfo + 1310736 + ($260 + 5 << 2) >> 2] | 0;
if ((HEAP32[$297 >> 2] | 0) > ($301 | 0)) HEAP32[$297 >> 2] = $301;
$304 = $labelInfo + 131084 + (($282 | 3) << 2) | 0;
$308 = HEAP32[$labelInfo + 1310736 + ($260 + 6 << 2) >> 2] | 0;
if ((HEAP32[$304 >> 2] | 0) < ($308 | 0)) HEAP32[$304 >> 2] = $308;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$237 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$312 = $labelInfo + 12 + ($i$633 << 2) | 0;
$315 = $i$633 << 1;
$316 = $labelInfo + 655376 + ($315 << 3) | 0;
HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$312 >> 2] | 0);
$322 = $labelInfo + 655376 + (($315 | 1) << 3) | 0;
HEAPF64[$322 >> 3] = +HEAPF64[$322 >> 3] / +(HEAP32[$312 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$237 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $11 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $202 = 0, $217 = 0, $218 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $27 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $32 = 0, $321 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$27 = ($11 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($27) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
$32 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($32 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $32;
$35 = ($32 << 16 >> 16) * 7 | 0;
$37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1;
$41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$256;
$45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$51 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$55 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$56 = $55 << 16 >> 16;
$57 = $55 << 16 >> 16 > 0;
if ($51 << 16 >> 16 <= 0) {
if ($57) {
HEAP16[$pnt2$363 >> 1] = $55;
$157 = $56 * 7 | 0;
$159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1;
$163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$256;
$167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$069;
$171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0;
if ((HEAP32[$171 >> 2] | 0) < ($i$256 | 0)) HEAP32[$171 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$177 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($177 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $177;
$180 = ($177 << 16 >> 16) * 7 | 0;
$182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1;
$186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$256;
$190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$069;
$194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0;
if ((HEAP32[$194 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$194 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$197 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $197;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $197 << 16 >> 16;
$202 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $197;
break;
}
}
if ($57) {
$60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
if (($60 | 0) > ($63 | 0)) {
HEAP16[$pnt2$363 >> 1] = $63;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $18;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$053 >> 2] = $63;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$80 = $63;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $80 = $63;
} else {
HEAP16[$pnt2$363 >> 1] = $60;
if (($60 | 0) < ($63 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $18;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$150 >> 2] = $60;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$80 = $60;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $80 = $60;
}
$82 = ($80 << 16 >> 16) * 7 | 0;
$84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1;
$88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$256;
$92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$98 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($98 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $51;
$138 = $52 * 7 | 0;
$140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1;
$144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$256;
$148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$069;
$152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0;
if ((HEAP32[$152 >> 2] | 0) > ($i$256 | 0)) HEAP32[$152 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($103 | 0) > ($106 | 0)) {
HEAP16[$pnt2$363 >> 1] = $106;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $18;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$246 >> 2] = $106;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$123 = $106;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $123 = $106;
} else {
HEAP16[$pnt2$363 >> 1] = $103;
if (($103 | 0) < ($106 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $18;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$343 >> 2] = $103;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$123 = $103;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $123 = $103;
}
$125 = ($123 << 16 >> 16) * 7 | 0;
$127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1;
$131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$256;
$135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$217 = $pnt$164 + 4 | 0;
$218 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($11 | 0)) {
$pnt$1$lcssa = $217;
$pnt2$3$lcssa = $218;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $217;
$pnt2$363 = $218;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$224 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $18;
while (1) {
$226 = HEAP32[$wk$440 >> 2] | 0;
if (($226 | 0) == ($i$338 | 0)) {
$232 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $232;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$236 = $labelInfo + 8 | 0;
$237 = $j$1$lcssa + -1 | 0;
HEAP32[$236 >> 2] = $237;
if (!$237) $$0 = 0; else {
_memset($224 | 0, 0, $237 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$244 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$236 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$258 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$259 = $i$534 * 7 | 0;
$262 = $labelInfo + 12 + ($258 << 2) | 0;
HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0);
$269 = $258 << 1;
$270 = $labelInfo + 655376 + ($269 << 3) | 0;
HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0);
$278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0;
HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0);
$281 = $258 << 2;
$282 = $labelInfo + 131084 + ($281 << 2) | 0;
$286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0;
if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286;
$289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0;
$293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0;
if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293;
$296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$236 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$311 = $labelInfo + 12 + ($i$633 << 2) | 0;
$314 = $i$633 << 1;
$315 = $labelInfo + 655376 + ($314 << 3) | 0;
HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0);
$321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$236 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBIYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $103 = 0, $106 = 0, $11 = 0, $123 = 0, $125 = 0, $127 = 0, $131 = 0, $135 = 0, $138 = 0, $140 = 0, $144 = 0, $148 = 0, $152 = 0, $157 = 0, $159 = 0, $163 = 0, $167 = 0, $171 = 0, $177 = 0, $18 = 0, $180 = 0, $182 = 0, $186 = 0, $190 = 0, $194 = 0, $197 = 0, $2 = 0, $20 = 0, $202 = 0, $217 = 0, $218 = 0, $224 = 0, $226 = 0, $232 = 0, $236 = 0, $237 = 0, $244 = 0, $258 = 0, $259 = 0, $262 = 0, $269 = 0, $27 = 0, $270 = 0, $278 = 0, $281 = 0, $282 = 0, $286 = 0, $289 = 0, $293 = 0, $296 = 0, $3 = 0, $300 = 0, $303 = 0, $307 = 0, $311 = 0, $314 = 0, $315 = 0, $32 = 0, $321 = 0, $35 = 0, $37 = 0, $41 = 0, $45 = 0, $51 = 0, $52 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $80 = 0, $82 = 0, $84 = 0, $88 = 0, $92 = 0, $98 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$20 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = ($xsize << 1) + 8 | 0;
L11 : do if (($3 | 0) > 1) {
$27 = ($11 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 2) + 4) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($27) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$32 = HEAP16[$pnt2$363 + ($20 << 1) >> 1] | 0;
if ($32 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $32;
$35 = ($32 << 16 >> 16) * 7 | 0;
$37 = $labelInfo + 1310736 + ($35 + -7 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + 1;
$41 = $labelInfo + 1310736 + ($35 + -6 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $i$256;
$45 = $labelInfo + 1310736 + ($35 + -5 << 2) | 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($35 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$51 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$55 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$56 = $55 << 16 >> 16;
$57 = $55 << 16 >> 16 > 0;
if ($51 << 16 >> 16 <= 0) {
if ($57) {
HEAP16[$pnt2$363 >> 1] = $55;
$157 = $56 * 7 | 0;
$159 = $labelInfo + 1310736 + ($157 + -7 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + 1;
$163 = $labelInfo + 1310736 + ($157 + -6 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $i$256;
$167 = $labelInfo + 1310736 + ($157 + -5 << 2) | 0;
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + $j$069;
$171 = $labelInfo + 1310736 + ($157 + -3 << 2) | 0;
if ((HEAP32[$171 >> 2] | 0) < ($i$256 | 0)) HEAP32[$171 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($157 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$177 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($177 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $177;
$180 = ($177 << 16 >> 16) * 7 | 0;
$182 = $labelInfo + 1310736 + ($180 + -7 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + 1;
$186 = $labelInfo + 1310736 + ($180 + -6 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $i$256;
$190 = $labelInfo + 1310736 + ($180 + -5 << 2) | 0;
HEAP32[$190 >> 2] = (HEAP32[$190 >> 2] | 0) + $j$069;
$194 = $labelInfo + 1310736 + ($180 + -3 << 2) | 0;
if ((HEAP32[$194 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$194 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$197 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $197;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $197 << 16 >> 16;
$202 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($202 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($202 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($202 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($202 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($202 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($202 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($202 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $197;
break;
}
}
if ($57) {
$60 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$63 = HEAP32[$labelInfo + 1179664 + ($56 + -1 << 2) >> 2] | 0;
if (($60 | 0) > ($63 | 0)) {
HEAP16[$pnt2$363 >> 1] = $63;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $18;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$053 >> 2] = $63;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$80 = $63;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $80 = $63;
} else {
HEAP16[$pnt2$363 >> 1] = $60;
if (($60 | 0) < ($63 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $18;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($63 | 0)) HEAP32[$wk$150 >> 2] = $60;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$80 = $60;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $80 = $60;
}
$82 = ($80 << 16 >> 16) * 7 | 0;
$84 = $labelInfo + 1310736 + ($82 + -7 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + 1;
$88 = $labelInfo + 1310736 + ($82 + -6 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $i$256;
$92 = $labelInfo + 1310736 + ($82 + -5 << 2) | 0;
HEAP32[$92 >> 2] = (HEAP32[$92 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($82 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$98 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($98 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $51;
$138 = $52 * 7 | 0;
$140 = $labelInfo + 1310736 + ($138 + -7 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + 1;
$144 = $labelInfo + 1310736 + ($138 + -6 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $i$256;
$148 = $labelInfo + 1310736 + ($138 + -5 << 2) | 0;
HEAP32[$148 >> 2] = (HEAP32[$148 >> 2] | 0) + $j$069;
$152 = $labelInfo + 1310736 + ($138 + -4 << 2) | 0;
if ((HEAP32[$152 >> 2] | 0) > ($i$256 | 0)) HEAP32[$152 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($138 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$103 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
$106 = HEAP32[$labelInfo + 1179664 + (($98 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($103 | 0) > ($106 | 0)) {
HEAP16[$pnt2$363 >> 1] = $106;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $18;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$246 >> 2] = $106;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$123 = $106;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $123 = $106;
} else {
HEAP16[$pnt2$363 >> 1] = $103;
if (($103 | 0) < ($106 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $18;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($106 | 0)) HEAP32[$wk$343 >> 2] = $103;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$123 = $103;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $123 = $103;
}
$125 = ($123 << 16 >> 16) * 7 | 0;
$127 = $labelInfo + 1310736 + ($125 + -7 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + 1;
$131 = $labelInfo + 1310736 + ($125 + -6 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $i$256;
$135 = $labelInfo + 1310736 + ($125 + -5 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$217 = $pnt$164 + 4 | 0;
$218 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($11 | 0)) {
$pnt$1$lcssa = $217;
$pnt2$3$lcssa = $218;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $217;
$pnt2$363 = $218;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$224 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $18;
while (1) {
$226 = HEAP32[$wk$440 >> 2] | 0;
if (($226 | 0) == ($i$338 | 0)) {
$232 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$232 = HEAP32[$labelInfo + 1179664 + ($226 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $232;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$236 = $labelInfo + 8 | 0;
$237 = $j$1$lcssa + -1 | 0;
HEAP32[$236 >> 2] = $237;
if (!$237) $$0 = 0; else {
_memset($224 | 0, 0, $237 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $237 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$244 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($244 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($244 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($244 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($244 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$236 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$258 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$259 = $i$534 * 7 | 0;
$262 = $labelInfo + 12 + ($258 << 2) | 0;
HEAP32[$262 >> 2] = (HEAP32[$262 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($259 << 2) >> 2] | 0);
$269 = $258 << 1;
$270 = $labelInfo + 655376 + ($269 << 3) | 0;
HEAPF64[$270 >> 3] = +HEAPF64[$270 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 1 << 2) >> 2] | 0);
$278 = $labelInfo + 655376 + (($269 | 1) << 3) | 0;
HEAPF64[$278 >> 3] = +HEAPF64[$278 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($259 + 2 << 2) >> 2] | 0);
$281 = $258 << 2;
$282 = $labelInfo + 131084 + ($281 << 2) | 0;
$286 = HEAP32[$labelInfo + 1310736 + ($259 + 3 << 2) >> 2] | 0;
if ((HEAP32[$282 >> 2] | 0) > ($286 | 0)) HEAP32[$282 >> 2] = $286;
$289 = $labelInfo + 131084 + (($281 | 1) << 2) | 0;
$293 = HEAP32[$labelInfo + 1310736 + ($259 + 4 << 2) >> 2] | 0;
if ((HEAP32[$289 >> 2] | 0) < ($293 | 0)) HEAP32[$289 >> 2] = $293;
$296 = $labelInfo + 131084 + (($281 | 2) << 2) | 0;
$300 = HEAP32[$labelInfo + 1310736 + ($259 + 5 << 2) >> 2] | 0;
if ((HEAP32[$296 >> 2] | 0) > ($300 | 0)) HEAP32[$296 >> 2] = $300;
$303 = $labelInfo + 131084 + (($281 | 3) << 2) | 0;
$307 = HEAP32[$labelInfo + 1310736 + ($259 + 6 << 2) >> 2] | 0;
if ((HEAP32[$303 >> 2] | 0) < ($307 | 0)) HEAP32[$303 >> 2] = $307;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$236 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$311 = $labelInfo + 12 + ($i$633 << 2) | 0;
$314 = $i$633 << 1;
$315 = $labelInfo + 655376 + ($314 << 3) | 0;
HEAPF64[$315 >> 3] = +HEAPF64[$315 >> 3] / +(HEAP32[$311 >> 2] | 0);
$321 = $labelInfo + 655376 + (($314 | 1) << 3) | 0;
HEAPF64[$321 >> 3] = +HEAPF64[$321 >> 3] / +(HEAP32[$311 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$236 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $11 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $196 = 0, $2 = 0, $201 = 0, $216 = 0, $217 = 0, $223 = 0, $225 = 0, $231 = 0, $235 = 0, $236 = 0, $243 = 0, $257 = 0, $258 = 0, $26 = 0, $261 = 0, $268 = 0, $269 = 0, $277 = 0, $280 = 0, $281 = 0, $285 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $302 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $320 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $91 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = $xsize + 4 | 0;
L11 : do if (($3 | 0) > 1) {
$26 = ($11 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 1) + 2) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($26) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
$31 = HEAP16[$pnt2$363 + ($19 << 1) >> 1] | 0;
if ($31 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $31;
$34 = ($31 << 16 >> 16) * 7 | 0;
$36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1;
$40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$256;
$44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$50 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$54 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$56 = $54 << 16 >> 16 > 0;
if ($50 << 16 >> 16 <= 0) {
if ($56) {
HEAP16[$pnt2$363 >> 1] = $54;
$156 = $55 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$256;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$069;
$170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) < ($i$256 | 0)) HEAP32[$170 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$176 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($176 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $176;
$179 = ($176 << 16 >> 16) * 7 | 0;
$181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1;
$185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$256;
$189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$069;
$193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0;
if ((HEAP32[$193 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$193 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$196 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $196;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $196 << 16 >> 16;
$201 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $196;
break;
}
}
if ($56) {
$59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
if (($59 | 0) > ($62 | 0)) {
HEAP16[$pnt2$363 >> 1] = $62;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $18;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$053 >> 2] = $62;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$79 = $62;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $79 = $62;
} else {
HEAP16[$pnt2$363 >> 1] = $59;
if (($59 | 0) < ($62 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $18;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$150 >> 2] = $59;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$79 = $59;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $79 = $59;
}
$81 = ($79 << 16 >> 16) * 7 | 0;
$83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1;
$87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$256;
$91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$97 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($97 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $50;
$137 = $51 * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$256;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$069;
$151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0;
if ((HEAP32[$151 >> 2] | 0) > ($i$256 | 0)) HEAP32[$151 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($102 | 0) > ($105 | 0)) {
HEAP16[$pnt2$363 >> 1] = $105;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $18;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$246 >> 2] = $105;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$122 = $105;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $122 = $105;
} else {
HEAP16[$pnt2$363 >> 1] = $102;
if (($102 | 0) < ($105 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $18;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$343 >> 2] = $102;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$122 = $102;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $122 = $102;
}
$124 = ($122 << 16 >> 16) * 7 | 0;
$126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1;
$130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$256;
$134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} else {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$216 = $pnt$164 + 2 | 0;
$217 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($11 | 0)) {
$pnt$1$lcssa = $216;
$pnt2$3$lcssa = $217;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $216;
$pnt2$363 = $217;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$223 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $18;
while (1) {
$225 = HEAP32[$wk$440 >> 2] | 0;
if (($225 | 0) == ($i$338 | 0)) {
$231 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$231 = HEAP32[$labelInfo + 1179664 + ($225 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $231;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$235 = $labelInfo + 8 | 0;
$236 = $j$1$lcssa + -1 | 0;
HEAP32[$235 >> 2] = $236;
if (!$236) $$0 = 0; else {
_memset($223 | 0, 0, $236 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $236 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$243 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($243 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($243 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($243 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($243 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$235 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$257 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$258 = $i$534 * 7 | 0;
$261 = $labelInfo + 12 + ($257 << 2) | 0;
HEAP32[$261 >> 2] = (HEAP32[$261 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($258 << 2) >> 2] | 0);
$268 = $257 << 1;
$269 = $labelInfo + 655376 + ($268 << 3) | 0;
HEAPF64[$269 >> 3] = +HEAPF64[$269 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 1 << 2) >> 2] | 0);
$277 = $labelInfo + 655376 + (($268 | 1) << 3) | 0;
HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 2 << 2) >> 2] | 0);
$280 = $257 << 2;
$281 = $labelInfo + 131084 + ($280 << 2) | 0;
$285 = HEAP32[$labelInfo + 1310736 + ($258 + 3 << 2) >> 2] | 0;
if ((HEAP32[$281 >> 2] | 0) > ($285 | 0)) HEAP32[$281 >> 2] = $285;
$288 = $labelInfo + 131084 + (($280 | 1) << 2) | 0;
$292 = HEAP32[$labelInfo + 1310736 + ($258 + 4 << 2) >> 2] | 0;
if ((HEAP32[$288 >> 2] | 0) < ($292 | 0)) HEAP32[$288 >> 2] = $292;
$295 = $labelInfo + 131084 + (($280 | 2) << 2) | 0;
$299 = HEAP32[$labelInfo + 1310736 + ($258 + 5 << 2) >> 2] | 0;
if ((HEAP32[$295 >> 2] | 0) > ($299 | 0)) HEAP32[$295 >> 2] = $299;
$302 = $labelInfo + 131084 + (($280 | 3) << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($258 + 6 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) < ($306 | 0)) HEAP32[$302 >> 2] = $306;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$235 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$310 = $labelInfo + 12 + ($i$633 << 2) | 0;
$313 = $i$633 << 1;
$314 = $labelInfo + 655376 + ($313 << 3) | 0;
HEAPF64[$314 >> 3] = +HEAPF64[$314 >> 3] / +(HEAP32[$310 >> 2] | 0);
$320 = $labelInfo + 655376 + (($313 | 1) << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$310 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$235 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBIC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $$sum2 = 0, $0 = 0, $1 = 0, $102 = 0, $105 = 0, $11 = 0, $122 = 0, $124 = 0, $126 = 0, $130 = 0, $134 = 0, $137 = 0, $139 = 0, $143 = 0, $147 = 0, $151 = 0, $156 = 0, $158 = 0, $162 = 0, $166 = 0, $170 = 0, $176 = 0, $179 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $19 = 0, $193 = 0, $196 = 0, $2 = 0, $201 = 0, $216 = 0, $217 = 0, $223 = 0, $225 = 0, $231 = 0, $235 = 0, $236 = 0, $243 = 0, $257 = 0, $258 = 0, $26 = 0, $261 = 0, $268 = 0, $269 = 0, $277 = 0, $280 = 0, $281 = 0, $285 = 0, $288 = 0, $292 = 0, $295 = 0, $299 = 0, $3 = 0, $302 = 0, $306 = 0, $31 = 0, $310 = 0, $313 = 0, $314 = 0, $320 = 0, $34 = 0, $36 = 0, $40 = 0, $44 = 0, $50 = 0, $51 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $62 = 0, $79 = 0, $81 = 0, $83 = 0, $87 = 0, $91 = 0, $97 = 0, $i$082 = 0, $i$176 = 0, $i$256 = 0, $i$338 = 0, $i$436 = 0, $i$534 = 0, $i$633 = 0, $j$069 = 0, $j$1$lcssa = 0, $j$139 = 0, $j$2 = 0, $k$052 = 0, $k$149 = 0, $k$245 = 0, $k$342 = 0, $pnt$073 = 0, $pnt$1$lcssa = 0, $pnt$164 = 0, $pnt1$084 = 0, $pnt1$178 = 0, $pnt2$083 = 0, $pnt2$177 = 0, $pnt2$272 = 0, $pnt2$3$lcssa = 0, $pnt2$363 = 0, $vararg_buffer = 0, $wk$053 = 0, $wk$150 = 0, $wk$246 = 0, $wk$343 = 0, $wk$440 = 0, $wk_max$0$lcssa = 0, $wk_max$071 = 0, $wk_max$1$lcssa = 0, $wk_max$158 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = ($xsize | 0) / 2 | 0;
$1 = ($ysize | 0) / 2 | 0;
$2 = HEAP32[$labelInfo >> 2] | 0;
$3 = $1 + -1 | 0;
if (($xsize | 0) > 1) {
$i$082 = 0;
$pnt1$084 = $2;
$pnt2$083 = $2 + ((Math_imul($3, $0) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$083 >> 1] = 0;
HEAP16[$pnt1$084 >> 1] = 0;
$i$082 = $i$082 + 1 | 0;
if (($i$082 | 0) >= ($0 | 0)) break; else {
$pnt1$084 = $pnt1$084 + 2 | 0;
$pnt2$083 = $pnt2$083 + 2 | 0;
}
}
}
$11 = $0 + -1 | 0;
if (($ysize | 0) > 1) {
$i$176 = 0;
$pnt1$178 = $2;
$pnt2$177 = $2 + ($11 << 1) | 0;
while (1) {
HEAP16[$pnt2$177 >> 1] = 0;
HEAP16[$pnt1$178 >> 1] = 0;
$i$176 = $i$176 + 1 | 0;
if (($i$176 | 0) >= ($1 | 0)) break; else {
$pnt1$178 = $pnt1$178 + ($0 << 1) | 0;
$pnt2$177 = $pnt2$177 + ($0 << 1) | 0;
}
}
}
$18 = $labelInfo + 1179664 | 0;
$19 = 0 - $0 | 0;
$$sum1 = 1 - $0 | 0;
$$sum2 = ~$0;
$$sum = $xsize + 4 | 0;
L11 : do if (($3 | 0) > 1) {
$26 = ($11 | 0) > 1;
$j$069 = 1;
$pnt$073 = $image + (($xsize << 1) + 2) | 0;
$pnt2$272 = $2 + ($0 + 1 << 1) | 0;
$wk_max$071 = 0;
L13 : while (1) {
if ($26) {
$i$256 = 1;
$pnt$164 = $pnt$073;
$pnt2$363 = $pnt2$272;
$wk_max$158 = $wk_max$071;
while (1) {
do if ((HEAPU8[$pnt$164 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$363 >> 1] = 0;
$wk_max$2 = $wk_max$158;
} else {
$31 = HEAP16[$pnt2$363 + ($19 << 1) >> 1] | 0;
if ($31 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $31;
$34 = ($31 << 16 >> 16) * 7 | 0;
$36 = $labelInfo + 1310736 + ($34 + -7 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + 1;
$40 = $labelInfo + 1310736 + ($34 + -6 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $i$256;
$44 = $labelInfo + 1310736 + ($34 + -5 << 2) | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($34 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$50 = HEAP16[$pnt2$363 + ($$sum1 << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$54 = HEAP16[$pnt2$363 + ($$sum2 << 1) >> 1] | 0;
$55 = $54 << 16 >> 16;
$56 = $54 << 16 >> 16 > 0;
if ($50 << 16 >> 16 <= 0) {
if ($56) {
HEAP16[$pnt2$363 >> 1] = $54;
$156 = $55 * 7 | 0;
$158 = $labelInfo + 1310736 + ($156 + -7 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + 1;
$162 = $labelInfo + 1310736 + ($156 + -6 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $i$256;
$166 = $labelInfo + 1310736 + ($156 + -5 << 2) | 0;
HEAP32[$166 >> 2] = (HEAP32[$166 >> 2] | 0) + $j$069;
$170 = $labelInfo + 1310736 + ($156 + -3 << 2) | 0;
if ((HEAP32[$170 >> 2] | 0) < ($i$256 | 0)) HEAP32[$170 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($156 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$176 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($176 << 16 >> 16 > 0) {
HEAP16[$pnt2$363 >> 1] = $176;
$179 = ($176 << 16 >> 16) * 7 | 0;
$181 = $labelInfo + 1310736 + ($179 + -7 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + 1;
$185 = $labelInfo + 1310736 + ($179 + -6 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $i$256;
$189 = $labelInfo + 1310736 + ($179 + -5 << 2) | 0;
HEAP32[$189 >> 2] = (HEAP32[$189 >> 2] | 0) + $j$069;
$193 = $labelInfo + 1310736 + ($179 + -3 << 2) | 0;
if ((HEAP32[$193 >> 2] | 0) >= ($i$256 | 0)) {
$wk_max$2 = $wk_max$158;
break;
}
HEAP32[$193 >> 2] = $i$256;
$wk_max$2 = $wk_max$158;
break;
} else {
$196 = $wk_max$158 + 1 | 0;
if (($wk_max$158 | 0) > 32767) break L13;
HEAP16[$pnt2$363 >> 1] = $196;
HEAP32[$labelInfo + 1179664 + ($wk_max$158 << 2) >> 2] = $196 << 16 >> 16;
$201 = $wk_max$158 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($201 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($201 + 1 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($201 + 2 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($201 + 3 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($201 + 4 << 2) >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($201 + 5 << 2) >> 2] = $j$069;
HEAP32[$labelInfo + 1310736 + ($201 + 6 << 2) >> 2] = $j$069;
$wk_max$2 = $196;
break;
}
}
if ($56) {
$59 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$62 = HEAP32[$labelInfo + 1179664 + ($55 + -1 << 2) >> 2] | 0;
if (($59 | 0) > ($62 | 0)) {
HEAP16[$pnt2$363 >> 1] = $62;
if (($wk_max$158 | 0) > 0) {
$k$052 = 0;
$wk$053 = $18;
while (1) {
if ((HEAP32[$wk$053 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$053 >> 2] = $62;
$k$052 = $k$052 + 1 | 0;
if (($k$052 | 0) >= ($wk_max$158 | 0)) {
$79 = $62;
break;
} else $wk$053 = $wk$053 + 4 | 0;
}
} else $79 = $62;
} else {
HEAP16[$pnt2$363 >> 1] = $59;
if (($59 | 0) < ($62 | 0) & ($wk_max$158 | 0) > 0) {
$k$149 = 0;
$wk$150 = $18;
while (1) {
if ((HEAP32[$wk$150 >> 2] | 0) == ($62 | 0)) HEAP32[$wk$150 >> 2] = $59;
$k$149 = $k$149 + 1 | 0;
if (($k$149 | 0) >= ($wk_max$158 | 0)) {
$79 = $59;
break;
} else $wk$150 = $wk$150 + 4 | 0;
}
} else $79 = $59;
}
$81 = ($79 << 16 >> 16) * 7 | 0;
$83 = $labelInfo + 1310736 + ($81 + -7 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + 1;
$87 = $labelInfo + 1310736 + ($81 + -6 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $i$256;
$91 = $labelInfo + 1310736 + ($81 + -5 << 2) | 0;
HEAP32[$91 >> 2] = (HEAP32[$91 >> 2] | 0) + $j$069;
HEAP32[$labelInfo + 1310736 + ($81 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$97 = HEAP16[$pnt2$363 + -2 >> 1] | 0;
if ($97 << 16 >> 16 <= 0) {
HEAP16[$pnt2$363 >> 1] = $50;
$137 = $51 * 7 | 0;
$139 = $labelInfo + 1310736 + ($137 + -7 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + 1;
$143 = $labelInfo + 1310736 + ($137 + -6 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $i$256;
$147 = $labelInfo + 1310736 + ($137 + -5 << 2) | 0;
HEAP32[$147 >> 2] = (HEAP32[$147 >> 2] | 0) + $j$069;
$151 = $labelInfo + 1310736 + ($137 + -4 << 2) | 0;
if ((HEAP32[$151 >> 2] | 0) > ($i$256 | 0)) HEAP32[$151 >> 2] = $i$256;
HEAP32[$labelInfo + 1310736 + ($137 + -1 << 2) >> 2] = $j$069;
$wk_max$2 = $wk_max$158;
break;
}
$102 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
$105 = HEAP32[$labelInfo + 1179664 + (($97 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($102 | 0) > ($105 | 0)) {
HEAP16[$pnt2$363 >> 1] = $105;
if (($wk_max$158 | 0) > 0) {
$k$245 = 0;
$wk$246 = $18;
while (1) {
if ((HEAP32[$wk$246 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$246 >> 2] = $105;
$k$245 = $k$245 + 1 | 0;
if (($k$245 | 0) >= ($wk_max$158 | 0)) {
$122 = $105;
break;
} else $wk$246 = $wk$246 + 4 | 0;
}
} else $122 = $105;
} else {
HEAP16[$pnt2$363 >> 1] = $102;
if (($102 | 0) < ($105 | 0) & ($wk_max$158 | 0) > 0) {
$k$342 = 0;
$wk$343 = $18;
while (1) {
if ((HEAP32[$wk$343 >> 2] | 0) == ($105 | 0)) HEAP32[$wk$343 >> 2] = $102;
$k$342 = $k$342 + 1 | 0;
if (($k$342 | 0) >= ($wk_max$158 | 0)) {
$122 = $102;
break;
} else $wk$343 = $wk$343 + 4 | 0;
}
} else $122 = $102;
}
$124 = ($122 << 16 >> 16) * 7 | 0;
$126 = $labelInfo + 1310736 + ($124 + -7 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + 1;
$130 = $labelInfo + 1310736 + ($124 + -6 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $i$256;
$134 = $labelInfo + 1310736 + ($124 + -5 << 2) | 0;
HEAP32[$134 >> 2] = (HEAP32[$134 >> 2] | 0) + $j$069;
$wk_max$2 = $wk_max$158;
} while (0);
$i$256 = $i$256 + 1 | 0;
$216 = $pnt$164 + 2 | 0;
$217 = $pnt2$363 + 2 | 0;
if (($i$256 | 0) >= ($11 | 0)) {
$pnt$1$lcssa = $216;
$pnt2$3$lcssa = $217;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$164 = $216;
$pnt2$363 = $217;
$wk_max$158 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$073;
$pnt2$3$lcssa = $pnt2$272;
$wk_max$1$lcssa = $wk_max$071;
}
$j$069 = $j$069 + 1 | 0;
if (($j$069 | 0) >= ($3 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$073 = $pnt$1$lcssa + $$sum | 0;
$pnt2$272 = $pnt2$3$lcssa + 4 | 0;
$wk_max$071 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$223 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$338 = 1;
$j$139 = 1;
$wk$440 = $18;
while (1) {
$225 = HEAP32[$wk$440 >> 2] | 0;
if (($225 | 0) == ($i$338 | 0)) {
$231 = $j$139;
$j$2 = $j$139 + 1 | 0;
} else {
$231 = HEAP32[$labelInfo + 1179664 + ($225 + -1 << 2) >> 2] | 0;
$j$2 = $j$139;
}
HEAP32[$wk$440 >> 2] = $231;
if (($i$338 | 0) < ($wk_max$0$lcssa | 0)) {
$i$338 = $i$338 + 1 | 0;
$j$139 = $j$2;
$wk$440 = $wk$440 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$235 = $labelInfo + 8 | 0;
$236 = $j$1$lcssa + -1 | 0;
HEAP32[$235 >> 2] = $236;
if (!$236) $$0 = 0; else {
_memset($223 | 0, 0, $236 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $236 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$436 = 0;
do {
$243 = $i$436 << 2;
HEAP32[$labelInfo + 131084 + ($243 << 2) >> 2] = $0;
HEAP32[$labelInfo + 131084 + (($243 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($243 | 2) << 2) >> 2] = $1;
HEAP32[$labelInfo + 131084 + (($243 | 3) << 2) >> 2] = 0;
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$235 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$534 = 0;
do {
$257 = (HEAP32[$labelInfo + 1179664 + ($i$534 << 2) >> 2] | 0) + -1 | 0;
$258 = $i$534 * 7 | 0;
$261 = $labelInfo + 12 + ($257 << 2) | 0;
HEAP32[$261 >> 2] = (HEAP32[$261 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($258 << 2) >> 2] | 0);
$268 = $257 << 1;
$269 = $labelInfo + 655376 + ($268 << 3) | 0;
HEAPF64[$269 >> 3] = +HEAPF64[$269 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 1 << 2) >> 2] | 0);
$277 = $labelInfo + 655376 + (($268 | 1) << 3) | 0;
HEAPF64[$277 >> 3] = +HEAPF64[$277 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($258 + 2 << 2) >> 2] | 0);
$280 = $257 << 2;
$281 = $labelInfo + 131084 + ($280 << 2) | 0;
$285 = HEAP32[$labelInfo + 1310736 + ($258 + 3 << 2) >> 2] | 0;
if ((HEAP32[$281 >> 2] | 0) > ($285 | 0)) HEAP32[$281 >> 2] = $285;
$288 = $labelInfo + 131084 + (($280 | 1) << 2) | 0;
$292 = HEAP32[$labelInfo + 1310736 + ($258 + 4 << 2) >> 2] | 0;
if ((HEAP32[$288 >> 2] | 0) < ($292 | 0)) HEAP32[$288 >> 2] = $292;
$295 = $labelInfo + 131084 + (($280 | 2) << 2) | 0;
$299 = HEAP32[$labelInfo + 1310736 + ($258 + 5 << 2) >> 2] | 0;
if ((HEAP32[$295 >> 2] | 0) > ($299 | 0)) HEAP32[$295 >> 2] = $299;
$302 = $labelInfo + 131084 + (($280 | 3) << 2) | 0;
$306 = HEAP32[$labelInfo + 1310736 + ($258 + 6 << 2) >> 2] | 0;
if ((HEAP32[$302 >> 2] | 0) < ($306 | 0)) HEAP32[$302 >> 2] = $306;
$i$534 = $i$534 + 1 | 0;
} while (($i$534 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$235 >> 2] | 0) > 0) {
$i$633 = 0;
do {
$310 = $labelInfo + 12 + ($i$633 << 2) | 0;
$313 = $i$633 << 1;
$314 = $labelInfo + 655376 + ($313 << 3) | 0;
HEAPF64[$314 >> 3] = +HEAPF64[$314 >> 3] / +(HEAP32[$310 >> 2] | 0);
$320 = $labelInfo + 655376 + (($313 | 1) << 3) | 0;
HEAPF64[$320 >> 3] = +HEAPF64[$320 >> 3] / +(HEAP32[$310 >> 2] | 0);
$i$633 = $i$633 + 1 | 0;
} while (($i$633 | 0) < (HEAP32[$235 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $103 = 0, $120 = 0, $122 = 0, $124 = 0, $128 = 0, $132 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $149 = 0, $154 = 0, $156 = 0, $16 = 0, $160 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $177 = 0, $179 = 0, $18 = 0, $183 = 0, $187 = 0, $191 = 0, $194 = 0, $199 = 0, $214 = 0, $215 = 0, $221 = 0, $223 = 0, $229 = 0, $23 = 0, $233 = 0, $234 = 0, $241 = 0, $255 = 0, $256 = 0, $259 = 0, $266 = 0, $267 = 0, $275 = 0, $278 = 0, $279 = 0, $283 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $308 = 0, $311 = 0, $312 = 0, $318 = 0, $32 = 0, $34 = 0, $38 = 0, $42 = 0, $48 = 0, $49 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $77 = 0, $79 = 0, $81 = 0, $85 = 0, $89 = 0, $9 = 0, $95 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$23 = ($9 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($17 << 1) | 0;
$pnt2$271 = $0 + ($17 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($23) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if ((HEAPU8[$pnt$163 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
$29 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0;
if ($29 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $29;
$32 = ($29 << 16 >> 16) * 7 | 0;
$34 = $labelInfo + 1310736 + ($32 + -7 << 2) | 0;
HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1;
$38 = $labelInfo + 1310736 + ($32 + -6 << 2) | 0;
HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $i$255;
$42 = $labelInfo + 1310736 + ($32 + -5 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($32 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$48 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$49 = $48 << 16 >> 16;
$52 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$53 = $52 << 16 >> 16;
$54 = $52 << 16 >> 16 > 0;
if ($48 << 16 >> 16 <= 0) {
if ($54) {
HEAP16[$pnt2$362 >> 1] = $52;
$154 = $53 * 7 | 0;
$156 = $labelInfo + 1310736 + ($154 + -7 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + 1;
$160 = $labelInfo + 1310736 + ($154 + -6 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $i$255;
$164 = $labelInfo + 1310736 + ($154 + -5 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $j$068;
$168 = $labelInfo + 1310736 + ($154 + -3 << 2) | 0;
if ((HEAP32[$168 >> 2] | 0) < ($i$255 | 0)) HEAP32[$168 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($154 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$174 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($174 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $174;
$177 = ($174 << 16 >> 16) * 7 | 0;
$179 = $labelInfo + 1310736 + ($177 + -7 << 2) | 0;
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 1;
$183 = $labelInfo + 1310736 + ($177 + -6 << 2) | 0;
HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + $i$255;
$187 = $labelInfo + 1310736 + ($177 + -5 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $j$068;
$191 = $labelInfo + 1310736 + ($177 + -3 << 2) | 0;
if ((HEAP32[$191 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$191 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$194 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $194;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $194 << 16 >> 16;
$199 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($199 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($199 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($199 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($199 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($199 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($199 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($199 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $194;
break;
}
}
if ($54) {
$57 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0;
$60 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0;
if (($57 | 0) > ($60 | 0)) {
HEAP16[$pnt2$362 >> 1] = $60;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $16;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($57 | 0)) HEAP32[$wk$052 >> 2] = $60;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$77 = $60;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $77 = $60;
} else {
HEAP16[$pnt2$362 >> 1] = $57;
if (($57 | 0) < ($60 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $16;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$149 >> 2] = $57;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$77 = $57;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $77 = $57;
}
$79 = ($77 << 16 >> 16) * 7 | 0;
$81 = $labelInfo + 1310736 + ($79 + -7 << 2) | 0;
HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 1;
$85 = $labelInfo + 1310736 + ($79 + -6 << 2) | 0;
HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + $i$255;
$89 = $labelInfo + 1310736 + ($79 + -5 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($79 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$95 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($95 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $48;
$135 = $49 * 7 | 0;
$137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1;
$141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$255;
$145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$068;
$149 = $labelInfo + 1310736 + ($135 + -4 << 2) | 0;
if ((HEAP32[$149 >> 2] | 0) > ($i$255 | 0)) HEAP32[$149 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($135 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$100 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0;
$103 = HEAP32[$labelInfo + 1179664 + (($95 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($100 | 0) > ($103 | 0)) {
HEAP16[$pnt2$362 >> 1] = $103;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $16;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($100 | 0)) HEAP32[$wk$245 >> 2] = $103;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$120 = $103;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $120 = $103;
} else {
HEAP16[$pnt2$362 >> 1] = $100;
if (($100 | 0) < ($103 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $16;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$342 >> 2] = $100;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$120 = $100;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $120 = $100;
}
$122 = ($120 << 16 >> 16) * 7 | 0;
$124 = $labelInfo + 1310736 + ($122 + -7 << 2) | 0;
HEAP32[$124 >> 2] = (HEAP32[$124 >> 2] | 0) + 1;
$128 = $labelInfo + 1310736 + ($122 + -6 << 2) | 0;
HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + $i$255;
$132 = $labelInfo + 1310736 + ($122 + -5 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$214 = $pnt$163 + 2 | 0;
$215 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $214;
$pnt2$3$lcssa = $215;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $214;
$pnt2$362 = $215;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$221 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $16;
while (1) {
$223 = HEAP32[$wk$439 >> 2] | 0;
if (($223 | 0) == ($i$337 | 0)) {
$229 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$229 = HEAP32[$labelInfo + 1179664 + ($223 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $229;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$233 = $labelInfo + 8 | 0;
$234 = $j$1$lcssa + -1 | 0;
HEAP32[$233 >> 2] = $234;
if (!$234) $$0 = 0; else {
_memset($221 | 0, 0, $234 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $234 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$241 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($241 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($241 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($241 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($241 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$233 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$255 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$256 = $i$533 * 7 | 0;
$259 = $labelInfo + 12 + ($255 << 2) | 0;
HEAP32[$259 >> 2] = (HEAP32[$259 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($256 << 2) >> 2] | 0);
$266 = $255 << 1;
$267 = $labelInfo + 655376 + ($266 << 3) | 0;
HEAPF64[$267 >> 3] = +HEAPF64[$267 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 1 << 2) >> 2] | 0);
$275 = $labelInfo + 655376 + (($266 | 1) << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 2 << 2) >> 2] | 0);
$278 = $255 << 2;
$279 = $labelInfo + 131084 + ($278 << 2) | 0;
$283 = HEAP32[$labelInfo + 1310736 + ($256 + 3 << 2) >> 2] | 0;
if ((HEAP32[$279 >> 2] | 0) > ($283 | 0)) HEAP32[$279 >> 2] = $283;
$286 = $labelInfo + 131084 + (($278 | 1) << 2) | 0;
$290 = HEAP32[$labelInfo + 1310736 + ($256 + 4 << 2) >> 2] | 0;
if ((HEAP32[$286 >> 2] | 0) < ($290 | 0)) HEAP32[$286 >> 2] = $290;
$293 = $labelInfo + 131084 + (($278 | 2) << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($256 + 5 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($278 | 3) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($256 + 6 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$233 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$308 = $labelInfo + 12 + ($i$632 << 2) | 0;
$311 = $i$632 << 1;
$312 = $labelInfo + 655376 + ($311 << 3) | 0;
HEAPF64[$312 >> 3] = +HEAPF64[$312 >> 3] / +(HEAP32[$308 >> 2] | 0);
$318 = $labelInfo + 655376 + (($311 | 1) << 3) | 0;
HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$308 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$233 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBRCY($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $100 = 0, $103 = 0, $120 = 0, $122 = 0, $124 = 0, $128 = 0, $132 = 0, $135 = 0, $137 = 0, $141 = 0, $145 = 0, $149 = 0, $154 = 0, $156 = 0, $16 = 0, $160 = 0, $164 = 0, $168 = 0, $17 = 0, $174 = 0, $177 = 0, $179 = 0, $18 = 0, $183 = 0, $187 = 0, $191 = 0, $194 = 0, $199 = 0, $214 = 0, $215 = 0, $221 = 0, $223 = 0, $229 = 0, $23 = 0, $233 = 0, $234 = 0, $241 = 0, $255 = 0, $256 = 0, $259 = 0, $266 = 0, $267 = 0, $275 = 0, $278 = 0, $279 = 0, $283 = 0, $286 = 0, $29 = 0, $290 = 0, $293 = 0, $297 = 0, $300 = 0, $304 = 0, $308 = 0, $311 = 0, $312 = 0, $318 = 0, $32 = 0, $34 = 0, $38 = 0, $42 = 0, $48 = 0, $49 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $77 = 0, $79 = 0, $81 = 0, $85 = 0, $89 = 0, $9 = 0, $95 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$23 = ($9 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($17 << 1) | 0;
$pnt2$271 = $0 + ($17 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($23) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if ((HEAPU8[$pnt$163 + 1 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$29 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0;
if ($29 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $29;
$32 = ($29 << 16 >> 16) * 7 | 0;
$34 = $labelInfo + 1310736 + ($32 + -7 << 2) | 0;
HEAP32[$34 >> 2] = (HEAP32[$34 >> 2] | 0) + 1;
$38 = $labelInfo + 1310736 + ($32 + -6 << 2) | 0;
HEAP32[$38 >> 2] = (HEAP32[$38 >> 2] | 0) + $i$255;
$42 = $labelInfo + 1310736 + ($32 + -5 << 2) | 0;
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($32 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$48 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$49 = $48 << 16 >> 16;
$52 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$53 = $52 << 16 >> 16;
$54 = $52 << 16 >> 16 > 0;
if ($48 << 16 >> 16 <= 0) {
if ($54) {
HEAP16[$pnt2$362 >> 1] = $52;
$154 = $53 * 7 | 0;
$156 = $labelInfo + 1310736 + ($154 + -7 << 2) | 0;
HEAP32[$156 >> 2] = (HEAP32[$156 >> 2] | 0) + 1;
$160 = $labelInfo + 1310736 + ($154 + -6 << 2) | 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + $i$255;
$164 = $labelInfo + 1310736 + ($154 + -5 << 2) | 0;
HEAP32[$164 >> 2] = (HEAP32[$164 >> 2] | 0) + $j$068;
$168 = $labelInfo + 1310736 + ($154 + -3 << 2) | 0;
if ((HEAP32[$168 >> 2] | 0) < ($i$255 | 0)) HEAP32[$168 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($154 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$174 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($174 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $174;
$177 = ($174 << 16 >> 16) * 7 | 0;
$179 = $labelInfo + 1310736 + ($177 + -7 << 2) | 0;
HEAP32[$179 >> 2] = (HEAP32[$179 >> 2] | 0) + 1;
$183 = $labelInfo + 1310736 + ($177 + -6 << 2) | 0;
HEAP32[$183 >> 2] = (HEAP32[$183 >> 2] | 0) + $i$255;
$187 = $labelInfo + 1310736 + ($177 + -5 << 2) | 0;
HEAP32[$187 >> 2] = (HEAP32[$187 >> 2] | 0) + $j$068;
$191 = $labelInfo + 1310736 + ($177 + -3 << 2) | 0;
if ((HEAP32[$191 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$191 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$194 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $194;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $194 << 16 >> 16;
$199 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($199 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($199 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($199 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($199 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($199 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($199 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($199 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $194;
break;
}
}
if ($54) {
$57 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0;
$60 = HEAP32[$labelInfo + 1179664 + ($53 + -1 << 2) >> 2] | 0;
if (($57 | 0) > ($60 | 0)) {
HEAP16[$pnt2$362 >> 1] = $60;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $16;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($57 | 0)) HEAP32[$wk$052 >> 2] = $60;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$77 = $60;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $77 = $60;
} else {
HEAP16[$pnt2$362 >> 1] = $57;
if (($57 | 0) < ($60 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $16;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($60 | 0)) HEAP32[$wk$149 >> 2] = $57;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$77 = $57;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $77 = $57;
}
$79 = ($77 << 16 >> 16) * 7 | 0;
$81 = $labelInfo + 1310736 + ($79 + -7 << 2) | 0;
HEAP32[$81 >> 2] = (HEAP32[$81 >> 2] | 0) + 1;
$85 = $labelInfo + 1310736 + ($79 + -6 << 2) | 0;
HEAP32[$85 >> 2] = (HEAP32[$85 >> 2] | 0) + $i$255;
$89 = $labelInfo + 1310736 + ($79 + -5 << 2) | 0;
HEAP32[$89 >> 2] = (HEAP32[$89 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($79 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$95 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($95 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $48;
$135 = $49 * 7 | 0;
$137 = $labelInfo + 1310736 + ($135 + -7 << 2) | 0;
HEAP32[$137 >> 2] = (HEAP32[$137 >> 2] | 0) + 1;
$141 = $labelInfo + 1310736 + ($135 + -6 << 2) | 0;
HEAP32[$141 >> 2] = (HEAP32[$141 >> 2] | 0) + $i$255;
$145 = $labelInfo + 1310736 + ($135 + -5 << 2) | 0;
HEAP32[$145 >> 2] = (HEAP32[$145 >> 2] | 0) + $j$068;
$149 = $labelInfo + 1310736 + ($135 + -4 << 2) | 0;
if ((HEAP32[$149 >> 2] | 0) > ($i$255 | 0)) HEAP32[$149 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($135 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$100 = HEAP32[$labelInfo + 1179664 + ($49 + -1 << 2) >> 2] | 0;
$103 = HEAP32[$labelInfo + 1179664 + (($95 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($100 | 0) > ($103 | 0)) {
HEAP16[$pnt2$362 >> 1] = $103;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $16;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($100 | 0)) HEAP32[$wk$245 >> 2] = $103;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$120 = $103;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $120 = $103;
} else {
HEAP16[$pnt2$362 >> 1] = $100;
if (($100 | 0) < ($103 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $16;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($103 | 0)) HEAP32[$wk$342 >> 2] = $100;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$120 = $100;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $120 = $100;
}
$122 = ($120 << 16 >> 16) * 7 | 0;
$124 = $labelInfo + 1310736 + ($122 + -7 << 2) | 0;
HEAP32[$124 >> 2] = (HEAP32[$124 >> 2] | 0) + 1;
$128 = $labelInfo + 1310736 + ($122 + -6 << 2) | 0;
HEAP32[$128 >> 2] = (HEAP32[$128 >> 2] | 0) + $i$255;
$132 = $labelInfo + 1310736 + ($122 + -5 << 2) | 0;
HEAP32[$132 >> 2] = (HEAP32[$132 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$214 = $pnt$163 + 2 | 0;
$215 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $214;
$pnt2$3$lcssa = $215;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $214;
$pnt2$362 = $215;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$221 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $16;
while (1) {
$223 = HEAP32[$wk$439 >> 2] | 0;
if (($223 | 0) == ($i$337 | 0)) {
$229 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$229 = HEAP32[$labelInfo + 1179664 + ($223 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $229;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$233 = $labelInfo + 8 | 0;
$234 = $j$1$lcssa + -1 | 0;
HEAP32[$233 >> 2] = $234;
if (!$234) $$0 = 0; else {
_memset($221 | 0, 0, $234 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $234 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$241 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($241 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($241 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($241 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($241 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$233 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$255 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$256 = $i$533 * 7 | 0;
$259 = $labelInfo + 12 + ($255 << 2) | 0;
HEAP32[$259 >> 2] = (HEAP32[$259 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($256 << 2) >> 2] | 0);
$266 = $255 << 1;
$267 = $labelInfo + 655376 + ($266 << 3) | 0;
HEAPF64[$267 >> 3] = +HEAPF64[$267 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 1 << 2) >> 2] | 0);
$275 = $labelInfo + 655376 + (($266 | 1) << 3) | 0;
HEAPF64[$275 >> 3] = +HEAPF64[$275 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($256 + 2 << 2) >> 2] | 0);
$278 = $255 << 2;
$279 = $labelInfo + 131084 + ($278 << 2) | 0;
$283 = HEAP32[$labelInfo + 1310736 + ($256 + 3 << 2) >> 2] | 0;
if ((HEAP32[$279 >> 2] | 0) > ($283 | 0)) HEAP32[$279 >> 2] = $283;
$286 = $labelInfo + 131084 + (($278 | 1) << 2) | 0;
$290 = HEAP32[$labelInfo + 1310736 + ($256 + 4 << 2) >> 2] | 0;
if ((HEAP32[$286 >> 2] | 0) < ($290 | 0)) HEAP32[$286 >> 2] = $290;
$293 = $labelInfo + 131084 + (($278 | 2) << 2) | 0;
$297 = HEAP32[$labelInfo + 1310736 + ($256 + 5 << 2) >> 2] | 0;
if ((HEAP32[$293 >> 2] | 0) > ($297 | 0)) HEAP32[$293 >> 2] = $297;
$300 = $labelInfo + 131084 + (($278 | 3) << 2) | 0;
$304 = HEAP32[$labelInfo + 1310736 + ($256 + 6 << 2) >> 2] | 0;
if ((HEAP32[$300 >> 2] | 0) < ($304 | 0)) HEAP32[$300 >> 2] = $304;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$233 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$308 = $labelInfo + 12 + ($i$632 << 2) | 0;
$311 = $i$632 << 1;
$312 = $labelInfo + 655376 + ($311 << 3) | 0;
HEAPF64[$312 >> 3] = +HEAPF64[$312 >> 3] / +(HEAP32[$308 >> 2] | 0);
$318 = $labelInfo + 655376 + (($311 | 1) << 3) | 0;
HEAPF64[$318 >> 3] = +HEAPF64[$318 >> 3] / +(HEAP32[$308 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$233 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $220 = 0, $222 = 0, $228 = 0, $23 = 0, $232 = 0, $233 = 0, $240 = 0, $254 = 0, $255 = 0, $258 = 0, $265 = 0, $266 = 0, $274 = 0, $277 = 0, $278 = 0, $28 = 0, $282 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $311 = 0, $317 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$23 = ($9 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($17 << 1) | 0;
$pnt2$271 = $0 + ($17 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($23) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
$28 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0;
if ($28 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $28;
$31 = ($28 << 16 >> 16) * 7 | 0;
$33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0;
HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1;
$37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$255;
$41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$47 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$48 = $47 << 16 >> 16;
$51 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$53 = $51 << 16 >> 16 > 0;
if ($47 << 16 >> 16 <= 0) {
if ($53) {
HEAP16[$pnt2$362 >> 1] = $51;
$153 = $52 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$255;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$068;
$167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) < ($i$255 | 0)) HEAP32[$167 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$173 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($173 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $173;
$176 = ($173 << 16 >> 16) * 7 | 0;
$178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1;
$182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$255;
$186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$068;
$190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0;
if ((HEAP32[$190 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$190 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$193 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $193;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $193 << 16 >> 16;
$198 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $193;
break;
}
}
if ($53) {
$56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
if (($56 | 0) > ($59 | 0)) {
HEAP16[$pnt2$362 >> 1] = $59;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $16;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$052 >> 2] = $59;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$76 = $59;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $76 = $59;
} else {
HEAP16[$pnt2$362 >> 1] = $56;
if (($56 | 0) < ($59 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $16;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$149 >> 2] = $56;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$76 = $56;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $76 = $56;
}
$78 = ($76 << 16 >> 16) * 7 | 0;
$80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0;
HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1;
$84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$255;
$88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$94 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($94 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $47;
$134 = $48 * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$255;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$068;
$148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0;
if ((HEAP32[$148 >> 2] | 0) > ($i$255 | 0)) HEAP32[$148 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($99 | 0) > ($102 | 0)) {
HEAP16[$pnt2$362 >> 1] = $102;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $16;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$245 >> 2] = $102;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$119 = $102;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $119 = $102;
} else {
HEAP16[$pnt2$362 >> 1] = $99;
if (($99 | 0) < ($102 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $16;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$342 >> 2] = $99;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$119 = $99;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $119 = $99;
}
$121 = ($119 << 16 >> 16) * 7 | 0;
$123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0;
HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1;
$127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$255;
$131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$213 = $pnt$163 + 2 | 0;
$214 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $213;
$pnt2$3$lcssa = $214;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $213;
$pnt2$362 = $214;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$220 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $16;
while (1) {
$222 = HEAP32[$wk$439 >> 2] | 0;
if (($222 | 0) == ($i$337 | 0)) {
$228 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$228 = HEAP32[$labelInfo + 1179664 + ($222 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $228;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$232 = $labelInfo + 8 | 0;
$233 = $j$1$lcssa + -1 | 0;
HEAP32[$232 >> 2] = $233;
if (!$233) $$0 = 0; else {
_memset($220 | 0, 0, $233 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $233 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$240 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($240 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($240 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($240 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($240 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$232 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$254 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$255 = $i$533 * 7 | 0;
$258 = $labelInfo + 12 + ($254 << 2) | 0;
HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($255 << 2) >> 2] | 0);
$265 = $254 << 1;
$266 = $labelInfo + 655376 + ($265 << 3) | 0;
HEAPF64[$266 >> 3] = +HEAPF64[$266 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 1 << 2) >> 2] | 0);
$274 = $labelInfo + 655376 + (($265 | 1) << 3) | 0;
HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 2 << 2) >> 2] | 0);
$277 = $254 << 2;
$278 = $labelInfo + 131084 + ($277 << 2) | 0;
$282 = HEAP32[$labelInfo + 1310736 + ($255 + 3 << 2) >> 2] | 0;
if ((HEAP32[$278 >> 2] | 0) > ($282 | 0)) HEAP32[$278 >> 2] = $282;
$285 = $labelInfo + 131084 + (($277 | 1) << 2) | 0;
$289 = HEAP32[$labelInfo + 1310736 + ($255 + 4 << 2) >> 2] | 0;
if ((HEAP32[$285 >> 2] | 0) < ($289 | 0)) HEAP32[$285 >> 2] = $289;
$292 = $labelInfo + 131084 + (($277 | 2) << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($255 + 5 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($277 | 3) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($255 + 6 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$232 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$307 = $labelInfo + 12 + ($i$632 << 2) | 0;
$310 = $i$632 << 1;
$311 = $labelInfo + 655376 + ($310 << 3) | 0;
HEAPF64[$311 >> 3] = +HEAPF64[$311 >> 3] / +(HEAP32[$307 >> 2] | 0);
$317 = $labelInfo + 655376 + (($310 | 1) << 3) | 0;
HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$307 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$232 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBRYC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $102 = 0, $119 = 0, $121 = 0, $123 = 0, $127 = 0, $131 = 0, $134 = 0, $136 = 0, $140 = 0, $144 = 0, $148 = 0, $153 = 0, $155 = 0, $159 = 0, $16 = 0, $163 = 0, $167 = 0, $17 = 0, $173 = 0, $176 = 0, $178 = 0, $18 = 0, $182 = 0, $186 = 0, $190 = 0, $193 = 0, $198 = 0, $213 = 0, $214 = 0, $220 = 0, $222 = 0, $228 = 0, $23 = 0, $232 = 0, $233 = 0, $240 = 0, $254 = 0, $255 = 0, $258 = 0, $265 = 0, $266 = 0, $274 = 0, $277 = 0, $278 = 0, $28 = 0, $282 = 0, $285 = 0, $289 = 0, $292 = 0, $296 = 0, $299 = 0, $303 = 0, $307 = 0, $31 = 0, $310 = 0, $311 = 0, $317 = 0, $33 = 0, $37 = 0, $41 = 0, $47 = 0, $48 = 0, $51 = 0, $52 = 0, $53 = 0, $56 = 0, $59 = 0, $76 = 0, $78 = 0, $80 = 0, $84 = 0, $88 = 0, $9 = 0, $94 = 0, $99 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$23 = ($9 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + ($17 << 1) | 0;
$pnt2$271 = $0 + ($17 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($23) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$28 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0;
if ($28 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $28;
$31 = ($28 << 16 >> 16) * 7 | 0;
$33 = $labelInfo + 1310736 + ($31 + -7 << 2) | 0;
HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1;
$37 = $labelInfo + 1310736 + ($31 + -6 << 2) | 0;
HEAP32[$37 >> 2] = (HEAP32[$37 >> 2] | 0) + $i$255;
$41 = $labelInfo + 1310736 + ($31 + -5 << 2) | 0;
HEAP32[$41 >> 2] = (HEAP32[$41 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($31 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$47 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$48 = $47 << 16 >> 16;
$51 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$52 = $51 << 16 >> 16;
$53 = $51 << 16 >> 16 > 0;
if ($47 << 16 >> 16 <= 0) {
if ($53) {
HEAP16[$pnt2$362 >> 1] = $51;
$153 = $52 * 7 | 0;
$155 = $labelInfo + 1310736 + ($153 + -7 << 2) | 0;
HEAP32[$155 >> 2] = (HEAP32[$155 >> 2] | 0) + 1;
$159 = $labelInfo + 1310736 + ($153 + -6 << 2) | 0;
HEAP32[$159 >> 2] = (HEAP32[$159 >> 2] | 0) + $i$255;
$163 = $labelInfo + 1310736 + ($153 + -5 << 2) | 0;
HEAP32[$163 >> 2] = (HEAP32[$163 >> 2] | 0) + $j$068;
$167 = $labelInfo + 1310736 + ($153 + -3 << 2) | 0;
if ((HEAP32[$167 >> 2] | 0) < ($i$255 | 0)) HEAP32[$167 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($153 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$173 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($173 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $173;
$176 = ($173 << 16 >> 16) * 7 | 0;
$178 = $labelInfo + 1310736 + ($176 + -7 << 2) | 0;
HEAP32[$178 >> 2] = (HEAP32[$178 >> 2] | 0) + 1;
$182 = $labelInfo + 1310736 + ($176 + -6 << 2) | 0;
HEAP32[$182 >> 2] = (HEAP32[$182 >> 2] | 0) + $i$255;
$186 = $labelInfo + 1310736 + ($176 + -5 << 2) | 0;
HEAP32[$186 >> 2] = (HEAP32[$186 >> 2] | 0) + $j$068;
$190 = $labelInfo + 1310736 + ($176 + -3 << 2) | 0;
if ((HEAP32[$190 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$190 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$193 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $193;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $193 << 16 >> 16;
$198 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($198 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($198 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($198 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($198 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($198 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($198 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($198 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $193;
break;
}
}
if ($53) {
$56 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$59 = HEAP32[$labelInfo + 1179664 + ($52 + -1 << 2) >> 2] | 0;
if (($56 | 0) > ($59 | 0)) {
HEAP16[$pnt2$362 >> 1] = $59;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $16;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($56 | 0)) HEAP32[$wk$052 >> 2] = $59;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$76 = $59;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $76 = $59;
} else {
HEAP16[$pnt2$362 >> 1] = $56;
if (($56 | 0) < ($59 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $16;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($59 | 0)) HEAP32[$wk$149 >> 2] = $56;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$76 = $56;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $76 = $56;
}
$78 = ($76 << 16 >> 16) * 7 | 0;
$80 = $labelInfo + 1310736 + ($78 + -7 << 2) | 0;
HEAP32[$80 >> 2] = (HEAP32[$80 >> 2] | 0) + 1;
$84 = $labelInfo + 1310736 + ($78 + -6 << 2) | 0;
HEAP32[$84 >> 2] = (HEAP32[$84 >> 2] | 0) + $i$255;
$88 = $labelInfo + 1310736 + ($78 + -5 << 2) | 0;
HEAP32[$88 >> 2] = (HEAP32[$88 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($78 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$94 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($94 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $47;
$134 = $48 * 7 | 0;
$136 = $labelInfo + 1310736 + ($134 + -7 << 2) | 0;
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 1;
$140 = $labelInfo + 1310736 + ($134 + -6 << 2) | 0;
HEAP32[$140 >> 2] = (HEAP32[$140 >> 2] | 0) + $i$255;
$144 = $labelInfo + 1310736 + ($134 + -5 << 2) | 0;
HEAP32[$144 >> 2] = (HEAP32[$144 >> 2] | 0) + $j$068;
$148 = $labelInfo + 1310736 + ($134 + -4 << 2) | 0;
if ((HEAP32[$148 >> 2] | 0) > ($i$255 | 0)) HEAP32[$148 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($134 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$99 = HEAP32[$labelInfo + 1179664 + ($48 + -1 << 2) >> 2] | 0;
$102 = HEAP32[$labelInfo + 1179664 + (($94 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($99 | 0) > ($102 | 0)) {
HEAP16[$pnt2$362 >> 1] = $102;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $16;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($99 | 0)) HEAP32[$wk$245 >> 2] = $102;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$119 = $102;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $119 = $102;
} else {
HEAP16[$pnt2$362 >> 1] = $99;
if (($99 | 0) < ($102 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $16;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($102 | 0)) HEAP32[$wk$342 >> 2] = $99;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$119 = $99;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $119 = $99;
}
$121 = ($119 << 16 >> 16) * 7 | 0;
$123 = $labelInfo + 1310736 + ($121 + -7 << 2) | 0;
HEAP32[$123 >> 2] = (HEAP32[$123 >> 2] | 0) + 1;
$127 = $labelInfo + 1310736 + ($121 + -6 << 2) | 0;
HEAP32[$127 >> 2] = (HEAP32[$127 >> 2] | 0) + $i$255;
$131 = $labelInfo + 1310736 + ($121 + -5 << 2) | 0;
HEAP32[$131 >> 2] = (HEAP32[$131 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$213 = $pnt$163 + 2 | 0;
$214 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $213;
$pnt2$3$lcssa = $214;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $213;
$pnt2$362 = $214;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 4 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$220 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $16;
while (1) {
$222 = HEAP32[$wk$439 >> 2] | 0;
if (($222 | 0) == ($i$337 | 0)) {
$228 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$228 = HEAP32[$labelInfo + 1179664 + ($222 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $228;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$232 = $labelInfo + 8 | 0;
$233 = $j$1$lcssa + -1 | 0;
HEAP32[$232 >> 2] = $233;
if (!$233) $$0 = 0; else {
_memset($220 | 0, 0, $233 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $233 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$240 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($240 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($240 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($240 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($240 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$232 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$254 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$255 = $i$533 * 7 | 0;
$258 = $labelInfo + 12 + ($254 << 2) | 0;
HEAP32[$258 >> 2] = (HEAP32[$258 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($255 << 2) >> 2] | 0);
$265 = $254 << 1;
$266 = $labelInfo + 655376 + ($265 << 3) | 0;
HEAPF64[$266 >> 3] = +HEAPF64[$266 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 1 << 2) >> 2] | 0);
$274 = $labelInfo + 655376 + (($265 | 1) << 3) | 0;
HEAPF64[$274 >> 3] = +HEAPF64[$274 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($255 + 2 << 2) >> 2] | 0);
$277 = $254 << 2;
$278 = $labelInfo + 131084 + ($277 << 2) | 0;
$282 = HEAP32[$labelInfo + 1310736 + ($255 + 3 << 2) >> 2] | 0;
if ((HEAP32[$278 >> 2] | 0) > ($282 | 0)) HEAP32[$278 >> 2] = $282;
$285 = $labelInfo + 131084 + (($277 | 1) << 2) | 0;
$289 = HEAP32[$labelInfo + 1310736 + ($255 + 4 << 2) >> 2] | 0;
if ((HEAP32[$285 >> 2] | 0) < ($289 | 0)) HEAP32[$285 >> 2] = $289;
$292 = $labelInfo + 131084 + (($277 | 2) << 2) | 0;
$296 = HEAP32[$labelInfo + 1310736 + ($255 + 5 << 2) >> 2] | 0;
if ((HEAP32[$292 >> 2] | 0) > ($296 | 0)) HEAP32[$292 >> 2] = $296;
$299 = $labelInfo + 131084 + (($277 | 3) << 2) | 0;
$303 = HEAP32[$labelInfo + 1310736 + ($255 + 6 << 2) >> 2] | 0;
if ((HEAP32[$299 >> 2] | 0) < ($303 | 0)) HEAP32[$299 >> 2] = $303;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$232 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$307 = $labelInfo + 12 + ($i$632 << 2) | 0;
$310 = $i$632 << 1;
$311 = $labelInfo + 655376 + ($310 << 3) | 0;
HEAPF64[$311 >> 3] = +HEAPF64[$311 >> 3] / +(HEAP32[$307 >> 2] | 0);
$317 = $labelInfo + 655376 + (($310 | 1) << 3) | 0;
HEAPF64[$317 >> 3] = +HEAPF64[$317 >> 3] / +(HEAP32[$307 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$232 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDWRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $118 = 0, $120 = 0, $122 = 0, $126 = 0, $130 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $152 = 0, $154 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $172 = 0, $175 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $197 = 0, $212 = 0, $213 = 0, $219 = 0, $22 = 0, $221 = 0, $227 = 0, $231 = 0, $232 = 0, $239 = 0, $253 = 0, $254 = 0, $257 = 0, $264 = 0, $265 = 0, $27 = 0, $273 = 0, $276 = 0, $277 = 0, $281 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $310 = 0, $316 = 0, $32 = 0, $36 = 0, $40 = 0, $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $75 = 0, $77 = 0, $79 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$22 = ($9 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + $17 | 0;
$pnt2$271 = $0 + ($17 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($22) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
$27 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0;
if ($27 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $27;
$30 = ($27 << 16 >> 16) * 7 | 0;
$32 = $labelInfo + 1310736 + ($30 + -7 << 2) | 0;
HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1;
$36 = $labelInfo + 1310736 + ($30 + -6 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $i$255;
$40 = $labelInfo + 1310736 + ($30 + -5 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($30 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$46 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$47 = $46 << 16 >> 16;
$50 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$52 = $50 << 16 >> 16 > 0;
if ($46 << 16 >> 16 <= 0) {
if ($52) {
HEAP16[$pnt2$362 >> 1] = $50;
$152 = $51 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$255;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$068;
$166 = $labelInfo + 1310736 + ($152 + -3 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) < ($i$255 | 0)) HEAP32[$166 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$172 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($172 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $172;
$175 = ($172 << 16 >> 16) * 7 | 0;
$177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1;
$181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$255;
$185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$068;
$189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0;
if ((HEAP32[$189 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$189 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$192 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $192;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $192 << 16 >> 16;
$197 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($197 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($197 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($197 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($197 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($197 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($197 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($197 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $192;
break;
}
}
if ($52) {
$55 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0;
$58 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
if (($55 | 0) > ($58 | 0)) {
HEAP16[$pnt2$362 >> 1] = $58;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $16;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($55 | 0)) HEAP32[$wk$052 >> 2] = $58;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$75 = $58;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $75 = $58;
} else {
HEAP16[$pnt2$362 >> 1] = $55;
if (($55 | 0) < ($58 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $16;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$149 >> 2] = $55;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$75 = $55;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $75 = $55;
}
$77 = ($75 << 16 >> 16) * 7 | 0;
$79 = $labelInfo + 1310736 + ($77 + -7 << 2) | 0;
HEAP32[$79 >> 2] = (HEAP32[$79 >> 2] | 0) + 1;
$83 = $labelInfo + 1310736 + ($77 + -6 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + $i$255;
$87 = $labelInfo + 1310736 + ($77 + -5 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($77 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$93 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($93 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $46;
$133 = $47 * 7 | 0;
$135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1;
$139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$255;
$143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$068;
$147 = $labelInfo + 1310736 + ($133 + -4 << 2) | 0;
if ((HEAP32[$147 >> 2] | 0) > ($i$255 | 0)) HEAP32[$147 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($133 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$98 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0;
$101 = HEAP32[$labelInfo + 1179664 + (($93 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($98 | 0) > ($101 | 0)) {
HEAP16[$pnt2$362 >> 1] = $101;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $16;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($98 | 0)) HEAP32[$wk$245 >> 2] = $101;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$118 = $101;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $118 = $101;
} else {
HEAP16[$pnt2$362 >> 1] = $98;
if (($98 | 0) < ($101 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $16;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$342 >> 2] = $98;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$118 = $98;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $118 = $98;
}
$120 = ($118 << 16 >> 16) * 7 | 0;
$122 = $labelInfo + 1310736 + ($120 + -7 << 2) | 0;
HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) + 1;
$126 = $labelInfo + 1310736 + ($120 + -6 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + $i$255;
$130 = $labelInfo + 1310736 + ($120 + -5 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} else {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$212 = $pnt$163 + 1 | 0;
$213 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $212;
$pnt2$3$lcssa = $213;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $212;
$pnt2$362 = $213;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 2 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$219 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $16;
while (1) {
$221 = HEAP32[$wk$439 >> 2] | 0;
if (($221 | 0) == ($i$337 | 0)) {
$227 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$227 = HEAP32[$labelInfo + 1179664 + ($221 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $227;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$231 = $labelInfo + 8 | 0;
$232 = $j$1$lcssa + -1 | 0;
HEAP32[$231 >> 2] = $232;
if (!$232) $$0 = 0; else {
_memset($219 | 0, 0, $232 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $232 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$239 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($239 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($239 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($239 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($239 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$231 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$253 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$254 = $i$533 * 7 | 0;
$257 = $labelInfo + 12 + ($253 << 2) | 0;
HEAP32[$257 >> 2] = (HEAP32[$257 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($254 << 2) >> 2] | 0);
$264 = $253 << 1;
$265 = $labelInfo + 655376 + ($264 << 3) | 0;
HEAPF64[$265 >> 3] = +HEAPF64[$265 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 1 << 2) >> 2] | 0);
$273 = $labelInfo + 655376 + (($264 | 1) << 3) | 0;
HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 2 << 2) >> 2] | 0);
$276 = $253 << 2;
$277 = $labelInfo + 131084 + ($276 << 2) | 0;
$281 = HEAP32[$labelInfo + 1310736 + ($254 + 3 << 2) >> 2] | 0;
if ((HEAP32[$277 >> 2] | 0) > ($281 | 0)) HEAP32[$277 >> 2] = $281;
$284 = $labelInfo + 131084 + (($276 | 1) << 2) | 0;
$288 = HEAP32[$labelInfo + 1310736 + ($254 + 4 << 2) >> 2] | 0;
if ((HEAP32[$284 >> 2] | 0) < ($288 | 0)) HEAP32[$284 >> 2] = $288;
$291 = $labelInfo + 131084 + (($276 | 2) << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($254 + 5 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($276 | 3) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($254 + 6 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$231 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$306 = $labelInfo + 12 + ($i$632 << 2) | 0;
$309 = $i$632 << 1;
$310 = $labelInfo + 655376 + ($309 << 3) | 0;
HEAPF64[$310 >> 3] = +HEAPF64[$310 >> 3] / +(HEAP32[$306 >> 2] | 0);
$316 = $labelInfo + 655376 + (($309 | 1) << 3) | 0;
HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$306 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$231 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arLabelingSubDBRC($image, $xsize, $ysize, $labelingThresh, $labelInfo) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelingThresh = $labelingThresh | 0;
$labelInfo = $labelInfo | 0;
var $$0 = 0, $$sum = 0, $$sum1 = 0, $0 = 0, $1 = 0, $101 = 0, $118 = 0, $120 = 0, $122 = 0, $126 = 0, $130 = 0, $133 = 0, $135 = 0, $139 = 0, $143 = 0, $147 = 0, $152 = 0, $154 = 0, $158 = 0, $16 = 0, $162 = 0, $166 = 0, $17 = 0, $172 = 0, $175 = 0, $177 = 0, $18 = 0, $181 = 0, $185 = 0, $189 = 0, $192 = 0, $197 = 0, $212 = 0, $213 = 0, $219 = 0, $22 = 0, $221 = 0, $227 = 0, $231 = 0, $232 = 0, $239 = 0, $253 = 0, $254 = 0, $257 = 0, $264 = 0, $265 = 0, $27 = 0, $273 = 0, $276 = 0, $277 = 0, $281 = 0, $284 = 0, $288 = 0, $291 = 0, $295 = 0, $298 = 0, $30 = 0, $302 = 0, $306 = 0, $309 = 0, $310 = 0, $316 = 0, $32 = 0, $36 = 0, $40 = 0, $46 = 0, $47 = 0, $50 = 0, $51 = 0, $52 = 0, $55 = 0, $58 = 0, $75 = 0, $77 = 0, $79 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $98 = 0, $i$081 = 0, $i$175 = 0, $i$255 = 0, $i$337 = 0, $i$435 = 0, $i$533 = 0, $i$632 = 0, $j$068 = 0, $j$1$lcssa = 0, $j$138 = 0, $j$2 = 0, $k$051 = 0, $k$148 = 0, $k$244 = 0, $k$341 = 0, $pnt$072 = 0, $pnt$1$lcssa = 0, $pnt$163 = 0, $pnt1$083 = 0, $pnt1$177 = 0, $pnt2$082 = 0, $pnt2$176 = 0, $pnt2$271 = 0, $pnt2$3$lcssa = 0, $pnt2$362 = 0, $vararg_buffer = 0, $wk$052 = 0, $wk$149 = 0, $wk$245 = 0, $wk$342 = 0, $wk$439 = 0, $wk_max$0$lcssa = 0, $wk_max$070 = 0, $wk_max$1$lcssa = 0, $wk_max$157 = 0, $wk_max$2 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = HEAP32[$labelInfo >> 2] | 0;
$1 = $ysize + -1 | 0;
if (($xsize | 0) > 0) {
$i$081 = 0;
$pnt1$083 = $0;
$pnt2$082 = $0 + ((Math_imul($1, $xsize) | 0) << 1) | 0;
while (1) {
HEAP16[$pnt2$082 >> 1] = 0;
HEAP16[$pnt1$083 >> 1] = 0;
$i$081 = $i$081 + 1 | 0;
if (($i$081 | 0) >= ($xsize | 0)) break; else {
$pnt1$083 = $pnt1$083 + 2 | 0;
$pnt2$082 = $pnt2$082 + 2 | 0;
}
}
}
$9 = $xsize + -1 | 0;
if (($ysize | 0) > 0) {
$i$175 = 0;
$pnt1$177 = $0;
$pnt2$176 = $0 + ($9 << 1) | 0;
while (1) {
HEAP16[$pnt2$176 >> 1] = 0;
HEAP16[$pnt1$177 >> 1] = 0;
$i$175 = $i$175 + 1 | 0;
if (($i$175 | 0) >= ($ysize | 0)) break; else {
$pnt1$177 = $pnt1$177 + ($xsize << 1) | 0;
$pnt2$176 = $pnt2$176 + ($xsize << 1) | 0;
}
}
}
$16 = $labelInfo + 1179664 | 0;
$17 = $xsize + 1 | 0;
$18 = 0 - $xsize | 0;
$$sum = 1 - $xsize | 0;
$$sum1 = ~$xsize;
L11 : do if (($1 | 0) > 1) {
$22 = ($9 | 0) > 1;
$j$068 = 1;
$pnt$072 = $image + $17 | 0;
$pnt2$271 = $0 + ($17 << 1) | 0;
$wk_max$070 = 0;
L13 : while (1) {
if ($22) {
$i$255 = 1;
$pnt$163 = $pnt$072;
$pnt2$362 = $pnt2$271;
$wk_max$157 = $wk_max$070;
while (1) {
do if ((HEAPU8[$pnt$163 >> 0] | 0 | 0) > ($labelingThresh | 0)) {
HEAP16[$pnt2$362 >> 1] = 0;
$wk_max$2 = $wk_max$157;
} else {
$27 = HEAP16[$pnt2$362 + ($18 << 1) >> 1] | 0;
if ($27 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $27;
$30 = ($27 << 16 >> 16) * 7 | 0;
$32 = $labelInfo + 1310736 + ($30 + -7 << 2) | 0;
HEAP32[$32 >> 2] = (HEAP32[$32 >> 2] | 0) + 1;
$36 = $labelInfo + 1310736 + ($30 + -6 << 2) | 0;
HEAP32[$36 >> 2] = (HEAP32[$36 >> 2] | 0) + $i$255;
$40 = $labelInfo + 1310736 + ($30 + -5 << 2) | 0;
HEAP32[$40 >> 2] = (HEAP32[$40 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($30 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$46 = HEAP16[$pnt2$362 + ($$sum << 1) >> 1] | 0;
$47 = $46 << 16 >> 16;
$50 = HEAP16[$pnt2$362 + ($$sum1 << 1) >> 1] | 0;
$51 = $50 << 16 >> 16;
$52 = $50 << 16 >> 16 > 0;
if ($46 << 16 >> 16 <= 0) {
if ($52) {
HEAP16[$pnt2$362 >> 1] = $50;
$152 = $51 * 7 | 0;
$154 = $labelInfo + 1310736 + ($152 + -7 << 2) | 0;
HEAP32[$154 >> 2] = (HEAP32[$154 >> 2] | 0) + 1;
$158 = $labelInfo + 1310736 + ($152 + -6 << 2) | 0;
HEAP32[$158 >> 2] = (HEAP32[$158 >> 2] | 0) + $i$255;
$162 = $labelInfo + 1310736 + ($152 + -5 << 2) | 0;
HEAP32[$162 >> 2] = (HEAP32[$162 >> 2] | 0) + $j$068;
$166 = $labelInfo + 1310736 + ($152 + -3 << 2) | 0;
if ((HEAP32[$166 >> 2] | 0) < ($i$255 | 0)) HEAP32[$166 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($152 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$172 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($172 << 16 >> 16 > 0) {
HEAP16[$pnt2$362 >> 1] = $172;
$175 = ($172 << 16 >> 16) * 7 | 0;
$177 = $labelInfo + 1310736 + ($175 + -7 << 2) | 0;
HEAP32[$177 >> 2] = (HEAP32[$177 >> 2] | 0) + 1;
$181 = $labelInfo + 1310736 + ($175 + -6 << 2) | 0;
HEAP32[$181 >> 2] = (HEAP32[$181 >> 2] | 0) + $i$255;
$185 = $labelInfo + 1310736 + ($175 + -5 << 2) | 0;
HEAP32[$185 >> 2] = (HEAP32[$185 >> 2] | 0) + $j$068;
$189 = $labelInfo + 1310736 + ($175 + -3 << 2) | 0;
if ((HEAP32[$189 >> 2] | 0) >= ($i$255 | 0)) {
$wk_max$2 = $wk_max$157;
break;
}
HEAP32[$189 >> 2] = $i$255;
$wk_max$2 = $wk_max$157;
break;
} else {
$192 = $wk_max$157 + 1 | 0;
if (($wk_max$157 | 0) > 32767) break L13;
HEAP16[$pnt2$362 >> 1] = $192;
HEAP32[$labelInfo + 1179664 + ($wk_max$157 << 2) >> 2] = $192 << 16 >> 16;
$197 = $wk_max$157 * 7 | 0;
HEAP32[$labelInfo + 1310736 + ($197 << 2) >> 2] = 1;
HEAP32[$labelInfo + 1310736 + ($197 + 1 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($197 + 2 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($197 + 3 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($197 + 4 << 2) >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($197 + 5 << 2) >> 2] = $j$068;
HEAP32[$labelInfo + 1310736 + ($197 + 6 << 2) >> 2] = $j$068;
$wk_max$2 = $192;
break;
}
}
if ($52) {
$55 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0;
$58 = HEAP32[$labelInfo + 1179664 + ($51 + -1 << 2) >> 2] | 0;
if (($55 | 0) > ($58 | 0)) {
HEAP16[$pnt2$362 >> 1] = $58;
if (($wk_max$157 | 0) > 0) {
$k$051 = 0;
$wk$052 = $16;
while (1) {
if ((HEAP32[$wk$052 >> 2] | 0) == ($55 | 0)) HEAP32[$wk$052 >> 2] = $58;
$k$051 = $k$051 + 1 | 0;
if (($k$051 | 0) >= ($wk_max$157 | 0)) {
$75 = $58;
break;
} else $wk$052 = $wk$052 + 4 | 0;
}
} else $75 = $58;
} else {
HEAP16[$pnt2$362 >> 1] = $55;
if (($55 | 0) < ($58 | 0) & ($wk_max$157 | 0) > 0) {
$k$148 = 0;
$wk$149 = $16;
while (1) {
if ((HEAP32[$wk$149 >> 2] | 0) == ($58 | 0)) HEAP32[$wk$149 >> 2] = $55;
$k$148 = $k$148 + 1 | 0;
if (($k$148 | 0) >= ($wk_max$157 | 0)) {
$75 = $55;
break;
} else $wk$149 = $wk$149 + 4 | 0;
}
} else $75 = $55;
}
$77 = ($75 << 16 >> 16) * 7 | 0;
$79 = $labelInfo + 1310736 + ($77 + -7 << 2) | 0;
HEAP32[$79 >> 2] = (HEAP32[$79 >> 2] | 0) + 1;
$83 = $labelInfo + 1310736 + ($77 + -6 << 2) | 0;
HEAP32[$83 >> 2] = (HEAP32[$83 >> 2] | 0) + $i$255;
$87 = $labelInfo + 1310736 + ($77 + -5 << 2) | 0;
HEAP32[$87 >> 2] = (HEAP32[$87 >> 2] | 0) + $j$068;
HEAP32[$labelInfo + 1310736 + ($77 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$93 = HEAP16[$pnt2$362 + -2 >> 1] | 0;
if ($93 << 16 >> 16 <= 0) {
HEAP16[$pnt2$362 >> 1] = $46;
$133 = $47 * 7 | 0;
$135 = $labelInfo + 1310736 + ($133 + -7 << 2) | 0;
HEAP32[$135 >> 2] = (HEAP32[$135 >> 2] | 0) + 1;
$139 = $labelInfo + 1310736 + ($133 + -6 << 2) | 0;
HEAP32[$139 >> 2] = (HEAP32[$139 >> 2] | 0) + $i$255;
$143 = $labelInfo + 1310736 + ($133 + -5 << 2) | 0;
HEAP32[$143 >> 2] = (HEAP32[$143 >> 2] | 0) + $j$068;
$147 = $labelInfo + 1310736 + ($133 + -4 << 2) | 0;
if ((HEAP32[$147 >> 2] | 0) > ($i$255 | 0)) HEAP32[$147 >> 2] = $i$255;
HEAP32[$labelInfo + 1310736 + ($133 + -1 << 2) >> 2] = $j$068;
$wk_max$2 = $wk_max$157;
break;
}
$98 = HEAP32[$labelInfo + 1179664 + ($47 + -1 << 2) >> 2] | 0;
$101 = HEAP32[$labelInfo + 1179664 + (($93 << 16 >> 16) + -1 << 2) >> 2] | 0;
if (($98 | 0) > ($101 | 0)) {
HEAP16[$pnt2$362 >> 1] = $101;
if (($wk_max$157 | 0) > 0) {
$k$244 = 0;
$wk$245 = $16;
while (1) {
if ((HEAP32[$wk$245 >> 2] | 0) == ($98 | 0)) HEAP32[$wk$245 >> 2] = $101;
$k$244 = $k$244 + 1 | 0;
if (($k$244 | 0) >= ($wk_max$157 | 0)) {
$118 = $101;
break;
} else $wk$245 = $wk$245 + 4 | 0;
}
} else $118 = $101;
} else {
HEAP16[$pnt2$362 >> 1] = $98;
if (($98 | 0) < ($101 | 0) & ($wk_max$157 | 0) > 0) {
$k$341 = 0;
$wk$342 = $16;
while (1) {
if ((HEAP32[$wk$342 >> 2] | 0) == ($101 | 0)) HEAP32[$wk$342 >> 2] = $98;
$k$341 = $k$341 + 1 | 0;
if (($k$341 | 0) >= ($wk_max$157 | 0)) {
$118 = $98;
break;
} else $wk$342 = $wk$342 + 4 | 0;
}
} else $118 = $98;
}
$120 = ($118 << 16 >> 16) * 7 | 0;
$122 = $labelInfo + 1310736 + ($120 + -7 << 2) | 0;
HEAP32[$122 >> 2] = (HEAP32[$122 >> 2] | 0) + 1;
$126 = $labelInfo + 1310736 + ($120 + -6 << 2) | 0;
HEAP32[$126 >> 2] = (HEAP32[$126 >> 2] | 0) + $i$255;
$130 = $labelInfo + 1310736 + ($120 + -5 << 2) | 0;
HEAP32[$130 >> 2] = (HEAP32[$130 >> 2] | 0) + $j$068;
$wk_max$2 = $wk_max$157;
} while (0);
$i$255 = $i$255 + 1 | 0;
$212 = $pnt$163 + 1 | 0;
$213 = $pnt2$362 + 2 | 0;
if (($i$255 | 0) >= ($9 | 0)) {
$pnt$1$lcssa = $212;
$pnt2$3$lcssa = $213;
$wk_max$1$lcssa = $wk_max$2;
break;
} else {
$pnt$163 = $212;
$pnt2$362 = $213;
$wk_max$157 = $wk_max$2;
}
}
} else {
$pnt$1$lcssa = $pnt$072;
$pnt2$3$lcssa = $pnt2$271;
$wk_max$1$lcssa = $wk_max$070;
}
$j$068 = $j$068 + 1 | 0;
if (($j$068 | 0) >= ($1 | 0)) {
$wk_max$0$lcssa = $wk_max$1$lcssa;
label = 52;
break L11;
} else {
$pnt$072 = $pnt$1$lcssa + 2 | 0;
$pnt2$271 = $pnt2$3$lcssa + 4 | 0;
$wk_max$070 = $wk_max$1$lcssa;
}
}
_arLog(3, 3904, $vararg_buffer);
$$0 = -1;
} else {
$wk_max$0$lcssa = 0;
label = 52;
} while (0);
if ((label | 0) == 52) {
$219 = $labelInfo + 12 | 0;
if (($wk_max$0$lcssa | 0) < 1) $j$1$lcssa = 1; else {
$i$337 = 1;
$j$138 = 1;
$wk$439 = $16;
while (1) {
$221 = HEAP32[$wk$439 >> 2] | 0;
if (($221 | 0) == ($i$337 | 0)) {
$227 = $j$138;
$j$2 = $j$138 + 1 | 0;
} else {
$227 = HEAP32[$labelInfo + 1179664 + ($221 + -1 << 2) >> 2] | 0;
$j$2 = $j$138;
}
HEAP32[$wk$439 >> 2] = $227;
if (($i$337 | 0) < ($wk_max$0$lcssa | 0)) {
$i$337 = $i$337 + 1 | 0;
$j$138 = $j$2;
$wk$439 = $wk$439 + 4 | 0;
} else {
$j$1$lcssa = $j$2;
break;
}
}
}
$231 = $labelInfo + 8 | 0;
$232 = $j$1$lcssa + -1 | 0;
HEAP32[$231 >> 2] = $232;
if (!$232) $$0 = 0; else {
_memset($219 | 0, 0, $232 << 2 | 0) | 0;
_memset($labelInfo + 655376 | 0, 0, $232 << 4 | 0) | 0;
if (($j$1$lcssa | 0) > 1) {
$i$435 = 0;
do {
$239 = $i$435 << 2;
HEAP32[$labelInfo + 131084 + ($239 << 2) >> 2] = $xsize;
HEAP32[$labelInfo + 131084 + (($239 | 1) << 2) >> 2] = 0;
HEAP32[$labelInfo + 131084 + (($239 | 2) << 2) >> 2] = $ysize;
HEAP32[$labelInfo + 131084 + (($239 | 3) << 2) >> 2] = 0;
$i$435 = $i$435 + 1 | 0;
} while (($i$435 | 0) < (HEAP32[$231 >> 2] | 0));
}
if (($wk_max$0$lcssa | 0) > 0) {
$i$533 = 0;
do {
$253 = (HEAP32[$labelInfo + 1179664 + ($i$533 << 2) >> 2] | 0) + -1 | 0;
$254 = $i$533 * 7 | 0;
$257 = $labelInfo + 12 + ($253 << 2) | 0;
HEAP32[$257 >> 2] = (HEAP32[$257 >> 2] | 0) + (HEAP32[$labelInfo + 1310736 + ($254 << 2) >> 2] | 0);
$264 = $253 << 1;
$265 = $labelInfo + 655376 + ($264 << 3) | 0;
HEAPF64[$265 >> 3] = +HEAPF64[$265 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 1 << 2) >> 2] | 0);
$273 = $labelInfo + 655376 + (($264 | 1) << 3) | 0;
HEAPF64[$273 >> 3] = +HEAPF64[$273 >> 3] + +(HEAP32[$labelInfo + 1310736 + ($254 + 2 << 2) >> 2] | 0);
$276 = $253 << 2;
$277 = $labelInfo + 131084 + ($276 << 2) | 0;
$281 = HEAP32[$labelInfo + 1310736 + ($254 + 3 << 2) >> 2] | 0;
if ((HEAP32[$277 >> 2] | 0) > ($281 | 0)) HEAP32[$277 >> 2] = $281;
$284 = $labelInfo + 131084 + (($276 | 1) << 2) | 0;
$288 = HEAP32[$labelInfo + 1310736 + ($254 + 4 << 2) >> 2] | 0;
if ((HEAP32[$284 >> 2] | 0) < ($288 | 0)) HEAP32[$284 >> 2] = $288;
$291 = $labelInfo + 131084 + (($276 | 2) << 2) | 0;
$295 = HEAP32[$labelInfo + 1310736 + ($254 + 5 << 2) >> 2] | 0;
if ((HEAP32[$291 >> 2] | 0) > ($295 | 0)) HEAP32[$291 >> 2] = $295;
$298 = $labelInfo + 131084 + (($276 | 3) << 2) | 0;
$302 = HEAP32[$labelInfo + 1310736 + ($254 + 6 << 2) >> 2] | 0;
if ((HEAP32[$298 >> 2] | 0) < ($302 | 0)) HEAP32[$298 >> 2] = $302;
$i$533 = $i$533 + 1 | 0;
} while (($i$533 | 0) < ($wk_max$0$lcssa | 0));
}
if ((HEAP32[$231 >> 2] | 0) > 0) {
$i$632 = 0;
do {
$306 = $labelInfo + 12 + ($i$632 << 2) | 0;
$309 = $i$632 << 1;
$310 = $labelInfo + 655376 + ($309 << 3) | 0;
HEAPF64[$310 >> 3] = +HEAPF64[$310 >> 3] / +(HEAP32[$306 >> 2] | 0);
$316 = $labelInfo + 655376 + (($309 | 1) << 3) | 0;
HEAPF64[$316 >> 3] = +HEAPF64[$316 >> 3] / +(HEAP32[$306 >> 2] | 0);
$i$632 = $i$632 + 1 | 0;
} while (($i$632 | 0) < (HEAP32[$231 >> 2] | 0));
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0$i$i$i = 0, $$0$i$i$i10 = 0, $$0$i$i$i21 = 0, $$0$i$i$i7 = 0, $$1 = 0, $$lcssa = 0, $$lcssa152 = 0, $$pre = 0, $0 = 0, $1 = 0, $100 = 0, $102 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $118 = 0, $12 = 0, $121 = 0, $124 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $154 = 0, $157 = 0, $16 = 0, $164 = 0, $174 = 0, $176 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $19 = 0, $192 = 0, $193 = 0, $195 = 0, $2 = 0, $209 = 0, $211 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $225 = 0, $227 = 0, $23 = 0, $230 = 0, $231 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $38 = 0, $43 = 0, $44 = 0, $45 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $60 = 0, $63 = 0, $66 = 0, $76 = 0, $82 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $95 = 0, $96 = 0, $98 = 0, $99 = 0, $__v$i$i20 = 0, $args = 0, $k$0121 = 0, $k1$0124 = 0, $k2$0123 = 0, $t$0$lcssa = 0, $t$0126 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i20 = sp + 64 | 0;
$args = sp + 52 | 0;
$0 = sp + 40 | 0;
$1 = sp + 16 | 0;
$2 = sp;
L1 : do if (($last - $first | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 73) {
$9 = $db + 61 | 0;
$$pre = $db + 36 | 0;
if (HEAP8[$9 >> 0] | 0) {
$12 = HEAP32[$$pre >> 2] | 0;
$14 = HEAP32[$12 + -16 >> 2] | 0;
$15 = $12 + -12 | 0;
$16 = HEAP32[$15 >> 2] | 0;
if (($16 | 0) != ($14 | 0)) {
$19 = $16;
do {
$18 = $19 + -16 | 0;
HEAP32[$15 >> 2] = $18;
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($18);
$19 = HEAP32[$15 >> 2] | 0;
} while (($19 | 0) != ($14 | 0));
}
}
$22 = $first + 1 | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($args, 12776, 1);
$23 = $db + 4 | 0;
$24 = $db + 12 | 0;
$25 = $__v$i$i20 + 8 | 0;
$26 = $__v$i$i20 + 8 | 0;
$27 = $args + 4 | 0;
$28 = $0 + 8 | 0;
$29 = $0 + 1 | 0;
$30 = $0 + 4 | 0;
$31 = $db + 32 | 0;
$32 = $db + 40 | 0;
$33 = $db + 44 | 0;
$34 = $__v$i$i20 + 8 | 0;
L9 : do if ((HEAP8[$22 >> 0] | 0) == 69) $t$0$lcssa = $22; else {
$t$0126 = $22;
L10 : while (1) {
do if (HEAP8[$9 >> 0] | 0) {
$43 = HEAP32[$24 >> 2] | 0;
$44 = HEAP32[$$pre >> 2] | 0;
$45 = HEAP32[$32 >> 2] | 0;
if ($44 >>> 0 < $45 >>> 0) {
HEAP32[$44 >> 2] = 0;
HEAP32[$44 + 4 >> 2] = 0;
HEAP32[$44 + 8 >> 2] = 0;
HEAP32[$44 + 12 >> 2] = $43;
HEAP32[$$pre >> 2] = (HEAP32[$$pre >> 2] | 0) + 16;
break;
}
$54 = HEAP32[$31 >> 2] | 0;
$55 = $44 - $54 | 0;
$56 = $55 >> 4;
$57 = $56 + 1 | 0;
if (($55 | 0) < -16) {
label = 12;
break L10;
}
$60 = $45 - $54 | 0;
if ($60 >> 4 >>> 0 < 1073741823) {
$63 = $60 >> 3;
$$0$i$i$i = $63 >>> 0 < $57 >>> 0 ? $57 : $63;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($__v$i$i20, $$0$i$i$i, $56, $33);
$66 = HEAP32[$34 >> 2] | 0;
HEAP32[$66 >> 2] = 0;
HEAP32[$66 + 4 >> 2] = 0;
HEAP32[$66 + 8 >> 2] = 0;
HEAP32[$66 + 12 >> 2] = $43;
HEAP32[$34 >> 2] = $66 + 16;
__ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($31, $__v$i$i20);
__ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($__v$i$i20);
} while (0);
$76 = ((HEAP32[$23 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$38 = __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($t$0126, $last, $db) | 0;
$82 = ((HEAP32[$23 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (HEAP8[$9 >> 0] | 0) {
$85 = HEAP32[$$pre >> 2] | 0;
$86 = $85 + -16 | 0;
$88 = $85;
do {
$87 = $88 + -16 | 0;
HEAP32[$$pre >> 2] = $87;
__ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($87);
$88 = HEAP32[$$pre >> 2] | 0;
} while (($88 | 0) != ($86 | 0));
}
if (($38 | 0) == ($t$0126 | 0) | ($38 | 0) == ($last | 0)) {
label = 56;
break;
}
if (HEAP8[$9 >> 0] | 0) {
$95 = HEAP32[$$pre >> 2] | 0;
$96 = $95 + -16 | 0;
$98 = HEAP32[$24 >> 2] | 0;
$99 = $95 + -12 | 0;
$100 = HEAP32[$99 >> 2] | 0;
$102 = HEAP32[$95 + -8 >> 2] | 0;
if ($100 >>> 0 < $102 >>> 0) {
HEAP32[$100 >> 2] = 0;
HEAP32[$100 + 4 >> 2] = 0;
HEAP32[$100 + 8 >> 2] = 0;
HEAP32[$100 + 12 >> 2] = $98;
HEAP32[$99 >> 2] = (HEAP32[$99 >> 2] | 0) + 16;
} else {
$112 = HEAP32[$96 >> 2] | 0;
$113 = $100 - $112 | 0;
$114 = $113 >> 4;
$115 = $114 + 1 | 0;
if (($113 | 0) < -16) {
$$lcssa = $96;
label = 25;
break;
}
$118 = $102 - $112 | 0;
if ($118 >> 4 >>> 0 < 1073741823) {
$121 = $118 >> 3;
$$0$i$i$i7 = $121 >>> 0 < $115 >>> 0 ? $115 : $121;
} else $$0$i$i$i7 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i20, $$0$i$i$i7, $114, $95 + -4 | 0);
$124 = HEAP32[$25 >> 2] | 0;
HEAP32[$124 >> 2] = 0;
HEAP32[$124 + 4 >> 2] = 0;
HEAP32[$124 + 8 >> 2] = 0;
HEAP32[$124 + 12 >> 2] = $98;
HEAP32[$25 >> 2] = $124 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($96, $__v$i$i20);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i20);
}
if ($76 >>> 0 < $82 >>> 0) {
$k$0121 = $76;
do {
$132 = HEAP32[(HEAP32[$$pre >> 2] | 0) + -12 >> 2] | 0;
$133 = $132 + -16 | 0;
$134 = HEAP32[$db >> 2] | 0;
$135 = $134 + ($k$0121 * 24 | 0) | 0;
$136 = $132 + -12 | 0;
$137 = HEAP32[$136 >> 2] | 0;
if (($137 | 0) == (HEAP32[$132 + -8 >> 2] | 0)) {
$149 = $137 - (HEAP32[$133 >> 2] | 0) | 0;
$150 = ($149 | 0) / 24 | 0;
$151 = $150 + 1 | 0;
if (($149 | 0) < -24) {
$$lcssa152 = $133;
label = 33;
break L10;
}
if ($150 >>> 0 < 1073741823) {
$154 = $150 << 1;
$$0$i$i$i10 = $154 >>> 0 < $151 >>> 0 ? $151 : $154;
} else $$0$i$i$i10 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i20, $$0$i$i$i10, $150, $132 + -4 | 0);
$157 = HEAP32[$26 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($157, $135);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($157 + 12 | 0, $134 + ($k$0121 * 24 | 0) + 12 | 0);
HEAP32[$26 >> 2] = $157 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($133, $__v$i$i20);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i20);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($137, $135);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($137 + 12 | 0, $134 + ($k$0121 * 24 | 0) + 12 | 0);
HEAP32[$136 >> 2] = (HEAP32[$136 >> 2] | 0) + 24;
}
$k$0121 = $k$0121 + 1 | 0;
} while ($k$0121 >>> 0 < $82 >>> 0);
}
}
if ($76 >>> 0 < $82 >>> 0) {
$k2$0123 = $76;
do {
$164 = HEAP8[$args >> 0] | 0;
if ((($164 & 1) == 0 ? ($164 & 255) >>> 1 : HEAP32[$27 >> 2] | 0) >>> 0 > 1) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 12716) | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($0, (HEAP32[$db >> 2] | 0) + ($k2$0123 * 24 | 0) | 0);
$174 = HEAP8[$0 >> 0] | 0;
$176 = ($174 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($args, $176 ? $29 : HEAP32[$28 >> 2] | 0, $176 ? ($174 & 255) >>> 1 : HEAP32[$30 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
$k2$0123 = $k2$0123 + 1 | 0;
} while ($k2$0123 >>> 0 < $82 >>> 0);
}
if (($82 | 0) != ($76 | 0)) {
$k1$0124 = $82;
do {
$185 = HEAP32[$23 >> 2] | 0;
$186 = $185 + -24 | 0;
$188 = $185;
do {
$187 = $188 + -24 | 0;
HEAP32[$23 >> 2] = $187;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($187);
$188 = HEAP32[$23 >> 2] | 0;
} while (($188 | 0) != ($186 | 0));
$k1$0124 = $k1$0124 + -1 | 0;
} while (($k1$0124 | 0) != ($76 | 0));
}
if ((HEAP8[$38 >> 0] | 0) == 69) {
$t$0$lcssa = $38;
break L9;
} else $t$0126 = $38;
}
if ((label | 0) == 12) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($31); else if ((label | 0) == 25) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa); else if ((label | 0) == 33) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($$lcssa152); else if ((label | 0) == 56) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$1 = $first;
break L1;
}
} while (0);
$192 = $t$0$lcssa + 1 | 0;
$193 = HEAP8[$args >> 0] | 0;
$195 = ($193 & 1) == 0;
if ((HEAP8[($195 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0) + (($195 ? ($193 & 255) >>> 1 : HEAP32[$27 >> 2] | 0) + -1) >> 0] | 0) == 62) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 13761) | 0; else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($args, 12778) | 0;
HEAP32[$2 >> 2] = HEAP32[$args >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$args + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$args + 8 >> 2];
HEAP32[$args >> 2] = 0;
HEAP32[$args + 4 >> 2] = 0;
HEAP32[$args + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
$209 = HEAP32[$23 >> 2] | 0;
$211 = HEAP32[$db + 8 >> 2] | 0;
if ($209 >>> 0 < $211 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($209, $1);
HEAP32[$23 >> 2] = (HEAP32[$23 >> 2] | 0) + 24;
} else {
$218 = HEAP32[$db >> 2] | 0;
$219 = $209 - $218 | 0;
$220 = ($219 | 0) / 24 | 0;
$221 = $220 + 1 | 0;
if (($219 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$225 = ($211 - $218 | 0) / 24 | 0;
if ($225 >>> 0 < 1073741823) {
$227 = $225 << 1;
$$0$i$i$i21 = $227 >>> 0 < $221 >>> 0 ? $221 : $227;
} else $$0$i$i$i21 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i20, $$0$i$i$i21, $220, $db + 12 | 0);
$230 = $__v$i$i20 + 8 | 0;
$231 = HEAP32[$230 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($231, $1);
HEAP32[$230 >> 2] = $231 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i20);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i20);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$1 = $192;
} else $$1 = $first; else $$1 = $first; while (0);
STACKTOP = sp;
return $$1 | 0;
}
function _free($mem) {
$mem = $mem | 0;
var $$lcssa = 0, $$pre$phi59Z2D = 0, $$pre$phi61Z2D = 0, $$pre$phiZ2D = 0, $$sum2 = 0, $1 = 0, $103 = 0, $104 = 0, $111 = 0, $112 = 0, $12 = 0, $120 = 0, $128 = 0, $133 = 0, $134 = 0, $137 = 0, $139 = 0, $14 = 0, $141 = 0, $15 = 0, $156 = 0, $161 = 0, $163 = 0, $166 = 0, $169 = 0, $172 = 0, $175 = 0, $176 = 0, $178 = 0, $179 = 0, $181 = 0, $182 = 0, $184 = 0, $185 = 0, $19 = 0, $191 = 0, $192 = 0, $2 = 0, $201 = 0, $206 = 0, $210 = 0, $216 = 0, $22 = 0, $231 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $24 = 0, $240 = 0, $241 = 0, $247 = 0, $252 = 0, $253 = 0, $256 = 0, $258 = 0, $26 = 0, $261 = 0, $266 = 0, $272 = 0, $276 = 0, $277 = 0, $284 = 0, $296 = 0, $301 = 0, $308 = 0, $309 = 0, $310 = 0, $318 = 0, $39 = 0, $44 = 0, $46 = 0, $49 = 0, $5 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $6 = 0, $60 = 0, $61 = 0, $63 = 0, $64 = 0, $66 = 0, $67 = 0, $72 = 0, $73 = 0, $8 = 0, $82 = 0, $87 = 0, $9 = 0, $91 = 0, $97 = 0, $F16$0 = 0, $I18$0 = 0, $K19$052 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$051 = 0, $T$051$lcssa = 0, $p$0 = 0, $psize$0 = 0, $psize$1 = 0, $sp$0$i = 0, $sp$0$in$i = 0;
if (!$mem) return;
$1 = $mem + -8 | 0;
$2 = HEAP32[760] | 0;
if ($1 >>> 0 < $2 >>> 0) _abort();
$5 = HEAP32[$mem + -4 >> 2] | 0;
$6 = $5 & 3;
if (($6 | 0) == 1) _abort();
$8 = $5 & -8;
$9 = $mem + ($8 + -8) | 0;
do if (!($5 & 1)) {
$12 = HEAP32[$1 >> 2] | 0;
if (!$6) return;
$$sum2 = -8 - $12 | 0;
$14 = $mem + $$sum2 | 0;
$15 = $12 + $8 | 0;
if ($14 >>> 0 < $2 >>> 0) _abort();
if (($14 | 0) == (HEAP32[761] | 0)) {
$103 = $mem + ($8 + -4) | 0;
$104 = HEAP32[$103 >> 2] | 0;
if (($104 & 3 | 0) != 3) {
$p$0 = $14;
$psize$0 = $15;
break;
}
HEAP32[758] = $15;
HEAP32[$103 >> 2] = $104 & -2;
HEAP32[$mem + ($$sum2 + 4) >> 2] = $15 | 1;
HEAP32[$9 >> 2] = $15;
return;
}
$19 = $12 >>> 3;
if ($12 >>> 0 < 256) {
$22 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0;
$24 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0;
$26 = 3064 + ($19 << 1 << 2) | 0;
if (($22 | 0) != ($26 | 0)) {
if ($22 >>> 0 < $2 >>> 0) _abort();
if ((HEAP32[$22 + 12 >> 2] | 0) != ($14 | 0)) _abort();
}
if (($24 | 0) == ($22 | 0)) {
HEAP32[756] = HEAP32[756] & ~(1 << $19);
$p$0 = $14;
$psize$0 = $15;
break;
}
if (($24 | 0) == ($26 | 0)) $$pre$phi61Z2D = $24 + 8 | 0; else {
if ($24 >>> 0 < $2 >>> 0) _abort();
$39 = $24 + 8 | 0;
if ((HEAP32[$39 >> 2] | 0) == ($14 | 0)) $$pre$phi61Z2D = $39; else _abort();
}
HEAP32[$22 + 12 >> 2] = $24;
HEAP32[$$pre$phi61Z2D >> 2] = $22;
$p$0 = $14;
$psize$0 = $15;
break;
}
$44 = HEAP32[$mem + ($$sum2 + 24) >> 2] | 0;
$46 = HEAP32[$mem + ($$sum2 + 12) >> 2] | 0;
do if (($46 | 0) == ($14 | 0)) {
$57 = $mem + ($$sum2 + 20) | 0;
$58 = HEAP32[$57 >> 2] | 0;
if (!$58) {
$60 = $mem + ($$sum2 + 16) | 0;
$61 = HEAP32[$60 >> 2] | 0;
if (!$61) {
$R$1 = 0;
break;
} else {
$R$0 = $61;
$RP$0 = $60;
}
} else {
$R$0 = $58;
$RP$0 = $57;
}
while (1) {
$63 = $R$0 + 20 | 0;
$64 = HEAP32[$63 >> 2] | 0;
if ($64) {
$R$0 = $64;
$RP$0 = $63;
continue;
}
$66 = $R$0 + 16 | 0;
$67 = HEAP32[$66 >> 2] | 0;
if (!$67) {
$R$0$lcssa = $R$0;
$RP$0$lcssa = $RP$0;
break;
} else {
$R$0 = $67;
$RP$0 = $66;
}
}
if ($RP$0$lcssa >>> 0 < $2 >>> 0) _abort(); else {
HEAP32[$RP$0$lcssa >> 2] = 0;
$R$1 = $R$0$lcssa;
break;
}
} else {
$49 = HEAP32[$mem + ($$sum2 + 8) >> 2] | 0;
if ($49 >>> 0 < $2 >>> 0) _abort();
$51 = $49 + 12 | 0;
if ((HEAP32[$51 >> 2] | 0) != ($14 | 0)) _abort();
$54 = $46 + 8 | 0;
if ((HEAP32[$54 >> 2] | 0) == ($14 | 0)) {
HEAP32[$51 >> 2] = $46;
HEAP32[$54 >> 2] = $49;
$R$1 = $46;
break;
} else _abort();
} while (0);
if (!$44) {
$p$0 = $14;
$psize$0 = $15;
} else {
$72 = HEAP32[$mem + ($$sum2 + 28) >> 2] | 0;
$73 = 3328 + ($72 << 2) | 0;
if (($14 | 0) == (HEAP32[$73 >> 2] | 0)) {
HEAP32[$73 >> 2] = $R$1;
if (!$R$1) {
HEAP32[757] = HEAP32[757] & ~(1 << $72);
$p$0 = $14;
$psize$0 = $15;
break;
}
} else {
if ($44 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$82 = $44 + 16 | 0;
if ((HEAP32[$82 >> 2] | 0) == ($14 | 0)) HEAP32[$82 >> 2] = $R$1; else HEAP32[$44 + 20 >> 2] = $R$1;
if (!$R$1) {
$p$0 = $14;
$psize$0 = $15;
break;
}
}
$87 = HEAP32[760] | 0;
if ($R$1 >>> 0 < $87 >>> 0) _abort();
HEAP32[$R$1 + 24 >> 2] = $44;
$91 = HEAP32[$mem + ($$sum2 + 16) >> 2] | 0;
do if ($91) if ($91 >>> 0 < $87 >>> 0) _abort(); else {
HEAP32[$R$1 + 16 >> 2] = $91;
HEAP32[$91 + 24 >> 2] = $R$1;
break;
} while (0);
$97 = HEAP32[$mem + ($$sum2 + 20) >> 2] | 0;
if (!$97) {
$p$0 = $14;
$psize$0 = $15;
} else if ($97 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R$1 + 20 >> 2] = $97;
HEAP32[$97 + 24 >> 2] = $R$1;
$p$0 = $14;
$psize$0 = $15;
break;
}
}
} else {
$p$0 = $1;
$psize$0 = $8;
} while (0);
if ($p$0 >>> 0 >= $9 >>> 0) _abort();
$111 = $mem + ($8 + -4) | 0;
$112 = HEAP32[$111 >> 2] | 0;
if (!($112 & 1)) _abort();
if (!($112 & 2)) {
if (($9 | 0) == (HEAP32[762] | 0)) {
$120 = (HEAP32[759] | 0) + $psize$0 | 0;
HEAP32[759] = $120;
HEAP32[762] = $p$0;
HEAP32[$p$0 + 4 >> 2] = $120 | 1;
if (($p$0 | 0) != (HEAP32[761] | 0)) return;
HEAP32[761] = 0;
HEAP32[758] = 0;
return;
}
if (($9 | 0) == (HEAP32[761] | 0)) {
$128 = (HEAP32[758] | 0) + $psize$0 | 0;
HEAP32[758] = $128;
HEAP32[761] = $p$0;
HEAP32[$p$0 + 4 >> 2] = $128 | 1;
HEAP32[$p$0 + $128 >> 2] = $128;
return;
}
$133 = ($112 & -8) + $psize$0 | 0;
$134 = $112 >>> 3;
do if ($112 >>> 0 < 256) {
$137 = HEAP32[$mem + $8 >> 2] | 0;
$139 = HEAP32[$mem + ($8 | 4) >> 2] | 0;
$141 = 3064 + ($134 << 1 << 2) | 0;
if (($137 | 0) != ($141 | 0)) {
if ($137 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
if ((HEAP32[$137 + 12 >> 2] | 0) != ($9 | 0)) _abort();
}
if (($139 | 0) == ($137 | 0)) {
HEAP32[756] = HEAP32[756] & ~(1 << $134);
break;
}
if (($139 | 0) == ($141 | 0)) $$pre$phi59Z2D = $139 + 8 | 0; else {
if ($139 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$156 = $139 + 8 | 0;
if ((HEAP32[$156 >> 2] | 0) == ($9 | 0)) $$pre$phi59Z2D = $156; else _abort();
}
HEAP32[$137 + 12 >> 2] = $139;
HEAP32[$$pre$phi59Z2D >> 2] = $137;
} else {
$161 = HEAP32[$mem + ($8 + 16) >> 2] | 0;
$163 = HEAP32[$mem + ($8 | 4) >> 2] | 0;
do if (($163 | 0) == ($9 | 0)) {
$175 = $mem + ($8 + 12) | 0;
$176 = HEAP32[$175 >> 2] | 0;
if (!$176) {
$178 = $mem + ($8 + 8) | 0;
$179 = HEAP32[$178 >> 2] | 0;
if (!$179) {
$R7$1 = 0;
break;
} else {
$R7$0 = $179;
$RP9$0 = $178;
}
} else {
$R7$0 = $176;
$RP9$0 = $175;
}
while (1) {
$181 = $R7$0 + 20 | 0;
$182 = HEAP32[$181 >> 2] | 0;
if ($182) {
$R7$0 = $182;
$RP9$0 = $181;
continue;
}
$184 = $R7$0 + 16 | 0;
$185 = HEAP32[$184 >> 2] | 0;
if (!$185) {
$R7$0$lcssa = $R7$0;
$RP9$0$lcssa = $RP9$0;
break;
} else {
$R7$0 = $185;
$RP9$0 = $184;
}
}
if ($RP9$0$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$RP9$0$lcssa >> 2] = 0;
$R7$1 = $R7$0$lcssa;
break;
}
} else {
$166 = HEAP32[$mem + $8 >> 2] | 0;
if ($166 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$169 = $166 + 12 | 0;
if ((HEAP32[$169 >> 2] | 0) != ($9 | 0)) _abort();
$172 = $163 + 8 | 0;
if ((HEAP32[$172 >> 2] | 0) == ($9 | 0)) {
HEAP32[$169 >> 2] = $163;
HEAP32[$172 >> 2] = $166;
$R7$1 = $163;
break;
} else _abort();
} while (0);
if ($161) {
$191 = HEAP32[$mem + ($8 + 20) >> 2] | 0;
$192 = 3328 + ($191 << 2) | 0;
if (($9 | 0) == (HEAP32[$192 >> 2] | 0)) {
HEAP32[$192 >> 2] = $R7$1;
if (!$R7$1) {
HEAP32[757] = HEAP32[757] & ~(1 << $191);
break;
}
} else {
if ($161 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$201 = $161 + 16 | 0;
if ((HEAP32[$201 >> 2] | 0) == ($9 | 0)) HEAP32[$201 >> 2] = $R7$1; else HEAP32[$161 + 20 >> 2] = $R7$1;
if (!$R7$1) break;
}
$206 = HEAP32[760] | 0;
if ($R7$1 >>> 0 < $206 >>> 0) _abort();
HEAP32[$R7$1 + 24 >> 2] = $161;
$210 = HEAP32[$mem + ($8 + 8) >> 2] | 0;
do if ($210) if ($210 >>> 0 < $206 >>> 0) _abort(); else {
HEAP32[$R7$1 + 16 >> 2] = $210;
HEAP32[$210 + 24 >> 2] = $R7$1;
break;
} while (0);
$216 = HEAP32[$mem + ($8 + 12) >> 2] | 0;
if ($216) if ($216 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R7$1 + 20 >> 2] = $216;
HEAP32[$216 + 24 >> 2] = $R7$1;
break;
}
}
} while (0);
HEAP32[$p$0 + 4 >> 2] = $133 | 1;
HEAP32[$p$0 + $133 >> 2] = $133;
if (($p$0 | 0) == (HEAP32[761] | 0)) {
HEAP32[758] = $133;
return;
} else $psize$1 = $133;
} else {
HEAP32[$111 >> 2] = $112 & -2;
HEAP32[$p$0 + 4 >> 2] = $psize$0 | 1;
HEAP32[$p$0 + $psize$0 >> 2] = $psize$0;
$psize$1 = $psize$0;
}
$231 = $psize$1 >>> 3;
if ($psize$1 >>> 0 < 256) {
$233 = $231 << 1;
$234 = 3064 + ($233 << 2) | 0;
$235 = HEAP32[756] | 0;
$236 = 1 << $231;
if (!($235 & $236)) {
HEAP32[756] = $235 | $236;
$$pre$phiZ2D = 3064 + ($233 + 2 << 2) | 0;
$F16$0 = $234;
} else {
$240 = 3064 + ($233 + 2 << 2) | 0;
$241 = HEAP32[$240 >> 2] | 0;
if ($241 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
$$pre$phiZ2D = $240;
$F16$0 = $241;
}
}
HEAP32[$$pre$phiZ2D >> 2] = $p$0;
HEAP32[$F16$0 + 12 >> 2] = $p$0;
HEAP32[$p$0 + 8 >> 2] = $F16$0;
HEAP32[$p$0 + 12 >> 2] = $234;
return;
}
$247 = $psize$1 >>> 8;
if (!$247) $I18$0 = 0; else if ($psize$1 >>> 0 > 16777215) $I18$0 = 31; else {
$252 = ($247 + 1048320 | 0) >>> 16 & 8;
$253 = $247 << $252;
$256 = ($253 + 520192 | 0) >>> 16 & 4;
$258 = $253 << $256;
$261 = ($258 + 245760 | 0) >>> 16 & 2;
$266 = 14 - ($256 | $252 | $261) + ($258 << $261 >>> 15) | 0;
$I18$0 = $psize$1 >>> ($266 + 7 | 0) & 1 | $266 << 1;
}
$272 = 3328 + ($I18$0 << 2) | 0;
HEAP32[$p$0 + 28 >> 2] = $I18$0;
HEAP32[$p$0 + 20 >> 2] = 0;
HEAP32[$p$0 + 16 >> 2] = 0;
$276 = HEAP32[757] | 0;
$277 = 1 << $I18$0;
L199 : do if (!($276 & $277)) {
HEAP32[757] = $276 | $277;
HEAP32[$272 >> 2] = $p$0;
HEAP32[$p$0 + 24 >> 2] = $272;
HEAP32[$p$0 + 12 >> 2] = $p$0;
HEAP32[$p$0 + 8 >> 2] = $p$0;
} else {
$284 = HEAP32[$272 >> 2] | 0;
L202 : do if ((HEAP32[$284 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) $T$0$lcssa = $284; else {
$K19$052 = $psize$1 << (($I18$0 | 0) == 31 ? 0 : 25 - ($I18$0 >>> 1) | 0);
$T$051 = $284;
while (1) {
$301 = $T$051 + 16 + ($K19$052 >>> 31 << 2) | 0;
$296 = HEAP32[$301 >> 2] | 0;
if (!$296) {
$$lcssa = $301;
$T$051$lcssa = $T$051;
break;
}
if ((HEAP32[$296 + 4 >> 2] & -8 | 0) == ($psize$1 | 0)) {
$T$0$lcssa = $296;
break L202;
} else {
$K19$052 = $K19$052 << 1;
$T$051 = $296;
}
}
if ($$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$$lcssa >> 2] = $p$0;
HEAP32[$p$0 + 24 >> 2] = $T$051$lcssa;
HEAP32[$p$0 + 12 >> 2] = $p$0;
HEAP32[$p$0 + 8 >> 2] = $p$0;
break L199;
}
} while (0);
$308 = $T$0$lcssa + 8 | 0;
$309 = HEAP32[$308 >> 2] | 0;
$310 = HEAP32[760] | 0;
if ($309 >>> 0 >= $310 >>> 0 & $T$0$lcssa >>> 0 >= $310 >>> 0) {
HEAP32[$309 + 12 >> 2] = $p$0;
HEAP32[$308 >> 2] = $p$0;
HEAP32[$p$0 + 8 >> 2] = $309;
HEAP32[$p$0 + 12 >> 2] = $T$0$lcssa;
HEAP32[$p$0 + 24 >> 2] = 0;
break;
} else _abort();
} while (0);
$318 = (HEAP32[764] | 0) + -1 | 0;
HEAP32[764] = $318;
if (!$318) $sp$0$in$i = 3480; else return;
while (1) {
$sp$0$i = HEAP32[$sp$0$in$i >> 2] | 0;
if (!$sp$0$i) break; else $sp$0$in$i = $sp$0$i + 8 | 0;
}
HEAP32[764] = -1;
return;
}
function ___intscan($f, $base, $pok, $0, $1) {
$f = $f | 0;
$base = $base | 0;
$pok = $pok | 0;
$0 = $0 | 0;
$1 = $1 | 0;
var $$1 = 0, $$122 = 0, $$123 = 0, $$base21 = 0, $$lcssa = 0, $$lcssa130 = 0, $$lcssa131 = 0, $$lcssa132 = 0, $$lcssa133 = 0, $$lcssa134 = 0, $$lcssa135 = 0, $100 = 0, $101 = 0, $108 = 0, $120 = 0, $121 = 0, $128 = 0, $13 = 0, $130 = 0, $131 = 0, $134 = 0, $135 = 0, $136 = 0, $144 = 0, $149 = 0, $150 = 0, $152 = 0, $155 = 0, $157 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $166 = 0, $167 = 0, $168 = 0, $17 = 0, $18 = 0, $185 = 0, $186 = 0, $187 = 0, $195 = 0, $201 = 0, $203 = 0, $204 = 0, $206 = 0, $208 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $222 = 0, $223 = 0, $224 = 0, $239 = 0, $25 = 0, $250 = 0, $260 = 0, $262 = 0, $271 = 0, $272 = 0, $279 = 0, $281 = 0, $284 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $3 = 0, $37 = 0, $39 = 0, $4 = 0, $46 = 0, $5 = 0, $51 = 0, $6 = 0, $65 = 0, $67 = 0, $70 = 0, $71 = 0, $72 = 0, $83 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $90 = 0, $91 = 0, $93 = 0, $99 = 0, $c$0 = 0, $c$1 = 0, $c$124 = 0, $c$2$be = 0, $c$2$be$lcssa = 0, $c$2$lcssa = 0, $c$3$be = 0, $c$3$lcssa = 0, $c$371 = 0, $c$4$be = 0, $c$4$be$lcssa = 0, $c$4$lcssa = 0, $c$5$be = 0, $c$6$be = 0, $c$6$be$lcssa = 0, $c$6$lcssa = 0, $c$7$be = 0, $c$753 = 0, $c$8 = 0, $c$9$be = 0, $neg$0 = 0, $neg$1 = 0, $x$082 = 0, $x$146 = 0, $x$266 = 0, label = 0;
L1 : do if ($base >>> 0 > 36) {
$5 = ___errno_location() | 0;
HEAP32[$5 >> 2] = 22;
$286 = 0;
$287 = 0;
} else {
$3 = $f + 4 | 0;
$4 = $f + 100 | 0;
do {
$6 = HEAP32[$3 >> 2] | 0;
if ($6 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $6 + 1;
$13 = HEAPU8[$6 >> 0] | 0;
} else $13 = ___shgetc($f) | 0;
} while ((_isspace($13) | 0) != 0);
$$lcssa135 = $13;
L11 : do switch ($$lcssa135 | 0) {
case 43:
case 45:
{
$17 = (($$lcssa135 | 0) == 45) << 31 >> 31;
$18 = HEAP32[$3 >> 2] | 0;
if ($18 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $18 + 1;
$c$0 = HEAPU8[$18 >> 0] | 0;
$neg$0 = $17;
break L11;
} else {
$c$0 = ___shgetc($f) | 0;
$neg$0 = $17;
break L11;
}
break;
}
default:
{
$c$0 = $$lcssa135;
$neg$0 = 0;
}
} while (0);
$25 = ($base | 0) == 0;
do if (($base & -17 | 0) == 0 & ($c$0 | 0) == 48) {
$29 = HEAP32[$3 >> 2] | 0;
if ($29 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $29 + 1;
$37 = HEAPU8[$29 >> 0] | 0;
} else $37 = ___shgetc($f) | 0;
if (($37 | 32 | 0) != 120) if ($25) {
$$123 = 8;
$c$124 = $37;
label = 46;
break;
} else {
$$1 = $base;
$c$1 = $37;
label = 32;
break;
}
$39 = HEAP32[$3 >> 2] | 0;
if ($39 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $39 + 1;
$46 = HEAPU8[$39 >> 0] | 0;
} else $46 = ___shgetc($f) | 0;
if ((HEAPU8[16493 + ($46 + 1) >> 0] | 0) > 15) {
$51 = (HEAP32[$4 >> 2] | 0) == 0;
if (!$51) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
if (!$pok) {
___shlim($f, 0);
$286 = 0;
$287 = 0;
break L1;
}
if ($51) {
$286 = 0;
$287 = 0;
break L1;
}
HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
$286 = 0;
$287 = 0;
break L1;
} else {
$$123 = 16;
$c$124 = $46;
label = 46;
}
} else {
$$base21 = $25 ? 10 : $base;
if ((HEAPU8[16493 + ($c$0 + 1) >> 0] | 0) >>> 0 < $$base21 >>> 0) {
$$1 = $$base21;
$c$1 = $c$0;
label = 32;
} else {
if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
___shlim($f, 0);
$65 = ___errno_location() | 0;
HEAP32[$65 >> 2] = 22;
$286 = 0;
$287 = 0;
break L1;
}
} while (0);
if ((label | 0) == 32) if (($$1 | 0) == 10) {
$67 = $c$1 + -48 | 0;
if ($67 >>> 0 < 10) {
$71 = $67;
$x$082 = 0;
while (1) {
$70 = ($x$082 * 10 | 0) + $71 | 0;
$72 = HEAP32[$3 >> 2] | 0;
if ($72 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $72 + 1;
$c$2$be = HEAPU8[$72 >> 0] | 0;
} else $c$2$be = ___shgetc($f) | 0;
$71 = $c$2$be + -48 | 0;
if (!($71 >>> 0 < 10 & $70 >>> 0 < 429496729)) {
$$lcssa134 = $70;
$c$2$be$lcssa = $c$2$be;
break;
} else $x$082 = $70;
}
$288 = $$lcssa134;
$289 = 0;
$c$2$lcssa = $c$2$be$lcssa;
} else {
$288 = 0;
$289 = 0;
$c$2$lcssa = $c$1;
}
$83 = $c$2$lcssa + -48 | 0;
if ($83 >>> 0 < 10) {
$85 = $288;
$86 = $289;
$90 = $83;
$c$371 = $c$2$lcssa;
while (1) {
$87 = ___muldi3($85 | 0, $86 | 0, 10, 0) | 0;
$88 = tempRet0;
$91 = (($90 | 0) < 0) << 31 >> 31;
$93 = ~$91;
if ($88 >>> 0 > $93 >>> 0 | ($88 | 0) == ($93 | 0) & $87 >>> 0 > ~$90 >>> 0) {
$$lcssa = $90;
$290 = $85;
$291 = $86;
$c$3$lcssa = $c$371;
break;
}
$99 = _i64Add($87 | 0, $88 | 0, $90 | 0, $91 | 0) | 0;
$100 = tempRet0;
$101 = HEAP32[$3 >> 2] | 0;
if ($101 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $101 + 1;
$c$3$be = HEAPU8[$101 >> 0] | 0;
} else $c$3$be = ___shgetc($f) | 0;
$108 = $c$3$be + -48 | 0;
if ($108 >>> 0 < 10 & ($100 >>> 0 < 429496729 | ($100 | 0) == 429496729 & $99 >>> 0 < 2576980378)) {
$85 = $99;
$86 = $100;
$90 = $108;
$c$371 = $c$3$be;
} else {
$$lcssa = $108;
$290 = $99;
$291 = $100;
$c$3$lcssa = $c$3$be;
break;
}
}
if ($$lcssa >>> 0 > 9) {
$260 = $291;
$262 = $290;
$neg$1 = $neg$0;
} else {
$$122 = 10;
$292 = $290;
$293 = $291;
$c$8 = $c$3$lcssa;
label = 72;
}
} else {
$260 = $289;
$262 = $288;
$neg$1 = $neg$0;
}
} else {
$$123 = $$1;
$c$124 = $c$1;
label = 46;
}
L63 : do if ((label | 0) == 46) {
if (!($$123 + -1 & $$123)) {
$128 = HEAP8[16750 + (($$123 * 23 | 0) >>> 5 & 7) >> 0] | 0;
$130 = HEAP8[16493 + ($c$124 + 1) >> 0] | 0;
$131 = $130 & 255;
if ($131 >>> 0 < $$123 >>> 0) {
$135 = $131;
$x$146 = 0;
while (1) {
$134 = $135 | $x$146 << $128;
$136 = HEAP32[$3 >> 2] | 0;
if ($136 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $136 + 1;
$c$4$be = HEAPU8[$136 >> 0] | 0;
} else $c$4$be = ___shgetc($f) | 0;
$144 = HEAP8[16493 + ($c$4$be + 1) >> 0] | 0;
$135 = $144 & 255;
if (!($134 >>> 0 < 134217728 & $135 >>> 0 < $$123 >>> 0)) {
$$lcssa130 = $134;
$$lcssa131 = $144;
$c$4$be$lcssa = $c$4$be;
break;
} else $x$146 = $134;
}
$152 = $$lcssa131;
$155 = 0;
$157 = $$lcssa130;
$c$4$lcssa = $c$4$be$lcssa;
} else {
$152 = $130;
$155 = 0;
$157 = 0;
$c$4$lcssa = $c$124;
}
$149 = _bitshift64Lshr(-1, -1, $128 | 0) | 0;
$150 = tempRet0;
if (($152 & 255) >>> 0 >= $$123 >>> 0 | ($155 >>> 0 > $150 >>> 0 | ($155 | 0) == ($150 | 0) & $157 >>> 0 > $149 >>> 0)) {
$$122 = $$123;
$292 = $157;
$293 = $155;
$c$8 = $c$4$lcssa;
label = 72;
break;
} else {
$161 = $157;
$162 = $155;
$166 = $152;
}
while (1) {
$163 = _bitshift64Shl($161 | 0, $162 | 0, $128 | 0) | 0;
$164 = tempRet0;
$167 = $166 & 255 | $163;
$168 = HEAP32[$3 >> 2] | 0;
if ($168 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $168 + 1;
$c$5$be = HEAPU8[$168 >> 0] | 0;
} else $c$5$be = ___shgetc($f) | 0;
$166 = HEAP8[16493 + ($c$5$be + 1) >> 0] | 0;
if (($166 & 255) >>> 0 >= $$123 >>> 0 | ($164 >>> 0 > $150 >>> 0 | ($164 | 0) == ($150 | 0) & $167 >>> 0 > $149 >>> 0)) {
$$122 = $$123;
$292 = $167;
$293 = $164;
$c$8 = $c$5$be;
label = 72;
break L63;
} else {
$161 = $167;
$162 = $164;
}
}
}
$120 = HEAP8[16493 + ($c$124 + 1) >> 0] | 0;
$121 = $120 & 255;
if ($121 >>> 0 < $$123 >>> 0) {
$186 = $121;
$x$266 = 0;
while (1) {
$185 = $186 + (Math_imul($x$266, $$123) | 0) | 0;
$187 = HEAP32[$3 >> 2] | 0;
if ($187 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $187 + 1;
$c$6$be = HEAPU8[$187 >> 0] | 0;
} else $c$6$be = ___shgetc($f) | 0;
$195 = HEAP8[16493 + ($c$6$be + 1) >> 0] | 0;
$186 = $195 & 255;
if (!($185 >>> 0 < 119304647 & $186 >>> 0 < $$123 >>> 0)) {
$$lcssa132 = $185;
$$lcssa133 = $195;
$c$6$be$lcssa = $c$6$be;
break;
} else $x$266 = $185;
}
$201 = $$lcssa133;
$294 = $$lcssa132;
$295 = 0;
$c$6$lcssa = $c$6$be$lcssa;
} else {
$201 = $120;
$294 = 0;
$295 = 0;
$c$6$lcssa = $c$124;
}
if (($201 & 255) >>> 0 < $$123 >>> 0) {
$203 = ___udivdi3(-1, -1, $$123 | 0, 0) | 0;
$204 = tempRet0;
$206 = $295;
$208 = $294;
$215 = $201;
$c$753 = $c$6$lcssa;
while (1) {
if ($206 >>> 0 > $204 >>> 0 | ($206 | 0) == ($204 | 0) & $208 >>> 0 > $203 >>> 0) {
$$122 = $$123;
$292 = $208;
$293 = $206;
$c$8 = $c$753;
label = 72;
break L63;
}
$212 = ___muldi3($208 | 0, $206 | 0, $$123 | 0, 0) | 0;
$213 = tempRet0;
$214 = $215 & 255;
if ($213 >>> 0 > 4294967295 | ($213 | 0) == -1 & $212 >>> 0 > ~$214 >>> 0) {
$$122 = $$123;
$292 = $208;
$293 = $206;
$c$8 = $c$753;
label = 72;
break L63;
}
$222 = _i64Add($214 | 0, 0, $212 | 0, $213 | 0) | 0;
$223 = tempRet0;
$224 = HEAP32[$3 >> 2] | 0;
if ($224 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $224 + 1;
$c$7$be = HEAPU8[$224 >> 0] | 0;
} else $c$7$be = ___shgetc($f) | 0;
$215 = HEAP8[16493 + ($c$7$be + 1) >> 0] | 0;
if (($215 & 255) >>> 0 >= $$123 >>> 0) {
$$122 = $$123;
$292 = $222;
$293 = $223;
$c$8 = $c$7$be;
label = 72;
break;
} else {
$206 = $223;
$208 = $222;
$c$753 = $c$7$be;
}
}
} else {
$$122 = $$123;
$292 = $294;
$293 = $295;
$c$8 = $c$6$lcssa;
label = 72;
}
} while (0);
if ((label | 0) == 72) if ((HEAPU8[16493 + ($c$8 + 1) >> 0] | 0) >>> 0 < $$122 >>> 0) {
do {
$239 = HEAP32[$3 >> 2] | 0;
if ($239 >>> 0 < (HEAP32[$4 >> 2] | 0) >>> 0) {
HEAP32[$3 >> 2] = $239 + 1;
$c$9$be = HEAPU8[$239 >> 0] | 0;
} else $c$9$be = ___shgetc($f) | 0;
} while ((HEAPU8[16493 + ($c$9$be + 1) >> 0] | 0) >>> 0 < $$122 >>> 0);
$250 = ___errno_location() | 0;
HEAP32[$250 >> 2] = 34;
$260 = $1;
$262 = $0;
$neg$1 = ($0 & 1 | 0) == 0 & 0 == 0 ? $neg$0 : 0;
} else {
$260 = $293;
$262 = $292;
$neg$1 = $neg$0;
}
if (HEAP32[$4 >> 2] | 0) HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -1;
if (!($260 >>> 0 < $1 >>> 0 | ($260 | 0) == ($1 | 0) & $262 >>> 0 < $0 >>> 0)) {
if (!(($0 & 1 | 0) != 0 | 0 != 0 | ($neg$1 | 0) != 0)) {
$271 = ___errno_location() | 0;
HEAP32[$271 >> 2] = 34;
$272 = _i64Add($0 | 0, $1 | 0, -1, -1) | 0;
$286 = tempRet0;
$287 = $272;
break;
}
if ($260 >>> 0 > $1 >>> 0 | ($260 | 0) == ($1 | 0) & $262 >>> 0 > $0 >>> 0) {
$279 = ___errno_location() | 0;
HEAP32[$279 >> 2] = 34;
$286 = $1;
$287 = $0;
break;
}
}
$281 = (($neg$1 | 0) < 0) << 31 >> 31;
$284 = _i64Subtract($262 ^ $neg$1 | 0, $260 ^ $281 | 0, $neg$1 | 0, $281 | 0) | 0;
$286 = tempRet0;
$287 = $284;
} while (0);
tempRet0 = $286;
return $287 | 0;
}
function _dispose_chunk($p, $psize) {
$p = $p | 0;
$psize = $psize | 0;
var $$0 = 0, $$02 = 0, $$1 = 0, $$lcssa = 0, $$pre$phi50Z2D = 0, $$pre$phi52Z2D = 0, $$pre$phiZ2D = 0, $$sum18 = 0, $$sum21 = 0, $0 = 0, $10 = 0, $100 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0, $115 = 0, $123 = 0, $128 = 0, $129 = 0, $132 = 0, $134 = 0, $136 = 0, $149 = 0, $15 = 0, $154 = 0, $156 = 0, $159 = 0, $161 = 0, $164 = 0, $167 = 0, $168 = 0, $170 = 0, $171 = 0, $173 = 0, $174 = 0, $176 = 0, $177 = 0, $18 = 0, $182 = 0, $183 = 0, $192 = 0, $197 = 0, $2 = 0, $20 = 0, $201 = 0, $207 = 0, $22 = 0, $222 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $231 = 0, $232 = 0, $238 = 0, $243 = 0, $244 = 0, $247 = 0, $249 = 0, $252 = 0, $257 = 0, $263 = 0, $267 = 0, $268 = 0, $275 = 0, $287 = 0, $292 = 0, $299 = 0, $300 = 0, $301 = 0, $35 = 0, $40 = 0, $42 = 0, $45 = 0, $47 = 0, $5 = 0, $50 = 0, $53 = 0, $54 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $62 = 0, $63 = 0, $68 = 0, $69 = 0, $78 = 0, $83 = 0, $87 = 0, $9 = 0, $93 = 0, $99 = 0, $F16$0 = 0, $I19$0 = 0, $K20$043 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$042 = 0, $T$042$lcssa = 0;
$0 = $p + $psize | 0;
$2 = HEAP32[$p + 4 >> 2] | 0;
do if (!($2 & 1)) {
$5 = HEAP32[$p >> 2] | 0;
if (!($2 & 3)) return;
$9 = $p + (0 - $5) | 0;
$10 = $5 + $psize | 0;
$11 = HEAP32[760] | 0;
if ($9 >>> 0 < $11 >>> 0) _abort();
if (($9 | 0) == (HEAP32[761] | 0)) {
$99 = $p + ($psize + 4) | 0;
$100 = HEAP32[$99 >> 2] | 0;
if (($100 & 3 | 0) != 3) {
$$0 = $9;
$$02 = $10;
break;
}
HEAP32[758] = $10;
HEAP32[$99 >> 2] = $100 & -2;
HEAP32[$p + (4 - $5) >> 2] = $10 | 1;
HEAP32[$0 >> 2] = $10;
return;
}
$15 = $5 >>> 3;
if ($5 >>> 0 < 256) {
$18 = HEAP32[$p + (8 - $5) >> 2] | 0;
$20 = HEAP32[$p + (12 - $5) >> 2] | 0;
$22 = 3064 + ($15 << 1 << 2) | 0;
if (($18 | 0) != ($22 | 0)) {
if ($18 >>> 0 < $11 >>> 0) _abort();
if ((HEAP32[$18 + 12 >> 2] | 0) != ($9 | 0)) _abort();
}
if (($20 | 0) == ($18 | 0)) {
HEAP32[756] = HEAP32[756] & ~(1 << $15);
$$0 = $9;
$$02 = $10;
break;
}
if (($20 | 0) == ($22 | 0)) $$pre$phi52Z2D = $20 + 8 | 0; else {
if ($20 >>> 0 < $11 >>> 0) _abort();
$35 = $20 + 8 | 0;
if ((HEAP32[$35 >> 2] | 0) == ($9 | 0)) $$pre$phi52Z2D = $35; else _abort();
}
HEAP32[$18 + 12 >> 2] = $20;
HEAP32[$$pre$phi52Z2D >> 2] = $18;
$$0 = $9;
$$02 = $10;
break;
}
$40 = HEAP32[$p + (24 - $5) >> 2] | 0;
$42 = HEAP32[$p + (12 - $5) >> 2] | 0;
do if (($42 | 0) == ($9 | 0)) {
$$sum18 = 16 - $5 | 0;
$53 = $p + ($$sum18 + 4) | 0;
$54 = HEAP32[$53 >> 2] | 0;
if (!$54) {
$56 = $p + $$sum18 | 0;
$57 = HEAP32[$56 >> 2] | 0;
if (!$57) {
$R$1 = 0;
break;
} else {
$R$0 = $57;
$RP$0 = $56;
}
} else {
$R$0 = $54;
$RP$0 = $53;
}
while (1) {
$59 = $R$0 + 20 | 0;
$60 = HEAP32[$59 >> 2] | 0;
if ($60) {
$R$0 = $60;
$RP$0 = $59;
continue;
}
$62 = $R$0 + 16 | 0;
$63 = HEAP32[$62 >> 2] | 0;
if (!$63) {
$R$0$lcssa = $R$0;
$RP$0$lcssa = $RP$0;
break;
} else {
$R$0 = $63;
$RP$0 = $62;
}
}
if ($RP$0$lcssa >>> 0 < $11 >>> 0) _abort(); else {
HEAP32[$RP$0$lcssa >> 2] = 0;
$R$1 = $R$0$lcssa;
break;
}
} else {
$45 = HEAP32[$p + (8 - $5) >> 2] | 0;
if ($45 >>> 0 < $11 >>> 0) _abort();
$47 = $45 + 12 | 0;
if ((HEAP32[$47 >> 2] | 0) != ($9 | 0)) _abort();
$50 = $42 + 8 | 0;
if ((HEAP32[$50 >> 2] | 0) == ($9 | 0)) {
HEAP32[$47 >> 2] = $42;
HEAP32[$50 >> 2] = $45;
$R$1 = $42;
break;
} else _abort();
} while (0);
if (!$40) {
$$0 = $9;
$$02 = $10;
} else {
$68 = HEAP32[$p + (28 - $5) >> 2] | 0;
$69 = 3328 + ($68 << 2) | 0;
if (($9 | 0) == (HEAP32[$69 >> 2] | 0)) {
HEAP32[$69 >> 2] = $R$1;
if (!$R$1) {
HEAP32[757] = HEAP32[757] & ~(1 << $68);
$$0 = $9;
$$02 = $10;
break;
}
} else {
if ($40 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$78 = $40 + 16 | 0;
if ((HEAP32[$78 >> 2] | 0) == ($9 | 0)) HEAP32[$78 >> 2] = $R$1; else HEAP32[$40 + 20 >> 2] = $R$1;
if (!$R$1) {
$$0 = $9;
$$02 = $10;
break;
}
}
$83 = HEAP32[760] | 0;
if ($R$1 >>> 0 < $83 >>> 0) _abort();
HEAP32[$R$1 + 24 >> 2] = $40;
$$sum21 = 16 - $5 | 0;
$87 = HEAP32[$p + $$sum21 >> 2] | 0;
do if ($87) if ($87 >>> 0 < $83 >>> 0) _abort(); else {
HEAP32[$R$1 + 16 >> 2] = $87;
HEAP32[$87 + 24 >> 2] = $R$1;
break;
} while (0);
$93 = HEAP32[$p + ($$sum21 + 4) >> 2] | 0;
if (!$93) {
$$0 = $9;
$$02 = $10;
} else if ($93 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R$1 + 20 >> 2] = $93;
HEAP32[$93 + 24 >> 2] = $R$1;
$$0 = $9;
$$02 = $10;
break;
}
}
} else {
$$0 = $p;
$$02 = $psize;
} while (0);
$106 = HEAP32[760] | 0;
if ($0 >>> 0 < $106 >>> 0) _abort();
$108 = $p + ($psize + 4) | 0;
$109 = HEAP32[$108 >> 2] | 0;
if (!($109 & 2)) {
if (($0 | 0) == (HEAP32[762] | 0)) {
$115 = (HEAP32[759] | 0) + $$02 | 0;
HEAP32[759] = $115;
HEAP32[762] = $$0;
HEAP32[$$0 + 4 >> 2] = $115 | 1;
if (($$0 | 0) != (HEAP32[761] | 0)) return;
HEAP32[761] = 0;
HEAP32[758] = 0;
return;
}
if (($0 | 0) == (HEAP32[761] | 0)) {
$123 = (HEAP32[758] | 0) + $$02 | 0;
HEAP32[758] = $123;
HEAP32[761] = $$0;
HEAP32[$$0 + 4 >> 2] = $123 | 1;
HEAP32[$$0 + $123 >> 2] = $123;
return;
}
$128 = ($109 & -8) + $$02 | 0;
$129 = $109 >>> 3;
do if ($109 >>> 0 < 256) {
$132 = HEAP32[$p + ($psize + 8) >> 2] | 0;
$134 = HEAP32[$p + ($psize + 12) >> 2] | 0;
$136 = 3064 + ($129 << 1 << 2) | 0;
if (($132 | 0) != ($136 | 0)) {
if ($132 >>> 0 < $106 >>> 0) _abort();
if ((HEAP32[$132 + 12 >> 2] | 0) != ($0 | 0)) _abort();
}
if (($134 | 0) == ($132 | 0)) {
HEAP32[756] = HEAP32[756] & ~(1 << $129);
break;
}
if (($134 | 0) == ($136 | 0)) $$pre$phi50Z2D = $134 + 8 | 0; else {
if ($134 >>> 0 < $106 >>> 0) _abort();
$149 = $134 + 8 | 0;
if ((HEAP32[$149 >> 2] | 0) == ($0 | 0)) $$pre$phi50Z2D = $149; else _abort();
}
HEAP32[$132 + 12 >> 2] = $134;
HEAP32[$$pre$phi50Z2D >> 2] = $132;
} else {
$154 = HEAP32[$p + ($psize + 24) >> 2] | 0;
$156 = HEAP32[$p + ($psize + 12) >> 2] | 0;
do if (($156 | 0) == ($0 | 0)) {
$167 = $p + ($psize + 20) | 0;
$168 = HEAP32[$167 >> 2] | 0;
if (!$168) {
$170 = $p + ($psize + 16) | 0;
$171 = HEAP32[$170 >> 2] | 0;
if (!$171) {
$R7$1 = 0;
break;
} else {
$R7$0 = $171;
$RP9$0 = $170;
}
} else {
$R7$0 = $168;
$RP9$0 = $167;
}
while (1) {
$173 = $R7$0 + 20 | 0;
$174 = HEAP32[$173 >> 2] | 0;
if ($174) {
$R7$0 = $174;
$RP9$0 = $173;
continue;
}
$176 = $R7$0 + 16 | 0;
$177 = HEAP32[$176 >> 2] | 0;
if (!$177) {
$R7$0$lcssa = $R7$0;
$RP9$0$lcssa = $RP9$0;
break;
} else {
$R7$0 = $177;
$RP9$0 = $176;
}
}
if ($RP9$0$lcssa >>> 0 < $106 >>> 0) _abort(); else {
HEAP32[$RP9$0$lcssa >> 2] = 0;
$R7$1 = $R7$0$lcssa;
break;
}
} else {
$159 = HEAP32[$p + ($psize + 8) >> 2] | 0;
if ($159 >>> 0 < $106 >>> 0) _abort();
$161 = $159 + 12 | 0;
if ((HEAP32[$161 >> 2] | 0) != ($0 | 0)) _abort();
$164 = $156 + 8 | 0;
if ((HEAP32[$164 >> 2] | 0) == ($0 | 0)) {
HEAP32[$161 >> 2] = $156;
HEAP32[$164 >> 2] = $159;
$R7$1 = $156;
break;
} else _abort();
} while (0);
if ($154) {
$182 = HEAP32[$p + ($psize + 28) >> 2] | 0;
$183 = 3328 + ($182 << 2) | 0;
if (($0 | 0) == (HEAP32[$183 >> 2] | 0)) {
HEAP32[$183 >> 2] = $R7$1;
if (!$R7$1) {
HEAP32[757] = HEAP32[757] & ~(1 << $182);
break;
}
} else {
if ($154 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$192 = $154 + 16 | 0;
if ((HEAP32[$192 >> 2] | 0) == ($0 | 0)) HEAP32[$192 >> 2] = $R7$1; else HEAP32[$154 + 20 >> 2] = $R7$1;
if (!$R7$1) break;
}
$197 = HEAP32[760] | 0;
if ($R7$1 >>> 0 < $197 >>> 0) _abort();
HEAP32[$R7$1 + 24 >> 2] = $154;
$201 = HEAP32[$p + ($psize + 16) >> 2] | 0;
do if ($201) if ($201 >>> 0 < $197 >>> 0) _abort(); else {
HEAP32[$R7$1 + 16 >> 2] = $201;
HEAP32[$201 + 24 >> 2] = $R7$1;
break;
} while (0);
$207 = HEAP32[$p + ($psize + 20) >> 2] | 0;
if ($207) if ($207 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R7$1 + 20 >> 2] = $207;
HEAP32[$207 + 24 >> 2] = $R7$1;
break;
}
}
} while (0);
HEAP32[$$0 + 4 >> 2] = $128 | 1;
HEAP32[$$0 + $128 >> 2] = $128;
if (($$0 | 0) == (HEAP32[761] | 0)) {
HEAP32[758] = $128;
return;
} else $$1 = $128;
} else {
HEAP32[$108 >> 2] = $109 & -2;
HEAP32[$$0 + 4 >> 2] = $$02 | 1;
HEAP32[$$0 + $$02 >> 2] = $$02;
$$1 = $$02;
}
$222 = $$1 >>> 3;
if ($$1 >>> 0 < 256) {
$224 = $222 << 1;
$225 = 3064 + ($224 << 2) | 0;
$226 = HEAP32[756] | 0;
$227 = 1 << $222;
if (!($226 & $227)) {
HEAP32[756] = $226 | $227;
$$pre$phiZ2D = 3064 + ($224 + 2 << 2) | 0;
$F16$0 = $225;
} else {
$231 = 3064 + ($224 + 2 << 2) | 0;
$232 = HEAP32[$231 >> 2] | 0;
if ($232 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
$$pre$phiZ2D = $231;
$F16$0 = $232;
}
}
HEAP32[$$pre$phiZ2D >> 2] = $$0;
HEAP32[$F16$0 + 12 >> 2] = $$0;
HEAP32[$$0 + 8 >> 2] = $F16$0;
HEAP32[$$0 + 12 >> 2] = $225;
return;
}
$238 = $$1 >>> 8;
if (!$238) $I19$0 = 0; else if ($$1 >>> 0 > 16777215) $I19$0 = 31; else {
$243 = ($238 + 1048320 | 0) >>> 16 & 8;
$244 = $238 << $243;
$247 = ($244 + 520192 | 0) >>> 16 & 4;
$249 = $244 << $247;
$252 = ($249 + 245760 | 0) >>> 16 & 2;
$257 = 14 - ($247 | $243 | $252) + ($249 << $252 >>> 15) | 0;
$I19$0 = $$1 >>> ($257 + 7 | 0) & 1 | $257 << 1;
}
$263 = 3328 + ($I19$0 << 2) | 0;
HEAP32[$$0 + 28 >> 2] = $I19$0;
HEAP32[$$0 + 20 >> 2] = 0;
HEAP32[$$0 + 16 >> 2] = 0;
$267 = HEAP32[757] | 0;
$268 = 1 << $I19$0;
if (!($267 & $268)) {
HEAP32[757] = $267 | $268;
HEAP32[$263 >> 2] = $$0;
HEAP32[$$0 + 24 >> 2] = $263;
HEAP32[$$0 + 12 >> 2] = $$0;
HEAP32[$$0 + 8 >> 2] = $$0;
return;
}
$275 = HEAP32[$263 >> 2] | 0;
L191 : do if ((HEAP32[$275 + 4 >> 2] & -8 | 0) == ($$1 | 0)) $T$0$lcssa = $275; else {
$K20$043 = $$1 << (($I19$0 | 0) == 31 ? 0 : 25 - ($I19$0 >>> 1) | 0);
$T$042 = $275;
while (1) {
$292 = $T$042 + 16 + ($K20$043 >>> 31 << 2) | 0;
$287 = HEAP32[$292 >> 2] | 0;
if (!$287) {
$$lcssa = $292;
$T$042$lcssa = $T$042;
break;
}
if ((HEAP32[$287 + 4 >> 2] & -8 | 0) == ($$1 | 0)) {
$T$0$lcssa = $287;
break L191;
} else {
$K20$043 = $K20$043 << 1;
$T$042 = $287;
}
}
if ($$lcssa >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
HEAP32[$$lcssa >> 2] = $$0;
HEAP32[$$0 + 24 >> 2] = $T$042$lcssa;
HEAP32[$$0 + 12 >> 2] = $$0;
HEAP32[$$0 + 8 >> 2] = $$0;
return;
} while (0);
$299 = $T$0$lcssa + 8 | 0;
$300 = HEAP32[$299 >> 2] | 0;
$301 = HEAP32[760] | 0;
if (!($300 >>> 0 >= $301 >>> 0 & $T$0$lcssa >>> 0 >= $301 >>> 0)) _abort();
HEAP32[$300 + 12 >> 2] = $$0;
HEAP32[$299 >> 2] = $$0;
HEAP32[$$0 + 8 >> 2] = $300;
HEAP32[$$0 + 12 >> 2] = $T$0$lcssa;
HEAP32[$$0 + 24 >> 2] = 0;
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i15 = 0, $$0$i$i$i7 = 0, $$0$i$i$i9 = 0, $$0$i$i58 = 0, $$lcssa81 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $103 = 0, $107 = 0, $114 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $120 = 0, $122 = 0, $125 = 0, $133 = 0, $134 = 0, $135 = 0, $138 = 0, $141 = 0, $148 = 0, $15 = 0, $150 = 0, $157 = 0, $158 = 0, $167 = 0, $168 = 0, $170 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $184 = 0, $186 = 0, $189 = 0, $190 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $30 = 0, $33 = 0, $4 = 0, $41 = 0, $42 = 0, $43 = 0, $46 = 0, $49 = 0, $56 = 0, $58 = 0, $61 = 0, $62 = 0, $64 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $78 = 0, $80 = 0, $83 = 0, $84 = 0, $89 = 0, $91 = 0, $__p$0$i$i57 = 0, $__p$0$ph$i$i = 0, $__v$i$i13 = 0, $isdigittmp = 0, $isdigittmp4 = 0, $sub$061 = 0, $sub$061$lcssa = 0, $t1$060 = 0, $t1$060$lcssa = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i13 = sp + 64 | 0;
$0 = sp + 40 | 0;
$1 = sp + 16 | 0;
$2 = sp;
$4 = $first;
L1 : do if (($last - $4 | 0) > 1) if ((HEAP8[$first >> 0] | 0) == 84) {
$10 = HEAP8[$first + 1 >> 0] | 0;
if ($10 << 24 >> 24 == 95) {
$15 = HEAP32[$db + 36 >> 2] | 0;
if ((HEAP32[$db + 32 >> 2] | 0) == ($15 | 0)) {
$$0 = $first;
break;
}
$18 = HEAP32[$15 + -16 >> 2] | 0;
if (($18 | 0) == (HEAP32[$15 + -12 >> 2] | 0)) {
HEAP8[$0 >> 0] = 4;
$56 = $0 + 1 | 0;
HEAP8[$56 >> 0] = 84;
HEAP8[$56 + 1 >> 0] = 95;
HEAP8[$0 + 3 >> 0] = 0;
$58 = $0 + 12 | 0;
HEAP32[$58 >> 2] = 0;
HEAP32[$58 + 4 >> 2] = 0;
HEAP32[$58 + 8 >> 2] = 0;
$61 = $db + 4 | 0;
$62 = HEAP32[$61 >> 2] | 0;
$64 = HEAP32[$db + 8 >> 2] | 0;
if ($62 >>> 0 < $64 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($62, $0);
HEAP32[$61 >> 2] = (HEAP32[$61 >> 2] | 0) + 24;
} else {
$71 = HEAP32[$db >> 2] | 0;
$72 = $62 - $71 | 0;
$73 = ($72 | 0) / 24 | 0;
$74 = $73 + 1 | 0;
if (($72 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$78 = ($64 - $71 | 0) / 24 | 0;
if ($78 >>> 0 < 1073741823) {
$80 = $78 << 1;
$$0$i$i$i9 = $80 >>> 0 < $74 >>> 0 ? $74 : $80;
} else $$0$i$i$i9 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i9, $73, $db + 12 | 0);
$83 = $__v$i$i13 + 8 | 0;
$84 = HEAP32[$83 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($84, $0);
HEAP32[$83 >> 2] = $84 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
HEAP8[$db + 62 >> 0] = 1;
$$0 = $first + 2 | 0;
break;
}
$22 = HEAP32[$18 >> 2] | 0;
$24 = HEAP32[$18 + 4 >> 2] | 0;
$25 = $db + 4 | 0;
$26 = $db + 8 | 0;
$27 = $db + 12 | 0;
$28 = $__v$i$i13 + 8 | 0;
L20 : do if (($22 | 0) != ($24 | 0)) {
$33 = $22;
while (1) {
$30 = HEAP32[$25 >> 2] | 0;
if (($30 | 0) == (HEAP32[$26 >> 2] | 0)) {
$41 = $30 - (HEAP32[$db >> 2] | 0) | 0;
$42 = ($41 | 0) / 24 | 0;
$43 = $42 + 1 | 0;
if (($41 | 0) < -24) break;
if ($42 >>> 0 < 1073741823) {
$46 = $42 << 1;
$$0$i$i$i7 = $46 >>> 0 < $43 >>> 0 ? $43 : $46;
} else $$0$i$i$i7 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i7, $42, $27);
$49 = HEAP32[$28 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($49, $33);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($49 + 12 | 0, $33 + 12 | 0);
HEAP32[$28 >> 2] = $49 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($30, $33);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($30 + 12 | 0, $33 + 12 | 0);
HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 24;
}
$33 = $33 + 24 | 0;
if (($33 | 0) == ($24 | 0)) break L20;
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
} while (0);
$$0 = $first + 2 | 0;
break;
}
$isdigittmp = ($10 << 24 >> 24) + -48 | 0;
if ($isdigittmp >>> 0 < 10) {
$89 = $first + 2 | 0;
if (($89 | 0) == ($last | 0)) $$0 = $first; else {
$sub$061 = $isdigittmp;
$t1$060 = $89;
while (1) {
$91 = HEAP8[$t1$060 >> 0] | 0;
$isdigittmp4 = ($91 << 24 >> 24) + -48 | 0;
if ($isdigittmp4 >>> 0 >= 10) {
$$lcssa81 = $91;
$sub$061$lcssa = $sub$061;
$t1$060$lcssa = $t1$060;
break;
}
$t1$060 = $t1$060 + 1 | 0;
if (($t1$060 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
} else $sub$061 = $isdigittmp4 + ($sub$061 * 10 | 0) | 0;
}
if ($$lcssa81 << 24 >> 24 == 95) {
$101 = HEAP32[$db + 36 >> 2] | 0;
if ((HEAP32[$db + 32 >> 2] | 0) == ($101 | 0)) $$0 = $first; else {
$103 = $sub$061$lcssa + 1 | 0;
$107 = HEAP32[$101 + -16 >> 2] | 0;
if ($103 >>> 0 < (HEAP32[$101 + -12 >> 2] | 0) - $107 >> 4 >>> 0) {
$114 = HEAP32[$107 + ($103 << 4) >> 2] | 0;
$116 = HEAP32[$107 + ($103 << 4) + 4 >> 2] | 0;
$117 = $db + 4 | 0;
$118 = $db + 8 | 0;
$119 = $db + 12 | 0;
$120 = $__v$i$i13 + 8 | 0;
L43 : do if (($114 | 0) != ($116 | 0)) {
$125 = $114;
while (1) {
$122 = HEAP32[$117 >> 2] | 0;
if (($122 | 0) == (HEAP32[$118 >> 2] | 0)) {
$133 = $122 - (HEAP32[$db >> 2] | 0) | 0;
$134 = ($133 | 0) / 24 | 0;
$135 = $134 + 1 | 0;
if (($133 | 0) < -24) break;
if ($134 >>> 0 < 1073741823) {
$138 = $134 << 1;
$$0$i$i$i15 = $138 >>> 0 < $135 >>> 0 ? $135 : $138;
} else $$0$i$i$i15 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i15, $134, $119);
$141 = HEAP32[$120 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($141, $125);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($141 + 12 | 0, $125 + 12 | 0);
HEAP32[$120 >> 2] = $141 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13);
} else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($122, $125);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($122 + 12 | 0, $125 + 12 | 0);
HEAP32[$117 >> 2] = (HEAP32[$117 >> 2] | 0) + 24;
}
$125 = $125 + 24 | 0;
if (($125 | 0) == ($116 | 0)) break L43;
}
__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
} while (0);
$$0 = $t1$060$lcssa + 1 | 0;
break;
}
$148 = $t1$060$lcssa + 1 | 0;
$150 = $148 - $4 | 0;
if ($150 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2);
if ($150 >>> 0 < 11) {
HEAP8[$2 >> 0] = $150 << 1;
$__p$0$ph$i$i = $2 + 1 | 0;
} else {
$157 = $150 + 16 & -16;
$158 = _malloc($157) | 0;
HEAP32[$2 + 8 >> 2] = $158;
HEAP32[$2 >> 2] = $157 | 1;
HEAP32[$2 + 4 >> 2] = $150;
$__p$0$ph$i$i = $158;
}
if (($148 | 0) != ($first | 0)) {
$$0$i$i58 = $first;
$__p$0$i$i57 = $__p$0$ph$i$i;
while (1) {
HEAP8[$__p$0$i$i57 >> 0] = HEAP8[$$0$i$i58 >> 0] | 0;
if (($$0$i$i58 | 0) == ($t1$060$lcssa | 0)) break; else {
$$0$i$i58 = $$0$i$i58 + 1 | 0;
$__p$0$i$i57 = $__p$0$i$i57 + 1 | 0;
}
}
}
HEAP8[$__p$0$ph$i$i + $150 >> 0] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($1, $2);
$167 = $db + 4 | 0;
$168 = HEAP32[$167 >> 2] | 0;
$170 = HEAP32[$db + 8 >> 2] | 0;
if ($168 >>> 0 < $170 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($168, $1);
HEAP32[$167 >> 2] = (HEAP32[$167 >> 2] | 0) + 24;
} else {
$177 = HEAP32[$db >> 2] | 0;
$178 = $168 - $177 | 0;
$179 = ($178 | 0) / 24 | 0;
$180 = $179 + 1 | 0;
if (($178 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$184 = ($170 - $177 | 0) / 24 | 0;
if ($184 >>> 0 < 1073741823) {
$186 = $184 << 1;
$$0$i$i$i = $186 >>> 0 < $180 >>> 0 ? $180 : $186;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i13, $$0$i$i$i, $179, $db + 12 | 0);
$189 = $__v$i$i13 + 8 | 0;
$190 = HEAP32[$189 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($190, $1);
HEAP32[$189 >> 2] = $190 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i13);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i13);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
HEAP8[$db + 62 >> 0] = 1;
$$0 = $148;
}
} else $$0 = $first;
}
} else $$0 = $first;
} else $$0 = $first; else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _get_matrix_code($data, $size, $code_out_p, $dir, $cf, $matrixCodeType, $errorCorrected) {
$data = $data | 0;
$size = $size | 0;
$code_out_p = $code_out_p | 0;
$dir = $dir | 0;
$cf = $cf | 0;
$matrixCodeType = $matrixCodeType | 0;
$errorCorrected = $errorCorrected | 0;
var $$ = 0, $$0 = 0, $$lcssa115 = 0, $$max$0 = 0, $$max$0$1 = 0, $$max$0$2 = 0, $1 = 0, $10 = 0, $100 = 0, $102 = 0, $103 = 0, $108 = 0, $109 = 0, $110 = 0, $120 = 0, $121 = 0, $122 = 0, $124 = 0, $125 = 0, $126 = 0, $130 = 0, $140 = 0, $144 = 0, $145 = 0, $146 = 0, $157 = 0, $158 = 0, $16 = 0, $163 = 0, $164 = 0, $165 = 0, $169 = 0, $182 = 0, $183 = 0, $184 = 0, $187 = 0, $193 = 0, $194 = 0, $197 = 0, $2 = 0, $206 = 0, $207 = 0, $211 = 0, $22 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $28 = 0, $31 = 0, $32 = 0, $36 = 0, $4 = 0, $70 = 0, $83 = 0, $85 = 0, $86 = 0, $96 = 0, $98 = 0, $code = 0, $contrastMin$0$lcssa = 0, $contrastMin$098 = 0, $contrastMin$1 = 0, $corner = 0, $dirCode = 0, $exitcond64 = 0, $i$2102 = 0, $i$2102$lcssa = 0, $i$399 = 0, $i$465 = 0, $i$576 = 0, $i$680 = 0, $i$794 = 0, $j$067 = 0, $j$171 = 0, $j$285 = 0, $j$389 = 0, $min$1 = 0, $min$1$1 = 0, $min$1$2 = 0, $or$cond734 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$dirCode = sp + 24 | 0;
$corner = sp + 8 | 0;
$code = sp;
L1 : do if (($size + -3 | 0) >>> 0 > 5) {
HEAP32[$code_out_p >> 2] = -1;
HEAP32[$dir >> 2] = 0;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -1;
} else {
HEAP32[$corner >> 2] = 0;
$1 = $size + -1 | 0;
$2 = Math_imul($1, $size) | 0;
HEAP32[$corner + 4 >> 2] = $2;
$4 = Math_imul($size, $size) | 0;
HEAP32[$corner + 8 >> 2] = $4 + -1;
HEAP32[$corner + 12 >> 2] = $1;
$10 = HEAP8[$data + (HEAP32[$corner >> 2] | 0) >> 0] | 0;
$$max$0 = ($10 & 255) > 0 ? $10 : 0;
$min$1 = ($10 & 255) < 255 ? $10 : -1;
$16 = HEAP8[$data + (HEAP32[$corner + 4 >> 2] | 0) >> 0] | 0;
$$max$0$1 = ($16 & 255) > ($$max$0 & 255) ? $16 : $$max$0;
$min$1$1 = ($16 & 255) < ($min$1 & 255) ? $16 : $min$1;
$22 = HEAP8[$data + (HEAP32[$corner + 8 >> 2] | 0) >> 0] | 0;
$$max$0$2 = ($22 & 255) > ($$max$0$1 & 255) ? $22 : $$max$0$1;
$min$1$2 = ($22 & 255) < ($min$1$1 & 255) ? $22 : $min$1$1;
$28 = HEAP8[$data + (HEAP32[$corner + 12 >> 2] | 0) >> 0] | 0;
$31 = (($28 & 255) > ($$max$0$2 & 255) ? $28 : $$max$0$2) & 255;
$32 = (($28 & 255) < ($min$1$2 & 255) ? $28 : $min$1$2) & 255;
if (($31 - $32 | 0) < 30) {
HEAP32[$code_out_p >> 2] = -1;
HEAP32[$dir >> 2] = 0;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -2;
break;
}
$36 = ($31 + $32 | 0) >>> 1;
HEAP8[$dirCode >> 0] = (HEAPU8[$data + (HEAP32[$corner >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1;
HEAP8[$dirCode + 1 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 4 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1;
HEAP8[$dirCode + 2 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 8 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1;
HEAP8[$dirCode + 3 >> 0] = (HEAPU8[$data + (HEAP32[$corner + 12 >> 2] | 0) >> 0] | 0) >>> 0 < $36 >>> 0 & 1;
$i$2102 = 0;
while (1) {
$70 = $i$2102 + 1 | 0;
if ((HEAP8[$dirCode + $i$2102 >> 0] | 0) == 1) if ((HEAP8[$dirCode + (($70 | 0) % 4 | 0) >> 0] | 0) == 1) if (!(HEAP8[$dirCode + (($i$2102 + 2 | 0) % 4 | 0) >> 0] | 0)) {
$i$2102$lcssa = $i$2102;
label = 10;
break;
}
if (($70 | 0) < 4) $i$2102 = $70; else {
$$lcssa115 = $70;
label = 12;
break;
}
}
if ((label | 0) == 10) HEAP32[$dir >> 2] = $i$2102$lcssa; else if ((label | 0) == 12) if (($$lcssa115 | 0) == 4) {
HEAP32[$code_out_p >> 2] = -1;
HEAP32[$dir >> 2] = 0;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -3;
break;
}
if (!$4) $contrastMin$0$lcssa = 255; else {
$contrastMin$098 = 255;
$i$399 = 0;
while (1) {
$83 = $data + $i$399 | 0;
$85 = HEAPU8[$83 >> 0] | 0;
$86 = $85 - $36 | 0;
$$ = ($86 | 0) < 0 ? 0 - $86 | 0 : $86;
$contrastMin$1 = ($$ | 0) < ($contrastMin$098 | 0) ? $$ : $contrastMin$098;
HEAP8[$83 >> 0] = $85 >>> 0 < $36 >>> 0 & 1;
$i$399 = $i$399 + 1 | 0;
if (($i$399 | 0) >= ($4 | 0)) {
$contrastMin$0$lcssa = $contrastMin$1;
break;
} else $contrastMin$098 = $contrastMin$1;
}
}
switch (HEAP32[$dir >> 2] | 0) {
case 0:
{
if (($size | 0) > 0) {
$exitcond64 = ($size | 0) == 0;
$227 = 0;
$228 = 0;
$j$067 = 0;
while (1) {
$102 = ($j$067 | 0) == ($1 | 0);
$103 = Math_imul($j$067, $size) | 0;
if ($exitcond64) {
$229 = $227;
$230 = $228;
} else {
$108 = $227;
$109 = $228;
$i$465 = 0;
while (1) {
if (!($i$465 | $j$067)) {
$231 = $108;
$232 = $109;
} else if ($102 & (($i$465 | 0) == 0 | ($i$465 | 0) == ($1 | 0))) {
$231 = $108;
$232 = $109;
} else {
$110 = _bitshift64Shl($108 | 0, $109 | 0, 1) | 0;
$231 = (HEAP8[$data + ($i$465 + $103) >> 0] | 0) != 0 | $110;
$232 = tempRet0;
}
$i$465 = $i$465 + 1 | 0;
if (($i$465 | 0) == ($size | 0)) {
$229 = $231;
$230 = $232;
break;
} else {
$108 = $231;
$109 = $232;
}
}
}
$j$067 = $j$067 + 1 | 0;
if (($j$067 | 0) >= ($size | 0)) {
$182 = $229;
$206 = $230;
break;
} else {
$227 = $229;
$228 = $230;
}
}
} else {
$182 = 0;
$206 = 0;
}
break;
}
case 1:
{
if (($size | 0) > 0) {
$100 = ($size | 0) > 0;
$225 = 0;
$226 = 0;
$i$576 = 0;
while (1) {
$120 = ($i$576 | 0) == 0;
$121 = ($i$576 | 0) == ($1 | 0);
if ($100) {
$124 = $225;
$125 = $226;
$j$171 = $1;
while (1) {
$122 = ($j$171 | 0) == ($1 | 0);
if ($120 & $122) {
$235 = $124;
$236 = $125;
} else if ($121 & ($122 | ($j$171 | 0) == 0)) {
$235 = $124;
$236 = $125;
} else {
$126 = _bitshift64Shl($124 | 0, $125 | 0, 1) | 0;
$130 = $data + ((Math_imul($j$171, $size) | 0) + $i$576) | 0;
$235 = (HEAP8[$130 >> 0] | 0) != 0 | $126;
$236 = tempRet0;
}
if (($j$171 | 0) > 0) {
$124 = $235;
$125 = $236;
$j$171 = $j$171 + -1 | 0;
} else {
$233 = $235;
$234 = $236;
break;
}
}
} else {
$233 = $225;
$234 = $226;
}
$i$576 = $i$576 + 1 | 0;
if (($i$576 | 0) >= ($size | 0)) {
$182 = $233;
$206 = $234;
break;
} else {
$225 = $233;
$226 = $234;
}
}
} else {
$182 = 0;
$206 = 0;
}
break;
}
case 2:
{
if (($size | 0) > 0) {
$98 = ($size | 0) > 0;
$223 = 0;
$224 = 0;
$j$285 = $1;
while (1) {
$or$cond734 = ($j$285 | 0) == ($1 | 0) | ($j$285 | 0) == 0;
$140 = Math_imul($j$285, $size) | 0;
if ($98) {
$144 = $223;
$145 = $224;
$i$680 = $1;
while (1) {
if ($or$cond734 & ($i$680 | 0) == ($1 | 0) | ($i$680 | $j$285 | 0) == 0) {
$239 = $144;
$240 = $145;
} else {
$146 = _bitshift64Shl($144 | 0, $145 | 0, 1) | 0;
$239 = (HEAP8[$data + ($i$680 + $140) >> 0] | 0) != 0 | $146;
$240 = tempRet0;
}
if (($i$680 | 0) > 0) {
$144 = $239;
$145 = $240;
$i$680 = $i$680 + -1 | 0;
} else {
$237 = $239;
$238 = $240;
break;
}
}
} else {
$237 = $223;
$238 = $224;
}
if (($j$285 | 0) > 0) {
$223 = $237;
$224 = $238;
$j$285 = $j$285 + -1 | 0;
} else {
$182 = $237;
$206 = $238;
break;
}
}
} else {
$182 = 0;
$206 = 0;
}
break;
}
case 3:
{
if (($size | 0) > 0) {
$96 = ($size | 0) > 0;
$221 = 0;
$222 = 0;
$i$794 = $1;
while (1) {
$157 = ($i$794 | 0) == ($1 | 0);
$158 = ($i$794 | 0) == 0;
if ($96) {
$163 = $221;
$164 = $222;
$j$389 = 0;
while (1) {
if ($157 & ($j$389 | 0) == 0 | ($j$389 | $i$794 | 0) == 0 | $158 & ($j$389 | 0) == ($1 | 0)) {
$243 = $163;
$244 = $164;
} else {
$165 = _bitshift64Shl($163 | 0, $164 | 0, 1) | 0;
$169 = $data + ((Math_imul($j$389, $size) | 0) + $i$794) | 0;
$243 = (HEAP8[$169 >> 0] | 0) != 0 | $165;
$244 = tempRet0;
}
$j$389 = $j$389 + 1 | 0;
if (($j$389 | 0) >= ($size | 0)) {
$241 = $243;
$242 = $244;
break;
} else {
$163 = $243;
$164 = $244;
}
}
} else {
$241 = $221;
$242 = $222;
}
if (($i$794 | 0) > 0) {
$221 = $241;
$222 = $242;
$i$794 = $i$794 + -1 | 0;
} else {
$182 = $241;
$206 = $242;
break;
}
}
} else {
$182 = 0;
$206 = 0;
}
break;
}
default:
{
$182 = 0;
$206 = 0;
}
}
HEAPF64[$cf >> 3] = ($contrastMin$0$lcssa | 0) > 30 ? 1.0 : +($contrastMin$0$lcssa | 0) / 30.0;
switch ($matrixCodeType | 0) {
case 259:
{
$183 = HEAP8[4551 + $182 >> 0] | 0;
$184 = $183 << 24 >> 24;
$187 = $code;
HEAP32[$187 >> 2] = $184;
HEAP32[$187 + 4 >> 2] = (($184 | 0) < 0) << 31 >> 31;
if ($183 << 24 >> 24 < 0) {
HEAP32[$code_out_p >> 2] = -1;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -4;
break L1;
}
break;
}
case 515:
{
$193 = HEAP8[4423 + $182 >> 0] | 0;
$194 = $193 << 24 >> 24;
$197 = $code;
HEAP32[$197 >> 2] = $194;
HEAP32[$197 + 4 >> 2] = (($194 | 0) < 0) << 31 >> 31;
if ($errorCorrected) HEAP32[$errorCorrected >> 2] = HEAPU8[4487 + $182 >> 0];
if ($193 << 24 >> 24 < 0) {
HEAP32[$code_out_p >> 2] = -1;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -4;
break L1;
}
break;
}
case 772:
case 1028:
{
$207 = _decode_bch($matrixCodeType, $182, $206, 0, $code) | 0;
if (($207 | 0) < 0) {
HEAP32[$code_out_p >> 2] = -1;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -4;
break L1;
}
if (($errorCorrected | 0) != 0 & ($207 | 0) > 0) HEAP32[$errorCorrected >> 2] = $207;
break;
}
default:
{
$211 = $code;
HEAP32[$211 >> 2] = $182;
HEAP32[$211 + 4 >> 2] = $206;
}
}
HEAP32[$code_out_p >> 2] = HEAP32[$code >> 2];
$$0 = 0;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _decode_bch($matrixCodeType, $0, $1, $recd127, $out_p) {
$matrixCodeType = $matrixCodeType | 0;
$0 = $0 | 0;
$1 = $1 | 0;
$recd127 = $recd127 | 0;
$out_p = $out_p | 0;
var $$ = 0, $$0 = 0, $$lcssa24 = 0, $$lcssa76 = 0, $$lcssa77 = 0, $$pre$phi$lcssaZ2D = 0, $$pre$phiZ2D = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $11 = 0, $110 = 0, $114 = 0, $118 = 0, $122 = 0, $125 = 0, $133 = 0, $134 = 0, $143 = 0, $154 = 0, $155 = 0, $156 = 0, $159 = 0, $17 = 0, $175 = 0, $182 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $194 = 0, $195 = 0, $198 = 0, $20 = 0, $208 = 0, $209 = 0, $28 = 0, $3 = 0, $30 = 0, $41 = 0, $43 = 0, $44 = 0, $46 = 0, $48 = 0, $49 = 0, $58 = 0, $6 = 0, $71 = 0, $73 = 0, $74 = 0, $76 = 0, $78 = 0, $79 = 0, $86 = 0, $alpha_to$0 = 0, $count$036 = 0, $count$1 = 0, $count$1$lcssa = 0, $d = 0, $elp = 0, $i$066 = 0, $i$1035 = 0, $i$1130 = 0, $i$1228 = 0, $i$159 = 0, $i$254 = 0, $i$347 = 0, $i$441 = 0, $i$543 = 0, $i$645 = 0, $i$750 = 0, $i$839 = 0, $i$937 = 0, $index_of$0 = 0, $j$058 = 0, $j$1 = 0, $j$232 = 0, $k$0 = 0, $k$1 = 0, $l = 0, $length$0 = 0, $loc = 0, $n$0 = 0, $q$0 = 0, $q$1 = 0, $q$2 = 0, $q$3 = 0, $q$4$lcssa = 0, $q$433 = 0, $q$5 = 0, $recd$0 = 0, $recd15 = 0, $reg = 0, $s = 0, $syn_error$0$ = 0, $syn_error$0$$lcssa = 0, $syn_error$060 = 0, $t$0 = 0, $t$1 = 0, $u$0 = 0, $u$1 = 0, $u_lu = 0, label = 0, sp = 0, $j$1$looptemp = 0, $u$0$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2320 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$recd15 = sp + 2304 | 0;
$elp = sp + 864 | 0;
$d = sp + 784 | 0;
$l = sp + 704 | 0;
$u_lu = sp + 624 | 0;
$s = sp + 548 | 0;
$loc = sp + 40 | 0;
$reg = sp;
switch ($matrixCodeType | 0) {
case 772:
{
$k$0 = 9;
$t$0 = 1;
label = 3;
break;
}
case 1028:
{
$k$0 = 5;
$t$0 = 2;
label = 3;
break;
}
case 2830:
{
$alpha_to$0 = 900;
$index_of$0 = 1472;
$k$1 = 64;
$length$0 = 120;
$n$0 = 127;
$recd$0 = $recd127;
$t$1 = 9;
label = 6;
break;
}
default:
$$0 = -1;
}
if ((label | 0) == 3) {
$3 = $0;
$6 = $1;
$i$066 = 0;
while (1) {
HEAP8[$recd15 + $i$066 >> 0] = $3 & 1;
$3 = _bitshift64Lshr($3 | 0, $6 | 0, 1) | 0;
$i$066 = $i$066 + 1 | 0;
if (($i$066 | 0) == 13) break; else $6 = tempRet0;
}
$alpha_to$0 = 840;
$index_of$0 = 1408;
$k$1 = $k$0;
$length$0 = 13;
$n$0 = 15;
$recd$0 = $recd15;
$t$1 = $t$0;
label = 6;
}
do if ((label | 0) == 6) {
$10 = $t$1 << 1;
$i$159 = 1;
$syn_error$060 = 0;
while (1) {
$11 = $s + ($i$159 << 2) | 0;
HEAP32[$11 >> 2] = 0;
$20 = 0;
$j$058 = 0;
while (1) {
if (!(HEAP8[$recd$0 + $j$058 >> 0] | 0)) $208 = $20; else {
$17 = $alpha_to$0 + (((Math_imul($j$058, $i$159) | 0) % ($n$0 | 0) | 0) << 2) | 0;
$19 = $20 ^ HEAP32[$17 >> 2];
HEAP32[$11 >> 2] = $19;
$208 = $19;
}
$j$058 = $j$058 + 1 | 0;
if (($j$058 | 0) >= ($length$0 | 0)) {
$$lcssa77 = $208;
break;
} else $20 = $208;
}
$syn_error$0$ = ($$lcssa77 | 0) == 0 ? $syn_error$060 : 1;
HEAP32[$11 >> 2] = HEAP32[$index_of$0 + ($$lcssa77 << 2) >> 2];
if (($i$159 | 0) < ($10 | 0)) {
$i$159 = $i$159 + 1 | 0;
$syn_error$060 = $syn_error$0$;
} else {
$syn_error$0$$lcssa = $syn_error$0$;
break;
}
}
$28 = ($syn_error$0$$lcssa | 0) != 0;
if ($28) {
HEAP32[$d >> 2] = 0;
$30 = HEAP32[$s + 4 >> 2] | 0;
HEAP32[$d + 4 >> 2] = $30;
HEAP32[$elp >> 2] = 0;
HEAP32[$elp + 72 >> 2] = 1;
if (($10 | 0) > 1) {
$i$254 = 1;
do {
HEAP32[$elp + ($i$254 << 2) >> 2] = -1;
HEAP32[$elp + 72 + ($i$254 << 2) >> 2] = 0;
$i$254 = $i$254 + 1 | 0;
} while (($i$254 | 0) < ($10 | 0));
}
HEAP32[$l >> 2] = 0;
HEAP32[$l + 4 >> 2] = 0;
HEAP32[$u_lu >> 2] = -1;
HEAP32[$u_lu + 4 >> 2] = 0;
$43 = $30;
$46 = 0;
$u$0 = 0;
while (1) {
$u$0$looptemp = $u$0;
$u$0 = $u$0 + 1 | 0;
$41 = $d + ($u$0 << 2) | 0;
if (($43 | 0) == -1) {
$44 = $u$0$looptemp + 2 | 0;
HEAP32[$l + ($44 << 2) >> 2] = $46;
if (($46 | 0) < 0) {
$$pre$phiZ2D = $44;
$110 = $46;
} else {
$i$347 = 0;
while (1) {
$48 = $elp + ($u$0 * 72 | 0) + ($i$347 << 2) | 0;
$49 = HEAP32[$48 >> 2] | 0;
HEAP32[$elp + ($44 * 72 | 0) + ($i$347 << 2) >> 2] = $49;
HEAP32[$48 >> 2] = HEAP32[$index_of$0 + ($49 << 2) >> 2];
if (($i$347 | 0) < ($46 | 0)) $i$347 = $i$347 + 1 | 0; else {
$$pre$phiZ2D = $44;
$110 = $46;
break;
}
}
}
} else {
$q$0 = $u$0$looptemp;
while (1) {
$58 = ($q$0 | 0) > 0;
if ($58 & (HEAP32[$d + ($q$0 << 2) >> 2] | 0) == -1) $q$0 = $q$0 + -1 | 0; else break;
}
if ($58) {
$j$1 = $q$0;
$q$1 = $q$0;
while (1) {
$j$1$looptemp = $j$1;
$j$1 = $j$1 + -1 | 0;
if ((HEAP32[$d + ($j$1 << 2) >> 2] | 0) == -1) $q$2 = $q$1; else $q$2 = (HEAP32[$u_lu + ($q$1 << 2) >> 2] | 0) < (HEAP32[$u_lu + ($j$1 << 2) >> 2] | 0) ? $j$1 : $q$1;
if (($j$1$looptemp | 0) <= 1) {
$q$3 = $q$2;
break;
} else $q$1 = $q$2;
}
} else $q$3 = $q$0;
$71 = $l + ($q$3 << 2) | 0;
$73 = $u$0 - $q$3 | 0;
$74 = $73 + (HEAP32[$71 >> 2] | 0) | 0;
$76 = $u$0$looptemp + 2 | 0;
$$ = ($46 | 0) > ($74 | 0) ? $46 : $74;
HEAP32[$l + ($76 << 2) >> 2] = $$;
$i$441 = 0;
do {
HEAP32[$elp + ($76 * 72 | 0) + ($i$441 << 2) >> 2] = 0;
$i$441 = $i$441 + 1 | 0;
} while (($i$441 | 0) < ($10 | 0));
$78 = HEAP32[$71 >> 2] | 0;
$79 = $d + ($q$3 << 2) | 0;
if (($78 | 0) >= 0) {
$i$543 = 0;
while (1) {
$86 = HEAP32[$elp + ($q$3 * 72 | 0) + ($i$543 << 2) >> 2] | 0;
if (($86 | 0) != -1) HEAP32[$elp + ($76 * 72 | 0) + ($73 + $i$543 << 2) >> 2] = HEAP32[$alpha_to$0 + ((($86 + $n$0 + (HEAP32[$41 >> 2] | 0) - (HEAP32[$79 >> 2] | 0) | 0) % ($n$0 | 0) | 0) << 2) >> 2];
if (($i$543 | 0) < ($78 | 0)) $i$543 = $i$543 + 1 | 0; else break;
}
}
if (($46 | 0) < 0) {
$$pre$phiZ2D = $76;
$110 = $$;
} else {
$i$645 = 0;
while (1) {
$100 = $elp + ($u$0 * 72 | 0) + ($i$645 << 2) | 0;
$101 = HEAP32[$100 >> 2] | 0;
$102 = $elp + ($76 * 72 | 0) + ($i$645 << 2) | 0;
HEAP32[$102 >> 2] = HEAP32[$102 >> 2] ^ $101;
HEAP32[$100 >> 2] = HEAP32[$index_of$0 + ($101 << 2) >> 2];
if (($i$645 | 0) < ($46 | 0)) $i$645 = $i$645 + 1 | 0; else {
$$pre$phiZ2D = $76;
$110 = $$;
break;
}
}
}
}
HEAP32[$u_lu + ($$pre$phiZ2D << 2) >> 2] = $u$0 - $110;
if (($u$0 | 0) >= ($10 | 0)) {
$$lcssa76 = $110;
$$pre$phi$lcssaZ2D = $$pre$phiZ2D;
break;
}
$114 = HEAP32[$s + ($$pre$phiZ2D << 2) >> 2] | 0;
if (($114 | 0) == -1) $$sink = 0; else $$sink = HEAP32[$alpha_to$0 + ($114 << 2) >> 2] | 0;
$118 = $d + ($$pre$phiZ2D << 2) | 0;
HEAP32[$118 >> 2] = $$sink;
if (($110 | 0) < 1) $$lcssa24 = $$sink; else {
$134 = $$sink;
$i$750 = 1;
while (1) {
$122 = HEAP32[$s + ($$pre$phiZ2D - $i$750 << 2) >> 2] | 0;
if (($122 | 0) == -1) $209 = $134; else {
$125 = HEAP32[$elp + ($$pre$phiZ2D * 72 | 0) + ($i$750 << 2) >> 2] | 0;
if (!$125) $209 = $134; else {
$133 = $134 ^ HEAP32[$alpha_to$0 + ((((HEAP32[$index_of$0 + ($125 << 2) >> 2] | 0) + $122 | 0) % ($n$0 | 0) | 0) << 2) >> 2];
HEAP32[$118 >> 2] = $133;
$209 = $133;
}
}
if (($i$750 | 0) < ($110 | 0)) {
$134 = $209;
$i$750 = $i$750 + 1 | 0;
} else {
$$lcssa24 = $209;
break;
}
}
}
$43 = HEAP32[$index_of$0 + ($$lcssa24 << 2) >> 2] | 0;
HEAP32[$118 >> 2] = $43;
if (($110 | 0) > ($t$1 | 0)) {
$$lcssa76 = $110;
$$pre$phi$lcssaZ2D = $$pre$phiZ2D;
break;
} else $46 = $110;
}
if (($$lcssa76 | 0) > ($t$1 | 0)) {
$$0 = -1;
break;
}
if (($$lcssa76 | 0) >= 0) {
$i$839 = 0;
while (1) {
$143 = $elp + ($$pre$phi$lcssaZ2D * 72 | 0) + ($i$839 << 2) | 0;
HEAP32[$143 >> 2] = HEAP32[$index_of$0 + (HEAP32[$143 >> 2] << 2) >> 2];
if (($i$839 | 0) < ($$lcssa76 | 0)) $i$839 = $i$839 + 1 | 0; else break;
}
}
if (($$lcssa76 | 0) >= 1) {
$i$937 = 1;
while (1) {
HEAP32[$reg + ($i$937 << 2) >> 2] = HEAP32[$elp + ($$pre$phi$lcssaZ2D * 72 | 0) + ($i$937 << 2) >> 2];
if (($i$937 | 0) < ($$lcssa76 | 0)) $i$937 = $i$937 + 1 | 0; else break;
}
}
$154 = ($$lcssa76 | 0) < 1;
$count$036 = 0;
$i$1035 = 1;
while (1) {
if ($154) $q$4$lcssa = 1; else {
$j$232 = 1;
$q$433 = 1;
while (1) {
$155 = $reg + ($j$232 << 2) | 0;
$156 = HEAP32[$155 >> 2] | 0;
if (($156 | 0) == -1) $q$5 = $q$433; else {
$159 = ($156 + $j$232 | 0) % ($n$0 | 0) | 0;
HEAP32[$155 >> 2] = $159;
$q$5 = HEAP32[$alpha_to$0 + ($159 << 2) >> 2] ^ $q$433;
}
if (($j$232 | 0) < ($$lcssa76 | 0)) {
$j$232 = $j$232 + 1 | 0;
$q$433 = $q$5;
} else {
$q$4$lcssa = $q$5;
break;
}
}
}
if (!$q$4$lcssa) {
HEAP32[$loc + ($count$036 << 2) >> 2] = $n$0 - $i$1035;
$count$1 = $count$036 + 1 | 0;
} else $count$1 = $count$036;
$i$1035 = $i$1035 + 1 | 0;
if (($n$0 | 0) < ($i$1035 | 0)) {
$count$1$lcssa = $count$1;
break;
} else $count$036 = $count$1;
}
if (($count$1$lcssa | 0) != ($$lcssa76 | 0)) {
$$0 = -1;
break;
}
if (($$lcssa76 | 0) > 0) {
$i$1130 = 0;
do {
$175 = $recd$0 + (HEAP32[$loc + ($i$1130 << 2) >> 2] | 0) | 0;
HEAP8[$175 >> 0] = HEAPU8[$175 >> 0] ^ 1;
$i$1130 = $i$1130 + 1 | 0;
} while (($i$1130 | 0) < ($$lcssa76 | 0));
$u$1 = $$pre$phi$lcssaZ2D;
} else $u$1 = $$pre$phi$lcssaZ2D;
} else $u$1 = 0;
$182 = $out_p;
HEAP32[$182 >> 2] = 0;
HEAP32[$182 + 4 >> 2] = 0;
$190 = 1;
$191 = 0;
$194 = 0;
$195 = 0;
$i$1228 = $length$0 - $k$1 | 0;
while (1) {
$192 = ___muldi3(HEAPU8[$recd$0 + $i$1228 >> 0] | 0, 0, $190 | 0, $191 | 0) | 0;
$194 = _i64Add($192 | 0, tempRet0 | 0, $194 | 0, $195 | 0) | 0;
$195 = tempRet0;
$198 = $out_p;
HEAP32[$198 >> 2] = $194;
HEAP32[$198 + 4 >> 2] = $195;
$190 = _bitshift64Shl($190 | 0, $191 | 0, 1) | 0;
$i$1228 = $i$1228 + 1 | 0;
if (($i$1228 | 0) >= ($length$0 | 0)) break; else $191 = tempRet0;
}
if ($28) $$0 = HEAP32[$l + ($u$1 << 2) >> 2] | 0; else $$0 = 0;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0$i$i$i = 0, $$0$i$i$i11 = 0, $$0$i$i$i6 = 0, $$02 = 0, $0 = 0, $1 = 0, $103 = 0, $105 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $119 = 0, $122 = 0, $125 = 0, $126 = 0, $132 = 0, $134 = 0, $138 = 0, $147 = 0, $148 = 0, $15 = 0, $151 = 0, $152 = 0, $155 = 0, $157 = 0, $16 = 0, $160 = 0, $161 = 0, $163 = 0, $17 = 0, $170 = 0, $172 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $186 = 0, $189 = 0, $192 = 0, $193 = 0, $199 = 0, $2 = 0, $201 = 0, $22 = 0, $27 = 0, $3 = 0, $31 = 0, $32 = 0, $34 = 0, $4 = 0, $41 = 0, $43 = 0, $5 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $57 = 0, $60 = 0, $63 = 0, $64 = 0, $70 = 0, $72 = 0, $77 = 0, $78 = 0, $79 = 0, $83 = 0, $87 = 0, $89 = 0, $9 = 0, $93 = 0, $94 = 0, $96 = 0, $__v$i$i10 = 0, $k1$015 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i10 = sp + 72 | 0;
$0 = sp + 56 | 0;
$1 = sp + 48 | 0;
$2 = sp + 32 | 0;
$3 = sp + 24 | 0;
$4 = sp + 8 | 0;
$5 = sp;
L1 : do if (($first | 0) == ($last | 0)) $$02 = $first; else switch (HEAP8[$first >> 0] | 0) {
case 84:
{
$9 = $db + 4 | 0;
$15 = ((HEAP32[$9 >> 2] | 0) - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
$16 = __ZN10__cxxabiv112_GLOBAL__N_120parse_template_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
$17 = HEAP32[$9 >> 2] | 0;
$22 = ($17 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0;
if (!(($16 | 0) != ($first | 0) & ($22 | 0) == ($15 + 1 | 0))) {
if (($22 | 0) == ($15 | 0)) {
$$02 = $first;
break L1;
} else {
$77 = $17;
$k1$015 = $22;
}
while (1) {
$79 = $77;
$77 = $77 + -24 | 0;
do {
$78 = $79 + -24 | 0;
HEAP32[$9 >> 2] = $78;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($78);
$79 = HEAP32[$9 >> 2] | 0;
} while (($79 | 0) != ($77 | 0));
$k1$015 = $k1$015 + -1 | 0;
if (($k1$015 | 0) == ($15 | 0)) {
$$02 = $first;
break L1;
}
}
}
$27 = $db + 16 | 0;
HEAP32[$1 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($0, $17 + -24 | 0, $1);
$31 = $db + 20 | 0;
$32 = HEAP32[$31 >> 2] | 0;
$34 = HEAP32[$db + 24 >> 2] | 0;
if ($32 >>> 0 < $34 >>> 0) {
HEAP32[$32 + 12 >> 2] = HEAP32[$0 + 12 >> 2];
HEAP32[$32 >> 2] = HEAP32[$0 >> 2];
$41 = $0 + 4 | 0;
HEAP32[$32 + 4 >> 2] = HEAP32[$41 >> 2];
$43 = $0 + 8 | 0;
HEAP32[$32 + 8 >> 2] = HEAP32[$43 >> 2];
HEAP32[$43 >> 2] = 0;
HEAP32[$41 >> 2] = 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$31 >> 2] = (HEAP32[$31 >> 2] | 0) + 16;
} else {
$51 = HEAP32[$27 >> 2] | 0;
$52 = $32 - $51 | 0;
$53 = $52 >> 4;
$54 = $53 + 1 | 0;
if (($52 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($27);
$57 = $34 - $51 | 0;
if ($57 >> 4 >>> 0 < 1073741823) {
$60 = $57 >> 3;
$$0$i$i$i = $60 >>> 0 < $54 >>> 0 ? $54 : $60;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i, $53, $db + 28 | 0);
$63 = $__v$i$i10 + 8 | 0;
$64 = HEAP32[$63 >> 2] | 0;
HEAP32[$64 + 12 >> 2] = HEAP32[$0 + 12 >> 2];
HEAP32[$64 >> 2] = HEAP32[$0 >> 2];
$70 = $0 + 4 | 0;
HEAP32[$64 + 4 >> 2] = HEAP32[$70 >> 2];
$72 = $0 + 8 | 0;
HEAP32[$64 + 8 >> 2] = HEAP32[$72 >> 2];
HEAP32[$72 >> 2] = 0;
HEAP32[$70 >> 2] = 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$63 >> 2] = $64 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($27, $__v$i$i10);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($0);
$$02 = $16;
break L1;
break;
}
case 68:
{
$83 = __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($83 | 0) == ($first | 0)) {
$$02 = $first;
break L1;
}
$87 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($87 | 0)) {
$$02 = $first;
break L1;
}
$89 = $db + 16 | 0;
HEAP32[$3 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($2, $87 + -24 | 0, $3);
$93 = $db + 20 | 0;
$94 = HEAP32[$93 >> 2] | 0;
$96 = HEAP32[$db + 24 >> 2] | 0;
if ($94 >>> 0 < $96 >>> 0) {
HEAP32[$94 + 12 >> 2] = HEAP32[$2 + 12 >> 2];
HEAP32[$94 >> 2] = HEAP32[$2 >> 2];
$103 = $2 + 4 | 0;
HEAP32[$94 + 4 >> 2] = HEAP32[$103 >> 2];
$105 = $2 + 8 | 0;
HEAP32[$94 + 8 >> 2] = HEAP32[$105 >> 2];
HEAP32[$105 >> 2] = 0;
HEAP32[$103 >> 2] = 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$93 >> 2] = (HEAP32[$93 >> 2] | 0) + 16;
} else {
$113 = HEAP32[$89 >> 2] | 0;
$114 = $94 - $113 | 0;
$115 = $114 >> 4;
$116 = $115 + 1 | 0;
if (($114 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($89);
$119 = $96 - $113 | 0;
if ($119 >> 4 >>> 0 < 1073741823) {
$122 = $119 >> 3;
$$0$i$i$i6 = $122 >>> 0 < $116 >>> 0 ? $116 : $122;
} else $$0$i$i$i6 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i6, $115, $db + 28 | 0);
$125 = $__v$i$i10 + 8 | 0;
$126 = HEAP32[$125 >> 2] | 0;
HEAP32[$126 + 12 >> 2] = HEAP32[$2 + 12 >> 2];
HEAP32[$126 >> 2] = HEAP32[$2 >> 2];
$132 = $2 + 4 | 0;
HEAP32[$126 + 4 >> 2] = HEAP32[$132 >> 2];
$134 = $2 + 8 | 0;
HEAP32[$126 + 8 >> 2] = HEAP32[$134 >> 2];
HEAP32[$134 >> 2] = 0;
HEAP32[$132 >> 2] = 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$125 >> 2] = $126 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($89, $__v$i$i10);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($2);
$$02 = $83;
break L1;
break;
}
case 83:
{
$138 = __ZN10__cxxabiv112_GLOBAL__N_118parse_substitutionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($138 | 0) != ($first | 0)) {
$$02 = $138;
break L1;
}
if (($last - $first | 0) <= 2) {
$$02 = $first;
break L1;
}
if ((HEAP8[$first + 1 >> 0] | 0) != 116) {
$$02 = $first;
break L1;
}
$147 = $first + 2 | 0;
$148 = __ZN10__cxxabiv112_GLOBAL__N_122parse_unqualified_nameINS0_2DbEEEPKcS4_S4_RT_($147, $last, $db) | 0;
if (($148 | 0) == ($147 | 0)) {
$$02 = $first;
break L1;
}
$151 = $db + 4 | 0;
$152 = HEAP32[$151 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($152 | 0)) {
$$02 = $first;
break L1;
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($152 + -24 | 0, 0, 12922) | 0;
$155 = $db + 16 | 0;
$157 = (HEAP32[$151 >> 2] | 0) + -24 | 0;
HEAP32[$5 >> 2] = HEAP32[$db + 12 >> 2];
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($4, $157, $5);
$160 = $db + 20 | 0;
$161 = HEAP32[$160 >> 2] | 0;
$163 = HEAP32[$db + 24 >> 2] | 0;
if ($161 >>> 0 < $163 >>> 0) {
HEAP32[$161 + 12 >> 2] = HEAP32[$4 + 12 >> 2];
HEAP32[$161 >> 2] = HEAP32[$4 >> 2];
$170 = $4 + 4 | 0;
HEAP32[$161 + 4 >> 2] = HEAP32[$170 >> 2];
$172 = $4 + 8 | 0;
HEAP32[$161 + 8 >> 2] = HEAP32[$172 >> 2];
HEAP32[$172 >> 2] = 0;
HEAP32[$170 >> 2] = 0;
HEAP32[$4 >> 2] = 0;
HEAP32[$160 >> 2] = (HEAP32[$160 >> 2] | 0) + 16;
} else {
$180 = HEAP32[$155 >> 2] | 0;
$181 = $161 - $180 | 0;
$182 = $181 >> 4;
$183 = $182 + 1 | 0;
if (($181 | 0) < -16) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($155);
$186 = $163 - $180 | 0;
if ($186 >> 4 >>> 0 < 1073741823) {
$189 = $186 >> 3;
$$0$i$i$i11 = $189 >>> 0 < $183 >>> 0 ? $183 : $189;
} else $$0$i$i$i11 = 2147483647;
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($__v$i$i10, $$0$i$i$i11, $182, $db + 28 | 0);
$192 = $__v$i$i10 + 8 | 0;
$193 = HEAP32[$192 >> 2] | 0;
HEAP32[$193 + 12 >> 2] = HEAP32[$4 + 12 >> 2];
HEAP32[$193 >> 2] = HEAP32[$4 >> 2];
$199 = $4 + 4 | 0;
HEAP32[$193 + 4 >> 2] = HEAP32[$199 >> 2];
$201 = $4 + 8 | 0;
HEAP32[$193 + 8 >> 2] = HEAP32[$201 >> 2];
HEAP32[$201 >> 2] = 0;
HEAP32[$199 >> 2] = 0;
HEAP32[$4 >> 2] = 0;
HEAP32[$192 >> 2] = $193 + 16;
__ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($155, $__v$i$i10);
__ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($__v$i$i10);
}
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($4);
$$02 = $148;
break L1;
break;
}
default:
{
$$02 = $first;
break L1;
}
} while (0);
STACKTOP = sp;
return $$02 | 0;
}
function _arDetectMarker2($xsize, $ysize, $labelInfo, $imageProcMode, $areaMax, $areaMin, $squareFitThresh, $markerInfo2, $marker2_num) {
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$labelInfo = $labelInfo | 0;
$imageProcMode = $imageProcMode | 0;
$areaMax = $areaMax | 0;
$areaMin = $areaMin | 0;
$squareFitThresh = +$squareFitThresh;
$markerInfo2 = $markerInfo2 | 0;
$marker2_num = $marker2_num | 0;
var $$0 = 0, $$01 = 0, $$02 = 0, $$03 = 0, $$lcssa = 0, $$lcssa15 = 0, $$lcssa16 = 0, $$lcssa17 = 0, $$ph = 0, $$pre10 = 0, $$pre9 = 0, $0 = 0, $115 = 0, $12 = 0, $120 = 0, $129 = 0, $13 = 0, $130 = 0, $132 = 0, $133 = 0.0, $136 = 0.0, $141 = 0.0, $143 = 0.0, $144 = 0, $145 = 0, $146 = 0, $16 = 0, $160 = 0, $164 = 0, $167 = 0, $171 = 0, $174 = 0, $177 = 0, $180 = 0, $183 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $42 = 0, $46 = 0, $47 = 0, $5 = 0, $50 = 0, $52 = 0, $53 = 0, $59 = 0.0, $6 = 0, $66 = 0, $68 = 0, $7 = 0, $74 = 0, $8 = 0, $90 = 0, $dmax$0$i38 = 0, $i$0$i39 = 0, $i$0$v1$0$i = 0, $i$044 = 0, $i$134 = 0, $i$227 = 0, $i$321 = 0, $j$030 = 0, $j$1 = 0, $j$1$in24 = 0, $j$1$in24$phi = 0, $j$123 = 0, $j$125 = 0, $j$218 = 0, $pm$019 = 0, $v1$0$i$lcssa = 0, $v1$0$i37 = 0, $vertex$sroa$12$0$i = 0, $vertex$sroa$4$0$i = 0, $vertex$sroa$8$0$i = 0, $wv1$i = 0, $wv2$i = 0, $wvnum1$i = 0, $wvnum2$i = 0, label = 0, sp = 0, $i$134$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$wv1$i = sp + 56 | 0;
$wvnum1$i = sp + 48 | 0;
$wv2$i = sp + 8 | 0;
$wvnum2$i = sp;
$0 = ($imageProcMode | 0) == 1;
if ($0) {
$$0 = ($xsize | 0) / 2 | 0;
$$01 = ($ysize | 0) / 2 | 0;
$$02 = ($areaMax | 0) / 4 | 0;
$$03 = ($areaMin | 0) / 4 | 0;
} else {
$$0 = $xsize;
$$01 = $ysize;
$$02 = $areaMax;
$$03 = $areaMin;
}
HEAP32[$marker2_num >> 2] = 0;
$5 = $labelInfo + 8 | 0;
$6 = $$0 + -2 | 0;
$7 = $$01 + -2 | 0;
$8 = $labelInfo + 1179664 | 0;
L4 : do if ((HEAP32[$5 >> 2] | 0) > 0) {
$i$044 = 0;
while (1) {
$12 = $labelInfo + 12 + ($i$044 << 2) | 0;
$13 = HEAP32[$12 >> 2] | 0;
L7 : do if (!(($13 | 0) < ($$03 | 0) | ($13 | 0) > ($$02 | 0))) {
$16 = $labelInfo + 131084 + ($i$044 << 4) | 0;
if ((HEAP32[$16 >> 2] | 0) != 1) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 4 >> 2] | 0) != ($6 | 0)) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 8 >> 2] | 0) != 1) if ((HEAP32[$labelInfo + 131084 + ($i$044 << 4) + 12 >> 2] | 0) != ($7 | 0)) if ((_arGetContour(HEAP32[$labelInfo >> 2] | 0, $$0, 0, $8, $i$044 + 1 | 0, $16, $markerInfo2 + ((HEAP32[$marker2_num >> 2] | 0) * 80048 | 0) | 0) | 0) >= 0) {
$34 = HEAP32[$12 >> 2] | 0;
$35 = HEAP32[$marker2_num >> 2] | 0;
$36 = $markerInfo2 + ($35 * 80048 | 0) + 28 | 0;
$37 = HEAP32[$36 >> 2] | 0;
$38 = $markerInfo2 + ($35 * 80048 | 0) + 40028 | 0;
$39 = HEAP32[$38 >> 2] | 0;
$40 = $markerInfo2 + ($35 * 80048 | 0) + 24 | 0;
$42 = (HEAP32[$40 >> 2] | 0) + -1 | 0;
if (($42 | 0) > 1) {
$dmax$0$i38 = 0;
$i$0$i39 = 1;
$v1$0$i37 = 0;
while (1) {
$46 = (HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 28 + ($i$0$i39 << 2) >> 2] | 0) - $37 | 0;
$47 = Math_imul($46, $46) | 0;
$50 = (HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 40028 + ($i$0$i39 << 2) >> 2] | 0) - $39 | 0;
$52 = (Math_imul($50, $50) | 0) + $47 | 0;
$53 = ($52 | 0) > ($dmax$0$i38 | 0);
$i$0$v1$0$i = $53 ? $i$0$i39 : $v1$0$i37;
$i$0$i39 = $i$0$i39 + 1 | 0;
if (($i$0$i39 | 0) >= ($42 | 0)) {
$v1$0$i$lcssa = $i$0$v1$0$i;
break;
} else {
$dmax$0$i38 = $53 ? $52 : $dmax$0$i38;
$v1$0$i37 = $i$0$v1$0$i;
}
}
} else $v1$0$i$lcssa = 0;
$59 = +($34 | 0) / .75 * .01 * $squareFitThresh;
HEAP32[$wvnum1$i >> 2] = 0;
HEAP32[$wvnum2$i >> 2] = 0;
L18 : do if ((_get_vertex($36, $38, 0, $v1$0$i$lcssa, $59, $wv1$i, $wvnum1$i) | 0) >= 0) if ((_get_vertex($36, $38, $v1$0$i$lcssa, (HEAP32[$40 >> 2] | 0) + -1 | 0, $59, $wv2$i, $wvnum2$i) | 0) >= 0) {
$66 = HEAP32[$wvnum1$i >> 2] | 0;
$68 = HEAP32[$wvnum2$i >> 2] | 0;
do if (($66 | 0) == 1 & ($68 | 0) == 1) {
$vertex$sroa$12$0$i = HEAP32[$wv2$i >> 2] | 0;
$vertex$sroa$4$0$i = HEAP32[$wv1$i >> 2] | 0;
$vertex$sroa$8$0$i = $v1$0$i$lcssa;
} else {
if (($66 | 0) > 1 & ($68 | 0) == 0) {
$74 = ($v1$0$i$lcssa | 0) / 2 | 0;
HEAP32[$wvnum2$i >> 2] = 0;
HEAP32[$wvnum1$i >> 2] = 0;
if ((_get_vertex($36, $38, 0, $74, $59, $wv1$i, $wvnum1$i) | 0) < 0) break L18;
if ((_get_vertex($36, $38, $74, $v1$0$i$lcssa, $59, $wv2$i, $wvnum2$i) | 0) < 0) break L18;
if (!((HEAP32[$wvnum1$i >> 2] | 0) == 1 & (HEAP32[$wvnum2$i >> 2] | 0) == 1)) break L18;
$vertex$sroa$12$0$i = $v1$0$i$lcssa;
$vertex$sroa$4$0$i = HEAP32[$wv1$i >> 2] | 0;
$vertex$sroa$8$0$i = HEAP32[$wv2$i >> 2] | 0;
break;
}
if (!(($66 | 0) == 0 & ($68 | 0) > 1)) break L18;
$90 = ($v1$0$i$lcssa + -1 + (HEAP32[$40 >> 2] | 0) | 0) / 2 | 0;
HEAP32[$wvnum2$i >> 2] = 0;
HEAP32[$wvnum1$i >> 2] = 0;
if ((_get_vertex($36, $38, $v1$0$i$lcssa, $90, $59, $wv1$i, $wvnum1$i) | 0) < 0) break L18;
if ((_get_vertex($36, $38, $90, (HEAP32[$40 >> 2] | 0) + -1 | 0, $59, $wv2$i, $wvnum2$i) | 0) < 0) break L18;
if (!((HEAP32[$wvnum1$i >> 2] | 0) == 1 & (HEAP32[$wvnum2$i >> 2] | 0) == 1)) break L18;
$vertex$sroa$12$0$i = HEAP32[$wv2$i >> 2] | 0;
$vertex$sroa$4$0$i = $v1$0$i$lcssa;
$vertex$sroa$8$0$i = HEAP32[$wv1$i >> 2] | 0;
} while (0);
HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80028 >> 2] = 0;
HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80032 >> 2] = $vertex$sroa$4$0$i;
HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80036 >> 2] = $vertex$sroa$8$0$i;
HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80040 >> 2] = $vertex$sroa$12$0$i;
HEAP32[$markerInfo2 + ($35 * 80048 | 0) + 80044 >> 2] = (HEAP32[$40 >> 2] | 0) + -1;
HEAP32[$markerInfo2 + ((HEAP32[$marker2_num >> 2] | 0) * 80048 | 0) >> 2] = HEAP32[$12 >> 2];
$115 = HEAP32[$marker2_num >> 2] | 0;
HEAPF64[$markerInfo2 + ($115 * 80048 | 0) + 8 >> 3] = +HEAPF64[$labelInfo + 655376 + ($i$044 << 4) >> 3];
HEAPF64[$markerInfo2 + ($115 * 80048 | 0) + 16 >> 3] = +HEAPF64[$labelInfo + 655376 + ($i$044 << 4) + 8 >> 3];
$120 = $115 + 1 | 0;
HEAP32[$marker2_num >> 2] = $120;
if (($120 | 0) == 60) {
$$ph = 60;
break L4;
} else break L7;
} while (0);
}
} while (0);
$i$044 = $i$044 + 1 | 0;
if (($i$044 | 0) >= (HEAP32[$5 >> 2] | 0)) {
label = 4;
break;
}
}
} else label = 4; while (0);
if ((label | 0) == 4) $$ph = HEAP32[$marker2_num >> 2] | 0;
if (($$ph | 0) > 0) {
$132 = $$ph;
$i$134 = 0;
while (1) {
$i$134$looptemp = $i$134;
$i$134 = $i$134 + 1 | 0;
$129 = $markerInfo2 + ($i$134$looptemp * 80048 | 0) + 16 | 0;
$130 = $markerInfo2 + ($i$134$looptemp * 80048 | 0) | 0;
if (($i$134 | 0) < ($132 | 0)) {
$133 = +HEAPF64[$markerInfo2 + ($i$134$looptemp * 80048 | 0) + 8 >> 3];
$j$030 = $i$134;
do {
$136 = $133 - +HEAPF64[$markerInfo2 + ($j$030 * 80048 | 0) + 8 >> 3];
$141 = +HEAPF64[$129 >> 3] - +HEAPF64[$markerInfo2 + ($j$030 * 80048 | 0) + 16 >> 3];
$143 = $136 * $136 + $141 * $141;
$144 = HEAP32[$130 >> 2] | 0;
$145 = $markerInfo2 + ($j$030 * 80048 | 0) | 0;
$146 = HEAP32[$145 >> 2] | 0;
if (($144 | 0) > ($146 | 0)) {
if ($143 < +(($144 | 0) / 4 | 0 | 0)) HEAP32[$145 >> 2] = 0;
} else if ($143 < +(($146 | 0) / 4 | 0 | 0)) HEAP32[$130 >> 2] = 0;
$j$030 = $j$030 + 1 | 0;
$$pre10 = HEAP32[$marker2_num >> 2] | 0;
} while (($j$030 | 0) < ($$pre10 | 0));
$$lcssa16 = $$pre10;
} else $$lcssa16 = $132;
if (($i$134 | 0) >= ($$lcssa16 | 0)) {
$$lcssa17 = $$lcssa16;
break;
} else $132 = $$lcssa16;
}
} else $$lcssa17 = $$ph;
if (($$lcssa17 | 0) > 0) {
$160 = $$lcssa17;
$i$227 = 0;
while (1) {
if (!(HEAP32[$markerInfo2 + ($i$227 * 80048 | 0) >> 2] | 0)) {
$j$123 = $i$227 + 1 | 0;
if (($j$123 | 0) < ($160 | 0)) {
$j$1$in24 = $i$227;
$j$125 = $j$123;
while (1) {
_memcpy($markerInfo2 + ($j$1$in24 * 80048 | 0) | 0, $markerInfo2 + ($j$125 * 80048 | 0) | 0, 80048) | 0;
$$pre9 = HEAP32[$marker2_num >> 2] | 0;
$j$1 = $j$125 + 1 | 0;
if (($j$1 | 0) < ($$pre9 | 0)) {
$j$1$in24$phi = $j$125;
$j$125 = $j$1;
$j$1$in24 = $j$1$in24$phi;
} else {
$$lcssa = $$pre9;
break;
}
}
} else $$lcssa = $160;
$164 = $$lcssa + -1 | 0;
HEAP32[$marker2_num >> 2] = $164;
$167 = $164;
} else $167 = $160;
$i$227 = $i$227 + 1 | 0;
if (($i$227 | 0) >= ($167 | 0)) {
$$lcssa15 = $167;
break;
} else $160 = $167;
}
} else $$lcssa15 = $$lcssa17;
if ($0 & ($$lcssa15 | 0) > 0) {
$i$321 = 0;
$pm$019 = $markerInfo2;
while (1) {
HEAP32[$pm$019 >> 2] = HEAP32[$pm$019 >> 2] << 2;
$171 = $pm$019 + 8 | 0;
HEAPF64[$171 >> 3] = +HEAPF64[$171 >> 3] * 2.0;
$174 = $pm$019 + 16 | 0;
HEAPF64[$174 >> 3] = +HEAPF64[$174 >> 3] * 2.0;
$177 = $pm$019 + 24 | 0;
if ((HEAP32[$177 >> 2] | 0) > 0) {
$j$218 = 0;
do {
$180 = $pm$019 + 28 + ($j$218 << 2) | 0;
HEAP32[$180 >> 2] = HEAP32[$180 >> 2] << 1;
$183 = $pm$019 + 40028 + ($j$218 << 2) | 0;
HEAP32[$183 >> 2] = HEAP32[$183 >> 2] << 1;
$j$218 = $j$218 + 1 | 0;
} while (($j$218 | 0) < (HEAP32[$177 >> 2] | 0));
}
$i$321 = $i$321 + 1 | 0;
if (($i$321 | 0) >= (HEAP32[$marker2_num >> 2] | 0)) break; else $pm$019 = $pm$019 + 80048 | 0;
}
}
STACKTOP = sp;
return 0;
}
function _pattern_match($pattHandle, $mode, $data, $size, $code, $dir, $cf) {
$pattHandle = $pattHandle | 0;
$mode = $mode | 0;
$data = $data | 0;
$size = $size | 0;
$code = $code | 0;
$dir = $dir | 0;
$cf = $cf | 0;
var $$0 = 0, $$lcssa103 = 0, $$lcssa108 = 0, $1 = 0, $100 = 0, $101 = 0, $102 = 0, $105 = 0, $11 = 0, $111 = 0, $118 = 0.0, $119 = 0, $14 = 0, $2 = 0, $20 = 0, $23 = 0, $26 = 0.0, $31 = 0, $33 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $45 = 0, $51 = 0, $58 = 0.0, $59 = 0, $63 = 0, $65 = 0, $72 = 0, $75 = 0, $81 = 0, $84 = 0, $87 = 0.0, $91 = 0, $93 = 0, $94 = 0, $96 = 0, $97 = 0, $ave$0$lcssa = 0, $ave$055 = 0, $ave$1$lcssa = 0, $ave$183 = 0, $i$056 = 0, $i$150 = 0, $i$235 = 0, $i$384 = 0, $i$478 = 0, $i$560 = 0, $j$038 = 0, $j$166 = 0, $k$042 = 0, $k$1 = 0, $k$1$in = 0, $k$1$lcssa = 0, $k$1102 = 0, $k$270 = 0, $k$3 = 0, $k$3$in = 0, $k$3$lcssa = 0, $k$3106 = 0, $l$043 = 0, $l$171 = 0, $max$0$lcssa = 0.0, $max$044 = 0.0, $max$139 = 0.0, $max$2 = 0.0, $max$3 = 0.0, $max$4$lcssa = 0.0, $max$472 = 0.0, $max$567 = 0.0, $max$6 = 0.0, $max$7 = 0.0, $res1$0$lcssa = 0, $res1$040 = 0, $res1$136 = 0, $res1$2 = 0, $res1$3 = 0, $res1$4$lcssa = 0, $res1$468 = 0, $res1$564 = 0, $res1$6 = 0, $res1$7 = 0, $res2$0$lcssa = 0, $res2$041 = 0, $res2$137 = 0, $res2$2 = 0, $res2$3 = 0, $res2$4$lcssa = 0, $res2$469 = 0, $res2$565 = 0, $res2$6 = 0, $res2$7 = 0, $sum$0$lcssa = 0.0, $sum$049 = 0, $sum$1$lcssa = 0, $sum$134 = 0, $sum$2$lcssa = 0.0, $sum$277 = 0, $sum$3$lcssa = 0, $sum$359 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
L1 : do if (!$pattHandle) {
HEAP32[$code >> 2] = 0;
HEAP32[$dir >> 2] = 0;
HEAPF64[$cf >> 3] = -1.0;
$$0 = -1;
} else switch ($mode | 0) {
case 0:
{
$1 = Math_imul($size, $size) | 0;
$2 = $1 * 3 | 0;
$4 = _malloc($1 * 12 | 0) | 0;
if (!$4) {
_arLog(3, 5471, $vararg_buffer);
_exit(1);
}
if (!$1) $ave$0$lcssa = 0; else {
$ave$055 = 0;
$i$056 = 0;
while (1) {
$11 = ((HEAPU8[$data + $i$056 >> 0] | 0) ^ 255) + $ave$055 | 0;
$i$056 = $i$056 + 1 | 0;
if (($i$056 | 0) >= ($2 | 0)) {
$ave$0$lcssa = $11;
break;
} else $ave$055 = $11;
}
}
$14 = ($ave$0$lcssa | 0) / ($2 | 0) | 0;
if (!$1) $sum$0$lcssa = 0.0; else {
$i$150 = 0;
$sum$049 = 0;
while (1) {
$20 = ((HEAPU8[$data + $i$150 >> 0] | 0) ^ 255) - $14 | 0;
HEAP32[$4 + ($i$150 << 2) >> 2] = $20;
$23 = (Math_imul($20, $20) | 0) + $sum$049 | 0;
$i$150 = $i$150 + 1 | 0;
if (($i$150 | 0) >= ($2 | 0)) {
$$lcssa103 = $23;
break;
} else $sum$049 = $23;
}
$sum$0$lcssa = +($$lcssa103 | 0);
}
$26 = +Math_sqrt(+$sum$0$lcssa);
if ($26 / (+($size | 0) * 1.7320508) < 15.0) {
HEAP32[$code >> 2] = 0;
HEAP32[$dir >> 2] = 0;
HEAPF64[$cf >> 3] = -1.0;
_free($4);
$$0 = -2;
break L1;
}
$31 = HEAP32[$pattHandle >> 2] | 0;
$33 = $pattHandle + 12 | 0;
$34 = $pattHandle + 16 | 0;
if (($31 | 0) > 0) {
$36 = HEAP32[$pattHandle + 8 >> 2] | 0;
$37 = ($1 | 0) == 0;
$k$042 = -1;
$l$043 = 0;
$max$044 = 0.0;
$res1$040 = -1;
$res2$041 = -1;
while (1) {
$k$1$in = $k$042;
L25 : while (1) {
$k$1 = $k$1$in + 1 | 0;
switch (HEAP32[$36 + ($k$1 << 2) >> 2] | 0) {
case 0:
{
$k$1$in = $k$1;
break;
}
case 2:
{
$k$1102 = $k$1;
$max$3 = $max$044;
$res1$3 = $res1$040;
$res2$3 = $res2$041;
break L25;
break;
}
default:
{
$k$1$lcssa = $k$1;
label = 17;
break L25;
}
}
}
if ((label | 0) == 17) {
label = 0;
$40 = $k$1$lcssa << 2;
$41 = HEAP32[$34 >> 2] | 0;
$j$038 = 0;
$max$139 = $max$044;
$res1$136 = $res1$040;
$res2$137 = $res2$041;
while (1) {
$42 = $j$038 + $40 | 0;
if ($37) $sum$1$lcssa = 0; else {
$45 = HEAP32[(HEAP32[$33 >> 2] | 0) + ($42 << 2) >> 2] | 0;
$i$235 = 0;
$sum$134 = 0;
while (1) {
$51 = (Math_imul(HEAP32[$45 + ($i$235 << 2) >> 2] | 0, HEAP32[$4 + ($i$235 << 2) >> 2] | 0) | 0) + $sum$134 | 0;
$i$235 = $i$235 + 1 | 0;
if (($i$235 | 0) >= ($2 | 0)) {
$sum$1$lcssa = $51;
break;
} else $sum$134 = $51;
}
}
$58 = +($sum$1$lcssa | 0) / +HEAPF64[$41 + ($42 << 3) >> 3] / $26;
$59 = $58 > $max$139;
$res1$2 = $59 ? $j$038 : $res1$136;
$res2$2 = $59 ? $k$1$lcssa : $res2$137;
$max$2 = $59 ? $58 : $max$139;
$j$038 = $j$038 + 1 | 0;
if (($j$038 | 0) == 4) {
$k$1102 = $k$1$lcssa;
$max$3 = $max$2;
$res1$3 = $res1$2;
$res2$3 = $res2$2;
break;
} else {
$max$139 = $max$2;
$res1$136 = $res1$2;
$res2$137 = $res2$2;
}
}
}
$l$043 = $l$043 + 1 | 0;
if (($l$043 | 0) >= ($31 | 0)) {
$max$0$lcssa = $max$3;
$res1$0$lcssa = $res1$3;
$res2$0$lcssa = $res2$3;
break;
} else {
$k$042 = $k$1102;
$max$044 = $max$3;
$res1$040 = $res1$3;
$res2$041 = $res2$3;
}
}
} else {
$max$0$lcssa = 0.0;
$res1$0$lcssa = -1;
$res2$0$lcssa = -1;
}
HEAP32[$dir >> 2] = $res1$0$lcssa;
HEAP32[$code >> 2] = $res2$0$lcssa;
HEAPF64[$cf >> 3] = $max$0$lcssa;
_free($4);
$$0 = 0;
break L1;
break;
}
case 1:
{
$63 = Math_imul($size, $size) | 0;
$65 = _malloc($63 << 2) | 0;
if (!$65) {
_arLog(3, 5471, $vararg_buffer1);
_exit(1);
}
if (!$63) $ave$1$lcssa = 0; else {
$ave$183 = 0;
$i$384 = 0;
while (1) {
$72 = ((HEAPU8[$data + $i$384 >> 0] | 0) ^ 255) + $ave$183 | 0;
$i$384 = $i$384 + 1 | 0;
if (($i$384 | 0) >= ($63 | 0)) {
$ave$1$lcssa = $72;
break;
} else $ave$183 = $72;
}
}
$75 = ($ave$1$lcssa | 0) / ($63 | 0) | 0;
if (!$63) $sum$2$lcssa = 0.0; else {
$i$478 = 0;
$sum$277 = 0;
while (1) {
$81 = ((HEAPU8[$data + $i$478 >> 0] | 0) ^ 255) - $75 | 0;
HEAP32[$65 + ($i$478 << 2) >> 2] = $81;
$84 = (Math_imul($81, $81) | 0) + $sum$277 | 0;
$i$478 = $i$478 + 1 | 0;
if (($i$478 | 0) >= ($63 | 0)) {
$$lcssa108 = $84;
break;
} else $sum$277 = $84;
}
$sum$2$lcssa = +($$lcssa108 | 0);
}
$87 = +Math_sqrt(+$sum$2$lcssa);
if ($87 / +($size | 0) < 15.0) {
HEAP32[$code >> 2] = 0;
HEAP32[$dir >> 2] = 0;
HEAPF64[$cf >> 3] = -1.0;
_free($65);
$$0 = -2;
break L1;
}
$91 = HEAP32[$pattHandle >> 2] | 0;
$93 = $pattHandle + 20 | 0;
$94 = $pattHandle + 24 | 0;
if (($91 | 0) > 0) {
$96 = HEAP32[$pattHandle + 8 >> 2] | 0;
$97 = ($63 | 0) == 0;
$k$270 = -1;
$l$171 = 0;
$max$472 = 0.0;
$res1$468 = -1;
$res2$469 = -1;
while (1) {
$k$3$in = $k$270;
L58 : while (1) {
$k$3 = $k$3$in + 1 | 0;
switch (HEAP32[$96 + ($k$3 << 2) >> 2] | 0) {
case 0:
{
$k$3$in = $k$3;
break;
}
case 2:
{
$k$3106 = $k$3;
$max$7 = $max$472;
$res1$7 = $res1$468;
$res2$7 = $res2$469;
break L58;
break;
}
default:
{
$k$3$lcssa = $k$3;
label = 37;
break L58;
}
}
}
if ((label | 0) == 37) {
label = 0;
$100 = $k$3$lcssa << 2;
$101 = HEAP32[$94 >> 2] | 0;
$j$166 = 0;
$max$567 = $max$472;
$res1$564 = $res1$468;
$res2$565 = $res2$469;
while (1) {
$102 = $j$166 + $100 | 0;
if ($97) $sum$3$lcssa = 0; else {
$105 = HEAP32[(HEAP32[$93 >> 2] | 0) + ($102 << 2) >> 2] | 0;
$i$560 = 0;
$sum$359 = 0;
while (1) {
$111 = (Math_imul(HEAP32[$105 + ($i$560 << 2) >> 2] | 0, HEAP32[$65 + ($i$560 << 2) >> 2] | 0) | 0) + $sum$359 | 0;
$i$560 = $i$560 + 1 | 0;
if (($i$560 | 0) >= ($63 | 0)) {
$sum$3$lcssa = $111;
break;
} else $sum$359 = $111;
}
}
$118 = +($sum$3$lcssa | 0) / +HEAPF64[$101 + ($102 << 3) >> 3] / $87;
$119 = $118 > $max$567;
$res1$6 = $119 ? $j$166 : $res1$564;
$res2$6 = $119 ? $k$3$lcssa : $res2$565;
$max$6 = $119 ? $118 : $max$567;
$j$166 = $j$166 + 1 | 0;
if (($j$166 | 0) == 4) {
$k$3106 = $k$3$lcssa;
$max$7 = $max$6;
$res1$7 = $res1$6;
$res2$7 = $res2$6;
break;
} else {
$max$567 = $max$6;
$res1$564 = $res1$6;
$res2$565 = $res2$6;
}
}
}
$l$171 = $l$171 + 1 | 0;
if (($l$171 | 0) >= ($91 | 0)) {
$max$4$lcssa = $max$7;
$res1$4$lcssa = $res1$7;
$res2$4$lcssa = $res2$7;
break;
} else {
$k$270 = $k$3106;
$max$472 = $max$7;
$res1$468 = $res1$7;
$res2$469 = $res2$7;
}
}
} else {
$max$4$lcssa = 0.0;
$res1$4$lcssa = -1;
$res2$4$lcssa = -1;
}
HEAP32[$dir >> 2] = $res1$4$lcssa;
HEAP32[$code >> 2] = $res2$4$lcssa;
HEAPF64[$cf >> 3] = $max$4$lcssa;
_free($65);
$$0 = 0;
break L1;
break;
}
default:
{
$$0 = -1;
break L1;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arMultiReadConfigFile($filename, $pattHandle) {
$filename = $filename | 0;
$pattHandle = $pattHandle | 0;
var $$0 = 0, $0 = 0, $108 = 0, $11 = 0, $118 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $21 = 0, $28 = 0, $34 = 0, $4 = 0, $45 = 0, $49 = 0, $50 = 0, $52 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $79 = 0.0, $83 = 0.0, $9 = 0, $buf = 0, $dummy = 0, $i$052 = 0, $i$052$lcssa64 = 0, $i$052$lcssa65 = 0, $i$052$lcssa66 = 0, $j$0 = 0, $j$150 = 0, $num = 0, $pattPath = 0, $patt_type$0$lcssa = 0, $patt_type$051 = 0, $patt_type$1 = 0, $t1 = 0, $t2 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer17 = 0, $vararg_buffer21 = 0, $vararg_buffer24 = 0, $vararg_buffer28 = 0, $vararg_buffer31 = 0, $vararg_buffer35 = 0, $vararg_buffer41 = 0, $vararg_buffer45 = 0, $vararg_buffer49 = 0, $vararg_buffer5 = 0, $vararg_buffer55 = 0, $vararg_buffer59 = 0, $vararg_buffer8 = 0, $wpos3d = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2544 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer59 = sp + 208 | 0;
$vararg_buffer55 = sp + 200 | 0;
$vararg_buffer49 = sp + 184 | 0;
$vararg_buffer45 = sp + 176 | 0;
$vararg_buffer41 = sp + 168 | 0;
$vararg_buffer35 = sp + 152 | 0;
$vararg_buffer31 = sp + 144 | 0;
$vararg_buffer28 = sp + 136 | 0;
$vararg_buffer24 = sp + 128 | 0;
$vararg_buffer21 = sp + 120 | 0;
$vararg_buffer17 = sp + 112 | 0;
$vararg_buffer13 = sp + 104 | 0;
$vararg_buffer11 = sp + 96 | 0;
$vararg_buffer8 = sp + 88 | 0;
$vararg_buffer5 = sp + 80 | 0;
$vararg_buffer1 = sp + 72 | 0;
$vararg_buffer = sp + 64 | 0;
$wpos3d = sp;
$buf = sp + 2280 | 0;
$pattPath = sp + 232 | 0;
$dummy = sp + 224 | 0;
$num = sp + 220 | 0;
$t1 = sp + 216 | 0;
$t2 = sp + 212 | 0;
$0 = _fopen($filename, 5306) | 0;
L1 : do if (!$0) {
HEAP32[$vararg_buffer >> 2] = $filename;
_arLog(3, 5308, $vararg_buffer);
$2 = ___errno_location() | 0;
$4 = _strerror(HEAP32[$2 >> 2] | 0) | 0;
HEAP32[$vararg_buffer1 >> 2] = 13835;
HEAP32[$vararg_buffer1 + 4 >> 2] = $4;
_arLog(3, 5361, $vararg_buffer1);
$$0 = 0;
} else {
_get_buff($buf, $0);
HEAP32[$vararg_buffer5 >> 2] = $num;
if ((_sscanf($buf, 5367, $vararg_buffer5) | 0) != 1) {
HEAP32[$vararg_buffer8 >> 2] = $filename;
_arLog(3, 5370, $vararg_buffer8);
_fclose($0) | 0;
$$0 = 0;
break;
}
$7 = HEAP32[$num >> 2] | 0;
$9 = _malloc($7 * 320 | 0) | 0;
if (!$9) {
_arLog(3, 5471, $vararg_buffer11);
_exit(1);
}
$11 = $wpos3d + 8 | 0;
$12 = $wpos3d + 16 | 0;
$13 = $wpos3d + 24 | 0;
$14 = $wpos3d + 32 | 0;
$15 = $wpos3d + 40 | 0;
$16 = $wpos3d + 48 | 0;
$17 = $wpos3d + 56 | 0;
$18 = ($pattHandle | 0) == 0;
L10 : do if (($7 | 0) > 0) {
$i$052 = 0;
$patt_type$051 = 0;
L11 : while (1) {
_get_buff($buf, $0);
$20 = $9 + ($i$052 * 320 | 0) | 0;
$21 = $9 + ($i$052 * 320 | 0) + 312 | 0;
HEAP32[$vararg_buffer13 >> 2] = $21;
HEAP32[$vararg_buffer13 + 4 >> 2] = $dummy;
if ((_sscanf($buf, 5488, $vararg_buffer13) | 0) == 1) {
$34 = HEAP32[$21 >> 2] | 0;
HEAP32[$20 >> 2] = ($34 & -32768 | 0) == 0 & 0 == 0 ? $34 & 32767 : 0;
HEAP32[$9 + ($i$052 * 320 | 0) + 4 >> 2] = 1;
$patt_type$1 = $patt_type$051 | 2;
} else {
if ($18) {
label = 10;
break;
}
if (!(_arUtilGetDirectoryNameFromPath($pattPath, $filename, 2048, 1) | 0)) {
label = 12;
break;
}
_strncat($pattPath, $buf, 2047 - (_strlen($pattPath) | 0) | 0) | 0;
$28 = _arPattLoad($pattHandle, $pattPath) | 0;
HEAP32[$20 >> 2] = $28;
if (($28 | 0) < 0) {
label = 14;
break;
}
HEAP32[$9 + ($i$052 * 320 | 0) + 4 >> 2] = 0;
$patt_type$1 = $patt_type$051 | 1;
}
_get_buff($buf, $0);
$45 = $9 + ($i$052 * 320 | 0) + 8 | 0;
HEAP32[$vararg_buffer28 >> 2] = $45;
if ((_sscanf($buf, 5784, $vararg_buffer28) | 0) != 1) {
$i$052$lcssa64 = $i$052;
label = 18;
break;
}
_get_buff($buf, $0);
$49 = $9 + ($i$052 * 320 | 0) + 16 | 0;
$50 = $9 + ($i$052 * 320 | 0) + 24 | 0;
$52 = $9 + ($i$052 * 320 | 0) + 40 | 0;
HEAP32[$vararg_buffer35 >> 2] = $49;
HEAP32[$vararg_buffer35 + 4 >> 2] = $50;
HEAP32[$vararg_buffer35 + 8 >> 2] = $9 + ($i$052 * 320 | 0) + 32;
HEAP32[$vararg_buffer35 + 12 >> 2] = $52;
if ((_sscanf($buf, 5893, $vararg_buffer35) | 0) == 4) $j$0 = 1; else {
HEAP32[$vararg_buffer41 >> 2] = $t1;
HEAP32[$vararg_buffer41 + 4 >> 2] = $t2;
if ((_sscanf($buf, 5909, $vararg_buffer41) | 0) == 2) $j$0 = 0; else {
$i$052$lcssa65 = $i$052;
label = 21;
break;
}
}
do {
_get_buff($buf, $0);
HEAP32[$vararg_buffer49 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5);
HEAP32[$vararg_buffer49 + 4 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 8;
HEAP32[$vararg_buffer49 + 8 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 16;
HEAP32[$vararg_buffer49 + 12 >> 2] = $9 + ($i$052 * 320 | 0) + 16 + ($j$0 << 5) + 24;
if ((_sscanf($buf, 5893, $vararg_buffer49) | 0) != 4) {
$i$052$lcssa66 = $i$052;
label = 23;
break L11;
}
$j$0 = $j$0 + 1 | 0;
} while (($j$0 | 0) < 3);
_arUtilMatInv($49, $9 + ($i$052 * 320 | 0) + 112 | 0) | 0;
$68 = +HEAPF64[$45 >> 3];
$69 = $68 * -.5;
HEAPF64[$wpos3d >> 3] = $69;
$70 = $68 * .5;
HEAPF64[$11 >> 3] = $70;
HEAPF64[$12 >> 3] = $70;
HEAPF64[$13 >> 3] = $70;
HEAPF64[$14 >> 3] = $70;
HEAPF64[$15 >> 3] = $69;
HEAPF64[$16 >> 3] = $69;
HEAPF64[$17 >> 3] = $69;
$71 = $9 + ($i$052 * 320 | 0) + 48 | 0;
$72 = $9 + ($i$052 * 320 | 0) + 56 | 0;
$73 = $9 + ($i$052 * 320 | 0) + 72 | 0;
$74 = $9 + ($i$052 * 320 | 0) + 80 | 0;
$75 = $9 + ($i$052 * 320 | 0) + 88 | 0;
$76 = $9 + ($i$052 * 320 | 0) + 104 | 0;
$j$150 = 0;
do {
$79 = +HEAPF64[$wpos3d + ($j$150 << 4) >> 3];
$83 = +HEAPF64[$wpos3d + ($j$150 << 4) + 8 >> 3];
HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) >> 3] = +HEAPF64[$52 >> 3] + (+HEAPF64[$49 >> 3] * $79 + +HEAPF64[$50 >> 3] * $83);
HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) + 8 >> 3] = +HEAPF64[$73 >> 3] + (+HEAPF64[$71 >> 3] * $79 + +HEAPF64[$72 >> 3] * $83);
HEAPF64[$9 + ($i$052 * 320 | 0) + 208 + ($j$150 * 24 | 0) + 16 >> 3] = +HEAPF64[$76 >> 3] + (+HEAPF64[$74 >> 3] * $79 + +HEAPF64[$75 >> 3] * $83);
$j$150 = $j$150 + 1 | 0;
} while (($j$150 | 0) != 4);
$i$052 = $i$052 + 1 | 0;
if (($i$052 | 0) >= (HEAP32[$num >> 2] | 0)) {
$patt_type$0$lcssa = $patt_type$1;
break L10;
} else $patt_type$051 = $patt_type$1;
}
if ((label | 0) == 10) {
HEAP32[$vararg_buffer17 >> 2] = $filename;
HEAP32[$vararg_buffer17 + 4 >> 2] = $buf;
_arLog(3, 5495, $vararg_buffer17);
} else if ((label | 0) == 12) {
HEAP32[$vararg_buffer21 >> 2] = $filename;
_arLog(3, 5623, $vararg_buffer21);
} else if ((label | 0) == 14) {
HEAP32[$vararg_buffer24 >> 2] = $filename;
HEAP32[$vararg_buffer24 + 4 >> 2] = $pattPath;
_arLog(3, 5707, $vararg_buffer24);
} else if ((label | 0) == 18) {
HEAP32[$vararg_buffer31 >> 2] = $filename;
HEAP32[$vararg_buffer31 + 4 >> 2] = $i$052$lcssa64 + 1;
_arLog(3, 5788, $vararg_buffer31);
} else if ((label | 0) == 21) {
HEAP32[$vararg_buffer45 >> 2] = $filename;
HEAP32[$vararg_buffer45 + 4 >> 2] = $i$052$lcssa65 + 1;
_arLog(3, 5915, $vararg_buffer45);
} else if ((label | 0) == 23) {
HEAP32[$vararg_buffer55 >> 2] = $filename;
HEAP32[$vararg_buffer55 + 4 >> 2] = $i$052$lcssa66 + 1;
_arLog(3, 5915, $vararg_buffer55);
}
_fclose($0) | 0;
_free($9);
$$0 = 0;
break L1;
} else $patt_type$0$lcssa = 0; while (0);
_fclose($0) | 0;
$108 = _malloc(136) | 0;
if (!$108) {
_arLog(3, 5471, $vararg_buffer59);
_exit(1);
}
HEAP32[$108 >> 2] = $9;
HEAP32[$108 + 4 >> 2] = HEAP32[$num >> 2];
HEAP32[$108 + 104 >> 2] = 0;
do if (($patt_type$0$lcssa & 3 | 0) == 3) HEAP32[$108 + 108 >> 2] = 2; else {
$118 = $108 + 108 | 0;
if (!($patt_type$0$lcssa & 1)) {
HEAP32[$118 >> 2] = 1;
break;
} else {
HEAP32[$118 >> 2] = 0;
break;
}
} while (0);
HEAPF64[$108 + 112 >> 3] = .5;
HEAPF64[$108 + 120 >> 3] = .5;
$$0 = $108;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
$rem = $rem | 0;
var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $_0$0 = 0, $_0$1 = 0, $q_sroa_1_1198$looptemp = 0;
$n_sroa_0_0_extract_trunc = $a$0;
$n_sroa_1_4_extract_shift$0 = $a$1;
$n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0;
$d_sroa_0_0_extract_trunc = $b$0;
$d_sroa_1_4_extract_shift$0 = $b$1;
$d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0;
if (!$n_sroa_1_4_extract_trunc) {
$4 = ($rem | 0) != 0;
if (!$d_sroa_1_4_extract_trunc) {
if ($4) {
HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0);
HEAP32[$rem + 4 >> 2] = 0;
}
$_0$1 = 0;
$_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
if (!$4) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 | 0;
HEAP32[$rem + 4 >> 2] = $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
}
$17 = ($d_sroa_1_4_extract_trunc | 0) == 0;
do if (!$d_sroa_0_0_extract_trunc) {
if ($17) {
if ($rem) {
HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0);
HEAP32[$rem + 4 >> 2] = 0;
}
$_0$1 = 0;
$_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
if (!$n_sroa_0_0_extract_trunc) {
if ($rem) {
HEAP32[$rem >> 2] = 0;
HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0);
}
$_0$1 = 0;
$_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$37 = $d_sroa_1_4_extract_trunc - 1 | 0;
if (!($37 & $d_sroa_1_4_extract_trunc)) {
if ($rem) {
HEAP32[$rem >> 2] = $a$0 | 0;
HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0;
}
$_0$1 = 0;
$_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0);
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$51 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
if ($51 >>> 0 <= 30) {
$57 = $51 + 1 | 0;
$58 = 31 - $51 | 0;
$sr_1_ph = $57;
$r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0);
$r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0);
$q_sroa_0_1_ph = 0;
$q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58;
break;
}
if (!$rem) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 | 0;
HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
if (!$17) {
$119 = (Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0) - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
if ($119 >>> 0 <= 31) {
$125 = $119 + 1 | 0;
$126 = 31 - $119 | 0;
$130 = $119 - 31 >> 31;
$sr_1_ph = $125;
$r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126;
$r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130;
$q_sroa_0_1_ph = 0;
$q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126;
break;
}
if (!$rem) {
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
HEAP32[$rem >> 2] = $a$0 | 0;
HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$1 = 0;
$_0$0 = 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
$66 = $d_sroa_0_0_extract_trunc - 1 | 0;
if ($66 & $d_sroa_0_0_extract_trunc) {
$88 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0;
$89 = 64 - $88 | 0;
$91 = 32 - $88 | 0;
$92 = $91 >> 31;
$95 = $88 - 32 | 0;
$105 = $95 >> 31;
$sr_1_ph = $88;
$r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105;
$r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0);
$q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92;
$q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31;
break;
}
if ($rem) {
HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc;
HEAP32[$rem + 4 >> 2] = 0;
}
if (($d_sroa_0_0_extract_trunc | 0) == 1) {
$_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0;
$_0$0 = $a$0 | 0 | 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
} else {
$78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0;
$_0$1 = $n_sroa_1_4_extract_trunc >>> ($78 >>> 0) | 0;
$_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
} while (0);
if (!$sr_1_ph) {
$q_sroa_1_1_lcssa = $q_sroa_1_1_ph;
$q_sroa_0_1_lcssa = $q_sroa_0_1_ph;
$r_sroa_1_1_lcssa = $r_sroa_1_1_ph;
$r_sroa_0_1_lcssa = $r_sroa_0_1_ph;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = 0;
} else {
$d_sroa_0_0_insert_insert99$0 = $b$0 | 0 | 0;
$d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0;
$137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0;
$137$1 = tempRet0;
$q_sroa_1_1198 = $q_sroa_1_1_ph;
$q_sroa_0_1199 = $q_sroa_0_1_ph;
$r_sroa_1_1200 = $r_sroa_1_1_ph;
$r_sroa_0_1201 = $r_sroa_0_1_ph;
$sr_1202 = $sr_1_ph;
$carry_0203 = 0;
do {
$q_sroa_1_1198$looptemp = $q_sroa_1_1198;
$q_sroa_1_1198 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1;
$q_sroa_0_1199 = $carry_0203 | $q_sroa_0_1199 << 1;
$r_sroa_0_0_insert_insert42$0 = $r_sroa_0_1201 << 1 | $q_sroa_1_1198$looptemp >>> 31 | 0;
$r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0;
_i64Subtract($137$0, $137$1, $r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1) | 0;
$150$1 = tempRet0;
$151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1;
$carry_0203 = $151$0 & 1;
$r_sroa_0_1201 = _i64Subtract($r_sroa_0_0_insert_insert42$0, $r_sroa_0_0_insert_insert42$1, $151$0 & $d_sroa_0_0_insert_insert99$0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1) | 0;
$r_sroa_1_1200 = tempRet0;
$sr_1202 = $sr_1202 - 1 | 0;
} while (($sr_1202 | 0) != 0);
$q_sroa_1_1_lcssa = $q_sroa_1_1198;
$q_sroa_0_1_lcssa = $q_sroa_0_1199;
$r_sroa_1_1_lcssa = $r_sroa_1_1200;
$r_sroa_0_1_lcssa = $r_sroa_0_1201;
$carry_0_lcssa$1 = 0;
$carry_0_lcssa$0 = $carry_0203;
}
$q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa;
$q_sroa_0_0_insert_ext75$1 = 0;
if ($rem) {
HEAP32[$rem >> 2] = $r_sroa_0_1_lcssa;
HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa;
}
$_0$1 = ($q_sroa_0_0_insert_ext75$0 | 0) >>> 31 | ($q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1) << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1;
$_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0;
return (tempRet0 = $_0$1, $_0$0) | 0;
}
function _icpGetJ_U_S($J_U_S, $matXc2U, $matXw2Xc, $worldCoord) {
$J_U_S = $J_U_S | 0;
$matXc2U = $matXc2U | 0;
$matXw2Xc = $matXw2Xc | 0;
$worldCoord = $worldCoord | 0;
var $$0 = 0, $$lcssa = 0.0, $0 = 0.0, $1 = 0.0, $100 = 0, $101 = 0, $104 = 0, $106 = 0, $108 = 0, $109 = 0, $11 = 0.0, $115 = 0.0, $116 = 0.0, $12 = 0.0, $122 = 0.0, $125 = 0.0, $128 = 0.0, $129 = 0.0, $132 = 0.0, $136 = 0.0, $14 = 0.0, $141 = 0.0, $143 = 0.0, $146 = 0.0, $150 = 0.0, $155 = 0.0, $157 = 0.0, $16 = 0.0, $160 = 0.0, $164 = 0.0, $169 = 0.0, $171 = 0.0, $18 = 0.0, $19 = 0.0, $2 = 0.0, $202 = 0.0, $204 = 0.0, $206 = 0.0, $207 = 0, $21 = 0.0, $211 = 0.0, $215 = 0.0, $22 = 0.0, $24 = 0.0, $26 = 0.0, $28 = 0.0, $29 = 0.0, $31 = 0.0, $32 = 0.0, $34 = 0.0, $4 = 0.0, $5 = 0, $52 = 0.0, $6 = 0.0, $7 = 0.0, $71 = 0.0, $79 = 0.0, $9 = 0.0, $92 = 0, $93 = 0, $96 = 0, $98 = 0, $J_T_S$i = 0, $J_U_Xc = 0, $J_Xc_S = 0, $J_Xc_T$i = 0, $i$0$i7 = 0, $i$04 = 0, $j$0$i8 = 0, $j$05 = 0, $k$0$i6 = 0, $vararg_buffer = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 1072 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp + 1056 | 0;
$J_Xc_T$i = sp + 768 | 0;
$J_T_S$i = sp + 192 | 0;
$J_Xc_S = sp + 48 | 0;
$J_U_Xc = sp;
$0 = +HEAPF64[$matXw2Xc >> 3];
$1 = +HEAPF64[$worldCoord >> 3];
$2 = $0 * $1;
$4 = +HEAPF64[$matXw2Xc + 8 >> 3];
$5 = $worldCoord + 8 | 0;
$6 = +HEAPF64[$5 >> 3];
$7 = $4 * $6;
$9 = +HEAPF64[$matXw2Xc + 16 >> 3];
$11 = +HEAPF64[$worldCoord + 16 >> 3];
$12 = $9 * $11;
$14 = +HEAPF64[$matXw2Xc + 24 >> 3];
$16 = +HEAPF64[$matXw2Xc + 32 >> 3];
$18 = +HEAPF64[$matXw2Xc + 40 >> 3];
$19 = $6 * $18;
$21 = +HEAPF64[$matXw2Xc + 48 >> 3];
$22 = $11 * $21;
$24 = +HEAPF64[$matXw2Xc + 56 >> 3];
$26 = +HEAPF64[$matXw2Xc + 64 >> 3];
$28 = +HEAPF64[$matXw2Xc + 72 >> 3];
$29 = $6 * $28;
$31 = +HEAPF64[$matXw2Xc + 80 >> 3];
$32 = $11 * $31;
$34 = +HEAPF64[$matXw2Xc + 88 >> 3];
HEAPF64[$J_Xc_T$i >> 3] = $2;
HEAPF64[$J_Xc_T$i + 8 >> 3] = $0 * $6;
HEAPF64[$J_Xc_T$i + 16 >> 3] = $0 * $11;
HEAPF64[$J_Xc_T$i + 24 >> 3] = $1 * $4;
HEAPF64[$J_Xc_T$i + 32 >> 3] = $7;
HEAPF64[$J_Xc_T$i + 40 >> 3] = $11 * $4;
HEAPF64[$J_Xc_T$i + 48 >> 3] = $1 * $9;
HEAPF64[$J_Xc_T$i + 56 >> 3] = $6 * $9;
HEAPF64[$J_Xc_T$i + 64 >> 3] = $12;
HEAPF64[$J_Xc_T$i + 72 >> 3] = $0;
HEAPF64[$J_Xc_T$i + 80 >> 3] = $4;
HEAPF64[$J_Xc_T$i + 88 >> 3] = $9;
$52 = $1 * $16;
HEAPF64[$J_Xc_T$i + 96 >> 3] = $52;
HEAPF64[$J_Xc_T$i + 104 >> 3] = $6 * $16;
HEAPF64[$J_Xc_T$i + 112 >> 3] = $11 * $16;
HEAPF64[$J_Xc_T$i + 120 >> 3] = $1 * $18;
HEAPF64[$J_Xc_T$i + 128 >> 3] = $19;
HEAPF64[$J_Xc_T$i + 136 >> 3] = $11 * $18;
HEAPF64[$J_Xc_T$i + 144 >> 3] = $1 * $21;
HEAPF64[$J_Xc_T$i + 152 >> 3] = $6 * $21;
HEAPF64[$J_Xc_T$i + 160 >> 3] = $22;
HEAPF64[$J_Xc_T$i + 168 >> 3] = $16;
HEAPF64[$J_Xc_T$i + 176 >> 3] = $18;
HEAPF64[$J_Xc_T$i + 184 >> 3] = $21;
$71 = $26 * $1;
HEAPF64[$J_Xc_T$i + 192 >> 3] = $71;
HEAPF64[$J_Xc_T$i + 200 >> 3] = $6 * $26;
HEAPF64[$J_Xc_T$i + 208 >> 3] = $11 * $26;
HEAPF64[$J_Xc_T$i + 216 >> 3] = $1 * $28;
$79 = +HEAPF64[$5 >> 3];
HEAPF64[$J_Xc_T$i + 224 >> 3] = $28 * $79;
HEAPF64[$J_Xc_T$i + 232 >> 3] = $11 * $28;
HEAPF64[$J_Xc_T$i + 240 >> 3] = $1 * $31;
HEAPF64[$J_Xc_T$i + 248 >> 3] = $79 * $31;
HEAPF64[$J_Xc_T$i + 256 >> 3] = $32;
HEAPF64[$J_Xc_T$i + 264 >> 3] = $26;
HEAPF64[$J_Xc_T$i + 272 >> 3] = $28;
HEAPF64[$J_Xc_T$i + 280 >> 3] = $31;
$92 = $J_T_S$i + 64 | 0;
dest = $J_T_S$i;
stop = dest + 64 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$92 >> 3] = -1.0;
$93 = $J_T_S$i + 72 | 0;
HEAP32[$93 >> 2] = 0;
HEAP32[$93 + 4 >> 2] = 0;
HEAP32[$93 + 8 >> 2] = 0;
HEAP32[$93 + 12 >> 2] = 0;
HEAP32[$93 + 16 >> 2] = 0;
HEAP32[$93 + 20 >> 2] = 0;
HEAP32[$93 + 24 >> 2] = 0;
HEAP32[$93 + 28 >> 2] = 0;
HEAPF64[$J_T_S$i + 104 >> 3] = 1.0;
$96 = $J_T_S$i + 160 | 0;
dest = $J_T_S$i + 112 | 0;
stop = dest + 48 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$96 >> 3] = 1.0;
$98 = $J_T_S$i + 240 | 0;
dest = $J_T_S$i + 168 | 0;
stop = dest + 72 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$98 >> 3] = -1.0;
$100 = $J_T_S$i + 296 | 0;
dest = $J_T_S$i + 248 | 0;
stop = dest + 48 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$100 >> 3] = -1.0;
$101 = $J_T_S$i + 304 | 0;
HEAP32[$101 >> 2] = 0;
HEAP32[$101 + 4 >> 2] = 0;
HEAP32[$101 + 8 >> 2] = 0;
HEAP32[$101 + 12 >> 2] = 0;
HEAP32[$101 + 16 >> 2] = 0;
HEAP32[$101 + 20 >> 2] = 0;
HEAP32[$101 + 24 >> 2] = 0;
HEAP32[$101 + 28 >> 2] = 0;
HEAPF64[$J_T_S$i + 336 >> 3] = 1.0;
$104 = $J_T_S$i + 456 | 0;
dest = $J_T_S$i + 344 | 0;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$104 >> 3] = 1.0;
$106 = $J_T_S$i + 512 | 0;
dest = $J_T_S$i + 464 | 0;
stop = dest + 48 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$106 >> 3] = 1.0;
$108 = $J_T_S$i + 568 | 0;
dest = $J_T_S$i + 520 | 0;
stop = dest + 48 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAPF64[$108 >> 3] = 1.0;
$j$0$i8 = 0;
do {
$i$0$i7 = 0;
do {
$109 = $J_Xc_S + ($j$0$i8 * 48 | 0) + ($i$0$i7 << 3) | 0;
HEAPF64[$109 >> 3] = 0.0;
$116 = 0.0;
$k$0$i6 = 0;
while (1) {
$115 = $116 + +HEAPF64[$J_Xc_T$i + ($j$0$i8 * 96 | 0) + ($k$0$i6 << 3) >> 3] * +HEAPF64[$J_T_S$i + ($k$0$i6 * 48 | 0) + ($i$0$i7 << 3) >> 3];
$k$0$i6 = $k$0$i6 + 1 | 0;
if (($k$0$i6 | 0) == 12) {
$$lcssa = $115;
break;
} else $116 = $115;
}
HEAPF64[$109 >> 3] = $$lcssa;
$i$0$i7 = $i$0$i7 + 1 | 0;
} while (($i$0$i7 | 0) != 6);
$j$0$i8 = $j$0$i8 + 1 | 0;
} while (($j$0$i8 | 0) != 3);
$122 = $14 + ($2 + $7 + $12);
$125 = $24 + ($52 + $19 + $22);
$128 = $34 + ($71 + $29 + $32);
$129 = +HEAPF64[$matXc2U >> 3];
$132 = +HEAPF64[$matXc2U + 8 >> 3];
$136 = +HEAPF64[$matXc2U + 16 >> 3];
$141 = +HEAPF64[$matXc2U + 24 >> 3] + ($122 * $129 + $125 * $132 + $128 * $136);
$143 = +HEAPF64[$matXc2U + 32 >> 3];
$146 = +HEAPF64[$matXc2U + 40 >> 3];
$150 = +HEAPF64[$matXc2U + 48 >> 3];
$155 = +HEAPF64[$matXc2U + 56 >> 3] + ($122 * $143 + $125 * $146 + $128 * $150);
$157 = +HEAPF64[$matXc2U + 64 >> 3];
$160 = +HEAPF64[$matXc2U + 72 >> 3];
$164 = +HEAPF64[$matXc2U + 80 >> 3];
$169 = +HEAPF64[$matXc2U + 88 >> 3] + ($122 * $157 + $125 * $160 + $128 * $164);
if ($169 == 0.0) {
_arLog(3, 5089, $vararg_buffer);
$$0 = -1;
} else {
$171 = $169 * $169;
HEAPF64[$J_U_Xc >> 3] = ($129 * $169 - $141 * $157) / $171;
HEAPF64[$J_U_Xc + 8 >> 3] = ($169 * $132 - $141 * $160) / $171;
HEAPF64[$J_U_Xc + 16 >> 3] = ($169 * $136 - $141 * $164) / $171;
HEAPF64[$J_U_Xc + 24 >> 3] = ($169 * $143 - $155 * $157) / $171;
HEAPF64[$J_U_Xc + 32 >> 3] = ($169 * $146 - $155 * $160) / $171;
HEAPF64[$J_U_Xc + 40 >> 3] = ($169 * $150 - $155 * $164) / $171;
$j$05 = 0;
do {
$202 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) >> 3];
$204 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) + 8 >> 3];
$206 = +HEAPF64[$J_U_Xc + ($j$05 * 24 | 0) + 16 >> 3];
$i$04 = 0;
do {
$207 = $J_U_S + ($j$05 * 48 | 0) + ($i$04 << 3) | 0;
HEAPF64[$207 >> 3] = 0.0;
$211 = $202 * +HEAPF64[$J_Xc_S + ($i$04 << 3) >> 3] + 0.0;
HEAPF64[$207 >> 3] = $211;
$215 = $211 + $204 * +HEAPF64[$J_Xc_S + 48 + ($i$04 << 3) >> 3];
HEAPF64[$207 >> 3] = $215;
HEAPF64[$207 >> 3] = $215 + $206 * +HEAPF64[$J_Xc_S + 96 + ($i$04 << 3) >> 3];
$i$04 = $i$04 + 1 | 0;
} while (($i$04 | 0) != 6);
$j$05 = $j$05 + 1 | 0;
} while (($j$05 | 0) != 2);
$$0 = 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_120parse_function_paramINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i$i$i = 0, $$0$i$i$i18 = 0, $$0$i$i1027 = 0, $$0$i$i24 = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $104 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $118 = 0, $120 = 0, $123 = 0, $124 = 0, $15 = 0, $16 = 0, $2 = 0, $22 = 0, $29 = 0, $3 = 0, $30 = 0, $39 = 0, $4 = 0, $42 = 0, $43 = 0, $45 = 0, $5 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $59 = 0, $61 = 0, $64 = 0, $65 = 0, $69 = 0, $74 = 0, $75 = 0, $81 = 0, $88 = 0, $89 = 0, $98 = 0, $__p$0$i$i23 = 0, $__p$0$i$i926 = 0, $__p$0$ph$i$i = 0, $__p$0$ph$i$i7 = 0, $__v$i$i17 = 0, $cv = 0, $cv1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i17 = sp + 108 | 0;
$cv = sp + 104 | 0;
$0 = sp + 80 | 0;
$1 = sp + 64 | 0;
$2 = sp + 52 | 0;
$cv1 = sp + 48 | 0;
$3 = sp + 24 | 0;
$4 = sp + 12 | 0;
$5 = sp;
L1 : do if (($last - $first | 0) > 2) if ((HEAP8[$first >> 0] | 0) == 102) {
switch (HEAP8[$first + 1 >> 0] | 0) {
case 112:
{
$15 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first + 2 | 0, $last, $cv) | 0;
$16 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($15, $last) | 0;
if (($16 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
if ((HEAP8[$16 >> 0] | 0) != 95) {
$$0 = $first;
break L1;
}
$22 = $16 - $15 | 0;
if ($22 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2);
if ($22 >>> 0 < 11) {
HEAP8[$2 >> 0] = $22 << 1;
$__p$0$ph$i$i = $2 + 1 | 0;
} else {
$29 = $22 + 16 & -16;
$30 = _malloc($29) | 0;
HEAP32[$2 + 8 >> 2] = $30;
HEAP32[$2 >> 2] = $29 | 1;
HEAP32[$2 + 4 >> 2] = $22;
$__p$0$ph$i$i = $30;
}
if (($15 | 0) != ($16 | 0)) {
$$0$i$i24 = $15;
$__p$0$i$i23 = $__p$0$ph$i$i;
while (1) {
HEAP8[$__p$0$i$i23 >> 0] = HEAP8[$$0$i$i24 >> 0] | 0;
$$0$i$i24 = $$0$i$i24 + 1 | 0;
if (($$0$i$i24 | 0) == ($16 | 0)) break; else $__p$0$i$i23 = $__p$0$i$i23 + 1 | 0;
}
}
HEAP8[$__p$0$ph$i$i + $22 >> 0] = 0;
$39 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 14149) | 0;
HEAP32[$1 >> 2] = HEAP32[$39 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$39 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$39 + 8 >> 2];
HEAP32[$39 >> 2] = 0;
HEAP32[$39 + 4 >> 2] = 0;
HEAP32[$39 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
$42 = $db + 4 | 0;
$43 = HEAP32[$42 >> 2] | 0;
$45 = HEAP32[$db + 8 >> 2] | 0;
if ($43 >>> 0 < $45 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($43, $0);
HEAP32[$42 >> 2] = (HEAP32[$42 >> 2] | 0) + 24;
} else {
$52 = HEAP32[$db >> 2] | 0;
$53 = $43 - $52 | 0;
$54 = ($53 | 0) / 24 | 0;
$55 = $54 + 1 | 0;
if (($53 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$59 = ($45 - $52 | 0) / 24 | 0;
if ($59 >>> 0 < 1073741823) {
$61 = $59 << 1;
$$0$i$i$i = $61 >>> 0 < $55 >>> 0 ? $55 : $61;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17, $$0$i$i$i, $54, $db + 12 | 0);
$64 = $__v$i$i17 + 8 | 0;
$65 = HEAP32[$64 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($65, $0);
HEAP32[$64 >> 2] = $65 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$0 = $16 + 1 | 0;
break L1;
break;
}
case 76:
break;
default:
{
$$0 = $first;
break L1;
}
}
$69 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first + 2 | 0, $last) | 0;
if (($69 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$69 >> 0] | 0) == 112) {
$74 = __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($69 + 1 | 0, $last, $cv1) | 0;
$75 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($74, $last) | 0;
if (($75 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$75 >> 0] | 0) == 95) {
$81 = $75 - $74 | 0;
if ($81 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($5);
if ($81 >>> 0 < 11) {
HEAP8[$5 >> 0] = $81 << 1;
$__p$0$ph$i$i7 = $5 + 1 | 0;
} else {
$88 = $81 + 16 & -16;
$89 = _malloc($88) | 0;
HEAP32[$5 + 8 >> 2] = $89;
HEAP32[$5 >> 2] = $88 | 1;
HEAP32[$5 + 4 >> 2] = $81;
$__p$0$ph$i$i7 = $89;
}
if (($74 | 0) != ($75 | 0)) {
$$0$i$i1027 = $74;
$__p$0$i$i926 = $__p$0$ph$i$i7;
while (1) {
HEAP8[$__p$0$i$i926 >> 0] = HEAP8[$$0$i$i1027 >> 0] | 0;
$$0$i$i1027 = $$0$i$i1027 + 1 | 0;
if (($$0$i$i1027 | 0) == ($75 | 0)) break; else $__p$0$i$i926 = $__p$0$i$i926 + 1 | 0;
}
}
HEAP8[$__p$0$ph$i$i7 + $81 >> 0] = 0;
$98 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($5, 0, 14149) | 0;
HEAP32[$4 >> 2] = HEAP32[$98 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$98 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$98 + 8 >> 2];
HEAP32[$98 >> 2] = 0;
HEAP32[$98 + 4 >> 2] = 0;
HEAP32[$98 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($3, $4);
$101 = $db + 4 | 0;
$102 = HEAP32[$101 >> 2] | 0;
$104 = HEAP32[$db + 8 >> 2] | 0;
if ($102 >>> 0 < $104 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($102, $3);
HEAP32[$101 >> 2] = (HEAP32[$101 >> 2] | 0) + 24;
} else {
$111 = HEAP32[$db >> 2] | 0;
$112 = $102 - $111 | 0;
$113 = ($112 | 0) / 24 | 0;
$114 = $113 + 1 | 0;
if (($112 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$118 = ($104 - $111 | 0) / 24 | 0;
if ($118 >>> 0 < 1073741823) {
$120 = $118 << 1;
$$0$i$i$i18 = $120 >>> 0 < $114 >>> 0 ? $114 : $120;
} else $$0$i$i$i18 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i17, $$0$i$i$i18, $113, $db + 12 | 0);
$123 = $__v$i$i17 + 8 | 0;
$124 = HEAP32[$123 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($124, $3);
HEAP32[$123 >> 2] = $124 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i17);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i17);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
$$0 = $75 + 1 | 0;
} else $$0 = $first;
} else $$0 = $first;
} else $$0 = $first; else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _icpPointRobust($handle, $data, $initMatXw2Xc, $matXw2Xc, $err) {
$handle = $handle | 0;
$data = $data | 0;
$initMatXw2Xc = $initMatXw2Xc | 0;
$matXw2Xc = $matXw2Xc | 0;
$err = $err | 0;
var $$ = 0, $$0 = 0, $$lcssa = 0, $$lcssa50 = 0.0, $$pn = 0.0, $$pre = 0, $0 = 0, $1 = 0, $101 = 0, $102 = 0, $108 = 0.0, $109 = 0.0, $11 = 0, $113 = 0, $117 = 0, $121 = 0, $125 = 0, $129 = 0, $133 = 0, $137 = 0, $14 = 0, $141 = 0, $145 = 0, $149 = 0, $153 = 0, $156 = 0, $16 = 0, $17 = 0, $174 = 0, $19 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $41 = 0, $47 = 0, $51 = 0.0, $55 = 0.0, $56 = 0, $62 = 0.0, $66 = 0, $69 = 0.0, $71 = 0, $72 = 0.0, $75 = 0.0, $78 = 0.0, $8 = 0, $86 = 0.0, $99 = 0.0, $K2$0 = 0.0, $U = 0, $dS = 0, $err0$0 = 0.0, $err1$0$lcssa = 0.0, $err1$032 = 0.0, $err1$1 = 0.0, $i$1 = 0, $j$043 = 0, $j$131 = 0, $j$233 = 0, $j$338 = 0, $k$0$lcssa = 0, $k$039 = 0, $k$1 = 0, $matXw2U = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer5 = sp + 184 | 0;
$vararg_buffer3 = sp + 176 | 0;
$vararg_buffer1 = sp + 168 | 0;
$vararg_buffer = sp + 160 | 0;
$U = sp + 48 | 0;
$matXw2U = sp + 64 | 0;
$dS = sp;
$0 = $data + 8 | 0;
$1 = HEAP32[$0 >> 2] | 0;
do if (($1 | 0) < 4) $$0 = -1; else {
$8 = ~~(+($1 | 0) * +HEAPF64[$handle + 128 >> 3]) + -1 | 0;
$$ = ($8 | 0) < 3 ? 3 : $8;
$11 = _malloc($1 * 96 | 0) | 0;
if (!$11) {
_arLog(3, 5109, $vararg_buffer);
$$0 = -1;
break;
}
$14 = _malloc($1 << 4) | 0;
if (!$14) {
_arLog(3, 5109, $vararg_buffer1);
_free($11);
$$0 = -1;
break;
}
$16 = $1 << 3;
$17 = _malloc($16) | 0;
if (!$17) {
_arLog(3, 5109, $vararg_buffer3);
_free($11);
_free($14);
$$0 = -1;
break;
}
$19 = _malloc($16) | 0;
if (!$19) {
_arLog(3, 5109, $vararg_buffer5);
_free($11);
_free($14);
_free($17);
$$0 = -1;
break;
} else $j$043 = 0;
do {
HEAPF64[$matXw2Xc + ($j$043 << 5) >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) >> 3];
HEAPF64[$matXw2Xc + ($j$043 << 5) + 8 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 8 >> 3];
HEAPF64[$matXw2Xc + ($j$043 << 5) + 16 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 16 >> 3];
HEAPF64[$matXw2Xc + ($j$043 << 5) + 24 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$043 << 5) + 24 >> 3];
$j$043 = $j$043 + 1 | 0;
} while (($j$043 | 0) != 3);
$21 = $data + 4 | 0;
$22 = $U + 8 | 0;
$23 = $19 + ($$ << 3) | 0;
$24 = $handle + 104 | 0;
$25 = $handle + 120 | 0;
$26 = $handle + 112 | 0;
$27 = $handle + 96 | 0;
$err0$0 = 0.0;
$i$1 = 0;
L17 : while (1) {
_arUtilMatMul($handle, $matXw2Xc, $matXw2U) | 0;
$41 = HEAP32[$0 >> 2] | 0;
if (($41 | 0) > 0) {
$j$131 = 0;
while (1) {
if ((_icpGetU_from_X_by_MatX2U($U, $matXw2U, (HEAP32[$21 >> 2] | 0) + ($j$131 * 24 | 0) | 0) | 0) < 0) {
label = 14;
break L17;
}
$47 = HEAP32[$data >> 2] | 0;
$51 = +HEAPF64[$47 + ($j$131 << 4) >> 3] - +HEAPF64[$U >> 3];
$55 = +HEAPF64[$47 + ($j$131 << 4) + 8 >> 3] - +HEAPF64[$22 >> 3];
$56 = $j$131 << 1;
HEAPF64[$14 + ($56 << 3) >> 3] = $51;
HEAPF64[$14 + (($56 | 1) << 3) >> 3] = $55;
$62 = $51 * $51 + $55 * $55;
HEAPF64[$19 + ($j$131 << 3) >> 3] = $62;
HEAPF64[$17 + ($j$131 << 3) >> 3] = $62;
$j$131 = $j$131 + 1 | 0;
$66 = HEAP32[$0 >> 2] | 0;
if (($j$131 | 0) >= ($66 | 0)) {
$$lcssa = $66;
break;
}
}
} else $$lcssa = $41;
_qsort($19, $$lcssa, 8, 1);
$69 = +HEAPF64[$23 >> 3] * 4.0;
$K2$0 = $69 < 16.0 ? 16.0 : $69;
$71 = HEAP32[$0 >> 2] | 0;
$72 = $K2$0 / 6.0;
if (($71 | 0) > 0) {
$err1$032 = 0.0;
$j$233 = 0;
while (1) {
$75 = +HEAPF64[$19 + ($j$233 << 3) >> 3];
if ($75 > $K2$0) $$pn = $72; else {
$78 = 1.0 - $75 / $K2$0;
$$pn = $72 * (1.0 - $78 * ($78 * $78));
}
$err1$1 = $err1$032 + $$pn;
$j$233 = $j$233 + 1 | 0;
if (($j$233 | 0) >= ($71 | 0)) {
$err1$0$lcssa = $err1$1;
break;
} else $err1$032 = $err1$1;
}
} else $err1$0$lcssa = 0.0;
$86 = $err1$0$lcssa / +($71 | 0);
if ($86 < +HEAPF64[$24 >> 3]) {
$$lcssa50 = $86;
label = 36;
break;
}
if (($i$1 | 0) > 0) if ($86 < +HEAPF64[$25 >> 3]) if ($86 / $err0$0 > +HEAPF64[$26 >> 3]) {
$$lcssa50 = $86;
label = 36;
break;
}
if (($i$1 | 0) == (HEAP32[$27 >> 2] | 0)) {
$$lcssa50 = $86;
label = 36;
break;
}
if (($71 | 0) > 0) {
$174 = $71;
$j$338 = 0;
$k$039 = 0;
while (1) {
$99 = +HEAPF64[$17 + ($j$338 << 3) >> 3];
if (!($99 <= $K2$0)) {
$$pre = $174;
$k$1 = $k$039;
} else {
$101 = $k$039 * 6 | 0;
$102 = $11 + ($101 << 3) | 0;
if ((_icpGetJ_U_S($102, $handle, $matXw2Xc, (HEAP32[$21 >> 2] | 0) + ($j$338 * 24 | 0) | 0) | 0) < 0) {
label = 28;
break L17;
}
$108 = 1.0 - $99 / $K2$0;
$109 = $108 * $108;
HEAPF64[$102 >> 3] = +HEAPF64[$102 >> 3] * $109;
$113 = $11 + (($101 | 1) << 3) | 0;
HEAPF64[$113 >> 3] = +HEAPF64[$113 >> 3] * $109;
$117 = $11 + ($101 + 2 << 3) | 0;
HEAPF64[$117 >> 3] = $109 * +HEAPF64[$117 >> 3];
$121 = $11 + ($101 + 3 << 3) | 0;
HEAPF64[$121 >> 3] = $109 * +HEAPF64[$121 >> 3];
$125 = $11 + ($101 + 4 << 3) | 0;
HEAPF64[$125 >> 3] = $109 * +HEAPF64[$125 >> 3];
$129 = $11 + ($101 + 5 << 3) | 0;
HEAPF64[$129 >> 3] = $109 * +HEAPF64[$129 >> 3];
$133 = $11 + ($101 + 6 << 3) | 0;
HEAPF64[$133 >> 3] = $109 * +HEAPF64[$133 >> 3];
$137 = $11 + ($101 + 7 << 3) | 0;
HEAPF64[$137 >> 3] = $109 * +HEAPF64[$137 >> 3];
$141 = $11 + ($101 + 8 << 3) | 0;
HEAPF64[$141 >> 3] = $109 * +HEAPF64[$141 >> 3];
$145 = $11 + ($101 + 9 << 3) | 0;
HEAPF64[$145 >> 3] = $109 * +HEAPF64[$145 >> 3];
$149 = $11 + ($101 + 10 << 3) | 0;
HEAPF64[$149 >> 3] = $109 * +HEAPF64[$149 >> 3];
$153 = $11 + ($101 + 11 << 3) | 0;
HEAPF64[$153 >> 3] = $109 * +HEAPF64[$153 >> 3];
$156 = $j$338 << 1;
HEAPF64[$14 + ($k$039 << 3) >> 3] = $109 * +HEAPF64[$14 + ($156 << 3) >> 3];
HEAPF64[$14 + ($k$039 + 1 << 3) >> 3] = $109 * +HEAPF64[$14 + (($156 | 1) << 3) >> 3];
$$pre = HEAP32[$0 >> 2] | 0;
$k$1 = $k$039 + 2 | 0;
}
$j$338 = $j$338 + 1 | 0;
if (($j$338 | 0) >= ($$pre | 0)) {
$k$0$lcssa = $k$1;
break;
} else {
$174 = $$pre;
$k$039 = $k$1;
}
}
} else $k$0$lcssa = 0;
if (($k$0$lcssa | 0) < 6) {
label = 32;
break;
}
if ((_icpGetDeltaS($dS, $14, $11, $k$0$lcssa) | 0) < 0) {
label = 34;
break;
}
_icpUpdateMat($matXw2Xc, $dS) | 0;
$err0$0 = $86;
$i$1 = $i$1 + 1 | 0;
}
if ((label | 0) == 14) {
_icpGetXw2XcCleanup295($11, $14, $17, $19);
$$0 = -1;
break;
} else if ((label | 0) == 28) {
_icpGetXw2XcCleanup295($11, $14, $17, $19);
$$0 = -1;
break;
} else if ((label | 0) == 32) {
_icpGetXw2XcCleanup295($11, $14, $17, $19);
$$0 = -1;
break;
} else if ((label | 0) == 34) {
_icpGetXw2XcCleanup295($11, $14, $17, $19);
$$0 = -1;
break;
} else if ((label | 0) == 36) {
HEAPF64[$err >> 3] = $$lcssa50;
_free($11);
_free($14);
_free($17);
_free($19);
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arParamObserv2Ideal($dist_factor, $ox, $oy, $ix, $iy, $dist_function_version) {
$dist_factor = $dist_factor | 0;
$ox = +$ox;
$oy = +$oy;
$ix = $ix | 0;
$iy = $iy | 0;
$dist_function_version = $dist_function_version | 0;
var $$0 = 0, $0 = 0.0, $10 = 0.0, $101 = 0.0, $103 = 0.0, $104 = 0, $106 = 0.0, $109 = 0.0, $113 = 0.0, $116 = 0.0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0.0, $134 = 0.0, $14 = 0.0, $146 = 0, $154 = 0.0, $155 = 0.0, $156 = 0, $158 = 0.0, $16 = 0.0, $161 = 0.0, $165 = 0.0, $168 = 0.0, $169 = 0.0, $170 = 0.0, $171 = 0.0, $18 = 0.0, $186 = 0.0, $198 = 0, $2 = 0.0, $20 = 0.0, $206 = 0.0, $207 = 0.0, $208 = 0, $21 = 0.0, $210 = 0.0, $213 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $22 = 0.0, $227 = 0.0, $23 = 0.0, $239 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $29 = 0.0, $34 = 0.0, $4 = 0.0, $44 = 0.0, $50 = 0.0, $6 = 0.0, $67 = 0.0, $8 = 0.0, $i$03 = 0, $i14$029 = 0, $i21$042 = 0, $i5$015 = 0, $px$07 = 0.0, $px$1 = 0.0, $px12$027 = 0.0, $px12$1 = 0.0, $px19$040 = 0.0, $px19$1 = 0.0, $px3$012 = 0.0, $px3$1 = 0.0, $py$06 = 0.0, $py$1 = 0.0, $py13$028 = 0.0, $py13$1 = 0.0, $py20$041 = 0.0, $py20$1 = 0.0, $py4$013 = 0.0, $py4$1 = 0.0, $x02$05 = 0.0, $y02$04 = 0.0, $z0$014 = 0.0, $z016$039 = 0.0, $z02$016 = 0.0, $z0215$038 = 0.0, $z026$025 = 0.0, $z07$026 = 0.0;
switch ($dist_function_version | 0) {
case 4:
{
$0 = +HEAPF64[$dist_factor >> 3];
$2 = +HEAPF64[$dist_factor + 8 >> 3];
$4 = +HEAPF64[$dist_factor + 16 >> 3];
$6 = +HEAPF64[$dist_factor + 24 >> 3];
$8 = +HEAPF64[$dist_factor + 32 >> 3];
$10 = +HEAPF64[$dist_factor + 40 >> 3];
$12 = +HEAPF64[$dist_factor + 48 >> 3];
$14 = +HEAPF64[$dist_factor + 56 >> 3];
$16 = +HEAPF64[$dist_factor + 64 >> 3];
$18 = ($ox - $12) / $8;
$20 = ($oy - $14) / $10;
$21 = $18 * $18;
$22 = $20 * $20;
$23 = $4 * 2.0;
$24 = $6 * 6.0;
$25 = $6 * 2.0;
$26 = $4 * 6.0;
L3 : do if ($22 != 0.0 | $21 != 0.0) {
$i$03 = 1;
$px$07 = $18;
$py$06 = $20;
$x02$05 = $21;
$y02$04 = $22;
while (1) {
$29 = $y02$04 + $x02$05;
$34 = $0 * $29 + 1.0 + $29 * ($2 * $29);
$44 = $x02$05 * 3.0;
$50 = $y02$04 * $44;
$px$07 = $px$07 - ($6 * ($29 + $x02$05 * 2.0) + ($py$06 * ($23 * $px$07) + $px$07 * $34) - $18) / ($24 * $px$07 + ($23 * $py$06 + ($0 * ($y02$04 + $44) + 1.0 + $2 * ($y02$04 * $y02$04 + ($x02$05 * ($x02$05 * 5.0) + $50)))));
$67 = $25 * $px$07;
$py$06 = $py$06 - ($4 * ($y02$04 * 2.0 + $29) + $py$06 * $34 + $py$06 * $67 - $20) / ($26 * $py$06 + ($0 * ($x02$05 + $y02$04 * 3.0) + 1.0 + $2 * ($y02$04 * ($y02$04 * 5.0) + ($x02$05 * $x02$05 + $50))) + $67);
if (($i$03 | 0) == 4) {
$px$1 = $px$07;
$py$1 = $py$06;
break L3;
}
$x02$05 = $px$07 * $px$07;
$y02$04 = $py$06 * $py$06;
if (!($y02$04 != 0.0 | $x02$05 != 0.0)) {
$px$1 = 0.0;
$py$1 = 0.0;
break;
} else $i$03 = $i$03 + 1 | 0;
}
} else {
$px$1 = 0.0;
$py$1 = 0.0;
} while (0);
HEAPF64[$ix >> 3] = $12 + $8 * $px$1 / $16;
HEAPF64[$iy >> 3] = $14 + $10 * $py$1 / $16;
$$0 = 0;
break;
}
case 3:
{
$101 = +HEAPF64[$dist_factor >> 3];
$103 = ($ox - $101) / +HEAPF64[$dist_factor + 24 >> 3];
$104 = $dist_factor + 8 | 0;
$106 = $oy - +HEAPF64[$104 >> 3];
$109 = +HEAPF64[$dist_factor + 32 >> 3] / 1.0e8;
$113 = +HEAPF64[$dist_factor + 40 >> 3] / 1.0e8 / 1.0e5;
$116 = $103 * $103 + $106 * $106;
$117 = +Math_sqrt(+$116);
$118 = $109 * 3.0;
$119 = $113 * 5.0;
L9 : do if ($117 != 0.0) {
$i5$015 = 1;
$px3$012 = $103;
$py4$013 = $106;
$z0$014 = $117;
$z02$016 = $116;
while (1) {
$134 = $z0$014 - ($z0$014 * (1.0 - $109 * $z02$016 - $z02$016 * ($113 * $z02$016)) - $117) / (1.0 - $118 * $z02$016 - $z02$016 * ($119 * $z02$016));
$px3$012 = $px3$012 * $134 / $z0$014;
$py4$013 = $py4$013 * $134 / $z0$014;
if (($i5$015 | 0) == 3) {
$px3$1 = $px3$012;
$py4$1 = $py4$013;
break L9;
}
$z02$016 = $px3$012 * $px3$012 + $py4$013 * $py4$013;
$z0$014 = +Math_sqrt(+$z02$016);
if (!($z0$014 != 0.0)) {
$px3$1 = 0.0;
$py4$1 = 0.0;
break;
} else $i5$015 = $i5$015 + 1 | 0;
}
} else {
$px3$1 = 0.0;
$py4$1 = 0.0;
} while (0);
$146 = $dist_factor + 16 | 0;
HEAPF64[$ix >> 3] = $px3$1 / +HEAPF64[$146 >> 3] + $101;
HEAPF64[$iy >> 3] = $py4$1 / +HEAPF64[$146 >> 3] + +HEAPF64[$104 >> 3];
$$0 = 0;
break;
}
case 2:
{
$154 = +HEAPF64[$dist_factor >> 3];
$155 = $ox - $154;
$156 = $dist_factor + 8 | 0;
$158 = $oy - +HEAPF64[$156 >> 3];
$161 = +HEAPF64[$dist_factor + 24 >> 3] / 1.0e8;
$165 = +HEAPF64[$dist_factor + 32 >> 3] / 1.0e8 / 1.0e5;
$168 = $155 * $155 + $158 * $158;
$169 = +Math_sqrt(+$168);
$170 = $161 * 3.0;
$171 = $165 * 5.0;
L15 : do if ($169 != 0.0) {
$i14$029 = 1;
$px12$027 = $155;
$py13$028 = $158;
$z026$025 = $168;
$z07$026 = $169;
while (1) {
$186 = $z07$026 - ($z07$026 * (1.0 - $161 * $z026$025 - $z026$025 * ($165 * $z026$025)) - $169) / (1.0 - $170 * $z026$025 - $z026$025 * ($171 * $z026$025));
$px12$027 = $px12$027 * $186 / $z07$026;
$py13$028 = $py13$028 * $186 / $z07$026;
if (($i14$029 | 0) == 3) {
$px12$1 = $px12$027;
$py13$1 = $py13$028;
break L15;
}
$z026$025 = $px12$027 * $px12$027 + $py13$028 * $py13$028;
$z07$026 = +Math_sqrt(+$z026$025);
if (!($z07$026 != 0.0)) {
$px12$1 = 0.0;
$py13$1 = 0.0;
break;
} else $i14$029 = $i14$029 + 1 | 0;
}
} else {
$px12$1 = 0.0;
$py13$1 = 0.0;
} while (0);
$198 = $dist_factor + 16 | 0;
HEAPF64[$ix >> 3] = $px12$1 / +HEAPF64[$198 >> 3] + $154;
HEAPF64[$iy >> 3] = $py13$1 / +HEAPF64[$198 >> 3] + +HEAPF64[$156 >> 3];
$$0 = 0;
break;
}
case 1:
{
$206 = +HEAPF64[$dist_factor >> 3];
$207 = $ox - $206;
$208 = $dist_factor + 8 | 0;
$210 = $oy - +HEAPF64[$208 >> 3];
$213 = +HEAPF64[$dist_factor + 24 >> 3] / 1.0e8;
$216 = $207 * $207 + $210 * $210;
$217 = +Math_sqrt(+$216);
$218 = $213 * 3.0;
L21 : do if ($217 != 0.0) {
$i21$042 = 1;
$px19$040 = $207;
$py20$041 = $210;
$z016$039 = $217;
$z0215$038 = $216;
while (1) {
$227 = $z016$039 - ($z016$039 * (1.0 - $213 * $z0215$038) - $217) / (1.0 - $218 * $z0215$038);
$px19$040 = $px19$040 * $227 / $z016$039;
$py20$041 = $py20$041 * $227 / $z016$039;
if (($i21$042 | 0) == 3) {
$px19$1 = $px19$040;
$py20$1 = $py20$041;
break L21;
}
$z0215$038 = $px19$040 * $px19$040 + $py20$041 * $py20$041;
$z016$039 = +Math_sqrt(+$z0215$038);
if (!($z016$039 != 0.0)) {
$px19$1 = 0.0;
$py20$1 = 0.0;
break;
} else $i21$042 = $i21$042 + 1 | 0;
}
} else {
$px19$1 = 0.0;
$py20$1 = 0.0;
} while (0);
$239 = $dist_factor + 16 | 0;
HEAPF64[$ix >> 3] = $px19$1 / +HEAPF64[$239 >> 3] + $206;
HEAPF64[$iy >> 3] = $py20$1 / +HEAPF64[$239 >> 3] + +HEAPF64[$208 >> 3];
$$0 = 0;
break;
}
default:
$$0 = -1;
}
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0$i$i$i = 0, $$0$i$i$i8 = 0, $$02 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $103 = 0, $105 = 0, $108 = 0, $109 = 0, $13 = 0, $19 = 0, $2 = 0, $21 = 0, $26 = 0, $3 = 0, $33 = 0, $35 = 0, $40 = 0, $45 = 0, $47 = 0, $52 = 0, $56 = 0, $59 = 0, $60 = 0, $62 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $76 = 0, $78 = 0, $81 = 0, $82 = 0, $86 = 0, $87 = 0, $89 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $__v$i$i7 = 0, $c$0$in$lcssa = 0, $c$0$in29 = 0, $isdigittmp = 0, $isdigittmp427 = 0, $isdigittmp431 = 0, $n$0$lcssa = 0, $n$030 = 0, $r = 0, dest = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i7 = sp + 88 | 0;
$r = sp + 76 | 0;
$0 = sp + 64 | 0;
$1 = sp + 40 | 0;
$2 = sp + 16 | 0;
$3 = sp;
L1 : do if (($first | 0) == ($last | 0)) $$02 = $first; else {
$isdigittmp = (HEAP8[$first >> 0] | 0) + -48 | 0;
if ($isdigittmp >>> 0 < 10) {
$7 = $first + 1 | 0;
if (($7 | 0) == ($last | 0)) $$02 = $first; else {
$isdigittmp427 = (HEAP8[$7 >> 0] | 0) + -48 | 0;
if ($isdigittmp427 >>> 0 < 10) {
$c$0$in29 = $7;
$isdigittmp431 = $isdigittmp427;
$n$030 = $isdigittmp;
while (1) {
$10 = $c$0$in29 + 1 | 0;
if (($10 | 0) == ($last | 0)) {
$$02 = $first;
break L1;
}
$13 = $isdigittmp431 + ($n$030 * 10 | 0) | 0;
$isdigittmp431 = (HEAP8[$10 >> 0] | 0) + -48 | 0;
if ($isdigittmp431 >>> 0 >= 10) {
$$lcssa = $c$0$in29;
$c$0$in$lcssa = $10;
$n$0$lcssa = $13;
break;
} else {
$c$0$in29 = $10;
$n$030 = $13;
}
}
} else {
$$lcssa = $first;
$c$0$in$lcssa = $7;
$n$0$lcssa = $isdigittmp;
}
if (($last - $c$0$in$lcssa | 0) >>> 0 < $n$0$lcssa >>> 0) $$02 = $first; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($r, $c$0$in$lcssa, $n$0$lcssa);
$19 = HEAP8[$r >> 0] | 0;
$21 = ($19 & 1) == 0;
$26 = $21 ? ($19 & 255) >>> 1 : HEAP32[$r + 4 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($0, $21 ? $r + 1 | 0 : HEAP32[$r + 8 >> 2] | 0, $26 >>> 0 < 10 ? $26 : 10);
$33 = HEAP8[$0 >> 0] | 0;
$35 = ($33 & 1) == 0;
$40 = $35 ? ($33 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0;
$45 = $40 >>> 0 > 10;
$47 = _memcmp($35 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, 13728, $45 ? 10 : $40) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
if (!((($47 | 0) == 0 ? ($40 >>> 0 < 10 ? -1 : $45 & 1) : $47) | 0)) {
$52 = _malloc(32) | 0;
HEAP32[$1 + 8 >> 2] = $52;
HEAP32[$1 >> 2] = 33;
HEAP32[$1 + 4 >> 2] = 21;
dest = $52;
src = 13739;
stop = dest + 21 | 0;
do {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$52 + 21 >> 0] = 0;
$56 = $1 + 12 | 0;
HEAP32[$56 >> 2] = 0;
HEAP32[$56 + 4 >> 2] = 0;
HEAP32[$56 + 8 >> 2] = 0;
$59 = $db + 4 | 0;
$60 = HEAP32[$59 >> 2] | 0;
$62 = HEAP32[$db + 8 >> 2] | 0;
if ($60 >>> 0 < $62 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($60, $1);
HEAP32[$59 >> 2] = (HEAP32[$59 >> 2] | 0) + 24;
} else {
$69 = HEAP32[$db >> 2] | 0;
$70 = $60 - $69 | 0;
$71 = ($70 | 0) / 24 | 0;
$72 = $71 + 1 | 0;
if (($70 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$76 = ($62 - $69 | 0) / 24 | 0;
if ($76 >>> 0 < 1073741823) {
$78 = $76 << 1;
$$0$i$i$i = $78 >>> 0 < $72 >>> 0 ? $72 : $78;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i7, $$0$i$i$i, $71, $db + 12 | 0);
$81 = $__v$i$i7 + 8 | 0;
$82 = HEAP32[$81 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($82, $1);
HEAP32[$81 >> 2] = $82 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i7);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i7);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($1);
} else {
HEAP32[$3 >> 2] = HEAP32[$r >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$r + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$r + 8 >> 2];
HEAP32[$r >> 2] = 0;
HEAP32[$r + 4 >> 2] = 0;
HEAP32[$r + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($2, $3);
$86 = $db + 4 | 0;
$87 = HEAP32[$86 >> 2] | 0;
$89 = HEAP32[$db + 8 >> 2] | 0;
if ($87 >>> 0 < $89 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($87, $2);
HEAP32[$86 >> 2] = (HEAP32[$86 >> 2] | 0) + 24;
} else {
$96 = HEAP32[$db >> 2] | 0;
$97 = $87 - $96 | 0;
$98 = ($97 | 0) / 24 | 0;
$99 = $98 + 1 | 0;
if (($97 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$103 = ($89 - $96 | 0) / 24 | 0;
if ($103 >>> 0 < 1073741823) {
$105 = $103 << 1;
$$0$i$i$i8 = $105 >>> 0 < $99 >>> 0 ? $99 : $105;
} else $$0$i$i$i8 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i7, $$0$i$i$i8, $98, $db + 12 | 0);
$108 = $__v$i$i7 + 8 | 0;
$109 = HEAP32[$108 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($109, $2);
HEAP32[$108 >> 2] = $109 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i7);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i7);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
}
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($r);
$$02 = $$lcssa + ($n$0$lcssa + 1) | 0;
}
}
} else $$02 = $first;
} while (0);
STACKTOP = sp;
return $$02 | 0;
}
function _arPattLoadFromBuffer($pattHandle, $buffer) {
$pattHandle = $pattHandle | 0;
$buffer = $buffer | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa36 = 0, $$pre = 0, $$pre17 = 0, $$pre18 = 0, $$pre19 = 0, $10 = 0, $101 = 0.0, $105 = 0, $13 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $27 = 0, $29 = 0, $30 = 0, $31 = 0, $36 = 0, $4 = 0, $43 = 0, $46 = 0, $47 = 0, $53 = 0, $56 = 0, $6 = 0, $63 = 0, $66 = 0, $72 = 0, $73 = 0, $75 = 0, $77 = 0, $83 = 0.0, $91 = 0, $92 = 0, $94 = 0, $96 = 0, $buffPtr$064 = 0, $buffPtr$151 = 0, $buffPtr$2$lcssa = 0, $buffPtr$2$lcssa$lcssa = 0, $buffPtr$245 = 0, $buffPtr$3$lcssa = 0, $buffPtr$339 = 0, $h$063 = 0, $i$0$lcssa = 0, $i$065 = 0, $i$152 = 0, $i$258 = 0, $i1$037 = 0, $i2$042 = 0, $i3$048 = 0, $l$050 = 0, $l$1$lcssa = 0, $l$1$lcssa$lcssa = 0, $l$144 = 0, $l$2$lcssa = 0, $l$238 = 0, $m$0$lcssa = 0, $m$053 = 0, $m$1$lcssa = 0, $m$159 = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
do if (!$pattHandle) {
_arLog(3, 4649, sp);
$$0 = -1;
} else {
if (!$buffer) {
_arLog(3, 4674, $vararg_buffer1);
$$0 = -1;
break;
}
$2 = $pattHandle + 8 | 0;
$4 = HEAP32[$pattHandle + 4 >> 2] | 0;
L7 : do if (($4 | 0) > 0) {
$6 = HEAP32[$2 >> 2] | 0;
$i$065 = 0;
while (1) {
if (!(HEAP32[$6 + ($i$065 << 2) >> 2] | 0)) {
$i$0$lcssa = $i$065;
break L7;
}
$10 = $i$065 + 1 | 0;
if (($10 | 0) < ($4 | 0)) $i$065 = $10; else {
$i$0$lcssa = $10;
break;
}
}
} else $i$0$lcssa = 0; while (0);
if (($i$0$lcssa | 0) == ($4 | 0)) $$0 = -1; else {
$13 = ___strdup($buffer) | 0;
if (!$13) {
_arLog(3, 4719, $vararg_buffer3);
$$0 = -1;
break;
}
$16 = $pattHandle + 28 | 0;
$17 = $i$0$lcssa << 2;
$18 = $pattHandle + 12 | 0;
$19 = $pattHandle + 20 | 0;
$20 = $pattHandle + 16 | 0;
$21 = $pattHandle + 24 | 0;
$buffPtr$064 = _strtok($13, 4742) | 0;
$h$063 = 0;
L17 : while (1) {
$22 = $h$063 + $17 | 0;
$buffPtr$151 = $buffPtr$064;
$i3$048 = 0;
$l$050 = 0;
while (1) {
$23 = ($i3$048 | 0) == 0;
$24 = ($i3$048 | 0) == 2;
$$pre18 = HEAP32[$16 >> 2] | 0;
if (($$pre18 | 0) > 0) {
$27 = $$pre18;
$buffPtr$245 = $buffPtr$151;
$i2$042 = 0;
$l$144 = $l$050;
while (1) {
if (($27 | 0) > 0) {
$buffPtr$339 = $buffPtr$245;
$i1$037 = 0;
$l$238 = $l$144;
while (1) {
if (!$buffPtr$339) {
label = 17;
break L17;
}
$29 = _atoi($buffPtr$339) | 0;
$30 = _strtok(0, 4742) | 0;
$31 = 255 - $29 | 0;
$36 = (((Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 | 0) * 3 | 0) + $i3$048 | 0;
HEAP32[(HEAP32[(HEAP32[$18 >> 2] | 0) + ($22 << 2) >> 2] | 0) + ($36 << 2) >> 2] = $31;
$43 = (Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 | 0;
$46 = HEAP32[(HEAP32[$19 >> 2] | 0) + ($22 << 2) >> 2] | 0;
$47 = $46 + ($43 << 2) | 0;
if ($23) HEAP32[$47 >> 2] = $31; else {
HEAP32[$47 >> 2] = (HEAP32[$47 >> 2] | 0) + $31;
if ($24) {
$53 = $46 + ((Math_imul(HEAP32[$16 >> 2] | 0, $i2$042) | 0) + $i1$037 << 2) | 0;
HEAP32[$53 >> 2] = (HEAP32[$53 >> 2] | 0) / 3 | 0;
}
}
$56 = $31 + $l$238 | 0;
$i1$037 = $i1$037 + 1 | 0;
$$pre19 = HEAP32[$16 >> 2] | 0;
if (($i1$037 | 0) >= ($$pre19 | 0)) {
$$lcssa = $$pre19;
$buffPtr$3$lcssa = $30;
$l$2$lcssa = $56;
break;
} else {
$buffPtr$339 = $30;
$l$238 = $56;
}
}
} else {
$$lcssa = $27;
$buffPtr$3$lcssa = $buffPtr$245;
$l$2$lcssa = $l$144;
}
$i2$042 = $i2$042 + 1 | 0;
if (($i2$042 | 0) >= ($$lcssa | 0)) {
$buffPtr$2$lcssa = $buffPtr$3$lcssa;
$l$1$lcssa = $l$2$lcssa;
break;
} else {
$27 = $$lcssa;
$buffPtr$245 = $buffPtr$3$lcssa;
$l$144 = $l$2$lcssa;
}
}
} else {
$buffPtr$2$lcssa = $buffPtr$151;
$l$1$lcssa = $l$050;
}
$i3$048 = $i3$048 + 1 | 0;
if (($i3$048 | 0) >= 3) {
$buffPtr$2$lcssa$lcssa = $buffPtr$2$lcssa;
$l$1$lcssa$lcssa = $l$1$lcssa;
break;
} else {
$buffPtr$151 = $buffPtr$2$lcssa;
$l$050 = $l$1$lcssa;
}
}
$63 = HEAP32[$16 >> 2] | 0;
$66 = ($l$1$lcssa$lcssa | 0) / (Math_imul($63 * 3 | 0, $63) | 0) | 0;
if ((Math_imul($63 * 3 | 0, $63) | 0) > 0) {
$72 = HEAP32[(HEAP32[$18 >> 2] | 0) + ($22 << 2) >> 2] | 0;
$i$152 = 0;
$m$053 = 0;
while (1) {
$73 = $72 + ($i$152 << 2) | 0;
$75 = (HEAP32[$73 >> 2] | 0) - $66 | 0;
HEAP32[$73 >> 2] = $75;
$77 = (Math_imul($75, $75) | 0) + $m$053 | 0;
$i$152 = $i$152 + 1 | 0;
$$pre = HEAP32[$16 >> 2] | 0;
if (($i$152 | 0) >= (Math_imul($$pre * 3 | 0, $$pre) | 0)) {
$$lcssa36 = $$pre;
$m$0$lcssa = $77;
break;
} else $m$053 = $77;
}
} else {
$$lcssa36 = $63;
$m$0$lcssa = 0;
}
$83 = +Math_sqrt(+(+($m$0$lcssa | 0)));
HEAPF64[(HEAP32[$20 >> 2] | 0) + ($22 << 3) >> 3] = $83 == 0.0 ? 1.0e-07 : $83;
if (!(Math_imul($$lcssa36, $$lcssa36) | 0)) $m$1$lcssa = 0; else {
$91 = HEAP32[(HEAP32[$19 >> 2] | 0) + ($22 << 2) >> 2] | 0;
$i$258 = 0;
$m$159 = 0;
while (1) {
$92 = $91 + ($i$258 << 2) | 0;
$94 = (HEAP32[$92 >> 2] | 0) - $66 | 0;
HEAP32[$92 >> 2] = $94;
$96 = (Math_imul($94, $94) | 0) + $m$159 | 0;
$i$258 = $i$258 + 1 | 0;
$$pre17 = HEAP32[$16 >> 2] | 0;
if (($i$258 | 0) >= (Math_imul($$pre17, $$pre17) | 0)) {
$m$1$lcssa = $96;
break;
} else $m$159 = $96;
}
}
$101 = +Math_sqrt(+(+($m$1$lcssa | 0)));
HEAPF64[(HEAP32[$21 >> 2] | 0) + ($22 << 3) >> 3] = $101 == 0.0 ? 1.0e-07 : $101;
$105 = $h$063 + 1 | 0;
if (($105 | 0) < 4) {
$buffPtr$064 = $buffPtr$2$lcssa$lcssa;
$h$063 = $105;
} else {
label = 32;
break;
}
}
if ((label | 0) == 17) {
_arLog(3, 4747, $vararg_buffer5);
_free($13);
$$0 = -1;
break;
} else if ((label | 0) == 32) {
_free($13);
HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$0$lcssa << 2) >> 2] = 1;
HEAP32[$pattHandle >> 2] = (HEAP32[$pattHandle >> 2] | 0) + 1;
$$0 = $i$0$lcssa;
break;
}
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _qsort($base, $nel, $width, $cmp) {
$base = $base | 0;
$nel = $nel | 0;
$width = $width | 0;
$cmp = $cmp | 0;
var $$0$i = 0, $$0$i30 = 0, $$02$i$i = 0, $$02$i3$i = 0, $$lcssa = 0, $$lcssa57 = 0, $$phi$trans$insert$i = 0, $$pre1$i = 0, $$pre1$i6 = 0, $$pre1$i9 = 0, $$sum = 0, $0 = 0, $1 = 0, $10 = 0, $111 = 0, $14 = 0, $15 = 0, $17 = 0, $19 = 0, $23 = 0, $26 = 0, $36 = 0, $39 = 0, $41 = 0, $44 = 0, $46 = 0, $48 = 0, $49 = 0, $51 = 0, $53 = 0, $58 = 0, $59 = 0, $63 = 0, $68 = 0, $72 = 0, $79 = 0, $8 = 0, $8$phi = 0, $81 = 0, $82 = 0, $84 = 0, $87 = 0, $9 = 0, $91 = 0, $93 = 0, $94 = 0, $95 = 0, $head$0$lcssa = 0, $head$036 = 0, $head$1$be = 0, $head$153 = 0, $i$0 = 0, $lp = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $nTrailingZeros$03$i2$i$lcssa = 0, $p = 0, $pshift$0$lcssa = 0, $pshift$037 = 0, $pshift$1 = 0, $pshift$2$be = 0, $pshift$254 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$lp = sp + 8 | 0;
$p = sp;
$0 = Math_imul($width, $nel) | 0;
$1 = $p;
HEAP32[$1 >> 2] = 1;
HEAP32[$1 + 4 >> 2] = 0;
if ($0) {
$$sum = $0 - $width | 0;
HEAP32[$lp + 4 >> 2] = $width;
HEAP32[$lp >> 2] = $width;
$10 = $width;
$8 = $width;
$i$0 = 2;
while (1) {
$9 = $8 + $width + $10 | 0;
HEAP32[$lp + ($i$0 << 2) >> 2] = $9;
if ($9 >>> 0 < $0 >>> 0) {
$8$phi = $10;
$10 = $9;
$i$0 = $i$0 + 1 | 0;
$8 = $8$phi;
} else break;
}
$14 = 0 - $width | 0;
$15 = $base + $$sum | 0;
$$phi$trans$insert$i = $p + 4 | 0;
if (($$sum | 0) > 0) {
$17 = $15;
$19 = 1;
$head$036 = $base;
$pshift$037 = 1;
while (1) {
do if (($19 & 3 | 0) == 3) {
_sift($head$036, $width, $cmp, $pshift$037, $lp);
$$pre1$i = HEAP32[$$phi$trans$insert$i >> 2] | 0;
$23 = $$pre1$i << 30 | (HEAP32[$p >> 2] | 0) >>> 2;
HEAP32[$p >> 2] = $23;
HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i >>> 2;
$48 = $23;
$pshift$1 = $pshift$037 + 2 | 0;
} else {
$26 = $pshift$037 + -1 | 0;
if ((HEAP32[$lp + ($26 << 2) >> 2] | 0) >>> 0 < ($17 - $head$036 | 0) >>> 0) _sift($head$036, $width, $cmp, $pshift$037, $lp); else _trinkle($head$036, $width, $cmp, $p, $pshift$037, 0, $lp);
if (($pshift$037 | 0) == 1) {
$$pre1$i6 = HEAP32[$p >> 2] | 0;
HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i6 >>> 31 | HEAP32[$$phi$trans$insert$i >> 2] << 1;
$36 = $$pre1$i6 << 1;
HEAP32[$p >> 2] = $36;
$48 = $36;
$pshift$1 = 0;
break;
}
if ($26 >>> 0 > 31) {
$39 = HEAP32[$p >> 2] | 0;
HEAP32[$$phi$trans$insert$i >> 2] = $39;
HEAP32[$p >> 2] = 0;
$$0$i = $pshift$037 + -33 | 0;
$41 = $39;
$44 = 0;
} else {
$$0$i = $26;
$41 = HEAP32[$$phi$trans$insert$i >> 2] | 0;
$44 = HEAP32[$p >> 2] | 0;
}
HEAP32[$$phi$trans$insert$i >> 2] = $44 >>> (32 - $$0$i | 0) | $41 << $$0$i;
$46 = $44 << $$0$i;
HEAP32[$p >> 2] = $46;
$48 = $46;
$pshift$1 = 1;
} while (0);
$19 = $48 | 1;
HEAP32[$p >> 2] = $19;
$49 = $head$036 + $width | 0;
if ($49 >>> 0 >= $15 >>> 0) {
$head$0$lcssa = $49;
$pshift$0$lcssa = $pshift$1;
break;
} else {
$head$036 = $49;
$pshift$037 = $pshift$1;
}
}
} else {
$head$0$lcssa = $base;
$pshift$0$lcssa = 1;
}
_trinkle($head$0$lcssa, $width, $cmp, $p, $pshift$0$lcssa, 0, $lp);
$51 = $p + 4 | 0;
$53 = HEAP32[$p >> 2] | 0;
if (!(($pshift$0$lcssa | 0) == 1 & ($53 | 0) == 1 & (HEAP32[$51 >> 2] | 0) == 0)) {
$59 = $53;
$head$153 = $head$0$lcssa;
$pshift$254 = $pshift$0$lcssa;
while (1) {
if (($pshift$254 | 0) < 2) {
$58 = $59 + -1 | 0;
do if (!$58) {
$81 = 32;
label = 30;
} else {
if (!($58 & 1)) {
$$02$i$i = $58;
$nTrailingZeros$03$i$i = 0;
while (1) {
$63 = $nTrailingZeros$03$i$i + 1 | 0;
$$02$i$i = $$02$i$i >>> 1;
if ($$02$i$i & 1) {
$$lcssa = $63;
break;
} else $nTrailingZeros$03$i$i = $63;
}
if (!$$lcssa) label = 24; else $79 = $$lcssa;
} else label = 24;
if ((label | 0) == 24) {
label = 0;
$68 = HEAP32[$$phi$trans$insert$i >> 2] | 0;
if (!$68) {
$81 = 64;
label = 30;
break;
}
if (!($68 & 1)) {
$$02$i3$i = $68;
$nTrailingZeros$03$i2$i = 0;
} else {
$$0$i30 = 0;
$84 = $59;
$87 = $68;
$91 = 0;
break;
}
while (1) {
$72 = $nTrailingZeros$03$i2$i + 1 | 0;
$$02$i3$i = $$02$i3$i >>> 1;
if ($$02$i3$i & 1) {
$$lcssa57 = $72;
$nTrailingZeros$03$i2$i$lcssa = $nTrailingZeros$03$i2$i;
break;
} else $nTrailingZeros$03$i2$i = $72;
}
if (!$$lcssa57) {
$$0$i30 = 0;
$84 = $59;
$87 = $68;
$91 = 0;
break;
} else $79 = $nTrailingZeros$03$i2$i$lcssa + 33 | 0;
}
if ($79 >>> 0 > 31) {
$81 = $79;
label = 30;
} else {
$$0$i30 = $79;
$84 = $59;
$87 = HEAP32[$$phi$trans$insert$i >> 2] | 0;
$91 = $79;
}
} while (0);
if ((label | 0) == 30) {
label = 0;
$82 = HEAP32[$$phi$trans$insert$i >> 2] | 0;
HEAP32[$p >> 2] = $82;
HEAP32[$$phi$trans$insert$i >> 2] = 0;
$$0$i30 = $81 + -32 | 0;
$84 = $82;
$87 = 0;
$91 = $81;
}
HEAP32[$p >> 2] = $87 << 32 - $$0$i30 | $84 >>> $$0$i30;
HEAP32[$$phi$trans$insert$i >> 2] = $87 >>> $$0$i30;
$head$1$be = $head$153 + $14 | 0;
$pshift$2$be = $91 + $pshift$254 | 0;
} else {
$93 = $59 >>> 30;
$94 = $93 | HEAP32[$$phi$trans$insert$i >> 2] << 2;
$95 = $pshift$254 + -2 | 0;
HEAP32[$p >> 2] = ($59 << 1 & 2147483646 | $93 << 31) ^ 3;
HEAP32[$$phi$trans$insert$i >> 2] = $94 >>> 1;
_trinkle($head$153 + (0 - ((HEAP32[$lp + ($95 << 2) >> 2] | 0) + $width)) | 0, $width, $cmp, $p, $pshift$254 + -1 | 0, 1, $lp);
$$pre1$i9 = HEAP32[$p >> 2] | 0;
HEAP32[$$phi$trans$insert$i >> 2] = $$pre1$i9 >>> 31 | HEAP32[$$phi$trans$insert$i >> 2] << 1;
HEAP32[$p >> 2] = $$pre1$i9 << 1 | 1;
$111 = $head$153 + $14 | 0;
_trinkle($111, $width, $cmp, $p, $95, 1, $lp);
$head$1$be = $111;
$pshift$2$be = $95;
}
$59 = HEAP32[$p >> 2] | 0;
if (($pshift$2$be | 0) == 1 & ($59 | 0) == 1 & (HEAP32[$51 >> 2] | 0) == 0) break; else {
$head$153 = $head$1$be;
$pshift$254 = $pshift$2$be;
}
}
}
}
STACKTOP = sp;
return;
}
function _arImageProcLuma($ipi, $dataPtr) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
var $$0 = 0, $1 = 0, $104 = 0, $105 = 0, $110 = 0, $111 = 0, $116 = 0, $117 = 0, $122 = 0, $123 = 0, $128 = 0, $129 = 0, $13 = 0, $14 = 0, $157 = 0, $164 = 0, $185 = 0, $192 = 0, $213 = 0, $44 = 0, $45 = 0, $75 = 0, $76 = 0, $p$040 = 0, $p$142 = 0, $p$245 = 0, $p$348 = 0, $p$451 = 0, $p$554 = 0, $p$657 = 0, $p$760 = 0, $q$041 = 0, $q$143 = 0, $q$246 = 0, $q$349 = 0, $q$452 = 0, $q$555 = 0, $q$658 = 0, $q$761 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$1 = HEAP32[$ipi + 2068 >> 2] | 0;
L1 : do switch ($1 | 0) {
case 5:
case 12:
case 13:
case 14:
{
if (!(HEAP32[$ipi + 2072 >> 2] | 0)) {
HEAP32[$ipi >> 2] = $dataPtr;
$$0 = 0;
break L1;
} else {
_memcpy(HEAP32[$ipi >> 2] | 0, $dataPtr | 0, Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0) | 0;
$$0 = 0;
break L1;
}
break;
}
default:
{
if (($1 & -2 | 0) == 2) {
$13 = $ipi + 8 | 0;
$14 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$14 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$040 = 0;
$q$041 = 0;
}
while (1) {
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$040 >> 0] = (((HEAPU8[$dataPtr + ($q$041 | 1) >> 0] | 0) + (HEAPU8[$dataPtr + $q$041 >> 0] | 0) + (HEAPU8[$dataPtr + ($q$041 | 2) >> 0] | 0) | 0) >>> 0) / 3 | 0;
$p$040 = $p$040 + 1 | 0;
if ($p$040 >>> 0 >= (Math_imul(HEAP32[$14 >> 2] | 0, HEAP32[$13 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break L1;
} else $q$041 = $q$041 + 4 | 0;
}
}
if (($1 & -3 | 0) == 4) {
$44 = $ipi + 8 | 0;
$45 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$45 >> 2] | 0, HEAP32[$44 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$142 = 0;
$q$143 = 0;
}
while (1) {
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$142 >> 0] = (((HEAPU8[$dataPtr + ($q$143 | 2) >> 0] | 0) + (HEAPU8[$dataPtr + ($q$143 | 1) >> 0] | 0) + (HEAPU8[$dataPtr + ($q$143 | 3) >> 0] | 0) | 0) >>> 0) / 3 | 0;
$p$142 = $p$142 + 1 | 0;
if ($p$142 >>> 0 >= (Math_imul(HEAP32[$45 >> 2] | 0, HEAP32[$44 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break L1;
} else $q$143 = $q$143 + 4 | 0;
}
}
if ($1 >>> 0 < 2) {
$75 = $ipi + 8 | 0;
$76 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$76 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$245 = 0;
$q$246 = 0;
}
while (1) {
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$245 >> 0] = (((HEAPU8[$dataPtr + ($q$246 + 1) >> 0] | 0) + (HEAPU8[$dataPtr + $q$246 >> 0] | 0) + (HEAPU8[$dataPtr + ($q$246 + 2) >> 0] | 0) | 0) >>> 0) / 3 | 0;
$p$245 = $p$245 + 1 | 0;
if ($p$245 >>> 0 >= (Math_imul(HEAP32[$76 >> 2] | 0, HEAP32[$75 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break L1;
} else $q$246 = $q$246 + 3 | 0;
}
}
switch ($1 | 0) {
case 8:
{
$128 = $ipi + 8 | 0;
$129 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$129 >> 2] | 0, HEAP32[$128 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$348 = 0;
$q$349 = 0;
}
while (1) {
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$348 >> 0] = HEAP8[$dataPtr + $q$349 >> 0] | 0;
$p$348 = $p$348 + 1 | 0;
if ($p$348 >>> 0 >= (Math_imul(HEAP32[$129 >> 2] | 0, HEAP32[$128 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break;
} else $q$349 = $q$349 + 2 | 0;
}
break;
}
case 7:
{
$122 = $ipi + 8 | 0;
$123 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$123 >> 2] | 0, HEAP32[$122 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$451 = 0;
$q$452 = 0;
}
while (1) {
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$451 >> 0] = HEAP8[$dataPtr + ($q$452 | 1) >> 0] | 0;
$p$451 = $p$451 + 1 | 0;
if ($p$451 >>> 0 >= (Math_imul(HEAP32[$123 >> 2] | 0, HEAP32[$122 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break;
} else $q$452 = $q$452 + 2 | 0;
}
break;
}
case 9:
{
$116 = $ipi + 8 | 0;
$117 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$117 >> 2] | 0, HEAP32[$116 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$554 = 0;
$q$555 = 0;
}
while (1) {
$157 = HEAPU8[$dataPtr + $q$555 >> 0] | 0;
$164 = HEAPU8[$dataPtr + ($q$555 | 1) >> 0] | 0;
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$554 >> 0] = ((($157 & 248) + 10 + ($157 << 5 & 224) + ($164 >>> 3 & 28) + ($164 << 3 & 248) | 0) >>> 0) / 3 | 0;
$p$554 = $p$554 + 1 | 0;
if ($p$554 >>> 0 >= (Math_imul(HEAP32[$117 >> 2] | 0, HEAP32[$116 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break;
} else $q$555 = $q$555 + 2 | 0;
}
break;
}
case 10:
{
$110 = $ipi + 8 | 0;
$111 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$111 >> 2] | 0, HEAP32[$110 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$657 = 0;
$q$658 = 0;
}
while (1) {
$185 = HEAPU8[$dataPtr + $q$658 >> 0] | 0;
$192 = HEAPU8[$dataPtr + ($q$658 | 1) >> 0] | 0;
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$657 >> 0] = ((($185 & 248) + 12 + ($185 << 5 & 224) + ($192 >>> 3 & 24) + ($192 << 2 & 248) | 0) >>> 0) / 3 | 0;
$p$657 = $p$657 + 1 | 0;
if ($p$657 >>> 0 >= (Math_imul(HEAP32[$111 >> 2] | 0, HEAP32[$110 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break;
} else $q$658 = $q$658 + 2 | 0;
}
break;
}
case 11:
{
$104 = $ipi + 8 | 0;
$105 = $ipi + 12 | 0;
if (!(Math_imul(HEAP32[$105 >> 2] | 0, HEAP32[$104 >> 2] | 0) | 0)) {
$$0 = 0;
break L1;
} else {
$p$760 = 0;
$q$761 = 0;
}
while (1) {
$213 = HEAPU8[$dataPtr + $q$761 >> 0] | 0;
HEAP8[(HEAP32[$ipi >> 2] | 0) + $p$760 >> 0] = ((($213 & 240) + 24 + ($213 << 4 & 240) + ((HEAPU8[$dataPtr + ($q$761 | 1) >> 0] | 0) & 240) | 0) >>> 0) / 3 | 0;
$p$760 = $p$760 + 1 | 0;
if ($p$760 >>> 0 >= (Math_imul(HEAP32[$105 >> 2] | 0, HEAP32[$104 >> 2] | 0) | 0) >>> 0) {
$$0 = 0;
break;
} else $q$761 = $q$761 + 2 | 0;
}
break;
}
default:
{
_arLog(3, 4361, $vararg_buffer);
$$0 = -1;
break L1;
}
}
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_123parse_binary_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $op, $db) {
$first = $first | 0;
$last = $last | 0;
$op = $op | 0;
$db = $db | 0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $101 = 0, $103 = 0, $107 = 0, $11 = 0, $110 = 0, $112 = 0, $117 = 0, $118 = 0, $119 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $25 = 0, $26 = 0, $3 = 0, $34 = 0, $36 = 0, $37 = 0, $4 = 0, $41 = 0, $42 = 0, $44 = 0, $46 = 0, $48 = 0, $5 = 0, $53 = 0, $56 = 0, $58 = 0, $6 = 0, $65 = 0, $68 = 0, $71 = 0, $73 = 0, $8 = 0, $83 = 0, $86 = 0, $89 = 0, $91 = 0, $op1 = 0, $op2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$op2 = sp + 84 | 0;
$op1 = sp + 72 | 0;
$0 = sp + 60 | 0;
$1 = sp + 48 | 0;
$2 = sp + 36 | 0;
$3 = sp + 24 | 0;
$4 = sp + 12 | 0;
$5 = sp;
$6 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
L1 : do if (($6 | 0) == ($first | 0)) $$0 = $first; else {
$8 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($6, $last, $db) | 0;
$10 = $db + 4 | 0;
$11 = HEAP32[$10 >> 2] | 0;
if (($8 | 0) == ($6 | 0)) {
$117 = $11 + -24 | 0;
$119 = $11;
while (1) {
$118 = $119 + -24 | 0;
HEAP32[$10 >> 2] = $118;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($118);
$119 = HEAP32[$10 >> 2] | 0;
if (($119 | 0) == ($117 | 0)) {
$$0 = $first;
break L1;
}
}
}
if ((($11 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op2, $11 + -24 | 0);
$19 = HEAP32[$10 >> 2] | 0;
$20 = $19 + -24 | 0;
$22 = $19;
do {
$21 = $22 + -24 | 0;
HEAP32[$10 >> 2] = $21;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($21);
$22 = HEAP32[$10 >> 2] | 0;
} while (($22 | 0) != ($20 | 0));
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($op1, $19 + -48 | 0);
$25 = HEAP32[$10 >> 2] | 0;
$26 = $25 + -24 | 0;
if (!(HEAP8[$26 >> 0] & 1)) {
HEAP8[$26 + 1 >> 0] = 0;
HEAP8[$26 >> 0] = 0;
} else {
HEAP8[HEAP32[$25 + -16 >> 2] >> 0] = 0;
HEAP32[$25 + -20 >> 2] = 0;
}
$34 = HEAP8[$op >> 0] | 0;
$36 = ($34 & 1) == 0;
$37 = $op + 4 | 0;
$41 = $36 ? ($34 & 255) >>> 1 : HEAP32[$37 >> 2] | 0;
$42 = $op + 8 | 0;
$44 = $op + 1 | 0;
$46 = $41 >>> 0 > 1;
$48 = _memcmp($36 ? $44 : HEAP32[$42 >> 2] | 0, 12778, $46 ? 1 : $41) | 0;
if (!((($48 | 0) == 0 ? (($41 | 0) == 0 ? -1 : $46 & 1) : $48) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($26, 40);
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($5, 12714, $op1);
$53 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($5, 14007) | 0;
HEAP32[$4 >> 2] = HEAP32[$53 >> 2];
HEAP32[$4 + 4 >> 2] = HEAP32[$53 + 4 >> 2];
HEAP32[$4 + 8 >> 2] = HEAP32[$53 + 8 >> 2];
HEAP32[$53 >> 2] = 0;
HEAP32[$53 + 4 >> 2] = 0;
HEAP32[$53 + 8 >> 2] = 0;
$56 = HEAP8[$op >> 0] | 0;
$58 = ($56 & 1) == 0;
$65 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($4, $58 ? $44 : HEAP32[$42 >> 2] | 0, $58 ? ($56 & 255) >>> 1 : HEAP32[$37 >> 2] | 0) | 0;
HEAP32[$3 >> 2] = HEAP32[$65 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$65 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$65 + 8 >> 2];
HEAP32[$65 >> 2] = 0;
HEAP32[$65 + 4 >> 2] = 0;
HEAP32[$65 + 8 >> 2] = 0;
$68 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($3, 12616) | 0;
HEAP32[$2 >> 2] = HEAP32[$68 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$68 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$68 + 8 >> 2];
HEAP32[$68 >> 2] = 0;
HEAP32[$68 + 4 >> 2] = 0;
HEAP32[$68 + 8 >> 2] = 0;
$71 = HEAP8[$op2 >> 0] | 0;
$73 = ($71 & 1) == 0;
$83 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2, $73 ? $op2 + 1 | 0 : HEAP32[$op2 + 8 >> 2] | 0, $73 ? ($71 & 255) >>> 1 : HEAP32[$op2 + 4 >> 2] | 0) | 0;
HEAP32[$1 >> 2] = HEAP32[$83 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$83 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$83 + 8 >> 2];
HEAP32[$83 >> 2] = 0;
HEAP32[$83 + 4 >> 2] = 0;
HEAP32[$83 + 8 >> 2] = 0;
$86 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
HEAP32[$0 >> 2] = HEAP32[$86 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$86 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$86 + 8 >> 2];
HEAP32[$86 >> 2] = 0;
HEAP32[$86 + 4 >> 2] = 0;
HEAP32[$86 + 8 >> 2] = 0;
$89 = HEAP8[$0 >> 0] | 0;
$91 = ($89 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($26, $91 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $91 ? ($89 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($4);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($5);
$101 = HEAP8[$op >> 0] | 0;
$103 = ($101 & 1) == 0;
$107 = $103 ? ($101 & 255) >>> 1 : HEAP32[$37 >> 2] | 0;
$110 = $107 >>> 0 > 1;
$112 = _memcmp($103 ? $44 : HEAP32[$42 >> 2] | 0, 12778, $110 ? 1 : $107) | 0;
if (!((($112 | 0) == 0 ? (($107 | 0) == 0 ? -1 : $110 & 1) : $112) | 0)) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($26, 41);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($op2);
$$0 = $8;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $14 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $49 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $64 = 0, $67 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $does_dst_type_point_to_our_static_type$0$off0$lcssa = 0, $does_dst_type_point_to_our_static_type$0$off023 = 0, $does_dst_type_point_to_our_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$0$off025 = 0, $is_dst_type_derived_from_static_type$1$off0 = 0, $is_dst_type_derived_from_static_type$2$off0 = 0, $p$024 = 0, $p2$0 = 0, $p2$1 = 0, $p2$2 = 0, label = 0;
L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) {
if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) {
$6 = $info + 28 | 0;
if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below;
}
} else {
if (($this | 0) != (HEAP32[$info >> 2] | 0)) {
$59 = HEAP32[$this + 12 >> 2] | 0;
$60 = $this + 16 + ($59 << 3) | 0;
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this + 16 | 0, $info, $current_ptr, $path_below, $use_strcmp);
$61 = $this + 24 | 0;
if (($59 | 0) <= 1) break;
$64 = HEAP32[$this + 8 >> 2] | 0;
if (!($64 & 2)) {
$67 = $info + 36 | 0;
if ((HEAP32[$67 >> 2] | 0) != 1) {
if (!($64 & 1)) {
$79 = $info + 54 | 0;
$p2$2 = $61;
while (1) {
if (HEAP8[$79 >> 0] | 0) break L1;
if ((HEAP32[$67 >> 2] | 0) == 1) break L1;
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$2, $info, $current_ptr, $path_below, $use_strcmp);
$p2$2 = $p2$2 + 8 | 0;
if ($p2$2 >>> 0 >= $60 >>> 0) break L1;
}
}
$77 = $info + 24 | 0;
$78 = $info + 54 | 0;
$p2$1 = $61;
while (1) {
if (HEAP8[$78 >> 0] | 0) break L1;
if ((HEAP32[$67 >> 2] | 0) == 1) if ((HEAP32[$77 >> 2] | 0) == 1) break L1;
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$1, $info, $current_ptr, $path_below, $use_strcmp);
$p2$1 = $p2$1 + 8 | 0;
if ($p2$1 >>> 0 >= $60 >>> 0) break L1;
}
}
}
$70 = $info + 54 | 0;
$p2$0 = $61;
while (1) {
if (HEAP8[$70 >> 0] | 0) break L1;
__ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($p2$0, $info, $current_ptr, $path_below, $use_strcmp);
$p2$0 = $p2$0 + 8 | 0;
if ($p2$0 >>> 0 >= $60 >>> 0) break L1;
}
}
if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) {
$14 = $info + 20 | 0;
if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) {
HEAP32[$info + 32 >> 2] = $path_below;
$20 = $info + 44 | 0;
if ((HEAP32[$20 >> 2] | 0) == 4) break;
$24 = HEAP32[$this + 12 >> 2] | 0;
$25 = $this + 16 + ($24 << 3) | 0;
$26 = $info + 52 | 0;
$27 = $info + 53 | 0;
$28 = $info + 54 | 0;
$29 = $this + 8 | 0;
$30 = $info + 24 | 0;
L34 : do if (($24 | 0) > 0) {
$does_dst_type_point_to_our_static_type$0$off023 = 0;
$is_dst_type_derived_from_static_type$0$off025 = 0;
$p$024 = $this + 16 | 0;
while (1) {
HEAP8[$26 >> 0] = 0;
HEAP8[$27 >> 0] = 0;
__ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$024, $info, $current_ptr, $current_ptr, 1, $use_strcmp);
if (HEAP8[$28 >> 0] | 0) {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off023;
$is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$0$off025;
label = 20;
break L34;
}
do if (!(HEAP8[$27 >> 0] | 0)) {
$does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off023;
$is_dst_type_derived_from_static_type$1$off0 = $is_dst_type_derived_from_static_type$0$off025;
} else {
if (!(HEAP8[$26 >> 0] | 0)) if (!(HEAP32[$29 >> 2] & 1)) {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$0$off023;
$is_dst_type_derived_from_static_type$2$off0 = 1;
label = 20;
break L34;
} else {
$does_dst_type_point_to_our_static_type$1$off0 = $does_dst_type_point_to_our_static_type$0$off023;
$is_dst_type_derived_from_static_type$1$off0 = 1;
break;
}
if ((HEAP32[$30 >> 2] | 0) == 1) break L34;
if (!(HEAP32[$29 >> 2] & 2)) break L34; else {
$does_dst_type_point_to_our_static_type$1$off0 = 1;
$is_dst_type_derived_from_static_type$1$off0 = 1;
}
} while (0);
$p$024 = $p$024 + 8 | 0;
if ($p$024 >>> 0 >= $25 >>> 0) {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = $does_dst_type_point_to_our_static_type$1$off0;
$is_dst_type_derived_from_static_type$2$off0 = $is_dst_type_derived_from_static_type$1$off0;
label = 20;
break;
} else {
$does_dst_type_point_to_our_static_type$0$off023 = $does_dst_type_point_to_our_static_type$1$off0;
$is_dst_type_derived_from_static_type$0$off025 = $is_dst_type_derived_from_static_type$1$off0;
}
}
} else {
$does_dst_type_point_to_our_static_type$0$off0$lcssa = 0;
$is_dst_type_derived_from_static_type$2$off0 = 0;
label = 20;
} while (0);
do if ((label | 0) == 20) {
if ($does_dst_type_point_to_our_static_type$0$off0$lcssa) label = 24; else {
HEAP32[$14 >> 2] = $current_ptr;
$49 = $info + 40 | 0;
HEAP32[$49 >> 2] = (HEAP32[$49 >> 2] | 0) + 1;
if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$30 >> 2] | 0) == 2) {
HEAP8[$28 >> 0] = 1;
if ($is_dst_type_derived_from_static_type$2$off0) break;
} else label = 24; else label = 24;
}
if ((label | 0) == 24) if ($is_dst_type_derived_from_static_type$2$off0) break;
HEAP32[$20 >> 2] = 4;
break L1;
} while (0);
HEAP32[$20 >> 2] = 3;
break;
}
}
if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1;
} while (0);
return;
}
function _arVecTridiagonalize($a, $d, $e) {
$a = $a | 0;
$d = $d | 0;
$e = $e | 0;
var $$0 = 0, $$pre$phiZ2D = 0, $1 = 0, $106 = 0, $107 = 0, $110 = 0, $112 = 0, $113 = 0, $114 = 0, $117 = 0, $118 = 0, $12 = 0, $120 = 0, $121 = 0, $125 = 0.0, $126 = 0, $13 = 0, $131 = 0, $14 = 0, $16 = 0, $17 = 0, $23 = 0, $25 = 0, $26 = 0.0, $32 = 0, $34 = 0, $35 = 0, $37 = 0, $40 = 0, $45 = 0.0, $54 = 0.0, $63 = 0.0, $65 = 0, $68 = 0.0, $70 = 0, $72 = 0.0, $73 = 0, $75 = 0, $84 = 0, $90 = 0, $92 = 0, $95 = 0, $97 = 0, $i$039 = 0, $i$143 = 0, $i$144 = 0, $i$223 = 0, $i$325 = 0, $j$032 = 0, $j$135 = 0, $j$240 = 0, $j$320 = 0, $k$047 = 0, $k$129$in = 0, $s$0$lcssa = 0.0, $s$031 = 0.0, $s$1$lcssa = 0.0, $s$134 = 0.0, $wv1 = 0, $wv2 = 0, label = 0, sp = 0, $k$047$looptemp = 0, $k$129$in$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$wv1 = sp + 8 | 0;
$wv2 = sp;
$1 = HEAP32[$a + 8 >> 2] | 0;
if (($1 | 0) == (HEAP32[$a + 4 >> 2] | 0)) if (($1 | 0) == (HEAP32[$d + 4 >> 2] | 0)) if (($1 | 0) == ((HEAP32[$e + 4 >> 2] | 0) + 1 | 0)) {
$12 = $1 + -2 | 0;
$13 = $wv1 + 4 | 0;
$14 = $wv2 + 4 | 0;
if (($1 | 0) > 2) {
$i$143 = $1 + -1 | 0;
$k$047 = 0;
do {
$16 = Math_imul($k$047, $1) | 0;
$17 = HEAP32[$a >> 2] | 0;
HEAPF64[(HEAP32[$d >> 2] | 0) + ($k$047 << 3) >> 3] = +HEAPF64[$17 + ($16 + $k$047 << 3) >> 3];
$23 = $1 - $k$047 + -1 | 0;
HEAP32[$13 >> 2] = $23;
$k$047$looptemp = $k$047;
$k$047 = $k$047 + 1 | 0;
$25 = $17 + ($16 + $k$047 << 3) | 0;
HEAP32[$wv1 >> 2] = $25;
$26 = +_arVecHousehold($wv1);
HEAPF64[(HEAP32[$e >> 2] | 0) + ($k$047$looptemp << 3) >> 3] = $26;
if (!($26 == 0.0)) {
if (($k$047 | 0) < ($1 | 0)) {
$32 = HEAP32[$d >> 2] | 0;
$i$039 = $k$047;
do {
if (($k$047 | 0) < ($i$039 | 0)) {
$34 = HEAP32[$a >> 2] | 0;
$j$032 = $k$047;
$s$031 = 0.0;
while (1) {
$40 = $34 + ((Math_imul($j$032, $1) | 0) + $i$039 << 3) | 0;
$45 = $s$031 + +HEAPF64[$40 >> 3] * +HEAPF64[$17 + ($j$032 + $16 << 3) >> 3];
$j$032 = $j$032 + 1 | 0;
if (($j$032 | 0) >= ($i$039 | 0)) {
$s$0$lcssa = $45;
break;
} else $s$031 = $45;
}
} else $s$0$lcssa = 0.0;
$35 = Math_imul($i$039, $1) | 0;
if (($i$039 | 0) < ($1 | 0)) {
$37 = HEAP32[$a >> 2] | 0;
$j$135 = $i$039;
$s$134 = $s$0$lcssa;
while (1) {
$54 = $s$134 + +HEAPF64[$37 + ($j$135 + $35 << 3) >> 3] * +HEAPF64[$17 + ($j$135 + $16 << 3) >> 3];
$j$135 = $j$135 + 1 | 0;
if (($j$135 | 0) >= ($1 | 0)) {
$s$1$lcssa = $54;
break;
} else $s$134 = $54;
}
} else $s$1$lcssa = $s$0$lcssa;
HEAPF64[$32 + ($i$039 << 3) >> 3] = $s$1$lcssa;
$i$039 = $i$039 + 1 | 0;
} while (($i$039 | 0) < ($1 | 0));
}
HEAP32[$14 >> 2] = $23;
HEAP32[$13 >> 2] = $23;
HEAP32[$wv1 >> 2] = $25;
HEAP32[$wv2 >> 2] = (HEAP32[$d >> 2] | 0) + ($k$047 << 3);
$63 = +_arVecInnerproduct($wv1, $wv2) * .5;
if (($i$143 | 0) > ($k$047$looptemp | 0)) {
$65 = HEAP32[$d >> 2] | 0;
$i$144 = $i$143;
do {
$68 = +HEAPF64[$17 + ($i$144 + $16 << 3) >> 3];
$70 = $65 + ($i$144 << 3) | 0;
$72 = +HEAPF64[$70 >> 3] - $63 * $68;
HEAPF64[$70 >> 3] = $72;
$73 = Math_imul($i$144, $1) | 0;
if (($i$144 | 0) < ($1 | 0)) {
$75 = HEAP32[$a >> 2] | 0;
$j$240 = $i$144;
do {
$84 = $75 + ($j$240 + $73 << 3) | 0;
HEAPF64[$84 >> 3] = +HEAPF64[$84 >> 3] - ($68 * +HEAPF64[$65 + ($j$240 << 3) >> 3] + $72 * +HEAPF64[$17 + ($j$240 + $16 << 3) >> 3]);
$j$240 = $j$240 + 1 | 0;
} while (($j$240 | 0) < ($1 | 0));
}
$i$144 = $i$144 + -1 | 0;
} while (($i$144 | 0) > ($k$047$looptemp | 0));
}
}
} while (($k$047 | 0) < ($12 | 0));
}
if (($1 | 0) > 1) {
$90 = Math_imul($12, $1) | 0;
$92 = HEAP32[$a >> 2] | 0;
$95 = HEAP32[$d >> 2] | 0;
HEAPF64[$95 + ($12 << 3) >> 3] = +HEAPF64[$92 + ($90 + $12 << 3) >> 3];
$97 = $1 + -1 | 0;
HEAPF64[(HEAP32[$e >> 2] | 0) + ($12 << 3) >> 3] = +HEAPF64[$92 + ($97 + $90 << 3) >> 3];
$$pre$phiZ2D = $97;
$107 = $92;
$110 = $95;
label = 27;
} else if (($1 | 0) > 0) {
$$pre$phiZ2D = 0;
$107 = HEAP32[$a >> 2] | 0;
$110 = HEAP32[$d >> 2] | 0;
label = 27;
}
if ((label | 0) == 27) {
$106 = $107 + ((Math_imul($$pre$phiZ2D, $1) | 0) + $$pre$phiZ2D << 3) | 0;
HEAPF64[$110 + ($$pre$phiZ2D << 3) >> 3] = +HEAPF64[$106 >> 3];
}
if (($1 | 0) > 0) {
$112 = ($1 | 0) > 0;
$k$129$in = $1;
do {
$k$129$in$looptemp = $k$129$in;
$k$129$in = $k$129$in + -1 | 0;
$113 = Math_imul($k$129$in, $1) | 0;
$114 = HEAP32[$a >> 2] | 0;
if (($k$129$in$looptemp | 0) <= ($12 | 0)) {
$117 = $1 - $k$129$in + -1 | 0;
$118 = $114 + ($113 + $k$129$in$looptemp << 3) | 0;
if (($k$129$in$looptemp | 0) < ($1 | 0)) {
$120 = ($k$129$in$looptemp | 0) < ($1 | 0);
$i$223 = $k$129$in$looptemp;
do {
HEAP32[$14 >> 2] = $117;
HEAP32[$13 >> 2] = $117;
HEAP32[$wv1 >> 2] = $118;
$121 = Math_imul($i$223, $1) | 0;
HEAP32[$wv2 >> 2] = (HEAP32[$a >> 2] | 0) + ($121 + $k$129$in$looptemp << 3);
$125 = +_arVecInnerproduct($wv1, $wv2);
if ($120) {
$126 = HEAP32[$a >> 2] | 0;
$j$320 = $k$129$in$looptemp;
do {
$131 = $126 + ($j$320 + $121 << 3) | 0;
HEAPF64[$131 >> 3] = +HEAPF64[$131 >> 3] - $125 * +HEAPF64[$114 + ($j$320 + $113 << 3) >> 3];
$j$320 = $j$320 + 1 | 0;
} while (($j$320 | 0) < ($1 | 0));
}
$i$223 = $i$223 + 1 | 0;
} while (($i$223 | 0) < ($1 | 0));
}
}
if ($112) {
$i$325 = 0;
do {
HEAPF64[$114 + ($i$325 + $113 << 3) >> 3] = 0.0;
$i$325 = $i$325 + 1 | 0;
} while (($i$325 | 0) < ($1 | 0));
}
HEAPF64[$114 + ($113 + $k$129$in << 3) >> 3] = 1.0;
} while (($k$129$in$looptemp | 0) > 1);
$$0 = 0;
} else $$0 = 0;
} else $$0 = -1; else $$0 = -1; else $$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($first, $last, $db, $status) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
$status = $status | 0;
var $$0$i$i$i11 = 0, $$0$i2 = 0, $$03$i = 0, $$lcssa = 0, $0 = 0, $1 = 0, $12 = 0, $13 = 0, $2 = 0, $20 = 0, $22 = 0, $24 = 0, $31 = 0, $32 = 0, $41 = 0, $44 = 0, $47 = 0, $49 = 0, $6 = 0, $66 = 0, $67 = 0, $78 = 0, $83 = 0, $95 = 0, $__p$0$i$i$i10 = 0, $__p$0$ph$i$i$i = 0, $i$0$i16 = 0, $t$0 = 0, $t$0$i15 = 0, $t$0$i15$lcssa20 = 0, $t$1$i$ph = 0, $t$1$i12 = 0, $t$2$i = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 24 | 0;
$1 = sp + 12 | 0;
$2 = sp;
L1 : do if ($first >>> 0 < $last >>> 0) {
L3 : do if ((HEAP8[$first >> 0] | 0) == 95) {
$6 = $last;
if (($6 - $first | 0) <= 3) {
HEAP32[$status >> 2] = -2;
break L1;
}
switch (HEAP8[$first + 1 >> 0] | 0) {
case 90:
{
$12 = $first + 2 | 0;
$13 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($12, $last, $db) | 0;
if (($13 | 0) == ($12 | 0) | ($13 | 0) == ($last | 0)) $t$0 = $13; else if ((HEAP8[$13 >> 0] | 0) == 46) {
$20 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($20 | 0)) $$03$i = $13; else {
$22 = $20 + -24 | 0;
$24 = $6 - $13 | 0;
if ($24 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($2);
if ($24 >>> 0 < 11) {
HEAP8[$2 >> 0] = $24 << 1;
$__p$0$ph$i$i$i = $2 + 1 | 0;
} else {
$31 = $24 + 16 & -16;
$32 = _malloc($31) | 0;
HEAP32[$2 + 8 >> 2] = $32;
HEAP32[$2 >> 2] = $31 | 1;
HEAP32[$2 + 4 >> 2] = $24;
$__p$0$ph$i$i$i = $32;
}
if (($13 | 0) != ($last | 0)) {
$$0$i$i$i11 = $13;
$__p$0$i$i$i10 = $__p$0$ph$i$i$i;
while (1) {
HEAP8[$__p$0$i$i$i10 >> 0] = HEAP8[$$0$i$i$i11 >> 0] | 0;
$$0$i$i$i11 = $$0$i$i$i11 + 1 | 0;
if (($$0$i$i$i11 | 0) == ($last | 0)) break; else $__p$0$i$i$i10 = $__p$0$i$i$i10 + 1 | 0;
}
}
HEAP8[$__p$0$ph$i$i$i + $24 >> 0] = 0;
$41 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($2, 0, 12616) | 0;
HEAP32[$1 >> 2] = HEAP32[$41 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$41 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$41 + 8 >> 2];
HEAP32[$41 >> 2] = 0;
HEAP32[$41 + 4 >> 2] = 0;
HEAP32[$41 + 8 >> 2] = 0;
$44 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
HEAP32[$0 >> 2] = HEAP32[$44 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$44 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$44 + 8 >> 2];
HEAP32[$44 >> 2] = 0;
HEAP32[$44 + 4 >> 2] = 0;
HEAP32[$44 + 8 >> 2] = 0;
$47 = HEAP8[$0 >> 0] | 0;
$49 = ($47 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($22, $49 ? $0 + 1 | 0 : HEAP32[$0 + 8 >> 2] | 0, $49 ? ($47 & 255) >>> 1 : HEAP32[$0 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$03$i = $last;
}
$t$0 = $$03$i;
} else $t$0 = $13;
if (($t$0 | 0) == ($last | 0)) break L3;
HEAP32[$status >> 2] = -2;
break L1;
break;
}
case 95:
{
label = 20;
break;
}
default:
{}
}
if ((label | 0) == 20) if ((HEAP8[$first + 2 >> 0] | 0) == 95) if ((HEAP8[$first + 3 >> 0] | 0) == 90) {
$66 = $first + 4 | 0;
$67 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($66, $last, $db) | 0;
if (($67 | 0) == ($66 | 0) | ($67 | 0) == ($last | 0)) {
HEAP32[$status >> 2] = -2;
break L1;
}
L36 : do if (($6 - $67 | 0) > 12) {
$i$0$i16 = 0;
$t$0$i15 = $67;
while (1) {
if ((HEAP8[$t$0$i15 >> 0] | 0) != (HEAP8[12621 + $i$0$i16 >> 0] | 0)) {
$$0$i2 = $67;
break L36;
}
$i$0$i16 = $i$0$i16 + 1 | 0;
$78 = $t$0$i15 + 1 | 0;
if (($i$0$i16 | 0) >= 13) {
$$lcssa = $78;
$t$0$i15$lcssa20 = $t$0$i15;
break;
} else $t$0$i15 = $78;
}
L41 : do if (($$lcssa | 0) == ($last | 0)) $t$2$i = $last; else {
if ((HEAP8[$$lcssa >> 0] | 0) == 95) {
$83 = $t$0$i15$lcssa20 + 2 | 0;
if (($83 | 0) == ($last | 0)) {
$$0$i2 = $67;
break L36;
}
if (((HEAP8[$83 >> 0] | 0) + -48 | 0) >>> 0 >= 10) {
$$0$i2 = $67;
break L36;
}
$t$1$i$ph = $t$0$i15$lcssa20 + 3 | 0;
} else $t$1$i$ph = $$lcssa;
if (($t$1$i$ph | 0) == ($last | 0)) $t$2$i = $last; else {
$t$1$i12 = $t$1$i$ph;
while (1) {
if (((HEAP8[$t$1$i12 >> 0] | 0) + -48 | 0) >>> 0 >= 10) {
$t$2$i = $t$1$i12;
break L41;
}
$t$1$i12 = $t$1$i12 + 1 | 0;
if (($t$1$i12 | 0) == ($last | 0)) {
$t$2$i = $last;
break;
}
}
}
} while (0);
$95 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($95 | 0)) $$0$i2 = $67; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($95 + -24 | 0, 0, 12635) | 0;
$$0$i2 = $t$2$i;
}
} else $$0$i2 = $67; while (0);
if (($$0$i2 | 0) == ($last | 0)) break;
HEAP32[$status >> 2] = -2;
break L1;
}
HEAP32[$status >> 2] = -2;
break L1;
} else if ((__ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0) != ($last | 0)) {
HEAP32[$status >> 2] = -2;
break L1;
} while (0);
if (!(HEAP32[$status >> 2] | 0)) if ((HEAP32[$db >> 2] | 0) == (HEAP32[$db + 4 >> 2] | 0)) HEAP32[$status >> 2] = -2;
} else HEAP32[$status >> 2] = -2; while (0);
STACKTOP = sp;
return;
}
function _arMatrixSelfInv($m) {
$m = $m | 0;
var $$0$i = 0, $$lcssa = 0, $0 = 0, $13 = 0, $15 = 0, $18 = 0.0, $19 = 0, $2 = 0, $24 = 0, $25 = 0, $26 = 0, $30 = 0.0, $35 = 0.0, $43 = 0, $44 = 0.0, $59 = 0, $61 = 0, $63 = 0, $65 = 0, $70 = 0.0, $exitcond$i23 = 0, $exitcond12$i36 = 0, $exitcond13$i43 = 0, $exitcond7$i30 = 0, $i$0$i14 = 0, $i$1$i45 = 0, $i$2$i8 = 0, $indvars$iv$i49 = 0, $indvars$iv9$i44 = 0, $ip$0$i51 = 0, $ip$1$i$lcssa = 0, $ip$1$i15 = 0, $ip$2$i = 0, $j$0$i24 = 0, $j$1$i31 = 0, $j$2$i37 = 0, $j$3$i$lcssa = 0, $j$3$i4 = 0, $n$0$i53 = 0, $n$1$i50 = 0, $n$2$i12 = 0, $nos$i = 0, $p$0$i$lcssa = 0.0, $p$0$i17 = 0.0, $p$1$i = 0.0, $scevgep$i = 0, $wap$0$i16 = 0, $wap$1$i26 = 0, $wap$2$i32 = 0, $wap$3$i39 = 0, $wap$4$i10 = 0, $wbp$0$i25 = 0, $wbp$1$i38 = 0, $wbp$2$i9 = 0, sp = 0, $wap$2$i32$looptemp = 0, $wap$3$i39$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 2e3 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$nos$i = sp;
$0 = HEAP32[$m >> 2] | 0;
$2 = HEAP32[$m + 4 >> 2] | 0;
L1 : do if (($2 | 0) > 500) $$0$i = 0; else {
switch ($2 | 0) {
case 0:
{
$$0$i = 0;
break L1;
break;
}
case 1:
{
HEAPF64[$0 >> 3] = 1.0 / +HEAPF64[$0 >> 3];
$$0$i = $0;
break L1;
break;
}
default:
{}
}
if (($2 | 0) > 0) {
$n$0$i53 = 0;
do {
HEAP32[$nos$i + ($n$0$i53 << 2) >> 2] = $n$0$i53;
$n$0$i53 = $n$0$i53 + 1 | 0;
} while (($n$0$i53 | 0) < ($2 | 0));
}
$scevgep$i = $0 + ($2 + -1 << 3) | 0;
if (($2 | 0) > 0) {
$exitcond$i23 = ($2 | 0) == 0;
$exitcond7$i30 = ($2 | 0) == 1;
$exitcond13$i43 = ($2 | 0) == 0;
$exitcond12$i36 = ($2 | 0) == 1;
$indvars$iv$i49 = $scevgep$i;
$ip$0$i51 = 0;
$n$1$i50 = 0;
while (1) {
$15 = $0 + ((Math_imul($n$1$i50, $2) | 0) << 3) | 0;
if (($n$1$i50 | 0) < ($2 | 0)) {
$i$0$i14 = $n$1$i50;
$ip$1$i15 = $ip$0$i51;
$p$0$i17 = 0.0;
$wap$0$i16 = $15;
while (1) {
$18 = +Math_abs(+(+HEAPF64[$wap$0$i16 >> 3]));
$19 = $p$0$i17 < $18;
$ip$2$i = $19 ? $i$0$i14 : $ip$1$i15;
$p$1$i = $19 ? $18 : $p$0$i17;
$i$0$i14 = $i$0$i14 + 1 | 0;
if (($i$0$i14 | 0) >= ($2 | 0)) {
$ip$1$i$lcssa = $ip$2$i;
$p$0$i$lcssa = $p$1$i;
break;
} else {
$ip$1$i15 = $ip$2$i;
$p$0$i17 = $p$1$i;
$wap$0$i16 = $wap$0$i16 + ($2 << 3) | 0;
}
}
} else {
$ip$1$i$lcssa = $ip$0$i51;
$p$0$i$lcssa = 0.0;
}
if ($p$0$i$lcssa <= 1.0e-10) {
$$0$i = 0;
break L1;
}
$24 = $nos$i + ($ip$1$i$lcssa << 2) | 0;
$25 = HEAP32[$24 >> 2] | 0;
$26 = $nos$i + ($n$1$i50 << 2) | 0;
HEAP32[$24 >> 2] = HEAP32[$26 >> 2];
HEAP32[$26 >> 2] = $25;
if (!$exitcond$i23) {
$j$0$i24 = 0;
$wap$1$i26 = $0 + ((Math_imul($ip$1$i$lcssa, $2) | 0) << 3) | 0;
$wbp$0$i25 = $15;
while (1) {
$30 = +HEAPF64[$wap$1$i26 >> 3];
HEAPF64[$wap$1$i26 >> 3] = +HEAPF64[$wbp$0$i25 >> 3];
HEAPF64[$wbp$0$i25 >> 3] = $30;
$j$0$i24 = $j$0$i24 + 1 | 0;
if (($j$0$i24 | 0) == ($2 | 0)) break; else {
$wap$1$i26 = $wap$1$i26 + 8 | 0;
$wbp$0$i25 = $wbp$0$i25 + 8 | 0;
}
}
}
$35 = +HEAPF64[$15 >> 3];
if (!$exitcond7$i30) {
$j$1$i31 = 1;
$wap$2$i32 = $15;
do {
$wap$2$i32$looptemp = $wap$2$i32;
$wap$2$i32 = $wap$2$i32 + 8 | 0;
HEAPF64[$wap$2$i32$looptemp >> 3] = +HEAPF64[$wap$2$i32 >> 3] / $35;
$j$1$i31 = $j$1$i31 + 1 | 0;
} while (($j$1$i31 | 0) != ($2 | 0));
}
HEAPF64[$indvars$iv$i49 >> 3] = 1.0 / $35;
if (!$exitcond13$i43) {
$i$1$i45 = 0;
$indvars$iv9$i44 = $scevgep$i;
while (1) {
if (($i$1$i45 | 0) != ($n$1$i50 | 0)) {
$43 = $0 + ((Math_imul($i$1$i45, $2) | 0) << 3) | 0;
$44 = +HEAPF64[$43 >> 3];
if (!$exitcond12$i36) {
$j$2$i37 = 1;
$wap$3$i39 = $43;
$wbp$1$i38 = $15;
while (1) {
$wap$3$i39$looptemp = $wap$3$i39;
$wap$3$i39 = $wap$3$i39 + 8 | 0;
HEAPF64[$wap$3$i39$looptemp >> 3] = +HEAPF64[$wap$3$i39 >> 3] - $44 * +HEAPF64[$wbp$1$i38 >> 3];
$j$2$i37 = $j$2$i37 + 1 | 0;
if (($j$2$i37 | 0) == ($2 | 0)) break; else $wbp$1$i38 = $wbp$1$i38 + 8 | 0;
}
}
HEAPF64[$indvars$iv9$i44 >> 3] = -($44 * +HEAPF64[$indvars$iv$i49 >> 3]);
}
$i$1$i45 = $i$1$i45 + 1 | 0;
if (($i$1$i45 | 0) == ($2 | 0)) break; else $indvars$iv9$i44 = $indvars$iv9$i44 + ($2 << 3) | 0;
}
}
$n$1$i50 = $n$1$i50 + 1 | 0;
if (($n$1$i50 | 0) >= ($2 | 0)) break; else {
$indvars$iv$i49 = $indvars$iv$i49 + ($2 << 3) | 0;
$ip$0$i51 = $ip$1$i$lcssa;
}
}
}
if (($2 | 0) > 0) {
$13 = ($2 | 0) > 0;
$n$2$i12 = 0;
while (1) {
$59 = $nos$i + ($n$2$i12 << 2) | 0;
L43 : do if (($n$2$i12 | 0) < ($2 | 0)) {
$61 = $59;
$j$3$i4 = $n$2$i12;
while (1) {
if ((HEAP32[$61 >> 2] | 0) == ($n$2$i12 | 0)) {
$$lcssa = $61;
$j$3$i$lcssa = $j$3$i4;
break L43;
}
$63 = $j$3$i4 + 1 | 0;
$65 = $nos$i + ($63 << 2) | 0;
if (($63 | 0) < ($2 | 0)) {
$61 = $65;
$j$3$i4 = $63;
} else {
$$lcssa = $65;
$j$3$i$lcssa = $63;
break;
}
}
} else {
$$lcssa = $59;
$j$3$i$lcssa = $n$2$i12;
} while (0);
HEAP32[$$lcssa >> 2] = HEAP32[$nos$i + ($n$2$i12 << 2) >> 2];
if ($13) {
$i$2$i8 = 0;
$wap$4$i10 = $0 + ($j$3$i$lcssa << 3) | 0;
$wbp$2$i9 = $0 + ($n$2$i12 << 3) | 0;
while (1) {
$70 = +HEAPF64[$wap$4$i10 >> 3];
HEAPF64[$wap$4$i10 >> 3] = +HEAPF64[$wbp$2$i9 >> 3];
HEAPF64[$wbp$2$i9 >> 3] = $70;
$i$2$i8 = $i$2$i8 + 1 | 0;
if (($i$2$i8 | 0) >= ($2 | 0)) break; else {
$wap$4$i10 = $wap$4$i10 + ($2 << 3) | 0;
$wbp$2$i9 = $wbp$2$i9 + ($2 << 3) | 0;
}
}
}
$n$2$i12 = $n$2$i12 + 1 | 0;
if (($n$2$i12 | 0) >= ($2 | 0)) {
$$0$i = $0;
break;
}
}
} else $$0$i = $0;
} while (0);
STACKTOP = sp;
return (($$0$i | 0) == 0) << 31 >> 31 | 0;
}
function _try_realloc_chunk($p, $nb) {
$p = $p | 0;
$nb = $nb | 0;
var $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $101 = 0, $103 = 0, $106 = 0, $109 = 0, $110 = 0, $112 = 0, $113 = 0, $115 = 0, $116 = 0, $118 = 0, $119 = 0, $124 = 0, $125 = 0, $134 = 0, $139 = 0, $143 = 0, $149 = 0, $159 = 0, $168 = 0, $2 = 0, $20 = 0, $3 = 0, $33 = 0, $35 = 0, $4 = 0, $45 = 0, $47 = 0, $5 = 0, $56 = 0, $62 = 0, $68 = 0, $7 = 0, $70 = 0, $71 = 0, $74 = 0, $76 = 0, $78 = 0, $8 = 0, $91 = 0, $96 = 0, $98 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $newp$0 = 0, $storemerge = 0, $storemerge21 = 0;
$0 = $p + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = $1 & -8;
$3 = $p + $2 | 0;
$4 = HEAP32[760] | 0;
$5 = $1 & 3;
if (!(($5 | 0) != 1 & $p >>> 0 >= $4 >>> 0 & $p >>> 0 < $3 >>> 0)) _abort();
$7 = $p + ($2 | 4) | 0;
$8 = HEAP32[$7 >> 2] | 0;
if (!($8 & 1)) _abort();
if (!$5) {
if ($nb >>> 0 < 256) {
$newp$0 = 0;
return $newp$0 | 0;
}
if ($2 >>> 0 >= ($nb + 4 | 0) >>> 0) if (($2 - $nb | 0) >>> 0 <= HEAP32[876] << 1 >>> 0) {
$newp$0 = $p;
return $newp$0 | 0;
}
$newp$0 = 0;
return $newp$0 | 0;
}
if ($2 >>> 0 >= $nb >>> 0) {
$20 = $2 - $nb | 0;
if ($20 >>> 0 <= 15) {
$newp$0 = $p;
return $newp$0 | 0;
}
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$p + ($nb + 4) >> 2] = $20 | 3;
HEAP32[$7 >> 2] = HEAP32[$7 >> 2] | 1;
_dispose_chunk($p + $nb | 0, $20);
$newp$0 = $p;
return $newp$0 | 0;
}
if (($3 | 0) == (HEAP32[762] | 0)) {
$33 = (HEAP32[759] | 0) + $2 | 0;
if ($33 >>> 0 <= $nb >>> 0) {
$newp$0 = 0;
return $newp$0 | 0;
}
$35 = $33 - $nb | 0;
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$p + ($nb + 4) >> 2] = $35 | 1;
HEAP32[762] = $p + $nb;
HEAP32[759] = $35;
$newp$0 = $p;
return $newp$0 | 0;
}
if (($3 | 0) == (HEAP32[761] | 0)) {
$45 = (HEAP32[758] | 0) + $2 | 0;
if ($45 >>> 0 < $nb >>> 0) {
$newp$0 = 0;
return $newp$0 | 0;
}
$47 = $45 - $nb | 0;
if ($47 >>> 0 > 15) {
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$p + ($nb + 4) >> 2] = $47 | 1;
HEAP32[$p + $45 >> 2] = $47;
$56 = $p + ($45 + 4) | 0;
HEAP32[$56 >> 2] = HEAP32[$56 >> 2] & -2;
$storemerge = $p + $nb | 0;
$storemerge21 = $47;
} else {
HEAP32[$0 >> 2] = $1 & 1 | $45 | 2;
$62 = $p + ($45 + 4) | 0;
HEAP32[$62 >> 2] = HEAP32[$62 >> 2] | 1;
$storemerge = 0;
$storemerge21 = 0;
}
HEAP32[758] = $storemerge21;
HEAP32[761] = $storemerge;
$newp$0 = $p;
return $newp$0 | 0;
}
if ($8 & 2) {
$newp$0 = 0;
return $newp$0 | 0;
}
$68 = ($8 & -8) + $2 | 0;
if ($68 >>> 0 < $nb >>> 0) {
$newp$0 = 0;
return $newp$0 | 0;
}
$70 = $68 - $nb | 0;
$71 = $8 >>> 3;
do if ($8 >>> 0 < 256) {
$74 = HEAP32[$p + ($2 + 8) >> 2] | 0;
$76 = HEAP32[$p + ($2 + 12) >> 2] | 0;
$78 = 3064 + ($71 << 1 << 2) | 0;
if (($74 | 0) != ($78 | 0)) {
if ($74 >>> 0 < $4 >>> 0) _abort();
if ((HEAP32[$74 + 12 >> 2] | 0) != ($3 | 0)) _abort();
}
if (($76 | 0) == ($74 | 0)) {
HEAP32[756] = HEAP32[756] & ~(1 << $71);
break;
}
if (($76 | 0) == ($78 | 0)) $$pre$phiZ2D = $76 + 8 | 0; else {
if ($76 >>> 0 < $4 >>> 0) _abort();
$91 = $76 + 8 | 0;
if ((HEAP32[$91 >> 2] | 0) == ($3 | 0)) $$pre$phiZ2D = $91; else _abort();
}
HEAP32[$74 + 12 >> 2] = $76;
HEAP32[$$pre$phiZ2D >> 2] = $74;
} else {
$96 = HEAP32[$p + ($2 + 24) >> 2] | 0;
$98 = HEAP32[$p + ($2 + 12) >> 2] | 0;
do if (($98 | 0) == ($3 | 0)) {
$109 = $p + ($2 + 20) | 0;
$110 = HEAP32[$109 >> 2] | 0;
if (!$110) {
$112 = $p + ($2 + 16) | 0;
$113 = HEAP32[$112 >> 2] | 0;
if (!$113) {
$R$1 = 0;
break;
} else {
$R$0 = $113;
$RP$0 = $112;
}
} else {
$R$0 = $110;
$RP$0 = $109;
}
while (1) {
$115 = $R$0 + 20 | 0;
$116 = HEAP32[$115 >> 2] | 0;
if ($116) {
$R$0 = $116;
$RP$0 = $115;
continue;
}
$118 = $R$0 + 16 | 0;
$119 = HEAP32[$118 >> 2] | 0;
if (!$119) {
$R$0$lcssa = $R$0;
$RP$0$lcssa = $RP$0;
break;
} else {
$R$0 = $119;
$RP$0 = $118;
}
}
if ($RP$0$lcssa >>> 0 < $4 >>> 0) _abort(); else {
HEAP32[$RP$0$lcssa >> 2] = 0;
$R$1 = $R$0$lcssa;
break;
}
} else {
$101 = HEAP32[$p + ($2 + 8) >> 2] | 0;
if ($101 >>> 0 < $4 >>> 0) _abort();
$103 = $101 + 12 | 0;
if ((HEAP32[$103 >> 2] | 0) != ($3 | 0)) _abort();
$106 = $98 + 8 | 0;
if ((HEAP32[$106 >> 2] | 0) == ($3 | 0)) {
HEAP32[$103 >> 2] = $98;
HEAP32[$106 >> 2] = $101;
$R$1 = $98;
break;
} else _abort();
} while (0);
if ($96) {
$124 = HEAP32[$p + ($2 + 28) >> 2] | 0;
$125 = 3328 + ($124 << 2) | 0;
if (($3 | 0) == (HEAP32[$125 >> 2] | 0)) {
HEAP32[$125 >> 2] = $R$1;
if (!$R$1) {
HEAP32[757] = HEAP32[757] & ~(1 << $124);
break;
}
} else {
if ($96 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort();
$134 = $96 + 16 | 0;
if ((HEAP32[$134 >> 2] | 0) == ($3 | 0)) HEAP32[$134 >> 2] = $R$1; else HEAP32[$96 + 20 >> 2] = $R$1;
if (!$R$1) break;
}
$139 = HEAP32[760] | 0;
if ($R$1 >>> 0 < $139 >>> 0) _abort();
HEAP32[$R$1 + 24 >> 2] = $96;
$143 = HEAP32[$p + ($2 + 16) >> 2] | 0;
do if ($143) if ($143 >>> 0 < $139 >>> 0) _abort(); else {
HEAP32[$R$1 + 16 >> 2] = $143;
HEAP32[$143 + 24 >> 2] = $R$1;
break;
} while (0);
$149 = HEAP32[$p + ($2 + 20) >> 2] | 0;
if ($149) if ($149 >>> 0 < (HEAP32[760] | 0) >>> 0) _abort(); else {
HEAP32[$R$1 + 20 >> 2] = $149;
HEAP32[$149 + 24 >> 2] = $R$1;
break;
}
}
} while (0);
if ($70 >>> 0 < 16) {
HEAP32[$0 >> 2] = $68 | $1 & 1 | 2;
$159 = $p + ($68 | 4) | 0;
HEAP32[$159 >> 2] = HEAP32[$159 >> 2] | 1;
$newp$0 = $p;
return $newp$0 | 0;
} else {
HEAP32[$0 >> 2] = $1 & 1 | $nb | 2;
HEAP32[$p + ($nb + 4) >> 2] = $70 | 3;
$168 = $p + ($68 | 4) | 0;
HEAP32[$168 >> 2] = HEAP32[$168 >> 2] | 1;
_dispose_chunk($p + $nb | 0, $70);
$newp$0 = $p;
return $newp$0 | 0;
}
return 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_121parse_integer_literalINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $lit, $db) {
$first = $first | 0;
$last = $last | 0;
$lit = $lit | 0;
$db = $db | 0;
var $$0$i$i$i = 0, $$0$i$i$i5 = 0, $$02 = 0, $$1 = 0, $0 = 0, $1 = 0, $11 = 0, $17 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $37 = 0, $39 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $48 = 0, $52 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $67 = 0, $69 = 0, $72 = 0, $73 = 0, $76 = 0, $8 = 0, $82 = 0, $88 = 0, $90 = 0, $94 = 0, $__v$i$i4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i4 = sp + 48 | 0;
$0 = sp + 24 | 0;
$1 = sp + 12 | 0;
$2 = sp;
$3 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first, $last) | 0;
if (($3 | 0) == ($first | 0) | ($3 | 0) == ($last | 0)) $$1 = $first; else if ((HEAP8[$3 >> 0] | 0) == 69) {
$8 = HEAP8[$lit >> 0] | 0;
$11 = $lit + 4 | 0;
do if ((($8 & 1) == 0 ? ($8 & 255) >>> 1 : HEAP32[$11 >> 2] | 0) >>> 0 > 3) {
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($2, 12714, $lit);
$17 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0;
HEAP32[$1 >> 2] = HEAP32[$17 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$17 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$17 + 8 >> 2];
HEAP32[$17 >> 2] = 0;
HEAP32[$17 + 4 >> 2] = 0;
HEAP32[$17 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
$20 = $db + 4 | 0;
$21 = HEAP32[$20 >> 2] | 0;
$23 = HEAP32[$db + 8 >> 2] | 0;
if ($21 >>> 0 < $23 >>> 0) {
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($21, $0);
HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 24;
} else {
$30 = HEAP32[$db >> 2] | 0;
$31 = $21 - $30 | 0;
$32 = ($31 | 0) / 24 | 0;
$33 = $32 + 1 | 0;
if (($31 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$37 = ($23 - $30 | 0) / 24 | 0;
if ($37 >>> 0 < 1073741823) {
$39 = $37 << 1;
$$0$i$i$i = $39 >>> 0 < $33 >>> 0 ? $33 : $39;
} else $$0$i$i$i = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i4, $$0$i$i$i, $32, $db + 12 | 0);
$42 = $__v$i$i4 + 8 | 0;
$43 = HEAP32[$42 >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($43, $0);
HEAP32[$42 >> 2] = $43 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i4);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i4);
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
} else {
$45 = $db + 4 | 0;
$46 = HEAP32[$45 >> 2] | 0;
$48 = HEAP32[$db + 8 >> 2] | 0;
if ($46 >>> 0 < $48 >>> 0) {
HEAP32[$46 >> 2] = 0;
HEAP32[$46 + 4 >> 2] = 0;
HEAP32[$46 + 8 >> 2] = 0;
HEAP32[$46 + 12 >> 2] = 0;
HEAP32[$46 + 16 >> 2] = 0;
HEAP32[$46 + 20 >> 2] = 0;
HEAP32[$46 >> 2] = 0;
HEAP32[$46 + 4 >> 2] = 0;
HEAP32[$46 + 8 >> 2] = 0;
$52 = $46 + 12 | 0;
HEAP32[$52 >> 2] = 0;
HEAP32[$52 + 4 >> 2] = 0;
HEAP32[$52 + 8 >> 2] = 0;
HEAP32[$45 >> 2] = (HEAP32[$45 >> 2] | 0) + 24;
break;
}
$60 = HEAP32[$db >> 2] | 0;
$61 = $46 - $60 | 0;
$62 = ($61 | 0) / 24 | 0;
$63 = $62 + 1 | 0;
if (($61 | 0) < -24) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($db);
$67 = ($48 - $60 | 0) / 24 | 0;
if ($67 >>> 0 < 1073741823) {
$69 = $67 << 1;
$$0$i$i$i5 = $69 >>> 0 < $63 >>> 0 ? $63 : $69;
} else $$0$i$i$i5 = 2147483647;
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($__v$i$i4, $$0$i$i$i5, $62, $db + 12 | 0);
$72 = $__v$i$i4 + 8 | 0;
$73 = HEAP32[$72 >> 2] | 0;
HEAP32[$73 >> 2] = 0;
HEAP32[$73 + 4 >> 2] = 0;
HEAP32[$73 + 8 >> 2] = 0;
HEAP32[$73 + 12 >> 2] = 0;
HEAP32[$73 + 16 >> 2] = 0;
HEAP32[$73 + 20 >> 2] = 0;
HEAP32[$73 >> 2] = 0;
HEAP32[$73 + 4 >> 2] = 0;
HEAP32[$73 + 8 >> 2] = 0;
$76 = $73 + 12 | 0;
HEAP32[$76 >> 2] = 0;
HEAP32[$76 + 4 >> 2] = 0;
HEAP32[$76 + 8 >> 2] = 0;
HEAP32[$72 >> 2] = $73 + 24;
__ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($db, $__v$i$i4);
__ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($__v$i$i4);
} while (0);
$82 = $db + 4 | 0;
if ((HEAP8[$first >> 0] | 0) == 110) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc((HEAP32[$82 >> 2] | 0) + -24 | 0, 45);
$$02 = $first + 1 | 0;
} else $$02 = $first;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_((HEAP32[$82 >> 2] | 0) + -24 | 0, $$02, $3);
$88 = HEAP8[$lit >> 0] | 0;
$90 = ($88 & 1) == 0;
$94 = $90 ? ($88 & 255) >>> 1 : HEAP32[$11 >> 2] | 0;
if ($94 >>> 0 < 4) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj((HEAP32[$82 >> 2] | 0) + -24 | 0, $90 ? $lit + 1 | 0 : HEAP32[$lit + 8 >> 2] | 0, $94) | 0;
$$1 = $3 + 1 | 0;
} else $$1 = $first;
STACKTOP = sp;
return $$1 | 0;
}
function _arGetContour($limage, $xsize, $ysize, $label_ref, $label, $clip, $marker_info2) {
$limage = $limage | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$label_ref = $label_ref | 0;
$label = $label | 0;
$clip = $clip | 0;
$marker_info2 = $marker_info2 | 0;
var $$0 = 0, $$lcssa68 = 0, $$lcssa69 = 0, $1 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $24 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $34 = 0, $38 = 0, $4 = 0, $40 = 0, $41 = 0, $46 = 0, $48 = 0, $49 = 0, $56 = 0, $61 = 0, $62 = 0, $65 = 0, $67 = 0, $68 = 0, $83 = 0, $9 = 0, $92 = 0, $dir$0 = 0, $dir$1 = 0, $dir$1$lcssa = 0, $dir$130 = 0, $dir$146 = 0, $dmax$040 = 0, $i$048 = 0, $i$048$lcssa = 0, $i$145 = 0, $i$2$v1$0 = 0, $i$242 = 0, $i$338 = 0, $i$436 = 0, $i$535 = 0, $p1$047 = 0, $v1$0$lcssa = 0, $v1$041 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $wx = 0, $wy = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80032 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$wx = sp + 40024 | 0;
$wy = sp + 24 | 0;
$1 = HEAP32[$clip + 8 >> 2] | 0;
$2 = HEAP32[$clip >> 2] | 0;
$4 = HEAP32[$clip + 4 >> 2] | 0;
L1 : do if (($2 | 0) > ($4 | 0)) label = 6; else {
$i$048 = $2;
$p1$047 = $limage + ((Math_imul($1, $xsize) | 0) + $2 << 1) | 0;
while (1) {
$9 = HEAP16[$p1$047 >> 1] | 0;
if ($9 << 16 >> 16 > 0) if ((HEAP32[$label_ref + (($9 << 16 >> 16) + -1 << 2) >> 2] | 0) == ($label | 0)) {
$i$048$lcssa = $i$048;
break;
}
if (($i$048 | 0) < ($4 | 0)) {
$i$048 = $i$048 + 1 | 0;
$p1$047 = $p1$047 + 2 | 0;
} else {
label = 6;
break L1;
}
}
$19 = $marker_info2 + 24 | 0;
HEAP32[$19 >> 2] = 1;
$20 = $marker_info2 + 28 | 0;
HEAP32[$20 >> 2] = $i$048$lcssa;
$21 = $marker_info2 + 40028 | 0;
HEAP32[$21 >> 2] = $1;
$27 = $1;
$29 = $i$048$lcssa;
$40 = 1;
$dir$0 = 5;
while (1) {
$dir$146 = ($dir$0 + 5 | 0) % 8 | 0;
$i$145 = 0;
while (1) {
$24 = HEAP32[776 + ($dir$146 << 2) >> 2] | 0;
$26 = HEAP32[808 + ($dir$146 << 2) >> 2] | 0;
$30 = $limage + ($26 + $29 + (Math_imul($24 + $27 | 0, $xsize) | 0) << 1) | 0;
if ((HEAP16[$30 >> 1] | 0) > 0) {
$38 = $26;
$46 = $24;
$dir$130 = $dir$146;
break;
}
$34 = $i$145 + 1 | 0;
$dir$1 = ($dir$146 + 1 | 0) % 8 | 0;
if (($34 | 0) < 8) {
$dir$146 = $dir$1;
$i$145 = $34;
} else {
$$lcssa68 = $34;
$dir$1$lcssa = $dir$1;
label = 11;
break;
}
}
if ((label | 0) == 11) {
label = 0;
if (($$lcssa68 | 0) == 8) {
label = 13;
break;
}
$38 = HEAP32[808 + ($dir$1$lcssa << 2) >> 2] | 0;
$46 = HEAP32[776 + ($dir$1$lcssa << 2) >> 2] | 0;
$dir$130 = $dir$1$lcssa;
}
HEAP32[$marker_info2 + 28 + ($40 << 2) >> 2] = $38 + $29;
$41 = HEAP32[$19 >> 2] | 0;
HEAP32[$marker_info2 + 40028 + ($41 << 2) >> 2] = $46 + (HEAP32[$marker_info2 + 40028 + ($41 + -1 << 2) >> 2] | 0);
$48 = HEAP32[$19 >> 2] | 0;
$49 = $marker_info2 + 28 + ($48 << 2) | 0;
if ((HEAP32[$49 >> 2] | 0) == ($i$048$lcssa | 0)) if ((HEAP32[$marker_info2 + 40028 + ($48 << 2) >> 2] | 0) == ($1 | 0)) {
$$lcssa69 = $48;
label = 16;
break;
}
$56 = $48 + 1 | 0;
HEAP32[$19 >> 2] = $56;
if (($56 | 0) == 9999) {
label = 19;
break;
}
$27 = HEAP32[$marker_info2 + 40028 + ($48 << 2) >> 2] | 0;
$29 = HEAP32[$49 >> 2] | 0;
$40 = $56;
$dir$0 = $dir$130;
}
if ((label | 0) == 13) {
_arLog(3, 4347, $vararg_buffer1);
$$0 = -1;
break;
} else if ((label | 0) == 16) {
if (($$lcssa69 | 0) > 1) {
$dmax$040 = 0;
$i$242 = 1;
$v1$041 = 0;
while (1) {
$61 = (HEAP32[$marker_info2 + 28 + ($i$242 << 2) >> 2] | 0) - $i$048$lcssa | 0;
$62 = Math_imul($61, $61) | 0;
$65 = (HEAP32[$marker_info2 + 40028 + ($i$242 << 2) >> 2] | 0) - $1 | 0;
$67 = (Math_imul($65, $65) | 0) + $62 | 0;
$68 = ($67 | 0) > ($dmax$040 | 0);
$i$2$v1$0 = $68 ? $i$242 : $v1$041;
$i$242 = $i$242 + 1 | 0;
if (($i$242 | 0) >= ($$lcssa69 | 0)) {
$v1$0$lcssa = $i$2$v1$0;
break;
} else {
$dmax$040 = $68 ? $67 : $dmax$040;
$v1$041 = $i$2$v1$0;
}
}
} else $v1$0$lcssa = 0;
if (($v1$0$lcssa | 0) > 0) {
$i$338 = 0;
do {
HEAP32[$wx + ($i$338 << 2) >> 2] = HEAP32[$marker_info2 + 28 + ($i$338 << 2) >> 2];
HEAP32[$wy + ($i$338 << 2) >> 2] = HEAP32[$marker_info2 + 40028 + ($i$338 << 2) >> 2];
$i$338 = $i$338 + 1 | 0;
} while (($i$338 | 0) < ($v1$0$lcssa | 0));
}
if (($v1$0$lcssa | 0) < ($$lcssa69 | 0)) {
$i$436 = $v1$0$lcssa;
do {
$83 = $i$436 - $v1$0$lcssa | 0;
HEAP32[$marker_info2 + 28 + ($83 << 2) >> 2] = HEAP32[$marker_info2 + 28 + ($i$436 << 2) >> 2];
HEAP32[$marker_info2 + 40028 + ($83 << 2) >> 2] = HEAP32[$marker_info2 + 40028 + ($i$436 << 2) >> 2];
$i$436 = $i$436 + 1 | 0;
} while (($i$436 | 0) < (HEAP32[$19 >> 2] | 0));
}
if (($v1$0$lcssa | 0) > 0) {
$i$535 = 0;
do {
$92 = $i$535 - $v1$0$lcssa | 0;
HEAP32[$marker_info2 + 28 + ((HEAP32[$19 >> 2] | 0) + $92 << 2) >> 2] = HEAP32[$wx + ($i$535 << 2) >> 2];
HEAP32[$marker_info2 + 40028 + ((HEAP32[$19 >> 2] | 0) + $92 << 2) >> 2] = HEAP32[$wy + ($i$535 << 2) >> 2];
$i$535 = $i$535 + 1 | 0;
} while (($i$535 | 0) < ($v1$0$lcssa | 0));
}
HEAP32[$marker_info2 + 28 + (HEAP32[$19 >> 2] << 2) >> 2] = HEAP32[$20 >> 2];
HEAP32[$marker_info2 + 40028 + (HEAP32[$19 >> 2] << 2) >> 2] = HEAP32[$21 >> 2];
HEAP32[$19 >> 2] = (HEAP32[$19 >> 2] | 0) + 1;
$$0 = 0;
break;
} else if ((label | 0) == 19) {
_arLog(3, 4354, $vararg_buffer3);
$$0 = -1;
break;
}
} while (0);
if ((label | 0) == 6) {
_arLog(3, 4340, $vararg_buffer);
$$0 = -1;
}
STACKTOP = sp;
return $$0 | 0;
}
function ___cxa_demangle($mangled_name, $buf, $n, $status) {
$mangled_name = $mangled_name | 0;
$buf = $buf | 0;
$n = $n | 0;
$status = $status | 0;
var $$0 = 0, $$028 = 0, $$1 = 0, $1 = 0, $10 = 0, $101 = 0, $102 = 0, $109 = 0, $11 = 0, $112 = 0, $15 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $27 = 0, $30 = 0, $31 = 0, $35 = 0, $42 = 0, $43 = 0, $45 = 0, $46 = 0, $49 = 0, $50 = 0, $52 = 0, $53 = 0, $59 = 0, $6 = 0, $60 = 0, $62 = 0, $7 = 0, $70 = 0, $77 = 0, $78 = 0, $79 = 0, $80 = 0, $82 = 0, $83 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $__v$i$i = 0, $a = 0, $db = 0, $internal_status = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 4208 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v$i$i = sp + 4184 | 0;
$a = sp;
$db = sp + 4120 | 0;
$internal_status = sp + 4112 | 0;
if (!$mangled_name) label = 3; else {
$1 = ($buf | 0) != 0;
$2 = ($n | 0) == 0;
if ($1 & $2) label = 3; else {
if ($1) $82 = HEAP32[$n >> 2] | 0; else $82 = 0;
HEAP32[$a + 4096 >> 2] = $a;
$6 = $a;
HEAP32[$db >> 2] = 0;
$7 = $db + 4 | 0;
HEAP32[$7 >> 2] = 0;
HEAP32[$db + 8 >> 2] = 0;
HEAP32[$db + 12 >> 2] = $6;
$10 = $db + 16 | 0;
HEAP32[$10 >> 2] = 0;
$11 = $db + 20 | 0;
HEAP32[$11 >> 2] = 0;
HEAP32[$db + 24 >> 2] = 0;
HEAP32[$db + 28 >> 2] = $6;
HEAP32[$db + 32 >> 2] = 0;
$15 = $db + 36 | 0;
HEAP32[$15 >> 2] = 0;
HEAP32[$db + 40 >> 2] = 0;
$17 = $db + 44 | 0;
HEAP32[$17 >> 2] = $6;
$18 = $db + 48 | 0;
$19 = $db + 61 | 0;
HEAP32[$18 >> 2] = 0;
HEAP32[$18 + 4 >> 2] = 0;
HEAP32[$18 + 8 >> 2] = 0;
HEAP8[$18 + 12 >> 0] = 0;
HEAP8[$19 >> 0] = 1;
$20 = $db + 32 | 0;
__ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($__v$i$i, 1, 0, $17);
$21 = $__v$i$i + 8 | 0;
$22 = HEAP32[$21 >> 2] | 0;
HEAP32[$22 >> 2] = 0;
HEAP32[$22 + 4 >> 2] = 0;
HEAP32[$22 + 8 >> 2] = 0;
HEAP32[$22 + 12 >> 2] = $6;
HEAP32[$21 >> 2] = $22 + 16;
__ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($20, $__v$i$i);
__ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($__v$i$i);
$27 = $db + 62 | 0;
HEAP8[$27 >> 0] = 0;
HEAP8[$db + 63 >> 0] = 1;
HEAP32[$internal_status >> 2] = 0;
$30 = $mangled_name + (_strlen($mangled_name) | 0) | 0;
__ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($mangled_name, $30, $db, $internal_status);
$31 = HEAP32[$internal_status >> 2] | 0;
do if (($31 | 0) != 0 | (HEAP8[$27 >> 0] | 0) == 0) {
$59 = $31;
label = 17;
} else {
$35 = HEAP32[$20 >> 2] | 0;
if (($35 | 0) == (HEAP32[$15 >> 2] | 0)) label = 18; else if ((HEAP32[$35 >> 2] | 0) == (HEAP32[$35 + 4 >> 2] | 0)) label = 18; else {
HEAP8[$27 >> 0] = 0;
HEAP8[$19 >> 0] = 0;
$42 = HEAP32[$db >> 2] | 0;
$43 = HEAP32[$7 >> 2] | 0;
if (($43 | 0) != ($42 | 0)) {
$46 = $43;
do {
$45 = $46 + -24 | 0;
HEAP32[$7 >> 2] = $45;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($45);
$46 = HEAP32[$7 >> 2] | 0;
} while (($46 | 0) != ($42 | 0));
}
$49 = HEAP32[$10 >> 2] | 0;
$50 = HEAP32[$11 >> 2] | 0;
if (($50 | 0) != ($49 | 0)) {
$53 = $50;
do {
$52 = $53 + -16 | 0;
HEAP32[$11 >> 2] = $52;
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($52);
$53 = HEAP32[$11 >> 2] | 0;
} while (($53 | 0) != ($49 | 0));
}
__ZN10__cxxabiv112_GLOBAL__N_18demangleINS0_2DbEEEvPKcS4_RT_Ri($mangled_name, $30, $db, $internal_status);
if (!(HEAP8[$27 >> 0] | 0)) {
$59 = HEAP32[$internal_status >> 2] | 0;
label = 17;
break;
} else {
HEAP32[$internal_status >> 2] = -2;
$$1 = 0;
$112 = -2;
break;
}
}
} while (0);
if ((label | 0) == 17) if (!$59) label = 18; else {
$$1 = 0;
$112 = $59;
}
do if ((label | 0) == 18) {
$60 = HEAP32[$7 >> 2] | 0;
$62 = HEAP8[$60 + -24 >> 0] | 0;
if (!($62 & 1)) $79 = ($62 & 255) >>> 1; else $79 = HEAP32[$60 + -20 >> 2] | 0;
$70 = HEAP8[$60 + -12 >> 0] | 0;
if (!($70 & 1)) $78 = ($70 & 255) >>> 1; else $78 = HEAP32[$60 + -8 >> 2] | 0;
$77 = $78 + $79 | 0;
$80 = $77 + 1 | 0;
if ($80 >>> 0 > $82 >>> 0) {
$83 = _realloc($buf, $80) | 0;
if (!$83) {
HEAP32[$internal_status >> 2] = -1;
$$1 = 0;
$112 = -1;
break;
}
if ($2) $$028 = $83; else {
HEAP32[$n >> 2] = $80;
$$028 = $83;
}
} else if (!$buf) {
$$1 = 0;
$112 = 0;
break;
} else $$028 = $buf;
$86 = HEAP32[$7 >> 2] | 0;
$88 = $86 + -12 | 0;
$89 = HEAP8[$88 >> 0] | 0;
$91 = ($89 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($86 + -24 | 0, $91 ? $88 + 1 | 0 : HEAP32[$86 + -4 >> 2] | 0, $91 ? ($89 & 255) >>> 1 : HEAP32[$86 + -8 >> 2] | 0) | 0;
$101 = HEAP32[$7 >> 2] | 0;
$102 = $101 + -24 | 0;
if (!(HEAP8[$102 >> 0] & 1)) $109 = $102 + 1 | 0; else $109 = HEAP32[$101 + -16 >> 2] | 0;
_memcpy($$028 | 0, $109 | 0, $77 | 0) | 0;
HEAP8[$$028 + $77 >> 0] = 0;
$$1 = $$028;
$112 = 0;
} while (0);
if ($status) HEAP32[$status >> 2] = $112;
__ZN10__cxxabiv112_GLOBAL__N_12DbD2Ev($db);
$$0 = $$1;
}
}
if ((label | 0) == 3) if (!$status) $$0 = 0; else {
HEAP32[$status >> 2] = -3;
$$0 = 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function _fmod($x, $y) {
$x = +$x;
$y = +$y;
var $$0 = 0.0, $$lcssa7 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $106 = 0, $107 = 0, $11 = 0, $112 = 0, $114 = 0, $116 = 0, $119 = 0, $12 = 0, $121 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $130 = 0, $137 = 0, $138 = 0, $139 = 0, $140 = 0, $141 = 0, $146 = 0, $149 = 0, $150 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $16 = 0, $2 = 0, $23 = 0.0, $25 = 0, $26 = 0, $3 = 0, $37 = 0, $38 = 0, $4 = 0, $44 = 0, $45 = 0, $46 = 0, $55 = 0, $6 = 0, $60 = 0, $61 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $78 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $93 = 0, $95 = 0, $97 = 0, $ex$0$lcssa = 0, $ex$026 = 0, $ex$1 = 0, $ex$2$lcssa = 0, $ex$212 = 0, $ex$3$lcssa = 0, $ex$39 = 0, $ey$0$lcssa = 0, $ey$020 = 0, $ey$1$ph = 0, label = 0;
HEAPF64[tempDoublePtr >> 3] = $x;
$0 = HEAP32[tempDoublePtr >> 2] | 0;
$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0;
HEAPF64[tempDoublePtr >> 3] = $y;
$2 = HEAP32[tempDoublePtr >> 2] | 0;
$3 = HEAP32[tempDoublePtr + 4 >> 2] | 0;
$4 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0;
$6 = $4 & 2047;
$7 = _bitshift64Lshr($2 | 0, $3 | 0, 52) | 0;
$9 = $7 & 2047;
$10 = $1 & -2147483648;
$11 = _bitshift64Shl($2 | 0, $3 | 0, 1) | 0;
$12 = tempRet0;
L1 : do if (($11 | 0) == 0 & ($12 | 0) == 0) label = 3; else {
$16 = $3 & 2147483647;
if ($16 >>> 0 > 2146435072 | ($16 | 0) == 2146435072 & $2 >>> 0 > 0 | ($6 | 0) == 2047) label = 3; else {
$25 = _bitshift64Shl($0 | 0, $1 | 0, 1) | 0;
$26 = tempRet0;
if (!($26 >>> 0 > $12 >>> 0 | ($26 | 0) == ($12 | 0) & $25 >>> 0 > $11 >>> 0)) return +(($25 | 0) == ($11 | 0) & ($26 | 0) == ($12 | 0) ? $x * 0.0 : $x);
if (!$6) {
$37 = _bitshift64Shl($0 | 0, $1 | 0, 12) | 0;
$38 = tempRet0;
if (($38 | 0) > -1 | ($38 | 0) == -1 & $37 >>> 0 > 4294967295) {
$45 = $37;
$46 = $38;
$ex$026 = 0;
while (1) {
$44 = $ex$026 + -1 | 0;
$45 = _bitshift64Shl($45 | 0, $46 | 0, 1) | 0;
$46 = tempRet0;
if (!(($46 | 0) > -1 | ($46 | 0) == -1 & $45 >>> 0 > 4294967295)) {
$ex$0$lcssa = $44;
break;
} else $ex$026 = $44;
}
} else $ex$0$lcssa = 0;
$55 = _bitshift64Shl($0 | 0, $1 | 0, 1 - $ex$0$lcssa | 0) | 0;
$83 = $55;
$84 = tempRet0;
$ex$1 = $ex$0$lcssa;
} else {
$83 = $0;
$84 = $1 & 1048575 | 1048576;
$ex$1 = $6;
}
if (!$9) {
$60 = _bitshift64Shl($2 | 0, $3 | 0, 12) | 0;
$61 = tempRet0;
if (($61 | 0) > -1 | ($61 | 0) == -1 & $60 >>> 0 > 4294967295) {
$68 = $60;
$69 = $61;
$ey$020 = 0;
while (1) {
$67 = $ey$020 + -1 | 0;
$68 = _bitshift64Shl($68 | 0, $69 | 0, 1) | 0;
$69 = tempRet0;
if (!(($69 | 0) > -1 | ($69 | 0) == -1 & $68 >>> 0 > 4294967295)) {
$ey$0$lcssa = $67;
break;
} else $ey$020 = $67;
}
} else $ey$0$lcssa = 0;
$78 = _bitshift64Shl($2 | 0, $3 | 0, 1 - $ey$0$lcssa | 0) | 0;
$85 = $78;
$86 = tempRet0;
$ey$1$ph = $ey$0$lcssa;
} else {
$85 = $2;
$86 = $3 & 1048575 | 1048576;
$ey$1$ph = $9;
}
$87 = _i64Subtract($83 | 0, $84 | 0, $85 | 0, $86 | 0) | 0;
$88 = tempRet0;
$93 = ($88 | 0) > -1 | ($88 | 0) == -1 & $87 >>> 0 > 4294967295;
L23 : do if (($ex$1 | 0) > ($ey$1$ph | 0)) {
$152 = $93;
$153 = $87;
$154 = $88;
$95 = $83;
$97 = $84;
$ex$212 = $ex$1;
while (1) {
if ($152) if (($95 | 0) == ($85 | 0) & ($97 | 0) == ($86 | 0)) break; else {
$100 = $153;
$101 = $154;
} else {
$100 = $95;
$101 = $97;
}
$102 = _bitshift64Shl($100 | 0, $101 | 0, 1) | 0;
$103 = tempRet0;
$104 = $ex$212 + -1 | 0;
$106 = _i64Subtract($102 | 0, $103 | 0, $85 | 0, $86 | 0) | 0;
$107 = tempRet0;
$112 = ($107 | 0) > -1 | ($107 | 0) == -1 & $106 >>> 0 > 4294967295;
if (($104 | 0) > ($ey$1$ph | 0)) {
$152 = $112;
$153 = $106;
$154 = $107;
$95 = $102;
$97 = $103;
$ex$212 = $104;
} else {
$$lcssa7 = $112;
$114 = $102;
$116 = $103;
$155 = $106;
$156 = $107;
$ex$2$lcssa = $104;
break L23;
}
}
$$0 = $x * 0.0;
break L1;
} else {
$$lcssa7 = $93;
$114 = $83;
$116 = $84;
$155 = $87;
$156 = $88;
$ex$2$lcssa = $ex$1;
} while (0);
if ($$lcssa7) if (($114 | 0) == ($85 | 0) & ($116 | 0) == ($86 | 0)) {
$$0 = $x * 0.0;
break;
} else {
$119 = $156;
$121 = $155;
} else {
$119 = $116;
$121 = $114;
}
if ($119 >>> 0 < 1048576 | ($119 | 0) == 1048576 & $121 >>> 0 < 0) {
$126 = $121;
$127 = $119;
$ex$39 = $ex$2$lcssa;
while (1) {
$128 = _bitshift64Shl($126 | 0, $127 | 0, 1) | 0;
$129 = tempRet0;
$130 = $ex$39 + -1 | 0;
if ($129 >>> 0 < 1048576 | ($129 | 0) == 1048576 & $128 >>> 0 < 0) {
$126 = $128;
$127 = $129;
$ex$39 = $130;
} else {
$137 = $128;
$138 = $129;
$ex$3$lcssa = $130;
break;
}
}
} else {
$137 = $121;
$138 = $119;
$ex$3$lcssa = $ex$2$lcssa;
}
if (($ex$3$lcssa | 0) > 0) {
$139 = _i64Add($137 | 0, $138 | 0, 0, -1048576) | 0;
$140 = tempRet0;
$141 = _bitshift64Shl($ex$3$lcssa | 0, 0, 52) | 0;
$149 = $140 | tempRet0;
$150 = $139 | $141;
} else {
$146 = _bitshift64Lshr($137 | 0, $138 | 0, 1 - $ex$3$lcssa | 0) | 0;
$149 = tempRet0;
$150 = $146;
}
HEAP32[tempDoublePtr >> 2] = $150;
HEAP32[tempDoublePtr + 4 >> 2] = $149 | $10;
$$0 = +HEAPF64[tempDoublePtr >> 3];
}
} while (0);
if ((label | 0) == 3) {
$23 = $x * $y;
$$0 = $23 / $23;
}
return +$$0;
}
function __ZN46EmscriptenBindingInitializer_constant_bindingsC2Ev($this) {
$this = $this | 0;
var $0 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
__ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8590, 7);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8596, 3);
__ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(8605, 2);
__ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(8616, 3);
__ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8632, 4);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8650, 4);
__ZN10emscripten8functionIiJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_(8670, 5);
__ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8682, 8);
__ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8699, 5);
__ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8719, 9);
__ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8737, 10);
__ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8759, 6);
__ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8782, 7);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8811, 6);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8824, 7);
__ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_(8837, 11);
__ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8856, 8);
__ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_(8866, 9);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8879, 8);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(8892, 9);
__ZN10emscripten8functionIvJiEJEEEvPKcPFT_DpT0_EDpT1_(8911, 10);
__ZN10emscripten8functionIiJEJEEEvPKcPFT_DpT0_EDpT1_(8923, 1);
__ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_(8935, 1);
__ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(8958, 1);
__ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_(8981, 2);
__ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(9003, 2);
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9025, 1);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9042, 10);
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9059, 2);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9072, 11);
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9085, 3);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9109, 12);
__ZN10emscripten8functionIvJifEJEEEvPKcPFT_DpT0_EDpT1_(9133, 3);
__ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_(9146, 3);
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9159, 4);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9177, 13);
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9195, 5);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9211, 14);
__ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_(9227, 6);
__ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_(9244, 15);
__ZN10emscripten8constantIiEEvPKcRKT_(9261, 2088);
__ZN10emscripten8constantIiEEvPKcRKT_(9290, 2096);
__ZN10emscripten8constantIiEEvPKcRKT_(9318, 2092);
__embind_register_constant(9351, 680, 0);
__embind_register_constant(9368, 680, 1);
__embind_register_constant(9384, 680, 0);
__embind_register_constant(9406, 680, 0);
__embind_register_constant(9431, 680, 1);
__embind_register_constant(9456, 680, 1);
__embind_register_constant(9481, 680, 100);
__embind_register_constant(9508, 680, 0);
__embind_register_constant(9534, 680, 1);
__embind_register_constant(9560, 680, 0);
__embind_register_constant(9587, 680, 0);
__embind_register_constant(9614, 680, 1);
__embind_register_constant(9640, 680, 2);
__embind_register_constant(9665, 680, 3);
__embind_register_constant(9703, 680, 4);
__embind_register_constant(9740, 680, 0);
__embind_register_constant(9774, 680, 0);
__embind_register_constant(9798, 680, 1);
__embind_register_constant(9824, 680, 2);
__embind_register_constant(9851, 680, 2);
__embind_register_constant(9885, 680, 5);
HEAPF64[$0 >> 3] = .5;
__ZN10emscripten8constantIdEEvPKcRKT_(9903, $0);
__embind_register_constant(9924, 680, 0);
__embind_register_constant(9943, 680, 1);
__embind_register_constant(9961, 680, 2);
__embind_register_constant(9979, 680, 3);
__embind_register_constant(9998, 680, 4);
__embind_register_constant(10020, 680, 3);
__embind_register_constant(10039, 680, 515);
__embind_register_constant(10068, 680, 259);
__embind_register_constant(10096, 680, 4);
__embind_register_constant(10115, 680, 772);
__embind_register_constant(10145, 680, 1028);
__embind_register_constant(10175, 680, 0);
__embind_register_constant(10206, 680, 1);
__embind_register_constant(10242, 680, 2);
__embind_register_constant(10276, 680, 3);
__embind_register_constant(10314, 680, 0);
__embind_register_constant(10347, 680, 1);
__embind_register_constant(10394, 680, 2);
__embind_register_constant(10436, 680, 3);
__embind_register_constant(10479, 680, 4);
__embind_register_constant(10531, 680, 5);
__embind_register_constant(10582, 680, 6);
__embind_register_constant(10627, 680, 7);
__embind_register_constant(10666, 680, 8);
__embind_register_constant(10711, 680, 9);
STACKTOP = sp;
return;
}
function _arParamDecompMat($source, $cpara, $trans) {
$source = $source | 0;
$cpara = $cpara | 0;
$trans = $trans | 0;
var $102 = 0, $105 = 0, $109 = 0.0, $111 = 0.0, $113 = 0.0, $118 = 0.0, $119 = 0, $127 = 0.0, $128 = 0, $134 = 0.0, $140 = 0.0, $146 = 0.0, $152 = 0.0, $163 = 0.0, $167 = 0.0, $181 = 0, $185 = 0, $189 = 0, $45 = 0.0, $47 = 0.0, $49 = 0.0, $55 = 0.0, $56 = 0, $57 = 0.0, $58 = 0, $60 = 0.0, $61 = 0, $63 = 0.0, $64 = 0, $69 = 0, $71 = 0.0, $73 = 0.0, $75 = 0.0, $80 = 0.0, $81 = 0, $84 = 0.0, $87 = 0.0, $90 = 0.0, $96 = 0.0, $97 = 0, $99 = 0, $Cpara = 0, $r$024 = 0, $r$122 = 0, $r$318 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 96 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$Cpara = sp;
if (!(+HEAPF64[$source + 88 >> 3] >= 0.0)) {
$r$122 = 0;
do {
HEAPF64[$Cpara + ($r$122 << 5) >> 3] = -+HEAPF64[$source + ($r$122 << 5) >> 3];
HEAPF64[$Cpara + ($r$122 << 5) + 8 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 8 >> 3];
HEAPF64[$Cpara + ($r$122 << 5) + 16 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 16 >> 3];
HEAPF64[$Cpara + ($r$122 << 5) + 24 >> 3] = -+HEAPF64[$source + ($r$122 << 5) + 24 >> 3];
$r$122 = $r$122 + 1 | 0;
} while (($r$122 | 0) != 3);
} else {
$r$024 = 0;
do {
HEAPF64[$Cpara + ($r$024 << 5) >> 3] = +HEAPF64[$source + ($r$024 << 5) >> 3];
HEAPF64[$Cpara + ($r$024 << 5) + 8 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 8 >> 3];
HEAPF64[$Cpara + ($r$024 << 5) + 16 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 16 >> 3];
HEAPF64[$Cpara + ($r$024 << 5) + 24 >> 3] = +HEAPF64[$source + ($r$024 << 5) + 24 >> 3];
$r$024 = $r$024 + 1 | 0;
} while (($r$024 | 0) != 3);
}
HEAPF64[$cpara >> 3] = 0.0;
HEAPF64[$cpara + 8 >> 3] = 0.0;
HEAPF64[$cpara + 16 >> 3] = 0.0;
HEAPF64[$cpara + 24 >> 3] = 0.0;
HEAPF64[$cpara + 32 >> 3] = 0.0;
HEAPF64[$cpara + 40 >> 3] = 0.0;
HEAPF64[$cpara + 48 >> 3] = 0.0;
HEAPF64[$cpara + 56 >> 3] = 0.0;
HEAPF64[$cpara + 64 >> 3] = 0.0;
HEAPF64[$cpara + 72 >> 3] = 0.0;
HEAPF64[$cpara + 80 >> 3] = 0.0;
HEAPF64[$cpara + 88 >> 3] = 0.0;
$45 = +HEAPF64[$Cpara + 64 >> 3];
$47 = +HEAPF64[$Cpara + 72 >> 3];
$49 = +HEAPF64[$Cpara + 80 >> 3];
$55 = +Math_sqrt(+($45 * $45 + $47 * $47 + $49 * $49));
$56 = $cpara + 80 | 0;
HEAPF64[$56 >> 3] = $55;
$57 = $45 / $55;
$58 = $trans + 64 | 0;
HEAPF64[$58 >> 3] = $57;
$60 = $47 / +HEAPF64[$56 >> 3];
$61 = $trans + 72 | 0;
HEAPF64[$61 >> 3] = $60;
$63 = $49 / +HEAPF64[$56 >> 3];
$64 = $trans + 80 | 0;
HEAPF64[$64 >> 3] = $63;
$69 = $trans + 88 | 0;
HEAPF64[$69 >> 3] = +HEAPF64[$Cpara + 88 >> 3] / +HEAPF64[$56 >> 3];
$71 = +HEAPF64[$Cpara + 32 >> 3];
$73 = +HEAPF64[$Cpara + 40 >> 3];
$75 = +HEAPF64[$Cpara + 48 >> 3];
$80 = $57 * $71 + $60 * $73 + $63 * $75;
$81 = $cpara + 48 | 0;
HEAPF64[$81 >> 3] = $80;
$84 = $71 - $80 * +HEAPF64[$58 >> 3];
$87 = $73 - $80 * +HEAPF64[$61 >> 3];
$90 = $75 - $80 * +HEAPF64[$64 >> 3];
$96 = +Math_sqrt(+($84 * $84 + $87 * $87 + $90 * $90));
$97 = $cpara + 40 | 0;
HEAPF64[$97 >> 3] = $96;
$99 = $trans + 32 | 0;
HEAPF64[$99 >> 3] = $84 / $96;
$102 = $trans + 40 | 0;
HEAPF64[$102 >> 3] = $87 / +HEAPF64[$97 >> 3];
$105 = $trans + 48 | 0;
HEAPF64[$105 >> 3] = $90 / +HEAPF64[$97 >> 3];
$109 = +HEAPF64[$Cpara >> 3];
$111 = +HEAPF64[$Cpara + 8 >> 3];
$113 = +HEAPF64[$Cpara + 16 >> 3];
$118 = +HEAPF64[$58 >> 3] * $109 + +HEAPF64[$61 >> 3] * $111 + +HEAPF64[$64 >> 3] * $113;
$119 = $cpara + 16 | 0;
HEAPF64[$119 >> 3] = $118;
$127 = +HEAPF64[$99 >> 3] * $109 + +HEAPF64[$102 >> 3] * $111 + +HEAPF64[$105 >> 3] * $113;
$128 = $cpara + 8 | 0;
HEAPF64[$128 >> 3] = $127;
$134 = $109 - $127 * +HEAPF64[$99 >> 3] - $118 * +HEAPF64[$58 >> 3];
$140 = $111 - $127 * +HEAPF64[$102 >> 3] - $118 * +HEAPF64[$61 >> 3];
$146 = $113 - $127 * +HEAPF64[$105 >> 3] - $118 * +HEAPF64[$64 >> 3];
$152 = +Math_sqrt(+($134 * $134 + $140 * $140 + $146 * $146));
HEAPF64[$cpara >> 3] = $152;
HEAPF64[$trans >> 3] = $134 / $152;
HEAPF64[$trans + 8 >> 3] = $140 / +HEAPF64[$cpara >> 3];
HEAPF64[$trans + 16 >> 3] = $146 / +HEAPF64[$cpara >> 3];
$163 = +HEAPF64[$69 >> 3];
$167 = (+HEAPF64[$Cpara + 56 >> 3] - +HEAPF64[$81 >> 3] * $163) / +HEAPF64[$97 >> 3];
HEAPF64[$trans + 56 >> 3] = $167;
HEAPF64[$trans + 24 >> 3] = (+HEAPF64[$Cpara + 24 >> 3] - $167 * +HEAPF64[$128 >> 3] - +HEAPF64[$119 >> 3] * $163) / +HEAPF64[$cpara >> 3];
$r$318 = 0;
do {
$181 = $cpara + ($r$318 << 5) | 0;
HEAPF64[$181 >> 3] = +HEAPF64[$181 >> 3] / +HEAPF64[$56 >> 3];
$185 = $cpara + ($r$318 << 5) + 8 | 0;
HEAPF64[$185 >> 3] = +HEAPF64[$185 >> 3] / +HEAPF64[$56 >> 3];
$189 = $cpara + ($r$318 << 5) + 16 | 0;
HEAPF64[$189 >> 3] = +HEAPF64[$189 >> 3] / +HEAPF64[$56 >> 3];
$r$318 = $r$318 + 1 | 0;
} while (($r$318 | 0) != 3);
STACKTOP = sp;
return 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_19base_nameINSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEEEET_RS9_($agg$result, $s) {
$agg$result = $agg$result | 0;
$s = $s | 0;
var $$$$i$i$i3 = 0, $$0$i$i27 = 0, $$lcssa = 0, $$lcssa32 = 0, $$lcssa33 = 0, $0 = 0, $12 = 0, $13 = 0, $15 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $27 = 0, $31 = 0, $33 = 0, $38 = 0, $42 = 0, $46 = 0, $48 = 0, $56 = 0, $63 = 0, $64 = 0, $7 = 0, $__p$0$i$i26 = 0, $__p$0$ph$i$i = 0, $c$0$ph = 0, $p0$0 = 0, $p0$1 = 0, $pe$0 = 0, $pe$0$ph = 0, $pe$1 = 0, $pe$1$pn = 0, label = 0;
$0 = HEAP8[$s >> 0] | 0;
$2 = ($0 & 1) == 0;
$7 = $2 ? ($0 & 255) >>> 1 : HEAP32[$s + 4 >> 2] | 0;
L1 : do if (!$7) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($agg$result, $s); else {
$12 = $2 ? $s + 1 | 0 : HEAP32[$s + 8 >> 2] | 0;
$13 = $7 >>> 0 > 11;
$15 = _memcmp($12, 12846, $13 ? 11 : $7) | 0;
if (!((($15 | 0) == 0 ? ($7 >>> 0 < 11 ? -1 : $13 & 1) : $15) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13450, 70);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13521, 12);
break;
}
$20 = $7 >>> 0 > 12;
$21 = $20 ? 12 : $7;
$22 = _memcmp($12, 12858, $21) | 0;
$$$$i$i$i3 = $7 >>> 0 < 12 ? -1 : $20 & 1;
if (!((($22 | 0) == 0 ? $$$$i$i$i3 : $22) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13534, 49);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13584, 13);
break;
}
$27 = _memcmp($12, 12871, $21) | 0;
if (!((($27 | 0) == 0 ? $$$$i$i$i3 : $27) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13598, 49);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13648, 13);
break;
}
$31 = $7 >>> 0 > 13;
$33 = _memcmp($12, 12884, $31 ? 13 : $7) | 0;
if (!((($33 | 0) == 0 ? ($7 >>> 0 < 13 ? -1 : $31 & 1) : $33) | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($s, 13662, 50);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($agg$result, 13713, 14);
break;
}
$38 = $12 + $7 | 0;
L16 : do if ((HEAP8[$12 + ($7 + -1) >> 0] | 0) == 62) {
$c$0$ph = 1;
$pe$0$ph = $38;
L17 : while (1) {
$pe$0 = $pe$0$ph;
L19 : while (1) {
$42 = $pe$0 + -1 | 0;
if (($42 | 0) == ($12 | 0)) break L17;
$46 = $pe$0 + -2 | 0;
switch (HEAP8[$46 >> 0] | 0) {
case 60:
{
$$lcssa = $46;
$$lcssa32 = $42;
label = 16;
break L19;
break;
}
case 62:
{
$$lcssa33 = $42;
label = 17;
break L19;
break;
}
default:
$pe$0 = $42;
}
}
if ((label | 0) == 16) {
label = 0;
$48 = $c$0$ph + -1 | 0;
if (!$48) {
$pe$1 = $$lcssa;
break L16;
} else {
$c$0$ph = $48;
$pe$0$ph = $$lcssa32;
continue;
}
} else if ((label | 0) == 17) {
label = 0;
$c$0$ph = $c$0$ph + 1 | 0;
$pe$0$ph = $$lcssa33;
continue;
}
}
HEAP32[$agg$result >> 2] = 0;
HEAP32[$agg$result + 4 >> 2] = 0;
HEAP32[$agg$result + 8 >> 2] = 0;
break L1;
} else $pe$1 = $38; while (0);
$pe$1$pn = $pe$1;
while (1) {
$p0$0 = $pe$1$pn + -1 | 0;
if (($p0$0 | 0) == ($12 | 0)) {
$p0$1 = $12;
break;
}
if ((HEAP8[$p0$0 >> 0] | 0) == 58) {
$p0$1 = $pe$1$pn;
break;
} else $pe$1$pn = $p0$0;
}
$56 = $pe$1 - $p0$1 | 0;
if ($56 >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($agg$result);
if ($56 >>> 0 < 11) {
HEAP8[$agg$result >> 0] = $56 << 1;
$__p$0$ph$i$i = $agg$result + 1 | 0;
} else {
$63 = $56 + 16 & -16;
$64 = _malloc($63) | 0;
HEAP32[$agg$result + 8 >> 2] = $64;
HEAP32[$agg$result >> 2] = $63 | 1;
HEAP32[$agg$result + 4 >> 2] = $56;
$__p$0$ph$i$i = $64;
}
if (($p0$1 | 0) != ($pe$1 | 0)) {
$$0$i$i27 = $p0$1;
$__p$0$i$i26 = $__p$0$ph$i$i;
while (1) {
HEAP8[$__p$0$i$i26 >> 0] = HEAP8[$$0$i$i27 >> 0] | 0;
$$0$i$i27 = $$0$i$i27 + 1 | 0;
if (($$0$i$i27 | 0) == ($pe$1 | 0)) break; else $__p$0$i$i26 = $__p$0$i$i26 + 1 | 0;
}
}
HEAP8[$__p$0$ph$i$i + $56 >> 0] = 0;
} while (0);
return;
}
function _trinkle($head, $width, $cmp, $pp, $pshift, $trusty, $lp) {
$head = $head | 0;
$width = $width | 0;
$cmp = $cmp | 0;
$pp = $pp | 0;
$pshift = $pshift | 0;
$trusty = $trusty | 0;
$lp = $lp | 0;
var $$0$i = 0, $$0$lcssa = 0, $$0$lcssa49 = 0, $$01162 = 0, $$01162$phi = 0, $$02$i$i = 0, $$02$i3$i = 0, $$02$lcssa = 0, $$02$lcssa51 = 0, $$02964 = 0, $$03$lcssa = 0, $$03865 = 0, $$lcssa = 0, $$lcssa75 = 0, $0 = 0, $10 = 0, $17 = 0, $18 = 0, $2 = 0, $24 = 0, $26 = 0, $27 = 0, $3 = 0, $31 = 0, $37 = 0, $40 = 0, $47 = 0, $49 = 0, $51 = 0, $54 = 0, $57 = 0, $58 = 0, $65 = 0, $ar = 0, $i$0$lcssa = 0, $i$0$lcssa50 = 0, $i$01063 = 0, $nTrailingZeros$03$i$i = 0, $nTrailingZeros$03$i2$i = 0, $nTrailingZeros$03$i2$i$lcssa = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ar = sp;
$0 = HEAP32[$pp >> 2] | 0;
$2 = HEAP32[$pp + 4 >> 2] | 0;
HEAP32[$ar >> 2] = $head;
$3 = 0 - $width | 0;
L1 : do if (($2 | 0) != 0 | ($0 | 0) != 1) {
$10 = $head + (0 - (HEAP32[$lp + ($pshift << 2) >> 2] | 0)) | 0;
if ((FUNCTION_TABLE_iii[$cmp & 15]($10, $head) | 0) < 1) {
$$0$lcssa = $head;
$$02$lcssa = $pshift;
$$03$lcssa = $trusty;
$i$0$lcssa = 1;
label = 19;
} else {
$$01162 = $head;
$$02964 = $pshift;
$$03865 = ($trusty | 0) == 0;
$18 = $10;
$27 = $0;
$37 = $2;
$i$01063 = 1;
while (1) {
if ($$03865 & ($$02964 | 0) > 1) {
$17 = HEAP32[$lp + ($$02964 + -2 << 2) >> 2] | 0;
if ((FUNCTION_TABLE_iii[$cmp & 15]($$01162 + $3 | 0, $18) | 0) > -1) {
$$0$lcssa49 = $$01162;
$$02$lcssa51 = $$02964;
$i$0$lcssa50 = $i$01063;
label = 20;
break L1;
}
if ((FUNCTION_TABLE_iii[$cmp & 15]($$01162 + (0 - ($17 + $width)) | 0, $18) | 0) > -1) {
$$0$lcssa49 = $$01162;
$$02$lcssa51 = $$02964;
$i$0$lcssa50 = $i$01063;
label = 20;
break L1;
}
}
$24 = $i$01063 + 1 | 0;
HEAP32[$ar + ($i$01063 << 2) >> 2] = $18;
$26 = $27 + -1 | 0;
do if (!$26) {
$49 = 32;
label = 16;
} else {
if (!($26 & 1)) {
$$02$i$i = $26;
$nTrailingZeros$03$i$i = 0;
while (1) {
$31 = $nTrailingZeros$03$i$i + 1 | 0;
$$02$i$i = $$02$i$i >>> 1;
if ($$02$i$i & 1) {
$$lcssa = $31;
break;
} else $nTrailingZeros$03$i$i = $31;
}
if (!$$lcssa) label = 11; else $47 = $$lcssa;
} else label = 11;
if ((label | 0) == 11) {
label = 0;
if (!$37) {
$49 = 64;
label = 16;
break;
}
if (!($37 & 1)) {
$$02$i3$i = $37;
$nTrailingZeros$03$i2$i = 0;
} else {
$$0$i = 0;
$51 = $27;
$54 = $37;
$58 = 0;
break;
}
while (1) {
$40 = $nTrailingZeros$03$i2$i + 1 | 0;
$$02$i3$i = $$02$i3$i >>> 1;
if ($$02$i3$i & 1) {
$$lcssa75 = $40;
$nTrailingZeros$03$i2$i$lcssa = $nTrailingZeros$03$i2$i;
break;
} else $nTrailingZeros$03$i2$i = $40;
}
if (!$$lcssa75) {
$$0$i = 0;
$51 = $27;
$54 = $37;
$58 = 0;
break;
} else $47 = $nTrailingZeros$03$i2$i$lcssa + 33 | 0;
}
if ($47 >>> 0 > 31) {
$49 = $47;
label = 16;
} else {
$$0$i = $47;
$51 = $27;
$54 = $37;
$58 = $47;
}
} while (0);
if ((label | 0) == 16) {
label = 0;
$$0$i = $49 + -32 | 0;
$51 = $37;
$54 = 0;
$58 = $49;
}
$27 = $54 << 32 - $$0$i | $51 >>> $$0$i;
$37 = $54 >>> $$0$i;
$57 = $58 + $$02964 | 0;
if (!(($37 | 0) != 0 | ($27 | 0) != 1)) {
$$0$lcssa49 = $18;
$$02$lcssa51 = $57;
$i$0$lcssa50 = $24;
label = 20;
break L1;
}
$65 = $18 + (0 - (HEAP32[$lp + ($57 << 2) >> 2] | 0)) | 0;
if ((FUNCTION_TABLE_iii[$cmp & 15]($65, HEAP32[$ar >> 2] | 0) | 0) < 1) {
$$0$lcssa = $18;
$$02$lcssa = $57;
$$03$lcssa = 0;
$i$0$lcssa = $24;
label = 19;
break;
} else {
$$01162$phi = $18;
$$02964 = $57;
$$03865 = 1;
$18 = $65;
$i$01063 = $24;
$$01162 = $$01162$phi;
}
}
}
} else {
$$0$lcssa = $head;
$$02$lcssa = $pshift;
$$03$lcssa = $trusty;
$i$0$lcssa = 1;
label = 19;
} while (0);
if ((label | 0) == 19) if (!$$03$lcssa) {
$$0$lcssa49 = $$0$lcssa;
$$02$lcssa51 = $$02$lcssa;
$i$0$lcssa50 = $i$0$lcssa;
label = 20;
}
if ((label | 0) == 20) {
_cycle($width, $ar, $i$0$lcssa50);
_sift($$0$lcssa49, $width, $cmp, $$02$lcssa51, $lp);
}
STACKTOP = sp;
return;
}
function _arMatrixPCA($input, $evec, $ev, $mean) {
$input = $input | 0;
$evec = $evec | 0;
$ev = $ev | 0;
$mean = $mean | 0;
var $$0 = 0, $1 = 0, $14 = 0, $17 = 0, $20 = 0, $23 = 0.0, $25 = 0, $27 = 0, $3 = 0, $32 = 0, $35 = 0, $36 = 0.0, $37 = 0, $46 = 0, $5 = 0, $52 = 0, $53 = 0, $65 = 0, $70 = 0, $71 = 0, $73 = 0, $75 = 0, $78 = 0.0, $81 = 0, $exitcond3$i29 = 0, $i$0$i322 = 0, $i$0$i42 = 0, $i$015 = 0, $i$1$i38 = 0, $i$113 = 0, $i$2$i26 = 0, $i$211 = 0, $j$0$i32 = 0, $j$0$i619 = 0, $m$0$i221 = 0, $m$0$i37 = 0, $m$1$i31 = 0, $m$1$i518 = 0, $smax$i = 0, $sum$0$lcssa = 0.0, $sum$012 = 0.0, $v$0$i30 = 0, $v$0$i417 = 0;
$1 = HEAP32[$input + 4 >> 2] | 0;
$3 = HEAP32[$input + 8 >> 2] | 0;
$5 = ($1 | 0) < ($3 | 0) ? $1 : $3;
L1 : do if (($1 | 0) < 2 | ($3 | 0) < 2) $$0 = -1; else if ((HEAP32[$evec + 8 >> 2] | 0) == ($3 | 0)) if ((HEAP32[$evec + 4 >> 2] | 0) == ($5 | 0)) {
$14 = $ev + 4 | 0;
if ((HEAP32[$14 >> 2] | 0) == ($5 | 0)) {
$17 = $mean + 4 | 0;
if ((HEAP32[$17 >> 2] | 0) == ($3 | 0)) {
$20 = _arMatrixAllocDup($input) | 0;
if (!$20) $$0 = -1; else {
$23 = +Math_sqrt(+(+($1 | 0)));
$25 = HEAP32[$20 + 4 >> 2] | 0;
$27 = HEAP32[$20 + 8 >> 2] | 0;
if (!(($25 | 0) < 1 | ($27 | 0) < 1)) if ((HEAP32[$17 >> 2] | 0) == ($27 | 0)) {
if ($27) {
$32 = HEAP32[$mean >> 2] | 0;
$i$0$i42 = 0;
do {
HEAPF64[$32 + ($i$0$i42 << 3) >> 3] = 0.0;
$i$0$i42 = $i$0$i42 + 1 | 0;
} while (($i$0$i42 | 0) != ($27 | 0));
}
$35 = HEAP32[$20 >> 2] | 0;
if ($25) {
$exitcond3$i29 = ($27 | 0) == 0;
$i$1$i38 = 0;
$m$0$i37 = $35;
while (1) {
if (!$exitcond3$i29) {
$j$0$i32 = 0;
$m$1$i31 = $m$0$i37;
$v$0$i30 = HEAP32[$mean >> 2] | 0;
while (1) {
HEAPF64[$v$0$i30 >> 3] = +HEAPF64[$m$1$i31 >> 3] + +HEAPF64[$v$0$i30 >> 3];
$j$0$i32 = $j$0$i32 + 1 | 0;
if (($j$0$i32 | 0) == ($27 | 0)) break; else {
$m$1$i31 = $m$1$i31 + 8 | 0;
$v$0$i30 = $v$0$i30 + 8 | 0;
}
}
}
$i$1$i38 = $i$1$i38 + 1 | 0;
if (($i$1$i38 | 0) == ($25 | 0)) break; else $m$0$i37 = $m$0$i37 + ($27 << 3) | 0;
}
}
$36 = +($25 | 0);
if ($27) {
$37 = HEAP32[$mean >> 2] | 0;
$i$2$i26 = 0;
do {
$46 = $37 + ($i$2$i26 << 3) | 0;
HEAPF64[$46 >> 3] = +HEAPF64[$46 >> 3] / $36;
$i$2$i26 = $i$2$i26 + 1 | 0;
} while (($i$2$i26 | 0) != ($27 | 0));
}
$smax$i = ($27 | 0) > 0 ? $27 : 0;
if (($25 | 0) > 0) {
$52 = ($27 | 0) > 0;
$i$0$i322 = 0;
$m$0$i221 = $35;
while (1) {
if ($52) {
$j$0$i619 = 0;
$m$1$i518 = $m$0$i221;
$v$0$i417 = HEAP32[$mean >> 2] | 0;
while (1) {
HEAPF64[$m$1$i518 >> 3] = +HEAPF64[$m$1$i518 >> 3] - +HEAPF64[$v$0$i417 >> 3];
$j$0$i619 = $j$0$i619 + 1 | 0;
if (($j$0$i619 | 0) >= ($27 | 0)) break; else {
$m$1$i518 = $m$1$i518 + 8 | 0;
$v$0$i417 = $v$0$i417 + 8 | 0;
}
}
}
$i$0$i322 = $i$0$i322 + 1 | 0;
if (($i$0$i322 | 0) >= ($25 | 0)) break; else $m$0$i221 = $m$0$i221 + ($smax$i << 3) | 0;
}
}
$53 = Math_imul($3, $1) | 0;
if (($53 | 0) > 0) {
$i$015 = 0;
do {
$65 = $35 + ($i$015 << 3) | 0;
HEAPF64[$65 >> 3] = +HEAPF64[$65 >> 3] / $23;
$i$015 = $i$015 + 1 | 0;
} while (($i$015 | 0) < ($53 | 0));
}
$70 = _PCA($20, $evec, $ev) | 0;
_arMatrixFree($20) | 0;
$71 = HEAP32[$14 >> 2] | 0;
if (($71 | 0) > 0) {
$73 = HEAP32[$ev >> 2] | 0;
$i$113 = 0;
$sum$012 = 0.0;
while (1) {
$78 = $sum$012 + +HEAPF64[$73 + ($i$113 << 3) >> 3];
$i$113 = $i$113 + 1 | 0;
if (($i$113 | 0) >= ($71 | 0)) {
$sum$0$lcssa = $78;
break;
} else $sum$012 = $78;
}
} else $sum$0$lcssa = 0.0;
if (($71 | 0) <= 0) {
$$0 = $70;
break;
}
$75 = HEAP32[$ev >> 2] | 0;
$i$211 = 0;
while (1) {
$81 = $75 + ($i$211 << 3) | 0;
HEAPF64[$81 >> 3] = +HEAPF64[$81 >> 3] / $sum$0$lcssa;
$i$211 = $i$211 + 1 | 0;
if (($i$211 | 0) >= ($71 | 0)) {
$$0 = $70;
break L1;
}
}
}
_arMatrixFree($20) | 0;
$$0 = -1;
}
} else $$0 = -1;
} else $$0 = -1;
} else $$0 = -1; else $$0 = -1; while (0);
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_126parse_base_unresolved_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $$0$i = 0, $10 = 0, $12 = 0, $14 = 0, $15 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0, $31 = 0, $4 = 0, $42 = 0, $48 = 0, $52 = 0, $54 = 0, $56 = 0, $58 = 0, $59 = 0, $67 = 0, $68 = 0, $69 = 0, $70 = 0, $73 = 0, $75 = 0, $9 = 0, $args = 0, $args3 = 0, $t$0$i = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$args = sp + 12 | 0;
$args3 = sp;
L1 : do if (($last - $first | 0) > 1) {
$4 = HEAP8[$first >> 0] | 0;
switch ($4 << 24 >> 24) {
case 100:
case 111:
{
if ((HEAP8[$first + 1 >> 0] | 0) == 110) {
$9 = $first + 2 | 0;
if ($4 << 24 >> 24 == 111) {
$10 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0;
if (($10 | 0) == ($9 | 0)) {
$$0 = $first;
break L1;
}
$12 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($10, $last, $db) | 0;
if (($12 | 0) == ($10 | 0)) {
$$0 = $10;
break L1;
}
$14 = $db + 4 | 0;
$15 = HEAP32[$14 >> 2] | 0;
if ((($15 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) {
$$0 = $12;
break L1;
}
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $15 + -24 | 0);
$23 = HEAP32[$14 >> 2] | 0;
$24 = $23 + -24 | 0;
$26 = $23;
do {
$25 = $26 + -24 | 0;
HEAP32[$14 >> 2] = $25;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($25);
$26 = HEAP32[$14 >> 2] | 0;
} while (($26 | 0) != ($24 | 0));
$29 = HEAP8[$args >> 0] | 0;
$31 = ($29 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($23 + -48 | 0, $31 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $31 ? ($29 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$0 = $12;
break L1;
}
if (($9 | 0) == ($last | 0)) $$0$i = $last; else {
$42 = __ZN10__cxxabiv112_GLOBAL__N_121parse_unresolved_typeINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0;
if (($42 | 0) == ($9 | 0)) $t$0$i = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($9, $last, $db) | 0; else $t$0$i = $42;
if (($t$0$i | 0) == ($9 | 0)) $$0$i = $9; else {
$48 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($48 | 0)) $$0$i = $9; else {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($48 + -24 | 0, 0, 12928) | 0;
$$0$i = $t$0$i;
}
}
}
STACKTOP = sp;
return (($$0$i | 0) == ($9 | 0) ? $first : $$0$i) | 0;
}
break;
}
default:
{}
}
$52 = __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($52 | 0) == ($first | 0)) {
$54 = __ZN10__cxxabiv112_GLOBAL__N_119parse_operator_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($54 | 0) == ($first | 0)) $$0 = $first; else {
$56 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($54, $last, $db) | 0;
if (($56 | 0) == ($54 | 0)) $$0 = $54; else {
$58 = $db + 4 | 0;
$59 = HEAP32[$58 >> 2] | 0;
if ((($59 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $56; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args3, $59 + -24 | 0);
$67 = HEAP32[$58 >> 2] | 0;
$68 = $67 + -24 | 0;
$70 = $67;
do {
$69 = $70 + -24 | 0;
HEAP32[$58 >> 2] = $69;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($69);
$70 = HEAP32[$58 >> 2] | 0;
} while (($70 | 0) != ($68 | 0));
$73 = HEAP8[$args3 >> 0] | 0;
$75 = ($73 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($67 + -48 | 0, $75 ? $args3 + 1 | 0 : HEAP32[$args3 + 8 >> 2] | 0, $75 ? ($73 & 255) >>> 1 : HEAP32[$args3 + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args3);
$$0 = $56;
}
}
}
} else $$0 = $52;
} else $$0 = $first; while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arParamLoad($filename, $num, $param, $varargs) {
$filename = $filename | 0;
$num = $num | 0;
$param = $param | 0;
$varargs = $varargs | 0;
var $$pre$phi14Z2D = 0, $11 = 0, $14 = 0, $15 = 0, $18 = 0, $21 = 0, $23 = 0, $26 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $36 = 0, $43 = 0, $44 = 0, $5 = 0, $53 = 0.0, $8 = 0, $ap = 0, $dist_function_version$04 = 0, $i$0 = 0, $i$0$lcssa = 0, $i$119 = 0, $param_wasRead = 0, $ret$06 = 0, $ret$09 = 0, $vararg_buffer = 0, $vararg_buffer13 = 0, $vararg_buffer15 = 0, $vararg_buffer18 = 0, $vararg_buffer2 = 0, $vararg_buffer6 = 0, $vararg_buffer9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer18 = sp + 232 | 0;
$vararg_buffer15 = sp + 224 | 0;
$vararg_buffer13 = sp + 216 | 0;
$vararg_buffer9 = sp + 208 | 0;
$vararg_buffer6 = sp + 200 | 0;
$vararg_buffer2 = sp + 192 | 0;
$vararg_buffer = sp + 184 | 0;
$ap = sp + 240 | 0;
$param_wasRead = sp;
do if (($filename | 0) != 0 & ($num | 0) > 0 & ($param | 0) != 0) {
$3 = _fopen($filename, 4854) | 0;
if (!$3) {
$5 = ___errno_location() | 0;
HEAP32[$vararg_buffer >> 2] = HEAP32[$5 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = $filename;
_arLog(3, 4857, $vararg_buffer);
$8 = _strerror(HEAP32[$5 >> 2] | 0) | 0;
HEAP32[$vararg_buffer2 >> 2] = 13835;
HEAP32[$vararg_buffer2 + 4 >> 2] = $8;
_arLog(3, 5361, $vararg_buffer2);
$ret$06 = -1;
break;
}
_fseek($3, 0, 2) | 0;
L6 : do if (!(_ferror($3) | 0)) {
$15 = _ftell($3) | 0;
_rewind($3);
$i$0 = 0;
while (1) {
if (($i$0 | 0) >= 4) {
$i$0$lcssa = $i$0;
label = 9;
break;
}
$18 = HEAP32[2012 + ($i$0 << 3) + 4 >> 2] | 0;
$21 = $i$0 + 1 | 0;
if (!(($15 | 0) % ($18 | 0) | 0)) {
$23 = $18;
$dist_function_version$04 = $21;
break;
} else $i$0 = $21;
}
do if ((label | 0) == 9) if (($i$0$lcssa | 0) == 4) {
_arLog(3, 4971, $vararg_buffer13);
$ret$09 = -1;
break L6;
} else {
$23 = HEAP32[2012 + (0 << 3) + 4 >> 2] | 0;
$dist_function_version$04 = 0;
break;
} while (0);
if ((_fread($param_wasRead, $23, 1, $3) | 0) != 1) {
$26 = ___errno_location() | 0;
HEAP32[$vararg_buffer15 >> 2] = HEAP32[$26 >> 2];
_arLog(3, 5051, $vararg_buffer15);
$29 = _strerror(HEAP32[$26 >> 2] | 0) | 0;
HEAP32[$vararg_buffer18 >> 2] = 13835;
HEAP32[$vararg_buffer18 + 4 >> 2] = $29;
_arLog(3, 5361, $vararg_buffer18);
$ret$09 = -1;
break;
}
$30 = $param_wasRead + 176 | 0;
HEAP32[$30 >> 2] = $dist_function_version$04;
_byteswap($param_wasRead);
$31 = ($dist_function_version$04 | 0) == 1;
$32 = $param_wasRead + 120 | 0;
if ($31) {
$33 = +HEAPF64[$32 >> 3];
$34 = $param_wasRead + 128 | 0;
HEAPF64[$32 >> 3] = +HEAPF64[$34 >> 3];
HEAPF64[$34 >> 3] = $33;
$$pre$phi14Z2D = $34;
} else $$pre$phi14Z2D = $param_wasRead + 128 | 0;
_memcpy($param | 0, $param_wasRead | 0, 184) | 0;
HEAP32[$ap >> 2] = $varargs;
$36 = $param + 176 | 0;
if (($num | 0) > 1) {
$i$119 = 1;
while (1) {
$43 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$44 = HEAP32[$43 >> 2] | 0;
HEAP32[$ap >> 2] = $43 + 4;
HEAP32[$44 + 176 >> 2] = HEAP32[$36 >> 2];
if ((_fread($param_wasRead, HEAP32[2012 + ((HEAP32[$36 >> 2] | 0) + -1 << 3) + 4 >> 2] | 0, 1, $3) | 0) != 1) {
$ret$09 = -1;
break L6;
}
HEAP32[$30 >> 2] = $dist_function_version$04;
_byteswap($param_wasRead);
if ($31) {
$53 = +HEAPF64[$32 >> 3];
HEAPF64[$32 >> 3] = +HEAPF64[$$pre$phi14Z2D >> 3];
HEAPF64[$$pre$phi14Z2D >> 3] = $53;
}
_memcpy($44 | 0, $param_wasRead | 0, 184) | 0;
$i$119 = $i$119 + 1 | 0;
if (($i$119 | 0) >= ($num | 0)) {
$ret$09 = 0;
break;
}
}
} else $ret$09 = 0;
} else {
$11 = ___errno_location() | 0;
HEAP32[$vararg_buffer6 >> 2] = HEAP32[$11 >> 2];
_arLog(3, 4926, $vararg_buffer6);
$14 = _strerror(HEAP32[$11 >> 2] | 0) | 0;
HEAP32[$vararg_buffer9 >> 2] = 13835;
HEAP32[$vararg_buffer9 + 4 >> 2] = $14;
_arLog(3, 5361, $vararg_buffer9);
$ret$09 = -1;
} while (0);
_fclose($3) | 0;
$ret$06 = $ret$09;
} else $ret$06 = -1; while (0);
STACKTOP = sp;
return $ret$06 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_123parse_prefix_expressionINS0_2DbEEEPKcS4_S4_RKNT_6StringERS5_($first, $last, $op, $db) {
$first = $first | 0;
$last = $last | 0;
$op = $op | 0;
$db = $db | 0;
var $$04 = 0, $$pre$i$i$i = 0, $0 = 0, $1 = 0, $10 = 0, $13 = 0, $15 = 0, $2 = 0, $25 = 0, $28 = 0, $3 = 0, $35 = 0, $37 = 0, $4 = 0, $40 = 0, $44 = 0, $47 = 0, $52 = 0, $53 = 0, $56 = 0, $57 = 0, $59 = 0, $60 = 0, $69 = 0, $7 = 0, $72 = 0, $77 = 0, $8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 36 | 0;
$1 = sp + 24 | 0;
$2 = sp + 12 | 0;
$3 = sp;
$4 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($4 | 0) == ($first | 0)) $$04 = $first; else {
$7 = $db + 4 | 0;
$8 = HEAP32[$7 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($8 | 0)) $$04 = $first; else {
$10 = $8 + -24 | 0;
__ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($2, $op, 12714);
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, (HEAP32[$7 >> 2] | 0) + -24 | 0);
$13 = HEAP8[$3 >> 0] | 0;
$15 = ($13 & 1) == 0;
$25 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($2, $15 ? $3 + 1 | 0 : HEAP32[$3 + 8 >> 2] | 0, $15 ? ($13 & 255) >>> 1 : HEAP32[$3 + 4 >> 2] | 0) | 0;
HEAP32[$1 >> 2] = HEAP32[$25 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$25 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$25 + 8 >> 2];
HEAP32[$25 >> 2] = 0;
HEAP32[$25 + 4 >> 2] = 0;
HEAP32[$25 + 8 >> 2] = 0;
$28 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($1, 12619) | 0;
HEAP32[$0 >> 2] = HEAP32[$28 >> 2];
HEAP32[$0 + 4 >> 2] = HEAP32[$28 + 4 >> 2];
HEAP32[$0 + 8 >> 2] = HEAP32[$28 + 8 >> 2];
HEAP32[$28 >> 2] = 0;
HEAP32[$28 + 4 >> 2] = 0;
HEAP32[$28 + 8 >> 2] = 0;
do if (!(HEAP8[$10 >> 0] & 1)) {
HEAP8[$10 + 1 >> 0] = 0;
HEAP8[$10 >> 0] = 0;
} else {
$35 = $8 + -16 | 0;
HEAP8[HEAP32[$35 >> 2] >> 0] = 0;
$37 = $8 + -20 | 0;
HEAP32[$37 >> 2] = 0;
$$pre$i$i$i = HEAP8[$10 >> 0] | 0;
if (!($$pre$i$i$i & 1)) {
$44 = $$pre$i$i$i;
$53 = 10;
} else {
$40 = HEAP32[$10 >> 2] | 0;
$44 = $40 & 255;
$53 = ($40 & -2) + -1 | 0;
}
if (!($44 & 1)) {
$47 = ($44 & 255) >>> 1;
if (($44 & 255) < 22) {
$52 = 10;
$72 = $47;
$77 = 1;
} else {
$52 = ($47 + 16 & 240) + -1 | 0;
$72 = $47;
$77 = 1;
}
} else {
$52 = 10;
$72 = 0;
$77 = 0;
}
if (($52 | 0) != ($53 | 0)) {
if (($52 | 0) == 10) {
$59 = $10 + 1 | 0;
$60 = HEAP32[$35 >> 2] | 0;
if ($77) {
_memcpy($59 | 0, $60 | 0, (($44 & 255) >>> 1) + 1 | 0) | 0;
_free($60);
} else {
HEAP8[$59 >> 0] = HEAP8[$60 >> 0] | 0;
_free($60);
}
HEAP8[$10 >> 0] = $72 << 1;
break;
}
$56 = $52 + 1 | 0;
$57 = _malloc($56) | 0;
if (!($52 >>> 0 <= $53 >>> 0 & ($57 | 0) == 0)) {
if ($77) _memcpy($57 | 0, $10 + 1 | 0, (($44 & 255) >>> 1) + 1 | 0) | 0; else {
$69 = HEAP32[$35 >> 2] | 0;
HEAP8[$57 >> 0] = HEAP8[$69 >> 0] | 0;
_free($69);
}
HEAP32[$10 >> 2] = $56 | 1;
HEAP32[$37 >> 2] = $72;
HEAP32[$35 >> 2] = $57;
}
}
} while (0);
HEAP32[$10 >> 2] = HEAP32[$0 >> 2];
HEAP32[$10 + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$10 + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
$$04 = $4;
}
}
STACKTOP = sp;
return $$04 | 0;
}
function _icpPoint($handle, $data, $initMatXw2Xc, $matXw2Xc, $err) {
$handle = $handle | 0;
$data = $data | 0;
$initMatXw2Xc = $initMatXw2Xc | 0;
$matXw2Xc = $matXw2Xc | 0;
$err = $err | 0;
var $$0 = 0, $$lcssa = 0, $$lcssa28 = 0, $$lcssa50 = 0.0, $$pre = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $28 = 0, $34 = 0, $38 = 0.0, $4 = 0, $42 = 0.0, $46 = 0.0, $47 = 0, $52 = 0, $55 = 0.0, $7 = 0, $9 = 0, $U = 0, $dS = 0, $err0$0 = 0.0, $err1$0$lcssa = 0.0, $err1$033 = 0.0, $i$1 = 0, $j$042 = 0, $j$134 = 0, $j$238 = 0, $matXw2U = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 176 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 168 | 0;
$vararg_buffer = sp + 160 | 0;
$U = sp + 48 | 0;
$matXw2U = sp + 64 | 0;
$dS = sp;
$0 = $data + 8 | 0;
$1 = HEAP32[$0 >> 2] | 0;
do if (($1 | 0) < 3) $$0 = -1; else {
$4 = _malloc($1 * 96 | 0) | 0;
if (!$4) {
_arLog(3, 5109, $vararg_buffer);
$$0 = -1;
break;
}
$7 = _malloc($1 << 4) | 0;
if (!$7) {
_arLog(3, 5109, $vararg_buffer1);
_free($4);
$$0 = -1;
break;
} else $j$042 = 0;
do {
HEAPF64[$matXw2Xc + ($j$042 << 5) >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) >> 3];
HEAPF64[$matXw2Xc + ($j$042 << 5) + 8 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 8 >> 3];
HEAPF64[$matXw2Xc + ($j$042 << 5) + 16 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 16 >> 3];
HEAPF64[$matXw2Xc + ($j$042 << 5) + 24 >> 3] = +HEAPF64[$initMatXw2Xc + ($j$042 << 5) + 24 >> 3];
$j$042 = $j$042 + 1 | 0;
} while (($j$042 | 0) != 3);
$9 = $data + 4 | 0;
$10 = $U + 8 | 0;
$11 = $handle + 104 | 0;
$12 = $handle + 120 | 0;
$13 = $handle + 112 | 0;
$14 = $handle + 96 | 0;
$err0$0 = 0.0;
$i$1 = 0;
L11 : while (1) {
_arUtilMatMul($handle, $matXw2Xc, $matXw2U) | 0;
$28 = HEAP32[$0 >> 2] | 0;
if (($28 | 0) > 0) {
$err1$033 = 0.0;
$j$134 = 0;
while (1) {
if ((_icpGetU_from_X_by_MatX2U($U, $matXw2U, (HEAP32[$9 >> 2] | 0) + ($j$134 * 24 | 0) | 0) | 0) < 0) {
label = 10;
break L11;
}
$34 = HEAP32[$data >> 2] | 0;
$38 = +HEAPF64[$34 + ($j$134 << 4) >> 3] - +HEAPF64[$U >> 3];
$42 = +HEAPF64[$34 + ($j$134 << 4) + 8 >> 3] - +HEAPF64[$10 >> 3];
$46 = $err1$033 + ($38 * $38 + $42 * $42);
$47 = $j$134 << 1;
HEAPF64[$7 + ($47 << 3) >> 3] = $38;
HEAPF64[$7 + (($47 | 1) << 3) >> 3] = $42;
$j$134 = $j$134 + 1 | 0;
$52 = HEAP32[$0 >> 2] | 0;
if (($j$134 | 0) >= ($52 | 0)) {
$$lcssa = $52;
$err1$0$lcssa = $46;
break;
} else $err1$033 = $46;
}
} else {
$$lcssa = $28;
$err1$0$lcssa = 0.0;
}
$55 = $err1$0$lcssa / +($$lcssa | 0);
if ($55 < +HEAPF64[$11 >> 3]) {
$$lcssa50 = $55;
label = 24;
break;
}
if (($i$1 | 0) > 0) if ($55 < +HEAPF64[$12 >> 3]) if ($55 / $err0$0 > +HEAPF64[$13 >> 3]) {
$$lcssa50 = $55;
label = 24;
break;
}
if (($i$1 | 0) == (HEAP32[$14 >> 2] | 0)) {
$$lcssa50 = $55;
label = 24;
break;
}
if (($$lcssa | 0) > 0) {
$j$238 = 0;
while (1) {
if ((_icpGetJ_U_S($4 + ($j$238 * 12 << 3) | 0, $handle, $matXw2Xc, (HEAP32[$9 >> 2] | 0) + ($j$238 * 24 | 0) | 0) | 0) < 0) {
label = 20;
break L11;
}
$j$238 = $j$238 + 1 | 0;
$$pre = HEAP32[$0 >> 2] | 0;
if (($j$238 | 0) >= ($$pre | 0)) {
$$lcssa28 = $$pre;
break;
}
}
} else $$lcssa28 = $$lcssa;
if ((_icpGetDeltaS($dS, $7, $4, $$lcssa28 << 1) | 0) < 0) {
label = 22;
break;
}
_icpUpdateMat($matXw2Xc, $dS) | 0;
$err0$0 = $55;
$i$1 = $i$1 + 1 | 0;
}
if ((label | 0) == 10) {
_icpGetXw2XcCleanup($4, $7);
$$0 = -1;
break;
} else if ((label | 0) == 20) {
_icpGetXw2XcCleanup($4, $7);
$$0 = -1;
break;
} else if ((label | 0) == 22) {
_icpGetXw2XcCleanup($4, $7);
$$0 = -1;
break;
} else if ((label | 0) == 24) {
HEAPF64[$err >> 3] = $$lcssa50;
_free($4);
_free($7);
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arGetMarkerInfo($image, $xsize, $ysize, $pixelFormat, $markerInfo2, $marker2_num, $pattHandle, $imageProcMode, $pattDetectMode, $arParamLTf, $pattRatio, $markerInfo, $marker_num, $matrixCodeType) {
$image = $image | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$pixelFormat = $pixelFormat | 0;
$markerInfo2 = $markerInfo2 | 0;
$marker2_num = $marker2_num | 0;
$pattHandle = $pattHandle | 0;
$imageProcMode = $imageProcMode | 0;
$pattDetectMode = $pattDetectMode | 0;
$arParamLTf = $arParamLTf | 0;
$pattRatio = +$pattRatio;
$markerInfo = $markerInfo | 0;
$marker_num = $marker_num | 0;
$matrixCodeType = $matrixCodeType | 0;
var $0 = 0, $1 = 0, $26 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $i$03 = 0, $j$0$lcssa = 0, $j$02 = 0, $j$1 = 0, $pos0 = 0, $pos1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$pos0 = sp + 4 | 0;
$pos1 = sp;
$0 = $pattDetectMode >>> 0 < 2;
$1 = ($pattDetectMode | 0) == 2;
if (($marker2_num | 0) > 0) {
$i$03 = 0;
$j$02 = 0;
while (1) {
HEAP32[$markerInfo + ($j$02 << 8) >> 2] = HEAP32[$markerInfo2 + ($i$03 * 80048 | 0) >> 2];
if ((_arParamObserv2IdealLTf($arParamLTf, +HEAPF64[$markerInfo2 + ($i$03 * 80048 | 0) + 8 >> 3], +HEAPF64[$markerInfo2 + ($i$03 * 80048 | 0) + 16 >> 3], $pos0, $pos1) | 0) < 0) $j$1 = $j$02; else {
HEAPF64[$markerInfo + ($j$02 << 8) + 56 >> 3] = +HEAPF32[$pos0 >> 2];
HEAPF64[$markerInfo + ($j$02 << 8) + 64 >> 3] = +HEAPF32[$pos1 >> 2];
$26 = $markerInfo + ($j$02 << 8) + 168 | 0;
if ((_arGetLine($markerInfo2 + ($i$03 * 80048 | 0) + 28 | 0, $markerInfo2 + ($i$03 * 80048 | 0) + 40028 | 0, HEAP32[$markerInfo2 + ($i$03 * 80048 | 0) + 24 >> 2] | 0, $markerInfo2 + ($i$03 * 80048 | 0) + 80028 | 0, $arParamLTf, $markerInfo + ($j$02 << 8) + 72 | 0, $26) | 0) < 0) $j$1 = $j$02; else {
$29 = $markerInfo + ($j$02 << 8) + 8 | 0;
$30 = $markerInfo + ($j$02 << 8) + 20 | 0;
$31 = $markerInfo + ($j$02 << 8) + 40 | 0;
$32 = $markerInfo + ($j$02 << 8) + 12 | 0;
$33 = $markerInfo + ($j$02 << 8) + 24 | 0;
$34 = $markerInfo + ($j$02 << 8) + 48 | 0;
switch (_arPattGetIDGlobal($pattHandle, $imageProcMode, $pattDetectMode, $image, $xsize, $ysize, $pixelFormat, $arParamLTf, $26, $pattRatio, $29, $30, $31, $32, $33, $34, $matrixCodeType, $markerInfo + ($j$02 << 8) + 240 | 0, $markerInfo + ($j$02 << 8) + 248 | 0) | 0) {
case 0:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 0;
break;
}
case -1:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 2;
break;
}
case -2:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 3;
break;
}
case -3:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 4;
break;
}
case -4:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 5;
break;
}
case -5:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 9;
break;
}
case -6:
{
HEAP32[$markerInfo + ($j$02 << 8) + 236 >> 2] = 1;
break;
}
default:
{}
}
if ($0) {
HEAP32[$markerInfo + ($j$02 << 8) + 4 >> 2] = HEAP32[$29 >> 2];
HEAP32[$markerInfo + ($j$02 << 8) + 16 >> 2] = HEAP32[$30 >> 2];
HEAPF64[$markerInfo + ($j$02 << 8) + 32 >> 3] = +HEAPF64[$31 >> 3];
} else if ($1) {
HEAP32[$markerInfo + ($j$02 << 8) + 4 >> 2] = HEAP32[$32 >> 2];
HEAP32[$markerInfo + ($j$02 << 8) + 16 >> 2] = HEAP32[$33 >> 2];
HEAPF64[$markerInfo + ($j$02 << 8) + 32 >> 3] = +HEAPF64[$34 >> 3];
}
$j$1 = $j$02 + 1 | 0;
}
}
$i$03 = $i$03 + 1 | 0;
if (($i$03 | 0) >= ($marker2_num | 0)) {
$j$0$lcssa = $j$1;
break;
} else $j$02 = $j$1;
}
} else $j$0$lcssa = 0;
HEAP32[$marker_num >> 2] = $j$0$lcssa;
STACKTOP = sp;
return 0;
}
function _arImageProcLumaHistAndBoxFilterWithBias($ipi, $dataPtr, $boxSize, $bias) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
$boxSize = $boxSize | 0;
$bias = $bias | 0;
var $$0 = 0, $$lcssa = 0, $$pre$phi6Z2D = 0, $$pre$phiZ2D = 0, $0 = 0, $10 = 0, $12 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $20 = 0, $24 = 0, $25 = 0, $26 = 0, $43 = 0, $5 = 0, $50 = 0, $57 = 0, $7 = 0, $count$0$lcssa = 0, $count$015 = 0, $count$110 = 0, $count$2 = 0, $count$3 = 0, $i$020 = 0, $i$18 = 0, $j$021 = 0, $kernel_i$011 = 0, $kernel_j$016 = 0, $val$0$lcssa = 0, $val$014 = 0, $val$19 = 0, $val$2 = 0, $val$3 = 0;
$0 = _arImageProcLumaHist($ipi, $dataPtr) | 0;
do if (($0 | 0) < 0) $$0 = $0; else {
$2 = $ipi + 4 | 0;
if (!(HEAP32[$2 >> 2] | 0)) {
$5 = $ipi + 8 | 0;
$7 = $ipi + 12 | 0;
$10 = _malloc(Math_imul(HEAP32[$7 >> 2] | 0, HEAP32[$5 >> 2] | 0) | 0) | 0;
HEAP32[$2 >> 2] = $10;
if (!$10) {
$$0 = -1;
break;
} else {
$$pre$phi6Z2D = $5;
$$pre$phiZ2D = $7;
}
} else {
$$pre$phi6Z2D = $ipi + 8 | 0;
$$pre$phiZ2D = $ipi + 12 | 0;
}
$12 = $boxSize >> 1;
$13 = 0 - $12 | 0;
$14 = HEAP32[$$pre$phiZ2D >> 2] | 0;
if (($14 | 0) > 0) {
$16 = ($12 | 0) < ($13 | 0);
$17 = ($12 | 0) < ($13 | 0);
$j$021 = 0;
do {
$18 = HEAP32[$$pre$phi6Z2D >> 2] | 0;
if (($18 | 0) > 0) {
$25 = $18;
$i$020 = 0;
do {
if ($16) {
$count$0$lcssa = 0;
$val$0$lcssa = 0;
} else {
$count$015 = 0;
$kernel_j$016 = $13;
$val$014 = 0;
while (1) {
$20 = $kernel_j$016 + $j$021 | 0;
if (($20 | 0) < 0) {
$count$3 = $count$015;
$val$3 = $val$014;
} else if (($20 | 0) < (HEAP32[$$pre$phiZ2D >> 2] | 0)) {
$24 = Math_imul($25, $20) | 0;
if ($17) {
$count$3 = $count$015;
$val$3 = $val$014;
} else {
$count$110 = $count$015;
$kernel_i$011 = $13;
$val$19 = $val$014;
while (1) {
$26 = $kernel_i$011 + $i$020 | 0;
if (($26 | 0) > -1 & ($26 | 0) < ($25 | 0)) {
$count$2 = $count$110 + 1 | 0;
$val$2 = (HEAPU8[(HEAP32[$ipi >> 2] | 0) + ($24 + $26) >> 0] | 0) + $val$19 | 0;
} else {
$count$2 = $count$110;
$val$2 = $val$19;
}
if (($kernel_i$011 | 0) < ($12 | 0)) {
$count$110 = $count$2;
$kernel_i$011 = $kernel_i$011 + 1 | 0;
$val$19 = $val$2;
} else {
$count$3 = $count$2;
$val$3 = $val$2;
break;
}
}
}
} else {
$count$3 = $count$015;
$val$3 = $val$014;
}
if (($kernel_j$016 | 0) < ($12 | 0)) {
$count$015 = $count$3;
$kernel_j$016 = $kernel_j$016 + 1 | 0;
$val$014 = $val$3;
} else {
$count$0$lcssa = $count$3;
$val$0$lcssa = $val$3;
break;
}
}
}
$43 = (Math_imul($25, $j$021) | 0) + $i$020 | 0;
HEAP8[(HEAP32[$2 >> 2] | 0) + $43 >> 0] = ($val$0$lcssa | 0) / ($count$0$lcssa | 0) | 0;
$i$020 = $i$020 + 1 | 0;
$25 = HEAP32[$$pre$phi6Z2D >> 2] | 0;
} while (($i$020 | 0) < ($25 | 0));
}
$j$021 = $j$021 + 1 | 0;
$50 = HEAP32[$$pre$phiZ2D >> 2] | 0;
} while (($j$021 | 0) < ($50 | 0));
$$lcssa = $50;
} else $$lcssa = $14;
if (!$bias) $$0 = 0; else if ((Math_imul($$lcssa, HEAP32[$$pre$phi6Z2D >> 2] | 0) | 0) > 0) {
$i$18 = 0;
do {
$57 = (HEAP32[$2 >> 2] | 0) + $i$18 | 0;
HEAP8[$57 >> 0] = (HEAPU8[$57 >> 0] | 0) + $bias;
$i$18 = $i$18 + 1 | 0;
} while (($i$18 | 0) < (Math_imul(HEAP32[$$pre$phiZ2D >> 2] | 0, HEAP32[$$pre$phi6Z2D >> 2] | 0) | 0));
$$0 = 0;
} else $$0 = 0;
} while (0);
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($this, $0) {
$this = $this | 0;
$0 = $0 | 0;
var $$pre$i$i$i = 0, $$pre$i$i$i2 = 0, $10 = 0, $14 = 0, $17 = 0, $22 = 0, $23 = 0, $26 = 0, $27 = 0, $29 = 0, $30 = 0, $39 = 0, $42 = 0, $47 = 0, $48 = 0, $5 = 0, $53 = 0, $55 = 0, $58 = 0, $62 = 0, $65 = 0, $7 = 0, $70 = 0, $71 = 0, $74 = 0, $75 = 0, $77 = 0, $78 = 0, $87 = 0, $90 = 0, $95 = 0, $96 = 0;
do if (!(HEAP8[$this >> 0] & 1)) {
HEAP8[$this + 1 >> 0] = 0;
HEAP8[$this >> 0] = 0;
} else {
$5 = $this + 8 | 0;
HEAP8[HEAP32[$5 >> 2] >> 0] = 0;
$7 = $this + 4 | 0;
HEAP32[$7 >> 2] = 0;
$$pre$i$i$i = HEAP8[$this >> 0] | 0;
if (!($$pre$i$i$i & 1)) {
$14 = $$pre$i$i$i;
$23 = 10;
} else {
$10 = HEAP32[$this >> 2] | 0;
$14 = $10 & 255;
$23 = ($10 & -2) + -1 | 0;
}
if (!($14 & 1)) {
$17 = ($14 & 255) >>> 1;
if (($14 & 255) < 22) {
$22 = 10;
$42 = $17;
$95 = 1;
} else {
$22 = ($17 + 16 & 240) + -1 | 0;
$42 = $17;
$95 = 1;
}
} else {
$22 = 10;
$42 = 0;
$95 = 0;
}
if (($22 | 0) != ($23 | 0)) {
if (($22 | 0) == 10) {
$29 = $this + 1 | 0;
$30 = HEAP32[$5 >> 2] | 0;
if ($95) {
_memcpy($29 | 0, $30 | 0, (($14 & 255) >>> 1) + 1 | 0) | 0;
_free($30);
} else {
HEAP8[$29 >> 0] = HEAP8[$30 >> 0] | 0;
_free($30);
}
HEAP8[$this >> 0] = $42 << 1;
break;
}
$26 = $22 + 1 | 0;
$27 = _malloc($26) | 0;
if (!($22 >>> 0 <= $23 >>> 0 & ($27 | 0) == 0)) {
if ($95) _memcpy($27 | 0, $this + 1 | 0, (($14 & 255) >>> 1) + 1 | 0) | 0; else {
$39 = HEAP32[$5 >> 2] | 0;
HEAP8[$27 >> 0] = HEAP8[$39 >> 0] | 0;
_free($39);
}
HEAP32[$this >> 2] = $26 | 1;
HEAP32[$7 >> 2] = $42;
HEAP32[$5 >> 2] = $27;
}
}
} while (0);
HEAP32[$this >> 2] = HEAP32[$0 >> 2];
HEAP32[$this + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$this + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
$47 = $this + 12 | 0;
$48 = $0 + 12 | 0;
do if (!(HEAP8[$47 >> 0] & 1)) {
HEAP8[$47 + 1 >> 0] = 0;
HEAP8[$47 >> 0] = 0;
} else {
$53 = $this + 20 | 0;
HEAP8[HEAP32[$53 >> 2] >> 0] = 0;
$55 = $this + 16 | 0;
HEAP32[$55 >> 2] = 0;
$$pre$i$i$i2 = HEAP8[$47 >> 0] | 0;
if (!($$pre$i$i$i2 & 1)) {
$62 = $$pre$i$i$i2;
$71 = 10;
} else {
$58 = HEAP32[$47 >> 2] | 0;
$62 = $58 & 255;
$71 = ($58 & -2) + -1 | 0;
}
if (!($62 & 1)) {
$65 = ($62 & 255) >>> 1;
if (($62 & 255) < 22) {
$70 = 10;
$90 = $65;
$96 = 1;
} else {
$70 = ($65 + 16 & 240) + -1 | 0;
$90 = $65;
$96 = 1;
}
} else {
$70 = 10;
$90 = 0;
$96 = 0;
}
if (($70 | 0) != ($71 | 0)) {
if (($70 | 0) == 10) {
$77 = $47 + 1 | 0;
$78 = HEAP32[$53 >> 2] | 0;
if ($96) {
_memcpy($77 | 0, $78 | 0, (($62 & 255) >>> 1) + 1 | 0) | 0;
_free($78);
} else {
HEAP8[$77 >> 0] = HEAP8[$78 >> 0] | 0;
_free($78);
}
HEAP8[$47 >> 0] = $90 << 1;
break;
}
$74 = $70 + 1 | 0;
$75 = _malloc($74) | 0;
if (!($70 >>> 0 <= $71 >>> 0 & ($75 | 0) == 0)) {
if ($96) _memcpy($75 | 0, $47 + 1 | 0, (($62 & 255) >>> 1) + 1 | 0) | 0; else {
$87 = HEAP32[$53 >> 2] | 0;
HEAP8[$75 >> 0] = HEAP8[$87 >> 0] | 0;
_free($87);
}
HEAP32[$47 >> 2] = $74 | 1;
HEAP32[$55 >> 2] = $90;
HEAP32[$53 >> 2] = $75;
}
}
} while (0);
HEAP32[$47 >> 2] = HEAP32[$48 >> 2];
HEAP32[$47 + 4 >> 2] = HEAP32[$48 + 4 >> 2];
HEAP32[$47 + 8 >> 2] = HEAP32[$48 + 8 >> 2];
HEAP32[$48 >> 2] = 0;
HEAP32[$48 + 4 >> 2] = 0;
HEAP32[$48 + 8 >> 2] = 0;
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__nbc) {
$this = $this | 0;
$__nbc = $__nbc | 0;
var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0;
$0 = $this + 4 | 0;
L1 : do if (!$__nbc) {
$51 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = 0;
if ($51) __ZdlPv($51);
HEAP32[$0 >> 2] = 0;
} else {
$3 = __Znwj($__nbc << 2) | 0;
$4 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = $3;
if ($4) __ZdlPv($4);
HEAP32[$0 >> 2] = $__nbc;
if ($__nbc) {
$__i$039 = 0;
do {
HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0;
$__i$039 = $__i$039 + 1 | 0;
} while (($__i$039 | 0) != ($__nbc | 0));
}
$9 = $this + 8 | 0;
$10 = HEAP32[$9 >> 2] | 0;
if ($10) {
$13 = HEAP32[$10 + 4 >> 2] | 0;
$14 = $__nbc + -1 | 0;
$16 = ($14 & $__nbc | 0) == 0;
if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0;
HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9;
$__cp$0252833 = HEAP32[$10 >> 2] | 0;
if ($__cp$0252833) {
$$in = $10;
$__cp$0$in2736 = $10;
$__cp$0252837 = $__cp$0252833;
$__phash$0$ph$ph35 = $21;
while (1) {
$$in41 = $$in;
$__cp$0$in30 = $__cp$0$in2736;
$__cp$02531 = $__cp$0252837;
L21 : while (1) {
$__cp$026 = $__cp$02531;
while (1) {
$25 = HEAP32[$__cp$026 + 4 >> 2] | 0;
if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0;
if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) {
$__cp$026$lcssa = $__cp$026;
break;
}
$31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0;
if (!(HEAP32[$31 >> 2] | 0)) {
$$in41$lcssa = $$in41;
$$lcssa56 = $29;
$$lcssa58 = $31;
$__cp$026$lcssa53 = $__cp$026;
break L21;
}
$34 = $__cp$026 + 8 | 0;
$__np$0 = $__cp$026;
while (1) {
$36 = HEAP32[$__np$0 >> 2] | 0;
if (!$36) {
$$lcssa = $36;
$__np$0$lcssa = $__np$0;
break;
}
if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else {
$$lcssa = $36;
$__np$0$lcssa = $__np$0;
break;
}
}
HEAP32[$$in41 >> 2] = $$lcssa;
HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2];
HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026;
$__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0;
if (!$__cp$026) break L1;
}
$__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0;
if (!$__cp$025) break L1; else {
$$in41 = $__cp$026$lcssa;
$__cp$0$in30 = $__cp$026$lcssa;
$__cp$02531 = $__cp$025;
}
}
HEAP32[$$lcssa58 >> 2] = $$in41$lcssa;
$__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0;
if (!$__cp$02528) break; else {
$$in = $__cp$026$lcssa53;
$__cp$0$in2736 = $__cp$026$lcssa53;
$__cp$0252837 = $__cp$02528;
$__phash$0$ph$ph35 = $$lcssa56;
}
}
}
}
} while (0);
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__nbc) {
$this = $this | 0;
$__nbc = $__nbc | 0;
var $$in = 0, $$in41 = 0, $$in41$lcssa = 0, $$lcssa = 0, $$lcssa56 = 0, $$lcssa58 = 0, $0 = 0, $10 = 0, $13 = 0, $14 = 0, $16 = 0, $21 = 0, $25 = 0, $29 = 0, $3 = 0, $31 = 0, $34 = 0, $36 = 0, $4 = 0, $51 = 0, $9 = 0, $__cp$0$in2736 = 0, $__cp$0$in30 = 0, $__cp$025 = 0, $__cp$02528 = 0, $__cp$0252833 = 0, $__cp$0252837 = 0, $__cp$02531 = 0, $__cp$026 = 0, $__cp$026$lcssa = 0, $__cp$026$lcssa53 = 0, $__i$039 = 0, $__np$0 = 0, $__np$0$lcssa = 0, $__phash$0$ph$ph35 = 0;
$0 = $this + 4 | 0;
L1 : do if (!$__nbc) {
$51 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = 0;
if ($51) __ZdlPv($51);
HEAP32[$0 >> 2] = 0;
} else {
$3 = __Znwj($__nbc << 2) | 0;
$4 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = $3;
if ($4) __ZdlPv($4);
HEAP32[$0 >> 2] = $__nbc;
if ($__nbc) {
$__i$039 = 0;
do {
HEAP32[(HEAP32[$this >> 2] | 0) + ($__i$039 << 2) >> 2] = 0;
$__i$039 = $__i$039 + 1 | 0;
} while (($__i$039 | 0) != ($__nbc | 0));
}
$9 = $this + 8 | 0;
$10 = HEAP32[$9 >> 2] | 0;
if ($10) {
$13 = HEAP32[$10 + 4 >> 2] | 0;
$14 = $__nbc + -1 | 0;
$16 = ($14 & $__nbc | 0) == 0;
if ($16) $21 = $13 & $14; else $21 = ($13 >>> 0) % ($__nbc >>> 0) | 0;
HEAP32[(HEAP32[$this >> 2] | 0) + ($21 << 2) >> 2] = $9;
$__cp$0252833 = HEAP32[$10 >> 2] | 0;
if ($__cp$0252833) {
$$in = $10;
$__cp$0$in2736 = $10;
$__cp$0252837 = $__cp$0252833;
$__phash$0$ph$ph35 = $21;
while (1) {
$$in41 = $$in;
$__cp$0$in30 = $__cp$0$in2736;
$__cp$02531 = $__cp$0252837;
L21 : while (1) {
$__cp$026 = $__cp$02531;
while (1) {
$25 = HEAP32[$__cp$026 + 4 >> 2] | 0;
if ($16) $29 = $25 & $14; else $29 = ($25 >>> 0) % ($__nbc >>> 0) | 0;
if (($29 | 0) == ($__phash$0$ph$ph35 | 0)) {
$__cp$026$lcssa = $__cp$026;
break;
}
$31 = (HEAP32[$this >> 2] | 0) + ($29 << 2) | 0;
if (!(HEAP32[$31 >> 2] | 0)) {
$$in41$lcssa = $$in41;
$$lcssa56 = $29;
$$lcssa58 = $31;
$__cp$026$lcssa53 = $__cp$026;
break L21;
}
$34 = $__cp$026 + 8 | 0;
$__np$0 = $__cp$026;
while (1) {
$36 = HEAP32[$__np$0 >> 2] | 0;
if (!$36) {
$$lcssa = $36;
$__np$0$lcssa = $__np$0;
break;
}
if ((HEAP32[$34 >> 2] | 0) == (HEAP32[$36 + 8 >> 2] | 0)) $__np$0 = $36; else {
$$lcssa = $36;
$__np$0$lcssa = $__np$0;
break;
}
}
HEAP32[$$in41 >> 2] = $$lcssa;
HEAP32[$__np$0$lcssa >> 2] = HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2];
HEAP32[HEAP32[(HEAP32[$this >> 2] | 0) + ($29 << 2) >> 2] >> 2] = $__cp$026;
$__cp$026 = HEAP32[$__cp$0$in30 >> 2] | 0;
if (!$__cp$026) break L1;
}
$__cp$025 = HEAP32[$__cp$026$lcssa >> 2] | 0;
if (!$__cp$025) break L1; else {
$$in41 = $__cp$026$lcssa;
$__cp$0$in30 = $__cp$026$lcssa;
$__cp$02531 = $__cp$025;
}
}
HEAP32[$$lcssa58 >> 2] = $$in41$lcssa;
$__cp$02528 = HEAP32[$__cp$026$lcssa53 >> 2] | 0;
if (!$__cp$02528) break; else {
$$in = $__cp$026$lcssa53;
$__cp$0$in2736 = $__cp$026$lcssa53;
$__cp$0252837 = $__cp$02528;
$__phash$0$ph$ph35 = $$lcssa56;
}
}
}
}
} while (0);
return;
}
function _arglCameraFrustum($cparam, $focalmin, $focalmax, $m_projection) {
$cparam = $cparam | 0;
$focalmin = +$focalmin;
$focalmax = +$focalmax;
$m_projection = $m_projection | 0;
var $0 = 0, $11 = 0, $17 = 0, $2 = 0, $23 = 0, $29 = 0, $33 = 0.0, $50 = 0.0, $63 = 0, $7 = 0.0, $75 = 0, $77 = 0.0, $84 = 0, $88 = 0.0, $90 = 0.0, $92 = 0.0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0.0, $98 = 0.0, $i$111 = 0, $i$29 = 0, $icpara = 0, $j$18 = 0, $p = 0, $q = 0, $trans = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 400 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$icpara = sp + 296 | 0;
$trans = sp + 200 | 0;
$p = sp + 128 | 0;
$q = sp;
$0 = HEAP32[$cparam >> 2] | 0;
$2 = HEAP32[$cparam + 4 >> 2] | 0;
if ((_arParamDecompMat($cparam + 8 | 0, $icpara, $trans) | 0) < 0) _arLog(3, 6024, sp + 392 | 0); else {
$7 = +($2 + -1 | 0);
$11 = $icpara + 32 | 0;
HEAPF64[$11 >> 3] = $7 * +HEAPF64[$icpara + 64 >> 3] - +HEAPF64[$11 >> 3];
$17 = $icpara + 40 | 0;
HEAPF64[$17 >> 3] = $7 * +HEAPF64[$icpara + 72 >> 3] - +HEAPF64[$17 >> 3];
$23 = $icpara + 48 | 0;
HEAPF64[$23 >> 3] = $7 * +HEAPF64[$icpara + 80 >> 3] - +HEAPF64[$23 >> 3];
$29 = $icpara + 56 | 0;
HEAPF64[$29 >> 3] = $7 * +HEAPF64[$icpara + 88 >> 3] - +HEAPF64[$29 >> 3];
$33 = +HEAPF64[$icpara + 80 >> 3];
$i$111 = 0;
do {
HEAPF64[$p + ($i$111 * 24 | 0) >> 3] = +HEAPF64[$icpara + ($i$111 << 5) >> 3] / $33;
HEAPF64[$p + ($i$111 * 24 | 0) + 8 >> 3] = +HEAPF64[$icpara + ($i$111 << 5) + 8 >> 3] / $33;
HEAPF64[$p + ($i$111 * 24 | 0) + 16 >> 3] = +HEAPF64[$icpara + ($i$111 << 5) + 16 >> 3] / $33;
$i$111 = $i$111 + 1 | 0;
} while (($i$111 | 0) != 3);
$50 = +($0 + -1 | 0);
HEAPF64[$q >> 3] = +HEAPF64[$p >> 3] * 2.0 / $50;
HEAPF64[$q + 8 >> 3] = +HEAPF64[$p + 8 >> 3] * 2.0 / $50;
HEAPF64[$q + 16 >> 3] = +HEAPF64[$p + 16 >> 3] * 2.0 / $50 + -1.0;
$63 = $q + 24 | 0;
HEAP32[$63 >> 2] = 0;
HEAP32[$63 + 4 >> 2] = 0;
HEAP32[$63 + 8 >> 2] = 0;
HEAP32[$63 + 12 >> 2] = 0;
HEAPF64[$q + 40 >> 3] = +HEAPF64[$p + 32 >> 3] * 2.0 / $7;
HEAPF64[$q + 48 >> 3] = +HEAPF64[$p + 40 >> 3] * 2.0 / $7 + -1.0;
$75 = $q + 56 | 0;
$77 = $focalmax - $focalmin;
HEAP32[$75 >> 2] = 0;
HEAP32[$75 + 4 >> 2] = 0;
HEAP32[$75 + 8 >> 2] = 0;
HEAP32[$75 + 12 >> 2] = 0;
HEAP32[$75 + 16 >> 2] = 0;
HEAP32[$75 + 20 >> 2] = 0;
HEAPF64[$q + 80 >> 3] = ($focalmin + $focalmax) / $77;
HEAPF64[$q + 88 >> 3] = $focalmax * -2.0 * $focalmin / $77;
$84 = $q + 96 | 0;
HEAP32[$84 >> 2] = 0;
HEAP32[$84 + 4 >> 2] = 0;
HEAP32[$84 + 8 >> 2] = 0;
HEAP32[$84 + 12 >> 2] = 0;
HEAPF64[$q + 112 >> 3] = 1.0;
HEAPF64[$q + 120 >> 3] = 0.0;
$88 = +HEAPF64[$trans + 24 >> 3];
$90 = +HEAPF64[$trans + 56 >> 3];
$92 = +HEAPF64[$trans + 88 >> 3];
$i$29 = 0;
do {
$94 = +HEAPF64[$q + ($i$29 << 5) >> 3];
$95 = $q + ($i$29 << 5) + 8 | 0;
$96 = $q + ($i$29 << 5) + 16 | 0;
$97 = +HEAPF64[$95 >> 3];
$98 = +HEAPF64[$96 >> 3];
$j$18 = 0;
do {
HEAPF64[$m_projection + (($j$18 << 2) + $i$29 << 3) >> 3] = $94 * +HEAPF64[$trans + ($j$18 << 3) >> 3] + $97 * +HEAPF64[$trans + 32 + ($j$18 << 3) >> 3] + $98 * +HEAPF64[$trans + 64 + ($j$18 << 3) >> 3];
$j$18 = $j$18 + 1 | 0;
} while (($j$18 | 0) != 3);
HEAPF64[$m_projection + ($i$29 + 12 << 3) >> 3] = +HEAPF64[$q + ($i$29 << 5) + 24 >> 3] + ($94 * $88 + +HEAPF64[$95 >> 3] * $90 + +HEAPF64[$96 >> 3] * $92);
$i$29 = $i$29 + 1 | 0;
} while (($i$29 | 0) != 4);
}
STACKTOP = sp;
return;
}
function _arParamIdeal2Observ($dist_factor, $ix, $iy, $ox, $oy, $dist_function_version) {
$dist_factor = $dist_factor | 0;
$ix = +$ix;
$iy = +$iy;
$ox = $ox | 0;
$oy = $oy | 0;
$dist_function_version = $dist_function_version | 0;
var $$0 = 0, $10 = 0.0, $104 = 0.0, $116 = 0.0, $12 = 0.0, $122 = 0.0, $125 = 0.0, $126 = 0.0, $127 = 0, $130 = 0.0, $14 = 0.0, $141 = 0.0, $16 = 0.0, $19 = 0.0, $22 = 0.0, $25 = 0.0, $30 = 0.0, $4 = 0.0, $55 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0.0, $60 = 0, $63 = 0.0, $71 = 0.0, $8 = 0.0, $83 = 0.0, $90 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0, $98 = 0.0, $storemerge = 0.0, $storemerge6 = 0.0, $storemerge7 = 0.0;
switch ($dist_function_version | 0) {
case 4:
{
$4 = +HEAPF64[$dist_factor + 16 >> 3];
$6 = +HEAPF64[$dist_factor + 24 >> 3];
$8 = +HEAPF64[$dist_factor + 32 >> 3];
$10 = +HEAPF64[$dist_factor + 40 >> 3];
$12 = +HEAPF64[$dist_factor + 48 >> 3];
$14 = +HEAPF64[$dist_factor + 56 >> 3];
$16 = +HEAPF64[$dist_factor + 64 >> 3];
$19 = ($ix - $12) * $16 / $8;
$22 = ($iy - $14) * $16 / $10;
$25 = $19 * $19 + $22 * $22;
$30 = +HEAPF64[$dist_factor >> 3] * $25 + 1.0 + $25 * (+HEAPF64[$dist_factor + 8 >> 3] * $25);
HEAPF64[$ox >> 3] = $12 + $8 * ($6 * ($19 * ($19 * 2.0) + $25) + ($4 * 2.0 * $19 * $22 + $19 * $30));
HEAPF64[$oy >> 3] = $14 + $10 * ($6 * 2.0 * $19 * $22 + ($4 * ($25 + $22 * ($22 * 2.0)) + $22 * $30));
$$0 = 0;
break;
}
case 3:
{
$55 = +HEAPF64[$dist_factor >> 3];
$58 = +HEAPF64[$dist_factor + 16 >> 3];
$59 = ($ix - $55) * $58;
$60 = $dist_factor + 8 | 0;
$63 = $58 * ($iy - +HEAPF64[$60 >> 3]);
if ($59 == 0.0 & $63 == 0.0) {
HEAPF64[$ox >> 3] = $55;
$storemerge7 = +HEAPF64[$60 >> 3];
} else {
$71 = $59 * $59 + $63 * $63;
$83 = 1.0 - $71 * (+HEAPF64[$dist_factor + 32 >> 3] / 1.0e8) - $71 * ($71 * (+HEAPF64[$dist_factor + 40 >> 3] / 1.0e8 / 1.0e5));
HEAPF64[$ox >> 3] = $55 + +HEAPF64[$dist_factor + 24 >> 3] * ($59 * $83);
$storemerge7 = +HEAPF64[$60 >> 3] + $63 * $83;
}
HEAPF64[$oy >> 3] = $storemerge7;
$$0 = 0;
break;
}
case 2:
{
$90 = +HEAPF64[$dist_factor >> 3];
$93 = +HEAPF64[$dist_factor + 16 >> 3];
$94 = ($ix - $90) * $93;
$95 = $dist_factor + 8 | 0;
$98 = $93 * ($iy - +HEAPF64[$95 >> 3]);
if ($94 == 0.0 & $98 == 0.0) {
HEAPF64[$ox >> 3] = $90;
$storemerge6 = +HEAPF64[$95 >> 3];
} else {
$104 = $94 * $94 + $98 * $98;
$116 = 1.0 - $104 * (+HEAPF64[$dist_factor + 24 >> 3] / 1.0e8) - $104 * ($104 * (+HEAPF64[$dist_factor + 32 >> 3] / 1.0e8 / 1.0e5));
HEAPF64[$ox >> 3] = $90 + $94 * $116;
$storemerge6 = +HEAPF64[$95 >> 3] + $98 * $116;
}
HEAPF64[$oy >> 3] = $storemerge6;
$$0 = 0;
break;
}
case 1:
{
$122 = +HEAPF64[$dist_factor >> 3];
$125 = +HEAPF64[$dist_factor + 16 >> 3];
$126 = ($ix - $122) * $125;
$127 = $dist_factor + 8 | 0;
$130 = $125 * ($iy - +HEAPF64[$127 >> 3]);
if ($126 == 0.0 & $130 == 0.0) {
HEAPF64[$ox >> 3] = $122;
$storemerge = +HEAPF64[$127 >> 3];
} else {
$141 = 1.0 - ($126 * $126 + $130 * $130) * (+HEAPF64[$dist_factor + 24 >> 3] / 1.0e8);
HEAPF64[$ox >> 3] = $122 + $126 * $141;
$storemerge = +HEAPF64[$127 >> 3] + $130 * $141;
}
HEAPF64[$oy >> 3] = $storemerge;
$$0 = 0;
break;
}
default:
$$0 = -1;
}
return $$0 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($agg$result, $this, $__nd) {
$agg$result = $agg$result | 0;
$this = $this | 0;
$__nd = $__nd | 0;
var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0;
$1 = HEAP32[$__nd + 8 >> 2] | 0;
$2 = $__nd + 4 | 0;
HEAP32[$2 >> 2] = $1;
$3 = $this + 4 | 0;
$4 = HEAP32[$3 >> 2] | 0;
$5 = ($4 | 0) == 0;
L1 : do if ($5) {
$__chash$0 = 0;
label = 12;
} else {
$6 = $4 + -1 | 0;
$8 = ($6 & $4 | 0) == 0;
if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0;
$14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0;
if (!$14) {
$__chash$0 = $13;
label = 12;
} else {
$$pn = $14;
while (1) {
$__ndptr$0 = HEAP32[$$pn >> 2] | 0;
if (!$__ndptr$0) {
$__chash$0 = $13;
label = 12;
break L1;
}
$18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0;
if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0;
if (($22 | 0) != ($13 | 0)) {
$__chash$0 = $13;
label = 12;
break L1;
}
if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) {
$81 = 0;
$__ndptr$1 = $__ndptr$0;
break;
} else $$pn = $__ndptr$0;
}
}
} while (0);
if ((label | 0) == 12) {
$26 = $this + 12 | 0;
$29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0);
$32 = +HEAPF32[$this + 16 >> 2];
do if ($5 | $29 > +($4 >>> 0) * $32) {
if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0;
$43 = ($41 & 1 | $4 << 1) ^ 1;
$46 = ~~+Math_ceil(+($29 / $32)) >>> 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43);
$49 = HEAP32[$3 >> 2] | 0;
$50 = HEAP32[$2 >> 2] | 0;
$51 = $49 + -1 | 0;
if (!($51 & $49)) {
$__bc$0 = $49;
$__chash$1 = $51 & $50;
break;
} else {
$__bc$0 = $49;
$__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0;
break;
}
} else {
$__bc$0 = $4;
$__chash$1 = $__chash$0;
} while (0);
$58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0;
if (!$58) {
$60 = $this + 8 | 0;
HEAP32[$__nd >> 2] = HEAP32[$60 >> 2];
HEAP32[$60 >> 2] = $__nd;
HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60;
$64 = HEAP32[$__nd >> 2] | 0;
if ($64) {
$67 = HEAP32[$64 + 4 >> 2] | 0;
$68 = $__bc$0 + -1 | 0;
if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0;
HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd;
}
} else {
HEAP32[$__nd >> 2] = HEAP32[$58 >> 2];
HEAP32[$58 >> 2] = $__nd;
}
HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1;
$81 = 1;
$__ndptr$1 = $__nd;
}
HEAP32[$agg$result >> 2] = $__ndptr$1;
HEAP8[$agg$result + 4 >> 0] = $81;
return;
}
function _scanexp($f, $pok) {
$f = $f | 0;
$pok = $pok | 0;
var $$lcssa22 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $20 = 0, $35 = 0, $36 = 0, $48 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $59 = 0, $61 = 0, $62 = 0, $63 = 0, $78 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $98 = 0, $99 = 0, $c$0 = 0, $c$1$be = 0, $c$1$be$lcssa = 0, $c$112 = 0, $c$2$be = 0, $c$2$lcssa = 0, $c$27 = 0, $c$3$be = 0, $neg$0 = 0, $x$013 = 0;
$0 = $f + 4 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = $f + 100 | 0;
if ($1 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $1 + 1;
$10 = HEAPU8[$1 >> 0] | 0;
} else $10 = ___shgetc($f) | 0;
switch ($10 | 0) {
case 43:
case 45:
{
$11 = ($10 | 0) == 45 & 1;
$12 = HEAP32[$0 >> 2] | 0;
if ($12 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $12 + 1;
$20 = HEAPU8[$12 >> 0] | 0;
} else $20 = ___shgetc($f) | 0;
if (($pok | 0) != 0 & ($20 + -48 | 0) >>> 0 > 9) if (!(HEAP32[$2 >> 2] | 0)) {
$c$0 = $20;
$neg$0 = $11;
} else {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$c$0 = $20;
$neg$0 = $11;
} else {
$c$0 = $20;
$neg$0 = $11;
}
break;
}
default:
{
$c$0 = $10;
$neg$0 = 0;
}
}
if (($c$0 + -48 | 0) >>> 0 > 9) if (!(HEAP32[$2 >> 2] | 0)) {
$98 = -2147483648;
$99 = 0;
} else {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$98 = -2147483648;
$99 = 0;
} else {
$c$112 = $c$0;
$x$013 = 0;
while (1) {
$35 = $c$112 + -48 + ($x$013 * 10 | 0) | 0;
$36 = HEAP32[$0 >> 2] | 0;
if ($36 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $36 + 1;
$c$1$be = HEAPU8[$36 >> 0] | 0;
} else $c$1$be = ___shgetc($f) | 0;
if (($c$1$be + -48 | 0) >>> 0 < 10 & ($35 | 0) < 214748364) {
$c$112 = $c$1$be;
$x$013 = $35;
} else {
$$lcssa22 = $35;
$c$1$be$lcssa = $c$1$be;
break;
}
}
$48 = (($$lcssa22 | 0) < 0) << 31 >> 31;
if (($c$1$be$lcssa + -48 | 0) >>> 0 < 10) {
$53 = $$lcssa22;
$54 = $48;
$c$27 = $c$1$be$lcssa;
while (1) {
$55 = ___muldi3($53 | 0, $54 | 0, 10, 0) | 0;
$56 = tempRet0;
$59 = _i64Add($c$27 | 0, (($c$27 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0;
$61 = _i64Add($59 | 0, tempRet0 | 0, $55 | 0, $56 | 0) | 0;
$62 = tempRet0;
$63 = HEAP32[$0 >> 2] | 0;
if ($63 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $63 + 1;
$c$2$be = HEAPU8[$63 >> 0] | 0;
} else $c$2$be = ___shgetc($f) | 0;
if (($c$2$be + -48 | 0) >>> 0 < 10 & (($62 | 0) < 21474836 | ($62 | 0) == 21474836 & $61 >>> 0 < 2061584302)) {
$53 = $61;
$54 = $62;
$c$27 = $c$2$be;
} else {
$92 = $61;
$93 = $62;
$c$2$lcssa = $c$2$be;
break;
}
}
} else {
$92 = $$lcssa22;
$93 = $48;
$c$2$lcssa = $c$1$be$lcssa;
}
if (($c$2$lcssa + -48 | 0) >>> 0 < 10) do {
$78 = HEAP32[$0 >> 2] | 0;
if ($78 >>> 0 < (HEAP32[$2 >> 2] | 0) >>> 0) {
HEAP32[$0 >> 2] = $78 + 1;
$c$3$be = HEAPU8[$78 >> 0] | 0;
} else $c$3$be = ___shgetc($f) | 0;
} while (($c$3$be + -48 | 0) >>> 0 < 10);
if (HEAP32[$2 >> 2] | 0) HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + -1;
$91 = ($neg$0 | 0) != 0;
$94 = _i64Subtract(0, 0, $92 | 0, $93 | 0) | 0;
$98 = $91 ? tempRet0 : $93;
$99 = $91 ? $94 : $92;
}
tempRet0 = $98;
return $99 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($agg$result, $this, $__nd) {
$agg$result = $agg$result | 0;
$this = $this | 0;
$__nd = $__nd | 0;
var $$pn = 0, $1 = 0, $13 = 0, $14 = 0, $18 = 0, $2 = 0, $22 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $41 = 0, $43 = 0, $46 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $58 = 0, $6 = 0, $60 = 0, $64 = 0, $67 = 0, $68 = 0, $75 = 0, $8 = 0, $81 = 0, $__bc$0 = 0, $__chash$0 = 0, $__chash$1 = 0, $__ndptr$0 = 0, $__ndptr$1 = 0, label = 0;
$1 = HEAP32[$__nd + 8 >> 2] | 0;
$2 = $__nd + 4 | 0;
HEAP32[$2 >> 2] = $1;
$3 = $this + 4 | 0;
$4 = HEAP32[$3 >> 2] | 0;
$5 = ($4 | 0) == 0;
L1 : do if ($5) {
$__chash$0 = 0;
label = 12;
} else {
$6 = $4 + -1 | 0;
$8 = ($6 & $4 | 0) == 0;
if ($8) $13 = $6 & $1; else $13 = ($1 >>> 0) % ($4 >>> 0) | 0;
$14 = HEAP32[(HEAP32[$this >> 2] | 0) + ($13 << 2) >> 2] | 0;
if (!$14) {
$__chash$0 = $13;
label = 12;
} else {
$$pn = $14;
while (1) {
$__ndptr$0 = HEAP32[$$pn >> 2] | 0;
if (!$__ndptr$0) {
$__chash$0 = $13;
label = 12;
break L1;
}
$18 = HEAP32[$__ndptr$0 + 4 >> 2] | 0;
if ($8) $22 = $18 & $6; else $22 = ($18 >>> 0) % ($4 >>> 0) | 0;
if (($22 | 0) != ($13 | 0)) {
$__chash$0 = $13;
label = 12;
break L1;
}
if ((HEAP32[$__ndptr$0 + 8 >> 2] | 0) == ($1 | 0)) {
$81 = 0;
$__ndptr$1 = $__ndptr$0;
break;
} else $$pn = $__ndptr$0;
}
}
} while (0);
if ((label | 0) == 12) {
$26 = $this + 12 | 0;
$29 = +(((HEAP32[$26 >> 2] | 0) + 1 | 0) >>> 0);
$32 = +HEAPF32[$this + 16 >> 2];
do if ($5 | $29 > +($4 >>> 0) * $32) {
if ($4 >>> 0 > 2) $41 = ($4 + -1 & $4 | 0) == 0; else $41 = 0;
$43 = ($41 & 1 | $4 << 1) ^ 1;
$46 = ~~+Math_ceil(+($29 / $32)) >>> 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $43 >>> 0 < $46 >>> 0 ? $46 : $43);
$49 = HEAP32[$3 >> 2] | 0;
$50 = HEAP32[$2 >> 2] | 0;
$51 = $49 + -1 | 0;
if (!($51 & $49)) {
$__bc$0 = $49;
$__chash$1 = $51 & $50;
break;
} else {
$__bc$0 = $49;
$__chash$1 = ($50 >>> 0) % ($49 >>> 0) | 0;
break;
}
} else {
$__bc$0 = $4;
$__chash$1 = $__chash$0;
} while (0);
$58 = HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] | 0;
if (!$58) {
$60 = $this + 8 | 0;
HEAP32[$__nd >> 2] = HEAP32[$60 >> 2];
HEAP32[$60 >> 2] = $__nd;
HEAP32[(HEAP32[$this >> 2] | 0) + ($__chash$1 << 2) >> 2] = $60;
$64 = HEAP32[$__nd >> 2] | 0;
if ($64) {
$67 = HEAP32[$64 + 4 >> 2] | 0;
$68 = $__bc$0 + -1 | 0;
if (!($68 & $__bc$0)) $75 = $67 & $68; else $75 = ($67 >>> 0) % ($__bc$0 >>> 0) | 0;
HEAP32[(HEAP32[$this >> 2] | 0) + ($75 << 2) >> 2] = $__nd;
}
} else {
HEAP32[$__nd >> 2] = HEAP32[$58 >> 2];
HEAP32[$58 >> 2] = $__nd;
}
HEAP32[$26 >> 2] = (HEAP32[$26 >> 2] | 0) + 1;
$81 = 1;
$__ndptr$1 = $__nd;
}
HEAP32[$agg$result >> 2] = $__ndptr$1;
HEAP8[$agg$result + 4 >> 0] = $81;
return;
}
function _arGetLine($x_coord, $y_coord, $coord_num, $vertex, $paramLTf, $line, $v) {
$x_coord = $x_coord | 0;
$y_coord = $y_coord | 0;
$coord_num = $coord_num | 0;
$vertex = $vertex | 0;
$paramLTf = $paramLTf | 0;
$line = $line | 0;
$v = $v | 0;
var $$0 = 0, $0 = 0, $1 = 0, $12 = 0.0, $15 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $23 = 0, $34 = 0, $35 = 0, $45 = 0, $47 = 0.0, $5 = 0, $50 = 0.0, $52 = 0, $63 = 0, $64 = 0, $67 = 0.0, $69 = 0, $7 = 0, $72 = 0.0, $74 = 0.0, $77 = 0, $80 = 0, $97 = 0, $i$011 = 0, $i$19 = 0, $j$010 = 0, $m0 = 0, $m1 = 0, label = 0, sp = 0, $i$011$looptemp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$m0 = sp + 4 | 0;
$m1 = sp;
$0 = _arVecAlloc(2) | 0;
$1 = _arVecAlloc(2) | 0;
$2 = _arMatrixAlloc(2, 2) | 0;
$i$011 = 0;
L1 : while (1) {
$i$011$looptemp = $i$011;
$i$011 = $i$011 + 1 | 0;
$5 = HEAP32[$vertex + ($i$011 << 2) >> 2] | 0;
$7 = HEAP32[$vertex + ($i$011$looptemp << 2) >> 2] | 0;
$12 = +($5 + 1 - $7 | 0) * .05 + .5;
$15 = ~~(+($7 | 0) + $12);
$19 = ~~(+($5 | 0) - $12) - $15 | 0;
$20 = $19 + 1 | 0;
$21 = _arMatrixAlloc($20, 2) | 0;
if (($19 | 0) > -1) {
$j$010 = 0;
do {
$23 = $j$010 + $15 | 0;
if ((_arParamObserv2IdealLTf($paramLTf, +(HEAP32[$x_coord + ($23 << 2) >> 2] | 0), +(HEAP32[$y_coord + ($23 << 2) >> 2] | 0), $m0, $m1) | 0) < 0) {
$97 = $21;
label = 10;
break L1;
}
$34 = $j$010 << 1;
$35 = HEAP32[$21 >> 2] | 0;
HEAPF64[$35 + ($34 << 3) >> 3] = +HEAPF32[$m0 >> 2];
HEAPF64[$35 + (($34 | 1) << 3) >> 3] = +HEAPF32[$m1 >> 2];
$j$010 = $j$010 + 1 | 0;
} while (($j$010 | 0) < ($20 | 0));
}
if ((_arMatrixPCA($21, $2, $0, $1) | 0) < 0) {
$97 = $21;
label = 10;
break;
}
$45 = HEAP32[$2 >> 2] | 0;
$47 = +HEAPF64[$45 + 8 >> 3];
HEAPF64[$line + ($i$011$looptemp * 24 | 0) >> 3] = $47;
$50 = -+HEAPF64[$45 >> 3];
HEAPF64[$line + ($i$011$looptemp * 24 | 0) + 8 >> 3] = $50;
$52 = HEAP32[$1 >> 2] | 0;
HEAPF64[$line + ($i$011$looptemp * 24 | 0) + 16 >> 3] = -($47 * +HEAPF64[$52 >> 3] + +HEAPF64[$52 + 8 >> 3] * $50);
_arMatrixFree($21) | 0;
if (($i$011 | 0) >= 4) {
label = 7;
break;
}
}
L9 : do if ((label | 0) == 7) {
_arMatrixFree($2) | 0;
_arVecFree($1) | 0;
_arVecFree($0) | 0;
$i$19 = 0;
while (1) {
$63 = ($i$19 + 3 | 0) % 4 | 0;
$64 = $line + ($63 * 24 | 0) | 0;
$67 = +HEAPF64[$line + ($i$19 * 24 | 0) + 8 >> 3];
$69 = $line + ($i$19 * 24 | 0) | 0;
$72 = +HEAPF64[$line + ($63 * 24 | 0) + 8 >> 3];
$74 = +HEAPF64[$64 >> 3] * $67 - +HEAPF64[$69 >> 3] * $72;
if (+Math_abs(+$74) < .0001) {
$$0 = -1;
break L9;
}
$77 = $line + ($i$19 * 24 | 0) + 16 | 0;
$80 = $line + ($63 * 24 | 0) + 16 | 0;
HEAPF64[$v + ($i$19 << 4) >> 3] = ($72 * +HEAPF64[$77 >> 3] - $67 * +HEAPF64[$80 >> 3]) / $74;
HEAPF64[$v + ($i$19 << 4) + 8 >> 3] = (+HEAPF64[$69 >> 3] * +HEAPF64[$80 >> 3] - +HEAPF64[$64 >> 3] * +HEAPF64[$77 >> 3]) / $74;
$i$19 = $i$19 + 1 | 0;
if (($i$19 | 0) >= 4) {
$$0 = 0;
break;
}
}
} else if ((label | 0) == 10) {
_arMatrixFree($97) | 0;
_arMatrixFree($2) | 0;
_arVecFree($1) | 0;
_arVecFree($0) | 0;
$$0 = -1;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function ___stpncpy($d, $s, $n) {
$d = $d | 0;
$s = $s | 0;
$n = $n | 0;
var $$0$lcssa = 0, $$0$lcssa60 = 0, $$031 = 0, $$04$lcssa = 0, $$04$lcssa61 = 0, $$0430 = 0, $$06$lcssa = 0, $$06$lcssa62 = 0, $$0629 = 0, $$1$lcssa = 0, $$117 = 0, $$15$ph = 0, $$1511 = 0, $$17$ph = 0, $$1710 = 0, $$2$ph = 0, $$212 = 0, $$28 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $16 = 0, $20 = 0, $26 = 0, $27 = 0, $28 = 0, $31 = 0, $35 = 0, $7 = 0, $8 = 0, $wd$0$lcssa = 0, $wd$018 = 0, $ws$0$lcssa = 0, $ws$019 = 0, label = 0;
$0 = $s;
do if (!(($0 ^ $d) & 3)) {
$7 = ($n | 0) != 0;
L3 : do if ($7 & ($0 & 3 | 0) != 0) {
$$031 = $n;
$$0430 = $s;
$$0629 = $d;
while (1) {
$8 = HEAP8[$$0430 >> 0] | 0;
HEAP8[$$0629 >> 0] = $8;
if (!($8 << 24 >> 24)) {
$$0$lcssa60 = $$031;
$$04$lcssa61 = $$0430;
$$06$lcssa62 = $$0629;
break L3;
}
$10 = $$031 + -1 | 0;
$11 = $$0430 + 1 | 0;
$12 = $$0629 + 1 | 0;
$16 = ($10 | 0) != 0;
if ($16 & ($11 & 3 | 0) != 0) {
$$031 = $10;
$$0430 = $11;
$$0629 = $12;
} else {
$$0$lcssa = $10;
$$04$lcssa = $11;
$$06$lcssa = $12;
$$lcssa = $16;
label = 5;
break;
}
}
} else {
$$0$lcssa = $n;
$$04$lcssa = $s;
$$06$lcssa = $d;
$$lcssa = $7;
label = 5;
} while (0);
if ((label | 0) == 5) if ($$lcssa) {
$$0$lcssa60 = $$0$lcssa;
$$04$lcssa61 = $$04$lcssa;
$$06$lcssa62 = $$06$lcssa;
} else {
$$28 = $$06$lcssa;
$$3 = 0;
break;
}
if (!(HEAP8[$$04$lcssa61 >> 0] | 0)) {
$$28 = $$06$lcssa62;
$$3 = $$0$lcssa60;
} else {
L11 : do if ($$0$lcssa60 >>> 0 > 3) {
$$117 = $$0$lcssa60;
$wd$018 = $$06$lcssa62;
$ws$019 = $$04$lcssa61;
while (1) {
$20 = HEAP32[$ws$019 >> 2] | 0;
if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) {
$$1$lcssa = $$117;
$wd$0$lcssa = $wd$018;
$ws$0$lcssa = $ws$019;
break L11;
}
HEAP32[$wd$018 >> 2] = $20;
$26 = $$117 + -4 | 0;
$27 = $ws$019 + 4 | 0;
$28 = $wd$018 + 4 | 0;
if ($26 >>> 0 > 3) {
$$117 = $26;
$wd$018 = $28;
$ws$019 = $27;
} else {
$$1$lcssa = $26;
$wd$0$lcssa = $28;
$ws$0$lcssa = $27;
break;
}
}
} else {
$$1$lcssa = $$0$lcssa60;
$wd$0$lcssa = $$06$lcssa62;
$ws$0$lcssa = $$04$lcssa61;
} while (0);
$$15$ph = $ws$0$lcssa;
$$17$ph = $wd$0$lcssa;
$$2$ph = $$1$lcssa;
label = 11;
}
} else {
$$15$ph = $s;
$$17$ph = $d;
$$2$ph = $n;
label = 11;
} while (0);
L16 : do if ((label | 0) == 11) if (!$$2$ph) {
$$28 = $$17$ph;
$$3 = 0;
} else {
$$1511 = $$15$ph;
$$1710 = $$17$ph;
$$212 = $$2$ph;
while (1) {
$31 = HEAP8[$$1511 >> 0] | 0;
HEAP8[$$1710 >> 0] = $31;
if (!($31 << 24 >> 24)) {
$$28 = $$1710;
$$3 = $$212;
break L16;
}
$$212 = $$212 + -1 | 0;
$35 = $$1710 + 1 | 0;
if (!$$212) {
$$28 = $35;
$$3 = 0;
break;
} else {
$$1511 = $$1511 + 1 | 0;
$$1710 = $35;
}
}
} while (0);
_memset($$28 | 0, 0, $$3 | 0) | 0;
return $$28 | 0;
}
function ___stdio_write($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $16 = 0, $21 = 0, $26 = 0, $3 = 0, $35 = 0, $37 = 0, $39 = 0, $50 = 0, $6 = 0, $cnt$0 = 0, $cnt$1 = 0, $iov$0 = 0, $iov$0$lcssa11 = 0, $iov$1 = 0, $iovcnt$0 = 0, $iovcnt$0$lcssa12 = 0, $iovcnt$1 = 0, $iovs = 0, $rem$0 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$iovs = sp + 32 | 0;
$0 = $f + 28 | 0;
$1 = HEAP32[$0 >> 2] | 0;
HEAP32[$iovs >> 2] = $1;
$3 = $f + 20 | 0;
$6 = (HEAP32[$3 >> 2] | 0) - $1 | 0;
HEAP32[$iovs + 4 >> 2] = $6;
HEAP32[$iovs + 8 >> 2] = $buf;
HEAP32[$iovs + 12 >> 2] = $len;
$10 = $f + 60 | 0;
$11 = $f + 44 | 0;
$iov$0 = $iovs;
$iovcnt$0 = 2;
$rem$0 = $6 + $len | 0;
while (1) {
if (!(HEAP32[597] | 0)) {
HEAP32[$vararg_buffer3 >> 2] = HEAP32[$10 >> 2];
HEAP32[$vararg_buffer3 + 4 >> 2] = $iov$0;
HEAP32[$vararg_buffer3 + 8 >> 2] = $iovcnt$0;
$cnt$0 = ___syscall_ret(___syscall146(146, $vararg_buffer3 | 0) | 0) | 0;
} else {
_pthread_cleanup_push(14, $f | 0);
HEAP32[$vararg_buffer >> 2] = HEAP32[$10 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = $iov$0;
HEAP32[$vararg_buffer + 8 >> 2] = $iovcnt$0;
$16 = ___syscall_ret(___syscall146(146, $vararg_buffer | 0) | 0) | 0;
_pthread_cleanup_pop(0);
$cnt$0 = $16;
}
if (($rem$0 | 0) == ($cnt$0 | 0)) {
label = 6;
break;
}
if (($cnt$0 | 0) < 0) {
$iov$0$lcssa11 = $iov$0;
$iovcnt$0$lcssa12 = $iovcnt$0;
label = 8;
break;
}
$35 = $rem$0 - $cnt$0 | 0;
$37 = HEAP32[$iov$0 + 4 >> 2] | 0;
if ($cnt$0 >>> 0 > $37 >>> 0) {
$39 = HEAP32[$11 >> 2] | 0;
HEAP32[$0 >> 2] = $39;
HEAP32[$3 >> 2] = $39;
$50 = HEAP32[$iov$0 + 12 >> 2] | 0;
$cnt$1 = $cnt$0 - $37 | 0;
$iov$1 = $iov$0 + 8 | 0;
$iovcnt$1 = $iovcnt$0 + -1 | 0;
} else if (($iovcnt$0 | 0) == 2) {
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + $cnt$0;
$50 = $37;
$cnt$1 = $cnt$0;
$iov$1 = $iov$0;
$iovcnt$1 = 2;
} else {
$50 = $37;
$cnt$1 = $cnt$0;
$iov$1 = $iov$0;
$iovcnt$1 = $iovcnt$0;
}
HEAP32[$iov$1 >> 2] = (HEAP32[$iov$1 >> 2] | 0) + $cnt$1;
HEAP32[$iov$1 + 4 >> 2] = $50 - $cnt$1;
$iov$0 = $iov$1;
$iovcnt$0 = $iovcnt$1;
$rem$0 = $35;
}
if ((label | 0) == 6) {
$21 = HEAP32[$11 >> 2] | 0;
HEAP32[$f + 16 >> 2] = $21 + (HEAP32[$f + 48 >> 2] | 0);
$26 = $21;
HEAP32[$0 >> 2] = $26;
HEAP32[$3 >> 2] = $26;
$$0 = $len;
} else if ((label | 0) == 8) {
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$3 >> 2] = 0;
HEAP32[$f >> 2] = HEAP32[$f >> 2] | 32;
if (($iovcnt$0$lcssa12 | 0) == 2) $$0 = 0; else $$0 = $len - (HEAP32[$iov$0$lcssa11 + 4 >> 2] | 0) | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function _pop_arg($arg, $type, $ap) {
$arg = $arg | 0;
$type = $type | 0;
$ap = $ap | 0;
var $105 = 0, $106 = 0.0, $112 = 0, $113 = 0.0, $13 = 0, $14 = 0, $17 = 0, $26 = 0, $27 = 0, $28 = 0, $37 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $53 = 0, $54 = 0, $56 = 0, $59 = 0, $6 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $79 = 0, $80 = 0, $82 = 0, $85 = 0, $94 = 0, $95 = 0, $96 = 0;
L1 : do if ($type >>> 0 <= 20) do switch ($type | 0) {
case 9:
{
$6 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$7 = HEAP32[$6 >> 2] | 0;
HEAP32[$ap >> 2] = $6 + 4;
HEAP32[$arg >> 2] = $7;
break L1;
break;
}
case 10:
{
$13 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$14 = HEAP32[$13 >> 2] | 0;
HEAP32[$ap >> 2] = $13 + 4;
$17 = $arg;
HEAP32[$17 >> 2] = $14;
HEAP32[$17 + 4 >> 2] = (($14 | 0) < 0) << 31 >> 31;
break L1;
break;
}
case 11:
{
$26 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$27 = HEAP32[$26 >> 2] | 0;
HEAP32[$ap >> 2] = $26 + 4;
$28 = $arg;
HEAP32[$28 >> 2] = $27;
HEAP32[$28 + 4 >> 2] = 0;
break L1;
break;
}
case 12:
{
$37 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1);
$38 = $37;
$40 = HEAP32[$38 >> 2] | 0;
$43 = HEAP32[$38 + 4 >> 2] | 0;
HEAP32[$ap >> 2] = $37 + 8;
$44 = $arg;
HEAP32[$44 >> 2] = $40;
HEAP32[$44 + 4 >> 2] = $43;
break L1;
break;
}
case 13:
{
$53 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$54 = HEAP32[$53 >> 2] | 0;
HEAP32[$ap >> 2] = $53 + 4;
$56 = ($54 & 65535) << 16 >> 16;
$59 = $arg;
HEAP32[$59 >> 2] = $56;
HEAP32[$59 + 4 >> 2] = (($56 | 0) < 0) << 31 >> 31;
break L1;
break;
}
case 14:
{
$68 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$69 = HEAP32[$68 >> 2] | 0;
HEAP32[$ap >> 2] = $68 + 4;
$70 = $arg;
HEAP32[$70 >> 2] = $69 & 65535;
HEAP32[$70 + 4 >> 2] = 0;
break L1;
break;
}
case 15:
{
$79 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$80 = HEAP32[$79 >> 2] | 0;
HEAP32[$ap >> 2] = $79 + 4;
$82 = ($80 & 255) << 24 >> 24;
$85 = $arg;
HEAP32[$85 >> 2] = $82;
HEAP32[$85 + 4 >> 2] = (($82 | 0) < 0) << 31 >> 31;
break L1;
break;
}
case 16:
{
$94 = (HEAP32[$ap >> 2] | 0) + (4 - 1) & ~(4 - 1);
$95 = HEAP32[$94 >> 2] | 0;
HEAP32[$ap >> 2] = $94 + 4;
$96 = $arg;
HEAP32[$96 >> 2] = $95 & 255;
HEAP32[$96 + 4 >> 2] = 0;
break L1;
break;
}
case 17:
{
$105 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1);
$106 = +HEAPF64[$105 >> 3];
HEAP32[$ap >> 2] = $105 + 8;
HEAPF64[$arg >> 3] = $106;
break L1;
break;
}
case 18:
{
$112 = (HEAP32[$ap >> 2] | 0) + (8 - 1) & ~(8 - 1);
$113 = +HEAPF64[$112 >> 3];
HEAP32[$ap >> 2] = $112 + 8;
HEAPF64[$arg >> 3] = $113;
break L1;
break;
}
default:
break L1;
} while (0); while (0);
return;
}
function _arPattCreateHandle2($pattSize, $patternCountMax) {
$pattSize = $pattSize | 0;
$patternCountMax = $patternCountMax | 0;
var $$0 = 0, $10 = 0, $11 = 0, $14 = 0, $15 = 0, $17 = 0, $18 = 0, $2 = 0, $21 = 0, $24 = 0, $25 = 0, $26 = 0, $29 = 0, $31 = 0, $32 = 0, $35 = 0, $7 = 0, $i$04 = 0, $j$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer11 = 0, $vararg_buffer13 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_buffer9 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer13 = sp + 56 | 0;
$vararg_buffer11 = sp + 48 | 0;
$vararg_buffer9 = sp + 40 | 0;
$vararg_buffer7 = sp + 32 | 0;
$vararg_buffer5 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
L1 : do if (($pattSize + -16 | 0) >>> 0 > 48 | ($patternCountMax | 0) < 1) $$0 = 0; else {
$2 = _malloc(32) | 0;
if (!$2) {
_arLog(3, 5471, $vararg_buffer);
_exit(1);
}
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = $patternCountMax;
HEAP32[$2 + 28 >> 2] = $pattSize;
$7 = _malloc($patternCountMax << 2) | 0;
HEAP32[$2 + 8 >> 2] = $7;
if (!$7) {
_arLog(3, 5471, $vararg_buffer1);
_exit(1);
}
$10 = $patternCountMax << 4;
$11 = _malloc($10) | 0;
HEAP32[$2 + 12 >> 2] = $11;
if (!$11) {
_arLog(3, 5471, $vararg_buffer3);
_exit(1);
}
$14 = _malloc($10) | 0;
$15 = $2 + 20 | 0;
HEAP32[$15 >> 2] = $14;
if (!$14) {
_arLog(3, 5471, $vararg_buffer5);
_exit(1);
}
$17 = $patternCountMax << 5;
$18 = _malloc($17) | 0;
HEAP32[$2 + 16 >> 2] = $18;
if (!$18) {
_arLog(3, 5471, $vararg_buffer7);
_exit(1);
}
$21 = _malloc($17) | 0;
HEAP32[$2 + 24 >> 2] = $21;
if (!$21) {
_arLog(3, 5471, $vararg_buffer9);
_exit(1);
}
$24 = Math_imul($pattSize, $pattSize) | 0;
$25 = $24 * 12 | 0;
$26 = $24 << 2;
if (($patternCountMax | 0) > 0) {
$i$04 = 0;
L21 : while (1) {
HEAP32[$7 + ($i$04 << 2) >> 2] = 0;
$29 = $i$04 << 2;
$j$0 = 0;
while (1) {
if (($j$0 | 0) >= 4) break;
$31 = _malloc($25) | 0;
$32 = $j$0 + $29 | 0;
HEAP32[$11 + ($32 << 2) >> 2] = $31;
if (!$31) {
label = 18;
break L21;
}
$35 = _malloc($26) | 0;
HEAP32[(HEAP32[$15 >> 2] | 0) + ($32 << 2) >> 2] = $35;
if (!$35) {
label = 20;
break L21;
} else $j$0 = $j$0 + 1 | 0;
}
$i$04 = $i$04 + 1 | 0;
if (($i$04 | 0) >= ($patternCountMax | 0)) {
$$0 = $2;
break L1;
}
}
if ((label | 0) == 18) {
_arLog(3, 5471, $vararg_buffer11);
_exit(1);
} else if ((label | 0) == 20) {
_arLog(3, 5471, $vararg_buffer13);
_exit(1);
}
} else $$0 = $2;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arParamChangeSize($source, $xsize, $ysize, $newparam) {
$source = $source | 0;
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$newparam = $newparam | 0;
var $$0 = 0, $23 = 0, $3 = 0.0, $8 = 0.0, $i$01 = 0, label = 0;
$3 = +($xsize | 0) / +(HEAP32[$source >> 2] | 0);
$8 = +($ysize | 0) / +(HEAP32[$source + 4 >> 2] | 0);
HEAP32[$newparam >> 2] = $xsize;
HEAP32[$newparam + 4 >> 2] = $ysize;
$i$01 = 0;
do {
HEAPF64[$newparam + 8 + ($i$01 << 3) >> 3] = $3 * +HEAPF64[$source + 8 + ($i$01 << 3) >> 3];
HEAPF64[$newparam + 40 + ($i$01 << 3) >> 3] = $8 * +HEAPF64[$source + 40 + ($i$01 << 3) >> 3];
HEAPF64[$newparam + 72 + ($i$01 << 3) >> 3] = +HEAPF64[$source + 72 + ($i$01 << 3) >> 3];
$i$01 = $i$01 + 1 | 0;
} while (($i$01 | 0) != 4);
$23 = HEAP32[$source + 176 >> 2] | 0;
switch ($23 | 0) {
case 4:
{
HEAPF64[$newparam + 104 >> 3] = +HEAPF64[$source + 104 >> 3];
HEAPF64[$newparam + 112 >> 3] = +HEAPF64[$source + 112 >> 3];
HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3];
HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3];
HEAPF64[$newparam + 136 >> 3] = $3 * +HEAPF64[$source + 136 >> 3];
HEAPF64[$newparam + 144 >> 3] = $8 * +HEAPF64[$source + 144 >> 3];
HEAPF64[$newparam + 152 >> 3] = $3 * +HEAPF64[$source + 152 >> 3];
HEAPF64[$newparam + 160 >> 3] = $8 * +HEAPF64[$source + 160 >> 3];
HEAPF64[$newparam + 168 >> 3] = +HEAPF64[$source + 168 >> 3];
label = 8;
break;
}
case 3:
{
HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3];
HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3];
HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3];
HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3];
HEAPF64[$newparam + 136 >> 3] = +HEAPF64[$source + 136 >> 3] / ($3 * $8);
HEAPF64[$newparam + 144 >> 3] = +HEAPF64[$source + 144 >> 3] / ($8 * ($3 * $3 * $8));
label = 8;
break;
}
case 2:
{
HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3];
HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3];
HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3];
HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3] / ($3 * $8);
HEAPF64[$newparam + 136 >> 3] = +HEAPF64[$source + 136 >> 3] / ($8 * ($3 * $3 * $8));
label = 8;
break;
}
case 1:
{
HEAPF64[$newparam + 104 >> 3] = $3 * +HEAPF64[$source + 104 >> 3];
HEAPF64[$newparam + 112 >> 3] = $8 * +HEAPF64[$source + 112 >> 3];
HEAPF64[$newparam + 120 >> 3] = +HEAPF64[$source + 120 >> 3];
HEAPF64[$newparam + 128 >> 3] = +HEAPF64[$source + 128 >> 3] / ($3 * $8);
label = 8;
break;
}
default:
$$0 = -1;
}
if ((label | 0) == 8) {
HEAP32[$newparam + 176 >> 2] = $23;
$$0 = 0;
}
return $$0 | 0;
}
function _icpUpdateMat($matXw2Xc, $dS) {
$matXw2Xc = $matXw2Xc | 0;
$dS = $dS | 0;
var $$sink$i = 0.0, $$sink1$i = 0.0, $0 = 0.0, $11 = 0.0, $16 = 0.0, $18 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $25 = 0.0, $29 = 0.0, $3 = 0.0, $30 = 0.0, $31 = 0.0, $35 = 0.0, $36 = 0.0, $47 = 0.0, $48 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $7 = 0.0, $82 = 0, $9 = 0.0, $i$08 = 0, $j$09 = 0, $j$17 = 0, $mat = 0, $mat2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$mat = sp + 96 | 0;
$mat2 = sp;
$0 = +HEAPF64[$dS >> 3];
$3 = +HEAPF64[$dS + 8 >> 3];
$7 = +HEAPF64[$dS + 16 >> 3];
$9 = $0 * $0 + $3 * $3 + $7 * $7;
if ($9 == 0.0) {
$$sink$i = 0.0;
$$sink1$i = 0.0;
$25 = 1.0;
$29 = 0.0;
} else {
$11 = +Math_sqrt(+$9);
$$sink$i = $11;
$$sink1$i = $7 / $11;
$25 = $0 / $11;
$29 = $3 / $11;
}
$16 = +HEAPF64[$dS + 24 >> 3];
$18 = +HEAPF64[$dS + 32 >> 3];
$20 = +HEAPF64[$dS + 40 >> 3];
$21 = +Math_cos(+$$sink$i);
$22 = 1.0 - $21;
$23 = +Math_sin(+$$sink$i);
HEAPF64[$mat >> 3] = $21 + $25 * $25 * $22;
$30 = $29 * $25 * $22;
$31 = $$sink1$i * $23;
HEAPF64[$mat + 8 >> 3] = $30 - $31;
$35 = $25 * $$sink1$i * $22;
$36 = $29 * $23;
HEAPF64[$mat + 16 >> 3] = $35 + $36;
HEAPF64[$mat + 24 >> 3] = $16;
HEAPF64[$mat + 32 >> 3] = $30 + $31;
HEAPF64[$mat + 40 >> 3] = $21 + $29 * $29 * $22;
$47 = $29 * $$sink1$i * $22;
$48 = $25 * $23;
HEAPF64[$mat + 48 >> 3] = $47 - $48;
HEAPF64[$mat + 56 >> 3] = $18;
HEAPF64[$mat + 64 >> 3] = $35 - $36;
HEAPF64[$mat + 72 >> 3] = $47 + $48;
HEAPF64[$mat + 80 >> 3] = $21 + $$sink1$i * $$sink1$i * $22;
HEAPF64[$mat + 88 >> 3] = $20;
$j$09 = 0;
do {
$64 = +HEAPF64[$matXw2Xc + ($j$09 << 5) >> 3];
$65 = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 8 >> 3];
$66 = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 16 >> 3];
$i$08 = 0;
do {
HEAPF64[$mat2 + ($j$09 << 5) + ($i$08 << 3) >> 3] = $64 * +HEAPF64[$mat + ($i$08 << 3) >> 3] + $65 * +HEAPF64[$mat + 32 + ($i$08 << 3) >> 3] + $66 * +HEAPF64[$mat + 64 + ($i$08 << 3) >> 3];
$i$08 = $i$08 + 1 | 0;
} while (($i$08 | 0) != 4);
$82 = $mat2 + ($j$09 << 5) + 24 | 0;
HEAPF64[$82 >> 3] = +HEAPF64[$matXw2Xc + ($j$09 << 5) + 24 >> 3] + +HEAPF64[$82 >> 3];
$j$09 = $j$09 + 1 | 0;
} while (($j$09 | 0) != 3);
$j$17 = 0;
do {
HEAPF64[$matXw2Xc + ($j$17 << 5) >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) >> 3];
HEAPF64[$matXw2Xc + ($j$17 << 5) + 8 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 8 >> 3];
HEAPF64[$matXw2Xc + ($j$17 << 5) + 16 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 16 >> 3];
HEAPF64[$matXw2Xc + ($j$17 << 5) + 24 >> 3] = +HEAPF64[$mat2 + ($j$17 << 5) + 24 >> 3];
$j$17 = $j$17 + 1 | 0;
} while (($j$17 | 0) != 3);
STACKTOP = sp;
return 0;
}
function _setCamera($id, $cameraID) {
$id = $id | 0;
$cameraID = $cameraID | 0;
var $$0 = 0, $0 = 0, $1 = 0, $10 = 0, $14 = 0, $15 = 0, $20 = 0, $21 = 0, $23 = 0, $24 = 0, $26 = 0, $4 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer2 = 0, $vararg_buffer4 = 0, $vararg_buffer6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer6 = sp + 24 | 0;
$vararg_buffer4 = sp + 16 | 0;
$vararg_buffer2 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = sp + 32 | 0;
$1 = sp + 28 | 0;
HEAP32[$0 >> 2] = $id;
HEAP32[$1 >> 2] = $cameraID;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2064, $1) | 0)) $$0 = -1; else {
$7 = $4 + 8 | 0;
_memcpy($7 | 0, __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2064, $1) | 0, 184) | 0;
$9 = HEAP32[$7 >> 2] | 0;
$10 = $4 + 204 | 0;
$14 = HEAP32[$4 + 12 >> 2] | 0;
$15 = $4 + 208 | 0;
if (!(($9 | 0) == (HEAP32[$10 >> 2] | 0) ? ($14 | 0) == (HEAP32[$15 >> 2] | 0) : 0)) {
HEAP32[$vararg_buffer >> 2] = $9;
HEAP32[$vararg_buffer + 4 >> 2] = $14;
_arLog(2, 6151, $vararg_buffer);
_arParamChangeSize($7, HEAP32[$10 >> 2] | 0, HEAP32[$15 >> 2] | 0, $7) | 0;
}
_deleteHandle($4);
$20 = _arParamLTCreate($7, 15) | 0;
$21 = $4 + 192 | 0;
HEAP32[$21 >> 2] = $20;
if (!$20) {
_arLog(3, 6198, $vararg_buffer2);
$$0 = -1;
break;
}
$23 = _arCreateHandle($20) | 0;
$24 = $4 + 212 | 0;
HEAP32[$24 >> 2] = $23;
if (!$23) {
_arLog(3, 6236, $vararg_buffer4);
$$0 = -1;
break;
}
_arSetPixelFormat($23, 2) | 0;
$26 = _ar3DCreateHandle($7) | 0;
HEAP32[$4 + 224 >> 2] = $26;
if (!$26) {
_arLog(3, 6273, $vararg_buffer6);
$$0 = -1;
break;
} else {
_arPattAttach(HEAP32[$24 >> 2] | 0, HEAP32[$4 + 216 >> 2] | 0) | 0;
_arglCameraFrustum(HEAP32[$21 >> 2] | 0, +HEAPF64[$4 + 232 >> 3], +HEAPF64[$4 + 240 >> 3], $4 + 264 | 0);
$$0 = 0;
break;
}
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _memchr($src, $c, $n) {
$src = $src | 0;
$c = $c | 0;
$n = $n | 0;
var $$0$lcssa = 0, $$0$lcssa44 = 0, $$019 = 0, $$1$lcssa = 0, $$110 = 0, $$110$lcssa = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $13 = 0, $15 = 0, $17 = 0, $20 = 0, $26 = 0, $27 = 0, $32 = 0, $4 = 0, $5 = 0, $8 = 0, $9 = 0, $s$0$lcssa = 0, $s$0$lcssa43 = 0, $s$020 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$011 = 0, $w$011$lcssa = 0, label = 0;
$0 = $c & 255;
$4 = ($n | 0) != 0;
L1 : do if ($4 & ($src & 3 | 0) != 0) {
$5 = $c & 255;
$$019 = $n;
$s$020 = $src;
while (1) {
if ((HEAP8[$s$020 >> 0] | 0) == $5 << 24 >> 24) {
$$0$lcssa44 = $$019;
$s$0$lcssa43 = $s$020;
label = 6;
break L1;
}
$8 = $s$020 + 1 | 0;
$9 = $$019 + -1 | 0;
$13 = ($9 | 0) != 0;
if ($13 & ($8 & 3 | 0) != 0) {
$$019 = $9;
$s$020 = $8;
} else {
$$0$lcssa = $9;
$$lcssa = $13;
$s$0$lcssa = $8;
label = 5;
break;
}
}
} else {
$$0$lcssa = $n;
$$lcssa = $4;
$s$0$lcssa = $src;
label = 5;
} while (0);
if ((label | 0) == 5) if ($$lcssa) {
$$0$lcssa44 = $$0$lcssa;
$s$0$lcssa43 = $s$0$lcssa;
label = 6;
} else {
$$3 = 0;
$s$2 = $s$0$lcssa;
}
L8 : do if ((label | 0) == 6) {
$15 = $c & 255;
if ((HEAP8[$s$0$lcssa43 >> 0] | 0) == $15 << 24 >> 24) {
$$3 = $$0$lcssa44;
$s$2 = $s$0$lcssa43;
} else {
$17 = Math_imul($0, 16843009) | 0;
L11 : do if ($$0$lcssa44 >>> 0 > 3) {
$$110 = $$0$lcssa44;
$w$011 = $s$0$lcssa43;
while (1) {
$20 = HEAP32[$w$011 >> 2] ^ $17;
if (($20 & -2139062144 ^ -2139062144) & $20 + -16843009) {
$$110$lcssa = $$110;
$w$011$lcssa = $w$011;
break;
}
$26 = $w$011 + 4 | 0;
$27 = $$110 + -4 | 0;
if ($27 >>> 0 > 3) {
$$110 = $27;
$w$011 = $26;
} else {
$$1$lcssa = $27;
$w$0$lcssa = $26;
label = 11;
break L11;
}
}
$$24 = $$110$lcssa;
$s$15 = $w$011$lcssa;
} else {
$$1$lcssa = $$0$lcssa44;
$w$0$lcssa = $s$0$lcssa43;
label = 11;
} while (0);
if ((label | 0) == 11) if (!$$1$lcssa) {
$$3 = 0;
$s$2 = $w$0$lcssa;
break;
} else {
$$24 = $$1$lcssa;
$s$15 = $w$0$lcssa;
}
while (1) {
if ((HEAP8[$s$15 >> 0] | 0) == $15 << 24 >> 24) {
$$3 = $$24;
$s$2 = $s$15;
break L8;
}
$32 = $s$15 + 1 | 0;
$$24 = $$24 + -1 | 0;
if (!$$24) {
$$3 = 0;
$s$2 = $32;
break;
} else $s$15 = $32;
}
}
} while (0);
return (($$3 | 0) != 0 ? $s$2 : 0) | 0;
}
function _getMarkerInfo($id, $markerIndex) {
$id = $id | 0;
$markerIndex = $markerIndex | 0;
var $$0 = 0, $0 = 0, $5 = 0, $6 = 0, $_ZL11gMarkerInfo$ = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) {
$_ZL11gMarkerInfo$ = ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0;
_emscripten_asm_const_33(1, HEAP32[$_ZL11gMarkerInfo$ >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 4 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 8 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 12 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 16 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 20 >> 2] | 0, HEAP32[$_ZL11gMarkerInfo$ + 24 >> 2] | 0, +(+HEAPF64[$_ZL11gMarkerInfo$ + 32 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 40 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 48 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 56 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 64 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 72 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 80 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 88 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 96 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 104 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 112 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 120 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 128 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 136 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 144 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 152 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 160 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 168 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 176 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 184 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 192 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 200 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 208 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 216 >> 3]), +(+HEAPF64[$_ZL11gMarkerInfo$ + 224 >> 3]), HEAP32[$_ZL11gMarkerInfo$ + 240 >> 2] | 0) | 0;
$$0 = 0;
break;
} else {
$$0 = HEAP32[523] | 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_114parse_decltypeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$03 = 0, $0 = 0, $1 = 0, $13 = 0, $14 = 0, $2 = 0, $21 = 0, $23 = 0, $24 = 0, $27 = 0, $3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 40 | 0;
$1 = sp + 24 | 0;
$2 = sp + 12 | 0;
$3 = sp;
L1 : do if (($last - $first | 0) > 3) if ((HEAP8[$first >> 0] | 0) == 68) {
switch (HEAP8[$first + 1 >> 0] | 0) {
case 84:
case 116:
break;
default:
{
$$03 = $first;
break L1;
}
}
$13 = $first + 2 | 0;
$14 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($13, $last, $db) | 0;
if (($14 | 0) == ($13 | 0) | ($14 | 0) == ($last | 0)) $$03 = $first; else if ((HEAP8[$14 >> 0] | 0) == 69) {
$21 = HEAP32[$db + 4 >> 2] | 0;
if ((HEAP32[$db >> 2] | 0) == ($21 | 0)) $$03 = $first; else {
$23 = $21 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($3, $23);
$24 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($3, 0, 12803) | 0;
HEAP32[$2 >> 2] = HEAP32[$24 >> 2];
HEAP32[$2 + 4 >> 2] = HEAP32[$24 + 4 >> 2];
HEAP32[$2 + 8 >> 2] = HEAP32[$24 + 8 >> 2];
HEAP32[$24 >> 2] = 0;
HEAP32[$24 + 4 >> 2] = 0;
HEAP32[$24 + 8 >> 2] = 0;
$27 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($2, 12619) | 0;
HEAP32[$1 >> 2] = HEAP32[$27 >> 2];
HEAP32[$1 + 4 >> 2] = HEAP32[$27 + 4 >> 2];
HEAP32[$1 + 8 >> 2] = HEAP32[$27 + 8 >> 2];
HEAP32[$27 >> 2] = 0;
HEAP32[$27 + 4 >> 2] = 0;
HEAP32[$27 + 8 >> 2] = 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($0, $1);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairaSEOS1_($23, $0);
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($1);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($2);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($3);
$$03 = $14 + 1 | 0;
}
} else $$03 = $first;
} else $$03 = $first; else $$03 = $first; while (0);
STACKTOP = sp;
return $$03 | 0;
}
function ___fdopen($fd, $mode) {
$fd = $fd | 0;
$mode = $mode | 0;
var $$0 = 0, $0 = 0, $13 = 0, $14 = 0, $19 = 0, $24 = 0, $26 = 0, $3 = 0, $37 = 0, $4 = 0, $tio = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer12 = sp + 40 | 0;
$vararg_buffer7 = sp + 24 | 0;
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$tio = sp + 52 | 0;
$0 = HEAP8[$mode >> 0] | 0;
if (!(_memchr(16759, $0 << 24 >> 24, 4) | 0)) {
$3 = ___errno_location() | 0;
HEAP32[$3 >> 2] = 22;
$$0 = 0;
} else {
$4 = _malloc(1144) | 0;
if (!$4) $$0 = 0; else {
dest = $4;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
if (!(_strchr($mode, 43) | 0)) HEAP32[$4 >> 2] = $0 << 24 >> 24 == 114 ? 8 : 4;
if (!(_strchr($mode, 101) | 0)) $13 = $0; else {
HEAP32[$vararg_buffer >> 2] = $fd;
HEAP32[$vararg_buffer + 4 >> 2] = 2;
HEAP32[$vararg_buffer + 8 >> 2] = 1;
___syscall221(221, $vararg_buffer | 0) | 0;
$13 = HEAP8[$mode >> 0] | 0;
}
if ($13 << 24 >> 24 == 97) {
HEAP32[$vararg_buffer3 >> 2] = $fd;
HEAP32[$vararg_buffer3 + 4 >> 2] = 3;
$14 = ___syscall221(221, $vararg_buffer3 | 0) | 0;
if (!($14 & 1024)) {
HEAP32[$vararg_buffer7 >> 2] = $fd;
HEAP32[$vararg_buffer7 + 4 >> 2] = 4;
HEAP32[$vararg_buffer7 + 8 >> 2] = $14 | 1024;
___syscall221(221, $vararg_buffer7 | 0) | 0;
}
$19 = HEAP32[$4 >> 2] | 128;
HEAP32[$4 >> 2] = $19;
$26 = $19;
} else $26 = HEAP32[$4 >> 2] | 0;
HEAP32[$4 + 60 >> 2] = $fd;
HEAP32[$4 + 44 >> 2] = $4 + 120;
HEAP32[$4 + 48 >> 2] = 1024;
$24 = $4 + 75 | 0;
HEAP8[$24 >> 0] = -1;
if (!($26 & 8)) {
HEAP32[$vararg_buffer12 >> 2] = $fd;
HEAP32[$vararg_buffer12 + 4 >> 2] = 21505;
HEAP32[$vararg_buffer12 + 8 >> 2] = $tio;
if (!(___syscall54(54, $vararg_buffer12 | 0) | 0)) HEAP8[$24 >> 0] = 10;
}
HEAP32[$4 + 32 >> 2] = 14;
HEAP32[$4 + 36 >> 2] = 4;
HEAP32[$4 + 40 >> 2] = 5;
HEAP32[$4 + 12 >> 2] = 2;
if (!(HEAP32[598] | 0)) HEAP32[$4 + 76 >> 2] = -1;
___lock(2416);
$37 = HEAP32[603] | 0;
HEAP32[$4 + 56 >> 2] = $37;
if ($37) HEAP32[$37 + 52 >> 2] = $4;
HEAP32[603] = $4;
___unlock(2416);
$$0 = $4;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _addMultiMarker($id, $patt_name) {
$id = $id | 0;
$patt_name = $patt_name | 0;
var $$0 = 0, $0 = 0, $11 = 0, $12 = 0, $13 = 0, $15 = 0, $16 = 0, $21 = 0, $22 = 0, $23 = 0, $28 = 0, $29 = 0, $3 = 0, $38 = 0, $40 = 0, $43 = 0, $44 = 0, $marker = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 16 | 0;
$vararg_buffer = sp + 8 | 0;
$0 = sp + 20 | 0;
$marker = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
if (!(HEAP8[$patt_name >> 0] & 1)) $15 = $patt_name + 1 | 0; else $15 = HEAP32[$patt_name + 8 >> 2] | 0;
$11 = HEAP32[$3 + 212 >> 2] | 0;
$12 = $3 + 216 | 0;
$13 = $3 + 220 | 0;
$16 = _arMultiReadConfigFile($15, HEAP32[$12 >> 2] | 0) | 0;
HEAP32[$13 >> 2] = $16;
if (!$16) {
_arLog(3, 6401, $vararg_buffer);
_arPattDeleteHandle(HEAP32[$12 >> 2] | 0) | 0;
_arLog(3, 6428, $vararg_buffer1);
$$0 = -1;
break;
}
switch (HEAP32[$16 + 108 >> 2] | 0) {
case 0:
{
_arSetPatternDetectionMode($11, 0) | 0;
break;
}
case 1:
{
_arSetPatternDetectionMode($11, 2) | 0;
break;
}
default:
_arSetPatternDetectionMode($11, 3) | 0;
}
$21 = $3 + 248 | 0;
$22 = $3 + 252 | 0;
$23 = HEAP32[$22 >> 2] | 0;
$28 = $23 - (HEAP32[$21 >> 2] | 0) >> 3;
$29 = $marker;
HEAP32[$29 >> 2] = 0;
HEAP32[$29 + 4 >> 2] = 0;
HEAP32[$marker >> 2] = $28;
HEAP32[$marker + 4 >> 2] = HEAP32[$13 >> 2];
if (($23 | 0) == (HEAP32[$3 + 256 >> 2] | 0)) {
__ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE21__push_back_slow_pathIRKS1_EEvOT_($21, $marker);
$$0 = $28;
break;
} else {
$38 = $marker;
$40 = HEAP32[$38 >> 2] | 0;
$43 = HEAP32[$38 + 4 >> 2] | 0;
$44 = $23;
HEAP32[$44 >> 2] = $40;
HEAP32[$44 + 4 >> 2] = $43;
HEAP32[$22 >> 2] = (HEAP32[$22 >> 2] | 0) + 8;
$$0 = $40;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _get_cpara($world, $vertex, $para) {
$world = $world | 0;
$vertex = $vertex | 0;
$para = $para | 0;
var $0 = 0, $1 = 0, $2 = 0, $22 = 0, $3 = 0, $4 = 0, $49 = 0, $5 = 0, $62 = 0, $68 = 0, $7 = 0, $76 = 0, $86 = 0, $9 = 0, $i$03 = 0;
$0 = _arMatrixAlloc(8, 8) | 0;
$1 = _arMatrixAlloc(8, 1) | 0;
$2 = _arMatrixAlloc(8, 1) | 0;
$3 = HEAP32[$0 >> 2] | 0;
$4 = HEAP32[$1 >> 2] | 0;
$i$03 = 0;
do {
$5 = $world + ($i$03 << 4) | 0;
$7 = $i$03 << 4;
HEAPF64[$3 + ($7 << 3) >> 3] = +HEAPF64[$5 >> 3];
$9 = $world + ($i$03 << 4) + 8 | 0;
HEAPF64[$3 + (($7 | 1) << 3) >> 3] = +HEAPF64[$9 >> 3];
HEAPF64[$3 + (($7 | 2) << 3) >> 3] = 1.0;
HEAPF64[$3 + (($7 | 3) << 3) >> 3] = 0.0;
HEAPF64[$3 + (($7 | 4) << 3) >> 3] = 0.0;
HEAPF64[$3 + (($7 | 5) << 3) >> 3] = 0.0;
$22 = $vertex + ($i$03 << 4) | 0;
HEAPF64[$3 + (($7 | 6) << 3) >> 3] = -(+HEAPF64[$5 >> 3] * +HEAPF64[$22 >> 3]);
HEAPF64[$3 + (($7 | 7) << 3) >> 3] = -(+HEAPF64[$9 >> 3] * +HEAPF64[$22 >> 3]);
HEAPF64[$3 + (($7 | 8) << 3) >> 3] = 0.0;
HEAPF64[$3 + (($7 | 9) << 3) >> 3] = 0.0;
HEAPF64[$3 + (($7 | 10) << 3) >> 3] = 0.0;
HEAPF64[$3 + (($7 | 11) << 3) >> 3] = +HEAPF64[$5 >> 3];
HEAPF64[$3 + (($7 | 12) << 3) >> 3] = +HEAPF64[$9 >> 3];
HEAPF64[$3 + (($7 | 13) << 3) >> 3] = 1.0;
$49 = $vertex + ($i$03 << 4) + 8 | 0;
HEAPF64[$3 + (($7 | 14) << 3) >> 3] = -(+HEAPF64[$5 >> 3] * +HEAPF64[$49 >> 3]);
HEAPF64[$3 + (($7 | 15) << 3) >> 3] = -(+HEAPF64[$9 >> 3] * +HEAPF64[$49 >> 3]);
$62 = $i$03 << 1;
HEAPF64[$4 + ($62 << 3) >> 3] = +HEAPF64[$22 >> 3];
HEAPF64[$4 + (($62 | 1) << 3) >> 3] = +HEAPF64[$49 >> 3];
$i$03 = $i$03 + 1 | 0;
} while (($i$03 | 0) != 4);
_arMatrixSelfInv($0) | 0;
_arMatrixMul($2, $0, $1) | 0;
$68 = HEAP32[$2 >> 2] | 0;
HEAPF64[$para >> 3] = +HEAPF64[$68 >> 3];
HEAPF64[$para + 8 >> 3] = +HEAPF64[$68 + 8 >> 3];
HEAPF64[$para + 16 >> 3] = +HEAPF64[$68 + 16 >> 3];
$76 = HEAP32[$2 >> 2] | 0;
HEAPF64[$para + 24 >> 3] = +HEAPF64[$76 + 24 >> 3];
HEAPF64[$para + 32 >> 3] = +HEAPF64[$76 + 32 >> 3];
HEAPF64[$para + 40 >> 3] = +HEAPF64[$76 + 40 >> 3];
$86 = HEAP32[$2 >> 2] | 0;
HEAPF64[$para + 48 >> 3] = +HEAPF64[$86 + 48 >> 3];
HEAPF64[$para + 56 >> 3] = +HEAPF64[$86 + 56 >> 3];
HEAPF64[$para + 64 >> 3] = 1.0;
_arMatrixFree($0) | 0;
_arMatrixFree($1) | 0;
_arMatrixFree($2) | 0;
return;
}
function _arGetTransMatSquare($handle, $marker_info, $width, $conv) {
$handle = $handle | 0;
$marker_info = $marker_info | 0;
$width = +$width;
$conv = $conv | 0;
var $$0 = 0.0, $1 = 0, $10 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0.0, $34 = 0.0, $53 = 0, $data = 0, $err = 0, $initMatXw2Xc = 0, $screenCoord = 0, $worldCoord = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 288 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$screenCoord = sp + 200 | 0;
$worldCoord = sp + 104 | 0;
$data = sp + 264 | 0;
$initMatXw2Xc = sp + 8 | 0;
$err = sp;
$1 = HEAP32[$marker_info + 16 >> 2] | 0;
$3 = (4 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) >> 3];
HEAPF64[$screenCoord + 8 >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) + 8 >> 3];
$10 = (5 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord + 16 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) >> 3];
HEAPF64[$screenCoord + 24 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) + 8 >> 3];
$18 = (6 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord + 32 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) >> 3];
HEAPF64[$screenCoord + 40 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) + 8 >> 3];
$26 = (7 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord + 48 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) >> 3];
HEAPF64[$screenCoord + 56 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) + 8 >> 3];
$33 = $width * -.5;
HEAPF64[$worldCoord >> 3] = $33;
$34 = $width * .5;
HEAPF64[$worldCoord + 8 >> 3] = $34;
HEAPF64[$worldCoord + 16 >> 3] = 0.0;
HEAPF64[$worldCoord + 24 >> 3] = $34;
HEAPF64[$worldCoord + 32 >> 3] = $34;
HEAPF64[$worldCoord + 40 >> 3] = 0.0;
HEAPF64[$worldCoord + 48 >> 3] = $34;
HEAPF64[$worldCoord + 56 >> 3] = $33;
HEAPF64[$worldCoord + 64 >> 3] = 0.0;
HEAPF64[$worldCoord + 72 >> 3] = $33;
HEAPF64[$worldCoord + 80 >> 3] = $33;
HEAPF64[$worldCoord + 88 >> 3] = 0.0;
HEAP32[$data >> 2] = $screenCoord;
HEAP32[$data + 4 >> 2] = $worldCoord;
HEAP32[$data + 8 >> 2] = 4;
if ((_icpGetInitXw2Xc_from_PlanarData(HEAP32[$handle >> 2] | 0, $screenCoord, $worldCoord, 4, $initMatXw2Xc) | 0) < 0) $$0 = 1.0e8; else {
$53 = (_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initMatXw2Xc, $conv, $err) | 0) < 0;
$$0 = $53 ? 1.0e8 : +HEAPF64[$err >> 3];
}
STACKTOP = sp;
return +$$0;
}
function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $14 = 0, $20 = 0, $23 = 0, $24 = 0, $26 = 0, $33 = 0, $44 = 0, $6 = 0, $is_dst_type_derived_from_static_type$0$off01 = 0, label = 0;
L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) {
if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) {
$6 = $info + 28 | 0;
if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below;
}
} else {
if (($this | 0) != (HEAP32[$info >> 2] | 0)) {
$44 = HEAP32[$this + 8 >> 2] | 0;
FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$44 >> 2] | 0) + 24 >> 2] & 3]($44, $info, $current_ptr, $path_below, $use_strcmp);
break;
}
if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) {
$14 = $info + 20 | 0;
if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) {
HEAP32[$info + 32 >> 2] = $path_below;
$20 = $info + 44 | 0;
if ((HEAP32[$20 >> 2] | 0) == 4) break;
$23 = $info + 52 | 0;
HEAP8[$23 >> 0] = 0;
$24 = $info + 53 | 0;
HEAP8[$24 >> 0] = 0;
$26 = HEAP32[$this + 8 >> 2] | 0;
FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$26 >> 2] | 0) + 20 >> 2] & 3]($26, $info, $current_ptr, $current_ptr, 1, $use_strcmp);
if (!(HEAP8[$24 >> 0] | 0)) {
$is_dst_type_derived_from_static_type$0$off01 = 0;
label = 13;
} else if (!(HEAP8[$23 >> 0] | 0)) {
$is_dst_type_derived_from_static_type$0$off01 = 1;
label = 13;
}
do if ((label | 0) == 13) {
HEAP32[$14 >> 2] = $current_ptr;
$33 = $info + 40 | 0;
HEAP32[$33 >> 2] = (HEAP32[$33 >> 2] | 0) + 1;
if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) {
HEAP8[$info + 54 >> 0] = 1;
if ($is_dst_type_derived_from_static_type$0$off01) break;
} else label = 16; else label = 16;
if ((label | 0) == 16) if ($is_dst_type_derived_from_static_type$0$off01) break;
HEAP32[$20 >> 2] = 4;
break L1;
} while (0);
HEAP32[$20 >> 2] = 3;
break;
}
}
if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1;
} while (0);
return;
}
function _fgets($s, $n, $f) {
$s = $s | 0;
$n = $n | 0;
$f = $f | 0;
var $$0 = 0, $$048 = 0, $$05 = 0, $$lcssa14 = 0, $$sum$pre$phiZZ2D = 0, $$sum6 = 0, $13 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $39 = 0, $4 = 0, $47 = 0, $48 = 0, $6 = 0, $8 = 0, $p$0 = 0, $p$1 = 0, label = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) $13 = ___lockfile($f) | 0; else $13 = 0;
$4 = $n + -1 | 0;
if (($n | 0) < 2) {
$6 = $f + 74 | 0;
$8 = HEAP8[$6 >> 0] | 0;
HEAP8[$6 >> 0] = $8 + 255 | $8;
if ($13) ___unlockfile($f);
if (!$4) {
HEAP8[$s >> 0] = 0;
$$0 = $s;
} else $$0 = 0;
} else {
L11 : do if (!$4) {
$p$1 = $s;
label = 18;
} else {
$15 = $f + 4 | 0;
$16 = $f + 8 | 0;
$$05 = $4;
$p$0 = $s;
while (1) {
$17 = HEAP32[$15 >> 2] | 0;
$20 = $17;
$21 = (HEAP32[$16 >> 2] | 0) - $20 | 0;
$22 = _memchr($17, 10, $21) | 0;
$23 = ($22 | 0) == 0;
$27 = $23 ? $21 : 1 - $20 + $22 | 0;
$28 = $27 >>> 0 < $$05 >>> 0;
$29 = $28 ? $27 : $$05;
_memcpy($p$0 | 0, $17 | 0, $29 | 0) | 0;
$30 = HEAP32[$15 >> 2] | 0;
$31 = $30 + $29 | 0;
HEAP32[$15 >> 2] = $31;
$32 = $p$0 + $29 | 0;
$33 = $$05 - $29 | 0;
if (!($23 & $28)) {
$p$1 = $32;
label = 18;
break L11;
}
if ($31 >>> 0 < (HEAP32[$16 >> 2] | 0) >>> 0) {
$$sum6 = $29 + 1 | 0;
HEAP32[$15 >> 2] = $30 + $$sum6;
$$sum$pre$phiZZ2D = $$sum6;
$47 = HEAPU8[$31 >> 0] | 0;
} else {
$39 = ___uflow($f) | 0;
if (($39 | 0) < 0) {
$$lcssa14 = $32;
break;
}
$$sum$pre$phiZZ2D = $29 + 1 | 0;
$47 = $39;
}
$$05 = $33 + -1 | 0;
$48 = $p$0 + $$sum$pre$phiZZ2D | 0;
HEAP8[$32 >> 0] = $47;
if (!(($$05 | 0) != 0 & ($47 & 255 | 0) != 10)) {
$p$1 = $48;
label = 18;
break L11;
} else $p$0 = $48;
}
if (($$lcssa14 | 0) == ($s | 0)) $$048 = 0; else if (!(HEAP32[$f >> 2] & 16)) $$048 = 0; else {
$p$1 = $$lcssa14;
label = 18;
}
} while (0);
if ((label | 0) == 18) if (!$s) $$048 = 0; else {
HEAP8[$p$1 >> 0] = 0;
$$048 = $s;
}
if (!$13) $$0 = $$048; else {
___unlockfile($f);
$$0 = $$048;
}
}
return $$0 | 0;
}
function _mbrtowc($wc, $src, $n, $st) {
$wc = $wc | 0;
$src = $src | 0;
$n = $n | 0;
$st = $st | 0;
var $$0 = 0, $$024 = 0, $$1 = 0, $$lcssa = 0, $$lcssa35 = 0, $$st = 0, $1 = 0, $12 = 0, $16 = 0, $17 = 0, $19 = 0, $21 = 0, $30 = 0, $40 = 0, $7 = 0, $8 = 0, $c$05 = 0, $c$1 = 0, $c$2 = 0, $dummy = 0, $dummy$wc = 0, $s$06 = 0, $s$1 = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$dummy = sp;
$$st = ($st | 0) == 0 ? 2680 : $st;
$1 = HEAP32[$$st >> 2] | 0;
L1 : do if (!$src) if (!$1) $$0 = 0; else label = 15; else {
$dummy$wc = ($wc | 0) == 0 ? $dummy : $wc;
if (!$n) $$0 = -2; else {
if (!$1) {
$7 = HEAP8[$src >> 0] | 0;
$8 = $7 & 255;
if ($7 << 24 >> 24 > -1) {
HEAP32[$dummy$wc >> 2] = $8;
$$0 = $7 << 24 >> 24 != 0 & 1;
break;
}
$12 = $8 + -194 | 0;
if ($12 >>> 0 > 50) {
label = 15;
break;
}
$16 = HEAP32[2432 + ($12 << 2) >> 2] | 0;
$17 = $n + -1 | 0;
if (!$17) $c$2 = $16; else {
$$024 = $17;
$c$05 = $16;
$s$06 = $src + 1 | 0;
label = 9;
}
} else {
$$024 = $n;
$c$05 = $1;
$s$06 = $src;
label = 9;
}
L11 : do if ((label | 0) == 9) {
$19 = HEAP8[$s$06 >> 0] | 0;
$21 = ($19 & 255) >>> 3;
if (($21 + -16 | $21 + ($c$05 >> 26)) >>> 0 > 7) {
label = 15;
break L1;
} else {
$$1 = $$024;
$30 = $19;
$c$1 = $c$05;
$s$1 = $s$06;
}
while (1) {
$s$1 = $s$1 + 1 | 0;
$c$1 = ($30 & 255) + -128 | $c$1 << 6;
$$1 = $$1 + -1 | 0;
if (($c$1 | 0) >= 0) {
$$lcssa = $c$1;
$$lcssa35 = $$1;
break;
}
if (!$$1) {
$c$2 = $c$1;
break L11;
}
$30 = HEAP8[$s$1 >> 0] | 0;
if (($30 & -64) << 24 >> 24 != -128) {
label = 15;
break L1;
}
}
HEAP32[$$st >> 2] = 0;
HEAP32[$dummy$wc >> 2] = $$lcssa;
$$0 = $n - $$lcssa35 | 0;
break L1;
} while (0);
HEAP32[$$st >> 2] = $c$2;
$$0 = -2;
}
} while (0);
if ((label | 0) == 15) {
HEAP32[$$st >> 2] = 0;
$40 = ___errno_location() | 0;
HEAP32[$40 >> 2] = 84;
$$0 = -1;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($agg$result, $this, $__p) {
$agg$result = $agg$result | 0;
$this = $this | 0;
$__p = $__p | 0;
var $$pre$phiZ2D = 0, $0 = 0, $11 = 0, $12 = 0, $14 = 0, $16 = 0, $19 = 0, $2 = 0, $23 = 0, $24 = 0, $27 = 0, $31 = 0, $32 = 0, $34 = 0, $36 = 0, $4 = 0, $40 = 0, $43 = 0, $44 = 0, $5 = 0, $7 = 0, $__pn$0 = 0, $__pn$0$lcssa = 0, label = 0;
$0 = HEAP32[$__p >> 2] | 0;
$2 = HEAP32[$this + 4 >> 2] | 0;
$4 = HEAP32[$0 + 4 >> 2] | 0;
$5 = $2 + -1 | 0;
$7 = ($5 & $2 | 0) == 0;
if ($7) $12 = $5 & $4; else $12 = ($4 >>> 0) % ($2 >>> 0) | 0;
$11 = (HEAP32[$this >> 2] | 0) + ($12 << 2) | 0;
$__pn$0 = HEAP32[$11 >> 2] | 0;
while (1) {
$14 = HEAP32[$__pn$0 >> 2] | 0;
if (($14 | 0) == ($0 | 0)) {
$__pn$0$lcssa = $__pn$0;
break;
} else $__pn$0 = $14;
}
$16 = $this + 8 | 0;
if (($__pn$0$lcssa | 0) == ($16 | 0)) label = 12; else {
$19 = HEAP32[$__pn$0$lcssa + 4 >> 2] | 0;
if ($7) $23 = $19 & $5; else $23 = ($19 >>> 0) % ($2 >>> 0) | 0;
if (($23 | 0) == ($12 | 0)) $$pre$phiZ2D = $0; else label = 12;
}
do if ((label | 0) == 12) {
$24 = HEAP32[$0 >> 2] | 0;
if ($24) {
$27 = HEAP32[$24 + 4 >> 2] | 0;
if ($7) $31 = $27 & $5; else $31 = ($27 >>> 0) % ($2 >>> 0) | 0;
if (($31 | 0) == ($12 | 0)) {
$$pre$phiZ2D = $0;
break;
}
}
HEAP32[$11 >> 2] = 0;
$$pre$phiZ2D = $0;
} while (0);
$32 = HEAP32[$$pre$phiZ2D >> 2] | 0;
$34 = $32;
if (!$32) $43 = $34; else {
$36 = HEAP32[$32 + 4 >> 2] | 0;
if ($7) $40 = $36 & $5; else $40 = ($36 >>> 0) % ($2 >>> 0) | 0;
if (($40 | 0) == ($12 | 0)) $43 = $34; else {
HEAP32[(HEAP32[$this >> 2] | 0) + ($40 << 2) >> 2] = $__pn$0$lcssa;
$43 = HEAP32[$0 >> 2] | 0;
}
}
HEAP32[$__pn$0$lcssa >> 2] = $43;
HEAP32[$$pre$phiZ2D >> 2] = 0;
$44 = $this + 12 | 0;
HEAP32[$44 >> 2] = (HEAP32[$44 >> 2] | 0) + -1;
HEAP32[$agg$result >> 2] = $0;
HEAP32[$agg$result + 4 >> 2] = $16;
HEAP8[$agg$result + 8 >> 0] = 1;
return;
}
function _arParamLTCreate($param, $offset) {
$param = $param | 0;
$offset = $offset | 0;
var $0 = 0, $14 = 0, $15 = 0, $17 = 0, $20 = 0, $22 = 0, $24 = 0, $26 = 0, $29 = 0.0, $3 = 0, $32 = 0.0, $4 = 0, $9 = 0, $i$04 = 0, $i2of$05 = 0, $i2of$12 = 0, $ix = 0, $iy = 0, $j$07 = 0, $o2if$06 = 0, $o2if$13 = 0, $ox = 0, $oy = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ix = sp + 24 | 0;
$iy = sp + 16 | 0;
$ox = sp + 8 | 0;
$oy = sp;
$0 = _malloc(208) | 0;
if (!$0) {
_arLog(3, 5471, sp + 32 | 0);
_exit(1);
}
_memcpy($0 | 0, $param | 0, 184) | 0;
$3 = $offset << 1;
$4 = (HEAP32[$param >> 2] | 0) + $3 | 0;
HEAP32[$0 + 192 >> 2] = $4;
$9 = (HEAP32[$param + 4 >> 2] | 0) + $3 | 0;
HEAP32[$0 + 196 >> 2] = $9;
HEAP32[$0 + 200 >> 2] = $offset;
HEAP32[$0 + 204 >> 2] = $offset;
$14 = Math_imul($4 << 3, $9) | 0;
$15 = _malloc($14) | 0;
HEAP32[$0 + 184 >> 2] = $15;
if (!$15) {
_arLog(3, 5471, sp + 40 | 0);
_exit(1);
}
$17 = _malloc($14) | 0;
HEAP32[$0 + 188 >> 2] = $17;
if (!$17) {
_arLog(3, 5471, sp + 48 | 0);
_exit(1);
}
$20 = $param + 104 | 0;
$22 = HEAP32[$param + 176 >> 2] | 0;
$24 = ($4 | 0) > 0 ? $4 << 1 : 0;
if (($9 | 0) > 0) {
$26 = ($4 | 0) > 0;
$i2of$05 = $15;
$j$07 = 0;
$o2if$06 = $17;
while (1) {
$29 = +($j$07 - $offset | 0);
if ($26) {
$i$04 = 0;
$i2of$12 = $i2of$05;
$o2if$13 = $o2if$06;
while (1) {
$32 = +($i$04 - $offset | 0);
_arParamIdeal2Observ($20, $32, $29, $ox, $oy, $22) | 0;
HEAPF32[$i2of$12 >> 2] = +HEAPF64[$ox >> 3];
HEAPF32[$i2of$12 + 4 >> 2] = +HEAPF64[$oy >> 3];
_arParamObserv2Ideal($20, $32, $29, $ix, $iy, $22) | 0;
HEAPF32[$o2if$13 >> 2] = +HEAPF64[$ix >> 3];
HEAPF32[$o2if$13 + 4 >> 2] = +HEAPF64[$iy >> 3];
$i$04 = $i$04 + 1 | 0;
if (($i$04 | 0) >= ($4 | 0)) break; else {
$i2of$12 = $i2of$12 + 8 | 0;
$o2if$13 = $o2if$13 + 8 | 0;
}
}
}
$o2if$06 = $o2if$06 + ($24 << 2) | 0;
$j$07 = $j$07 + 1 | 0;
if (($j$07 | 0) >= ($9 | 0)) break; else $i2of$05 = $i2of$05 + ($24 << 2) | 0;
}
}
STACKTOP = sp;
return $0 | 0;
}
function _arGetTransMatSquareCont($handle, $marker_info, $initConv, $width, $conv) {
$handle = $handle | 0;
$marker_info = $marker_info | 0;
$initConv = $initConv | 0;
$width = +$width;
$conv = $conv | 0;
var $1 = 0, $10 = 0, $18 = 0, $26 = 0, $3 = 0, $33 = 0.0, $34 = 0.0, $50 = 0, $data = 0, $err = 0, $screenCoord = 0, $worldCoord = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$screenCoord = sp + 104 | 0;
$worldCoord = sp + 8 | 0;
$data = sp + 168 | 0;
$err = sp;
$1 = HEAP32[$marker_info + 16 >> 2] | 0;
$3 = (4 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) >> 3];
HEAPF64[$screenCoord + 8 >> 3] = +HEAPF64[$marker_info + 168 + ($3 << 4) + 8 >> 3];
$10 = (5 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord + 16 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) >> 3];
HEAPF64[$screenCoord + 24 >> 3] = +HEAPF64[$marker_info + 168 + ($10 << 4) + 8 >> 3];
$18 = (6 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord + 32 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) >> 3];
HEAPF64[$screenCoord + 40 >> 3] = +HEAPF64[$marker_info + 168 + ($18 << 4) + 8 >> 3];
$26 = (7 - $1 | 0) % 4 | 0;
HEAPF64[$screenCoord + 48 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) >> 3];
HEAPF64[$screenCoord + 56 >> 3] = +HEAPF64[$marker_info + 168 + ($26 << 4) + 8 >> 3];
$33 = $width * -.5;
HEAPF64[$worldCoord >> 3] = $33;
$34 = $width * .5;
HEAPF64[$worldCoord + 8 >> 3] = $34;
HEAPF64[$worldCoord + 16 >> 3] = 0.0;
HEAPF64[$worldCoord + 24 >> 3] = $34;
HEAPF64[$worldCoord + 32 >> 3] = $34;
HEAPF64[$worldCoord + 40 >> 3] = 0.0;
HEAPF64[$worldCoord + 48 >> 3] = $34;
HEAPF64[$worldCoord + 56 >> 3] = $33;
HEAPF64[$worldCoord + 64 >> 3] = 0.0;
HEAPF64[$worldCoord + 72 >> 3] = $33;
HEAPF64[$worldCoord + 80 >> 3] = $33;
HEAPF64[$worldCoord + 88 >> 3] = 0.0;
HEAP32[$data >> 2] = $screenCoord;
HEAP32[$data + 4 >> 2] = $worldCoord;
HEAP32[$data + 8 >> 2] = 4;
$50 = (_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0;
STACKTOP = sp;
return +($50 ? 1.0e8 : +HEAPF64[$err >> 3]);
}
function ___dynamic_cast($static_ptr, $static_type, $dst_type, $src2dst_offset) {
$static_ptr = $static_ptr | 0;
$static_type = $static_type | 0;
$dst_type = $dst_type | 0;
$src2dst_offset = $src2dst_offset | 0;
var $0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $4 = 0, $6 = 0, $dst_ptr$0 = 0, $info = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$info = sp;
$0 = HEAP32[$static_ptr >> 2] | 0;
$4 = $static_ptr + (HEAP32[$0 + -8 >> 2] | 0) | 0;
$6 = HEAP32[$0 + -4 >> 2] | 0;
HEAP32[$info >> 2] = $dst_type;
HEAP32[$info + 4 >> 2] = $static_ptr;
HEAP32[$info + 8 >> 2] = $static_type;
HEAP32[$info + 12 >> 2] = $src2dst_offset;
$10 = $info + 16 | 0;
$11 = $info + 20 | 0;
$12 = $info + 24 | 0;
$13 = $info + 28 | 0;
$14 = $info + 32 | 0;
$15 = $info + 40 | 0;
$16 = ($6 | 0) == ($dst_type | 0);
dest = $10;
stop = dest + 36 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP16[$10 + 36 >> 1] = 0;
HEAP8[$10 + 38 >> 0] = 0;
L1 : do if ($16) {
HEAP32[$info + 48 >> 2] = 1;
FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$dst_type >> 2] | 0) + 20 >> 2] & 3]($dst_type, $info, $4, $4, 1, 0);
$dst_ptr$0 = (HEAP32[$12 >> 2] | 0) == 1 ? $4 : 0;
} else {
FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$6 >> 2] | 0) + 24 >> 2] & 3]($6, $info, $4, 1, 0);
switch (HEAP32[$info + 36 >> 2] | 0) {
case 0:
{
$dst_ptr$0 = (HEAP32[$15 >> 2] | 0) == 1 & (HEAP32[$13 >> 2] | 0) == 1 & (HEAP32[$14 >> 2] | 0) == 1 ? HEAP32[$11 >> 2] | 0 : 0;
break L1;
break;
}
case 1:
break;
default:
{
$dst_ptr$0 = 0;
break L1;
}
}
if ((HEAP32[$12 >> 2] | 0) != 1) if (!((HEAP32[$15 >> 2] | 0) == 0 & (HEAP32[$13 >> 2] | 0) == 1 & (HEAP32[$14 >> 2] | 0) == 1)) {
$dst_ptr$0 = 0;
break;
}
$dst_ptr$0 = HEAP32[$10 >> 2] | 0;
} while (0);
STACKTOP = sp;
return $dst_ptr$0 | 0;
}
function _arImageProcLumaHistAndOtsu($ipi, $dataPtr, $value_p) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
$value_p = $value_p | 0;
var $$0 = 0, $$lcssa = 0.0, $0 = 0, $12 = 0.0, $14 = 0, $18 = 0.0, $22 = 0.0, $27 = 0.0, $29 = 0.0, $6 = 0.0, $indvars$iv = 0, $indvars$iv1 = 0, $sum$0 = 0.0, $sumB$0 = 0.0, $sumB$1 = 0.0, $threshold$0 = 0, $threshold$1 = 0, $threshold$2 = 0, $varMax$0 = 0.0, $varMax$1 = 0.0, $wB$0 = 0.0;
$0 = _arImageProcLumaHist($ipi, $dataPtr) | 0;
if (($0 | 0) < 0) $$0 = $0; else {
$indvars$iv1 = 1;
$sum$0 = 0.0;
while (1) {
$6 = $sum$0 + +((Math_imul(HEAP32[$ipi + 16 + ($indvars$iv1 << 2) >> 2] | 0, $indvars$iv1) | 0) >>> 0);
$indvars$iv1 = $indvars$iv1 + 1 | 0;
if (($indvars$iv1 | 0) == 256) {
$$lcssa = $6;
break;
} else $sum$0 = $6;
}
$12 = +(Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0);
$indvars$iv = 0;
$sumB$0 = 0.0;
$threshold$0 = 0;
$varMax$0 = 0.0;
$wB$0 = 0.0;
while (1) {
$14 = HEAP32[$ipi + 16 + ($indvars$iv << 2) >> 2] | 0;
$wB$0 = $wB$0 + +($14 >>> 0);
if ($wB$0 != 0.0) {
$18 = $12 - $wB$0;
if ($18 == 0.0) {
$threshold$2 = $threshold$0;
break;
}
$22 = $sumB$0 + +((Math_imul($indvars$iv, $14) | 0) >>> 0);
$27 = $22 / $wB$0 - ($$lcssa - $22) / $18;
$29 = $27 * ($wB$0 * $18 * $27);
if ($29 > $varMax$0) {
$sumB$1 = $22;
$threshold$1 = $indvars$iv & 255;
$varMax$1 = $29;
} else {
$sumB$1 = $22;
$threshold$1 = $threshold$0;
$varMax$1 = $varMax$0;
}
} else {
$sumB$1 = $sumB$0;
$threshold$1 = $threshold$0;
$varMax$1 = $varMax$0;
}
if (($indvars$iv & 255) << 24 >> 24 == -1) {
$threshold$2 = $threshold$1;
break;
} else {
$indvars$iv = $indvars$iv + 1 | 0;
$sumB$0 = $sumB$1;
$threshold$0 = $threshold$1;
$varMax$0 = $varMax$1;
}
}
HEAP8[$value_p >> 0] = $threshold$2;
$$0 = 0;
}
return $$0 | 0;
}
function __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev($this) {
$this = $this | 0;
__embind_register_void(624, 14202);
__embind_register_bool(632, 14207, 1, 1, 0);
__embind_register_integer(640, 13783, 1, -128, 127);
__embind_register_integer(656, 13788, 1, -128, 127);
__embind_register_integer(648, 13800, 1, 0, 255);
__embind_register_integer(664, 13814, 2, -32768, 32767);
__embind_register_integer(672, 13820, 2, 0, 65535);
__embind_register_integer(680, 14212, 4, -2147483648, 2147483647);
__embind_register_integer(688, 14216, 4, 0, -1);
__embind_register_integer(696, 14229, 4, -2147483648, 2147483647);
__embind_register_integer(704, 14234, 4, 0, -1);
__embind_register_float(712, 14277, 4);
__embind_register_float(720, 14283, 8);
__embind_register_std_string(360, 12846);
__embind_register_std_string(392, 10916);
__embind_register_std_wstring(416, 4, 10949);
__embind_register_emval(440, 10962);
__embind_register_memory_view(448, 0, 10978);
__ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(11008);
__ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(11045);
__ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(11084);
__ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(11115);
__ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(11155);
__ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(11184);
__embind_register_memory_view(456, 4, 11222);
__embind_register_memory_view(464, 5, 11252);
__ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc(11291);
__ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc(11323);
__ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc(11356);
__ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc(11389);
__ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc(11423);
__ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc(11456);
__embind_register_memory_view(472, 6, 11490);
__embind_register_memory_view(480, 7, 11521);
__embind_register_memory_view(488, 7, 11553);
return;
}
function _arSetPixelFormat($handle, $pixFormat) {
$handle = $handle | 0;
$pixFormat = $pixFormat | 0;
var $$0 = 0, $1 = 0, $14 = 0, $16 = 0, $17 = 0, $4 = 0, $6 = 0, $7 = 0, $monoFormat$0 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
L1 : do if (!$handle) $$0 = -1; else {
$1 = $handle + 4 | 0;
if ((HEAP32[$1 >> 2] | 0) == ($pixFormat | 0)) $$0 = 0; else {
switch ($pixFormat | 0) {
case 11:
case 10:
case 9:
case 8:
case 7:
case 6:
case 4:
case 3:
case 2:
case 1:
case 0:
{
$monoFormat$0 = 0;
break;
}
case 14:
case 13:
case 12:
case 5:
{
$monoFormat$0 = 1;
break;
}
default:
{
HEAP32[$vararg_buffer >> 2] = $pixFormat;
_arLog(3, 3936, $vararg_buffer);
$$0 = -1;
break L1;
}
}
HEAP32[$1 >> 2] = $pixFormat;
$4 = _arUtilGetPixelSize($pixFormat) | 0;
HEAP32[$handle + 8 >> 2] = $4;
$6 = $handle + 7062408 | 0;
$7 = HEAP32[$6 >> 2] | 0;
if ($7) {
_arImageProcFinal($7);
$14 = _arImageProcInit(HEAP32[$handle + 36 >> 2] | 0, HEAP32[$handle + 40 >> 2] | 0, HEAP32[$1 >> 2] | 0, 0) | 0;
HEAP32[$6 >> 2] = $14;
}
$16 = $handle + 24 | 0;
$17 = HEAP32[$16 >> 2] | 0;
if (!$monoFormat$0) switch ($17 | 0) {
case 1:
{
HEAP32[$16 >> 2] = 4;
$$0 = 0;
break L1;
break;
}
case 4:
{
HEAP32[$16 >> 2] = 3;
$$0 = 0;
break L1;
break;
}
default:
{
$$0 = 0;
break L1;
}
} else switch ($17 | 0) {
case 0:
{
HEAP32[$16 >> 2] = 1;
$$0 = 0;
break L1;
break;
}
case 3:
{
HEAP32[$16 >> 2] = 4;
$$0 = 0;
break L1;
break;
}
default:
{
$$0 = 0;
break L1;
}
}
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _confidenceCutoff($arHandle) {
$arHandle = $arHandle | 0;
var $11 = 0, $21 = 0, $3 = 0, $31 = 0, $37 = 0, $6 = 0, $9 = 0, $cfOK$0 = 0, $i$010 = 0, $i$112 = 0, $i$29 = 0;
switch (HEAP32[$arHandle + 24 >> 2] | 0) {
case 1:
case 0:
{
$6 = HEAP32[$arHandle + 44 >> 2] | 0;
if (($6 | 0) > 0) {
$i$010 = 0;
do {
$11 = $arHandle + 48 + ($i$010 << 8) + 4 | 0;
if ((HEAP32[$11 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$010 << 8) + 32 >> 3] < .5) {
HEAP32[$arHandle + 48 + ($i$010 << 8) + 8 >> 2] = -1;
HEAP32[$11 >> 2] = -1;
HEAP32[$arHandle + 48 + ($i$010 << 8) + 236 >> 2] = 6;
}
$i$010 = $i$010 + 1 | 0;
} while (($i$010 | 0) < ($6 | 0));
}
break;
}
case 2:
{
$3 = HEAP32[$arHandle + 44 >> 2] | 0;
if (($3 | 0) > 0) {
$i$112 = 0;
do {
$21 = $arHandle + 48 + ($i$112 << 8) + 4 | 0;
if ((HEAP32[$21 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$112 << 8) + 32 >> 3] < .5) {
HEAP32[$arHandle + 48 + ($i$112 << 8) + 12 >> 2] = -1;
HEAP32[$21 >> 2] = -1;
HEAP32[$arHandle + 48 + ($i$112 << 8) + 236 >> 2] = 6;
}
$i$112 = $i$112 + 1 | 0;
} while (($i$112 | 0) < ($3 | 0));
}
break;
}
default:
{
$9 = HEAP32[$arHandle + 44 >> 2] | 0;
if (($9 | 0) > 0) {
$i$29 = 0;
do {
$31 = $arHandle + 48 + ($i$29 << 8) + 8 | 0;
if ((HEAP32[$31 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$29 << 8) + 40 >> 3] < .5) {
HEAP32[$31 >> 2] = -1;
$cfOK$0 = 0;
} else $cfOK$0 = 1; else $cfOK$0 = 1;
$37 = $arHandle + 48 + ($i$29 << 8) + 12 | 0;
if ((HEAP32[$37 >> 2] | 0) > -1) if (+HEAPF64[$arHandle + 48 + ($i$29 << 8) + 48 >> 3] < .5) {
HEAP32[$37 >> 2] = -1;
if (!$cfOK$0) HEAP32[$arHandle + 48 + ($i$29 << 8) + 236 >> 2] = 6;
}
$i$29 = $i$29 + 1 | 0;
} while (($i$29 | 0) < ($9 | 0));
}
}
}
return;
}
function ___stpcpy($d, $s) {
$d = $d | 0;
$s = $s | 0;
var $$0$lcssa = 0, $$01$lcssa = 0, $$0115 = 0, $$016 = 0, $$03 = 0, $$1$ph = 0, $$12$ph = 0, $$128 = 0, $$19 = 0, $0 = 0, $10 = 0, $14 = 0, $20 = 0, $21 = 0, $22 = 0, $29 = 0, $32 = 0, $33 = 0, $7 = 0, $9 = 0, $wd$0$lcssa = 0, $wd$010 = 0, $ws$0$lcssa = 0, $ws$011 = 0, label = 0;
$0 = $s;
L1 : do if (!(($0 ^ $d) & 3)) {
if (!($0 & 3)) {
$$0$lcssa = $s;
$$01$lcssa = $d;
} else {
$$0115 = $d;
$$016 = $s;
while (1) {
$7 = HEAP8[$$016 >> 0] | 0;
HEAP8[$$0115 >> 0] = $7;
if (!($7 << 24 >> 24)) {
$$03 = $$0115;
break L1;
}
$9 = $$016 + 1 | 0;
$10 = $$0115 + 1 | 0;
if (!($9 & 3)) {
$$0$lcssa = $9;
$$01$lcssa = $10;
break;
} else {
$$0115 = $10;
$$016 = $9;
}
}
}
$14 = HEAP32[$$0$lcssa >> 2] | 0;
if (!(($14 & -2139062144 ^ -2139062144) & $14 + -16843009)) {
$22 = $14;
$wd$010 = $$01$lcssa;
$ws$011 = $$0$lcssa;
while (1) {
$20 = $ws$011 + 4 | 0;
$21 = $wd$010 + 4 | 0;
HEAP32[$wd$010 >> 2] = $22;
$22 = HEAP32[$20 >> 2] | 0;
if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) {
$wd$0$lcssa = $21;
$ws$0$lcssa = $20;
break;
} else {
$wd$010 = $21;
$ws$011 = $20;
}
}
} else {
$wd$0$lcssa = $$01$lcssa;
$ws$0$lcssa = $$0$lcssa;
}
$$1$ph = $ws$0$lcssa;
$$12$ph = $wd$0$lcssa;
label = 8;
} else {
$$1$ph = $s;
$$12$ph = $d;
label = 8;
} while (0);
if ((label | 0) == 8) {
$29 = HEAP8[$$1$ph >> 0] | 0;
HEAP8[$$12$ph >> 0] = $29;
if (!($29 << 24 >> 24)) $$03 = $$12$ph; else {
$$128 = $$12$ph;
$$19 = $$1$ph;
while (1) {
$$19 = $$19 + 1 | 0;
$32 = $$128 + 1 | 0;
$33 = HEAP8[$$19 >> 0] | 0;
HEAP8[$32 >> 0] = $33;
if (!($33 << 24 >> 24)) {
$$03 = $32;
break;
} else $$128 = $32;
}
}
}
return $$03 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $10 = 0, $17 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $t$0 = 0, $t$0$lcssa = 0, $t$0$looptemp = 0;
L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else switch (HEAP8[$first >> 0] | 0) {
case 88:
{
$3 = $first + 1 | 0;
$4 = __ZN10__cxxabiv112_GLOBAL__N_116parse_expressionINS0_2DbEEEPKcS4_S4_RT_($3, $last, $db) | 0;
if (($4 | 0) == ($3 | 0) | ($4 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
$$0 = (HEAP8[$4 >> 0] | 0) == 69 ? $4 + 1 | 0 : $first;
break L1;
break;
}
case 74:
{
$10 = $first + 1 | 0;
if (($10 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
} else $t$0 = $10;
while (1) {
if ((HEAP8[$t$0 >> 0] | 0) == 69) {
$t$0$lcssa = $t$0;
break;
}
$t$0$looptemp = $t$0;
$t$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_template_argINS0_2DbEEEPKcS4_S4_RT_($t$0, $last, $db) | 0;
if (($t$0 | 0) == ($t$0$looptemp | 0)) {
$$0 = $first;
break L1;
}
}
$$0 = $t$0$lcssa + 1 | 0;
break L1;
break;
}
case 76:
{
$17 = $first + 1 | 0;
if (($17 | 0) != ($last | 0)) if ((HEAP8[$17 >> 0] | 0) == 90) {
$21 = $first + 2 | 0;
$22 = __ZN10__cxxabiv112_GLOBAL__N_114parse_encodingINS0_2DbEEEPKcS4_S4_RT_($21, $last, $db) | 0;
if (($22 | 0) == ($21 | 0) | ($22 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
return ((HEAP8[$22 >> 0] | 0) == 69 ? $22 + 1 | 0 : $first) | 0;
}
$$0 = __ZN10__cxxabiv112_GLOBAL__N_118parse_expr_primaryINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
break;
}
default:
{
$$0 = __ZN10__cxxabiv112_GLOBAL__N_110parse_typeINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
break L1;
}
} while (0);
return $$0 | 0;
}
function _vfprintf($f, $fmt, $ap) {
$f = $f | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
var $$ = 0, $$0 = 0, $12 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $21 = 0, $22 = 0, $28 = 0, $33 = 0, $6 = 0, $7 = 0, $ap2 = 0, $internal_buf = 0, $nl_arg = 0, $nl_type = 0, $ret$1 = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 224 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ap2 = sp + 80 | 0;
$nl_type = sp + 96 | 0;
$nl_arg = sp;
$internal_buf = sp + 136 | 0;
dest = $nl_type;
stop = dest + 40 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2];
if ((_printf_core(0, $fmt, $ap2, $nl_arg, $nl_type) | 0) < 0) $$0 = -1; else {
if ((HEAP32[$f + 76 >> 2] | 0) > -1) $33 = ___lockfile($f) | 0; else $33 = 0;
$6 = HEAP32[$f >> 2] | 0;
$7 = $6 & 32;
if ((HEAP8[$f + 74 >> 0] | 0) < 1) HEAP32[$f >> 2] = $6 & -33;
$12 = $f + 48 | 0;
if (!(HEAP32[$12 >> 2] | 0)) {
$16 = $f + 44 | 0;
$17 = HEAP32[$16 >> 2] | 0;
HEAP32[$16 >> 2] = $internal_buf;
$18 = $f + 28 | 0;
HEAP32[$18 >> 2] = $internal_buf;
$19 = $f + 20 | 0;
HEAP32[$19 >> 2] = $internal_buf;
HEAP32[$12 >> 2] = 80;
$21 = $f + 16 | 0;
HEAP32[$21 >> 2] = $internal_buf + 80;
$22 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0;
if (!$17) $ret$1 = $22; else {
FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0;
$$ = (HEAP32[$19 >> 2] | 0) == 0 ? -1 : $22;
HEAP32[$16 >> 2] = $17;
HEAP32[$12 >> 2] = 0;
HEAP32[$21 >> 2] = 0;
HEAP32[$18 >> 2] = 0;
HEAP32[$19 >> 2] = 0;
$ret$1 = $$;
}
} else $ret$1 = _printf_core($f, $fmt, $ap2, $nl_arg, $nl_type) | 0;
$28 = HEAP32[$f >> 2] | 0;
HEAP32[$f >> 2] = $28 | $7;
if ($33) ___unlockfile($f);
$$0 = ($28 & 32 | 0) == 0 ? $ret$1 : -1;
}
STACKTOP = sp;
return $$0 | 0;
}
function _get_vertex($x_coord, $y_coord, $st, $ed, $thresh, $vertex, $vnum) {
$x_coord = $x_coord | 0;
$y_coord = $y_coord | 0;
$st = $st | 0;
$ed = $ed | 0;
$thresh = +$thresh;
$vertex = $vertex | 0;
$vnum = $vnum | 0;
var $$0 = 0, $1 = 0, $11 = 0.0, $15 = 0.0, $16 = 0, $27 = 0.0, $28 = 0.0, $29 = 0, $3 = 0, $39 = 0, $5 = 0.0, $7 = 0, $9 = 0, $dmax$0$lcssa = 0.0, $dmax$01 = 0.0, $dmax$1 = 0.0, $i$02 = 0, $v1$0$lcssa = 0, $v1$03 = 0, $v1$1 = 0, label = 0;
$1 = HEAP32[$y_coord + ($ed << 2) >> 2] | 0;
$3 = HEAP32[$y_coord + ($st << 2) >> 2] | 0;
$5 = +($1 - $3 | 0);
$7 = HEAP32[$x_coord + ($st << 2) >> 2] | 0;
$9 = HEAP32[$x_coord + ($ed << 2) >> 2] | 0;
$11 = +($7 - $9 | 0);
$15 = +((Math_imul($9, $3) | 0) - (Math_imul($7, $1) | 0) | 0);
$16 = $st + 1 | 0;
if (($16 | 0) < ($ed | 0)) {
$dmax$01 = 0.0;
$i$02 = $16;
$v1$03 = $16;
while (1) {
$27 = $15 + ($5 * +(HEAP32[$x_coord + ($i$02 << 2) >> 2] | 0) + $11 * +(HEAP32[$y_coord + ($i$02 << 2) >> 2] | 0));
$28 = $27 * $27;
$29 = $28 > $dmax$01;
$dmax$1 = $29 ? $28 : $dmax$01;
$v1$1 = $29 ? $i$02 : $v1$03;
$i$02 = $i$02 + 1 | 0;
if (($i$02 | 0) >= ($ed | 0)) {
$dmax$0$lcssa = $dmax$1;
$v1$0$lcssa = $v1$1;
break;
} else {
$dmax$01 = $dmax$1;
$v1$03 = $v1$1;
}
}
} else {
$dmax$0$lcssa = 0.0;
$v1$0$lcssa = $16;
}
if ($dmax$0$lcssa / ($5 * $5 + $11 * $11) > $thresh) if ((_get_vertex($x_coord, $y_coord, $st, $v1$0$lcssa, $thresh, $vertex, $vnum) | 0) < 0) $$0 = -1; else {
$39 = HEAP32[$vnum >> 2] | 0;
if (($39 | 0) > 5) $$0 = -1; else {
HEAP32[$vertex + ($39 << 2) >> 2] = $v1$0$lcssa;
HEAP32[$vnum >> 2] = (HEAP32[$vnum >> 2] | 0) + 1;
if ((_get_vertex($x_coord, $y_coord, $v1$0$lcssa, $ed, $thresh, $vertex, $vnum) | 0) < 0) $$0 = -1; else label = 7;
}
} else label = 7;
if ((label | 0) == 7) $$0 = 0;
return $$0 | 0;
}
function _setMarkerInfoVertex($id, $markerIndex) {
$id = $id | 0;
$markerIndex = $markerIndex | 0;
var $$0 = 0, $0 = 0, $13 = 0.0, $15 = 0.0, $17 = 0.0, $19 = 0.0, $21 = 0.0, $23 = 0.0, $25 = 0.0, $27 = 0.0, $5 = 0, $6 = 0, $_ZL11gMarkerInfo$ = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) {
$_ZL11gMarkerInfo$ = ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0;
$13 = +HEAPF64[33];
HEAPF64[$_ZL11gMarkerInfo$ + 168 >> 3] = $13;
$15 = +HEAPF64[34];
HEAPF64[$_ZL11gMarkerInfo$ + 176 >> 3] = $15;
$17 = +HEAPF64[35];
HEAPF64[$_ZL11gMarkerInfo$ + 184 >> 3] = $17;
$19 = +HEAPF64[36];
HEAPF64[$_ZL11gMarkerInfo$ + 192 >> 3] = $19;
$21 = +HEAPF64[37];
HEAPF64[$_ZL11gMarkerInfo$ + 200 >> 3] = $21;
$23 = +HEAPF64[38];
HEAPF64[$_ZL11gMarkerInfo$ + 208 >> 3] = $23;
$25 = +HEAPF64[39];
HEAPF64[$_ZL11gMarkerInfo$ + 216 >> 3] = $25;
$27 = +HEAPF64[40];
HEAPF64[$_ZL11gMarkerInfo$ + 224 >> 3] = $27;
HEAPF64[$_ZL11gMarkerInfo$ + 56 >> 3] = ($13 + $17 + $21 + $25) * .25;
HEAPF64[$_ZL11gMarkerInfo$ + 64 >> 3] = ($15 + $19 + $23 + $27) * .25;
$$0 = 0;
break;
} else {
$$0 = HEAP32[523] | 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function ___stdio_read($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
var $$0 = 0, $0 = 0, $1 = 0, $15 = 0, $2 = 0, $27 = 0, $30 = 0, $31 = 0, $32 = 0, $7 = 0, $cnt$0 = 0, $iov = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
$iov = sp + 32 | 0;
HEAP32[$iov >> 2] = $buf;
$0 = $iov + 4 | 0;
$1 = $f + 48 | 0;
$2 = HEAP32[$1 >> 2] | 0;
HEAP32[$0 >> 2] = $len - (($2 | 0) != 0 & 1);
$7 = $f + 44 | 0;
HEAP32[$iov + 8 >> 2] = HEAP32[$7 >> 2];
HEAP32[$iov + 12 >> 2] = $2;
if (!(HEAP32[597] | 0)) {
HEAP32[$vararg_buffer3 >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer3 + 4 >> 2] = $iov;
HEAP32[$vararg_buffer3 + 8 >> 2] = 2;
$cnt$0 = ___syscall_ret(___syscall145(145, $vararg_buffer3 | 0) | 0) | 0;
} else {
_pthread_cleanup_push(13, $f | 0);
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = $iov;
HEAP32[$vararg_buffer + 8 >> 2] = 2;
$15 = ___syscall_ret(___syscall145(145, $vararg_buffer | 0) | 0) | 0;
_pthread_cleanup_pop(0);
$cnt$0 = $15;
}
if (($cnt$0 | 0) < 1) {
HEAP32[$f >> 2] = HEAP32[$f >> 2] | $cnt$0 & 48 ^ 16;
HEAP32[$f + 8 >> 2] = 0;
HEAP32[$f + 4 >> 2] = 0;
$$0 = $cnt$0;
} else {
$27 = HEAP32[$0 >> 2] | 0;
if ($cnt$0 >>> 0 > $27 >>> 0) {
$30 = HEAP32[$7 >> 2] | 0;
$31 = $f + 4 | 0;
HEAP32[$31 >> 2] = $30;
$32 = $30;
HEAP32[$f + 8 >> 2] = $32 + ($cnt$0 - $27);
if (!(HEAP32[$1 >> 2] | 0)) $$0 = $len; else {
HEAP32[$31 >> 2] = $32 + 1;
HEAP8[$buf + ($len + -1) >> 0] = HEAP8[$32 >> 0] | 0;
$$0 = $len;
}
} else $$0 = $cnt$0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$dst_ptr = $dst_ptr | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $10 = 0, $13 = 0, $14 = 0, $15 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $9 = 0, $p$0 = 0;
if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); else {
$3 = $info + 52 | 0;
$4 = HEAP8[$3 >> 0] | 0;
$5 = $info + 53 | 0;
$6 = HEAP8[$5 >> 0] | 0;
$9 = HEAP32[$this + 12 >> 2] | 0;
$10 = $this + 16 + ($9 << 3) | 0;
HEAP8[$3 >> 0] = 0;
HEAP8[$5 >> 0] = 0;
__ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this + 16 | 0, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp);
L4 : do if (($9 | 0) > 1) {
$13 = $info + 24 | 0;
$14 = $this + 8 | 0;
$15 = $info + 54 | 0;
$p$0 = $this + 24 | 0;
do {
if (HEAP8[$15 >> 0] | 0) break L4;
if (!(HEAP8[$3 >> 0] | 0)) {
if (HEAP8[$5 >> 0] | 0) if (!(HEAP32[$14 >> 2] & 1)) break L4;
} else {
if ((HEAP32[$13 >> 2] | 0) == 1) break L4;
if (!(HEAP32[$14 >> 2] & 2)) break L4;
}
HEAP8[$3 >> 0] = 0;
HEAP8[$5 >> 0] = 0;
__ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($p$0, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp);
$p$0 = $p$0 + 8 | 0;
} while ($p$0 >>> 0 < $10 >>> 0);
} while (0);
HEAP8[$3 >> 0] = $4;
HEAP8[$5 >> 0] = $6;
}
return;
}
function _teardown($id) {
$id = $id | 0;
var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $13 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $i$02 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$4 = $3 + 196 | 0;
$5 = HEAP32[$4 >> 2] | 0;
if ($5) {
_free($5);
HEAP32[$4 >> 2] = 0;
HEAP32[$3 + 200 >> 2] = 0;
}
_deleteHandle($3);
_arPattDeleteHandle(HEAP32[$3 + 216 >> 2] | 0) | 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE14__erase_uniqueIiEEjRKT_(2044, $0) | 0;
$10 = $3 + 248 | 0;
$11 = $3 + 252 | 0;
$13 = HEAP32[$10 >> 2] | 0;
if ((HEAP32[$11 >> 2] | 0) != ($13 | 0)) {
$16 = $13;
$i$02 = 0;
do {
_arMultiFreeConfig(HEAP32[$16 + ($i$02 << 3) + 4 >> 2] | 0) | 0;
$i$02 = $i$02 + 1 | 0;
$16 = HEAP32[$10 >> 2] | 0;
} while ($i$02 >>> 0 < (HEAP32[$11 >> 2] | 0) - $16 >> 3 >>> 0);
}
__ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($10);
__ZdlPv($10);
__ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($3 + 248 | 0);
__ZdlPv($3);
$$0 = 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_115parse_simple_idINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) {
$first = $first | 0;
$last = $last | 0;
$db = $db | 0;
var $$0 = 0, $1 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $20 = 0, $22 = 0, $3 = 0, $5 = 0, $6 = 0, $args = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$args = sp;
if (($first | 0) == ($last | 0)) $$0 = $first; else {
$1 = __ZN10__cxxabiv112_GLOBAL__N_117parse_source_nameINS0_2DbEEEPKcS4_S4_RT_($first, $last, $db) | 0;
if (($1 | 0) == ($first | 0)) $$0 = $first; else {
$3 = __ZN10__cxxabiv112_GLOBAL__N_119parse_template_argsINS0_2DbEEEPKcS4_S4_RT_($1, $last, $db) | 0;
if (($3 | 0) == ($1 | 0)) $$0 = $1; else {
$5 = $db + 4 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if ((($6 - (HEAP32[$db >> 2] | 0) | 0) / 24 | 0) >>> 0 < 2) $$0 = $first; else {
__ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($args, $6 + -24 | 0);
$14 = HEAP32[$5 >> 2] | 0;
$15 = $14 + -24 | 0;
$17 = $14;
do {
$16 = $17 + -24 | 0;
HEAP32[$5 >> 2] = $16;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($16);
$17 = HEAP32[$5 >> 2] | 0;
} while (($17 | 0) != ($15 | 0));
$20 = HEAP8[$args >> 0] | 0;
$22 = ($20 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($14 + -48 | 0, $22 ? $args + 1 | 0 : HEAP32[$args + 8 >> 2] | 0, $22 ? ($20 & 255) >>> 1 : HEAP32[$args + 4 >> 2] | 0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($args);
$$0 = $3;
}
}
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arMatrixMul($dest, $a, $b) {
$dest = $dest | 0;
$a = $a | 0;
$b = $b | 0;
var $$0 = 0, $1 = 0, $11 = 0, $18 = 0, $19 = 0, $20 = 0, $29 = 0.0, $6 = 0, $c$04 = 0, $i$01 = 0, $p1$02 = 0, $p2$03 = 0, $p3$09 = 0, $p3$15 = 0, $r$08 = 0, $smax = 0;
$1 = HEAP32[$a + 8 >> 2] | 0;
if (($1 | 0) == (HEAP32[$b + 4 >> 2] | 0)) {
$6 = HEAP32[$dest + 4 >> 2] | 0;
if (($6 | 0) == (HEAP32[$a + 4 >> 2] | 0)) {
$11 = HEAP32[$dest + 8 >> 2] | 0;
if (($11 | 0) == (HEAP32[$b + 8 >> 2] | 0)) {
$smax = ($11 | 0) > 0 ? $11 : 0;
if (($6 | 0) > 0) {
$18 = ($11 | 0) > 0;
$19 = ($1 | 0) > 0;
$p3$09 = HEAP32[$dest >> 2] | 0;
$r$08 = 0;
while (1) {
$20 = Math_imul($1, $r$08) | 0;
if ($18) {
$c$04 = 0;
$p3$15 = $p3$09;
while (1) {
HEAPF64[$p3$15 >> 3] = 0.0;
if ($19) {
$29 = 0.0;
$i$01 = 0;
$p1$02 = (HEAP32[$a >> 2] | 0) + ($20 << 3) | 0;
$p2$03 = (HEAP32[$b >> 2] | 0) + ($c$04 << 3) | 0;
while (1) {
$29 = $29 + +HEAPF64[$p1$02 >> 3] * +HEAPF64[$p2$03 >> 3];
HEAPF64[$p3$15 >> 3] = $29;
$i$01 = $i$01 + 1 | 0;
if (($i$01 | 0) >= ($1 | 0)) break; else {
$p1$02 = $p1$02 + 8 | 0;
$p2$03 = $p2$03 + ($11 << 3) | 0;
}
}
}
$c$04 = $c$04 + 1 | 0;
if (($c$04 | 0) >= ($11 | 0)) break; else $p3$15 = $p3$15 + 8 | 0;
}
}
$r$08 = $r$08 + 1 | 0;
if (($r$08 | 0) >= ($6 | 0)) {
$$0 = 0;
break;
} else $p3$09 = $p3$09 + ($smax << 3) | 0;
}
} else $$0 = 0;
} else $$0 = -1;
} else $$0 = -1;
} else $$0 = -1;
return $$0 | 0;
}
function __ZNSt3__16vectorINS0_INS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEEENS4_IS8_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS8_RS9_EE($this, $__v) {
$this = $this | 0;
$__v = $__v | 0;
var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0, $$0$i1$looptemp = 0;
$0 = HEAP32[$this >> 2] | 0;
$1 = $this + 4 | 0;
$2 = HEAP32[$1 >> 2] | 0;
$3 = $__v + 4 | 0;
if (($2 | 0) != ($0 | 0)) {
$$0$i1 = $2;
do {
$5 = HEAP32[$3 >> 2] | 0;
$6 = $5 + -16 | 0;
$$0$i1$looptemp = $$0$i1;
$$0$i1 = $$0$i1 + -16 | 0;
HEAP32[$6 >> 2] = 0;
$9 = $5 + -12 | 0;
HEAP32[$9 >> 2] = 0;
$11 = HEAP32[$$0$i1$looptemp + -4 >> 2] | 0;
HEAP32[$5 + -8 >> 2] = 0;
HEAP32[$5 + -4 >> 2] = $11;
HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2];
$14 = $$0$i1$looptemp + -12 | 0;
HEAP32[$9 >> 2] = HEAP32[$14 >> 2];
$16 = $$0$i1$looptemp + -8 | 0;
HEAP32[$5 + -8 >> 2] = HEAP32[$16 >> 2];
HEAP32[$16 >> 2] = 0;
HEAP32[$14 >> 2] = 0;
HEAP32[$$0$i1 >> 2] = 0;
HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -16;
} while (($$0$i1 | 0) != ($0 | 0));
}
$22 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = HEAP32[$3 >> 2];
HEAP32[$3 >> 2] = $22;
$24 = $__v + 8 | 0;
$25 = HEAP32[$1 >> 2] | 0;
HEAP32[$1 >> 2] = HEAP32[$24 >> 2];
HEAP32[$24 >> 2] = $25;
$27 = $this + 8 | 0;
$28 = $__v + 12 | 0;
$29 = HEAP32[$27 >> 2] | 0;
HEAP32[$27 >> 2] = HEAP32[$28 >> 2];
HEAP32[$28 >> 2] = $29;
HEAP32[$__v >> 2] = HEAP32[$3 >> 2];
return;
}
function _strspn($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $$0 = 0, $$028 = 0, $$03 = 0, $$03$lcssa = 0, $$1$lcssa = 0, $$16 = 0, $0 = 0, $11 = 0, $14 = 0, $18 = 0, $24 = 0, $33 = 0, $byteset = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$byteset = sp;
HEAP32[$byteset >> 2] = 0;
HEAP32[$byteset + 4 >> 2] = 0;
HEAP32[$byteset + 8 >> 2] = 0;
HEAP32[$byteset + 12 >> 2] = 0;
HEAP32[$byteset + 16 >> 2] = 0;
HEAP32[$byteset + 20 >> 2] = 0;
HEAP32[$byteset + 24 >> 2] = 0;
HEAP32[$byteset + 28 >> 2] = 0;
$0 = HEAP8[$c >> 0] | 0;
do if (!($0 << 24 >> 24)) $$0 = 0; else {
if (!(HEAP8[$c + 1 >> 0] | 0)) {
$$03 = $s;
while (1) if ((HEAP8[$$03 >> 0] | 0) == $0 << 24 >> 24) $$03 = $$03 + 1 | 0; else {
$$03$lcssa = $$03;
break;
}
$$0 = $$03$lcssa - $s | 0;
break;
} else {
$$028 = $c;
$14 = $0;
}
do {
$18 = $byteset + ((($14 & 255) >>> 5 & 255) << 2) | 0;
HEAP32[$18 >> 2] = HEAP32[$18 >> 2] | 1 << ($14 & 31);
$$028 = $$028 + 1 | 0;
$14 = HEAP8[$$028 >> 0] | 0;
} while ($14 << 24 >> 24 != 0);
$11 = HEAP8[$s >> 0] | 0;
L10 : do if (!($11 << 24 >> 24)) $$1$lcssa = $s; else {
$$16 = $s;
$24 = $11;
while (1) {
if (!(HEAP32[$byteset + ((($24 & 255) >>> 5 & 255) << 2) >> 2] & 1 << ($24 & 31))) {
$$1$lcssa = $$16;
break L10;
}
$33 = $$16 + 1 | 0;
$24 = HEAP8[$33 >> 0] | 0;
if (!($24 << 24 >> 24)) {
$$1$lcssa = $33;
break;
} else $$16 = $33;
}
} while (0);
$$0 = $$1$lcssa - $s | 0;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arLog($logLevel, $format, $varargs) {
$logLevel = $logLevel | 0;
$format = $format | 0;
$varargs = $varargs | 0;
var $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $5 = 0, $7 = 0, $ap = 0, $buf = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$buf = sp + 16 | 0;
$ap = sp;
HEAP32[$buf >> 2] = 0;
if (($format | 0) != 0 & (HEAP32[496] | 0) <= ($logLevel | 0)) if (HEAP8[$format >> 0] | 0) {
HEAP32[$ap >> 2] = $varargs;
$5 = _vasprintf($buf, $format, $ap) | 0;
if (($5 | 0) > -1) {
$7 = HEAP32[497] | 0;
do if (!$7) _fputs(HEAP32[$buf >> 2] | 0, HEAP32[659] | 0) | 0; else {
if (!(HEAP32[498] | 0)) {
FUNCTION_TABLE_vi[$7 & 15](HEAP32[$buf >> 2] | 0);
break;
}
$12 = _pthread_self() | 0;
$15 = HEAP32[500] | 0;
if (($12 | 0) == (HEAP32[499] | 0)) {
if (($15 | 0) > 0) {
FUNCTION_TABLE_vi[$7 & 15](HEAP32[502] | 0);
HEAP32[500] = 0;
$29 = HEAP32[497] | 0;
} else $29 = $7;
FUNCTION_TABLE_vi[$29 & 15](HEAP32[$buf >> 2] | 0);
break;
}
$16 = HEAP32[501] | 0;
if (($15 | 0) < ($16 | 0)) {
$21 = (HEAP32[502] | 0) + $15 | 0;
if (($5 | 0) < (-3 - $15 + $16 | 0)) {
_strcpy($21, HEAP32[$buf >> 2] | 0) | 0;
HEAP32[500] = (HEAP32[500] | 0) + $5;
break;
} else {
HEAP8[$21 >> 0] = 46;
HEAP8[$21 + 1 >> 0] = 46;
HEAP8[$21 + 2 >> 0] = 46;
HEAP8[$21 + 3 >> 0] = 0;
HEAP32[500] = HEAP32[501];
break;
}
}
} while (0);
_free(HEAP32[$buf >> 2] | 0);
}
}
STACKTOP = sp;
return;
}
function __ZNSt3__16vectorINS0_IN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEENS4_IS6_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS6_RS7_EE($this, $__v) {
$this = $this | 0;
$__v = $__v | 0;
var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $14 = 0, $16 = 0, $2 = 0, $22 = 0, $24 = 0, $25 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0, $$0$i1$looptemp = 0;
$0 = HEAP32[$this >> 2] | 0;
$1 = $this + 4 | 0;
$2 = HEAP32[$1 >> 2] | 0;
$3 = $__v + 4 | 0;
if (($2 | 0) != ($0 | 0)) {
$$0$i1 = $2;
do {
$5 = HEAP32[$3 >> 2] | 0;
$6 = $5 + -16 | 0;
$$0$i1$looptemp = $$0$i1;
$$0$i1 = $$0$i1 + -16 | 0;
HEAP32[$6 >> 2] = 0;
$9 = $5 + -12 | 0;
HEAP32[$9 >> 2] = 0;
$11 = HEAP32[$$0$i1$looptemp + -4 >> 2] | 0;
HEAP32[$5 + -8 >> 2] = 0;
HEAP32[$5 + -4 >> 2] = $11;
HEAP32[$6 >> 2] = HEAP32[$$0$i1 >> 2];
$14 = $$0$i1$looptemp + -12 | 0;
HEAP32[$9 >> 2] = HEAP32[$14 >> 2];
$16 = $$0$i1$looptemp + -8 | 0;
HEAP32[$5 + -8 >> 2] = HEAP32[$16 >> 2];
HEAP32[$16 >> 2] = 0;
HEAP32[$14 >> 2] = 0;
HEAP32[$$0$i1 >> 2] = 0;
HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -16;
} while (($$0$i1 | 0) != ($0 | 0));
}
$22 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = HEAP32[$3 >> 2];
HEAP32[$3 >> 2] = $22;
$24 = $__v + 8 | 0;
$25 = HEAP32[$1 >> 2] | 0;
HEAP32[$1 >> 2] = HEAP32[$24 >> 2];
HEAP32[$24 >> 2] = $25;
$27 = $this + 8 | 0;
$28 = $__v + 12 | 0;
$29 = HEAP32[$27 >> 2] | 0;
HEAP32[$27 >> 2] = HEAP32[$28 >> 2];
HEAP32[$28 >> 2] = $29;
HEAP32[$__v >> 2] = HEAP32[$3 >> 2];
return;
}
function _getMultiEachMarkerInfo($id, $multiMarkerId, $markerIndex) {
$id = $id | 0;
$multiMarkerId = $multiMarkerId | 0;
$markerIndex = $markerIndex | 0;
var $$0 = 0, $0 = 0, $17 = 0, $23 = 0, $4 = 0, $8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$8 = HEAP32[$4 + 248 >> 2] | 0;
if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 252 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) {
$$0 = HEAP32[524] | 0;
break;
}
$17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0;
if (($markerIndex | 0) < 0 ? 1 : (HEAP32[$17 + 4 >> 2] | 0) <= ($markerIndex | 0)) {
$$0 = HEAP32[523] | 0;
break;
} else {
$23 = HEAP32[$17 >> 2] | 0;
_matrixCopy($23 + ($markerIndex * 320 | 0) + 16 | 0, 264);
_emscripten_asm_const_4(0, HEAP32[$23 + ($markerIndex * 320 | 0) + 304 >> 2] | 0, HEAP32[$23 + ($markerIndex * 320 | 0) >> 2] | 0, HEAP32[$23 + ($markerIndex * 320 | 0) + 4 >> 2] | 0, +(+HEAPF64[$23 + ($markerIndex * 320 | 0) + 8 >> 3])) | 0;
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendIPKcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueERS7_E4typeESC_SC_($this, $__first, $__last) {
$this = $this | 0;
$__first = $__first | 0;
$__last = $__last | 0;
var $$03 = 0, $0 = 0, $1 = 0, $12 = 0, $15 = 0, $16 = 0, $21 = 0, $29 = 0, $34 = 0, $41 = 0, $8 = 0, $__p$04 = 0, $scevgep1 = 0;
$0 = $__first;
$1 = HEAP8[$this >> 0] | 0;
if (!($1 & 1)) {
$15 = 10;
$16 = ($1 & 255) >>> 1;
$41 = $1;
} else {
$8 = HEAP32[$this >> 2] | 0;
$15 = ($8 & -2) + -1 | 0;
$16 = HEAP32[$this + 4 >> 2] | 0;
$41 = $8 & 255;
}
$12 = $__last - $0 | 0;
do if (($__last | 0) != ($__first | 0)) {
if (($15 - $16 | 0) >>> 0 < $12 >>> 0) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $15, $16 + $12 - $15 | 0, $16, $16, 0);
$21 = HEAP8[$this >> 0] | 0;
} else $21 = $41;
if (!($21 & 1)) $29 = $this + 1 | 0; else $29 = HEAP32[$this + 8 >> 2] | 0;
$scevgep1 = $__last + ($16 - $0) | 0;
if (($__first | 0) != ($__last | 0)) {
$$03 = $__first;
$__p$04 = $29 + $16 | 0;
while (1) {
HEAP8[$__p$04 >> 0] = HEAP8[$$03 >> 0] | 0;
$$03 = $$03 + 1 | 0;
if (($$03 | 0) == ($__last | 0)) break; else $__p$04 = $__p$04 + 1 | 0;
}
}
HEAP8[$29 + $scevgep1 >> 0] = 0;
$34 = $16 + $12 | 0;
if (!(HEAP8[$this >> 0] & 1)) {
HEAP8[$this >> 0] = $34 << 1;
break;
} else {
HEAP32[$this + 4 >> 2] = $34;
break;
}
} while (0);
return;
}
function _fread($destv, $size, $nmemb, $f) {
$destv = $destv | 0;
$size = $size | 0;
$nmemb = $nmemb | 0;
$f = $f | 0;
var $$ = 0, $$0 = 0, $0 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $28 = 0, $32 = 0, $5 = 0, $7 = 0, $dest$0$ph = 0, $dest$02 = 0, $l$0$ph = 0, $l$03 = 0, $l$03$lcssa = 0, label = 0;
$0 = Math_imul($nmemb, $size) | 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) $32 = ___lockfile($f) | 0; else $32 = 0;
$5 = $f + 74 | 0;
$7 = HEAP8[$5 >> 0] | 0;
HEAP8[$5 >> 0] = $7 + 255 | $7;
$13 = $f + 4 | 0;
$14 = HEAP32[$13 >> 2] | 0;
$17 = (HEAP32[$f + 8 >> 2] | 0) - $14 | 0;
if (($17 | 0) > 0) {
$$ = $17 >>> 0 < $0 >>> 0 ? $17 : $0;
_memcpy($destv | 0, $14 | 0, $$ | 0) | 0;
HEAP32[$13 >> 2] = $14 + $$;
$dest$0$ph = $destv + $$ | 0;
$l$0$ph = $0 - $$ | 0;
} else {
$dest$0$ph = $destv;
$l$0$ph = $0;
}
L7 : do if (!$l$0$ph) label = 13; else {
$24 = $f + 32 | 0;
$dest$02 = $dest$0$ph;
$l$03 = $l$0$ph;
while (1) {
if (___toread($f) | 0) {
$l$03$lcssa = $l$03;
break;
}
$28 = FUNCTION_TABLE_iiii[HEAP32[$24 >> 2] & 15]($f, $dest$02, $l$03) | 0;
if (($28 + 1 | 0) >>> 0 < 2) {
$l$03$lcssa = $l$03;
break;
}
if (($l$03 | 0) == ($28 | 0)) {
label = 13;
break L7;
} else {
$dest$02 = $dest$02 + $28 | 0;
$l$03 = $l$03 - $28 | 0;
}
}
if ($32) ___unlockfile($f);
$$0 = (($0 - $l$03$lcssa | 0) >>> 0) / ($size >>> 0) | 0;
} while (0);
if ((label | 0) == 13) if (!$32) $$0 = $nmemb; else {
___unlockfile($f);
$$0 = $nmemb;
}
return $$0 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($this, $__pos, $__s, $__n) {
$this = $this | 0;
$__pos = $__pos | 0;
$__s = $__s | 0;
$__n = $__n | 0;
var $$1 = 0, $$pre$phiZ2D = 0, $0 = 0, $13 = 0, $17 = 0, $2 = 0, $23 = 0, $25 = 0, $31 = 0, $8 = 0, $9 = 0;
$0 = HEAP8[$this >> 0] | 0;
$2 = ($0 & 1) == 0;
if ($2) $8 = ($0 & 255) >>> 1; else $8 = HEAP32[$this + 4 >> 2] | 0;
if ($8 >>> 0 < $__pos >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv($this);
if ($2) {
$13 = 10;
$17 = $0;
} else {
$9 = HEAP32[$this >> 2] | 0;
$13 = ($9 & -2) + -1 | 0;
$17 = $9 & 255;
}
if (($13 - $8 | 0) >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $13, $8 + $__n - $13 | 0, $8, $__pos, 0, $__n, $__s); else if ($__n) {
if (!($17 & 1)) $23 = $this + 1 | 0; else $23 = HEAP32[$this + 8 >> 2] | 0;
if (($8 | 0) == ($__pos | 0)) {
$$1 = $__s;
$$pre$phiZ2D = $23 + $__pos | 0;
} else {
$25 = $23 + $__pos | 0;
_memmove($23 + ($__n + $__pos) | 0, $25 | 0, $8 - $__pos | 0) | 0;
$$1 = $25 >>> 0 <= $__s >>> 0 & ($23 + $8 | 0) >>> 0 > $__s >>> 0 ? $__s + $__n | 0 : $__s;
$$pre$phiZ2D = $25;
}
_memmove($$pre$phiZ2D | 0, $$1 | 0, $__n | 0) | 0;
$31 = $8 + $__n | 0;
if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $31 << 1; else HEAP32[$this + 4 >> 2] = $31;
HEAP8[$23 + $31 >> 0] = 0;
}
return $this | 0;
}
function _arUtilMatInv($s, $d) {
$s = $s | 0;
$d = $d | 0;
var $0 = 0, $1 = 0, $2 = 0, $22 = 0, $23 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $j$08 = 0, $j$16 = 0;
$0 = _arMatrixAlloc(4, 4) | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = HEAP32[$0 >> 2] | 0;
$3 = HEAP32[$0 >> 2] | 0;
$4 = HEAP32[$0 >> 2] | 0;
$j$08 = 0;
do {
$5 = $j$08 << 2;
HEAPF64[$1 + ($5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) >> 3];
HEAPF64[$2 + (1 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 8 >> 3];
HEAPF64[$3 + (2 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 16 >> 3];
HEAPF64[$4 + (3 + $5 << 3) >> 3] = +HEAPF64[$s + ($j$08 << 5) + 24 >> 3];
$j$08 = $j$08 + 1 | 0;
} while (($j$08 | 0) != 3);
$22 = HEAP32[$0 >> 2] | 0;
$23 = $22 + 96 | 0;
HEAP32[$23 >> 2] = 0;
HEAP32[$23 + 4 >> 2] = 0;
HEAP32[$23 + 8 >> 2] = 0;
HEAP32[$23 + 12 >> 2] = 0;
HEAP32[$23 + 16 >> 2] = 0;
HEAP32[$23 + 20 >> 2] = 0;
HEAPF64[$22 + 120 >> 3] = 1.0;
_arMatrixSelfInv($0) | 0;
$25 = HEAP32[$0 >> 2] | 0;
$26 = HEAP32[$0 >> 2] | 0;
$27 = HEAP32[$0 >> 2] | 0;
$28 = HEAP32[$0 >> 2] | 0;
$j$16 = 0;
do {
$29 = $j$16 << 2;
HEAPF64[$d + ($j$16 << 5) >> 3] = +HEAPF64[$25 + ($29 << 3) >> 3];
HEAPF64[$d + ($j$16 << 5) + 8 >> 3] = +HEAPF64[$26 + (1 + $29 << 3) >> 3];
HEAPF64[$d + ($j$16 << 5) + 16 >> 3] = +HEAPF64[$27 + (2 + $29 << 3) >> 3];
HEAPF64[$d + ($j$16 << 5) + 24 >> 3] = +HEAPF64[$28 + (3 + $29 << 3) >> 3];
$j$16 = $j$16 + 1 | 0;
} while (($j$16 | 0) != 3);
_arMatrixFree($0) | 0;
return 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_119parse_discriminatorEPKcS2_($first, $last) {
$first = $first | 0;
$last = $last | 0;
var $$0 = 0, $$lcssa = 0, $1 = 0, $11 = 0, $3 = 0, $5 = 0, $9 = 0, $first$pn = 0, $t1$016 = 0, $t1$016$lcssa = 0, $t11$0 = 0;
L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else {
$1 = HEAP8[$first >> 0] | 0;
if ($1 << 24 >> 24 != 95) {
if ((($1 << 24 >> 24) + -48 | 0) >>> 0 < 10) $first$pn = $first; else {
$$0 = $first;
break;
}
while (1) {
$t11$0 = $first$pn + 1 | 0;
if (($t11$0 | 0) == ($last | 0)) {
$$0 = $last;
break L1;
}
if (((HEAP8[$t11$0 >> 0] | 0) + -48 | 0) >>> 0 < 10) $first$pn = $t11$0; else {
$$0 = $t11$0;
break L1;
}
}
}
$3 = $first + 1 | 0;
if (($3 | 0) == ($last | 0)) $$0 = $first; else {
$5 = HEAP8[$3 >> 0] | 0;
if ((($5 << 24 >> 24) + -48 | 0) >>> 0 < 10) {
$$0 = $first + 2 | 0;
break;
}
if ($5 << 24 >> 24 == 95) {
$9 = $first + 2 | 0;
if (($9 | 0) == ($last | 0)) $$0 = $first; else {
$t1$016 = $9;
while (1) {
$11 = HEAP8[$t1$016 >> 0] | 0;
if ((($11 << 24 >> 24) + -48 | 0) >>> 0 >= 10) {
$$lcssa = $11;
$t1$016$lcssa = $t1$016;
break;
}
$t1$016 = $t1$016 + 1 | 0;
if (($t1$016 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
}
return ($$lcssa << 24 >> 24 == 95 ? $t1$016$lcssa + 1 | 0 : $first) | 0;
}
} else $$0 = $first;
}
} while (0);
return $$0 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_del, $__n_add, $__p_new_stuff) {
$this = $this | 0;
$__old_cap = $__old_cap | 0;
$__delta_cap = $__delta_cap | 0;
$__old_sz = $__old_sz | 0;
$__n_copy = $__n_copy | 0;
$__n_del = $__n_del | 0;
$__n_add = $__n_add | 0;
$__p_new_stuff = $__p_new_stuff | 0;
var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $23 = 0, $31 = 0, $9 = 0;
if ((-18 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this);
if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0;
if ($__old_cap >>> 0 < 2147483623) {
$9 = $__delta_cap + $__old_cap | 0;
$10 = $__old_cap << 1;
$12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9;
$17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16;
} else $17 = -17;
$18 = _malloc($17) | 0;
if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0;
if ($__n_add) _memcpy($18 + $__n_copy | 0, $__p_new_stuff | 0, $__n_add | 0) | 0;
$23 = $__old_sz - $__n_del | 0;
if (($23 | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + ($__n_del + $__n_copy) | 0, $23 - $__n_copy | 0) | 0;
if (($__old_cap | 0) != 10) _free($20);
HEAP32[$this + 8 >> 2] = $18;
HEAP32[$this >> 2] = $17 | 1;
$31 = $23 + $__n_add | 0;
HEAP32[$this + 4 >> 2] = $31;
HEAP8[$18 + $31 >> 0] = 0;
return;
}
function _strcspn($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $$0 = 0, $$027 = 0, $$03$lcssa = 0, $$035 = 0, $0 = 0, $10 = 0, $13 = 0, $17 = 0, $23 = 0, $32 = 0, $byteset = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$byteset = sp;
$0 = HEAP8[$c >> 0] | 0;
if (!($0 << 24 >> 24)) label = 3; else if (!(HEAP8[$c + 1 >> 0] | 0)) label = 3; else {
HEAP32[$byteset >> 2] = 0;
HEAP32[$byteset + 4 >> 2] = 0;
HEAP32[$byteset + 8 >> 2] = 0;
HEAP32[$byteset + 12 >> 2] = 0;
HEAP32[$byteset + 16 >> 2] = 0;
HEAP32[$byteset + 20 >> 2] = 0;
HEAP32[$byteset + 24 >> 2] = 0;
HEAP32[$byteset + 28 >> 2] = 0;
$$027 = $c;
$13 = $0;
do {
$17 = $byteset + ((($13 & 255) >>> 5 & 255) << 2) | 0;
HEAP32[$17 >> 2] = HEAP32[$17 >> 2] | 1 << ($13 & 31);
$$027 = $$027 + 1 | 0;
$13 = HEAP8[$$027 >> 0] | 0;
} while ($13 << 24 >> 24 != 0);
$10 = HEAP8[$s >> 0] | 0;
L7 : do if (!($10 << 24 >> 24)) $$03$lcssa = $s; else {
$$035 = $s;
$23 = $10;
while (1) {
if (HEAP32[$byteset + ((($23 & 255) >>> 5 & 255) << 2) >> 2] & 1 << ($23 & 31)) {
$$03$lcssa = $$035;
break L7;
}
$32 = $$035 + 1 | 0;
$23 = HEAP8[$32 >> 0] | 0;
if (!($23 << 24 >> 24)) {
$$03$lcssa = $32;
break;
} else $$035 = $32;
}
} while (0);
$$0 = $$03$lcssa - $s | 0;
}
if ((label | 0) == 3) $$0 = (___strchrnul($s, $0 << 24 >> 24) | 0) - $s | 0;
STACKTOP = sp;
return $$0 | 0;
}
function ___strchrnul($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $$0 = 0, $$02$lcssa = 0, $$0211 = 0, $$1 = 0, $0 = 0, $11 = 0, $15 = 0, $16 = 0, $22 = 0, $23 = 0, $29 = 0, $36 = 0, $37 = 0, $5 = 0, $8 = 0, $w$0$lcssa = 0, $w$08 = 0;
$0 = $c & 255;
L1 : do if (!$0) $$0 = $s + (_strlen($s) | 0) | 0; else {
if (!($s & 3)) $$02$lcssa = $s; else {
$5 = $c & 255;
$$0211 = $s;
while (1) {
$8 = HEAP8[$$0211 >> 0] | 0;
if ($8 << 24 >> 24 == 0 ? 1 : $8 << 24 >> 24 == $5 << 24 >> 24) {
$$0 = $$0211;
break L1;
}
$11 = $$0211 + 1 | 0;
if (!($11 & 3)) {
$$02$lcssa = $11;
break;
} else $$0211 = $11;
}
}
$15 = Math_imul($0, 16843009) | 0;
$16 = HEAP32[$$02$lcssa >> 2] | 0;
L10 : do if (!(($16 & -2139062144 ^ -2139062144) & $16 + -16843009)) {
$23 = $16;
$w$08 = $$02$lcssa;
while (1) {
$22 = $23 ^ $15;
if (($22 & -2139062144 ^ -2139062144) & $22 + -16843009) {
$w$0$lcssa = $w$08;
break L10;
}
$29 = $w$08 + 4 | 0;
$23 = HEAP32[$29 >> 2] | 0;
if (($23 & -2139062144 ^ -2139062144) & $23 + -16843009) {
$w$0$lcssa = $29;
break;
} else $w$08 = $29;
}
} else $w$0$lcssa = $$02$lcssa; while (0);
$36 = $c & 255;
$$1 = $w$0$lcssa;
while (1) {
$37 = HEAP8[$$1 >> 0] | 0;
if ($37 << 24 >> 24 == 0 ? 1 : $37 << 24 >> 24 == $36 << 24 >> 24) {
$$0 = $$1;
break;
} else $$1 = $$1 + 1 | 0;
}
} while (0);
return $$0 | 0;
}
function _arGetTransMatRobust($handle, $initConv, $pos2d, $pos3d, $num, $conv) {
$handle = $handle | 0;
$initConv = $initConv | 0;
$pos2d = $pos2d | 0;
$pos3d = $pos3d | 0;
$num = $num | 0;
$conv = $conv | 0;
var $1 = 0, $4 = 0, $5 = 0, $data = 0, $err = 0, $i$01 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$data = sp + 20 | 0;
$err = sp;
$1 = _malloc($num << 4) | 0;
HEAP32[$data >> 2] = $1;
if (!$1) {
_arLog(3, 5471, sp + 8 | 0);
_exit(1);
}
$4 = _malloc($num * 24 | 0) | 0;
$5 = $data + 4 | 0;
HEAP32[$5 >> 2] = $4;
if (!$4) {
_arLog(3, 5471, sp + 16 | 0);
_exit(1);
}
if (($num | 0) > 0) {
$i$01 = 0;
do {
HEAPF64[$1 + ($i$01 << 4) >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) >> 3];
HEAPF64[$1 + ($i$01 << 4) + 8 >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) + 8 >> 3];
HEAPF64[$4 + ($i$01 * 24 | 0) >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) >> 3];
HEAPF64[$4 + ($i$01 * 24 | 0) + 8 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 8 >> 3];
HEAPF64[$4 + ($i$01 * 24 | 0) + 16 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 16 >> 3];
$i$01 = $i$01 + 1 | 0;
} while (($i$01 | 0) < ($num | 0));
}
HEAP32[$data + 8 >> 2] = $num;
if ((_icpPointRobust(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0) HEAPF64[$err >> 3] = 1.0e8;
_free(HEAP32[$data >> 2] | 0);
_free(HEAP32[$5 >> 2] | 0);
STACKTOP = sp;
return +(+HEAPF64[$err >> 3]);
}
function _arGetTransMat($handle, $initConv, $pos2d, $pos3d, $num, $conv) {
$handle = $handle | 0;
$initConv = $initConv | 0;
$pos2d = $pos2d | 0;
$pos3d = $pos3d | 0;
$num = $num | 0;
$conv = $conv | 0;
var $1 = 0, $4 = 0, $5 = 0, $data = 0, $err = 0, $i$01 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$data = sp + 20 | 0;
$err = sp;
$1 = _malloc($num << 4) | 0;
HEAP32[$data >> 2] = $1;
if (!$1) {
_arLog(3, 5471, sp + 8 | 0);
_exit(1);
}
$4 = _malloc($num * 24 | 0) | 0;
$5 = $data + 4 | 0;
HEAP32[$5 >> 2] = $4;
if (!$4) {
_arLog(3, 5471, sp + 16 | 0);
_exit(1);
}
if (($num | 0) > 0) {
$i$01 = 0;
do {
HEAPF64[$1 + ($i$01 << 4) >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) >> 3];
HEAPF64[$1 + ($i$01 << 4) + 8 >> 3] = +HEAPF64[$pos2d + ($i$01 << 4) + 8 >> 3];
HEAPF64[$4 + ($i$01 * 24 | 0) >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) >> 3];
HEAPF64[$4 + ($i$01 * 24 | 0) + 8 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 8 >> 3];
HEAPF64[$4 + ($i$01 * 24 | 0) + 16 >> 3] = +HEAPF64[$pos3d + ($i$01 * 24 | 0) + 16 >> 3];
$i$01 = $i$01 + 1 | 0;
} while (($i$01 | 0) < ($num | 0));
}
HEAP32[$data + 8 >> 2] = $num;
if ((_icpPoint(HEAP32[$handle >> 2] | 0, $data, $initConv, $conv, $err) | 0) < 0) HEAPF64[$err >> 3] = 1.0e8;
_free(HEAP32[$data >> 2] | 0);
_free(HEAP32[$5 >> 2] | 0);
STACKTOP = sp;
return +(+HEAPF64[$err >> 3]);
}
function ___fwritex($s, $l, $f) {
$s = $s | 0;
$l = $l | 0;
$f = $f | 0;
var $$0 = 0, $$01 = 0, $$02 = 0, $0 = 0, $1 = 0, $19 = 0, $29 = 0, $5 = 0, $6 = 0, $8 = 0, $i$0 = 0, $i$0$lcssa10 = 0, $i$1 = 0, label = 0;
$0 = $f + 16 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!$1) if (!(___towrite($f) | 0)) {
$8 = HEAP32[$0 >> 2] | 0;
label = 4;
} else $$0 = 0; else {
$8 = $1;
label = 4;
}
L4 : do if ((label | 0) == 4) {
$5 = $f + 20 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (($8 - $6 | 0) >>> 0 < $l >>> 0) {
$$0 = FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, $s, $l) | 0;
break;
}
L9 : do if ((HEAP8[$f + 75 >> 0] | 0) > -1) {
$i$0 = $l;
while (1) {
if (!$i$0) {
$$01 = $l;
$$02 = $s;
$29 = $6;
$i$1 = 0;
break L9;
}
$19 = $i$0 + -1 | 0;
if ((HEAP8[$s + $19 >> 0] | 0) == 10) {
$i$0$lcssa10 = $i$0;
break;
} else $i$0 = $19;
}
if ((FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, $s, $i$0$lcssa10) | 0) >>> 0 < $i$0$lcssa10 >>> 0) {
$$0 = $i$0$lcssa10;
break L4;
}
$$01 = $l - $i$0$lcssa10 | 0;
$$02 = $s + $i$0$lcssa10 | 0;
$29 = HEAP32[$5 >> 2] | 0;
$i$1 = $i$0$lcssa10;
} else {
$$01 = $l;
$$02 = $s;
$29 = $6;
$i$1 = 0;
} while (0);
_memcpy($29 | 0, $$02 | 0, $$01 | 0) | 0;
HEAP32[$5 >> 2] = (HEAP32[$5 >> 2] | 0) + $$01;
$$0 = $i$1 + $$01 | 0;
} while (0);
return $$0 | 0;
}
function ___shgetc($f) {
$f = $f | 0;
var $$0 = 0, $$phi$trans$insert = 0, $$pre = 0, $$pre4 = 0, $0 = 0, $1 = 0, $12 = 0, $14 = 0, $15 = 0, $21 = 0, $26 = 0, $28 = 0, $31 = 0, $36 = 0, $41 = 0, $6 = 0, $9 = 0, label = 0;
$0 = $f + 104 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if (!$1) label = 3; else if ((HEAP32[$f + 108 >> 2] | 0) < ($1 | 0)) label = 3; else label = 4;
if ((label | 0) == 3) {
$6 = ___uflow($f) | 0;
if (($6 | 0) < 0) label = 4; else {
$9 = HEAP32[$0 >> 2] | 0;
$$phi$trans$insert = $f + 8 | 0;
if (!$9) {
$$pre = HEAP32[$$phi$trans$insert >> 2] | 0;
$26 = $$pre;
$41 = $$pre;
label = 9;
} else {
$12 = HEAP32[$$phi$trans$insert >> 2] | 0;
$14 = HEAP32[$f + 4 >> 2] | 0;
$15 = $12;
$21 = $9 - (HEAP32[$f + 108 >> 2] | 0) + -1 | 0;
if (($15 - $14 | 0) > ($21 | 0)) {
HEAP32[$f + 100 >> 2] = $14 + $21;
$28 = $12;
} else {
$26 = $15;
$41 = $12;
label = 9;
}
}
if ((label | 0) == 9) {
HEAP32[$f + 100 >> 2] = $26;
$28 = $41;
}
$$pre4 = HEAP32[$f + 4 >> 2] | 0;
if ($28) {
$31 = $f + 108 | 0;
HEAP32[$31 >> 2] = $28 + 1 - $$pre4 + (HEAP32[$31 >> 2] | 0);
}
$36 = $$pre4 + -1 | 0;
if ((HEAPU8[$36 >> 0] | 0 | 0) == ($6 | 0)) $$0 = $6; else {
HEAP8[$36 >> 0] = $6;
$$0 = $6;
}
}
}
if ((label | 0) == 4) {
HEAP32[$f + 100 >> 2] = 0;
$$0 = -1;
}
return $$0 | 0;
}
function _arSetLabelingThreshMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0, $1 = 0, $13 = 0, $4 = 0, $5 = 0, $mode1$0 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
if (!$handle) $$0 = -1; else {
$1 = $handle + 7062388 | 0;
if ((HEAP32[$1 >> 2] | 0) == ($mode | 0)) $$0 = 0; else {
$4 = $handle + 7062408 | 0;
$5 = HEAP32[$4 >> 2] | 0;
if ($5) {
_arImageProcFinal($5);
HEAP32[$4 >> 2] = 0;
}
switch ($mode | 0) {
case 3:
case 2:
case 1:
{
$13 = _arImageProcInit(HEAP32[$handle + 36 >> 2] | 0, HEAP32[$handle + 40 >> 2] | 0, HEAP32[$handle + 4 >> 2] | 0, 0) | 0;
HEAP32[$4 >> 2] = $13;
$mode1$0 = $mode;
break;
}
case 4:
{
HEAP32[$handle + 7062404 >> 2] = 1;
HEAP32[$handle + 7062400 >> 2] = 1;
$mode1$0 = 4;
break;
}
case 0:
{
$mode1$0 = 0;
break;
}
default:
{
_arLog(3, 3985, $vararg_buffer);
$mode1$0 = 0;
}
}
HEAP32[$1 >> 2] = $mode1$0;
if ((HEAP32[$handle >> 2] | 0) == 1) {
HEAP32[$vararg_buffer1 >> 2] = HEAP32[760 + ($mode1$0 << 2) >> 2];
_arLog(3, 4059, $vararg_buffer1);
$$0 = 0;
} else $$0 = 0;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _sift($head, $width, $cmp, $pshift, $lp) {
$head = $head | 0;
$width = $width | 0;
$cmp = $cmp | 0;
$pshift = $pshift | 0;
$lp = $lp | 0;
var $$0$be = 0, $$01$be = 0, $$012 = 0, $$03 = 0, $1 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $6 = 0, $7 = 0, $ar = 0, $i$0$lcssa = 0, $i$04 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 240 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ar = sp;
HEAP32[$ar >> 2] = $head;
L1 : do if (($pshift | 0) > 1) {
$1 = 0 - $width | 0;
$$012 = $pshift;
$$03 = $head;
$7 = $head;
$i$04 = 1;
while (1) {
$2 = $$03 + $1 | 0;
$3 = $$012 + -2 | 0;
$6 = $$03 + (0 - ((HEAP32[$lp + ($3 << 2) >> 2] | 0) + $width)) | 0;
if ((FUNCTION_TABLE_iii[$cmp & 15]($7, $6) | 0) > -1) if ((FUNCTION_TABLE_iii[$cmp & 15]($7, $2) | 0) > -1) {
$i$0$lcssa = $i$04;
break L1;
}
$14 = $i$04 + 1 | 0;
$15 = $ar + ($i$04 << 2) | 0;
if ((FUNCTION_TABLE_iii[$cmp & 15]($6, $2) | 0) > -1) {
HEAP32[$15 >> 2] = $6;
$$0$be = $6;
$$01$be = $$012 + -1 | 0;
} else {
HEAP32[$15 >> 2] = $2;
$$0$be = $2;
$$01$be = $3;
}
if (($$01$be | 0) <= 1) {
$i$0$lcssa = $14;
break L1;
}
$$012 = $$01$be;
$$03 = $$0$be;
$7 = HEAP32[$ar >> 2] | 0;
$i$04 = $14;
}
} else $i$0$lcssa = 1; while (0);
_cycle($width, $ar, $i$0$lcssa);
STACKTOP = sp;
return;
}
function _arCreateHandle($paramLT) {
$paramLT = $paramLT | 0;
var $0 = 0, $15 = 0, $18 = 0, $26 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = _malloc(7062432) | 0;
if (!$0) {
_arLog(3, 5471, sp);
_exit(1);
}
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4834148 >> 2] = 0;
HEAP32[$0 + 7062408 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = -1;
HEAP32[$0 + 8 >> 2] = 0;
HEAP32[$0 + 12 >> 2] = 1;
HEAP32[$0 + 16 >> 2] = 100;
HEAP32[$0 + 20 >> 2] = 0;
HEAP32[$0 + 24 >> 2] = 0;
HEAP32[$0 + 28 >> 2] = 2;
HEAPF64[$0 + 7062416 >> 3] = .5;
HEAP32[$0 + 7062424 >> 2] = 3;
HEAP32[$0 + 32 >> 2] = $paramLT;
$15 = HEAP32[$paramLT >> 2] | 0;
HEAP32[$0 + 36 >> 2] = $15;
$18 = HEAP32[$paramLT + 4 >> 2] | 0;
HEAP32[$0 + 40 >> 2] = $18;
HEAP32[$0 + 44 >> 2] = 0;
HEAP32[$0 + 15408 >> 2] = 0;
HEAP32[$0 + 4834152 >> 2] = 0;
HEAP32[$0 + 4818296 >> 2] = 0;
$26 = _malloc(Math_imul($15 << 1, $18) | 0) | 0;
HEAP32[$0 + 4834144 >> 2] = $26;
if (!$26) {
_arLog(3, 5471, sp + 8 | 0);
_exit(1);
} else {
HEAP32[$0 + 7062384 >> 2] = 0;
_arSetPixelFormat($0, 2) | 0;
_arSetDebugMode($0, 0) | 0;
HEAP32[$0 + 7062388 >> 2] = -1;
_arSetLabelingThreshMode($0, 0) | 0;
HEAP32[$0 + 7062392 >> 2] = 7;
HEAP32[$0 + 7062396 >> 2] = 0;
STACKTOP = sp;
return $0 | 0;
}
return 0;
}
function __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE21__push_back_slow_pathIRKS1_EEvOT_($this, $__x) {
$this = $this | 0;
$__x = $__x | 0;
var $$0$i = 0, $1 = 0, $13 = 0, $14 = 0, $17 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $31 = 0, $32 = 0, $8 = 0, $__v = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__v = sp;
$1 = $this + 4 | 0;
$3 = HEAP32[$this >> 2] | 0;
$8 = ((HEAP32[$1 >> 2] | 0) - $3 >> 3) + 1 | 0;
if ($8 >>> 0 > 536870911) __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this);
$13 = $3;
$14 = (HEAP32[$this + 8 >> 2] | 0) - $13 | 0;
if ($14 >> 3 >>> 0 < 268435455) {
$17 = $14 >> 2;
$$0$i = $17 >>> 0 < $8 >>> 0 ? $8 : $17;
} else $$0$i = 536870911;
__ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEEC2EjjS4_($__v, $$0$i, (HEAP32[$1 >> 2] | 0) - $13 >> 3, $this + 8 | 0);
$24 = $__v + 8 | 0;
$25 = HEAP32[$24 >> 2] | 0;
$26 = $__x;
$31 = HEAP32[$26 + 4 >> 2] | 0;
$32 = $25;
HEAP32[$32 >> 2] = HEAP32[$26 >> 2];
HEAP32[$32 + 4 >> 2] = $31;
HEAP32[$24 >> 2] = $25 + 8;
__ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS1_RS3_EE($this, $__v);
__ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($__v);
STACKTOP = sp;
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $__n) {
$this = $this | 0;
$__n = $__n | 0;
var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0;
if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0;
$6 = HEAP32[$this + 4 >> 2] | 0;
if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) {
if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0;
$20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0;
if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0;
$28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1;
if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $28);
}
return;
}
function _vsnprintf($s, $n, $fmt, $ap) {
$s = $s | 0;
$n = $n | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
var $$$02 = 0, $$0 = 0, $$01 = 0, $$02 = 0, $10 = 0, $11 = 0, $13 = 0, $15 = 0, $3 = 0, $5 = 0, $8 = 0, $b = 0, $f = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 128 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$b = sp + 112 | 0;
$f = sp;
dest = $f;
src = 2684;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
} while ((dest | 0) < (stop | 0));
if (($n + -1 | 0) >>> 0 > 2147483646) if (!$n) {
$$01 = $b;
$$02 = 1;
label = 4;
} else {
$3 = ___errno_location() | 0;
HEAP32[$3 >> 2] = 75;
$$0 = -1;
} else {
$$01 = $s;
$$02 = $n;
label = 4;
}
if ((label | 0) == 4) {
$5 = -2 - $$01 | 0;
$$$02 = $$02 >>> 0 > $5 >>> 0 ? $5 : $$02;
HEAP32[$f + 48 >> 2] = $$$02;
$8 = $f + 20 | 0;
HEAP32[$8 >> 2] = $$01;
HEAP32[$f + 44 >> 2] = $$01;
$10 = $$01 + $$$02 | 0;
$11 = $f + 16 | 0;
HEAP32[$11 >> 2] = $10;
HEAP32[$f + 28 >> 2] = $10;
$13 = _vfprintf($f, $fmt, $ap) | 0;
if (!$$$02) $$0 = $13; else {
$15 = HEAP32[$8 >> 2] | 0;
HEAP8[$15 + ((($15 | 0) == (HEAP32[$11 >> 2] | 0)) << 31 >> 31) >> 0] = 0;
$$0 = $13;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6rehashEj($this, $__n) {
$this = $this | 0;
$__n = $__n | 0;
var $20 = 0, $27 = 0, $28 = 0, $30 = 0, $6 = 0, $__n1 = 0;
if (($__n | 0) == 1) $__n1 = 2; else if (!($__n + -1 & $__n)) $__n1 = $__n; else $__n1 = __ZNSt3__112__next_primeEj($__n) | 0;
$6 = HEAP32[$this + 4 >> 2] | 0;
if ($__n1 >>> 0 > $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $__n1); else if ($__n1 >>> 0 < $6 >>> 0) {
if ($6 >>> 0 > 2) $30 = ($6 + -1 & $6 | 0) == 0; else $30 = 0;
$20 = ~~+Math_ceil(+(+((HEAP32[$this + 12 >> 2] | 0) >>> 0) / +HEAPF32[$this + 16 >> 2])) >>> 0;
if ($30) $27 = 1 << 32 - (Math_clz32($20 + -1 | 0) | 0); else $27 = __ZNSt3__112__next_primeEj($20) | 0;
$28 = $__n1 >>> 0 < $27 >>> 0 ? $27 : $__n1;
if ($28 >>> 0 < $6 >>> 0) __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE8__rehashEj($this, $28);
}
return;
}
function _addMarker($id, $patt_name) {
$id = $id | 0;
$patt_name = $patt_name | 0;
var $$0 = 0, $0 = 0, $11 = 0, $13 = 0, $14 = 0, $3 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = sp + 12 | 0;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
if (!(HEAP8[$patt_name >> 0] & 1)) $13 = $patt_name + 1 | 0; else $13 = HEAP32[$patt_name + 8 >> 2] | 0;
$11 = $3 + 216 | 0;
$14 = _arPattLoad(HEAP32[$11 >> 2] | 0, $13) | 0;
HEAP32[$3 + 260 >> 2] = $14;
if (($14 | 0) < 0) {
HEAP32[$vararg_buffer >> 2] = $13;
_arLog(3, 6311, $vararg_buffer);
_arPattDeleteHandle(HEAP32[$11 >> 2] | 0) | 0;
_arLog(3, 6357, $vararg_buffer1);
$$0 = -1;
} else $$0 = $14;
}
STACKTOP = sp;
return $$0 | 0;
}
function _icpGetDeltaS($S, $dU, $J_U_S, $n) {
$S = $S | 0;
$dU = $dU | 0;
$J_U_S = $J_U_S | 0;
$n = $n | 0;
var $$0 = 0, $10 = 0, $6 = 0, $8 = 0, $matJ = 0, $matS = 0, $matU = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$matS = sp + 24 | 0;
$matU = sp + 12 | 0;
$matJ = sp;
HEAP32[$matS + 4 >> 2] = 6;
HEAP32[$matS + 8 >> 2] = 1;
HEAP32[$matS >> 2] = $S;
HEAP32[$matU + 4 >> 2] = $n;
HEAP32[$matU + 8 >> 2] = 1;
HEAP32[$matU >> 2] = $dU;
HEAP32[$matJ + 4 >> 2] = $n;
HEAP32[$matJ + 8 >> 2] = 6;
HEAP32[$matJ >> 2] = $J_U_S;
$6 = _arMatrixAllocTrans($matJ) | 0;
do if (!$6) $$0 = -1; else {
$8 = _arMatrixAllocMul($6, $matJ) | 0;
if (!$8) {
_arMatrixFree($6) | 0;
$$0 = -1;
break;
}
$10 = _arMatrixAllocMul($6, $matU) | 0;
if (!$10) {
_arMatrixFree($6) | 0;
_arMatrixFree($8) | 0;
$$0 = -1;
break;
}
if ((_arMatrixSelfInv($8) | 0) < 0) {
_arMatrixFree($6) | 0;
_arMatrixFree($8) | 0;
_arMatrixFree($10) | 0;
$$0 = -1;
break;
} else {
_arMatrixMul($matS, $8, $10) | 0;
_arMatrixFree($6) | 0;
_arMatrixFree($8) | 0;
_arMatrixFree($10) | 0;
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _getTransMatMultiSquareRobust($id, $multiMarkerId) {
$id = $id | 0;
$multiMarkerId = $multiMarkerId | 0;
var $$0 = 0, $0 = 0, $17 = 0, $21 = 0, $4 = 0, $8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$8 = HEAP32[$4 + 248 >> 2] | 0;
if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 252 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) {
$$0 = HEAP32[524] | 0;
break;
} else {
$17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0;
$21 = HEAP32[$4 + 212 >> 2] | 0;
+_arGetTransMatMultiSquareRobust(HEAP32[$4 + 224 >> 2] | 0, $21 + 48 | 0, HEAP32[$21 + 44 >> 2] | 0, $17);
_matrixCopy($17 + 8 | 0, 264);
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arImageProcLumaHistAndCDFAndPercentile($ipi, $dataPtr, $percentile, $value_p) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
$percentile = +$percentile;
$value_p = $value_p | 0;
var $$0 = 0, $$in = 0, $$lcssa10 = 0, $$lcssa9 = 0, $11 = 0, $12 = 0, $14 = 0, $18 = 0, $2 = 0, $i$0 = 0, $i$0$lcssa = 0, $j$0$lcssa = 0;
if ($percentile < 0.0 | $percentile > 1.0) $$0 = -1; else {
$2 = _arImageProcLumaHistAndCDF($ipi, $dataPtr) | 0;
if (($2 | 0) < 0) $$0 = $2; else {
$11 = ~~(+(Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0) * $percentile) >>> 0;
$i$0 = 0;
while (1) {
$12 = $i$0 & 255;
$14 = HEAP32[$ipi + 1040 + ($12 << 2) >> 2] | 0;
if ($14 >>> 0 < $11 >>> 0) $i$0 = $i$0 + 1 << 24 >> 24; else {
$$lcssa10 = $14;
$$lcssa9 = $12;
$i$0$lcssa = $i$0;
break;
}
}
if (($$lcssa10 | 0) == ($11 | 0)) {
$$in = $i$0$lcssa;
while (1) {
$18 = $$in + 1 << 24 >> 24;
if ((HEAP32[$ipi + 1040 + (($18 & 255) << 2) >> 2] | 0) == ($11 | 0)) $$in = $18; else {
$j$0$lcssa = $18;
break;
}
}
} else $j$0$lcssa = $i$0$lcssa;
HEAP8[$value_p >> 0] = (($j$0$lcssa & 255) + $$lcssa9 | 0) >>> 1;
$$0 = 0;
}
}
return $$0 | 0;
}
function _getTransMatMultiSquare($id, $multiMarkerId) {
$id = $id | 0;
$multiMarkerId = $multiMarkerId | 0;
var $$0 = 0, $0 = 0, $17 = 0, $21 = 0, $4 = 0, $8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$8 = HEAP32[$4 + 248 >> 2] | 0;
if (($multiMarkerId | 0) < 0 ? 1 : (HEAP32[$4 + 252 >> 2] | 0) - $8 >> 3 >>> 0 <= $multiMarkerId >>> 0) {
$$0 = HEAP32[524] | 0;
break;
} else {
$17 = HEAP32[$8 + ($multiMarkerId << 3) + 4 >> 2] | 0;
$21 = HEAP32[$4 + 212 >> 2] | 0;
+_arGetTransMatMultiSquare(HEAP32[$4 + 224 >> 2] | 0, $21 + 48 | 0, HEAP32[$21 + 44 >> 2] | 0, $17);
_matrixCopy($17 + 8 | 0, 264);
$$0 = 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arPattDeleteHandle($pattHandle) {
$pattHandle = $pattHandle | 0;
var $$0 = 0, $1 = 0, $11 = 0, $18 = 0, $2 = 0, $25 = 0, $3 = 0, $32 = 0, $4 = 0, $i$03 = 0;
if (!$pattHandle) $$0 = -1; else {
$1 = $pattHandle + 4 | 0;
$2 = $pattHandle + 8 | 0;
$3 = $pattHandle + 12 | 0;
$4 = $pattHandle + 20 | 0;
if ((HEAP32[$1 >> 2] | 0) > 0) {
$i$03 = 0;
do {
if (HEAP32[(HEAP32[$2 >> 2] | 0) + ($i$03 << 2) >> 2] | 0) _arPattFree($pattHandle, $i$03) | 0;
$11 = $i$03 << 2;
_free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($11 << 2) >> 2] | 0);
_free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($11 << 2) >> 2] | 0);
$18 = 1 + $11 | 0;
_free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($18 << 2) >> 2] | 0);
_free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($18 << 2) >> 2] | 0);
$25 = 2 + $11 | 0;
_free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($25 << 2) >> 2] | 0);
_free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($25 << 2) >> 2] | 0);
$32 = 3 + $11 | 0;
_free(HEAP32[(HEAP32[$3 >> 2] | 0) + ($32 << 2) >> 2] | 0);
_free(HEAP32[(HEAP32[$4 >> 2] | 0) + ($32 << 2) >> 2] | 0);
$i$03 = $i$03 + 1 | 0;
} while (($i$03 | 0) < (HEAP32[$1 >> 2] | 0));
}
_free($pattHandle);
$$0 = 0;
}
return $$0 | 0;
}
function _atoi($s) {
$s = $s | 0;
var $$0 = 0, $$0$lcssa = 0, $$1$ph = 0, $$13 = 0, $$lcssa9 = 0, $11 = 0, $4 = 0, $5 = 0, $8 = 0, $isdigittmp1 = 0, $isdigittmp5 = 0, $n$0$lcssa = 0, $n$04 = 0, $neg$0 = 0, $neg$1$ph = 0, label = 0;
$$0 = $s;
while (1) {
$4 = $$0 + 1 | 0;
if (!(_isspace(HEAP8[$$0 >> 0] | 0) | 0)) {
$$0$lcssa = $$0;
$$lcssa9 = $4;
break;
} else $$0 = $4;
}
$5 = HEAP8[$$0$lcssa >> 0] | 0;
switch ($5 << 24 >> 24 | 0) {
case 45:
{
$neg$0 = 1;
label = 5;
break;
}
case 43:
{
$neg$0 = 0;
label = 5;
break;
}
default:
{
$$1$ph = $$0$lcssa;
$8 = $5;
$neg$1$ph = 0;
}
}
if ((label | 0) == 5) {
$$1$ph = $$lcssa9;
$8 = HEAP8[$$lcssa9 >> 0] | 0;
$neg$1$ph = $neg$0;
}
$isdigittmp1 = ($8 << 24 >> 24) + -48 | 0;
if ($isdigittmp1 >>> 0 < 10) {
$$13 = $$1$ph;
$isdigittmp5 = $isdigittmp1;
$n$04 = 0;
while (1) {
$$13 = $$13 + 1 | 0;
$11 = ($n$04 * 10 | 0) - $isdigittmp5 | 0;
$isdigittmp5 = (HEAP8[$$13 >> 0] | 0) + -48 | 0;
if ($isdigittmp5 >>> 0 >= 10) {
$n$0$lcssa = $11;
break;
} else $n$04 = $11;
}
} else $n$0$lcssa = 0;
return (($neg$1$ph | 0) != 0 ? $n$0$lcssa : 0 - $n$0$lcssa | 0) | 0;
}
function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_($this, $__k) {
$this = $this | 0;
$__k = $__k | 0;
var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__h = sp + 8 | 0;
$0 = sp;
$1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0;
if (!$1) {
__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($__h, $this, $__k);
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($0, $this, HEAP32[$__h >> 2] | 0);
$5 = HEAP32[$0 >> 2] | 0;
HEAP32[$__h >> 2] = 0;
$$pn3 = $5;
} else $$pn3 = $1;
STACKTOP = sp;
return $$pn3 + 16 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9push_backEc($this, $__c) {
$this = $this | 0;
$__c = $__c | 0;
var $$pn = 0, $0 = 0, $19 = 0, $2 = 0, $20 = 0, $__cap$0 = 0, $__p$0$sum$pre$phiZZZ2D = 0, $__sz$0 = 0, label = 0;
$0 = HEAP8[$this >> 0] | 0;
$2 = ($0 & 1) != 0;
if ($2) {
$__cap$0 = (HEAP32[$this >> 2] & -2) + -1 | 0;
$__sz$0 = HEAP32[$this + 4 >> 2] | 0;
} else {
$__cap$0 = 10;
$__sz$0 = ($0 & 255) >>> 1;
}
if (($__sz$0 | 0) == ($__cap$0 | 0)) {
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $__cap$0, 1, $__cap$0, $__cap$0, 0);
if (!(HEAP8[$this >> 0] & 1)) label = 7; else label = 8;
} else if ($2) label = 8; else label = 7;
if ((label | 0) == 7) {
HEAP8[$this >> 0] = ($__sz$0 << 1) + 2;
$$pn = $this + 1 | 0;
$__p$0$sum$pre$phiZZZ2D = $__sz$0 + 1 | 0;
} else if ((label | 0) == 8) {
$19 = HEAP32[$this + 8 >> 2] | 0;
$20 = $__sz$0 + 1 | 0;
HEAP32[$this + 4 >> 2] = $20;
$$pn = $19;
$__p$0$sum$pre$phiZZZ2D = $20;
}
HEAP8[$$pn + $__sz$0 >> 0] = $__c;
HEAP8[$$pn + $__p$0$sum$pre$phiZZZ2D >> 0] = 0;
return;
}
function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($this, $info, $dst_ptr, $current_ptr, $path_below) {
$this = $this | 0;
$info = $info | 0;
$dst_ptr = $dst_ptr | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
var $16 = 0, $17 = 0, $23 = 0, $25 = 0, $5 = 0, $6 = 0;
HEAP8[$info + 53 >> 0] = 1;
do if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) {
HEAP8[$info + 52 >> 0] = 1;
$5 = $info + 16 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if (!$6) {
HEAP32[$5 >> 2] = $dst_ptr;
HEAP32[$info + 24 >> 2] = $path_below;
HEAP32[$info + 36 >> 2] = 1;
if (!(($path_below | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0)) break;
HEAP8[$info + 54 >> 0] = 1;
break;
}
if (($6 | 0) != ($dst_ptr | 0)) {
$25 = $info + 36 | 0;
HEAP32[$25 >> 2] = (HEAP32[$25 >> 2] | 0) + 1;
HEAP8[$info + 54 >> 0] = 1;
break;
}
$16 = $info + 24 | 0;
$17 = HEAP32[$16 >> 2] | 0;
if (($17 | 0) == 2) {
HEAP32[$16 >> 2] = $path_below;
$23 = $path_below;
} else $23 = $17;
if (($23 | 0) == 1 ? (HEAP32[$info + 48 >> 2] | 0) == 1 : 0) HEAP8[$info + 54 >> 0] = 1;
} while (0);
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_117parse_call_offsetEPKcS2_($first, $last) {
$first = $first | 0;
$last = $last | 0;
var $$0 = 0, $10 = 0, $11 = 0, $16 = 0, $17 = 0, $3 = 0, $4 = 0;
L1 : do if (($first | 0) == ($last | 0)) $$0 = $first; else {
switch (HEAP8[$first >> 0] | 0) {
case 104:
{
$3 = $first + 1 | 0;
$4 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($3, $last) | 0;
if (($4 | 0) == ($3 | 0) | ($4 | 0) == ($last | 0)) {
$$0 = $first;
break L1;
}
$$0 = (HEAP8[$4 >> 0] | 0) == 95 ? $4 + 1 | 0 : $first;
break L1;
break;
}
case 118:
break;
default:
{
$$0 = $first;
break L1;
}
}
$10 = $first + 1 | 0;
$11 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($10, $last) | 0;
if (($11 | 0) == ($10 | 0) | ($11 | 0) == ($last | 0)) $$0 = $first; else if ((HEAP8[$11 >> 0] | 0) == 95) {
$16 = $11 + 1 | 0;
$17 = __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($16, $last) | 0;
if (($17 | 0) == ($16 | 0) | ($17 | 0) == ($last | 0)) $$0 = $first; else return ((HEAP8[$17 >> 0] | 0) == 95 ? $17 + 1 | 0 : $first) | 0;
} else $$0 = $first;
} while (0);
return $$0 | 0;
}
function _setup($width, $height, $cameraID) {
$width = $width | 0;
$height = $height | 0;
$cameraID = $cameraID | 0;
var $0 = 0, $10 = 0, $2 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $id = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 8 | 0;
$id = sp + 12 | 0;
$0 = HEAP32[525] | 0;
HEAP32[525] = $0 + 1;
HEAP32[$id >> 2] = $0;
$2 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $id) | 0;
HEAP32[$2 >> 2] = $0;
HEAP32[$2 + 204 >> 2] = $width;
HEAP32[$2 + 208 >> 2] = $height;
$6 = Math_imul($width << 2, $height) | 0;
$7 = $2 + 200 | 0;
HEAP32[$7 >> 2] = $6;
$8 = _malloc($6) | 0;
$9 = $2 + 196 | 0;
HEAP32[$9 >> 2] = $8;
$10 = _arPattCreateHandle() | 0;
HEAP32[$2 + 216 >> 2] = $10;
if (!$10) _arLog(3, 8284, sp);
_setCamera($0, $cameraID) | 0;
HEAP32[$vararg_buffer1 >> 2] = HEAP32[$7 >> 2];
_arLog(1, 8321, $vararg_buffer1);
_emscripten_asm_const_5(2, HEAP32[$2 >> 2] | 0, HEAP32[$9 >> 2] | 0, HEAP32[$7 >> 2] | 0, $2 + 264 | 0, 264) | 0;
STACKTOP = sp;
return HEAP32[$2 >> 2] | 0;
}
function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_($this, $__k) {
$this = $this | 0;
$__k = $__k | 0;
var $$pn3 = 0, $0 = 0, $1 = 0, $5 = 0, $__h = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$__h = sp + 8 | 0;
$0 = sp;
$1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0;
if (!$1) {
__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($__h, $this, $__k);
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE20__node_insert_uniqueEPNS_11__hash_nodeIS3_PvEE($0, $this, HEAP32[$__h >> 2] | 0);
$5 = HEAP32[$0 >> 2] | 0;
HEAP32[$__h >> 2] = 0;
$$pn3 = $5;
} else $$pn3 = $1;
STACKTOP = sp;
return $$pn3 + 16 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE9__grow_byEjjjjjj($this, $__old_cap, $__delta_cap, $__old_sz, $__n_copy, $__n_add) {
$this = $this | 0;
$__old_cap = $__old_cap | 0;
$__delta_cap = $__delta_cap | 0;
$__old_sz = $__old_sz | 0;
$__n_copy = $__n_copy | 0;
$__n_add = $__n_add | 0;
var $10 = 0, $12 = 0, $17 = 0, $18 = 0, $20 = 0, $9 = 0;
if ((-17 - $__old_cap | 0) >>> 0 < $__delta_cap >>> 0) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this);
if (!(HEAP8[$this >> 0] & 1)) $20 = $this + 1 | 0; else $20 = HEAP32[$this + 8 >> 2] | 0;
if ($__old_cap >>> 0 < 2147483623) {
$9 = $__delta_cap + $__old_cap | 0;
$10 = $__old_cap << 1;
$12 = $9 >>> 0 < $10 >>> 0 ? $10 : $9;
$17 = $12 >>> 0 < 11 ? 11 : $12 + 16 & -16;
} else $17 = -17;
$18 = _malloc($17) | 0;
if ($__n_copy) _memcpy($18 | 0, $20 | 0, $__n_copy | 0) | 0;
if (($__old_sz | 0) != ($__n_copy | 0)) _memcpy($18 + ($__n_add + $__n_copy) | 0, $20 + $__n_copy | 0, $__old_sz - $__n_copy | 0) | 0;
if (($__old_cap | 0) != 10) _free($20);
HEAP32[$this + 8 >> 2] = $18;
HEAP32[$this >> 2] = $17 | 1;
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) {
$this = $this | 0;
$__k = $__k | 0;
var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0;
$0 = HEAP32[$__k >> 2] | 0;
$2 = HEAP32[$this + 4 >> 2] | 0;
L1 : do if (!$2) $24 = 0; else {
$4 = $2 + -1 | 0;
$6 = ($4 & $2 | 0) == 0;
if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0;
$12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0;
if (!$12) $24 = 0; else {
$$pn = $12;
while (1) {
$__nd$0 = HEAP32[$$pn >> 2] | 0;
if (!$__nd$0) {
$24 = 0;
break L1;
}
$16 = HEAP32[$__nd$0 + 4 >> 2] | 0;
if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0;
if (($20 | 0) != ($11 | 0)) {
$24 = 0;
break L1;
}
if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) {
$24 = $__nd$0;
break;
} else $$pn = $__nd$0;
}
}
} while (0);
return $24 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) {
$this = $this | 0;
$__k = $__k | 0;
var $$pn = 0, $0 = 0, $11 = 0, $12 = 0, $16 = 0, $2 = 0, $20 = 0, $24 = 0, $4 = 0, $6 = 0, $__nd$0 = 0;
$0 = HEAP32[$__k >> 2] | 0;
$2 = HEAP32[$this + 4 >> 2] | 0;
L1 : do if (!$2) $24 = 0; else {
$4 = $2 + -1 | 0;
$6 = ($4 & $2 | 0) == 0;
if ($6) $11 = $4 & $0; else $11 = ($0 >>> 0) % ($2 >>> 0) | 0;
$12 = HEAP32[(HEAP32[$this >> 2] | 0) + ($11 << 2) >> 2] | 0;
if (!$12) $24 = 0; else {
$$pn = $12;
while (1) {
$__nd$0 = HEAP32[$$pn >> 2] | 0;
if (!$__nd$0) {
$24 = 0;
break L1;
}
$16 = HEAP32[$__nd$0 + 4 >> 2] | 0;
if ($6) $20 = $16 & $4; else $20 = ($16 >>> 0) % ($2 >>> 0) | 0;
if (($20 | 0) != ($11 | 0)) {
$24 = 0;
break L1;
}
if ((HEAP32[$__nd$0 + 8 >> 2] | 0) == ($0 | 0)) {
$24 = $__nd$0;
break;
} else $$pn = $__nd$0;
}
}
} while (0);
return $24 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE14__erase_uniqueIiEEjRKT_($this, $__k) {
$this = $this | 0;
$__k = $__k | 0;
var $$0 = 0, $$byval_copy = 0, $0 = 0, $1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$$byval_copy = sp + 4 | 0;
$0 = sp;
$1 = __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_($this, $__k) | 0;
if (!$1) $$0 = 0; else {
HEAP32[$0 >> 2] = $1;
HEAP32[$$byval_copy >> 2] = HEAP32[$0 >> 2];
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE5eraseENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($this, $$byval_copy) | 0;
$$0 = 1;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE5eraseENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($this, $__p) {
$this = $this | 0;
$__p = $__p | 0;
var $$byval_copy = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$$byval_copy = sp + 16 | 0;
$0 = sp + 4 | 0;
$1 = sp;
$2 = HEAP32[$__p >> 2] | 0;
$3 = HEAP32[$2 >> 2] | 0;
HEAP32[$1 >> 2] = $2;
HEAP32[$$byval_copy >> 2] = HEAP32[$1 >> 2];
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS3_PvEEEE($0, $this, $$byval_copy);
$4 = HEAP32[$0 >> 2] | 0;
HEAP32[$0 >> 2] = 0;
if ($4) {
if (HEAP8[$0 + 8 >> 0] | 0) __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($4 + 264 | 0);
__ZdlPv($4);
}
STACKTOP = sp;
return $3 | 0;
}
function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($this, $thrown_type, $adjustedPtr) {
$this = $this | 0;
$thrown_type = $thrown_type | 0;
$adjustedPtr = $adjustedPtr | 0;
var $$0 = 0, $$1 = 0, $2 = 0, $info = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$info = sp;
if (($this | 0) == ($thrown_type | 0)) $$1 = 1; else if (!$thrown_type) $$1 = 0; else {
$2 = ___dynamic_cast($thrown_type, 576, 592, 0) | 0;
if (!$2) $$1 = 0; else {
dest = $info;
stop = dest + 56 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$info >> 2] = $2;
HEAP32[$info + 8 >> 2] = $this;
HEAP32[$info + 12 >> 2] = -1;
HEAP32[$info + 48 >> 2] = 1;
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$2 >> 2] | 0) + 28 >> 2] & 3]($2, $info, HEAP32[$adjustedPtr >> 2] | 0, 1);
if ((HEAP32[$info + 24 >> 2] | 0) == 1) {
HEAP32[$adjustedPtr >> 2] = HEAP32[$info + 16 >> 2];
$$0 = 1;
} else $$0 = 0;
$$1 = $$0;
}
}
STACKTOP = sp;
return $$1 | 0;
}
function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $14 = 0, $20 = 0, $6 = 0;
do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) {
if ((HEAP32[$info + 4 >> 2] | 0) == ($current_ptr | 0)) {
$6 = $info + 28 | 0;
if ((HEAP32[$6 >> 2] | 0) != 1) HEAP32[$6 >> 2] = $path_below;
}
} else if (($this | 0) == (HEAP32[$info >> 2] | 0)) {
if ((HEAP32[$info + 16 >> 2] | 0) != ($current_ptr | 0)) {
$14 = $info + 20 | 0;
if ((HEAP32[$14 >> 2] | 0) != ($current_ptr | 0)) {
HEAP32[$info + 32 >> 2] = $path_below;
HEAP32[$14 >> 2] = $current_ptr;
$20 = $info + 40 | 0;
HEAP32[$20 >> 2] = (HEAP32[$20 >> 2] | 0) + 1;
if ((HEAP32[$info + 36 >> 2] | 0) == 1) if ((HEAP32[$info + 24 >> 2] | 0) == 2) HEAP8[$info + 54 >> 0] = 1;
HEAP32[$info + 44 >> 2] = 4;
break;
}
}
if (($path_below | 0) == 1) HEAP32[$info + 32 >> 2] = 1;
} while (0);
return;
}
function _getTransMatSquareCont($id, $markerIndex, $markerWidth) {
$id = $id | 0;
$markerIndex = $markerIndex | 0;
$markerWidth = $markerWidth | 0;
var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$6 = HEAP32[$4 + 212 >> 2] | 0;
if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) {
+_arGetTransMatSquareCont(HEAP32[$4 + 224 >> 2] | 0, ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0, 264, +($markerWidth | 0), 264);
$$0 = 0;
break;
} else {
$$0 = HEAP32[523] | 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arPattLoad($pattHandle, $filename) {
$pattHandle = $pattHandle | 0;
$filename = $filename | 0;
var $$0 = 0, $0 = 0, $2 = 0, $4 = 0, $6 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer1 = sp + 8 | 0;
$vararg_buffer = sp;
$0 = _fopen($filename, 4854) | 0;
do if (!$0) {
HEAP32[$vararg_buffer >> 2] = $filename;
_arLog(3, 4774, $vararg_buffer);
$$0 = -1;
} else {
_fseek($0, 0, 2) | 0;
$2 = _ftell($0) | 0;
_fseek($0, 0, 0) | 0;
$4 = _malloc($2 + 1 | 0) | 0;
if (!$4) {
_arLog(3, 5471, $vararg_buffer1);
_fclose($0) | 0;
$$0 = -1;
break;
}
$6 = _fread($4, $2, 1, $0) | 0;
_fclose($0) | 0;
if (!$6) {
HEAP32[$vararg_buffer3 >> 2] = $filename;
_arLog(3, 4820, $vararg_buffer3);
_free($4);
$$0 = -1;
break;
} else {
HEAP8[$4 + $2 >> 0] = 0;
$9 = _arPattLoadFromBuffer($pattHandle, $4) | 0;
_free($4);
$$0 = $9;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _fmt_u($0, $1, $s) {
$0 = $0 | 0;
$1 = $1 | 0;
$s = $s | 0;
var $$0$lcssa = 0, $$01$lcssa$off0 = 0, $$05 = 0, $$1$lcssa = 0, $$12 = 0, $$lcssa20 = 0, $13 = 0, $14 = 0, $25 = 0, $28 = 0, $7 = 0, $8 = 0, $9 = 0, $y$03 = 0;
if ($1 >>> 0 > 0 | ($1 | 0) == 0 & $0 >>> 0 > 4294967295) {
$$05 = $s;
$7 = $0;
$8 = $1;
while (1) {
$9 = ___uremdi3($7 | 0, $8 | 0, 10, 0) | 0;
$13 = $$05 + -1 | 0;
HEAP8[$13 >> 0] = $9 | 48;
$14 = ___udivdi3($7 | 0, $8 | 0, 10, 0) | 0;
if ($8 >>> 0 > 9 | ($8 | 0) == 9 & $7 >>> 0 > 4294967295) {
$$05 = $13;
$7 = $14;
$8 = tempRet0;
} else {
$$lcssa20 = $13;
$28 = $14;
break;
}
}
$$0$lcssa = $$lcssa20;
$$01$lcssa$off0 = $28;
} else {
$$0$lcssa = $s;
$$01$lcssa$off0 = $0;
}
if (!$$01$lcssa$off0) $$1$lcssa = $$0$lcssa; else {
$$12 = $$0$lcssa;
$y$03 = $$01$lcssa$off0;
while (1) {
$25 = $$12 + -1 | 0;
HEAP8[$25 >> 0] = ($y$03 >>> 0) % 10 | 0 | 48;
if ($y$03 >>> 0 < 10) {
$$1$lcssa = $25;
break;
} else {
$$12 = $25;
$y$03 = ($y$03 >>> 0) / 10 | 0;
}
}
}
return $$1$lcssa | 0;
}
function _byteswap($param) {
$param = $param | 0;
var $$lcssa = 0, $15 = 0, $2 = 0, $i$13 = 0, $j$05 = 0, $wparam = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 192 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$wparam = sp;
_byteSwapInt($param, $wparam);
_byteSwapInt($param + 4 | 0, $wparam + 4 | 0);
$j$05 = 0;
do {
_byteSwapDouble($param + 8 + ($j$05 << 5) | 0, $wparam + 8 + ($j$05 << 5) | 0);
_byteSwapDouble($param + 8 + ($j$05 << 5) + 8 | 0, $wparam + 8 + ($j$05 << 5) + 8 | 0);
_byteSwapDouble($param + 8 + ($j$05 << 5) + 16 | 0, $wparam + 8 + ($j$05 << 5) + 16 | 0);
_byteSwapDouble($param + 8 + ($j$05 << 5) + 24 | 0, $wparam + 8 + ($j$05 << 5) + 24 | 0);
$j$05 = $j$05 + 1 | 0;
} while (($j$05 | 0) != 3);
$2 = $param + 176 | 0;
$i$13 = 0;
do {
_byteSwapDouble($param + 104 + ($i$13 << 3) | 0, $wparam + 104 + ($i$13 << 3) | 0);
$i$13 = $i$13 + 1 | 0;
$15 = HEAP32[$2 >> 2] | 0;
} while (($i$13 | 0) < (HEAP32[2012 + ($15 + -1 << 3) >> 2] | 0));
$$lcssa = $15;
HEAP32[$wparam + 176 >> 2] = $$lcssa;
_memcpy($param | 0, $wparam | 0, 184) | 0;
STACKTOP = sp;
return;
}
function _getTransMatSquare($id, $markerIndex, $markerWidth) {
$id = $id | 0;
$markerIndex = $markerIndex | 0;
$markerWidth = $markerWidth | 0;
var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$6 = HEAP32[$4 + 212 >> 2] | 0;
if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) {
+_arGetTransMatSquare(HEAP32[$4 + 224 >> 2] | 0, ($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0, +($markerWidth | 0), 264);
$$0 = 0;
break;
} else {
$$0 = HEAP32[523] | 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _arMatrixTrans($dest, $source) {
$dest = $dest | 0;
$source = $source | 0;
var $$0 = 0, $1 = 0, $13 = 0, $6 = 0, $c$01 = 0, $p1$02 = 0, $p2$05 = 0, $p2$13 = 0, $r$04 = 0, $smax = 0;
$1 = HEAP32[$dest + 4 >> 2] | 0;
if (($1 | 0) == (HEAP32[$source + 8 >> 2] | 0)) {
$6 = HEAP32[$dest + 8 >> 2] | 0;
if (($6 | 0) == (HEAP32[$source + 4 >> 2] | 0)) {
$smax = ($6 | 0) > 0 ? $6 : 0;
if (($1 | 0) > 0) {
$13 = ($6 | 0) > 0;
$p2$05 = HEAP32[$dest >> 2] | 0;
$r$04 = 0;
while (1) {
if ($13) {
$c$01 = 0;
$p1$02 = (HEAP32[$source >> 2] | 0) + ($r$04 << 3) | 0;
$p2$13 = $p2$05;
while (1) {
HEAPF64[$p2$13 >> 3] = +HEAPF64[$p1$02 >> 3];
$c$01 = $c$01 + 1 | 0;
if (($c$01 | 0) >= ($6 | 0)) break; else {
$p1$02 = $p1$02 + ($1 << 3) | 0;
$p2$13 = $p2$13 + 8 | 0;
}
}
}
$r$04 = $r$04 + 1 | 0;
if (($r$04 | 0) >= ($1 | 0)) {
$$0 = 0;
break;
} else $p2$05 = $p2$05 + ($smax << 3) | 0;
}
} else $$0 = 0;
} else $$0 = -1;
} else $$0 = -1;
return $$0 | 0;
}
function _fflush($f) {
$f = $f | 0;
var $$0 = 0, $$012 = 0, $$014 = 0, $24 = 0, $27 = 0, $6 = 0, $phitmp = 0, $r$0$lcssa = 0, $r$03 = 0, $r$1 = 0;
do if (!$f) {
if (!(HEAP32[660] | 0)) $27 = 0; else $27 = _fflush(HEAP32[660] | 0) | 0;
___lock(2416);
$$012 = HEAP32[603] | 0;
if (!$$012) $r$0$lcssa = $27; else {
$$014 = $$012;
$r$03 = $27;
while (1) {
if ((HEAP32[$$014 + 76 >> 2] | 0) > -1) $24 = ___lockfile($$014) | 0; else $24 = 0;
if ((HEAP32[$$014 + 20 >> 2] | 0) >>> 0 > (HEAP32[$$014 + 28 >> 2] | 0) >>> 0) $r$1 = ___fflush_unlocked($$014) | 0 | $r$03; else $r$1 = $r$03;
if ($24) ___unlockfile($$014);
$$014 = HEAP32[$$014 + 56 >> 2] | 0;
if (!$$014) {
$r$0$lcssa = $r$1;
break;
} else $r$03 = $r$1;
}
}
___unlock(2416);
$$0 = $r$0$lcssa;
} else {
if ((HEAP32[$f + 76 >> 2] | 0) <= -1) {
$$0 = ___fflush_unlocked($f) | 0;
break;
}
$phitmp = (___lockfile($f) | 0) == 0;
$6 = ___fflush_unlocked($f) | 0;
if ($phitmp) $$0 = $6; else {
___unlockfile($f);
$$0 = $6;
}
} while (0);
return $$0 | 0;
}
function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) {
$this = $this | 0;
$info = $info | 0;
$adjustedPtr = $adjustedPtr | 0;
$path_below = $path_below | 0;
var $5 = 0, $6 = 0, $9 = 0, $p$0 = 0;
L1 : do if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); else {
$5 = HEAP32[$this + 12 >> 2] | 0;
$6 = $this + 16 + ($5 << 3) | 0;
__ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this + 16 | 0, $info, $adjustedPtr, $path_below);
if (($5 | 0) > 1) {
$9 = $info + 54 | 0;
$p$0 = $this + 24 | 0;
do {
__ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($p$0, $info, $adjustedPtr, $path_below);
if (HEAP8[$9 >> 0] | 0) break L1;
$p$0 = $p$0 + 8 | 0;
} while ($p$0 >>> 0 < $6 >>> 0);
}
} while (0);
return;
}
function __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($this, $__v) {
$this = $this | 0;
$__v = $__v | 0;
var $$0$i1 = 0, $0 = 0, $1 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0;
$0 = HEAP32[$this >> 2] | 0;
$1 = $this + 4 | 0;
$2 = HEAP32[$1 >> 2] | 0;
$3 = $__v + 4 | 0;
if (($2 | 0) != ($0 | 0)) {
$$0$i1 = $2;
do {
$$0$i1 = $$0$i1 + -24 | 0;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_((HEAP32[$3 >> 2] | 0) + -24 | 0, $$0$i1);
HEAP32[$3 >> 2] = (HEAP32[$3 >> 2] | 0) + -24;
} while (($$0$i1 | 0) != ($0 | 0));
}
$11 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = HEAP32[$3 >> 2];
HEAP32[$3 >> 2] = $11;
$13 = $__v + 8 | 0;
$14 = HEAP32[$1 >> 2] | 0;
HEAP32[$1 >> 2] = HEAP32[$13 >> 2];
HEAP32[$13 >> 2] = $14;
$16 = $this + 8 | 0;
$17 = $__v + 12 | 0;
$18 = HEAP32[$16 >> 2] | 0;
HEAP32[$16 >> 2] = HEAP32[$17 >> 2];
HEAP32[$17 >> 2] = $18;
HEAP32[$__v >> 2] = HEAP32[$3 >> 2];
return;
}
function _strlen($s) {
$s = $s | 0;
var $$01$lcssa = 0, $$014 = 0, $$1$lcssa = 0, $$lcssa20 = 0, $$pn = 0, $$pn15 = 0, $0 = 0, $18 = 0, $21 = 0, $5 = 0, $9 = 0, $w$0 = 0, $w$0$lcssa = 0, label = 0;
$0 = $s;
L1 : do if (!($0 & 3)) {
$$01$lcssa = $s;
label = 4;
} else {
$$014 = $s;
$21 = $0;
while (1) {
if (!(HEAP8[$$014 >> 0] | 0)) {
$$pn = $21;
break L1;
}
$5 = $$014 + 1 | 0;
$21 = $5;
if (!($21 & 3)) {
$$01$lcssa = $5;
label = 4;
break;
} else $$014 = $5;
}
} while (0);
if ((label | 0) == 4) {
$w$0 = $$01$lcssa;
while (1) {
$9 = HEAP32[$w$0 >> 2] | 0;
if (!(($9 & -2139062144 ^ -2139062144) & $9 + -16843009)) $w$0 = $w$0 + 4 | 0; else {
$$lcssa20 = $9;
$w$0$lcssa = $w$0;
break;
}
}
if (!(($$lcssa20 & 255) << 24 >> 24)) $$1$lcssa = $w$0$lcssa; else {
$$pn15 = $w$0$lcssa;
while (1) {
$18 = $$pn15 + 1 | 0;
if (!(HEAP8[$18 >> 0] | 0)) {
$$1$lcssa = $18;
break;
} else $$pn15 = $18;
}
}
$$pn = $$1$lcssa;
}
return $$pn - $0 | 0;
}
function _setMarkerInfoDir($id, $markerIndex, $dir) {
$id = $id | 0;
$markerIndex = $markerIndex | 0;
$dir = $dir | 0;
var $$0 = 0, $0 = 0, $5 = 0, $6 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
do if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$5 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$6 = HEAP32[$5 >> 2] | 0;
if ((HEAP32[$6 + 44 >> 2] | 0) > ($markerIndex | 0)) {
HEAP32[(($markerIndex | 0) < 0 ? 8 : $6 + 48 + ($markerIndex << 8) | 0) + 16 >> 2] = $dir;
$$0 = 0;
break;
} else {
$$0 = HEAP32[523] | 0;
break;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($this, $__s, $__n) {
$this = $this | 0;
$__s = $__s | 0;
$__n = $__n | 0;
var $0 = 0, $10 = 0, $14 = 0, $27 = 0, $3 = 0, $7 = 0, $9 = 0;
$0 = HEAP8[$this >> 0] | 0;
if (!($0 & 1)) {
$7 = 10;
$9 = $0;
} else {
$3 = HEAP32[$this >> 2] | 0;
$7 = ($3 & -2) + -1 | 0;
$9 = $3 & 255;
}
$10 = ($9 & 1) == 0;
do if ($7 >>> 0 < $__n >>> 0) {
if ($10) $27 = ($9 & 255) >>> 1; else $27 = HEAP32[$this + 4 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $7, $__n - $7 | 0, $27, 0, $27, $__n, $__s);
} else {
if ($10) $14 = $this + 1 | 0; else $14 = HEAP32[$this + 8 >> 2] | 0;
_memmove($14 | 0, $__s | 0, $__n | 0) | 0;
HEAP8[$14 + $__n >> 0] = 0;
if (!(HEAP8[$this >> 0] & 1)) {
HEAP8[$this >> 0] = $__n << 1;
break;
} else {
HEAP32[$this + 4 >> 2] = $__n;
break;
}
} while (0);
return;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $__s, $__n) {
$this = $this | 0;
$__s = $__s | 0;
$__n = $__n | 0;
var $0 = 0, $14 = 0, $15 = 0, $24 = 0, $25 = 0, $3 = 0, $7 = 0;
$0 = HEAP8[$this >> 0] | 0;
if (!($0 & 1)) {
$14 = 10;
$7 = $0;
} else {
$3 = HEAP32[$this >> 2] | 0;
$14 = ($3 & -2) + -1 | 0;
$7 = $3 & 255;
}
if (!($7 & 1)) $15 = ($7 & 255) >>> 1; else $15 = HEAP32[$this + 4 >> 2] | 0;
if (($14 - $15 | 0) >>> 0 < $__n >>> 0) __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE21__grow_by_and_replaceEjjjjjjPKc($this, $14, $__n - $14 + $15 | 0, $15, $15, 0, $__n, $__s); else if ($__n) {
if (!($7 & 1)) $24 = $this + 1 | 0; else $24 = HEAP32[$this + 8 >> 2] | 0;
_memcpy($24 + $15 | 0, $__s | 0, $__n | 0) | 0;
$25 = $15 + $__n | 0;
if (!(HEAP8[$this >> 0] & 1)) HEAP8[$this >> 0] = $25 << 1; else HEAP32[$this + 4 >> 2] = $25;
HEAP8[$24 + $25 >> 0] = 0;
}
return $this | 0;
}
function _pad($f, $c, $w, $l, $fl) {
$f = $f | 0;
$c = $c | 0;
$w = $w | 0;
$l = $l | 0;
$fl = $fl | 0;
var $$0$lcssa6 = 0, $$02 = 0, $10 = 0, $14 = 0, $17 = 0, $18 = 0, $3 = 0, $7 = 0, $9 = 0, $pad = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$pad = sp;
do if (($w | 0) > ($l | 0) & ($fl & 73728 | 0) == 0) {
$3 = $w - $l | 0;
_memset($pad | 0, $c | 0, ($3 >>> 0 > 256 ? 256 : $3) | 0) | 0;
$7 = HEAP32[$f >> 2] | 0;
$9 = ($7 & 32 | 0) == 0;
if ($3 >>> 0 > 255) {
$10 = $w - $l | 0;
$$02 = $3;
$17 = $7;
$18 = $9;
while (1) {
if ($18) {
___fwritex($pad, 256, $f) | 0;
$14 = HEAP32[$f >> 2] | 0;
} else $14 = $17;
$$02 = $$02 + -256 | 0;
$18 = ($14 & 32 | 0) == 0;
if ($$02 >>> 0 <= 255) break; else $17 = $14;
}
if ($18) $$0$lcssa6 = $10 & 255; else break;
} else if ($9) $$0$lcssa6 = $3; else break;
___fwritex($pad, $$0$lcssa6, $f) | 0;
} while (0);
STACKTOP = sp;
return;
}
function _loadCamera($cparam_name) {
$cparam_name = $cparam_name | 0;
var $$0 = 0, $15 = 0, $16 = 0, $6 = 0, $cameraID = 0, $param = 0, $vararg_buffer1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 208 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer1 = sp + 192 | 0;
$param = sp;
$cameraID = sp + 196 | 0;
if (!(HEAP8[$cparam_name >> 0] & 1)) $6 = $cparam_name + 1 | 0; else $6 = HEAP32[$cparam_name + 8 >> 2] | 0;
if ((_arParamLoad($6, 1, $param, sp + 184 | 0) | 0) < 0) {
if (!(HEAP8[$cparam_name >> 0] & 1)) $15 = $cparam_name + 1 | 0; else $15 = HEAP32[$cparam_name + 8 >> 2] | 0;
HEAP32[$vararg_buffer1 >> 2] = $15;
_arLog(3, 6092, $vararg_buffer1);
$$0 = -1;
} else {
$16 = HEAP32[521] | 0;
HEAP32[521] = $16 + 1;
HEAP32[$cameraID >> 2] = $16;
_memcpy(__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2064, $cameraID) | 0, $param | 0, 184) | 0;
$$0 = $16;
}
STACKTOP = sp;
return $$0 | 0;
}
function _getMultiMarkerNum($id, $multiMarker_id) {
$id = $id | 0;
$multiMarker_id = $multiMarker_id | 0;
var $$0 = 0, $0 = 0, $3 = 0, $8 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
if (($multiMarker_id | 0) < 0) $$0 = -1; else {
$8 = HEAP32[$3 + 248 >> 2] | 0;
if ((HEAP32[$3 + 252 >> 2] | 0) - $8 >> 3 >>> 0 > $multiMarker_id >>> 0) $$0 = HEAP32[(HEAP32[$8 + ($multiMarker_id << 3) + 4 >> 2] | 0) + 4 >> 2] | 0; else $$0 = -1;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _arImageProcInit($xsize, $ysize, $pixFormat, $alwaysCopy) {
$xsize = $xsize | 0;
$ysize = $ysize | 0;
$pixFormat = $pixFormat | 0;
$alwaysCopy = $alwaysCopy | 0;
var $$0 = 0, $0 = 0, $5 = 0, label = 0;
$0 = _malloc(2080) | 0;
L1 : do if (!$0) $$0 = $0; else {
HEAP32[$0 + 2068 >> 2] = $pixFormat;
L3 : do if (!$alwaysCopy) {
switch ($pixFormat | 0) {
case 5:
case 12:
case 13:
case 14:
break;
default:
{
label = 4;
break L3;
}
}
HEAP32[$0 + 2076 >> 2] = 0;
} else label = 4; while (0);
do if ((label | 0) == 4) {
$5 = _malloc(Math_imul($ysize, $xsize) | 0) | 0;
HEAP32[$0 >> 2] = $5;
if (!$5) {
_free($0);
$$0 = 0;
break L1;
} else {
HEAP32[$0 + 2076 >> 2] = 1;
break;
}
} while (0);
HEAP32[$0 + 2072 >> 2] = $alwaysCopy;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = $xsize;
HEAP32[$0 + 12 >> 2] = $ysize;
$$0 = $0;
} while (0);
return $$0 | 0;
}
function _setPattRatio($id, $ratio) {
$id = $id | 0;
$ratio = +$ratio;
var $0 = 0, $3 = 0, $6 = 0.0, $8 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 8 | 0;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
if (!($ratio <= 0.0 | $ratio >= 1.0)) {
$6 = $ratio;
$8 = HEAP32[$3 + 212 >> 2] | 0;
if ($8) if (!(_arSetPattRatio($8, $6) | 0)) {
HEAPF64[$vararg_buffer >> 3] = $6;
_arLog(1, 6512, $vararg_buffer);
}
}
}
STACKTOP = sp;
return;
}
function _setDebugMode($id, $enable) {
$id = $id | 0;
$enable = $enable | 0;
var $$0 = 0, $0 = 0, $4 = 0, $6 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 4 | 0;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = 0; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$6 = ($enable | 0) != 0;
_arSetDebugMode(HEAP32[$4 >> 2] | 0, $6 & 1) | 0;
HEAP32[$vararg_buffer >> 2] = $6 ? 6615 : 6619;
_arLog(1, 6624, $vararg_buffer);
$$0 = $enable;
}
STACKTOP = sp;
return $$0 | 0;
}
function ___remdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $rem = 0, $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $10$0 = 0, $10$1 = 0, __stackBase__ = 0;
__stackBase__ = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rem = __stackBase__ | 0;
$1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0;
$4$1 = tempRet0;
___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, $rem) | 0;
$10$0 = _i64Subtract(HEAP32[$rem >> 2] ^ $1$0, HEAP32[$rem + 4 >> 2] ^ $1$1, $1$0, $1$1) | 0;
$10$1 = tempRet0;
STACKTOP = __stackBase__;
return (tempRet0 = $10$1, $10$0) | 0;
}
function _fopen($filename, $mode) {
$filename = $filename | 0;
$mode = $mode | 0;
var $$0 = 0, $3 = 0, $5 = 0, $7 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer3 = sp + 16 | 0;
$vararg_buffer = sp;
if (!(_memchr(16759, HEAP8[$mode >> 0] | 0, 4) | 0)) {
$3 = ___errno_location() | 0;
HEAP32[$3 >> 2] = 22;
$$0 = 0;
} else {
$5 = ___fmodeflags($mode) | 0 | 32768;
HEAP32[$vararg_buffer >> 2] = $filename;
HEAP32[$vararg_buffer + 4 >> 2] = $5;
HEAP32[$vararg_buffer + 8 >> 2] = 438;
$7 = ___syscall_ret(___syscall5(5, $vararg_buffer | 0) | 0) | 0;
if (($7 | 0) < 0) $$0 = 0; else {
$9 = ___fdopen($7, $mode) | 0;
if (!$9) {
HEAP32[$vararg_buffer3 >> 2] = $7;
___syscall6(6, $vararg_buffer3 | 0) | 0;
$$0 = 0;
} else $$0 = $9;
}
}
STACKTOP = sp;
return $$0 | 0;
}
function _cycle($width, $ar, $n) {
$width = $width | 0;
$ar = $ar | 0;
$n = $n | 0;
var $$02 = 0, $1 = 0, $4 = 0, $6 = 0, $7 = 0, $i$01 = 0, $tmp = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 256 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$tmp = sp;
L1 : do if (($n | 0) >= 2) {
$1 = $ar + ($n << 2) | 0;
HEAP32[$1 >> 2] = $tmp;
if ($width) {
$$02 = $width;
$6 = $tmp;
while (1) {
$4 = $$02 >>> 0 > 256 ? 256 : $$02;
_memcpy($6 | 0, HEAP32[$ar >> 2] | 0, $4 | 0) | 0;
$i$01 = 0;
do {
$7 = $ar + ($i$01 << 2) | 0;
$i$01 = $i$01 + 1 | 0;
_memcpy(HEAP32[$7 >> 2] | 0, HEAP32[$ar + ($i$01 << 2) >> 2] | 0, $4 | 0) | 0;
HEAP32[$7 >> 2] = (HEAP32[$7 >> 2] | 0) + $4;
} while (($i$01 | 0) != ($n | 0));
if (($$02 | 0) == ($4 | 0)) break L1;
$$02 = $$02 - $4 | 0;
$6 = HEAP32[$1 >> 2] | 0;
}
}
} while (0);
STACKTOP = sp;
return;
}
function _setThreshold($id, $threshold) {
$id = $id | 0;
$threshold = $threshold | 0;
var $0 = 0, $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 4 | 0;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
if ($threshold >>> 0 <= 255) if (!(_arSetLabelingThresh(HEAP32[$3 + 212 >> 2] | 0, $threshold) | 0)) {
HEAP32[$vararg_buffer >> 2] = $threshold;
_arLog(1, 6568, $vararg_buffer);
}
}
STACKTOP = sp;
return;
}
function _scalbn($x, $n) {
$x = +$x;
$n = $n | 0;
var $$0 = 0, $1 = 0.0, $12 = 0, $15 = 0, $16 = 0, $2 = 0, $5 = 0, $8 = 0.0, $9 = 0, $y$0 = 0.0;
if (($n | 0) > 1023) {
$1 = $x * 8988465674311579538646525.0e283;
$2 = $n + -1023 | 0;
if (($2 | 0) > 1023) {
$5 = $n + -2046 | 0;
$$0 = ($5 | 0) > 1023 ? 1023 : $5;
$y$0 = $1 * 8988465674311579538646525.0e283;
} else {
$$0 = $2;
$y$0 = $1;
}
} else if (($n | 0) < -1022) {
$8 = $x * 2.2250738585072014e-308;
$9 = $n + 1022 | 0;
if (($9 | 0) < -1022) {
$12 = $n + 2044 | 0;
$$0 = ($12 | 0) < -1022 ? -1022 : $12;
$y$0 = $8 * 2.2250738585072014e-308;
} else {
$$0 = $9;
$y$0 = $8;
}
} else {
$$0 = $n;
$y$0 = $x;
}
$15 = _bitshift64Shl($$0 + 1023 | 0, 0, 52) | 0;
$16 = tempRet0;
HEAP32[tempDoublePtr >> 2] = $15;
HEAP32[tempDoublePtr + 4 >> 2] = $16;
return +($y$0 * +HEAPF64[tempDoublePtr >> 3]);
}
function _wcrtomb($s, $wc, $st) {
$s = $s | 0;
$wc = $wc | 0;
$st = $st | 0;
var $$0 = 0, $45 = 0;
do if (!$s) $$0 = 1; else {
if ($wc >>> 0 < 128) {
HEAP8[$s >> 0] = $wc;
$$0 = 1;
break;
}
if ($wc >>> 0 < 2048) {
HEAP8[$s >> 0] = $wc >>> 6 | 192;
HEAP8[$s + 1 >> 0] = $wc & 63 | 128;
$$0 = 2;
break;
}
if ($wc >>> 0 < 55296 | ($wc & -8192 | 0) == 57344) {
HEAP8[$s >> 0] = $wc >>> 12 | 224;
HEAP8[$s + 1 >> 0] = $wc >>> 6 & 63 | 128;
HEAP8[$s + 2 >> 0] = $wc & 63 | 128;
$$0 = 3;
break;
}
if (($wc + -65536 | 0) >>> 0 < 1048576) {
HEAP8[$s >> 0] = $wc >>> 18 | 240;
HEAP8[$s + 1 >> 0] = $wc >>> 12 & 63 | 128;
HEAP8[$s + 2 >> 0] = $wc >>> 6 & 63 | 128;
HEAP8[$s + 3 >> 0] = $wc & 63 | 128;
$$0 = 4;
break;
} else {
$45 = ___errno_location() | 0;
HEAP32[$45 >> 2] = 84;
$$0 = -1;
break;
}
} while (0);
return $$0 | 0;
}
function _getThresholdMode($id) {
$id = $id | 0;
var $0 = 0, $4 = 0, $7 = 0, $thresholdMode = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$thresholdMode = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) {
STACKTOP = sp;
return -1;
} else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$7 = (_arGetLabelingThreshMode(HEAP32[$4 >> 2] | 0, $thresholdMode) | 0) == 0;
STACKTOP = sp;
return ($7 ? HEAP32[$thresholdMode >> 2] | 0 : -1) | 0;
}
return 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj9EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $1 = 0, $10 = 0, $12 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
HEAP8[$this >> 0] = 16;
$1 = $s;
$2 = $1;
$3 = HEAPU8[$2 >> 0] | HEAPU8[$2 + 1 >> 0] << 8 | HEAPU8[$2 + 2 >> 0] << 16 | HEAPU8[$2 + 3 >> 0] << 24;
$5 = $1 + 4 | 0;
$6 = HEAPU8[$5 >> 0] | HEAPU8[$5 + 1 >> 0] << 8 | HEAPU8[$5 + 2 >> 0] << 16 | HEAPU8[$5 + 3 >> 0] << 24;
$7 = $this + 1 | 0;
$8 = $7;
HEAP8[$8 >> 0] = $3;
HEAP8[$8 + 1 >> 0] = $3 >> 8;
HEAP8[$8 + 2 >> 0] = $3 >> 16;
HEAP8[$8 + 3 >> 0] = $3 >> 24;
$10 = $7 + 4 | 0;
HEAP8[$10 >> 0] = $6;
HEAP8[$10 + 1 >> 0] = $6 >> 8;
HEAP8[$10 + 2 >> 0] = $6 >> 16;
HEAP8[$10 + 3 >> 0] = $6 >> 24;
HEAP8[$this + 9 >> 0] = 0;
$12 = $this + 12 | 0;
HEAP32[$12 >> 2] = 0;
HEAP32[$12 + 4 >> 2] = 0;
HEAP32[$12 + 8 >> 2] = 0;
return;
}
function _getImageProcMode($id) {
$id = $id | 0;
var $0 = 0, $4 = 0, $7 = 0, $imageProcMode = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$imageProcMode = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) {
STACKTOP = sp;
return -1;
} else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$7 = (_arGetImageProcMode(HEAP32[$4 >> 2] | 0, $imageProcMode) | 0) == 0;
STACKTOP = sp;
return ($7 ? HEAP32[$imageProcMode >> 2] | 0 : -1) | 0;
}
return 0;
}
function __ZNSt3__16vectorI12multi_markerNS_9allocatorIS1_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS1_RS3_EE($this, $__v) {
$this = $this | 0;
$__v = $__v | 0;
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $13 = 0, $14 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $6 = 0;
$0 = HEAP32[$this >> 2] | 0;
$1 = $this + 4 | 0;
$3 = $__v + 4 | 0;
$6 = (HEAP32[$1 >> 2] | 0) - $0 | 0;
$10 = (HEAP32[$3 >> 2] | 0) + (0 - ($6 >> 3) << 3) | 0;
HEAP32[$3 >> 2] = $10;
_memcpy($10 | 0, $0 | 0, $6 | 0) | 0;
$11 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = HEAP32[$3 >> 2];
HEAP32[$3 >> 2] = $11;
$13 = $__v + 8 | 0;
$14 = HEAP32[$1 >> 2] | 0;
HEAP32[$1 >> 2] = HEAP32[$13 >> 2];
HEAP32[$13 >> 2] = $14;
$16 = $this + 8 | 0;
$17 = $__v + 12 | 0;
$18 = HEAP32[$16 >> 2] | 0;
HEAP32[$16 >> 2] = HEAP32[$17 >> 2];
HEAP32[$17 >> 2] = $18;
HEAP32[$__v >> 2] = HEAP32[$3 >> 2];
return;
}
function _setPatternDetectionMode($id, $mode) {
$id = $id | 0;
$mode = $mode | 0;
var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 4 | 0;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
if (!(_arSetPatternDetectionMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) {
HEAP32[$vararg_buffer >> 2] = $mode;
_arLog(1, 6477, $vararg_buffer);
}
}
STACKTOP = sp;
return;
}
function _getLabelingMode($id) {
$id = $id | 0;
var $0 = 0, $4 = 0, $7 = 0, $labelingMode = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$labelingMode = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) {
STACKTOP = sp;
return -1;
} else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$7 = (_arGetLabelingMode(HEAP32[$4 >> 2] | 0, $labelingMode) | 0) == 0;
STACKTOP = sp;
return ($7 ? HEAP32[$labelingMode >> 2] | 0 : -1) | 0;
}
return 0;
}
function _arMatrixDup($dest, $source) {
$dest = $dest | 0;
$source = $source | 0;
var $$0 = 0, $1 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $6 = 0, $c$02 = 0, $r$03 = 0;
$1 = HEAP32[$dest + 4 >> 2] | 0;
if (($1 | 0) == (HEAP32[$source + 4 >> 2] | 0)) {
$6 = HEAP32[$dest + 8 >> 2] | 0;
if (($6 | 0) == (HEAP32[$source + 8 >> 2] | 0)) if (($1 | 0) > 0) {
$11 = ($6 | 0) > 0;
$r$03 = 0;
do {
$12 = Math_imul($6, $r$03) | 0;
if ($11) {
$13 = HEAP32[$source >> 2] | 0;
$14 = HEAP32[$dest >> 2] | 0;
$c$02 = 0;
do {
$15 = $12 + $c$02 | 0;
HEAPF64[$14 + ($15 << 3) >> 3] = +HEAPF64[$13 + ($15 << 3) >> 3];
$c$02 = $c$02 + 1 | 0;
} while (($c$02 | 0) < ($6 | 0));
}
$r$03 = $r$03 + 1 | 0;
} while (($r$03 | 0) < ($1 | 0));
$$0 = 0;
} else $$0 = 0; else $$0 = -1;
} else $$0 = -1;
return $$0 | 0;
}
function _setThresholdMode($id, $mode) {
$id = $id | 0;
$mode = $mode | 0;
var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 4 | 0;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
if (!(_arSetLabelingThreshMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) {
HEAP32[$vararg_buffer >> 2] = $mode;
_arLog(1, 6589, $vararg_buffer);
}
}
STACKTOP = sp;
return;
}
function _getPattRatio($id) {
$id = $id | 0;
var $0 = 0, $4 = 0, $5 = 0, $8 = 0, $pattRatio = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 8 | 0;
$pattRatio = sp;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$5 = HEAP32[$4 >> 2] | 0;
if ($5) {
$8 = (_arGetPattRatio($5, $pattRatio) | 0) == 0;
STACKTOP = sp;
return +($8 ? +HEAPF64[$pattRatio >> 3] : -1.0);
}
}
STACKTOP = sp;
return -1.0;
}
function _setImageProcMode($id, $mode) {
$id = $id | 0;
$mode = $mode | 0;
var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 4 | 0;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
if (!(_arSetImageProcMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) {
HEAP32[$vararg_buffer >> 2] = $mode;
_arLog(1, 6646, $vararg_buffer);
}
}
STACKTOP = sp;
return;
}
function _setLabelingMode($id, $mode) {
$id = $id | 0;
$mode = $mode | 0;
var $0 = 0, $4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$0 = sp + 4 | 0;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
if (!(_arSetLabelingMode(HEAP32[$4 >> 2] | 0, $mode) | 0)) {
HEAP32[$vararg_buffer >> 2] = $mode;
_arLog(1, 6543, $vararg_buffer);
}
}
STACKTOP = sp;
return;
}
function _getThreshold($id) {
$id = $id | 0;
var $0 = 0, $4 = 0, $7 = 0, $threshold = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$threshold = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) {
STACKTOP = sp;
return -1;
} else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$7 = (_arGetLabelingThresh(HEAP32[$4 >> 2] | 0, $threshold) | 0) == 0;
STACKTOP = sp;
return ($7 ? HEAP32[$threshold >> 2] | 0 : -1) | 0;
}
return 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_119parse_cv_qualifiersEPKcS2_Rj($first, $last, $cv) {
$first = $first | 0;
$last = $last | 0;
$cv = $cv | 0;
var $$0 = 0, $$1 = 0, $$2 = 0, $1 = 0, $10 = 0, $12 = 0, $3 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0;
HEAP32[$cv >> 2] = 0;
if (($first | 0) == ($last | 0)) $$2 = $first; else {
$1 = HEAP8[$first >> 0] | 0;
if ($1 << 24 >> 24 == 114) {
HEAP32[$cv >> 2] = 4;
$3 = $first + 1 | 0;
$$0 = $3;
$5 = HEAP8[$3 >> 0] | 0;
$7 = 4;
} else {
$$0 = $first;
$5 = $1;
$7 = 0;
}
if ($5 << 24 >> 24 == 86) {
$6 = $7 | 2;
HEAP32[$cv >> 2] = $6;
$8 = $$0 + 1 | 0;
$$1 = $8;
$10 = HEAP8[$8 >> 0] | 0;
$12 = $6;
} else {
$$1 = $$0;
$10 = $5;
$12 = $7;
}
if ($10 << 24 >> 24 == 75) {
HEAP32[$cv >> 2] = $12 | 1;
$$2 = $$1 + 1 | 0;
} else $$2 = $$1;
}
return $$2 | 0;
}
function _getPatternDetectionMode($id) {
$id = $id | 0;
var $0 = 0, $4 = 0, $7 = 0, $mode = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$mode = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) {
STACKTOP = sp;
return -1;
} else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$7 = (_arGetPatternDetectionMode(HEAP32[$4 >> 2] | 0, $mode) | 0) == 0;
STACKTOP = sp;
return ($7 ? HEAP32[$mode >> 2] | 0 : -1) | 0;
}
return 0;
}
function _strerror($e) {
$e = $e | 0;
var $$lcssa = 0, $9 = 0, $i$03 = 0, $i$03$lcssa = 0, $i$12 = 0, $s$0$lcssa = 0, $s$01 = 0, $s$1 = 0, label = 0;
$i$03 = 0;
while (1) {
if ((HEAPU8[14592 + $i$03 >> 0] | 0) == ($e | 0)) {
$i$03$lcssa = $i$03;
label = 2;
break;
}
$i$03 = $i$03 + 1 | 0;
if (($i$03 | 0) == 87) {
$i$12 = 87;
$s$01 = 14680;
label = 5;
break;
}
}
if ((label | 0) == 2) if (!$i$03$lcssa) $s$0$lcssa = 14680; else {
$i$12 = $i$03$lcssa;
$s$01 = 14680;
label = 5;
}
if ((label | 0) == 5) while (1) {
label = 0;
$s$1 = $s$01;
while (1) {
$9 = $s$1 + 1 | 0;
if (!(HEAP8[$s$1 >> 0] | 0)) {
$$lcssa = $9;
break;
} else $s$1 = $9;
}
$i$12 = $i$12 + -1 | 0;
if (!$i$12) {
$s$0$lcssa = $$lcssa;
break;
} else {
$s$01 = $$lcssa;
label = 5;
}
}
return $s$0$lcssa | 0;
}
function __ZNSt3__113__lower_boundIRNS_6__lessIjjEEPKjjEET0_S6_S6_RKT1_T_($__first, $__last, $__value_, $__comp) {
$__first = $__first | 0;
$__last = $__last | 0;
$__value_ = $__value_ | 0;
$__comp = $__comp | 0;
var $$0$ph = 0, $$0$ph$lcssa = 0, $$lcssa = 0, $4 = 0, $6 = 0, $__len$0 = 0, $__len$0$lcssa7 = 0, $__len$0$ph = 0;
$4 = HEAP32[$__value_ >> 2] | 0;
$$0$ph = $__first;
$__len$0$ph = $__last - $__first >> 2;
L1 : while (1) {
$__len$0 = $__len$0$ph;
while (1) {
if (!$__len$0) {
$$0$ph$lcssa = $$0$ph;
break L1;
}
$6 = ($__len$0 | 0) / 2 | 0;
if ((HEAP32[$$0$ph + ($6 << 2) >> 2] | 0) >>> 0 < $4 >>> 0) {
$$lcssa = $6;
$__len$0$lcssa7 = $__len$0;
break;
} else $__len$0 = $6;
}
$$0$ph = $$0$ph + ($$lcssa + 1 << 2) | 0;
$__len$0$ph = $__len$0$lcssa7 + -1 - $$lcssa | 0;
}
return $$0$ph$lcssa | 0;
}
function __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EEPKS8_RKSB_($agg$result, $__lhs, $__rhs) {
$agg$result = $agg$result | 0;
$__lhs = $__lhs | 0;
$__rhs = $__rhs | 0;
var $10 = 0, $2 = 0, $3 = 0;
HEAP32[$agg$result >> 2] = 0;
HEAP32[$agg$result + 4 >> 2] = 0;
HEAP32[$agg$result + 8 >> 2] = 0;
$2 = _strlen($__lhs) | 0;
$3 = HEAP8[$__rhs >> 0] | 0;
$10 = ($3 & 1) == 0 ? ($3 & 255) >>> 1 : HEAP32[$__rhs + 4 >> 2] | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($agg$result, $__lhs, $2, $10 + $2 | 0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($agg$result, (HEAP8[$__rhs >> 0] & 1) == 0 ? $__rhs + 1 | 0 : HEAP32[$__rhs + 8 >> 2] | 0, $10) | 0;
return;
}
function _frexp($x, $e) {
$x = +$x;
$e = $e | 0;
var $$0 = 0.0, $$01 = 0.0, $0 = 0, $1 = 0, $2 = 0, $4 = 0, $7 = 0.0, $storemerge = 0;
HEAPF64[tempDoublePtr >> 3] = $x;
$0 = HEAP32[tempDoublePtr >> 2] | 0;
$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0;
$2 = _bitshift64Lshr($0 | 0, $1 | 0, 52) | 0;
$4 = $2 & 2047;
switch ($4 | 0) {
case 0:
{
if ($x != 0.0) {
$7 = +_frexp($x * 18446744073709551616.0, $e);
$$01 = $7;
$storemerge = (HEAP32[$e >> 2] | 0) + -64 | 0;
} else {
$$01 = $x;
$storemerge = 0;
}
HEAP32[$e >> 2] = $storemerge;
$$0 = $$01;
break;
}
case 2047:
{
$$0 = $x;
break;
}
default:
{
HEAP32[$e >> 2] = $4 + -1022;
HEAP32[tempDoublePtr >> 2] = $0;
HEAP32[tempDoublePtr + 4 >> 2] = $1 & -2146435073 | 1071644672;
$$0 = +HEAPF64[tempDoublePtr >> 3];
}
}
return +$$0;
}
function ___fseeko_unlocked($f, $off, $whence) {
$f = $f | 0;
$off = $off | 0;
$whence = $whence | 0;
var $$0 = 0, $$01 = 0, $11 = 0, $9 = 0, label = 0;
if (($whence | 0) == 1) $$01 = $off - (HEAP32[$f + 8 >> 2] | 0) + (HEAP32[$f + 4 >> 2] | 0) | 0; else $$01 = $off;
$9 = $f + 20 | 0;
$11 = $f + 28 | 0;
if ((HEAP32[$9 >> 2] | 0) >>> 0 > (HEAP32[$11 >> 2] | 0) >>> 0) {
FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0;
if (!(HEAP32[$9 >> 2] | 0)) $$0 = -1; else label = 5;
} else label = 5;
if ((label | 0) == 5) {
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$11 >> 2] = 0;
HEAP32[$9 >> 2] = 0;
if ((FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 15]($f, $$01, $whence) | 0) < 0) $$0 = -1; else {
HEAP32[$f + 8 >> 2] = 0;
HEAP32[$f + 4 >> 2] = 0;
HEAP32[$f >> 2] = HEAP32[$f >> 2] & -17;
$$0 = 0;
}
}
return $$0 | 0;
}
function __ZNSt3__1plIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEENS_12basic_stringIT_T0_T1_EERKSB_PKS8_($agg$result, $__lhs, $__rhs) {
$agg$result = $agg$result | 0;
$__lhs = $__lhs | 0;
$__rhs = $__rhs | 0;
var $10 = 0, $2 = 0, $4 = 0, $9 = 0;
HEAP32[$agg$result >> 2] = 0;
HEAP32[$agg$result + 4 >> 2] = 0;
HEAP32[$agg$result + 8 >> 2] = 0;
$2 = HEAP8[$__lhs >> 0] | 0;
$4 = ($2 & 1) == 0;
$9 = $4 ? ($2 & 255) >>> 1 : HEAP32[$__lhs + 4 >> 2] | 0;
$10 = _strlen($__rhs) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($agg$result, $4 ? $__lhs + 1 | 0 : HEAP32[$__lhs + 8 >> 2] | 0, $9, $9 + $10 | 0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($agg$result, $__rhs, $10) | 0;
return;
}
function _icpGetU_from_X_by_MatX2U($u, $matX2U, $coord3d) {
$u = $u | 0;
$matX2U = $matX2U | 0;
$coord3d = $coord3d | 0;
var $$0 = 0, $0 = 0.0, $18 = 0.0, $2 = 0.0, $33 = 0.0, $4 = 0.0;
$0 = +HEAPF64[$coord3d >> 3];
$2 = +HEAPF64[$coord3d + 8 >> 3];
$4 = +HEAPF64[$coord3d + 16 >> 3];
$18 = +HEAPF64[$matX2U + 88 >> 3] + ($0 * +HEAPF64[$matX2U + 64 >> 3] + $2 * +HEAPF64[$matX2U + 72 >> 3] + $4 * +HEAPF64[$matX2U + 80 >> 3]);
if ($18 == 0.0) $$0 = -1; else {
$33 = +HEAPF64[$matX2U + 56 >> 3] + ($0 * +HEAPF64[$matX2U + 32 >> 3] + $2 * +HEAPF64[$matX2U + 40 >> 3] + $4 * +HEAPF64[$matX2U + 48 >> 3]);
HEAPF64[$u >> 3] = (+HEAPF64[$matX2U + 24 >> 3] + ($0 * +HEAPF64[$matX2U >> 3] + $2 * +HEAPF64[$matX2U + 8 >> 3] + $4 * +HEAPF64[$matX2U + 16 >> 3])) / $18;
HEAPF64[$u + 8 >> 3] = $33 / $18;
$$0 = 0;
}
return $$0 | 0;
}
function __ZNSt3__16vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEEC2EjRKS3_RKS5_($this, $__x, $__a) {
$this = $this | 0;
$__x = $__x | 0;
$__a = $__a | 0;
var $0 = 0, $2 = 0, $5 = 0;
HEAP32[$this >> 2] = 0;
$0 = $this + 4 | 0;
HEAP32[$0 >> 2] = 0;
$2 = HEAP32[$__a >> 2] | 0;
HEAP32[$this + 8 >> 2] = 0;
HEAP32[$this + 12 >> 2] = $2;
$5 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj($2, 24) | 0;
HEAP32[$0 >> 2] = $5;
HEAP32[$this >> 2] = $5;
HEAP32[$this + 8 >> 2] = $5 + 24;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($5, $__x);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($5 + 12 | 0, $__x + 12 | 0);
HEAP32[$0 >> 2] = (HEAP32[$0 >> 2] | 0) + 24;
return;
}
function _getMatrixCodeType($id) {
$id = $id | 0;
var $$0 = 0, $0 = 0, $4 = 0, $matrixType = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$matrixType = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
_arGetMatrixCodeType(HEAP32[$4 >> 2] | 0, $matrixType) | 0;
$$0 = HEAP32[$matrixType >> 2] | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_112parse_numberEPKcS2_($first, $last) {
$first = $first | 0;
$last = $last | 0;
var $$0 = 0, $$1 = 0, $$first = 0, $5 = 0, $t$0$pn = 0;
L1 : do if (($first | 0) == ($last | 0)) $$1 = $first; else {
$$first = (HEAP8[$first >> 0] | 0) == 110 ? $first + 1 | 0 : $first;
if (($$first | 0) == ($last | 0)) $$1 = $first; else {
$5 = HEAP8[$$first >> 0] | 0;
if ($5 << 24 >> 24 == 48) {
$$1 = $$first + 1 | 0;
break;
}
if (($5 + -49 & 255) < 9) {
$t$0$pn = $$first;
while (1) {
$$0 = $t$0$pn + 1 | 0;
if (($$0 | 0) == ($last | 0)) {
$$1 = $last;
break L1;
}
if (((HEAP8[$$0 >> 0] | 0) + -48 | 0) >>> 0 < 10) $t$0$pn = $$0; else {
$$1 = $$0;
break;
}
}
} else $$1 = $first;
}
} while (0);
return $$1 | 0;
}
function __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEED2Ev($this) {
$this = $this | 0;
var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $this + 8 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if (($3 | 0) != ($1 | 0)) {
$6 = $3;
do {
$5 = $6 + -16 | 0;
HEAP32[$2 >> 2] = $5;
__ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($5);
$6 = HEAP32[$2 >> 2] | 0;
} while (($6 | 0) != ($1 | 0));
}
$9 = HEAP32[$this >> 2] | 0;
if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0);
return;
}
function __ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEENS5_IS9_Lj4096EEEED2Ev($this) {
$this = $this | 0;
var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0;
$0 = HEAP32[$this >> 2] | 0;
if ($0) {
$2 = $this + 4 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if (($3 | 0) != ($0 | 0)) {
$6 = $3;
do {
$5 = $6 + -16 | 0;
HEAP32[$2 >> 2] = $5;
__ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($5);
$6 = HEAP32[$2 >> 2] | 0;
} while (($6 | 0) != ($0 | 0));
}
$9 = HEAP32[$this >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0);
}
return;
}
function _getDebugMode($id) {
$id = $id | 0;
var $$0 = 0, $0 = 0, $4 = 0, $enable = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp + 4 | 0;
$enable = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = 0; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
_arGetDebugMode(HEAP32[$4 >> 2] | 0, $enable) | 0;
$$0 = HEAP32[$enable >> 2] | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function _realloc($oldmem, $bytes) {
$oldmem = $oldmem | 0;
$bytes = $bytes | 0;
var $12 = 0, $15 = 0, $20 = 0, $3 = 0, $9 = 0, $mem$0 = 0;
if (!$oldmem) {
$mem$0 = _malloc($bytes) | 0;
return $mem$0 | 0;
}
if ($bytes >>> 0 > 4294967231) {
$3 = ___errno_location() | 0;
HEAP32[$3 >> 2] = 12;
$mem$0 = 0;
return $mem$0 | 0;
}
$9 = _try_realloc_chunk($oldmem + -8 | 0, $bytes >>> 0 < 11 ? 16 : $bytes + 11 & -8) | 0;
if ($9) {
$mem$0 = $9 + 8 | 0;
return $mem$0 | 0;
}
$12 = _malloc($bytes) | 0;
if (!$12) {
$mem$0 = 0;
return $mem$0 | 0;
}
$15 = HEAP32[$oldmem + -4 >> 2] | 0;
$20 = ($15 & -8) - (($15 & 3 | 0) == 0 ? 8 : 4) | 0;
_memcpy($12 | 0, $oldmem | 0, ($20 >>> 0 < $bytes >>> 0 ? $20 : $bytes) | 0) | 0;
_free($oldmem);
$mem$0 = $12;
return $mem$0 | 0;
}
function _arSetDebugMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0, $11 = 0, $4 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
do if (!$handle) $$0 = -1; else if ((HEAP32[$handle >> 2] | 0) == ($mode | 0)) $$0 = 0; else {
HEAP32[$handle >> 2] = $mode;
if (!$mode) {
$4 = $handle + 4834148 | 0;
_free(HEAP32[$4 >> 2] | 0);
HEAP32[$4 >> 2] = 0;
$$0 = 0;
break;
}
$11 = _malloc(Math_imul(HEAP32[$handle + 40 >> 2] | 0, HEAP32[$handle + 36 >> 2] | 0) | 0) | 0;
HEAP32[$handle + 4834148 >> 2] = $11;
if (!$11) {
_arLog(3, 5471, $vararg_buffer);
_exit(1);
} else $$0 = 0;
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _vasprintf($s, $fmt, $ap) {
$s = $s | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
var $$0 = 0, $0 = 0, $10 = 0, $2 = 0, $5 = 0, $9 = 0, $ap2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ap2 = sp;
$0 = _malloc(240) | 0;
do if (!$0) $$0 = -1; else {
HEAP32[$ap2 >> 2] = HEAP32[$ap >> 2];
$2 = _vsnprintf($0, 240, $fmt, $ap2) | 0;
if ($2 >>> 0 < 240) {
$5 = _realloc($0, $2 + 1 | 0) | 0;
HEAP32[$s >> 2] = ($5 | 0) != 0 ? $5 : $0;
$$0 = $2;
break;
}
_free($0);
if (($2 | 0) < 0) $$0 = -1; else {
$9 = $2 + 1 | 0;
$10 = _malloc($9) | 0;
HEAP32[$s >> 2] = $10;
if (!$10) $$0 = -1; else $$0 = _vsnprintf($10, $9, $fmt, $ap) | 0;
}
} while (0);
STACKTOP = sp;
return $$0 | 0;
}
function _icpCreateHandle($matXc2U) {
$matXc2U = $matXc2U | 0;
var $$0 = 0, $0 = 0, $j$04 = 0;
$0 = _malloc(136) | 0;
if (!$0) $$0 = 0; else {
$j$04 = 0;
do {
HEAPF64[$0 + ($j$04 << 5) >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) >> 3];
HEAPF64[$0 + ($j$04 << 5) + 8 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 8 >> 3];
HEAPF64[$0 + ($j$04 << 5) + 16 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 16 >> 3];
HEAPF64[$0 + ($j$04 << 5) + 24 >> 3] = +HEAPF64[$matXc2U + ($j$04 << 5) + 24 >> 3];
$j$04 = $j$04 + 1 | 0;
} while (($j$04 | 0) != 3);
HEAP32[$0 + 96 >> 2] = 10;
HEAPF64[$0 + 104 >> 3] = .10000000149011612;
HEAPF64[$0 + 112 >> 3] = .9900000095367432;
HEAPF64[$0 + 120 >> 3] = 4.0;
HEAPF64[$0 + 128 >> 3] = .5;
$$0 = $0;
}
return $$0 | 0;
}
function __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEED2Ev($this) {
$this = $this | 0;
var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $this + 8 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if (($3 | 0) != ($1 | 0)) {
$6 = $3;
do {
$5 = $6 + -16 | 0;
HEAP32[$2 >> 2] = $5;
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($5);
$6 = HEAP32[$2 >> 2] | 0;
} while (($6 | 0) != ($1 | 0));
}
$9 = HEAP32[$this >> 2] | 0;
if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0);
return;
}
function __ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($this) {
$this = $this | 0;
var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0;
$0 = HEAP32[$this >> 2] | 0;
if ($0) {
$2 = $this + 4 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if (($3 | 0) != ($0 | 0)) {
$6 = $3;
do {
$5 = $6 + -16 | 0;
HEAP32[$2 >> 2] = $5;
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($5);
$6 = HEAP32[$2 >> 2] | 0;
} while (($6 | 0) != ($0 | 0));
}
$9 = HEAP32[$this >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0);
}
return;
}
function __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$dst_ptr = $dst_ptr | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $1 >> 8;
if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$current_ptr >> 2] | 0) + $2 >> 2] | 0;
$8 = HEAP32[$this >> 2] | 0;
FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 20 >> 2] & 3]($8, $info, $dst_ptr, $current_ptr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2, $use_strcmp);
return;
}
function _setProjectionNearPlane($id, $projectionNearPlane) {
$id = $id | 0;
$projectionNearPlane = +$projectionNearPlane;
var $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 232 | 0;
HEAPF64[$4 >> 3] = $projectionNearPlane;
}
STACKTOP = sp;
return;
}
function _detectMarker($id) {
$id = $id | 0;
var $$0 = 0, $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = HEAP32[522] | 0; else {
$4 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$$0 = _arDetectMarker(HEAP32[$4 + 212 >> 2] | 0, HEAP32[$4 + 196 >> 2] | 0) | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) {
$this = $this | 0;
$info = $info | 0;
$adjustedPtr = $adjustedPtr | 0;
$path_below = $path_below | 0;
var $0 = 0, $1 = 0, $6 = 0, $9 = 0;
$0 = $info + 16 | 0;
$1 = HEAP32[$0 >> 2] | 0;
do if (!$1) {
HEAP32[$0 >> 2] = $adjustedPtr;
HEAP32[$info + 24 >> 2] = $path_below;
HEAP32[$info + 36 >> 2] = 1;
} else {
if (($1 | 0) != ($adjustedPtr | 0)) {
$9 = $info + 36 | 0;
HEAP32[$9 >> 2] = (HEAP32[$9 >> 2] | 0) + 1;
HEAP32[$info + 24 >> 2] = 2;
HEAP8[$info + 54 >> 0] = 1;
break;
}
$6 = $info + 24 | 0;
if ((HEAP32[$6 >> 2] | 0) == 2) HEAP32[$6 >> 2] = $path_below;
} while (0);
return;
}
function _setProjectionFarPlane($id, $projectionFarPlane) {
$id = $id | 0;
$projectionFarPlane = +$projectionFarPlane;
var $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 240 | 0;
HEAPF64[$4 >> 3] = $projectionFarPlane;
}
STACKTOP = sp;
return;
}
function _arParamObserv2IdealLTf($paramLTf, $ox, $oy, $ix, $iy) {
$paramLTf = $paramLTf | 0;
$ox = +$ox;
$oy = +$oy;
$ix = $ix | 0;
$iy = $iy | 0;
var $$0 = 0, $12 = 0, $19 = 0, $22 = 0, $4 = 0, $9 = 0;
$4 = (HEAP32[$paramLTf + 16 >> 2] | 0) + ~~($ox + .5) | 0;
$9 = (HEAP32[$paramLTf + 20 >> 2] | 0) + ~~($oy + .5) | 0;
if (($4 | 0) < 0) $$0 = -1; else {
$12 = HEAP32[$paramLTf + 8 >> 2] | 0;
if (($9 | 0) < 0 | ($4 | 0) >= ($12 | 0)) $$0 = -1; else if (($9 | 0) < (HEAP32[$paramLTf + 12 >> 2] | 0)) {
$19 = HEAP32[$paramLTf + 4 >> 2] | 0;
$22 = (Math_imul($12, $9) | 0) + $4 << 1;
HEAP32[$ix >> 2] = HEAP32[$19 + ($22 << 2) >> 2];
HEAP32[$iy >> 2] = HEAP32[$19 + (($22 | 1) << 2) >> 2];
$$0 = 0;
} else $$0 = -1;
}
return $$0 | 0;
}
function _arParamIdeal2ObservLTf($paramLTf, $ix, $iy, $ox, $oy) {
$paramLTf = $paramLTf | 0;
$ix = +$ix;
$iy = +$iy;
$ox = $ox | 0;
$oy = $oy | 0;
var $$0 = 0, $12 = 0, $18 = 0, $21 = 0, $4 = 0, $9 = 0;
$4 = (HEAP32[$paramLTf + 16 >> 2] | 0) + ~~($ix + .5) | 0;
$9 = (HEAP32[$paramLTf + 20 >> 2] | 0) + ~~($iy + .5) | 0;
if (($4 | 0) < 0) $$0 = -1; else {
$12 = HEAP32[$paramLTf + 8 >> 2] | 0;
if (($9 | 0) < 0 | ($4 | 0) >= ($12 | 0)) $$0 = -1; else if (($9 | 0) < (HEAP32[$paramLTf + 12 >> 2] | 0)) {
$18 = HEAP32[$paramLTf >> 2] | 0;
$21 = (Math_imul($12, $9) | 0) + $4 << 1;
HEAP32[$ox >> 2] = HEAP32[$18 + ($21 << 2) >> 2];
HEAP32[$oy >> 2] = HEAP32[$18 + (($21 | 1) << 2) >> 2];
$$0 = 0;
} else $$0 = -1;
}
return $$0 | 0;
}
function _arUtilMatMul($s1, $s2, $d) {
$s1 = $s1 | 0;
$s2 = $s2 | 0;
$d = $d | 0;
var $0 = 0, $1 = 0, $2 = 0, $21 = 0, $i$02 = 0, $j$03 = 0;
$j$03 = 0;
do {
$0 = $s1 + ($j$03 << 5) | 0;
$1 = $s1 + ($j$03 << 5) + 8 | 0;
$2 = $s1 + ($j$03 << 5) + 16 | 0;
$i$02 = 0;
do {
HEAPF64[$d + ($j$03 << 5) + ($i$02 << 3) >> 3] = +HEAPF64[$0 >> 3] * +HEAPF64[$s2 + ($i$02 << 3) >> 3] + +HEAPF64[$1 >> 3] * +HEAPF64[$s2 + 32 + ($i$02 << 3) >> 3] + +HEAPF64[$2 >> 3] * +HEAPF64[$s2 + 64 + ($i$02 << 3) >> 3];
$i$02 = $i$02 + 1 | 0;
} while (($i$02 | 0) != 4);
$21 = $d + ($j$03 << 5) + 24 | 0;
HEAPF64[$21 >> 3] = +HEAPF64[$s1 + ($j$03 << 5) + 24 >> 3] + +HEAPF64[$21 >> 3];
$j$03 = $j$03 + 1 | 0;
} while (($j$03 | 0) != 3);
return 0;
}
function _getMultiMarkerCount($id) {
$id = $id | 0;
var $$0 = 0, $0 = 0, $3 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1; else {
$3 = __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0;
$$0 = (HEAP32[$3 + 252 >> 2] | 0) - (HEAP32[$3 + 248 >> 2] | 0) >> 3;
}
STACKTOP = sp;
return $$0 | 0;
}
function _getMarkerNum($id) {
$id = $id | 0;
var $$0$in = 0, $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0$in = 2088; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$$0$in = (HEAP32[$4 >> 2] | 0) + 44 | 0;
}
STACKTOP = sp;
return HEAP32[$$0$in >> 2] | 0;
}
function _getProcessingImage($id) {
$id = $id | 0;
var $$0 = 0, $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = 0; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
$$0 = HEAP32[(HEAP32[$4 >> 2] | 0) + 4834148 >> 2] | 0;
}
STACKTOP = sp;
return $$0 | 0;
}
function ___fflush_unlocked($f) {
$f = $f | 0;
var $$0 = 0, $0 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $9 = 0, label = 0;
$0 = $f + 20 | 0;
$2 = $f + 28 | 0;
if ((HEAP32[$0 >> 2] | 0) >>> 0 > (HEAP32[$2 >> 2] | 0) >>> 0) {
FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0;
if (!(HEAP32[$0 >> 2] | 0)) $$0 = -1; else label = 3;
} else label = 3;
if ((label | 0) == 3) {
$9 = $f + 4 | 0;
$10 = HEAP32[$9 >> 2] | 0;
$11 = $f + 8 | 0;
$12 = HEAP32[$11 >> 2] | 0;
if ($10 >>> 0 < $12 >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 15]($f, $10 - $12 | 0, 1) | 0;
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$11 >> 2] = 0;
HEAP32[$9 >> 2] = 0;
$$0 = 0;
}
return $$0 | 0;
}
function ___divdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $1$0 = 0, $1$1 = 0, $2$0 = 0, $2$1 = 0, $4$0 = 0, $4$1 = 0, $7$0 = 0, $7$1 = 0;
$1$0 = $a$1 >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$1$1 = (($a$1 | 0) < 0 ? -1 : 0) >> 31 | (($a$1 | 0) < 0 ? -1 : 0) << 1;
$2$0 = $b$1 >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$2$1 = (($b$1 | 0) < 0 ? -1 : 0) >> 31 | (($b$1 | 0) < 0 ? -1 : 0) << 1;
$4$0 = _i64Subtract($1$0 ^ $a$0, $1$1 ^ $a$1, $1$0, $1$1) | 0;
$4$1 = tempRet0;
$7$0 = $2$0 ^ $1$0;
$7$1 = $2$1 ^ $1$1;
return _i64Subtract((___udivmoddi4($4$0, $4$1, _i64Subtract($2$0 ^ $b$0, $2$1 ^ $b$1, $2$0, $2$1) | 0, tempRet0, 0) | 0) ^ $7$0, tempRet0 ^ $7$1, $7$0, $7$1) | 0;
}
function _setMatrixCodeType($id, $type) {
$id = $id | 0;
$type = $type | 0;
var $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0) {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 212 | 0;
_arSetMatrixCodeType(HEAP32[$4 >> 2] | 0, $type) | 0;
}
STACKTOP = sp;
return;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcjj($this, $__s, $__sz, $__reserve) {
$this = $this | 0;
$__s = $__s | 0;
$__sz = $__sz | 0;
$__reserve = $__reserve | 0;
var $6 = 0, $7 = 0, $__p$0 = 0;
if ($__reserve >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this);
if ($__reserve >>> 0 < 11) {
HEAP8[$this >> 0] = $__sz << 1;
$__p$0 = $this + 1 | 0;
} else {
$6 = $__reserve + 16 & -16;
$7 = _malloc($6) | 0;
HEAP32[$this + 8 >> 2] = $7;
HEAP32[$this >> 2] = $6 | 1;
HEAP32[$this + 4 >> 2] = $__sz;
$__p$0 = $7;
}
_memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0;
HEAP8[$__p$0 + $__sz >> 0] = 0;
return;
}
function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$dst_ptr = $dst_ptr | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $4 = 0;
if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below); else {
$4 = HEAP32[$this + 8 >> 2] | 0;
FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 20 >> 2] & 3]($4, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp);
}
return;
}
function _strtok($s, $sep) {
$s = $s | 0;
$sep = $sep | 0;
var $$0 = 0, $$01 = 0, $$sum = 0, $1 = 0, $3 = 0, $4 = 0, $8 = 0, label = 0;
if (!$s) {
$1 = HEAP32[699] | 0;
if (!$1) $$0 = 0; else {
$$01 = $1;
label = 3;
}
} else {
$$01 = $s;
label = 3;
}
do if ((label | 0) == 3) {
$3 = _strspn($$01, $sep) | 0;
$4 = $$01 + $3 | 0;
if (!(HEAP8[$4 >> 0] | 0)) {
HEAP32[699] = 0;
$$0 = 0;
break;
}
$$sum = (_strcspn($4, $sep) | 0) + $3 | 0;
$8 = $$01 + $$sum | 0;
HEAP32[699] = $8;
if (!(HEAP8[$8 >> 0] | 0)) {
HEAP32[699] = 0;
$$0 = $4;
break;
} else {
HEAP32[699] = $$01 + ($$sum + 1);
HEAP8[$8 >> 0] = 0;
$$0 = $4;
break;
}
} while (0);
return $$0 | 0;
}
function __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this, $info, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $1 >> 8;
if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$current_ptr >> 2] | 0) + $2 >> 2] | 0;
$8 = HEAP32[$this >> 2] | 0;
FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 24 >> 2] & 3]($8, $info, $current_ptr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2, $use_strcmp);
return;
}
function _getProjectionNearPlane($id) {
$id = $id | 0;
var $$0 = 0.0, $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1.0; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 232 | 0;
$$0 = +HEAPF64[$4 >> 3];
}
STACKTOP = sp;
return +$$0;
}
function _getProjectionFarPlane($id) {
$id = $id | 0;
var $$0 = 0.0, $0 = 0, $4 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
HEAP32[$0 >> 2] = $id;
if (!(__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE4findIiEENS_15__hash_iteratorIPNS_11__hash_nodeIS3_PvEEEERKT_(2044, $0) | 0)) $$0 = -1.0; else {
$4 = (__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEEixERS8_(2044, $0) | 0) + 240 | 0;
$$0 = +HEAPF64[$4 >> 3];
}
STACKTOP = sp;
return +$$0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pair9move_fullEv($agg$result, $this) {
$agg$result = $agg$result | 0;
$this = $this | 0;
var $0 = 0, $1 = 0, $13 = 0, $3 = 0;
$0 = $this + 12 | 0;
$1 = HEAP8[$0 >> 0] | 0;
$3 = ($1 & 1) == 0;
$13 = __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $3 ? $0 + 1 | 0 : HEAP32[$this + 20 >> 2] | 0, $3 ? ($1 & 255) >>> 1 : HEAP32[$this + 16 >> 2] | 0) | 0;
HEAP32[$agg$result >> 2] = HEAP32[$13 >> 2];
HEAP32[$agg$result + 4 >> 2] = HEAP32[$13 + 4 >> 2];
HEAP32[$agg$result + 8 >> 2] = HEAP32[$13 + 8 >> 2];
HEAP32[$13 >> 2] = 0;
HEAP32[$13 + 4 >> 2] = 0;
HEAP32[$13 + 8 >> 2] = 0;
return;
}
function _arImageProcLumaHist($ipi, $dataPtr) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
var $$0 = 0, $13 = 0, $5 = 0, $8 = 0, $9 = 0, $p$03 = 0;
if (($ipi | 0) != 0 & ($dataPtr | 0) != 0) if ((_arImageProcLuma($ipi, $dataPtr) | 0) < 0) $$0 = -1; else {
_memset($ipi + 16 | 0, 0, 1024) | 0;
$5 = HEAP32[$ipi >> 2] | 0;
$8 = Math_imul(HEAP32[$ipi + 12 >> 2] | 0, HEAP32[$ipi + 8 >> 2] | 0) | 0;
$9 = $5 + $8 | 0;
if (($8 | 0) > 0) {
$p$03 = $5;
do {
$13 = $ipi + 16 + ((HEAPU8[$p$03 >> 0] | 0) << 2) | 0;
HEAP32[$13 >> 2] = (HEAP32[$13 >> 2] | 0) + 1;
$p$03 = $p$03 + 1 | 0;
} while ($p$03 >>> 0 < $9 >>> 0);
$$0 = 0;
} else $$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function _memcpy(dest, src, num) {
dest = dest | 0;
src = src | 0;
num = num | 0;
var ret = 0;
if ((num | 0) >= 4096) return _emscripten_memcpy_big(dest | 0, src | 0, num | 0) | 0;
ret = dest | 0;
if ((dest & 3) == (src & 3)) {
while (dest & 3) {
if (!num) return ret | 0;
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
num = num - 1 | 0;
}
while ((num | 0) >= 4) {
HEAP32[dest >> 2] = HEAP32[src >> 2];
dest = dest + 4 | 0;
src = src + 4 | 0;
num = num - 4 | 0;
}
}
while ((num | 0) > 0) {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
num = num - 1 | 0;
}
return ret | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE5eraseEjj($this) {
$this = $this | 0;
var $$pre1 = 0, $0 = 0, $10 = 0, $11 = 0, $14 = 0, $16 = 0;
$0 = HEAP8[$this >> 0] | 0;
if (!($0 & 1)) {
$10 = ($0 & 255) >>> 1;
$14 = $this + 1 | 0;
} else {
$10 = HEAP32[$this + 4 >> 2] | 0;
$14 = HEAP32[$this + 8 >> 2] | 0;
}
$11 = ($10 | 0) != 0 & 1;
$$pre1 = $10 - $11 | 0;
if (($10 | 0) == ($11 | 0)) $16 = $0; else {
_memmove($14 | 0, $14 + $11 | 0, $$pre1 | 0) | 0;
$16 = HEAP8[$this >> 0] | 0;
}
if (!($16 & 1)) HEAP8[$this >> 0] = $$pre1 << 1; else HEAP32[$this + 4 >> 2] = $$pre1;
HEAP8[$14 + $$pre1 >> 0] = 0;
return;
}
function ___stdio_seek($f, $off, $whence) {
$f = $f | 0;
$off = $off | 0;
$whence = $whence | 0;
var $5 = 0, $ret = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 32 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
$ret = sp + 20 | 0;
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = 0;
HEAP32[$vararg_buffer + 8 >> 2] = $off;
HEAP32[$vararg_buffer + 12 >> 2] = $ret;
HEAP32[$vararg_buffer + 16 >> 2] = $whence;
if ((___syscall_ret(___syscall140(140, $vararg_buffer | 0) | 0) | 0) < 0) {
HEAP32[$ret >> 2] = -1;
$5 = -1;
} else $5 = HEAP32[$ret >> 2] | 0;
STACKTOP = sp;
return $5 | 0;
}
function __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEED2Ev($this) {
$this = $this | 0;
var $1 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $this + 8 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if (($3 | 0) != ($1 | 0)) {
$6 = $3;
do {
$5 = $6 + -24 | 0;
HEAP32[$2 >> 2] = $5;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
$6 = HEAP32[$2 >> 2] | 0;
} while (($6 | 0) != ($1 | 0));
}
$9 = HEAP32[$this >> 2] | 0;
if ($9) __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[HEAP32[$this + 16 >> 2] >> 2] | 0, $9, (HEAP32[$this + 12 >> 2] | 0) - $9 | 0);
return;
}
function __ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($this) {
$this = $this | 0;
var $0 = 0, $2 = 0, $3 = 0, $5 = 0, $6 = 0, $9 = 0;
$0 = HEAP32[$this >> 2] | 0;
if ($0) {
$2 = $this + 4 | 0;
$3 = HEAP32[$2 >> 2] | 0;
if (($3 | 0) != ($0 | 0)) {
$6 = $3;
do {
$5 = $6 + -24 | 0;
HEAP32[$2 >> 2] = $5;
__ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($5);
$6 = HEAP32[$2 >> 2] | 0;
} while (($6 | 0) != ($0 | 0));
}
$9 = HEAP32[$this >> 2] | 0;
__ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj(HEAP32[$this + 12 >> 2] | 0, $9, (HEAP32[$this + 8 >> 2] | 0) - $9 | 0);
}
return;
}
function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($agg$result, $this, $__k) {
$agg$result = $agg$result | 0;
$this = $this | 0;
$__k = $__k | 0;
var $1 = 0, $11 = 0, $8 = 0;
$1 = __Znwj(408) | 0;
HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2];
_memset($1 + 16 | 0, 0, 392) | 0;
HEAPF64[$1 + 248 >> 3] = .0001;
HEAPF64[$1 + 256 >> 3] = 1.0e3;
$8 = $1 + 264 | 0;
HEAP32[$8 >> 2] = 0;
HEAP32[$8 + 4 >> 2] = 0;
HEAP32[$8 + 8 >> 2] = 0;
HEAP32[$8 + 12 >> 2] = 0;
HEAP32[$agg$result >> 2] = $1;
$11 = $agg$result + 4 | 0;
HEAP32[$11 >> 2] = $this + 8;
HEAP32[$11 + 4 >> 2] = 257;
return;
}
function _arVecHousehold($x) {
$x = $x | 0;
var $1 = 0.0, $10 = 0.0, $12 = 0, $14 = 0, $3 = 0, $4 = 0.0, $7 = 0.0, $i$01 = 0, $s$0 = 0.0, $s$1 = 0.0;
$1 = +Math_sqrt(+(+_arVecInnerproduct($x, $x)));
if ($1 != 0.0) {
$3 = HEAP32[$x >> 2] | 0;
$4 = +HEAPF64[$3 >> 3];
$s$0 = $4 < 0.0 ? -$1 : $1;
$7 = $4 + $s$0;
HEAPF64[$3 >> 3] = $7;
$10 = 1.0 / +Math_sqrt(+($7 * $s$0));
$12 = HEAP32[$x + 4 >> 2] | 0;
if (($12 | 0) > 0) {
$i$01 = 0;
do {
$14 = $3 + ($i$01 << 3) | 0;
HEAPF64[$14 >> 3] = $10 * +HEAPF64[$14 >> 3];
$i$01 = $i$01 + 1 | 0;
} while (($i$01 | 0) < ($12 | 0));
$s$1 = $s$0;
} else $s$1 = $s$0;
} else $s$1 = $1;
return +-$s$1;
}
function __ZNSt3__114__split_bufferINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEERNS5_IS9_Lj4096EEEEC2EjjSB_($this, $__cap, $__start, $__a) {
$this = $this | 0;
$__cap = $__cap | 0;
$__start = $__start | 0;
$__a = $__a | 0;
var $6 = 0, $7 = 0;
HEAP32[$this + 12 >> 2] = 0;
HEAP32[$this + 16 >> 2] = $__a;
if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap << 4) | 0;
HEAP32[$this >> 2] = $6;
$7 = $6 + ($__start << 4) | 0;
HEAP32[$this + 8 >> 2] = $7;
HEAP32[$this + 4 >> 2] = $7;
HEAP32[$this + 12 >> 2] = $6 + ($__cap << 4);
return;
}
function _memset(ptr, value, num) {
ptr = ptr | 0;
value = value | 0;
num = num | 0;
var stop = 0, value4 = 0, stop4 = 0, unaligned = 0;
stop = ptr + num | 0;
if ((num | 0) >= 20) {
value = value & 255;
unaligned = ptr & 3;
value4 = value | value << 8 | value << 16 | value << 24;
stop4 = stop & ~3;
if (unaligned) {
unaligned = ptr + 4 - unaligned | 0;
while ((ptr | 0) < (unaligned | 0)) {
HEAP8[ptr >> 0] = value;
ptr = ptr + 1 | 0;
}
}
while ((ptr | 0) < (stop4 | 0)) {
HEAP32[ptr >> 2] = value4;
ptr = ptr + 4 | 0;
}
}
while ((ptr | 0) < (stop | 0)) {
HEAP8[ptr >> 0] = value;
ptr = ptr + 1 | 0;
}
return ptr - num | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $__s, $__sz) {
$this = $this | 0;
$__s = $__s | 0;
$__sz = $__sz | 0;
var $6 = 0, $7 = 0, $__p$0 = 0;
if ($__sz >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this);
if ($__sz >>> 0 < 11) {
HEAP8[$this >> 0] = $__sz << 1;
$__p$0 = $this + 1 | 0;
} else {
$6 = $__sz + 16 & -16;
$7 = _malloc($6) | 0;
HEAP32[$this + 8 >> 2] = $7;
HEAP32[$this >> 2] = $6 | 1;
HEAP32[$this + 4 >> 2] = $__sz;
$__p$0 = $7;
}
_memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0;
HEAP8[$__p$0 + $__sz >> 0] = 0;
return;
}
function __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) {
$this = $this | 0;
$info = $info | 0;
$adjustedPtr = $adjustedPtr | 0;
$path_below = $path_below | 0;
var $1 = 0, $2 = 0, $8 = 0, $offset_to_base$0 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $1 >> 8;
if (!($1 & 1)) $offset_to_base$0 = $2; else $offset_to_base$0 = HEAP32[(HEAP32[$adjustedPtr >> 2] | 0) + $2 >> 2] | 0;
$8 = HEAP32[$this >> 2] | 0;
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$8 >> 2] | 0) + 28 >> 2] & 3]($8, $info, $adjustedPtr + $offset_to_base$0 | 0, ($1 & 2 | 0) != 0 ? $path_below : 2);
return;
}
function __ZN10emscripten8internal7InvokerIiJiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiiS8_EiPNS0_11BindingTypeIS8_EUt_E($fn, $args, $args1) {
$fn = $fn | 0;
$args = $args | 0;
$args1 = $args1 | 0;
var $0 = 0, $1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
__ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($0, $args1);
$1 = FUNCTION_TABLE_iii[$fn & 15]($args, $0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0);
STACKTOP = sp;
return $1 | 0;
}
function ___toread($f) {
$f = $f | 0;
var $$0 = 0, $0 = 0, $15 = 0, $2 = 0, $21 = 0, $6 = 0, $8 = 0;
$0 = $f + 74 | 0;
$2 = HEAP8[$0 >> 0] | 0;
HEAP8[$0 >> 0] = $2 + 255 | $2;
$6 = $f + 20 | 0;
$8 = $f + 44 | 0;
if ((HEAP32[$6 >> 2] | 0) >>> 0 > (HEAP32[$8 >> 2] | 0) >>> 0) FUNCTION_TABLE_iiii[HEAP32[$f + 36 >> 2] & 15]($f, 0, 0) | 0;
HEAP32[$f + 16 >> 2] = 0;
HEAP32[$f + 28 >> 2] = 0;
HEAP32[$6 >> 2] = 0;
$15 = HEAP32[$f >> 2] | 0;
if (!($15 & 20)) {
$21 = HEAP32[$8 >> 2] | 0;
HEAP32[$f + 8 >> 2] = $21;
HEAP32[$f + 4 >> 2] = $21;
$$0 = 0;
} else if (!($15 & 4)) $$0 = -1; else {
HEAP32[$f >> 2] = $15 | 32;
$$0 = -1;
}
return $$0 | 0;
}
function _fclose($f) {
$f = $f | 0;
var $$pre = 0, $12 = 0, $18 = 0, $22 = 0, $24 = 0, $5 = 0, $7 = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {}
$5 = (HEAP32[$f >> 2] & 1 | 0) != 0;
if (!$5) {
___lock(2416);
$7 = HEAP32[$f + 52 >> 2] | 0;
$$pre = $f + 56 | 0;
if ($7) HEAP32[$7 + 56 >> 2] = HEAP32[$$pre >> 2];
$12 = HEAP32[$$pre >> 2] | 0;
if ($12) HEAP32[$12 + 52 >> 2] = $7;
if ((HEAP32[603] | 0) == ($f | 0)) HEAP32[603] = $12;
___unlock(2416);
}
$18 = _fflush($f) | 0;
$22 = FUNCTION_TABLE_ii[HEAP32[$f + 12 >> 2] & 31]($f) | 0 | $18;
$24 = HEAP32[$f + 92 >> 2] | 0;
if ($24) _free($24);
if (!$5) _free($f);
return $22 | 0;
}
function __ZNSt3__114__split_bufferINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEERNS5_IS7_Lj4096EEEEC2EjjS9_($this, $__cap, $__start, $__a) {
$this = $this | 0;
$__cap = $__cap | 0;
$__start = $__start | 0;
$__a = $__a | 0;
var $6 = 0, $7 = 0;
HEAP32[$this + 12 >> 2] = 0;
HEAP32[$this + 16 >> 2] = $__a;
if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap << 4) | 0;
HEAP32[$this >> 2] = $6;
$7 = $6 + ($__start << 4) | 0;
HEAP32[$this + 8 >> 2] = $7;
HEAP32[$this + 4 >> 2] = $7;
HEAP32[$this + 12 >> 2] = $6 + ($__cap << 4);
return;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($this, $__s, $__sz) {
$this = $this | 0;
$__s = $__s | 0;
$__sz = $__sz | 0;
var $6 = 0, $7 = 0, $__p$0 = 0;
if ($__sz >>> 0 > 4294967279) __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this);
if ($__sz >>> 0 < 11) {
HEAP8[$this >> 0] = $__sz << 1;
$__p$0 = $this + 1 | 0;
} else {
$6 = $__sz + 16 & -16;
$7 = __Znwj($6) | 0;
HEAP32[$this + 8 >> 2] = $7;
HEAP32[$this >> 2] = $6 | 1;
HEAP32[$this + 4 >> 2] = $__sz;
$__p$0 = $7;
}
_memcpy($__p$0 | 0, $__s | 0, $__sz | 0) | 0;
HEAP8[$__p$0 + $__sz >> 0] = 0;
return;
}
function _arVecInnerproduct($x, $y) {
$x = $x | 0;
$y = $y | 0;
var $1 = 0, $13 = 0.0, $6 = 0, $7 = 0, $i$02 = 0, $result$0$lcssa = 0.0, $result$01 = 0.0;
$1 = HEAP32[$x + 4 >> 2] | 0;
if (($1 | 0) != (HEAP32[$y + 4 >> 2] | 0)) _exit(0);
if (($1 | 0) > 0) {
$6 = HEAP32[$x >> 2] | 0;
$7 = HEAP32[$y >> 2] | 0;
$i$02 = 0;
$result$01 = 0.0;
while (1) {
$13 = $result$01 + +HEAPF64[$6 + ($i$02 << 3) >> 3] * +HEAPF64[$7 + ($i$02 << 3) >> 3];
$i$02 = $i$02 + 1 | 0;
if (($i$02 | 0) >= ($1 | 0)) {
$result$0$lcssa = $13;
break;
} else $result$01 = $13;
}
} else $result$0$lcssa = 0.0;
return +$result$0$lcssa;
}
function _memcmp($vl, $vr, $n) {
$vl = $vl | 0;
$vr = $vr | 0;
$n = $n | 0;
var $$03 = 0, $$lcssa = 0, $$lcssa19 = 0, $1 = 0, $11 = 0, $2 = 0, $l$04 = 0, $r$05 = 0;
L1 : do if (!$n) $11 = 0; else {
$$03 = $n;
$l$04 = $vl;
$r$05 = $vr;
while (1) {
$1 = HEAP8[$l$04 >> 0] | 0;
$2 = HEAP8[$r$05 >> 0] | 0;
if ($1 << 24 >> 24 != $2 << 24 >> 24) {
$$lcssa = $1;
$$lcssa19 = $2;
break;
}
$$03 = $$03 + -1 | 0;
if (!$$03) {
$11 = 0;
break L1;
} else {
$l$04 = $l$04 + 1 | 0;
$r$05 = $r$05 + 1 | 0;
}
}
$11 = ($$lcssa & 255) - ($$lcssa19 & 255) | 0;
} while (0);
return $11 | 0;
}
function ___fmodeflags($mode) {
$mode = $mode | 0;
var $1 = 0, $2 = 0, $4 = 0, $7 = 0, $flags$0 = 0, $flags$0$ = 0, $flags$2 = 0, $flags$2$ = 0, $flags$4 = 0;
$1 = (_strchr($mode, 43) | 0) == 0;
$2 = HEAP8[$mode >> 0] | 0;
$flags$0 = $1 ? $2 << 24 >> 24 != 114 & 1 : 2;
$4 = (_strchr($mode, 120) | 0) == 0;
$flags$0$ = $4 ? $flags$0 : $flags$0 | 128;
$7 = (_strchr($mode, 101) | 0) == 0;
$flags$2 = $7 ? $flags$0$ : $flags$0$ | 524288;
$flags$2$ = $2 << 24 >> 24 == 114 ? $flags$2 : $flags$2 | 64;
$flags$4 = $2 << 24 >> 24 == 119 ? $flags$2$ | 512 : $flags$2$;
return ($2 << 24 >> 24 == 97 ? $flags$4 | 1024 : $flags$4) | 0;
}
function __ZNSt3__114__split_bufferIN10__cxxabiv112_GLOBAL__N_111string_pairERNS2_11short_allocIS3_Lj4096EEEEC2EjjS6_($this, $__cap, $__start, $__a) {
$this = $this | 0;
$__cap = $__cap | 0;
$__start = $__start | 0;
$__a = $__a | 0;
var $6 = 0, $7 = 0;
HEAP32[$this + 12 >> 2] = 0;
HEAP32[$this + 16 >> 2] = $__a;
if (!$__cap) $6 = 0; else $6 = __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj(HEAP32[$__a >> 2] | 0, $__cap * 24 | 0) | 0;
HEAP32[$this >> 2] = $6;
$7 = $6 + ($__start * 24 | 0) | 0;
HEAP32[$this + 8 >> 2] = $7;
HEAP32[$this + 4 >> 2] = $7;
HEAP32[$this + 12 >> 2] = $6 + ($__cap * 24 | 0);
return;
}
function __ZN10emscripten8internal7InvokerIiJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiS8_EPNS0_11BindingTypeIS8_EUt_E($fn, $args) {
$fn = $fn | 0;
$args = $args | 0;
var $0 = 0, $1 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = sp;
__ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($0, $args);
$1 = FUNCTION_TABLE_ii[$fn & 31]($0) | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0);
STACKTOP = sp;
return $1 | 0;
}
function _strncat($d, $s, $n) {
$d = $d | 0;
$s = $s | 0;
$n = $n | 0;
var $$0$lcssa = 0, $$014 = 0, $$023 = 0, $$05 = 0, $1 = 0, $3 = 0, $7 = 0;
$1 = $d + (_strlen($d) | 0) | 0;
L1 : do if (!$n) $$0$lcssa = $1; else {
$$014 = $n;
$$023 = $s;
$$05 = $1;
while (1) {
$3 = HEAP8[$$023 >> 0] | 0;
if (!($3 << 24 >> 24)) {
$$0$lcssa = $$05;
break L1;
}
$$014 = $$014 + -1 | 0;
$7 = $$05 + 1 | 0;
HEAP8[$$05 >> 0] = $3;
if (!$$014) {
$$0$lcssa = $7;
break;
} else {
$$023 = $$023 + 1 | 0;
$$05 = $7;
}
}
} while (0);
HEAP8[$$0$lcssa >> 0] = 0;
return $d | 0;
}
function _get_buff($buf, $fp) {
$buf = $buf | 0;
$fp = $fp | 0;
var $2 = 0, $5 = 0, $l$01 = 0;
L1 : do if (_fgets($buf, 256, $fp) | 0) while (1) {
$2 = _strlen($buf) | 0;
L4 : do if ($2) {
$l$01 = $2;
while (1) {
$l$01 = $l$01 + -1 | 0;
$5 = $buf + $l$01 | 0;
switch (HEAP8[$5 >> 0] | 0) {
case 13:
case 10:
break;
default:
break L4;
}
HEAP8[$5 >> 0] = 0;
if (!$l$01) break L4;
}
} while (0);
switch (HEAP8[$buf >> 0] | 0) {
case 0:
case 35:
break;
default:
break L1;
}
if (!(_fgets($buf, 256, $fp) | 0)) break L1;
} while (0);
return;
}
function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) {
$this = $this | 0;
$info = $info | 0;
$adjustedPtr = $adjustedPtr | 0;
$path_below = $path_below | 0;
var $4 = 0;
if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below); else {
$4 = HEAP32[$this + 8 >> 2] | 0;
FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$4 >> 2] | 0) + 28 >> 2] & 3]($4, $info, $adjustedPtr, $path_below);
}
return;
}
function ___stdout_write($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
var $9 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 80 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
HEAP32[$f + 36 >> 2] = 4;
if (!(HEAP32[$f >> 2] & 64)) {
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
HEAP32[$vararg_buffer + 4 >> 2] = 21505;
HEAP32[$vararg_buffer + 8 >> 2] = sp + 12;
if (___syscall54(54, $vararg_buffer | 0) | 0) HEAP8[$f + 75 >> 0] = -1;
}
$9 = ___stdio_write($f, $buf, $len) | 0;
STACKTOP = sp;
return $9 | 0;
}
function _arUtilGetDirectoryNameFromPath($dir, $path, $n, $addSeparator) {
$dir = $dir | 0;
$path = $path | 0;
$n = $n | 0;
$addSeparator = $addSeparator | 0;
var $$0 = 0, $10 = 0, $3 = 0;
do if (($dir | 0) != 0 & ($path | 0) != 0 & ($n | 0) != 0) {
$3 = _strrchr($path, 47) | 0;
if (!$3) {
HEAP8[$dir >> 0] = 0;
$$0 = $dir;
break;
}
$10 = $3 + (($addSeparator | 0) != 0 & 1) - $path | 0;
if (($10 + 1 | 0) >>> 0 > $n >>> 0) $$0 = 0; else {
_strncpy($dir, $path, $10) | 0;
HEAP8[$dir + $10 >> 0] = 0;
$$0 = $dir;
}
} else $$0 = 0; while (0);
return $$0 | 0;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this) {
$this = $this | 0;
var $2 = 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, HEAP32[$this + 8 >> 2] | 0);
$2 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = 0;
if ($2) __ZdlPv($2);
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, $__np) {
$this = $this | 0;
$__np = $__np | 0;
var $$01 = 0, $$01$looptemp = 0;
if ($__np) {
$$01 = $__np;
do {
$$01$looptemp = $$01;
$$01 = HEAP32[$$01 >> 2] | 0;
__ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($$01$looptemp + 264 | 0);
__ZdlPv($$01$looptemp);
} while (($$01 | 0) != 0);
}
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this) {
$this = $this | 0;
var $2 = 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, HEAP32[$this + 8 >> 2] | 0);
$2 = HEAP32[$this >> 2] | 0;
HEAP32[$this >> 2] = 0;
if ($2) __ZdlPv($2);
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2EOS1_($this, $0) {
$this = $this | 0;
$0 = $0 | 0;
var $3 = 0, $4 = 0;
HEAP32[$this >> 2] = HEAP32[$0 >> 2];
HEAP32[$this + 4 >> 2] = HEAP32[$0 + 4 >> 2];
HEAP32[$this + 8 >> 2] = HEAP32[$0 + 8 >> 2];
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
$3 = $this + 12 | 0;
$4 = $0 + 12 | 0;
HEAP32[$3 >> 2] = HEAP32[$4 >> 2];
HEAP32[$3 + 4 >> 2] = HEAP32[$4 + 4 >> 2];
HEAP32[$3 + 8 >> 2] = HEAP32[$4 + 8 >> 2];
HEAP32[$4 >> 2] = 0;
HEAP32[$4 + 4 >> 2] = 0;
HEAP32[$4 + 8 >> 2] = 0;
return;
}
function _arImageProcLumaHistAndCDF($ipi, $dataPtr) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
var $$0 = 0, $0 = 0, $cdfCurrent$0 = 0, $indvars$iv = 0;
$0 = _arImageProcLumaHist($ipi, $dataPtr) | 0;
if (($0 | 0) < 0) $$0 = $0; else {
$cdfCurrent$0 = 0;
$indvars$iv = 0;
do {
$cdfCurrent$0 = (HEAP32[$ipi + 16 + ($indvars$iv << 2) >> 2] | 0) + $cdfCurrent$0 | 0;
HEAP32[$ipi + 1040 + ($indvars$iv << 2) >> 2] = $cdfCurrent$0;
$indvars$iv = $indvars$iv + 1 | 0;
} while (($indvars$iv | 0) != 256);
$$0 = 0;
}
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj5EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0, $1 = 0, $3 = 0;
HEAP8[$this >> 0] = 8;
$0 = $this + 1 | 0;
$1 = HEAPU8[$s >> 0] | HEAPU8[$s + 1 >> 0] << 8 | HEAPU8[$s + 2 >> 0] << 16 | HEAPU8[$s + 3 >> 0] << 24;
HEAP8[$0 >> 0] = $1;
HEAP8[$0 + 1 >> 0] = $1 >> 8;
HEAP8[$0 + 2 >> 0] = $1 >> 16;
HEAP8[$0 + 3 >> 0] = $1 >> 24;
HEAP8[$this + 5 >> 0] = 0;
$3 = $this + 12 | 0;
HEAP32[$3 >> 2] = 0;
HEAP32[$3 + 4 >> 2] = 0;
HEAP32[$3 + 8 >> 2] = 0;
return;
}
function _vsscanf($s, $fmt, $ap) {
$s = $s | 0;
$fmt = $fmt | 0;
$ap = $ap | 0;
var $4 = 0, $f = 0, dest = 0, sp = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 112 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$f = sp;
dest = $f;
stop = dest + 112 | 0;
do {
HEAP32[dest >> 2] = 0;
dest = dest + 4 | 0;
} while ((dest | 0) < (stop | 0));
HEAP32[$f + 32 >> 2] = 15;
HEAP32[$f + 44 >> 2] = $s;
HEAP32[$f + 76 >> 2] = -1;
HEAP32[$f + 84 >> 2] = $s;
$4 = _vfscanf($f, $fmt, $ap) | 0;
STACKTOP = sp;
return $4 | 0;
}
function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEED2Ev($this) {
$this = $this | 0;
var $$lcssa = 0, $$pre$i$i$i = 0, $1 = 0, $2 = 0, $4 = 0, $5 = 0, $7 = 0;
$1 = HEAP32[$this + 4 >> 2] | 0;
$2 = $this + 8 | 0;
$$pre$i$i$i = HEAP32[$2 >> 2] | 0;
if (($$pre$i$i$i | 0) != ($1 | 0)) {
$5 = $$pre$i$i$i;
while (1) {
$4 = $5 + -8 | 0;
if (($4 | 0) == ($1 | 0)) {
$$lcssa = $4;
break;
} else $5 = $4;
}
HEAP32[$2 >> 2] = $$lcssa;
}
$7 = HEAP32[$this >> 2] | 0;
if ($7) __ZdlPv($7);
return;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEC2ERKS7_($this, $__str) {
$this = $this | 0;
$__str = $__str | 0;
if (!(HEAP8[$__str >> 0] & 1)) {
HEAP32[$this >> 2] = HEAP32[$__str >> 2];
HEAP32[$this + 4 >> 2] = HEAP32[$__str + 4 >> 2];
HEAP32[$this + 8 >> 2] = HEAP32[$__str + 8 >> 2];
} else __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, HEAP32[$__str + 8 >> 2] | 0, HEAP32[$__str + 4 >> 2] | 0);
return;
}
function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this, $info, $dst_ptr, $current_ptr, $path_below, $use_strcmp) {
$this = $this | 0;
$info = $info | 0;
$dst_ptr = $dst_ptr | 0;
$current_ptr = $current_ptr | 0;
$path_below = $path_below | 0;
$use_strcmp = $use_strcmp | 0;
if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0, $info, $dst_ptr, $current_ptr, $path_below);
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj6EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0, $2 = 0;
HEAP8[$this >> 0] = 10;
$0 = $this + 1 | 0;
HEAP8[$0 >> 0] = HEAP8[$s >> 0] | 0;
HEAP8[$0 + 1 >> 0] = HEAP8[$s + 1 >> 0] | 0;
HEAP8[$0 + 2 >> 0] = HEAP8[$s + 2 >> 0] | 0;
HEAP8[$0 + 3 >> 0] = HEAP8[$s + 3 >> 0] | 0;
HEAP8[$0 + 4 >> 0] = HEAP8[$s + 4 >> 0] | 0;
HEAP8[$this + 6 >> 0] = 0;
$2 = $this + 12 | 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
return;
}
function _fwrite($src, $size, $nmemb, $f) {
$src = $src | 0;
$size = $size | 0;
$nmemb = $nmemb | 0;
$f = $f | 0;
var $0 = 0, $10 = 0, $6 = 0, $8 = 0, $phitmp = 0;
$0 = Math_imul($nmemb, $size) | 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
$6 = ___fwritex($src, $0, $f) | 0;
if ($phitmp) $8 = $6; else {
___unlockfile($f);
$8 = $6;
}
} else $8 = ___fwritex($src, $0, $f) | 0;
if (($8 | 0) == ($0 | 0)) $10 = $nmemb; else $10 = ($8 >>> 0) / ($size >>> 0) | 0;
return $10 | 0;
}
function ___string_read($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
var $0 = 0, $1 = 0, $11 = 0, $2 = 0, $3 = 0, $k$0 = 0, $k$0$len = 0;
$0 = $f + 84 | 0;
$1 = HEAP32[$0 >> 2] | 0;
$2 = $len + 256 | 0;
$3 = _memchr($1, 0, $2) | 0;
$k$0 = ($3 | 0) == 0 ? $2 : $3 - $1 | 0;
$k$0$len = $k$0 >>> 0 < $len >>> 0 ? $k$0 : $len;
_memcpy($buf | 0, $1 | 0, $k$0$len | 0) | 0;
HEAP32[$f + 4 >> 2] = $1 + $k$0$len;
$11 = $1 + $k$0 | 0;
HEAP32[$f + 8 >> 2] = $11;
HEAP32[$0 >> 2] = $11;
return $k$0$len | 0;
}
function __Znwj($size) {
$size = $size | 0;
var $$lcssa = 0, $$size = 0, $1 = 0, $3 = 0, $5 = 0, $7 = 0;
$$size = ($size | 0) == 0 ? 1 : $size;
$1 = _malloc($$size) | 0;
L1 : do if (!$1) {
while (1) {
$3 = __ZSt15get_new_handlerv() | 0;
if (!$3) break;
FUNCTION_TABLE_v[$3 & 0]();
$5 = _malloc($$size) | 0;
if ($5) {
$$lcssa = $5;
break L1;
}
}
$7 = ___cxa_allocate_exception(4) | 0;
HEAP32[$7 >> 2] = 2224;
___cxa_throw($7 | 0, 544, 1);
} else $$lcssa = $1; while (0);
return $$lcssa | 0;
}
function _calloc($n_elements, $elem_size) {
$n_elements = $n_elements | 0;
$elem_size = $elem_size | 0;
var $1 = 0, $6 = 0, $req$0 = 0;
if (!$n_elements) $req$0 = 0; else {
$1 = Math_imul($elem_size, $n_elements) | 0;
if (($elem_size | $n_elements) >>> 0 > 65535) $req$0 = (($1 >>> 0) / ($n_elements >>> 0) | 0 | 0) == ($elem_size | 0) ? $1 : -1; else $req$0 = $1;
}
$6 = _malloc($req$0) | 0;
if (!$6) return $6 | 0;
if (!(HEAP32[$6 + -4 >> 2] & 3)) return $6 | 0;
_memset($6 | 0, 0, $req$0 | 0) | 0;
return $6 | 0;
}
function ___muldi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0;
$x_sroa_0_0_extract_trunc = $a$0;
$y_sroa_0_0_extract_trunc = $b$0;
$1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
$1$1 = tempRet0;
return (tempRet0 = (Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0) + (Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $1$1 | $1$1 & 0, $1$0 | 0 | 0) | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_12DbD2Ev($this) {
$this = $this | 0;
__ZNSt3__113__vector_baseINS_6vectorINS1_IN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEEENS5_IS9_Lj4096EEEED2Ev($this + 32 | 0);
__ZNSt3__113__vector_baseINS_6vectorIN10__cxxabiv112_GLOBAL__N_111string_pairENS3_11short_allocIS4_Lj4096EEEEENS5_IS7_Lj4096EEEED2Ev($this + 16 | 0);
__ZNSt3__113__vector_baseIN10__cxxabiv112_GLOBAL__N_111string_pairENS2_11short_allocIS3_Lj4096EEEED2Ev($this);
return;
}
function __ZNSt3__114__split_bufferI12multi_markerRNS_9allocatorIS1_EEEC2EjjS4_($this, $__cap, $__start, $__a) {
$this = $this | 0;
$__cap = $__cap | 0;
$__start = $__start | 0;
$__a = $__a | 0;
var $5 = 0, $6 = 0;
HEAP32[$this + 12 >> 2] = 0;
HEAP32[$this + 16 >> 2] = $__a;
if (!$__cap) $5 = 0; else $5 = __Znwj($__cap << 3) | 0;
HEAP32[$this >> 2] = $5;
$6 = $5 + ($__start << 3) | 0;
HEAP32[$this + 8 >> 2] = $6;
HEAP32[$this + 4 >> 2] = $6;
HEAP32[$this + 12 >> 2] = $5 + ($__cap << 3);
return;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEEaSERKS7_($this, $__str) {
$this = $this | 0;
$__str = $__str | 0;
var $1 = 0, $3 = 0;
if (($this | 0) != ($__str | 0)) {
$1 = HEAP8[$__str >> 0] | 0;
$3 = ($1 & 1) == 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6assignEPKcj($this, $3 ? $__str + 1 | 0 : HEAP32[$__str + 8 >> 2] | 0, $3 ? ($1 & 255) >>> 1 : HEAP32[$__str + 4 >> 2] | 0);
}
return;
}
function __ZNSt3__113__vector_baseI12multi_markerNS_9allocatorIS1_EEED2Ev($this) {
$this = $this | 0;
var $$lcssa = 0, $$pre$i$i = 0, $0 = 0, $2 = 0, $4 = 0, $5 = 0;
$0 = HEAP32[$this >> 2] | 0;
if ($0) {
$2 = $this + 4 | 0;
$$pre$i$i = HEAP32[$2 >> 2] | 0;
if (($$pre$i$i | 0) != ($0 | 0)) {
$5 = $$pre$i$i;
while (1) {
$4 = $5 + -8 | 0;
if (($4 | 0) == ($0 | 0)) {
$$lcssa = $4;
break;
} else $5 = $4;
}
HEAP32[$2 >> 2] = $$lcssa;
}
__ZdlPv($0);
}
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj11EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $2 = 0, dest = 0, src = 0, stop = 0;
HEAP8[$this >> 0] = 20;
dest = $this + 1 | 0;
src = $s;
stop = dest + 10 | 0;
do {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$this + 11 >> 0] = 0;
$2 = $this + 12 | 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj10EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $2 = 0, dest = 0, src = 0, stop = 0;
HEAP8[$this >> 0] = 18;
dest = $this + 1 | 0;
src = $s;
stop = dest + 9 | 0;
do {
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
dest = dest + 1 | 0;
src = src + 1 | 0;
} while ((dest | 0) < (stop | 0));
HEAP8[$this + 10 >> 0] = 0;
$2 = $this + 12 | 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
return;
}
function ___towrite($f) {
$f = $f | 0;
var $$0 = 0, $0 = 0, $13 = 0, $2 = 0, $6 = 0;
$0 = $f + 74 | 0;
$2 = HEAP8[$0 >> 0] | 0;
HEAP8[$0 >> 0] = $2 + 255 | $2;
$6 = HEAP32[$f >> 2] | 0;
if (!($6 & 8)) {
HEAP32[$f + 8 >> 2] = 0;
HEAP32[$f + 4 >> 2] = 0;
$13 = HEAP32[$f + 44 >> 2] | 0;
HEAP32[$f + 28 >> 2] = $13;
HEAP32[$f + 20 >> 2] = $13;
HEAP32[$f + 16 >> 2] = $13 + (HEAP32[$f + 48 >> 2] | 0);
$$0 = 0;
} else {
HEAP32[$f >> 2] = $6 | 32;
$$0 = -1;
}
return $$0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS0_12malloc_allocIcEEEE($this, $f) {
$this = $this | 0;
$f = $f | 0;
var $2 = 0;
HEAP32[$this >> 2] = HEAP32[$f >> 2];
HEAP32[$this + 4 >> 2] = HEAP32[$f + 4 >> 2];
HEAP32[$this + 8 >> 2] = HEAP32[$f + 8 >> 2];
HEAP32[$f >> 2] = 0;
HEAP32[$f + 4 >> 2] = 0;
HEAP32[$f + 8 >> 2] = 0;
$2 = $this + 12 | 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
return;
}
function _matrixCopy($src, $dst) {
$src = $src | 0;
$dst = $dst | 0;
var $i$03 = 0;
$i$03 = 0;
do {
HEAPF64[$dst + ($i$03 << 5) >> 3] = +HEAPF64[$src + ($i$03 << 5) >> 3];
HEAPF64[$dst + ($i$03 << 5) + 8 >> 3] = +HEAPF64[$src + ($i$03 << 5) + 8 >> 3];
HEAPF64[$dst + ($i$03 << 5) + 16 >> 3] = +HEAPF64[$src + ($i$03 << 5) + 16 >> 3];
HEAPF64[$dst + ($i$03 << 5) + 24 >> 3] = +HEAPF64[$src + ($i$03 << 5) + 24 >> 3];
$i$03 = $i$03 + 1 | 0;
} while (($i$03 | 0) != 3);
return;
}
function __ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEE12__deallocateEPNS_11__hash_nodeIS3_PvEE($this, $__np) {
$this = $this | 0;
$__np = $__np | 0;
var $$01 = 0, $$01$looptemp = 0;
if ($__np) {
$$01 = $__np;
do {
$$01$looptemp = $$01;
$$01 = HEAP32[$$01 >> 2] | 0;
__ZdlPv($$01$looptemp);
} while (($$01 | 0) != 0);
}
return;
}
function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEE25__construct_node_with_keyERS8_($agg$result, $this, $__k) {
$agg$result = $agg$result | 0;
$this = $this | 0;
$__k = $__k | 0;
var $1 = 0, $8 = 0;
$1 = __Znwj(200) | 0;
HEAP32[$1 + 8 >> 2] = HEAP32[$__k >> 2];
_memset($1 + 16 | 0, 0, 184) | 0;
HEAP32[$agg$result >> 2] = $1;
$8 = $agg$result + 4 | 0;
HEAP32[$8 >> 2] = $this + 8;
HEAP32[$8 + 4 >> 2] = 257;
return;
}
function _byteSwapDouble($from, $to) {
$from = $from | 0;
$to = $to | 0;
HEAP8[$to >> 0] = HEAP8[$from + 7 >> 0] | 0;
HEAP8[$to + 1 >> 0] = HEAP8[$from + 6 >> 0] | 0;
HEAP8[$to + 2 >> 0] = HEAP8[$from + 5 >> 0] | 0;
HEAP8[$to + 3 >> 0] = HEAP8[$from + 4 >> 0] | 0;
HEAP8[$to + 4 >> 0] = HEAP8[$from + 3 >> 0] | 0;
HEAP8[$to + 5 >> 0] = HEAP8[$from + 2 >> 0] | 0;
HEAP8[$to + 6 >> 0] = HEAP8[$from + 1 >> 0] | 0;
HEAP8[$to + 7 >> 0] = HEAP8[$from >> 0] | 0;
return;
}
function copyTempDouble(ptr) {
ptr = ptr | 0;
HEAP8[tempDoublePtr >> 0] = HEAP8[ptr >> 0];
HEAP8[tempDoublePtr + 1 >> 0] = HEAP8[ptr + 1 >> 0];
HEAP8[tempDoublePtr + 2 >> 0] = HEAP8[ptr + 2 >> 0];
HEAP8[tempDoublePtr + 3 >> 0] = HEAP8[ptr + 3 >> 0];
HEAP8[tempDoublePtr + 4 >> 0] = HEAP8[ptr + 4 >> 0];
HEAP8[tempDoublePtr + 5 >> 0] = HEAP8[ptr + 5 >> 0];
HEAP8[tempDoublePtr + 6 >> 0] = HEAP8[ptr + 6 >> 0];
HEAP8[tempDoublePtr + 7 >> 0] = HEAP8[ptr + 7 >> 0];
}
function ___ftello_unlocked($f) {
$f = $f | 0;
var $$0 = 0, $10 = 0, $11 = 0;
if (!(HEAP32[$f >> 2] & 128)) $10 = 1; else $10 = (HEAP32[$f + 20 >> 2] | 0) >>> 0 > (HEAP32[$f + 28 >> 2] | 0) >>> 0 ? 2 : 1;
$11 = FUNCTION_TABLE_iiii[HEAP32[$f + 40 >> 2] & 15]($f, 0, $10) | 0;
if (($11 | 0) < 0) $$0 = $11; else $$0 = $11 - (HEAP32[$f + 8 >> 2] | 0) + (HEAP32[$f + 4 >> 2] | 0) + (HEAP32[$f + 20 >> 2] | 0) - (HEAP32[$f + 28 >> 2] | 0) | 0;
return $$0 | 0;
}
function ___uflow($f) {
$f = $f | 0;
var $$0 = 0, $c = 0, label = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$c = sp;
if (!(HEAP32[$f + 8 >> 2] | 0)) if (!(___toread($f) | 0)) label = 3; else $$0 = -1; else label = 3;
if ((label | 0) == 3) if ((FUNCTION_TABLE_iiii[HEAP32[$f + 32 >> 2] & 15]($f, $c, 1) | 0) == 1) $$0 = HEAPU8[$c >> 0] | 0; else $$0 = -1;
STACKTOP = sp;
return $$0 | 0;
}
function _deleteHandle($arc) {
$arc = $arc | 0;
var $0 = 0, $1 = 0, $4 = 0, $7 = 0;
$0 = $arc + 212 | 0;
$1 = HEAP32[$0 >> 2] | 0;
if ($1) {
_arPattDetach($1) | 0;
_arDeleteHandle(HEAP32[$0 >> 2] | 0) | 0;
HEAP32[$0 >> 2] = 0;
}
$4 = $arc + 224 | 0;
if (HEAP32[$4 >> 2] | 0) {
_ar3DDeleteHandle($4) | 0;
HEAP32[$4 >> 2] = 0;
}
$7 = $arc + 192 | 0;
if (HEAP32[$7 >> 2] | 0) {
_arParamLTFree($7) | 0;
HEAP32[$7 >> 2] = 0;
}
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj4EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0, $2 = 0;
HEAP8[$this >> 0] = 6;
$0 = $this + 1 | 0;
HEAP8[$0 >> 0] = HEAP8[$s >> 0] | 0;
HEAP8[$0 + 1 >> 0] = HEAP8[$s + 1 >> 0] | 0;
HEAP8[$0 + 2 >> 0] = HEAP8[$s + 2 >> 0] | 0;
HEAP8[$this + 4 >> 0] = 0;
$2 = $this + 12 | 0;
HEAP32[$2 >> 2] = 0;
HEAP32[$2 + 4 >> 2] = 0;
HEAP32[$2 + 8 >> 2] = 0;
return;
}
function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this, $info, $adjustedPtr, $path_below) {
$this = $this | 0;
$info = $info | 0;
$adjustedPtr = $adjustedPtr | 0;
$path_below = $path_below | 0;
if (($this | 0) == (HEAP32[$info + 8 >> 2] | 0)) __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0, $info, $adjustedPtr, $path_below);
return;
}
function ___muldsi3($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
$1 = $a & 65535;
$2 = $b & 65535;
$3 = Math_imul($2, $1) | 0;
$6 = $a >>> 16;
$8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
$11 = $b >>> 16;
$12 = Math_imul($11, $1) | 0;
return (tempRet0 = ($8 >>> 16) + (Math_imul($11, $6) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, $8 + $12 << 16 | $3 & 65535 | 0) | 0;
}
function _memmove(dest, src, num) {
dest = dest | 0;
src = src | 0;
num = num | 0;
var ret = 0;
if ((src | 0) < (dest | 0) & (dest | 0) < (src + num | 0)) {
ret = dest;
src = src + num | 0;
dest = dest + num | 0;
while ((num | 0) > 0) {
dest = dest - 1 | 0;
src = src - 1 | 0;
num = num - 1 | 0;
HEAP8[dest >> 0] = HEAP8[src >> 0] | 0;
}
dest = ret;
} else _memcpy(dest, src, num) | 0;
return dest | 0;
}
function _arUtilGetPixelSize($arPixelFormat) {
$arPixelFormat = $arPixelFormat | 0;
var $$0 = 0;
switch ($arPixelFormat | 0) {
case 1:
case 0:
{
$$0 = 3;
break;
}
case 6:
case 4:
case 3:
case 2:
{
$$0 = 4;
break;
}
case 14:
case 13:
case 12:
case 5:
{
$$0 = 1;
break;
}
case 11:
case 10:
case 9:
case 8:
case 7:
{
$$0 = 2;
break;
}
default:
$$0 = 0;
}
return $$0 | 0;
}
function _copysign($x, $y) {
$x = +$x;
$y = +$y;
var $0 = 0, $1 = 0, $6 = 0;
HEAPF64[tempDoublePtr >> 3] = $x;
$0 = HEAP32[tempDoublePtr >> 2] | 0;
$1 = HEAP32[tempDoublePtr + 4 >> 2] | 0;
HEAPF64[tempDoublePtr >> 3] = $y;
$6 = HEAP32[tempDoublePtr + 4 >> 2] & -2147483648 | $1 & 2147483647;
HEAP32[tempDoublePtr >> 2] = $0;
HEAP32[tempDoublePtr + 4 >> 2] = $6;
return +(+HEAPF64[tempDoublePtr >> 3]);
}
function _arMatrixAlloc($row, $clm) {
$row = $row | 0;
$clm = $clm | 0;
var $$0 = 0, $0 = 0, $4 = 0;
$0 = _malloc(12) | 0;
do if (!$0) $$0 = 0; else {
$4 = _malloc(Math_imul($row << 3, $clm) | 0) | 0;
HEAP32[$0 >> 2] = $4;
if (!$4) {
_free($0);
$$0 = 0;
break;
} else {
HEAP32[$0 + 4 >> 2] = $row;
HEAP32[$0 + 8 >> 2] = $clm;
$$0 = $0;
break;
}
} while (0);
return $$0 | 0;
}
function _ar3DCreateHandle2($cpara) {
$cpara = $cpara | 0;
var $$0 = 0, $0 = 0, $2 = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$0 = _malloc(4) | 0;
if (!$0) {
_arLog(3, 5471, sp);
_exit(1);
}
$2 = _icpCreateHandle($cpara) | 0;
HEAP32[$0 >> 2] = $2;
if (!$2) {
_free($0);
$$0 = 0;
} else $$0 = $0;
STACKTOP = sp;
return $$0 | 0;
}
function ___fseeko($f, $off, $whence) {
$f = $f | 0;
$off = $off | 0;
$whence = $whence | 0;
var $5 = 0, $6 = 0, $phitmp = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
$5 = ___fseeko_unlocked($f, $off, $whence) | 0;
if ($phitmp) $6 = $5; else {
___unlockfile($f);
$6 = $5;
}
} else $6 = ___fseeko_unlocked($f, $off, $whence) | 0;
return $6 | 0;
}
function __GLOBAL__sub_I_ARToolKitJS_cpp() {
HEAP32[511] = 0;
HEAP32[512] = 0;
HEAP32[513] = 0;
HEAP32[514] = 0;
HEAPF32[515] = 1.0;
___cxa_atexit(11, 2044, ___dso_handle | 0) | 0;
HEAP32[516] = 0;
HEAP32[517] = 0;
HEAP32[518] = 0;
HEAP32[519] = 0;
HEAPF32[520] = 1.0;
___cxa_atexit(12, 2064, ___dso_handle | 0) | 0;
__ZN46EmscriptenBindingInitializer_constant_bindingsC2Ev(0);
return;
}
function _arParamLTFree($paramLT_p) {
$paramLT_p = $paramLT_p | 0;
var $$0 = 0, $1 = 0;
if (!$paramLT_p) $$0 = -1; else {
$1 = HEAP32[$paramLT_p >> 2] | 0;
if (!$1) $$0 = -1; else {
_free(HEAP32[$1 + 184 >> 2] | 0);
_free(HEAP32[(HEAP32[$paramLT_p >> 2] | 0) + 188 >> 2] | 0);
_free(HEAP32[$paramLT_p >> 2] | 0);
HEAP32[$paramLT_p >> 2] = 0;
$$0 = 0;
}
}
return $$0 | 0;
}
function ___uremdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
var $rem = 0, __stackBase__ = 0;
__stackBase__ = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
$rem = __stackBase__ | 0;
___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) | 0;
STACKTOP = __stackBase__;
return (tempRet0 = HEAP32[$rem + 4 >> 2] | 0, HEAP32[$rem >> 2] | 0) | 0;
}
function _arDeleteHandle($handle) {
$handle = $handle | 0;
var $$0 = 0, $1 = 0, $2 = 0;
if (!$handle) $$0 = -1; else {
$1 = $handle + 7062408 | 0;
$2 = HEAP32[$1 >> 2] | 0;
if ($2) {
_arImageProcFinal($2);
HEAP32[$1 >> 2] = 0;
}
_free(HEAP32[$handle + 4834144 >> 2] | 0);
_free(HEAP32[$handle + 4834148 >> 2] | 0);
_free($handle);
$$0 = 0;
}
return $$0 | 0;
}
function _llvm_cttz_i32(x) {
x = x | 0;
var ret = 0;
ret = HEAP8[cttz_i8 + (x & 255) >> 0] | 0;
if ((ret | 0) < 8) return ret | 0;
ret = HEAP8[cttz_i8 + (x >> 8 & 255) >> 0] | 0;
if ((ret | 0) < 8) return ret + 8 | 0;
ret = HEAP8[cttz_i8 + (x >> 16 & 255) >> 0] | 0;
if ((ret | 0) < 8) return ret + 16 | 0;
return (HEAP8[cttz_i8 + (x >>> 24) >> 0] | 0) + 24 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE8allocateEj($this, $n) {
$this = $this | 0;
$n = $n | 0;
var $$0 = 0, $1 = 0, $3 = 0, $4 = 0;
$1 = $n + 15 & -16;
$3 = $this + 4096 | 0;
$4 = HEAP32[$3 >> 2] | 0;
if (($this + 4096 - $4 | 0) >>> 0 < $1 >>> 0) $$0 = _malloc($1) | 0; else {
HEAP32[$3 >> 2] = $4 + $1;
$$0 = $4;
}
return $$0 | 0;
}
function _snprintf($s, $n, $fmt, $varargs) {
$s = $s | 0;
$n = $n | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $ap = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ap = sp;
HEAP32[$ap >> 2] = $varargs;
$0 = _vsnprintf($s, $n, $fmt, $ap) | 0;
STACKTOP = sp;
return $0 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj18EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $s, 17);
$0 = $this + 12 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj15EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $s, 14);
$0 = $this + 12 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj14EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $s, 13);
$0 = $this + 12 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj13EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $s, 12);
$0 = $this + 12 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
return;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairC2ILj12EEERAT__Kc($this, $s) {
$this = $this | 0;
$s = $s | 0;
var $0 = 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6__initEPKcj($this, $s, 11);
$0 = $this + 12 | 0;
HEAP32[$0 >> 2] = 0;
HEAP32[$0 + 4 >> 2] = 0;
HEAP32[$0 + 8 >> 2] = 0;
return;
}
function __ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev($this) {
$this = $this | 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi12arControllerEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this);
return;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKc($this, $__pos, $__s) {
$this = $this | 0;
$__pos = $__pos | 0;
$__s = $__s | 0;
return __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6insertEjPKcj($this, $__pos, $__s, _strlen($__s) | 0) | 0;
}
function ___shlim($f, $lim) {
$f = $f | 0;
$lim = $lim | 0;
var $4 = 0, $5 = 0, $7 = 0;
HEAP32[$f + 104 >> 2] = $lim;
$4 = HEAP32[$f + 4 >> 2] | 0;
$5 = HEAP32[$f + 8 >> 2] | 0;
$7 = $5 - $4 | 0;
HEAP32[$f + 108 >> 2] = $7;
if (($lim | 0) != 0 & ($7 | 0) > ($lim | 0)) HEAP32[$f + 100 >> 2] = $4 + $lim; else HEAP32[$f + 100 >> 2] = $5;
return;
}
function ___stdio_close($f) {
$f = $f | 0;
var $3 = 0, $vararg_buffer = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$vararg_buffer = sp;
HEAP32[$vararg_buffer >> 2] = HEAP32[$f + 60 >> 2];
$3 = ___syscall_ret(___syscall6(6, $vararg_buffer | 0) | 0) | 0;
STACKTOP = sp;
return $3 | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_15arenaILj4096EE10deallocateEPcj($this, $p, $n) {
$this = $this | 0;
$p = $p | 0;
$n = $n | 0;
var $7 = 0;
if ($this >>> 0 <= $p >>> 0 & ($this + 4096 | 0) >>> 0 >= $p >>> 0) {
$7 = $this + 4096 | 0;
if (($p + ($n + 15 & -16) | 0) == (HEAP32[$7 >> 2] | 0)) HEAP32[$7 >> 2] = $p;
} else _free($p);
return;
}
function _rewind($f) {
$f = $f | 0;
var $phitmp = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
___fseeko_unlocked($f, 0, 0) | 0;
HEAP32[$f >> 2] = HEAP32[$f >> 2] & -33;
if (!$phitmp) ___unlockfile($f);
} else {
___fseeko_unlocked($f, 0, 0) | 0;
HEAP32[$f >> 2] = HEAP32[$f >> 2] & -33;
}
return;
}
function _arPattFree($pattHandle, $patno) {
$pattHandle = $pattHandle | 0;
$patno = $patno | 0;
var $$0 = 0, $2 = 0;
$2 = (HEAP32[$pattHandle + 8 >> 2] | 0) + ($patno << 2) | 0;
if (!(HEAP32[$2 >> 2] | 0)) $$0 = -1; else {
HEAP32[$2 >> 2] = 0;
HEAP32[$pattHandle >> 2] = (HEAP32[$pattHandle >> 2] | 0) + -1;
$$0 = 1;
}
return $$0 | 0;
}
function __ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev($this) {
$this = $this | 0;
__ZNSt3__112__hash_tableINS_17__hash_value_typeIi7ARParamEENS_22__unordered_map_hasherIiS3_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS3_NS_8equal_toIiEELb1EEENS_9allocatorIS3_EEED2Ev($this);
return;
}
function _sn_write($f, $s, $l) {
$f = $f | 0;
$s = $s | 0;
$l = $l | 0;
var $2 = 0, $3 = 0, $6 = 0, $l$ = 0;
$2 = $f + 20 | 0;
$3 = HEAP32[$2 >> 2] | 0;
$6 = (HEAP32[$f + 16 >> 2] | 0) - $3 | 0;
$l$ = $6 >>> 0 > $l >>> 0 ? $l : $6;
_memcpy($3 | 0, $s | 0, $l$ | 0) | 0;
HEAP32[$2 >> 2] = (HEAP32[$2 >> 2] | 0) + $l$;
return $l | 0;
}
function _ferror($f) {
$f = $f | 0;
var $$lobit = 0, $$lobit2 = 0, $phitmp = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
$$lobit = (HEAP32[$f >> 2] | 0) >>> 5 & 1;
if ($phitmp) $$lobit2 = $$lobit; else $$lobit2 = $$lobit;
} else $$lobit2 = (HEAP32[$f >> 2] | 0) >>> 5 & 1;
return $$lobit2 | 0;
}
function ___memrchr($m, $c, $n) {
$m = $m | 0;
$c = $c | 0;
$n = $n | 0;
var $$0 = 0, $$01 = 0, $0 = 0, $3 = 0;
$0 = $c & 255;
$$01 = $n;
while (1) {
if (!$$01) {
$$0 = 0;
break;
}
$$01 = $$01 + -1 | 0;
$3 = $m + $$01 | 0;
if ((HEAP8[$3 >> 0] | 0) == $0 << 24 >> 24) {
$$0 = $3;
break;
}
}
return $$0 | 0;
}
function __ZN10emscripten8internal11BindingTypeINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE12fromWireTypeEPNS9_Ut_E($agg$result, $v) {
$agg$result = $agg$result | 0;
$v = $v | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj($agg$result, $v + 4 | 0, HEAP32[$v >> 2] | 0);
return;
}
function _arVecAlloc($clm) {
$clm = $clm | 0;
var $$0 = 0, $0 = 0, $3 = 0;
$0 = _malloc(8) | 0;
do if (!$0) $$0 = 0; else {
$3 = _malloc($clm << 3) | 0;
HEAP32[$0 >> 2] = $3;
if (!$3) {
_free($0);
$$0 = 0;
break;
} else {
HEAP32[$0 + 4 >> 2] = $clm;
$$0 = $0;
break;
}
} while (0);
return $$0 | 0;
}
function _sscanf($s, $fmt, $varargs) {
$s = $s | 0;
$fmt = $fmt | 0;
$varargs = $varargs | 0;
var $0 = 0, $ap = 0, sp = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 16 | 0;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
$ap = sp;
HEAP32[$ap >> 2] = $varargs;
$0 = _vsscanf($s, $fmt, $ap) | 0;
STACKTOP = sp;
return $0 | 0;
}
function _arPattAttach($arHandle, $arPattHandle) {
$arHandle = $arHandle | 0;
$arPattHandle = $arPattHandle | 0;
var $$0 = 0, $1 = 0;
if (!$arHandle) $$0 = -1; else {
$1 = $arHandle + 7062384 | 0;
if (!(HEAP32[$1 >> 2] | 0)) {
HEAP32[$1 >> 2] = $arPattHandle;
$$0 = 0;
} else $$0 = -1;
}
return $$0 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKc($this, $__s) {
$this = $this | 0;
$__s = $__s | 0;
return __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEE6appendEPKcj($this, $__s, _strlen($__s) | 0) | 0;
}
function __ZN10__cxxabiv112_GLOBAL__N_111string_pairD2Ev($this) {
$this = $this | 0;
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this + 12 | 0);
__ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this);
return;
}
function _arMatrixAllocTrans($source) {
$source = $source | 0;
var $$0 = 0, $4 = 0;
$4 = _arMatrixAlloc(HEAP32[$source + 8 >> 2] | 0, HEAP32[$source + 4 >> 2] | 0) | 0;
if (!$4) $$0 = 0; else if ((_arMatrixTrans($4, $source) | 0) < 0) {
_arMatrixFree($4) | 0;
$$0 = 0;
} else $$0 = $4;
return $$0 | 0;
}
function _arMatrixAllocDup($source) {
$source = $source | 0;
var $$0 = 0, $4 = 0;
$4 = _arMatrixAlloc(HEAP32[$source + 4 >> 2] | 0, HEAP32[$source + 8 >> 2] | 0) | 0;
if (!$4) $$0 = 0; else if ((_arMatrixDup($4, $source) | 0) < 0) {
_arMatrixFree($4) | 0;
$$0 = 0;
} else $$0 = $4;
return $$0 | 0;
}
function _arMatrixAllocMul($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $$0 = 0, $4 = 0;
$4 = _arMatrixAlloc(HEAP32[$a + 4 >> 2] | 0, HEAP32[$b + 8 >> 2] | 0) | 0;
if (!$4) $$0 = 0; else if ((_arMatrixMul($4, $a, $b) | 0) < 0) {
_arMatrixFree($4) | 0;
$$0 = 0;
} else $$0 = $4;
return $$0 | 0;
}
function _arGetTransMatMultiSquareRobust($handle, $marker_info, $marker_num, $config) {
$handle = $handle | 0;
$marker_info = $marker_info | 0;
$marker_num = $marker_num | 0;
$config = $config | 0;
return +(+_arGetTransMatMultiSquare2($handle, $marker_info, $marker_num, $config, 1));
}
function _arGetTransMatMultiSquare($handle, $marker_info, $marker_num, $config) {
$handle = $handle | 0;
$marker_info = $marker_info | 0;
$marker_num = $marker_num | 0;
$config = $config | 0;
return +(+_arGetTransMatMultiSquare2($handle, $marker_info, $marker_num, $config, 0));
}
function ___ftello($f) {
$f = $f | 0;
var $5 = 0, $6 = 0, $phitmp = 0;
if ((HEAP32[$f + 76 >> 2] | 0) > -1) {
$phitmp = (___lockfile($f) | 0) == 0;
$5 = ___ftello_unlocked($f) | 0;
if ($phitmp) $6 = $5; else $6 = $5;
} else $6 = ___ftello_unlocked($f) | 0;
return $6 | 0;
}
function _arSetPattRatio($handle, $pattRatio) {
$handle = $handle | 0;
$pattRatio = +$pattRatio;
var $$0 = 0;
if (!$handle) $$0 = -1; else if ($pattRatio <= 0.0 | $pattRatio >= 1.0) $$0 = -1; else {
HEAPF64[$handle + 7062416 >> 3] = $pattRatio;
$$0 = 0;
}
return $$0 | 0;
}
function _bitshift64Ashr(low, high, bits) {
low = low | 0;
high = high | 0;
bits = bits | 0;
if ((bits | 0) < 32) {
tempRet0 = high >> bits;
return low >>> bits | (high & (1 << bits) - 1) << 32 - bits;
}
tempRet0 = (high | 0) < 0 ? -1 : 0;
return high >> bits - 32 | 0;
}
function _byteSwapInt($from, $to) {
$from = $from | 0;
$to = $to | 0;
HEAP8[$to >> 0] = HEAP8[$from + 3 >> 0] | 0;
HEAP8[$to + 1 >> 0] = HEAP8[$from + 2 >> 0] | 0;
HEAP8[$to + 2 >> 0] = HEAP8[$from + 1 >> 0] | 0;
HEAP8[$to + 3 >> 0] = HEAP8[$from >> 0] | 0;
return;
}
function _arGetLabelingThreshMode($handle, $mode_p) {
$handle = $handle | 0;
$mode_p = $mode_p | 0;
var $$0 = 0;
if (($handle | 0) != 0 & ($mode_p | 0) != 0) {
HEAP32[$mode_p >> 2] = HEAP32[$handle + 7062388 >> 2];
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function _bitshift64Shl(low, high, bits) {
low = low | 0;
high = high | 0;
bits = bits | 0;
if ((bits | 0) < 32) {
tempRet0 = high << bits | (low & (1 << bits) - 1 << 32 - bits) >>> 32 - bits;
return low << bits;
}
tempRet0 = low << bits - 32;
return 0;
}
function _ar3DDeleteHandle($handle) {
$handle = $handle | 0;
var $$0 = 0, $0 = 0;
$0 = HEAP32[$handle >> 2] | 0;
if (!$0) $$0 = -1; else {
_icpDeleteHandle($0) | 0;
_free(HEAP32[$handle >> 2] | 0);
HEAP32[$handle >> 2] = 0;
$$0 = 0;
}
return $$0 | 0;
}
function _arGetMatrixCodeType($handle, $type_p) {
$handle = $handle | 0;
$type_p = $type_p | 0;
var $$0 = 0;
if (($handle | 0) != 0 & ($type_p | 0) != 0) {
HEAP32[$type_p >> 2] = HEAP32[$handle + 7062424 >> 2];
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function _bitshift64Lshr(low, high, bits) {
low = low | 0;
high = high | 0;
bits = bits | 0;
if ((bits | 0) < 32) {
tempRet0 = high >>> bits;
return low >>> bits | (high & (1 << bits) - 1) << 32 - bits;
}
tempRet0 = 0;
return high >>> bits - 32 | 0;
}
function _arPattDetach($arHandle) {
$arHandle = $arHandle | 0;
var $$0 = 0, $1 = 0;
if (!$arHandle) $$0 = -1; else {
$1 = $arHandle + 7062384 | 0;
if (!(HEAP32[$1 >> 2] | 0)) $$0 = -1; else {
HEAP32[$1 >> 2] = 0;
$$0 = 0;
}
}
return $$0 | 0;
}
function _arGetLabelingThresh($handle, $thresh) {
$handle = $handle | 0;
$thresh = $thresh | 0;
var $$0 = 0;
if (($handle | 0) != 0 & ($thresh | 0) != 0) {
HEAP32[$thresh >> 2] = HEAP32[$handle + 16 >> 2];
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function __ZN10emscripten8functionIiJiNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 3, 2180, 10905, 12, $fn | 0);
return;
}
function copyTempFloat(ptr) {
ptr = ptr | 0;
HEAP8[tempDoublePtr >> 0] = HEAP8[ptr >> 0];
HEAP8[tempDoublePtr + 1 >> 0] = HEAP8[ptr + 1 >> 0];
HEAP8[tempDoublePtr + 2 >> 0] = HEAP8[ptr + 2 >> 0];
HEAP8[tempDoublePtr + 3 >> 0] = HEAP8[ptr + 3 >> 0];
}
function __ZN10emscripten8functionIiJNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 2, 2160, 10800, 11, $fn | 0);
return;
}
function dynCall_viiiiii(index, a1, a2, a3, a4, a5, a6) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
a4 = a4 | 0;
a5 = a5 | 0;
a6 = a6 | 0;
FUNCTION_TABLE_viiiiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0, a6 | 0);
}
function _arSetLabelingThresh($handle, $thresh) {
$handle = $handle | 0;
$thresh = $thresh | 0;
var $$0 = 0;
if (($handle | 0) == 0 | $thresh >>> 0 > 255) $$0 = -1; else {
HEAP32[$handle + 16 >> 2] = $thresh;
$$0 = 0;
}
return $$0 | 0;
}
function _arGetLabelingMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (($handle | 0) != 0 & ($mode | 0) != 0) {
HEAP32[$mode >> 2] = HEAP32[$handle + 12 >> 2];
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function __ZN10emscripten8internal7InvokerIiJiiiEE6invokeEPFiiiiEiii($fn, $args, $args1, $args2) {
$fn = $fn | 0;
$args = $args | 0;
$args1 = $args1 | 0;
$args2 = $args2 | 0;
return FUNCTION_TABLE_iiii[$fn & 15]($args, $args1, $args2) | 0;
}
function _arGetPattRatio($handle, $pattRatio) {
$handle = $handle | 0;
$pattRatio = $pattRatio | 0;
var $$0 = 0;
if (!$handle) $$0 = -1; else {
HEAPF64[$pattRatio >> 3] = +HEAPF64[$handle + 7062416 >> 3];
$$0 = 0;
}
return $$0 | 0;
}
function _arSetPatternDetectionMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (($handle | 0) != 0 & $mode >>> 0 < 5) {
HEAP32[$handle + 24 >> 2] = $mode;
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function _arGetDebugMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (($handle | 0) != 0 & ($mode | 0) != 0) {
HEAP32[$mode >> 2] = HEAP32[$handle >> 2];
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function _icpSetInlierProbability($handle, $inlierProb) {
$handle = $handle | 0;
$inlierProb = +$inlierProb;
var $$0 = 0;
if (!$handle) $$0 = -1; else {
HEAPF64[$handle + 128 >> 3] = $inlierProb;
$$0 = 0;
}
return $$0 | 0;
}
function _arSetImageProcMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (($handle | 0) != 0 & $mode >>> 0 < 2) {
HEAP32[$handle + 20 >> 2] = $mode;
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function _arSetLabelingMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (($handle | 0) != 0 & $mode >>> 0 < 2) {
HEAP32[$handle + 12 >> 2] = $mode;
$$0 = 0;
} else $$0 = -1;
return $$0 | 0;
}
function __ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv($this, $thrown_type, $0) {
$this = $this | 0;
$thrown_type = $thrown_type | 0;
$0 = $0 | 0;
return ($this | 0) == ($thrown_type | 0) | 0;
}
function runPostSets() {}
function _i64Subtract(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var h = 0;
h = b - d >>> 0;
h = b - d - (c >>> 0 > a >>> 0 | 0) >>> 0;
return (tempRet0 = h, a - c >>> 0 | 0) | 0;
}
function _arImageProcLumaHistAndCDFAndMedian($ipi, $dataPtr, $value_p) {
$ipi = $ipi | 0;
$dataPtr = $dataPtr | 0;
$value_p = $value_p | 0;
return _arImageProcLumaHistAndCDFAndPercentile($ipi, $dataPtr, .5, $value_p) | 0;
}
function _arGetPatternDetectionMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (!$handle) $$0 = -1; else {
HEAP32[$mode >> 2] = HEAP32[$handle + 24 >> 2];
$$0 = 0;
}
return $$0 | 0;
}
function ___strdup($s) {
$s = $s | 0;
var $$0 = 0, $1 = 0, $2 = 0;
$1 = (_strlen($s) | 0) + 1 | 0;
$2 = _malloc($1) | 0;
if (!$2) $$0 = 0; else {
_memcpy($2 | 0, $s | 0, $1 | 0) | 0;
$$0 = $2;
}
return $$0 | 0;
}
function dynCall_viiiii(index, a1, a2, a3, a4, a5) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
a4 = a4 | 0;
a5 = a5 | 0;
FUNCTION_TABLE_viiiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0, a5 | 0);
}
function _arGetImageProcMode($handle, $mode) {
$handle = $handle | 0;
$mode = $mode | 0;
var $$0 = 0;
if (!$handle) $$0 = -1; else {
HEAP32[$mode >> 2] = HEAP32[$handle + 20 >> 2];
$$0 = 0;
}
return $$0 | 0;
}
function _icpDeleteHandle($handle) {
$handle = $handle | 0;
var $$0 = 0, $0 = 0;
$0 = HEAP32[$handle >> 2] | 0;
if (!$0) $$0 = -1; else {
_free($0);
HEAP32[$handle >> 2] = 0;
$$0 = 0;
}
return $$0 | 0;
}
function _arSetMatrixCodeType($handle, $type) {
$handle = $handle | 0;
$type = $type | 0;
var $$0 = 0;
if (!$handle) $$0 = -1; else {
HEAP32[$handle + 7062424 >> 2] = $type;
$$0 = 0;
}
return $$0 | 0;
}
function stackAlloc(size) {
size = size | 0;
var ret = 0;
ret = STACKTOP;
STACKTOP = STACKTOP + size | 0;
STACKTOP = STACKTOP + 15 & -16;
if ((STACKTOP | 0) >= (STACK_MAX | 0)) abort();
return ret | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEEN10__cxxabiv112_GLOBAL__N_112malloc_allocIcEEED2Ev($this) {
$this = $this | 0;
if (HEAP8[$this >> 0] & 1) _free(HEAP32[$this + 8 >> 2] | 0);
return;
}
function ___syscall_ret($r) {
$r = $r | 0;
var $$0 = 0, $2 = 0;
if ($r >>> 0 > 4294963200) {
$2 = ___errno_location() | 0;
HEAP32[$2 >> 2] = 0 - $r;
$$0 = -1;
} else $$0 = $r;
return $$0 | 0;
}
function __ZN10emscripten8internal7InvokerIiJiiEE6invokeEPFiiiEii($fn, $args, $args1) {
$fn = $fn | 0;
$args = $args | 0;
$args1 = $args1 | 0;
return FUNCTION_TABLE_iii[$fn & 15]($args, $args1) | 0;
}
function dynCall_iiiii(index, a1, a2, a3, a4) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
a4 = a4 | 0;
return FUNCTION_TABLE_iiiii[index & 1](a1 | 0, a2 | 0, a3 | 0, a4 | 0) | 0;
}
function __ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii($fn, $args, $args1) {
$fn = $fn | 0;
$args = $args | 0;
$args1 = $args1 | 0;
FUNCTION_TABLE_vii[$fn & 7]($args, $args1);
return;
}
function __ZN10emscripten8internal7InvokerIvJifEE6invokeEPFvifEif($fn, $args, $args1) {
$fn = $fn | 0;
$args = $args | 0;
$args1 = +$args1;
FUNCTION_TABLE_vid[$fn & 3]($args, $args1);
return;
}
function __ZN10emscripten8internal7InvokerIvJidEE6invokeEPFvidEid($fn, $args, $args1) {
$fn = $fn | 0;
$args = $args | 0;
$args1 = +$args1;
FUNCTION_TABLE_vid[$fn & 3]($args, $args1);
return;
}
function _arImageProcFinal($ipi) {
$ipi = $ipi | 0;
if ($ipi) {
if (HEAP32[$ipi + 2076 >> 2] | 0) _free(HEAP32[$ipi >> 2] | 0);
_free(HEAP32[$ipi + 4 >> 2] | 0);
_free($ipi);
}
return;
}
function __ZN10emscripten8functionIiJiiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 4, 2200, 10910, 1, $fn | 0);
return;
}
function __ZN10emscripten8functionIiJiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 3, 2168, 10905, 13, $fn | 0);
return;
}
function __ZN10emscripten8functionIvJiiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 3, 2116, 10779, 1, $fn | 0);
return;
}
function __ZN10emscripten8functionIvJifEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 3, 2104, 10774, 2, $fn | 0);
return;
}
function __ZN10emscripten8functionIvJidEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 3, 2136, 10788, 1, $fn | 0);
return;
}
function __ZN10emscripten8functionIiJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 2, 2192, 10800, 10, $fn | 0);
return;
}
function dynCall_viiii(index, a1, a2, a3, a4) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
a4 = a4 | 0;
FUNCTION_TABLE_viiii[index & 3](a1 | 0, a2 | 0, a3 | 0, a4 | 0);
}
function __ZN10emscripten8functionIvJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 2, 2152, 10796, 7, $fn | 0);
return;
}
function __ZN10emscripten8functionIiJEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 1, 2148, 10793, 16, $fn | 0);
return;
}
function __ZN10emscripten8functionIdJiEJEEEvPKcPFT_DpT0_EDpT1_($name, $fn) {
$name = $name | 0;
$fn = $fn | 0;
__embind_register_function($name | 0, 2, 2128, 10784, 1, $fn | 0);
return;
}
function _icpGetXw2XcCleanup295($J_U_S, $dU, $E, $E2) {
$J_U_S = $J_U_S | 0;
$dU = $dU | 0;
$E = $E | 0;
$E2 = $E2 | 0;
_free($J_U_S);
_free($dU);
_free($E);
_free($E2);
return;
}
function ___errno_location() {
var $$0 = 0, $3 = 0;
if (!(HEAP32[597] | 0)) $$0 = 2644; else {
$3 = (_pthread_self() | 0) + 60 | 0;
$$0 = HEAP32[$3 >> 2] | 0;
}
return $$0 | 0;
}
function __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($this) {
$this = $this | 0;
if (HEAP8[$this >> 0] & 1) __ZdlPv(HEAP32[$this + 8 >> 2] | 0);
return;
}
function _i64Add(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var l = 0;
l = a + c >>> 0;
return (tempRet0 = b + d + (l >>> 0 < a >>> 0 | 0) >>> 0, l | 0) | 0;
}
function __ZN10emscripten8constantIdEEvPKcRKT_($name, $v) {
$name = $name | 0;
$v = $v | 0;
__embind_register_constant($name | 0, 720, ~~+HEAPF64[$v >> 3] >>> 0 | 0);
return;
}
function dynCall_iiii(index, a1, a2, a3) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
return FUNCTION_TABLE_iiii[index & 15](a1 | 0, a2 | 0, a3 | 0) | 0;
}
function ___udivdi3($a$0, $a$1, $b$0, $b$1) {
$a$0 = $a$0 | 0;
$a$1 = $a$1 | 0;
$b$0 = $b$0 | 0;
$b$1 = $b$1 | 0;
return ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0;
}
function _strchr($s, $c) {
$s = $s | 0;
$c = $c | 0;
var $0 = 0;
$0 = ___strchrnul($s, $c) | 0;
return ((HEAP8[$0 >> 0] | 0) == ($c & 255) << 24 >> 24 ? $0 : 0) | 0;
}
function __ZN10emscripten8constantIiEEvPKcRKT_($name, $v) {
$name = $name | 0;
$v = $v | 0;
__embind_register_constant($name | 0, 680, HEAP32[$v >> 2] | 0);
return;
}
function dynCall_viii(index, a1, a2, a3) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = a3 | 0;
FUNCTION_TABLE_viii[index & 1](a1 | 0, a2 | 0, a3 | 0);
}
function __ZN10emscripten8internal7InvokerIiJiEE6invokeEPFiiEi($fn, $args) {
$fn = $fn | 0;
$args = $args | 0;
return FUNCTION_TABLE_ii[$fn & 31]($args) | 0;
}
function __ZN10emscripten8internal7InvokerIdJiEE6invokeEPFdiEi($fn, $args) {
$fn = $fn | 0;
$args = $args | 0;
return +(+FUNCTION_TABLE_di[$fn & 3]($args));
}
function __ZN10emscripten8internal7InvokerIvJiEE6invokeEPFviEi($fn, $args) {
$fn = $fn | 0;
$args = $args | 0;
FUNCTION_TABLE_vi[$fn & 15]($args);
return;
}
function _compE($a, $b) {
$a = $a | 0;
$b = $b | 0;
var $2 = 0.0;
$2 = +HEAPF64[$a >> 3] - +HEAPF64[$b >> 3];
return ($2 < 0.0 ? -1 : $2 > 0.0 & 1) | 0;
}
function dynCall_viid(index, a1, a2, a3) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
a3 = +a3;
FUNCTION_TABLE_viid[index & 3](a1 | 0, a2 | 0, +a3);
}
function _isxdigit($c) {
$c = $c | 0;
var $4 = 0;
if (($c + -48 | 0) >>> 0 < 10) $4 = 1; else $4 = (($c | 32) + -97 | 0) >>> 0 < 6;
return $4 & 1 | 0;
}
function establishStackSpace(stackBase, stackMax) {
stackBase = stackBase | 0;
stackMax = stackMax | 0;
STACKTOP = stackBase;
STACK_MAX = stackMax;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewItEEvPKc($name) {
$name = $name | 0;
__embind_register_memory_view(512, 3, $name | 0);
return;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIsEEvPKc($name) {
$name = $name | 0;
__embind_register_memory_view(520, 2, $name | 0);
return;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIjEEvPKc($name) {
$name = $name | 0;
__embind_register_memory_view(496, 5, $name | 0);
return;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIiEEvPKc($name) {
$name = $name | 0;
__embind_register_memory_view(504, 4, $name | 0);
return;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIhEEvPKc($name) {
$name = $name | 0;
__embind_register_memory_view(528, 1, $name | 0);
return;
}
function __ZN12_GLOBAL__N_1L20register_memory_viewIaEEvPKc($name) {
$name = $name | 0;
__embind_register_memory_view(536, 0, $name | 0);
return;
}
function __ZNKSt3__121__basic_string_commonILb1EE20__throw_out_of_rangeEv($this) {
$this = $this | 0;
___assert_fail(14152, 12528, 1175, 14181);
}
function __ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv($this) {
$this = $this | 0;
___assert_fail(12499, 12528, 1164, 12463);
}
function dynCall_iii(index, a1, a2) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
return FUNCTION_TABLE_iii[index & 15](a1 | 0, a2 | 0) | 0;
}
function b13(p0, p1, p2, p3, p4, p5) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
p4 = p4 | 0;
p5 = p5 | 0;
nullFunc_viiiiii(13);
}
function _wctomb($s, $wc) {
$s = $s | 0;
$wc = $wc | 0;
var $$0 = 0;
if (!$s) $$0 = 0; else $$0 = _wcrtomb($s, $wc, 0) | 0;
return $$0 | 0;
}
function __ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv($this) {
$this = $this | 0;
___assert_fail(12352, 12375, 303, 12463);
}
function dynCall_dii(index, a1, a2) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
return +FUNCTION_TABLE_dii[index & 1](a1 | 0, a2 | 0);
}
function setThrew(threw, value) {
threw = threw | 0;
value = value | 0;
if (!__THREW__) {
__THREW__ = threw;
threwValue = value;
}
}
function _fseek($f, $off, $whence) {
$f = $f | 0;
$off = $off | 0;
$whence = $whence | 0;
return ___fseeko($f, $off, $whence) | 0;
}
function dynCall_vii(index, a1, a2) {
index = index | 0;
a1 = a1 | 0;
a2 = a2 | 0;
FUNCTION_TABLE_vii[index & 7](a1 | 0, a2 | 0);
}
function _mbsinit($st) {
$st = $st | 0;
var $4 = 0;
if (!$st) $4 = 1; else $4 = (HEAP32[$st >> 2] | 0) == 0;
return $4 & 1 | 0;
}
function _do_read($f, $buf, $len) {
$f = $f | 0;
$buf = $buf | 0;
$len = $len | 0;
return ___string_read($f, $buf, $len) | 0;
}
function dynCall_vid(index, a1, a2) {
index = index | 0;
a1 = a1 | 0;
a2 = +a2;
FUNCTION_TABLE_vid[index & 3](a1 | 0, +a2);
}
function b1(p0, p1, p2, p3, p4) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
p4 = p4 | 0;
nullFunc_viiiii(1);
}
function _arMultiFreeConfig($config) {
$config = $config | 0;
_free(HEAP32[$config >> 2] | 0);
_free($config);
return 0;
}
function __ZN10emscripten8internal7InvokerIiJEE6invokeEPFivE($fn) {
$fn = $fn | 0;
return FUNCTION_TABLE_i[$fn & 1]() | 0;
}
function _icpGetXw2XcCleanup($J_U_S, $dU) {
$J_U_S = $J_U_S | 0;
$dU = $dU | 0;
_free($J_U_S);
_free($dU);
return;
}
function b12(p0, p1, p2, p3) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
nullFunc_iiiii(12);
return 0;
}
function _strncpy($d, $s, $n) {
$d = $d | 0;
$s = $s | 0;
$n = $n | 0;
___stpncpy($d, $s, $n) | 0;
return $d | 0;
}
function dynCall_ii(index, a1) {
index = index | 0;
a1 = a1 | 0;
return FUNCTION_TABLE_ii[index & 31](a1 | 0) | 0;
}
function _strcpy($dest, $src) {
$dest = $dest | 0;
$src = $src | 0;
___stpcpy($dest, $src) | 0;
return $dest | 0;
}
function __GLOBAL__sub_I_bind_cpp() {
__ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev(0);
return;
}
function _strrchr($s, $c) {
$s = $s | 0;
$c = $c | 0;
return ___memrchr($s, $c, (_strlen($s) | 0) + 1 | 0) | 0;
}
function _ar3DCreateHandle($arParam) {
$arParam = $arParam | 0;
return _ar3DCreateHandle2($arParam + 8 | 0) | 0;
}
function dynCall_di(index, a1) {
index = index | 0;
a1 = a1 | 0;
return +FUNCTION_TABLE_di[index & 3](a1 | 0);
}
function _fputs($s, $f) {
$s = $s | 0;
$f = $f | 0;
return (_fwrite($s, _strlen($s) | 0, 1, $f) | 0) + -1 | 0;
}
function __ZSt15get_new_handlerv() {
var $0 = 0;
$0 = HEAP32[559] | 0;
HEAP32[559] = $0 + 0;
return $0 | 0;
}
function _arMatrixFree($m) {
$m = $m | 0;
if ($m) {
_free(HEAP32[$m >> 2] | 0);
_free($m);
}
return 0;
}
function __ZN10__cxxabiv123__fundamental_type_infoD0Ev($this) {
$this = $this | 0;
__ZdlPv($this);
return;
}
function b15(p0, p1, p2, p3) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
p3 = p3 | 0;
nullFunc_viiii(15);
}
function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev($this) {
$this = $this | 0;
__ZdlPv($this);
return;
}
function dynCall_vi(index, a1) {
index = index | 0;
a1 = a1 | 0;
FUNCTION_TABLE_vi[index & 15](a1 | 0);
}
function __ZN10__cxxabiv120__si_class_type_infoD0Ev($this) {
$this = $this | 0;
__ZdlPv($this);
return;
}
function __ZN10__cxxabiv117__class_type_infoD0Ev($this) {
$this = $this | 0;
__ZdlPv($this);
return;
}
function _cleanup392($p) {
$p = $p | 0;
if (!(HEAP32[$p + 68 >> 2] | 0)) ___unlockfile($p);
return;
}
function _cleanup387($p) {
$p = $p | 0;
if (!(HEAP32[$p + 68 >> 2] | 0)) ___unlockfile($p);
return;
}
function b0(p0, p1, p2) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
nullFunc_iiii(0);
return 0;
}
function _isspace($c) {
$c = $c | 0;
return (($c | 0) == 32 | ($c + -9 | 0) >>> 0 < 5) & 1 | 0;
}
function ___getTypeName($ti) {
$ti = $ti | 0;
return ___strdup(HEAP32[$ti + 4 >> 2] | 0) | 0;
}
function _arVecFree($v) {
$v = $v | 0;
_free(HEAP32[$v >> 2] | 0);
_free($v);
return 0;
}
function dynCall_i(index) {
index = index | 0;
return FUNCTION_TABLE_i[index & 1]() | 0;
}
function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($this) {
$this = $this | 0;
return;
}
function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($this) {
$this = $this | 0;
return;
}
function b9(p0, p1, p2) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = p2 | 0;
nullFunc_viii(9);
}
function b11(p0, p1, p2) {
p0 = p0 | 0;
p1 = p1 | 0;
p2 = +p2;
nullFunc_viid(11);
}
function _setLogLevel($level) {
$level = $level | 0;
HEAP32[496] = $level;
return;
}
function __ZN10__cxxabiv116__shim_type_infoD2Ev($this) {
$this = $this | 0;
return;
}
function __ZNSt9bad_allocD0Ev($this) {
$this = $this | 0;
__ZdlPv($this);
return;
}
function _copysignl($x, $y) {
$x = +$x;
$y = +$y;
return +(+_copysign($x, $y));
}
function _scalbnl($x, $n) {
$x = +$x;
$n = $n | 0;
return +(+_scalbn($x, $n));
}
function b2(p0, p1) {
p0 = p0 | 0;
p1 = p1 | 0;
nullFunc_dii(2);
return 0.0;
}
function b14(p0, p1) {
p0 = p0 | 0;
p1 = p1 | 0;
nullFunc_iii(14);
return 0;
}
function dynCall_v(index) {
index = index | 0;
FUNCTION_TABLE_v[index & 0]();
}
function _frexpl($x, $e) {
$x = +$x;
$e = $e | 0;
return +(+_frexp($x, $e));
}
function __ZNKSt9bad_alloc4whatEv($this) {
$this = $this | 0;
return 12484;
}
function _isupper($c) {
$c = $c | 0;
return ($c + -65 | 0) >>> 0 < 26 | 0;
}
function _fmodl($x, $y) {
$x = +$x;
$y = +$y;
return +(+_fmod($x, $y));
}
function _arPattCreateHandle() {
return _arPattCreateHandle2(16, 50) | 0;
}
function setTempRet0(value) {
value = value | 0;
tempRet0 = value;
}
function b7(p0, p1) {
p0 = p0 | 0;
p1 = p1 | 0;
nullFunc_vii(7);
}
function __ZNSt9type_infoD2Ev($this) {
$this = $this | 0;
return;
}
function __ZNSt9exceptionD2Ev($this) {
$this = $this | 0;
return;
}
function __ZNSt9bad_allocD2Ev($this) {
$this = $this | 0;
return;
}
function __ZdlPv($ptr) {
$ptr = $ptr | 0;
_free($ptr);
return;
}
function b3(p0, p1) {
p0 = p0 | 0;
p1 = +p1;
nullFunc_vid(3);
}
function _ftell($f) {
$f = $f | 0;
return ___ftello($f) | 0;
}
function stackRestore(top) {
top = top | 0;
STACKTOP = top;
}
function b4(p0) {
p0 = p0 | 0;
nullFunc_di(4);
return 0.0;
}
function b8(p0) {
p0 = p0 | 0;
nullFunc_ii(8);
return 0;
}
function ___unlockfile($f) {
$f = $f | 0;
return;
}
function ___lockfile($f) {
$f = $f | 0;
return 0;
}
function _getLogLevel() {
return HEAP32[496] | 0;
}
function b6(p0) {
p0 = p0 | 0;
nullFunc_vi(6);
}
function getTempRet0() {
return tempRet0 | 0;
}
function stackSave() {
return STACKTOP | 0;
}
function b5() {
nullFunc_i(5);
return 0;
}
function b10() {
nullFunc_v(10);
}
// EMSCRIPTEN_END_FUNCS
var FUNCTION_TABLE_iiii = [b0,__ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,_sn_write,___stdio_write,___stdio_seek,___stdout_write,_setup,_setMarkerInfoDir,_getTransMatSquare,_getTransMatSquareCont,_getMultiEachMarkerInfo,__ZN10emscripten8internal7InvokerIiJiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiiS8_EiPNS0_11BindingTypeIS8_EUt_E,__ZN10emscripten8internal7InvokerIiJiiEE6invokeEPFiiiEii,___stdio_read,_do_read];
var FUNCTION_TABLE_viiiii = [b1,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib];
var FUNCTION_TABLE_dii = [b2,__ZN10emscripten8internal7InvokerIdJiEE6invokeEPFdiEi];
var FUNCTION_TABLE_vid = [b3,_setProjectionNearPlane,_setProjectionFarPlane,_setPattRatio];
var FUNCTION_TABLE_di = [b4,_getProjectionNearPlane,_getProjectionFarPlane,_getPattRatio];
var FUNCTION_TABLE_i = [b5,_getLogLevel];
var FUNCTION_TABLE_vi = [b6,__ZNSt9bad_allocD2Ev,__ZNSt9bad_allocD0Ev,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv123__fundamental_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZN10__cxxabiv120__si_class_type_infoD0Ev,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev,_setLogLevel,__ZNSt3__113unordered_mapIi12arControllerNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev,__ZNSt3__113unordered_mapIi7ARParamNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKiS1_EEEEED2Ev,_cleanup387,_cleanup392,b6];
var FUNCTION_TABLE_vii = [b7,_setThresholdMode,_setThreshold,_setPatternDetectionMode,_setMatrixCodeType,_setLabelingMode,_setImageProcMode,__ZN10emscripten8internal7InvokerIvJiEE6invokeEPFviEi];
var FUNCTION_TABLE_ii = [b8,__ZNKSt9bad_alloc4whatEv,___stdio_close,_teardown,_getMultiMarkerCount,_loadCamera,_detectMarker,_getMarkerNum,_getDebugMode,_getProcessingImage,_getThresholdMode,_getThreshold,_getPatternDetectionMode,_getMatrixCodeType,_getLabelingMode,_getImageProcMode,__ZN10emscripten8internal7InvokerIiJEE6invokeEPFivE,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8
,b8,b8,b8];
var FUNCTION_TABLE_viii = [b9,__ZN10emscripten8internal7InvokerIvJiiEE6invokeEPFviiEii];
var FUNCTION_TABLE_v = [b10];
var FUNCTION_TABLE_viid = [b11,__ZN10emscripten8internal7InvokerIvJidEE6invokeEPFvidEid,__ZN10emscripten8internal7InvokerIvJifEE6invokeEPFvifEif,b11];
var FUNCTION_TABLE_iiiii = [b12,__ZN10emscripten8internal7InvokerIiJiiiEE6invokeEPFiiiiEiii];
var FUNCTION_TABLE_viiiiii = [b13,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib];
var FUNCTION_TABLE_iii = [b14,_compE,_addMarker,_addMultiMarker,_getMultiMarkerNum,_setMarkerInfoVertex,_getTransMatMultiSquare,_getTransMatMultiSquareRobust,_getMarkerInfo,_setDebugMode,__ZN10emscripten8internal7InvokerIiJiEE6invokeEPFiiEi,__ZN10emscripten8internal7InvokerIiJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEE6invokeEPFiS8_EPNS0_11BindingTypeIS8_EUt_E,b14,b14,b14,b14];
var FUNCTION_TABLE_viiii = [b15,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi];
return { _malloc: _malloc, _i64Subtract: _i64Subtract, _fflush: _fflush, _i64Add: _i64Add, _memmove: _memmove, _memset: _memset, ___cxa_demangle: ___cxa_demangle, _memcpy: _memcpy, ___getTypeName: ___getTypeName, _bitshift64Lshr: _bitshift64Lshr, _free: _free, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, __GLOBAL__sub_I_ARToolKitJS_cpp: __GLOBAL__sub_I_ARToolKitJS_cpp, __GLOBAL__sub_I_bind_cpp: __GLOBAL__sub_I_bind_cpp, runPostSets: runPostSets, _emscripten_replace_memory: _emscripten_replace_memory, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_iiii: dynCall_iiii, dynCall_viiiii: dynCall_viiiii, dynCall_dii: dynCall_dii, dynCall_vid: dynCall_vid, dynCall_di: dynCall_di, dynCall_i: dynCall_i, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viii: dynCall_viii, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_iiiii: dynCall_iiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_iii: dynCall_iii, dynCall_viiii: dynCall_viiii };
})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
var real____cxa_demangle = asm["___cxa_demangle"]; asm["___cxa_demangle"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____cxa_demangle.apply(null, arguments);
};
var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__i64Subtract.apply(null, arguments);
};
var real___GLOBAL__sub_I_bind_cpp = asm["__GLOBAL__sub_I_bind_cpp"]; asm["__GLOBAL__sub_I_bind_cpp"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real___GLOBAL__sub_I_bind_cpp.apply(null, arguments);
};
var real__fflush = asm["_fflush"]; asm["_fflush"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__fflush.apply(null, arguments);
};
var real___GLOBAL__sub_I_ARToolKitJS_cpp = asm["__GLOBAL__sub_I_ARToolKitJS_cpp"]; asm["__GLOBAL__sub_I_ARToolKitJS_cpp"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real___GLOBAL__sub_I_ARToolKitJS_cpp.apply(null, arguments);
};
var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__i64Add.apply(null, arguments);
};
var real__memmove = asm["_memmove"]; asm["_memmove"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__memmove.apply(null, arguments);
};
var real__malloc = asm["_malloc"]; asm["_malloc"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__malloc.apply(null, arguments);
};
var real____getTypeName = asm["___getTypeName"]; asm["___getTypeName"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____getTypeName.apply(null, arguments);
};
var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Lshr.apply(null, arguments);
};
var real__free = asm["_free"]; asm["_free"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__free.apply(null, arguments);
};
var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real____errno_location.apply(null, arguments);
};
var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() {
assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');
assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');
return real__bitshift64Shl.apply(null, arguments);
};
var ___cxa_demangle = Module["___cxa_demangle"] = asm["___cxa_demangle"];
var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
var __GLOBAL__sub_I_bind_cpp = Module["__GLOBAL__sub_I_bind_cpp"] = asm["__GLOBAL__sub_I_bind_cpp"];
var _fflush = Module["_fflush"] = asm["_fflush"];
var __GLOBAL__sub_I_ARToolKitJS_cpp = Module["__GLOBAL__sub_I_ARToolKitJS_cpp"] = asm["__GLOBAL__sub_I_ARToolKitJS_cpp"];
var _i64Add = Module["_i64Add"] = asm["_i64Add"];
var _memmove = Module["_memmove"] = asm["_memmove"];
var _memset = Module["_memset"] = asm["_memset"];
var runPostSets = Module["runPostSets"] = asm["runPostSets"];
var _malloc = Module["_malloc"] = asm["_malloc"];
var _memcpy = Module["_memcpy"] = asm["_memcpy"];
var ___getTypeName = Module["___getTypeName"] = asm["___getTypeName"];
var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
var _free = Module["_free"] = asm["_free"];
var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"];
var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
var dynCall_dii = Module["dynCall_dii"] = asm["dynCall_dii"];
var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"];
var dynCall_di = Module["dynCall_di"] = asm["dynCall_di"];
var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"];
var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"];
var dynCall_viid = Module["dynCall_viid"] = asm["dynCall_viid"];
var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"];
var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
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'];
// === Auto-generated postamble setup entry stuff ===
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 run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
if (!Module['calledRun']) run();
if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
}
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; i < argc-1; i = i + 1) {
argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
pad();
}
argv.push(0);
argv = allocate(argv, 'i32', ALLOC_NORMAL);
try {
var ret = Module['_main'](argc, argv, 0);
// if we're not running an evented main loop, it's time to exit
exit(ret, /* implicit = */ true);
}
catch(e) {
if (e instanceof ExitStatus) {
// exit() throws this once it's done to make sure execution
// has been stopped completely
return;
} else if (e == 'SimulateInfiniteLoop') {
// running an evented main loop, don't immediately exit
Module['noExitRuntime'] = true;
return;
} else {
if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
throw e;
}
} finally {
calledMain = true;
}
}
function run(args) {
args = args || Module['arguments'];
if (preloadStartTime === null) preloadStartTime = Date.now();
if (runDependencies > 0) {
Module.printErr('run() called, but dependencies remain, so not running');
return;
}
preRun();
if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
function doRun() {
if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
Module['calledRun'] = true;
if (ABORT) return;
ensureInitRuntime();
preMain();
if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms');
}
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']) {
Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)');
return;
}
if (Module['noExitRuntime']) {
Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)');
} else {
ABORT = true;
EXITSTATUS = status;
STACKTOP = initialStackTop;
exitRuntime();
if (Module['onExit']) Module['onExit'](status);
}
if (ENVIRONMENT_IS_NODE) {
// Work around a node.js bug where stdout buffer is not flushed at process exit:
// Instead of process.exit() directly, wait for stdout flush event.
// See https://github.com/joyent/node/issues/1669 and https://github.com/kripken/emscripten/issues/2582
// Workaround is based on https://github.com/RReverser/acorn/commit/50ab143cecc9ed71a2d66f78b4aec3bb2e9844f6
process['stdout']['once']('drain', function () {
process['exit'](status);
});
console.log(' '); // Make sure to print something to force the drain event to occur, in case the stdout buffer was empty.
// Work around another node bug where sometimes 'drain' is never fired - make another effort
// to emit the exit status, after a significant delay (if node hasn't fired drain by then, give up)
setTimeout(function() {
process['exit'](status);
}, 500);
} else
if (ENVIRONMENT_IS_SHELL && typeof quit === 'function') {
quit(status);
}
// if we reach here, we must throw an exception to halt the current execution
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 = '';
var output = 'abort(' + what + ') at ' + stackTrace() + extra;
if (abortDecorators) {
abortDecorators.forEach(function(decorator) {
output = decorator(output, what);
});
}
throw output;
}
Module['abort'] = Module.abort = abort;
// {{PRE_RUN_ADDITIONS}}
if (Module['preInit']) {
if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
while (Module['preInit'].length > 0) {
Module['preInit'].pop()();
}
}
// shouldRunNow refers to calling main(), not run().
var shouldRunNow = true;
if (Module['noInitialRun']) {
shouldRunNow = false;
}
run();
// {{POST_RUN_ADDITIONS}}
// {{MODULE_ADDITIONS}}