// This file is part of meshoptimizer library and is distributed under the terms of MIT License. // Copyright (C) 2016-2023, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) var MeshoptDecoder = (function () { "use strict"; var instance = {}; var ready = Promise.resolve().then(function () { instance.exports = instantiate({// env abort: function (msg, file, line, column) { throw Error("abort: " + msg + " at " + file + ":" + line + ":" + column); }, }); instance.exports.__wasm_call_ctors(); }); function unpack(data) { var result = new Uint8Array(data.length); for (var i = 0; i < data.length; ++i) { var ch = data.charCodeAt(i); result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4; } var write = 0; for (var i = 0; i < data.length; ++i) { result[write++] = (result[i] < 60) ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i]; } return result.buffer.slice(0, write); } function decode(fun, target, count, size, source, filter) { var sbrk = instance.exports.sbrk; var count4 = (count + 3) & ~3; var tp = sbrk(count4 * size); var sp = sbrk(source.length); var heap = new Uint8Array(instance.exports.memory.buffer); heap.set(source, sp); var res = fun(tp, count, size, sp, source.length); if (res == 0 && filter) { filter(tp, count4, size); } target.set(heap.subarray(tp, tp + count * size)); sbrk(tp - sbrk(0)); if (res != 0) { throw new Error("Malformed buffer data: " + res); } } var filters = { NONE: "", OCTAHEDRAL: "meshopt_decodeFilterOct", QUATERNION: "meshopt_decodeFilterQuat", EXPONENTIAL: "meshopt_decodeFilterExp", }; var decoders = { ATTRIBUTES: "meshopt_decodeVertexBuffer", TRIANGLES: "meshopt_decodeIndexBuffer", INDICES: "meshopt_decodeIndexSequence", }; var workers = []; var requestId = 0; function createWorker(url) { var worker = { object: new Worker(url), pending: 0, requests: {} }; worker.object.onmessage = function (event) { var data = event.data; worker.pending -= data.count; worker.requests[data.id][data.action](data.value); delete worker.requests[data.id]; }; return worker; } function initWorkers(count) { var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });" + "self.onmessage = workerProcess;" + decode.toString() + workerProcess.toString(); var blob = new Blob([source], { type: 'text/javascript' }); var url = URL.createObjectURL(blob); for (var i = 0; i < count; ++i) { workers[i] = createWorker(url); } URL.revokeObjectURL(url); } function decodeWorker(count, size, source, mode, filter) { var worker = workers[0]; for (var i = 1; i < workers.length; ++i) { if (workers[i].pending < worker.pending) { worker = workers[i]; } } return new Promise(function (resolve, reject) { var data = new Uint8Array(source); var id = requestId++; worker.pending += count; worker.requests[id] = { resolve: resolve, reject: reject }; worker.object.postMessage({ id: id, count: count, size: size, source: data, mode: mode, filter: filter }, [data.buffer]); }); } function workerProcess(event) { ready.then(function () { var data = event.data; try { var target = new Uint8Array(data.count * data.size); decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]); self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]); } catch (error) { self.postMessage({ id: data.id, count: data.count, action: "reject", value: error }); } }); } return { ready: ready, supported: true, useWorkers: function (count) { initWorkers(count); }, decodeVertexBuffer: function (target, count, size, source, filter) { decode(instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[filters[filter]]); }, decodeIndexBuffer: function (target, count, size, source) { decode(instance.exports.meshopt_decodeIndexBuffer, target, count, size, source); }, decodeIndexSequence: function (target, count, size, source) { decode(instance.exports.meshopt_decodeIndexSequence, target, count, size, source); }, decodeGltfBuffer: function (target, count, size, source, mode, filter) { decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]); }, decodeGltfBufferAsync: function (count, size, source, mode, filter) { if (workers.length > 0) { return decodeWorker(count, size, source, decoders[mode], filters[filter]); } return ready.then(function () { var target = new Uint8Array(count * size); decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]); return target; }); } }; })(); // UMD-style export if (typeof exports === 'object' && typeof module === 'object') module.exports = MeshoptDecoder; else if (typeof define === 'function' && define['amd']) define([], function () { return MeshoptDecoder; }); else if (typeof exports === 'object') exports["MeshoptDecoder"] = MeshoptDecoder; else (typeof self !== 'undefined' ? self : this).MeshoptDecoder = MeshoptDecoder; function instantiate(asmLibraryArg) { var bufferView; var base64ReverseLookup = new Uint8Array(123/*'z'+1*/); for (var i = 25; i >= 0; --i) { base64ReverseLookup[48 + i] = 52 + i; // '0-9' base64ReverseLookup[65 + i] = i; // 'A-Z' base64ReverseLookup[97 + i] = 26 + i; // 'a-z' } base64ReverseLookup[43] = 62; // '+' base64ReverseLookup[47] = 63; // '/' /** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */ function base64DecodeToExistingUint8Array(uint8Array, offset, b64) { var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength * 3 >> 2) - (b64[bLength - 2] == '=') - (b64[bLength - 1] == '='); for (; i < bLength; i += 4) { b1 = base64ReverseLookup[b64.charCodeAt(i + 1)]; b2 = base64ReverseLookup[b64.charCodeAt(i + 2)]; uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4; if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2; if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i + 3)]; } } function initActiveSegments(imports) { base64DecodeToExistingUint8Array(bufferView, 1024, "EGQAAA=="); } function asmFunc(env) { var buffer = new ArrayBuffer(65536); var HEAP8 = new Int8Array(buffer); var HEAP16 = new Int16Array(buffer); var HEAP32 = new Int32Array(buffer); var HEAPU8 = new Uint8Array(buffer); var HEAPU16 = new Uint16Array(buffer); var HEAPU32 = new Uint32Array(buffer); var HEAPF32 = new Float32Array(buffer); var HEAPF64 = new Float64Array(buffer); var Math_imul = Math.imul; var Math_fround = Math.fround; var Math_abs = Math.abs; var Math_clz32 = Math.clz32; var Math_min = Math.min; var Math_max = Math.max; var Math_floor = Math.floor; var Math_ceil = Math.ceil; var Math_trunc = Math.trunc; var Math_sqrt = Math.sqrt; var abort = env.abort; var nan = NaN; var infinity = Infinity; var global$0 = 25616; // EMSCRIPTEN_START_FUNCS ; function $0() { } function $1($0_1, $1_1, $2_1, $3_1, $4_1) { $0_1 = $0_1 | 0; $1_1 = $1_1 | 0; $2_1 = $2_1 | 0; $3_1 = $3_1 | 0; $4_1 = $4_1 | 0; var $20 = 0, $19 = 0, $21 = 0, $6 = 0, i64toi32_i32$1 = 0, $8 = 0, $18 = 0, i64toi32_i32$0 = 0, $17 = 0, $13 = 0, $11 = 0, $60 = 0, $7 = 0, $12 = 0, $15 = 0, $10 = 0, $14 = 0, $61 = 0, $62 = 0, $5_1 = 0, $16 = 0, $9 = 0, $117 = 0, $137 = 0, $152 = 0, $166 = 0, $182 = 0, $197 = 0, $212 = 0, $226 = 0, $242 = 0, $257 = 0, $272 = 0, $286 = 0, $302 = 0, $317 = 0, $332 = 0, $338 = 0, $346 = 0, $361 = 0, $380 = 0, $396 = 0, $410 = 0, $426 = 0, $440 = 0, $456 = 0, $470 = 0, $486 = 0, $500 = 0, $516 = 0, $530 = 0, $546 = 0, $560 = 0, $576 = 0, $582 = 0, $590 = 0, $600 = 0, $605 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; $5_1 = global$0 - 8704 | 0; global$0 = $5_1; $6 = -2; label$1: { if (($2_1 + 1 | 0) >>> 0 > $4_1 >>> 0) { break label$1 } $6 = -1; if ((HEAPU8[$3_1 >> 0] | 0 | 0) != (160 | 0)) { break label$1 } $7 = $3_1 + $4_1 | 0; $8 = $4($5_1 | 0, $7 - $2_1 | 0 | 0, $2_1 | 0) | 0; $4_1 = (8192 >>> 0) / ($2_1 >>> 0) | 0; $6 = $3_1 + 1 | 0; label$2: { if (!$2_1) { break label$2 } $4_1 = $4_1 & 16368 | 0; $9 = $4_1 >>> 0 < 256 >>> 0 ? $4_1 : 256; $10 = 0; label$3: while (1) { if ($10 >>> 0 >= $1_1 >>> 0) { break label$2 } $11 = ($10 + $9 | 0) >>> 0 < $1_1 >>> 0 ? $9 : $1_1 - $10 | 0; $4_1 = $11 + 15 | 0; $12 = (($4_1 >>> 4 | 0) + 3 | 0) >>> 2 | 0; label$4: { label$5: { label$6: { label$7: { $13 = $4_1 & -16 | 0; if (!$13) { break label$7 } $14 = 0; $15 = 1; $16 = $8 + 256 | 0; $17 = $6; label$8: while (1) { if (($7 - $17 | 0) >>> 0 < $12 >>> 0) { break label$5 } label$9: { $6 = $17 + $12 | 0; if (($7 - $6 | 0) >>> 0 < 24 >>> 0) { break label$9 } $4_1 = 16; $18 = 0; label$10: while (1) { $3_1 = $4_1; $19 = $4_1 + -16 | 0; $4_1 = $19 + ($8 + 8448 | 0) | 0; label$11: { label$12: { switch (((HEAPU8[($17 + ($19 >>> 6 | 0) | 0) >> 0] | 0) >>> ($18 & 6 | 0) | 0) & 3 | 0 | 0) { default: i64toi32_i32$1 = $4_1; i64toi32_i32$0 = 0; HEAP32[$4_1 >> 2] = 0; HEAP32[($4_1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $4_1 + 8 | 0; i64toi32_i32$0 = 0; HEAP32[i64toi32_i32$1 >> 2] = 0; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; break label$11; case 1: $19 = HEAPU8[$6 >> 0] | 0; $20 = $19 >>> 6 | 0; $117 = $20; $20 = ($20 | 0) == (3 | 0); HEAP8[$4_1 >> 0] = (wasm2js_i32$0 = HEAPU8[($6 + 4 | 0) >> 0] | 0, wasm2js_i32$1 = $117, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $4_1 = ($8 + 8448 | 0) + $3_1 | 0; $20 = ($6 + 4 | 0) + $20 | 0; $21 = ($19 >>> 4 | 0) & 3 | 0; $137 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -15 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $137, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $21 = ($19 >>> 2 | 0) & 3 | 0; $152 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -14 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $152, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $19 = $19 & 3 | 0; $166 = $19; $19 = ($19 | 0) == (3 | 0); HEAP8[($4_1 + -13 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $166, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $19 | 0; $19 = HEAPU8[($6 + 1 | 0) >> 0] | 0; $21 = $19 >>> 6 | 0; $182 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -12 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $182, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $21 = ($19 >>> 4 | 0) & 3 | 0; $197 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -11 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $197, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $21 = ($19 >>> 2 | 0) & 3 | 0; $212 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -10 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $212, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $19 = $19 & 3 | 0; $226 = $19; $19 = ($19 | 0) == (3 | 0); HEAP8[($4_1 + -9 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $226, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $19 | 0; $19 = HEAPU8[($6 + 2 | 0) >> 0] | 0; $21 = $19 >>> 6 | 0; $242 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -8 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $242, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $21 = ($19 >>> 4 | 0) & 3 | 0; $257 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -7 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $257, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $21 = ($19 >>> 2 | 0) & 3 | 0; $272 = $21; $21 = ($21 | 0) == (3 | 0); HEAP8[($4_1 + -6 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $272, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $20 = $20 + $21 | 0; $19 = $19 & 3 | 0; $286 = $19; $19 = ($19 | 0) == (3 | 0); HEAP8[($4_1 + -5 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $286, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $20 + $19 | 0; $6 = HEAPU8[($6 + 3 | 0) >> 0] | 0; $20 = $6 >>> 6 | 0; $302 = $20; $20 = ($20 | 0) == (3 | 0); HEAP8[($4_1 + -4 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $302, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = ($6 >>> 4 | 0) & 3 | 0; $317 = $20; $20 = ($20 | 0) == (3 | 0); HEAP8[($4_1 + -3 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $317, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = ($6 >>> 2 | 0) & 3 | 0; $332 = $20; $20 = ($20 | 0) == (3 | 0); HEAP8[($4_1 + -2 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $332, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $338 = $4_1 + -1 | 0; $4_1 = $19 + $20 | 0; $6 = $6 & 3 | 0; $346 = $6; $6 = ($6 | 0) == (3 | 0); HEAP8[$338 >> 0] = (wasm2js_i32$0 = HEAPU8[$4_1 >> 0] | 0, wasm2js_i32$1 = $346, wasm2js_i32$2 = $6, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $6 = $4_1 + $6 | 0; break label$11; case 2: $19 = HEAPU8[$6 >> 0] | 0; $20 = $19 >>> 4 | 0; $361 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[$4_1 >> 0] = (wasm2js_i32$0 = HEAPU8[($6 + 8 | 0) >> 0] | 0, wasm2js_i32$1 = $361, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $4_1 = ($8 + 8448 | 0) + $3_1 | 0; $20 = ($6 + 8 | 0) + $20 | 0; $19 = $19 & 15 | 0; $380 = $19; $19 = ($19 | 0) == (15 | 0); HEAP8[($4_1 + -15 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $380, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $20 + $19 | 0; $20 = HEAPU8[($6 + 1 | 0) >> 0] | 0; $21 = $20 >>> 4 | 0; $396 = $21; $21 = ($21 | 0) == (15 | 0); HEAP8[($4_1 + -14 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $396, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $21 | 0; $20 = $20 & 15 | 0; $410 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -13 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $410, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = HEAPU8[($6 + 2 | 0) >> 0] | 0; $21 = $20 >>> 4 | 0; $426 = $21; $21 = ($21 | 0) == (15 | 0); HEAP8[($4_1 + -12 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $426, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $21 | 0; $20 = $20 & 15 | 0; $440 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -11 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $440, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = HEAPU8[($6 + 3 | 0) >> 0] | 0; $21 = $20 >>> 4 | 0; $456 = $21; $21 = ($21 | 0) == (15 | 0); HEAP8[($4_1 + -10 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $456, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $21 | 0; $20 = $20 & 15 | 0; $470 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -9 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $470, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = HEAPU8[($6 + 4 | 0) >> 0] | 0; $21 = $20 >>> 4 | 0; $486 = $21; $21 = ($21 | 0) == (15 | 0); HEAP8[($4_1 + -8 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $486, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $21 | 0; $20 = $20 & 15 | 0; $500 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -7 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $500, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = HEAPU8[($6 + 5 | 0) >> 0] | 0; $21 = $20 >>> 4 | 0; $516 = $21; $21 = ($21 | 0) == (15 | 0); HEAP8[($4_1 + -6 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $516, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $21 | 0; $20 = $20 & 15 | 0; $530 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -5 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $530, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $20 = HEAPU8[($6 + 6 | 0) >> 0] | 0; $21 = $20 >>> 4 | 0; $546 = $21; $21 = ($21 | 0) == (15 | 0); HEAP8[($4_1 + -4 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $546, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $21 | 0; $20 = $20 & 15 | 0; $560 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -3 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $560, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $19 = $19 + $20 | 0; $6 = HEAPU8[($6 + 7 | 0) >> 0] | 0; $20 = $6 >>> 4 | 0; $576 = $20; $20 = ($20 | 0) == (15 | 0); HEAP8[($4_1 + -2 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $576, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $582 = $4_1 + -1 | 0; $4_1 = $19 + $20 | 0; $6 = $6 & 15 | 0; $590 = $6; $6 = ($6 | 0) == (15 | 0); HEAP8[$582 >> 0] = (wasm2js_i32$0 = HEAPU8[$4_1 >> 0] | 0, wasm2js_i32$1 = $590, wasm2js_i32$2 = $6, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $6 = $4_1 + $6 | 0; break label$11; case 3: break label$12; }; } i64toi32_i32$0 = HEAPU8[$6 >> 0] | 0 | ((HEAPU8[($6 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($6 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($6 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; i64toi32_i32$1 = HEAPU8[($6 + 4 | 0) >> 0] | 0 | ((HEAPU8[($6 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($6 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($6 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; $600 = i64toi32_i32$0; i64toi32_i32$0 = $4_1; $61 = $600; HEAP8[$4_1 >> 0] = $61; HEAP8[($4_1 + 1 | 0) >> 0] = $61 >>> 8 | 0; HEAP8[($4_1 + 2 | 0) >> 0] = $61 >>> 16 | 0; HEAP8[($4_1 + 3 | 0) >> 0] = $61 >>> 24 | 0; HEAP8[($4_1 + 4 | 0) >> 0] = i64toi32_i32$1; HEAP8[($4_1 + 5 | 0) >> 0] = i64toi32_i32$1 >>> 8 | 0; HEAP8[($4_1 + 6 | 0) >> 0] = i64toi32_i32$1 >>> 16 | 0; HEAP8[($4_1 + 7 | 0) >> 0] = i64toi32_i32$1 >>> 24 | 0; $60 = $6 + 8 | 0; i64toi32_i32$1 = HEAPU8[$60 >> 0] | 0 | ((HEAPU8[($60 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($60 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($60 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; i64toi32_i32$0 = HEAPU8[($60 + 4 | 0) >> 0] | 0 | ((HEAPU8[($60 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($60 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($60 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0; $605 = i64toi32_i32$1; i64toi32_i32$1 = $4_1 + 8 | 0; $62 = $605; HEAP8[i64toi32_i32$1 >> 0] = $62; HEAP8[(i64toi32_i32$1 + 1 | 0) >> 0] = $62 >>> 8 | 0; HEAP8[(i64toi32_i32$1 + 2 | 0) >> 0] = $62 >>> 16 | 0; HEAP8[(i64toi32_i32$1 + 3 | 0) >> 0] = $62 >>> 24 | 0; HEAP8[(i64toi32_i32$1 + 4 | 0) >> 0] = i64toi32_i32$0; HEAP8[(i64toi32_i32$1 + 5 | 0) >> 0] = i64toi32_i32$0 >>> 8 | 0; HEAP8[(i64toi32_i32$1 + 6 | 0) >> 0] = i64toi32_i32$0 >>> 16 | 0; HEAP8[(i64toi32_i32$1 + 7 | 0) >> 0] = i64toi32_i32$0 >>> 24 | 0; $6 = $6 + 16 | 0; } label$16: { if ($3_1 >>> 0 >= $13 >>> 0) { break label$16 } $18 = $18 + 2 | 0; $4_1 = $3_1 + 16 | 0; if (($7 - $6 | 0) >>> 0 > 23 >>> 0) { continue label$10 } } break label$10; }; if ($3_1 >>> 0 < $13 >>> 0) { break label$6 } if (!$6) { break label$6 } label$17: { if (!$11) { break label$17 } $18 = HEAPU8[($8 + $14 | 0) >> 0] | 0; $4_1 = $8 + 8448 | 0; $3_1 = $16; $19 = $11; label$18: while (1) { $17 = HEAPU8[$4_1 >> 0] | 0; $18 = (($17 >>> 1 | 0) ^ (0 - ($17 & 1 | 0) | 0) | 0) + $18 | 0; HEAP8[$3_1 >> 0] = $18; $3_1 = $3_1 + $2_1 | 0; $4_1 = $4_1 + 1 | 0; $19 = $19 + -1 | 0; if ($19) { continue label$18 } break label$18; }; } $16 = $16 + 1 | 0; $14 = $14 + 1 | 0; $15 = $14 >>> 0 < $2_1 >>> 0; $17 = $6; if (($14 | 0) != ($2_1 | 0)) { continue label$8 } break label$4; } break label$8; }; $6 = 0; if ($15 & 1 | 0) { break label$5 } break label$4; } $21 = $6 + Math_imul($12, $2_1) | 0; label$19: { if (!$11) { break label$19 } $13 = 0; $15 = 1; $20 = $8 + 256 | 0; label$20: while (1) { if (($7 - $6 | 0) >>> 0 < $12 >>> 0) { break label$5 } if (!$6) { break label$6 } $6 = $6 + $12 | 0; $18 = HEAPU8[($8 + $13 | 0) >> 0] | 0; $4_1 = $8 + 8448 | 0; $3_1 = $20; $19 = $11; label$21: while (1) { $17 = HEAPU8[$4_1 >> 0] | 0; $18 = (($17 >>> 1 | 0) ^ (0 - ($17 & 1 | 0) | 0) | 0) + $18 | 0; HEAP8[$3_1 >> 0] = $18; $3_1 = $3_1 + $2_1 | 0; $4_1 = $4_1 + 1 | 0; $19 = $19 + -1 | 0; if ($19) { continue label$21 } break label$21; }; $20 = $20 + 1 | 0; $13 = $13 + 1 | 0; $15 = $13 >>> 0 < $2_1 >>> 0; if (($13 | 0) != ($2_1 | 0)) { continue label$20 } break label$20; }; $6 = $21; break label$4; } $4_1 = 0; $15 = 1; label$22: while (1) { if (($7 - $6 | 0) >>> 0 < $12 >>> 0) { break label$5 } if (!$6) { break label$6 } $6 = $6 + $12 | 0; $4_1 = $4_1 + 1 | 0; $15 = $4_1 >>> 0 < $2_1 >>> 0; if (($2_1 | 0) != ($4_1 | 0)) { continue label$22 } break label$22; }; $6 = $21; break label$4; } $6 = 0; if (!($15 & 1 | 0)) { break label$4 } } $6 = -2; break label$1; } $4($0_1 + Math_imul($10, $2_1) | 0 | 0, $8 + 256 | 0 | 0, Math_imul($11, $2_1) | 0) | 0; $4($8 | 0, ($8 + 256 | 0) + Math_imul($11 + -1 | 0, $2_1) | 0 | 0, $2_1 | 0) | 0; $10 = $11 + $10 | 0; if ($6) { continue label$3 } break label$3; }; $6 = -2; break label$1; } $6 = ($7 - $6 | 0 | 0) == (($2_1 >>> 0 > 32 >>> 0 ? $2_1 : 32) | 0) ? 0 : -3; } global$0 = $5_1 + 8704 | 0; return $6 | 0; } function $2($0_1, $1_1, $2_1, $3_1, $4_1) { $0_1 = $0_1 | 0; $1_1 = $1_1 | 0; $2_1 = $2_1 | 0; $3_1 = $3_1 | 0; $4_1 = $4_1 | 0; var $9 = 0, $15 = 0, $14 = 0, $5_1 = 0, $6 = 0, $17 = 0, $18 = 0, $16 = 0, i64toi32_i32$1 = 0, $13 = 0, i64toi32_i32$0 = 0, $7 = 0, $12 = 0, $19 = 0, $8 = 0, $20 = 0, $10 = 0, $21 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0; $5_1 = global$0 - 192 | 0; global$0 = $5_1; $6 = -2; label$1: { $7 = ($1_1 >>> 0) / (3 >>> 0) | 0; if (($7 + 17 | 0) >>> 0 > $4_1 >>> 0) { break label$1 } $6 = -1; $8 = HEAPU8[$3_1 >> 0] | 0; if (($8 & 240 | 0 | 0) != (224 | 0)) { break label$1 } $9 = $8 & 15 | 0; if ($9 >>> 0 > 1 >>> 0) { break label$1 } $5($5_1 + 64 | 0 | 0, 255 | 0, 128 | 0) | 0; i64toi32_i32$1 = $5_1 + 56 | 0; i64toi32_i32$0 = -1; HEAP32[i64toi32_i32$1 >> 2] = -1; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1 + 48 | 0; i64toi32_i32$0 = -1; HEAP32[i64toi32_i32$1 >> 2] = -1; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1 + 40 | 0; i64toi32_i32$0 = -1; HEAP32[i64toi32_i32$1 >> 2] = -1; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1 + 32 | 0; i64toi32_i32$0 = -1; HEAP32[i64toi32_i32$1 >> 2] = -1; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1 + 24 | 0; i64toi32_i32$0 = -1; HEAP32[i64toi32_i32$1 >> 2] = -1; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1 + 16 | 0; i64toi32_i32$0 = -1; HEAP32[i64toi32_i32$1 >> 2] = -1; HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1; i64toi32_i32$0 = -1; HEAP32[($5_1 + 8 | 0) >> 2] = -1; HEAP32[($5_1 + 12 | 0) >> 2] = i64toi32_i32$0; i64toi32_i32$1 = $5_1; i64toi32_i32$0 = -1; HEAP32[$5_1 >> 2] = -1; HEAP32[($5_1 + 4 | 0) >> 2] = i64toi32_i32$0; $10 = ($3_1 + $4_1 | 0) + -16 | 0; $8 = $3_1 + 1 | 0; $6 = $8 + $7 | 0; label$2: { if (!$1_1) { break label$2 } $11 = ($9 | 0) == (1 | 0) ? 13 : 15; $12 = 0; $13 = 0; $7 = 0; $3_1 = 0; $4_1 = 0; label$3: while (1) { label$4: { if ($6 >>> 0 <= $10 >>> 0) { break label$4 } $6 = -2; break label$1; } label$5: { label$6: { $9 = HEAPU8[$8 >> 0] | 0; if ($9 >>> 0 > 239 >>> 0) { break label$6 } $14 = $9 ^ -1 | 0; $15 = ($5_1 + 64 | 0) + ((($4_1 + ($14 >>> 4 | 0) | 0) & 15 | 0) << 3 | 0) | 0; $16 = HEAP32[($15 + 4 | 0) >> 2] | 0; $17 = HEAP32[$15 >> 2] | 0; label$7: { $9 = $9 & 15 | 0; if ($9 >>> 0 >= $11 >>> 0) { break label$7 } $15 = (wasm2js_i32$0 = HEAP32[($5_1 + ((($3_1 + $14 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $12, wasm2js_i32$2 = $9, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $9 = !$9; label$8: { label$9: { if (($2_1 | 0) != (2 | 0)) { break label$9 } $14 = $0_1 + ($7 << 1 | 0) | 0; HEAP16[$14 >> 1] = $17; HEAP16[($14 + 2 | 0) >> 1] = $16; HEAP16[($14 + 4 | 0) >> 1] = $15; break label$8; } $14 = $0_1 + ($7 << 2 | 0) | 0; HEAP32[$14 >> 2] = $17; HEAP32[($14 + 4 | 0) >> 2] = $16; HEAP32[($14 + 8 | 0) >> 2] = $15; } $12 = $12 + $9 | 0; $14 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$14 >> 2] = $15; HEAP32[($14 + 4 | 0) >> 2] = $16; HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $15; $4_1 = ($4_1 + 1 | 0) & 15 | 0; $14 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$14 >> 2] = $17; HEAP32[($14 + 4 | 0) >> 2] = $15; $3_1 = $3_1 + $9 | 0; $4_1 = $4_1 + 1 | 0; break label$5; } label$10: { label$11: { if (($9 | 0) == (15 | 0)) { break label$11 } $13 = (($13 + $9 | 0) + ($9 ^ -4 | 0) | 0) + 1 | 0; break label$10; } $9 = $6 + 1 | 0; $15 = HEAP8[$6 >> 0] | 0; $14 = $15 & 255 | 0; label$12: { label$13: { if (($15 | 0) <= (-1 | 0)) { break label$13 } $6 = $9; break label$12; } $6 = $6 + 5 | 0; $14 = $14 & 127 | 0; $15 = 7; label$14: { label$15: while (1) { $18 = HEAP8[$9 >> 0] | 0; $14 = ($18 & 127 | 0) << $15 | 0 | $14 | 0; if (($18 | 0) > (-1 | 0)) { break label$14 } $9 = $9 + 1 | 0; $15 = $15 + 7 | 0; if (($15 | 0) != (35 | 0)) { continue label$15 } break label$12; }; } $6 = $9 + 1 | 0; } $13 = (($14 >>> 1 | 0) ^ (0 - ($14 & 1 | 0) | 0) | 0) + $13 | 0; } label$16: { label$17: { if (($2_1 | 0) != (2 | 0)) { break label$17 } $9 = $0_1 + ($7 << 1 | 0) | 0; HEAP16[$9 >> 1] = $17; HEAP16[($9 + 2 | 0) >> 1] = $16; HEAP16[($9 + 4 | 0) >> 1] = $13; break label$16; } $9 = $0_1 + ($7 << 2 | 0) | 0; HEAP32[$9 >> 2] = $17; HEAP32[($9 + 4 | 0) >> 2] = $16; HEAP32[($9 + 8 | 0) >> 2] = $13; } $9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$9 >> 2] = $13; HEAP32[($9 + 4 | 0) >> 2] = $16; HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $13; $4_1 = ($4_1 + 1 | 0) & 15 | 0; $9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$9 >> 2] = $17; HEAP32[($9 + 4 | 0) >> 2] = $13; $3_1 = $3_1 + 1 | 0; $4_1 = $4_1 + 1 | 0; break label$5; } label$18: { if ($9 >>> 0 > 253 >>> 0) { break label$18 } $18 = $12 + 1 | 0; $15 = HEAPU8[($10 + ($9 & 15 | 0) | 0) >> 0] | 0; $14 = $15 >>> 0 < 16 >>> 0; $9 = (wasm2js_i32$0 = $18, wasm2js_i32$1 = HEAP32[($5_1 + ((($3_1 - ($15 >>> 4 | 0) | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$2 = $14, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $16 = $18 + $14 | 0; $18 = $15 & 15 | 0; $15 = (wasm2js_i32$0 = HEAP32[($5_1 + ((($3_1 - $15 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $16, wasm2js_i32$2 = $18, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1); $18 = !$18; label$19: { label$20: { if (($2_1 | 0) != (2 | 0)) { break label$20 } $17 = $0_1 + ($7 << 1 | 0) | 0; HEAP16[$17 >> 1] = $12; HEAP16[($17 + 2 | 0) >> 1] = $9; HEAP16[($17 + 4 | 0) >> 1] = $15; break label$19; } $17 = $0_1 + ($7 << 2 | 0) | 0; HEAP32[$17 >> 2] = $12; HEAP32[($17 + 4 | 0) >> 2] = $9; HEAP32[($17 + 8 | 0) >> 2] = $15; } HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $12; $17 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$17 >> 2] = $9; HEAP32[($17 + 4 | 0) >> 2] = $12; $3_1 = $3_1 + 1 | 0; HEAP32[($5_1 + (($3_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $9; $17 = ($5_1 + 64 | 0) + ((($4_1 + 1 | 0) & 15 | 0) << 3 | 0) | 0; HEAP32[$17 >> 2] = $15; HEAP32[($17 + 4 | 0) >> 2] = $9; $3_1 = ($3_1 + $14 | 0) & 15 | 0; HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $15; $4_1 = ($4_1 + 2 | 0) & 15 | 0; $9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$9 >> 2] = $12; HEAP32[($9 + 4 | 0) >> 2] = $15; $4_1 = $4_1 + 1 | 0; $3_1 = $3_1 + $18 | 0; $12 = $16 + $18 | 0; break label$5; } $17 = HEAPU8[$6 >> 0] | 0; $19 = $17 ? $12 : 0; $9 = ($9 | 0) == (254 | 0); $16 = $19 + $9 | 0; $20 = $17 & 15 | 0; $21 = $17 >>> 4 | 0; label$21: { label$22: { if ($17 >>> 0 > 15 >>> 0) { break label$22 } $18 = $16 + 1 | 0; break label$21; } $18 = $16; $16 = HEAP32[($5_1 + ((($3_1 - $21 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0; } label$23: { label$24: { if ($20) { break label$24 } $12 = $18 + 1 | 0; break label$23; } $12 = $18; $18 = HEAP32[($5_1 + ((($3_1 - $17 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0; } label$25: { label$26: { if (!$9) { break label$26 } $9 = $6 + 1 | 0; break label$25; } $9 = $6 + 2 | 0; $14 = HEAP8[($6 + 1 | 0) >> 0] | 0; $15 = $14 & 255 | 0; label$27: { if (($14 | 0) > (-1 | 0)) { break label$27 } $19 = $6 + 6 | 0; $15 = $15 & 127 | 0; $6 = 7; label$28: { label$29: while (1) { $14 = HEAP8[$9 >> 0] | 0; $15 = ($14 & 127 | 0) << $6 | 0 | $15 | 0; if (($14 | 0) > (-1 | 0)) { break label$28 } $9 = $9 + 1 | 0; $6 = $6 + 7 | 0; if (($6 | 0) != (35 | 0)) { continue label$29 } break label$29; }; $9 = $19; break label$27; } $9 = $9 + 1 | 0; } $13 = (($15 >>> 1 | 0) ^ (0 - ($15 & 1 | 0) | 0) | 0) + $13 | 0; $19 = $13; } label$30: { label$31: { if (($21 | 0) == (15 | 0)) { break label$31 } $15 = $9; break label$30; } $15 = $9 + 1 | 0; $6 = HEAP8[$9 >> 0] | 0; $14 = $6 & 255 | 0; label$32: { if (($6 | 0) > (-1 | 0)) { break label$32 } $16 = $9 + 5 | 0; $14 = $14 & 127 | 0; $6 = 7; label$33: { label$34: while (1) { $9 = HEAP8[$15 >> 0] | 0; $14 = ($9 & 127 | 0) << $6 | 0 | $14 | 0; if (($9 | 0) > (-1 | 0)) { break label$33 } $15 = $15 + 1 | 0; $6 = $6 + 7 | 0; if (($6 | 0) != (35 | 0)) { continue label$34 } break label$34; }; $15 = $16; break label$32; } $15 = $15 + 1 | 0; } $13 = (($14 >>> 1 | 0) ^ (0 - ($14 & 1 | 0) | 0) | 0) + $13 | 0; $16 = $13; } label$35: { label$36: { if (($20 | 0) == (15 | 0)) { break label$36 } $6 = $15; break label$35; } $6 = $15 + 1 | 0; $9 = HEAP8[$15 >> 0] | 0; $14 = $9 & 255 | 0; label$37: { if (($9 | 0) > (-1 | 0)) { break label$37 } $18 = $15 + 5 | 0; $14 = $14 & 127 | 0; $9 = 7; label$38: { label$39: while (1) { $15 = HEAP8[$6 >> 0] | 0; $14 = ($15 & 127 | 0) << $9 | 0 | $14 | 0; if (($15 | 0) > (-1 | 0)) { break label$38 } $6 = $6 + 1 | 0; $9 = $9 + 7 | 0; if (($9 | 0) != (35 | 0)) { continue label$39 } break label$39; }; $6 = $18; break label$37; } $6 = $6 + 1 | 0; } $13 = (($14 >>> 1 | 0) ^ (0 - ($14 & 1 | 0) | 0) | 0) + $13 | 0; $18 = $13; } label$40: { label$41: { if (($2_1 | 0) != (2 | 0)) { break label$41 } $9 = $0_1 + ($7 << 1 | 0) | 0; HEAP16[$9 >> 1] = $19; HEAP16[($9 + 2 | 0) >> 1] = $16; HEAP16[($9 + 4 | 0) >> 1] = $18; break label$40; } $9 = $0_1 + ($7 << 2 | 0) | 0; HEAP32[$9 >> 2] = $19; HEAP32[($9 + 4 | 0) >> 2] = $16; HEAP32[($9 + 8 | 0) >> 2] = $18; } $9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0; HEAP32[$9 >> 2] = $16; HEAP32[($9 + 4 | 0) >> 2] = $19; HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $19; $9 = ($5_1 + 64 | 0) + ((($4_1 + 1 | 0) & 15 | 0) << 3 | 0) | 0; HEAP32[$9 >> 2] = $18; HEAP32[($9 + 4 | 0) >> 2] = $16; $3_1 = $3_1 + 1 | 0; HEAP32[($5_1 + (($3_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $16; $9 = ($5_1 + 64 | 0) + ((($4_1 + 2 | 0) & 15 | 0) << 3 | 0) | 0; HEAP32[$9 >> 2] = $19; HEAP32[($9 + 4 | 0) >> 2] = $18; $3_1 = $3_1 + ($17 >>> 0 < 16 >>> 0 | ($21 | 0) == (15 | 0) | 0) | 0; HEAP32[($5_1 + (($3_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $18; $3_1 = $3_1 + (!$20 | ($20 | 0) == (15 | 0) | 0) | 0; $4_1 = $4_1 + 3 | 0; } $8 = $8 + 1 | 0; $4_1 = $4_1 & 15 | 0; $3_1 = $3_1 & 15 | 0; $7 = $7 + 3 | 0; if ($7 >>> 0 < $1_1 >>> 0) { continue label$3 } break label$3; }; } $6 = ($6 | 0) == ($10 | 0) ? 0 : -3; } global$0 = $5_1 + 192 | 0; return $6 | 0; } function $3($0_1) { $0_1 = $0_1 | 0; var $1_1 = 0, $2_1 = 0, $3_1 = 0; $1_1 = HEAP32[(0 + 1024 | 0) >> 2] | 0; $0_1 = $1_1 + (($0_1 + 3 | 0) & -4 | 0) | 0; HEAP32[(0 + 1024 | 0) >> 2] = $0_1; label$1: { label$2: { $2_1 = __wasm_memory_size() << 16 | 0; if ($0_1 >>> 0 <= $2_1 >>> 0) { break label$2 } $3_1 = -1; if ((__wasm_memory_grow((($0_1 - $2_1 | 0) + 65535 | 0) >>> 16 | 0 | 0) | 0) == (-1 | 0)) { break label$1 } } $3_1 = $1_1; } return $3_1 | 0; } function $4($0_1, $1_1, $2_1) { $0_1 = $0_1 | 0; $1_1 = $1_1 | 0; $2_1 = $2_1 | 0; var $3_1 = 0; label$1: { label$2: { if (!(($1_1 | $0_1 | 0) & 3 | 0)) { break label$2 } $3_1 = $0_1; break label$1; } label$3: { label$4: { if ($2_1 >>> 0 >= 16 >>> 0) { break label$4 } $3_1 = $0_1; break label$3; } $3_1 = $0_1; label$5: while (1) { HEAP32[$3_1 >> 2] = HEAP32[$1_1 >> 2] | 0; HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[($1_1 + 4 | 0) >> 2] | 0; HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($1_1 + 8 | 0) >> 2] | 0; HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[($1_1 + 12 | 0) >> 2] | 0; $1_1 = $1_1 + 16 | 0; $3_1 = $3_1 + 16 | 0; $2_1 = $2_1 + -16 | 0; if ($2_1 >>> 0 > 15 >>> 0) { continue label$5 } break label$5; }; } if ($2_1 >>> 0 < 4 >>> 0) { break label$1 } label$6: while (1) { HEAP32[$3_1 >> 2] = HEAP32[$1_1 >> 2] | 0; $1_1 = $1_1 + 4 | 0; $3_1 = $3_1 + 4 | 0; $2_1 = $2_1 + -4 | 0; if ($2_1 >>> 0 > 3 >>> 0) { continue label$6 } break label$6; }; } label$7: { if (!$2_1) { break label$7 } label$8: while (1) { HEAP8[$3_1 >> 0] = HEAPU8[$1_1 >> 0] | 0; $3_1 = $3_1 + 1 | 0; $1_1 = $1_1 + 1 | 0; $2_1 = $2_1 + -1 | 0; if ($2_1) { continue label$8 } break label$8; }; } return $0_1 | 0; } function $5($0_1, $1_1, $2_1) { $0_1 = $0_1 | 0; $1_1 = $1_1 | 0; $2_1 = $2_1 | 0; var $3_1 = 0, $4_1 = 0; label$1: { label$2: { if (!($0_1 & 3 | 0)) { break label$2 } $3_1 = $0_1; break label$1; } $4_1 = Math_imul($1_1 & 255 | 0, 16843009); label$3: { label$4: { if ($2_1 >>> 0 >= 16 >>> 0) { break label$4 } $3_1 = $0_1; break label$3; } $3_1 = $0_1; label$5: while (1) { HEAP32[$3_1 >> 2] = $4_1; HEAP32[($3_1 + 12 | 0) >> 2] = $4_1; HEAP32[($3_1 + 8 | 0) >> 2] = $4_1; HEAP32[($3_1 + 4 | 0) >> 2] = $4_1; $3_1 = $3_1 + 16 | 0; $2_1 = $2_1 + -16 | 0; if ($2_1 >>> 0 > 15 >>> 0) { continue label$5 } break label$5; }; } if ($2_1 >>> 0 < 4 >>> 0) { break label$1 } label$6: while (1) { HEAP32[$3_1 >> 2] = $4_1; $3_1 = $3_1 + 4 | 0; $2_1 = $2_1 + -4 | 0; if ($2_1 >>> 0 > 3 >>> 0) { continue label$6 } break label$6; }; } label$7: { if (!$2_1) { break label$7 } label$8: while (1) { HEAP8[$3_1 >> 0] = $1_1; $3_1 = $3_1 + 1 | 0; $2_1 = $2_1 + -1 | 0; if ($2_1) { continue label$8 } break label$8; }; } return $0_1 | 0; } // EMSCRIPTEN_END_FUNCS ; bufferView = HEAPU8; initActiveSegments(env); function __wasm_memory_size() { return buffer.byteLength / 65536 | 0; } function __wasm_memory_grow(pagesToAdd) { pagesToAdd = pagesToAdd | 0; var oldPages = __wasm_memory_size() | 0; var newPages = oldPages + pagesToAdd | 0; if ((oldPages < newPages) && (newPages < 65536)) { var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536)); var newHEAP8 = new Int8Array(newBuffer); newHEAP8.set(HEAP8); HEAP8 = new Int8Array(newBuffer); HEAP16 = new Int16Array(newBuffer); HEAP32 = new Int32Array(newBuffer); HEAPU8 = new Uint8Array(newBuffer); HEAPU16 = new Uint16Array(newBuffer); HEAPU32 = new Uint32Array(newBuffer); HEAPF32 = new Float32Array(newBuffer); HEAPF64 = new Float64Array(newBuffer); buffer = newBuffer; bufferView = HEAPU8; } return oldPages; } return { "memory": Object.create(Object.prototype, { "grow": { "value": __wasm_memory_grow }, "buffer": { "get": function () { return buffer; } } }), "__wasm_call_ctors": $0, "meshopt_decodeVertexBuffer": $1, "meshopt_decodeIndexBuffer": $2, "sbrk": $3 }; } return asmFunc(asmLibraryArg); }