summaryrefslogtreecommitdiffhomepage
path: root/docs/examples/web/text_ttf_loading.js
diff options
context:
space:
mode:
authorRay <[email protected]>2017-04-03 23:10:27 +0200
committerRay <[email protected]>2017-04-03 23:10:27 +0200
commit50bc77ed96337026604b36e4c008fecc39ebd0bb (patch)
tree5fb951ea469633a1b272ad82a8d3cca9a02b59a5 /docs/examples/web/text_ttf_loading.js
parente6ed85e993b049a28dcc3c37bd5fadc6ab159df7 (diff)
downloadraylib-50bc77ed96337026604b36e4c008fecc39ebd0bb.tar.gz
raylib-50bc77ed96337026604b36e4c008fecc39ebd0bb.zip
Improve web examples -IN PROGRESS-
Diffstat (limited to 'docs/examples/web/text_ttf_loading.js')
-rw-r--r--docs/examples/web/text_ttf_loading.js12814
1 files changed, 10936 insertions, 1878 deletions
diff --git a/docs/examples/web/text_ttf_loading.js b/docs/examples/web/text_ttf_loading.js
index 1a6a7b00..328349f2 100644
--- a/docs/examples/web/text_ttf_loading.js
+++ b/docs/examples/web/text_ttf_loading.js
@@ -1,3 +1,192 @@
+
+var Module;
+
+if (typeof Module === 'undefined') Module = {};
+
+if (!Module.expectedDataFileDownloads) {
+ Module.expectedDataFileDownloads = 0;
+ Module.finishedDataFileDownloads = 0;
+}
+Module.expectedDataFileDownloads++;
+(function() {
+ var loadPackage = function(metadata) {
+
+ var PACKAGE_PATH;
+ if (typeof window === 'object') {
+ PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
+ } else if (typeof location !== 'undefined') {
+ // worker
+ PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
+ } else {
+ throw 'using preloaded data can only be done on a web page or in a web worker';
+ }
+ var PACKAGE_NAME = 'text_ttf_loading.data';
+ var REMOTE_PACKAGE_BASE = 'text_ttf_loading.data';
+ if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
+ Module['locateFile'] = Module['locateFilePackage'];
+ Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
+ }
+ var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ?
+ Module['locateFile'](REMOTE_PACKAGE_BASE) :
+ ((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE);
+
+ var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
+ var PACKAGE_UUID = metadata.package_uuid;
+
+ function fetchRemotePackage(packageName, packageSize, callback, errback) {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', packageName, true);
+ xhr.responseType = 'arraybuffer';
+ xhr.onprogress = function(event) {
+ var url = packageName;
+ var size = packageSize;
+ if (event.total) size = event.total;
+ if (event.loaded) {
+ if (!xhr.addedTotal) {
+ xhr.addedTotal = true;
+ if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
+ Module.dataFileDownloads[url] = {
+ loaded: event.loaded,
+ total: size
+ };
+ } else {
+ Module.dataFileDownloads[url].loaded = event.loaded;
+ }
+ var total = 0;
+ var loaded = 0;
+ var num = 0;
+ for (var download in Module.dataFileDownloads) {
+ var data = Module.dataFileDownloads[download];
+ total += data.total;
+ loaded += data.loaded;
+ num++;
+ }
+ total = Math.ceil(total * Module.expectedDataFileDownloads/num);
+ if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
+ } else if (!Module.dataFileDownloads) {
+ if (Module['setStatus']) Module['setStatus']('Downloading data...');
+ }
+ };
+ xhr.onerror = function(event) {
+ throw new Error("NetworkError for: " + packageName);
+ }
+ xhr.onload = function(event) {
+ if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
+ var packageData = xhr.response;
+ callback(packageData);
+ } else {
+ throw new Error(xhr.statusText + " : " + xhr.responseURL);
+ }
+ };
+ xhr.send(null);
+ };
+
+ function handleError(error) {
+ console.error('package error:', error);
+ };
+
+ var fetchedCallback = null;
+ var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
+
+ if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
+ if (fetchedCallback) {
+ fetchedCallback(data);
+ fetchedCallback = null;
+ } else {
+ fetched = data;
+ }
+ }, handleError);
+
+ function runWithFS() {
+
+ function assert(check, msg) {
+ if (!check) throw msg + new Error().stack;
+ }
+Module['FS_createPath']('/', 'resources', true, true);
+Module['FS_createPath']('/resources', 'fonts', true, true);
+
+ function DataRequest(start, end, crunched, audio) {
+ this.start = start;
+ this.end = end;
+ this.crunched = crunched;
+ this.audio = audio;
+ }
+ DataRequest.prototype = {
+ requests: {},
+ open: function(mode, name) {
+ this.name = name;
+ this.requests[name] = this;
+ Module['addRunDependency']('fp ' + this.name);
+ },
+ send: function() {},
+ onload: function() {
+ var byteArray = this.byteArray.subarray(this.start, this.end);
+
+ this.finish(byteArray);
+
+ },
+ finish: function(byteArray) {
+ var that = this;
+
+ Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
+ Module['removeRunDependency']('fp ' + that.name);
+
+ this.requests[this.name] = null;
+ }
+ };
+
+ var files = metadata.files;
+ for (i = 0; i < files.length; ++i) {
+ new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename);
+ }
+
+
+ function processPackageData(arrayBuffer) {
+ Module.finishedDataFileDownloads++;
+ assert(arrayBuffer, 'Loading data file failed.');
+ assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
+ var byteArray = new Uint8Array(arrayBuffer);
+ var curr;
+
+ // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
+ // (we may be allocating before malloc is ready, during startup).
+ if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting');
+ var ptr = Module['getMemory'](byteArray.length);
+ Module['HEAPU8'].set(byteArray, ptr);
+ DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
+
+ var files = metadata.files;
+ for (i = 0; i < files.length; ++i) {
+ DataRequest.prototype.requests[files[i].filename].onload();
+ }
+ Module['removeRunDependency']('datafile_text_ttf_loading.data');
+
+ };
+ Module['addRunDependency']('datafile_text_ttf_loading.data');
+
+ if (!Module.preloadResults) Module.preloadResults = {};
+
+ Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
+ if (fetched) {
+ processPackageData(fetched);
+ fetched = null;
+ } else {
+ fetchedCallback = processPackageData;
+ }
+
+ }
+ if (Module['calledRun']) {
+ runWithFS();
+ } else {
+ if (!Module['preRun']) Module['preRun'] = [];
+ Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
+ }
+
+ }
+ loadPackage({"files": [{"audio": 0, "start": 0, "crunched": 0, "end": 79912, "filename": "/resources/fonts/KAISG.ttf"}], "remote_package_size": 79912, "package_uuid": "a7fa6888-ab37-4a9b-bbf1-0bb0e5d9ce5c"});
+
+})();
+
// 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:
@@ -1205,11 +1394,82 @@ function abortOnCannotGrowMemory() {
abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');
}
+if (!Module['reallocBuffer']) Module['reallocBuffer'] = function(size) {
+ var ret;
+ try {
+ if (ArrayBuffer.transfer) {
+ ret = ArrayBuffer.transfer(buffer, size);
+ } else {
+ var oldHEAP8 = HEAP8;
+ ret = new ArrayBuffer(size);
+ var temp = new Int8Array(ret);
+ temp.set(oldHEAP8);
+ }
+ } catch(e) {
+ return false;
+ }
+ var success = _emscripten_replace_memory(ret);
+ if (!success) return false;
+ return ret;
+};
function enlargeMemory() {
- abortOnCannotGrowMemory();
+ // TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top.
+ assert(HEAP32[DYNAMICTOP_PTR>>2] > TOTAL_MEMORY); // This function should only ever be called after the ceiling of the dynamic heap has already been bumped to exceed the current total size of the asm.js heap.
+
+
+ var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.
+ var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.
+
+ if (HEAP32[DYNAMICTOP_PTR>>2] > LIMIT) {
+ Module.printErr('Cannot enlarge memory, asked to go up to ' + HEAP32[DYNAMICTOP_PTR>>2] + ' bytes, but the limit is ' + LIMIT + ' bytes!');
+ return false;
+ }
+
+ var OLD_TOTAL_MEMORY = TOTAL_MEMORY;
+ TOTAL_MEMORY = Math.max(TOTAL_MEMORY, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.
+
+ while (TOTAL_MEMORY < HEAP32[DYNAMICTOP_PTR>>2]) { // Keep incrementing the heap size as long as it's less than what is requested.
+ if (TOTAL_MEMORY <= 536870912) {
+ TOTAL_MEMORY = alignUp(2 * TOTAL_MEMORY, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...
+ } else {
+ TOTAL_MEMORY = Math.min(alignUp((3 * TOTAL_MEMORY + 2147483648) / 4, PAGE_MULTIPLE), LIMIT); // ..., but after that, add smaller increments towards 2GB, which we cannot reach
+ }
+ }
+
+ var start = Date.now();
+
+ var replacement = Module['reallocBuffer'](TOTAL_MEMORY);
+ if (!replacement || replacement.byteLength != TOTAL_MEMORY) {
+ Module.printErr('Failed to grow the heap from ' + OLD_TOTAL_MEMORY + ' bytes to ' + TOTAL_MEMORY + ' bytes, not enough memory!');
+ if (replacement) {
+ Module.printErr('Expected to get back a buffer of size ' + TOTAL_MEMORY + ' bytes, but instead got back a buffer of size ' + replacement.byteLength);
+ }
+ return false;
+ }
+
+ // everything worked
+
+ updateGlobalBuffer(replacement);
+ updateGlobalBufferViews();
+
+ Module.printErr('enlarged memory arrays from ' + OLD_TOTAL_MEMORY + ' to ' + TOTAL_MEMORY + ', took ' + (Date.now() - start) + ' ms (has ArrayBuffer.transfer? ' + (!!ArrayBuffer.transfer) + ')');
+
+ if (!Module["usingWasm"]) {
+ Module.printErr('Warning: Enlarging memory arrays, this is not fast! ' + [OLD_TOTAL_MEMORY, TOTAL_MEMORY]);
+ }
+
+
+ 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'] || 16777216;
@@ -1572,24 +1832,6 @@ var memoryInitializer = null;
-var /* show errors on likely calls to FS when it was not included */ FS = {
- error: function() {
- abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1');
- },
- init: function() { FS.error() },
- createDataFile: function() { FS.error() },
- createPreloadedFile: function() { FS.error() },
- createLazyFile: function() { FS.error() },
- open: function() { FS.error() },
- mkdev: function() { FS.error() },
- registerDevice: function() { FS.error() },
- analyzePath: function() { FS.error() },
- loadFilesFromDB: function() { FS.error() },
-
- ErrnoError: function ErrnoError() { FS.error() },
-};
-Module['FS_createDataFile'] = FS.createDataFile;
-Module['FS_createPreloadedFile'] = FS.createPreloadedFile;
@@ -1605,12 +1847,12 @@ function _emscripten_asm_const_iii(code, a0, a1) {
STATIC_BASE = 8;
-STATICTOP = STATIC_BASE + 19984;
+STATICTOP = STATIC_BASE + 21200;
/* global initializers */ __ATINIT__.push();
-/* memory initializer */ allocate([255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,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,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,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,164,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,12,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,11,74,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,148,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,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,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,116,101,120,116,93,32,101,120,97,109,112,108,101,32,45,32,116,116,102,32,108,111,97,100,105,110,103,0,84,84,70,32,83,112,114,105,116,101,70,111,110,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,101,115,111,117,114,99,101,115,47,102,111,110,116,115,47,75,65,73,83,71,46,116,116,102,0,85,115,101,32,109,111,117,115,101,32,119,104,101,101,108,32,116,111,32,99,104,97,110,103,101,32,102,111,110,116,32,115,105,122,101,0,85,115,101,32,75,69,89,95,82,73,71,72,84,32,97,110,100,32,75,69,89,95,76,69,70,84,32,116,111,32,109,111,118,101,32,116,101,120,116,0,85,115,101,32,49,44,32,50,44,32,51,32,116,111,32,99,104,97,110,103,101,32,116,101,120,116,117,114,101,32,102,105,108,116,101,114,0,68,114,111,112,32,97,32,110,101,119,32,84,84,70,32,102,111,110,116,32,102,111,114,32,100,121,110,97,109,105,99,32,108,111,97,100,105,110,103,0,70,111,110,116,32,115,105,122,101,58,32,37,48,50,46,48,50,102,0,84,101,120,116,32,115,105,122,101,58,32,91,37,48,50,46,48,50,102,44,32,37,48,50,46,48,50,102,93,0,67,85,82,82,69,78,84,32,84,69,88,84,85,82,69,32,70,73,76,84,69,82,58,0,80,79,73,78,84,0,66,73,76,73,78,69,65,82,0,84,82,73,76,73,78,69,65,82,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,109,111,100,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,77,97,120,105,109,117,109,32,97,110,105,115,111,116,114,111,112,105,99,32,102,105,108,116,101,114,32,108,101,118,101,108,32,115,117,112,112,111,114,116,101,100,32,105,115,32,37,105,88,0,65,110,105,115,111,116,114,111,112,105,99,32,102,105,108,116,101,114,105,110,103,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,77,105,112,109,97,112,115,32,103,101,110,101,114,97,116,101,100,32,97,117,116,111,109,97,116,105,99,97,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,77,105,112,109,97,112,115,32,99,97,110,32,110,111,116,32,98,101,32,103,101,110,101,114,97,116,101,100,0,76,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,44,32,110,111,32,109,105,112,109,97,112,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,78,80,79,84,32,116,101,120,116,117,114,101,115,0,91,84,69,88,32,73,68,32,37,105,93,32,78,111,32,109,105,112,109,97,112,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,84,82,73,76,73,78,69,65,82,32,116,101,120,116,117,114,101,32,102,105,108,116,101,114,105,110,103,0,85,110,108,111,97,100,101,100,32,115,112,114,105,116,101,32,102,111,110,116,32,100,97,116,97,0,91,37,115,93,32,83,112,114,105,116,101,70,111,110,116,32,99,111,117,108,100,32,110,111,116,32,98,101,32,103,101,110,101,114,97,116,101,100,44,32,117,115,105,110,103,32,100,101,102,97,117,108,116,32,102,111,110,116,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
-/* memory initializer */ allocate([116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
+/* memory initializer */ allocate([0,0,32,66,0,128,137,67,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,32,0,0,176,1,0,0,0,0,0,0,0,0,0,32,37,249,142,0,10,2,0,0,128,190,125,95,244,125,31,160,242,43,74,30,9,82,8,0,64,34,65,80,20,4,16,32,32,41,46,18,8,34,8,0,32,34,65,80,20,4,16,32,32,249,16,76,8,250,62,60,16,34,125,222,247,125,16,32,32,161,232,50,8,34,8,0,8,34,5,16,4,69,16,0,240,163,164,50,8,82,8,0,4,34,5,16,4,69,16,32,32,249,226,94,8,2,0,129,2,62,125,31,244,125,16,0,0,32,0,0,176,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,15,0,192,15,224,247,251,125,126,191,95,232,190,80,0,162,8,8,68,232,47,20,10,133,2,129,80,72,160,80,0,162,40,228,73,40,40,20,10,132,2,129,64,72,160,72,0,190,15,2,16,175,235,247,9,132,62,159,216,79,160,71,0,34,136,228,9,161,42,20,10,132,2,129,80,72,160,72,0,34,40,8,4,160,47,20,10,133,2,129,80,72,162,80,0,190,143,0,0,33,32,244,251,125,126,129,95,232,156,208,7,0,128,0,0,224,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,12,0,130,66,191,223,239,247,251,11,5,5,133,66,191,4,72,0,198,66,161,80,40,20,64,8,5,37,133,66,160,8,168,0,170,70,161,80,40,20,64,8,5,37,133,66,144,16,8,0,146,74,161,95,232,247,67,8,5,37,121,126,136,32,8,0,130,82,161,64,40,1,66,8,137,36,133,64,132,64,8,0,130,98,161,64,42,2,66,8,81,36,133,64,130,128,8,0,130,66,191,192,47,244,67,248,33,252,133,126,191,0,9,62,0,0,0,0,4,0,0,0,0,0,0,0,128,1,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,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,4,0,4,0,32,72,65,0,0,0,0,0,8,0,0,4,4,0,4,60,32,0,65,0,0,0,0,0,8,0,0,240,125,223,247,133,239,75,81,190,239,251,190,239,59,81,4,0,69,65,20,133,40,74,73,170,40,138,162,32,8,81,4,240,69,65,244,157,40,74,71,170,40,138,162,224,11,81,4,16,69,65,20,132,40,74,73,170,40,138,162,0,10,145,2,240,125,223,247,133,47,74,209,170,232,251,190,224,123,31,1,0,0,0,0,4,8,64,0,0,0,8,32,0,0,0,0,0,0,0,0,132,15,96,0,0,0,8,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,1,15,0,0,0,0,0,0,0,0,0,0,0,0,0,36,1,9,0,0,0,0,0,0,0,0,0,6,0,0,0,36,1,9,0,0,0,0,0,0,0,128,16,9,162,40,250,36,1,9,0,0,0,0,0,0,0,0,62,1,42,37,66,34,82,9,0,0,0,0,0,0,0,128,138,3,42,34,34,36,41,9,0,0,0,0,0,0,0,128,10,1,42,37,18,36,1,9,0,0,0,0,0,0,0,128,10,1,190,232,251,36,1,9,0,0,0,0,0,0,0,128,190,14,0,0,2,172,1,15,0,0,0,0,0,0,0,128,4,0,0,224,3,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,0,0,0,14,184,67,132,3,58,32,0,128,160,190,2,32,0,0,240,138,32,82,196,2,43,32,4,34,145,2,248,59,0,240,7,142,56,75,228,2,58,32,2,28,138,30,8,42,233,17,4,224,11,66,244,2,130,36,1,20,4,20,232,186,4,209,5,128,184,195,231,10,58,137,0,28,14,60,40,2,9,80,4,128,0,64,196,2,128,68,0,34,132,32,232,2,0,80,4,0,0,64,128,2,0,32,5,0,142,62,8,2,0,16,4,224,3,64,128,66,0,0,7,0,132,0,248,3,0,240,7,0,0,64,128,34,0,0,4,0,0,0,0,0,0,0,0,0,0,64,128,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,128,0,194,160,72,24,0,0,1,132,33,9,146,2,66,38,4,1,33,81,0,0,127,63,2,66,2,16,41,0,34,20,192,239,247,251,253,126,9,161,223,239,247,187,187,3,18,15,68,40,20,10,133,66,9,129,64,32,16,16,17,1,8,4,68,40,20,10,133,66,127,129,64,32,16,16,17,1,4,130,199,239,247,251,253,126,9,129,207,231,243,17,17,1,50,169,80,40,20,10,133,66,9,161,64,32,16,16,17,1,64,184,80,40,20,10,133,66,121,191,223,239,247,187,187,3,32,160,31,0,0,0,0,0,0,16,0,0,0,0,0,0,112,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,8,131,34,1,0,2,8,67,2,1,0,1,1,124,20,4,132,68,1,0,32,4,132,4,128,8,63,130,0,132,66,191,223,239,247,3,126,161,80,40,20,10,33,0,0,132,70,161,80,40,20,138,82,161,80,40,20,122,161,239,3,158,74,161,80,40,20,82,82,161,80,40,20,74,31,8,2,132,82,161,80,40,20,34,74,161,80,40,244,75,161,239,3,132,98,161,80,40,20,82,74,161,80,40,4,122,161,40,2,124,66,191,223,239,247,139,126,191,223,239,247,11,189,239,3,0,0,0,0,0,0,0,4,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,5,32,0,0,4,132,0,34,129,69,17,16,66,1,0,148,66,81,0,0,8,66,81,148,42,162,32,8,165,80,0,0,0,32,0,0,0,0,0,0,0,5,0,0,0,0,8,190,239,251,254,251,190,239,251,20,145,235,251,190,239,251,0,32,8,130,32,10,162,40,138,20,145,40,138,162,40,138,62,190,239,251,254,11,190,239,251,20,145,40,138,162,40,138,0,162,40,138,34,8,130,32,8,20,145,40,138,162,40,138,8,190,239,251,254,251,190,239,251,20,145,47,250,190,239,251,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,33,0,4,0,0,0,0,0,0,0,0,0,0,0,0,130,80,20,2,20,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,190,40,138,162,40,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,168,34,0,0,0,0,0,0,0,0,0,0,170,40,138,162,232,34,0,0,0,0,0,0,0,0,0,0,190,239,251,190,47,62,0,0,0,0,0,0,0,0,0,0,4,0,0,0,40,32,0,0,0,0,0,0,0,0,0,0,0,0,0,128,15,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,7,0,0,0,3,0,0,0,5,0,0,0,4,0,0,0,1,0,0,0,7,0,0,0,4,0,0,0,3,0,0,0,5,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,3,0,0,0,5,0,0,0,255,255,255,255,0,1,0,0,255,255,255,255,0,0,128,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,12,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,203,78,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,156,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,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,0,0,0,0,0,0,0,0,84,84,70,32,83,112,114,105,116,101,70,111,110,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,121,108,105,98,32,91,116,101,120,116,93,32,101,120,97,109,112,108,101,32,45,32,116,116,102,32,108,111,97,100,105,110,103,0,114,101,115,111,117,114,99,101,115,47,102,111,110,116,115,47,75,65,73,83,71,46,116,116,102,0,85,115,101,32,109,111,117,115,101,32,119,104,101,101,108,32,116,111,32,99,104,97,110,103,101,32,102,111,110,116,32,115,105,122,101,0,85,115,101,32,75,69,89,95,82,73,71,72,84,32,97,110,100,32,75,69,89,95,76,69,70,84,32,116,111,32,109,111,118,101,32,116,101,120,116,0,85,115,101,32,49,44,32,50,44,32,51,32,116,111,32,99,104,97,110,103,101,32,116,101,120,116,117,114,101,32,102,105,108,116,101,114,0,68,114,111,112,32,97,32,110,101,119,32,84,84,70,32,102,111,110,116,32,102,111,114,32,100,121,110,97,109,105,99,32,108,111,97,100,105,110,103,0,70,111,110,116,32,115,105,122,101,58,32,37,48,50,46,48,50,102,0,84,101,120,116,32,115,105,122,101,58,32,91,37,48,50,46,48,50,102,44,32,37,48,50,46,48,50,102,93,0,67,85,82,82,69,78,84,32,84,69,88,84,85,82,69,32,70,73,76,84,69,82,58,0,80,79,73,78,84,0,66,73,76,73,78,69,65,82,0,84,82,73,76,73,78,69,65,82,0,73,110,105,116,105,97,108,105,122,105,110,103,32,114,97,121,108,105,98,32,40,118,49,46,55,46,48,41,0,35,99,97,110,118,97,115,0,84,97,114,103,101,116,32,116,105,109,101,32,112,101,114,32,102,114,97,109,101,58,32,37,48,50,46,48,51,102,32,109,105,108,108,105,115,101,99,111,110,100,115,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,102,117,108,108,115,99,114,101,101,110,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,67,97,110,118,97,115,32,115,99,97,108,101,100,32,116,111,32,119,105,110,100,111,119,101,100,46,32,69,108,101,109,101,110,116,83,105,122,101,58,32,40,37,105,120,37,105,41,44,32,83,99,114,101,101,110,83,105,122,101,40,37,105,120,37,105,41,0,91,84,69,88,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,102,111,110,116,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,69,84,67,50,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,84,101,120,116,117,114,101,32,102,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,84,101,120,116,117,114,101,32,99,114,101,97,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,37,105,120,37,105,41,0,84,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,99,114,101,97,116,101,100,0,73,109,97,103,101,32,100,97,116,97,32,102,111,114,109,97,116,32,105,115,32,99,111,109,112,114,101,115,115,101,100,44,32,99,97,110,32,110,111,116,32,98,101,32,99,111,110,118,101,114,116,101,100,0,70,111,114,109,97,116,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,102,111,114,32,112,105,120,101,108,32,100,97,116,97,32,114,101,116,114,105,101,118,97,108,0,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,71,76,70,87,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,77,83,65,65,32,120,52,0,67,108,111,115,101,115,116,32,102,117,108,108,115,99,114,101,101,110,32,118,105,100,101,111,109,111,100,101,58,32,37,105,32,120,32,37,105,0,71,76,70,87,32,70,97,105,108,101,100,32,116,111,32,105,110,105,116,105,97,108,105,122,101,32,87,105,110,100,111,119,0,68,105,115,112,108,97,121,32,100,101,118,105,99,101,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,82,101,110,100,101,114,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,83,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,86,105,101,119,112,111,114,116,32,111,102,102,115,101,116,115,58,32,37,105,44,32,37,105,0,84,114,121,105,110,103,32,116,111,32,101,110,97,98,108,101,32,86,83,89,78,67,0,71,80,85,58,32,86,101,110,100,111,114,58,32,32,32,37,115,0,71,80,85,58,32,82,101,110,100,101,114,101,114,58,32,37,115,0,71,80,85,58,32,86,101,114,115,105,111,110,58,32,32,37,115,0,71,80,85,58,32,71,76,83,76,58,32,32,32,32,32,37,115,0,32,0,78,117,109,98,101,114,32,111,102,32,115,117,112,112,111,114,116,101,100,32,101,120,116,101,110,115,105,111,110,115,58,32,37,105,0,71,76,95,79,69,83,95,118,101,114,116,101,120,95,97,114,114,97,121,95,111,98,106,101,99,116,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,79,69,83,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,79,69,83,0,71,76,95,79,69,83,95,116,101,120,116,117,114,101,95,110,112,111,116,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,115,51,116,99,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,87,69,66,75,73,84,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,115,51,116,99,0,71,76,95,79,69,83,95,99,111,109,112,114,101,115,115,101,100,95,69,84,67,49,95,82,71,66,56,95,116,101,120,116,117,114,101,0,71,76,95,87,69,66,71,76,95,99,111,109,112,114,101,115,115,101,100,95,116,101,120,116,117,114,101,95,101,116,99,49,0,71,76,95,65,82,66,95,69,83,51,95,99,111,109,112,97,116,105,98,105,108,105,116,121,0,71,76,95,73,77,71,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,112,118,114,116,99,0,71,76,95,75,72,82,95,116,101,120,116,117,114,101,95,99,111,109,112,114,101,115,115,105,111,110,95,97,115,116,99,95,104,100,114,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,102,105,108,116,101,114,95,97,110,105,115,111,116,114,111,112,105,99,0,71,76,95,69,88,84,95,116,101,120,116,117,114,101,95,109,105,114,114,111,114,95,99,108,97,109,112,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,86,65,79,32,102,117,110,99,116,105,111,110,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,69,88,84,69,78,83,73,79,78,93,32,86,65,79,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,86,65,79,32,117,115,97,103,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,100,101,116,101,99,116,101,100,44,32,102,117,108,108,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,78,80,79,84,32,116,101,120,116,117,114,101,115,32,101,120,116,101,110,115,105,111,110,32,110,111,116,32,102,111,117,110,100,44,32,108,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,32,40,110,111,45,109,105,112,109,97,112,115,44,32,110,111,45,114,101,112,101,97,116,41,0,91,69,88,84,69,78,83,73,79,78,93,32,68,88,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,49,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,69,84,67,50,47,69,65,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,80,86,82,84,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,83,84,67,32,99,111,109,112,114,101,115,115,101,100,32,116,101,120,116,117,114,101,115,32,115,117,112,112,111,114,116,101,100,0,91,69,88,84,69,78,83,73,79,78,93,32,65,110,105,115,111,116,114,111,112,105,99,32,116,101,120,116,117,114,101,115,32,102,105,108,116,101,114,105,110,103,32,115,117,112,112,111,114,116,101,100,32,40,109,97,120,58,32,37,46,48,102,88,41,0,91,69,88,84,69,78,83,73,79,78,93,32,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,116,101,120,116,117,114,101,32,109,111,100,101,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,66,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,79,112,101,110,71,76,32,100,101,102,97,117,108,116,32,115,116,97,116,101,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,67,80,85,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,44,32,116,114,105,97,110,103,108,101,115,44,32,113,117,97,100,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,108,105,110,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,116,114,105,97,110,103,108,101,115,41,0,91,86,65,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,65,79,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,91,86,66,79,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,98,117,102,102,101,114,115,32,86,66,79,115,32,105,110,105,116,105,97,108,105,122,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,32,40,113,117,97,100,115,41,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,51,32,118,101,114,116,101,120,80,111,115,105,116,105,111,110,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,50,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,32,32,32,32,10,97,116,116,114,105,98,117,116,101,32,118,101,99,52,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,109,97,116,52,32,109,118,112,77,97,116,114,105,120,59,32,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,102,114,97,103,84,101,120,67,111,111,114,100,32,61,32,118,101,114,116,101,120,84,101,120,67,111,111,114,100,59,32,10,32,32,32,32,102,114,97,103,67,111,108,111,114,32,61,32,118,101,114,116,101,120,67,111,108,111,114,59,32,32,32,32,32,32,32,10,32,32,32,32,103,108,95,80,111,115,105,116,105,111,110,32,61,32,109,118,112,77,97,116,114,105,120,42,118,101,99,52,40,118,101,114,116,101,120,80,111,115,105,116,105,111,110,44,32,49,46,48,41,59,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,35,118,101,114,115,105,111,110,32,49,48,48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,112,114,101,99,105,115,105,111,110,32,109,101,100,105,117,109,112,32,102,108,111,97,116,59,32,32,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,50,32,102,114,97,103,84,101,120,67,111,111,114,100,59,32,32,32,32,32,32,32,32,32,10,118,97,114,121,105,110,103,32,118,101,99,52,32,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,116,101,120,116,117,114,101,48,59,32,32,32,32,32,32,32,32,10,117,110,105,102,111,114,109,32,118,101,99,52,32,99,111,108,68,105,102,102,117,115,101,59,32,32,32,32,32,32,32,32,32,32,32,10,118,111,105,100,32,109,97,105,110,40,41,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,123,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,32,32,32,32,118,101,99,52,32,116,101,120,101,108,67,111,108,111,114,32,61,32,116,101,120,116,117,114,101,50,68,40,116,101,120,116,117,114,101,48,44,32,102,114,97,103,84,101,120,67,111,111,114,100,41,59,32,10,32,32,32,32,103,108,95,70,114,97,103,67,111,108,111,114,32,61,32,116,101,120,101,108,67,111,108,111,114,42,99,111,108,68,105,102,102,117,115,101,42,102,114,97,103,67,111,108,111,114,59,32,32,32,32,32,32,10,125,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,10,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,68,101,102,97,117,108,116,32,115,104,97,100,101,114,32,99,111,117,108,100,32,110,111,116,32,98,101,32,108,111,97,100,101,100,0,118,101,114,116,101,120,80,111,115,105,116,105,111,110,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,0,118,101,114,116,101,120,84,101,120,67,111,111,114,100,50,0,118,101,114,116,101,120,78,111,114,109,97,108,0,118,101,114,116,101,120,84,97,110,103,101,110,116,0,118,101,114,116,101,120,67,111,108,111,114,0,109,118,112,77,97,116,114,105,120,0,99,111,108,68,105,102,102,117,115,101,0,99,111,108,65,109,98,105,101,110,116,0,99,111,108,83,112,101,99,117,108,97,114,0,116,101,120,116,117,114,101,48,0,116,101,120,116,117,114,101,49,0,116,101,120,116,117,114,101,50,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,118,101,114,116,101,120,32,115,104,97,100,101,114,46,46,46,0,37,115,0,91,86,83,72,68,82,32,73,68,32,37,105,93,32,86,101,114,116,101,120,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,99,111,109,112,105,108,101,32,102,114,97,103,109,101,110,116,32,115,104,97,100,101,114,46,46,46,0,91,70,83,72,68,82,32,73,68,32,37,105,93,32,70,114,97,103,109,101,110,116,32,115,104,97,100,101,114,32,99,111,109,112,105,108,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,83,72,68,82,32,73,68,32,37,105,93,32,70,97,105,108,101,100,32,116,111,32,108,105,110,107,32,115,104,97,100,101,114,32,112,114,111,103,114,97,109,46,46,46,0,91,83,72,68,82,32,73,68,32,37,105,93,32,83,104,97,100,101,114,32,112,114,111,103,114,97,109,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,68,79,87,78,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,32,40,37,105,120,37,105,41,32,105,115,32,98,105,103,103,101,114,32,116,104,97,110,32,100,105,115,112,108,97,121,32,115,105,122,101,32,40,37,105,120,37,105,41,0,68,111,119,110,115,99,97,108,101,32,109,97,116,114,105,120,32,103,101,110,101,114,97,116,101,100,44,32,99,111,110,116,101,110,116,32,119,105,108,108,32,98,101,32,114,101,110,100,101,114,101,100,32,97,116,58,32,37,105,32,120,32,37,105,0,85,80,83,67,65,76,73,78,71,58,32,82,101,113,117,105,114,101,100,32,115,99,114,101,101,110,32,115,105,122,101,58,32,37,105,32,120,32,37,105,32,45,62,32,68,105,115,112,108,97,121,32,115,105,122,101,58,32,37,105,32,120,32,37,105,0,91,71,76,70,87,51,32,69,114,114,111,114,93,32,67,111,100,101,58,32,37,105,32,68,101,99,114,105,112,116,105,111,110,58,32,37,115,0,73,78,70,79,58,32,0,87,65,82,78,73,78,71,58,32,0,87,105,110,100,111,119,32,99,108,111,115,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,40,98,97,115,101,32,119,104,105,116,101,32,116,101,120,116,117,114,101,41,32,102,114,111,109,32,86,82,65,77,0,91,84,69,88,32,73,68,32,37,105,93,32,85,110,108,111,97,100,101,100,32,116,101,120,116,117,114,101,32,100,97,116,97,32,102,114,111,109,32,86,82,65,77,32,40,71,80,85,41,0,83,116,97,99,107,32,66,117,102,102,101,114,32,79,118,101,114,102,108,111,119,32,40,77,65,88,32,37,105,32,77,97,116,114,105,120,41,0,77,65,88,95,76,73,78,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,84,82,73,65,78,71,76,69,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,77,65,88,95,81,85,65,68,83,95,66,65,84,67,72,32,111,118,101,114,102,108,111,119,0,67,108,97,109,112,32,109,105,114,114,111,114,32,119,114,97,112,32,109,111,100,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,77,97,120,105,109,117,109,32,97,110,105,115,111,116,114,111,112,105,99,32,102,105,108,116,101,114,32,108,101,118,101,108,32,115,117,112,112,111,114,116,101,100,32,105,115,32,37,105,88,0,65,110,105,115,111,116,114,111,112,105,99,32,102,105,108,116,101,114,105,110,103,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,91,84,69,88,32,73,68,32,37,105,93,32,77,105,112,109,97,112,115,32,103,101,110,101,114,97,116,101,100,32,97,117,116,111,109,97,116,105,99,97,108,108,121,0,91,84,69,88,32,73,68,32,37,105,93,32,77,105,112,109,97,112,115,32,99,97,110,32,110,111,116,32,98,101,32,103,101,110,101,114,97,116,101,100,0,76,105,109,105,116,101,100,32,78,80,79,84,32,115,117,112,112,111,114,116,44,32,110,111,32,109,105,112,109,97,112,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,78,80,79,84,32,116,101,120,116,117,114,101,115,0,91,84,69,88,32,73,68,32,37,105,93,32,78,111,32,109,105,112,109,97,112,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,84,82,73,76,73,78,69,65,82,32,116,101,120,116,117,114,101,32,102,105,108,116,101,114,105,110,103,0,46,116,116,102,0,85,110,108,111,97,100,101,100,32,115,112,114,105,116,101,32,102,111,110,116,32,100,97,116,97,0,91,37,115,93,32,83,112,114,105,116,101,70,111,110,116,32,99,111,117,108,100,32,110,111,116,32,98,101,32,103,101,110,101,114,97,116,101,100,44,32,117,115,105,110,103,32,100,101,102,97,117,108,116,32,102,111,110,116,0,84,84,70,32,115,112,114,105,116,101,102,111,110,116,32,108,111,97,100,105,110,103,58,32,80,114,101,100,105,99,116,101,100,32,116,101,120,116,117,114,101,32,115,105,122,101,58,32,37,105,120,37,105,0,114,98,0,91,37,115,93,32,84,84,70,32,102,105,108,101,32,99,111,117,108,100,32,110,111,116,32,98,101,32,111,112,101,110,101,100,0,84,84,70,32,115,112,114,105,116,101,102,111,110,116,32,108,111,97,100,105,110,103,58,32,102,105,114,115,116,32,99,104,97,114,97,99,116,101,114,32,105,115,32,110,111,116,32,83,80,65,67,69,40,51,50,41,32,99,104,97,114,97,99,116,101,114,0,84,84,70,32,115,112,114,105,116,101,102,111,110,116,32,108,111,97,100,105,110,103,58,32,78,111,116,32,97,108,108,32,116,104,101,32,99,104,97,114,97,99,116,101,114,115,32,102,105,116,32,105,110,32,116,104,101,32,102,111,110,116,0,120,43,103,119,32,60,32,112,119,0,46,47,101,120,116,101,114,110,97,108,47,115,116,98,95,116,114,117,101,116,121,112,101,46,104,0,115,116,98,116,116,95,66,97,107,101,70,111,110,116,66,105,116,109,97,112,95,105,110,116,101,114,110,97,108,0,122,45,62,100,105,114,101,99,116,105,111,110,0,115,116,98,116,116,95,95,114,97,115,116,101,114,105,122,101,95,115,111,114,116,101,100,95,101,100,103,101,115,0,122,45,62,101,121,32,62,61,32,115,99,97,110,95,121,95,116,111,112,0,101,45,62,101,121,32,62,61,32,121,95,116,111,112,0,115,116,98,116,116,95,95,102,105,108,108,95,97,99,116,105,118,101,95,101,100,103,101,115,95,110,101,119,0,101,45,62,115,121,32,60,61,32,121,95,98,111,116,116,111,109,32,38,38,32,101,45,62,101,121,32,62,61,32,121,95,116,111,112,0,120,32,62,61,32,48,32,38,38,32,120,32,60,32,108,101,110,0,102,97,98,115,40,97,114,101,97,41,32,60,61,32,49,46,48,49,102,0,121,48,32,60,32,121,49,0,115,116,98,116,116,95,95,104,97,110,100,108,101,95,99,108,105,112,112,101,100,95,101,100,103,101,0,101,45,62,115,121,32,60,61,32,101,45,62,101,121,0,120,49,32,60,61,32,120,43,49,0,120,49,32,62,61,32,120,0,120,49,32,60,61,32,120,0,120,49,32,62,61,32,120,43,49,0,120,49,32,62,61,32,120,32,38,38,32,120,49,32,60,61,32,120,43,49,0,120,48,32,62,61,32,120,32,38,38,32,120,48,32,60,61,32,120,43,49,32,38,38,32,120,49,32,62,61,32,120,32,38,38,32,120,49,32,60,61,32,120,43,49,0,122,32,33,61,32,40,40,118,111,105,100,42,41,48,41,0,115,116,98,116,116,95,95,110,101,119,95,97,99,116,105,118,101,0,33,105,110,102,111,45,62,99,102,102,46,115,105,122,101,0,115,116,98,116,116,95,95,71,101,116,71,108,121,102,79,102,102,115,101,116,0,48,0,115,116,98,116,116,95,95,99,102,102,95,105,110,116,0,110,32,62,61,32,49,32,38,38,32,110,32,60,61,32,52,0,115,116,98,116,116,95,95,98,117,102,95,103,101,116,0,115,105,122,101,32,60,32,48,120,52,48,48,48,48,48,48,48,0,115,116,98,116,116,95,95,110,101,119,95,98,117,102,0,33,40,111,32,62,32,98,45,62,115,105,122,101,32,124,124,32,111,32,60,32,48,41,0,115,116,98,116,116,95,95,98,117,102,95,115,101,101,107,0,111,102,102,115,105,122,101,32,62,61,32,49,32,38,38,32,111,102,102,115,105,122,101,32,60,61,32,52,0,115,116,98,116,116,95,95,99,102,102,95,103,101,116,95,105,110,100,101,120,0,98,48,32,62,61,32,50,56,0,115,116,98,116,116,95,95,99,102,102,95,115,107,105,112,95,111,112,101,114,97,110,100,0,105,32,62,61,32,48,32,38,38,32,105,32,60,32,99,111,117,110,116,0,115,116,98,116,116,95,95,99,102,102,95,105,110,100,101,120,95,103,101,116,0,111,117,116,112,117,116,95,99,116,120,46,110,117,109,95,118,101,114,116,105,99,101,115,32,61,61,32,99,111,117,110,116,95,99,116,120,46,110,117,109,95,118,101,114,116,105,99,101,115,0,115,116,98,116,116,95,95,71,101,116,71,108,121,112,104,83,104,97,112,101,84,50,0,115,116,98,116,116,95,95,71,101,116,71,108,121,112,104,83,104,97,112,101,84,84,0,115,116,98,116,116,95,70,105,110,100,71,108,121,112,104,73,110,100,101,120,0,117,110,105,99,111,100,101,95,99,111,100,101,112,111,105,110,116,32,60,61,32,116,116,85,83,72,79,82,84,40,100,97,116,97,32,43,32,101,110,100,67,111,117,110,116,32,43,32,50,42,105,116,101,109,41,0,99,109,97,112,0,108,111,99,97,0,104,101,97,100,0,103,108,121,102,0,104,104,101,97,0,104,109,116,120,0,107,101], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
+/* memory initializer */ allocate([114,110,0,67,70,70,32,0,109,97,120,112,0,69,88,84,0,65,82,66,0,79,69,83,0,65,78,71,76,69,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,80,114,111,103,114,97,109,0,103,108,85,115,101,80,114,111,103,114,97,109,79,98,106,101,99,116,0,103,108,85,115,101,80,114,111,103,114,97,109,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,79,98,106,101,99,116,0,103,108,67,114,101,97,116,101,83,104,97,100,101,114,0,103,108,65,116,116,97,99,104,79,98,106,101,99,116,0,103,108,65,116,116,97,99,104,83,104,97,100,101,114,0,103,108,68,101,116,97,99,104,79,98,106,101,99,116,0,103,108,68,101,116,97,99,104,83,104,97,100,101,114,0,103,108,80,105,120,101,108,83,116,111,114,101,105,0,103,108,71,101,116,83,116,114,105,110,103,0,103,108,71,101,116,73,110,116,101,103,101,114,118,0,103,108,71,101,116,70,108,111,97,116,118,0,103,108,71,101,116,66,111,111,108,101,97,110,118,0,103,108,71,101,110,84,101,120,116,117,114,101,115,0,103,108,68,101,108,101,116,101,84,101,120,116,117,114,101,115,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,109,112,114,101,115,115,101,100,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,84,101,120,73,109,97,103,101,50,68,0,103,108,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,82,101,97,100,80,105,120,101,108,115,0,103,108,66,105,110,100,84,101,120,116,117,114,101,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,71,101,116,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,118,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,84,101,120,116,117,114,101,0,103,108,71,101,110,66,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,66,117,102,102,101,114,115,0,103,108,71,101,116,66,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,66,117,102,102,101,114,68,97,116,97,0,103,108,66,117,102,102,101,114,83,117,98,68,97,116,97,0,103,108,73,115,66,117,102,102,101,114,0,103,108,71,101,110,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,82,101,110,100,101,114,98,117,102,102,101,114,115,0,103,108,66,105,110,100,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,82,101,110,100,101,114,98,117,102,102,101,114,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,71,101,116,85,110,105,102,111,114,109,102,118,0,103,108,71,101,116,85,110,105,102,111,114,109,105,118,0,103,108,71,101,116,85,110,105,102,111,114,109,76,111,99,97,116,105,111,110,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,102,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,105,118,0,103,108,71,101,116,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,118,0,103,108,71,101,116,65,99,116,105,118,101,85,110,105,102,111,114,109,0,103,108,85,110,105,102,111,114,109,49,102,0,103,108,85,110,105,102,111,114,109,50,102,0,103,108,85,110,105,102,111,114,109,51,102,0,103,108,85,110,105,102,111,114,109,52,102,0,103,108,85,110,105,102,111,114,109,49,105,0,103,108,85,110,105,102,111,114,109,50,105,0,103,108,85,110,105,102,111,114,109,51,105,0,103,108,85,110,105,102,111,114,109,52,105,0,103,108,85,110,105,102,111,114,109,49,105,118,0,103,108,85,110,105,102,111,114,109,50,105,118,0,103,108,85,110,105,102,111,114,109,51,105,118,0,103,108,85,110,105,102,111,114,109,52,105,118,0,103,108,85,110,105,102,111,114,109,49,102,118,0,103,108,85,110,105,102,111,114,109,50,102,118,0,103,108,85,110,105,102,111,114,109,51,102,118,0,103,108,85,110,105,102,111,114,109,52,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,50,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,51,102,118,0,103,108,85,110,105,102,111,114,109,77,97,116,114,105,120,52,102,118,0,103,108,66,105,110,100,66,117,102,102,101,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,118,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,118,0,103,108,71,101,116,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,71,101,116,65,99,116,105,118,101,65,116,116,114,105,98,0,103,108,68,101,108,101,116,101,83,104,97,100,101,114,0,103,108,71,101,116,65,116,116,97,99,104,101,100,83,104,97,100,101,114,115,0,103,108,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,71,101,116,83,104,97,100,101,114,83,111,117,114,99,101,0,103,108,67,111,109,112,105,108,101,83,104,97,100,101,114,0,103,108,71,101,116,83,104,97,100,101,114,73,110,102,111,76,111,103,0,103,108,71,101,116,83,104,97,100,101,114,105,118,0,103,108,71,101,116,80,114,111,103,114,97,109,105,118,0,103,108,73,115,83,104,97,100,101,114,0,103,108,68,101,108,101,116,101,80,114,111,103,114,97,109,0,103,108,71,101,116,83,104,97,100,101,114,80,114,101,99,105,115,105,111,110,70,111,114,109,97,116,0,103,108,76,105,110,107,80,114,111,103,114,97,109,0,103,108,71,101,116,80,114,111,103,114,97,109,73,110,102,111,76,111,103,0,103,108,86,97,108,105,100,97,116,101,80,114,111,103,114,97,109,0,103,108,73,115,80,114,111,103,114,97,109,0,103,108,66,105,110,100,65,116,116,114,105,98,76,111,99,97,116,105,111,110,0,103,108,66,105,110,100,70,114,97,109,101,98,117,102,102,101,114,0,103,108,71,101,110,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,68,101,108,101,116,101,70,114,97,109,101,98,117,102,102,101,114,115,0,103,108,70,114,97,109,101,98,117,102,102,101,114,82,101,110,100,101,114,98,117,102,102,101,114,0,103,108,70,114,97,109,101,98,117,102,102,101,114,84,101,120,116,117,114,101,50,68,0,103,108,71,101,116,70,114,97,109,101,98,117,102,102,101,114,65,116,116,97,99,104,109,101,110,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,73,115,70,114,97,109,101,98,117,102,102,101,114,0,103,108,68,101,108,101,116,101,79,98,106,101,99,116,0,103,108,71,101,116,79,98,106,101,99,116,80,97,114,97,109,101,116,101,114,105,118,0,103,108,71,101,116,73,110,102,111,76,111,103,0,103,108,66,105,110,100,80,114,111,103,114,97,109,0,103,108,71,101,116,80,111,105,110,116,101,114,118,0,103,108,68,114,97,119,82,97,110,103,101,69,108,101,109,101,110,116,115,0,103,108,69,110,97,98,108,101,67,108,105,101,110,116,83,116,97,116,101,0,103,108,86,101,114,116,101,120,80,111,105,110,116,101,114,0,103,108,84,101,120,67,111,111,114,100,80,111,105,110,116,101,114,0,103,108,78,111,114,109,97,108,80,111,105,110,116,101,114,0,103,108,67,111,108,111,114,80,111,105,110,116,101,114,0,103,108,67,108,105,101,110,116,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,71,101,110,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,68,101,108,101,116,101,86,101,114,116,101,120,65,114,114,97,121,115,0,103,108,66,105,110,100,86,101,114,116,101,120,65,114,114,97,121,0,103,108,77,97,116,114,105,120,77,111,100,101,0,103,108,76,111,97,100,73,100,101,110,116,105,116,121,0,103,108,76,111,97,100,77,97,116,114,105,120,102,0,103,108,70,114,117,115,116,117,109,0,103,108,82,111,116,97,116,101,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,80,111,105,110,116,101,114,0,103,108,69,110,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,105,115,97,98,108,101,86,101,114,116,101,120,65,116,116,114,105,98,65,114,114,97,121,0,103,108,68,114,97,119,65,114,114,97,121,115,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,0,103,108,83,104,97,100,101,114,66,105,110,97,114,121,0,103,108,82,101,108,101,97,115,101,83,104,97,100,101,114,67,111,109,112,105,108,101,114,0,103,108,71,101,116,69,114,114,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,68,105,118,105,115,111,114,0,103,108,68,114,97,119,65,114,114,97,121,115,73,110,115,116,97,110,99,101,100,0,103,108,68,114,97,119,69,108,101,109,101,110,116,115,73,110,115,116,97,110,99,101,100,0,103,108,70,105,110,105,115,104,0,103,108,70,108,117,115,104,0,103,108,67,108,101,97,114,68,101,112,116,104,0,103,108,67,108,101,97,114,68,101,112,116,104,102,0,103,108,68,101,112,116,104,70,117,110,99,0,103,108,69,110,97,98,108,101,0,103,108,68,105,115,97,98,108,101,0,103,108,70,114,111,110,116,70,97,99,101,0,103,108,67,117,108,108,70,97,99,101,0,103,108,67,108,101,97,114,0,103,108,76,105,110,101,87,105,100,116,104,0,103,108,67,108,101,97,114,83,116,101,110,99,105,108,0,103,108,68,101,112,116,104,77,97,115,107,0,103,108,83,116,101,110,99,105,108,77,97,115,107,0,103,108,67,104,101,99,107,70,114,97,109,101,98,117,102,102,101,114,83,116,97,116,117,115,0,103,108,71,101,110,101,114,97,116,101,77,105,112,109,97,112,0,103,108,65,99,116,105,118,101,84,101,120,116,117,114,101,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,0,103,108,73,115,69,110,97,98,108,101,100,0,103,108,66,108,101,110,100,70,117,110,99,0,103,108,66,108,101,110,100,69,113,117,97,116,105,111,110,83,101,112,97,114,97,116,101,0,103,108,68,101,112,116,104,82,97,110,103,101,0,103,108,68,101,112,116,104,82,97,110,103,101,102,0,103,108,83,116,101,110,99,105,108,77,97,115,107,83,101,112,97,114,97,116,101,0,103,108,72,105,110,116,0,103,108,80,111,108,121,103,111,110,79,102,102,115,101,116,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,49,102,0,103,108,83,97,109,112,108,101,67,111,118,101,114,97,103,101,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,105,0,103,108,84,101,120,80,97,114,97,109,101,116,101,114,102,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,50,102,0,103,108,83,116,101,110,99,105,108,70,117,110,99,0,103,108,83,116,101,110,99,105,108,79,112,0,103,108,86,105,101,119,112,111,114,116,0,103,108,67,108,101,97,114,67,111,108,111,114,0,103,108,83,99,105,115,115,111,114,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,51,102,0,103,108,67,111,108,111,114,77,97,115,107,0,103,108,82,101,110,100,101,114,98,117,102,102,101,114,83,116,111,114,97,103,101,0,103,108,66,108,101,110,100,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,66,108,101,110,100,67,111,108,111,114,0,103,108,83,116,101,110,99,105,108,70,117,110,99,83,101,112,97,114,97,116,101,0,103,108,83,116,101,110,99,105,108,79,112,83,101,112,97,114,97,116,101,0,103,108,86,101,114,116,101,120,65,116,116,114,105,98,52,102,0,103,108,67,111,112,121,84,101,120,73,109,97,103,101,50,68,0,103,108,67,111,112,121,84,101,120,83,117,98,73,109,97,103,101,50,68,0,103,108,68,114,97,119,66,117,102,102,101,114,115,0,123,32,77,111,100,117,108,101,46,112,114,105,110,116,69,114,114,40,39,98,97,100,32,110,97,109,101,32,105,110,32,103,101,116,80,114,111,99,65,100,100,114,101,115,115,58,32,39,32,43,32,91,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,48,41,44,32,80,111,105,110,116,101,114,95,115,116,114,105,110,103,105,102,121,40,36,49,41,93,41,59,32,125,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,114,119,97,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
@@ -3351,13 +3593,3061 @@ function copyTempDouble(ptr) {
}
- var SYSCALLS={varargs:0,get:function (varargs) {
+
+
+ var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};
+
+ var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};
+
+ function ___setErrNo(value) {
+ if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
+ else Module.printErr('failed to set errno from JS');
+ return value;
+ }
+
+ 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 isPosixPlatform = (process.platform != 'win32'); // Node doesn't offer a direct check, so test by exclusion
+
+ var fd = process.stdin.fd;
+ if (isPosixPlatform) {
+ // 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) {}
+ }
+
+ try {
+ bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null);
+ } catch(e) {
+ // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes,
+ // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0.
+ if (e.toString().indexOf('EOF') != -1) bytesRead = 0;
+ else throw e;
+ }
+
+ if (usingDevice) { fs.closeSync(fd); }
+ if (bytesRead > 0) {
+ result = buf.slice(0, bytesRead).toString('utf-8');
+ } else {
+ result = null;
+ }
+
+ } else if (typeof window != 'undefined' &&
+ typeof window.prompt == 'function') {
+ // 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.length 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.length : 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) {
+ 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);
+ }
+ if (!req) {
+ return callback("Unable to connect to IndexedDB");
+ }
+ req.onupgradeneeded = function(e) {
+ var db = e.target.result;
+ var transaction = e.target.transaction;
+
+ var fileStore;
+
+ if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
+ fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
+ } else {
+ fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
+ }
+
+ if (!fileStore.indexNames.contains('timestamp')) {
+ fileStore.createIndex('timestamp', 'timestamp', { unique: false });
+ }
+ };
+ req.onsuccess = function() {
+ db = req.result;
+
+ // 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 &= ~0x200000 /*O_PATH*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
+ flags &= ~0x800 /*O_NONBLOCK*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
+ flags &= ~0x8000 /*O_LARGEFILE*/; // Ignore this flag from musl, otherwise node.js fails to open the file.
+ flags &= ~0x80000 /*O_CLOEXEC*/; // Some applications may pass it; it makes no sense for a single process.
+ 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('/');
+ // Issue 4254: Using curr as a node name will prevent the node
+ // from being found in FS.nameTable when FS.open is called on
+ // a path which holds a child of this node,
+ // given that all FS functions assume node names
+ // are just their corresponding parts within their given path,
+ // rather than incremental aggregates which include their parent's
+ // directories.
+ if (!createdParents[curr]) {
+ createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0);
+ }
+ parent = createdParents[curr];
+ }
+ return parent;
+ }
+ function base(path) {
+ var parts = path.split('/');
+ return parts[parts.length-1];
+ }
+ // 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) {
+ var entries = ['.', '..'];
+ for (var key in node.contents) {
+ if (!node.contents.hasOwnProperty(key)) {
+ continue;
+ }
+ entries.push(key);
+ }
+ return entries;
+ },symlink:function (parent, newName, oldPath) {
+ throw new FS.ErrnoError(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=STATICTOP; STATICTOP += 16;;
+
+ var _stdout=STATICTOP; STATICTOP += 16;;
+
+ var _stderr=STATICTOP; STATICTOP += 16;;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function (e) {
+ if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
+ return ___setErrNo(e.errno);
+ },lookupPath:function (path, opts) {
+ path = PATH.resolve(FS.cwd(), path);
+ opts = opts || {};
+
+ if (!path) return { path: '', node: null };
+
+ var defaults = {
+ follow_mount: true,
+ recurse_count: 0
+ };
+ for (var key in defaults) {
+ if (opts[key] === undefined) {
+ opts[key] = defaults[key];
+ }
+ }
+
+ if (opts.recurse_count > 8) { // 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 (FS.flagsToPermissionString(flags) !== 'r' || // opening for write
+ (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only)
+ 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;
+ }
+
+ FS.syncFSRequests++;
+
+ if (FS.syncFSRequests > 1) {
+ console.log('warning: ' + FS.syncFSRequests + ' FS.syncfs operations in flight at once, probably just doing extra work');
+ }
+
+ var mounts = FS.getMounts(FS.root.mount);
+ var completed = 0;
+
+ function doCallback(err) {
+ assert(FS.syncFSRequests > 0);
+ FS.syncFSRequests--;
+ return callback(err);
+ }
+
+ function done(err) {
+ if (err) {
+ if (!done.errored) {
+ done.errored = true;
+ return doCallback(err);
+ }
+ return;
+ }
+ if (++completed >= mounts.length) {
+ doCallback(null);
+ }
+ };
+
+ // 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);
+ },mkdirTree:function (path, mode) {
+ var dirs = path.split('/');
+ var d = '';
+ for (var i = 0; i < dirs.length; ++i) {
+ if (!dirs[i]) continue;
+ d += '/' + dirs[i];
+ try {
+ FS.mkdir(d, mode);
+ } catch(e) {
+ if (e.errno != ERRNO_CODES.EEXIST) throw e;
+ }
+ }
+ },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) {
+ // According to POSIX, we should map EISDIR to EPERM, but
+ // we instead do what Linux does (and we must, as we use
+ // the musl linux libc).
+ 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 (lookup.node === null) {
+ throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
+ }
+ 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 | 511 /* 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 usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
+
+ 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];
+ });
+
+ if (usesGzip || !datalength) {
+ // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
+ chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file
+ datalength = this.getter(0).length;
+ chunkSize = datalength;
+ console.log("LazyFiles on gzip forces download of the whole file when length is accessed");
+ }
+
+ this._length = datalength;
+ this._chunkSize = chunkSize;
+ this.lengthKnown = true;
+ }
+ if (typeof XMLHttpRequest !== 'undefined') {
+ if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
+ var lazyArray = new LazyUint8Array();
+ Object.defineProperties(lazyArray, {
+ length: {
+ get: function() {
+ if(!this.lengthKnown) {
+ this.cacheLength();
+ }
+ return this._length;
+ }
+ },
+ chunkSize: {
+ get: function() {
+ if(!this.lengthKnown) {
+ this.cacheLength();
+ }
+ return this._chunkSize;
+ }
+ }
+ });
+
+ var properties = { isDevice: false, contents: lazyArray };
+ } else {
+ var properties = { isDevice: false, url: url };
+ }
+
+ var node = FS.createFile(parent, name, properties, canRead, canWrite);
+ // 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.defineProperties(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(); // XXX perhaps this method should move onto Browser?
+ // 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);
+
+ var len = Math.min(bufsize, lengthBytesUTF8(ret));
+ var endChar = HEAP8[buf+len];
+ stringToUTF8(ret, buf, bufsize+1);
+ // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!)
+ // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write.
+ HEAP8[buf+len] = endChar;
+
+ return len;
+ },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);
@@ -3368,7 +6658,38 @@ function copyTempDouble(ptr) {
}};function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs;
try {
// ioctl
- return 0;
+ 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);
+ }
+ case 21523: {
+ // TODO: in theory we should write to the winsize struct that gets
+ // passed in, but for now musl doesn't read anything on it
+ if (!stream.tty) return -ERRNO_CODES.ENOTTY;
+ return 0;
+ }
+ default: abort('bad ioctl syscall ' + op);
+ }
} catch (e) {
if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);
return -e.errno;
@@ -3419,6 +6740,71 @@ function copyTempDouble(ptr) {
function _emscripten_glViewport(x0, x1, x2, x3) { GLctx['viewport'](x0, x1, x2, x3) }
+ function _emscripten_memcpy_big(dest, src, num) {
+ HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
+ return dest;
+ }
+ Module["_memcpy"] = _memcpy;
+
+ function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) }
+
+ function _emscripten_glTexParameterfv(target, pname, params) {
+ var param = HEAPF32[((params)>>2)];
+ GLctx.texParameterf(target, pname, param);
+ }
+
+ function _emscripten_glLinkProgram(program) {
+ GLctx.linkProgram(GL.programs[program]);
+ GL.programInfos[program] = null; // uniforms no longer keep the same names after linking
+ GL.populateUniformTable(program);
+ }
+
+ function _emscripten_glUniform3f(location, v0, v1, v2) {
+ GLctx.uniform3f(GL.uniforms[location], v0, v1, v2);
+ }
+
+ function _emscripten_glGetObjectParameterivARB() {
+ Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1);
+ }
+
+ function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) }
+
+ function _emscripten_glUniform3i(location, v0, v1, v2) {
+ GLctx.uniform3i(GL.uniforms[location], v0, v1, v2);
+ }
+
+ function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) }
+
+ function _glCreateShader(shaderType) {
+ var id = GL.getNewId(GL.shaders);
+ GL.shaders[id] = GLctx.createShader(shaderType);
+ return id;
+ }
+
+ function _glUniform1i(location, v0) {
+ GLctx.uniform1i(GL.uniforms[location], v0);
+ }
+
+ function _emscripten_glBindAttribLocation(program, index, name) {
+ name = Pointer_stringify(name);
+ GLctx.bindAttribLocation(GL.programs[program], index, name);
+ }
+
+ function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) {
+ GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null);
+ }
+
+ function _glDisable(x0) { GLctx['disable'](x0) }
+
+ function _emscripten_glEnableVertexAttribArray(index) {
+ GLctx.enableVertexAttribArray(index);
+ }
+
+
+ Module["_memset"] = _memset;
+
+ function _glfwMakeContextCurrent(winid) {}
+
var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,lastGamepadState:null,lastGamepadStateFrame:null,numGamepadsConnected:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,staticInit:function () {
if (typeof window !== 'undefined') {
@@ -4332,96 +7718,7 @@ function copyTempDouble(ptr) {
useCapture: useCapture
};
JSEvents.registerOrRemoveHandler(eventHandler);
- }};function __emscripten_sample_gamepad_data() {
- // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected.
- if (!JSEvents.numGamepadsConnected) return;
-
- // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation.
- if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) {
- JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null);
- JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber;
- }
- }function _emscripten_get_gamepad_status(index, gamepadState) {
- __emscripten_sample_gamepad_data();
- if (!JSEvents.lastGamepadState) return -1;
-
- // INVALID_PARAM is returned on a Gamepad index that never was there.
- if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5;
-
- // NO_DATA is returned on a Gamepad index that was removed.
- // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index.
- // This is because gamepads must keep their original position in the array.
- // For example, removing the first of two gamepads produces [null/undefined/false, gamepad].
- if (!JSEvents.lastGamepadState[index]) return -7;
-
- JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]);
- return 0;
- }
-
- function _emscripten_glCopyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7) { GLctx['copyTexImage2D'](x0, x1, x2, x3, x4, x5, x6, x7) }
-
- function _emscripten_glTexParameterfv(target, pname, params) {
- var param = HEAPF32[((params)>>2)];
- GLctx.texParameterf(target, pname, param);
- }
-
- function _emscripten_glLinkProgram(program) {
- GLctx.linkProgram(GL.programs[program]);
- GL.programInfos[program] = null; // uniforms no longer keep the same names after linking
- GL.populateUniformTable(program);
- }
-
- function _emscripten_glUniform3f(location, v0, v1, v2) {
- GLctx.uniform3f(GL.uniforms[location], v0, v1, v2);
- }
-
- function _emscripten_glGetObjectParameterivARB() {
- Module['printErr']('missing function: emscripten_glGetObjectParameterivARB'); abort(-1);
- }
-
- function _emscripten_glBlendFunc(x0, x1) { GLctx['blendFunc'](x0, x1) }
-
- function _emscripten_glUniform3i(location, v0, v1, v2) {
- GLctx.uniform3i(GL.uniforms[location], v0, v1, v2);
- }
-
- function _emscripten_glStencilOp(x0, x1, x2) { GLctx['stencilOp'](x0, x1, x2) }
-
- function _glCreateShader(shaderType) {
- var id = GL.getNewId(GL.shaders);
- GL.shaders[id] = GLctx.createShader(shaderType);
- return id;
- }
-
- function _glUniform1i(location, v0) {
- GLctx.uniform1i(GL.uniforms[location], v0);
- }
-
- function _emscripten_glBindAttribLocation(program, index, name) {
- name = Pointer_stringify(name);
- GLctx.bindAttribLocation(GL.programs[program], index, name);
- }
-
- function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) {
- GLctx['compressedTexImage2D'](target, level, internalFormat, width, height, border, data ? HEAPU8.subarray((data),(data+imageSize)) : null);
- }
-
- function _glDisable(x0) { GLctx['disable'](x0) }
-
- function _emscripten_glEnableVertexAttribArray(index) {
- GLctx.enableVertexAttribArray(index);
- }
-
-
- Module["_memset"] = _memset;
-
- function _IsFileDropped() {
- Module['printErr']('missing function: IsFileDropped'); abort(-1);
- }
-
- function _glfwMakeContextCurrent(winid) {}
-
- function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) {
+ }};function _emscripten_set_touchcancel_callback(target, userData, useCapture, callbackfunc) {
JSEvents.registerTouchEventCallback(target, userData, useCapture, callbackfunc, 25, "touchcancel");
return 0;
}
@@ -4617,6 +7914,18 @@ function copyTempDouble(ptr) {
GLctx.uniformMatrix2fv(GL.uniforms[location], !!transpose, view);
}
+ 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 ___syscall6(which, varargs) {SYSCALLS.varargs = varargs;
try {
// close
@@ -4708,31 +8017,8 @@ function copyTempDouble(ptr) {
function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs;
try {
// writev
- // hack to support printf in NO_FILESYSTEM
- var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get();
- var ret = 0;
- if (!___syscall146.buffer) {
- ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr
- ___syscall146.printChar = function(stream, curr) {
- var buffer = ___syscall146.buffers[stream];
- assert(buffer);
- if (curr === 0 || curr === 10) {
- (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0));
- buffer.length = 0;
- } else {
- buffer.push(curr);
- }
- };
- }
- for (var i = 0; i < iovcnt; i++) {
- var ptr = HEAP32[(((iov)+(i*8))>>2)];
- var len = HEAP32[(((iov)+(i*8 + 4))>>2)];
- for (var j = 0; j < len; j++) {
- ___syscall146.printChar(stream, HEAPU8[ptr+j]);
- }
- ret += len;
- }
- return ret;
+ 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;
@@ -4743,6 +8029,17 @@ function copyTempDouble(ptr) {
GLctx.uniform1i(GL.uniforms[location], v0);
}
+ 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;
+ }
+ }
+
function _emscripten_glStencilMask(x0) { GLctx['stencilMask'](x0) }
function _emscripten_glStencilFuncSeparate(x0, x1, x2, x3) { GLctx['stencilFuncSeparate'](x0, x1, x2, x3) }
@@ -4778,7 +8075,17 @@ function copyTempDouble(ptr) {
function _emscripten_glDepthFunc(x0) { GLctx['depthFunc'](x0) }
- function _emscripten_get_num_gamepads() {
+
+ function __emscripten_sample_gamepad_data() {
+ // Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected.
+ if (!JSEvents.numGamepadsConnected) return;
+
+ // Produce a new Gamepad API sample if we are ticking a new game frame, or if not using emscripten_set_main_loop() at all to drive animation.
+ if (Browser.mainLoop.currentFrameNumber !== JSEvents.lastGamepadStateFrame || !Browser.mainLoop.currentFrameNumber) {
+ JSEvents.lastGamepadState = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : null);
+ JSEvents.lastGamepadStateFrame = Browser.mainLoop.currentFrameNumber;
+ }
+ }function _emscripten_get_num_gamepads() {
// Polling gamepads generates garbage, so don't do it when we know there are no gamepads connected.
if (!JSEvents.numGamepadsConnected) return 0;
@@ -4787,6 +8094,18 @@ function copyTempDouble(ptr) {
return JSEvents.lastGamepadState.length;
}
+ function _glGetProgramInfoLog(program, maxLength, length, infoLog) {
+ var log = GLctx.getProgramInfoLog(GL.programs[program]);
+ if (log === null) log = '(unknown error)';
+
+ if (maxLength > 0 && infoLog) {
+ var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength);
+ if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull;
+ } else {
+ if (length) HEAP32[((length)>>2)]=0;
+ }
+ }
+
function _emscripten_glUniform4iv(location, count, value) {
@@ -5174,6 +8493,7 @@ function copyTempDouble(ptr) {
GLctx.depthMask(!!flag);
}
+
function _emscripten_glDepthRangef(x0, x1) { GLctx['depthRange'](x0, x1) }
function _emscripten_glDepthRange(x0, x1) { GLctx['depthRange'](x0, x1) }
@@ -5477,12 +8797,6 @@ function copyTempDouble(ptr) {
win.shouldClose = value;
}
- function _glfwWindowShouldClose(winid) {
- var win = GLFW.WindowFromId(winid);
- if (!win) return 0;
- return win.shouldClose;
- }
-
function _emscripten_glClientActiveTexture() {
Module['printErr']('missing function: emscripten_glClientActiveTexture'); abort(-1);
}
@@ -5502,12 +8816,22 @@ function copyTempDouble(ptr) {
}
}
+ function _emscripten_get_gamepad_status(index, gamepadState) {
+ __emscripten_sample_gamepad_data();
+ if (!JSEvents.lastGamepadState) return -1;
- function _emscripten_memcpy_big(dest, src, num) {
- HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
- return dest;
- }
- Module["_memcpy"] = _memcpy;
+ // INVALID_PARAM is returned on a Gamepad index that never was there.
+ if (index < 0 || index >= JSEvents.lastGamepadState.length) return -5;
+
+ // NO_DATA is returned on a Gamepad index that was removed.
+ // For previously disconnected gamepads there should be an empty slot (null/undefined/false) at the index.
+ // This is because gamepads must keep their original position in the array.
+ // For example, removing the first of two gamepads produces [null/undefined/false, gamepad].
+ if (!JSEvents.lastGamepadState[index]) return -7;
+
+ JSEvents.fillGamepadEventData(gamepadState, JSEvents.lastGamepadState[index]);
+ return 0;
+ }
function _emscripten_glGetShaderInfoLog(shader, maxLength, length, infoLog) {
var log = GLctx.getShaderInfoLog(GL.shaders[shader]);
@@ -5534,8 +8858,6 @@ function copyTempDouble(ptr) {
HEAP32[((params)>>2)]=GLctx.getRenderbufferParameter(target, pname);
}
- function _glfwWaitEvents() {}
-
function _emscripten_glStencilOpSeparate(x0, x1, x2, x3) { GLctx['stencilOpSeparate'](x0, x1, x2, x3) }
function _emscripten_glReadPixels(x, y, width, height, format, type, pixels) {
@@ -5589,10 +8911,6 @@ function copyTempDouble(ptr) {
}
}
- function _ClearDroppedFiles() {
- Module['printErr']('missing function: ClearDroppedFiles'); abort(-1);
- }
-
function _emscripten_glVertexAttrib4f(x0, x1, x2, x3, x4) { GLctx['vertexAttrib4f'](x0, x1, x2, x3, x4) }
function _glDepthFunc(x0) { GLctx['depthFunc'](x0) }
@@ -6125,12 +9443,7 @@ function copyTempDouble(ptr) {
}
}
-
- function ___setErrNo(value) {
- if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
- else Module.printErr('failed to set errno from JS');
- return value;
- }
+
Module["_sbrk"] = _sbrk;
@@ -6171,16 +9484,9 @@ function copyTempDouble(ptr) {
GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData);
}
- function _glGetProgramInfoLog(program, maxLength, length, infoLog) {
- var log = GLctx.getProgramInfoLog(GL.programs[program]);
- if (log === null) log = '(unknown error)';
-
- if (maxLength > 0 && infoLog) {
- var numBytesWrittenExclNull = stringToUTF8(log, infoLog, maxLength);
- if (length) HEAP32[((length)>>2)]=numBytesWrittenExclNull;
- } else {
- if (length) HEAP32[((length)>>2)]=0;
- }
+ 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 _emscripten_glVertexAttribDivisor(index, divisor) {
@@ -6351,14 +9657,14 @@ function copyTempDouble(ptr) {
}
}
- function _GetDroppedFiles() {
- Module['printErr']('missing function: GetDroppedFiles'); abort(-1);
- }
-
function _glfwGetKey(winid, key) {
return GLFW.getKey(winid, key);
}
+ function _emscripten_glCompileShader(shader) {
+ GLctx.compileShader(GL.shaders[shader]);
+ }
+
function _emscripten_glGenVertexArrays(n, arrays) {
for (var i = 0; i < n; i++) {
@@ -6387,9 +9693,59 @@ function copyTempDouble(ptr) {
emscriptenWebGLGet(name_, p, 'Boolean');
}
- function _emscripten_glCompileShader(shader) {
- GLctx.compileShader(GL.shaders[shader]);
- }
+ 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;
+ }
+ }
var GLctx; GL.init();
if (ENVIRONMENT_IS_NODE) {
_emscripten_get_now = function _emscripten_get_now_actual() {
@@ -6413,8 +9769,10 @@ Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, res
Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() };
Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() }
Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) };
+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(); };
JSEvents.staticInit();;
-/* flush anything remaining in the buffer during shutdown */ __ATEXIT__.push(function() { var fflush = Module["_fflush"]; if (fflush) fflush(0); var printChar = ___syscall146.printChar; if (!printChar) return; var buffers = ___syscall146.buffers; if (buffers[1].length) printChar(1, 10); if (buffers[2].length) printChar(2, 10); });;
DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC);
STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
@@ -6695,22 +10053,31 @@ function invoke_viiii(index,a1,a2,a3,a4) {
}
}
-Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity };
+Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength };
-Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_glCreateShader": _glCreateShader, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_glfwWindowShouldClose": _glfwWindowShouldClose, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_glGenerateMipmap": _glGenerateMipmap, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_GetDroppedFiles": _GetDroppedFiles, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "_llvm_exp2_f32": _llvm_exp2_f32, "_glGenTextures": _glGenTextures, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "___syscall146": ___syscall146, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "___syscall6": ___syscall6, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glDepthRange": _emscripten_glDepthRange, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_emscripten_glFinish": _emscripten_glFinish, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_ClearDroppedFiles": _ClearDroppedFiles, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_glDrawArrays": _glDrawArrays, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_IsFileDropped": _IsFileDropped, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_glfwWaitEvents": _glfwWaitEvents, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glTexParameterf": _glTexParameterf, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 };
+Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_vd": nullFunc_vd, "nullFunc_vid": nullFunc_vid, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_ii": nullFunc_ii, "nullFunc_viddd": nullFunc_viddd, "nullFunc_vidd": nullFunc_vidd, "nullFunc_iiii": nullFunc_iiii, "nullFunc_viiiiiiii": nullFunc_viiiiiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "nullFunc_viii": nullFunc_viii, "nullFunc_vidddd": nullFunc_vidddd, "nullFunc_vdi": nullFunc_vdi, "nullFunc_viiiiiii": nullFunc_viiiiiii, "nullFunc_viiiiiiiii": nullFunc_viiiiiiiii, "nullFunc_iii": nullFunc_iii, "nullFunc_i": nullFunc_i, "nullFunc_vdddddd": nullFunc_vdddddd, "nullFunc_vdddd": nullFunc_vdddd, "nullFunc_vdd": nullFunc_vdd, "nullFunc_v": nullFunc_v, "nullFunc_viid": nullFunc_viid, "nullFunc_viiii": nullFunc_viiii, "invoke_viiiii": invoke_viiiii, "invoke_vd": invoke_vd, "invoke_vid": invoke_vid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_viddd": invoke_viddd, "invoke_vidd": invoke_vidd, "invoke_iiii": invoke_iiii, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viii": invoke_viii, "invoke_vidddd": invoke_vidddd, "invoke_vdi": invoke_vdi, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiii": invoke_viiiiiiiii, "invoke_iii": invoke_iii, "invoke_i": invoke_i, "invoke_vdddddd": invoke_vdddddd, "invoke_vdddd": invoke_vdddd, "invoke_vdd": invoke_vdd, "invoke_v": invoke_v, "invoke_viid": invoke_viid, "invoke_viiii": invoke_viiii, "_emscripten_glGetTexParameterfv": _emscripten_glGetTexParameterfv, "_glUseProgram": _glUseProgram, "_emscripten_glShaderSource": _emscripten_glShaderSource, "_glfwCreateWindow": _glfwCreateWindow, "_emscripten_glReleaseShaderCompiler": _emscripten_glReleaseShaderCompiler, "_emscripten_glBlendFuncSeparate": _emscripten_glBlendFuncSeparate, "_emscripten_glVertexAttribPointer": _emscripten_glVertexAttribPointer, "_emscripten_glGetIntegerv": _emscripten_glGetIntegerv, "_emscripten_glCullFace": _emscripten_glCullFace, "_emscripten_glIsProgram": _emscripten_glIsProgram, "_emscripten_glStencilMaskSeparate": _emscripten_glStencilMaskSeparate, "_emscripten_glViewport": _emscripten_glViewport, "_emscripten_glFrontFace": _emscripten_glFrontFace, "___assert_fail": ___assert_fail, "_glDeleteProgram": _glDeleteProgram, "_emscripten_glUniform3fv": _emscripten_glUniform3fv, "_emscripten_glPolygonOffset": _emscripten_glPolygonOffset, "_emscripten_glUseProgram": _emscripten_glUseProgram, "_emscripten_glBlendColor": _emscripten_glBlendColor, "_glBindBuffer": _glBindBuffer, "_emscripten_glDepthFunc": _emscripten_glDepthFunc, "_glGetShaderInfoLog": _glGetShaderInfoLog, "_emscripten_set_fullscreenchange_callback": _emscripten_set_fullscreenchange_callback, "_emscripten_set_touchmove_callback": _emscripten_set_touchmove_callback, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_glDisable": _glDisable, "_glBlendFunc": _glBlendFunc, "_emscripten_glDisableVertexAttribArray": _emscripten_glDisableVertexAttribArray, "_glGetAttribLocation": _glGetAttribLocation, "_glDisableVertexAttribArray": _glDisableVertexAttribArray, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_glReadPixels": _emscripten_glReadPixels, "_emscripten_glSampleCoverage": _emscripten_glSampleCoverage, "_emscripten_glVertexPointer": _emscripten_glVertexPointer, "_emscripten_set_touchstart_callback": _emscripten_set_touchstart_callback, "emscriptenWebGLComputeImageSize": emscriptenWebGLComputeImageSize, "_emscripten_glGetBooleanv": _emscripten_glGetBooleanv, "_emscripten_glGetShaderSource": _emscripten_glGetShaderSource, "_glUniform4f": _glUniform4f, "_llvm_stacksave": _llvm_stacksave, "_emscripten_glUniform1i": _emscripten_glUniform1i, "_emscripten_glStencilFuncSeparate": _emscripten_glStencilFuncSeparate, "_emscripten_glGenBuffers": _emscripten_glGenBuffers, "_emscripten_glDeleteObjectARB": _emscripten_glDeleteObjectARB, "_glfwSetWindowSizeCallback": _glfwSetWindowSizeCallback, "_emscripten_glGetShaderPrecisionFormat": _emscripten_glGetShaderPrecisionFormat, "_glfwInit": _glfwInit, "_glGenBuffers": _glGenBuffers, "_glShaderSource": _glShaderSource, "_emscripten_glGetString": _emscripten_glGetString, "_emscripten_glIsFramebuffer": _emscripten_glIsFramebuffer, "_emscripten_glIsEnabled": _emscripten_glIsEnabled, "_emscripten_glScissor": _emscripten_glScissor, "_emscripten_glVertexAttrib4fv": _emscripten_glVertexAttrib4fv, "_emscripten_glTexParameteriv": _emscripten_glTexParameteriv, "___syscall145": ___syscall145, "_emscripten_glBindProgramARB": _emscripten_glBindProgramARB, "_emscripten_glStencilOpSeparate": _emscripten_glStencilOpSeparate, "_emscripten_glFramebufferRenderbuffer": _emscripten_glFramebufferRenderbuffer, "___syscall140": ___syscall140, "_glfwSetErrorCallback": _glfwSetErrorCallback, "_glfwDefaultWindowHints": _glfwDefaultWindowHints, "_emscripten_glIsBuffer": _emscripten_glIsBuffer, "___syscall146": ___syscall146, "_emscripten_glGetActiveAttrib": _emscripten_glGetActiveAttrib, "_glGenerateMipmap": _glGenerateMipmap, "_emscripten_glAttachShader": _emscripten_glAttachShader, "_glVertexAttribPointer": _glVertexAttribPointer, "_emscripten_glUniform2i": _emscripten_glUniform2i, "_emscripten_glUniform2f": _emscripten_glUniform2f, "_emscripten_glTexParameterfv": _emscripten_glTexParameterfv, "_emscripten_glUniformMatrix2fv": _emscripten_glUniformMatrix2fv, "_glGetProgramInfoLog": _glGetProgramInfoLog, "_glfwSetScrollCallback": _glfwSetScrollCallback, "_emscripten_glTexParameterf": _emscripten_glTexParameterf, "_emscripten_glGetAttachedShaders": _emscripten_glGetAttachedShaders, "_emscripten_glGenTextures": _emscripten_glGenTextures, "_emscripten_glTexParameteri": _emscripten_glTexParameteri, "_llvm_stackrestore": _llvm_stackrestore, "_glfwMakeContextCurrent": _glfwMakeContextCurrent, "_emscripten_glClear": _emscripten_glClear, "_glDrawElements": _glDrawElements, "_glBufferSubData": _glBufferSubData, "_emscripten_glValidateProgram": _emscripten_glValidateProgram, "_emscripten_glVertexAttrib2fv": _emscripten_glVertexAttrib2fv, "_glViewport": _glViewport, "_emscripten_glUniform4iv": _emscripten_glUniform4iv, "_emscripten_glGetTexParameteriv": _emscripten_glGetTexParameteriv, "___setErrNo": ___setErrNo, "_eglGetProcAddress": _eglGetProcAddress, "_emscripten_glBindAttribLocation": _emscripten_glBindAttribLocation, "_glDeleteTextures": _glDeleteTextures, "_glDepthFunc": _glDepthFunc, "_emscripten_glClientActiveTexture": _emscripten_glClientActiveTexture, "_emscripten_glVertexAttrib2f": _emscripten_glVertexAttrib2f, "_emscripten_glFlush": _emscripten_glFlush, "_emscripten_glCheckFramebufferStatus": _emscripten_glCheckFramebufferStatus, "_emscripten_glGenerateMipmap": _emscripten_glGenerateMipmap, "_emscripten_glGetError": _emscripten_glGetError, "_emscripten_glClearDepthf": _emscripten_glClearDepthf, "_emscripten_glBufferData": _emscripten_glBufferData, "_emscripten_glUniform3i": _emscripten_glUniform3i, "_emscripten_glRotatef": _emscripten_glRotatef, "_emscripten_glDeleteShader": _emscripten_glDeleteShader, "_glEnable": _glEnable, "_glGenTextures": _glGenTextures, "_emscripten_glMatrixMode": _emscripten_glMatrixMode, "_glGetString": _glGetString, "_emscripten_glClearStencil": _emscripten_glClearStencil, "_emscripten_glGetUniformLocation": _emscripten_glGetUniformLocation, "emscriptenWebGLGet": emscriptenWebGLGet, "_emscripten_glEnableVertexAttribArray": _emscripten_glEnableVertexAttribArray, "_emscripten_glGetAttribLocation": _emscripten_glGetAttribLocation, "_emscripten_get_now": _emscripten_get_now, "_emscripten_glNormalPointer": _emscripten_glNormalPointer, "_glAttachShader": _glAttachShader, "_emscripten_glTexCoordPointer": _emscripten_glTexCoordPointer, "_emscripten_glEnable": _emscripten_glEnable, "_glCreateProgram": _glCreateProgram, "_glUniformMatrix4fv": _glUniformMatrix4fv, "_emscripten_glClearDepth": _emscripten_glClearDepth, "___lock": ___lock, "_llvm_exp2_f32": _llvm_exp2_f32, "___syscall6": ___syscall6, "___syscall5": ___syscall5, "_glfwDestroyWindow": _glfwDestroyWindow, "_emscripten_glVertexAttrib3f": _emscripten_glVertexAttrib3f, "_time": _time, "_emscripten_glVertexAttrib1f": _emscripten_glVertexAttrib1f, "_emscripten_glGetFramebufferAttachmentParameteriv": _emscripten_glGetFramebufferAttachmentParameteriv, "_emscripten_glBlendEquationSeparate": _emscripten_glBlendEquationSeparate, "_exit": _exit, "_emscripten_glEnableClientState": _emscripten_glEnableClientState, "_emscripten_glUniform4i": _emscripten_glUniform4i, "_emscripten_glDrawRangeElements": _emscripten_glDrawRangeElements, "_glCullFace": _glCullFace, "_emscripten_glGetPointerv": _emscripten_glGetPointerv, "__emscripten_sample_gamepad_data": __emscripten_sample_gamepad_data, "_emscripten_get_gamepad_status": _emscripten_get_gamepad_status, "_emscripten_glUniform4f": _emscripten_glUniform4f, "_emscripten_glUniform2fv": _emscripten_glUniform2fv, "_glfwGetVideoModes": _glfwGetVideoModes, "_emscripten_glLoadMatrixf": _emscripten_glLoadMatrixf, "_emscripten_glShaderBinary": _emscripten_glShaderBinary, "_emscripten_glDrawElements": _emscripten_glDrawElements, "_emscripten_glBlendFunc": _emscripten_glBlendFunc, "_emscripten_get_num_gamepads": _emscripten_get_num_gamepads, "___syscall221": ___syscall221, "_glCompressedTexImage2D": _glCompressedTexImage2D, "_emscripten_glUniform1iv": _emscripten_glUniform1iv, "_emscripten_glGetVertexAttribPointerv": _emscripten_glGetVertexAttribPointerv, "_glClearDepthf": _glClearDepthf, "_emscripten_glCompressedTexSubImage2D": _emscripten_glCompressedTexSubImage2D, "emscriptenWebGLGetUniform": emscriptenWebGLGetUniform, "_emscripten_glGenRenderbuffers": _emscripten_glGenRenderbuffers, "_emscripten_glDeleteVertexArrays": _emscripten_glDeleteVertexArrays, "_glfwSetWindowShouldClose": _glfwSetWindowShouldClose, "_emscripten_glUniform1fv": _emscripten_glUniform1fv, "_emscripten_glGetActiveUniform": _emscripten_glGetActiveUniform, "_glBindTexture": _glBindTexture, "_emscripten_glUniform3iv": _emscripten_glUniform3iv, "_emscripten_glUniform2iv": _emscripten_glUniform2iv, "_emscripten_glHint": _emscripten_glHint, "_glfwSetCharCallback": _glfwSetCharCallback, "emscriptenWebGLGetVertexAttrib": emscriptenWebGLGetVertexAttrib, "_glGetFloatv": _glGetFloatv, "_emscripten_glDeleteProgram": _emscripten_glDeleteProgram, "_emscripten_glDeleteRenderbuffers": _emscripten_glDeleteRenderbuffers, "_emscripten_glDrawElementsInstanced": _emscripten_glDrawElementsInstanced, "_emscripten_glVertexAttrib4f": _emscripten_glVertexAttrib4f, "_glDrawArrays": _glDrawArrays, "_emscripten_glTexSubImage2D": _emscripten_glTexSubImage2D, "_glCreateShader": _glCreateShader, "_emscripten_glPixelStorei": _emscripten_glPixelStorei, "_glCompileShader": _glCompileShader, "_emscripten_glUniformMatrix3fv": _emscripten_glUniformMatrix3fv, "_emscripten_glDepthRange": _emscripten_glDepthRange, "emscriptenWebGLGetTexPixelData": emscriptenWebGLGetTexPixelData, "_emscripten_glGetBufferParameteriv": _emscripten_glGetBufferParameteriv, "_emscripten_glFinish": _emscripten_glFinish, "_glfwSwapBuffers": _glfwSwapBuffers, "_emscripten_set_gamepaddisconnected_callback": _emscripten_set_gamepaddisconnected_callback, "_emscripten_asm_const_iii": _emscripten_asm_const_iii, "_emscripten_glDepthMask": _emscripten_glDepthMask, "_glfwSetWindowIconifyCallback": _glfwSetWindowIconifyCallback, "_emscripten_glDrawBuffers": _emscripten_glDrawBuffers, "_glfwTerminate": _glfwTerminate, "_glFrontFace": _glFrontFace, "_emscripten_glGetObjectParameterivARB": _emscripten_glGetObjectParameterivARB, "_emscripten_glFramebufferTexture2D": _emscripten_glFramebufferTexture2D, "_glfwSwapInterval": _glfwSwapInterval, "_glUniform1i": _glUniform1i, "_glEnableVertexAttribArray": _glEnableVertexAttribArray, "_emscripten_glStencilFunc": _emscripten_glStencilFunc, "_abort": _abort, "_emscripten_glGetUniformiv": _emscripten_glGetUniformiv, "_glDeleteBuffers": _glDeleteBuffers, "_glBufferData": _glBufferData, "_glTexImage2D": _glTexImage2D, "_emscripten_glGetShaderiv": _emscripten_glGetShaderiv, "_glfwSetKeyCallback": _glfwSetKeyCallback, "_emscripten_glGenFramebuffers": _emscripten_glGenFramebuffers, "_emscripten_glUniformMatrix4fv": _emscripten_glUniformMatrix4fv, "_emscripten_glLoadIdentity": _emscripten_glLoadIdentity, "_glDeleteShader": _glDeleteShader, "_emscripten_glUniform1f": _emscripten_glUniform1f, "_glGetProgramiv": _glGetProgramiv, "_emscripten_glBindFramebuffer": _emscripten_glBindFramebuffer, "_emscripten_glIsRenderbuffer": _emscripten_glIsRenderbuffer, "_glfwGetTime": _glfwGetTime, "_emscripten_glRenderbufferStorage": _emscripten_glRenderbufferStorage, "_emscripten_set_gamepadconnected_callback": _emscripten_set_gamepadconnected_callback, "_emscripten_glGetVertexAttribiv": _emscripten_glGetVertexAttribiv, "_emscripten_glBindVertexArray": _emscripten_glBindVertexArray, "_emscripten_glDrawArraysInstanced": _emscripten_glDrawArraysInstanced, "_emscripten_set_touchcancel_callback": _emscripten_set_touchcancel_callback, "_emscripten_glCreateShader": _emscripten_glCreateShader, "_emscripten_glStencilMask": _emscripten_glStencilMask, "_emscripten_glDeleteTextures": _emscripten_glDeleteTextures, "_glfwGetKey": _glfwGetKey, "_glfwGetPrimaryMonitor": _glfwGetPrimaryMonitor, "_glLinkProgram": _glLinkProgram, "_emscripten_glVertexAttribDivisor": _emscripten_glVertexAttribDivisor, "_emscripten_set_touchend_callback": _emscripten_set_touchend_callback, "_emscripten_glGetUniformfv": _emscripten_glGetUniformfv, "_emscripten_glGetVertexAttribfv": _emscripten_glGetVertexAttribfv, "_emscripten_glGetRenderbufferParameteriv": _emscripten_glGetRenderbufferParameteriv, "_emscripten_glDeleteFramebuffers": _emscripten_glDeleteFramebuffers, "_glGetShaderiv": _glGetShaderiv, "_emscripten_glVertexAttrib3fv": _emscripten_glVertexAttrib3fv, "_glGetUniformLocation": _glGetUniformLocation, "_emscripten_glGetInfoLogARB": _emscripten_glGetInfoLogARB, "_emscripten_glCompileShader": _emscripten_glCompileShader, "_glClear": _glClear, "_emscripten_glFrustum": _emscripten_glFrustum, "_emscripten_glDisable": _emscripten_glDisable, "_emscripten_glDepthRangef": _emscripten_glDepthRangef, "__exit": __exit, "_emscripten_glLineWidth": _emscripten_glLineWidth, "_emscripten_glUniform3f": _emscripten_glUniform3f, "_emscripten_glGetShaderInfoLog": _emscripten_glGetShaderInfoLog, "_emscripten_glStencilOp": _emscripten_glStencilOp, "_glBindAttribLocation": _glBindAttribLocation, "_glPixelStorei": _glPixelStorei, "_emscripten_glColorMask": _emscripten_glColorMask, "_emscripten_glLinkProgram": _emscripten_glLinkProgram, "_emscripten_glBlendEquation": _emscripten_glBlendEquation, "_emscripten_glIsTexture": _emscripten_glIsTexture, "_emscripten_glGetProgramiv": _emscripten_glGetProgramiv, "_emscripten_glVertexAttrib1fv": _emscripten_glVertexAttrib1fv, "_emscripten_glBindTexture": _emscripten_glBindTexture, "_glfwSetMouseButtonCallback": _glfwSetMouseButtonCallback, "_glfwGetCursorPos": _glfwGetCursorPos, "_emscripten_glActiveTexture": _emscripten_glActiveTexture, "_emscripten_glDeleteBuffers": _emscripten_glDeleteBuffers, "___syscall54": ___syscall54, "___unlock": ___unlock, "_emscripten_glBufferSubData": _emscripten_glBufferSubData, "_emscripten_glColorPointer": _emscripten_glColorPointer, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_emscripten_glBindRenderbuffer": _emscripten_glBindRenderbuffer, "_emscripten_glGetProgramInfoLog": _emscripten_glGetProgramInfoLog, "_glfwWindowHint": _glfwWindowHint, "_emscripten_glIsShader": _emscripten_glIsShader, "_emscripten_glUniform4fv": _emscripten_glUniform4fv, "_emscripten_glGenVertexArrays": _emscripten_glGenVertexArrays, "_emscripten_glDrawArrays": _emscripten_glDrawArrays, "_emscripten_glCompressedTexImage2D": _emscripten_glCompressedTexImage2D, "_emscripten_glClearColor": _emscripten_glClearColor, "_emscripten_glCreateProgram": _emscripten_glCreateProgram, "_emscripten_glCopyTexSubImage2D": _emscripten_glCopyTexSubImage2D, "_glTexParameteri": _glTexParameteri, "_emscripten_glBindBuffer": _emscripten_glBindBuffer, "_emscripten_glGetFloatv": _emscripten_glGetFloatv, "_emscripten_glDetachShader": _emscripten_glDetachShader, "_glClearColor": _glClearColor, "_glfwSetCursorPosCallback": _glfwSetCursorPosCallback, "_glTexParameterf": _glTexParameterf, "_glfwSetCursorEnterCallback": _glfwSetCursorEnterCallback, "_emscripten_glCopyTexImage2D": _emscripten_glCopyTexImage2D, "_emscripten_glTexImage2D": _emscripten_glTexImage2D, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "cttz_i8": cttz_i8 };
// EMSCRIPTEN_START_ASM
var asm = (function(global, env, buffer) {
- 'use asm';
-
-
- var HEAP8 = new global.Int8Array(buffer);
- var HEAP16 = new global.Int16Array(buffer);
- var HEAP32 = new global.Int32Array(buffer);
- var HEAPU8 = new global.Uint8Array(buffer);
- var HEAPU16 = new global.Uint16Array(buffer);
- var HEAPU32 = new global.Uint32Array(buffer);
- var HEAPF32 = new global.Float32Array(buffer);
- var HEAPF64 = new global.Float64Array(buffer);
+ 'almost 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 DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0;
@@ -6813,6 +10180,7 @@ var asm = (function(global, env, buffer) {
var _emscripten_glStencilMaskSeparate=env._emscripten_glStencilMaskSeparate;
var _emscripten_glViewport=env._emscripten_glViewport;
var _emscripten_glFrontFace=env._emscripten_glFrontFace;
+ var ___assert_fail=env.___assert_fail;
var _glDeleteProgram=env._glDeleteProgram;
var _emscripten_glUniform3fv=env._emscripten_glUniform3fv;
var _emscripten_glPolygonOffset=env._emscripten_glPolygonOffset;
@@ -6829,7 +10197,8 @@ var asm = (function(global, env, buffer) {
var _emscripten_glDisableVertexAttribArray=env._emscripten_glDisableVertexAttribArray;
var _glGetAttribLocation=env._glGetAttribLocation;
var _glDisableVertexAttribArray=env._glDisableVertexAttribArray;
- var _glCreateShader=env._glCreateShader;
+ var _emscripten_memcpy_big=env._emscripten_memcpy_big;
+ var _emscripten_glReadPixels=env._emscripten_glReadPixels;
var _emscripten_glSampleCoverage=env._emscripten_glSampleCoverage;
var _emscripten_glVertexPointer=env._emscripten_glVertexPointer;
var _emscripten_set_touchstart_callback=env._emscripten_set_touchstart_callback;
@@ -6837,7 +10206,6 @@ var asm = (function(global, env, buffer) {
var _emscripten_glGetBooleanv=env._emscripten_glGetBooleanv;
var _emscripten_glGetShaderSource=env._emscripten_glGetShaderSource;
var _glUniform4f=env._glUniform4f;
- var _glfwWindowShouldClose=env._glfwWindowShouldClose;
var _llvm_stacksave=env._llvm_stacksave;
var _emscripten_glUniform1i=env._emscripten_glUniform1i;
var _emscripten_glStencilFuncSeparate=env._emscripten_glStencilFuncSeparate;
@@ -6846,7 +10214,6 @@ var asm = (function(global, env, buffer) {
var _glfwSetWindowSizeCallback=env._glfwSetWindowSizeCallback;
var _emscripten_glGetShaderPrecisionFormat=env._emscripten_glGetShaderPrecisionFormat;
var _glfwInit=env._glfwInit;
- var _emscripten_glDepthRangef=env._emscripten_glDepthRangef;
var _glGenBuffers=env._glGenBuffers;
var _glShaderSource=env._glShaderSource;
var _emscripten_glGetString=env._emscripten_glGetString;
@@ -6855,23 +10222,22 @@ var asm = (function(global, env, buffer) {
var _emscripten_glScissor=env._emscripten_glScissor;
var _emscripten_glVertexAttrib4fv=env._emscripten_glVertexAttrib4fv;
var _emscripten_glTexParameteriv=env._emscripten_glTexParameteriv;
+ var ___syscall145=env.___syscall145;
var _emscripten_glBindProgramARB=env._emscripten_glBindProgramARB;
var _emscripten_glStencilOpSeparate=env._emscripten_glStencilOpSeparate;
var _emscripten_glFramebufferRenderbuffer=env._emscripten_glFramebufferRenderbuffer;
var ___syscall140=env.___syscall140;
var _glfwSetErrorCallback=env._glfwSetErrorCallback;
var _glfwDefaultWindowHints=env._glfwDefaultWindowHints;
- var _glfwDestroyWindow=env._glfwDestroyWindow;
- var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f;
+ var _emscripten_glIsBuffer=env._emscripten_glIsBuffer;
+ var ___syscall146=env.___syscall146;
var _emscripten_glGetActiveAttrib=env._emscripten_glGetActiveAttrib;
var _glGenerateMipmap=env._glGenerateMipmap;
var _emscripten_glAttachShader=env._emscripten_glAttachShader;
var _glVertexAttribPointer=env._glVertexAttribPointer;
var _emscripten_glUniform2i=env._emscripten_glUniform2i;
var _emscripten_glUniform2f=env._emscripten_glUniform2f;
- var _emscripten_glBufferSubData=env._emscripten_glBufferSubData;
var _emscripten_glTexParameterfv=env._emscripten_glTexParameterfv;
- var _GetDroppedFiles=env._GetDroppedFiles;
var _emscripten_glUniformMatrix2fv=env._emscripten_glUniformMatrix2fv;
var _glGetProgramInfoLog=env._glGetProgramInfoLog;
var _glfwSetScrollCallback=env._glfwSetScrollCallback;
@@ -6906,7 +10272,7 @@ var asm = (function(global, env, buffer) {
var _emscripten_glRotatef=env._emscripten_glRotatef;
var _emscripten_glDeleteShader=env._emscripten_glDeleteShader;
var _glEnable=env._glEnable;
- var _emscripten_glReadPixels=env._emscripten_glReadPixels;
+ var _glGenTextures=env._glGenTextures;
var _emscripten_glMatrixMode=env._emscripten_glMatrixMode;
var _glGetString=env._glGetString;
var _emscripten_glClearStencil=env._emscripten_glClearStencil;
@@ -6924,12 +10290,12 @@ var asm = (function(global, env, buffer) {
var _emscripten_glClearDepth=env._emscripten_glClearDepth;
var ___lock=env.___lock;
var _llvm_exp2_f32=env._llvm_exp2_f32;
- var _glGenTextures=env._glGenTextures;
- var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv;
- var _emscripten_glIsBuffer=env._emscripten_glIsBuffer;
+ var ___syscall6=env.___syscall6;
+ var ___syscall5=env.___syscall5;
+ var _glfwDestroyWindow=env._glfwDestroyWindow;
var _emscripten_glVertexAttrib3f=env._emscripten_glVertexAttrib3f;
var _time=env._time;
- var ___syscall146=env.___syscall146;
+ var _emscripten_glVertexAttrib1f=env._emscripten_glVertexAttrib1f;
var _emscripten_glGetFramebufferAttachmentParameteriv=env._emscripten_glGetFramebufferAttachmentParameteriv;
var _emscripten_glBlendEquationSeparate=env._emscripten_glBlendEquationSeparate;
var _exit=env._exit;
@@ -6948,6 +10314,7 @@ var asm = (function(global, env, buffer) {
var _emscripten_glDrawElements=env._emscripten_glDrawElements;
var _emscripten_glBlendFunc=env._emscripten_glBlendFunc;
var _emscripten_get_num_gamepads=env._emscripten_get_num_gamepads;
+ var ___syscall221=env.___syscall221;
var _glCompressedTexImage2D=env._glCompressedTexImage2D;
var _emscripten_glUniform1iv=env._emscripten_glUniform1iv;
var _emscripten_glGetVertexAttribPointerv=env._emscripten_glGetVertexAttribPointerv;
@@ -6970,9 +10337,9 @@ var asm = (function(global, env, buffer) {
var _emscripten_glDeleteRenderbuffers=env._emscripten_glDeleteRenderbuffers;
var _emscripten_glDrawElementsInstanced=env._emscripten_glDrawElementsInstanced;
var _emscripten_glVertexAttrib4f=env._emscripten_glVertexAttrib4f;
- var ___syscall6=env.___syscall6;
+ var _glDrawArrays=env._glDrawArrays;
var _emscripten_glTexSubImage2D=env._emscripten_glTexSubImage2D;
- var _emscripten_memcpy_big=env._emscripten_memcpy_big;
+ var _glCreateShader=env._glCreateShader;
var _emscripten_glPixelStorei=env._emscripten_glPixelStorei;
var _glCompileShader=env._glCompileShader;
var _emscripten_glUniformMatrix3fv=env._emscripten_glUniformMatrix3fv;
@@ -6996,7 +10363,6 @@ var asm = (function(global, env, buffer) {
var _emscripten_glStencilFunc=env._emscripten_glStencilFunc;
var _abort=env._abort;
var _emscripten_glGetUniformiv=env._emscripten_glGetUniformiv;
- var _ClearDroppedFiles=env._ClearDroppedFiles;
var _glDeleteBuffers=env._glDeleteBuffers;
var _glBufferData=env._glBufferData;
var _glTexImage2D=env._glTexImage2D;
@@ -7013,7 +10379,7 @@ var asm = (function(global, env, buffer) {
var _glfwGetTime=env._glfwGetTime;
var _emscripten_glRenderbufferStorage=env._emscripten_glRenderbufferStorage;
var _emscripten_set_gamepadconnected_callback=env._emscripten_set_gamepadconnected_callback;
- var _glDrawArrays=env._glDrawArrays;
+ var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv;
var _emscripten_glBindVertexArray=env._emscripten_glBindVertexArray;
var _emscripten_glDrawArraysInstanced=env._emscripten_glDrawArraysInstanced;
var _emscripten_set_touchcancel_callback=env._emscripten_set_touchcancel_callback;
@@ -7037,7 +10403,7 @@ var asm = (function(global, env, buffer) {
var _glClear=env._glClear;
var _emscripten_glFrustum=env._emscripten_glFrustum;
var _emscripten_glDisable=env._emscripten_glDisable;
- var _emscripten_glGetVertexAttribiv=env._emscripten_glGetVertexAttribiv;
+ var _emscripten_glDepthRangef=env._emscripten_glDepthRangef;
var __exit=env.__exit;
var _emscripten_glLineWidth=env._emscripten_glLineWidth;
var _emscripten_glUniform3f=env._emscripten_glUniform3f;
@@ -7049,7 +10415,7 @@ var asm = (function(global, env, buffer) {
var _emscripten_glLinkProgram=env._emscripten_glLinkProgram;
var _emscripten_glBlendEquation=env._emscripten_glBlendEquation;
var _emscripten_glIsTexture=env._emscripten_glIsTexture;
- var _IsFileDropped=env._IsFileDropped;
+ var _emscripten_glGetProgramiv=env._emscripten_glGetProgramiv;
var _emscripten_glVertexAttrib1fv=env._emscripten_glVertexAttrib1fv;
var _emscripten_glBindTexture=env._emscripten_glBindTexture;
var _glfwSetMouseButtonCallback=env._glfwSetMouseButtonCallback;
@@ -7058,7 +10424,7 @@ var asm = (function(global, env, buffer) {
var _emscripten_glDeleteBuffers=env._emscripten_glDeleteBuffers;
var ___syscall54=env.___syscall54;
var ___unlock=env.___unlock;
- var _glfwWaitEvents=env._glfwWaitEvents;
+ var _emscripten_glBufferSubData=env._emscripten_glBufferSubData;
var _emscripten_glColorPointer=env._emscripten_glColorPointer;
var _emscripten_set_main_loop=env._emscripten_set_main_loop;
var _emscripten_glBindRenderbuffer=env._emscripten_glBindRenderbuffer;
@@ -7084,6 +10450,20 @@ var asm = (function(global, env, buffer) {
var _emscripten_glTexImage2D=env._emscripten_glTexImage2D;
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 stackAlloc(size) {
@@ -7128,288 +10508,279 @@ function getTempRet0() {
}
function _main() {
- var $$02730 = 0, $$031 = 0.0, $$1 = 0, $$byval_copy15 = 0, $$byval_copy16 = 0, $$byval_copy25 = 0, $$sink29 = 0.0, $$sroa$0$0$copyload = 0.0, $$sroa$4$0$$sroa_idx7 = 0, $$sroa$4$0$copyload = 0.0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
- var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0;
- var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0;
- var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0;
- var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0.0, $87 = 0, $88 = 0.0, $89 = 0.0, $9 = 0;
- var $90 = 0, $91 = 0, $92 = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_ptr4 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(240|0);
- $$byval_copy25 = sp + 152|0;
- $$byval_copy16 = sp + 136|0;
- $$byval_copy15 = sp + 72|0;
+ var $0 = 0, $1 = 0, $2 = 0.0, $font$byval_copy = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0);
+ $font$byval_copy = sp + 32|0;
+ $0 = sp;
+ _InitWindow(800,450,3530);
+ _LoadSpriteFontTTF($0,3566,96,0,0);
+ ;HEAP32[15924>>2]=HEAP32[$0>>2]|0;HEAP32[15924+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[15924+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[15924+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[15924+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[15924+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[15924+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[15924+28>>2]=HEAP32[$0+28>>2]|0;
+ _GenTextureMipmaps(15924);
+ $1 = HEAP32[(15944)>>2]|0;
+ $2 = (+($1|0));
+ HEAPF32[3989] = $2;
+ ;HEAP32[$font$byval_copy>>2]=HEAP32[15924>>2]|0;HEAP32[$font$byval_copy+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$font$byval_copy+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$font$byval_copy+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$font$byval_copy+16>>2]=HEAP32[15924+16>>2]|0;
+ _SetTextureFilter($font$byval_copy,0);
+ _emscripten_set_main_loop((1|0),0,1);
+ ;HEAP32[$font$byval_copy>>2]=HEAP32[15924>>2]|0;HEAP32[$font$byval_copy+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$font$byval_copy+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$font$byval_copy+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$font$byval_copy+16>>2]=HEAP32[15924+16>>2]|0;HEAP32[$font$byval_copy+20>>2]=HEAP32[15924+20>>2]|0;HEAP32[$font$byval_copy+24>>2]=HEAP32[15924+24>>2]|0;HEAP32[$font$byval_copy+28>>2]=HEAP32[15924+28>>2]|0;
+ _UnloadSpriteFont($font$byval_copy);
+ _CloseWindow();
+ STACKTOP = sp;return 0;
+}
+function _UpdateDrawFrame() {
+ var $$byval_copy20 = 0, $$sink = 0, $$sink4 = 0.0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0;
+ var $24 = 0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0;
+ var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0;
+ var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0;
+ var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $font$byval_copy12 = 0, $fontPosition$byval_copy = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_ptr4 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0);
+ $$byval_copy20 = sp + 72|0;
+ $fontPosition$byval_copy = sp + 64|0;
+ $font$byval_copy12 = sp + 32|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
- $0 = sp + 40|0;
- $1 = sp + 32|0;
- $2 = sp + 24|0;
+ $0 = sp + 24|0;
+ $1 = sp + 152|0;
+ $2 = sp + 148|0;
$3 = sp + 144|0;
- $4 = sp + 104|0;
- $5 = sp + 232|0;
- $6 = sp + 228|0;
- $7 = sp + 224|0;
- $8 = sp + 220|0;
- $9 = sp + 216|0;
- $10 = sp + 212|0;
- $11 = sp + 208|0;
- $12 = sp + 204|0;
- $13 = sp + 200|0;
- $14 = sp + 196|0;
- $15 = sp + 192|0;
- $16 = sp + 188|0;
- $17 = sp + 184|0;
- _InitWindow(800,450,3472);
- _LoadSpriteFontTTF($0,3558,96,0,0);
- _GenTextureMipmaps($0);
- $18 = ((($0)) + 20|0);
- $19 = HEAP32[$18>>2]|0;
- HEAPF32[$1>>2] = 40.0;
- $20 = ((($1)) + 4|0);
- HEAPF32[$20>>2] = 275.0;
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;
- _SetTextureFilter($$byval_copy25,0);
- HEAP32[$2>>2] = 0;
- _SetTargetFPS(60);
- $21 = (_WindowShouldClose()|0);
- $22 = ($21|0)==(0);
- if (!($22)) {
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy25+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy25+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy25+28>>2]=HEAP32[$0+28>>2]|0;
- _UnloadSpriteFont($$byval_copy25);
- _ClearDroppedFiles();
- _CloseWindow();
- STACKTOP = sp;return 0;
- }
- $23 = (+($19|0));
- $$sroa$4$0$$sroa_idx7 = ((($3)) + 4|0);
- $24 = ((($5)) + 1|0);
- $25 = ((($5)) + 2|0);
- $26 = ((($5)) + 3|0);
- $27 = ((($6)) + 1|0);
- $28 = ((($6)) + 2|0);
- $29 = ((($6)) + 3|0);
- $30 = ((($7)) + 1|0);
- $31 = ((($7)) + 2|0);
- $32 = ((($7)) + 3|0);
- $33 = ((($8)) + 1|0);
- $34 = ((($8)) + 2|0);
- $35 = ((($8)) + 3|0);
- $36 = ((($9)) + 1|0);
- $37 = ((($9)) + 2|0);
- $38 = ((($9)) + 3|0);
- $39 = ((($10)) + 1|0);
- $40 = ((($10)) + 2|0);
- $41 = ((($10)) + 3|0);
- $42 = ((($11)) + 1|0);
- $43 = ((($11)) + 2|0);
- $44 = ((($11)) + 3|0);
- $45 = ((($12)) + 1|0);
- $46 = ((($12)) + 2|0);
- $47 = ((($12)) + 3|0);
- $48 = ((($13)) + 1|0);
- $49 = ((($13)) + 2|0);
- $50 = ((($13)) + 3|0);
- $51 = ((($14)) + 1|0);
- $52 = ((($14)) + 2|0);
- $53 = ((($14)) + 3|0);
- $54 = ((($15)) + 1|0);
- $55 = ((($15)) + 2|0);
- $56 = ((($15)) + 3|0);
- $57 = ((($16)) + 1|0);
- $58 = ((($16)) + 2|0);
- $59 = ((($16)) + 3|0);
- $60 = ((($17)) + 1|0);
- $61 = ((($17)) + 2|0);
- $62 = ((($17)) + 3|0);
- $$02730 = 0;$$031 = $23;
- while(1) {
- $63 = (_GetMouseWheelMove()|0);
- $64 = (+($63|0));
- $65 = $64 * 4.0;
- $66 = $$031 + $65;
- $67 = (_IsKeyPressed(49)|0);
- $68 = ($67|0)==(0);
- do {
- if ($68) {
- $69 = (_IsKeyPressed(50)|0);
- $70 = ($69|0)==(0);
- if (!($70)) {
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;
- _SetTextureFilter($$byval_copy25,1);
- $$1 = 1;
- break;
- }
- $71 = (_IsKeyPressed(51)|0);
- $72 = ($71|0)==(0);
- if ($72) {
- $$1 = $$02730;
- } else {
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;
- _SetTextureFilter($$byval_copy25,2);
- $$1 = 2;
- }
- } else {
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;
- _SetTextureFilter($$byval_copy25,0);
- $$1 = 0;
+ $4 = sp + 140|0;
+ $5 = sp + 136|0;
+ $6 = sp + 132|0;
+ $7 = sp + 128|0;
+ $8 = sp + 124|0;
+ $9 = sp + 120|0;
+ $10 = sp + 116|0;
+ $11 = sp + 112|0;
+ $12 = sp + 108|0;
+ $13 = sp + 104|0;
+ $14 = (_GetMouseWheelMove()|0);
+ $15 = (+($14|0));
+ $16 = $15 * 4.0;
+ $17 = +HEAPF32[3989];
+ $18 = $17 + $16;
+ HEAPF32[3989] = $18;
+ $19 = (_IsKeyPressed(49)|0);
+ $20 = ($19|0)==(0);
+ do {
+ if ($20) {
+ $21 = (_IsKeyPressed(50)|0);
+ $22 = ($21|0)==(0);
+ if (!($22)) {
+ ;HEAP32[$$byval_copy20>>2]=HEAP32[15924>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$$byval_copy20+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$$byval_copy20+16>>2]=HEAP32[15924+16>>2]|0;
+ _SetTextureFilter($$byval_copy20,1);
+ $$sink = 1;
+ label = 7;
+ break;
}
- } while(0);
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy25+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy25+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy25+28>>2]=HEAP32[$0+28>>2]|0;
- _MeasureTextEx($3,$$byval_copy25,3508,$66,0);
- $$sroa$0$0$copyload = +HEAPF32[$3>>2];
- $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx7>>2];
- $73 = (_IsKeyDown(263)|0);
- $74 = ($73|0)==(0);
- if ($74) {
- $75 = (_IsKeyDown(262)|0);
- $76 = ($75|0)==(0);
- if (!($76)) {
- $$sink29 = 10.0;
- label = 11;
+ $23 = (_IsKeyPressed(51)|0);
+ $24 = ($23|0)==(0);
+ if (!($24)) {
+ ;HEAP32[$$byval_copy20>>2]=HEAP32[15924>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$$byval_copy20+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$$byval_copy20+16>>2]=HEAP32[15924+16>>2]|0;
+ _SetTextureFilter($$byval_copy20,2);
+ $$sink = 2;
+ label = 7;
}
} else {
- $$sink29 = -10.0;
- label = 11;
- }
- if ((label|0) == 11) {
- label = 0;
- $77 = +HEAPF32[$1>>2];
- $78 = $$sink29 + $77;
- HEAPF32[$1>>2] = $78;
- }
- $79 = (_IsFileDropped()|0);
- $80 = ($79|0)==(0);
- if (!($80)) {
- $81 = (_GetDroppedFiles(($2|0))|0);
- $82 = HEAP32[$2>>2]|0;
- $83 = ($82|0)==(1);
- if ($83) {
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy25+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy25+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy25+28>>2]=HEAP32[$0+28>>2]|0;
- _UnloadSpriteFont($$byval_copy25);
- $84 = HEAP32[$81>>2]|0;
- $85 = (~~(($66)));
- _LoadSpriteFontTTF($4,$84,$85,0,0);
- ;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$4+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$4+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[$4+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[$4+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[$4+28>>2]|0;
- _ClearDroppedFiles();
- }
- }
- _BeginDrawing();
- HEAP8[$5>>0] = -11;
- HEAP8[$24>>0] = -11;
- HEAP8[$25>>0] = -11;
- HEAP8[$26>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$5+3>>0]|0;
- _ClearBackground($$byval_copy25);
- HEAP8[$6>>0] = -126;
- HEAP8[$27>>0] = -126;
- HEAP8[$28>>0] = -126;
- HEAP8[$29>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$6>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$6+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$6+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$6+3>>0]|0;
- _DrawText(3584,20,20,10,$$byval_copy25);
- HEAP8[$7>>0] = -126;
- HEAP8[$30>>0] = -126;
- HEAP8[$31>>0] = -126;
- HEAP8[$32>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$7>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$7+3>>0]|0;
- _DrawText(3620,20,40,10,$$byval_copy25);
- HEAP8[$8>>0] = -126;
- HEAP8[$33>>0] = -126;
- HEAP8[$34>>0] = -126;
- HEAP8[$35>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$8>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$8+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$8+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$8+3>>0]|0;
- _DrawText(3660,20,60,10,$$byval_copy25);
- HEAP8[$9>>0] = 80;
- HEAP8[$36>>0] = 80;
- HEAP8[$37>>0] = 80;
- HEAP8[$38>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$9>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$9+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$9+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$9+3>>0]|0;
- _DrawText(3697,20,80,10,$$byval_copy25);
- HEAP8[$10>>0] = 0;
- HEAP8[$39>>0] = 0;
- HEAP8[$40>>0] = 0;
- HEAP8[$41>>0] = -1;
- ;HEAP32[$$byval_copy15>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy15+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy15+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy15+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy15+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy15+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy15+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy15+28>>2]=HEAP32[$0+28>>2]|0;
- ;HEAP32[$$byval_copy16>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy16+4>>2]=HEAP32[$1+4>>2]|0;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$10>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$10+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$10+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$10+3>>0]|0;
- _DrawTextEx($$byval_copy15,3508,$$byval_copy16,$66,0,$$byval_copy25);
- HEAP8[$11>>0] = -56;
- HEAP8[$42>>0] = -56;
- HEAP8[$43>>0] = -56;
- HEAP8[$44>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$11>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$11+3>>0]|0;
- _DrawRectangle(0,370,800,80,$$byval_copy25);
- $86 = $66;
- HEAPF64[$vararg_buffer>>3] = $86;
- $87 = (_FormatText(3737,$vararg_buffer)|0);
- HEAP8[$12>>0] = 80;
- HEAP8[$45>>0] = 80;
- HEAP8[$46>>0] = 80;
- HEAP8[$47>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$12>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$12+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$12+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$12+3>>0]|0;
- _DrawText($87,20,400,10,$$byval_copy25);
- $88 = $$sroa$0$0$copyload;
- $89 = $$sroa$4$0$copyload;
- HEAPF64[$vararg_buffer1>>3] = $88;
- $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
- HEAPF64[$vararg_ptr4>>3] = $89;
- $90 = (_FormatText(3756,$vararg_buffer1)|0);
- HEAP8[$13>>0] = 80;
- HEAP8[$48>>0] = 80;
- HEAP8[$49>>0] = 80;
- HEAP8[$50>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$13>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$13+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$13+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$13+3>>0]|0;
- _DrawText($90,20,420,10,$$byval_copy25);
- HEAP8[$14>>0] = -126;
- HEAP8[$51>>0] = -126;
- HEAP8[$52>>0] = -126;
- HEAP8[$53>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$14>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$14+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$14+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$14+3>>0]|0;
- _DrawText(3786,250,400,20,$$byval_copy25);
- switch ($$1|0) {
- case 0: {
- HEAP8[$15>>0] = 0;
- HEAP8[$54>>0] = 0;
- HEAP8[$55>>0] = 0;
- HEAP8[$56>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$15>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$15+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$15+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$15+3>>0]|0;
- _DrawText(3810,570,400,20,$$byval_copy25);
- break;
- }
- case 1: {
- HEAP8[$16>>0] = 0;
- HEAP8[$57>>0] = 0;
- HEAP8[$58>>0] = 0;
- HEAP8[$59>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$16>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$16+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$16+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$16+3>>0]|0;
- _DrawText(3816,570,400,20,$$byval_copy25);
- break;
- }
- case 2: {
- HEAP8[$17>>0] = 0;
- HEAP8[$60>>0] = 0;
- HEAP8[$61>>0] = 0;
- HEAP8[$62>>0] = -1;
- ;HEAP8[$$byval_copy25>>0]=HEAP8[$17>>0]|0;HEAP8[$$byval_copy25+1>>0]=HEAP8[$17+1>>0]|0;HEAP8[$$byval_copy25+2>>0]=HEAP8[$17+2>>0]|0;HEAP8[$$byval_copy25+3>>0]=HEAP8[$17+3>>0]|0;
- _DrawText(3825,570,400,20,$$byval_copy25);
- break;
- }
- default: {
+ ;HEAP32[$$byval_copy20>>2]=HEAP32[15924>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$$byval_copy20+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$$byval_copy20+16>>2]=HEAP32[15924+16>>2]|0;
+ _SetTextureFilter($$byval_copy20,0);
+ $$sink = 0;
+ label = 7;
}
+ } while(0);
+ if ((label|0) == 7) {
+ HEAP32[3980] = $$sink;
+ }
+ $25 = +HEAPF32[3989];
+ ;HEAP32[$$byval_copy20>>2]=HEAP32[15924>>2]|0;HEAP32[$$byval_copy20+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$$byval_copy20+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$$byval_copy20+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$$byval_copy20+16>>2]=HEAP32[15924+16>>2]|0;HEAP32[$$byval_copy20+20>>2]=HEAP32[15924+20>>2]|0;HEAP32[$$byval_copy20+24>>2]=HEAP32[15924+24>>2]|0;HEAP32[$$byval_copy20+28>>2]=HEAP32[15924+28>>2]|0;
+ _MeasureTextEx($0,$$byval_copy20,3480,$25,0);
+ $26 = $0;
+ $27 = $26;
+ $28 = HEAP32[$27>>2]|0;
+ $29 = (($26) + 4)|0;
+ $30 = $29;
+ $31 = HEAP32[$30>>2]|0;
+ $32 = 15960;
+ $33 = $32;
+ HEAP32[$33>>2] = $28;
+ $34 = (($32) + 4)|0;
+ $35 = $34;
+ HEAP32[$35>>2] = $31;
+ $36 = (_IsKeyDown(263)|0);
+ $37 = ($36|0)==(0);
+ if ($37) {
+ $38 = (_IsKeyDown(262)|0);
+ $39 = ($38|0)==(0);
+ if (!($39)) {
+ $$sink4 = 10.0;
+ label = 10;
}
+ } else {
+ $$sink4 = -10.0;
+ label = 10;
+ }
+ if ((label|0) == 10) {
+ $40 = +HEAPF32[2];
+ $41 = $$sink4 + $40;
+ HEAPF32[2] = $41;
+ }
+ _BeginDrawing();
+ HEAP8[$1>>0] = -11;
+ $42 = ((($1)) + 1|0);
+ HEAP8[$42>>0] = -11;
+ $43 = ((($1)) + 2|0);
+ HEAP8[$43>>0] = -11;
+ $44 = ((($1)) + 3|0);
+ HEAP8[$44>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$1>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$1+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$1+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$1+3>>0]|0;
+ _ClearBackground($$byval_copy20);
+ HEAP8[$2>>0] = -126;
+ $45 = ((($2)) + 1|0);
+ HEAP8[$45>>0] = -126;
+ $46 = ((($2)) + 2|0);
+ HEAP8[$46>>0] = -126;
+ $47 = ((($2)) + 3|0);
+ HEAP8[$47>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$2>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$2+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$2+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$2+3>>0]|0;
+ _DrawText(3592,20,20,10,$$byval_copy20);
+ HEAP8[$3>>0] = -126;
+ $48 = ((($3)) + 1|0);
+ HEAP8[$48>>0] = -126;
+ $49 = ((($3)) + 2|0);
+ HEAP8[$49>>0] = -126;
+ $50 = ((($3)) + 3|0);
+ HEAP8[$50>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$3>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$3+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$3+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$3+3>>0]|0;
+ _DrawText(3628,20,40,10,$$byval_copy20);
+ HEAP8[$4>>0] = -126;
+ $51 = ((($4)) + 1|0);
+ HEAP8[$51>>0] = -126;
+ $52 = ((($4)) + 2|0);
+ HEAP8[$52>>0] = -126;
+ $53 = ((($4)) + 3|0);
+ HEAP8[$53>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$4>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$4+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$4+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$4+3>>0]|0;
+ _DrawText(3668,20,60,10,$$byval_copy20);
+ HEAP8[$5>>0] = 80;
+ $54 = ((($5)) + 1|0);
+ HEAP8[$54>>0] = 80;
+ $55 = ((($5)) + 2|0);
+ HEAP8[$55>>0] = 80;
+ $56 = ((($5)) + 3|0);
+ HEAP8[$56>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$5>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$5+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$5+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$5+3>>0]|0;
+ _DrawText(3705,20,80,10,$$byval_copy20);
+ $57 = +HEAPF32[3989];
+ HEAP8[$6>>0] = 0;
+ $58 = ((($6)) + 1|0);
+ HEAP8[$58>>0] = 0;
+ $59 = ((($6)) + 2|0);
+ HEAP8[$59>>0] = 0;
+ $60 = ((($6)) + 3|0);
+ HEAP8[$60>>0] = -1;
+ ;HEAP32[$font$byval_copy12>>2]=HEAP32[15924>>2]|0;HEAP32[$font$byval_copy12+4>>2]=HEAP32[15924+4>>2]|0;HEAP32[$font$byval_copy12+8>>2]=HEAP32[15924+8>>2]|0;HEAP32[$font$byval_copy12+12>>2]=HEAP32[15924+12>>2]|0;HEAP32[$font$byval_copy12+16>>2]=HEAP32[15924+16>>2]|0;HEAP32[$font$byval_copy12+20>>2]=HEAP32[15924+20>>2]|0;HEAP32[$font$byval_copy12+24>>2]=HEAP32[15924+24>>2]|0;HEAP32[$font$byval_copy12+28>>2]=HEAP32[15924+28>>2]|0;
+ ;HEAP32[$fontPosition$byval_copy>>2]=HEAP32[8>>2]|0;HEAP32[$fontPosition$byval_copy+4>>2]=HEAP32[8+4>>2]|0;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$6>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$6+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$6+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$6+3>>0]|0;
+ _DrawTextEx($font$byval_copy12,3480,$fontPosition$byval_copy,$57,0,$$byval_copy20);
+ HEAP8[$7>>0] = -56;
+ $61 = ((($7)) + 1|0);
+ HEAP8[$61>>0] = -56;
+ $62 = ((($7)) + 2|0);
+ HEAP8[$62>>0] = -56;
+ $63 = ((($7)) + 3|0);
+ HEAP8[$63>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$7>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$7+3>>0]|0;
+ _DrawRectangle(0,370,800,80,$$byval_copy20);
+ $64 = +HEAPF32[3989];
+ $65 = $64;
+ HEAPF64[$vararg_buffer>>3] = $65;
+ $66 = (_FormatText(3745,$vararg_buffer)|0);
+ HEAP8[$8>>0] = 80;
+ $67 = ((($8)) + 1|0);
+ HEAP8[$67>>0] = 80;
+ $68 = ((($8)) + 2|0);
+ HEAP8[$68>>0] = 80;
+ $69 = ((($8)) + 3|0);
+ HEAP8[$69>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$8>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$8+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$8+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$8+3>>0]|0;
+ _DrawText($66,20,400,10,$$byval_copy20);
+ $70 = +HEAPF32[3990];
+ $71 = $70;
+ $72 = +HEAPF32[(15964)>>2];
+ $73 = $72;
+ HEAPF64[$vararg_buffer1>>3] = $71;
+ $vararg_ptr4 = ((($vararg_buffer1)) + 8|0);
+ HEAPF64[$vararg_ptr4>>3] = $73;
+ $74 = (_FormatText(3764,$vararg_buffer1)|0);
+ HEAP8[$9>>0] = 80;
+ $75 = ((($9)) + 1|0);
+ HEAP8[$75>>0] = 80;
+ $76 = ((($9)) + 2|0);
+ HEAP8[$76>>0] = 80;
+ $77 = ((($9)) + 3|0);
+ HEAP8[$77>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$9>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$9+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$9+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$9+3>>0]|0;
+ _DrawText($74,20,420,10,$$byval_copy20);
+ HEAP8[$10>>0] = -126;
+ $78 = ((($10)) + 1|0);
+ HEAP8[$78>>0] = -126;
+ $79 = ((($10)) + 2|0);
+ HEAP8[$79>>0] = -126;
+ $80 = ((($10)) + 3|0);
+ HEAP8[$80>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$10>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$10+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$10+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$10+3>>0]|0;
+ _DrawText(3794,250,400,20,$$byval_copy20);
+ $81 = HEAP32[3980]|0;
+ switch ($81|0) {
+ case 0: {
+ HEAP8[$11>>0] = 0;
+ $82 = ((($11)) + 1|0);
+ HEAP8[$82>>0] = 0;
+ $83 = ((($11)) + 2|0);
+ HEAP8[$83>>0] = 0;
+ $84 = ((($11)) + 3|0);
+ HEAP8[$84>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$11>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$11+3>>0]|0;
+ _DrawText(3818,570,400,20,$$byval_copy20);
_EndDrawing();
- $91 = (_WindowShouldClose()|0);
- $92 = ($91|0)==(0);
- if ($92) {
- $$02730 = $$1;$$031 = $66;
- } else {
- break;
- }
+ STACKTOP = sp;return;
+ break;
+ }
+ case 1: {
+ HEAP8[$12>>0] = 0;
+ $85 = ((($12)) + 1|0);
+ HEAP8[$85>>0] = 0;
+ $86 = ((($12)) + 2|0);
+ HEAP8[$86>>0] = 0;
+ $87 = ((($12)) + 3|0);
+ HEAP8[$87>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$12>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$12+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$12+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$12+3>>0]|0;
+ _DrawText(3824,570,400,20,$$byval_copy20);
+ _EndDrawing();
+ STACKTOP = sp;return;
+ break;
+ }
+ case 2: {
+ HEAP8[$13>>0] = 0;
+ $88 = ((($13)) + 1|0);
+ HEAP8[$88>>0] = 0;
+ $89 = ((($13)) + 2|0);
+ HEAP8[$89>>0] = 0;
+ $90 = ((($13)) + 3|0);
+ HEAP8[$90>>0] = -1;
+ ;HEAP8[$$byval_copy20>>0]=HEAP8[$13>>0]|0;HEAP8[$$byval_copy20+1>>0]=HEAP8[$13+1>>0]|0;HEAP8[$$byval_copy20+2>>0]=HEAP8[$13+2>>0]|0;HEAP8[$$byval_copy20+3>>0]=HEAP8[$13+3>>0]|0;
+ _DrawText(3833,570,400,20,$$byval_copy20);
+ _EndDrawing();
+ STACKTOP = sp;return;
+ break;
+ }
+ default: {
+ _EndDrawing();
+ STACKTOP = sp;return;
+ }
}
- ;HEAP32[$$byval_copy25>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy25+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy25+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy25+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy25+16>>2]=HEAP32[$0+16>>2]|0;HEAP32[$$byval_copy25+20>>2]=HEAP32[$0+20>>2]|0;HEAP32[$$byval_copy25+24>>2]=HEAP32[$0+24>>2]|0;HEAP32[$$byval_copy25+28>>2]=HEAP32[$0+28>>2]|0;
- _UnloadSpriteFont($$byval_copy25);
- _ClearDroppedFiles();
- _CloseWindow();
- STACKTOP = sp;return 0;
}
function _VectorLength($0) {
$0 = $0|0;
@@ -8126,7 +11497,7 @@ function _ProcessGestureEvent($0) {
$moveDownPosition$byval_copy11 = sp;
$1 = ((($0)) + 4|0);
$2 = HEAP32[$1>>2]|0;
- HEAP32[3689] = $2;
+ HEAP32[3993] = $2;
$3 = ($2|0)<(2);
$4 = HEAP32[$0>>2]|0;
$5 = ($4|0)==(1);
@@ -8139,7 +11510,7 @@ function _ProcessGestureEvent($0) {
$92 = (($89) + 4)|0;
$93 = $92;
$94 = HEAP32[$93>>2]|0;
- $95 = 14480;
+ $95 = 15648;
$96 = $95;
HEAP32[$96>>2] = $91;
$97 = (($95) + 4)|0;
@@ -8152,48 +11523,48 @@ function _ProcessGestureEvent($0) {
$103 = (($100) + 4)|0;
$104 = $103;
$105 = HEAP32[$104>>2]|0;
- $106 = 14520;
+ $106 = 15688;
$107 = $106;
HEAP32[$107>>2] = $102;
$108 = (($106) + 4)|0;
$109 = $108;
HEAP32[$109>>2] = $105;
- $110 = +HEAPF32[3630];
- $111 = +HEAPF32[3620];
+ $110 = +HEAPF32[3922];
+ $111 = +HEAPF32[3912];
$112 = $110 - $111;
- HEAPF32[3632] = $112;
- $113 = +HEAPF32[(14524)>>2];
- $114 = +HEAPF32[(14484)>>2];
+ HEAPF32[3924] = $112;
+ $113 = +HEAPF32[(15692)>>2];
+ $114 = +HEAPF32[(15652)>>2];
$115 = $113 - $114;
- HEAPF32[(14532)>>2] = $115;
- HEAP32[3688] = 4;
+ HEAPF32[(15700)>>2] = $115;
+ HEAP32[3992] = 4;
STACKTOP = sp;return;
}
switch ($4|0) {
case 2: {
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14512>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14512+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14536>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14536+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15680>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15680+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15704+4>>2]|0;
$116 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
- HEAPF32[3694] = $116;
- $117 = 14512;
+ HEAPF32[3998] = $116;
+ $117 = 15680;
$118 = $117;
$119 = HEAP32[$118>>2]|0;
$120 = (($117) + 4)|0;
$121 = $120;
$122 = HEAP32[$121>>2]|0;
- $123 = 14480;
+ $123 = 15648;
$124 = $123;
HEAP32[$124>>2] = $119;
$125 = (($123) + 4)|0;
$126 = $125;
HEAP32[$126>>2] = $122;
- $127 = 14536;
+ $127 = 15704;
$128 = $127;
$129 = HEAP32[$128>>2]|0;
$130 = (($127) + 4)|0;
$131 = $130;
$132 = HEAP32[$131>>2]|0;
- $133 = 14520;
+ $133 = 15688;
$134 = $133;
HEAP32[$134>>2] = $129;
$135 = (($133) + 4)|0;
@@ -8206,7 +11577,7 @@ function _ProcessGestureEvent($0) {
$141 = (($138) + 4)|0;
$142 = $141;
$143 = HEAP32[$142>>2]|0;
- $144 = 14512;
+ $144 = 15680;
$145 = $144;
HEAP32[$145>>2] = $140;
$146 = (($144) + 4)|0;
@@ -8219,27 +11590,27 @@ function _ProcessGestureEvent($0) {
$152 = (($149) + 4)|0;
$153 = $152;
$154 = HEAP32[$153>>2]|0;
- $155 = 14536;
+ $155 = 15704;
$156 = $155;
HEAP32[$156>>2] = $151;
$157 = (($155) + 4)|0;
$158 = $157;
HEAP32[$158>>2] = $154;
- $159 = +HEAPF32[3634];
- $160 = +HEAPF32[3628];
+ $159 = +HEAPF32[3926];
+ $160 = +HEAPF32[3920];
$161 = $159 - $160;
- HEAPF32[3632] = $161;
- $162 = +HEAPF32[(14540)>>2];
- $163 = +HEAPF32[(14516)>>2];
+ HEAPF32[3924] = $161;
+ $162 = +HEAPF32[(15708)>>2];
+ $163 = +HEAPF32[(15684)>>2];
$164 = $162 - $163;
- HEAPF32[(14532)>>2] = $164;
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14480>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14480+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14512>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14512+4>>2]|0;
+ HEAPF32[(15700)>>2] = $164;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15648+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15680>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15680+4>>2]|0;
$165 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$166 = !($165 >= 0.004999999888241291);
if ($166) {
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14520>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14520+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14536>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14536+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15688>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15688+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15704+4>>2]|0;
$167 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$168 = !($167 >= 0.004999999888241291);
if ($168) {
@@ -8251,31 +11622,31 @@ function _ProcessGestureEvent($0) {
label = 29;
}
if ((label|0) == 29) {
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14512>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14512+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14536>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14536+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15680>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15680+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15704+4>>2]|0;
$169 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
- $170 = +HEAPF32[3694];
+ $170 = +HEAPF32[3998];
$171 = $169 - $170;
$172 = $171 < 0.0;
$$sink11 = $172 ? 256 : 512;
$$sink16 = $$sink11;
}
- HEAP32[3688] = $$sink16;
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14512>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14512+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14536>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14536+4>>2]|0;
+ HEAP32[3992] = $$sink16;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15680>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15680+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15704>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15704+4>>2]|0;
$173 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$174 = 360.0 - $173;
- HEAPF32[3695] = $174;
+ HEAPF32[3999] = $174;
STACKTOP = sp;return;
break;
}
case 0: {
- HEAPF32[3694] = 0.0;
- HEAPF32[3695] = 0.0;
- HEAPF32[3632] = 0.0;
- HEAPF32[(14532)>>2] = 0.0;
- HEAP32[3689] = 0;
- HEAP32[3688] = 0;
+ HEAPF32[3998] = 0.0;
+ HEAPF32[3999] = 0.0;
+ HEAPF32[3924] = 0.0;
+ HEAPF32[(15700)>>2] = 0.0;
+ HEAP32[3993] = 0;
+ HEAP32[3992] = 0;
STACKTOP = sp;return;
break;
}
@@ -8285,22 +11656,22 @@ function _ProcessGestureEvent($0) {
}
}
if ($5) {
- $6 = HEAP32[3690]|0;
+ $6 = HEAP32[3994]|0;
$7 = (($6) + 1)|0;
- HEAP32[3690] = $7;
- $8 = HEAP32[3688]|0;
+ HEAP32[3994] = $7;
+ $8 = HEAP32[3992]|0;
$9 = ($8|0)==(0);
$10 = ($6|0)>(0);
$or$cond = $10 & $9;
if ($or$cond) {
$11 = ((($0)) + 24|0);
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14480>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14480+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15648+4>>2]|0;
;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[$11>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[$11+4>>2]|0;
$12 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$13 = $12 < 0.029999999329447746;
if ($13) {
- HEAP32[3688] = 2;
- HEAP32[3690] = 0;
+ HEAP32[3992] = 2;
+ HEAP32[3994] = 0;
} else {
label = 6;
}
@@ -8308,8 +11679,8 @@ function _ProcessGestureEvent($0) {
label = 6;
}
if ((label|0) == 6) {
- HEAP32[3690] = 1;
- HEAP32[3688] = 1;
+ HEAP32[3994] = 1;
+ HEAP32[3992] = 1;
}
$14 = ((($0)) + 24|0);
$15 = $14;
@@ -8318,19 +11689,19 @@ function _ProcessGestureEvent($0) {
$18 = (($15) + 4)|0;
$19 = $18;
$20 = HEAP32[$19>>2]|0;
- $21 = 14480;
+ $21 = 15648;
$22 = $21;
HEAP32[$22>>2] = $17;
$23 = (($21) + 4)|0;
$24 = $23;
HEAP32[$24>>2] = $20;
- $25 = 14488;
+ $25 = 15656;
$26 = $25;
HEAP32[$26>>2] = $17;
$27 = (($25) + 4)|0;
$28 = $27;
HEAP32[$28>>2] = $20;
- $29 = 14496;
+ $29 = 15664;
$30 = $29;
HEAP32[$30>>2] = $17;
$31 = (($29) + 4)|0;
@@ -8338,14 +11709,14 @@ function _ProcessGestureEvent($0) {
HEAP32[$32>>2] = $20;
$33 = ((($0)) + 8|0);
$34 = HEAP32[$33>>2]|0;
- HEAP32[2] = $34;
- HEAPF32[3626] = 0.0;
- HEAPF32[(14508)>>2] = 0.0;
+ HEAP32[4] = $34;
+ HEAPF32[3918] = 0.0;
+ HEAPF32[(15676)>>2] = 0.0;
STACKTOP = sp;return;
}
switch ($4|0) {
case 0: {
- $35 = HEAP32[3688]|0;
+ $35 = HEAP32[3992]|0;
$36 = ($35|0)==(8);
if ($36) {
$37 = ((($0)) + 24|0);
@@ -8355,31 +11726,31 @@ function _ProcessGestureEvent($0) {
$41 = (($38) + 4)|0;
$42 = $41;
$43 = HEAP32[$42>>2]|0;
- $44 = 14496;
+ $44 = 15664;
$45 = $44;
HEAP32[$45>>2] = $40;
$46 = (($44) + 4)|0;
$47 = $46;
HEAP32[$47>>2] = $43;
}
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14480>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14480+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14496>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14496+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15648+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15664>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15664+4>>2]|0;
$48 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$49 = $48 / 0.0;
- HEAPF32[3691] = $49;
- HEAP32[3692] = 0;
+ HEAPF32[3995] = $49;
+ HEAP32[3996] = 0;
$50 = $49 > 5.0000002374872565E-4;
if ($50) {
- $51 = HEAP32[2]|0;
+ $51 = HEAP32[4]|0;
$52 = ((($0)) + 8|0);
$53 = HEAP32[$52>>2]|0;
$54 = ($51|0)==($53|0);
if ($54) {
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14480>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14480+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14496>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14496+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15648+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15664>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15664+4>>2]|0;
$55 = (+_Vector2Angle($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$56 = 360.0 - $55;
- HEAPF32[3693] = $56;
+ HEAPF32[3997] = $56;
$57 = $56 < 30.0;
$58 = $56 > 330.0;
$or$cond3 = $57 | $58;
@@ -8410,22 +11781,22 @@ function _ProcessGestureEvent($0) {
label = 16;
}
if ((label|0) == 16) {
- HEAPF32[3691] = 0.0;
- HEAPF32[3693] = 0.0;
+ HEAPF32[3995] = 0.0;
+ HEAPF32[3997] = 0.0;
$$sink10 = 0;
}
- HEAP32[3688] = $$sink10;
- HEAPF32[3622] = 0.0;
- HEAPF32[(14492)>>2] = 0.0;
- HEAP32[3689] = 0;
+ HEAP32[3992] = $$sink10;
+ HEAPF32[3914] = 0.0;
+ HEAPF32[(15660)>>2] = 0.0;
+ HEAP32[3993] = 0;
STACKTOP = sp;return;
break;
}
case 2: {
- $65 = HEAP32[3692]|0;
+ $65 = HEAP32[3996]|0;
$66 = ($65|0)==(0);
if ($66) {
- HEAP32[3692] = 1;
+ HEAP32[3996] = 1;
}
$67 = ((($0)) + 24|0);
$68 = $67;
@@ -8434,31 +11805,31 @@ function _ProcessGestureEvent($0) {
$71 = (($68) + 4)|0;
$72 = $71;
$73 = HEAP32[$72>>2]|0;
- $74 = 14512;
+ $74 = 15680;
$75 = $74;
HEAP32[$75>>2] = $70;
$76 = (($74) + 4)|0;
$77 = $76;
HEAP32[$77>>2] = $73;
- $78 = HEAP32[3688]|0;
+ $78 = HEAP32[3992]|0;
$79 = ($78|0)==(4);
if ($79) {
- ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[14480>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[14480+4>>2]|0;
- ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[14512>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[14512+4>>2]|0;
+ ;HEAP32[$moveDownPosition$byval_copy11>>2]=HEAP32[15648>>2]|0;HEAP32[$moveDownPosition$byval_copy11+4>>2]=HEAP32[15648+4>>2]|0;
+ ;HEAP32[$moveDownPosition2$byval_copy12>>2]=HEAP32[15680>>2]|0;HEAP32[$moveDownPosition2$byval_copy12+4>>2]=HEAP32[15680+4>>2]|0;
$80 = (+_Vector2Distance($moveDownPosition$byval_copy11,$moveDownPosition2$byval_copy12));
$81 = !($80 >= 0.014999999664723873);
if (!($81)) {
- HEAP32[3688] = 8;
+ HEAP32[3992] = 8;
}
}
- $82 = +HEAPF32[3628];
- $83 = +HEAPF32[3622];
+ $82 = +HEAPF32[3920];
+ $83 = +HEAPF32[3914];
$84 = $82 - $83;
- HEAPF32[3626] = $84;
- $85 = +HEAPF32[(14516)>>2];
- $86 = +HEAPF32[(14492)>>2];
+ HEAPF32[3918] = $84;
+ $85 = +HEAPF32[(15684)>>2];
+ $86 = +HEAPF32[(15660)>>2];
$87 = $85 - $86;
- HEAPF32[(14508)>>2] = $87;
+ HEAPF32[(15676)>>2] = $87;
STACKTOP = sp;return;
break;
}
@@ -8509,16 +11880,16 @@ function _Vector2Angle($0,$1) {
function _UpdateGestures() {
var $$off = 0, $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond3 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3688]|0;
+ $0 = HEAP32[3992]|0;
$$off = (($0) + -1)|0;
$1 = ($$off>>>0)<(2);
- $2 = HEAP32[3689]|0;
+ $2 = HEAP32[3993]|0;
$3 = ($2|0)<(2);
$or$cond3 = $1 & $3;
if ($or$cond3) {
- HEAP32[3688] = 4;
+ HEAP32[3992] = 4;
}
- $4 = HEAP32[3688]|0;
+ $4 = HEAP32[3992]|0;
$5 = (($4) + -16)|0;
$6 = $5 >>> 4;
$7 = $5 << 28;
@@ -8531,14 +11902,14 @@ function _UpdateGestures() {
return;
}
}
- HEAP32[3688] = 0;
+ HEAP32[3992] = 0;
return;
}
function _GetMousePosition($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = 14544;
+ $1 = 15712;
$2 = $1;
$3 = HEAP32[$2>>2]|0;
$4 = (($1) + 4)|0;
@@ -8555,7 +11926,7 @@ function _GetMousePosition($0) {
function _GetMouseWheelMove() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3699]|0;
+ $0 = HEAP32[4003]|0;
$1 = (($0|0) / 100)&-1;
return ($1|0);
}
@@ -8571,20 +11942,20 @@ function _IsKeyDown($0) {
function _GetScreenWidth() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3698]|0;
+ $0 = HEAP32[4002]|0;
return ($0|0);
}
function _GetScreenHeight() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3697]|0;
+ $0 = HEAP32[4001]|0;
return ($0|0);
}
function _GetKeyStatus($0) {
$0 = $0|0;
var $1 = 0, $2 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = HEAP32[3696]|0;
+ $1 = HEAP32[4000]|0;
$2 = (_glfwGetKey(($1|0),($0|0))|0);
return ($2|0);
}
@@ -8596,27 +11967,27 @@ function _InitWindow($0,$1,$2) {
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
$vararg_buffer = sp;
- _TraceLog(0,3835,$vararg_buffer);
- HEAP32[3700] = $2;
+ _TraceLog(0,3843,$vararg_buffer);
+ HEAP32[4004] = $2;
_InitGraphicsDevice($0,$1);
_LoadDefaultFont();
_InitTimer();
(_emscripten_set_fullscreenchange_callback((0|0),(0|0),1,(4|0))|0);
- (_emscripten_set_touchstart_callback((3864|0),(0|0),1,(5|0))|0);
- (_emscripten_set_touchend_callback((3864|0),(0|0),1,(5|0))|0);
- (_emscripten_set_touchmove_callback((3864|0),(0|0),1,(5|0))|0);
- (_emscripten_set_touchcancel_callback((3864|0),(0|0),1,(5|0))|0);
+ (_emscripten_set_touchstart_callback((3872|0),(0|0),1,(5|0))|0);
+ (_emscripten_set_touchend_callback((3872|0),(0|0),1,(5|0))|0);
+ (_emscripten_set_touchmove_callback((3872|0),(0|0),1,(5|0))|0);
+ (_emscripten_set_touchcancel_callback((3872|0),(0|0),1,(5|0))|0);
(_emscripten_set_gamepadconnected_callback((0|0),1,(6|0))|0);
(_emscripten_set_gamepaddisconnected_callback((0|0),1,(6|0))|0);
- $3 = HEAP32[3698]|0;
+ $3 = HEAP32[4002]|0;
$4 = (+($3|0));
$5 = $4 * 0.5;
- HEAPF32[3636] = $5;
- $6 = HEAP32[3697]|0;
+ HEAPF32[3928] = $5;
+ $6 = HEAP32[4001]|0;
$7 = (+($6|0));
$8 = $7 * 0.5;
- HEAPF32[(14548)>>2] = $8;
- $9 = HEAP32[3701]|0;
+ HEAPF32[(15716)>>2] = $8;
+ $9 = HEAP32[4005]|0;
$10 = ($9|0)==(0);
if ($10) {
STACKTOP = sp;return;
@@ -8635,11 +12006,11 @@ function _TraceLog($0,$1,$varargs) {
$2 = sp;
switch ($0|0) {
case 0: {
- ;HEAP8[14584>>0]=HEAP8[8386>>0]|0;HEAP8[14584+1>>0]=HEAP8[8386+1>>0]|0;HEAP8[14584+2>>0]=HEAP8[8386+2>>0]|0;HEAP8[14584+3>>0]=HEAP8[8386+3>>0]|0;HEAP8[14584+4>>0]=HEAP8[8386+4>>0]|0;HEAP8[14584+5>>0]=HEAP8[8386+5>>0]|0;HEAP8[14584+6>>0]=HEAP8[8386+6>>0]|0;
+ ;HEAP8[15752>>0]=HEAP8[8394>>0]|0;HEAP8[15752+1>>0]=HEAP8[8394+1>>0]|0;HEAP8[15752+2>>0]=HEAP8[8394+2>>0]|0;HEAP8[15752+3>>0]=HEAP8[8394+3>>0]|0;HEAP8[15752+4>>0]=HEAP8[8394+4>>0]|0;HEAP8[15752+5>>0]=HEAP8[8394+5>>0]|0;HEAP8[15752+6>>0]=HEAP8[8394+6>>0]|0;
break;
}
case 1: {
- $3 = 14584;
+ $3 = 15752;
$4 = $3;
HEAP32[$4>>2] = 1330795077;
$5 = (($3) + 4)|0;
@@ -8648,11 +12019,11 @@ function _TraceLog($0,$1,$varargs) {
break;
}
case 2: {
- dest=14584; src=8393; 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));
+ dest=15752; src=8401; 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));
break;
}
case 3: {
- $7 = 14584;
+ $7 = 15752;
$8 = $7;
HEAP32[$8>>2] = 1430406468;
$9 = (($7) + 4)|0;
@@ -8663,16 +12034,16 @@ function _TraceLog($0,$1,$varargs) {
default: {
}
}
- (_strcat(14584,$1)|0);
- $strlen = (_strlen(14584)|0);
- $endptr = (14584 + ($strlen)|0);
+ (_strcat(15752,$1)|0);
+ $strlen = (_strlen(15752)|0);
+ $endptr = (15752 + ($strlen)|0);
HEAP8[$endptr>>0]=10&255;HEAP8[$endptr+1>>0]=10>>8;
HEAP32[$2>>2] = $varargs;
$11 = ($0|0)==(3);
if ($11) {
STACKTOP = sp;return;
}
- (_vprintf(14584,$2)|0);
+ (_vprintf(15752,$2)|0);
$12 = ($0|0)==(1);
if ($12) {
_exit(1);
@@ -8704,22 +12075,22 @@ function _InitGraphicsDevice($0,$1) {
$vararg_buffer = sp;
$2 = sp + 72|0;
$3 = sp + 140|0;
- HEAP32[3698] = $0;
- HEAP32[3697] = $1;
+ HEAP32[4002] = $0;
+ HEAP32[4001] = $1;
_MatrixIdentity($2);
- dest=14880; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16096; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
(_glfwSetErrorCallback((1|0))|0);
$4 = (_glfwInit()|0);
$5 = ($4|0)==(0);
if ($5) {
- _TraceLog(1,4528,$vararg_buffer);
+ _TraceLog(1,4536,$vararg_buffer);
}
- $6 = HEAP32[3698]|0;
- HEAP32[3736] = $6;
- $7 = HEAP32[3697]|0;
- HEAP32[3737] = $7;
+ $6 = HEAP32[4002]|0;
+ HEAP32[4040] = $6;
+ $7 = HEAP32[4001]|0;
+ HEAP32[4041] = $7;
_glfwDefaultWindowHints();
- $8 = HEAP8[17596]|0;
+ $8 = HEAP8[18812]|0;
$9 = $8 & 4;
$10 = ($9<<24>>24)==(0);
if ($10) {
@@ -8727,18 +12098,18 @@ function _InitGraphicsDevice($0,$1) {
} else {
_glfwWindowHint(131075,1);
}
- $11 = HEAP8[17596]|0;
+ $11 = HEAP8[18812]|0;
$12 = $11 & 8;
$13 = ($12<<24>>24)==(0);
if (!($13)) {
_glfwWindowHint(131077,1);
}
- $14 = HEAP8[17596]|0;
+ $14 = HEAP8[18812]|0;
$15 = $14 & 32;
$16 = ($15<<24>>24)==(0);
if (!($16)) {
_glfwWindowHint(135181,4);
- _TraceLog(0,4554,$vararg_buffer1);
+ _TraceLog(0,4562,$vararg_buffer1);
}
$17 = (_rlGetVersion()|0);
$18 = ($17|0)==(2);
@@ -8755,18 +12126,18 @@ function _InitGraphicsDevice($0,$1) {
_glfwWindowHint(139270,0);
}
}
- $21 = HEAP32[3738]|0;
+ $21 = HEAP32[4042]|0;
$22 = ($21|0)==(0);
if ($22) {
- $47 = HEAP32[3698]|0;
- $48 = HEAP32[3697]|0;
- $49 = HEAP32[3700]|0;
+ $47 = HEAP32[4002]|0;
+ $48 = HEAP32[4001]|0;
+ $49 = HEAP32[4004]|0;
$50 = (_glfwCreateWindow(($47|0),($48|0),($49|0),(0|0),(0|0))|0);
- HEAP32[3696] = $50;
- $51 = HEAP32[3698]|0;
- HEAP32[3739] = $51;
- $52 = HEAP32[3697]|0;
- HEAP32[3740] = $52;
+ HEAP32[4000] = $50;
+ $51 = HEAP32[4002]|0;
+ HEAP32[4043] = $51;
+ $52 = HEAP32[4001]|0;
+ HEAP32[4044] = $52;
$54 = $50;
} else {
$23 = (_glfwGetPrimaryMonitor()|0);
@@ -8775,9 +12146,9 @@ function _InitGraphicsDevice($0,$1) {
$26 = ($25|0)>(0);
L22: do {
if ($26) {
- $27 = HEAP32[3698]|0;
+ $27 = HEAP32[4002]|0;
$28 = HEAP32[$$byval_copy>>2]|0;
- $29 = HEAP32[3697]|0;
+ $29 = HEAP32[4001]|0;
$$015 = 0;
while(1) {
$30 = (($24) + (($$015*24)|0)|0);
@@ -8799,87 +12170,87 @@ function _InitGraphicsDevice($0,$1) {
break L22;
}
}
- HEAP32[3736] = $31;
- HEAP32[3737] = $34;
+ HEAP32[4040] = $31;
+ HEAP32[4041] = $34;
}
} while(0);
- $38 = HEAP32[3736]|0;
- $39 = HEAP32[3737]|0;
+ $38 = HEAP32[4040]|0;
+ $39 = HEAP32[4041]|0;
HEAP32[$vararg_buffer3>>2] = $38;
$vararg_ptr5 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr5>>2] = $39;
- _TraceLog(2,4579,$vararg_buffer3);
- $40 = HEAP32[3736]|0;
- $41 = HEAP32[3737]|0;
+ _TraceLog(2,4587,$vararg_buffer3);
+ $40 = HEAP32[4040]|0;
+ $41 = HEAP32[4041]|0;
_SetupFramebufferSize($40,$41);
- $42 = HEAP32[3736]|0;
- $43 = HEAP32[3737]|0;
- $44 = HEAP32[3700]|0;
+ $42 = HEAP32[4040]|0;
+ $43 = HEAP32[4041]|0;
+ $44 = HEAP32[4004]|0;
$45 = (_glfwGetPrimaryMonitor()|0);
$46 = (_glfwCreateWindow(($42|0),($43|0),($44|0),($45|0),(0|0))|0);
- HEAP32[3696] = $46;
+ HEAP32[4000] = $46;
$54 = $46;
}
$53 = ($54|0)==(0|0);
if ($53) {
_glfwTerminate();
- _TraceLog(1,4617,$vararg_buffer6);
+ _TraceLog(1,4625,$vararg_buffer6);
} else {
- _TraceLog(0,4650,$vararg_buffer8);
- $55 = HEAP32[3739]|0;
- $56 = HEAP32[3740]|0;
+ _TraceLog(0,4658,$vararg_buffer8);
+ $55 = HEAP32[4043]|0;
+ $56 = HEAP32[4044]|0;
HEAP32[$vararg_buffer10>>2] = $55;
$vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
HEAP32[$vararg_ptr13>>2] = $56;
- _TraceLog(0,4690,$vararg_buffer10);
- $57 = HEAP32[3698]|0;
- $58 = HEAP32[3697]|0;
+ _TraceLog(0,4698,$vararg_buffer10);
+ $57 = HEAP32[4002]|0;
+ $58 = HEAP32[4001]|0;
HEAP32[$vararg_buffer14>>2] = $57;
$vararg_ptr17 = ((($vararg_buffer14)) + 4|0);
HEAP32[$vararg_ptr17>>2] = $58;
- _TraceLog(0,4711,$vararg_buffer14);
- $59 = HEAP32[3741]|0;
- $60 = HEAP32[3742]|0;
+ _TraceLog(0,4719,$vararg_buffer14);
+ $59 = HEAP32[4045]|0;
+ $60 = HEAP32[4046]|0;
HEAP32[$vararg_buffer18>>2] = $59;
$vararg_ptr21 = ((($vararg_buffer18)) + 4|0);
HEAP32[$vararg_ptr21>>2] = $60;
- _TraceLog(0,4732,$vararg_buffer18);
+ _TraceLog(0,4740,$vararg_buffer18);
}
- $61 = HEAP32[3696]|0;
+ $61 = HEAP32[4000]|0;
(_glfwSetWindowSizeCallback(($61|0),(1|0))|0);
- $62 = HEAP32[3696]|0;
+ $62 = HEAP32[4000]|0;
(_glfwSetCursorEnterCallback(($62|0),(2|0))|0);
- $63 = HEAP32[3696]|0;
+ $63 = HEAP32[4000]|0;
(_glfwSetKeyCallback(($63|0),(1|0))|0);
- $64 = HEAP32[3696]|0;
+ $64 = HEAP32[4000]|0;
(_glfwSetMouseButtonCallback(($64|0),(1|0))|0);
- $65 = HEAP32[3696]|0;
+ $65 = HEAP32[4000]|0;
(_glfwSetCursorPosCallback(($65|0),(1|0))|0);
- $66 = HEAP32[3696]|0;
+ $66 = HEAP32[4000]|0;
(_glfwSetCharCallback(($66|0),(3|0))|0);
- $67 = HEAP32[3696]|0;
+ $67 = HEAP32[4000]|0;
(_glfwSetScrollCallback(($67|0),(2|0))|0);
- $68 = HEAP32[3696]|0;
+ $68 = HEAP32[4000]|0;
(_glfwSetWindowIconifyCallback(($68|0),(4|0))|0);
- $69 = HEAP32[3696]|0;
+ $69 = HEAP32[4000]|0;
_glfwMakeContextCurrent(($69|0));
_glfwSwapInterval(0);
- $70 = HEAP8[17596]|0;
+ $70 = HEAP8[18812]|0;
$71 = $70 & 64;
$72 = ($71<<24>>24)==(0);
if ($72) {
- $73 = HEAP32[3698]|0;
- $74 = HEAP32[3697]|0;
+ $73 = HEAP32[4002]|0;
+ $74 = HEAP32[4001]|0;
_rlglInit($73,$74);
_SetupViewport();
_rlMatrixMode(5889);
_rlLoadIdentity();
- $75 = HEAP32[3739]|0;
- $76 = HEAP32[3741]|0;
+ $75 = HEAP32[4043]|0;
+ $76 = HEAP32[4045]|0;
$77 = (($75) - ($76))|0;
$78 = (+($77|0));
- $79 = HEAP32[3740]|0;
- $80 = HEAP32[3742]|0;
+ $79 = HEAP32[4044]|0;
+ $80 = HEAP32[4046]|0;
$81 = (($79) - ($80))|0;
$82 = (+($81|0));
_rlOrtho(0.0,$78,$82,0.0,0.0,1.0);
@@ -8897,19 +12268,19 @@ function _InitGraphicsDevice($0,$1) {
STACKTOP = sp;return;
}
_glfwSwapInterval(1);
- _TraceLog(0,4757,$vararg_buffer22);
- $73 = HEAP32[3698]|0;
- $74 = HEAP32[3697]|0;
+ _TraceLog(0,4765,$vararg_buffer22);
+ $73 = HEAP32[4002]|0;
+ $74 = HEAP32[4001]|0;
_rlglInit($73,$74);
_SetupViewport();
_rlMatrixMode(5889);
_rlLoadIdentity();
- $75 = HEAP32[3739]|0;
- $76 = HEAP32[3741]|0;
+ $75 = HEAP32[4043]|0;
+ $76 = HEAP32[4045]|0;
$77 = (($75) - ($76))|0;
$78 = (+($77|0));
- $79 = HEAP32[3740]|0;
- $80 = HEAP32[3742]|0;
+ $79 = HEAP32[4044]|0;
+ $80 = HEAP32[4046]|0;
$81 = (($79) - ($80))|0;
$82 = (+($81|0));
_rlOrtho(0.0,$78,$82,0.0,0.0,1.0);
@@ -8937,12 +12308,12 @@ function _LoadDefaultFont() {
$vararg_buffer = sp;
$0 = sp + 4|0;
$1 = sp + 24|0;
- HEAP32[(14848)>>2] = 224;
+ HEAP32[(16064)>>2] = 224;
$2 = (_malloc(65536)|0);
_memset(($2|0),0,65536)|0;
$$095104 = 0;$$096103 = 0;
while(1) {
- $3 = (12 + ($$095104<<2)|0);
+ $3 = (20 + ($$095104<<2)|0);
$4 = HEAP32[$3>>2]|0;
$$097102 = 31;
while(1) {
@@ -8978,27 +12349,27 @@ function _LoadDefaultFont() {
_free($2);
;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0;
_LoadTextureFromImage($1,$$byval_copy1);
- ;HEAP32[14824>>2]=HEAP32[$1>>2]|0;HEAP32[14824+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[14824+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[14824+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[14824+16>>2]=HEAP32[$1+16>>2]|0;
+ ;HEAP32[16040>>2]=HEAP32[$1>>2]|0;HEAP32[16040+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[16040+8>>2]=HEAP32[$1+8>>2]|0;HEAP32[16040+12>>2]=HEAP32[$1+12>>2]|0;HEAP32[16040+16>>2]=HEAP32[$1+16>>2]|0;
;HEAP32[$$byval_copy1>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy1+16>>2]=HEAP32[$0+16>>2]|0;
_UnloadImage($$byval_copy1);
- $5 = HEAP32[(14848)>>2]|0;
+ $5 = HEAP32[(16064)>>2]|0;
$6 = $5 << 5;
$7 = (_malloc($6)|0);
- HEAP32[(14852)>>2] = $7;
+ HEAP32[(16068)>>2] = $7;
$8 = ($5|0)>(0);
if (!($8)) {
$$lcssa = $7;
$22 = ((($$lcssa)) + 16|0);
$23 = HEAP32[$22>>2]|0;
- HEAP32[(14844)>>2] = $23;
- $24 = HEAP32[3706]|0;
+ HEAP32[(16060)>>2] = $23;
+ $24 = HEAP32[4010]|0;
HEAP32[$vararg_buffer>>2] = $24;
- _TraceLog(0,4052,$vararg_buffer);
+ _TraceLog(0,4060,$vararg_buffer);
STACKTOP = sp;return;
}
- $9 = HEAP32[(14828)>>2]|0;
- $10 = HEAP32[(14848)>>2]|0;
- $11 = HEAP32[(14852)>>2]|0;
+ $9 = HEAP32[(16044)>>2]|0;
+ $10 = HEAP32[(16064)>>2]|0;
+ $11 = HEAP32[(16068)>>2]|0;
$$0101 = 0;$$090100 = 1;$$09299 = 0;$27 = $7;
while(1) {
$25 = (($$0101) + 32)|0;
@@ -9010,7 +12381,7 @@ function _LoadDefaultFont() {
$30 = (($29) + 1)|0;
$31 = (((($27) + ($$0101<<5)|0)) + 8|0);
HEAP32[$31>>2] = $30;
- $32 = (2060 + ($$0101<<2)|0);
+ $32 = (2068 + ($$0101<<2)|0);
$33 = HEAP32[$32>>2]|0;
$34 = (((($27) + ($$0101<<5)|0)) + 12|0);
HEAP32[$34>>2] = $33;
@@ -9047,10 +12418,10 @@ function _LoadDefaultFont() {
}
$22 = ((($$lcssa)) + 16|0);
$23 = HEAP32[$22>>2]|0;
- HEAP32[(14844)>>2] = $23;
- $24 = HEAP32[3706]|0;
+ HEAP32[(16060)>>2] = $23;
+ $24 = HEAP32[4010]|0;
HEAP32[$vararg_buffer>>2] = $24;
- _TraceLog(0,4052,$vararg_buffer);
+ _TraceLog(0,4060,$vararg_buffer);
STACKTOP = sp;return;
}
function _InitTimer() {
@@ -9059,7 +12430,7 @@ function _InitTimer() {
$0 = (_time((0|0))|0);
_srand($0);
$1 = (+_GetTime());
- HEAPF64[1822] = $1;
+ HEAPF64[1968] = $1;
return;
}
function _EmscriptenFullscreenChangeCallback($0,$1,$2) {
@@ -9089,7 +12460,7 @@ function _EmscriptenFullscreenChangeCallback($0,$1,$2) {
HEAP32[$vararg_ptr8>>2] = $10;
$vararg_ptr9 = ((($vararg_buffer4)) + 12|0);
HEAP32[$vararg_ptr9>>2] = $12;
- _TraceLog(0,3985,$vararg_buffer4);
+ _TraceLog(0,3993,$vararg_buffer4);
STACKTOP = sp;return 0;
} else {
HEAP32[$vararg_buffer>>2] = $6;
@@ -9099,7 +12470,7 @@ function _EmscriptenFullscreenChangeCallback($0,$1,$2) {
HEAP32[$vararg_ptr2>>2] = $10;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $12;
- _TraceLog(0,3916,$vararg_buffer);
+ _TraceLog(0,3924,$vararg_buffer);
STACKTOP = sp;return 0;
}
return (0)|0;
@@ -9176,7 +12547,7 @@ function _EmscriptenInputCallback($0,$1,$2) {
$28 = (($25) + 4)|0;
$29 = $28;
$30 = HEAP32[$29>>2]|0;
- $31 = 14560;
+ $31 = 15728;
$32 = $31;
HEAP32[$32>>2] = $27;
$33 = (($31) + 4)|0;
@@ -9189,7 +12560,7 @@ function _EmscriptenInputCallback($0,$1,$2) {
$39 = (($36) + 4)|0;
$40 = $39;
$41 = HEAP32[$40>>2]|0;
- $42 = (14568);
+ $42 = (15736);
$43 = $42;
HEAP32[$43>>2] = $38;
$44 = (($42) + 4)|0;
@@ -9245,7 +12616,7 @@ function _EmscriptenGamepadCallback($0,$1,$2) {
}
$9 = ((($1)) + 1300|0);
$10 = HEAP32[$9>>2]|0;
- $11 = (14808 + ($10<<2)|0);
+ $11 = (16024 + ($10<<2)|0);
HEAP32[$11>>2] = $$sink;
return 0;
}
@@ -9259,19 +12630,19 @@ function _SetTargetFPS($0) {
$2 = (+($0|0));
$3 = 1.0 / $2;
$$ = $1 ? 0.0 : $3;
- HEAPF64[1819] = $$;
+ HEAPF64[1965] = $$;
$4 = $3;
$$op = $4 * 1000.0;
$5 = $$op;
$6 = $1 ? 0.0 : $5;
HEAPF64[$vararg_buffer>>3] = $6;
- _TraceLog(0,3872,$vararg_buffer);
+ _TraceLog(0,3880,$vararg_buffer);
STACKTOP = sp;return;
}
function _LogoAnimation() {
var label = 0, sp = 0;
sp = STACKTOP;
- HEAP32[3701] = 0;
+ HEAP32[4005] = 0;
return;
}
function _GetTime() {
@@ -9370,7 +12741,7 @@ function _ImageFormat($0,$1) {
$6 = ($1|0)<(8);
$or$cond = $6 & $5;
if (!($or$cond)) {
- _TraceLog(2,4428,$vararg_buffer);
+ _TraceLog(2,4436,$vararg_buffer);
STACKTOP = sp;return;
}
;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2]|0;
@@ -9847,52 +13218,52 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
$5 = sp + 68|0;
_glBindTexture(3553,0);
HEAP32[$5>>2] = 0;
- $6 = HEAP32[3714]|0;
+ $6 = HEAP32[4018]|0;
$7 = ($6|0)==(0);
$8 = $3 & -4;
$switch = ($8|0)==(8);
$or$cond100 = $switch & $7;
if ($or$cond100) {
- _TraceLog(2,4097,$vararg_buffer);
+ _TraceLog(2,4105,$vararg_buffer);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
}
- $9 = HEAP32[3715]|0;
+ $9 = HEAP32[4019]|0;
$10 = ($9|0)==(0);
$11 = ($3|0)==(12);
$or$cond7 = $11 & $10;
if ($or$cond7) {
- _TraceLog(2,4141,$vararg_buffer1);
+ _TraceLog(2,4149,$vararg_buffer1);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
}
- $12 = HEAP32[3716]|0;
+ $12 = HEAP32[4020]|0;
$13 = ($12|0)==(0);
$$off = (($3) + -13)|0;
$14 = ($$off>>>0)<(2);
$or$cond = $14 & $13;
if ($or$cond) {
- _TraceLog(2,4186,$vararg_buffer3);
+ _TraceLog(2,4194,$vararg_buffer3);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
}
- $15 = HEAP32[3717]|0;
+ $15 = HEAP32[4021]|0;
$16 = ($15|0)==(0);
$$off92 = (($3) + -15)|0;
$17 = ($$off92>>>0)<(2);
$or$cond96 = $17 & $16;
if ($or$cond96) {
- _TraceLog(2,4231,$vararg_buffer5);
+ _TraceLog(2,4239,$vararg_buffer5);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
}
- $18 = HEAP32[3718]|0;
+ $18 = HEAP32[4022]|0;
$19 = ($18|0)==(0);
$$off93 = (($3) + -17)|0;
$20 = ($$off93>>>0)<(2);
$or$cond98 = $20 & $19;
if ($or$cond98) {
- _TraceLog(2,4276,$vararg_buffer7);
+ _TraceLog(2,4284,$vararg_buffer7);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
}
@@ -9930,7 +13301,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 8: {
- $22 = HEAP32[3714]|0;
+ $22 = HEAP32[4018]|0;
$23 = ($22|0)==(0);
if (!($23)) {
_LoadCompressedTexture($0,$1,$2,$4,33776);
@@ -9938,7 +13309,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 9: {
- $24 = HEAP32[3714]|0;
+ $24 = HEAP32[4018]|0;
$25 = ($24|0)==(0);
if (!($25)) {
_LoadCompressedTexture($0,$1,$2,$4,33777);
@@ -9946,7 +13317,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 10: {
- $26 = HEAP32[3714]|0;
+ $26 = HEAP32[4018]|0;
$27 = ($26|0)==(0);
if (!($27)) {
_LoadCompressedTexture($0,$1,$2,$4,33778);
@@ -9954,7 +13325,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 11: {
- $28 = HEAP32[3714]|0;
+ $28 = HEAP32[4018]|0;
$29 = ($28|0)==(0);
if (!($29)) {
_LoadCompressedTexture($0,$1,$2,$4,33779);
@@ -9962,7 +13333,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 12: {
- $30 = HEAP32[3715]|0;
+ $30 = HEAP32[4019]|0;
$31 = ($30|0)==(0);
if (!($31)) {
_LoadCompressedTexture($0,$1,$2,$4,36196);
@@ -9970,7 +13341,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 13: {
- $32 = HEAP32[3716]|0;
+ $32 = HEAP32[4020]|0;
$33 = ($32|0)==(0);
if (!($33)) {
_LoadCompressedTexture($0,$1,$2,$4,37492);
@@ -9978,7 +13349,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 14: {
- $34 = HEAP32[3716]|0;
+ $34 = HEAP32[4020]|0;
$35 = ($34|0)==(0);
if (!($35)) {
_LoadCompressedTexture($0,$1,$2,$4,37496);
@@ -9986,7 +13357,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 15: {
- $36 = HEAP32[3717]|0;
+ $36 = HEAP32[4021]|0;
$37 = ($36|0)==(0);
if (!($37)) {
_LoadCompressedTexture($0,$1,$2,$4,35840);
@@ -9994,7 +13365,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 16: {
- $38 = HEAP32[3717]|0;
+ $38 = HEAP32[4021]|0;
$39 = ($38|0)==(0);
if (!($39)) {
_LoadCompressedTexture($0,$1,$2,$4,35842);
@@ -10002,7 +13373,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 17: {
- $40 = HEAP32[3718]|0;
+ $40 = HEAP32[4022]|0;
$41 = ($40|0)==(0);
if (!($41)) {
_LoadCompressedTexture($0,$1,$2,$4,37808);
@@ -10010,7 +13381,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
case 18: {
- $42 = HEAP32[3718]|0;
+ $42 = HEAP32[4022]|0;
$43 = ($42|0)==(0);
if (!($43)) {
_LoadCompressedTexture($0,$1,$2,$4,37815);
@@ -10018,11 +13389,11 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
break;
}
default: {
- _TraceLog(2,4321,$vararg_buffer9);
+ _TraceLog(2,4329,$vararg_buffer9);
}
}
} while(0);
- $44 = HEAP32[3719]|0;
+ $44 = HEAP32[4023]|0;
$45 = ($44|0)==(0);
if ($45) {
_glTexParameteri(3553,10242,33071);
@@ -10037,7 +13408,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
$46 = HEAP32[$5>>2]|0;
$47 = ($46|0)==(0);
if ($47) {
- _TraceLog(2,4399,$vararg_buffer15);
+ _TraceLog(2,4407,$vararg_buffer15);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
} else {
@@ -10046,7 +13417,7 @@ function _rlglLoadTexture($0,$1,$2,$3,$4) {
HEAP32[$vararg_ptr13>>2] = $1;
$vararg_ptr14 = ((($vararg_buffer11)) + 8|0);
HEAP32[$vararg_ptr14>>2] = $2;
- _TraceLog(0,4350,$vararg_buffer11);
+ _TraceLog(0,4358,$vararg_buffer11);
$$0 = HEAP32[$5>>2]|0;
STACKTOP = sp;return ($$0|0);
}
@@ -10320,7 +13691,7 @@ function _GetImageData($0) {
break;
}
default: {
- _TraceLog(2,4482,$vararg_buffer);
+ _TraceLog(2,4490,$vararg_buffer);
$$1 = $$0106;
}
}
@@ -10347,7 +13718,7 @@ function _ErrorCallback($0,$1) {
HEAP32[$vararg_buffer>>2] = $0;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $1;
- _TraceLog(2,8348,$vararg_buffer);
+ _TraceLog(2,8356,$vararg_buffer);
STACKTOP = sp;return;
}
function _rlGetVersion() {
@@ -10368,20 +13739,20 @@ function _SetupFramebufferSize($0,$1) {
$vararg_buffer4 = sp + 16|0;
$vararg_buffer = sp;
$2 = sp + 40|0;
- $3 = HEAP32[3698]|0;
+ $3 = HEAP32[4002]|0;
$4 = ($3|0)>($0|0);
if (!($4)) {
- $5 = HEAP32[3697]|0;
+ $5 = HEAP32[4001]|0;
$6 = ($5|0)>($1|0);
if (!($6)) {
$30 = ($3|0)<($0|0);
$31 = ($5|0)<($1|0);
$or$cond = $30 | $31;
if (!($or$cond)) {
- HEAP32[3739] = $3;
- HEAP32[3740] = $5;
- HEAP32[3741] = 0;
- HEAP32[3742] = 0;
+ HEAP32[4043] = $3;
+ HEAP32[4044] = $5;
+ HEAP32[4045] = 0;
+ HEAP32[4046] = 0;
STACKTOP = sp;return;
}
HEAP32[$vararg_buffer8>>2] = $3;
@@ -10391,13 +13762,13 @@ function _SetupFramebufferSize($0,$1) {
HEAP32[$vararg_ptr12>>2] = $0;
$vararg_ptr13 = ((($vararg_buffer8)) + 12|0);
HEAP32[$vararg_ptr13>>2] = $1;
- _TraceLog(0,8282,$vararg_buffer8);
+ _TraceLog(0,8290,$vararg_buffer8);
$32 = (+($0|0));
$33 = (+($1|0));
$34 = $32 / $33;
- $35 = HEAP32[3698]|0;
+ $35 = HEAP32[4002]|0;
$36 = (+($35|0));
- $37 = HEAP32[3697]|0;
+ $37 = HEAP32[4001]|0;
$38 = (+($37|0));
$39 = $36 / $38;
$40 = !($34 <= $39);
@@ -10405,26 +13776,26 @@ function _SetupFramebufferSize($0,$1) {
$44 = $34 * $38;
$roundf = (+_roundf((+$44)));
$45 = (~~(($roundf)));
- HEAP32[3739] = $45;
- HEAP32[3740] = $37;
+ HEAP32[4043] = $45;
+ HEAP32[4044] = $37;
$46 = (($45) - ($35))|0;
- HEAP32[3741] = $46;
+ HEAP32[4045] = $46;
$$sink1 = 0;
} else {
- HEAP32[3739] = $35;
+ HEAP32[4043] = $35;
$41 = $36 / $34;
$roundf38 = (+_roundf((+$41)));
$42 = (~~(($roundf38)));
- HEAP32[3740] = $42;
- HEAP32[3741] = 0;
+ HEAP32[4044] = $42;
+ HEAP32[4045] = 0;
$43 = (($42) - ($37))|0;
$$sink1 = $43;
}
- HEAP32[3742] = $$sink1;
+ HEAP32[4046] = $$sink1;
STACKTOP = sp;return;
}
}
- $7 = HEAP32[3697]|0;
+ $7 = HEAP32[4001]|0;
HEAP32[$vararg_buffer>>2] = $3;
$vararg_ptr1 = ((($vararg_buffer)) + 4|0);
HEAP32[$vararg_ptr1>>2] = $7;
@@ -10432,13 +13803,13 @@ function _SetupFramebufferSize($0,$1) {
HEAP32[$vararg_ptr2>>2] = $0;
$vararg_ptr3 = ((($vararg_buffer)) + 12|0);
HEAP32[$vararg_ptr3>>2] = $1;
- _TraceLog(2,8139,$vararg_buffer);
+ _TraceLog(2,8147,$vararg_buffer);
$8 = (+($0|0));
- $9 = HEAP32[3698]|0;
+ $9 = HEAP32[4002]|0;
$10 = (+($9|0));
$11 = $8 / $10;
$12 = (+($1|0));
- $13 = HEAP32[3697]|0;
+ $13 = HEAP32[4001]|0;
$14 = (+($13|0));
$15 = $12 / $14;
$16 = !($11 <= $15);
@@ -10446,37 +13817,37 @@ function _SetupFramebufferSize($0,$1) {
$22 = $10 * $15;
$roundf39 = (+_roundf((+$22)));
$23 = (~~(($roundf39)));
- HEAP32[3739] = $23;
- HEAP32[3740] = $1;
+ HEAP32[4043] = $23;
+ HEAP32[4044] = $1;
$24 = (($0) - ($23))|0;
- HEAP32[3741] = $24;
+ HEAP32[4045] = $24;
$$sink = 0;
} else {
- HEAP32[3739] = $0;
- $17 = HEAP32[3697]|0;
+ HEAP32[4043] = $0;
+ $17 = HEAP32[4001]|0;
$18 = (+($17|0));
$19 = $11 * $18;
$roundf40 = (+_roundf((+$19)));
$20 = (~~(($roundf40)));
- HEAP32[3740] = $20;
- HEAP32[3741] = 0;
+ HEAP32[4044] = $20;
+ HEAP32[4045] = 0;
$21 = (($1) - ($20))|0;
$$sink = $21;
}
- HEAP32[3742] = $$sink;
- $25 = HEAP32[3739]|0;
+ HEAP32[4046] = $$sink;
+ $25 = HEAP32[4043]|0;
$26 = (+($25|0));
- $27 = HEAP32[3698]|0;
+ $27 = HEAP32[4002]|0;
$28 = (+($27|0));
$29 = $26 / $28;
_MatrixScale($2,$29,$29,$29);
- dest=14880; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- HEAP32[3739] = $0;
- HEAP32[3740] = $1;
+ dest=16096; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ HEAP32[4043] = $0;
+ HEAP32[4044] = $1;
HEAP32[$vararg_buffer4>>2] = $0;
$vararg_ptr7 = ((($vararg_buffer4)) + 4|0);
HEAP32[$vararg_ptr7>>2] = $1;
- _TraceLog(2,8217,$vararg_buffer4);
+ _TraceLog(2,8225,$vararg_buffer4);
STACKTOP = sp;return;
}
function _WindowSizeCallback($0,$1,$2) {
@@ -10494,10 +13865,10 @@ function _WindowSizeCallback($0,$1,$2) {
_rlMatrixMode(5888);
_rlLoadIdentity();
_rlClearScreenBuffers();
- HEAP32[3698] = $1;
- HEAP32[3697] = $2;
- HEAP32[3739] = $1;
- HEAP32[3740] = $2;
+ HEAP32[4002] = $1;
+ HEAP32[4001] = $2;
+ HEAP32[4043] = $1;
+ HEAP32[4044] = $2;
return;
}
function _CursorEnterCallback($0,$1) {
@@ -10515,7 +13886,7 @@ function _KeyCallback($0,$1,$2,$3,$4) {
$4 = $4|0;
var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
- $5 = HEAP32[740]|0;
+ $5 = HEAP32[742]|0;
$6 = ($5|0)==($1|0);
$7 = ($3|0)==(1);
$or$cond = $7 & $6;
@@ -10524,12 +13895,12 @@ function _KeyCallback($0,$1,$2,$3,$4) {
return;
}
$8 = $3&255;
- $9 = (17603 + ($1)|0);
+ $9 = (18819 + ($1)|0);
HEAP8[$9>>0] = $8;
if (!($7)) {
return;
}
- HEAP32[739] = $1;
+ HEAP32[741] = $1;
return;
}
function _MouseButtonCallback($0,$1,$2,$3) {
@@ -10545,7 +13916,7 @@ function _MouseButtonCallback($0,$1,$2,$3) {
$4 = sp + 8|0;
$5 = sp;
$6 = $2&255;
- $7 = (17597 + ($1)|0);
+ $7 = (18813 + ($1)|0);
HEAP8[$7>>0] = $6;
$8 = (_IsMouseButtonPressed(0)|0);
$9 = ($8|0)==(0);
@@ -10624,7 +13995,7 @@ function _MouseCursorPosCallback($0,$1,$2) {
$12 = (($9) + 4)|0;
$13 = $12;
$14 = HEAP32[$13>>2]|0;
- $15 = 14560;
+ $15 = 15728;
$16 = $15;
HEAP32[$16>>2] = $11;
$17 = (($15) + 4)|0;
@@ -10649,7 +14020,7 @@ function _CharCallback($0,$1) {
$1 = $1|0;
var label = 0, sp = 0;
sp = STACKTOP;
- HEAP32[739] = $1;
+ HEAP32[741] = $1;
return;
}
function _ScrollCallback($0,$1,$2) {
@@ -10659,7 +14030,7 @@ function _ScrollCallback($0,$1,$2) {
var $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
$3 = (~~(($2)));
- HEAP32[4112] = $3;
+ HEAP32[4416] = $3;
return;
}
function _WindowIconifyCallback($0,$1) {
@@ -10669,7 +14040,7 @@ function _WindowIconifyCallback($0,$1) {
sp = STACKTOP;
$2 = ($1|0)!=(0);
$$sink = $2&1;
- HEAP32[4111] = $$sink;
+ HEAP32[4415] = $$sink;
return;
}
function _rlglInit($0,$1) {
@@ -10709,16 +14080,16 @@ function _rlglInit($0,$1) {
$6 = sp + 2192|0;
$7 = (_glGetString(7936)|0);
HEAP32[$vararg_buffer>>2] = $7;
- _TraceLog(0,4780,$vararg_buffer);
+ _TraceLog(0,4788,$vararg_buffer);
$8 = (_glGetString(7937)|0);
HEAP32[$vararg_buffer1>>2] = $8;
- _TraceLog(0,4798,$vararg_buffer1);
+ _TraceLog(0,4806,$vararg_buffer1);
$9 = (_glGetString(7938)|0);
HEAP32[$vararg_buffer4>>2] = $9;
- _TraceLog(0,4816,$vararg_buffer4);
+ _TraceLog(0,4824,$vararg_buffer4);
$10 = (_glGetString(35724)|0);
HEAP32[$vararg_buffer7>>2] = $10;
- _TraceLog(0,4834,$vararg_buffer7);
+ _TraceLog(0,4842,$vararg_buffer7);
$11 = (_glGetString(7939)|0);
$12 = (_strlen($11)|0);
$13 = (($12) + 1)|0;
@@ -10726,7 +14097,7 @@ function _rlglInit($0,$1) {
_memcpy(($14|0),($11|0),($13|0))|0;
$$062 = 0;$$sink63 = $14;
while(1) {
- $15 = (_strtok($$sink63,4852)|0);
+ $15 = (_strtok($$sink63,4860)|0);
$16 = (($vararg_buffer7) + ($$062<<2)|0);
HEAP32[$16>>2] = $15;
$17 = ($15|0)==(0|0);
@@ -10740,41 +14111,41 @@ function _rlglInit($0,$1) {
_free($14);
$19 = (($$062) + -1)|0;
HEAP32[$vararg_buffer10>>2] = $19;
- _TraceLog(0,4854,$vararg_buffer10);
+ _TraceLog(0,4862,$vararg_buffer10);
$20 = ($$062|0)>(1);
if ($20) {
$$06167 = 0;
while(1) {
$23 = (($vararg_buffer7) + ($$06167<<2)|0);
$24 = HEAP32[$23>>2]|0;
- $25 = (_strcmp($24,4889)|0);
+ $25 = (_strcmp($24,4897)|0);
$26 = ($25|0)==(0);
if ($26) {
- HEAP32[3777] = 1;
- $27 = (_eglGetProcAddress((4916|0))|0);
- HEAP32[3778] = $27;
- $28 = (_eglGetProcAddress((4937|0))|0);
- HEAP32[3779] = $28;
- $29 = (_eglGetProcAddress((4958|0))|0);
- HEAP32[3780] = $29;
- }
- $30 = (_strcmp($24,4982)|0);
+ HEAP32[4081] = 1;
+ $27 = (_eglGetProcAddress((4924|0))|0);
+ HEAP32[4082] = $27;
+ $28 = (_eglGetProcAddress((4945|0))|0);
+ HEAP32[4083] = $28;
+ $29 = (_eglGetProcAddress((4966|0))|0);
+ HEAP32[4084] = $29;
+ }
+ $30 = (_strcmp($24,4990)|0);
$31 = ($30|0)==(0);
if ($31) {
- HEAP32[3719] = 1;
+ HEAP32[4023] = 1;
}
- $32 = (_strcmp($24,5002)|0);
+ $32 = (_strcmp($24,5010)|0);
$33 = ($32|0)==(0);
if ($33) {
label = 12;
} else {
$34 = HEAP32[$23>>2]|0;
- $35 = (_strcmp($34,5034)|0);
+ $35 = (_strcmp($34,5042)|0);
$36 = ($35|0)==(0);
if ($36) {
label = 12;
} else {
- $37 = (_strcmp($34,5067)|0);
+ $37 = (_strcmp($34,5075)|0);
$38 = ($37|0)==(0);
if ($38) {
label = 12;
@@ -10783,15 +14154,15 @@ function _rlglInit($0,$1) {
}
if ((label|0) == 12) {
label = 0;
- HEAP32[3714] = 1;
+ HEAP32[4018] = 1;
}
- $39 = (_strcmp($24,5107)|0);
+ $39 = (_strcmp($24,5115)|0);
$40 = ($39|0)==(0);
if ($40) {
label = 15;
} else {
$41 = HEAP32[$23>>2]|0;
- $42 = (_strcmp($41,5143)|0);
+ $42 = (_strcmp($41,5151)|0);
$43 = ($42|0)==(0);
if ($43) {
label = 15;
@@ -10799,35 +14170,35 @@ function _rlglInit($0,$1) {
}
if ((label|0) == 15) {
label = 0;
- HEAP32[3715] = 1;
+ HEAP32[4019] = 1;
}
$44 = HEAP32[$23>>2]|0;
- $45 = (_strcmp($44,5176)|0);
+ $45 = (_strcmp($44,5184)|0);
$46 = ($45|0)==(0);
if ($46) {
- HEAP32[3716] = 1;
+ HEAP32[4020] = 1;
}
- $47 = (_strcmp($44,5201)|0);
+ $47 = (_strcmp($44,5209)|0);
$48 = ($47|0)==(0);
if ($48) {
- HEAP32[3717] = 1;
+ HEAP32[4021] = 1;
}
- $49 = (_strcmp($44,5234)|0);
+ $49 = (_strcmp($44,5242)|0);
$50 = ($49|0)==(0);
if ($50) {
- HEAP32[3718] = 1;
+ HEAP32[4022] = 1;
}
- $51 = (_strcmp($44,5270)|0);
+ $51 = (_strcmp($44,5278)|0);
$52 = ($51|0)==(0);
if ($52) {
- HEAP32[3781] = 1;
- _glGetFloatv(34047,(15128|0));
+ HEAP32[4085] = 1;
+ _glGetFloatv(34047,(16344|0));
}
$53 = HEAP32[$23>>2]|0;
- $54 = (_strcmp($53,5304)|0);
+ $54 = (_strcmp($53,5312)|0);
$55 = ($54|0)==(0);
if ($55) {
- HEAP32[3783] = 1;
+ HEAP32[4087] = 1;
}
$56 = (($$06167) + 1)|0;
$exitcond70 = ($56|0)==($19|0);
@@ -10838,77 +14209,77 @@ function _rlglInit($0,$1) {
}
}
}
- $21 = HEAP32[3777]|0;
+ $21 = HEAP32[4081]|0;
$22 = ($21|0)==(0);
if ($22) {
- _TraceLog(2,5407,$vararg_buffer15);
+ _TraceLog(2,5415,$vararg_buffer15);
} else {
- _TraceLog(0,5332,$vararg_buffer13);
+ _TraceLog(0,5340,$vararg_buffer13);
}
- $57 = HEAP32[3719]|0;
+ $57 = HEAP32[4023]|0;
$58 = ($57|0)==(0);
if ($58) {
- _TraceLog(2,5543,$vararg_buffer19);
+ _TraceLog(2,5551,$vararg_buffer19);
} else {
- _TraceLog(0,5468,$vararg_buffer17);
+ _TraceLog(0,5476,$vararg_buffer17);
}
- $59 = HEAP32[3714]|0;
+ $59 = HEAP32[4018]|0;
$60 = ($59|0)==(0);
if (!($60)) {
- _TraceLog(0,5635,$vararg_buffer21);
+ _TraceLog(0,5643,$vararg_buffer21);
}
- $61 = HEAP32[3715]|0;
+ $61 = HEAP32[4019]|0;
$62 = ($61|0)==(0);
if (!($62)) {
- _TraceLog(0,5681,$vararg_buffer23);
+ _TraceLog(0,5689,$vararg_buffer23);
}
- $63 = HEAP32[3716]|0;
+ $63 = HEAP32[4020]|0;
$64 = ($63|0)==(0);
if (!($64)) {
- _TraceLog(0,5728,$vararg_buffer25);
+ _TraceLog(0,5736,$vararg_buffer25);
}
- $65 = HEAP32[3717]|0;
+ $65 = HEAP32[4021]|0;
$66 = ($65|0)==(0);
if (!($66)) {
- _TraceLog(0,5779,$vararg_buffer27);
+ _TraceLog(0,5787,$vararg_buffer27);
}
- $67 = HEAP32[3718]|0;
+ $67 = HEAP32[4022]|0;
$68 = ($67|0)==(0);
if (!($68)) {
- _TraceLog(0,5826,$vararg_buffer29);
+ _TraceLog(0,5834,$vararg_buffer29);
}
- $69 = HEAP32[3781]|0;
+ $69 = HEAP32[4085]|0;
$70 = ($69|0)==(0);
if (!($70)) {
- $71 = +HEAPF32[3782];
+ $71 = +HEAPF32[4086];
$72 = $71;
HEAPF64[$vararg_buffer31>>3] = $72;
- _TraceLog(0,5873,$vararg_buffer31);
+ _TraceLog(0,5881,$vararg_buffer31);
}
- $73 = HEAP32[3783]|0;
+ $73 = HEAP32[4087]|0;
$74 = ($73|0)==(0);
if (!($74)) {
- _TraceLog(0,5939,$vararg_buffer34);
+ _TraceLog(0,5947,$vararg_buffer34);
}
HEAP32[$vararg_buffer10>>2] = -1;
$75 = (_rlglLoadTexture($vararg_buffer10,1,1,7,1)|0);
- HEAP32[3784] = $75;
+ HEAP32[4088] = $75;
$76 = ($75|0)==(0);
if ($76) {
- _TraceLog(2,6043,$vararg_buffer39);
+ _TraceLog(2,6051,$vararg_buffer39);
} else {
HEAP32[$vararg_buffer36>>2] = $75;
- _TraceLog(0,5992,$vararg_buffer36);
+ _TraceLog(0,6000,$vararg_buffer36);
}
_LoadDefaultShader($2);
- dest=15140; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- dest=15196; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16356; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16412; src=$2; stop=dest+56|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_LoadDefaultBuffers();
$77 = (_malloc(49152)|0);
- HEAP32[3813] = $77;
+ HEAP32[4117] = $77;
$$06066 = 0;
while(1) {
- $79 = HEAP32[3813]|0;
+ $79 = HEAP32[4117]|0;
$80 = (($79) + (($$06066*12)|0)|0);
_VectorZero($3);
;HEAP32[$80>>2]=HEAP32[$3>>2]|0;HEAP32[$80+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$80+8>>2]=HEAP32[$3+8>>2]|0;
@@ -10921,7 +14292,7 @@ function _rlglInit($0,$1) {
}
}
$78 = (_malloc(36864)|0);
- HEAP32[3814] = $78;
+ HEAP32[4118] = $78;
$$05965 = 0;
while(1) {
$82 = (((($78) + (($$05965*144)|0)|0)) + 8|0);
@@ -10936,48 +14307,48 @@ function _rlglInit($0,$1) {
$$05965 = $84;
}
}
- HEAP32[3815] = 1;
- $85 = HEAP32[3784]|0;
+ HEAP32[4119] = 1;
+ $85 = HEAP32[4088]|0;
$86 = ((($78)) + 8|0);
HEAP32[$86>>2] = $85;
- HEAP32[3816] = 4;
+ HEAP32[4120] = 4;
_MatrixIdentity($4);
- dest=15268; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16484; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15332); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16548); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15396); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16612); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15460); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16676); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15524); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16740); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15588); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16804); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15652); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16868); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15716); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16932); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15780); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(16996); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15844); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17060); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15908); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17124); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(15972); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17188); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(16036); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17252); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(16100); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17316); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(16164); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17380); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($4);
- dest=(16228); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=(17444); src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($5);
- dest=14976; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16192; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixIdentity($6);
- dest=15040; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- HEAP32[3743] = 15040;
+ dest=16256; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ HEAP32[4047] = 16256;
_glDepthFunc(515);
_glDisable(2929);
_glBlendFunc(770,771);
@@ -10988,21 +14359,21 @@ function _rlglInit($0,$1) {
_glClearColor(0.0,0.0,0.0,1.0);
_glClearDepthf(1.0);
_glClear(16640);
- HEAP32[4073] = $0;
- HEAP32[4074] = $1;
- _TraceLog(0,6082,$vararg_buffer41);
+ HEAP32[4377] = $0;
+ HEAP32[4378] = $1;
+ _TraceLog(0,6090,$vararg_buffer41);
STACKTOP = sp;return;
}
function _SetupViewport() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3741]|0;
+ $0 = HEAP32[4045]|0;
$1 = (($0|0) / 2)&-1;
- $2 = HEAP32[3742]|0;
+ $2 = HEAP32[4046]|0;
$3 = (($2|0) / 2)&-1;
- $4 = HEAP32[3739]|0;
+ $4 = HEAP32[4043]|0;
$5 = (($4) - ($0))|0;
- $6 = HEAP32[3740]|0;
+ $6 = HEAP32[4044]|0;
$7 = (($6) - ($2))|0;
_rlViewport($1,$3,$5,$7);
return;
@@ -11013,12 +14384,12 @@ function _rlMatrixMode($0) {
sp = STACKTOP;
switch ($0|0) {
case 5889: {
- $modelview$sink = 14976;
+ $modelview$sink = 16192;
label = 3;
break;
}
case 5888: {
- $modelview$sink = 15040;
+ $modelview$sink = 16256;
label = 3;
break;
}
@@ -11026,9 +14397,9 @@ function _rlMatrixMode($0) {
}
}
if ((label|0) == 3) {
- HEAP32[3743] = $modelview$sink;
+ HEAP32[4047] = $modelview$sink;
}
- HEAP32[3776] = $0;
+ HEAP32[4080] = $0;
return;
}
function _rlLoadIdentity() {
@@ -11036,7 +14407,7 @@ function _rlLoadIdentity() {
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0);
$0 = sp;
- $1 = HEAP32[3743]|0;
+ $1 = HEAP32[4047]|0;
_MatrixIdentity($0);
dest=$1; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
@@ -11057,7 +14428,7 @@ function _rlOrtho($0,$1,$2,$3,$4,$5) {
$7 = sp;
_MatrixOrtho($6,$0,$1,$2,$3,$4,$5);
_MatrixTranspose($6);
- $8 = HEAP32[3743]|0;
+ $8 = HEAP32[4047]|0;
dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$$byval_copy1; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixMultiply($7,$$byval_copy,$$byval_copy1);
@@ -11116,17 +14487,17 @@ function _LoadDefaultShader($0) {
$1 = sp + 16|0;
$2 = sp + 513|0;
$3 = sp + 72|0;
- _memcpy(($2|0),(6658|0),489)|0;
- _memcpy(($3|0),(7147|0),441)|0;
+ _memcpy(($2|0),(6666|0),489)|0;
+ _memcpy(($3|0),(7155|0),441)|0;
$4 = (_LoadShaderProgram($2,$3)|0);
HEAP32[$1>>2] = $4;
$5 = ($4|0)==(0);
if ($5) {
HEAP32[$vararg_buffer1>>2] = $4;
- _TraceLog(2,7636,$vararg_buffer1);
+ _TraceLog(2,7644,$vararg_buffer1);
} else {
HEAP32[$vararg_buffer>>2] = $4;
- _TraceLog(0,7588,$vararg_buffer);
+ _TraceLog(0,7596,$vararg_buffer);
}
$6 = HEAP32[$1>>2]|0;
$7 = ($6|0)==(0);
@@ -11154,15 +14525,15 @@ function _LoadDefaultBuffers() {
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
$0 = (_malloc(24576)|0);
- HEAP32[(16312)>>2] = $0;
+ HEAP32[(17528)>>2] = $0;
$1 = (_malloc(8192)|0);
- HEAP32[(16320)>>2] = $1;
- HEAP32[(16316)>>2] = 0;
- HEAP32[(16324)>>2] = 0;
+ HEAP32[(17536)>>2] = $1;
+ HEAP32[(17532)>>2] = 0;
+ HEAP32[(17540)>>2] = 0;
_memset(($0|0),0,24576)|0;
$$05972 = 0;
while(1) {
- $2 = HEAP32[(16320)>>2]|0;
+ $2 = HEAP32[(17536)>>2]|0;
$3 = (($2) + ($$05972)|0);
HEAP8[$3>>0] = 0;
$4 = (($$05972) + 1)|0;
@@ -11173,19 +14544,19 @@ function _LoadDefaultBuffers() {
$$05972 = $4;
}
}
- HEAP32[4075] = 0;
- HEAP32[(16308)>>2] = 0;
- HEAP32[(16304)>>2] = 0;
+ HEAP32[4379] = 0;
+ HEAP32[(17524)>>2] = 0;
+ HEAP32[(17520)>>2] = 0;
$5 = (_malloc(73728)|0);
- HEAP32[(16360)>>2] = $5;
+ HEAP32[(17576)>>2] = $5;
$6 = (_malloc(24576)|0);
- HEAP32[(16368)>>2] = $6;
- HEAP32[(16364)>>2] = 0;
- HEAP32[(16372)>>2] = 0;
+ HEAP32[(17584)>>2] = $6;
+ HEAP32[(17580)>>2] = 0;
+ HEAP32[(17588)>>2] = 0;
_memset(($5|0),0,73728)|0;
$$05770 = 0;
while(1) {
- $7 = HEAP32[(16368)>>2]|0;
+ $7 = HEAP32[(17584)>>2]|0;
$8 = (($7) + ($$05770)|0);
HEAP8[$8>>0] = 0;
$9 = (($$05770) + 1)|0;
@@ -11196,24 +14567,24 @@ function _LoadDefaultBuffers() {
$$05770 = $9;
}
}
- HEAP32[4087] = 0;
- HEAP32[(16356)>>2] = 0;
- HEAP32[(16352)>>2] = 0;
+ HEAP32[4391] = 0;
+ HEAP32[(17572)>>2] = 0;
+ HEAP32[(17568)>>2] = 0;
$10 = (_malloc(49152)|0);
- HEAP32[(16408)>>2] = $10;
+ HEAP32[(17624)>>2] = $10;
$11 = (_malloc(32768)|0);
- HEAP32[(16412)>>2] = $11;
+ HEAP32[(17628)>>2] = $11;
$12 = (_malloc(16384)|0);
- HEAP32[(16416)>>2] = $12;
+ HEAP32[(17632)>>2] = $12;
$13 = (_malloc(12288)|0);
- HEAP32[(16420)>>2] = $13;
- $14 = HEAP32[(16408)>>2]|0;
+ HEAP32[(17636)>>2] = $13;
+ $14 = HEAP32[(17624)>>2]|0;
_memset(($14|0),0,49152)|0;
- $15 = HEAP32[(16412)>>2]|0;
+ $15 = HEAP32[(17628)>>2]|0;
_memset(($15|0),0,32768)|0;
$$05467 = 0;
while(1) {
- $17 = HEAP32[(16416)>>2]|0;
+ $17 = HEAP32[(17632)>>2]|0;
$18 = (($17) + ($$05467)|0);
HEAP8[$18>>0] = 0;
$19 = (($$05467) + 1)|0;
@@ -11224,7 +14595,7 @@ function _LoadDefaultBuffers() {
$$05467 = $19;
}
}
- $16 = HEAP32[(16420)>>2]|0;
+ $16 = HEAP32[(17636)>>2]|0;
$$05365 = 0;$$066 = 0;
while(1) {
$22 = $$05365 << 2;
@@ -11261,140 +14632,140 @@ function _LoadDefaultBuffers() {
$$05365 = $41;$$066 = $42;
}
}
- HEAP32[4099] = 0;
- HEAP32[(16400)>>2] = 0;
- HEAP32[(16404)>>2] = 0;
- _TraceLog(0,6129,$vararg_buffer);
- $20 = HEAP32[3777]|0;
+ HEAP32[4403] = 0;
+ HEAP32[(17616)>>2] = 0;
+ HEAP32[(17620)>>2] = 0;
+ _TraceLog(0,6137,$vararg_buffer);
+ $20 = HEAP32[4081]|0;
$21 = ($20|0)==(0);
if (!($21)) {
- $43 = HEAP32[3778]|0;
- FUNCTION_TABLE_vii[$43 & 63](1,(16328));
- $44 = HEAP32[3779]|0;
- $45 = HEAP32[(16328)>>2]|0;
+ $43 = HEAP32[4082]|0;
+ FUNCTION_TABLE_vii[$43 & 63](1,(17544));
+ $44 = HEAP32[4083]|0;
+ $45 = HEAP32[(17544)>>2]|0;
FUNCTION_TABLE_vi[$44 & 31]($45);
}
- _glGenBuffers(2,((16332)|0));
- $46 = HEAP32[(16332)>>2]|0;
+ _glGenBuffers(2,((17548)|0));
+ $46 = HEAP32[(17548)>>2]|0;
_glBindBuffer(34962,($46|0));
- $47 = HEAP32[(16312)>>2]|0;
+ $47 = HEAP32[(17528)>>2]|0;
_glBufferData(34962,24576,($47|0),35048);
- $48 = HEAP32[(15200)>>2]|0;
+ $48 = HEAP32[(16416)>>2]|0;
_glEnableVertexAttribArray(($48|0));
- $49 = HEAP32[(15200)>>2]|0;
+ $49 = HEAP32[(16416)>>2]|0;
_glVertexAttribPointer(($49|0),3,5126,0,0,(0|0));
- _glGenBuffers(2,((16336)|0));
- $50 = HEAP32[(16336)>>2]|0;
+ _glGenBuffers(2,((17552)|0));
+ $50 = HEAP32[(17552)>>2]|0;
_glBindBuffer(34962,($50|0));
- $51 = HEAP32[(16320)>>2]|0;
+ $51 = HEAP32[(17536)>>2]|0;
_glBufferData(34962,8192,($51|0),35048);
- $52 = HEAP32[(15220)>>2]|0;
+ $52 = HEAP32[(16436)>>2]|0;
_glEnableVertexAttribArray(($52|0));
- $53 = HEAP32[(15220)>>2]|0;
+ $53 = HEAP32[(16436)>>2]|0;
_glVertexAttribPointer(($53|0),4,5121,1,0,(0|0));
- $54 = HEAP32[3777]|0;
+ $54 = HEAP32[4081]|0;
$55 = ($54|0)==(0);
if ($55) {
- $57 = HEAP32[(16332)>>2]|0;
- $58 = HEAP32[(16336)>>2]|0;
+ $57 = HEAP32[(17548)>>2]|0;
+ $58 = HEAP32[(17552)>>2]|0;
HEAP32[$vararg_buffer3>>2] = $57;
$vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
HEAP32[$vararg_ptr6>>2] = $58;
- _TraceLog(0,6267,$vararg_buffer3);
+ _TraceLog(0,6275,$vararg_buffer3);
} else {
- $56 = HEAP32[(16328)>>2]|0;
+ $56 = HEAP32[(17544)>>2]|0;
HEAP32[$vararg_buffer1>>2] = $56;
- _TraceLog(0,6202,$vararg_buffer1);
+ _TraceLog(0,6210,$vararg_buffer1);
}
- $59 = HEAP32[3777]|0;
+ $59 = HEAP32[4081]|0;
$60 = ($59|0)==(0);
if (!($60)) {
- $61 = HEAP32[3778]|0;
- FUNCTION_TABLE_vii[$61 & 63](1,(16376));
- $62 = HEAP32[3779]|0;
- $63 = HEAP32[(16376)>>2]|0;
+ $61 = HEAP32[4082]|0;
+ FUNCTION_TABLE_vii[$61 & 63](1,(17592));
+ $62 = HEAP32[4083]|0;
+ $63 = HEAP32[(17592)>>2]|0;
FUNCTION_TABLE_vi[$62 & 31]($63);
}
- _glGenBuffers(1,((16380)|0));
- $64 = HEAP32[(16380)>>2]|0;
+ _glGenBuffers(1,((17596)|0));
+ $64 = HEAP32[(17596)>>2]|0;
_glBindBuffer(34962,($64|0));
- $65 = HEAP32[(16360)>>2]|0;
+ $65 = HEAP32[(17576)>>2]|0;
_glBufferData(34962,73728,($65|0),35048);
- $66 = HEAP32[(15200)>>2]|0;
+ $66 = HEAP32[(16416)>>2]|0;
_glEnableVertexAttribArray(($66|0));
- $67 = HEAP32[(15200)>>2]|0;
+ $67 = HEAP32[(16416)>>2]|0;
_glVertexAttribPointer(($67|0),3,5126,0,0,(0|0));
- _glGenBuffers(1,((16384)|0));
- $68 = HEAP32[(16384)>>2]|0;
+ _glGenBuffers(1,((17600)|0));
+ $68 = HEAP32[(17600)>>2]|0;
_glBindBuffer(34962,($68|0));
- $69 = HEAP32[(16368)>>2]|0;
+ $69 = HEAP32[(17584)>>2]|0;
_glBufferData(34962,24576,($69|0),35048);
- $70 = HEAP32[(15220)>>2]|0;
+ $70 = HEAP32[(16436)>>2]|0;
_glEnableVertexAttribArray(($70|0));
- $71 = HEAP32[(15220)>>2]|0;
+ $71 = HEAP32[(16436)>>2]|0;
_glVertexAttribPointer(($71|0),4,5121,1,0,(0|0));
- $72 = HEAP32[3777]|0;
+ $72 = HEAP32[4081]|0;
$73 = ($72|0)==(0);
if ($73) {
- $75 = HEAP32[(16380)>>2]|0;
- $76 = HEAP32[(16384)>>2]|0;
+ $75 = HEAP32[(17596)>>2]|0;
+ $76 = HEAP32[(17600)>>2]|0;
HEAP32[$vararg_buffer10>>2] = $75;
$vararg_ptr13 = ((($vararg_buffer10)) + 4|0);
HEAP32[$vararg_ptr13>>2] = $76;
- _TraceLog(0,6413,$vararg_buffer10);
+ _TraceLog(0,6421,$vararg_buffer10);
} else {
- $74 = HEAP32[(16376)>>2]|0;
+ $74 = HEAP32[(17592)>>2]|0;
HEAP32[$vararg_buffer7>>2] = $74;
- _TraceLog(0,6344,$vararg_buffer7);
+ _TraceLog(0,6352,$vararg_buffer7);
}
- $77 = HEAP32[3777]|0;
+ $77 = HEAP32[4081]|0;
$78 = ($77|0)==(0);
if (!($78)) {
- $79 = HEAP32[3778]|0;
- FUNCTION_TABLE_vii[$79 & 63](1,(16424));
- $80 = HEAP32[3779]|0;
- $81 = HEAP32[(16424)>>2]|0;
+ $79 = HEAP32[4082]|0;
+ FUNCTION_TABLE_vii[$79 & 63](1,(17640));
+ $80 = HEAP32[4083]|0;
+ $81 = HEAP32[(17640)>>2]|0;
FUNCTION_TABLE_vi[$80 & 31]($81);
}
- _glGenBuffers(1,((16428)|0));
- $82 = HEAP32[(16428)>>2]|0;
+ _glGenBuffers(1,((17644)|0));
+ $82 = HEAP32[(17644)>>2]|0;
_glBindBuffer(34962,($82|0));
- $83 = HEAP32[(16408)>>2]|0;
+ $83 = HEAP32[(17624)>>2]|0;
_glBufferData(34962,49152,($83|0),35048);
- $84 = HEAP32[(15200)>>2]|0;
+ $84 = HEAP32[(16416)>>2]|0;
_glEnableVertexAttribArray(($84|0));
- $85 = HEAP32[(15200)>>2]|0;
+ $85 = HEAP32[(16416)>>2]|0;
_glVertexAttribPointer(($85|0),3,5126,0,0,(0|0));
- _glGenBuffers(1,((16432)|0));
- $86 = HEAP32[(16432)>>2]|0;
+ _glGenBuffers(1,((17648)|0));
+ $86 = HEAP32[(17648)>>2]|0;
_glBindBuffer(34962,($86|0));
- $87 = HEAP32[(16412)>>2]|0;
+ $87 = HEAP32[(17628)>>2]|0;
_glBufferData(34962,32768,($87|0),35048);
- $88 = HEAP32[(15204)>>2]|0;
+ $88 = HEAP32[(16420)>>2]|0;
_glEnableVertexAttribArray(($88|0));
- $89 = HEAP32[(15204)>>2]|0;
+ $89 = HEAP32[(16420)>>2]|0;
_glVertexAttribPointer(($89|0),2,5126,0,0,(0|0));
- _glGenBuffers(1,((16436)|0));
- $90 = HEAP32[(16436)>>2]|0;
+ _glGenBuffers(1,((17652)|0));
+ $90 = HEAP32[(17652)>>2]|0;
_glBindBuffer(34962,($90|0));
- $91 = HEAP32[(16416)>>2]|0;
+ $91 = HEAP32[(17632)>>2]|0;
_glBufferData(34962,16384,($91|0),35048);
- $92 = HEAP32[(15220)>>2]|0;
+ $92 = HEAP32[(16436)>>2]|0;
_glEnableVertexAttribArray(($92|0));
- $93 = HEAP32[(15220)>>2]|0;
+ $93 = HEAP32[(16436)>>2]|0;
_glVertexAttribPointer(($93|0),4,5121,1,0,(0|0));
- _glGenBuffers(1,((16440)|0));
- $94 = HEAP32[(16440)>>2]|0;
+ _glGenBuffers(1,((17656)|0));
+ $94 = HEAP32[(17656)>>2]|0;
_glBindBuffer(34963,($94|0));
- $95 = HEAP32[(16420)>>2]|0;
+ $95 = HEAP32[(17636)>>2]|0;
_glBufferData(34963,12288,($95|0),35044);
- $96 = HEAP32[3777]|0;
+ $96 = HEAP32[4081]|0;
$97 = ($96|0)==(0);
if ($97) {
- $99 = HEAP32[(16428)>>2]|0;
- $100 = HEAP32[(16432)>>2]|0;
- $101 = HEAP32[(16436)>>2]|0;
- $102 = HEAP32[(16440)>>2]|0;
+ $99 = HEAP32[(17644)>>2]|0;
+ $100 = HEAP32[(17648)>>2]|0;
+ $101 = HEAP32[(17652)>>2]|0;
+ $102 = HEAP32[(17656)>>2]|0;
HEAP32[$vararg_buffer17>>2] = $99;
$vararg_ptr20 = ((($vararg_buffer17)) + 4|0);
HEAP32[$vararg_ptr20>>2] = $100;
@@ -11402,18 +14773,18 @@ function _LoadDefaultBuffers() {
HEAP32[$vararg_ptr21>>2] = $101;
$vararg_ptr22 = ((($vararg_buffer17)) + 12|0);
HEAP32[$vararg_ptr22>>2] = $102;
- _TraceLog(0,6559,$vararg_buffer17);
+ _TraceLog(0,6567,$vararg_buffer17);
} else {
- $98 = HEAP32[(16424)>>2]|0;
+ $98 = HEAP32[(17640)>>2]|0;
HEAP32[$vararg_buffer14>>2] = $98;
- _TraceLog(0,6494,$vararg_buffer14);
+ _TraceLog(0,6502,$vararg_buffer14);
}
- $103 = HEAP32[3777]|0;
+ $103 = HEAP32[4081]|0;
$104 = ($103|0)==(0);
if ($104) {
STACKTOP = sp;return;
}
- $105 = HEAP32[3779]|0;
+ $105 = HEAP32[4083]|0;
FUNCTION_TABLE_vi[$105 & 31](0);
STACKTOP = sp;return;
}
@@ -11450,10 +14821,10 @@ function _LoadShaderProgram($0,$1) {
$9 = ($8|0)==(1);
if ($9) {
HEAP32[$vararg_buffer4>>2] = $6;
- _TraceLog(0,7892,$vararg_buffer4);
+ _TraceLog(0,7900,$vararg_buffer4);
} else {
HEAP32[$vararg_buffer>>2] = $6;
- _TraceLog(2,7840,$vararg_buffer);
+ _TraceLog(2,7848,$vararg_buffer);
HEAP32[$vararg_buffer>>2] = 0;
_glGetShaderiv(($6|0),35716,($vararg_buffer|0));
$10 = HEAP32[$vararg_buffer>>2]|0;
@@ -11463,7 +14834,7 @@ function _LoadShaderProgram($0,$1) {
$13 = HEAP32[$vararg_buffer>>2]|0;
_glGetShaderInfoLog(($6|0),($13|0),($5|0),($12|0));
HEAP32[$vararg_buffer1>>2] = $12;
- _TraceLog(0,7889,$vararg_buffer1);
+ _TraceLog(0,7897,$vararg_buffer1);
_llvm_stackrestore(($11|0));
}
_glCompileShader(($7|0));
@@ -11472,10 +14843,10 @@ function _LoadShaderProgram($0,$1) {
$15 = ($14|0)==(1);
if ($15) {
HEAP32[$vararg_buffer13>>2] = $7;
- _TraceLog(0,7993,$vararg_buffer13);
+ _TraceLog(0,8001,$vararg_buffer13);
} else {
HEAP32[$vararg_buffer7>>2] = $7;
- _TraceLog(2,7942,$vararg_buffer7);
+ _TraceLog(2,7950,$vararg_buffer7);
HEAP32[$vararg_buffer7>>2] = 0;
_glGetShaderiv(($7|0),35716,($vararg_buffer7|0));
$16 = HEAP32[$vararg_buffer7>>2]|0;
@@ -11485,25 +14856,25 @@ function _LoadShaderProgram($0,$1) {
$19 = HEAP32[$vararg_buffer7>>2]|0;
_glGetShaderInfoLog(($7|0),($19|0),($5|0),($18|0));
HEAP32[$vararg_buffer10>>2] = $18;
- _TraceLog(0,7889,$vararg_buffer10);
+ _TraceLog(0,7897,$vararg_buffer10);
_llvm_stackrestore(($17|0));
}
$20 = (_glCreateProgram()|0);
_glAttachShader(($20|0),($6|0));
_glAttachShader(($20|0),($7|0));
- _glBindAttribLocation(($20|0),0,(7684|0));
- _glBindAttribLocation(($20|0),1,(7699|0));
- _glBindAttribLocation(($20|0),2,(7730|0));
- _glBindAttribLocation(($20|0),3,(7757|0));
- _glBindAttribLocation(($20|0),4,(7743|0));
- _glBindAttribLocation(($20|0),5,(7714|0));
+ _glBindAttribLocation(($20|0),0,(7692|0));
+ _glBindAttribLocation(($20|0),1,(7707|0));
+ _glBindAttribLocation(($20|0),2,(7738|0));
+ _glBindAttribLocation(($20|0),3,(7765|0));
+ _glBindAttribLocation(($20|0),4,(7751|0));
+ _glBindAttribLocation(($20|0),5,(7722|0));
_glLinkProgram(($20|0));
_glGetProgramiv(($20|0),35714,($4|0));
$21 = HEAP32[$4>>2]|0;
$22 = ($21|0)==(0);
if ($22) {
HEAP32[$vararg_buffer16>>2] = $20;
- _TraceLog(2,8045,$vararg_buffer16);
+ _TraceLog(2,8053,$vararg_buffer16);
HEAP32[$vararg_buffer16>>2] = 0;
_glGetProgramiv(($20|0),35716,($vararg_buffer16|0));
$23 = HEAP32[$vararg_buffer16>>2]|0;
@@ -11513,7 +14884,7 @@ function _LoadShaderProgram($0,$1) {
$26 = HEAP32[$vararg_buffer16>>2]|0;
_glGetProgramInfoLog(($20|0),($26|0),($5|0),($25|0));
HEAP32[$vararg_buffer19>>2] = $25;
- _TraceLog(0,7889,$vararg_buffer19);
+ _TraceLog(0,7897,$vararg_buffer19);
_glDeleteProgram(($20|0));
_llvm_stackrestore(($24|0));
$$0 = 0;
@@ -11522,7 +14893,7 @@ function _LoadShaderProgram($0,$1) {
STACKTOP = sp;return ($$0|0);
} else {
HEAP32[$vararg_buffer22>>2] = $20;
- _TraceLog(0,8091,$vararg_buffer22);
+ _TraceLog(0,8099,$vararg_buffer22);
$$0 = $20;
_glDeleteShader(($6|0));
_glDeleteShader(($7|0));
@@ -11537,55 +14908,55 @@ function _LoadDefaultShaderLocations($0) {
var sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
- $2 = (_glGetAttribLocation(($1|0),(7684|0))|0);
+ $2 = (_glGetAttribLocation(($1|0),(7692|0))|0);
$3 = ((($0)) + 4|0);
HEAP32[$3>>2] = $2;
$4 = HEAP32[$0>>2]|0;
- $5 = (_glGetAttribLocation(($4|0),(7699|0))|0);
+ $5 = (_glGetAttribLocation(($4|0),(7707|0))|0);
$6 = ((($0)) + 8|0);
HEAP32[$6>>2] = $5;
$7 = HEAP32[$0>>2]|0;
- $8 = (_glGetAttribLocation(($7|0),(7714|0))|0);
+ $8 = (_glGetAttribLocation(($7|0),(7722|0))|0);
$9 = ((($0)) + 12|0);
HEAP32[$9>>2] = $8;
$10 = HEAP32[$0>>2]|0;
- $11 = (_glGetAttribLocation(($10|0),(7730|0))|0);
+ $11 = (_glGetAttribLocation(($10|0),(7738|0))|0);
$12 = ((($0)) + 16|0);
HEAP32[$12>>2] = $11;
$13 = HEAP32[$0>>2]|0;
- $14 = (_glGetAttribLocation(($13|0),(7743|0))|0);
+ $14 = (_glGetAttribLocation(($13|0),(7751|0))|0);
$15 = ((($0)) + 20|0);
HEAP32[$15>>2] = $14;
$16 = HEAP32[$0>>2]|0;
- $17 = (_glGetAttribLocation(($16|0),(7757|0))|0);
+ $17 = (_glGetAttribLocation(($16|0),(7765|0))|0);
$18 = ((($0)) + 24|0);
HEAP32[$18>>2] = $17;
$19 = HEAP32[$0>>2]|0;
- $20 = (_glGetUniformLocation(($19|0),(7769|0))|0);
+ $20 = (_glGetUniformLocation(($19|0),(7777|0))|0);
$21 = ((($0)) + 28|0);
HEAP32[$21>>2] = $20;
$22 = HEAP32[$0>>2]|0;
- $23 = (_glGetUniformLocation(($22|0),(7779|0))|0);
+ $23 = (_glGetUniformLocation(($22|0),(7787|0))|0);
$24 = ((($0)) + 32|0);
HEAP32[$24>>2] = $23;
$25 = HEAP32[$0>>2]|0;
- $26 = (_glGetUniformLocation(($25|0),(7790|0))|0);
+ $26 = (_glGetUniformLocation(($25|0),(7798|0))|0);
$27 = ((($0)) + 36|0);
HEAP32[$27>>2] = $26;
$28 = HEAP32[$0>>2]|0;
- $29 = (_glGetUniformLocation(($28|0),(7801|0))|0);
+ $29 = (_glGetUniformLocation(($28|0),(7809|0))|0);
$30 = ((($0)) + 40|0);
HEAP32[$30>>2] = $29;
$31 = HEAP32[$0>>2]|0;
- $32 = (_glGetUniformLocation(($31|0),(7813|0))|0);
+ $32 = (_glGetUniformLocation(($31|0),(7821|0))|0);
$33 = ((($0)) + 44|0);
HEAP32[$33>>2] = $32;
$34 = HEAP32[$0>>2]|0;
- $35 = (_glGetUniformLocation(($34|0),(7822|0))|0);
+ $35 = (_glGetUniformLocation(($34|0),(7830|0))|0);
$36 = ((($0)) + 48|0);
HEAP32[$36>>2] = $35;
$37 = HEAP32[$0>>2]|0;
- $38 = (_glGetUniformLocation(($37|0),(7831|0))|0);
+ $38 = (_glGetUniformLocation(($37|0),(7839|0))|0);
$39 = ((($0)) + 52|0);
HEAP32[$39>>2] = $38;
return;
@@ -11594,9 +14965,9 @@ function _IsMouseButtonPressed($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = (17597 + ($0)|0);
+ $1 = (18813 + ($0)|0);
$2 = HEAP8[$1>>0]|0;
- $3 = (17600 + ($0)|0);
+ $3 = (18816 + ($0)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($2<<24>>24)!=($4<<24>>24);
$6 = ($2<<24>>24)==(1);
@@ -11608,9 +14979,9 @@ function _IsMouseButtonReleased($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = (17597 + ($0)|0);
+ $1 = (18813 + ($0)|0);
$2 = HEAP8[$1>>0]|0;
- $3 = (17600 + ($0)|0);
+ $3 = (18816 + ($0)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($2<<24>>24)!=($4<<24>>24);
$6 = ($2<<24>>24)==(0);
@@ -11631,10 +15002,10 @@ function _CloseWindow() {
$vararg_buffer = sp;
_UnloadDefaultFont();
_rlglClose();
- $0 = HEAP32[3696]|0;
+ $0 = HEAP32[4000]|0;
_glfwDestroyWindow(($0|0));
_glfwTerminate();
- _TraceLog(0,8403,$vararg_buffer);
+ _TraceLog(0,8411,$vararg_buffer);
STACKTOP = sp;return;
}
function _UnloadDefaultFont() {
@@ -11642,9 +15013,9 @@ function _UnloadDefaultFont() {
sp = STACKTOP;
STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
$$byval_copy = sp;
- ;HEAP32[$$byval_copy>>2]=HEAP32[14824>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[14824+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[14824+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[14824+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[14824+16>>2]|0;
+ ;HEAP32[$$byval_copy>>2]=HEAP32[16040>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[16040+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[16040+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[16040+12>>2]|0;HEAP32[$$byval_copy+16>>2]=HEAP32[16040+16>>2]|0;
_UnloadTexture($$byval_copy);
- $0 = HEAP32[(14852)>>2]|0;
+ $0 = HEAP32[(16068)>>2]|0;
_free($0);
STACKTOP = sp;return;
}
@@ -11655,11 +15026,11 @@ function _rlglClose() {
$vararg_buffer = sp;
_UnloadDefaultShader();
_UnloadDefaultBuffers();
- _glDeleteTextures(1,(15136|0));
- $0 = HEAP32[3784]|0;
+ _glDeleteTextures(1,(16352|0));
+ $0 = HEAP32[4088]|0;
HEAP32[$vararg_buffer>>2] = $0;
- _TraceLog(0,8430,$vararg_buffer);
- $1 = HEAP32[3814]|0;
+ _TraceLog(0,8438,$vararg_buffer);
+ $1 = HEAP32[4118]|0;
_free($1);
STACKTOP = sp;return;
}
@@ -11667,17 +15038,17 @@ function _UnloadDefaultShader() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
_glUseProgram(0);
- $0 = HEAP32[3785]|0;
+ $0 = HEAP32[4089]|0;
_glDeleteProgram(($0|0));
return;
}
function _UnloadDefaultBuffers() {
var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3777]|0;
+ $0 = HEAP32[4081]|0;
$1 = ($0|0)==(0);
if (!($1)) {
- $2 = HEAP32[3779]|0;
+ $2 = HEAP32[4083]|0;
FUNCTION_TABLE_vi[$2 & 31](0);
}
_glDisableVertexAttribArray(0);
@@ -11686,39 +15057,39 @@ function _UnloadDefaultBuffers() {
_glDisableVertexAttribArray(3);
_glBindBuffer(34962,0);
_glBindBuffer(34963,0);
- _glDeleteBuffers(1,((16332)|0));
- _glDeleteBuffers(1,((16336)|0));
- _glDeleteBuffers(1,((16380)|0));
- _glDeleteBuffers(1,((16384)|0));
- _glDeleteBuffers(1,((16428)|0));
- _glDeleteBuffers(1,((16432)|0));
- _glDeleteBuffers(1,((16436)|0));
- _glDeleteBuffers(1,((16440)|0));
- $3 = HEAP32[3777]|0;
+ _glDeleteBuffers(1,((17548)|0));
+ _glDeleteBuffers(1,((17552)|0));
+ _glDeleteBuffers(1,((17596)|0));
+ _glDeleteBuffers(1,((17600)|0));
+ _glDeleteBuffers(1,((17644)|0));
+ _glDeleteBuffers(1,((17648)|0));
+ _glDeleteBuffers(1,((17652)|0));
+ _glDeleteBuffers(1,((17656)|0));
+ $3 = HEAP32[4081]|0;
$4 = ($3|0)==(0);
if (!($4)) {
- $5 = HEAP32[3780]|0;
- FUNCTION_TABLE_vii[$5 & 63](1,(16328));
- $6 = HEAP32[3780]|0;
- FUNCTION_TABLE_vii[$6 & 63](1,(16376));
- $7 = HEAP32[3780]|0;
- FUNCTION_TABLE_vii[$7 & 63](1,(16424));
- }
- $8 = HEAP32[(16312)>>2]|0;
+ $5 = HEAP32[4084]|0;
+ FUNCTION_TABLE_vii[$5 & 63](1,(17544));
+ $6 = HEAP32[4084]|0;
+ FUNCTION_TABLE_vii[$6 & 63](1,(17592));
+ $7 = HEAP32[4084]|0;
+ FUNCTION_TABLE_vii[$7 & 63](1,(17640));
+ }
+ $8 = HEAP32[(17528)>>2]|0;
_free($8);
- $9 = HEAP32[(16320)>>2]|0;
+ $9 = HEAP32[(17536)>>2]|0;
_free($9);
- $10 = HEAP32[(16360)>>2]|0;
+ $10 = HEAP32[(17576)>>2]|0;
_free($10);
- $11 = HEAP32[(16368)>>2]|0;
+ $11 = HEAP32[(17584)>>2]|0;
_free($11);
- $12 = HEAP32[(16408)>>2]|0;
+ $12 = HEAP32[(17624)>>2]|0;
_free($12);
- $13 = HEAP32[(16412)>>2]|0;
+ $13 = HEAP32[(17628)>>2]|0;
_free($13);
- $14 = HEAP32[(16416)>>2]|0;
+ $14 = HEAP32[(17632)>>2]|0;
_free($14);
- $15 = HEAP32[(16420)>>2]|0;
+ $15 = HEAP32[(17636)>>2]|0;
_free($15);
return;
}
@@ -11736,7 +15107,7 @@ function _UnloadTexture($0) {
_rlDeleteTextures($1);
$3 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer>>2] = $3;
- _TraceLog(0,8495,$vararg_buffer);
+ _TraceLog(0,8503,$vararg_buffer);
STACKTOP = sp;return;
}
function _rlDeleteTextures($0) {
@@ -11752,41 +15123,22 @@ function _rlDeleteTextures($0) {
}
STACKTOP = sp;return;
}
-function _WindowShouldClose() {
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[4111]|0;
- $1 = ($0|0)==(0);
- if (!($1)) {
- while(1) {
- _glfwWaitEvents();
- $2 = HEAP32[4111]|0;
- $3 = ($2|0)==(0);
- if ($3) {
- break;
- }
- }
- }
- $4 = HEAP32[3696]|0;
- $5 = (_glfwWindowShouldClose(($4|0))|0);
- return ($5|0);
-}
function _BeginDrawing() {
var $0 = 0.0, $1 = 0.0, $2 = 0.0, $downscaleView$byval_copy = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0);
$downscaleView$byval_copy = sp;
$0 = (+_GetTime());
- HEAPF64[1839] = $0;
- $1 = +HEAPF64[1822];
+ HEAPF64[1985] = $0;
+ $1 = +HEAPF64[1968];
$2 = $0 - $1;
- HEAPF64[1840] = $2;
- HEAPF64[1822] = $0;
+ HEAPF64[1986] = $2;
+ HEAPF64[1968] = $0;
_rlClearScreenBuffers();
_rlLoadIdentity();
- dest=$downscaleView$byval_copy; src=14880; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=$downscaleView$byval_copy; src=16096; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
(_MatrixToFloat($downscaleView$byval_copy)|0);
- _rlMultMatrixf(16452);
+ _rlMultMatrixf(17668);
STACKTOP = sp;return;
}
function _MatrixToFloat($0) {
@@ -11795,53 +15147,53 @@ function _MatrixToFloat($0) {
var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = HEAP32[$0>>2]|0;
- HEAP32[4113] = $1;
+ HEAP32[4417] = $1;
$2 = ((($0)) + 4|0);
$3 = HEAP32[$2>>2]|0;
- HEAP32[(16456)>>2] = $3;
+ HEAP32[(17672)>>2] = $3;
$4 = ((($0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
- HEAP32[(16460)>>2] = $5;
+ HEAP32[(17676)>>2] = $5;
$6 = ((($0)) + 12|0);
$7 = HEAP32[$6>>2]|0;
- HEAP32[(16464)>>2] = $7;
+ HEAP32[(17680)>>2] = $7;
$8 = ((($0)) + 16|0);
$9 = HEAP32[$8>>2]|0;
- HEAP32[(16468)>>2] = $9;
+ HEAP32[(17684)>>2] = $9;
$10 = ((($0)) + 20|0);
$11 = HEAP32[$10>>2]|0;
- HEAP32[(16472)>>2] = $11;
+ HEAP32[(17688)>>2] = $11;
$12 = ((($0)) + 24|0);
$13 = HEAP32[$12>>2]|0;
- HEAP32[(16476)>>2] = $13;
+ HEAP32[(17692)>>2] = $13;
$14 = ((($0)) + 28|0);
$15 = HEAP32[$14>>2]|0;
- HEAP32[(16480)>>2] = $15;
+ HEAP32[(17696)>>2] = $15;
$16 = ((($0)) + 32|0);
$17 = HEAP32[$16>>2]|0;
- HEAP32[(16484)>>2] = $17;
+ HEAP32[(17700)>>2] = $17;
$18 = ((($0)) + 36|0);
$19 = HEAP32[$18>>2]|0;
- HEAP32[(16488)>>2] = $19;
+ HEAP32[(17704)>>2] = $19;
$20 = ((($0)) + 40|0);
$21 = HEAP32[$20>>2]|0;
- HEAP32[(16492)>>2] = $21;
+ HEAP32[(17708)>>2] = $21;
$22 = ((($0)) + 44|0);
$23 = HEAP32[$22>>2]|0;
- HEAP32[(16496)>>2] = $23;
+ HEAP32[(17712)>>2] = $23;
$24 = ((($0)) + 48|0);
$25 = HEAP32[$24>>2]|0;
- HEAP32[(16500)>>2] = $25;
+ HEAP32[(17716)>>2] = $25;
$26 = ((($0)) + 52|0);
$27 = HEAP32[$26>>2]|0;
- HEAP32[(16504)>>2] = $27;
+ HEAP32[(17720)>>2] = $27;
$28 = ((($0)) + 56|0);
$29 = HEAP32[$28>>2]|0;
- HEAP32[(16508)>>2] = $29;
+ HEAP32[(17724)>>2] = $29;
$30 = ((($0)) + 60|0);
$31 = HEAP32[$30>>2]|0;
- HEAP32[(16512)>>2] = $31;
- return (16452|0);
+ HEAP32[(17728)>>2] = $31;
+ return (17668|0);
}
function _rlMultMatrixf($0) {
$0 = $0|0;
@@ -11916,7 +15268,7 @@ function _rlMultMatrixf($0) {
$47 = ((($0)) + 60|0);
$48 = HEAP32[$47>>2]|0;
HEAP32[$46>>2] = $48;
- $49 = HEAP32[3743]|0;
+ $49 = HEAP32[4047]|0;
dest=$$byval_copy; src=$49; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$$byval_copy1; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixMultiply($2,$$byval_copy,$$byval_copy1);
@@ -11930,15 +15282,15 @@ function _EndDrawing() {
_SwapBuffers();
_PollInputEvents();
$0 = (+_GetTime());
- HEAPF64[1839] = $0;
- $1 = +HEAPF64[1822];
+ HEAPF64[1985] = $0;
+ $1 = +HEAPF64[1968];
$2 = $0 - $1;
- HEAPF64[1841] = $2;
- HEAPF64[1822] = $0;
- $3 = +HEAPF64[1840];
+ HEAPF64[1987] = $2;
+ HEAPF64[1968] = $0;
+ $3 = +HEAPF64[1986];
$4 = $2 + $3;
- HEAPF64[1842] = $4;
- $5 = +HEAPF64[1819];
+ HEAPF64[1988] = $4;
+ $5 = +HEAPF64[1965];
$6 = $4 < $5;
if (!($6)) {
return;
@@ -11948,13 +15300,13 @@ function _EndDrawing() {
$9 = $8;
_Wait($9);
$10 = (+_GetTime());
- HEAPF64[1839] = $10;
- $11 = +HEAPF64[1822];
+ HEAPF64[1985] = $10;
+ $11 = +HEAPF64[1968];
$12 = $10 - $11;
- HEAPF64[1822] = $10;
- $13 = +HEAPF64[1842];
+ HEAPF64[1968] = $10;
+ $13 = +HEAPF64[1988];
$14 = $12 + $13;
- HEAPF64[1842] = $14;
+ HEAPF64[1988] = $14;
return;
}
function _rlglDraw() {
@@ -11967,7 +15319,7 @@ function _rlglDraw() {
function _SwapBuffers() {
var $0 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[3696]|0;
+ $0 = HEAP32[4000]|0;
_glfwSwapBuffers(($0|0));
return;
}
@@ -11981,22 +15333,22 @@ function _PollInputEvents() {
$1 = sp + 1432|0;
$2 = sp;
_UpdateGestures();
- HEAP32[739] = -1;
HEAP32[741] = -1;
- HEAP32[4129] = 0;
- $3 = HEAP32[3696]|0;
+ HEAP32[743] = -1;
+ HEAP32[4433] = 0;
+ $3 = HEAP32[4000]|0;
_glfwGetCursorPos(($3|0),($0|0),($1|0));
$4 = +HEAPF64[$0>>3];
$5 = $4;
- HEAPF32[3636] = $5;
+ HEAPF32[3928] = $5;
$6 = +HEAPF64[$1>>3];
$7 = $6;
- HEAPF32[(14548)>>2] = $7;
- _memcpy((18115|0),(17603|0),512)|0;
- ;HEAP8[17600>>0]=HEAP8[17597>>0]|0;HEAP8[17600+1>>0]=HEAP8[17597+1>>0]|0;HEAP8[17600+2>>0]=HEAP8[17597+2>>0]|0;
- $8 = HEAP32[4112]|0;
- HEAP32[3699] = $8;
- HEAP32[4112] = 0;
+ HEAPF32[(15716)>>2] = $7;
+ _memcpy((19331|0),(18819|0),512)|0;
+ ;HEAP8[18816>>0]=HEAP8[18813>>0]|0;HEAP8[18816+1>>0]=HEAP8[18813+1>>0]|0;HEAP8[18816+2>>0]=HEAP8[18813+2>>0]|0;
+ $8 = HEAP32[4416]|0;
+ HEAP32[4003] = $8;
+ HEAP32[4416] = 0;
$9 = (_emscripten_get_num_gamepads()|0);
$10 = ($9|0)>(0);
if (!($10)) {
@@ -12006,8 +15358,8 @@ function _PollInputEvents() {
$12 = ((($2)) + 8|0);
$$05160 = 0;
while(1) {
- $scevgep = (18627 + ($$05160<<5)|0);
- $scevgep67 = (18755 + ($$05160<<5)|0);
+ $scevgep = (19843 + ($$05160<<5)|0);
+ $scevgep67 = (19971 + ($$05160<<5)|0);
dest=$scevgep; src=$scevgep67; stop=dest+32|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0));
$13 = (_emscripten_get_gamepad_status(($$05160|0),($2|0))|0);
$14 = ($13|0)==(0);
@@ -12021,10 +15373,10 @@ function _PollInputEvents() {
$21 = (((($2)) + 1040|0) + ($$04857<<2)|0);
$22 = HEAP32[$21>>2]|0;
$23 = ($22|0)==(1);
- $24 = ((18755 + ($$05160<<5)|0) + ($$04857)|0);
+ $24 = ((19971 + ($$05160<<5)|0) + ($$04857)|0);
if ($23) {
HEAP8[$24>>0] = 1;
- HEAP32[741] = $$04857;
+ HEAP32[743] = $$04857;
} else {
HEAP8[$24>>0] = 0;
}
@@ -12048,7 +15400,7 @@ function _PollInputEvents() {
$29 = (((($2)) + 16|0) + ($$058<<3)|0);
$30 = +HEAPF64[$29>>3];
$31 = $30;
- $32 = ((16520 + ($$05160<<5)|0) + ($$058<<2)|0);
+ $32 = ((17736 + ($$05160<<5)|0) + ($$058<<2)|0);
HEAPF32[$32>>2] = $31;
$33 = (($$058) + 1)|0;
$34 = ($33|0)<($20|0);
@@ -12064,7 +15416,7 @@ function _PollInputEvents() {
} else {
$$lcssa = $18;
}
- HEAP32[4129] = $$lcssa;
+ HEAP32[4433] = $$lcssa;
}
$37 = (($$05160) + 1)|0;
$38 = ($37|0)<($9|0);
@@ -12105,87 +15457,87 @@ function _UpdateDefaultBuffers() {
var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[4075]|0;
+ $0 = HEAP32[4379]|0;
$1 = ($0|0)>(0);
if ($1) {
- $2 = HEAP32[3777]|0;
+ $2 = HEAP32[4081]|0;
$3 = ($2|0)==(0);
if (!($3)) {
- $4 = HEAP32[3779]|0;
- $5 = HEAP32[(16328)>>2]|0;
+ $4 = HEAP32[4083]|0;
+ $5 = HEAP32[(17544)>>2]|0;
FUNCTION_TABLE_vi[$4 & 31]($5);
}
- $6 = HEAP32[(16332)>>2]|0;
+ $6 = HEAP32[(17548)>>2]|0;
_glBindBuffer(34962,($6|0));
- $7 = HEAP32[4075]|0;
+ $7 = HEAP32[4379]|0;
$8 = ($7*12)|0;
- $9 = HEAP32[(16312)>>2]|0;
+ $9 = HEAP32[(17528)>>2]|0;
_glBufferSubData(34962,0,($8|0),($9|0));
- $10 = HEAP32[(16336)>>2]|0;
+ $10 = HEAP32[(17552)>>2]|0;
_glBindBuffer(34962,($10|0));
- $11 = HEAP32[(16308)>>2]|0;
+ $11 = HEAP32[(17524)>>2]|0;
$12 = $11 << 2;
- $13 = HEAP32[(16320)>>2]|0;
+ $13 = HEAP32[(17536)>>2]|0;
_glBufferSubData(34962,0,($12|0),($13|0));
}
- $14 = HEAP32[4087]|0;
+ $14 = HEAP32[4391]|0;
$15 = ($14|0)>(0);
if ($15) {
- $16 = HEAP32[3777]|0;
+ $16 = HEAP32[4081]|0;
$17 = ($16|0)==(0);
if (!($17)) {
- $18 = HEAP32[3779]|0;
- $19 = HEAP32[(16376)>>2]|0;
+ $18 = HEAP32[4083]|0;
+ $19 = HEAP32[(17592)>>2]|0;
FUNCTION_TABLE_vi[$18 & 31]($19);
}
- $20 = HEAP32[(16380)>>2]|0;
+ $20 = HEAP32[(17596)>>2]|0;
_glBindBuffer(34962,($20|0));
- $21 = HEAP32[4087]|0;
+ $21 = HEAP32[4391]|0;
$22 = ($21*12)|0;
- $23 = HEAP32[(16360)>>2]|0;
+ $23 = HEAP32[(17576)>>2]|0;
_glBufferSubData(34962,0,($22|0),($23|0));
- $24 = HEAP32[(16384)>>2]|0;
+ $24 = HEAP32[(17600)>>2]|0;
_glBindBuffer(34962,($24|0));
- $25 = HEAP32[(16356)>>2]|0;
+ $25 = HEAP32[(17572)>>2]|0;
$26 = $25 << 2;
- $27 = HEAP32[(16368)>>2]|0;
+ $27 = HEAP32[(17584)>>2]|0;
_glBufferSubData(34962,0,($26|0),($27|0));
}
- $28 = HEAP32[4099]|0;
+ $28 = HEAP32[4403]|0;
$29 = ($28|0)>(0);
if ($29) {
- $30 = HEAP32[3777]|0;
+ $30 = HEAP32[4081]|0;
$31 = ($30|0)==(0);
if (!($31)) {
- $32 = HEAP32[3779]|0;
- $33 = HEAP32[(16424)>>2]|0;
+ $32 = HEAP32[4083]|0;
+ $33 = HEAP32[(17640)>>2]|0;
FUNCTION_TABLE_vi[$32 & 31]($33);
}
- $34 = HEAP32[(16428)>>2]|0;
+ $34 = HEAP32[(17644)>>2]|0;
_glBindBuffer(34962,($34|0));
- $35 = HEAP32[4099]|0;
+ $35 = HEAP32[4403]|0;
$36 = ($35*12)|0;
- $37 = HEAP32[(16408)>>2]|0;
+ $37 = HEAP32[(17624)>>2]|0;
_glBufferSubData(34962,0,($36|0),($37|0));
- $38 = HEAP32[(16432)>>2]|0;
+ $38 = HEAP32[(17648)>>2]|0;
_glBindBuffer(34962,($38|0));
- $39 = HEAP32[4099]|0;
+ $39 = HEAP32[4403]|0;
$40 = $39 << 3;
- $41 = HEAP32[(16412)>>2]|0;
+ $41 = HEAP32[(17628)>>2]|0;
_glBufferSubData(34962,0,($40|0),($41|0));
- $42 = HEAP32[(16436)>>2]|0;
+ $42 = HEAP32[(17652)>>2]|0;
_glBindBuffer(34962,($42|0));
- $43 = HEAP32[4099]|0;
+ $43 = HEAP32[4403]|0;
$44 = $43 << 2;
- $45 = HEAP32[(16416)>>2]|0;
+ $45 = HEAP32[(17632)>>2]|0;
_glBufferSubData(34962,0,($44|0),($45|0));
}
- $46 = HEAP32[3777]|0;
+ $46 = HEAP32[4081]|0;
$47 = ($46|0)==(0);
if ($47) {
return;
}
- $48 = HEAP32[3779]|0;
+ $48 = HEAP32[4083]|0;
FUNCTION_TABLE_vi[$48 & 31](0);
return;
}
@@ -12203,9 +15555,9 @@ function _DrawDefaultBuffers() {
$0 = sp + 128|0;
$1 = sp + 64|0;
$2 = sp;
- dest=$0; src=14976; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- dest=$1; src=15040; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- $3 = HEAP32[4162]|0;
+ dest=$0; src=16192; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=$1; src=16256; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ $3 = HEAP32[4466]|0;
$4 = ($3|0)!=(0);
$$ = $4 ? 2 : 1;
$$02932 = 0;
@@ -12215,134 +15567,134 @@ function _DrawDefaultBuffers() {
dest=$$byval_copy2; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_SetStereoView($$02932,$modelview$byval_copy,$$byval_copy2);
}
- $8 = HEAP32[4075]|0;
+ $8 = HEAP32[4379]|0;
$9 = ($8|0)>(0);
- $10 = HEAP32[4087]|0;
+ $10 = HEAP32[4391]|0;
$11 = ($10|0)>(0);
$or$cond = $9 | $11;
- $12 = HEAP32[4099]|0;
+ $12 = HEAP32[4403]|0;
$13 = ($12|0)>(0);
$or$cond3 = $or$cond | $13;
if ($or$cond3) {
- $14 = HEAP32[3799]|0;
+ $14 = HEAP32[4103]|0;
_glUseProgram(($14|0));
- dest=$modelview$byval_copy; src=15040; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- dest=$$byval_copy2; src=14976; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=$modelview$byval_copy; src=16256; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=$$byval_copy2; src=16192; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixMultiply($2,$modelview$byval_copy,$$byval_copy2);
- $15 = HEAP32[(15224)>>2]|0;
+ $15 = HEAP32[(16440)>>2]|0;
dest=$$byval_copy2; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$16 = (_MatrixToFloat($$byval_copy2)|0);
_glUniformMatrix4fv(($15|0),1,0,($16|0));
- $17 = HEAP32[(15228)>>2]|0;
+ $17 = HEAP32[(16444)>>2]|0;
_glUniform4f(($17|0),1.0,1.0,1.0,1.0);
- $18 = HEAP32[(15240)>>2]|0;
+ $18 = HEAP32[(16456)>>2]|0;
_glUniform1i(($18|0),0);
}
- $19 = HEAP32[4075]|0;
+ $19 = HEAP32[4379]|0;
$20 = ($19|0)>(0);
if ($20) {
- $21 = HEAP32[3784]|0;
+ $21 = HEAP32[4088]|0;
_glBindTexture(3553,($21|0));
- $22 = HEAP32[3777]|0;
+ $22 = HEAP32[4081]|0;
$23 = ($22|0)==(0);
if ($23) {
- $26 = HEAP32[(16332)>>2]|0;
+ $26 = HEAP32[(17548)>>2]|0;
_glBindBuffer(34962,($26|0));
- $27 = HEAP32[(15200)>>2]|0;
+ $27 = HEAP32[(16416)>>2]|0;
_glVertexAttribPointer(($27|0),3,5126,0,0,(0|0));
- $28 = HEAP32[(15200)>>2]|0;
+ $28 = HEAP32[(16416)>>2]|0;
_glEnableVertexAttribArray(($28|0));
- $29 = HEAP32[(16336)>>2]|0;
+ $29 = HEAP32[(17552)>>2]|0;
_glBindBuffer(34962,($29|0));
- $30 = HEAP32[(15220)>>2]|0;
+ $30 = HEAP32[(16436)>>2]|0;
_glVertexAttribPointer(($30|0),4,5121,1,0,(0|0));
- $31 = HEAP32[(15220)>>2]|0;
+ $31 = HEAP32[(16436)>>2]|0;
_glEnableVertexAttribArray(($31|0));
} else {
- $24 = HEAP32[3779]|0;
- $25 = HEAP32[(16328)>>2]|0;
+ $24 = HEAP32[4083]|0;
+ $25 = HEAP32[(17544)>>2]|0;
FUNCTION_TABLE_vi[$24 & 31]($25);
}
- $32 = HEAP32[4075]|0;
+ $32 = HEAP32[4379]|0;
_glDrawArrays(1,0,($32|0));
- $33 = HEAP32[3777]|0;
+ $33 = HEAP32[4081]|0;
$34 = ($33|0)==(0);
if ($34) {
_glBindBuffer(34962,0);
}
_glBindTexture(3553,0);
}
- $35 = HEAP32[4087]|0;
+ $35 = HEAP32[4391]|0;
$36 = ($35|0)>(0);
if ($36) {
- $37 = HEAP32[3784]|0;
+ $37 = HEAP32[4088]|0;
_glBindTexture(3553,($37|0));
- $38 = HEAP32[3777]|0;
+ $38 = HEAP32[4081]|0;
$39 = ($38|0)==(0);
if ($39) {
- $42 = HEAP32[(16380)>>2]|0;
+ $42 = HEAP32[(17596)>>2]|0;
_glBindBuffer(34962,($42|0));
- $43 = HEAP32[(15200)>>2]|0;
+ $43 = HEAP32[(16416)>>2]|0;
_glVertexAttribPointer(($43|0),3,5126,0,0,(0|0));
- $44 = HEAP32[(15200)>>2]|0;
+ $44 = HEAP32[(16416)>>2]|0;
_glEnableVertexAttribArray(($44|0));
- $45 = HEAP32[(16384)>>2]|0;
+ $45 = HEAP32[(17600)>>2]|0;
_glBindBuffer(34962,($45|0));
- $46 = HEAP32[(15220)>>2]|0;
+ $46 = HEAP32[(16436)>>2]|0;
_glVertexAttribPointer(($46|0),4,5121,1,0,(0|0));
- $47 = HEAP32[(15220)>>2]|0;
+ $47 = HEAP32[(16436)>>2]|0;
_glEnableVertexAttribArray(($47|0));
} else {
- $40 = HEAP32[3779]|0;
- $41 = HEAP32[(16376)>>2]|0;
+ $40 = HEAP32[4083]|0;
+ $41 = HEAP32[(17592)>>2]|0;
FUNCTION_TABLE_vi[$40 & 31]($41);
}
- $48 = HEAP32[4087]|0;
+ $48 = HEAP32[4391]|0;
_glDrawArrays(4,0,($48|0));
- $49 = HEAP32[3777]|0;
+ $49 = HEAP32[4081]|0;
$50 = ($49|0)==(0);
if ($50) {
_glBindBuffer(34962,0);
}
_glBindTexture(3553,0);
}
- $51 = HEAP32[4099]|0;
+ $51 = HEAP32[4403]|0;
$52 = ($51|0)>(0);
if ($52) {
- $53 = HEAP32[3777]|0;
+ $53 = HEAP32[4081]|0;
$54 = ($53|0)==(0);
if ($54) {
- $57 = HEAP32[(16428)>>2]|0;
+ $57 = HEAP32[(17644)>>2]|0;
_glBindBuffer(34962,($57|0));
- $58 = HEAP32[(15200)>>2]|0;
+ $58 = HEAP32[(16416)>>2]|0;
_glVertexAttribPointer(($58|0),3,5126,0,0,(0|0));
- $59 = HEAP32[(15200)>>2]|0;
+ $59 = HEAP32[(16416)>>2]|0;
_glEnableVertexAttribArray(($59|0));
- $60 = HEAP32[(16432)>>2]|0;
+ $60 = HEAP32[(17648)>>2]|0;
_glBindBuffer(34962,($60|0));
- $61 = HEAP32[(15204)>>2]|0;
+ $61 = HEAP32[(16420)>>2]|0;
_glVertexAttribPointer(($61|0),2,5126,0,0,(0|0));
- $62 = HEAP32[(15204)>>2]|0;
+ $62 = HEAP32[(16420)>>2]|0;
_glEnableVertexAttribArray(($62|0));
- $63 = HEAP32[(16436)>>2]|0;
+ $63 = HEAP32[(17652)>>2]|0;
_glBindBuffer(34962,($63|0));
- $64 = HEAP32[(15220)>>2]|0;
+ $64 = HEAP32[(16436)>>2]|0;
_glVertexAttribPointer(($64|0),4,5121,1,0,(0|0));
- $65 = HEAP32[(15220)>>2]|0;
+ $65 = HEAP32[(16436)>>2]|0;
_glEnableVertexAttribArray(($65|0));
- $66 = HEAP32[(16440)>>2]|0;
+ $66 = HEAP32[(17656)>>2]|0;
_glBindBuffer(34963,($66|0));
} else {
- $55 = HEAP32[3779]|0;
- $56 = HEAP32[(16424)>>2]|0;
+ $55 = HEAP32[4083]|0;
+ $56 = HEAP32[(17640)>>2]|0;
FUNCTION_TABLE_vi[$55 & 31]($56);
}
- $67 = HEAP32[3815]|0;
+ $67 = HEAP32[4119]|0;
$68 = ($67|0)>(0);
if ($68) {
$$02830 = 0;$$031 = 0;
while(1) {
- $71 = HEAP32[3814]|0;
+ $71 = HEAP32[4118]|0;
$72 = (($71) + (($$031*144)|0)|0);
$73 = HEAP32[$72>>2]|0;
$74 = (($73|0) / 4)&-1;
@@ -12353,14 +15705,14 @@ function _DrawDefaultBuffers() {
$78 = $$02830 << 1;
$79 = $78;
_glDrawElements(4,($75|0),5123,($79|0));
- $80 = HEAP32[3814]|0;
+ $80 = HEAP32[4118]|0;
$81 = (($80) + (($$031*144)|0)|0);
$82 = HEAP32[$81>>2]|0;
$83 = (($82|0) / 4)&-1;
$84 = ($83*6)|0;
$85 = (($84) + ($$02830))|0;
$86 = (($$031) + 1)|0;
- $87 = HEAP32[3815]|0;
+ $87 = HEAP32[4119]|0;
$88 = ($86|0)<($87|0);
if ($88) {
$$02830 = $85;$$031 = $86;
@@ -12369,7 +15721,7 @@ function _DrawDefaultBuffers() {
}
}
}
- $69 = HEAP32[3777]|0;
+ $69 = HEAP32[4081]|0;
$70 = ($69|0)==(0);
if ($70) {
_glBindBuffer(34962,0);
@@ -12377,10 +15729,10 @@ function _DrawDefaultBuffers() {
}
_glBindTexture(3553,0);
}
- $89 = HEAP32[3777]|0;
+ $89 = HEAP32[4081]|0;
$90 = ($89|0)==(0);
if (!($90)) {
- $91 = HEAP32[3779]|0;
+ $91 = HEAP32[4083]|0;
FUNCTION_TABLE_vi[$91 & 31](0);
}
_glUseProgram(0);
@@ -12392,22 +15744,22 @@ function _DrawDefaultBuffers() {
break;
}
}
- HEAP32[3815] = 1;
- $5 = HEAP32[3784]|0;
- $6 = HEAP32[3814]|0;
+ HEAP32[4119] = 1;
+ $5 = HEAP32[4088]|0;
+ $6 = HEAP32[4118]|0;
$7 = ((($6)) + 8|0);
HEAP32[$7>>2] = $5;
HEAP32[$6>>2] = 0;
- HEAP32[4075] = 0;
- HEAP32[(16308)>>2] = 0;
- HEAP32[4087] = 0;
- HEAP32[(16356)>>2] = 0;
- HEAP32[4099] = 0;
- HEAP32[(16400)>>2] = 0;
- HEAP32[(16404)>>2] = 0;
- HEAPF32[742] = -1.0;
- dest=14976; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- dest=15040; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ HEAP32[4379] = 0;
+ HEAP32[(17524)>>2] = 0;
+ HEAP32[4391] = 0;
+ HEAP32[(17572)>>2] = 0;
+ HEAP32[4403] = 0;
+ HEAP32[(17616)>>2] = 0;
+ HEAP32[(17620)>>2] = 0;
+ HEAPF32[744] = -1.0;
+ dest=16192; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16256; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
STACKTOP = sp;return;
}
function _SetStereoView($0,$1,$2) {
@@ -12422,17 +15774,17 @@ function _SetStereoView($0,$1,$2) {
$3 = sp;
$4 = sp + 128|0;
dest=$3; src=$1; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
- $5 = HEAP32[4073]|0;
+ $5 = HEAP32[4377]|0;
$6 = Math_imul($5, $0)|0;
$7 = (($6|0) / 2)&-1;
$8 = (($5|0) / 2)&-1;
- $9 = HEAP32[4074]|0;
+ $9 = HEAP32[4378]|0;
_rlViewport($7,0,$8,$9);
- $10 = (16880 + ($0<<6)|0);
+ $10 = (18096 + ($0<<6)|0);
dest=$$byval_copy; src=$2; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$$byval_copy3; src=$10; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixMultiply($4,$$byval_copy,$$byval_copy3);
- $11 = (16752 + ($0<<6)|0);
+ $11 = (17968 + ($0<<6)|0);
dest=$3; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$$byval_copy3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_SetMatrixModelview($$byval_copy3);
@@ -12444,14 +15796,14 @@ function _SetMatrixModelview($0) {
$0 = $0|0;
var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
- dest=15040; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16256; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
return;
}
function _SetMatrixProjection($0) {
$0 = $0|0;
var dest = 0, label = 0, sp = 0, src = 0, stop = 0;
sp = STACKTOP;
- dest=14976; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=16192; src=$0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
return;
}
function _rlPushMatrix() {
@@ -12459,52 +15811,69 @@ function _rlPushMatrix() {
sp = STACKTOP;
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
$vararg_buffer = sp;
- $0 = HEAP32[4252]|0;
+ $0 = HEAP32[4556]|0;
$1 = ($0|0)==(15);
if ($1) {
HEAP32[$vararg_buffer>>2] = 16;
- _TraceLog(1,8545,$vararg_buffer);
+ _TraceLog(1,8553,$vararg_buffer);
}
- $2 = HEAP32[4252]|0;
- $3 = (15268 + ($2<<6)|0);
- $4 = HEAP32[3743]|0;
+ $2 = HEAP32[4556]|0;
+ $3 = (16484 + ($2<<6)|0);
+ $4 = HEAP32[4047]|0;
dest=$3; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_rlLoadIdentity();
- $5 = HEAP32[4252]|0;
+ $5 = HEAP32[4556]|0;
$6 = (($5) + 1)|0;
- HEAP32[4252] = $6;
- $7 = HEAP32[3776]|0;
+ HEAP32[4556] = $6;
+ $7 = HEAP32[4080]|0;
$8 = ($7|0)==(5888);
if (!($8)) {
STACKTOP = sp;return;
}
- HEAP32[4253] = 1;
+ HEAP32[4557] = 1;
STACKTOP = sp;return;
}
function _rlPopMatrix() {
var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[4252]|0;
+ $0 = HEAP32[4556]|0;
$1 = ($0|0)>(0);
if (!($1)) {
return;
}
- $2 = HEAP32[4252]|0;
+ $2 = HEAP32[4556]|0;
$3 = (($2) + -1)|0;
- $4 = (15268 + ($3<<6)|0);
- $5 = HEAP32[3743]|0;
+ $4 = (16484 + ($3<<6)|0);
+ $5 = HEAP32[4047]|0;
_memmove(($5|0),($4|0),64)|0;
$6 = (($2) + -1)|0;
- HEAP32[4252] = $6;
+ HEAP32[4556] = $6;
return;
}
+function _IsFileExtension($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$ = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_strrchr($0,46)|0);
+ $3 = ($2|0)==(0|0);
+ if ($3) {
+ return 0;
+ } else {
+ $4 = (_strcmp($2,$1)|0);
+ $5 = ($4|0)==(0);
+ $$ = $5&1;
+ return ($$|0);
+ }
+ return (0)|0;
+}
function _IsKeyPressed($0) {
$0 = $0|0;
var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = (17603 + ($0)|0);
+ $1 = (18819 + ($0)|0);
$2 = HEAP8[$1>>0]|0;
- $3 = (18115 + ($0)|0);
+ $3 = (19331 + ($0)|0);
$4 = HEAP8[$3>>0]|0;
$5 = ($2<<24>>24)!=($4<<24>>24);
$6 = ($2<<24>>24)==(1);
@@ -12525,7 +15894,7 @@ function _rlTranslatef($0,$1,$2) {
$4 = sp;
_MatrixTranslate($3,$0,$1,$2);
_MatrixTranspose($3);
- $5 = HEAP32[3743]|0;
+ $5 = HEAP32[4047]|0;
dest=$$byval_copy; src=$5; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$$byval_copy1; src=$3; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixMultiply($4,$$byval_copy,$$byval_copy1);
@@ -12558,7 +15927,7 @@ function _rlRotatef($0,$1,$2,$3) {
_MatrixRotate($6,$$byval_copy2,$10);
dest=$4; src=$6; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixTranspose($4);
- $11 = HEAP32[3743]|0;
+ $11 = HEAP32[4047]|0;
dest=$$byval_copy1; src=$11; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
dest=$$byval_copy2; src=$4; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_MatrixMultiply($7,$$byval_copy1,$$byval_copy2);
@@ -12569,7 +15938,7 @@ function _rlBegin($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
- HEAP32[3816] = $0;
+ HEAP32[4120] = $0;
return;
}
function _rlEnd() {
@@ -12585,21 +15954,21 @@ function _rlEnd() {
sp = STACKTOP;
STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0);
$$byval_copy = sp;
- $0 = HEAP32[4253]|0;
+ $0 = HEAP32[4557]|0;
$1 = ($0|0)==(0);
if (!($1)) {
- $2 = HEAP32[4254]|0;
+ $2 = HEAP32[4558]|0;
$3 = ($2|0)>(0);
if ($3) {
$$03956 = 0;
while(1) {
- $6 = HEAP32[3813]|0;
+ $6 = HEAP32[4117]|0;
$7 = (($6) + (($$03956*12)|0)|0);
- $8 = HEAP32[3743]|0;
+ $8 = HEAP32[4047]|0;
dest=$$byval_copy; src=$8; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
_VectorTransform($7,$$byval_copy);
$9 = (($$03956) + 1)|0;
- $5 = HEAP32[4254]|0;
+ $5 = HEAP32[4558]|0;
$10 = ($9|0)<($5|0);
if ($10) {
$$03956 = $9;
@@ -12607,12 +15976,12 @@ function _rlEnd() {
break;
}
}
- HEAP32[4253] = 0;
+ HEAP32[4557] = 0;
$4 = ($5|0)>(0);
if ($4) {
$$04154 = 0;
while(1) {
- $11 = HEAP32[3813]|0;
+ $11 = HEAP32[4117]|0;
$12 = (($11) + (($$04154*12)|0)|0);
$13 = +HEAPF32[$12>>2];
$14 = (((($11) + (($$04154*12)|0)|0)) + 4|0);
@@ -12621,7 +15990,7 @@ function _rlEnd() {
$17 = +HEAPF32[$16>>2];
_rlVertex3f($13,$15,$17);
$18 = (($$04154) + 1)|0;
- $19 = HEAP32[4254]|0;
+ $19 = HEAP32[4558]|0;
$20 = ($18|0)<($19|0);
if ($20) {
$$04154 = $18;
@@ -12631,20 +16000,20 @@ function _rlEnd() {
}
}
} else {
- HEAP32[4253] = 0;
+ HEAP32[4557] = 0;
}
- HEAP32[4254] = 0;
+ HEAP32[4558] = 0;
}
- $21 = HEAP32[3816]|0;
+ $21 = HEAP32[4120]|0;
switch ($21|0) {
case 1: {
- $22 = HEAP32[4075]|0;
- $23 = HEAP32[(16308)>>2]|0;
+ $22 = HEAP32[4379]|0;
+ $23 = HEAP32[(17524)>>2]|0;
$24 = ($22|0)==($23|0);
if ($24) {
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
}
$25 = (($22) - ($23))|0;
@@ -12652,22 +16021,22 @@ function _rlEnd() {
if ($26) {
$$04347 = 0;
} else {
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
}
while(1) {
- $27 = HEAP32[(16320)>>2]|0;
- $28 = HEAP32[(16308)>>2]|0;
+ $27 = HEAP32[(17536)>>2]|0;
+ $28 = HEAP32[(17524)>>2]|0;
$29 = $28 << 2;
$30 = (($29) + -4)|0;
$31 = (($27) + ($30)|0);
$32 = HEAP8[$31>>0]|0;
$33 = (($27) + ($29)|0);
HEAP8[$33>>0] = $32;
- $34 = HEAP32[(16320)>>2]|0;
- $35 = HEAP32[(16308)>>2]|0;
+ $34 = HEAP32[(17536)>>2]|0;
+ $35 = HEAP32[(17524)>>2]|0;
$36 = $35 << 2;
$37 = (($36) + -3)|0;
$38 = (($34) + ($37)|0);
@@ -12675,8 +16044,8 @@ function _rlEnd() {
$40 = $36 | 1;
$41 = (($34) + ($40)|0);
HEAP8[$41>>0] = $39;
- $42 = HEAP32[(16320)>>2]|0;
- $43 = HEAP32[(16308)>>2]|0;
+ $42 = HEAP32[(17536)>>2]|0;
+ $43 = HEAP32[(17524)>>2]|0;
$44 = $43 << 2;
$45 = (($44) + -2)|0;
$46 = (($42) + ($45)|0);
@@ -12684,8 +16053,8 @@ function _rlEnd() {
$48 = $44 | 2;
$49 = (($42) + ($48)|0);
HEAP8[$49>>0] = $47;
- $50 = HEAP32[(16320)>>2]|0;
- $51 = HEAP32[(16308)>>2]|0;
+ $50 = HEAP32[(17536)>>2]|0;
+ $51 = HEAP32[(17524)>>2]|0;
$52 = $51 << 2;
$53 = (($52) + -1)|0;
$54 = (($50) + ($53)|0);
@@ -12693,9 +16062,9 @@ function _rlEnd() {
$56 = $52 | 3;
$57 = (($50) + ($56)|0);
HEAP8[$57>>0] = $55;
- $58 = HEAP32[(16308)>>2]|0;
+ $58 = HEAP32[(17524)>>2]|0;
$59 = (($58) + 1)|0;
- HEAP32[(16308)>>2] = $59;
+ HEAP32[(17524)>>2] = $59;
$60 = (($$04347) + 1)|0;
$exitcond = ($60|0)==($25|0);
if ($exitcond) {
@@ -12704,20 +16073,20 @@ function _rlEnd() {
$$04347 = $60;
}
}
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
break;
}
case 4: {
- $61 = HEAP32[4087]|0;
- $62 = HEAP32[(16356)>>2]|0;
+ $61 = HEAP32[4391]|0;
+ $62 = HEAP32[(17572)>>2]|0;
$63 = ($61|0)==($62|0);
if ($63) {
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
}
$64 = (($61) - ($62))|0;
@@ -12725,22 +16094,22 @@ function _rlEnd() {
if ($65) {
$$04248 = 0;
} else {
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
}
while(1) {
- $66 = HEAP32[(16368)>>2]|0;
- $67 = HEAP32[(16356)>>2]|0;
+ $66 = HEAP32[(17584)>>2]|0;
+ $67 = HEAP32[(17572)>>2]|0;
$68 = $67 << 2;
$69 = (($68) + -4)|0;
$70 = (($66) + ($69)|0);
$71 = HEAP8[$70>>0]|0;
$72 = (($66) + ($68)|0);
HEAP8[$72>>0] = $71;
- $73 = HEAP32[(16368)>>2]|0;
- $74 = HEAP32[(16356)>>2]|0;
+ $73 = HEAP32[(17584)>>2]|0;
+ $74 = HEAP32[(17572)>>2]|0;
$75 = $74 << 2;
$76 = (($75) + -3)|0;
$77 = (($73) + ($76)|0);
@@ -12748,8 +16117,8 @@ function _rlEnd() {
$79 = $75 | 1;
$80 = (($73) + ($79)|0);
HEAP8[$80>>0] = $78;
- $81 = HEAP32[(16368)>>2]|0;
- $82 = HEAP32[(16356)>>2]|0;
+ $81 = HEAP32[(17584)>>2]|0;
+ $82 = HEAP32[(17572)>>2]|0;
$83 = $82 << 2;
$84 = (($83) + -2)|0;
$85 = (($81) + ($84)|0);
@@ -12757,8 +16126,8 @@ function _rlEnd() {
$87 = $83 | 2;
$88 = (($81) + ($87)|0);
HEAP8[$88>>0] = $86;
- $89 = HEAP32[(16368)>>2]|0;
- $90 = HEAP32[(16356)>>2]|0;
+ $89 = HEAP32[(17584)>>2]|0;
+ $90 = HEAP32[(17572)>>2]|0;
$91 = $90 << 2;
$92 = (($91) + -1)|0;
$93 = (($89) + ($92)|0);
@@ -12766,9 +16135,9 @@ function _rlEnd() {
$95 = $91 | 3;
$96 = (($89) + ($95)|0);
HEAP8[$96>>0] = $94;
- $97 = HEAP32[(16356)>>2]|0;
+ $97 = HEAP32[(17572)>>2]|0;
$98 = (($97) + 1)|0;
- HEAP32[(16356)>>2] = $98;
+ HEAP32[(17572)>>2] = $98;
$99 = (($$04248) + 1)|0;
$exitcond60 = ($99|0)==($64|0);
if ($exitcond60) {
@@ -12777,15 +16146,15 @@ function _rlEnd() {
$$04248 = $99;
}
}
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
break;
}
case 7: {
- $100 = HEAP32[4099]|0;
- $101 = HEAP32[(16404)>>2]|0;
+ $100 = HEAP32[4403]|0;
+ $101 = HEAP32[(17620)>>2]|0;
$102 = ($100|0)==($101|0);
if (!($102)) {
$103 = (($100) - ($101))|0;
@@ -12793,16 +16162,16 @@ function _rlEnd() {
if ($104) {
$$04052 = 0;
while(1) {
- $105 = HEAP32[(16416)>>2]|0;
- $106 = HEAP32[(16404)>>2]|0;
+ $105 = HEAP32[(17632)>>2]|0;
+ $106 = HEAP32[(17620)>>2]|0;
$107 = $106 << 2;
$108 = (($107) + -4)|0;
$109 = (($105) + ($108)|0);
$110 = HEAP8[$109>>0]|0;
$111 = (($105) + ($107)|0);
HEAP8[$111>>0] = $110;
- $112 = HEAP32[(16416)>>2]|0;
- $113 = HEAP32[(16404)>>2]|0;
+ $112 = HEAP32[(17632)>>2]|0;
+ $113 = HEAP32[(17620)>>2]|0;
$114 = $113 << 2;
$115 = (($114) + -3)|0;
$116 = (($112) + ($115)|0);
@@ -12810,8 +16179,8 @@ function _rlEnd() {
$118 = $114 | 1;
$119 = (($112) + ($118)|0);
HEAP8[$119>>0] = $117;
- $120 = HEAP32[(16416)>>2]|0;
- $121 = HEAP32[(16404)>>2]|0;
+ $120 = HEAP32[(17632)>>2]|0;
+ $121 = HEAP32[(17620)>>2]|0;
$122 = $121 << 2;
$123 = (($122) + -2)|0;
$124 = (($120) + ($123)|0);
@@ -12819,8 +16188,8 @@ function _rlEnd() {
$126 = $122 | 2;
$127 = (($120) + ($126)|0);
HEAP8[$127>>0] = $125;
- $128 = HEAP32[(16416)>>2]|0;
- $129 = HEAP32[(16404)>>2]|0;
+ $128 = HEAP32[(17632)>>2]|0;
+ $129 = HEAP32[(17620)>>2]|0;
$130 = $129 << 2;
$131 = (($130) + -1)|0;
$132 = (($128) + ($131)|0);
@@ -12828,9 +16197,9 @@ function _rlEnd() {
$134 = $130 | 3;
$135 = (($128) + ($134)|0);
HEAP8[$135>>0] = $133;
- $136 = HEAP32[(16404)>>2]|0;
+ $136 = HEAP32[(17620)>>2]|0;
$137 = (($136) + 1)|0;
- HEAP32[(16404)>>2] = $137;
+ HEAP32[(17620)>>2] = $137;
$138 = (($$04052) + 1)|0;
$exitcond63 = ($138|0)==($103|0);
if ($exitcond63) {
@@ -12841,17 +16210,17 @@ function _rlEnd() {
}
}
}
- $139 = HEAP32[4099]|0;
- $140 = HEAP32[(16400)>>2]|0;
+ $139 = HEAP32[4403]|0;
+ $140 = HEAP32[(17616)>>2]|0;
$141 = ($139|0)>($140|0);
if (!($141)) {
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
}
- $142 = HEAP32[(16412)>>2]|0;
- $$promoted = HEAP32[(16400)>>2]|0;
+ $142 = HEAP32[(17628)>>2]|0;
+ $$promoted = HEAP32[(17616)>>2]|0;
$143 = $$promoted << 1;
$scevgep = (($142) + ($143<<2)|0);
$144 = (($139) - ($140))|0;
@@ -12859,17 +16228,17 @@ function _rlEnd() {
_memset(($scevgep|0),0,($145|0))|0;
$146 = (($139) + ($$promoted))|0;
$147 = (($146) - ($140))|0;
- HEAP32[(16400)>>2] = $147;
- $148 = +HEAPF32[742];
+ HEAP32[(17616)>>2] = $147;
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
break;
}
default: {
- $148 = +HEAPF32[742];
+ $148 = +HEAPF32[744];
$149 = $148 + 4.9999998736893758E-5;
- HEAPF32[742] = $149;
+ HEAPF32[744] = $149;
STACKTOP = sp;return;
}
}
@@ -12886,11 +16255,11 @@ function _rlVertex3f($0,$1,$2) {
$vararg_buffer3 = sp + 16|0;
$vararg_buffer1 = sp + 8|0;
$vararg_buffer = sp;
- $3 = HEAP32[4253]|0;
+ $3 = HEAP32[4557]|0;
$4 = ($3|0)==(0);
if (!($4)) {
- $5 = HEAP32[3813]|0;
- $6 = HEAP32[4254]|0;
+ $5 = HEAP32[4117]|0;
+ $6 = HEAP32[4558]|0;
$7 = (($5) + (($6*12)|0)|0);
HEAPF32[$7>>2] = $0;
$8 = (((($5) + (($6*12)|0)|0)) + 4|0);
@@ -12898,16 +16267,16 @@ function _rlVertex3f($0,$1,$2) {
$9 = (((($5) + (($6*12)|0)|0)) + 8|0);
HEAPF32[$9>>2] = $2;
$10 = (($6) + 1)|0;
- HEAP32[4254] = $10;
+ HEAP32[4558] = $10;
STACKTOP = sp;return;
}
- $11 = HEAP32[3816]|0;
+ $11 = HEAP32[4120]|0;
switch ($11|0) {
case 1: {
- $12 = HEAP32[4075]|0;
+ $12 = HEAP32[4379]|0;
$13 = ($12|0)<(2048);
if ($13) {
- $14 = HEAP32[(16312)>>2]|0;
+ $14 = HEAP32[(17528)>>2]|0;
$15 = ($12*3)|0;
$16 = (($14) + ($15<<2)|0);
HEAPF32[$16>>2] = $0;
@@ -12918,19 +16287,19 @@ function _rlVertex3f($0,$1,$2) {
$20 = (($14) + ($19<<2)|0);
HEAPF32[$20>>2] = $2;
$21 = (($12) + 1)|0;
- HEAP32[4075] = $21;
+ HEAP32[4379] = $21;
STACKTOP = sp;return;
} else {
- _TraceLog(1,8583,$vararg_buffer);
+ _TraceLog(1,8591,$vararg_buffer);
STACKTOP = sp;return;
}
break;
}
case 4: {
- $22 = HEAP32[4087]|0;
+ $22 = HEAP32[4391]|0;
$23 = ($22|0)<(6144);
if ($23) {
- $24 = HEAP32[(16360)>>2]|0;
+ $24 = HEAP32[(17576)>>2]|0;
$25 = ($22*3)|0;
$26 = (($24) + ($25<<2)|0);
HEAPF32[$26>>2] = $0;
@@ -12941,19 +16310,19 @@ function _rlVertex3f($0,$1,$2) {
$30 = (($24) + ($29<<2)|0);
HEAPF32[$30>>2] = $2;
$31 = (($22) + 1)|0;
- HEAP32[4087] = $31;
+ HEAP32[4391] = $31;
STACKTOP = sp;return;
} else {
- _TraceLog(1,8608,$vararg_buffer1);
+ _TraceLog(1,8616,$vararg_buffer1);
STACKTOP = sp;return;
}
break;
}
case 7: {
- $32 = HEAP32[4099]|0;
+ $32 = HEAP32[4403]|0;
$33 = ($32|0)<(4096);
if ($33) {
- $34 = HEAP32[(16408)>>2]|0;
+ $34 = HEAP32[(17624)>>2]|0;
$35 = ($32*3)|0;
$36 = (($34) + ($35<<2)|0);
HEAPF32[$36>>2] = $0;
@@ -12964,9 +16333,9 @@ function _rlVertex3f($0,$1,$2) {
$40 = (($34) + ($39<<2)|0);
HEAPF32[$40>>2] = $2;
$41 = (($32) + 1)|0;
- HEAP32[4099] = $41;
- $42 = HEAP32[3814]|0;
- $43 = HEAP32[3815]|0;
+ HEAP32[4403] = $41;
+ $42 = HEAP32[4118]|0;
+ $43 = HEAP32[4119]|0;
$44 = (($43) + -1)|0;
$45 = (($42) + (($44*144)|0)|0);
$46 = HEAP32[$45>>2]|0;
@@ -12974,7 +16343,7 @@ function _rlVertex3f($0,$1,$2) {
HEAP32[$45>>2] = $47;
STACKTOP = sp;return;
} else {
- _TraceLog(1,8637,$vararg_buffer3);
+ _TraceLog(1,8645,$vararg_buffer3);
STACKTOP = sp;return;
}
break;
@@ -12989,7 +16358,7 @@ function _rlVertex2f($0,$1) {
$1 = +$1;
var $2 = 0.0, label = 0, sp = 0;
sp = STACKTOP;
- $2 = +HEAPF32[742];
+ $2 = +HEAPF32[744];
_rlVertex3f($0,$1,$2);
return;
}
@@ -13000,7 +16369,7 @@ function _rlVertex2i($0,$1) {
sp = STACKTOP;
$2 = (+($0|0));
$3 = (+($1|0));
- $4 = +HEAPF32[742];
+ $4 = +HEAPF32[744];
_rlVertex3f($2,$3,$4);
return;
}
@@ -13009,13 +16378,13 @@ function _rlTexCoord2f($0,$1) {
$1 = +$1;
var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $2 = HEAP32[3816]|0;
+ $2 = HEAP32[4120]|0;
$3 = ($2|0)==(7);
if (!($3)) {
return;
}
- $4 = HEAP32[(16412)>>2]|0;
- $5 = HEAP32[(16400)>>2]|0;
+ $4 = HEAP32[(17628)>>2]|0;
+ $5 = HEAP32[(17616)>>2]|0;
$6 = $5 << 1;
$7 = (($4) + ($6<<2)|0);
HEAPF32[$7>>2] = $0;
@@ -13023,7 +16392,7 @@ function _rlTexCoord2f($0,$1) {
$9 = (($4) + ($8<<2)|0);
HEAPF32[$9>>2] = $1;
$10 = (($5) + 1)|0;
- HEAP32[(16400)>>2] = $10;
+ HEAP32[(17616)>>2] = $10;
return;
}
function _rlNormal3f($0,$1,$2) {
@@ -13042,18 +16411,18 @@ function _rlColor4ub($0,$1,$2,$3) {
var $$sink37 = 0, $$sink38 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $4 = 0, $5 = 0;
var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $4 = HEAP32[3816]|0;
+ $4 = HEAP32[4120]|0;
switch ($4|0) {
case 1: {
- $$sink37 = (16308);$$sink38 = (16320);
+ $$sink37 = (17524);$$sink38 = (17536);
break;
}
case 4: {
- $$sink37 = (16356);$$sink38 = (16368);
+ $$sink37 = (17572);$$sink38 = (17584);
break;
}
case 7: {
- $$sink37 = (16404);$$sink38 = (16416);
+ $$sink37 = (17620);$$sink38 = (17632);
break;
}
default: {
@@ -13092,8 +16461,8 @@ function _rlEnableTexture($0) {
$0 = $0|0;
var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = HEAP32[3814]|0;
- $2 = HEAP32[3815]|0;
+ $1 = HEAP32[4118]|0;
+ $2 = HEAP32[4119]|0;
$3 = (($2) + -1)|0;
$4 = (((($1) + (($3*144)|0)|0)) + 8|0);
$5 = HEAP32[$4>>2]|0;
@@ -13106,9 +16475,9 @@ function _rlEnableTexture($0) {
$9 = ($8|0)>(0);
if ($9) {
$10 = (($2) + 1)|0;
- HEAP32[3815] = $10;
+ HEAP32[4119] = $10;
}
- $11 = HEAP32[3815]|0;
+ $11 = HEAP32[4119]|0;
$12 = (($11) + -1)|0;
$13 = (((($1) + (($12*144)|0)|0)) + 8|0);
HEAP32[$13>>2] = $0;
@@ -13119,7 +16488,7 @@ function _rlEnableTexture($0) {
function _rlDisableTexture() {
var $0 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $0 = HEAP32[4099]|0;
+ $0 = HEAP32[4403]|0;
$1 = ($0|0)>(4095);
if (!($1)) {
return;
@@ -13142,14 +16511,14 @@ function _rlTextureParameters($0,$1,$2) {
switch ($1|0) {
case 10243: case 10242: {
$3 = ($2|0)!=(34626);
- $4 = HEAP32[3783]|0;
+ $4 = HEAP32[4087]|0;
$5 = ($4|0)!=(0);
$or$cond = $3 | $5;
if ($or$cond) {
_glTexParameteri(3553,($1|0),($2|0));
break L1;
} else {
- _TraceLog(2,8662,$vararg_buffer);
+ _TraceLog(2,8670,$vararg_buffer);
break L1;
}
break;
@@ -13160,7 +16529,7 @@ function _rlTextureParameters($0,$1,$2) {
}
case 12288: {
$6 = (+($2|0));
- $7 = +HEAPF32[3782];
+ $7 = +HEAPF32[4086];
$8 = !($6 <= $7);
if (!($8)) {
_glTexParameterf(3553,34046,(+$6));
@@ -13172,11 +16541,11 @@ function _rlTextureParameters($0,$1,$2) {
HEAP32[$vararg_buffer1>>2] = $0;
$vararg_ptr3 = ((($vararg_buffer1)) + 8|0);
HEAPF64[$vararg_ptr3>>3] = $10;
- _TraceLog(2,8699,$vararg_buffer1);
+ _TraceLog(2,8707,$vararg_buffer1);
_glTexParameterf(3553,34046,(+$6));
break L1;
} else {
- _TraceLog(2,8761,$vararg_buffer4);
+ _TraceLog(2,8769,$vararg_buffer4);
break L1;
}
break;
@@ -13220,14 +16589,14 @@ function _rlglGenerateMipmaps($0) {
} else {
$$0 = 0;
}
- $14 = HEAP32[3719]|0;
+ $14 = HEAP32[4023]|0;
$15 = ($14|0)!=(0);
$or$cond = $$0 | $15;
if ($or$cond) {
_glGenerateMipmap(3553);
$16 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer>>2] = $16;
- _TraceLog(0,8797,$vararg_buffer);
+ _TraceLog(0,8805,$vararg_buffer);
_glTexParameteri(3553,10240,9729);
_glTexParameteri(3553,10241,9987);
$17 = HEAP32[$2>>2]|0;
@@ -13248,7 +16617,7 @@ function _rlglGenerateMipmaps($0) {
} else {
$29 = HEAP32[$0>>2]|0;
HEAP32[$vararg_buffer1>>2] = $29;
- _TraceLog(2,8841,$vararg_buffer1);
+ _TraceLog(2,8849,$vararg_buffer1);
_glBindTexture(3553,0);
STACKTOP = sp;return;
}
@@ -13257,7 +16626,7 @@ function _GetDefaultTexture($0) {
$0 = $0|0;
var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $$sroa$6$0$$sroa_idx6 = 0, $$sroa$7$0$$sroa_idx8 = 0, $1 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $1 = HEAP32[3784]|0;
+ $1 = HEAP32[4088]|0;
HEAP32[$0>>2] = $1;
$$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 1;
@@ -13421,7 +16790,7 @@ function _GetDefaultFont($0) {
$0 = $0|0;
var label = 0, sp = 0;
sp = STACKTOP;
- ;HEAP32[$0>>2]=HEAP32[14824>>2]|0;HEAP32[$0+4>>2]=HEAP32[14824+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[14824+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[14824+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[14824+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[14824+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[14824+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[14824+28>>2]|0;
+ ;HEAP32[$0>>2]=HEAP32[16040>>2]|0;HEAP32[$0+4>>2]=HEAP32[16040+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[16040+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[16040+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[16040+16>>2]|0;HEAP32[$0+20>>2]=HEAP32[16040+20>>2]|0;HEAP32[$0+24>>2]=HEAP32[16040+24>>2]|0;HEAP32[$0+28>>2]=HEAP32[16040+28>>2]|0;
return;
}
function _MeasureTextEx($0,$1,$2,$3,$4) {
@@ -13589,7 +16958,7 @@ function _GenTextureMipmaps($0) {
STACKTOP = sp;return;
}
}
- _TraceLog(2,8882,$vararg_buffer);
+ _TraceLog(2,8890,$vararg_buffer);
STACKTOP = sp;return;
}
function _SetTextureFilter($0,$1) {
@@ -13649,7 +17018,7 @@ function _SetTextureFilter($0,$1) {
STACKTOP = sp;return;
} else {
HEAP32[$vararg_buffer>>2] = $17;
- _TraceLog(2,8943,$vararg_buffer);
+ _TraceLog(2,8951,$vararg_buffer);
$19 = HEAP32[$0>>2]|0;
_rlTextureParameters($19,10241,9729);
_rlTextureParameters($19,10240,9729);
@@ -13814,6 +17183,76 @@ function _DrawTexturePro($0,$1,$2,$3,$4,$5) {
_rlDisableTexture();
return;
}
+function _LoadSpriteFontTTF($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$048 = 0, $$sroa$0$0 = 0, $$sroa$0$0$copyload = 0, $$sroa$0$0$copyload15 = 0, $$sroa$0$0$copyload17 = 0, $$sroa$0$1 = 0, $$sroa$8 = 0, $$sroa$8$0$$sroa_idx = 0, $$sroa$8$0$$sroa_idx23 = 0, $$sroa$8$0$$sroa_idx26 = 0, $$sroa$8$0$$sroa_idx29 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $exitcond = 0, $or$cond = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0);
+ $vararg_buffer = sp;
+ $$sroa$8 = sp + 104|0;
+ $5 = sp + 72|0;
+ $6 = sp + 40|0;
+ $7 = sp + 8|0;
+ ;HEAP32[$$sroa$8>>2]=0|0;HEAP32[$$sroa$8+4>>2]=0|0;HEAP32[$$sroa$8+8>>2]=0|0;HEAP32[$$sroa$8+12>>2]=0|0;HEAP32[$$sroa$8+16>>2]=0|0;HEAP32[$$sroa$8+20>>2]=0|0;HEAP32[$$sroa$8+24>>2]=0|0;
+ $8 = (_IsFileExtension($1,9016)|0);
+ $9 = ($8|0)==(0);
+ if (!($9)) {
+ $10 = ($4|0)==(0|0);
+ $11 = ($3|0)==(0);
+ $or$cond = $11 | $10;
+ if ($or$cond) {
+ $12 = (_malloc(380)|0);
+ $$048 = 0;
+ while(1) {
+ $13 = (($$048) + 32)|0;
+ $14 = (($12) + ($$048<<2)|0);
+ HEAP32[$14>>2] = $13;
+ $15 = (($$048) + 1)|0;
+ $exitcond = ($15|0)==(95);
+ if ($exitcond) {
+ break;
+ } else {
+ $$048 = $15;
+ }
+ }
+ _LoadTTF($5,$1,$2,95,$12);
+ $$sroa$0$0$copyload = HEAP32[$5>>2]|0;
+ $$sroa$8$0$$sroa_idx = ((($5)) + 4|0);
+ ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx+20>>2]|0;HEAP32[$$sroa$8+24>>2]=HEAP32[$$sroa$8$0$$sroa_idx+24>>2]|0;
+ $$sroa$0$0 = $$sroa$0$0$copyload;
+ } else {
+ _LoadTTF($6,$1,$2,$3,$4);
+ $$sroa$0$0$copyload15 = HEAP32[$6>>2]|0;
+ $$sroa$8$0$$sroa_idx23 = ((($6)) + 4|0);
+ ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx23>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+20>>2]|0;HEAP32[$$sroa$8+24>>2]=HEAP32[$$sroa$8$0$$sroa_idx23+24>>2]|0;
+ $$sroa$0$0 = $$sroa$0$0$copyload15;
+ }
+ $16 = ($$sroa$0$0|0)==(0);
+ if (!($16)) {
+ $$sroa$0$1 = $$sroa$0$0;
+ HEAP32[$0>>2] = $$sroa$0$1;
+ $$sroa$8$0$$sroa_idx29 = ((($0)) + 4|0);
+ ;HEAP32[$$sroa$8$0$$sroa_idx29>>2]=HEAP32[$$sroa$8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+4>>2]=HEAP32[$$sroa$8+4>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+8>>2]=HEAP32[$$sroa$8+8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+12>>2]=HEAP32[$$sroa$8+12>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+16>>2]=HEAP32[$$sroa$8+16>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+20>>2]=HEAP32[$$sroa$8+20>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+24>>2]=HEAP32[$$sroa$8+24>>2]|0;
+ STACKTOP = sp;return;
+ }
+ }
+ HEAP32[$vararg_buffer>>2] = $1;
+ _TraceLog(2,9047,$vararg_buffer);
+ _GetDefaultFont($7);
+ $$sroa$0$0$copyload17 = HEAP32[$7>>2]|0;
+ $$sroa$8$0$$sroa_idx26 = ((($7)) + 4|0);
+ ;HEAP32[$$sroa$8>>2]=HEAP32[$$sroa$8$0$$sroa_idx26>>2]|0;HEAP32[$$sroa$8+4>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+4>>2]|0;HEAP32[$$sroa$8+8>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+8>>2]|0;HEAP32[$$sroa$8+12>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+12>>2]|0;HEAP32[$$sroa$8+16>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+16>>2]|0;HEAP32[$$sroa$8+20>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+20>>2]|0;HEAP32[$$sroa$8+24>>2]=HEAP32[$$sroa$8$0$$sroa_idx26+24>>2]|0;
+ $$sroa$0$1 = $$sroa$0$0$copyload17;
+ HEAP32[$0>>2] = $$sroa$0$1;
+ $$sroa$8$0$$sroa_idx29 = ((($0)) + 4|0);
+ ;HEAP32[$$sroa$8$0$$sroa_idx29>>2]=HEAP32[$$sroa$8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+4>>2]=HEAP32[$$sroa$8+4>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+8>>2]=HEAP32[$$sroa$8+8>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+12>>2]=HEAP32[$$sroa$8+12>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+16>>2]=HEAP32[$$sroa$8+16>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+20>>2]=HEAP32[$$sroa$8+20>>2]|0;HEAP32[$$sroa$8$0$$sroa_idx29+24>>2]=HEAP32[$$sroa$8+24>>2]|0;
+ STACKTOP = sp;return;
+}
function _UnloadSpriteFont($0) {
$0 = $0|0;
var $$byval_copy = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $vararg_buffer = 0, label = 0, sp = 0;
@@ -13834,30 +17273,5171 @@ function _UnloadSpriteFont($0) {
$5 = ((($0)) + 28|0);
$6 = HEAP32[$5>>2]|0;
_free($6);
- _TraceLog(3,9008,$vararg_buffer);
+ _TraceLog(3,9021,$vararg_buffer);
STACKTOP = sp;return;
}
-function _LoadSpriteFontTTF($0,$1,$2,$3,$4) {
+function _LoadTTF($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$0124130 = 0, $$0125129 = 0, $$0128 = 0, $$byval_copy9 = 0, $$sroa$0 = 0, $$sroa$10$0$$sroa_idx58 = 0, $$sroa$10$0$$sroa_idx59 = 0, $$sroa$6$0$$sroa_idx49 = 0, $$sroa$6$0$$sroa_idx50 = 0, $$sroa$7$0$$sroa_idx53 = 0, $$sroa$7$0$$sroa_idx54 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0;
+ var $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0;
+ var $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0.0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0.0, $8 = 0.0, $80 = 0, $81 = 0, $82 = 0, $9 = 0.0, $exitcond = 0, $exp2 = 0.0, $vararg_buffer2 = 0, $vararg_buffer5 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0);
+ $$byval_copy9 = sp + 48|0;
+ $vararg_buffer7 = sp + 40|0;
+ $vararg_buffer5 = sp + 32|0;
+ $vararg_buffer2 = sp + 24|0;
+ $$sroa$0 = sp;
+ $5 = sp + 68|0;
+ $6 = sp + 88|0;
+ $7 = (+($2|0));
+ $8 = $7 * 3.0;
+ $9 = $8 * 0.25;
+ $10 = (+Math_ceil((+$9)));
+ $11 = (+($3|0));
+ $12 = (+Math_sqrt((+$11)));
+ $13 = (+Math_ceil((+$12)));
+ $14 = $10 * $13;
+ $15 = (+Math_log((+$14)));
+ $16 = $15 / 0.69314718246459961;
+ $17 = (+Math_ceil((+$16)));
+ $exp2 = (+_llvm_exp2_f32((+$17)));
+ $18 = (~~(($exp2)));
+ HEAP32[$$byval_copy9>>2] = $18;
+ $vararg_ptr1 = ((($$byval_copy9)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $18;
+ _TraceLog(0,9106,$$byval_copy9);
+ $19 = (_malloc(16777216)|0);
+ $20 = Math_imul($18, $18)|0;
+ $21 = (_malloc($20)|0);
+ $22 = ($3*20)|0;
+ $23 = (_malloc($22)|0);
+ ;HEAP32[$$sroa$0>>2]=0|0;HEAP32[$$sroa$0+4>>2]=0|0;HEAP32[$$sroa$0+8>>2]=0|0;HEAP32[$$sroa$0+12>>2]=0|0;HEAP32[$$sroa$0+16>>2]=0|0;
+ $24 = (_fopen($1,9160)|0);
+ $25 = ($24|0)==(0|0);
+ if ($25) {
+ HEAP32[$vararg_buffer2>>2] = $1;
+ _TraceLog(2,9163,$vararg_buffer2);
+ ;HEAP32[$0>>2]=HEAP32[$$sroa$0>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$sroa$0+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$sroa$0+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$sroa$0+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$sroa$0+16>>2]|0;
+ $$sroa$6$0$$sroa_idx49 = ((($0)) + 20|0);
+ HEAP32[$$sroa$6$0$$sroa_idx49>>2] = 0;
+ $$sroa$7$0$$sroa_idx53 = ((($0)) + 24|0);
+ HEAP32[$$sroa$7$0$$sroa_idx53>>2] = 0;
+ $$sroa$10$0$$sroa_idx58 = ((($0)) + 28|0);
+ HEAP32[$$sroa$10$0$$sroa_idx58>>2] = 0;
+ STACKTOP = sp;return;
+ }
+ (_fread($19,1,16777216,$24)|0);
+ $26 = HEAP32[$4>>2]|0;
+ $27 = ($26|0)==(32);
+ if (!($27)) {
+ _TraceLog(2,9197,$vararg_buffer5);
+ }
+ $28 = HEAP32[$4>>2]|0;
+ $29 = (_stbtt_BakeFontBitmap($19,$7,$21,$18,$18,$28,$3,$23)|0);
+ $30 = ($29|0)<(0);
+ if ($30) {
+ _TraceLog(2,9264,$vararg_buffer7);
+ }
+ _free($19);
+ $31 = $20 << 1;
+ $32 = (_malloc($31)|0);
+ $33 = ($20|0)==(0);
+ if (!($33)) {
+ $$0124130 = 0;$$0125129 = 0;
+ while(1) {
+ $41 = (($32) + ($$0124130)|0);
+ HEAP8[$41>>0] = -1;
+ $42 = (($21) + ($$0125129)|0);
+ $43 = HEAP8[$42>>0]|0;
+ $44 = $$0124130 | 1;
+ $45 = (($32) + ($44)|0);
+ HEAP8[$45>>0] = $43;
+ $46 = (($$0125129) + 1)|0;
+ $47 = (($$0124130) + 2)|0;
+ $48 = ($46|0)<($20|0);
+ if ($48) {
+ $$0124130 = $47;$$0125129 = $46;
+ } else {
+ break;
+ }
+ }
+ }
+ _free($21);
+ $34 = ((($5)) + 4|0);
+ HEAP32[$34>>2] = $18;
+ $35 = ((($5)) + 8|0);
+ HEAP32[$35>>2] = $18;
+ $36 = ((($5)) + 12|0);
+ HEAP32[$36>>2] = 1;
+ $37 = ((($5)) + 16|0);
+ HEAP32[$37>>2] = 2;
+ HEAP32[$5>>2] = $32;
+ ;HEAP32[$$byval_copy9>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy9+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy9+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy9+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy9+16>>2]=HEAP32[$5+16>>2]|0;
+ _LoadTextureFromImage($6,$$byval_copy9);
+ ;HEAP32[$$sroa$0>>2]=HEAP32[$6>>2]|0;HEAP32[$$sroa$0+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$$sroa$0+8>>2]=HEAP32[$6+8>>2]|0;HEAP32[$$sroa$0+12>>2]=HEAP32[$6+12>>2]|0;HEAP32[$$sroa$0+16>>2]=HEAP32[$6+16>>2]|0;
+ ;HEAP32[$$byval_copy9>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy9+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy9+8>>2]=HEAP32[$5+8>>2]|0;HEAP32[$$byval_copy9+12>>2]=HEAP32[$5+12>>2]|0;HEAP32[$$byval_copy9+16>>2]=HEAP32[$5+16>>2]|0;
+ _UnloadImage($$byval_copy9);
+ $38 = $3 << 5;
+ $39 = (_malloc($38)|0);
+ $40 = ($3|0)>(0);
+ if ($40) {
+ $$0128 = 0;
+ while(1) {
+ $49 = (($4) + ($$0128<<2)|0);
+ $50 = HEAP32[$49>>2]|0;
+ $51 = (($39) + ($$0128<<5)|0);
+ HEAP32[$51>>2] = $50;
+ $52 = (($23) + (($$0128*20)|0)|0);
+ $53 = HEAP16[$52>>1]|0;
+ $54 = $53&65535;
+ $55 = (((($39) + ($$0128<<5)|0)) + 4|0);
+ HEAP32[$55>>2] = $54;
+ $56 = (((($23) + (($$0128*20)|0)|0)) + 2|0);
+ $57 = HEAP16[$56>>1]|0;
+ $58 = $57&65535;
+ $59 = (((($39) + ($$0128<<5)|0)) + 8|0);
+ HEAP32[$59>>2] = $58;
+ $60 = (((($23) + (($$0128*20)|0)|0)) + 4|0);
+ $61 = HEAP16[$60>>1]|0;
+ $62 = $61&65535;
+ $63 = (($62) - ($54))|0;
+ $64 = (((($39) + ($$0128<<5)|0)) + 12|0);
+ HEAP32[$64>>2] = $63;
+ $65 = (((($23) + (($$0128*20)|0)|0)) + 6|0);
+ $66 = HEAP16[$65>>1]|0;
+ $67 = $66&65535;
+ $68 = (($67) - ($58))|0;
+ $69 = (((($39) + ($$0128<<5)|0)) + 16|0);
+ HEAP32[$69>>2] = $68;
+ $70 = (((($23) + (($$0128*20)|0)|0)) + 8|0);
+ $71 = +HEAPF32[$70>>2];
+ $72 = (~~(($71)));
+ $73 = (((($39) + ($$0128<<5)|0)) + 20|0);
+ HEAP32[$73>>2] = $72;
+ $74 = (((($23) + (($$0128*20)|0)|0)) + 12|0);
+ $75 = +HEAPF32[$74>>2];
+ $76 = (~~(($75)));
+ $77 = (((($39) + ($$0128<<5)|0)) + 24|0);
+ HEAP32[$77>>2] = $76;
+ $78 = (((($23) + (($$0128*20)|0)|0)) + 16|0);
+ $79 = +HEAPF32[$78>>2];
+ $80 = (~~(($79)));
+ $81 = (((($39) + ($$0128<<5)|0)) + 28|0);
+ HEAP32[$81>>2] = $80;
+ $82 = (($$0128) + 1)|0;
+ $exitcond = ($82|0)==($3|0);
+ if ($exitcond) {
+ break;
+ } else {
+ $$0128 = $82;
+ }
+ }
+ }
+ _free($23);
+ ;HEAP32[$0>>2]=HEAP32[$$sroa$0>>2]|0;HEAP32[$0+4>>2]=HEAP32[$$sroa$0+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$$sroa$0+8>>2]|0;HEAP32[$0+12>>2]=HEAP32[$$sroa$0+12>>2]|0;HEAP32[$0+16>>2]=HEAP32[$$sroa$0+16>>2]|0;
+ $$sroa$6$0$$sroa_idx50 = ((($0)) + 20|0);
+ HEAP32[$$sroa$6$0$$sroa_idx50>>2] = $2;
+ $$sroa$7$0$$sroa_idx54 = ((($0)) + 24|0);
+ HEAP32[$$sroa$7$0$$sroa_idx54>>2] = $3;
+ $$sroa$10$0$$sroa_idx59 = ((($0)) + 28|0);
+ HEAP32[$$sroa$10$0$$sroa_idx59>>2] = $39;
+ STACKTOP = sp;return;
+}
+function _stbtt_BakeFontBitmap($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = +$1;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $8 = (_stbtt_BakeFontBitmap_internal($0,$1,$2,$3,$4,$5,$6,$7)|0);
+ return ($8|0);
+}
+function _stbtt_BakeFontBitmap_internal($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = +$1;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $$05 = 0, $$084$ = 0, $$0844 = 0, $$087$$091 = 0, $$0873 = 0, $$089 = 0, $$0902 = 0, $$091$ = 0, $$0911 = 0, $$1 = 0, $$2 = 0, $$286 = 0, $$293 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
+ var $17 = 0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0;
+ var $57 = 0, $58 = 0.0, $59 = 0, $60 = 0, $61 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0);
+ $8 = sp + 24|0;
+ $9 = sp + 20|0;
+ $10 = sp + 16|0;
+ $11 = sp + 12|0;
+ $12 = sp + 8|0;
+ $13 = sp + 4|0;
+ $14 = sp;
+ HEAP32[$8>>2] = 0;
+ $15 = (_stbtt_InitFont($8,$0)|0);
+ $16 = ($15|0)==(0);
+ if ($16) {
+ $$2 = -1;
+ STACKTOP = sp;return ($$2|0);
+ }
+ $17 = Math_imul($4, $3)|0;
+ _memset(($2|0),0,($17|0))|0;
+ $18 = (+_stbtt_ScaleForPixelHeight($8,$1));
+ $19 = ($6|0)>(0);
+ if (!($19)) {
+ $$2 = 1;
+ STACKTOP = sp;return ($$2|0);
+ }
+ $$05 = 0;$$0844 = 1;$$0873 = 1;$$0902 = 0;$$0911 = 1;
+ while(1) {
+ $22 = (($$0902) + ($5))|0;
+ $23 = (_stbtt_FindGlyphIndex($8,$22)|0);
+ _stbtt_GetGlyphHMetrics($8,$23,$9,$10);
+ _stbtt_GetGlyphBitmapBox($8,$23,$18,$18,$11,$12,$13,$14);
+ $24 = HEAP32[$13>>2]|0;
+ $25 = HEAP32[$11>>2]|0;
+ $26 = (($24) - ($25))|0;
+ $27 = HEAP32[$14>>2]|0;
+ $28 = HEAP32[$12>>2]|0;
+ $29 = (($27) - ($28))|0;
+ $30 = (($$0844) + 1)|0;
+ $31 = (($30) + ($26))|0;
+ $32 = ($31|0)<($3|0);
+ $$087$$091 = $32 ? $$0873 : $$0911;
+ $$084$ = $32 ? $$0844 : 1;
+ $33 = (($$087$$091) + ($29))|0;
+ $34 = (($33) + 1)|0;
+ $35 = ($34|0)<($4|0);
+ if ($35) {
+ $37 = (($$084$) + ($26))|0;
+ $38 = ($37|0)<($3|0);
+ if (!($38)) {
+ label = 8;
+ break;
+ }
+ $39 = (($2) + ($$084$)|0);
+ $40 = Math_imul($$087$$091, $3)|0;
+ $41 = (($39) + ($40)|0);
+ _stbtt_MakeGlyphBitmap($8,$41,$26,$29,$3,$18,$18,$23);
+ $42 = $$084$&65535;
+ $43 = (($7) + (($$0902*20)|0)|0);
+ HEAP16[$43>>1] = $42;
+ $44 = $$087$$091&65535;
+ $45 = (((($7) + (($$0902*20)|0)|0)) + 2|0);
+ HEAP16[$45>>1] = $44;
+ $46 = $37&65535;
+ $47 = (((($7) + (($$0902*20)|0)|0)) + 4|0);
+ HEAP16[$47>>1] = $46;
+ $48 = $33&65535;
+ $49 = (((($7) + (($$0902*20)|0)|0)) + 6|0);
+ HEAP16[$49>>1] = $48;
+ $50 = HEAP32[$9>>2]|0;
+ $51 = (+($50|0));
+ $52 = $18 * $51;
+ $53 = (((($7) + (($$0902*20)|0)|0)) + 16|0);
+ HEAPF32[$53>>2] = $52;
+ $54 = HEAP32[$11>>2]|0;
+ $55 = (+($54|0));
+ $56 = (((($7) + (($$0902*20)|0)|0)) + 8|0);
+ HEAPF32[$56>>2] = $55;
+ $57 = HEAP32[$12>>2]|0;
+ $58 = (+($57|0));
+ $59 = (((($7) + (($$0902*20)|0)|0)) + 12|0);
+ HEAPF32[$59>>2] = $58;
+ $60 = (($37) + 1)|0;
+ $61 = ($33|0)<($$0911|0);
+ $$091$ = $61 ? $$0911 : $34;
+ $$089 = 1;$$1 = $$05;$$286 = $60;$$293 = $$091$;
+ } else {
+ $36 = (0 - ($$0902))|0;
+ $$089 = 0;$$1 = $36;$$286 = $$084$;$$293 = $$0911;
+ }
+ $21 = (($$0902) + 1)|0;
+ if (!($$089)) {
+ $$2 = $$1;
+ label = 11;
+ break;
+ }
+ $20 = ($21|0)<($6|0);
+ if ($20) {
+ $$05 = $$1;$$0844 = $$286;$$0873 = $$087$$091;$$0902 = $21;$$0911 = $$293;
+ } else {
+ $$2 = $$293;
+ label = 11;
+ break;
+ }
+ }
+ if ((label|0) == 8) {
+ ___assert_fail((9327|0),(9337|0),3273,(9363|0));
+ // unreachable;
+ }
+ else if ((label|0) == 11) {
+ STACKTOP = sp;return ($$2|0);
+ }
+ return (0)|0;
+}
+function _stbtt_InitFont($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_stbtt_InitFont_internal($0,$1)|0);
+ return ($2|0);
+}
+function _stbtt_ScaleForPixelHeight($0,$1) {
+ $0 = $0|0;
+ $1 = +$1;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($0)) + 28|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($3) + ($5)|0);
+ $7 = ((($6)) + 4|0);
+ $8 = (_ttSHORT($7)|0);
+ $9 = $8 << 16 >> 16;
+ $10 = ((($6)) + 6|0);
+ $11 = (_ttSHORT($10)|0);
+ $12 = $11 << 16 >> 16;
+ $13 = (($9) - ($12))|0;
+ $14 = (+($13|0));
+ $15 = $1 / $14;
+ return (+$15);
+}
+function _stbtt_FindGlyphIndex($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$ = 0, $$$1172 = 0, $$0163180 = 0, $$0164179 = 0, $$0165 = 0, $$0165$ph = 0, $$0168$ph = 0, $$1172$lcssa = 0, $$1172178 = 0, $$2 = 0, $$2$shrunk = 0, $$5 = 0, $$8 = 0, $$neg = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0;
+ var $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, $122 = 0;
+ var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0;
+ var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0;
+ var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0;
+ var $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;
+ var $switch = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ((($0)) + 40|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (($3) + ($5)|0);
+ $7 = (_ttUSHORT($6)|0);
+ switch ($7<<16>>16) {
+ case 0: {
+ $8 = ((($6)) + 2|0);
+ $9 = (_ttUSHORT($8)|0);
+ $10 = $9&65535;
+ $11 = (($10) + -6)|0;
+ $12 = ($11|0)>($1|0);
+ if (!($12)) {
+ $$8 = 0;
+ return ($$8|0);
+ }
+ $13 = ((($6)) + 6|0);
+ $14 = (($13) + ($1)|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15&255;
+ $$8 = $16;
+ return ($$8|0);
+ break;
+ }
+ case 6: {
+ $17 = ((($6)) + 6|0);
+ $18 = (_ttUSHORT($17)|0);
+ $19 = $18&65535;
+ $20 = ($19>>>0)>($1>>>0);
+ if ($20) {
+ $$8 = 0;
+ return ($$8|0);
+ }
+ $21 = ((($6)) + 8|0);
+ $22 = (_ttUSHORT($21)|0);
+ $23 = $22&65535;
+ $24 = (($23) + ($19))|0;
+ $25 = ($24>>>0)>($1>>>0);
+ if (!($25)) {
+ $$8 = 0;
+ return ($$8|0);
+ }
+ $26 = ((($6)) + 10|0);
+ $27 = (($1) - ($19))|0;
+ $28 = $27 << 1;
+ $29 = (($26) + ($28)|0);
+ $30 = (_ttUSHORT($29)|0);
+ $31 = $30&65535;
+ $$8 = $31;
+ return ($$8|0);
+ break;
+ }
+ case 2: {
+ ___assert_fail((9797|0),(9337|0),1346,(10139|0));
+ // unreachable;
+ break;
+ }
+ case 4: {
+ $32 = ((($6)) + 6|0);
+ $33 = (_ttUSHORT($32)|0);
+ $34 = ($33&65535) >>> 1;
+ $35 = ($1|0)>(65535);
+ if ($35) {
+ $$8 = 0;
+ return ($$8|0);
+ }
+ $36 = (($5) + 14)|0;
+ $37 = ((($6)) + 12|0);
+ $38 = (_ttUSHORT($37)|0);
+ $39 = ((($6)) + 10|0);
+ $40 = (_ttUSHORT($39)|0);
+ $41 = $38 & -2;
+ $42 = (($3) + ($36)|0);
+ $43 = $41&65535;
+ $44 = (($42) + ($43)|0);
+ $45 = (_ttUSHORT($44)|0);
+ $46 = $45&65535;
+ $47 = ($46|0)>($1|0);
+ $48 = $47 ? 0 : $43;
+ $$ = (($5) + 12)|0;
+ $49 = (($$) + ($48))|0;
+ $50 = ($40<<16>>16)==(0);
+ if ($50) {
+ $$1172$lcssa = $49;
+ } else {
+ $51 = ((($6)) + 8|0);
+ $52 = (_ttUSHORT($51)|0);
+ $53 = ($52&65535) >>> 1;
+ $$0163180 = $53;$$0164179 = $40;$$1172178 = $49;
+ while(1) {
+ $54 = ($$0163180&65535) >>> 1;
+ $55 = (($3) + ($$1172178)|0);
+ $56 = ($54 << 1)&65535;
+ $57 = $56&65535;
+ $58 = (($55) + ($57)|0);
+ $59 = (_ttUSHORT($58)|0);
+ $60 = $59&65535;
+ $61 = ($60|0)<($1|0);
+ $62 = $61 ? $57 : 0;
+ $$$1172 = (($62) + ($$1172178))|0;
+ $63 = (($$0164179) + -1)<<16>>16;
+ $64 = ($63<<16>>16)==(0);
+ if ($64) {
+ $$1172$lcssa = $$$1172;
+ break;
+ } else {
+ $$0163180 = $54;$$0164179 = $63;$$1172178 = $$$1172;
+ }
+ }
+ }
+ $$neg = (-14 - ($5))|0;
+ $65 = (($$neg) + 2)|0;
+ $66 = (($65) + ($$1172$lcssa))|0;
+ $67 = $66 & 131070;
+ $68 = (($42) + ($67)|0);
+ $69 = (_ttUSHORT($68)|0);
+ $70 = $69&65535;
+ $71 = ($70|0)<($1|0);
+ if ($71) {
+ ___assert_fail((10160|0),(9337|0),1382,(10139|0));
+ // unreachable;
+ }
+ $72 = ((($6)) + 14|0);
+ $73 = $34&65535;
+ $74 = ($34 << 1)&65535;
+ $75 = $74&65535;
+ $76 = (($72) + ($75)|0);
+ $77 = ((($76)) + 2|0);
+ $78 = (($77) + ($67)|0);
+ $79 = (_ttUSHORT($78)|0);
+ $80 = $79&65535;
+ $81 = ($80|0)>($1|0);
+ do {
+ if ($81) {
+ $$2$shrunk = 0;
+ } else {
+ $82 = ($73*6)|0;
+ $83 = (($72) + ($82)|0);
+ $84 = ((($83)) + 2|0);
+ $85 = (($84) + ($67)|0);
+ $86 = (_ttUSHORT($85)|0);
+ $87 = ($86<<16>>16)==(0);
+ if ($87) {
+ $88 = $73 << 2;
+ $89 = (($72) + ($88)|0);
+ $90 = ((($89)) + 2|0);
+ $91 = (($90) + ($67)|0);
+ $92 = (_ttSHORT($91)|0);
+ $93 = $92&65535;
+ $94 = (($93) + ($1))|0;
+ $95 = $94&65535;
+ $$2$shrunk = $95;
+ break;
+ } else {
+ $96 = $86&65535;
+ $97 = (($3) + ($96)|0);
+ $98 = (($1) - ($80))|0;
+ $99 = $98 << 1;
+ $100 = (($97) + ($99)|0);
+ $101 = (($100) + ($5)|0);
+ $102 = ((($101)) + 14|0);
+ $103 = (($102) + ($82)|0);
+ $104 = ((($103)) + 2|0);
+ $105 = (($104) + ($67)|0);
+ $106 = (_ttUSHORT($105)|0);
+ $$2$shrunk = $106;
+ break;
+ }
+ }
+ } while(0);
+ $$2 = $$2$shrunk&65535;
+ $$8 = $$2;
+ return ($$8|0);
+ break;
+ }
+ default: {
+ $107 = ($7<<16>>16)==(12);
+ $108 = $7 & -2;
+ $switch = ($108<<16>>16)==(12);
+ if (!($switch)) {
+ ___assert_fail((9797|0),(9337|0),1417,(10139|0));
+ // unreachable;
+ }
+ $109 = ((($6)) + 12|0);
+ $110 = (_ttULONG($109)|0);
+ $111 = ((($6)) + 16|0);
+ $$0165$ph = $110;$$0168$ph = 0;
+ L6: while(1) {
+ $$0165 = $$0165$ph;
+ while(1) {
+ $112 = ($$0165|0)>($$0168$ph|0);
+ if (!($112)) {
+ $$8 = 0;
+ label = 27;
+ break L6;
+ }
+ $113 = (($$0165) - ($$0168$ph))|0;
+ $114 = $113 >> 1;
+ $115 = (($114) + ($$0168$ph))|0;
+ $116 = ($115*12)|0;
+ $117 = (($111) + ($116)|0);
+ $118 = (_ttULONG($117)|0);
+ $119 = ($118>>>0)>($1>>>0);
+ if ($119) {
+ $$0165 = $115;
+ } else {
+ break;
+ }
+ }
+ $120 = ((($117)) + 4|0);
+ $121 = (_ttULONG($120)|0);
+ $122 = ($121>>>0)<($1>>>0);
+ $123 = (($115) + 1)|0;
+ if ($122) {
+ $$0165$ph = $$0165;$$0168$ph = $123;
+ } else {
+ break;
+ }
+ }
+ if ((label|0) == 27) {
+ return ($$8|0);
+ }
+ $124 = ((($117)) + 8|0);
+ $125 = (_ttULONG($124)|0);
+ $126 = (($1) - ($118))|0;
+ $127 = $107 ? $126 : 0;
+ $$5 = (($125) + ($127))|0;
+ $$8 = $$5;
+ return ($$8|0);
+ }
+ }
+ return (0)|0;
+}
+function _stbtt_GetGlyphHMetrics($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0;
+ var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0;
+ var $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = ((($0)) + 4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = ((($0)) + 28|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = (($5) + ($7)|0);
+ $9 = ((($8)) + 34|0);
+ $10 = (_ttUSHORT($9)|0);
+ $11 = $10&65535;
+ $12 = ($11|0)>($1|0);
+ $13 = ($2|0)!=(0|0);
+ if ($12) {
+ if ($13) {
+ $14 = ((($0)) + 32|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (($5) + ($15)|0);
+ $17 = $1 << 2;
+ $18 = (($16) + ($17)|0);
+ $19 = (_ttSHORT($18)|0);
+ $20 = $19 << 16 >> 16;
+ HEAP32[$2>>2] = $20;
+ }
+ $21 = ($3|0)==(0|0);
+ if ($21) {
+ return;
+ }
+ $22 = HEAP32[$4>>2]|0;
+ $23 = ((($0)) + 32|0);
+ $24 = HEAP32[$23>>2]|0;
+ $25 = (($22) + ($24)|0);
+ $26 = $1 << 2;
+ $27 = (($25) + ($26)|0);
+ $28 = ((($27)) + 2|0);
+ $29 = (_ttSHORT($28)|0);
+ $30 = $29 << 16 >> 16;
+ HEAP32[$3>>2] = $30;
+ return;
+ } else {
+ if ($13) {
+ $31 = ((($0)) + 32|0);
+ $32 = HEAP32[$31>>2]|0;
+ $33 = (($5) + ($32)|0);
+ $34 = $11 << 2;
+ $35 = (($34) + -4)|0;
+ $36 = (($33) + ($35)|0);
+ $37 = (_ttSHORT($36)|0);
+ $38 = $37 << 16 >> 16;
+ HEAP32[$2>>2] = $38;
+ }
+ $39 = ($3|0)==(0|0);
+ if ($39) {
+ return;
+ }
+ $40 = HEAP32[$4>>2]|0;
+ $41 = ((($0)) + 32|0);
+ $42 = HEAP32[$41>>2]|0;
+ $43 = (($40) + ($42)|0);
+ $44 = $11 << 2;
+ $45 = (($43) + ($44)|0);
+ $46 = (($1) - ($11))|0;
+ $47 = $46 << 1;
+ $48 = (($45) + ($47)|0);
+ $49 = (_ttSHORT($48)|0);
+ $50 = $49 << 16 >> 16;
+ HEAP32[$3>>2] = $50;
+ return;
+ }
+}
+function _stbtt_GetGlyphBitmapBox($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = +$2;
+ $3 = +$3;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _stbtt_GetGlyphBitmapBoxSubpixel($0,$1,$2,$3,$4,$5,$6,$7);
+ return;
+}
+function _stbtt_MakeGlyphBitmap($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = +$5;
+ $6 = +$6;
+ $7 = $7|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _stbtt_MakeGlyphBitmapSubpixel($0,$1,$2,$3,$4,$5,$6,$7);
+ return;
+}
+function _stbtt_MakeGlyphBitmapSubpixel($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = +$5;
+ $6 = +$6;
+ $7 = $7|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
+ $8 = sp + 24|0;
+ $9 = sp + 20|0;
+ $10 = sp + 16|0;
+ $11 = sp;
+ $12 = (_stbtt_GetGlyphShape($0,$7,$10)|0);
+ _stbtt_GetGlyphBitmapBoxSubpixel($0,$7,$5,$6,$8,$9,0,0);
+ $13 = ((($11)) + 12|0);
+ HEAP32[$13>>2] = $1;
+ HEAP32[$11>>2] = $2;
+ $14 = ((($11)) + 4|0);
+ HEAP32[$14>>2] = $3;
+ $15 = ((($11)) + 8|0);
+ HEAP32[$15>>2] = $4;
+ $16 = ($2|0)==(0);
+ $17 = ($3|0)==(0);
+ $or$cond = $16 | $17;
+ if ($or$cond) {
+ $21 = HEAP32[$10>>2]|0;
+ _free($21);
+ STACKTOP = sp;return;
+ }
+ $18 = HEAP32[$10>>2]|0;
+ $19 = HEAP32[$8>>2]|0;
+ $20 = HEAP32[$9>>2]|0;
+ _stbtt_Rasterize($11,$18,$12,$5,$6,$19,$20);
+ $21 = HEAP32[$10>>2]|0;
+ _free($21);
+ STACKTOP = sp;return;
+}
+function _stbtt_GetGlyphShape($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 56|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)==(0);
+ if ($5) {
+ $6 = (_stbtt__GetGlyphShapeTT($0,$1,$2)|0);
+ $$0 = $6;
+ return ($$0|0);
+ } else {
+ $7 = (_stbtt__GetGlyphShapeT2($0,$1,$2)|0);
+ $$0 = $7;
+ return ($$0|0);
+ }
+ return (0)|0;
+}
+function _stbtt_GetGlyphBitmapBoxSubpixel($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = +$2;
+ $3 = +$3;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0;
+ var $30 = 0, $31 = 0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $8 = 0, $9 = 0, $ceilf = 0.0, $ceilf1 = 0.0, $floorf = 0.0, $floorf2 = 0.0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $8 = sp + 12|0;
+ $9 = sp + 8|0;
+ $10 = sp + 4|0;
+ $11 = sp;
+ HEAP32[$8>>2] = 0;
+ HEAP32[$9>>2] = 0;
+ $12 = (_stbtt_GetGlyphBox($0,$1,$8,$9,$10,$11)|0);
+ $13 = ($12|0)==(0);
+ $14 = ($4|0)!=(0|0);
+ if ($13) {
+ if ($14) {
+ HEAP32[$4>>2] = 0;
+ }
+ $15 = ($5|0)==(0|0);
+ if (!($15)) {
+ HEAP32[$5>>2] = 0;
+ }
+ $16 = ($6|0)==(0|0);
+ if (!($16)) {
+ HEAP32[$6>>2] = 0;
+ }
+ $17 = ($7|0)==(0|0);
+ if ($17) {
+ STACKTOP = sp;return;
+ }
+ HEAP32[$7>>2] = 0;
+ STACKTOP = sp;return;
+ } else {
+ if ($14) {
+ $18 = HEAP32[$8>>2]|0;
+ $19 = (+($18|0));
+ $20 = $19 * $2;
+ $21 = $20 + 0.0;
+ $floorf2 = (+Math_floor((+$21)));
+ $22 = (~~(($floorf2)));
+ HEAP32[$4>>2] = $22;
+ }
+ $23 = ($5|0)==(0|0);
+ if (!($23)) {
+ $24 = HEAP32[$11>>2]|0;
+ $25 = (0 - ($24))|0;
+ $26 = (+($25|0));
+ $27 = $26 * $3;
+ $28 = $27 + 0.0;
+ $floorf = (+Math_floor((+$28)));
+ $29 = (~~(($floorf)));
+ HEAP32[$5>>2] = $29;
+ }
+ $30 = ($6|0)==(0|0);
+ if (!($30)) {
+ $31 = HEAP32[$10>>2]|0;
+ $32 = (+($31|0));
+ $33 = $32 * $2;
+ $34 = $33 + 0.0;
+ $ceilf1 = (+Math_ceil((+$34)));
+ $35 = (~~(($ceilf1)));
+ HEAP32[$6>>2] = $35;
+ }
+ $36 = ($7|0)==(0|0);
+ if ($36) {
+ STACKTOP = sp;return;
+ }
+ $37 = HEAP32[$9>>2]|0;
+ $38 = (0 - ($37))|0;
+ $39 = (+($38|0));
+ $40 = $39 * $3;
+ $41 = $40 + 0.0;
+ $ceilf = (+Math_ceil((+$41)));
+ $42 = (~~(($ceilf)));
+ HEAP32[$7>>2] = $42;
+ STACKTOP = sp;return;
+ }
+}
+function _stbtt_Rasterize($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = +$3;
+ $4 = +$4;
+ $5 = $5|0;
+ $6 = $6|0;
+ var $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $7 = sp + 4|0;
+ $8 = sp;
+ $9 = $3 > $4;
+ $10 = $9 ? $4 : $3;
+ $11 = 0.34999999403953552 / $10;
+ $12 = (_stbtt_FlattenCurves($1,$2,$11,$8,$7)|0);
+ $13 = ($12|0)==(0|0);
+ if ($13) {
+ STACKTOP = sp;return;
+ }
+ $14 = HEAP32[$8>>2]|0;
+ $15 = HEAP32[$7>>2]|0;
+ _stbtt__rasterize($0,$12,$14,$15,$3,$4,$5,$6);
+ _free($14);
+ _free($12);
+ STACKTOP = sp;return;
+}
+function _stbtt_FlattenCurves($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = +$2;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$$0113 = 0, $$010 = 0.0, $$01079 = 0.0, $$011014 = 0, $$011113 = 0, $$011316 = 0, $$011715 = 0, $$0119 = 0, $$012012 = 0, $$1 = 0.0, $$1108 = 0.0, $$1112$lcssa = 0, $$11128 = 0, $$11185 = 0, $$1121 = 0, $$2 = 0, $$2115$lcssa = 0, $$21157 = 0, $$3116 = 0, $10 = 0;
+ var $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0;
+ var $31 = 0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0, $39 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0, $5 = 0;
+ var $50 = 0, $51 = 0.0, $52 = 0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0.0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0;
+ var $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0.0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0;
+ var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $exitcond = 0, $exitcond21 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $5 = sp;
+ HEAP32[$5>>2] = 0;
+ $6 = $2 * $2;
+ $7 = ($1|0)>(0);
+ if ($7) {
+ $$011316 = 0;$$011715 = 0;
+ } else {
+ HEAP32[$4>>2] = 0;
+ $$0119 = 0;
+ STACKTOP = sp;return ($$0119|0);
+ }
+ while(1) {
+ $8 = (((($0) + (($$011715*14)|0)|0)) + 12|0);
+ $9 = HEAP8[$8>>0]|0;
+ $10 = ($9<<24>>24)==(1);
+ $11 = $10&1;
+ $$$0113 = (($11) + ($$011316))|0;
+ $12 = (($$011715) + 1)|0;
+ $exitcond21 = ($12|0)==($1|0);
+ if ($exitcond21) {
+ break;
+ } else {
+ $$011316 = $$$0113;$$011715 = $12;
+ }
+ }
+ HEAP32[$4>>2] = $$$0113;
+ $13 = ($$$0113|0)==(0);
+ if ($13) {
+ $$0119 = 0;
+ STACKTOP = sp;return ($$0119|0);
+ }
+ $14 = $$$0113 << 2;
+ $15 = (_malloc($14)|0);
+ HEAP32[$3>>2] = $15;
+ $16 = ($15|0)==(0|0);
+ if ($16) {
+ HEAP32[$4>>2] = 0;
+ $$0119 = 0;
+ STACKTOP = sp;return ($$0119|0);
+ }
+ $17 = ($1|0)>(0);
+ $$011014 = 0;$$011113 = 0;$$012012 = 0;
+ while(1) {
+ $18 = ($$011014|0)==(1);
+ if ($18) {
+ $19 = HEAP32[$5>>2]|0;
+ $20 = $19 << 3;
+ $21 = (_malloc($20)|0);
+ $22 = ($21|0)==(0|0);
+ if ($22) {
+ break;
+ } else {
+ $$1121 = $21;
+ }
+ } else {
+ $$1121 = $$012012;
+ }
+ HEAP32[$5>>2] = 0;
+ L19: do {
+ if ($17) {
+ $$010 = 0.0;$$01079 = 0.0;$$11128 = $$011113;$$11185 = 0;$$21157 = -1;
+ while(1) {
+ $23 = (($0) + (($$11185*14)|0)|0);
+ $24 = (((($0) + (($$11185*14)|0)|0)) + 12|0);
+ $25 = HEAP8[$24>>0]|0;
+ switch ($25<<24>>24) {
+ case 1: {
+ $26 = ($$21157|0)>(-1);
+ if ($26) {
+ $27 = HEAP32[$5>>2]|0;
+ $28 = (($27) - ($$11128))|0;
+ $29 = HEAP32[$3>>2]|0;
+ $30 = (($29) + ($$21157<<2)|0);
+ HEAP32[$30>>2] = $28;
+ }
+ $31 = (($$21157) + 1)|0;
+ $32 = HEAP32[$5>>2]|0;
+ $33 = HEAP16[$23>>1]|0;
+ $34 = (+($33<<16>>16));
+ $35 = (((($0) + (($$11185*14)|0)|0)) + 2|0);
+ $36 = HEAP16[$35>>1]|0;
+ $37 = (+($36<<16>>16));
+ $38 = (($32) + 1)|0;
+ HEAP32[$5>>2] = $38;
+ _stbtt__add_point($$1121,$32,$34,$37);
+ $$1 = $37;$$1108 = $34;$$2 = $32;$$3116 = $31;
+ break;
+ }
+ case 2: {
+ $39 = HEAP16[$23>>1]|0;
+ $40 = (+($39<<16>>16));
+ $41 = (((($0) + (($$11185*14)|0)|0)) + 2|0);
+ $42 = HEAP16[$41>>1]|0;
+ $43 = (+($42<<16>>16));
+ $44 = HEAP32[$5>>2]|0;
+ $45 = (($44) + 1)|0;
+ HEAP32[$5>>2] = $45;
+ _stbtt__add_point($$1121,$44,$40,$43);
+ $$1 = $43;$$1108 = $40;$$2 = $$11128;$$3116 = $$21157;
+ break;
+ }
+ case 3: {
+ $46 = (((($0) + (($$11185*14)|0)|0)) + 4|0);
+ $47 = HEAP16[$46>>1]|0;
+ $48 = (+($47<<16>>16));
+ $49 = (((($0) + (($$11185*14)|0)|0)) + 6|0);
+ $50 = HEAP16[$49>>1]|0;
+ $51 = (+($50<<16>>16));
+ $52 = HEAP16[$23>>1]|0;
+ $53 = (+($52<<16>>16));
+ $54 = (((($0) + (($$11185*14)|0)|0)) + 2|0);
+ $55 = HEAP16[$54>>1]|0;
+ $56 = (+($55<<16>>16));
+ _stbtt__tesselate_curve($$1121,$5,$$01079,$$010,$48,$51,$53,$56,$6,0);
+ $57 = HEAP16[$23>>1]|0;
+ $58 = (+($57<<16>>16));
+ $59 = HEAP16[$54>>1]|0;
+ $60 = (+($59<<16>>16));
+ $$1 = $60;$$1108 = $58;$$2 = $$11128;$$3116 = $$21157;
+ break;
+ }
+ case 4: {
+ $61 = (((($0) + (($$11185*14)|0)|0)) + 4|0);
+ $62 = HEAP16[$61>>1]|0;
+ $63 = (+($62<<16>>16));
+ $64 = (((($0) + (($$11185*14)|0)|0)) + 6|0);
+ $65 = HEAP16[$64>>1]|0;
+ $66 = (+($65<<16>>16));
+ $67 = (((($0) + (($$11185*14)|0)|0)) + 8|0);
+ $68 = HEAP16[$67>>1]|0;
+ $69 = (+($68<<16>>16));
+ $70 = (((($0) + (($$11185*14)|0)|0)) + 10|0);
+ $71 = HEAP16[$70>>1]|0;
+ $72 = (+($71<<16>>16));
+ $73 = HEAP16[$23>>1]|0;
+ $74 = (+($73<<16>>16));
+ $75 = (((($0) + (($$11185*14)|0)|0)) + 2|0);
+ $76 = HEAP16[$75>>1]|0;
+ $77 = (+($76<<16>>16));
+ _stbtt__tesselate_cubic($$1121,$5,$$01079,$$010,$63,$66,$69,$72,$74,$77,$6,0);
+ $78 = HEAP16[$23>>1]|0;
+ $79 = (+($78<<16>>16));
+ $80 = HEAP16[$75>>1]|0;
+ $81 = (+($80<<16>>16));
+ $$1 = $81;$$1108 = $79;$$2 = $$11128;$$3116 = $$21157;
+ break;
+ }
+ default: {
+ $$1 = $$010;$$1108 = $$01079;$$2 = $$11128;$$3116 = $$21157;
+ }
+ }
+ $82 = (($$11185) + 1)|0;
+ $exitcond = ($82|0)==($1|0);
+ if ($exitcond) {
+ $$1112$lcssa = $$2;$$2115$lcssa = $$3116;
+ break L19;
+ } else {
+ $$010 = $$1;$$01079 = $$1108;$$11128 = $$2;$$11185 = $82;$$21157 = $$3116;
+ }
+ }
+ } else {
+ $$1112$lcssa = $$011113;$$2115$lcssa = -1;
+ }
+ } while(0);
+ $83 = HEAP32[$5>>2]|0;
+ $84 = (($83) - ($$1112$lcssa))|0;
+ $85 = HEAP32[$3>>2]|0;
+ $86 = (($85) + ($$2115$lcssa<<2)|0);
+ HEAP32[$86>>2] = $84;
+ $87 = (($$011014) + 1)|0;
+ $88 = ($87|0)<(2);
+ if ($88) {
+ $$011014 = $87;$$011113 = $$1112$lcssa;$$012012 = $$1121;
+ } else {
+ $$0119 = $$1121;
+ label = 21;
+ break;
+ }
+ }
+ if ((label|0) == 21) {
+ STACKTOP = sp;return ($$0119|0);
+ }
+ $89 = HEAP32[$3>>2]|0;
+ _free($89);
+ HEAP32[$3>>2] = 0;
+ HEAP32[$4>>2] = 0;
+ $$0119 = 0;
+ STACKTOP = sp;return ($$0119|0);
+}
+function _stbtt__rasterize($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = +$4;
+ $5 = +$5;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $$0 = 0, $$0101 = 0, $$0102$lcssa = 0, $$010211 = 0, $$010410 = 0, $$01064 = 0, $$01072 = 0, $$01081 = 0, $$01081$phi = 0, $$1$lcssa = 0, $$11055 = 0, $$16 = 0, $$2$lcssa = 0, $$23 = 0, $$3 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0;
+ var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0, $29 = 0.0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0.0;
+ var $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $8 = 0.0, $9 = 0, $exitcond = 0, $exitcond16 = 0, $phitmp = 0, $phitmp17 = 0, $storemerge = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $8 = -$5;
+ $9 = ($3|0)>(0);
+ if ($9) {
+ $$010211 = 0;$$010410 = 0;
+ while(1) {
+ $10 = (($2) + ($$010410<<2)|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = (($11) + ($$010211))|0;
+ $13 = (($$010410) + 1)|0;
+ $exitcond16 = ($13|0)==($3|0);
+ if ($exitcond16) {
+ break;
+ } else {
+ $$010211 = $12;$$010410 = $13;
+ }
+ }
+ $phitmp = ($12*20)|0;
+ $phitmp17 = (($phitmp) + 20)|0;
+ $$0102$lcssa = $phitmp17;
+ } else {
+ $$0102$lcssa = 20;
+ }
+ $14 = (_malloc($$0102$lcssa)|0);
+ $15 = ($14|0)==(0|0);
+ if ($15) {
+ return;
+ }
+ $16 = ($3|0)>(0);
+ if ($16) {
+ $$01064 = 0;$$11055 = 0;$$16 = 0;
+ while(1) {
+ $17 = (($1) + ($$01064<<3)|0);
+ $18 = (($2) + ($$11055<<2)|0);
+ $19 = HEAP32[$18>>2]|0;
+ $20 = (($19) + ($$01064))|0;
+ $21 = ($19|0)>(0);
+ if ($21) {
+ $22 = (($19) + -1)|0;
+ $23 = HEAP32[$18>>2]|0;
+ $$01072 = 0;$$01081 = $22;$$23 = $$16;
+ while(1) {
+ $24 = (($17) + ($$01081<<3)|0);
+ $25 = ((($24)) + 4|0);
+ $26 = +HEAPF32[$25>>2];
+ $27 = (($17) + ($$01072<<3)|0);
+ $28 = ((($27)) + 4|0);
+ $29 = +HEAPF32[$28>>2];
+ $30 = $26 == $29;
+ if ($30) {
+ $$3 = $$23;
+ } else {
+ $31 = (((($14) + (($$23*20)|0)|0)) + 16|0);
+ $32 = $26 > $29;
+ $storemerge = $32&1;
+ $$0101 = $32 ? $$01081 : $$01072;
+ $$0 = $32 ? $$01072 : $$01081;
+ HEAP32[$31>>2] = $storemerge;
+ $33 = (($17) + ($$0101<<3)|0);
+ $34 = +HEAPF32[$33>>2];
+ $35 = $34 * $4;
+ $36 = $35 + 0.0;
+ $37 = (($14) + (($$23*20)|0)|0);
+ HEAPF32[$37>>2] = $36;
+ $38 = ((($33)) + 4|0);
+ $39 = +HEAPF32[$38>>2];
+ $40 = $39 * $8;
+ $41 = $40 + 0.0;
+ $42 = (((($14) + (($$23*20)|0)|0)) + 4|0);
+ HEAPF32[$42>>2] = $41;
+ $43 = (($17) + ($$0<<3)|0);
+ $44 = +HEAPF32[$43>>2];
+ $45 = $44 * $4;
+ $46 = $45 + 0.0;
+ $47 = (((($14) + (($$23*20)|0)|0)) + 8|0);
+ HEAPF32[$47>>2] = $46;
+ $48 = ((($43)) + 4|0);
+ $49 = +HEAPF32[$48>>2];
+ $50 = $49 * $8;
+ $51 = $50 + 0.0;
+ $52 = (((($14) + (($$23*20)|0)|0)) + 12|0);
+ HEAPF32[$52>>2] = $51;
+ $53 = (($$23) + 1)|0;
+ $$3 = $53;
+ }
+ $54 = (($$01072) + 1)|0;
+ $55 = ($54|0)<($23|0);
+ if ($55) {
+ $$01081$phi = $$01072;$$01072 = $54;$$23 = $$3;$$01081 = $$01081$phi;
+ } else {
+ $$2$lcssa = $$3;
+ break;
+ }
+ }
+ } else {
+ $$2$lcssa = $$16;
+ }
+ $56 = (($$11055) + 1)|0;
+ $exitcond = ($56|0)==($3|0);
+ if ($exitcond) {
+ $$1$lcssa = $$2$lcssa;
+ break;
+ } else {
+ $$01064 = $20;$$11055 = $56;$$16 = $$2$lcssa;
+ }
+ }
+ } else {
+ $$1$lcssa = 0;
+ }
+ _stbtt__sort_edges($14,$$1$lcssa);
+ _stbtt__rasterize_sorted_edges($0,$14,$$1$lcssa,$6,$7);
+ _free($14);
+ return;
+}
+function _stbtt__sort_edges($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ _stbtt__sort_edges_quicksort($0,$1);
+ _stbtt__sort_edges_ins_sort($0,$1);
+ return;
+}
+function _stbtt__rasterize_sorted_edges($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ var $$ = 0, $$010025 = 0, $$010123 = 0, $$010219 = 0.0, $$010318 = 0, $$0104 = 0, $$0105$ph15 = 0, $$026 = 0, $$1$lcssa = 0, $$116 = 0, $$sroa$0 = 0, $$sroa$0$0$$sroa$0$0$$0$1 = 0, $$sroa$0$0$$sroa$0$0$$0$1079 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0;
+ var $17 = 0.0, $18 = 0.0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0.0, $38 = 0, $39 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0;
+ var $56 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0.0;
+ var $74 = 0.0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0.0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0;
+ var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $fabsf = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 544|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(544|0);
+ $5 = sp + 520|0;
+ $$sroa$0 = sp + 516|0;
+ $6 = sp;
+ ;HEAP32[$5>>2]=0|0;HEAP32[$5+4>>2]=0|0;HEAP32[$5+8>>2]=0|0;
+ HEAP32[$$sroa$0>>2] = 0;
+ $7 = HEAP32[$0>>2]|0;
+ $8 = ($7|0)>(64);
+ if ($8) {
+ $9 = $7 << 3;
+ $10 = $9 | 4;
+ $11 = (_malloc($10)|0);
+ $$0104 = $11;
+ } else {
+ $$0104 = $6;
+ }
+ $12 = HEAP32[$0>>2]|0;
+ $13 = (($$0104) + ($12<<2)|0);
+ $14 = ((($0)) + 4|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = (($15) + ($4))|0;
+ $17 = (+($16|0));
+ $18 = $17 + 1.0;
+ $19 = (((($1) + (($2*20)|0)|0)) + 4|0);
+ HEAPF32[$19>>2] = $18;
+ $20 = HEAP32[$14>>2]|0;
+ $21 = ($20|0)>(0);
+ L5: do {
+ if ($21) {
+ $22 = ((($13)) + 4|0);
+ $23 = ((($0)) + 12|0);
+ $24 = ((($0)) + 8|0);
+ $$010025 = $4;$$010123 = 0;$$026 = $1;
+ L7: while(1) {
+ $25 = (+($$010025|0));
+ $26 = $25 + 1.0;
+ $27 = HEAP32[$0>>2]|0;
+ $28 = $27 << 2;
+ _memset(($$0104|0),0,($28|0))|0;
+ $29 = (($28) + 4)|0;
+ _memset(($13|0),0,($29|0))|0;
+ $30 = HEAP32[$$sroa$0>>2]|0;
+ $31 = ($30|0)==(0|0);
+ L9: do {
+ if (!($31)) {
+ $$0105$ph15 = $$sroa$0;$99 = $30;
+ while(1) {
+ $36 = $99;
+ while(1) {
+ $35 = ((($36)) + 24|0);
+ $37 = +HEAPF32[$35>>2];
+ $38 = !($37 <= $25);
+ if ($38) {
+ break;
+ }
+ $39 = HEAP32[$36>>2]|0;
+ HEAP32[$$0105$ph15>>2] = $39;
+ $40 = ((($36)) + 16|0);
+ $41 = +HEAPF32[$40>>2];
+ $42 = $41 != 0.0;
+ if (!($42)) {
+ label = 11;
+ break L7;
+ }
+ HEAPF32[$40>>2] = 0.0;
+ _stbtt__hheap_free($5,$36);
+ $43 = HEAP32[$$0105$ph15>>2]|0;
+ $44 = ($43|0)==(0|0);
+ if ($44) {
+ break L9;
+ } else {
+ $36 = $43;
+ }
+ }
+ $45 = HEAP32[$36>>2]|0;
+ $46 = ($45|0)==(0|0);
+ if ($46) {
+ break;
+ } else {
+ $$0105$ph15 = $36;$99 = $45;
+ }
+ }
+ }
+ } while(0);
+ $32 = ((($$026)) + 4|0);
+ $33 = +HEAPF32[$32>>2];
+ $34 = !($33 <= $26);
+ if ($34) {
+ $$1$lcssa = $$026;
+ } else {
+ $$116 = $$026;$50 = $33;
+ while(1) {
+ $47 = ((($$116)) + 12|0);
+ $48 = +HEAPF32[$47>>2];
+ $49 = $50 != $48;
+ if ($49) {
+ $51 = (_stbtt__new_active($5,$$116,$3,$25)|0);
+ $52 = ($51|0)==(0|0);
+ if (!($52)) {
+ $53 = ((($51)) + 24|0);
+ $54 = +HEAPF32[$53>>2];
+ $55 = !($54 >= $25);
+ if ($55) {
+ label = 17;
+ break L7;
+ }
+ $$sroa$0$0$$sroa$0$0$$0$1 = HEAP32[$$sroa$0>>2]|0;
+ HEAP32[$51>>2] = $$sroa$0$0$$sroa$0$0$$0$1;
+ $56 = $51;
+ HEAP32[$$sroa$0>>2] = $56;
+ }
+ }
+ $57 = ((($$116)) + 20|0);
+ $58 = ((($$116)) + 24|0);
+ $59 = +HEAPF32[$58>>2];
+ $60 = !($59 <= $26);
+ if ($60) {
+ $$1$lcssa = $57;
+ break;
+ } else {
+ $$116 = $57;$50 = $59;
+ }
+ }
+ }
+ $$sroa$0$0$$sroa$0$0$$0$1079 = HEAP32[$$sroa$0>>2]|0;
+ $61 = ($$sroa$0$0$$sroa$0$0$$0$1079|0)==(0|0);
+ if (!($61)) {
+ $62 = HEAP32[$0>>2]|0;
+ _stbtt__fill_active_edges_new($$0104,$22,$62,$$sroa$0$0$$sroa$0$0$$0$1079,$25);
+ }
+ $63 = HEAP32[$0>>2]|0;
+ $64 = ($63|0)>(0);
+ if ($64) {
+ $$010219 = 0.0;$$010318 = 0;
+ while(1) {
+ $67 = (($13) + ($$010318<<2)|0);
+ $68 = +HEAPF32[$67>>2];
+ $69 = $$010219 + $68;
+ $70 = (($$0104) + ($$010318<<2)|0);
+ $71 = +HEAPF32[$70>>2];
+ $72 = $71 + $69;
+ $fabsf = (+Math_abs((+$72)));
+ $73 = $fabsf * 255.0;
+ $74 = $73 + 0.5;
+ $75 = (~~(($74)));
+ $76 = ($75|0)<(255);
+ $$ = $76 ? $75 : 255;
+ $77 = $$&255;
+ $78 = HEAP32[$23>>2]|0;
+ $79 = HEAP32[$24>>2]|0;
+ $80 = Math_imul($79, $$010123)|0;
+ $81 = (($80) + ($$010318))|0;
+ $82 = (($78) + ($81)|0);
+ HEAP8[$82>>0] = $77;
+ $83 = (($$010318) + 1)|0;
+ $84 = HEAP32[$0>>2]|0;
+ $85 = ($83|0)<($84|0);
+ if ($85) {
+ $$010219 = $69;$$010318 = $83;
+ } else {
+ break;
+ }
+ }
+ }
+ $65 = HEAP32[$$sroa$0>>2]|0;
+ $66 = ($65|0)==(0|0);
+ if (!($66)) {
+ $87 = $65;
+ while(1) {
+ $86 = ((($87)) + 8|0);
+ $88 = +HEAPF32[$86>>2];
+ $89 = ((($87)) + 4|0);
+ $90 = +HEAPF32[$89>>2];
+ $91 = $88 + $90;
+ HEAPF32[$89>>2] = $91;
+ $92 = HEAP32[$87>>2]|0;
+ $93 = ($92|0)==(0|0);
+ if ($93) {
+ break;
+ } else {
+ $87 = $92;
+ }
+ }
+ }
+ $94 = (($$010025) + 1)|0;
+ $95 = (($$010123) + 1)|0;
+ $96 = HEAP32[$14>>2]|0;
+ $97 = ($95|0)<($96|0);
+ if ($97) {
+ $$010025 = $94;$$010123 = $95;$$026 = $$1$lcssa;
+ } else {
+ break L5;
+ }
+ }
+ if ((label|0) == 11) {
+ ___assert_fail((9393|0),(9337|0),2774,(9406|0));
+ // unreachable;
+ }
+ else if ((label|0) == 17) {
+ ___assert_fail((9436|0),(9337|0),2787,(9406|0));
+ // unreachable;
+ }
+ }
+ } while(0);
+ _stbtt__hheap_cleanup($5);
+ $98 = ($$0104|0)==($6|0);
+ if ($98) {
+ STACKTOP = sp;return;
+ }
+ _free($$0104);
+ STACKTOP = sp;return;
+}
+function _stbtt__hheap_free($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ HEAP32[$1>>2] = $3;
+ HEAP32[$2>>2] = $1;
+ return;
+}
+function _stbtt__new_active($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = +$3;
+ var $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0;
+ var $30 = 0, $31 = 0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = (_stbtt__hheap_alloc($0)|0);
+ $5 = ((($1)) + 8|0);
+ $6 = +HEAPF32[$5>>2];
+ $7 = +HEAPF32[$1>>2];
+ $8 = $6 - $7;
+ $9 = ((($1)) + 12|0);
+ $10 = +HEAPF32[$9>>2];
+ $11 = ((($1)) + 4|0);
+ $12 = +HEAPF32[$11>>2];
+ $13 = $10 - $12;
+ $14 = $8 / $13;
+ $15 = ($4|0)==(0|0);
+ if ($15) {
+ ___assert_fail((9726|0),(9337|0),2373,(9742|0));
+ // unreachable;
+ } else {
+ $16 = ((($4)) + 8|0);
+ HEAPF32[$16>>2] = $14;
+ $17 = $14 != 0.0;
+ $18 = 1.0 / $14;
+ $19 = $17 ? $18 : 0.0;
+ $20 = ((($4)) + 12|0);
+ HEAPF32[$20>>2] = $19;
+ $21 = +HEAPF32[$1>>2];
+ $22 = +HEAPF32[$11>>2];
+ $23 = $3 - $22;
+ $24 = $14 * $23;
+ $25 = $21 + $24;
+ $26 = ((($4)) + 4|0);
+ $27 = (+($2|0));
+ $28 = $25 - $27;
+ HEAPF32[$26>>2] = $28;
+ $29 = ((($1)) + 16|0);
+ $30 = HEAP32[$29>>2]|0;
+ $31 = ($30|0)!=(0);
+ $32 = $31 ? 1.0 : -1.0;
+ $33 = ((($4)) + 16|0);
+ HEAPF32[$33>>2] = $32;
+ $34 = ((($4)) + 20|0);
+ HEAPF32[$34>>2] = $22;
+ $35 = HEAP32[$9>>2]|0;
+ $36 = ((($4)) + 24|0);
+ HEAP32[$36>>2] = $35;
+ HEAP32[$4>>2] = 0;
+ return ($4|0);
+ }
+ return (0)|0;
+}
+function _stbtt__fill_active_edges_new($0,$1,$2,$3,$4) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = +$4;
+ var $$0350 = 0.0, $$0351 = 0.0, $$0352 = 0.0, $$0354 = 0.0, $$0356370 = 0, $$0357 = 0.0, $$0359$lcssa = 0.0, $$0359372 = 0.0, $$0360 = 0.0, $$0361371 = 0, $$0374 = 0, $$1 = 0.0, $$1353 = 0.0, $$1355 = 0.0, $$1358 = 0.0, $10 = 0.0, $100 = 0.0, $101 = 0, $102 = 0, $103 = 0;
+ var $104 = 0.0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0.0, $109 = 0.0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0.0, $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0;
+ var $122 = 0.0, $123 = 0.0, $124 = 0.0, $125 = 0, $126 = 0.0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0.0, $130 = 0.0, $131 = 0.0, $132 = 0.0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0;
+ var $140 = 0, $141 = 0, $142 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0.0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0.0, $27 = 0, $28 = 0.0, $29 = 0, $30 = 0, $31 = 0.0;
+ var $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0.0;
+ var $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0, $65 = 0.0, $66 = 0.0, $67 = 0, $68 = 0.0, $69 = 0.0;
+ var $7 = 0.0, $70 = 0.0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0.0, $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0.0, $84 = 0.0, $85 = 0.0, $86 = 0.0, $87 = 0.0;
+ var $88 = 0.0, $89 = 0.0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0.0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0.0, $99 = 0.0, $exitcond = 0, $exitcond380 = 0, $fabsf = 0.0, $or$cond = 0, $or$cond362 = 0, $or$cond363 = 0, $or$cond364 = 0;
+ var $or$cond365 = 0, $or$cond366 = 0, $or$cond367 = 0, $or$cond368 = 0, $or$cond369 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $5 = $4 + 1.0;
+ $6 = ($3|0)==(0|0);
+ if ($6) {
+ return;
+ }
+ $7 = (+($2|0));
+ $8 = ((($1)) + -4|0);
+ $9 = ((($1)) + -4|0);
+ $10 = (+($2|0));
+ $11 = ($2|0)>(0);
+ $$0374 = $3;
+ L4: while(1) {
+ $12 = ((($$0374)) + 24|0);
+ $13 = +HEAPF32[$12>>2];
+ $14 = !($13 >= $4);
+ if ($14) {
+ label = 4;
+ break;
+ }
+ $15 = ((($$0374)) + 8|0);
+ $16 = +HEAPF32[$15>>2];
+ $17 = $16 == 0.0;
+ $18 = ((($$0374)) + 4|0);
+ $19 = +HEAPF32[$18>>2];
+ do {
+ if ($17) {
+ $20 = $19 < $7;
+ if ($20) {
+ $21 = !($19 >= 0.0);
+ if ($21) {
+ _stbtt__handle_clipped_edge($8,0,$$0374,$19,$4,$19,$5);
+ break;
+ } else {
+ $22 = (~~(($19)));
+ _stbtt__handle_clipped_edge($0,$22,$$0374,$19,$4,$19,$5);
+ $23 = (($22) + 1)|0;
+ _stbtt__handle_clipped_edge($9,$23,$$0374,$19,$4,$19,$5);
+ break;
+ }
+ }
+ } else {
+ $24 = $16 + $19;
+ $25 = ((($$0374)) + 12|0);
+ $26 = +HEAPF32[$25>>2];
+ $27 = ((($$0374)) + 20|0);
+ $28 = +HEAPF32[$27>>2];
+ $29 = !($28 <= $5);
+ if ($29) {
+ label = 11;
+ break L4;
+ }
+ $30 = $28 > $4;
+ $31 = $28 - $4;
+ $32 = $16 * $31;
+ $33 = $19 + $32;
+ $$0354 = $30 ? $28 : $4;
+ $$0351 = $30 ? $33 : $19;
+ $34 = +HEAPF32[$12>>2];
+ $35 = $34 < $5;
+ $36 = $34 - $4;
+ $37 = $16 * $36;
+ $38 = $19 + $37;
+ $$0357 = $35 ? $34 : $5;
+ $$0352 = $35 ? $38 : $24;
+ $39 = $$0351 >= 0.0;
+ $40 = $$0352 >= 0.0;
+ $or$cond = $39 & $40;
+ if ($or$cond) {
+ $41 = $$0351 < $10;
+ $42 = $$0352 < $10;
+ $or$cond362 = $41 & $42;
+ if ($or$cond362) {
+ $43 = (~~(($$0351)));
+ $44 = (~~(($$0352)));
+ $45 = ($43|0)==($44|0);
+ if ($45) {
+ $46 = $$0357 - $$0354;
+ $47 = ($43|0)>(-1);
+ $48 = ($43|0)<($2|0);
+ $or$cond363 = $47 & $48;
+ if (!($or$cond363)) {
+ label = 17;
+ break L4;
+ }
+ $49 = ((($$0374)) + 16|0);
+ $50 = +HEAPF32[$49>>2];
+ $51 = (+($43|0));
+ $52 = $$0351 - $51;
+ $53 = $$0352 - $51;
+ $54 = $52 + $53;
+ $55 = $54 * 0.5;
+ $56 = 1.0 - $55;
+ $57 = $56 * $50;
+ $58 = $46 * $57;
+ $59 = (($0) + ($43<<2)|0);
+ $60 = +HEAPF32[$59>>2];
+ $61 = $60 + $58;
+ HEAPF32[$59>>2] = $61;
+ $62 = +HEAPF32[$49>>2];
+ $63 = $46 * $62;
+ $64 = (($1) + ($43<<2)|0);
+ $65 = +HEAPF32[$64>>2];
+ $66 = $65 + $63;
+ HEAPF32[$64>>2] = $66;
+ break;
+ }
+ $67 = $$0351 > $$0352;
+ if ($67) {
+ $68 = -$26;
+ $69 = $$0357 - $4;
+ $70 = $5 - $69;
+ $71 = $$0354 - $4;
+ $72 = $5 - $71;
+ $$0350 = $24;$$0360 = $68;$$1 = $$0352;$$1353 = $$0351;$$1355 = $70;$$1358 = $72;
+ } else {
+ $$0350 = $19;$$0360 = $26;$$1 = $$0351;$$1353 = $$0352;$$1355 = $$0354;$$1358 = $$0357;
+ }
+ $73 = (~~(($$1)));
+ $74 = (~~(($$1353)));
+ $75 = (($73) + 1)|0;
+ $76 = (+($75|0));
+ $77 = $76 - $$0350;
+ $78 = $$0360 * $77;
+ $79 = $78 + $4;
+ $80 = ((($$0374)) + 16|0);
+ $81 = +HEAPF32[$80>>2];
+ $82 = $79 - $$1355;
+ $83 = $81 * $82;
+ $84 = (+($73|0));
+ $85 = $$1 - $84;
+ $86 = $85 + 1.0;
+ $87 = $86 * 0.5;
+ $88 = 1.0 - $87;
+ $89 = $88 * $83;
+ $90 = (($0) + ($73<<2)|0);
+ $91 = +HEAPF32[$90>>2];
+ $92 = $91 + $89;
+ HEAPF32[$90>>2] = $92;
+ $93 = $$0360 * $81;
+ $94 = ($74|0)>($75|0);
+ if ($94) {
+ $95 = $93 * 0.5;
+ $$0359372 = $83;$$0361371 = $75;
+ while(1) {
+ $96 = $95 + $$0359372;
+ $97 = (($0) + ($$0361371<<2)|0);
+ $98 = +HEAPF32[$97>>2];
+ $99 = $96 + $98;
+ HEAPF32[$97>>2] = $99;
+ $100 = $93 + $$0359372;
+ $101 = (($$0361371) + 1)|0;
+ $exitcond380 = ($101|0)==($74|0);
+ if ($exitcond380) {
+ $$0359$lcssa = $100;
+ break;
+ } else {
+ $$0359372 = $100;$$0361371 = $101;
+ }
+ }
+ } else {
+ $$0359$lcssa = $83;
+ }
+ $fabsf = (+Math_abs((+$$0359$lcssa)));
+ $102 = !($fabsf <= 1.0099999904632568);
+ if ($102) {
+ label = 25;
+ break L4;
+ }
+ $103 = (($74) - ($75))|0;
+ $104 = (+($103|0));
+ $105 = $$0360 * $104;
+ $106 = $105 + $79;
+ $107 = (+($74|0));
+ $108 = $$1353 - $107;
+ $109 = $108 + 0.0;
+ $110 = $109 * 0.5;
+ $111 = 1.0 - $110;
+ $112 = $81 * $111;
+ $113 = $$1358 - $106;
+ $114 = $112 * $113;
+ $115 = $114 + $$0359$lcssa;
+ $116 = (($0) + ($74<<2)|0);
+ $117 = +HEAPF32[$116>>2];
+ $118 = $115 + $117;
+ HEAPF32[$116>>2] = $118;
+ $119 = $$1358 - $$1355;
+ $120 = $119 * $81;
+ $121 = (($1) + ($74<<2)|0);
+ $122 = +HEAPF32[$121>>2];
+ $123 = $120 + $122;
+ HEAPF32[$121>>2] = $123;
+ break;
+ }
+ }
+ if ($11) {
+ $$0356370 = 0;
+ while(1) {
+ $124 = (+($$0356370|0));
+ $125 = (($$0356370) + 1)|0;
+ $126 = (+($125|0));
+ $127 = $124 - $19;
+ $128 = $127 / $16;
+ $129 = $128 + $4;
+ $130 = $126 - $19;
+ $131 = $130 / $16;
+ $132 = $131 + $4;
+ $133 = $19 < $124;
+ $134 = $24 > $126;
+ $or$cond364 = $133 & $134;
+ do {
+ if ($or$cond364) {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$124,$129);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$126,$132);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$24,$5);
+ } else {
+ $135 = $24 < $124;
+ $136 = $19 > $126;
+ $or$cond365 = $135 & $136;
+ if ($or$cond365) {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$126,$132);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$124,$129);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$24,$5);
+ break;
+ }
+ $137 = $24 > $124;
+ $or$cond366 = $133 & $137;
+ if ($or$cond366) {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$124,$129);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$24,$5);
+ break;
+ }
+ $138 = $19 > $124;
+ $or$cond367 = $135 & $138;
+ if ($or$cond367) {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$124,$129);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$124,$129,$24,$5);
+ break;
+ }
+ $139 = $19 < $126;
+ $or$cond368 = $139 & $134;
+ if ($or$cond368) {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$126,$132);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$24,$5);
+ break;
+ }
+ $140 = $24 < $126;
+ $or$cond369 = $140 & $136;
+ if ($or$cond369) {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$126,$132);
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$126,$132,$24,$5);
+ break;
+ } else {
+ _stbtt__handle_clipped_edge($0,$$0356370,$$0374,$19,$4,$24,$5);
+ break;
+ }
+ }
+ } while(0);
+ $exitcond = ($125|0)==($2|0);
+ if ($exitcond) {
+ break;
+ } else {
+ $$0356370 = $125;
+ }
+ }
+ }
+ }
+ } while(0);
+ $141 = HEAP32[$$0374>>2]|0;
+ $142 = ($141|0)==(0|0);
+ if ($142) {
+ label = 42;
+ break;
+ } else {
+ $$0374 = $141;
+ }
+ }
+ if ((label|0) == 4) {
+ ___assert_fail((9456|0),(9337|0),2585,(9471|0));
+ // unreachable;
+ }
+ else if ((label|0) == 11) {
+ ___assert_fail((9500|0),(9337|0),2604,(9471|0));
+ // unreachable;
+ }
+ else if ((label|0) == 17) {
+ ___assert_fail((9536|0),(9337|0),2632,(9471|0));
+ // unreachable;
+ }
+ else if ((label|0) == 25) {
+ ___assert_fail((9554|0),(9337|0),2669,(9471|0));
+ // unreachable;
+ }
+ else if ((label|0) == 42) {
+ return;
+ }
+}
+function _stbtt__hheap_cleanup($0) {
+ $0 = $0|0;
+ var $$in12 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP32[$0>>2]|0;
+ $2 = ($1|0)==(0|0);
+ if ($2) {
+ return;
+ } else {
+ $$in12 = $1;
+ }
+ while(1) {
+ $3 = HEAP32[$$in12>>2]|0;
+ _free($$in12);
+ $4 = ($3|0)==(0|0);
+ if ($4) {
+ break;
+ } else {
+ $$in12 = $3;
+ }
+ }
+ return;
+}
+function _stbtt__handle_clipped_edge($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = +$3;
+ $4 = +$4;
+ $5 = +$5;
+ $6 = +$6;
+ var $$0 = 0.0, $$077 = 0.0, $$078 = 0.0, $$079 = 0.0, $10 = 0.0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0.0;
+ var $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0.0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0;
+ var $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0;
+ var $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0.0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond80 = 0, $or$cond81 = 0, $or$cond82 = 0, $or$cond83 = 0, $or$cond84 = 0, $or$cond85 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $7 = $4 == $6;
+ if ($7) {
+ return;
+ }
+ $8 = $4 < $6;
+ if (!($8)) {
+ ___assert_fail((9574|0),(9337|0),2543,(9582|0));
+ // unreachable;
+ }
+ $9 = ((($2)) + 20|0);
+ $10 = +HEAPF32[$9>>2];
+ $11 = ((($2)) + 24|0);
+ $12 = +HEAPF32[$11>>2];
+ $13 = !($10 <= $12);
+ if ($13) {
+ ___assert_fail((9609|0),(9337|0),2544,(9582|0));
+ // unreachable;
+ }
+ $14 = $12 < $4;
+ $15 = $10 > $6;
+ $or$cond = $15 | $14;
+ if ($or$cond) {
+ return;
+ }
+ $16 = $10 > $4;
+ if ($16) {
+ $17 = $5 - $3;
+ $18 = $10 - $4;
+ $19 = $17 * $18;
+ $20 = $6 - $4;
+ $21 = $19 / $20;
+ $22 = $21 + $3;
+ $$078 = $10;$$079 = $22;
+ } else {
+ $$078 = $4;$$079 = $3;
+ }
+ $23 = +HEAPF32[$11>>2];
+ $24 = $23 < $6;
+ if ($24) {
+ $25 = $5 - $$079;
+ $26 = $23 - $6;
+ $27 = $25 * $26;
+ $28 = $6 - $$078;
+ $29 = $27 / $28;
+ $30 = $29 + $5;
+ $$0 = $23;$$077 = $30;
+ } else {
+ $$0 = $6;$$077 = $5;
+ }
+ $31 = (+($1|0));
+ $32 = $$079 == $31;
+ $33 = (($1) + 1)|0;
+ $34 = (+($33|0));
+ do {
+ if ($32) {
+ $35 = !($$077 <= $34);
+ if ($35) {
+ ___assert_fail((9624|0),(9337|0),2557,(9582|0));
+ // unreachable;
+ }
+ } else {
+ $36 = $$079 == $34;
+ if ($36) {
+ $37 = !($$077 >= $31);
+ if (!($37)) {
+ break;
+ }
+ ___assert_fail((9634|0),(9337|0),2559,(9582|0));
+ // unreachable;
+ }
+ $38 = !($$079 <= $31);
+ if (!($38)) {
+ $39 = !($$077 <= $31);
+ if (!($39)) {
+ break;
+ }
+ ___assert_fail((9642|0),(9337|0),2561,(9582|0));
+ // unreachable;
+ }
+ $40 = !($$079 >= $34);
+ if ($40) {
+ $42 = !($$077 >= $31);
+ $43 = !($$077 <= $34);
+ $or$cond80 = $42 | $43;
+ if (!($or$cond80)) {
+ break;
+ }
+ ___assert_fail((9660|0),(9337|0),2565,(9582|0));
+ // unreachable;
+ } else {
+ $41 = !($$077 >= $34);
+ if (!($41)) {
+ break;
+ }
+ ___assert_fail((9650|0),(9337|0),2563,(9582|0));
+ // unreachable;
+ }
+ }
+ } while(0);
+ $44 = !($$079 <= $31);
+ $45 = !($$077 <= $31);
+ $or$cond81 = $44 | $45;
+ if (!($or$cond81)) {
+ $46 = ((($2)) + 16|0);
+ $47 = +HEAPF32[$46>>2];
+ $48 = $$0 - $$078;
+ $49 = $48 * $47;
+ $50 = (($0) + ($1<<2)|0);
+ $51 = +HEAPF32[$50>>2];
+ $52 = $51 + $49;
+ HEAPF32[$50>>2] = $52;
+ return;
+ }
+ $53 = !($$079 >= $34);
+ $54 = !($$077 >= $34);
+ $or$cond82 = $53 | $54;
+ if (!($or$cond82)) {
+ return;
+ }
+ $55 = !($$079 >= $31);
+ $56 = !($$079 <= $34);
+ $or$cond83 = $55 | $56;
+ $57 = !($$077 >= $31);
+ $or$cond84 = $or$cond83 | $57;
+ $58 = !($$077 <= $34);
+ $or$cond85 = $58 | $or$cond84;
+ if ($or$cond85) {
+ ___assert_fail((9681|0),(9337|0),2572,(9582|0));
+ // unreachable;
+ }
+ $59 = ((($2)) + 16|0);
+ $60 = +HEAPF32[$59>>2];
+ $61 = $$0 - $$078;
+ $62 = $61 * $60;
+ $63 = $$079 - $31;
+ $64 = $$077 - $31;
+ $65 = $63 + $64;
+ $66 = $65 * 0.5;
+ $67 = 1.0 - $66;
+ $68 = $67 * $62;
+ $69 = (($0) + ($1<<2)|0);
+ $70 = +HEAPF32[$69>>2];
+ $71 = $70 + $68;
+ HEAPF32[$69>>2] = $71;
+ return;
+}
+function _stbtt__hheap_alloc($0) {
+ $0 = $0|0;
+ var $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 4|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ($2|0)==(0|0);
+ if (!($3)) {
+ $4 = HEAP32[$2>>2]|0;
+ HEAP32[$1>>2] = $4;
+ $$1 = $2;
+ return ($$1|0);
+ }
+ $5 = ((($0)) + 8|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)==(0);
+ do {
+ if ($7) {
+ $8 = (_malloc(56004)|0);
+ $9 = ($8|0)==(0|0);
+ if ($9) {
+ $$1 = 0;
+ return ($$1|0);
+ } else {
+ $10 = HEAP32[$0>>2]|0;
+ HEAP32[$8>>2] = $10;
+ HEAP32[$0>>2] = $8;
+ HEAP32[$5>>2] = 2000;
+ break;
+ }
+ }
+ } while(0);
+ $11 = HEAP32[$5>>2]|0;
+ $12 = (($11) + -1)|0;
+ HEAP32[$5>>2] = $12;
+ $13 = HEAP32[$0>>2]|0;
+ $14 = ($12*28)|0;
+ $15 = (($13) + ($14)|0);
+ $$1 = $15;
+ return ($$1|0);
+}
+function _stbtt__sort_edges_quicksort($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$079 = 0, $$081 = 0, $$08390 = 0, $$091 = 0, $$1 = 0, $$180 = 0, $$182 = 0, $$184 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0.0, $2 = 0, $20 = 0;
+ var $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0;
+ var $8 = 0, $9 = 0.0, $tmp = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
+ $2 = sp;
+ $3 = ($1|0)>(12);
+ if (!($3)) {
+ STACKTOP = sp;return;
+ }
+ $$08390 = $1;$$091 = $0;
+ while(1) {
+ $4 = $$08390 >>> 1;
+ $5 = ((($$091)) + 4|0);
+ $6 = +HEAPF32[$5>>2];
+ $7 = (($$091) + (($4*20)|0)|0);
+ $8 = (((($$091) + (($4*20)|0)|0)) + 4|0);
+ $9 = +HEAPF32[$8>>2];
+ $10 = $6 < $9;
+ $11 = (($$08390) + -1)|0;
+ $12 = (((($$091) + (($11*20)|0)|0)) + 4|0);
+ $13 = +HEAPF32[$12>>2];
+ $14 = $9 < $13;
+ $15 = $10 ^ $14;
+ $16 = $6 < $13;
+ $tmp = $16 ^ $14;
+ $17 = $tmp ? $11 : 0;
+ $18 = (($$091) + (($17*20)|0)|0);
+ if ($15) {
+ ;HEAP32[$2>>2]=HEAP32[$18>>2]|0;HEAP32[$2+4>>2]=HEAP32[$18+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$18+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$18+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$18+16>>2]|0;
+ ;HEAP32[$18>>2]=HEAP32[$7>>2]|0;HEAP32[$18+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$18+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$18+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$18+16>>2]=HEAP32[$7+16>>2]|0;
+ ;HEAP32[$7>>2]=HEAP32[$2>>2]|0;HEAP32[$7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$7+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$7+16>>2]=HEAP32[$2+16>>2]|0;
+ }
+ ;HEAP32[$2>>2]=HEAP32[$$091>>2]|0;HEAP32[$2+4>>2]=HEAP32[$$091+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$$091+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$$091+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$$091+16>>2]|0;
+ ;HEAP32[$$091>>2]=HEAP32[$7>>2]|0;HEAP32[$$091+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$091+8>>2]=HEAP32[$7+8>>2]|0;HEAP32[$$091+12>>2]=HEAP32[$7+12>>2]|0;HEAP32[$$091+16>>2]=HEAP32[$7+16>>2]|0;
+ ;HEAP32[$7>>2]=HEAP32[$2>>2]|0;HEAP32[$7+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$7+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$7+16>>2]=HEAP32[$2+16>>2]|0;
+ $$079 = $11;$$081 = 1;
+ while(1) {
+ $19 = +HEAPF32[$5>>2];
+ $$182 = $$081;
+ while(1) {
+ $20 = (((($$091) + (($$182*20)|0)|0)) + 4|0);
+ $21 = +HEAPF32[$20>>2];
+ $22 = $21 < $19;
+ $23 = (($$182) + 1)|0;
+ if ($22) {
+ $$182 = $23;
+ } else {
+ $$180 = $$079;
+ break;
+ }
+ }
+ while(1) {
+ $24 = (((($$091) + (($$180*20)|0)|0)) + 4|0);
+ $25 = +HEAPF32[$24>>2];
+ $26 = $19 < $25;
+ $27 = (($$180) + -1)|0;
+ if ($26) {
+ $$180 = $27;
+ } else {
+ break;
+ }
+ }
+ $28 = (($$091) + (($$182*20)|0)|0);
+ $29 = ($$182|0)<($$180|0);
+ if (!($29)) {
+ break;
+ }
+ $30 = (($$091) + (($$180*20)|0)|0);
+ ;HEAP32[$2>>2]=HEAP32[$28>>2]|0;HEAP32[$2+4>>2]=HEAP32[$28+4>>2]|0;HEAP32[$2+8>>2]=HEAP32[$28+8>>2]|0;HEAP32[$2+12>>2]=HEAP32[$28+12>>2]|0;HEAP32[$2+16>>2]=HEAP32[$28+16>>2]|0;
+ ;HEAP32[$28>>2]=HEAP32[$30>>2]|0;HEAP32[$28+4>>2]=HEAP32[$30+4>>2]|0;HEAP32[$28+8>>2]=HEAP32[$30+8>>2]|0;HEAP32[$28+12>>2]=HEAP32[$30+12>>2]|0;HEAP32[$28+16>>2]=HEAP32[$30+16>>2]|0;
+ ;HEAP32[$30>>2]=HEAP32[$2>>2]|0;HEAP32[$30+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$30+8>>2]=HEAP32[$2+8>>2]|0;HEAP32[$30+12>>2]=HEAP32[$2+12>>2]|0;HEAP32[$30+16>>2]=HEAP32[$2+16>>2]|0;
+ $31 = (($$182) + 1)|0;
+ $32 = (($$180) + -1)|0;
+ $$079 = $32;$$081 = $31;
+ }
+ $33 = (($$08390) - ($$182))|0;
+ $34 = ($$180|0)<($33|0);
+ if ($34) {
+ _stbtt__sort_edges_quicksort($$091,$$180);
+ $$1 = $28;$$184 = $33;
+ } else {
+ _stbtt__sort_edges_quicksort($28,$33);
+ $$1 = $$091;$$184 = $$180;
+ }
+ $35 = ($$184|0)>(12);
+ if ($35) {
+ $$08390 = $$184;$$091 = $$1;
+ } else {
+ break;
+ }
+ }
+ STACKTOP = sp;return;
+}
+function _stbtt__sort_edges_ins_sort($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$03251 = 0, $$033 = 0, $$2$ph = 0, $$sroa$0$0$copyload48 = 0, $$sroa$4$0$$sroa_idx37 = 0, $$sroa$4$0$$sroa_idx38 = 0, $$sroa$4$0$copyload = 0.0, $$sroa$5 = 0, $$sroa$5$0$$sroa_idx = 0, $$sroa$5$0$$sroa_idx42 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0.0, $7 = 0;
+ var $8 = 0, $9 = 0, $exitcond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $$sroa$5 = sp;
+ $2 = ($1|0)>(1);
+ if (!($2)) {
+ STACKTOP = sp;return;
+ }
+ $$03251 = 1;
+ while(1) {
+ $3 = (($0) + (($$03251*20)|0)|0);
+ $$sroa$0$0$copyload48 = HEAP32[$3>>2]|0;
+ $$sroa$4$0$$sroa_idx37 = (((($0) + (($$03251*20)|0)|0)) + 4|0);
+ $$sroa$4$0$copyload = +HEAPF32[$$sroa$4$0$$sroa_idx37>>2];
+ $$sroa$5$0$$sroa_idx = (((($0) + (($$03251*20)|0)|0)) + 8|0);
+ ;HEAP32[$$sroa$5>>2]=HEAP32[$$sroa$5$0$$sroa_idx>>2]|0;HEAP32[$$sroa$5+4>>2]=HEAP32[$$sroa$5$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$5+8>>2]=HEAP32[$$sroa$5$0$$sroa_idx+8>>2]|0;
+ $$033 = $$03251;
+ while(1) {
+ $4 = (($$033) + -1)|0;
+ $5 = (((($0) + (($4*20)|0)|0)) + 4|0);
+ $6 = +HEAPF32[$5>>2];
+ $7 = $$sroa$4$0$copyload < $6;
+ if (!($7)) {
+ $$2$ph = $$033;
+ break;
+ }
+ $8 = (($0) + (($4*20)|0)|0);
+ $9 = (($0) + (($$033*20)|0)|0);
+ ;HEAP32[$9>>2]=HEAP32[$8>>2]|0;HEAP32[$9+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$9+8>>2]=HEAP32[$8+8>>2]|0;HEAP32[$9+12>>2]=HEAP32[$8+12>>2]|0;HEAP32[$9+16>>2]=HEAP32[$8+16>>2]|0;
+ $10 = ($$033|0)>(1);
+ if ($10) {
+ $$033 = $4;
+ } else {
+ $$2$ph = $4;
+ break;
+ }
+ }
+ $11 = ($$03251|0)==($$2$ph|0);
+ if (!($11)) {
+ $$sroa$5$0$$sroa_idx42 = (((($0) + (($$2$ph*20)|0)|0)) + 8|0);
+ $$sroa$4$0$$sroa_idx38 = (((($0) + (($$2$ph*20)|0)|0)) + 4|0);
+ $12 = (($0) + (($$2$ph*20)|0)|0);
+ HEAP32[$12>>2] = $$sroa$0$0$copyload48;
+ HEAPF32[$$sroa$4$0$$sroa_idx38>>2] = $$sroa$4$0$copyload;
+ ;HEAP32[$$sroa$5$0$$sroa_idx42>>2]=HEAP32[$$sroa$5>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx42+4>>2]=HEAP32[$$sroa$5+4>>2]|0;HEAP32[$$sroa$5$0$$sroa_idx42+8>>2]=HEAP32[$$sroa$5+8>>2]|0;
+ }
+ $13 = (($$03251) + 1)|0;
+ $exitcond = ($13|0)==($1|0);
+ if ($exitcond) {
+ break;
+ } else {
+ $$03251 = $13;
+ }
+ }
+ STACKTOP = sp;return;
+}
+function _stbtt__add_point($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = +$2;
+ $3 = +$3;
+ var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = ($0|0)==(0|0);
+ if ($4) {
+ return;
+ }
+ $5 = (((($0) + ($1<<3)|0)) + 4|0);
+ $6 = (($0) + ($1<<3)|0);
+ HEAPF32[$6>>2] = $2;
+ HEAPF32[$5>>2] = $3;
+ return;
+}
+function _stbtt__tesselate_curve($0,$1,$2,$3,$4,$5,$6,$7,$8,$9) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = +$2;
+ $3 = +$3;
+ $4 = +$4;
+ $5 = +$5;
+ $6 = +$6;
+ $7 = +$7;
+ $8 = +$8;
+ $9 = $9|0;
+ var $$tr210 = 0.0, $$tr210$phi = 0.0, $$tr311 = 0.0, $$tr311$phi = 0.0, $$tr412 = 0.0, $$tr513 = 0.0, $$tr914 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0;
+ var $23 = 0.0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $40 = 0.0, $41 = 0.0, $42 = 0.0;
+ var $43 = 0.0, $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $10 = $4 * 2.0;
+ $11 = $10 + $2;
+ $12 = $11 + $6;
+ $13 = $12 * 0.25;
+ $14 = $5 * 2.0;
+ $15 = $14 + $3;
+ $16 = $15 + $7;
+ $17 = $16 * 0.25;
+ $18 = ($9|0)>(16);
+ if ($18) {
+ return;
+ }
+ $19 = $7 + $3;
+ $20 = $19 * 0.5;
+ $21 = $20 - $17;
+ $22 = $6 + $2;
+ $23 = $22 * 0.5;
+ $24 = $23 - $13;
+ $$tr210 = $2;$$tr311 = $3;$$tr412 = $4;$$tr513 = $5;$$tr914 = $9;$26 = $24;$28 = $21;$36 = $13;$37 = $17;
+ while(1) {
+ $25 = $26 * $26;
+ $27 = $28 * $28;
+ $29 = $25 + $27;
+ $30 = $29 > $8;
+ if (!($30)) {
+ break;
+ }
+ $31 = $$tr210 + $$tr412;
+ $32 = $31 * 0.5;
+ $33 = $$tr311 + $$tr513;
+ $34 = $33 * 0.5;
+ $35 = (($$tr914) + 1)|0;
+ _stbtt__tesselate_curve($0,$1,$$tr210,$$tr311,$32,$34,$36,$37,$8,$35);
+ $38 = $$tr412 + $6;
+ $39 = $38 * 0.5;
+ $40 = $$tr513 + $7;
+ $41 = $40 * 0.5;
+ $42 = $39 * 2.0;
+ $43 = $36 + $42;
+ $44 = $43 + $6;
+ $45 = $44 * 0.25;
+ $46 = $41 * 2.0;
+ $47 = $37 + $46;
+ $48 = $47 + $7;
+ $49 = $48 * 0.25;
+ $50 = $36 + $6;
+ $51 = $50 * 0.5;
+ $52 = $51 - $45;
+ $53 = $37 + $7;
+ $54 = $53 * 0.5;
+ $55 = $54 - $49;
+ $56 = ($$tr914|0)>(15);
+ if ($56) {
+ label = 6;
+ break;
+ } else {
+ $$tr311$phi = $37;$$tr210$phi = $36;$$tr412 = $39;$$tr513 = $41;$$tr914 = $35;$26 = $52;$28 = $55;$36 = $45;$37 = $49;$$tr311 = $$tr311$phi;$$tr210 = $$tr210$phi;
+ }
+ }
+ if ((label|0) == 6) {
+ return;
+ }
+ $57 = HEAP32[$1>>2]|0;
+ _stbtt__add_point($0,$57,$6,$7);
+ $58 = HEAP32[$1>>2]|0;
+ $59 = (($58) + 1)|0;
+ HEAP32[$1>>2] = $59;
+ return;
+}
+function _stbtt__tesselate_cubic($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = +$2;
+ $3 = +$3;
+ $4 = +$4;
+ $5 = +$5;
+ $6 = +$6;
+ $7 = +$7;
+ $8 = +$8;
+ $9 = +$9;
+ $10 = +$10;
+ $11 = $11|0;
+ var $$tr138 = 0.0, $$tr139 = 0.0, $$tr140 = 0.0, $$tr141 = 0.0, $$tr142 = 0.0, $$tr143 = 0.0, $$tr147 = 0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0.0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0.0;
+ var $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $40 = 0.0, $41 = 0, $42 = 0.0, $43 = 0.0, $44 = 0.0;
+ var $45 = 0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0.0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0.0, $64 = 0.0;
+ var $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $sqrtf = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $$tr138 = $2;$$tr139 = $3;$$tr140 = $4;$$tr141 = $5;$$tr142 = $6;$$tr143 = $7;$$tr147 = $11;
+ while(1) {
+ $12 = $$tr140 - $$tr138;
+ $13 = $$tr141 - $$tr139;
+ $14 = $$tr142 - $$tr140;
+ $15 = $$tr143 - $$tr141;
+ $16 = $8 - $$tr142;
+ $17 = $9 - $$tr143;
+ $18 = $8 - $$tr138;
+ $19 = $9 - $$tr139;
+ $20 = $12 * $12;
+ $21 = $13 * $13;
+ $22 = $20 + $21;
+ $23 = $22;
+ $24 = (+Math_sqrt((+$23)));
+ $25 = $14 * $14;
+ $26 = $15 * $15;
+ $27 = $25 + $26;
+ $28 = $27;
+ $29 = (+Math_sqrt((+$28)));
+ $30 = $24 + $29;
+ $31 = $16 * $16;
+ $32 = $17 * $17;
+ $33 = $31 + $32;
+ $34 = $33;
+ $35 = (+Math_sqrt((+$34)));
+ $36 = $30 + $35;
+ $37 = $36;
+ $38 = $18 * $18;
+ $39 = $19 * $19;
+ $40 = $38 + $39;
+ $sqrtf = (+Math_sqrt((+$40)));
+ $41 = ($$tr147|0)>(16);
+ if ($41) {
+ label = 6;
+ break;
+ }
+ $42 = $37 * $37;
+ $43 = $sqrtf * $sqrtf;
+ $44 = $42 - $43;
+ $45 = $44 > $10;
+ if (!($45)) {
+ break;
+ }
+ $46 = $$tr138 + $$tr140;
+ $47 = $46 * 0.5;
+ $48 = $$tr139 + $$tr141;
+ $49 = $48 * 0.5;
+ $50 = $$tr140 + $$tr142;
+ $51 = $50 * 0.5;
+ $52 = $$tr141 + $$tr143;
+ $53 = $52 * 0.5;
+ $54 = $$tr142 + $8;
+ $55 = $54 * 0.5;
+ $56 = $$tr143 + $9;
+ $57 = $56 * 0.5;
+ $58 = $47 + $51;
+ $59 = $58 * 0.5;
+ $60 = $49 + $53;
+ $61 = $60 * 0.5;
+ $62 = $51 + $55;
+ $63 = $62 * 0.5;
+ $64 = $53 + $57;
+ $65 = $64 * 0.5;
+ $66 = $59 + $63;
+ $67 = $66 * 0.5;
+ $68 = $61 + $65;
+ $69 = $68 * 0.5;
+ $70 = (($$tr147) + 1)|0;
+ _stbtt__tesselate_cubic($0,$1,$$tr138,$$tr139,$47,$49,$59,$61,$67,$69,$10,$70);
+ $$tr138 = $67;$$tr139 = $69;$$tr140 = $63;$$tr141 = $65;$$tr142 = $55;$$tr143 = $57;$$tr147 = $70;
+ }
+ if ((label|0) == 6) {
+ return;
+ }
+ $71 = HEAP32[$1>>2]|0;
+ _stbtt__add_point($0,$71,$8,$9);
+ $72 = HEAP32[$1>>2]|0;
+ $73 = (($72) + 1)|0;
+ HEAP32[$1>>2] = $73;
+ return;
+}
+function _stbtt_GetGlyphBox($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = ((($0)) + 56|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0);
+ if (!($8)) {
+ _stbtt__GetGlyphInfoT2($0,$1,$2,$3,$4,$5);
+ $$1 = 1;
+ return ($$1|0);
+ }
+ $9 = (_stbtt__GetGlyfOffset($0,$1)|0);
+ $10 = ($9|0)<(0);
+ if ($10) {
+ $$1 = 0;
+ return ($$1|0);
+ }
+ $11 = ($2|0)==(0|0);
+ if (!($11)) {
+ $12 = ((($0)) + 4|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = (($13) + ($9)|0);
+ $15 = ((($14)) + 2|0);
+ $16 = (_ttSHORT($15)|0);
+ $17 = $16 << 16 >> 16;
+ HEAP32[$2>>2] = $17;
+ }
+ $18 = ($3|0)==(0|0);
+ if (!($18)) {
+ $19 = ((($0)) + 4|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = (($20) + ($9)|0);
+ $22 = ((($21)) + 4|0);
+ $23 = (_ttSHORT($22)|0);
+ $24 = $23 << 16 >> 16;
+ HEAP32[$3>>2] = $24;
+ }
+ $25 = ($4|0)==(0|0);
+ if (!($25)) {
+ $26 = ((($0)) + 4|0);
+ $27 = HEAP32[$26>>2]|0;
+ $28 = (($27) + ($9)|0);
+ $29 = ((($28)) + 6|0);
+ $30 = (_ttSHORT($29)|0);
+ $31 = $30 << 16 >> 16;
+ HEAP32[$4>>2] = $31;
+ }
+ $32 = ($5|0)==(0|0);
+ if ($32) {
+ $$1 = 1;
+ return ($$1|0);
+ }
+ $33 = ((($0)) + 4|0);
+ $34 = HEAP32[$33>>2]|0;
+ $35 = (($34) + ($9)|0);
+ $36 = ((($35)) + 8|0);
+ $37 = (_ttSHORT($36)|0);
+ $38 = $37 << 16 >> 16;
+ HEAP32[$5>>2] = $38;
+ $$1 = 1;
+ return ($$1|0);
+}
+function _stbtt__GetGlyphInfoT2($0,$1,$2,$3,$4,$5) {
$0 = $0|0;
$1 = $1|0;
$2 = $2|0;
$3 = $3|0;
$4 = $4|0;
- var $$sroa$0$0$copyload = 0, $$sroa$6$0$$sroa_idx = 0, $$sroa$6$0$$sroa_idx6 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0;
+ $5 = $5|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0;
+ var stop = 0;
sp = STACKTOP;
STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0);
- $vararg_buffer = sp;
+ $6 = sp;
+ $7 = ((($6)) + 4|0);
+ dest=$7; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
+ HEAP32[$6>>2] = 1;
+ $8 = (_stbtt__run_charstring($0,$1,$6)|0);
+ $9 = ($2|0)==(0|0);
+ $10 = ($8|0)!=(0);
+ if ($9) {
+ STACKTOP = sp;return;
+ }
+ $11 = ((($6)) + 24|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = $10 ? $12 : 0;
+ HEAP32[$2>>2] = $13;
+ $14 = ((($6)) + 32|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = $10 ? $15 : 0;
+ HEAP32[$3>>2] = $16;
+ $17 = ((($6)) + 28|0);
+ $18 = HEAP32[$17>>2]|0;
+ $19 = $10 ? $18 : 0;
+ HEAP32[$4>>2] = $19;
+ $20 = ((($6)) + 36|0);
+ $21 = HEAP32[$20>>2]|0;
+ $22 = $10 ? $21 : 0;
+ HEAP32[$5>>2] = $22;
+ STACKTOP = sp;return;
+}
+function _stbtt__GetGlyfOffset($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$023 = 0, $$024 = 0, $$pn = 0, $$sink = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0;
+ var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 56|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($3|0)==(0);
+ if (!($4)) {
+ ___assert_fail((9760|0),(9337|0),1439,(9776|0));
+ // unreachable;
+ }
+ $5 = ((($0)) + 12|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)>($1|0);
+ if (!($7)) {
+ $$024 = -1;
+ return ($$024|0);
+ }
+ $8 = ((($0)) + 44|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9|0)>(1);
+ if ($10) {
+ $$024 = -1;
+ return ($$024|0);
+ }
+ $11 = ($9|0)==(0);
+ $12 = ((($0)) + 24|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ((($0)) + 4|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = ((($0)) + 16|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = (($15) + ($17)|0);
+ if ($11) {
+ $19 = $1 << 1;
+ $20 = (($18) + ($19)|0);
+ $21 = (_ttUSHORT($20)|0);
+ $22 = $21&65535;
+ $23 = $22 << 1;
+ $24 = ((($20)) + 2|0);
+ $25 = (_ttUSHORT($24)|0);
+ $26 = $25&65535;
+ $27 = $26 << 1;
+ $$pn = $23;$$sink = $27;
+ } else {
+ $28 = $1 << 2;
+ $29 = (($18) + ($28)|0);
+ $30 = (_ttULONG($29)|0);
+ $31 = ((($29)) + 4|0);
+ $32 = (_ttULONG($31)|0);
+ $$pn = $30;$$sink = $32;
+ }
+ $33 = (($$sink) + ($13))|0;
+ $$023 = (($$pn) + ($13))|0;
+ $34 = ($$023|0)==($33|0);
+ $35 = $34 ? -1 : $$023;
+ $$024 = $35;
+ return ($$024|0);
+}
+function _ttSHORT($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP8[$0>>0]|0;
+ $2 = $1&255;
+ $3 = $2 << 8;
+ $4 = ((($0)) + 1|0);
+ $5 = HEAP8[$4>>0]|0;
+ $6 = $5&255;
+ $7 = $3 | $6;
+ $8 = $7&65535;
+ return ($8|0);
+}
+function _ttUSHORT($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP8[$0>>0]|0;
+ $2 = $1&255;
+ $3 = $2 << 8;
+ $4 = ((($0)) + 1|0);
+ $5 = HEAP8[$4>>0]|0;
+ $6 = $5&255;
+ $7 = $3 | $6;
+ $8 = $7&65535;
+ return ($8|0);
+}
+function _ttULONG($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = HEAP8[$0>>0]|0;
+ $2 = $1&255;
+ $3 = $2 << 24;
+ $4 = ((($0)) + 1|0);
+ $5 = HEAP8[$4>>0]|0;
+ $6 = $5&255;
+ $7 = $6 << 16;
+ $8 = $7 | $3;
+ $9 = ((($0)) + 2|0);
+ $10 = HEAP8[$9>>0]|0;
+ $11 = $10&255;
+ $12 = $11 << 8;
+ $13 = $8 | $12;
+ $14 = ((($0)) + 3|0);
+ $15 = HEAP8[$14>>0]|0;
+ $16 = $15&255;
+ $17 = $13 | $16;
+ return ($17|0);
+}
+function _stbtt__run_charstring($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$ = 0, $$0274$be = 0, $$0274335 = 0, $$0276$be = 0, $$0276334 = 0, $$0279 = 0.0, $$0280 = 0.0, $$0282318 = 0.0, $$0285$be = 0, $$0285333 = 0, $$0288$be = 0, $$0288332 = 0, $$0290329 = 0, $$0294$be = 0, $$0294331 = 0, $$1277 = 0, $$1283 = 0.0, $$1286 = 0, $$1291 = 0, $$2292 = 0;
+ var $$3 = 0, $$3293 = 0, $$363 = 0.0, $$4 = 0, $$5327 = 0, $$6$lcssa = 0, $$6322 = 0, $$7$lcssa = 0, $$7319 = 0, $$8317 = 0, $$byval_copy1 = 0, $$lcssa = 0, $$lcssa316 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0, $104 = 0, $105 = 0.0;
+ var $106 = 0, $107 = 0.0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0.0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0, $121 = 0.0, $122 = 0, $123 = 0;
+ var $124 = 0.0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0.0, $132 = 0.0, $133 = 0, $134 = 0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0, $139 = 0.0, $14 = 0, $140 = 0, $141 = 0;
+ var $142 = 0.0, $143 = 0, $144 = 0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0;
+ var $160 = 0, $161 = 0, $162 = 0.0, $163 = 0, $164 = 0, $165 = 0.0, $166 = 0, $167 = 0, $168 = 0.0, $169 = 0, $17 = 0, $170 = 0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0.0, $175 = 0, $176 = 0, $177 = 0, $178 = 0;
+ var $179 = 0, $18 = 0, $180 = 0, $181 = 0.0, $182 = 0, $183 = 0.0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0.0, $189 = 0, $19 = 0, $190 = 0, $191 = 0.0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0;
+ var $197 = 0, $198 = 0.0, $199 = 0, $20 = 0, $200 = 0.0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0, $205 = 0, $206 = 0.0, $207 = 0, $208 = 0, $209 = 0.0, $21 = 0, $210 = 0, $211 = 0.0, $212 = 0, $213 = 0, $214 = 0;
+ var $215 = 0, $216 = 0, $217 = 0.0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0, $224 = 0.0, $225 = 0, $226 = 0.0, $227 = 0, $228 = 0, $229 = 0.0, $23 = 0, $230 = 0, $231 = 0, $232 = 0;
+ var $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0.0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0;
+ var $251 = 0, $252 = 0.0, $253 = 0.0, $254 = 0.0, $255 = 0.0, $256 = 0.0, $257 = 0.0, $258 = 0.0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0.0, $262 = 0.0, $263 = 0.0, $264 = 0.0, $265 = 0.0, $266 = 0.0, $267 = 0.0, $268 = 0.0, $269 = 0.0;
+ var $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0.0, $273 = 0, $274 = 0.0, $275 = 0.0, $276 = 0.0, $277 = 0.0, $278 = 0.0, $279 = 0.0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0.0, $283 = 0.0, $284 = 0.0, $285 = 0.0, $286 = 0, $287 = 0.0;
+ var $288 = 0.0, $289 = 0.0, $29 = 0, $290 = 0.0, $291 = 0.0, $292 = 0.0, $293 = 0.0, $294 = 0.0, $295 = 0.0, $296 = 0.0, $297 = 0.0, $298 = 0.0, $299 = 0.0, $3 = 0, $30 = 0, $300 = 0.0, $301 = 0.0, $302 = 0.0, $303 = 0.0, $304 = 0.0;
+ var $305 = 0.0, $306 = 0, $307 = 0.0, $308 = 0.0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0.0, $316 = 0.0, $317 = 0, $318 = 0, $319 = 0.0, $32 = 0, $320 = 0, $321 = 0, $322 = 0;
+ var $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0;
+ var $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0;
+ var $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0.0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0;
+ var $88 = 0.0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0.0, $fabsf = 0.0, $fabsf296 = 0.0, $not$ = 0, $or$cond3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 368|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(368|0);
+ $$byval_copy1 = sp + 352|0;
+ $3 = sp + 160|0;
+ $4 = sp + 40|0;
+ $5 = sp + 24|0;
+ $6 = sp;
+ $7 = sp + 12|0;
+ $8 = ((($0)) + 84|0);
+ ;HEAP32[$5>>2]=HEAP32[$8>>2]|0;HEAP32[$5+4>>2]=HEAP32[$8+4>>2]|0;HEAP32[$5+8>>2]=HEAP32[$8+8>>2]|0;
+ $9 = ((($0)) + 60|0);
+ ;HEAP32[$$byval_copy1>>2]=HEAP32[$9>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$9+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$9+8>>2]|0;
+ _stbtt__cff_index_get($6,$$byval_copy1,$1);
+ $10 = ((($6)) + 4|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ((($6)) + 8|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ($11|0)<($13|0);
+ if (!($14)) {
+ $$3 = 0;
+ STACKTOP = sp;return ($$3|0);
+ }
+ $15 = ((($0)) + 116|0);
+ $16 = ((($0)) + 72|0);
+ $17 = ((($3)) + 4|0);
+ $18 = ((($3)) + 8|0);
+ $19 = ((($3)) + 12|0);
+ $20 = ((($3)) + 16|0);
+ $21 = ((($3)) + 20|0);
+ $22 = ((($3)) + 24|0);
+ $23 = ((($3)) + 4|0);
+ $24 = ((($3)) + 8|0);
+ $25 = ((($3)) + 12|0);
+ $26 = ((($3)) + 16|0);
+ $27 = ((($3)) + 20|0);
+ $28 = ((($3)) + 24|0);
+ $29 = ((($3)) + 28|0);
+ $30 = ((($3)) + 32|0);
+ $31 = ((($3)) + 36|0);
+ $32 = ((($3)) + 40|0);
+ $33 = ((($3)) + 44|0);
+ $34 = ((($3)) + 4|0);
+ $35 = ((($3)) + 8|0);
+ $36 = ((($3)) + 12|0);
+ $37 = ((($3)) + 16|0);
+ $38 = ((($3)) + 20|0);
+ $39 = ((($3)) + 24|0);
+ $40 = ((($3)) + 28|0);
+ $41 = ((($3)) + 32|0);
+ $42 = ((($3)) + 4|0);
+ $43 = ((($3)) + 8|0);
+ $44 = ((($3)) + 12|0);
+ $45 = ((($3)) + 16|0);
+ $46 = ((($3)) + 20|0);
+ $47 = ((($3)) + 24|0);
+ $48 = ((($3)) + 28|0);
+ $49 = ((($3)) + 32|0);
+ $50 = ((($3)) + 36|0);
+ $51 = ((($3)) + 40|0);
+ $$0274335 = 1;$$0276334 = 0;$$0285333 = 0;$$0288332 = 0;$$0294331 = 0;
+ L4: while(1) {
+ $52 = (_stbtt__buf_get8($6)|0);
+ L6: do {
+ switch ($52<<24>>24) {
+ case 14: {
+ label = 63;
+ break L4;
+ break;
+ }
+ case 20: case 19: {
+ $53 = ($$0274335|0)==(0);
+ if ($53) {
+ $$1277 = $$0276334;
+ } else {
+ $54 = (($$0294331|0) / 2)&-1;
+ $55 = (($$0276334) + ($54))|0;
+ $$1277 = $55;
+ }
+ $56 = (($$1277) + 7)|0;
+ $57 = (($56|0) / 8)&-1;
+ _stbtt__buf_skip($6,$57);
+ $$0274$be = 0;$$0276$be = $$1277;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 23: case 18: case 3: case 1: {
+ $58 = (($$0294331|0) / 2)&-1;
+ $59 = (($$0276334) + ($58))|0;
+ $$0274$be = $$0274335;$$0276$be = $59;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 21: {
+ $60 = ($$0294331|0)<(2);
+ if ($60) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $61 = (($$0294331) + -2)|0;
+ $62 = (($3) + ($61<<2)|0);
+ $63 = +HEAPF32[$62>>2];
+ $64 = (($$0294331) + -1)|0;
+ $65 = (($3) + ($64<<2)|0);
+ $66 = +HEAPF32[$65>>2];
+ _stbtt__csctx_rmove_to($2,$63,$66);
+ $$0274$be = 0;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 4: {
+ $67 = ($$0294331|0)<(1);
+ if ($67) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $68 = (($$0294331) + -1)|0;
+ $69 = (($3) + ($68<<2)|0);
+ $70 = +HEAPF32[$69>>2];
+ _stbtt__csctx_rmove_to($2,0.0,$70);
+ $$0274$be = 0;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 22: {
+ $71 = ($$0294331|0)<(1);
+ if ($71) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $72 = (($$0294331) + -1)|0;
+ $73 = (($3) + ($72<<2)|0);
+ $74 = +HEAPF32[$73>>2];
+ _stbtt__csctx_rmove_to($2,$74,0.0);
+ $$0274$be = 0;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 5: {
+ $75 = ($$0294331|0)<(2);
+ if ($75) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ } else {
+ $$0290329 = 0;$79 = 1;
+ }
+ while(1) {
+ $76 = (($3) + ($$0290329<<2)|0);
+ $77 = +HEAPF32[$76>>2];
+ $78 = (($3) + ($79<<2)|0);
+ $80 = +HEAPF32[$78>>2];
+ _stbtt__csctx_rline_to($2,$77,$80);
+ $81 = (($$0290329) + 2)|0;
+ $82 = $81 | 1;
+ $83 = ($82|0)<($$0294331|0);
+ if ($83) {
+ $$0290329 = $81;$79 = $82;
+ } else {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ }
+ break;
+ }
+ case 7: {
+ $84 = ($$0294331|0)<(1);
+ if ($84) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ } else {
+ $$2292 = 0;
+ label = 20;
+ }
+ break;
+ }
+ case 6: {
+ $85 = ($$0294331|0)<(1);
+ if ($85) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ } else {
+ $$1291 = 0;
+ label = 18;
+ }
+ break;
+ }
+ case 31: {
+ $94 = ($$0294331|0)<(4);
+ if ($94) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ } else {
+ $$4 = 0;
+ label = 28;
+ }
+ break;
+ }
+ case 30: {
+ $95 = ($$0294331|0)<(4);
+ if ($95) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ } else {
+ $$3293 = 0;
+ label = 24;
+ }
+ break;
+ }
+ case 8: {
+ $134 = ($$0294331|0)<(6);
+ if ($134) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ } else {
+ $$5327 = 0;$150 = 5;
+ }
+ while(1) {
+ $135 = (($3) + ($$5327<<2)|0);
+ $136 = +HEAPF32[$135>>2];
+ $137 = $$5327 | 1;
+ $138 = (($3) + ($137<<2)|0);
+ $139 = +HEAPF32[$138>>2];
+ $140 = (($$5327) + 2)|0;
+ $141 = (($3) + ($140<<2)|0);
+ $142 = +HEAPF32[$141>>2];
+ $143 = (($$5327) + 3)|0;
+ $144 = (($3) + ($143<<2)|0);
+ $145 = +HEAPF32[$144>>2];
+ $146 = (($$5327) + 4)|0;
+ $147 = (($3) + ($146<<2)|0);
+ $148 = +HEAPF32[$147>>2];
+ $149 = (($3) + ($150<<2)|0);
+ $151 = +HEAPF32[$149>>2];
+ _stbtt__csctx_rccurve_to($2,$136,$139,$142,$145,$148,$151);
+ $152 = (($$5327) + 6)|0;
+ $153 = (($$5327) + 11)|0;
+ $154 = ($153|0)<($$0294331|0);
+ if ($154) {
+ $$5327 = $152;$150 = $153;
+ } else {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ }
+ break;
+ }
+ case 24: {
+ $155 = ($$0294331|0)<(8);
+ if ($155) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $156 = (($$0294331) + -2)|0;
+ $157 = ($156|0)>(5);
+ if ($157) {
+ $$6322 = 0;$161 = 1;$173 = 5;
+ while(1) {
+ $158 = (($3) + ($$6322<<2)|0);
+ $159 = +HEAPF32[$158>>2];
+ $160 = (($3) + ($161<<2)|0);
+ $162 = +HEAPF32[$160>>2];
+ $163 = (($$6322) + 2)|0;
+ $164 = (($3) + ($163<<2)|0);
+ $165 = +HEAPF32[$164>>2];
+ $166 = (($$6322) + 3)|0;
+ $167 = (($3) + ($166<<2)|0);
+ $168 = +HEAPF32[$167>>2];
+ $169 = (($$6322) + 4)|0;
+ $170 = (($3) + ($169<<2)|0);
+ $171 = +HEAPF32[$170>>2];
+ $172 = (($3) + ($173<<2)|0);
+ $174 = +HEAPF32[$172>>2];
+ _stbtt__csctx_rccurve_to($2,$159,$162,$165,$168,$171,$174);
+ $175 = (($$6322) + 6)|0;
+ $176 = (($$6322) + 11)|0;
+ $177 = ($176|0)<($156|0);
+ $178 = $175 | 1;
+ if ($177) {
+ $$6322 = $175;$161 = $178;$173 = $176;
+ } else {
+ $$6$lcssa = $175;$$lcssa316 = $178;
+ break;
+ }
+ }
+ } else {
+ $$6$lcssa = 0;$$lcssa316 = 1;
+ }
+ $179 = ($$lcssa316|0)<($$0294331|0);
+ if (!($179)) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $180 = (($3) + ($$6$lcssa<<2)|0);
+ $181 = +HEAPF32[$180>>2];
+ $182 = (($3) + ($$lcssa316<<2)|0);
+ $183 = +HEAPF32[$182>>2];
+ _stbtt__csctx_rline_to($2,$181,$183);
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 25: {
+ $184 = ($$0294331|0)<(8);
+ if ($184) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $185 = (($$0294331) + -6)|0;
+ $186 = ($185|0)>(1);
+ if ($186) {
+ $$7319 = 0;$190 = 1;
+ while(1) {
+ $187 = (($3) + ($$7319<<2)|0);
+ $188 = +HEAPF32[$187>>2];
+ $189 = (($3) + ($190<<2)|0);
+ $191 = +HEAPF32[$189>>2];
+ _stbtt__csctx_rline_to($2,$188,$191);
+ $192 = (($$7319) + 2)|0;
+ $193 = $192 | 1;
+ $194 = ($193|0)<($185|0);
+ if ($194) {
+ $$7319 = $192;$190 = $193;
+ } else {
+ $$7$lcssa = $192;$$lcssa = $193;
+ break;
+ }
+ }
+ } else {
+ $$7$lcssa = 0;$$lcssa = 1;
+ }
+ $195 = (($$7$lcssa) + 5)|0;
+ $196 = ($195|0)<($$0294331|0);
+ if (!($196)) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $197 = (($3) + ($$7$lcssa<<2)|0);
+ $198 = +HEAPF32[$197>>2];
+ $199 = (($3) + ($$lcssa<<2)|0);
+ $200 = +HEAPF32[$199>>2];
+ $201 = (($$7$lcssa) + 2)|0;
+ $202 = (($3) + ($201<<2)|0);
+ $203 = +HEAPF32[$202>>2];
+ $204 = (($$7$lcssa) + 3)|0;
+ $205 = (($3) + ($204<<2)|0);
+ $206 = +HEAPF32[$205>>2];
+ $207 = (($$7$lcssa) + 4)|0;
+ $208 = (($3) + ($207<<2)|0);
+ $209 = +HEAPF32[$208>>2];
+ $210 = (($3) + ($195<<2)|0);
+ $211 = +HEAPF32[$210>>2];
+ _stbtt__csctx_rccurve_to($2,$198,$200,$203,$206,$209,$211);
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ case 27: case 26: {
+ $212 = ($$0294331|0)<(4);
+ if ($212) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $213 = $$0294331 & 1;
+ $214 = ($213|0)==(0);
+ $215 = (($213) + 3)|0;
+ $216 = ($215|0)<($$0294331|0);
+ if ($216) {
+ $not$ = $214 ^ 1;
+ $$ = $not$&1;
+ $217 = +HEAPF32[$3>>2];
+ $$363 = $214 ? 0.0 : $217;
+ $218 = ($52<<24>>24)==(27);
+ $$0282318 = $$363;$$8317 = $$;$228 = $215;
+ while(1) {
+ $219 = (($$8317) + 2)|0;
+ $220 = (($$8317) + 1)|0;
+ $221 = (($3) + ($219<<2)|0);
+ $222 = +HEAPF32[$221>>2];
+ $223 = (($3) + ($$8317<<2)|0);
+ $224 = +HEAPF32[$223>>2];
+ $225 = (($3) + ($220<<2)|0);
+ $226 = +HEAPF32[$225>>2];
+ $227 = (($3) + ($228<<2)|0);
+ $229 = +HEAPF32[$227>>2];
+ if ($218) {
+ _stbtt__csctx_rccurve_to($2,$224,$$0282318,$226,$222,$229,0.0);
+ } else {
+ _stbtt__csctx_rccurve_to($2,$$0282318,$224,$226,$222,0.0,$229);
+ }
+ $230 = (($$8317) + 4)|0;
+ $231 = (($$8317) + 7)|0;
+ $232 = ($231|0)<($$0294331|0);
+ if ($232) {
+ $$0282318 = 0.0;$$8317 = $230;$228 = $231;
+ } else {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break;
+ }
+ }
+ } else {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ }
+ break;
+ }
+ case 10: {
+ $233 = ($$0285333|0)==(0);
+ if ($233) {
+ $234 = HEAP32[$15>>2]|0;
+ $235 = ($234|0)==(0);
+ if ($235) {
+ $$1286 = 1;
+ label = 54;
+ } else {
+ _stbtt__cid_get_glyph_subrs($5,$0,$1);
+ $$1286 = 1;
+ label = 54;
+ }
+ } else {
+ $$1286 = $$0285333;
+ label = 54;
+ }
+ break;
+ }
+ case 29: {
+ $$1286 = $$0285333;
+ label = 54;
+ break;
+ }
+ case 11: {
+ $247 = ($$0288332|0)<(1);
+ if ($247) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $248 = (($$0288332) + -1)|0;
+ $249 = (($4) + (($248*12)|0)|0);
+ ;HEAP32[$6>>2]=HEAP32[$249>>2]|0;HEAP32[$6+4>>2]=HEAP32[$249+4>>2]|0;HEAP32[$6+8>>2]=HEAP32[$249+8>>2]|0;
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $248;$$0294$be = $$0294331;
+ label = 73;
+ break;
+ }
+ case 12: {
+ $250 = (_stbtt__buf_get8($6)|0);
+ switch ($250<<24>>24) {
+ case 34: {
+ $251 = ($$0294331|0)<(7);
+ if ($251) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $252 = +HEAPF32[$3>>2];
+ $253 = +HEAPF32[$17>>2];
+ $254 = +HEAPF32[$18>>2];
+ $255 = +HEAPF32[$19>>2];
+ $256 = +HEAPF32[$20>>2];
+ $257 = +HEAPF32[$21>>2];
+ $258 = +HEAPF32[$22>>2];
+ _stbtt__csctx_rccurve_to($2,$252,0.0,$253,$254,$255,0.0);
+ $259 = -$254;
+ _stbtt__csctx_rccurve_to($2,$256,0.0,$257,$259,$258,0.0);
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break L6;
+ break;
+ }
+ case 35: {
+ $260 = ($$0294331|0)<(13);
+ if ($260) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $261 = +HEAPF32[$3>>2];
+ $262 = +HEAPF32[$23>>2];
+ $263 = +HEAPF32[$24>>2];
+ $264 = +HEAPF32[$25>>2];
+ $265 = +HEAPF32[$26>>2];
+ $266 = +HEAPF32[$27>>2];
+ $267 = +HEAPF32[$28>>2];
+ $268 = +HEAPF32[$29>>2];
+ $269 = +HEAPF32[$30>>2];
+ $270 = +HEAPF32[$31>>2];
+ $271 = +HEAPF32[$32>>2];
+ $272 = +HEAPF32[$33>>2];
+ _stbtt__csctx_rccurve_to($2,$261,$262,$263,$264,$265,$266);
+ _stbtt__csctx_rccurve_to($2,$267,$268,$269,$270,$271,$272);
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break L6;
+ break;
+ }
+ case 36: {
+ $273 = ($$0294331|0)<(9);
+ if ($273) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $274 = +HEAPF32[$3>>2];
+ $275 = +HEAPF32[$34>>2];
+ $276 = +HEAPF32[$35>>2];
+ $277 = +HEAPF32[$36>>2];
+ $278 = +HEAPF32[$37>>2];
+ $279 = +HEAPF32[$38>>2];
+ $280 = +HEAPF32[$39>>2];
+ $281 = +HEAPF32[$40>>2];
+ $282 = +HEAPF32[$41>>2];
+ _stbtt__csctx_rccurve_to($2,$274,$275,$276,$277,$278,0.0);
+ $283 = $275 + $277;
+ $284 = $283 + $281;
+ $285 = -$284;
+ _stbtt__csctx_rccurve_to($2,$279,0.0,$280,$281,$282,$285);
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break L6;
+ break;
+ }
+ case 37: {
+ $286 = ($$0294331|0)<(11);
+ if ($286) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ $287 = +HEAPF32[$3>>2];
+ $288 = +HEAPF32[$42>>2];
+ $289 = +HEAPF32[$43>>2];
+ $290 = +HEAPF32[$44>>2];
+ $291 = +HEAPF32[$45>>2];
+ $292 = +HEAPF32[$46>>2];
+ $293 = +HEAPF32[$47>>2];
+ $294 = +HEAPF32[$48>>2];
+ $295 = +HEAPF32[$49>>2];
+ $296 = +HEAPF32[$50>>2];
+ $297 = +HEAPF32[$51>>2];
+ $298 = $287 + $289;
+ $299 = $298 + $291;
+ $300 = $299 + $293;
+ $301 = $300 + $295;
+ $302 = $288 + $290;
+ $303 = $302 + $292;
+ $304 = $303 + $294;
+ $305 = $304 + $296;
+ $fabsf = (+Math_abs((+$301)));
+ $fabsf296 = (+Math_abs((+$305)));
+ $306 = $fabsf > $fabsf296;
+ $307 = -$305;
+ $308 = -$301;
+ $$0280 = $306 ? $297 : $308;
+ $$0279 = $306 ? $307 : $297;
+ _stbtt__csctx_rccurve_to($2,$287,$288,$289,$290,$291,$292);
+ _stbtt__csctx_rccurve_to($2,$293,$294,$295,$296,$$0280,$$0279);
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ break L6;
+ break;
+ }
+ default: {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ }
+ break;
+ }
+ case -1: {
+ label = 76;
+ break;
+ }
+ case 28: {
+ label = 77;
+ break;
+ }
+ default: {
+ $312 = ($52&255)<(32);
+ $313 = ($52<<24>>24)==(-1);
+ $or$cond3 = $312 | $313;
+ if ($or$cond3) {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ if ($313) {
+ label = 76;
+ } else {
+ label = 77;
+ }
+ }
+ }
+ } while(0);
+ if ((label|0) == 54) {
+ label = 0;
+ $236 = ($$0294331|0)<(1);
+ if ($236) {
+ $$3 = 0;
+ label = 80;
+ break;
+ }
+ $237 = (($$0294331) + -1)|0;
+ $238 = (($3) + ($237<<2)|0);
+ $239 = +HEAPF32[$238>>2];
+ $240 = (~~(($239)));
+ $241 = ($$0288332|0)>(9);
+ if ($241) {
+ $$3 = 0;
+ label = 80;
+ break;
+ }
+ $242 = (($$0288332) + 1)|0;
+ $243 = (($4) + (($$0288332*12)|0)|0);
+ ;HEAP32[$243>>2]=HEAP32[$6>>2]|0;HEAP32[$243+4>>2]=HEAP32[$6+4>>2]|0;HEAP32[$243+8>>2]=HEAP32[$6+8>>2]|0;
+ $244 = ($52<<24>>24)==(10);
+ if ($244) {
+ ;HEAP32[$7>>2]=HEAP32[$5>>2]|0;HEAP32[$7+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$5+8>>2]|0;
+ } else {
+ ;HEAP32[$7>>2]=HEAP32[$16>>2]|0;HEAP32[$7+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$7+8>>2]=HEAP32[$16+8>>2]|0;
+ }
+ ;HEAP32[$$byval_copy1>>2]=HEAP32[$7>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$7+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$7+8>>2]|0;
+ _stbtt__get_subr($6,$$byval_copy1,$240);
+ $245 = HEAP32[$12>>2]|0;
+ $246 = ($245|0)==(0);
+ if ($246) {
+ $$3 = 0;
+ label = 80;
+ break;
+ }
+ HEAP32[$10>>2] = 0;
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$1286;$$0288$be = $242;$$0294$be = $237;
+ label = 73;
+ }
+ else if ((label|0) == 76) {
+ label = 0;
+ $314 = (_stbtt__buf_get($6,4)|0);
+ $315 = (+($314>>>0));
+ $316 = $315 * 1.52587890625E-5;
+ $$1283 = $316;
+ label = 78;
+ }
+ else if ((label|0) == 77) {
+ label = 0;
+ _stbtt__buf_skip($6,-1);
+ $317 = (_stbtt__cff_int($6)|0);
+ $318 = $317&65535;
+ $319 = (+($318<<16>>16));
+ $$1283 = $319;
+ label = 78;
+ }
+ if ((label|0) == 78) {
+ label = 0;
+ $320 = ($$0294331|0)>(47);
+ if ($320) {
+ $$3 = 0;
+ label = 80;
+ break;
+ }
+ $321 = (($$0294331) + 1)|0;
+ $322 = (($3) + ($$0294331<<2)|0);
+ HEAPF32[$322>>2] = $$1283;
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = $321;
+ label = 73;
+ }
+ while(1) {
+ if ((label|0) == 18) {
+ label = 0;
+ $86 = ($$1291|0)<($$0294331|0);
+ if (!($86)) {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ continue;
+ }
+ $87 = (($3) + ($$1291<<2)|0);
+ $88 = +HEAPF32[$87>>2];
+ _stbtt__csctx_rline_to($2,$88,0.0);
+ $89 = (($$1291) + 1)|0;
+ $$2292 = $89;
+ label = 20;
+ continue;
+ }
+ else if ((label|0) == 20) {
+ label = 0;
+ $90 = ($$2292|0)<($$0294331|0);
+ if (!($90)) {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ continue;
+ }
+ $91 = (($3) + ($$2292<<2)|0);
+ $92 = +HEAPF32[$91>>2];
+ _stbtt__csctx_rline_to($2,0.0,$92);
+ $93 = (($$2292) + 1)|0;
+ $$1291 = $93;
+ label = 18;
+ continue;
+ }
+ else if ((label|0) == 24) {
+ label = 0;
+ $96 = (($$3293) + 3)|0;
+ $97 = ($96|0)<($$0294331|0);
+ if (!($97)) {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ continue;
+ }
+ $98 = (($3) + ($$3293<<2)|0);
+ $99 = +HEAPF32[$98>>2];
+ $100 = (($$3293) + 1)|0;
+ $101 = (($3) + ($100<<2)|0);
+ $102 = +HEAPF32[$101>>2];
+ $103 = (($$3293) + 2)|0;
+ $104 = (($3) + ($103<<2)|0);
+ $105 = +HEAPF32[$104>>2];
+ $106 = (($3) + ($96<<2)|0);
+ $107 = +HEAPF32[$106>>2];
+ $108 = (($$0294331) - ($$3293))|0;
+ $109 = ($108|0)==(5);
+ if ($109) {
+ $110 = (($$3293) + 4)|0;
+ $111 = (($3) + ($110<<2)|0);
+ $112 = +HEAPF32[$111>>2];
+ $113 = $112;
+ } else {
+ $113 = 0.0;
+ }
+ _stbtt__csctx_rccurve_to($2,0.0,$99,$102,$105,$107,$113);
+ $114 = (($$3293) + 4)|0;
+ $$4 = $114;
+ label = 28;
+ continue;
+ }
+ else if ((label|0) == 28) {
+ label = 0;
+ $115 = (($$4) + 3)|0;
+ $116 = ($115|0)<($$0294331|0);
+ if (!($116)) {
+ $$0274$be = $$0274335;$$0276$be = $$0276334;$$0285$be = $$0285333;$$0288$be = $$0288332;$$0294$be = 0;
+ label = 73;
+ continue;
+ }
+ $117 = (($3) + ($$4<<2)|0);
+ $118 = +HEAPF32[$117>>2];
+ $119 = (($$4) + 1)|0;
+ $120 = (($3) + ($119<<2)|0);
+ $121 = +HEAPF32[$120>>2];
+ $122 = (($$4) + 2)|0;
+ $123 = (($3) + ($122<<2)|0);
+ $124 = +HEAPF32[$123>>2];
+ $125 = (($$0294331) - ($$4))|0;
+ $126 = ($125|0)==(5);
+ if ($126) {
+ $127 = (($$4) + 4)|0;
+ $128 = (($3) + ($127<<2)|0);
+ $129 = +HEAPF32[$128>>2];
+ $132 = $129;
+ } else {
+ $132 = 0.0;
+ }
+ $130 = (($3) + ($115<<2)|0);
+ $131 = +HEAPF32[$130>>2];
+ _stbtt__csctx_rccurve_to($2,$118,0.0,$121,$124,$132,$131);
+ $133 = (($$4) + 4)|0;
+ $$3293 = $133;
+ label = 24;
+ continue;
+ }
+ else if ((label|0) == 73) {
+ label = 0;
+ $309 = HEAP32[$10>>2]|0;
+ $310 = HEAP32[$12>>2]|0;
+ $311 = ($309|0)<($310|0);
+ if ($311) {
+ $$0274335 = $$0274$be;$$0276334 = $$0276$be;$$0285333 = $$0285$be;$$0288332 = $$0288$be;$$0294331 = $$0294$be;
+ continue L4;
+ } else {
+ $$3 = 0;
+ label = 80;
+ break L4;
+ }
+ }
+ }
+ }
+ if ((label|0) == 63) {
+ _stbtt__csctx_close_shape($2);
+ $$3 = 1;
+ STACKTOP = sp;return ($$3|0);
+ }
+ else if ((label|0) == 80) {
+ STACKTOP = sp;return ($$3|0);
+ }
+ return (0)|0;
+}
+function _stbtt__cff_index_get($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _stbtt__buf_seek($1,0);
+ $3 = (_stbtt__buf_get($1,2)|0);
+ $4 = (_stbtt__buf_get8($1)|0);
+ $5 = $4&255;
+ $6 = ($2|0)>(-1);
+ $7 = ($3|0)>($2|0);
+ $or$cond = $6 & $7;
+ if (!($or$cond)) {
+ ___assert_fail((10002|0),(9337|0),1117,(10022|0));
+ // unreachable;
+ }
+ $$off = (($4) + -1)<<24>>24;
+ $8 = ($$off&255)<(4);
+ if ($8) {
+ $9 = Math_imul($5, $2)|0;
+ _stbtt__buf_skip($1,$9);
+ $10 = (_stbtt__buf_get($1,$5)|0);
+ $11 = (_stbtt__buf_get($1,$5)|0);
+ $12 = (($3) + 1)|0;
+ $13 = Math_imul($5, $12)|0;
+ $14 = (($13) + 2)|0;
+ $15 = (($14) + ($10))|0;
+ $16 = (($11) - ($10))|0;
+ _stbtt__buf_range($0,$1,$15,$16);
+ return;
+ } else {
+ ___assert_fail((9919|0),(9337|0),1118,(10022|0));
+ // unreachable;
+ }
+}
+function _stbtt__buf_get8($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 4|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ((($0)) + 8|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($2|0)<($4|0);
+ if (!($5)) {
+ $$0 = 0;
+ return ($$0|0);
+ }
+ $6 = (($2) + 1)|0;
+ $7 = HEAP32[$0>>2]|0;
+ HEAP32[$1>>2] = $6;
+ $8 = (($7) + ($2)|0);
+ $9 = HEAP8[$8>>0]|0;
+ $$0 = $9;
+ return ($$0|0);
+}
+function _stbtt__buf_skip($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = (($3) + ($1))|0;
+ _stbtt__buf_seek($0,$4);
+ return;
+}
+function _stbtt__csctx_rmove_to($0,$1,$2) {
+ $0 = $0|0;
+ $1 = +$1;
+ $2 = +$2;
+ var $10 = 0, $11 = 0.0, $12 = 0, $13 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _stbtt__csctx_close_shape($0);
+ $3 = ((($0)) + 16|0);
+ $4 = +HEAPF32[$3>>2];
+ $5 = $4 + $1;
+ HEAPF32[$3>>2] = $5;
+ $6 = ((($0)) + 8|0);
+ HEAPF32[$6>>2] = $5;
+ $7 = ((($0)) + 20|0);
+ $8 = +HEAPF32[$7>>2];
+ $9 = $8 + $2;
+ HEAPF32[$7>>2] = $9;
+ $10 = ((($0)) + 12|0);
+ HEAPF32[$10>>2] = $9;
+ $11 = +HEAPF32[$3>>2];
+ $12 = (~~(($11)));
+ $13 = (~~(($9)));
+ _stbtt__csctx_v($0,1,$12,$13,0,0,0,0);
+ return;
+}
+function _stbtt__csctx_rline_to($0,$1,$2) {
+ $0 = $0|0;
+ $1 = +$1;
+ $2 = +$2;
+ var $10 = 0, $3 = 0, $4 = 0.0, $5 = 0.0, $6 = 0, $7 = 0.0, $8 = 0.0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 16|0);
+ $4 = +HEAPF32[$3>>2];
+ $5 = $4 + $1;
+ HEAPF32[$3>>2] = $5;
+ $6 = ((($0)) + 20|0);
+ $7 = +HEAPF32[$6>>2];
+ $8 = $7 + $2;
+ HEAPF32[$6>>2] = $8;
+ $9 = (~~(($5)));
+ $10 = (~~(($8)));
+ _stbtt__csctx_v($0,2,$9,$10,0,0,0,0);
+ return;
+}
+function _stbtt__csctx_rccurve_to($0,$1,$2,$3,$4,$5,$6) {
+ $0 = $0|0;
+ $1 = +$1;
+ $2 = +$2;
+ $3 = +$3;
+ $4 = +$4;
+ $5 = +$5;
+ $6 = +$6;
+ var $10 = 0, $11 = 0.0, $12 = 0.0, $13 = 0.0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $7 = ((($0)) + 16|0);
+ $8 = +HEAPF32[$7>>2];
+ $9 = $8 + $1;
+ $10 = ((($0)) + 20|0);
+ $11 = +HEAPF32[$10>>2];
+ $12 = $11 + $2;
+ $13 = $9 + $3;
+ $14 = $12 + $4;
+ $15 = $13 + $5;
+ HEAPF32[$7>>2] = $15;
+ $16 = $14 + $6;
+ HEAPF32[$10>>2] = $16;
+ $17 = (~~(($15)));
+ $18 = (~~(($16)));
+ $19 = (~~(($9)));
+ $20 = (~~(($12)));
+ $21 = (~~(($13)));
+ $22 = (~~(($14)));
+ _stbtt__csctx_v($0,4,$17,$18,$19,$20,$21,$22);
+ return;
+}
+function _stbtt__cid_get_glyph_subrs($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$02931 = 0, $$03034 = 0, $$035 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0);
+ $$byval_copy2 = sp + 36|0;
+ $$byval_copy1 = sp + 24|0;
+ $3 = sp;
+ $4 = sp + 12|0;
+ $5 = ((($1)) + 108|0);
+ ;HEAP32[$3>>2]=HEAP32[$5>>2]|0;HEAP32[$3+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$5+8>>2]|0;
+ _stbtt__buf_seek($3,0);
+ $6 = (_stbtt__buf_get8($3)|0);
+ L1: do {
+ switch ($6<<24>>24) {
+ case 0: {
+ _stbtt__buf_skip($3,$2);
+ $7 = (_stbtt__buf_get8($3)|0);
+ $8 = $7&255;
+ $$02931 = $8;
+ break;
+ }
+ case 3: {
+ $9 = (_stbtt__buf_get($3,2)|0);
+ $10 = (_stbtt__buf_get($3,2)|0);
+ $11 = ($9|0)>(0);
+ if ($11) {
+ $$03034 = $10;$$035 = 0;
+ while(1) {
+ $14 = (_stbtt__buf_get8($3)|0);
+ $15 = (_stbtt__buf_get($3,2)|0);
+ $16 = ($$03034|0)<=($2|0);
+ $17 = ($15|0)>($2|0);
+ $or$cond = $16 & $17;
+ $13 = (($$035) + 1)|0;
+ if ($or$cond) {
+ break;
+ }
+ $12 = ($13|0)<($9|0);
+ if ($12) {
+ $$03034 = $15;$$035 = $13;
+ } else {
+ label = 6;
+ break L1;
+ }
+ }
+ $18 = $14&255;
+ $$02931 = $18;
+ } else {
+ label = 6;
+ }
+ break;
+ }
+ default: {
+ label = 6;
+ }
+ }
+ } while(0);
+ if ((label|0) == 6) {
+ _stbtt__new_buf($$byval_copy2,0,0);
+ $$02931 = -1;
+ }
+ $19 = ((($1)) + 48|0);
+ $20 = ((($1)) + 96|0);
+ ;HEAP32[$$byval_copy2>>2]=HEAP32[$20>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$20+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$20+8>>2]|0;
+ _stbtt__cff_index_get($4,$$byval_copy2,$$02931);
+ ;HEAP32[$$byval_copy1>>2]=HEAP32[$19>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$19+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$19+8>>2]|0;
+ ;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0;
+ _stbtt__get_subrs($0,$$byval_copy1,$$byval_copy2);
+ STACKTOP = sp;return;
+}
+function _stbtt__get_subr($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$ = 0, $$0 = 0, $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $$byval_copy = sp;
+ $3 = (_stbtt__cff_index_count($1)|0);
+ $4 = ($3|0)>(33899);
+ $5 = ($3|0)>(1239);
+ $$ = $5 ? 1131 : 107;
+ $$0 = $4 ? 32768 : $$;
+ $6 = (($$0) + ($2))|0;
+ $7 = ($6|0)>(-1);
+ $8 = ($6|0)<($3|0);
+ $or$cond = $7 & $8;
+ if ($or$cond) {
+ ;HEAP32[$$byval_copy>>2]=HEAP32[$1>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$1+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$1+8>>2]|0;
+ _stbtt__cff_index_get($0,$$byval_copy,$6);
+ STACKTOP = sp;return;
+ } else {
+ _stbtt__new_buf($0,0,0);
+ STACKTOP = sp;return;
+ }
+}
+function _stbtt__csctx_close_shape($0) {
+ $0 = $0|0;
+ var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0.0, $3 = 0, $4 = 0.0, $5 = 0, $6 = 0, $7 = 0.0, $8 = 0, $9 = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 8|0);
+ $2 = +HEAPF32[$1>>2];
+ $3 = ((($0)) + 16|0);
+ $4 = +HEAPF32[$3>>2];
+ $5 = $2 != $4;
+ $6 = ((($0)) + 12|0);
+ $7 = +HEAPF32[$6>>2];
+ if (!($5)) {
+ $8 = ((($0)) + 20|0);
+ $9 = +HEAPF32[$8>>2];
+ $10 = $7 != $9;
+ if (!($10)) {
+ return;
+ }
+ }
+ $11 = (~~(($2)));
+ $12 = (~~(($7)));
+ _stbtt__csctx_v($0,2,$11,$12,0,0,0,0);
+ return;
+}
+function _stbtt__buf_get($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$01011 = 0, $$012 = 0, $$off = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $exitcond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $$off = (($1) + -1)|0;
+ $2 = ($$off>>>0)<(4);
+ if ($2) {
+ $$01011 = 0;$$012 = 0;
+ } else {
+ ___assert_fail((9814|0),(9337|0),1013,(9831|0));
+ // unreachable;
+ }
+ while(1) {
+ $3 = $$01011 << 8;
+ $4 = (_stbtt__buf_get8($0)|0);
+ $5 = $4&255;
+ $6 = $5 | $3;
+ $7 = (($$012) + 1)|0;
+ $exitcond = ($7|0)==($1|0);
+ if ($exitcond) {
+ break;
+ } else {
+ $$01011 = $6;$$012 = $7;
+ }
+ }
+ return ($6|0);
+}
+function _stbtt__cff_int($0) {
+ $0 = $0|0;
+ var $$0 = 0, $$off = 0, $$off19 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0;
+ var $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond5 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_stbtt__buf_get8($0)|0);
+ $2 = $1&255;
+ $$off = (($1) + -32)<<24>>24;
+ $3 = ($$off&255)<(215);
+ if ($3) {
+ $4 = (($2) + -139)|0;
+ $$0 = $4;
+ return ($$0|0);
+ }
+ $$off19 = (($1) + 9)<<24>>24;
+ $5 = ($$off19&255)<(4);
+ if ($5) {
+ $6 = $2 << 8;
+ $7 = (($6) + -63232)|0;
+ $8 = (_stbtt__buf_get8($0)|0);
+ $9 = $8&255;
+ $10 = $9 | $7;
+ $11 = (($10) + 108)|0;
+ $$0 = $11;
+ return ($$0|0);
+ }
+ $12 = ($1&255)>(250);
+ $13 = ($1<<24>>24)!=(-1);
+ $or$cond5 = $12 & $13;
+ if ($or$cond5) {
+ $14 = (251 - ($2))|0;
+ $15 = $14 << 8;
+ $16 = (_stbtt__buf_get8($0)|0);
+ $17 = $16&255;
+ $18 = (($15) + -108)|0;
+ $19 = (($18) - ($17))|0;
+ $$0 = $19;
+ return ($$0|0);
+ }
+ switch ($1<<24>>24) {
+ case 28: {
+ $20 = (_stbtt__buf_get($0,2)|0);
+ $$0 = $20;
+ return ($$0|0);
+ break;
+ }
+ case 29: {
+ $21 = (_stbtt__buf_get($0,4)|0);
+ $$0 = $21;
+ return ($$0|0);
+ break;
+ }
+ default: {
+ ___assert_fail((9797|0),(9337|0),1063,(9799|0));
+ // unreachable;
+ }
+ }
+ return (0)|0;
+}
+function _stbtt__csctx_v($0,$1,$2,$3,$4,$5,$6,$7) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $8 = HEAP32[$0>>2]|0;
+ $9 = ($8|0)==(0);
+ if ($9) {
+ $11 = ((($0)) + 40|0);
+ $12 = HEAP32[$11>>2]|0;
+ $13 = ((($0)) + 44|0);
+ $14 = HEAP32[$13>>2]|0;
+ $15 = (($12) + (($14*14)|0)|0);
+ _stbtt_setvertex($15,$1,$2,$3,$4,$5);
+ $16 = $6&65535;
+ $17 = HEAP32[$11>>2]|0;
+ $18 = HEAP32[$13>>2]|0;
+ $19 = (((($17) + (($18*14)|0)|0)) + 8|0);
+ HEAP16[$19>>1] = $16;
+ $20 = $7&65535;
+ $21 = HEAP32[$11>>2]|0;
+ $22 = HEAP32[$13>>2]|0;
+ $23 = (((($21) + (($22*14)|0)|0)) + 10|0);
+ HEAP16[$23>>1] = $20;
+ } else {
+ _stbtt__track_vertex($0,$2,$3);
+ $10 = ($1<<24>>24)==(4);
+ if ($10) {
+ _stbtt__track_vertex($0,$4,$5);
+ _stbtt__track_vertex($0,$6,$7);
+ }
+ }
+ $24 = ((($0)) + 44|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = (($25) + 1)|0;
+ HEAP32[$24>>2] = $26;
+ return;
+}
+function _stbtt__track_vertex($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0;
+ var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ((($0)) + 28|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($4|0)<($1|0);
+ if ($5) {
+ label = 3;
+ } else {
+ $6 = ((($0)) + 4|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)==(0);
+ if ($8) {
+ label = 3;
+ }
+ }
+ if ((label|0) == 3) {
+ HEAP32[$3>>2] = $1;
+ }
+ $9 = ((($0)) + 36|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($10|0)<($2|0);
+ if ($11) {
+ label = 6;
+ } else {
+ $12 = ((($0)) + 4|0);
+ $13 = HEAP32[$12>>2]|0;
+ $14 = ($13|0)==(0);
+ if ($14) {
+ label = 6;
+ }
+ }
+ if ((label|0) == 6) {
+ HEAP32[$9>>2] = $2;
+ }
+ $15 = ((($0)) + 24|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = ($16|0)>($1|0);
+ if ($17) {
+ label = 9;
+ } else {
+ $18 = ((($0)) + 4|0);
+ $19 = HEAP32[$18>>2]|0;
+ $20 = ($19|0)==(0);
+ if ($20) {
+ label = 9;
+ }
+ }
+ if ((label|0) == 9) {
+ HEAP32[$15>>2] = $1;
+ }
+ $21 = ((($0)) + 32|0);
+ $22 = HEAP32[$21>>2]|0;
+ $23 = ($22|0)>($2|0);
+ if (!($23)) {
+ $24 = ((($0)) + 4|0);
+ $25 = HEAP32[$24>>2]|0;
+ $26 = ($25|0)==(0);
+ if (!($26)) {
+ $27 = ((($0)) + 4|0);
+ HEAP32[$27>>2] = 1;
+ return;
+ }
+ }
+ HEAP32[$21>>2] = $2;
+ $27 = ((($0)) + 4|0);
+ HEAP32[$27>>2] = 1;
+ return;
+}
+function _stbtt_setvertex($0,$1,$2,$3,$4,$5) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $6 = ((($0)) + 12|0);
+ HEAP8[$6>>0] = $1;
+ $7 = $2&65535;
+ HEAP16[$0>>1] = $7;
+ $8 = $3&65535;
+ $9 = ((($0)) + 2|0);
+ HEAP16[$9>>1] = $8;
+ $10 = $4&65535;
+ $11 = ((($0)) + 4|0);
+ HEAP16[$11>>1] = $10;
+ $12 = $5&65535;
+ $13 = ((($0)) + 6|0);
+ HEAP16[$13>>1] = $12;
+ return;
+}
+function _stbtt__cff_index_count($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ _stbtt__buf_seek($0,0);
+ $1 = (_stbtt__buf_get($0,2)|0);
+ return ($1|0);
+}
+function _stbtt__new_buf($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$sroa$4$0$$sroa_idx2 = 0, $$sroa$5$0$$sroa_idx4 = 0, $3 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = ($2>>>0)<(1073741824);
+ if ($3) {
+ HEAP32[$0>>2] = $1;
+ $$sroa$4$0$$sroa_idx2 = ((($0)) + 4|0);
+ HEAP32[$$sroa$4$0$$sroa_idx2>>2] = 0;
+ $$sroa$5$0$$sroa_idx4 = ((($0)) + 8|0);
+ HEAP32[$$sroa$5$0$$sroa_idx4>>2] = $2;
+ return;
+ } else {
+ ___assert_fail((9846|0),(9337|0),1022,(9864|0));
+ // unreachable;
+ }
+}
+function _stbtt__buf_seek($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 8|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = ($3|0)<($1|0);
+ $5 = ($1|0)<(0);
+ $or$cond = $5 | $4;
+ if ($or$cond) {
+ ___assert_fail((9879|0),(9337|0),1000,(9903|0));
+ // unreachable;
+ } else {
+ $6 = ((($0)) + 4|0);
+ HEAP32[$6>>2] = $1;
+ return;
+ }
+}
+function _stbtt__get_subrs($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
+ $3 = sp + 20|0;
+ $4 = sp;
$5 = sp + 8|0;
- HEAP32[$vararg_buffer>>2] = $1;
- _TraceLog(2,9034,$vararg_buffer);
- _GetDefaultFont($5);
- $$sroa$0$0$copyload = HEAP32[$5>>2]|0;
- $$sroa$6$0$$sroa_idx = ((($5)) + 4|0);
- HEAP32[$0>>2] = $$sroa$0$0$copyload;
- $$sroa$6$0$$sroa_idx6 = ((($0)) + 4|0);
- ;HEAP32[$$sroa$6$0$$sroa_idx6>>2]=HEAP32[$$sroa$6$0$$sroa_idx>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx6+4>>2]=HEAP32[$$sroa$6$0$$sroa_idx+4>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx6+8>>2]=HEAP32[$$sroa$6$0$$sroa_idx+8>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx6+12>>2]=HEAP32[$$sroa$6$0$$sroa_idx+12>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx6+16>>2]=HEAP32[$$sroa$6$0$$sroa_idx+16>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx6+20>>2]=HEAP32[$$sroa$6$0$$sroa_idx+20>>2]|0;HEAP32[$$sroa$6$0$$sroa_idx6+24>>2]=HEAP32[$$sroa$6$0$$sroa_idx+24>>2]|0;
+ HEAP32[$3>>2] = 0;
+ $6 = $4;
+ $7 = $6;
+ HEAP32[$7>>2] = 0;
+ $8 = (($6) + 4)|0;
+ $9 = $8;
+ HEAP32[$9>>2] = 0;
+ _stbtt__dict_get_ints($2,18,2,$4);
+ $10 = ((($4)) + 4|0);
+ $11 = HEAP32[$10>>2]|0;
+ $12 = ($11|0)==(0);
+ if (!($12)) {
+ $13 = HEAP32[$4>>2]|0;
+ $14 = ($13|0)==(0);
+ if (!($14)) {
+ _stbtt__buf_range($5,$1,$11,$13);
+ _stbtt__dict_get_ints($5,19,1,$3);
+ $15 = HEAP32[$3>>2]|0;
+ $16 = ($15|0)==(0);
+ if ($16) {
+ _stbtt__new_buf($0,0,0);
+ STACKTOP = sp;return;
+ } else {
+ $17 = HEAP32[$10>>2]|0;
+ $18 = (($17) + ($15))|0;
+ _stbtt__buf_seek($1,$18);
+ _stbtt__cff_get_index($0,$1);
+ STACKTOP = sp;return;
+ }
+ }
+ }
+ _stbtt__new_buf($0,0,0);
+ STACKTOP = sp;return;
+}
+function _stbtt__dict_get_ints($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$07 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $4 = sp;
+ _stbtt__dict_get($4,$0,$1);
+ $5 = ((($4)) + 4|0);
+ $6 = ($2|0)>(0);
+ if (!($6)) {
+ STACKTOP = sp;return;
+ }
+ $7 = ((($4)) + 8|0);
+ $$07 = 0;
+ while(1) {
+ $8 = HEAP32[$5>>2]|0;
+ $9 = HEAP32[$7>>2]|0;
+ $10 = ($8|0)<($9|0);
+ if (!($10)) {
+ label = 5;
+ break;
+ }
+ $11 = (_stbtt__cff_int($4)|0);
+ $12 = (($3) + ($$07<<2)|0);
+ HEAP32[$12>>2] = $11;
+ $13 = (($$07) + 1)|0;
+ $14 = ($13|0)<($2|0);
+ if ($14) {
+ $$07 = $13;
+ } else {
+ label = 5;
+ break;
+ }
+ }
+ if ((label|0) == 5) {
+ STACKTOP = sp;return;
+ }
+}
+function _stbtt__buf_range($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $4 = sp;
+ _stbtt__new_buf($4,0,0);
+ $5 = $3 | $2;
+ $6 = ($5|0)<(0);
+ if (!($6)) {
+ $7 = ((($1)) + 8|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ($8|0)<($2|0);
+ $10 = (($8) - ($2))|0;
+ $11 = ($10|0)<($3|0);
+ $or$cond = $9 | $11;
+ if (!($or$cond)) {
+ $12 = HEAP32[$1>>2]|0;
+ $13 = (($12) + ($2)|0);
+ HEAP32[$4>>2] = $13;
+ $14 = ((($4)) + 8|0);
+ HEAP32[$14>>2] = $3;
+ ;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0;
+ STACKTOP = sp;return;
+ }
+ }
+ ;HEAP32[$0>>2]=HEAP32[$4>>2]|0;HEAP32[$0+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$0+8>>2]=HEAP32[$4+8>>2]|0;
STACKTOP = sp;return;
}
+function _stbtt__cff_get_index($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$off = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = ((($1)) + 4|0);
+ $3 = HEAP32[$2>>2]|0;
+ $4 = (_stbtt__buf_get($1,2)|0);
+ $5 = ($4|0)==(0);
+ if ($5) {
+ $12 = HEAP32[$2>>2]|0;
+ $13 = (($12) - ($3))|0;
+ _stbtt__buf_range($0,$1,$3,$13);
+ return;
+ }
+ $6 = (_stbtt__buf_get8($1)|0);
+ $7 = $6&255;
+ $$off = (($6) + -1)<<24>>24;
+ $8 = ($$off&255)<(4);
+ if (!($8)) {
+ ___assert_fail((9919|0),(9337|0),1048,(9948|0));
+ // unreachable;
+ }
+ $9 = Math_imul($7, $4)|0;
+ _stbtt__buf_skip($1,$9);
+ $10 = (_stbtt__buf_get($1,$7)|0);
+ $11 = (($10) + -1)|0;
+ _stbtt__buf_skip($1,$11);
+ $12 = HEAP32[$2>>2]|0;
+ $13 = (($12) - ($3))|0;
+ _stbtt__buf_range($0,$1,$3,$13);
+ return;
+}
+function _stbtt__dict_get($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$021 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ _stbtt__buf_seek($1,0);
+ $3 = ((($1)) + 4|0);
+ $4 = ((($1)) + 8|0);
+ while(1) {
+ $5 = HEAP32[$3>>2]|0;
+ $6 = HEAP32[$4>>2]|0;
+ $7 = ($5|0)<($6|0);
+ if (!($7)) {
+ label = 9;
+ break;
+ }
+ $8 = (_stbtt__buf_peek8($1)|0);
+ $9 = ($8&255)>(27);
+ if ($9) {
+ while(1) {
+ _stbtt__cff_skip_operand($1);
+ $10 = (_stbtt__buf_peek8($1)|0);
+ $11 = ($10&255)>(27);
+ if (!($11)) {
+ break;
+ }
+ }
+ }
+ $12 = HEAP32[$3>>2]|0;
+ $13 = (_stbtt__buf_get8($1)|0);
+ $14 = $13&255;
+ $15 = ($13<<24>>24)==(12);
+ if ($15) {
+ $16 = (_stbtt__buf_get8($1)|0);
+ $17 = $16&255;
+ $18 = $17 | 256;
+ $$021 = $18;
+ } else {
+ $$021 = $14;
+ }
+ $19 = ($$021|0)==($2|0);
+ if ($19) {
+ label = 8;
+ break;
+ }
+ }
+ if ((label|0) == 8) {
+ $20 = (($12) - ($5))|0;
+ _stbtt__buf_range($0,$1,$5,$20);
+ return;
+ }
+ else if ((label|0) == 9) {
+ _stbtt__buf_range($0,$1,0,0);
+ return;
+ }
+}
+function _stbtt__buf_peek8($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 4|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ((($0)) + 8|0);
+ $4 = HEAP32[$3>>2]|0;
+ $5 = ($2|0)<($4|0);
+ if (!($5)) {
+ $$0 = 0;
+ return ($$0|0);
+ }
+ $6 = HEAP32[$0>>2]|0;
+ $7 = (($6) + ($2)|0);
+ $8 = HEAP8[$7>>0]|0;
+ $$0 = $8;
+ return ($$0|0);
+}
+function _stbtt__cff_skip_operand($0) {
+ $0 = $0|0;
+ var $$mask = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_stbtt__buf_peek8($0)|0);
+ $2 = ($1&255)>(27);
+ if (!($2)) {
+ ___assert_fail((9969|0),(9337|0),1069,(9978|0));
+ // unreachable;
+ }
+ $3 = ($1<<24>>24)==(30);
+ if (!($3)) {
+ (_stbtt__cff_int($0)|0);
+ return;
+ }
+ _stbtt__buf_skip($0,1);
+ $4 = ((($0)) + 4|0);
+ $5 = ((($0)) + 8|0);
+ while(1) {
+ $6 = HEAP32[$4>>2]|0;
+ $7 = HEAP32[$5>>2]|0;
+ $8 = ($6|0)<($7|0);
+ if (!($8)) {
+ label = 8;
+ break;
+ }
+ $9 = (_stbtt__buf_get8($0)|0);
+ $10 = $9&255;
+ $11 = $10 & 15;
+ $12 = ($11|0)==(15);
+ $$mask = $10 & 240;
+ $13 = ($$mask|0)==(240);
+ $or$cond = $12 | $13;
+ if ($or$cond) {
+ label = 8;
+ break;
+ }
+ }
+ if ((label|0) == 8) {
+ return;
+ }
+}
+function _stbtt__GetGlyphShapeTT($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0348453 = 0, $$0353439 = 0, $$0361449 = 0, $$0363450 = 0, $$0364448 = 0, $$0366447 = 0, $$0372451 = 0, $$0377437 = 0, $$0379436 = 0, $$0381446 = 0, $$0387435 = 0, $$0390434 = 0, $$0393433 = 0, $$0396432 = 0, $$0399431 = 0, $$0401430 = 0, $$0403440 = 0, $$0405443 = 0, $$0407429 = 0, $$0409428 = 0;
+ var $$1349 = 0, $$1354 = 0, $$1362 = 0, $$1365 = 0, $$1367445 = 0, $$1378 = 0, $$1380 = 0, $$1382 = 0, $$1388 = 0, $$1391 = 0, $$1394 = 0, $$1397 = 0, $$1400 = 0, $$1402 = 0, $$1404 = 0, $$1406 = 0, $$1408 = 0, $$1410 = 0, $$2368442 = 0, $$2374 = 0;
+ var $$2383444 = 0, $$2389 = 0, $$2392 = 0, $$2395 = 0, $$2398 = 0, $$3356 = 0, $$3369438 = 0, $$3384 = 0, $$4 = 0, $$4352 = 0, $$4370 = 0, $$4385441 = 0, $$5371 = 0, $$5386 = 0, $$5452 = 0, $$6 = 0, $$9 = 0, $$sink = 0, $$sroa$0$0 = 0.0, $$sroa$10$0 = 0.0;
+ var $$sroa$17$0 = 0.0, $$sroa$24$0 = 0.0, $$sroa$31$0 = 0.0, $$sroa$35$0 = 0.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;
+ var $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0;
+ var $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0;
+ var $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0.0, $155 = 0, $156 = 0, $157 = 0.0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0, $161 = 0, $162 = 0.0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0.0, $168 = 0.0;
+ var $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0.0, $174 = 0.0, $175 = 0, $176 = 0, $177 = 0.0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0.0, $184 = 0.0, $185 = 0, $186 = 0;
+ var $187 = 0.0, $188 = 0.0, $189 = 0, $19 = 0, $190 = 0, $191 = 0.0, $192 = 0.0, $193 = 0, $194 = 0, $195 = 0.0, $196 = 0.0, $197 = 0, $198 = 0.0, $199 = 0.0, $20 = 0, $200 = 0.0, $201 = 0.0, $202 = 0.0, $203 = 0.0, $204 = 0;
+ var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0.0, $213 = 0.0, $214 = 0.0, $215 = 0.0, $216 = 0.0, $217 = 0.0, $218 = 0.0, $219 = 0, $22 = 0, $220 = 0.0, $221 = 0.0, $222 = 0.0;
+ var $223 = 0.0, $224 = 0.0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0.0, $231 = 0.0, $232 = 0.0, $233 = 0.0, $234 = 0.0, $235 = 0.0, $236 = 0.0, $237 = 0, $238 = 0.0, $239 = 0.0, $24 = 0, $240 = 0.0;
+ var $241 = 0.0, $242 = 0.0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0;
+ var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0;
+ var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0;
+ var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0;
+ var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0;
+ var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $exitcond458 = 0, $exitcond459 = 0, $exitcond460 = 0, $sext = 0, $sext412 = 0, $sqrtf = 0.0, $sqrtf411 = 0.0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $3 = sp;
+ $4 = ((($0)) + 4|0);
+ $5 = HEAP32[$4>>2]|0;
+ $6 = (_stbtt__GetGlyfOffset($0,$1)|0);
+ HEAP32[$2>>2] = 0;
+ $7 = ($6|0)<(0);
+ if ($7) {
+ $$4 = 0;
+ STACKTOP = sp;return ($$4|0);
+ }
+ $8 = (($5) + ($6)|0);
+ $9 = (_ttSHORT($8)|0);
+ $10 = ($9<<16>>16)>(0);
+ L4: do {
+ if ($10) {
+ $11 = $9 << 16 >> 16;
+ $12 = ((($8)) + 10|0);
+ $13 = $11 << 1;
+ $14 = (($12) + ($13)|0);
+ $15 = (_ttUSHORT($14)|0);
+ $16 = ((($14)) + -2|0);
+ $17 = (_ttUSHORT($16)|0);
+ $18 = $17&65535;
+ $19 = $13 | 1;
+ $20 = (($19) + ($18))|0;
+ $21 = ($20*14)|0;
+ $22 = (_malloc($21)|0);
+ $23 = ($22|0)==(0|0);
+ if ($23) {
+ $$4 = 0;
+ STACKTOP = sp;return ($$4|0);
+ }
+ $24 = ((($14)) + 2|0);
+ $25 = $15&65535;
+ $26 = (($24) + ($25)|0);
+ $$0361449 = 0;$$0364448 = 0;$$0366447 = 0;$$0381446 = $26;
+ while(1) {
+ $27 = ($$0364448<<24>>24)==(0);
+ if ($27) {
+ $28 = ((($$0381446)) + 1|0);
+ $29 = HEAP8[$$0381446>>0]|0;
+ $30 = $29 & 8;
+ $31 = ($30<<24>>24)==(0);
+ if ($31) {
+ $$1362 = $29;$$1365 = 0;$$1382 = $28;
+ } else {
+ $32 = ((($$0381446)) + 2|0);
+ $33 = HEAP8[$28>>0]|0;
+ $$1362 = $29;$$1365 = $33;$$1382 = $32;
+ }
+ } else {
+ $34 = (($$0364448) + -1)<<24>>24;
+ $$1362 = $$0361449;$$1365 = $34;$$1382 = $$0381446;
+ }
+ $35 = (($$0366447) + ($13))|0;
+ $36 = (((($22) + (($35*14)|0)|0)) + 12|0);
+ HEAP8[$36>>0] = $$1362;
+ $37 = (($$0366447) + 1)|0;
+ $exitcond459 = ($$0366447|0)==($18|0);
+ if ($exitcond459) {
+ $$0405443 = 0;$$1367445 = 0;$$2383444 = $$1382;
+ break;
+ } else {
+ $$0361449 = $$1362;$$0364448 = $$1365;$$0366447 = $37;$$0381446 = $$1382;
+ }
+ }
+ while(1) {
+ $38 = (($$1367445) + ($13))|0;
+ $39 = (((($22) + (($38*14)|0)|0)) + 12|0);
+ $40 = HEAP8[$39>>0]|0;
+ $41 = $40&255;
+ $42 = $41 & 2;
+ $43 = ($42|0)==(0);
+ $44 = $41 & 16;
+ $45 = ($44|0)!=(0);
+ if ($43) {
+ if ($45) {
+ $$1406 = $$0405443;$$3384 = $$2383444;
+ } else {
+ $52 = HEAP8[$$2383444>>0]|0;
+ $53 = $52&255;
+ $54 = $53 << 8;
+ $55 = ((($$2383444)) + 1|0);
+ $56 = HEAP8[$55>>0]|0;
+ $57 = $56&255;
+ $58 = $54 | $57;
+ $sext412 = $58 << 16;
+ $59 = $sext412 >> 16;
+ $60 = (($59) + ($$0405443))|0;
+ $61 = ((($$2383444)) + 2|0);
+ $$1406 = $60;$$3384 = $61;
+ }
+ } else {
+ $46 = ((($$2383444)) + 1|0);
+ $47 = HEAP8[$$2383444>>0]|0;
+ $48 = $47&255;
+ $49 = (0 - ($48))|0;
+ $50 = $45 ? $48 : $49;
+ $51 = (($50) + ($$0405443))|0;
+ $$1406 = $51;$$3384 = $46;
+ }
+ $62 = $$1406&65535;
+ $63 = (($22) + (($38*14)|0)|0);
+ HEAP16[$63>>1] = $62;
+ $64 = (($$1367445) + 1)|0;
+ $exitcond458 = ($$1367445|0)==($18|0);
+ if ($exitcond458) {
+ $$0403440 = 0;$$2368442 = 0;$$4385441 = $$3384;
+ break;
+ } else {
+ $$0405443 = $$1406;$$1367445 = $64;$$2383444 = $$3384;
+ }
+ }
+ while(1) {
+ $65 = (($$2368442) + ($13))|0;
+ $66 = (((($22) + (($65*14)|0)|0)) + 12|0);
+ $67 = HEAP8[$66>>0]|0;
+ $68 = $67&255;
+ $69 = $68 & 4;
+ $70 = ($69|0)==(0);
+ $71 = $68 & 32;
+ $72 = ($71|0)!=(0);
+ if ($70) {
+ if ($72) {
+ $$1404 = $$0403440;$$5386 = $$4385441;
+ } else {
+ $79 = HEAP8[$$4385441>>0]|0;
+ $80 = $79&255;
+ $81 = $80 << 8;
+ $82 = ((($$4385441)) + 1|0);
+ $83 = HEAP8[$82>>0]|0;
+ $84 = $83&255;
+ $85 = $81 | $84;
+ $sext = $85 << 16;
+ $86 = $sext >> 16;
+ $87 = (($86) + ($$0403440))|0;
+ $88 = ((($$4385441)) + 2|0);
+ $$1404 = $87;$$5386 = $88;
+ }
+ } else {
+ $73 = ((($$4385441)) + 1|0);
+ $74 = HEAP8[$$4385441>>0]|0;
+ $75 = $74&255;
+ $76 = (0 - ($75))|0;
+ $77 = $72 ? $75 : $76;
+ $78 = (($77) + ($$0403440))|0;
+ $$1404 = $78;$$5386 = $73;
+ }
+ $89 = $$1404&65535;
+ $90 = (((($22) + (($65*14)|0)|0)) + 2|0);
+ HEAP16[$90>>1] = $89;
+ $91 = (($$2368442) + 1)|0;
+ $exitcond = ($$2368442|0)==($18|0);
+ if ($exitcond) {
+ $$0353439 = 0;$$0377437 = 0;$$0379436 = 0;$$0387435 = 0;$$0390434 = 0;$$0393433 = 0;$$0396432 = 0;$$0399431 = 0;$$0401430 = 0;$$0407429 = 0;$$0409428 = 0;$$3369438 = 0;
+ break;
+ } else {
+ $$0403440 = $$1404;$$2368442 = $91;$$4385441 = $$5386;
+ }
+ }
+ while(1) {
+ $92 = (($$3369438) + ($13))|0;
+ $93 = (((($22) + (($92*14)|0)|0)) + 12|0);
+ $94 = HEAP8[$93>>0]|0;
+ $95 = (($22) + (($92*14)|0)|0);
+ $96 = HEAP16[$95>>1]|0;
+ $97 = $96 << 16 >> 16;
+ $98 = (((($22) + (($92*14)|0)|0)) + 2|0);
+ $99 = HEAP16[$98>>1]|0;
+ $100 = $99 << 16 >> 16;
+ $101 = ($$0379436|0)==($$3369438|0);
+ $102 = $94 & 1;
+ $103 = ($102<<24>>24)!=(0);
+ do {
+ if ($101) {
+ $104 = ($$3369438|0)==(0);
+ if ($104) {
+ $$1354 = $$0353439;
+ } else {
+ $105 = (_stbtt__close_shape($22,$$0353439,$$0409428,$$0407429,$$0396432,$$0393433,$$0390434,$$0387435,$$0401430,$$0399431)|0);
+ $$1354 = $105;
+ }
+ $106 = $103 ^ 1;
+ $107 = $106&1;
+ do {
+ if ($103) {
+ $$1388 = $$0387435;$$1391 = $$0390434;$$1394 = $100;$$1397 = $97;$$4370 = $$3369438;
+ } else {
+ $108 = (($92) + 1)|0;
+ $109 = (((($22) + (($108*14)|0)|0)) + 12|0);
+ $110 = HEAP8[$109>>0]|0;
+ $111 = $110 & 1;
+ $112 = ($111<<24>>24)==(0);
+ $113 = (((($22) + (($108*14)|0)|0)) + 2|0);
+ $114 = HEAP16[$113>>1]|0;
+ $115 = (($22) + (($108*14)|0)|0);
+ $116 = HEAP16[$115>>1]|0;
+ $117 = $114 << 16 >> 16;
+ $118 = $116 << 16 >> 16;
+ if ($112) {
+ $119 = (($118) + ($97))|0;
+ $120 = $119 >> 1;
+ $121 = (($117) + ($100))|0;
+ $122 = $121 >> 1;
+ $$1388 = $100;$$1391 = $97;$$1394 = $122;$$1397 = $120;$$4370 = $$3369438;
+ break;
+ } else {
+ $123 = (($$3369438) + 1)|0;
+ $$1388 = $100;$$1391 = $97;$$1394 = $117;$$1397 = $118;$$4370 = $123;
+ break;
+ }
+ }
+ } while(0);
+ $124 = (($$1354) + 1)|0;
+ $125 = (($22) + (($$1354*14)|0)|0);
+ _stbtt_setvertex($125,1,$$1397,$$1394,0,0);
+ $126 = $$0377437 << 1;
+ $127 = (($12) + ($126)|0);
+ $128 = (_ttUSHORT($127)|0);
+ $129 = $128&65535;
+ $130 = (($129) + 1)|0;
+ $131 = (($$0377437) + 1)|0;
+ $$1378 = $131;$$1380 = $130;$$1400 = $$0399431;$$1402 = $$0401430;$$1408 = $107;$$1410 = 0;$$2389 = $$1388;$$2392 = $$1391;$$2395 = $$1394;$$2398 = $$1397;$$3356 = $124;$$5371 = $$4370;
+ } else {
+ $132 = ($$0409428|0)!=(0);
+ $133 = (($$0353439) + 1)|0;
+ $134 = (($22) + (($$0353439*14)|0)|0);
+ if (!($103)) {
+ if (!($132)) {
+ $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $100;$$1402 = $97;$$1408 = $$0407429;$$1410 = 1;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $$0353439;$$5371 = $$3369438;
+ break;
+ }
+ $135 = (($100) + ($$0399431))|0;
+ $136 = $135 >> 1;
+ $137 = (($97) + ($$0401430))|0;
+ $138 = $137 >> 1;
+ _stbtt_setvertex($134,3,$138,$136,$$0401430,$$0399431);
+ $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $100;$$1402 = $97;$$1408 = $$0407429;$$1410 = 1;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $133;$$5371 = $$3369438;
+ break;
+ }
+ if ($132) {
+ _stbtt_setvertex($134,3,$97,$100,$$0401430,$$0399431);
+ $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $$0399431;$$1402 = $$0401430;$$1408 = $$0407429;$$1410 = 0;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $133;$$5371 = $$3369438;
+ break;
+ } else {
+ _stbtt_setvertex($134,2,$97,$100,0,0);
+ $$1378 = $$0377437;$$1380 = $$0379436;$$1400 = $$0399431;$$1402 = $$0401430;$$1408 = $$0407429;$$1410 = 0;$$2389 = $$0387435;$$2392 = $$0390434;$$2395 = $$0393433;$$2398 = $$0396432;$$3356 = $133;$$5371 = $$3369438;
+ break;
+ }
+ }
+ } while(0);
+ $139 = (($$5371) + 1)|0;
+ $140 = ($$5371|0)<($18|0);
+ if ($140) {
+ $$0353439 = $$3356;$$0377437 = $$1378;$$0379436 = $$1380;$$0387435 = $$2389;$$0390434 = $$2392;$$0393433 = $$2395;$$0396432 = $$2398;$$0399431 = $$1400;$$0401430 = $$1402;$$0407429 = $$1408;$$0409428 = $$1410;$$3369438 = $139;
+ } else {
+ break;
+ }
+ }
+ $141 = (_stbtt__close_shape($22,$$3356,$$1410,$$1408,$$2398,$$2395,$$2392,$$2389,$$1402,$$1400)|0);
+ $$4352 = $22;$$9 = $141;
+ } else {
+ $142 = ($9<<16>>16)==(-1);
+ if (!($142)) {
+ $264 = ($9<<16>>16)<(0);
+ if (!($264)) {
+ $$4352 = 0;$$9 = 0;
+ break;
+ }
+ ___assert_fail((9797|0),(9337|0),1723,(10116|0));
+ // unreachable;
+ }
+ $143 = ((($8)) + 10|0);
+ $$0348453 = 0;$$0372451 = $143;$$5452 = 0;$250 = 0;$255 = 0;$260 = 0;
+ while(1) {
+ HEAP32[$3>>2] = 0;
+ $144 = (_ttSHORT($$0372451)|0);
+ $145 = ((($$0372451)) + 2|0);
+ $146 = (_ttSHORT($145)|0);
+ $147 = ((($$0372451)) + 4|0);
+ $148 = $144&65535;
+ $149 = $148 & 2;
+ $150 = ($149|0)==(0);
+ if ($150) {
+ label = 42;
+ break;
+ }
+ $151 = $148 & 1;
+ $152 = ($151|0)==(0);
+ if ($152) {
+ $158 = HEAP8[$147>>0]|0;
+ $159 = (+($158<<24>>24));
+ $160 = ((($$0372451)) + 5|0);
+ $161 = HEAP8[$160>>0]|0;
+ $162 = (+($161<<24>>24));
+ $$sink = 6;$$sroa$31$0 = $159;$$sroa$35$0 = $162;
+ } else {
+ $153 = (_ttSHORT($147)|0);
+ $154 = (+($153<<16>>16));
+ $155 = ((($$0372451)) + 6|0);
+ $156 = (_ttSHORT($155)|0);
+ $157 = (+($156<<16>>16));
+ $$sink = 8;$$sroa$31$0 = $154;$$sroa$35$0 = $157;
+ }
+ $163 = (($$0372451) + ($$sink)|0);
+ $164 = $148 & 8;
+ $165 = ($164|0)==(0);
+ do {
+ if ($165) {
+ $170 = $148 & 64;
+ $171 = ($170|0)==(0);
+ if (!($171)) {
+ $172 = (_ttSHORT($163)|0);
+ $173 = (+($172<<16>>16));
+ $174 = $173 * 6.103515625E-5;
+ $175 = ((($163)) + 2|0);
+ $176 = (_ttSHORT($175)|0);
+ $177 = (+($176<<16>>16));
+ $178 = $177 * 6.103515625E-5;
+ $179 = ((($163)) + 4|0);
+ $$2374 = $179;$$sroa$0$0 = $174;$$sroa$10$0 = 0.0;$$sroa$17$0 = 0.0;$$sroa$24$0 = $178;
+ break;
+ }
+ $180 = $148 & 128;
+ $181 = ($180|0)==(0);
+ if ($181) {
+ $$2374 = $163;$$sroa$0$0 = 1.0;$$sroa$10$0 = 0.0;$$sroa$17$0 = 0.0;$$sroa$24$0 = 1.0;
+ } else {
+ $182 = (_ttSHORT($163)|0);
+ $183 = (+($182<<16>>16));
+ $184 = $183 * 6.103515625E-5;
+ $185 = ((($163)) + 2|0);
+ $186 = (_ttSHORT($185)|0);
+ $187 = (+($186<<16>>16));
+ $188 = $187 * 6.103515625E-5;
+ $189 = ((($163)) + 4|0);
+ $190 = (_ttSHORT($189)|0);
+ $191 = (+($190<<16>>16));
+ $192 = $191 * 6.103515625E-5;
+ $193 = ((($163)) + 6|0);
+ $194 = (_ttSHORT($193)|0);
+ $195 = (+($194<<16>>16));
+ $196 = $195 * 6.103515625E-5;
+ $197 = ((($163)) + 8|0);
+ $$2374 = $197;$$sroa$0$0 = $184;$$sroa$10$0 = $188;$$sroa$17$0 = $192;$$sroa$24$0 = $196;
+ }
+ } else {
+ $166 = (_ttSHORT($163)|0);
+ $167 = (+($166<<16>>16));
+ $168 = $167 * 6.103515625E-5;
+ $169 = ((($163)) + 2|0);
+ $$2374 = $169;$$sroa$0$0 = $168;$$sroa$10$0 = 0.0;$$sroa$17$0 = 0.0;$$sroa$24$0 = $168;
+ }
+ } while(0);
+ $198 = $$sroa$0$0 * $$sroa$0$0;
+ $199 = $$sroa$10$0 * $$sroa$10$0;
+ $200 = $199 + $198;
+ $sqrtf = (+Math_sqrt((+$200)));
+ $201 = $$sroa$17$0 * $$sroa$17$0;
+ $202 = $$sroa$24$0 * $$sroa$24$0;
+ $203 = $202 + $201;
+ $sqrtf411 = (+Math_sqrt((+$203)));
+ $204 = $146&65535;
+ $205 = (_stbtt_GetGlyphShape($0,$204,$3)|0);
+ $206 = ($205|0)>(0);
+ if ($206) {
+ $207 = HEAP32[$3>>2]|0;
+ $$0363450 = 0;
+ while(1) {
+ $208 = (($207) + (($$0363450*14)|0)|0);
+ $209 = HEAP16[$208>>1]|0;
+ $210 = (((($207) + (($$0363450*14)|0)|0)) + 2|0);
+ $211 = HEAP16[$210>>1]|0;
+ $212 = (+($209<<16>>16));
+ $213 = $$sroa$0$0 * $212;
+ $214 = (+($211<<16>>16));
+ $215 = $$sroa$17$0 * $214;
+ $216 = $213 + $215;
+ $217 = $$sroa$31$0 + $216;
+ $218 = $sqrtf * $217;
+ $219 = (~~(($218)));
+ HEAP16[$208>>1] = $219;
+ $220 = $$sroa$10$0 * $212;
+ $221 = $$sroa$24$0 * $214;
+ $222 = $220 + $221;
+ $223 = $$sroa$35$0 + $222;
+ $224 = $sqrtf411 * $223;
+ $225 = (~~(($224)));
+ HEAP16[$210>>1] = $225;
+ $226 = (((($207) + (($$0363450*14)|0)|0)) + 4|0);
+ $227 = HEAP16[$226>>1]|0;
+ $228 = (((($207) + (($$0363450*14)|0)|0)) + 6|0);
+ $229 = HEAP16[$228>>1]|0;
+ $230 = (+($227<<16>>16));
+ $231 = $$sroa$0$0 * $230;
+ $232 = (+($229<<16>>16));
+ $233 = $$sroa$17$0 * $232;
+ $234 = $231 + $233;
+ $235 = $$sroa$31$0 + $234;
+ $236 = $sqrtf * $235;
+ $237 = (~~(($236)));
+ HEAP16[$226>>1] = $237;
+ $238 = $$sroa$10$0 * $230;
+ $239 = $$sroa$24$0 * $232;
+ $240 = $238 + $239;
+ $241 = $$sroa$35$0 + $240;
+ $242 = $sqrtf411 * $241;
+ $243 = (~~(($242)));
+ HEAP16[$228>>1] = $243;
+ $244 = (($$0363450) + 1)|0;
+ $exitcond460 = ($244|0)==($205|0);
+ if ($exitcond460) {
+ break;
+ } else {
+ $$0363450 = $244;
+ }
+ }
+ $245 = (($205) + ($$5452))|0;
+ $246 = ($245*14)|0;
+ $247 = (_malloc($246)|0);
+ $248 = ($247|0)==(0|0);
+ if ($248) {
+ break;
+ }
+ $253 = ($$5452|0)>(0);
+ if ($253) {
+ $254 = ($$5452*14)|0;
+ _memcpy(($247|0),($255|0),($254|0))|0;
+ }
+ $256 = (($247) + (($$5452*14)|0)|0);
+ $257 = HEAP32[$3>>2]|0;
+ $258 = ($205*14)|0;
+ _memcpy(($256|0),($257|0),($258|0))|0;
+ $259 = ($$0348453|0)==(0|0);
+ if (!($259)) {
+ _free($260);
+ }
+ $261 = HEAP32[$3>>2]|0;
+ _free($261);
+ $$1349 = $247;$$6 = $245;$265 = $247;$266 = $247;$267 = $247;
+ } else {
+ $$1349 = $$0348453;$$6 = $$5452;$265 = $250;$266 = $260;$267 = $255;
+ }
+ $262 = $148 & 32;
+ $263 = ($262|0)==(0);
+ if ($263) {
+ $$4352 = $$1349;$$9 = $$6;
+ break L4;
+ } else {
+ $$0348453 = $$1349;$$0372451 = $$2374;$$5452 = $$6;$250 = $265;$255 = $267;$260 = $266;
+ }
+ }
+ if ((label|0) == 42) {
+ ___assert_fail((9797|0),(9337|0),1670,(10116|0));
+ // unreachable;
+ }
+ $249 = ($$0348453|0)==(0|0);
+ if (!($249)) {
+ _free($250);
+ }
+ $251 = HEAP32[$3>>2]|0;
+ $252 = ($251|0)==(0|0);
+ if (!($252)) {
+ _free($251);
+ }
+ $$4 = 0;
+ STACKTOP = sp;return ($$4|0);
+ }
+ } while(0);
+ HEAP32[$2>>2] = $$4352;
+ $$4 = $$9;
+ STACKTOP = sp;return ($$4|0);
+}
+function _stbtt__GetGlyphShapeT2($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0;
+ var stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0);
+ $3 = sp + 48|0;
+ $4 = sp;
+ $5 = ((($3)) + 4|0);
+ dest=$5; stop=dest+44|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
+ HEAP32[$3>>2] = 1;
+ dest=$4; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
+ $6 = (_stbtt__run_charstring($0,$1,$3)|0);
+ $7 = ($6|0)==(0);
+ if (!($7)) {
+ $8 = ((($3)) + 44|0);
+ $9 = HEAP32[$8>>2]|0;
+ $10 = ($9*14)|0;
+ $11 = (_malloc($10)|0);
+ HEAP32[$2>>2] = $11;
+ $12 = ((($4)) + 40|0);
+ HEAP32[$12>>2] = $11;
+ $13 = (_stbtt__run_charstring($0,$1,$4)|0);
+ $14 = ($13|0)==(0);
+ if (!($14)) {
+ $15 = ((($4)) + 44|0);
+ $16 = HEAP32[$15>>2]|0;
+ $17 = HEAP32[$8>>2]|0;
+ $18 = ($16|0)==($17|0);
+ if ($18) {
+ $$0 = $16;
+ STACKTOP = sp;return ($$0|0);
+ } else {
+ ___assert_fail((10043|0),(9337|0),2113,(10093|0));
+ // unreachable;
+ }
+ }
+ }
+ HEAP32[$2>>2] = 0;
+ $$0 = 0;
+ STACKTOP = sp;return ($$0|0);
+}
+function _stbtt__close_shape($0,$1,$2,$3,$4,$5,$6,$7,$8,$9) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ $4 = $4|0;
+ $5 = $5|0;
+ $6 = $6|0;
+ $7 = $7|0;
+ $8 = $8|0;
+ $9 = $9|0;
+ var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $10 = ($3|0)==(0);
+ $11 = ($2|0)!=(0);
+ $12 = (($1) + 1)|0;
+ $13 = (($0) + (($1*14)|0)|0);
+ if (!($10)) {
+ if ($11) {
+ $14 = (($9) + ($7))|0;
+ $15 = $14 >> 1;
+ $16 = (($8) + ($6))|0;
+ $17 = $16 >> 1;
+ _stbtt_setvertex($13,3,$17,$15,$8,$9);
+ $$0 = $12;
+ } else {
+ $$0 = $1;
+ }
+ $18 = (($$0) + 1)|0;
+ $19 = (($0) + (($$0*14)|0)|0);
+ _stbtt_setvertex($19,3,$4,$5,$6,$7);
+ $$1 = $18;
+ return ($$1|0);
+ }
+ if ($11) {
+ _stbtt_setvertex($13,3,$4,$5,$8,$9);
+ $$1 = $12;
+ return ($$1|0);
+ } else {
+ _stbtt_setvertex($13,2,$4,$5,0,0);
+ $$1 = $12;
+ return ($$1|0);
+ }
+ return (0)|0;
+}
+function _stbtt_InitFont_internal($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0902 = 0, $$1 = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$pr = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0;
+ var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0;
+ var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0;
+ var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0;
+ var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 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;
+ var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $exitcond = 0, $or$cond = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0);
+ $$byval_copy2 = sp + 172|0;
+ $$byval_copy1 = sp + 160|0;
+ $2 = sp + 148|0;
+ $3 = sp + 136|0;
+ $4 = sp + 124|0;
+ $5 = sp + 112|0;
+ $6 = sp + 108|0;
+ $7 = sp + 104|0;
+ $8 = sp + 100|0;
+ $9 = sp + 96|0;
+ $10 = sp + 84|0;
+ $11 = sp + 72|0;
+ $12 = sp + 60|0;
+ $13 = sp + 48|0;
+ $14 = sp + 36|0;
+ $15 = sp + 24|0;
+ $16 = sp + 12|0;
+ $17 = sp;
+ $18 = ((($0)) + 4|0);
+ HEAP32[$18>>2] = $1;
+ $19 = ((($0)) + 8|0);
+ HEAP32[$19>>2] = 0;
+ $20 = ((($0)) + 48|0);
+ _stbtt__new_buf($2,0,0);
+ ;HEAP32[$20>>2]=HEAP32[$2>>2]|0;HEAP32[$20+4>>2]=HEAP32[$2+4>>2]|0;HEAP32[$20+8>>2]=HEAP32[$2+8>>2]|0;
+ $21 = (_stbtt__find_table($1,10216)|0);
+ $22 = (_stbtt__find_table($1,10221)|0);
+ $23 = ((($0)) + 16|0);
+ HEAP32[$23>>2] = $22;
+ $24 = (_stbtt__find_table($1,10226)|0);
+ $25 = ((($0)) + 20|0);
+ HEAP32[$25>>2] = $24;
+ $26 = (_stbtt__find_table($1,10231)|0);
+ $27 = ((($0)) + 24|0);
+ HEAP32[$27>>2] = $26;
+ $28 = (_stbtt__find_table($1,10236)|0);
+ $29 = ((($0)) + 28|0);
+ HEAP32[$29>>2] = $28;
+ $30 = (_stbtt__find_table($1,10241)|0);
+ $31 = ((($0)) + 32|0);
+ HEAP32[$31>>2] = $30;
+ $32 = (_stbtt__find_table($1,10246)|0);
+ $33 = ((($0)) + 36|0);
+ HEAP32[$33>>2] = $32;
+ $34 = ($21|0)==(0);
+ if ($34) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ $35 = HEAP32[$25>>2]|0;
+ $36 = ($35|0)==(0);
+ if ($36) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ $37 = HEAP32[$29>>2]|0;
+ $38 = ($37|0)==(0);
+ if ($38) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ $39 = HEAP32[$31>>2]|0;
+ $40 = ($39|0)==(0);
+ if ($40) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ $41 = HEAP32[$27>>2]|0;
+ $42 = ($41|0)==(0);
+ L13: do {
+ if ($42) {
+ HEAP32[$6>>2] = 2;
+ HEAP32[$7>>2] = 0;
+ HEAP32[$8>>2] = 0;
+ HEAP32[$9>>2] = 0;
+ $45 = (_stbtt__find_table($1,10251)|0);
+ $46 = ($45|0)==(0);
+ do {
+ if (!($46)) {
+ $47 = ((($0)) + 96|0);
+ _stbtt__new_buf($10,0,0);
+ ;HEAP32[$47>>2]=HEAP32[$10>>2]|0;HEAP32[$47+4>>2]=HEAP32[$10+4>>2]|0;HEAP32[$47+8>>2]=HEAP32[$10+8>>2]|0;
+ $48 = ((($0)) + 108|0);
+ _stbtt__new_buf($11,0,0);
+ ;HEAP32[$48>>2]=HEAP32[$11>>2]|0;HEAP32[$48+4>>2]=HEAP32[$11+4>>2]|0;HEAP32[$48+8>>2]=HEAP32[$11+8>>2]|0;
+ $49 = (($1) + ($45)|0);
+ _stbtt__new_buf($12,$49,536870912);
+ ;HEAP32[$20>>2]=HEAP32[$12>>2]|0;HEAP32[$20+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$20+8>>2]=HEAP32[$12+8>>2]|0;
+ ;HEAP32[$3>>2]=HEAP32[$12>>2]|0;HEAP32[$3+4>>2]=HEAP32[$12+4>>2]|0;HEAP32[$3+8>>2]=HEAP32[$12+8>>2]|0;
+ _stbtt__buf_skip($3,2);
+ $50 = (_stbtt__buf_get8($3)|0);
+ $51 = $50&255;
+ _stbtt__buf_seek($3,$51);
+ _stbtt__cff_get_index($$byval_copy2,$3);
+ _stbtt__cff_get_index($5,$3);
+ ;HEAP32[$$byval_copy2>>2]=HEAP32[$5>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$5+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$5+8>>2]|0;
+ _stbtt__cff_index_get($4,$$byval_copy2,0);
+ _stbtt__cff_get_index($$byval_copy2,$3);
+ $52 = ((($0)) + 72|0);
+ _stbtt__cff_get_index($13,$3);
+ ;HEAP32[$52>>2]=HEAP32[$13>>2]|0;HEAP32[$52+4>>2]=HEAP32[$13+4>>2]|0;HEAP32[$52+8>>2]=HEAP32[$13+8>>2]|0;
+ _stbtt__dict_get_ints($4,17,1,$7);
+ _stbtt__dict_get_ints($4,262,1,$6);
+ _stbtt__dict_get_ints($4,292,1,$8);
+ _stbtt__dict_get_ints($4,293,1,$9);
+ $53 = ((($0)) + 84|0);
+ ;HEAP32[$$byval_copy1>>2]=HEAP32[$3>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$3+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$3+8>>2]|0;
+ ;HEAP32[$$byval_copy2>>2]=HEAP32[$4>>2]|0;HEAP32[$$byval_copy2+4>>2]=HEAP32[$4+4>>2]|0;HEAP32[$$byval_copy2+8>>2]=HEAP32[$4+8>>2]|0;
+ _stbtt__get_subrs($14,$$byval_copy1,$$byval_copy2);
+ ;HEAP32[$53>>2]=HEAP32[$14>>2]|0;HEAP32[$53+4>>2]=HEAP32[$14+4>>2]|0;HEAP32[$53+8>>2]=HEAP32[$14+8>>2]|0;
+ $54 = HEAP32[$6>>2]|0;
+ $55 = ($54|0)!=(2);
+ $56 = HEAP32[$7>>2]|0;
+ $57 = ($56|0)==(0);
+ $or$cond = $55 | $57;
+ if (!($or$cond)) {
+ $58 = HEAP32[$8>>2]|0;
+ $59 = ($58|0)==(0);
+ if (!($59)) {
+ $60 = HEAP32[$9>>2]|0;
+ $61 = ($60|0)==(0);
+ if ($61) {
+ break;
+ }
+ _stbtt__buf_seek($3,$58);
+ _stbtt__cff_get_index($15,$3);
+ ;HEAP32[$47>>2]=HEAP32[$15>>2]|0;HEAP32[$47+4>>2]=HEAP32[$15+4>>2]|0;HEAP32[$47+8>>2]=HEAP32[$15+8>>2]|0;
+ $62 = HEAP32[$9>>2]|0;
+ $63 = ((($3)) + 8|0);
+ $64 = HEAP32[$63>>2]|0;
+ $65 = (($64) - ($62))|0;
+ _stbtt__buf_range($16,$3,$62,$65);
+ ;HEAP32[$48>>2]=HEAP32[$16>>2]|0;HEAP32[$48+4>>2]=HEAP32[$16+4>>2]|0;HEAP32[$48+8>>2]=HEAP32[$16+8>>2]|0;
+ }
+ $66 = HEAP32[$7>>2]|0;
+ _stbtt__buf_seek($3,$66);
+ $67 = ((($0)) + 60|0);
+ _stbtt__cff_get_index($17,$3);
+ ;HEAP32[$67>>2]=HEAP32[$17>>2]|0;HEAP32[$67+4>>2]=HEAP32[$17+4>>2]|0;HEAP32[$67+8>>2]=HEAP32[$17+8>>2]|0;
+ break L13;
+ }
+ }
+ } while(0);
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ } else {
+ $43 = HEAP32[$23>>2]|0;
+ $44 = ($43|0)==(0);
+ if ($44) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ }
+ } while(0);
+ $68 = (_stbtt__find_table($1,10256)|0);
+ $69 = ($68|0)==(0);
+ if ($69) {
+ $$sink = 65535;
+ } else {
+ $70 = (($1) + ($68)|0);
+ $71 = ((($70)) + 4|0);
+ $72 = (_ttUSHORT($71)|0);
+ $73 = $72&65535;
+ $$sink = $73;
+ }
+ $74 = ((($0)) + 12|0);
+ HEAP32[$74>>2] = $$sink;
+ $75 = (($1) + ($21)|0);
+ $76 = ((($75)) + 2|0);
+ $77 = (_ttUSHORT($76)|0);
+ $78 = $77&65535;
+ $79 = ((($0)) + 40|0);
+ HEAP32[$79>>2] = 0;
+ $80 = ($77<<16>>16)==(0);
+ if ($80) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ $81 = (($21) + 4)|0;
+ $$0902 = 0;
+ while(1) {
+ $82 = $$0902 << 3;
+ $83 = (($81) + ($82))|0;
+ $84 = (($1) + ($83)|0);
+ $85 = (_ttUSHORT($84)|0);
+ L35: do {
+ switch ($85<<16>>16) {
+ case 3: {
+ $86 = ((($84)) + 2|0);
+ $87 = (_ttUSHORT($86)|0);
+ switch ($87<<16>>16) {
+ case 10: case 1: {
+ break;
+ }
+ default: {
+ break L35;
+ }
+ }
+ $88 = ((($84)) + 4|0);
+ $89 = (_ttULONG($88)|0);
+ $90 = (($89) + ($21))|0;
+ HEAP32[$79>>2] = $90;
+ break;
+ }
+ case 0: {
+ $91 = ((($84)) + 4|0);
+ $92 = (_ttULONG($91)|0);
+ $93 = (($92) + ($21))|0;
+ HEAP32[$79>>2] = $93;
+ break;
+ }
+ default: {
+ }
+ }
+ } while(0);
+ $94 = (($$0902) + 1)|0;
+ $exitcond = ($94|0)==($78|0);
+ if ($exitcond) {
+ break;
+ } else {
+ $$0902 = $94;
+ }
+ }
+ $$pr = HEAP32[$79>>2]|0;
+ $95 = ($$pr|0)==(0);
+ if ($95) {
+ $$1 = 0;
+ STACKTOP = sp;return ($$1|0);
+ }
+ $96 = HEAP32[$25>>2]|0;
+ $97 = (($1) + ($96)|0);
+ $98 = ((($97)) + 50|0);
+ $99 = (_ttUSHORT($98)|0);
+ $100 = $99&65535;
+ $101 = ((($0)) + 44|0);
+ HEAP32[$101>>2] = $100;
+ $$1 = 1;
+ STACKTOP = sp;return ($$1|0);
+}
+function _stbtt__find_table($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0312 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0;
+ var sp = 0;
+ sp = STACKTOP;
+ $2 = ((($0)) + 4|0);
+ $3 = (_ttUSHORT($2)|0);
+ $4 = $3&65535;
+ $5 = ($3<<16>>16)==(0);
+ if ($5) {
+ $$2 = 0;
+ return ($$2|0);
+ }
+ $6 = HEAP8[$1>>0]|0;
+ $7 = $6 << 24 >> 24;
+ $8 = ((($1)) + 1|0);
+ $9 = ((($1)) + 2|0);
+ $10 = ((($1)) + 3|0);
+ $$0312 = 0;
+ while(1) {
+ $11 = $$0312 << 4;
+ $12 = $11 | 12;
+ $13 = (($0) + ($12)|0);
+ $14 = HEAP8[$13>>0]|0;
+ $15 = $14&255;
+ $16 = ($15|0)==($7|0);
+ if ($16) {
+ $17 = ((($13)) + 1|0);
+ $18 = HEAP8[$17>>0]|0;
+ $19 = $18&255;
+ $20 = HEAP8[$8>>0]|0;
+ $21 = $20 << 24 >> 24;
+ $22 = ($19|0)==($21|0);
+ if ($22) {
+ $23 = ((($13)) + 2|0);
+ $24 = HEAP8[$23>>0]|0;
+ $25 = $24&255;
+ $26 = HEAP8[$9>>0]|0;
+ $27 = $26 << 24 >> 24;
+ $28 = ($25|0)==($27|0);
+ if ($28) {
+ $29 = ((($13)) + 3|0);
+ $30 = HEAP8[$29>>0]|0;
+ $31 = $30&255;
+ $32 = HEAP8[$10>>0]|0;
+ $33 = $32 << 24 >> 24;
+ $34 = ($31|0)==($33|0);
+ if ($34) {
+ break;
+ }
+ }
+ }
+ }
+ $37 = (($$0312) + 1)|0;
+ $38 = ($37|0)<($4|0);
+ if ($38) {
+ $$0312 = $37;
+ } else {
+ $$2 = 0;
+ label = 9;
+ break;
+ }
+ }
+ if ((label|0) == 9) {
+ return ($$2|0);
+ }
+ $35 = ((($13)) + 8|0);
+ $36 = (_ttULONG($35)|0);
+ $$2 = $36;
+ return ($$2|0);
+}
function _DrawText($0,$1,$2,$3,$4) {
$0 = $0|0;
$1 = $1|0;
@@ -14063,8 +22643,8 @@ function _FormatText($0,$varargs) {
STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
$1 = sp;
HEAP32[$1>>2] = $varargs;
- (_vsprintf(18883,$0,$1)|0);
- STACKTOP = sp;return (18883|0);
+ (_vsprintf(20099,$0,$1)|0);
+ STACKTOP = sp;return (20099|0);
}
function _emscripten_GetProcAddress($0) {
$0 = $0|0;
@@ -14112,7 +22692,7 @@ function _emscripten_GetProcAddress($0) {
$10 = HEAP32[$2>>2]|0;
(_strcpy($9,$10)|0);
$11 = HEAP32[$3>>2]|0;
- $12 = (_strstr($11,9093)|0);
+ $12 = (_strstr($11,10261)|0);
HEAP32[$4>>2] = $12;
$13 = HEAP32[$4>>2]|0;
$14 = ($13|0)!=(0|0);
@@ -14121,7 +22701,7 @@ function _emscripten_GetProcAddress($0) {
HEAP8[$15>>0] = 0;
}
$16 = HEAP32[$3>>2]|0;
- $17 = (_strstr($16,9097)|0);
+ $17 = (_strstr($16,10265)|0);
HEAP32[$4>>2] = $17;
$18 = HEAP32[$4>>2]|0;
$19 = ($18|0)!=(0|0);
@@ -14130,7 +22710,7 @@ function _emscripten_GetProcAddress($0) {
HEAP8[$20>>0] = 0;
}
$21 = HEAP32[$3>>2]|0;
- $22 = (_strstr($21,9101)|0);
+ $22 = (_strstr($21,10269)|0);
HEAP32[$4>>2] = $22;
$23 = HEAP32[$4>>2]|0;
$24 = ($23|0)!=(0|0);
@@ -14139,7 +22719,7 @@ function _emscripten_GetProcAddress($0) {
HEAP8[$25>>0] = 0;
}
$26 = HEAP32[$3>>2]|0;
- $27 = (_strstr($26,9105)|0);
+ $27 = (_strstr($26,10273)|0);
HEAP32[$4>>2] = $27;
$28 = HEAP32[$4>>2]|0;
$29 = ($28|0)!=(0|0);
@@ -14148,1210 +22728,1210 @@ function _emscripten_GetProcAddress($0) {
HEAP8[$30>>0] = 0;
}
$31 = HEAP32[$3>>2]|0;
- $32 = (_strcmp($31,9111)|0);
+ $32 = (_strcmp($31,10279)|0);
$33 = ($32|0)!=(0);
do {
if ($33) {
$34 = HEAP32[$3>>2]|0;
- $35 = (_strcmp($34,9149)|0);
+ $35 = (_strcmp($34,10317)|0);
$36 = ($35|0)!=(0);
if (!($36)) {
- HEAP32[$3>>2] = 9168;
+ HEAP32[$3>>2] = 10336;
break;
}
$37 = HEAP32[$3>>2]|0;
- $38 = (_strcmp($37,9181)|0);
+ $38 = (_strcmp($37,10349)|0);
$39 = ($38|0)!=(0);
if (!($39)) {
- HEAP32[$3>>2] = 9202;
+ HEAP32[$3>>2] = 10370;
break;
}
$40 = HEAP32[$3>>2]|0;
- $41 = (_strcmp($40,9217)|0);
+ $41 = (_strcmp($40,10385)|0);
$42 = ($41|0)!=(0);
if (!($42)) {
- HEAP32[$3>>2] = 9232;
+ HEAP32[$3>>2] = 10400;
break;
}
$43 = HEAP32[$3>>2]|0;
- $44 = (_strcmp($43,9247)|0);
+ $44 = (_strcmp($43,10415)|0);
$45 = ($44|0)!=(0);
if (!($45)) {
- HEAP32[$3>>2] = 9262;
+ HEAP32[$3>>2] = 10430;
}
} else {
- HEAP32[$3>>2] = 9133;
+ HEAP32[$3>>2] = 10301;
}
} while(0);
$46 = HEAP32[$3>>2]|0;
- $47 = (_strcmp($46,9277)|0);
+ $47 = (_strcmp($46,10445)|0);
$48 = ($47|0)!=(0);
do {
if ($48) {
$49 = HEAP32[$3>>2]|0;
- $50 = (_strcmp($49,9291)|0);
+ $50 = (_strcmp($49,10459)|0);
$51 = ($50|0)!=(0);
if (!($51)) {
HEAP32[$1>>2] = 2;
break;
}
$52 = HEAP32[$3>>2]|0;
- $53 = (_strcmp($52,9303)|0);
+ $53 = (_strcmp($52,10471)|0);
$54 = ($53|0)!=(0);
if (!($54)) {
HEAP32[$1>>2] = 6;
break;
}
$55 = HEAP32[$3>>2]|0;
- $56 = (_strcmp($55,9317)|0);
+ $56 = (_strcmp($55,10485)|0);
$57 = ($56|0)!=(0);
if (!($57)) {
HEAP32[$1>>2] = 7;
break;
}
$58 = HEAP32[$3>>2]|0;
- $59 = (_strcmp($58,9329)|0);
+ $59 = (_strcmp($58,10497)|0);
$60 = ($59|0)!=(0);
if (!($60)) {
HEAP32[$1>>2] = 8;
break;
}
$61 = HEAP32[$3>>2]|0;
- $62 = (_strcmp($61,9343)|0);
+ $62 = (_strcmp($61,10511)|0);
$63 = ($62|0)!=(0);
if (!($63)) {
HEAP32[$1>>2] = 9;
break;
}
$64 = HEAP32[$3>>2]|0;
- $65 = (_strcmp($64,9357)|0);
+ $65 = (_strcmp($64,10525)|0);
$66 = ($65|0)!=(0);
if (!($66)) {
HEAP32[$1>>2] = 10;
break;
}
$67 = HEAP32[$3>>2]|0;
- $68 = (_strcmp($67,9374)|0);
+ $68 = (_strcmp($67,10542)|0);
$69 = ($68|0)!=(0);
if (!($69)) {
HEAP32[$1>>2] = 1;
break;
}
$70 = HEAP32[$3>>2]|0;
- $71 = (_strcmp($70,9397)|0);
+ $71 = (_strcmp($70,10565)|0);
$72 = ($71|0)!=(0);
if (!($72)) {
HEAP32[$1>>2] = 1;
break;
}
$73 = HEAP32[$3>>2]|0;
- $74 = (_strcmp($73,9423)|0);
+ $74 = (_strcmp($73,10591)|0);
$75 = ($74|0)!=(0);
if (!($75)) {
HEAP32[$1>>2] = 2;
break;
}
$76 = HEAP32[$3>>2]|0;
- $77 = (_strcmp($76,9436)|0);
+ $77 = (_strcmp($76,10604)|0);
$78 = ($77|0)!=(0);
if (!($78)) {
HEAP32[$1>>2] = 3;
break;
}
$79 = HEAP32[$3>>2]|0;
- $80 = (_strcmp($79,9452)|0);
+ $80 = (_strcmp($79,10620)|0);
$81 = ($80|0)!=(0);
if (!($81)) {
HEAP32[$1>>2] = 1;
break;
}
$82 = HEAP32[$3>>2]|0;
- $83 = (_strcmp($82,9465)|0);
+ $83 = (_strcmp($82,10633)|0);
$84 = ($83|0)!=(0);
if (!($84)) {
HEAP32[$1>>2] = 11;
break;
}
$85 = HEAP32[$3>>2]|0;
- $86 = (_strcmp($85,9479)|0);
+ $86 = (_strcmp($85,10647)|0);
$87 = ($86|0)!=(0);
if (!($87)) {
HEAP32[$1>>2] = 2;
break;
}
$88 = HEAP32[$3>>2]|0;
- $89 = (_strcmp($88,9499)|0);
+ $89 = (_strcmp($88,10667)|0);
$90 = ($89|0)!=(0);
if (!($90)) {
HEAP32[$1>>2] = 3;
break;
}
$91 = HEAP32[$3>>2]|0;
- $92 = (_strcmp($91,9519)|0);
+ $92 = (_strcmp($91,10687)|0);
$93 = ($92|0)!=(0);
if (!($93)) {
HEAP32[$1>>2] = 4;
break;
}
$94 = HEAP32[$3>>2]|0;
- $95 = (_strcmp($94,9536)|0);
+ $95 = (_strcmp($94,10704)|0);
$96 = ($95|0)!=(0);
if (!($96)) {
HEAP32[$1>>2] = 5;
break;
}
$97 = HEAP32[$3>>2]|0;
- $98 = (_strcmp($97,9553)|0);
+ $98 = (_strcmp($97,10721)|0);
$99 = ($98|0)!=(0);
if (!($99)) {
HEAP32[$1>>2] = 3;
break;
}
$100 = HEAP32[$3>>2]|0;
- $101 = (_strcmp($100,9565)|0);
+ $101 = (_strcmp($100,10733)|0);
$102 = ($101|0)!=(0);
if (!($102)) {
HEAP32[$1>>2] = 12;
break;
}
$103 = HEAP32[$3>>2]|0;
- $104 = (_strcmp($103,9578)|0);
+ $104 = (_strcmp($103,10746)|0);
$105 = ($104|0)!=(0);
if (!($105)) {
HEAP32[$1>>2] = 13;
break;
}
$106 = HEAP32[$3>>2]|0;
- $107 = (_strcmp($106,9594)|0);
+ $107 = (_strcmp($106,10762)|0);
$108 = ($107|0)!=(0);
if (!($108)) {
HEAP32[$1>>2] = 6;
break;
}
$109 = HEAP32[$3>>2]|0;
- $110 = (_strcmp($109,9617)|0);
+ $110 = (_strcmp($109,10785)|0);
$111 = ($110|0)!=(0);
if (!($111)) {
HEAP32[$1>>2] = 2;
break;
}
$112 = HEAP32[$3>>2]|0;
- $113 = (_strcmp($112,9630)|0);
+ $113 = (_strcmp($112,10798)|0);
$114 = ($113|0)!=(0);
if (!($114)) {
HEAP32[$1>>2] = 3;
break;
}
$115 = HEAP32[$3>>2]|0;
- $116 = (_strcmp($115,9646)|0);
+ $116 = (_strcmp($115,10814)|0);
$117 = ($116|0)!=(0);
if (!($117)) {
HEAP32[$1>>2] = 4;
break;
}
$118 = HEAP32[$3>>2]|0;
- $119 = (_strcmp($118,9657)|0);
+ $119 = (_strcmp($118,10825)|0);
$120 = ($119|0)!=(0);
if (!($120)) {
HEAP32[$1>>2] = 14;
break;
}
$121 = HEAP32[$3>>2]|0;
- $122 = (_strcmp($121,9676)|0);
+ $122 = (_strcmp($121,10844)|0);
$123 = ($122|0)!=(0);
if (!($123)) {
HEAP32[$1>>2] = 15;
break;
}
$124 = HEAP32[$3>>2]|0;
- $125 = (_strcmp($124,9698)|0);
+ $125 = (_strcmp($124,10866)|0);
$126 = ($125|0)!=(0);
if (!($126)) {
HEAP32[$1>>2] = 16;
break;
}
$127 = HEAP32[$3>>2]|0;
- $128 = (_strcmp($127,9717)|0);
+ $128 = (_strcmp($127,10885)|0);
$129 = ($128|0)!=(0);
if (!($129)) {
HEAP32[$1>>2] = 7;
break;
}
$130 = HEAP32[$3>>2]|0;
- $131 = (_strcmp($130,9746)|0);
+ $131 = (_strcmp($130,10914)|0);
$132 = ($131|0)!=(0);
if (!($132)) {
HEAP32[$1>>2] = 5;
break;
}
$133 = HEAP32[$3>>2]|0;
- $134 = (_strcmp($133,9763)|0);
+ $134 = (_strcmp($133,10931)|0);
$135 = ($134|0)!=(0);
if (!($135)) {
HEAP32[$1>>2] = 8;
break;
}
$136 = HEAP32[$3>>2]|0;
- $137 = (_strcmp($136,9778)|0);
+ $137 = (_strcmp($136,10946)|0);
$138 = ($137|0)!=(0);
if (!($138)) {
HEAP32[$1>>2] = 9;
break;
}
$139 = HEAP32[$3>>2]|0;
- $140 = (_strcmp($139,9793)|0);
+ $140 = (_strcmp($139,10961)|0);
$141 = ($140|0)!=(0);
if (!($141)) {
HEAP32[$1>>2] = 1;
break;
}
$142 = HEAP32[$3>>2]|0;
- $143 = (_strcmp($142,9814)|0);
+ $143 = (_strcmp($142,10982)|0);
$144 = ($143|0)!=(0);
if (!($144)) {
HEAP32[$1>>2] = 10;
break;
}
$145 = HEAP32[$3>>2]|0;
- $146 = (_strcmp($145,9834)|0);
+ $146 = (_strcmp($145,11002)|0);
$147 = ($146|0)!=(0);
if (!($147)) {
HEAP32[$1>>2] = 11;
break;
}
$148 = HEAP32[$3>>2]|0;
- $149 = (_strcmp($148,9854)|0);
+ $149 = (_strcmp($148,11022)|0);
$150 = ($149|0)!=(0);
if (!($150)) {
HEAP32[$1>>2] = 12;
break;
}
$151 = HEAP32[$3>>2]|0;
- $152 = (_strcmp($151,9880)|0);
+ $152 = (_strcmp($151,11048)|0);
$153 = ($152|0)!=(0);
if (!($153)) {
HEAP32[$1>>2] = 2;
break;
}
$154 = HEAP32[$3>>2]|0;
- $155 = (_strcmp($154,9899)|0);
+ $155 = (_strcmp($154,11067)|0);
$156 = ($155|0)!=(0);
if (!($156)) {
HEAP32[$1>>2] = 1;
break;
}
$157 = HEAP32[$3>>2]|0;
- $158 = (_strcmp($157,9911)|0);
+ $158 = (_strcmp($157,11079)|0);
$159 = ($158|0)!=(0);
if (!($159)) {
HEAP32[$1>>2] = 3;
break;
}
$160 = HEAP32[$3>>2]|0;
- $161 = (_strcmp($160,9923)|0);
+ $161 = (_strcmp($160,11091)|0);
$162 = ($161|0)!=(0);
if (!($162)) {
HEAP32[$1>>2] = 1;
break;
}
$163 = HEAP32[$3>>2]|0;
- $164 = (_strcmp($163,9935)|0);
+ $164 = (_strcmp($163,11103)|0);
$165 = ($164|0)!=(0);
if (!($165)) {
HEAP32[$1>>2] = 1;
break;
}
$166 = HEAP32[$3>>2]|0;
- $167 = (_strcmp($166,9947)|0);
+ $167 = (_strcmp($166,11115)|0);
$168 = ($167|0)!=(0);
if (!($168)) {
HEAP32[$1>>2] = 17;
break;
}
$169 = HEAP32[$3>>2]|0;
- $170 = (_strcmp($169,9959)|0);
+ $170 = (_strcmp($169,11127)|0);
$171 = ($170|0)!=(0);
if (!($171)) {
HEAP32[$1>>2] = 13;
break;
}
$172 = HEAP32[$3>>2]|0;
- $173 = (_strcmp($172,9971)|0);
+ $173 = (_strcmp($172,11139)|0);
$174 = ($173|0)!=(0);
if (!($174)) {
HEAP32[$1>>2] = 4;
break;
}
$175 = HEAP32[$3>>2]|0;
- $176 = (_strcmp($175,9983)|0);
+ $176 = (_strcmp($175,11151)|0);
$177 = ($176|0)!=(0);
if (!($177)) {
HEAP32[$1>>2] = 2;
break;
}
$178 = HEAP32[$3>>2]|0;
- $179 = (_strcmp($178,9995)|0);
+ $179 = (_strcmp($178,11163)|0);
$180 = ($179|0)!=(0);
if (!($180)) {
HEAP32[$1>>2] = 14;
break;
}
$181 = HEAP32[$3>>2]|0;
- $182 = (_strcmp($181,10008)|0);
+ $182 = (_strcmp($181,11176)|0);
$183 = ($182|0)!=(0);
if (!($183)) {
HEAP32[$1>>2] = 15;
break;
}
$184 = HEAP32[$3>>2]|0;
- $185 = (_strcmp($184,10021)|0);
+ $185 = (_strcmp($184,11189)|0);
$186 = ($185|0)!=(0);
if (!($186)) {
HEAP32[$1>>2] = 16;
break;
}
$187 = HEAP32[$3>>2]|0;
- $188 = (_strcmp($187,10034)|0);
+ $188 = (_strcmp($187,11202)|0);
$189 = ($188|0)!=(0);
if (!($189)) {
HEAP32[$1>>2] = 17;
break;
}
$190 = HEAP32[$3>>2]|0;
- $191 = (_strcmp($190,10047)|0);
+ $191 = (_strcmp($190,11215)|0);
$192 = ($191|0)!=(0);
if (!($192)) {
HEAP32[$1>>2] = 18;
break;
}
$193 = HEAP32[$3>>2]|0;
- $194 = (_strcmp($193,10060)|0);
+ $194 = (_strcmp($193,11228)|0);
$195 = ($194|0)!=(0);
if (!($195)) {
HEAP32[$1>>2] = 19;
break;
}
$196 = HEAP32[$3>>2]|0;
- $197 = (_strcmp($196,10073)|0);
+ $197 = (_strcmp($196,11241)|0);
$198 = ($197|0)!=(0);
if (!($198)) {
HEAP32[$1>>2] = 20;
break;
}
$199 = HEAP32[$3>>2]|0;
- $200 = (_strcmp($199,10086)|0);
+ $200 = (_strcmp($199,11254)|0);
$201 = ($200|0)!=(0);
if (!($201)) {
HEAP32[$1>>2] = 21;
break;
}
$202 = HEAP32[$3>>2]|0;
- $203 = (_strcmp($202,10099)|0);
+ $203 = (_strcmp($202,11267)|0);
$204 = ($203|0)!=(0);
if (!($204)) {
HEAP32[$1>>2] = 5;
break;
}
$205 = HEAP32[$3>>2]|0;
- $206 = (_strcmp($205,10118)|0);
+ $206 = (_strcmp($205,11286)|0);
$207 = ($206|0)!=(0);
if (!($207)) {
HEAP32[$1>>2] = 6;
break;
}
$208 = HEAP32[$3>>2]|0;
- $209 = (_strcmp($208,10137)|0);
+ $209 = (_strcmp($208,11305)|0);
$210 = ($209|0)!=(0);
if (!($210)) {
HEAP32[$1>>2] = 7;
break;
}
$211 = HEAP32[$3>>2]|0;
- $212 = (_strcmp($211,10156)|0);
+ $212 = (_strcmp($211,11324)|0);
$213 = ($212|0)!=(0);
if (!($213)) {
HEAP32[$1>>2] = 18;
break;
}
$214 = HEAP32[$3>>2]|0;
- $215 = (_strcmp($214,10169)|0);
+ $215 = (_strcmp($214,11337)|0);
$216 = ($215|0)!=(0);
if (!($216)) {
HEAP32[$1>>2] = 19;
break;
}
$217 = HEAP32[$3>>2]|0;
- $218 = (_strcmp($217,10187)|0);
+ $218 = (_strcmp($217,11355)|0);
$219 = ($218|0)!=(0);
if (!($219)) {
HEAP32[$1>>2] = 20;
break;
}
$220 = HEAP32[$3>>2]|0;
- $221 = (_strcmp($220,10205)|0);
+ $221 = (_strcmp($220,11373)|0);
$222 = ($221|0)!=(0);
if (!($222)) {
HEAP32[$1>>2] = 21;
break;
}
$223 = HEAP32[$3>>2]|0;
- $224 = (_strcmp($223,10223)|0);
+ $224 = (_strcmp($223,11391)|0);
$225 = ($224|0)!=(0);
if (!($225)) {
HEAP32[$1>>2] = 22;
break;
}
$226 = HEAP32[$3>>2]|0;
- $227 = (_strcmp($226,10241)|0);
+ $227 = (_strcmp($226,11409)|0);
$228 = ($227|0)!=(0);
if (!($228)) {
HEAP32[$1>>2] = 2;
break;
}
$229 = HEAP32[$3>>2]|0;
- $230 = (_strcmp($229,10261)|0);
+ $230 = (_strcmp($229,11429)|0);
$231 = ($230|0)!=(0);
if (!($231)) {
HEAP32[$1>>2] = 3;
break;
}
$232 = HEAP32[$3>>2]|0;
- $233 = (_strcmp($232,9202)|0);
+ $233 = (_strcmp($232,10370)|0);
$234 = ($233|0)!=(0);
if (!($234)) {
HEAP32[$1>>2] = 6;
break;
}
$235 = HEAP32[$3>>2]|0;
- $236 = (_strcmp($235,10279)|0);
+ $236 = (_strcmp($235,11447)|0);
$237 = ($236|0)!=(0);
if (!($237)) {
HEAP32[$1>>2] = 1;
break;
}
$238 = HEAP32[$3>>2]|0;
- $239 = (_strcmp($238,10294)|0);
+ $239 = (_strcmp($238,11462)|0);
$240 = ($239|0)!=(0);
if (!($240)) {
HEAP32[$1>>2] = 8;
break;
}
$241 = HEAP32[$3>>2]|0;
- $242 = (_strcmp($241,10315)|0);
+ $242 = (_strcmp($241,11483)|0);
$243 = ($242|0)!=(0);
if (!($243)) {
HEAP32[$1>>2] = 9;
break;
}
$244 = HEAP32[$3>>2]|0;
- $245 = (_strcmp($244,10330)|0);
+ $245 = (_strcmp($244,11498)|0);
$246 = ($245|0)!=(0);
if (!($246)) {
HEAP32[$1>>2] = 10;
break;
}
$247 = HEAP32[$3>>2]|0;
- $248 = (_strcmp($247,10348)|0);
+ $248 = (_strcmp($247,11516)|0);
$249 = ($248|0)!=(0);
if (!($249)) {
HEAP32[$1>>2] = 2;
break;
}
$250 = HEAP32[$3>>2]|0;
- $251 = (_strcmp($250,10364)|0);
+ $251 = (_strcmp($250,11532)|0);
$252 = ($251|0)!=(0);
if (!($252)) {
HEAP32[$1>>2] = 11;
break;
}
$253 = HEAP32[$3>>2]|0;
- $254 = (_strcmp($253,10383)|0);
+ $254 = (_strcmp($253,11551)|0);
$255 = ($254|0)!=(0);
if (!($255)) {
HEAP32[$1>>2] = 22;
break;
}
$256 = HEAP32[$3>>2]|0;
- $257 = (_strcmp($256,10397)|0);
+ $257 = (_strcmp($256,11565)|0);
$258 = ($257|0)!=(0);
if (!($258)) {
HEAP32[$1>>2] = 23;
break;
}
$259 = HEAP32[$3>>2]|0;
- $260 = (_strcmp($259,10412)|0);
+ $260 = (_strcmp($259,11580)|0);
$261 = ($260|0)!=(0);
if (!($261)) {
HEAP32[$1>>2] = 7;
break;
}
$262 = HEAP32[$3>>2]|0;
- $263 = (_strcmp($262,9133)|0);
+ $263 = (_strcmp($262,10301)|0);
$264 = ($263|0)!=(0);
if (!($264)) {
HEAP32[$1>>2] = 1;
break;
}
$265 = HEAP32[$3>>2]|0;
- $266 = (_strcmp($265,10423)|0);
+ $266 = (_strcmp($265,11591)|0);
$267 = ($266|0)!=(0);
if (!($267)) {
HEAP32[$1>>2] = 3;
break;
}
$268 = HEAP32[$3>>2]|0;
- $269 = (_strcmp($268,9232)|0);
+ $269 = (_strcmp($268,10400)|0);
$270 = ($269|0)!=(0);
if (!($270)) {
HEAP32[$1>>2] = 23;
break;
}
$271 = HEAP32[$3>>2]|0;
- $272 = (_strcmp($271,9262)|0);
+ $272 = (_strcmp($271,10430)|0);
$273 = ($272|0)!=(0);
if (!($273)) {
HEAP32[$1>>2] = 24;
break;
}
$274 = HEAP32[$3>>2]|0;
- $275 = (_strcmp($274,10439)|0);
+ $275 = (_strcmp($274,11607)|0);
$276 = ($275|0)!=(0);
if (!($276)) {
HEAP32[$1>>2] = 12;
break;
}
$277 = HEAP32[$3>>2]|0;
- $278 = (_strcmp($277,10466)|0);
+ $278 = (_strcmp($277,11634)|0);
$279 = ($278|0)!=(0);
if (!($279)) {
HEAP32[$1>>2] = 4;
break;
}
$280 = HEAP32[$3>>2]|0;
- $281 = (_strcmp($280,10480)|0);
+ $281 = (_strcmp($280,11648)|0);
$282 = ($281|0)!=(0);
if (!($282)) {
HEAP32[$1>>2] = 13;
break;
}
$283 = HEAP32[$3>>2]|0;
- $284 = (_strcmp($283,9168)|0);
+ $284 = (_strcmp($283,10336)|0);
$285 = ($284|0)!=(0);
if (!($285)) {
HEAP32[$1>>2] = 5;
break;
}
$286 = HEAP32[$3>>2]|0;
- $287 = (_strcmp($286,10500)|0);
+ $287 = (_strcmp($286,11668)|0);
$288 = ($287|0)!=(0);
if (!($288)) {
HEAP32[$1>>2] = 6;
break;
}
$289 = HEAP32[$3>>2]|0;
- $290 = (_strcmp($289,10518)|0);
+ $290 = (_strcmp($289,11686)|0);
$291 = ($290|0)!=(0);
if (!($291)) {
HEAP32[$1>>2] = 8;
break;
}
$292 = HEAP32[$3>>2]|0;
- $293 = (_strcmp($292,10530)|0);
+ $293 = (_strcmp($292,11698)|0);
$294 = ($293|0)!=(0);
if (!($294)) {
HEAP32[$1>>2] = 24;
break;
}
$295 = HEAP32[$3>>2]|0;
- $296 = (_strcmp($295,10551)|0);
+ $296 = (_strcmp($295,11719)|0);
$297 = ($296|0)!=(0);
if (!($297)) {
HEAP32[$1>>2] = 25;
break;
}
$298 = HEAP32[$3>>2]|0;
- $299 = (_strcmp($298,10569)|0);
+ $299 = (_strcmp($298,11737)|0);
$300 = ($299|0)!=(0);
if (!($300)) {
HEAP32[$1>>2] = 26;
break;
}
$301 = HEAP32[$3>>2]|0;
- $302 = (_strcmp($301,10587)|0);
+ $302 = (_strcmp($301,11755)|0);
$303 = ($302|0)!=(0);
if (!($303)) {
HEAP32[$1>>2] = 27;
break;
}
$304 = HEAP32[$3>>2]|0;
- $305 = (_strcmp($304,10608)|0);
+ $305 = (_strcmp($304,11776)|0);
$306 = ($305|0)!=(0);
if (!($306)) {
HEAP32[$1>>2] = 14;
break;
}
$307 = HEAP32[$3>>2]|0;
- $308 = (_strcmp($307,10634)|0);
+ $308 = (_strcmp($307,11802)|0);
$309 = ($308|0)!=(0);
if (!($309)) {
HEAP32[$1>>2] = 3;
break;
}
$310 = HEAP32[$3>>2]|0;
- $311 = (_strcmp($310,10657)|0);
+ $311 = (_strcmp($310,11825)|0);
$312 = ($311|0)!=(0);
if (!($312)) {
HEAP32[$1>>2] = 15;
break;
}
$313 = HEAP32[$3>>2]|0;
- $314 = (_strcmp($313,10695)|0);
+ $314 = (_strcmp($313,11863)|0);
$315 = ($314|0)!=(0);
if (!($315)) {
HEAP32[$1>>2] = 9;
break;
}
$316 = HEAP32[$3>>2]|0;
- $317 = (_strcmp($316,10711)|0);
+ $317 = (_strcmp($316,11879)|0);
$318 = ($317|0)!=(0);
if (!($318)) {
HEAP32[$1>>2] = 7;
break;
}
$319 = HEAP32[$3>>2]|0;
- $320 = (_strcmp($319,10726)|0);
+ $320 = (_strcmp($319,11894)|0);
$321 = ($320|0)!=(0);
if (!($321)) {
HEAP32[$1>>2] = 25;
break;
}
$322 = HEAP32[$3>>2]|0;
- $323 = (_strcmp($322,10749)|0);
+ $323 = (_strcmp($322,11917)|0);
$324 = ($323|0)!=(0);
if (!($324)) {
HEAP32[$1>>2] = 16;
break;
}
$325 = HEAP32[$3>>2]|0;
- $326 = (_strcmp($325,10762)|0);
+ $326 = (_strcmp($325,11930)|0);
$327 = ($326|0)!=(0);
if (!($327)) {
HEAP32[$1>>2] = 28;
break;
}
$328 = HEAP32[$3>>2]|0;
- $329 = (_strcmp($328,10776)|0);
+ $329 = (_strcmp($328,11944)|0);
$330 = ($329|0)!=(0);
if (!($330)) {
HEAP32[$1>>2] = 29;
break;
}
$331 = HEAP32[$3>>2]|0;
- $332 = (_strcmp($331,10790)|0);
+ $332 = (_strcmp($331,11958)|0);
$333 = ($332|0)!=(0);
if (!($333)) {
HEAP32[$1>>2] = 1;
break;
}
$334 = HEAP32[$3>>2]|0;
- $335 = (_strcmp($334,10810)|0);
+ $335 = (_strcmp($334,11978)|0);
$336 = ($335|0)!=(0);
if (!($336)) {
HEAP32[$1>>2] = 8;
break;
}
$337 = HEAP32[$3>>2]|0;
- $338 = (_strcmp($337,10830)|0);
+ $338 = (_strcmp($337,11998)|0);
$339 = ($338|0)!=(0);
if (!($339)) {
HEAP32[$1>>2] = 17;
break;
}
$340 = HEAP32[$3>>2]|0;
- $341 = (_strcmp($340,10846)|0);
+ $341 = (_strcmp($340,12014)|0);
$342 = ($341|0)!=(0);
if (!($342)) {
HEAP32[$1>>2] = 18;
break;
}
$343 = HEAP32[$3>>2]|0;
- $344 = (_strcmp($343,10864)|0);
+ $344 = (_strcmp($343,12032)|0);
$345 = ($344|0)!=(0);
if (!($345)) {
HEAP32[$1>>2] = 26;
break;
}
$346 = HEAP32[$3>>2]|0;
- $347 = (_strcmp($346,10880)|0);
+ $347 = (_strcmp($346,12048)|0);
$348 = ($347|0)!=(0);
if (!($348)) {
HEAP32[$1>>2] = 19;
break;
}
$349 = HEAP32[$3>>2]|0;
- $350 = (_strcmp($349,10895)|0);
+ $350 = (_strcmp($349,12063)|0);
$351 = ($350|0)!=(0);
if (!($351)) {
HEAP32[$1>>2] = 9;
break;
}
$352 = HEAP32[$3>>2]|0;
- $353 = (_strcmp($352,10917)|0);
+ $353 = (_strcmp($352,12085)|0);
$354 = ($353|0)!=(0);
if (!($354)) {
HEAP32[$1>>2] = 30;
break;
}
$355 = HEAP32[$3>>2]|0;
- $356 = (_strcmp($355,10935)|0);
+ $356 = (_strcmp($355,12103)|0);
$357 = ($356|0)!=(0);
if (!($357)) {
HEAP32[$1>>2] = 31;
break;
}
$358 = HEAP32[$3>>2]|0;
- $359 = (_strcmp($358,10956)|0);
+ $359 = (_strcmp($358,12124)|0);
$360 = ($359|0)!=(0);
if (!($360)) {
HEAP32[$1>>2] = 10;
break;
}
$361 = HEAP32[$3>>2]|0;
- $362 = (_strcmp($361,10974)|0);
+ $362 = (_strcmp($361,12142)|0);
$363 = ($362|0)!=(0);
if (!($363)) {
HEAP32[$1>>2] = 11;
break;
}
$364 = HEAP32[$3>>2]|0;
- $365 = (_strcmp($364,10987)|0);
+ $365 = (_strcmp($364,12155)|0);
$366 = ($365|0)!=(0);
if (!($366)) {
- HEAP32[$1>>2] = 1;
+ HEAP32[$1>>2] = 2;
break;
}
$367 = HEAP32[$3>>2]|0;
- $368 = (_strcmp($367,11002)|0);
+ $368 = (_strcmp($367,12170)|0);
$369 = ($368|0)!=(0);
if (!($369)) {
HEAP32[$1>>2] = 12;
break;
}
$370 = HEAP32[$3>>2]|0;
- $371 = (_strcmp($370,11016)|0);
+ $371 = (_strcmp($370,12184)|0);
$372 = ($371|0)!=(0);
if (!($372)) {
HEAP32[$1>>2] = 1;
break;
}
$373 = HEAP32[$3>>2]|0;
- $374 = (_strcmp($373,11026)|0);
+ $374 = (_strcmp($373,12194)|0);
$375 = ($374|0)!=(0);
if (!($375)) {
HEAP32[$1>>2] = 1;
break;
}
$376 = HEAP32[$3>>2]|0;
- $377 = (_strcmp($376,11036)|0);
+ $377 = (_strcmp($376,12204)|0);
$378 = ($377|0)!=(0);
if (!($378)) {
HEAP32[$1>>2] = 2;
break;
}
$379 = HEAP32[$3>>2]|0;
- $380 = (_strcmp($379,11058)|0);
+ $380 = (_strcmp($379,12226)|0);
$381 = ($380|0)!=(0);
if (!($381)) {
HEAP32[$1>>2] = 13;
break;
}
$382 = HEAP32[$3>>2]|0;
- $383 = (_strcmp($382,11084)|0);
+ $383 = (_strcmp($382,12252)|0);
$384 = ($383|0)!=(0);
if (!($384)) {
HEAP32[$1>>2] = 14;
break;
}
$385 = HEAP32[$3>>2]|0;
- $386 = (_strcmp($385,11111)|0);
+ $386 = (_strcmp($385,12279)|0);
$387 = ($386|0)!=(0);
if (!($387)) {
HEAP32[$1>>2] = 27;
break;
}
$388 = HEAP32[$3>>2]|0;
- $389 = (_strcmp($388,11124)|0);
+ $389 = (_strcmp($388,12292)|0);
$390 = ($389|0)!=(0);
if (!($390)) {
HEAP32[$1>>2] = 20;
break;
}
$391 = HEAP32[$3>>2]|0;
- $392 = (_strcmp($391,11139)|0);
+ $392 = (_strcmp($391,12307)|0);
$393 = ($392|0)!=(0);
if (!($393)) {
HEAP32[$1>>2] = 4;
break;
}
$394 = HEAP32[$3>>2]|0;
- $395 = (_strcmp($394,11154)|0);
+ $395 = (_strcmp($394,12322)|0);
$396 = ($395|0)!=(0);
if (!($396)) {
- HEAP32[$1>>2] = 2;
+ HEAP32[$1>>2] = 3;
break;
}
$397 = HEAP32[$3>>2]|0;
- $398 = (_strcmp($397,11178)|0);
+ $398 = (_strcmp($397,12346)|0);
$399 = ($398|0)!=(0);
if (!($399)) {
HEAP32[$1>>2] = 2;
break;
}
$400 = HEAP32[$3>>2]|0;
- $401 = (_strcmp($400,11189)|0);
+ $401 = (_strcmp($400,12357)|0);
$402 = ($401|0)!=(0);
if (!($402)) {
HEAP32[$1>>2] = 32;
break;
}
$403 = HEAP32[$3>>2]|0;
- $404 = (_strcmp($403,11211)|0);
+ $404 = (_strcmp($403,12379)|0);
$405 = ($404|0)!=(0);
if (!($405)) {
HEAP32[$1>>2] = 21;
break;
}
$406 = HEAP32[$3>>2]|0;
- $407 = (_strcmp($406,11233)|0);
+ $407 = (_strcmp($406,12401)|0);
$408 = ($407|0)!=(0);
if (!($408)) {
HEAP32[$1>>2] = 5;
break;
}
$409 = HEAP32[$3>>2]|0;
- $410 = (_strcmp($409,11257)|0);
+ $410 = (_strcmp($409,12425)|0);
$411 = ($410|0)!=(0);
if (!($411)) {
- HEAP32[$1>>2] = 3;
+ HEAP32[$1>>2] = 4;
break;
}
$412 = HEAP32[$3>>2]|0;
- $413 = (_strcmp($412,11266)|0);
+ $413 = (_strcmp($412,12434)|0);
$414 = ($413|0)!=(0);
if (!($414)) {
- HEAP32[$1>>2] = 4;
+ HEAP32[$1>>2] = 5;
break;
}
$415 = HEAP32[$3>>2]|0;
- $416 = (_strcmp($415,11274)|0);
+ $416 = (_strcmp($415,12442)|0);
$417 = ($416|0)!=(0);
if (!($417)) {
HEAP32[$1>>2] = 1;
break;
}
$418 = HEAP32[$3>>2]|0;
- $419 = (_strcmp($418,11287)|0);
+ $419 = (_strcmp($418,12455)|0);
$420 = ($419|0)!=(0);
if (!($420)) {
HEAP32[$1>>2] = 2;
break;
}
$421 = HEAP32[$3>>2]|0;
- $422 = (_strcmp($421,11301)|0);
+ $422 = (_strcmp($421,12469)|0);
$423 = ($422|0)!=(0);
if (!($423)) {
HEAP32[$1>>2] = 15;
break;
}
$424 = HEAP32[$3>>2]|0;
- $425 = (_strcmp($424,11313)|0);
+ $425 = (_strcmp($424,12481)|0);
$426 = ($425|0)!=(0);
if (!($426)) {
HEAP32[$1>>2] = 16;
break;
}
$427 = HEAP32[$3>>2]|0;
- $428 = (_strcmp($427,11322)|0);
+ $428 = (_strcmp($427,12490)|0);
$429 = ($428|0)!=(0);
if (!($429)) {
HEAP32[$1>>2] = 17;
break;
}
$430 = HEAP32[$3>>2]|0;
- $431 = (_strcmp($430,11332)|0);
+ $431 = (_strcmp($430,12500)|0);
$432 = ($431|0)!=(0);
if (!($432)) {
HEAP32[$1>>2] = 18;
break;
}
$433 = HEAP32[$3>>2]|0;
- $434 = (_strcmp($433,11344)|0);
+ $434 = (_strcmp($433,12512)|0);
$435 = ($434|0)!=(0);
if (!($435)) {
HEAP32[$1>>2] = 19;
break;
}
$436 = HEAP32[$3>>2]|0;
- $437 = (_strcmp($436,11355)|0);
+ $437 = (_strcmp($436,12523)|0);
$438 = ($437|0)!=(0);
if (!($438)) {
HEAP32[$1>>2] = 20;
break;
}
$439 = HEAP32[$3>>2]|0;
- $440 = (_strcmp($439,11363)|0);
+ $440 = (_strcmp($439,12531)|0);
$441 = ($440|0)!=(0);
if (!($441)) {
HEAP32[$1>>2] = 3;
break;
}
$442 = HEAP32[$3>>2]|0;
- $443 = (_strcmp($442,11375)|0);
+ $443 = (_strcmp($442,12543)|0);
$444 = ($443|0)!=(0);
if (!($444)) {
HEAP32[$1>>2] = 21;
break;
}
$445 = HEAP32[$3>>2]|0;
- $446 = (_strcmp($445,11390)|0);
+ $446 = (_strcmp($445,12558)|0);
$447 = ($446|0)!=(0);
if (!($447)) {
HEAP32[$1>>2] = 22;
break;
}
$448 = HEAP32[$3>>2]|0;
- $449 = (_strcmp($448,11402)|0);
+ $449 = (_strcmp($448,12570)|0);
$450 = ($449|0)!=(0);
if (!($450)) {
HEAP32[$1>>2] = 23;
break;
}
$451 = HEAP32[$3>>2]|0;
- $452 = (_strcmp($451,11416)|0);
+ $452 = (_strcmp($451,12584)|0);
$453 = ($452|0)!=(0);
if (!($453)) {
HEAP32[$1>>2] = 10;
break;
}
$454 = HEAP32[$3>>2]|0;
- $455 = (_strcmp($454,11441)|0);
+ $455 = (_strcmp($454,12609)|0);
$456 = ($455|0)!=(0);
if (!($456)) {
HEAP32[$1>>2] = 24;
break;
}
$457 = HEAP32[$3>>2]|0;
- $458 = (_strcmp($457,11458)|0);
+ $458 = (_strcmp($457,12626)|0);
$459 = ($458|0)!=(0);
if (!($459)) {
HEAP32[$1>>2] = 25;
break;
}
$460 = HEAP32[$3>>2]|0;
- $461 = (_strcmp($460,11474)|0);
+ $461 = (_strcmp($460,12642)|0);
$462 = ($461|0)!=(0);
if (!($462)) {
HEAP32[$1>>2] = 26;
break;
}
$463 = HEAP32[$3>>2]|0;
- $464 = (_strcmp($463,11490)|0);
+ $464 = (_strcmp($463,12658)|0);
$465 = ($464|0)!=(0);
if (!($465)) {
HEAP32[$1>>2] = 11;
break;
}
$466 = HEAP32[$3>>2]|0;
- $467 = (_strcmp($466,11502)|0);
+ $467 = (_strcmp($466,12670)|0);
$468 = ($467|0)!=(0);
if (!($468)) {
HEAP32[$1>>2] = 33;
break;
}
$469 = HEAP32[$3>>2]|0;
- $470 = (_strcmp($469,11514)|0);
+ $470 = (_strcmp($469,12682)|0);
$471 = ($470|0)!=(0);
if (!($471)) {
HEAP32[$1>>2] = 34;
break;
}
$472 = HEAP32[$3>>2]|0;
- $473 = (_strcmp($472,11538)|0);
+ $473 = (_strcmp($472,12706)|0);
$474 = ($473|0)!=(0);
if (!($474)) {
HEAP32[$1>>2] = 1;
break;
}
$475 = HEAP32[$3>>2]|0;
- $476 = (_strcmp($475,11551)|0);
+ $476 = (_strcmp($475,12719)|0);
$477 = ($476|0)!=(0);
if (!($477)) {
HEAP32[$1>>2] = 2;
break;
}
$478 = HEAP32[$3>>2]|0;
- $479 = (_strcmp($478,11565)|0);
+ $479 = (_strcmp($478,12733)|0);
$480 = ($479|0)!=(0);
if (!($480)) {
HEAP32[$1>>2] = 35;
break;
}
$481 = HEAP32[$3>>2]|0;
- $482 = (_strcmp($481,11587)|0);
+ $482 = (_strcmp($481,12755)|0);
$483 = ($482|0)!=(0);
if (!($483)) {
HEAP32[$1>>2] = 36;
break;
}
$484 = HEAP32[$3>>2]|0;
- $485 = (_strcmp($484,11594)|0);
+ $485 = (_strcmp($484,12762)|0);
$486 = ($485|0)!=(0);
if (!($486)) {
HEAP32[$1>>2] = 3;
break;
}
$487 = HEAP32[$3>>2]|0;
- $488 = (_strcmp($487,11610)|0);
+ $488 = (_strcmp($487,12778)|0);
$489 = ($488|0)!=(0);
if (!($489)) {
HEAP32[$1>>2] = 2;
break;
}
$490 = HEAP32[$3>>2]|0;
- $491 = (_strcmp($490,11627)|0);
+ $491 = (_strcmp($490,12795)|0);
$492 = ($491|0)!=(0);
if (!($492)) {
HEAP32[$1>>2] = 1;
break;
}
$493 = HEAP32[$3>>2]|0;
- $494 = (_strcmp($493,11644)|0);
+ $494 = (_strcmp($493,12812)|0);
$495 = ($494|0)!=(0);
if (!($495)) {
HEAP32[$1>>2] = 28;
break;
}
$496 = HEAP32[$3>>2]|0;
- $497 = (_strcmp($496,11660)|0);
+ $497 = (_strcmp($496,12828)|0);
$498 = ($497|0)!=(0);
if (!($498)) {
HEAP32[$1>>2] = 1;
break;
}
$499 = HEAP32[$3>>2]|0;
- $500 = (_strcmp($499,11676)|0);
+ $500 = (_strcmp($499,12844)|0);
$501 = ($500|0)!=(0);
if (!($501)) {
HEAP32[$1>>2] = 4;
break;
}
$502 = HEAP32[$3>>2]|0;
- $503 = (_strcmp($502,11693)|0);
+ $503 = (_strcmp($502,12861)|0);
$504 = ($503|0)!=(0);
if (!($504)) {
HEAP32[$1>>2] = 29;
break;
}
$505 = HEAP32[$3>>2]|0;
- $506 = (_strcmp($505,11707)|0);
+ $506 = (_strcmp($505,12875)|0);
$507 = ($506|0)!=(0);
if (!($507)) {
HEAP32[$1>>2] = 30;
break;
}
$508 = HEAP32[$3>>2]|0;
- $509 = (_strcmp($508,11719)|0);
+ $509 = (_strcmp($508,12887)|0);
$510 = ($509|0)!=(0);
if (!($510)) {
HEAP32[$1>>2] = 22;
break;
}
$511 = HEAP32[$3>>2]|0;
- $512 = (_strcmp($511,11730)|0);
+ $512 = (_strcmp($511,12898)|0);
$513 = ($512|0)!=(0);
if (!($513)) {
HEAP32[$1>>2] = 2;
break;
}
$514 = HEAP32[$3>>2]|0;
- $515 = (_strcmp($514,11743)|0);
+ $515 = (_strcmp($514,12911)|0);
$516 = ($515|0)!=(0);
if (!($516)) {
HEAP32[$1>>2] = 23;
break;
}
$517 = HEAP32[$3>>2]|0;
- $518 = (_strcmp($517,11753)|0);
+ $518 = (_strcmp($517,12921)|0);
$519 = ($518|0)!=(0);
if (!($519)) {
HEAP32[$1>>2] = 2;
break;
}
$520 = HEAP32[$3>>2]|0;
- $521 = (_strcmp($520,11770)|0);
+ $521 = (_strcmp($520,12938)|0);
$522 = ($521|0)!=(0);
if (!($522)) {
HEAP32[$1>>2] = 24;
break;
}
$523 = HEAP32[$3>>2]|0;
- $524 = (_strcmp($523,11782)|0);
+ $524 = (_strcmp($523,12950)|0);
$525 = ($524|0)!=(0);
if (!($525)) {
HEAP32[$1>>2] = 25;
break;
}
$526 = HEAP32[$3>>2]|0;
- $527 = (_strcmp($526,11804)|0);
+ $527 = (_strcmp($526,12972)|0);
$528 = ($527|0)!=(0);
if (!($528)) {
HEAP32[$1>>2] = 26;
break;
}
$529 = HEAP32[$3>>2]|0;
- $530 = (_strcmp($529,11824)|0);
+ $530 = (_strcmp($529,12992)|0);
$531 = ($530|0)!=(0);
if (!($531)) {
HEAP32[$1>>2] = 3;
break;
}
$532 = HEAP32[$3>>2]|0;
- $533 = (_strcmp($532,11837)|0);
+ $533 = (_strcmp($532,13005)|0);
$534 = ($533|0)!=(0);
if (!($534)) {
HEAP32[$1>>2] = 27;
break;
}
$535 = HEAP32[$3>>2]|0;
- $536 = (_strcmp($535,11859)|0);
+ $536 = (_strcmp($535,13027)|0);
$537 = ($536|0)!=(0);
if (!($537)) {
HEAP32[$1>>2] = 28;
break;
}
$538 = HEAP32[$3>>2]|0;
- $539 = (_strcmp($538,11879)|0);
+ $539 = (_strcmp($538,13047)|0);
$540 = ($539|0)!=(0);
if (!($540)) {
HEAP32[$1>>2] = 2;
break;
}
$541 = HEAP32[$3>>2]|0;
- $542 = (_strcmp($541,11896)|0);
+ $542 = (_strcmp($541,13064)|0);
$543 = ($542|0)!=(0);
if (!($543)) {
HEAP32[$1>>2] = 2;
break;
}
$544 = HEAP32[$3>>2]|0;
- $545 = (_strcmp($544,11913)|0);
+ $545 = (_strcmp($544,13081)|0);
$546 = ($545|0)!=(0);
if (!($546)) {
HEAP32[$1>>2] = 3;
break;
}
$547 = HEAP32[$3>>2]|0;
- $548 = (_strcmp($547,11933)|0);
+ $548 = (_strcmp($547,13101)|0);
$549 = ($548|0)!=(0);
if ($549) {
$550 = HEAP32[$2>>2]|0;
@@ -15373,7 +23953,7 @@ function _emscripten_GetProcAddress($0) {
function _emscripten_get_global_libc() {
var label = 0, sp = 0;
sp = STACKTOP;
- return (17020|0);
+ return (18236|0);
}
function ___stdio_close($0) {
$0 = $0|0;
@@ -15566,7 +24146,7 @@ function ___pthread_self_108() {
function _pthread_self() {
var label = 0, sp = 0;
sp = STACKTOP;
- return (2972|0);
+ return (2980|0);
}
function _dummy_738($0) {
$0 = $0|0;
@@ -15574,6 +24154,78 @@ function _dummy_738($0) {
sp = STACKTOP;
return ($0|0);
}
+function ___stdio_read($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0;
+ var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0);
+ $vararg_buffer = sp;
+ $3 = sp + 16|0;
+ HEAP32[$3>>2] = $1;
+ $4 = ((($3)) + 4|0);
+ $5 = ((($0)) + 48|0);
+ $6 = HEAP32[$5>>2]|0;
+ $7 = ($6|0)!=(0);
+ $8 = $7&1;
+ $9 = (($2) - ($8))|0;
+ HEAP32[$4>>2] = $9;
+ $10 = ((($3)) + 8|0);
+ $11 = ((($0)) + 44|0);
+ $12 = HEAP32[$11>>2]|0;
+ HEAP32[$10>>2] = $12;
+ $13 = ((($3)) + 12|0);
+ HEAP32[$13>>2] = $6;
+ $14 = ((($0)) + 60|0);
+ $15 = HEAP32[$14>>2]|0;
+ $16 = $3;
+ HEAP32[$vararg_buffer>>2] = $15;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $16;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 2;
+ $17 = (___syscall145(145,($vararg_buffer|0))|0);
+ $18 = (___syscall_ret($17)|0);
+ $19 = ($18|0)<(1);
+ if ($19) {
+ $20 = $18 & 48;
+ $21 = $20 ^ 16;
+ $22 = HEAP32[$0>>2]|0;
+ $23 = $22 | $21;
+ HEAP32[$0>>2] = $23;
+ $$0 = $18;
+ } else {
+ $24 = HEAP32[$4>>2]|0;
+ $25 = ($18>>>0)>($24>>>0);
+ if ($25) {
+ $26 = (($18) - ($24))|0;
+ $27 = HEAP32[$11>>2]|0;
+ $28 = ((($0)) + 4|0);
+ HEAP32[$28>>2] = $27;
+ $29 = (($27) + ($26)|0);
+ $30 = ((($0)) + 8|0);
+ HEAP32[$30>>2] = $29;
+ $31 = HEAP32[$5>>2]|0;
+ $32 = ($31|0)==(0);
+ if ($32) {
+ $$0 = $2;
+ } else {
+ $33 = ((($27)) + 1|0);
+ HEAP32[$28>>2] = $33;
+ $34 = HEAP8[$27>>0]|0;
+ $35 = (($2) + -1)|0;
+ $36 = (($1) + ($35)|0);
+ HEAP8[$36>>0] = $34;
+ $$0 = $2;
+ }
+ } else {
+ $$0 = $18;
+ }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
function ___stdout_write($0,$1,$2) {
$0 = $0|0;
$1 = $1|0;
@@ -15607,6 +24259,55 @@ function ___stdout_write($0,$1,$2) {
$14 = (___stdio_write($0,$1,$2)|0);
STACKTOP = sp;return ($14|0);
}
+function ___toread($0) {
+ $0 = $0|0;
+ var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0;
+ var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $sext = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = ((($0)) + 74|0);
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 << 24 >> 24;
+ $4 = (($3) + 255)|0;
+ $5 = $4 | $3;
+ $6 = $5&255;
+ HEAP8[$1>>0] = $6;
+ $7 = ((($0)) + 20|0);
+ $8 = HEAP32[$7>>2]|0;
+ $9 = ((($0)) + 28|0);
+ $10 = HEAP32[$9>>2]|0;
+ $11 = ($8>>>0)>($10>>>0);
+ if ($11) {
+ $12 = ((($0)) + 36|0);
+ $13 = HEAP32[$12>>2]|0;
+ (FUNCTION_TABLE_iiii[$13 & 15]($0,0,0)|0);
+ }
+ $14 = ((($0)) + 16|0);
+ HEAP32[$14>>2] = 0;
+ HEAP32[$9>>2] = 0;
+ HEAP32[$7>>2] = 0;
+ $15 = HEAP32[$0>>2]|0;
+ $16 = $15 & 4;
+ $17 = ($16|0)==(0);
+ if ($17) {
+ $19 = ((($0)) + 44|0);
+ $20 = HEAP32[$19>>2]|0;
+ $21 = ((($0)) + 48|0);
+ $22 = HEAP32[$21>>2]|0;
+ $23 = (($20) + ($22)|0);
+ $24 = ((($0)) + 8|0);
+ HEAP32[$24>>2] = $23;
+ $25 = ((($0)) + 4|0);
+ HEAP32[$25>>2] = $23;
+ $26 = $15 << 27;
+ $sext = $26 >> 31;
+ $$0 = $sext;
+ } else {
+ $18 = $15 | 32;
+ HEAP32[$0>>2] = $18;
+ $$0 = -1;
+ }
+ return ($$0|0);
+}
function _strcmp($0,$1) {
$0 = $0|0;
$1 = $1|0;
@@ -15701,7 +24402,7 @@ function _vsnprintf($0,$1,$2,$3) {
STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0);
$4 = sp + 124|0;
$5 = sp;
- dest=$5; src=3348; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
+ dest=$5; src=3356; stop=dest+124|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0));
$6 = (($1) + -1)|0;
$7 = ($6>>>0)>(2147483646);
if ($7) {
@@ -15811,7 +24512,7 @@ function _vfprintf($0,$1,$2) {
} else {
$31 = ((($0)) + 36|0);
$32 = HEAP32[$31>>2]|0;
- (FUNCTION_TABLE_iiii[$32 & 7]($0,0,0)|0);
+ (FUNCTION_TABLE_iiii[$32 & 15]($0,0,0)|0);
$33 = HEAP32[$26>>2]|0;
$34 = ($33|0)==(0|0);
$$ = $34 ? -1 : $29;
@@ -16185,7 +24886,7 @@ function _printf_core($0,$1,$2,$3,$4) {
$133 = HEAP8[$128>>0]|0;
$134 = $133 << 24 >> 24;
$135 = (($134) + -65)|0;
- $136 = ((12049 + (($$0252*58)|0)|0) + ($135)|0);
+ $136 = ((13217 + (($$0252*58)|0)|0) + ($135)|0);
$137 = HEAP8[$136>>0]|0;
$138 = $137&255;
$139 = (($138) + -1)|0;
@@ -16363,7 +25064,7 @@ function _printf_core($0,$1,$2,$3,$4) {
$222 = (($220) + 1)|0;
$223 = $218 | $221;
$$0254$$0254$ = $223 ? $$0254 : $222;
- $$0228 = $216;$$1233 = 0;$$1238 = 12513;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215;
+ $$0228 = $216;$$1233 = 0;$$1238 = 13681;$$2256 = $$0254$$0254$;$$4266 = $$1263$;$248 = $212;$250 = $215;
label = 67;
break;
}
@@ -16384,7 +25085,7 @@ function _printf_core($0,$1,$2,$3,$4) {
$235 = (($233) + 4)|0;
$236 = $235;
HEAP32[$236>>2] = $232;
- $$0232 = 1;$$0237 = 12513;$242 = $231;$243 = $232;
+ $$0232 = 1;$$0237 = 13681;$242 = $231;$243 = $232;
label = 66;
break L71;
} else {
@@ -16392,8 +25093,8 @@ function _printf_core($0,$1,$2,$3,$4) {
$238 = ($237|0)==(0);
$239 = $$1263$ & 1;
$240 = ($239|0)==(0);
- $$ = $240 ? 12513 : (12515);
- $$$ = $238 ? $$ : (12514);
+ $$ = $240 ? 13681 : (13683);
+ $$$ = $238 ? $$ : (13682);
$241 = $$1263$ & 2049;
$narrow = ($241|0)!=(0);
$$284$ = $narrow&1;
@@ -16410,7 +25111,7 @@ function _printf_core($0,$1,$2,$3,$4) {
$168 = (($165) + 4)|0;
$169 = $168;
$170 = HEAP32[$169>>2]|0;
- $$0232 = 0;$$0237 = 12513;$242 = $167;$243 = $170;
+ $$0232 = 0;$$0237 = 13681;$242 = $167;$243 = $170;
label = 66;
break;
}
@@ -16423,7 +25124,7 @@ function _printf_core($0,$1,$2,$3,$4) {
$264 = HEAP32[$263>>2]|0;
$265 = $261&255;
HEAP8[$13>>0] = $265;
- $$2 = $13;$$2234 = 0;$$2239 = 12513;$$2251 = $11;$$5 = 1;$$6268 = $164;
+ $$2 = $13;$$2234 = 0;$$2239 = 13681;$$2251 = $11;$$5 = 1;$$6268 = $164;
break;
}
case 109: {
@@ -16437,7 +25138,7 @@ function _printf_core($0,$1,$2,$3,$4) {
case 115: {
$269 = HEAP32[$6>>2]|0;
$270 = ($269|0)!=(0|0);
- $271 = $270 ? $269 : 12523;
+ $271 = $270 ? $269 : 13691;
$$1 = $271;
label = 71;
break;
@@ -16477,7 +25178,7 @@ function _printf_core($0,$1,$2,$3,$4) {
break;
}
default: {
- $$2 = $21;$$2234 = 0;$$2239 = 12513;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$;
+ $$2 = $21;$$2234 = 0;$$2239 = 13681;$$2251 = $11;$$5 = $$0254;$$6268 = $$1263$;
}
}
} while(0);
@@ -16499,8 +25200,8 @@ function _printf_core($0,$1,$2,$3,$4) {
$207 = ($206|0)==(0);
$or$cond283 = $207 | $205;
$208 = $$1236 >> 4;
- $209 = (12513 + ($208)|0);
- $$289 = $or$cond283 ? 12513 : $209;
+ $209 = (13681 + ($208)|0);
+ $$289 = $or$cond283 ? 13681 : $209;
$$290 = $or$cond283 ? 0 : 2;
$$0228 = $202;$$1233 = $$290;$$1238 = $$289;$$2256 = $$1255;$$4266 = $$3265;$248 = $197;$250 = $200;
label = 67;
@@ -16521,7 +25222,7 @@ function _printf_core($0,$1,$2,$3,$4) {
$277 = (($$1) + ($$0254)|0);
$$3257 = $273 ? $$0254 : $276;
$$1250 = $273 ? $277 : $272;
- $$2 = $$1;$$2234 = 0;$$2239 = 12513;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164;
+ $$2 = $$1;$$2234 = 0;$$2239 = 13681;$$2251 = $$1250;$$5 = $$3257;$$6268 = $164;
}
else if ((label|0) == 75) {
label = 0;
@@ -17051,7 +25752,7 @@ function _fmt_x($0,$1,$2,$3) {
$$056 = $2;$15 = $1;$8 = $0;
while(1) {
$7 = $8 & 15;
- $9 = (12565 + ($7)|0);
+ $9 = (13733 + ($7)|0);
$10 = HEAP8[$9>>0]|0;
$11 = $10&255;
$12 = $11 | $3;
@@ -17409,14 +26110,14 @@ function _fmt_fp($0,$1,$2,$3,$4,$5) {
$13 = ($12|0)<(0);
if ($13) {
$14 = -$1;
- $$0471 = $14;$$0520 = 1;$$0521 = 12530;
+ $$0471 = $14;$$0520 = 1;$$0521 = 13698;
} else {
$15 = $4 & 2048;
$16 = ($15|0)==(0);
$17 = $4 & 1;
$18 = ($17|0)==(0);
- $$ = $18 ? (12531) : (12536);
- $$$ = $16 ? $$ : (12533);
+ $$ = $18 ? (13699) : (13704);
+ $$$ = $16 ? $$ : (13701);
$19 = $4 & 2049;
$narrow = ($19|0)!=(0);
$$534$ = $narrow&1;
@@ -17515,7 +26216,7 @@ function _fmt_fp($0,$1,$2,$3,$4,$5) {
$$0523 = $8;$$2473 = $$1472;
while(1) {
$80 = (~~(($$2473)));
- $81 = (12565 + ($80)|0);
+ $81 = (13733 + ($80)|0);
$82 = HEAP8[$81>>0]|0;
$83 = $82&255;
$84 = $83 | $42;
@@ -18126,7 +26827,7 @@ function _fmt_fp($0,$1,$2,$3,$4,$5) {
}
$339 = ($289|0)==(0);
if (!($339)) {
- _out($0,12581,1);
+ _out($0,13749,1);
}
$340 = ($337>>>0)<($$7505>>>0);
$341 = ($$3477|0)>(0);
@@ -18207,7 +26908,7 @@ function _fmt_fp($0,$1,$2,$3,$4,$5) {
$$2 = $372;
break;
}
- _out($0,12581,1);
+ _out($0,13749,1);
$$2 = $372;
} else {
$369 = ($$0>>>0)>($8>>>0);
@@ -18264,9 +26965,9 @@ function _fmt_fp($0,$1,$2,$3,$4,$5) {
} else {
$27 = $5 & 32;
$28 = ($27|0)!=(0);
- $29 = $28 ? 12549 : 12553;
+ $29 = $28 ? 13717 : 13721;
$30 = ($$0471 != $$0471) | (0.0 != 0.0);
- $31 = $28 ? 12557 : 12561;
+ $31 = $28 ? 13725 : 13729;
$$0510 = $30 ? $31 : $29;
$32 = (($$0520) + 3)|0;
$33 = $4 & -65537;
@@ -18476,7 +27177,7 @@ function ___strerror_l($0,$1) {
sp = STACKTOP;
$$016 = 0;
while(1) {
- $3 = (12583 + ($$016)|0);
+ $3 = (13751 + ($$016)|0);
$4 = HEAP8[$3>>0]|0;
$5 = $4&255;
$6 = ($5|0)==($0|0);
@@ -18487,7 +27188,7 @@ function ___strerror_l($0,$1) {
$7 = (($$016) + 1)|0;
$8 = ($7|0)==(87);
if ($8) {
- $$01214 = 12671;$$115 = 87;
+ $$01214 = 13839;$$115 = 87;
label = 5;
break;
} else {
@@ -18497,9 +27198,9 @@ function ___strerror_l($0,$1) {
if ((label|0) == 2) {
$2 = ($$016|0)==(0);
if ($2) {
- $$012$lcssa = 12671;
+ $$012$lcssa = 13839;
} else {
- $$01214 = 12671;$$115 = $$016;
+ $$01214 = 13839;$$115 = $$016;
label = 5;
}
}
@@ -18724,7 +27425,7 @@ function ___fwritex($0,$1,$2) {
if ($13) {
$15 = ((($2)) + 36|0);
$16 = HEAP32[$15>>2]|0;
- $17 = (FUNCTION_TABLE_iiii[$16 & 7]($2,$0,$1)|0);
+ $17 = (FUNCTION_TABLE_iiii[$16 & 15]($2,$0,$1)|0);
$$1 = $17;
break;
}
@@ -18752,7 +27453,7 @@ function ___fwritex($0,$1,$2) {
}
$26 = ((($2)) + 36|0);
$27 = HEAP32[$26>>2]|0;
- $28 = (FUNCTION_TABLE_iiii[$27 & 7]($2,$0,$$038)|0);
+ $28 = (FUNCTION_TABLE_iiii[$27 & 15]($2,$0,$$038)|0);
$29 = ($28>>>0)<($$038>>>0);
if ($29) {
$$1 = $28;
@@ -19133,16 +27834,238 @@ function ___stpcpy($0,$1) {
}
return ($$029|0);
}
+function _fopen($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_buffer8 = 0, $vararg_ptr1 = 0;
+ var $vararg_ptr2 = 0, $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0);
+ $vararg_buffer8 = sp + 32|0;
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer = sp;
+ $2 = HEAP8[$1>>0]|0;
+ $3 = $2 << 24 >> 24;
+ $memchr = (_memchr(15643,$3,4)|0);
+ $4 = ($memchr|0)==(0|0);
+ if ($4) {
+ $5 = (___errno_location()|0);
+ HEAP32[$5>>2] = 22;
+ $$0 = 0;
+ } else {
+ $6 = (___fmodeflags($1)|0);
+ $7 = $0;
+ $8 = $6 | 32768;
+ HEAP32[$vararg_buffer>>2] = $7;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = $8;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 438;
+ $9 = (___syscall5(5,($vararg_buffer|0))|0);
+ $10 = (___syscall_ret($9)|0);
+ $11 = ($10|0)<(0);
+ if ($11) {
+ $$0 = 0;
+ } else {
+ $12 = $6 & 524288;
+ $13 = ($12|0)==(0);
+ if (!($13)) {
+ HEAP32[$vararg_buffer3>>2] = $10;
+ $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+ HEAP32[$vararg_ptr6>>2] = 2;
+ $vararg_ptr7 = ((($vararg_buffer3)) + 8|0);
+ HEAP32[$vararg_ptr7>>2] = 1;
+ (___syscall221(221,($vararg_buffer3|0))|0);
+ }
+ $14 = (___fdopen($10,$1)|0);
+ $15 = ($14|0)==(0|0);
+ if ($15) {
+ HEAP32[$vararg_buffer8>>2] = $10;
+ (___syscall6(6,($vararg_buffer8|0))|0);
+ $$0 = 0;
+ } else {
+ $$0 = $14;
+ }
+ }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function ___fmodeflags($0) {
+ $0 = $0|0;
+ var $$ = 0, $$$4 = 0, $$0 = 0, $$0$ = 0, $$2 = 0, $$2$ = 0, $$4 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0;
+ var $8 = 0, $9 = 0, $not$ = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (_strchr($0,43)|0);
+ $2 = ($1|0)==(0|0);
+ $3 = HEAP8[$0>>0]|0;
+ $not$ = ($3<<24>>24)!=(114);
+ $$ = $not$&1;
+ $$0 = $2 ? $$ : 2;
+ $4 = (_strchr($0,120)|0);
+ $5 = ($4|0)==(0|0);
+ $6 = $$0 | 128;
+ $$0$ = $5 ? $$0 : $6;
+ $7 = (_strchr($0,101)|0);
+ $8 = ($7|0)==(0|0);
+ $9 = $$0$ | 524288;
+ $$2 = $8 ? $$0$ : $9;
+ $10 = ($3<<24>>24)==(114);
+ $11 = $$2 | 64;
+ $$2$ = $10 ? $$2 : $11;
+ $12 = ($3<<24>>24)==(119);
+ $13 = $$2$ | 512;
+ $$4 = $12 ? $13 : $$2$;
+ $14 = ($3<<24>>24)==(97);
+ $15 = $$4 | 1024;
+ $$$4 = $14 ? $15 : $$4;
+ return ($$$4|0);
+}
+function ___fdopen($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $$0 = 0, $$pre = 0, $$pre31 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0;
+ var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0;
+ var $7 = 0, $8 = 0, $9 = 0, $memchr = 0, $vararg_buffer = 0, $vararg_buffer12 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0, $vararg_ptr10 = 0, $vararg_ptr11 = 0, $vararg_ptr15 = 0, $vararg_ptr16 = 0, $vararg_ptr2 = 0, $vararg_ptr6 = 0, dest = 0, label = 0, sp = 0, stop = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0);
+ $vararg_buffer12 = sp + 40|0;
+ $vararg_buffer7 = sp + 24|0;
+ $vararg_buffer3 = sp + 16|0;
+ $vararg_buffer = sp;
+ $2 = sp + 56|0;
+ $3 = HEAP8[$1>>0]|0;
+ $4 = $3 << 24 >> 24;
+ $memchr = (_memchr(15643,$4,4)|0);
+ $5 = ($memchr|0)==(0|0);
+ if ($5) {
+ $6 = (___errno_location()|0);
+ HEAP32[$6>>2] = 22;
+ $$0 = 0;
+ } else {
+ $7 = (_malloc(1156)|0);
+ $8 = ($7|0)==(0|0);
+ if ($8) {
+ $$0 = 0;
+ } else {
+ dest=$7; stop=dest+124|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
+ $9 = (_strchr($1,43)|0);
+ $10 = ($9|0)==(0|0);
+ if ($10) {
+ $11 = ($3<<24>>24)==(114);
+ $12 = $11 ? 8 : 4;
+ HEAP32[$7>>2] = $12;
+ }
+ $13 = (_strchr($1,101)|0);
+ $14 = ($13|0)==(0|0);
+ if ($14) {
+ $16 = $3;
+ } else {
+ HEAP32[$vararg_buffer>>2] = $0;
+ $vararg_ptr1 = ((($vararg_buffer)) + 4|0);
+ HEAP32[$vararg_ptr1>>2] = 2;
+ $vararg_ptr2 = ((($vararg_buffer)) + 8|0);
+ HEAP32[$vararg_ptr2>>2] = 1;
+ (___syscall221(221,($vararg_buffer|0))|0);
+ $$pre = HEAP8[$1>>0]|0;
+ $16 = $$pre;
+ }
+ $15 = ($16<<24>>24)==(97);
+ if ($15) {
+ HEAP32[$vararg_buffer3>>2] = $0;
+ $vararg_ptr6 = ((($vararg_buffer3)) + 4|0);
+ HEAP32[$vararg_ptr6>>2] = 3;
+ $17 = (___syscall221(221,($vararg_buffer3|0))|0);
+ $18 = $17 & 1024;
+ $19 = ($18|0)==(0);
+ if ($19) {
+ $20 = $17 | 1024;
+ HEAP32[$vararg_buffer7>>2] = $0;
+ $vararg_ptr10 = ((($vararg_buffer7)) + 4|0);
+ HEAP32[$vararg_ptr10>>2] = 4;
+ $vararg_ptr11 = ((($vararg_buffer7)) + 8|0);
+ HEAP32[$vararg_ptr11>>2] = $20;
+ (___syscall221(221,($vararg_buffer7|0))|0);
+ }
+ $21 = HEAP32[$7>>2]|0;
+ $22 = $21 | 128;
+ HEAP32[$7>>2] = $22;
+ $29 = $22;
+ } else {
+ $$pre31 = HEAP32[$7>>2]|0;
+ $29 = $$pre31;
+ }
+ $23 = ((($7)) + 60|0);
+ HEAP32[$23>>2] = $0;
+ $24 = ((($7)) + 132|0);
+ $25 = ((($7)) + 44|0);
+ HEAP32[$25>>2] = $24;
+ $26 = ((($7)) + 48|0);
+ HEAP32[$26>>2] = 1024;
+ $27 = ((($7)) + 75|0);
+ HEAP8[$27>>0] = -1;
+ $28 = $29 & 8;
+ $30 = ($28|0)==(0);
+ if ($30) {
+ $31 = $2;
+ HEAP32[$vararg_buffer12>>2] = $0;
+ $vararg_ptr15 = ((($vararg_buffer12)) + 4|0);
+ HEAP32[$vararg_ptr15>>2] = 21523;
+ $vararg_ptr16 = ((($vararg_buffer12)) + 8|0);
+ HEAP32[$vararg_ptr16>>2] = $31;
+ $32 = (___syscall54(54,($vararg_buffer12|0))|0);
+ $33 = ($32|0)==(0);
+ if ($33) {
+ HEAP8[$27>>0] = 10;
+ }
+ }
+ $34 = ((($7)) + 32|0);
+ HEAP32[$34>>2] = 8;
+ $35 = ((($7)) + 36|0);
+ HEAP32[$35>>2] = 7;
+ $36 = ((($7)) + 40|0);
+ HEAP32[$36>>2] = 2;
+ $37 = ((($7)) + 12|0);
+ HEAP32[$37>>2] = 1;
+ $38 = HEAP32[(18240)>>2]|0;
+ $39 = ($38|0)==(0);
+ if ($39) {
+ $40 = ((($7)) + 76|0);
+ HEAP32[$40>>2] = -1;
+ }
+ $41 = (___ofl_add($7)|0);
+ $$0 = $7;
+ }
+ }
+ STACKTOP = sp;return ($$0|0);
+}
+function ___ofl_add($0) {
+ $0 = $0|0;
+ var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $1 = (___ofl_lock()|0);
+ $2 = HEAP32[$1>>2]|0;
+ $3 = ((($0)) + 56|0);
+ HEAP32[$3>>2] = $2;
+ $4 = HEAP32[$1>>2]|0;
+ $5 = ($4|0)==(0|0);
+ if (!($5)) {
+ $6 = ((($4)) + 52|0);
+ HEAP32[$6>>2] = $0;
+ }
+ HEAP32[$1>>2] = $0;
+ ___ofl_unlock();
+ return ($0|0);
+}
function ___ofl_lock() {
var label = 0, sp = 0;
sp = STACKTOP;
- ___lock((17084|0));
- return (17092|0);
+ ___lock((18300|0));
+ return (18308|0);
}
function ___ofl_unlock() {
var label = 0, sp = 0;
sp = STACKTOP;
- ___unlock((17084|0));
+ ___unlock((18300|0));
return;
}
function _fflush($0) {
@@ -19153,12 +28076,12 @@ function _fflush($0) {
$1 = ($0|0)==(0|0);
do {
if ($1) {
- $8 = HEAP32[836]|0;
+ $8 = HEAP32[838]|0;
$9 = ($8|0)==(0|0);
if ($9) {
$29 = 0;
} else {
- $10 = HEAP32[836]|0;
+ $10 = HEAP32[838]|0;
$11 = (_fflush($10)|0);
$29 = $11;
}
@@ -19243,7 +28166,7 @@ function ___fflush_unlocked($0) {
if ($5) {
$6 = ((($0)) + 36|0);
$7 = HEAP32[$6>>2]|0;
- (FUNCTION_TABLE_iiii[$7 & 7]($0,0,0)|0);
+ (FUNCTION_TABLE_iiii[$7 & 15]($0,0,0)|0);
$8 = HEAP32[$1>>2]|0;
$9 = ($8|0)==(0|0);
if ($9) {
@@ -19266,7 +28189,7 @@ function ___fflush_unlocked($0) {
$17 = (($15) - ($16))|0;
$18 = ((($0)) + 40|0);
$19 = HEAP32[$18>>2]|0;
- (FUNCTION_TABLE_iiii[$19 & 7]($0,$17,1)|0);
+ (FUNCTION_TABLE_iiii[$19 & 15]($0,$17,1)|0);
}
$20 = ((($0)) + 16|0);
HEAP32[$20>>2] = 0;
@@ -19878,6 +28801,43 @@ function _twoway_strstr($0,$1) {
} while(0);
STACKTOP = sp;return ($$3|0);
}
+function _strrchr($0,$1) {
+ $0 = $0|0;
+ $1 = $1|0;
+ var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $2 = (_strlen($0)|0);
+ $3 = (($2) + 1)|0;
+ $4 = (___memrchr($0,$1,$3)|0);
+ return ($4|0);
+}
+function ___memrchr($0,$1,$2) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ var $$0 = 0, $$09 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $3 = $1&255;
+ $$09 = $2;
+ while(1) {
+ $4 = (($$09) + -1)|0;
+ $5 = ($$09|0)==(0);
+ if ($5) {
+ $$0 = 0;
+ break;
+ }
+ $6 = (($0) + ($4)|0);
+ $7 = HEAP8[$6>>0]|0;
+ $8 = ($7<<24>>24)==($3<<24>>24);
+ if ($8) {
+ $$0 = $6;
+ break;
+ } else {
+ $$09 = $4;
+ }
+ }
+ return ($$0|0);
+}
function _strspn($0,$1) {
$0 = $0|0;
$1 = $1|0;
@@ -19982,7 +28942,7 @@ function _srand($0) {
var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0;
sp = STACKTOP;
$1 = (($0) + -1)|0;
- $2 = 14744;
+ $2 = 15912;
$3 = $2;
HEAP32[$3>>2] = $1;
$4 = (($2) + 4)|0;
@@ -19990,12 +28950,109 @@ function _srand($0) {
HEAP32[$5>>2] = 0;
return;
}
+function _fread($0,$1,$2,$3) {
+ $0 = $0|0;
+ $1 = $1|0;
+ $2 = $2|0;
+ $3 = $3|0;
+ var $$ = 0, $$0 = 0, $$054$ph = 0, $$05460 = 0, $$056$ph = 0, $$05659 = 0, $$57 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0;
+ var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0;
+ var $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ $4 = Math_imul($2, $1)|0;
+ $5 = ($1|0)==(0);
+ $$ = $5 ? 0 : $2;
+ $6 = ((($3)) + 76|0);
+ $7 = HEAP32[$6>>2]|0;
+ $8 = ($7|0)>(-1);
+ if ($8) {
+ $9 = (___lockfile($3)|0);
+ $36 = $9;
+ } else {
+ $36 = 0;
+ }
+ $10 = ((($3)) + 74|0);
+ $11 = HEAP8[$10>>0]|0;
+ $12 = $11 << 24 >> 24;
+ $13 = (($12) + 255)|0;
+ $14 = $13 | $12;
+ $15 = $14&255;
+ HEAP8[$10>>0] = $15;
+ $16 = ((($3)) + 8|0);
+ $17 = HEAP32[$16>>2]|0;
+ $18 = ((($3)) + 4|0);
+ $19 = HEAP32[$18>>2]|0;
+ $20 = $19;
+ $21 = (($17) - ($20))|0;
+ $22 = ($21|0)>(0);
+ $23 = ($21>>>0)<($4>>>0);
+ $$57 = $23 ? $21 : $4;
+ if ($22) {
+ $24 = (($4) - ($$57))|0;
+ $25 = (($0) + ($$57)|0);
+ _memcpy(($0|0),($19|0),($$57|0))|0;
+ $26 = (($19) + ($$57)|0);
+ HEAP32[$18>>2] = $26;
+ $$054$ph = $24;$$056$ph = $25;
+ } else {
+ $$054$ph = $4;$$056$ph = $0;
+ }
+ $27 = ($$054$ph|0)==(0);
+ L7: do {
+ if ($27) {
+ label = 13;
+ } else {
+ $28 = ((($3)) + 32|0);
+ $$05460 = $$054$ph;$$05659 = $$056$ph;
+ while(1) {
+ $29 = (___toread($3)|0);
+ $30 = ($29|0)==(0);
+ if (!($30)) {
+ break;
+ }
+ $31 = HEAP32[$28>>2]|0;
+ $32 = (FUNCTION_TABLE_iiii[$31 & 15]($3,$$05659,$$05460)|0);
+ $33 = (($32) + 1)|0;
+ $34 = ($33>>>0)<(2);
+ if ($34) {
+ break;
+ }
+ $39 = (($$05460) - ($32))|0;
+ $40 = (($$05659) + ($32)|0);
+ $41 = ($39|0)==(0);
+ if ($41) {
+ label = 13;
+ break L7;
+ } else {
+ $$05460 = $39;$$05659 = $40;
+ }
+ }
+ $35 = ($36|0)==(0);
+ if (!($35)) {
+ ___unlockfile($3);
+ }
+ $37 = (($4) - ($$05460))|0;
+ $38 = (($37>>>0) / ($1>>>0))&-1;
+ $$0 = $38;
+ }
+ } while(0);
+ if ((label|0) == 13) {
+ $42 = ($36|0)==(0);
+ if ($42) {
+ $$0 = $$;
+ } else {
+ ___unlockfile($3);
+ $$0 = $$;
+ }
+ }
+ return ($$0|0);
+}
function _vprintf($0,$1) {
$0 = $0|0;
$1 = $1|0;
var $2 = 0, $3 = 0, label = 0, sp = 0;
sp = STACKTOP;
- $2 = HEAP32[804]|0;
+ $2 = HEAP32[806]|0;
$3 = (_vfprintf($2,$0,$1)|0);
return ($3|0);
}
@@ -20102,7 +29159,7 @@ function _strtok($0,$1) {
sp = STACKTOP;
$2 = ($0|0)==(0|0);
if ($2) {
- $3 = HEAP32[4274]|0;
+ $3 = HEAP32[4578]|0;
$4 = ($3|0)==(0|0);
if ($4) {
$$0 = 0;
@@ -20121,22 +29178,22 @@ function _strtok($0,$1) {
$7 = HEAP8[$6>>0]|0;
$8 = ($7<<24>>24)==(0);
if ($8) {
- HEAP32[4274] = 0;
+ HEAP32[4578] = 0;
$$0 = 0;
break;
}
$9 = (_strcspn($6,$1)|0);
$10 = (($6) + ($9)|0);
- HEAP32[4274] = $10;
+ HEAP32[4578] = $10;
$11 = HEAP8[$10>>0]|0;
$12 = ($11<<24>>24)==(0);
if ($12) {
- HEAP32[4274] = 0;
+ HEAP32[4578] = 0;
$$0 = $6;
break;
} else {
$13 = ((($10)) + 1|0);
- HEAP32[4274] = $13;
+ HEAP32[4578] = $13;
HEAP8[$10>>0] = 0;
$$0 = $6;
break;
@@ -20217,7 +29274,7 @@ function _malloc($0) {
$5 = $4 & -8;
$6 = $3 ? 16 : $5;
$7 = $6 >>> 3;
- $8 = HEAP32[4275]|0;
+ $8 = HEAP32[4579]|0;
$9 = $8 >>> $7;
$10 = $9 & 3;
$11 = ($10|0)==(0);
@@ -20226,7 +29283,7 @@ function _malloc($0) {
$13 = $12 ^ 1;
$14 = (($13) + ($7))|0;
$15 = $14 << 1;
- $16 = (17140 + ($15<<2)|0);
+ $16 = (18356 + ($15<<2)|0);
$17 = ((($16)) + 8|0);
$18 = HEAP32[$17>>2]|0;
$19 = ((($18)) + 8|0);
@@ -20237,9 +29294,9 @@ function _malloc($0) {
$22 = 1 << $14;
$23 = $22 ^ -1;
$24 = $8 & $23;
- HEAP32[4275] = $24;
+ HEAP32[4579] = $24;
} else {
- $25 = HEAP32[(17116)>>2]|0;
+ $25 = HEAP32[(18332)>>2]|0;
$26 = ($20>>>0)<($25>>>0);
if ($26) {
_abort();
@@ -20270,7 +29327,7 @@ function _malloc($0) {
$$0 = $19;
STACKTOP = sp;return ($$0|0);
}
- $37 = HEAP32[(17108)>>2]|0;
+ $37 = HEAP32[(18324)>>2]|0;
$38 = ($6>>>0)>($37>>>0);
if ($38) {
$39 = ($9|0)==(0);
@@ -20304,7 +29361,7 @@ function _malloc($0) {
$66 = $62 >>> $64;
$67 = (($65) + ($66))|0;
$68 = $67 << 1;
- $69 = (17140 + ($68<<2)|0);
+ $69 = (18356 + ($68<<2)|0);
$70 = ((($69)) + 8|0);
$71 = HEAP32[$70>>2]|0;
$72 = ((($71)) + 8|0);
@@ -20315,10 +29372,10 @@ function _malloc($0) {
$75 = 1 << $67;
$76 = $75 ^ -1;
$77 = $8 & $76;
- HEAP32[4275] = $77;
+ HEAP32[4579] = $77;
$98 = $77;
} else {
- $78 = HEAP32[(17116)>>2]|0;
+ $78 = HEAP32[(18332)>>2]|0;
$79 = ($73>>>0)<($78>>>0);
if ($79) {
_abort();
@@ -20351,22 +29408,22 @@ function _malloc($0) {
HEAP32[$90>>2] = $84;
$91 = ($37|0)==(0);
if (!($91)) {
- $92 = HEAP32[(17120)>>2]|0;
+ $92 = HEAP32[(18336)>>2]|0;
$93 = $37 >>> 3;
$94 = $93 << 1;
- $95 = (17140 + ($94<<2)|0);
+ $95 = (18356 + ($94<<2)|0);
$96 = 1 << $93;
$97 = $98 & $96;
$99 = ($97|0)==(0);
if ($99) {
$100 = $98 | $96;
- HEAP32[4275] = $100;
+ HEAP32[4579] = $100;
$$pre = ((($95)) + 8|0);
$$0199 = $95;$$pre$phiZ2D = $$pre;
} else {
$101 = ((($95)) + 8|0);
$102 = HEAP32[$101>>2]|0;
- $103 = HEAP32[(17116)>>2]|0;
+ $103 = HEAP32[(18332)>>2]|0;
$104 = ($102>>>0)<($103>>>0);
if ($104) {
_abort();
@@ -20383,12 +29440,12 @@ function _malloc($0) {
$107 = ((($92)) + 12|0);
HEAP32[$107>>2] = $95;
}
- HEAP32[(17108)>>2] = $84;
- HEAP32[(17120)>>2] = $87;
+ HEAP32[(18324)>>2] = $84;
+ HEAP32[(18336)>>2] = $87;
$$0 = $72;
STACKTOP = sp;return ($$0|0);
}
- $108 = HEAP32[(17104)>>2]|0;
+ $108 = HEAP32[(18320)>>2]|0;
$109 = ($108|0)==(0);
if ($109) {
$$0197 = $6;
@@ -20416,7 +29473,7 @@ function _malloc($0) {
$130 = $126 | $129;
$131 = $127 >>> $129;
$132 = (($130) + ($131))|0;
- $133 = (17404 + ($132<<2)|0);
+ $133 = (18620 + ($132<<2)|0);
$134 = HEAP32[$133>>2]|0;
$135 = ((($134)) + 4|0);
$136 = HEAP32[$135>>2]|0;
@@ -20456,7 +29513,7 @@ function _malloc($0) {
}
}
}
- $155 = HEAP32[(17116)>>2]|0;
+ $155 = HEAP32[(18332)>>2]|0;
$156 = ($$0192$lcssa$i>>>0)<($155>>>0);
if ($156) {
_abort();
@@ -20551,7 +29608,7 @@ function _malloc($0) {
if (!($186)) {
$187 = ((($$0192$lcssa$i)) + 28|0);
$188 = HEAP32[$187>>2]|0;
- $189 = (17404 + ($188<<2)|0);
+ $189 = (18620 + ($188<<2)|0);
$190 = HEAP32[$189>>2]|0;
$191 = ($$0192$lcssa$i|0)==($190|0);
do {
@@ -20562,11 +29619,11 @@ function _malloc($0) {
$192 = 1 << $188;
$193 = $192 ^ -1;
$194 = $108 & $193;
- HEAP32[(17104)>>2] = $194;
+ HEAP32[(18320)>>2] = $194;
break L73;
}
} else {
- $195 = HEAP32[(17116)>>2]|0;
+ $195 = HEAP32[(18332)>>2]|0;
$196 = ($160>>>0)<($195>>>0);
if ($196) {
_abort();
@@ -20587,7 +29644,7 @@ function _malloc($0) {
}
}
} while(0);
- $201 = HEAP32[(17116)>>2]|0;
+ $201 = HEAP32[(18332)>>2]|0;
$202 = ($$3$i>>>0)<($201>>>0);
if ($202) {
_abort();
@@ -20617,7 +29674,7 @@ function _malloc($0) {
$211 = HEAP32[$210>>2]|0;
$212 = ($211|0)==(0|0);
if (!($212)) {
- $213 = HEAP32[(17116)>>2]|0;
+ $213 = HEAP32[(18332)>>2]|0;
$214 = ($211>>>0)<($213>>>0);
if ($214) {
_abort();
@@ -20654,22 +29711,22 @@ function _malloc($0) {
HEAP32[$229>>2] = $$0193$lcssa$i;
$230 = ($37|0)==(0);
if (!($230)) {
- $231 = HEAP32[(17120)>>2]|0;
+ $231 = HEAP32[(18336)>>2]|0;
$232 = $37 >>> 3;
$233 = $232 << 1;
- $234 = (17140 + ($233<<2)|0);
+ $234 = (18356 + ($233<<2)|0);
$235 = 1 << $232;
$236 = $8 & $235;
$237 = ($236|0)==(0);
if ($237) {
$238 = $8 | $235;
- HEAP32[4275] = $238;
+ HEAP32[4579] = $238;
$$pre$i = ((($234)) + 8|0);
$$0189$i = $234;$$pre$phi$iZ2D = $$pre$i;
} else {
$239 = ((($234)) + 8|0);
$240 = HEAP32[$239>>2]|0;
- $241 = HEAP32[(17116)>>2]|0;
+ $241 = HEAP32[(18332)>>2]|0;
$242 = ($240>>>0)<($241>>>0);
if ($242) {
_abort();
@@ -20686,8 +29743,8 @@ function _malloc($0) {
$245 = ((($231)) + 12|0);
HEAP32[$245>>2] = $234;
}
- HEAP32[(17108)>>2] = $$0193$lcssa$i;
- HEAP32[(17120)>>2] = $157;
+ HEAP32[(18324)>>2] = $$0193$lcssa$i;
+ HEAP32[(18336)>>2] = $157;
}
$246 = ((($$0192$lcssa$i)) + 8|0);
$$0 = $246;
@@ -20703,7 +29760,7 @@ function _malloc($0) {
} else {
$248 = (($0) + 11)|0;
$249 = $248 & -8;
- $250 = HEAP32[(17104)>>2]|0;
+ $250 = HEAP32[(18320)>>2]|0;
$251 = ($250|0)==(0);
if ($251) {
$$0197 = $249;
@@ -20743,7 +29800,7 @@ function _malloc($0) {
$$0358$i = $277;
}
}
- $278 = (17404 + ($$0358$i<<2)|0);
+ $278 = (18620 + ($$0358$i<<2)|0);
$279 = HEAP32[$278>>2]|0;
$280 = ($279|0)==(0|0);
L117: do {
@@ -20835,7 +29892,7 @@ function _malloc($0) {
$328 = $324 | $327;
$329 = $325 >>> $327;
$330 = (($328) + ($329))|0;
- $331 = (17404 + ($330<<2)|0);
+ $331 = (18620 + ($330<<2)|0);
$332 = HEAP32[$331>>2]|0;
$$4$ph$i = 0;$$4357$ph$i = $332;
} else {
@@ -20879,11 +29936,11 @@ function _malloc($0) {
if ($344) {
$$0197 = $249;
} else {
- $345 = HEAP32[(17108)>>2]|0;
+ $345 = HEAP32[(18324)>>2]|0;
$346 = (($345) - ($249))|0;
$347 = ($$4351$lcssa$i>>>0)<($346>>>0);
if ($347) {
- $348 = HEAP32[(17116)>>2]|0;
+ $348 = HEAP32[(18332)>>2]|0;
$349 = ($$4$lcssa$i>>>0)<($348>>>0);
if ($349) {
_abort();
@@ -20980,7 +30037,7 @@ function _malloc($0) {
} else {
$380 = ((($$4$lcssa$i)) + 28|0);
$381 = HEAP32[$380>>2]|0;
- $382 = (17404 + ($381<<2)|0);
+ $382 = (18620 + ($381<<2)|0);
$383 = HEAP32[$382>>2]|0;
$384 = ($$4$lcssa$i|0)==($383|0);
do {
@@ -20991,12 +30048,12 @@ function _malloc($0) {
$385 = 1 << $381;
$386 = $385 ^ -1;
$387 = $250 & $386;
- HEAP32[(17104)>>2] = $387;
+ HEAP32[(18320)>>2] = $387;
$470 = $387;
break L164;
}
} else {
- $388 = HEAP32[(17116)>>2]|0;
+ $388 = HEAP32[(18332)>>2]|0;
$389 = ($353>>>0)<($388>>>0);
if ($389) {
_abort();
@@ -21018,7 +30075,7 @@ function _malloc($0) {
}
}
} while(0);
- $394 = HEAP32[(17116)>>2]|0;
+ $394 = HEAP32[(18332)>>2]|0;
$395 = ($$3372$i>>>0)<($394>>>0);
if ($395) {
_abort();
@@ -21050,7 +30107,7 @@ function _malloc($0) {
if ($405) {
$470 = $250;
} else {
- $406 = HEAP32[(17116)>>2]|0;
+ $406 = HEAP32[(18332)>>2]|0;
$407 = ($404>>>0)<($406>>>0);
if ($407) {
_abort();
@@ -21091,20 +30148,20 @@ function _malloc($0) {
$424 = ($$4351$lcssa$i>>>0)<(256);
if ($424) {
$425 = $423 << 1;
- $426 = (17140 + ($425<<2)|0);
- $427 = HEAP32[4275]|0;
+ $426 = (18356 + ($425<<2)|0);
+ $427 = HEAP32[4579]|0;
$428 = 1 << $423;
$429 = $427 & $428;
$430 = ($429|0)==(0);
if ($430) {
$431 = $427 | $428;
- HEAP32[4275] = $431;
+ HEAP32[4579] = $431;
$$pre$i210 = ((($426)) + 8|0);
$$0368$i = $426;$$pre$phi$i211Z2D = $$pre$i210;
} else {
$432 = ((($426)) + 8|0);
$433 = HEAP32[$432>>2]|0;
- $434 = HEAP32[(17116)>>2]|0;
+ $434 = HEAP32[(18332)>>2]|0;
$435 = ($433>>>0)<($434>>>0);
if ($435) {
_abort();
@@ -21156,7 +30213,7 @@ function _malloc($0) {
$$0361$i = $463;
}
}
- $464 = (17404 + ($$0361$i<<2)|0);
+ $464 = (18620 + ($$0361$i<<2)|0);
$465 = ((($350)) + 28|0);
HEAP32[$465>>2] = $$0361$i;
$466 = ((($350)) + 16|0);
@@ -21168,7 +30225,7 @@ function _malloc($0) {
$471 = ($469|0)==(0);
if ($471) {
$472 = $470 | $468;
- HEAP32[(17104)>>2] = $472;
+ HEAP32[(18320)>>2] = $472;
HEAP32[$464>>2] = $350;
$473 = ((($350)) + 24|0);
HEAP32[$473>>2] = $464;
@@ -21207,7 +30264,7 @@ function _malloc($0) {
}
}
if ((label|0) == 136) {
- $491 = HEAP32[(17116)>>2]|0;
+ $491 = HEAP32[(18332)>>2]|0;
$492 = ($487>>>0)<($491>>>0);
if ($492) {
_abort();
@@ -21226,7 +30283,7 @@ function _malloc($0) {
else if ((label|0) == 139) {
$496 = ((($$0345$i)) + 8|0);
$497 = HEAP32[$496>>2]|0;
- $498 = HEAP32[(17116)>>2]|0;
+ $498 = HEAP32[(18332)>>2]|0;
$499 = ($497>>>0)>=($498>>>0);
$not$9$i = ($$0345$i>>>0)>=($498>>>0);
$500 = $499 & $not$9$i;
@@ -21259,16 +30316,16 @@ function _malloc($0) {
}
}
} while(0);
- $506 = HEAP32[(17108)>>2]|0;
+ $506 = HEAP32[(18324)>>2]|0;
$507 = ($506>>>0)<($$0197>>>0);
if (!($507)) {
$508 = (($506) - ($$0197))|0;
- $509 = HEAP32[(17120)>>2]|0;
+ $509 = HEAP32[(18336)>>2]|0;
$510 = ($508>>>0)>(15);
if ($510) {
$511 = (($509) + ($$0197)|0);
- HEAP32[(17120)>>2] = $511;
- HEAP32[(17108)>>2] = $508;
+ HEAP32[(18336)>>2] = $511;
+ HEAP32[(18324)>>2] = $508;
$512 = $508 | 1;
$513 = ((($511)) + 4|0);
HEAP32[$513>>2] = $512;
@@ -21278,8 +30335,8 @@ function _malloc($0) {
$516 = ((($509)) + 4|0);
HEAP32[$516>>2] = $515;
} else {
- HEAP32[(17108)>>2] = 0;
- HEAP32[(17120)>>2] = 0;
+ HEAP32[(18324)>>2] = 0;
+ HEAP32[(18336)>>2] = 0;
$517 = $506 | 3;
$518 = ((($509)) + 4|0);
HEAP32[$518>>2] = $517;
@@ -21293,14 +30350,14 @@ function _malloc($0) {
$$0 = $523;
STACKTOP = sp;return ($$0|0);
}
- $524 = HEAP32[(17112)>>2]|0;
+ $524 = HEAP32[(18328)>>2]|0;
$525 = ($524>>>0)>($$0197>>>0);
if ($525) {
$526 = (($524) - ($$0197))|0;
- HEAP32[(17112)>>2] = $526;
- $527 = HEAP32[(17124)>>2]|0;
+ HEAP32[(18328)>>2] = $526;
+ $527 = HEAP32[(18340)>>2]|0;
$528 = (($527) + ($$0197)|0);
- HEAP32[(17124)>>2] = $528;
+ HEAP32[(18340)>>2] = $528;
$529 = $526 | 1;
$530 = ((($528)) + 4|0);
HEAP32[$530>>2] = $529;
@@ -21311,23 +30368,23 @@ function _malloc($0) {
$$0 = $533;
STACKTOP = sp;return ($$0|0);
}
- $534 = HEAP32[4393]|0;
+ $534 = HEAP32[4697]|0;
$535 = ($534|0)==(0);
if ($535) {
- HEAP32[(17580)>>2] = 4096;
- HEAP32[(17576)>>2] = 4096;
- HEAP32[(17584)>>2] = -1;
- HEAP32[(17588)>>2] = -1;
- HEAP32[(17592)>>2] = 0;
- HEAP32[(17544)>>2] = 0;
+ HEAP32[(18796)>>2] = 4096;
+ HEAP32[(18792)>>2] = 4096;
+ HEAP32[(18800)>>2] = -1;
+ HEAP32[(18804)>>2] = -1;
+ HEAP32[(18808)>>2] = 0;
+ HEAP32[(18760)>>2] = 0;
$536 = $1;
$537 = $536 & -16;
$538 = $537 ^ 1431655768;
HEAP32[$1>>2] = $538;
- HEAP32[4393] = $538;
+ HEAP32[4697] = $538;
$542 = 4096;
} else {
- $$pre$i212 = HEAP32[(17580)>>2]|0;
+ $$pre$i212 = HEAP32[(18796)>>2]|0;
$542 = $$pre$i212;
}
$539 = (($$0197) + 48)|0;
@@ -21340,10 +30397,10 @@ function _malloc($0) {
$$0 = 0;
STACKTOP = sp;return ($$0|0);
}
- $546 = HEAP32[(17540)>>2]|0;
+ $546 = HEAP32[(18756)>>2]|0;
$547 = ($546|0)==(0);
if (!($547)) {
- $548 = HEAP32[(17532)>>2]|0;
+ $548 = HEAP32[(18748)>>2]|0;
$549 = (($548) + ($544))|0;
$550 = ($549>>>0)<=($548>>>0);
$551 = ($549>>>0)>($546>>>0);
@@ -21353,18 +30410,18 @@ function _malloc($0) {
STACKTOP = sp;return ($$0|0);
}
}
- $552 = HEAP32[(17544)>>2]|0;
+ $552 = HEAP32[(18760)>>2]|0;
$553 = $552 & 4;
$554 = ($553|0)==(0);
L244: do {
if ($554) {
- $555 = HEAP32[(17124)>>2]|0;
+ $555 = HEAP32[(18340)>>2]|0;
$556 = ($555|0)==(0|0);
L246: do {
if ($556) {
label = 163;
} else {
- $$0$i$i = (17548);
+ $$0$i$i = (18764);
while(1) {
$557 = HEAP32[$$0$i$i>>2]|0;
$558 = ($557>>>0)>($555>>>0);
@@ -21422,7 +30479,7 @@ function _malloc($0) {
$$2234253237$i = 0;
} else {
$568 = $566;
- $569 = HEAP32[(17576)>>2]|0;
+ $569 = HEAP32[(18792)>>2]|0;
$570 = (($569) + -1)|0;
$571 = $570 & $568;
$572 = ($571|0)==(0);
@@ -21432,13 +30489,13 @@ function _malloc($0) {
$576 = (($575) - ($568))|0;
$577 = $572 ? 0 : $576;
$$$i = (($577) + ($544))|0;
- $578 = HEAP32[(17532)>>2]|0;
+ $578 = HEAP32[(18748)>>2]|0;
$579 = (($$$i) + ($578))|0;
$580 = ($$$i>>>0)>($$0197>>>0);
$581 = ($$$i>>>0)<(2147483647);
$or$cond$i214 = $580 & $581;
if ($or$cond$i214) {
- $582 = HEAP32[(17540)>>2]|0;
+ $582 = HEAP32[(18756)>>2]|0;
$583 = ($582|0)==(0);
if (!($583)) {
$584 = ($579>>>0)<=($578>>>0);
@@ -21484,7 +30541,7 @@ function _malloc($0) {
break L244;
}
}
- $601 = HEAP32[(17580)>>2]|0;
+ $601 = HEAP32[(18796)>>2]|0;
$602 = (($540) - ($$2253$ph$i))|0;
$603 = (($602) + ($601))|0;
$604 = (0 - ($601))|0;
@@ -21509,9 +30566,9 @@ function _malloc($0) {
}
}
} while(0);
- $611 = HEAP32[(17544)>>2]|0;
+ $611 = HEAP32[(18760)>>2]|0;
$612 = $611 | 4;
- HEAP32[(17544)>>2] = $612;
+ HEAP32[(18760)>>2] = $612;
$$4236$i = $$2234253237$i;
label = 178;
} else {
@@ -21547,35 +30604,35 @@ function _malloc($0) {
}
}
if ((label|0) == 180) {
- $626 = HEAP32[(17532)>>2]|0;
+ $626 = HEAP32[(18748)>>2]|0;
$627 = (($626) + ($$723948$i))|0;
- HEAP32[(17532)>>2] = $627;
- $628 = HEAP32[(17536)>>2]|0;
+ HEAP32[(18748)>>2] = $627;
+ $628 = HEAP32[(18752)>>2]|0;
$629 = ($627>>>0)>($628>>>0);
if ($629) {
- HEAP32[(17536)>>2] = $627;
+ HEAP32[(18752)>>2] = $627;
}
- $630 = HEAP32[(17124)>>2]|0;
+ $630 = HEAP32[(18340)>>2]|0;
$631 = ($630|0)==(0|0);
do {
if ($631) {
- $632 = HEAP32[(17116)>>2]|0;
+ $632 = HEAP32[(18332)>>2]|0;
$633 = ($632|0)==(0|0);
$634 = ($$749$i>>>0)<($632>>>0);
$or$cond12$i = $633 | $634;
if ($or$cond12$i) {
- HEAP32[(17116)>>2] = $$749$i;
- }
- HEAP32[(17548)>>2] = $$749$i;
- HEAP32[(17552)>>2] = $$723948$i;
- HEAP32[(17560)>>2] = 0;
- $635 = HEAP32[4393]|0;
- HEAP32[(17136)>>2] = $635;
- HEAP32[(17132)>>2] = -1;
+ HEAP32[(18332)>>2] = $$749$i;
+ }
+ HEAP32[(18764)>>2] = $$749$i;
+ HEAP32[(18768)>>2] = $$723948$i;
+ HEAP32[(18776)>>2] = 0;
+ $635 = HEAP32[4697]|0;
+ HEAP32[(18352)>>2] = $635;
+ HEAP32[(18348)>>2] = -1;
$$01$i$i = 0;
while(1) {
$636 = $$01$i$i << 1;
- $637 = (17140 + ($636<<2)|0);
+ $637 = (18356 + ($636<<2)|0);
$638 = ((($637)) + 12|0);
HEAP32[$638>>2] = $637;
$639 = ((($637)) + 8|0);
@@ -21598,18 +30655,18 @@ function _malloc($0) {
$648 = $645 ? 0 : $647;
$649 = (($$749$i) + ($648)|0);
$650 = (($641) - ($648))|0;
- HEAP32[(17124)>>2] = $649;
- HEAP32[(17112)>>2] = $650;
+ HEAP32[(18340)>>2] = $649;
+ HEAP32[(18328)>>2] = $650;
$651 = $650 | 1;
$652 = ((($649)) + 4|0);
HEAP32[$652>>2] = $651;
$653 = (($649) + ($650)|0);
$654 = ((($653)) + 4|0);
HEAP32[$654>>2] = 40;
- $655 = HEAP32[(17588)>>2]|0;
- HEAP32[(17128)>>2] = $655;
+ $655 = HEAP32[(18804)>>2]|0;
+ HEAP32[(18344)>>2] = $655;
} else {
- $$024371$i = (17548);
+ $$024371$i = (18764);
while(1) {
$656 = HEAP32[$$024371$i>>2]|0;
$657 = ((($$024371$i)) + 4|0);
@@ -21641,7 +30698,7 @@ function _malloc($0) {
if ($or$cond51$i) {
$670 = (($658) + ($$723948$i))|0;
HEAP32[$657>>2] = $670;
- $671 = HEAP32[(17112)>>2]|0;
+ $671 = HEAP32[(18328)>>2]|0;
$672 = ((($630)) + 8|0);
$673 = $672;
$674 = $673 & 7;
@@ -21652,30 +30709,30 @@ function _malloc($0) {
$679 = (($630) + ($678)|0);
$680 = (($$723948$i) - ($678))|0;
$681 = (($671) + ($680))|0;
- HEAP32[(17124)>>2] = $679;
- HEAP32[(17112)>>2] = $681;
+ HEAP32[(18340)>>2] = $679;
+ HEAP32[(18328)>>2] = $681;
$682 = $681 | 1;
$683 = ((($679)) + 4|0);
HEAP32[$683>>2] = $682;
$684 = (($679) + ($681)|0);
$685 = ((($684)) + 4|0);
HEAP32[$685>>2] = 40;
- $686 = HEAP32[(17588)>>2]|0;
- HEAP32[(17128)>>2] = $686;
+ $686 = HEAP32[(18804)>>2]|0;
+ HEAP32[(18344)>>2] = $686;
break;
}
}
}
- $687 = HEAP32[(17116)>>2]|0;
+ $687 = HEAP32[(18332)>>2]|0;
$688 = ($$749$i>>>0)<($687>>>0);
if ($688) {
- HEAP32[(17116)>>2] = $$749$i;
+ HEAP32[(18332)>>2] = $$749$i;
$752 = $$749$i;
} else {
$752 = $687;
}
$689 = (($$749$i) + ($$723948$i)|0);
- $$124470$i = (17548);
+ $$124470$i = (18764);
while(1) {
$690 = HEAP32[$$124470$i>>2]|0;
$691 = ($690|0)==($689|0);
@@ -21730,21 +30787,21 @@ function _malloc($0) {
$725 = ($717|0)==($630|0);
do {
if ($725) {
- $726 = HEAP32[(17112)>>2]|0;
+ $726 = HEAP32[(18328)>>2]|0;
$727 = (($726) + ($722))|0;
- HEAP32[(17112)>>2] = $727;
- HEAP32[(17124)>>2] = $721;
+ HEAP32[(18328)>>2] = $727;
+ HEAP32[(18340)>>2] = $721;
$728 = $727 | 1;
$729 = ((($721)) + 4|0);
HEAP32[$729>>2] = $728;
} else {
- $730 = HEAP32[(17120)>>2]|0;
+ $730 = HEAP32[(18336)>>2]|0;
$731 = ($717|0)==($730|0);
if ($731) {
- $732 = HEAP32[(17108)>>2]|0;
+ $732 = HEAP32[(18324)>>2]|0;
$733 = (($732) + ($722))|0;
- HEAP32[(17108)>>2] = $733;
- HEAP32[(17120)>>2] = $721;
+ HEAP32[(18324)>>2] = $733;
+ HEAP32[(18336)>>2] = $721;
$734 = $733 | 1;
$735 = ((($721)) + 4|0);
HEAP32[$735>>2] = $734;
@@ -21767,7 +30824,7 @@ function _malloc($0) {
$746 = ((($717)) + 12|0);
$747 = HEAP32[$746>>2]|0;
$748 = $742 << 1;
- $749 = (17140 + ($748<<2)|0);
+ $749 = (18356 + ($748<<2)|0);
$750 = ($745|0)==($749|0);
do {
if (!($750)) {
@@ -21790,9 +30847,9 @@ function _malloc($0) {
if ($756) {
$757 = 1 << $742;
$758 = $757 ^ -1;
- $759 = HEAP32[4275]|0;
+ $759 = HEAP32[4579]|0;
$760 = $759 & $758;
- HEAP32[4275] = $760;
+ HEAP32[4579] = $760;
break;
}
$761 = ($747|0)==($749|0);
@@ -21905,7 +30962,7 @@ function _malloc($0) {
}
$795 = ((($717)) + 28|0);
$796 = HEAP32[$795>>2]|0;
- $797 = (17404 + ($796<<2)|0);
+ $797 = (18620 + ($796<<2)|0);
$798 = HEAP32[$797>>2]|0;
$799 = ($717|0)==($798|0);
do {
@@ -21917,12 +30974,12 @@ function _malloc($0) {
}
$800 = 1 << $796;
$801 = $800 ^ -1;
- $802 = HEAP32[(17104)>>2]|0;
+ $802 = HEAP32[(18320)>>2]|0;
$803 = $802 & $801;
- HEAP32[(17104)>>2] = $803;
+ HEAP32[(18320)>>2] = $803;
break L314;
} else {
- $804 = HEAP32[(17116)>>2]|0;
+ $804 = HEAP32[(18332)>>2]|0;
$805 = ($768>>>0)<($804>>>0);
if ($805) {
_abort();
@@ -21943,7 +31000,7 @@ function _malloc($0) {
}
}
} while(0);
- $810 = HEAP32[(17116)>>2]|0;
+ $810 = HEAP32[(18332)>>2]|0;
$811 = ($$3$i$i>>>0)<($810>>>0);
if ($811) {
_abort();
@@ -21975,7 +31032,7 @@ function _malloc($0) {
if ($821) {
break;
}
- $822 = HEAP32[(17116)>>2]|0;
+ $822 = HEAP32[(18332)>>2]|0;
$823 = ($820>>>0)<($822>>>0);
if ($823) {
_abort();
@@ -22008,21 +31065,21 @@ function _malloc($0) {
$835 = ($$0287$i$i>>>0)<(256);
if ($835) {
$836 = $834 << 1;
- $837 = (17140 + ($836<<2)|0);
- $838 = HEAP32[4275]|0;
+ $837 = (18356 + ($836<<2)|0);
+ $838 = HEAP32[4579]|0;
$839 = 1 << $834;
$840 = $838 & $839;
$841 = ($840|0)==(0);
do {
if ($841) {
$842 = $838 | $839;
- HEAP32[4275] = $842;
+ HEAP32[4579] = $842;
$$pre$i19$i = ((($837)) + 8|0);
$$0295$i$i = $837;$$pre$phi$i20$iZ2D = $$pre$i19$i;
} else {
$843 = ((($837)) + 8|0);
$844 = HEAP32[$843>>2]|0;
- $845 = HEAP32[(17116)>>2]|0;
+ $845 = HEAP32[(18332)>>2]|0;
$846 = ($844>>>0)<($845>>>0);
if (!($846)) {
$$0295$i$i = $844;$$pre$phi$i20$iZ2D = $843;
@@ -22077,20 +31134,20 @@ function _malloc($0) {
$$0296$i$i = $874;
}
} while(0);
- $875 = (17404 + ($$0296$i$i<<2)|0);
+ $875 = (18620 + ($$0296$i$i<<2)|0);
$876 = ((($721)) + 28|0);
HEAP32[$876>>2] = $$0296$i$i;
$877 = ((($721)) + 16|0);
$878 = ((($877)) + 4|0);
HEAP32[$878>>2] = 0;
HEAP32[$877>>2] = 0;
- $879 = HEAP32[(17104)>>2]|0;
+ $879 = HEAP32[(18320)>>2]|0;
$880 = 1 << $$0296$i$i;
$881 = $879 & $880;
$882 = ($881|0)==(0);
if ($882) {
$883 = $879 | $880;
- HEAP32[(17104)>>2] = $883;
+ HEAP32[(18320)>>2] = $883;
HEAP32[$875>>2] = $721;
$884 = ((($721)) + 24|0);
HEAP32[$884>>2] = $875;
@@ -22129,7 +31186,7 @@ function _malloc($0) {
}
}
if ((label|0) == 262) {
- $902 = HEAP32[(17116)>>2]|0;
+ $902 = HEAP32[(18332)>>2]|0;
$903 = ($898>>>0)<($902>>>0);
if ($903) {
_abort();
@@ -22148,7 +31205,7 @@ function _malloc($0) {
else if ((label|0) == 265) {
$907 = ((($$0289$i$i)) + 8|0);
$908 = HEAP32[$907>>2]|0;
- $909 = HEAP32[(17116)>>2]|0;
+ $909 = HEAP32[(18332)>>2]|0;
$910 = ($908>>>0)>=($909>>>0);
$not$7$i$i = ($$0289$i$i>>>0)>=($909>>>0);
$911 = $910 & $not$7$i$i;
@@ -22175,7 +31232,7 @@ function _malloc($0) {
STACKTOP = sp;return ($$0|0);
}
}
- $$0$i$i$i = (17548);
+ $$0$i$i$i = (18764);
while(1) {
$916 = HEAP32[$$0$i$i$i>>2]|0;
$917 = ($916>>>0)>($630>>>0);
@@ -22216,23 +31273,23 @@ function _malloc($0) {
$945 = $942 ? 0 : $944;
$946 = (($$749$i) + ($945)|0);
$947 = (($938) - ($945))|0;
- HEAP32[(17124)>>2] = $946;
- HEAP32[(17112)>>2] = $947;
+ HEAP32[(18340)>>2] = $946;
+ HEAP32[(18328)>>2] = $947;
$948 = $947 | 1;
$949 = ((($946)) + 4|0);
HEAP32[$949>>2] = $948;
$950 = (($946) + ($947)|0);
$951 = ((($950)) + 4|0);
HEAP32[$951>>2] = 40;
- $952 = HEAP32[(17588)>>2]|0;
- HEAP32[(17128)>>2] = $952;
+ $952 = HEAP32[(18804)>>2]|0;
+ HEAP32[(18344)>>2] = $952;
$953 = ((($935)) + 4|0);
HEAP32[$953>>2] = 27;
- ;HEAP32[$936>>2]=HEAP32[(17548)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(17548)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(17548)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(17548)+12>>2]|0;
- HEAP32[(17548)>>2] = $$749$i;
- HEAP32[(17552)>>2] = $$723948$i;
- HEAP32[(17560)>>2] = 0;
- HEAP32[(17556)>>2] = $936;
+ ;HEAP32[$936>>2]=HEAP32[(18764)>>2]|0;HEAP32[$936+4>>2]=HEAP32[(18764)+4>>2]|0;HEAP32[$936+8>>2]=HEAP32[(18764)+8>>2]|0;HEAP32[$936+12>>2]=HEAP32[(18764)+12>>2]|0;
+ HEAP32[(18764)>>2] = $$749$i;
+ HEAP32[(18768)>>2] = $$723948$i;
+ HEAP32[(18776)>>2] = 0;
+ HEAP32[(18772)>>2] = $936;
$955 = $937;
while(1) {
$954 = ((($955)) + 4|0);
@@ -22261,20 +31318,20 @@ function _malloc($0) {
$967 = ($961>>>0)<(256);
if ($967) {
$968 = $966 << 1;
- $969 = (17140 + ($968<<2)|0);
- $970 = HEAP32[4275]|0;
+ $969 = (18356 + ($968<<2)|0);
+ $970 = HEAP32[4579]|0;
$971 = 1 << $966;
$972 = $970 & $971;
$973 = ($972|0)==(0);
if ($973) {
$974 = $970 | $971;
- HEAP32[4275] = $974;
+ HEAP32[4579] = $974;
$$pre$i$i = ((($969)) + 8|0);
$$0211$i$i = $969;$$pre$phi$i$iZ2D = $$pre$i$i;
} else {
$975 = ((($969)) + 8|0);
$976 = HEAP32[$975>>2]|0;
- $977 = HEAP32[(17116)>>2]|0;
+ $977 = HEAP32[(18332)>>2]|0;
$978 = ($976>>>0)<($977>>>0);
if ($978) {
_abort();
@@ -22326,19 +31383,19 @@ function _malloc($0) {
$$0212$i$i = $1006;
}
}
- $1007 = (17404 + ($$0212$i$i<<2)|0);
+ $1007 = (18620 + ($$0212$i$i<<2)|0);
$1008 = ((($630)) + 28|0);
HEAP32[$1008>>2] = $$0212$i$i;
$1009 = ((($630)) + 20|0);
HEAP32[$1009>>2] = 0;
HEAP32[$933>>2] = 0;
- $1010 = HEAP32[(17104)>>2]|0;
+ $1010 = HEAP32[(18320)>>2]|0;
$1011 = 1 << $$0212$i$i;
$1012 = $1010 & $1011;
$1013 = ($1012|0)==(0);
if ($1013) {
$1014 = $1010 | $1011;
- HEAP32[(17104)>>2] = $1014;
+ HEAP32[(18320)>>2] = $1014;
HEAP32[$1007>>2] = $630;
$1015 = ((($630)) + 24|0);
HEAP32[$1015>>2] = $1007;
@@ -22377,7 +31434,7 @@ function _malloc($0) {
}
}
if ((label|0) == 289) {
- $1033 = HEAP32[(17116)>>2]|0;
+ $1033 = HEAP32[(18332)>>2]|0;
$1034 = ($1029>>>0)<($1033>>>0);
if ($1034) {
_abort();
@@ -22396,7 +31453,7 @@ function _malloc($0) {
else if ((label|0) == 292) {
$1038 = ((($$0207$i$i)) + 8|0);
$1039 = HEAP32[$1038>>2]|0;
- $1040 = HEAP32[(17116)>>2]|0;
+ $1040 = HEAP32[(18332)>>2]|0;
$1041 = ($1039>>>0)>=($1040>>>0);
$not$$i$i = ($$0207$i$i>>>0)>=($1040>>>0);
$1042 = $1041 & $not$$i$i;
@@ -22419,14 +31476,14 @@ function _malloc($0) {
}
}
} while(0);
- $1048 = HEAP32[(17112)>>2]|0;
+ $1048 = HEAP32[(18328)>>2]|0;
$1049 = ($1048>>>0)>($$0197>>>0);
if ($1049) {
$1050 = (($1048) - ($$0197))|0;
- HEAP32[(17112)>>2] = $1050;
- $1051 = HEAP32[(17124)>>2]|0;
+ HEAP32[(18328)>>2] = $1050;
+ $1051 = HEAP32[(18340)>>2]|0;
$1052 = (($1051) + ($$0197)|0);
- HEAP32[(17124)>>2] = $1052;
+ HEAP32[(18340)>>2] = $1052;
$1053 = $1050 | 1;
$1054 = ((($1052)) + 4|0);
HEAP32[$1054>>2] = $1053;
@@ -22469,7 +31526,7 @@ function _free($0) {
return;
}
$2 = ((($0)) + -8|0);
- $3 = HEAP32[(17116)>>2]|0;
+ $3 = HEAP32[(18332)>>2]|0;
$4 = ($2>>>0)<($3>>>0);
if ($4) {
_abort();
@@ -22502,7 +31559,7 @@ function _free($0) {
_abort();
// unreachable;
}
- $19 = HEAP32[(17120)>>2]|0;
+ $19 = HEAP32[(18336)>>2]|0;
$20 = ($16|0)==($19|0);
if ($20) {
$104 = ((($10)) + 4|0);
@@ -22517,7 +31574,7 @@ function _free($0) {
$109 = ((($16)) + 4|0);
$110 = $17 | 1;
$111 = $105 & -2;
- HEAP32[(17108)>>2] = $17;
+ HEAP32[(18324)>>2] = $17;
HEAP32[$104>>2] = $111;
HEAP32[$109>>2] = $110;
HEAP32[$108>>2] = $17;
@@ -22531,7 +31588,7 @@ function _free($0) {
$25 = ((($16)) + 12|0);
$26 = HEAP32[$25>>2]|0;
$27 = $21 << 1;
- $28 = (17140 + ($27<<2)|0);
+ $28 = (18356 + ($27<<2)|0);
$29 = ($24|0)==($28|0);
if (!($29)) {
$30 = ($24>>>0)<($3>>>0);
@@ -22551,9 +31608,9 @@ function _free($0) {
if ($34) {
$35 = 1 << $21;
$36 = $35 ^ -1;
- $37 = HEAP32[4275]|0;
+ $37 = HEAP32[4579]|0;
$38 = $37 & $36;
- HEAP32[4275] = $38;
+ HEAP32[4579] = $38;
$$1 = $16;$$1382 = $17;$113 = $16;
break;
}
@@ -22667,7 +31724,7 @@ function _free($0) {
} else {
$73 = ((($16)) + 28|0);
$74 = HEAP32[$73>>2]|0;
- $75 = (17404 + ($74<<2)|0);
+ $75 = (18620 + ($74<<2)|0);
$76 = HEAP32[$75>>2]|0;
$77 = ($16|0)==($76|0);
do {
@@ -22677,14 +31734,14 @@ function _free($0) {
if ($cond421) {
$78 = 1 << $74;
$79 = $78 ^ -1;
- $80 = HEAP32[(17104)>>2]|0;
+ $80 = HEAP32[(18320)>>2]|0;
$81 = $80 & $79;
- HEAP32[(17104)>>2] = $81;
+ HEAP32[(18320)>>2] = $81;
$$1 = $16;$$1382 = $17;$113 = $16;
break L10;
}
} else {
- $82 = HEAP32[(17116)>>2]|0;
+ $82 = HEAP32[(18332)>>2]|0;
$83 = ($46>>>0)<($82>>>0);
if ($83) {
_abort();
@@ -22706,7 +31763,7 @@ function _free($0) {
}
}
} while(0);
- $88 = HEAP32[(17116)>>2]|0;
+ $88 = HEAP32[(18332)>>2]|0;
$89 = ($$3>>>0)<($88>>>0);
if ($89) {
_abort();
@@ -22738,7 +31795,7 @@ function _free($0) {
if ($99) {
$$1 = $16;$$1382 = $17;$113 = $16;
} else {
- $100 = HEAP32[(17116)>>2]|0;
+ $100 = HEAP32[(18332)>>2]|0;
$101 = ($98>>>0)<($100>>>0);
if ($101) {
_abort();
@@ -22773,14 +31830,14 @@ function _free($0) {
$118 = $115 & 2;
$119 = ($118|0)==(0);
if ($119) {
- $120 = HEAP32[(17124)>>2]|0;
+ $120 = HEAP32[(18340)>>2]|0;
$121 = ($10|0)==($120|0);
- $122 = HEAP32[(17120)>>2]|0;
+ $122 = HEAP32[(18336)>>2]|0;
if ($121) {
- $123 = HEAP32[(17112)>>2]|0;
+ $123 = HEAP32[(18328)>>2]|0;
$124 = (($123) + ($$1382))|0;
- HEAP32[(17112)>>2] = $124;
- HEAP32[(17124)>>2] = $$1;
+ HEAP32[(18328)>>2] = $124;
+ HEAP32[(18340)>>2] = $$1;
$125 = $124 | 1;
$126 = ((($$1)) + 4|0);
HEAP32[$126>>2] = $125;
@@ -22788,16 +31845,16 @@ function _free($0) {
if (!($127)) {
return;
}
- HEAP32[(17120)>>2] = 0;
- HEAP32[(17108)>>2] = 0;
+ HEAP32[(18336)>>2] = 0;
+ HEAP32[(18324)>>2] = 0;
return;
}
$128 = ($10|0)==($122|0);
if ($128) {
- $129 = HEAP32[(17108)>>2]|0;
+ $129 = HEAP32[(18324)>>2]|0;
$130 = (($129) + ($$1382))|0;
- HEAP32[(17108)>>2] = $130;
- HEAP32[(17120)>>2] = $113;
+ HEAP32[(18324)>>2] = $130;
+ HEAP32[(18336)>>2] = $113;
$131 = $130 | 1;
$132 = ((($$1)) + 4|0);
HEAP32[$132>>2] = $131;
@@ -22816,10 +31873,10 @@ function _free($0) {
$140 = ((($10)) + 12|0);
$141 = HEAP32[$140>>2]|0;
$142 = $136 << 1;
- $143 = (17140 + ($142<<2)|0);
+ $143 = (18356 + ($142<<2)|0);
$144 = ($139|0)==($143|0);
if (!($144)) {
- $145 = HEAP32[(17116)>>2]|0;
+ $145 = HEAP32[(18332)>>2]|0;
$146 = ($139>>>0)<($145>>>0);
if ($146) {
_abort();
@@ -22837,9 +31894,9 @@ function _free($0) {
if ($150) {
$151 = 1 << $136;
$152 = $151 ^ -1;
- $153 = HEAP32[4275]|0;
+ $153 = HEAP32[4579]|0;
$154 = $153 & $152;
- HEAP32[4275] = $154;
+ HEAP32[4579] = $154;
break;
}
$155 = ($141|0)==($143|0);
@@ -22847,7 +31904,7 @@ function _free($0) {
$$pre442 = ((($141)) + 8|0);
$$pre$phi443Z2D = $$pre442;
} else {
- $156 = HEAP32[(17116)>>2]|0;
+ $156 = HEAP32[(18332)>>2]|0;
$157 = ($141>>>0)<($156>>>0);
if ($157) {
_abort();
@@ -22907,7 +31964,7 @@ function _free($0) {
$$1398 = $187;$$1402 = $186;
}
}
- $189 = HEAP32[(17116)>>2]|0;
+ $189 = HEAP32[(18332)>>2]|0;
$190 = ($$1402>>>0)<($189>>>0);
if ($190) {
_abort();
@@ -22920,7 +31977,7 @@ function _free($0) {
} else {
$167 = ((($10)) + 8|0);
$168 = HEAP32[$167>>2]|0;
- $169 = HEAP32[(17116)>>2]|0;
+ $169 = HEAP32[(18332)>>2]|0;
$170 = ($168>>>0)<($169>>>0);
if ($170) {
_abort();
@@ -22951,7 +32008,7 @@ function _free($0) {
if (!($191)) {
$192 = ((($10)) + 28|0);
$193 = HEAP32[$192>>2]|0;
- $194 = (17404 + ($193<<2)|0);
+ $194 = (18620 + ($193<<2)|0);
$195 = HEAP32[$194>>2]|0;
$196 = ($10|0)==($195|0);
do {
@@ -22961,13 +32018,13 @@ function _free($0) {
if ($cond422) {
$197 = 1 << $193;
$198 = $197 ^ -1;
- $199 = HEAP32[(17104)>>2]|0;
+ $199 = HEAP32[(18320)>>2]|0;
$200 = $199 & $198;
- HEAP32[(17104)>>2] = $200;
+ HEAP32[(18320)>>2] = $200;
break L108;
}
} else {
- $201 = HEAP32[(17116)>>2]|0;
+ $201 = HEAP32[(18332)>>2]|0;
$202 = ($163>>>0)<($201>>>0);
if ($202) {
_abort();
@@ -22988,7 +32045,7 @@ function _free($0) {
}
}
} while(0);
- $207 = HEAP32[(17116)>>2]|0;
+ $207 = HEAP32[(18332)>>2]|0;
$208 = ($$3400>>>0)<($207>>>0);
if ($208) {
_abort();
@@ -23018,7 +32075,7 @@ function _free($0) {
$217 = HEAP32[$216>>2]|0;
$218 = ($217|0)==(0|0);
if (!($218)) {
- $219 = HEAP32[(17116)>>2]|0;
+ $219 = HEAP32[(18332)>>2]|0;
$220 = ($217>>>0)<($219>>>0);
if ($220) {
_abort();
@@ -23039,10 +32096,10 @@ function _free($0) {
HEAP32[$224>>2] = $223;
$225 = (($113) + ($135)|0);
HEAP32[$225>>2] = $135;
- $226 = HEAP32[(17120)>>2]|0;
+ $226 = HEAP32[(18336)>>2]|0;
$227 = ($$1|0)==($226|0);
if ($227) {
- HEAP32[(17108)>>2] = $135;
+ HEAP32[(18324)>>2] = $135;
return;
} else {
$$2 = $135;
@@ -23061,20 +32118,20 @@ function _free($0) {
$233 = ($$2>>>0)<(256);
if ($233) {
$234 = $232 << 1;
- $235 = (17140 + ($234<<2)|0);
- $236 = HEAP32[4275]|0;
+ $235 = (18356 + ($234<<2)|0);
+ $236 = HEAP32[4579]|0;
$237 = 1 << $232;
$238 = $236 & $237;
$239 = ($238|0)==(0);
if ($239) {
$240 = $236 | $237;
- HEAP32[4275] = $240;
+ HEAP32[4579] = $240;
$$pre = ((($235)) + 8|0);
$$0403 = $235;$$pre$phiZ2D = $$pre;
} else {
$241 = ((($235)) + 8|0);
$242 = HEAP32[$241>>2]|0;
- $243 = HEAP32[(17116)>>2]|0;
+ $243 = HEAP32[(18332)>>2]|0;
$244 = ($242>>>0)<($243>>>0);
if ($244) {
_abort();
@@ -23126,21 +32183,21 @@ function _free($0) {
$$0396 = $272;
}
}
- $273 = (17404 + ($$0396<<2)|0);
+ $273 = (18620 + ($$0396<<2)|0);
$274 = ((($$1)) + 28|0);
HEAP32[$274>>2] = $$0396;
$275 = ((($$1)) + 16|0);
$276 = ((($$1)) + 20|0);
HEAP32[$276>>2] = 0;
HEAP32[$275>>2] = 0;
- $277 = HEAP32[(17104)>>2]|0;
+ $277 = HEAP32[(18320)>>2]|0;
$278 = 1 << $$0396;
$279 = $277 & $278;
$280 = ($279|0)==(0);
do {
if ($280) {
$281 = $277 | $278;
- HEAP32[(17104)>>2] = $281;
+ HEAP32[(18320)>>2] = $281;
HEAP32[$273>>2] = $$1;
$282 = ((($$1)) + 24|0);
HEAP32[$282>>2] = $273;
@@ -23178,7 +32235,7 @@ function _free($0) {
}
}
if ((label|0) == 121) {
- $300 = HEAP32[(17116)>>2]|0;
+ $300 = HEAP32[(18332)>>2]|0;
$301 = ($296>>>0)<($300>>>0);
if ($301) {
_abort();
@@ -23197,7 +32254,7 @@ function _free($0) {
else if ((label|0) == 124) {
$305 = ((($$0384)) + 8|0);
$306 = HEAP32[$305>>2]|0;
- $307 = HEAP32[(17116)>>2]|0;
+ $307 = HEAP32[(18332)>>2]|0;
$308 = ($306>>>0)>=($307>>>0);
$not$437 = ($$0384>>>0)>=($307>>>0);
$309 = $308 & $not$437;
@@ -23219,12 +32276,12 @@ function _free($0) {
}
}
} while(0);
- $314 = HEAP32[(17132)>>2]|0;
+ $314 = HEAP32[(18348)>>2]|0;
$315 = (($314) + -1)|0;
- HEAP32[(17132)>>2] = $315;
+ HEAP32[(18348)>>2] = $315;
$316 = ($315|0)==(0);
if ($316) {
- $$0212$in$i = (17556);
+ $$0212$in$i = (18772);
} else {
return;
}
@@ -23238,79 +32295,11 @@ function _free($0) {
$$0212$in$i = $318;
}
}
- HEAP32[(17132)>>2] = -1;
+ HEAP32[(18348)>>2] = -1;
return;
}
function runPostSets() {
}
-function _memset(ptr, value, num) {
- ptr = ptr|0; value = value|0; num = num|0;
- var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0;
- end = (ptr + num)|0;
-
- value = value & 0xff;
- if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) {
- while ((ptr&3) != 0) {
- HEAP8[((ptr)>>0)]=value;
- ptr = (ptr+1)|0;
- }
-
- aligned_end = (end & -4)|0;
- block_aligned_end = (aligned_end - 64)|0;
- value4 = value | (value << 8) | (value << 16) | (value << 24);
-
- while((ptr|0) <= (block_aligned_end|0)) {
- HEAP32[((ptr)>>2)]=value4;
- HEAP32[(((ptr)+(4))>>2)]=value4;
- HEAP32[(((ptr)+(8))>>2)]=value4;
- HEAP32[(((ptr)+(12))>>2)]=value4;
- HEAP32[(((ptr)+(16))>>2)]=value4;
- HEAP32[(((ptr)+(20))>>2)]=value4;
- HEAP32[(((ptr)+(24))>>2)]=value4;
- HEAP32[(((ptr)+(28))>>2)]=value4;
- HEAP32[(((ptr)+(32))>>2)]=value4;
- HEAP32[(((ptr)+(36))>>2)]=value4;
- HEAP32[(((ptr)+(40))>>2)]=value4;
- HEAP32[(((ptr)+(44))>>2)]=value4;
- HEAP32[(((ptr)+(48))>>2)]=value4;
- HEAP32[(((ptr)+(52))>>2)]=value4;
- HEAP32[(((ptr)+(56))>>2)]=value4;
- HEAP32[(((ptr)+(60))>>2)]=value4;
- ptr = (ptr + 64)|0;
- }
-
- while ((ptr|0) < (aligned_end|0) ) {
- HEAP32[((ptr)>>2)]=value4;
- ptr = (ptr+4)|0;
- }
- }
- // The remaining bytes.
- while ((ptr|0) < (end|0)) {
- HEAP8[((ptr)>>0)]=value;
- ptr = (ptr+1)|0;
- }
- return (end-num)|0;
-}
-function _i64Subtract(a, b, c, d) {
- a = a|0; b = b|0; c = c|0; d = d|0;
- var l = 0, h = 0;
- l = (a - c)>>>0;
- h = (b - d)>>>0;
- h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
- return ((tempRet0 = h,l|0)|0);
-}
-function _i64Add(a, b, c, d) {
- /*
- x = a + b*2^32
- y = c + d*2^32
- result = l + h*2^32
- */
- a = a|0; b = b|0; c = c|0; d = d|0;
- var l = 0, h = 0;
- l = (a + c)>>>0;
- h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
- return ((tempRet0 = h,l|0)|0);
-}
function _memcpy(dest, src, num) {
dest = dest|0; src = src|0; num = num|0;
var ret = 0;
@@ -23382,6 +32371,74 @@ function _memcpy(dest, src, num) {
}
return ret|0;
}
+function _memset(ptr, value, num) {
+ ptr = ptr|0; value = value|0; num = num|0;
+ var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0;
+ end = (ptr + num)|0;
+
+ value = value & 0xff;
+ if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) {
+ while ((ptr&3) != 0) {
+ HEAP8[((ptr)>>0)]=value;
+ ptr = (ptr+1)|0;
+ }
+
+ aligned_end = (end & -4)|0;
+ block_aligned_end = (aligned_end - 64)|0;
+ value4 = value | (value << 8) | (value << 16) | (value << 24);
+
+ while((ptr|0) <= (block_aligned_end|0)) {
+ HEAP32[((ptr)>>2)]=value4;
+ HEAP32[(((ptr)+(4))>>2)]=value4;
+ HEAP32[(((ptr)+(8))>>2)]=value4;
+ HEAP32[(((ptr)+(12))>>2)]=value4;
+ HEAP32[(((ptr)+(16))>>2)]=value4;
+ HEAP32[(((ptr)+(20))>>2)]=value4;
+ HEAP32[(((ptr)+(24))>>2)]=value4;
+ HEAP32[(((ptr)+(28))>>2)]=value4;
+ HEAP32[(((ptr)+(32))>>2)]=value4;
+ HEAP32[(((ptr)+(36))>>2)]=value4;
+ HEAP32[(((ptr)+(40))>>2)]=value4;
+ HEAP32[(((ptr)+(44))>>2)]=value4;
+ HEAP32[(((ptr)+(48))>>2)]=value4;
+ HEAP32[(((ptr)+(52))>>2)]=value4;
+ HEAP32[(((ptr)+(56))>>2)]=value4;
+ HEAP32[(((ptr)+(60))>>2)]=value4;
+ ptr = (ptr + 64)|0;
+ }
+
+ while ((ptr|0) < (aligned_end|0) ) {
+ HEAP32[((ptr)>>2)]=value4;
+ ptr = (ptr+4)|0;
+ }
+ }
+ // The remaining bytes.
+ while ((ptr|0) < (end|0)) {
+ HEAP8[((ptr)>>0)]=value;
+ ptr = (ptr+1)|0;
+ }
+ return (end-num)|0;
+}
+function _i64Subtract(a, b, c, d) {
+ a = a|0; b = b|0; c = c|0; d = d|0;
+ var l = 0, h = 0;
+ l = (a - c)>>>0;
+ h = (b - d)>>>0;
+ h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow.
+ return ((tempRet0 = h,l|0)|0);
+}
+function _i64Add(a, b, c, d) {
+ /*
+ x = a + b*2^32
+ y = c + d*2^32
+ result = l + h*2^32
+ */
+ a = a|0; b = b|0; c = c|0; d = d|0;
+ var l = 0, h = 0;
+ l = (a + c)>>>0;
+ h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow.
+ return ((tempRet0 = h,l|0)|0);
+}
function _memmove(dest, src, num) {
dest = dest|0; src = src|0; num = num|0;
var ret = 0;
@@ -23761,7 +32818,7 @@ function dynCall_vidd(index,a1,a2,a3) {
function dynCall_iiii(index,a1,a2,a3) {
index = index|0;
a1=a1|0; a2=a2|0; a3=a3|0;
- return FUNCTION_TABLE_iiii[index&7](a1|0,a2|0,a3|0)|0;
+ return FUNCTION_TABLE_iiii[index&15](a1|0,a2|0,a3|0)|0;
}
@@ -24457,7 +33514,7 @@ var FUNCTION_TABLE_vii = [b4,_ErrorCallback,_CursorEnterCallback,_CharCallback,_
var FUNCTION_TABLE_ii = [b5,___stdio_close,_emscripten_glGetString__wrapper,_emscripten_glIsTexture__wrapper,_emscripten_glIsBuffer__wrapper,_emscripten_glIsRenderbuffer__wrapper,_emscripten_glCreateShader__wrapper,_emscripten_glIsShader__wrapper,_emscripten_glIsProgram__wrapper,_emscripten_glIsFramebuffer__wrapper,_emscripten_glCheckFramebufferStatus__wrapper,_emscripten_glIsEnabled__wrapper,b5,b5,b5,b5];
var FUNCTION_TABLE_viddd = [b6,_emscripten_glUniform3f__wrapper,_emscripten_glVertexAttrib3f__wrapper,b6];
var FUNCTION_TABLE_vidd = [b7,_MouseCursorPosCallback,_ScrollCallback,_emscripten_glUniform2f__wrapper,_emscripten_glVertexAttrib2f__wrapper,b7,b7,b7];
-var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenInputCallback,_EmscriptenGamepadCallback,___stdio_write];
+var FUNCTION_TABLE_iiii = [b8,___stdout_write,___stdio_seek,_sn_write,_EmscriptenFullscreenChangeCallback,_EmscriptenInputCallback,_EmscriptenGamepadCallback,___stdio_write,___stdio_read,b8,b8,b8,b8,b8,b8,b8];
var FUNCTION_TABLE_viiiiiiii = [b9,_emscripten_glCompressedTexImage2D__wrapper,_emscripten_glCopyTexImage2D__wrapper,_emscripten_glCopyTexSubImage2D__wrapper];
var FUNCTION_TABLE_viiiiii = [b10,_emscripten_glDrawRangeElements__wrapper,_emscripten_glVertexAttribPointer__wrapper,b10];
var FUNCTION_TABLE_viii = [b11,_WindowSizeCallback,_emscripten_glGetTexParameterfv__wrapper,_emscripten_glGetTexParameteriv__wrapper,_emscripten_glTexParameterfv__wrapper,_emscripten_glTexParameteriv__wrapper,_emscripten_glGetBufferParameteriv__wrapper,_emscripten_glGetRenderbufferParameteriv__wrapper,_emscripten_glGetUniformfv__wrapper,_emscripten_glGetUniformiv__wrapper,_emscripten_glGetVertexAttribfv__wrapper,_emscripten_glGetVertexAttribiv__wrapper,_emscripten_glGetVertexAttribPointerv__wrapper,_emscripten_glUniform2i__wrapper,_emscripten_glUniform1iv__wrapper,_emscripten_glUniform2iv__wrapper,_emscripten_glUniform3iv__wrapper,_emscripten_glUniform4iv__wrapper,_emscripten_glUniform1fv__wrapper,_emscripten_glUniform2fv__wrapper,_emscripten_glUniform3fv__wrapper,_emscripten_glUniform4fv__wrapper,_emscripten_glGetShaderiv__wrapper,_emscripten_glGetProgramiv__wrapper,_emscripten_glBindAttribLocation__wrapper,_emscripten_glGetObjectParameterivARB__wrapper,_emscripten_glNormalPointer__wrapper,_emscripten_glDrawArrays__wrapper,_emscripten_glTexParameteri__wrapper,_emscripten_glStencilFunc__wrapper,_emscripten_glStencilOp__wrapper,b11];
@@ -24470,11 +33527,11 @@ var FUNCTION_TABLE_i = [b17,_emscripten_glCreateProgram__wrapper,_emscripten_glG
var FUNCTION_TABLE_vdddddd = [b18,_emscripten_glFrustum__wrapper];
var FUNCTION_TABLE_vdddd = [b19,_emscripten_glRotatef__wrapper,_emscripten_glClearColor__wrapper,_emscripten_glBlendColor__wrapper];
var FUNCTION_TABLE_vdd = [b20,_emscripten_glDepthRange__wrapper,_emscripten_glDepthRangef__wrapper,_emscripten_glPolygonOffset__wrapper];
-var FUNCTION_TABLE_v = [b21,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21,b21];
+var FUNCTION_TABLE_v = [b21,_UpdateDrawFrame,_emscripten_glLoadIdentity__wrapper,_emscripten_glReleaseShaderCompiler__wrapper,_emscripten_glFinish__wrapper,_emscripten_glFlush__wrapper,b21,b21];
var FUNCTION_TABLE_viid = [b22,_emscripten_glTexParameterf__wrapper];
var FUNCTION_TABLE_viiii = [b23,_MouseButtonCallback,_emscripten_glBufferData__wrapper,_emscripten_glBufferSubData__wrapper,_emscripten_glUniform3i__wrapper,_emscripten_glUniformMatrix2fv__wrapper,_emscripten_glUniformMatrix3fv__wrapper,_emscripten_glUniformMatrix4fv__wrapper,_emscripten_glGetAttachedShaders__wrapper,_emscripten_glShaderSource__wrapper,_emscripten_glGetShaderSource__wrapper,_emscripten_glGetShaderInfoLog__wrapper,_emscripten_glGetShaderPrecisionFormat__wrapper,_emscripten_glGetProgramInfoLog__wrapper,_emscripten_glFramebufferRenderbuffer__wrapper,_emscripten_glGetFramebufferAttachmentParameteriv__wrapper,_emscripten_glGetInfoLogARB__wrapper,_emscripten_glVertexPointer__wrapper,_emscripten_glTexCoordPointer__wrapper,_emscripten_glColorPointer__wrapper,_emscripten_glDrawElements__wrapper,_emscripten_glDrawArraysInstanced__wrapper,_emscripten_glViewport__wrapper,_emscripten_glScissor__wrapper,_emscripten_glColorMask__wrapper,_emscripten_glRenderbufferStorage__wrapper,_emscripten_glBlendFuncSeparate__wrapper,_emscripten_glStencilFuncSeparate__wrapper,_emscripten_glStencilOpSeparate__wrapper,b23,b23,b23];
- return { _roundf: _roundf, _main: _main, _llvm_cttz_i32: _llvm_cttz_i32, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii };
+ return { _roundf: _roundf, _main: _main, _llvm_cttz_i32: _llvm_cttz_i32, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _memset: _memset, _sbrk: _sbrk, _memcpy: _memcpy, ___errno_location: ___errno_location, ___uremdi3: ___uremdi3, _i64Subtract: _i64Subtract, ___udivmoddi4: ___udivmoddi4, _i64Add: _i64Add, _emscripten_get_global_libc: _emscripten_get_global_libc, _emscripten_GetProcAddress: _emscripten_GetProcAddress, ___udivdi3: ___udivdi3, _llvm_bswap_i32: _llvm_bswap_i32, _free: _free, _memmove: _memmove, _strstr: _strstr, _malloc: _malloc, runPostSets: runPostSets, _emscripten_replace_memory: _emscripten_replace_memory, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setTempRet0: setTempRet0, getTempRet0: getTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_viiiii: dynCall_viiiii, dynCall_vd: dynCall_vd, dynCall_vid: dynCall_vid, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_viddd: dynCall_viddd, dynCall_vidd: dynCall_vidd, dynCall_iiii: dynCall_iiii, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_viiiiii: dynCall_viiiiii, dynCall_viii: dynCall_viii, dynCall_vidddd: dynCall_vidddd, dynCall_vdi: dynCall_vdi, dynCall_viiiiiii: dynCall_viiiiiii, dynCall_viiiiiiiii: dynCall_viiiiiiiii, dynCall_iii: dynCall_iii, dynCall_i: dynCall_i, dynCall_vdddddd: dynCall_vdddddd, dynCall_vdddd: dynCall_vdddd, dynCall_vdd: dynCall_vdd, dynCall_v: dynCall_v, dynCall_viid: dynCall_viid, dynCall_viiii: dynCall_viiii };
})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg, Module.asmLibraryArg, buffer);
@@ -24670,6 +33727,7 @@ var _memmove = Module["_memmove"] = asm["_memmove"];
var _strstr = Module["_strstr"] = asm["_strstr"];
var stackRestore = Module["stackRestore"] = asm["stackRestore"];
var _malloc = Module["_malloc"] = asm["_malloc"];
+var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"];
var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
var dynCall_vd = Module["dynCall_vd"] = asm["dynCall_vd"];
var dynCall_vid = Module["dynCall_vid"] = asm["dynCall_vid"];