commit 34785354852b661f43d7bc904b5440d9531117ab
parent 636099615c7ec1ed49802fa11d84a44b25981cd8
Author: finwo <finwo@pm.me>
Date: Mon, 15 Jul 2019 15:56:37 +0200
Compiled without emscripten now
Diffstat:
| M | build.sh | | | 10 | ++++++++-- |
| M | index.js | | | 118 | +++++++++++++++++++++++++++++++++++++++++++++++-------------------------------- |
| M | package-lock.json | | | 643 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ |
| M | package.json | | | 3 | ++- |
| A | patch/supercop/00-single-file-compile.patch | | | 156 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| M | supercop.c | | | 31 | +++++++++++++++++++++++-------- |
| D | supercop.js | | | 13210 | ------------------------------------------------------------------------------- |
| M | test.js | | | 92 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
8 files changed, 905 insertions(+), 13358 deletions(-)
diff --git a/build.sh b/build.sh
@@ -1,4 +1,10 @@
#!/bin/sh
-emcc supercop.c lib/supercop/src/*.c -o supercop.js -O1 -s WASM=0
-echo "if ('undefined' !== typeof module) module.exports = Module;" >> supercop.js
+# Reset/fetch submodules
+git submodule update --force --init --recursive
+
+# Apply patches
+( cd lib/supercop && patch -p1 < ../../patch/supercop/00-single-file-compile.patch )
+
+# Compile
+node_modules/.bin/wa compile --bare -o supercop.wasm supercop.c
diff --git a/index.js b/index.js
@@ -1,11 +1,11 @@
-const Module = require('./supercop.js');
+const Module = require('webassembly').load('supercop.wasm');
const isBuffer = require('is-buffer');
-function randomBytes(length) {
+async function randomBytes(length) {
return Buffer.from(new Array(length).fill(0).map(()=>Math.floor(Math.random()*256)));
}
-function checkArguments( namedArguments, callback ) {
+async function checkArguments( namedArguments, callback ) {
callback = callback || function( err ) {
if (!err) return;
if (err instanceof Error) throw err;
@@ -41,69 +41,91 @@ function checkArguments( namedArguments, callback ) {
exports._checkArguments = checkArguments;
exports._randomBytes = randomBytes;
-exports.createSeed = function(){
+exports.createSeed = async function(){
return randomBytes(32);
};
-exports.createKeyPair = function(seed) {
+exports.createKeyPair = async function(seed) {
+ const fn = (await Module).exports;
+ const mem = (await Module).memory;
if (Array.isArray(seed)) seed = Buffer.from(seed);
- checkArguments({seed});
- var seedPtr = Module._malloc(32);
- var seedBuf = new Uint8Array(Module.HEAPU8.buffer, seedPtr, 32);
- var publicKeyPtr = Module._malloc(32);
- var publicKey = new Uint8Array(Module.HEAPU8.buffer, publicKeyPtr, 32);
- var secretKeyPtr = Module._malloc(64);
- var secretKey = new Uint8Array(Module.HEAPU8.buffer, secretKeyPtr, 64);
+ await checkArguments({seed});
+
+ const seedPtr = fn._malloc(32);
+ const publicKeyPtr = fn._malloc(32);
+ const secretKeyPtr = fn._malloc(64);
+
+ const seedBuf = new Uint8Array(mem.buffer, seedPtr , 32);
+ const publicKey = new Uint8Array(mem.buffer, publicKeyPtr, 32);
+ const secretKey = new Uint8Array(mem.buffer, secretKeyPtr, 64);
+
seedBuf.set(seed);
- Module._create_keypair(publicKeyPtr, secretKeyPtr, seedPtr);
- Module._free(seedPtr);
- Module._free(publicKeyPtr);
- Module._free(secretKeyPtr);
+
+ fn.create_keypair(publicKeyPtr, secretKeyPtr, seedPtr);
+
+ fn._free(seedPtr);
+ fn._free(publicKeyPtr);
+ fn._free(secretKeyPtr);
+
return {
- publicKey: new Buffer(publicKey),
- secretKey: new Buffer(secretKey),
+ publicKey: Buffer.from(publicKey),
+ secretKey: Buffer.from(secretKey),
};
};
-exports.sign = function(message, publicKey, secretKey){
+exports.sign = async function(message, publicKey, secretKey){
+ const fn = (await Module).exports;
+ const mem = (await Module).memory;
if ('string' === typeof message) message = Buffer.from(message);
- checkArguments({message,publicKey,secretKey});
- var messageLen = message.length;
- var messageArrPtr = Module._malloc(messageLen);
- var messageArr = new Uint8Array(Module.HEAPU8.buffer, messageArrPtr, messageLen);
- var publicKeyArrPtr = Module._malloc(32);
- var publicKeyArr = new Uint8Array(Module.HEAPU8.buffer, publicKeyArrPtr, 32);
- var secretKeyArrPtr = Module._malloc(64);
- var secretKeyArr = new Uint8Array(Module.HEAPU8.buffer, secretKeyArrPtr, 64);
- var sigPtr = Module._malloc(64);
- var sig = new Uint8Array(Module.HEAPU8.buffer, sigPtr, 64);
+ await checkArguments({message,publicKey,secretKey});
+
+ var messageLen = message.length;
+ var messageArrPtr = fn._malloc(messageLen);
+ var messageArr = new Uint8Array(mem.buffer, messageArrPtr, messageLen);
+ var publicKeyArrPtr = fn._malloc(32);
+ var publicKeyArr = new Uint8Array(mem.buffer, publicKeyArrPtr, 32);
+ var secretKeyArrPtr = fn._malloc(64);
+ var secretKeyArr = new Uint8Array(mem.buffer, secretKeyArrPtr, 64);
+ var sigPtr = fn._malloc(64);
+ var sig = new Uint8Array(mem.buffer, sigPtr, 64);
+
messageArr.set(message);
publicKeyArr.set(publicKey);
secretKeyArr.set(secretKey);
- Module._sign(sigPtr, messageArrPtr, messageLen, publicKeyArrPtr, secretKeyArrPtr);
- Module._free(messageArrPtr);
- Module._free(publicKeyArrPtr);
- Module._free(secretKeyArrPtr);
- Module._free(sigPtr);
- return new Buffer(sig);
+
+ fn.sign(sigPtr, messageArrPtr, messageLen, publicKeyArrPtr, secretKeyArrPtr);
+
+ fn._free(messageArrPtr);
+ fn._free(publicKeyArrPtr);
+ fn._free(secretKeyArrPtr);
+ fn._free(sigPtr);
+
+ return Buffer.from(sig);
};
-exports.verify = function(signature, message, publicKey){
+exports.verify = async function(signature, message, publicKey){
+ const fn = (await Module).exports;
+ const mem = (await Module).memory;
if ('string' === typeof message) message = Buffer.from(message);
- checkArguments({signature,message,publicKey});
- var messageLen = message.length;
- var messageArrPtr = Module._malloc(messageLen);
- var messageArr = new Uint8Array(Module.HEAPU8.buffer, messageArrPtr, messageLen);
- var signatureArrPtr = Module._malloc(64);
- var signatureArr = new Uint8Array(Module.HEAPU8.buffer, signatureArrPtr, 64);
- var publicKeyArrPtr = Module._malloc(32);
- var publicKeyArr = new Uint8Array(Module.HEAPU8.buffer, publicKeyArrPtr, 32);
+ await checkArguments({signature,message,publicKey});
+
+ var messageLen = message.length;
+ var messageArrPtr = fn._malloc(messageLen);
+ var messageArr = new Uint8Array(mem.buffer, messageArrPtr, messageLen);
+ var signatureArrPtr = fn._malloc(64);
+ var signatureArr = new Uint8Array(mem.buffer, signatureArrPtr, 64);
+ var publicKeyArrPtr = fn._malloc(32);
+ var publicKeyArr = new Uint8Array(mem.buffer, publicKeyArrPtr, 32);
+
messageArr.set(message);
signatureArr.set(signature);
publicKeyArr.set(publicKey);
- var res = Module._verify(signatureArrPtr, messageArrPtr, messageLen, publicKeyArrPtr) === 1;
- Module._free(messageArrPtr);
- Module._free(signatureArrPtr);
- Module._free(publicKeyArrPtr);
+
+ var res = fn.verify(signatureArrPtr, messageArrPtr, messageLen, publicKeyArrPtr) === 1;
+
+ fn._free(messageArrPtr);
+ fn._free(signatureArrPtr);
+ fn._free(publicKeyArrPtr);
+
return res;
};
diff --git a/package-lock.json b/package-lock.json
@@ -4,28 +4,232 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "archiver": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
+ "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^1.3.0",
+ "async": "^2.0.0",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.0.0",
+ "lodash": "^4.8.0",
+ "readable-stream": "^2.0.0",
+ "tar-stream": "^1.5.0",
+ "walkdir": "^0.0.11",
+ "zip-stream": "^1.1.0"
+ }
+ },
+ "archiver-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
+ "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "graceful-fs": "^4.1.0",
+ "lazystream": "^1.0.0",
+ "lodash": "^4.8.0",
+ "normalize-path": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
+ "base64-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+ "dev": true
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
+ "bluebird": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+ "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=",
+ "dev": true
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
+ "buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
+ "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "dev": true
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "dev": true
+ },
+ "compress-commons": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
+ "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "^0.2.1",
+ "crc32-stream": "^2.0.0",
+ "normalize-path": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ }
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.1.0"
+ }
+ },
+ "crc32-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
+ "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
+ "dev": true,
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"deep-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
@@ -38,7 +242,7 @@
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dev": true,
"requires": {
- "object-keys": "1.1.1"
+ "object-keys": "^1.0.12"
}
},
"defined": {
@@ -47,18 +251,27 @@
"integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
"dev": true
},
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
"es-abstract": {
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
"integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
"dev": true,
"requires": {
- "es-to-primitive": "1.2.0",
- "function-bind": "1.1.1",
- "has": "1.0.3",
- "is-callable": "1.1.4",
- "is-regex": "1.0.4",
- "object-keys": "1.1.1"
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-keys": "^1.0.12"
}
},
"es-to-primitive": {
@@ -67,9 +280,62 @@
"integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
"dev": true,
"requires": {
- "is-callable": "1.1.4",
- "is-date-object": "1.0.1",
- "is-symbol": "1.0.2"
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
+ "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.6"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
}
},
"for-each": {
@@ -78,15 +344,33 @@
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dev": true,
"requires": {
- "is-callable": "1.1.4"
+ "is-callable": "^1.1.3"
}
},
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
+ "fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ }
+ },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -99,21 +383,36 @@
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"dev": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
+ "graceful-fs": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
+ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==",
+ "dev": true
+ },
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"requires": {
- "function-bind": "1.1.1"
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
}
},
"has-symbols": {
@@ -122,14 +421,20 @@
"integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
"dev": true
},
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -161,7 +466,7 @@
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"dev": true,
"requires": {
- "has": "1.0.3"
+ "has": "^1.0.1"
}
},
"is-symbol": {
@@ -170,16 +475,37 @@
"integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
"dev": true,
"requires": {
- "has-symbols": "1.0.0"
+ "has-symbols": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.5"
}
},
+ "lodash": {
+ "version": "4.17.14",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
+ "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==",
+ "dev": true
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
@@ -188,6 +514,44 @@
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "mout": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz",
+ "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
"object-inspect": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
@@ -206,9 +570,15 @@
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -221,13 +591,46 @@
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
"dev": true
},
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
"resolve": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
"integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
"dev": true,
"requires": {
- "path-parse": "1.0.6"
+ "path-parse": "^1.0.6"
}
},
"resumer": {
@@ -236,39 +639,117 @@
"integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
"dev": true,
"requires": {
- "through": "2.3.8"
+ "through": "~2.3.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
}
},
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
"string.prototype.trim": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
"integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
"dev": true,
"requires": {
- "define-properties": "1.1.3",
- "es-abstract": "1.13.0",
- "function-bind": "1.1.1"
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.0",
+ "function-bind": "^1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
"tape": {
"version": "4.10.2",
"resolved": "https://registry.npmjs.org/tape/-/tape-4.10.2.tgz",
"integrity": "sha512-mgl23h7W2yuk3N85FOYrin2OvThTYWdwbk6XQ1pr2PMJieyW2FM/4Bu/+kD/wecb3aZ0Enm+Syinyq467OPq2w==",
"dev": true,
"requires": {
- "deep-equal": "1.0.1",
- "defined": "1.0.0",
- "for-each": "0.3.3",
- "function-bind": "1.1.1",
- "glob": "7.1.4",
- "has": "1.0.3",
- "inherits": "2.0.3",
- "minimist": "1.2.0",
- "object-inspect": "1.6.0",
- "resolve": "1.10.1",
- "resumer": "0.0.0",
- "string.prototype.trim": "1.1.2",
- "through": "2.3.8"
+ "deep-equal": "~1.0.1",
+ "defined": "~1.0.0",
+ "for-each": "~0.3.3",
+ "function-bind": "~1.1.1",
+ "glob": "~7.1.4",
+ "has": "~1.0.3",
+ "inherits": "~2.0.3",
+ "minimist": "~1.2.0",
+ "object-inspect": "~1.6.0",
+ "resolve": "~1.10.1",
+ "resumer": "~0.0.0",
+ "string.prototype.trim": "~1.1.2",
+ "through": "~2.3.8"
+ }
+ },
+ "tar": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+ "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+ "dev": true,
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.12",
+ "inherits": "2"
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
+ "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
+ "dev": true,
+ "requires": {
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.2.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.1",
+ "xtend": "^4.0.0"
+ }
+ },
+ "tar.gz": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz",
+ "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^2.9.34",
+ "commander": "^2.8.1",
+ "fstream": "^1.0.8",
+ "mout": "^0.11.0",
+ "tar": "^2.1.1"
}
},
"through": {
@@ -277,11 +758,87 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
+ "tmp": {
+ "version": "0.0.31",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
+ "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.1"
+ }
+ },
+ "to-buffer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "walkdir": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
+ "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
+ "dev": true
+ },
+ "webassembly": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/webassembly/-/webassembly-0.11.0.tgz",
+ "integrity": "sha1-BtIcg7vZKxc+2kTQhuL1ENIOjRQ=",
+ "dev": true,
+ "requires": {
+ "archiver": "^1.3.0",
+ "chalk": "^1.1.3",
+ "extract-zip": "^1.6.5",
+ "follow-redirects": "^1.2.3",
+ "glob": "^7.1.1",
+ "minimist": "^1.2.0",
+ "tar.gz": "^1.0.5",
+ "tmp": "0.0.31"
+ }
+ },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "requires": {
+ "fd-slicer": "~1.0.1"
+ }
+ },
+ "zip-stream": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
+ "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
+ "dev": true,
+ "requires": {
+ "archiver-utils": "^1.3.0",
+ "compress-commons": "^1.2.0",
+ "lodash": "^4.8.0",
+ "readable-stream": "^2.0.0"
+ }
}
}
}
diff --git a/package.json b/package.json
@@ -15,7 +15,8 @@
"author": "Robin Bron <finwo@pm.me>",
"license": "MIT",
"devDependencies": {
- "tape": "^4.10.2"
+ "tape": "^4.10.2",
+ "webassembly": "^0.11.0"
},
"dependencies": {
"is-buffer": "^2.0.3"
diff --git a/patch/supercop/00-single-file-compile.patch b/patch/supercop/00-single-file-compile.patch
@@ -0,0 +1,156 @@
+diff --git a/src/sc.c b/src/sc.c
+index ca5bad2..3d2ab56 100644
+--- a/src/sc.c
++++ b/src/sc.c
+@@ -1,7 +1,7 @@
+ #include "fixedint.h"
+ #include "sc.h"
+
+-static uint64_t load_3(const unsigned char *in) {
++static uint64_t sc_load_3(const unsigned char *in) {
+ uint64_t result;
+
+ result = (uint64_t) in[0];
+@@ -11,7 +11,7 @@ static uint64_t load_3(const unsigned char *in) {
+ return result;
+ }
+
+-static uint64_t load_4(const unsigned char *in) {
++static uint64_t sc_load_4(const unsigned char *in) {
+ uint64_t result;
+
+ result = (uint64_t) in[0];
+@@ -33,30 +33,30 @@ Output:
+ */
+
+ void sc_reduce(unsigned char *s) {
+- int64_t s0 = 2097151 & load_3(s);
+- int64_t s1 = 2097151 & (load_4(s + 2) >> 5);
+- int64_t s2 = 2097151 & (load_3(s + 5) >> 2);
+- int64_t s3 = 2097151 & (load_4(s + 7) >> 7);
+- int64_t s4 = 2097151 & (load_4(s + 10) >> 4);
+- int64_t s5 = 2097151 & (load_3(s + 13) >> 1);
+- int64_t s6 = 2097151 & (load_4(s + 15) >> 6);
+- int64_t s7 = 2097151 & (load_3(s + 18) >> 3);
+- int64_t s8 = 2097151 & load_3(s + 21);
+- int64_t s9 = 2097151 & (load_4(s + 23) >> 5);
+- int64_t s10 = 2097151 & (load_3(s + 26) >> 2);
+- int64_t s11 = 2097151 & (load_4(s + 28) >> 7);
+- int64_t s12 = 2097151 & (load_4(s + 31) >> 4);
+- int64_t s13 = 2097151 & (load_3(s + 34) >> 1);
+- int64_t s14 = 2097151 & (load_4(s + 36) >> 6);
+- int64_t s15 = 2097151 & (load_3(s + 39) >> 3);
+- int64_t s16 = 2097151 & load_3(s + 42);
+- int64_t s17 = 2097151 & (load_4(s + 44) >> 5);
+- int64_t s18 = 2097151 & (load_3(s + 47) >> 2);
+- int64_t s19 = 2097151 & (load_4(s + 49) >> 7);
+- int64_t s20 = 2097151 & (load_4(s + 52) >> 4);
+- int64_t s21 = 2097151 & (load_3(s + 55) >> 1);
+- int64_t s22 = 2097151 & (load_4(s + 57) >> 6);
+- int64_t s23 = (load_4(s + 60) >> 3);
++ int64_t s0 = 2097151 & sc_load_3(s);
++ int64_t s1 = 2097151 & (sc_load_4(s + 2) >> 5);
++ int64_t s2 = 2097151 & (sc_load_3(s + 5) >> 2);
++ int64_t s3 = 2097151 & (sc_load_4(s + 7) >> 7);
++ int64_t s4 = 2097151 & (sc_load_4(s + 10) >> 4);
++ int64_t s5 = 2097151 & (sc_load_3(s + 13) >> 1);
++ int64_t s6 = 2097151 & (sc_load_4(s + 15) >> 6);
++ int64_t s7 = 2097151 & (sc_load_3(s + 18) >> 3);
++ int64_t s8 = 2097151 & sc_load_3(s + 21);
++ int64_t s9 = 2097151 & (sc_load_4(s + 23) >> 5);
++ int64_t s10 = 2097151 & (sc_load_3(s + 26) >> 2);
++ int64_t s11 = 2097151 & (sc_load_4(s + 28) >> 7);
++ int64_t s12 = 2097151 & (sc_load_4(s + 31) >> 4);
++ int64_t s13 = 2097151 & (sc_load_3(s + 34) >> 1);
++ int64_t s14 = 2097151 & (sc_load_4(s + 36) >> 6);
++ int64_t s15 = 2097151 & (sc_load_3(s + 39) >> 3);
++ int64_t s16 = 2097151 & sc_load_3(s + 42);
++ int64_t s17 = 2097151 & (sc_load_4(s + 44) >> 5);
++ int64_t s18 = 2097151 & (sc_load_3(s + 47) >> 2);
++ int64_t s19 = 2097151 & (sc_load_4(s + 49) >> 7);
++ int64_t s20 = 2097151 & (sc_load_4(s + 52) >> 4);
++ int64_t s21 = 2097151 & (sc_load_3(s + 55) >> 1);
++ int64_t s22 = 2097151 & (sc_load_4(s + 57) >> 6);
++ int64_t s23 = (sc_load_4(s + 60) >> 3);
+ int64_t carry0;
+ int64_t carry1;
+ int64_t carry2;
+@@ -360,42 +360,42 @@ Output:
+ */
+
+ void sc_muladd(unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c) {
+- int64_t a0 = 2097151 & load_3(a);
+- int64_t a1 = 2097151 & (load_4(a + 2) >> 5);
+- int64_t a2 = 2097151 & (load_3(a + 5) >> 2);
+- int64_t a3 = 2097151 & (load_4(a + 7) >> 7);
+- int64_t a4 = 2097151 & (load_4(a + 10) >> 4);
+- int64_t a5 = 2097151 & (load_3(a + 13) >> 1);
+- int64_t a6 = 2097151 & (load_4(a + 15) >> 6);
+- int64_t a7 = 2097151 & (load_3(a + 18) >> 3);
+- int64_t a8 = 2097151 & load_3(a + 21);
+- int64_t a9 = 2097151 & (load_4(a + 23) >> 5);
+- int64_t a10 = 2097151 & (load_3(a + 26) >> 2);
+- int64_t a11 = (load_4(a + 28) >> 7);
+- int64_t b0 = 2097151 & load_3(b);
+- int64_t b1 = 2097151 & (load_4(b + 2) >> 5);
+- int64_t b2 = 2097151 & (load_3(b + 5) >> 2);
+- int64_t b3 = 2097151 & (load_4(b + 7) >> 7);
+- int64_t b4 = 2097151 & (load_4(b + 10) >> 4);
+- int64_t b5 = 2097151 & (load_3(b + 13) >> 1);
+- int64_t b6 = 2097151 & (load_4(b + 15) >> 6);
+- int64_t b7 = 2097151 & (load_3(b + 18) >> 3);
+- int64_t b8 = 2097151 & load_3(b + 21);
+- int64_t b9 = 2097151 & (load_4(b + 23) >> 5);
+- int64_t b10 = 2097151 & (load_3(b + 26) >> 2);
+- int64_t b11 = (load_4(b + 28) >> 7);
+- int64_t c0 = 2097151 & load_3(c);
+- int64_t c1 = 2097151 & (load_4(c + 2) >> 5);
+- int64_t c2 = 2097151 & (load_3(c + 5) >> 2);
+- int64_t c3 = 2097151 & (load_4(c + 7) >> 7);
+- int64_t c4 = 2097151 & (load_4(c + 10) >> 4);
+- int64_t c5 = 2097151 & (load_3(c + 13) >> 1);
+- int64_t c6 = 2097151 & (load_4(c + 15) >> 6);
+- int64_t c7 = 2097151 & (load_3(c + 18) >> 3);
+- int64_t c8 = 2097151 & load_3(c + 21);
+- int64_t c9 = 2097151 & (load_4(c + 23) >> 5);
+- int64_t c10 = 2097151 & (load_3(c + 26) >> 2);
+- int64_t c11 = (load_4(c + 28) >> 7);
++ int64_t a0 = 2097151 & sc_load_3(a);
++ int64_t a1 = 2097151 & (sc_load_4(a + 2) >> 5);
++ int64_t a2 = 2097151 & (sc_load_3(a + 5) >> 2);
++ int64_t a3 = 2097151 & (sc_load_4(a + 7) >> 7);
++ int64_t a4 = 2097151 & (sc_load_4(a + 10) >> 4);
++ int64_t a5 = 2097151 & (sc_load_3(a + 13) >> 1);
++ int64_t a6 = 2097151 & (sc_load_4(a + 15) >> 6);
++ int64_t a7 = 2097151 & (sc_load_3(a + 18) >> 3);
++ int64_t a8 = 2097151 & sc_load_3(a + 21);
++ int64_t a9 = 2097151 & (sc_load_4(a + 23) >> 5);
++ int64_t a10 = 2097151 & (sc_load_3(a + 26) >> 2);
++ int64_t a11 = (sc_load_4(a + 28) >> 7);
++ int64_t b0 = 2097151 & sc_load_3(b);
++ int64_t b1 = 2097151 & (sc_load_4(b + 2) >> 5);
++ int64_t b2 = 2097151 & (sc_load_3(b + 5) >> 2);
++ int64_t b3 = 2097151 & (sc_load_4(b + 7) >> 7);
++ int64_t b4 = 2097151 & (sc_load_4(b + 10) >> 4);
++ int64_t b5 = 2097151 & (sc_load_3(b + 13) >> 1);
++ int64_t b6 = 2097151 & (sc_load_4(b + 15) >> 6);
++ int64_t b7 = 2097151 & (sc_load_3(b + 18) >> 3);
++ int64_t b8 = 2097151 & sc_load_3(b + 21);
++ int64_t b9 = 2097151 & (sc_load_4(b + 23) >> 5);
++ int64_t b10 = 2097151 & (sc_load_3(b + 26) >> 2);
++ int64_t b11 = (sc_load_4(b + 28) >> 7);
++ int64_t c0 = 2097151 & sc_load_3(c);
++ int64_t c1 = 2097151 & (sc_load_4(c + 2) >> 5);
++ int64_t c2 = 2097151 & (sc_load_3(c + 5) >> 2);
++ int64_t c3 = 2097151 & (sc_load_4(c + 7) >> 7);
++ int64_t c4 = 2097151 & (sc_load_4(c + 10) >> 4);
++ int64_t c5 = 2097151 & (sc_load_3(c + 13) >> 1);
++ int64_t c6 = 2097151 & (sc_load_4(c + 15) >> 6);
++ int64_t c7 = 2097151 & (sc_load_3(c + 18) >> 3);
++ int64_t c8 = 2097151 & sc_load_3(c + 21);
++ int64_t c9 = 2097151 & (sc_load_4(c + 23) >> 5);
++ int64_t c10 = 2097151 & (sc_load_3(c + 26) >> 2);
++ int64_t c11 = (sc_load_4(c + 28) >> 7);
+ int64_t s0;
+ int64_t s1;
+ int64_t s2;
diff --git a/supercop.c b/supercop.c
@@ -1,20 +1,35 @@
#ifndef ED25519_NO_SEED
#define ED25519_NO_SEED value
#endif
-#include "lib/supercop/src/ed25519.h"
-#include <emscripten.h>
-EMSCRIPTEN_KEEPALIVE
-void create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed){
+#include <webassembly.h>
+#include "lib/supercop/src/add_scalar.c"
+#include "lib/supercop/src/fe.c"
+#include "lib/supercop/src/ge.c"
+#include "lib/supercop/src/key_exchange.c"
+#include "lib/supercop/src/keypair.c"
+#include "lib/supercop/src/sc.c"
+#include "lib/supercop/src/seed.c"
+#include "lib/supercop/src/sha512.c"
+#include "lib/supercop/src/sign.c"
+#include "lib/supercop/src/verify.c"
+
+export void create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed){
ed25519_create_keypair(public_key, private_key, seed);
}
-EMSCRIPTEN_KEEPALIVE
-void sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key){
+export void sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key){
ed25519_sign(signature, message, message_len, public_key, private_key);
}
-EMSCRIPTEN_KEEPALIVE
-int verify(const unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key){
+export int verify(const unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key){
return ed25519_verify(signature, message, message_len, public_key);
}
+
+export void * _malloc(size_t size) {
+ return malloc(size);
+}
+
+export void _free(void *ptr) {
+ return free(ptr);
+}
diff --git a/supercop.js b/supercop.js
@@ -1,13210 +0,0 @@
-// Copyright 2010 The Emscripten Authors. All rights reserved.
-// Emscripten is available under two separate licenses, the MIT license and the
-// University of Illinois/NCSA Open Source License. Both these licenses can be
-// found in the LICENSE file.
-
-// The Module object: Our interface to the outside world. We import
-// and export values on it. There are various ways Module can be used:
-// 1. Not defined. We create it here
-// 2. A function parameter, function(Module) { ..generated code.. }
-// 3. pre-run appended it, var Module = {}; ..generated code..
-// 4. External script tag defines var Module.
-// We need to check if Module already exists (e.g. case 3 above).
-// Substitution will be replaced with actual code on later stage of the build,
-// this way Closure Compiler will not mangle it (e.g. case 4. above).
-// Note that if you want to run closure, and also to use Module
-// after the generated code, you will need to define var Module = {};
-// before the code. Then that object will be used in the code, and you
-// can continue to use Module afterwards as well.
-var Module = typeof Module !== 'undefined' ? Module : {};
-
-// --pre-jses are emitted after the Module integration code, so that they can
-// refer to Module (if they choose; they can also define Module)
-// {{PRE_JSES}}
-
-// Sometimes an existing Module object exists with properties
-// meant to overwrite the default module functionality. Here
-// we collect those properties and reapply _after_ we configure
-// the current environment's defaults to avoid having to be so
-// defensive during initialization.
-var moduleOverrides = {};
-var key;
-for (key in Module) {
- if (Module.hasOwnProperty(key)) {
- moduleOverrides[key] = Module[key];
- }
-}
-
-Module['arguments'] = [];
-Module['thisProgram'] = './this.program';
-Module['quit'] = function(status, toThrow) {
- throw toThrow;
-};
-Module['preRun'] = [];
-Module['postRun'] = [];
-
-// Determine the runtime environment we are in. You can customize this by
-// setting the ENVIRONMENT setting at compile time (see settings.js).
-
-var ENVIRONMENT_IS_WEB = false;
-var ENVIRONMENT_IS_WORKER = false;
-var ENVIRONMENT_IS_NODE = false;
-var ENVIRONMENT_HAS_NODE = false;
-var ENVIRONMENT_IS_SHELL = false;
-ENVIRONMENT_IS_WEB = typeof window === 'object';
-ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
-// A web environment like Electron.js can have Node enabled, so we must
-// distinguish between Node-enabled environments and Node environments per se.
-// This will allow the former to do things like mount NODEFS.
-ENVIRONMENT_HAS_NODE = typeof process === 'object' && typeof require === 'function';
-ENVIRONMENT_IS_NODE = ENVIRONMENT_HAS_NODE && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;
-ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
-
-
-
-// Three configurations we can be running in:
-// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)
-// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)
-// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)
-
-
-
-
-// `/` should be present at the end if `scriptDirectory` is not empty
-var scriptDirectory = '';
-function locateFile(path) {
- if (Module['locateFile']) {
- return Module['locateFile'](path, scriptDirectory);
- } else {
- return scriptDirectory + path;
- }
-}
-
-if (ENVIRONMENT_IS_NODE) {
- scriptDirectory = __dirname + '/';
-
- // Expose functionality in the same simple way that the shells work
- // Note that we pollute the global namespace here, otherwise we break in node
- var nodeFS;
- var nodePath;
-
- Module['read'] = function shell_read(filename, binary) {
- var ret;
- ret = tryParseAsDataURI(filename);
- if (!ret) {
- if (!nodeFS) nodeFS = require('fs');
- if (!nodePath) nodePath = require('path');
- filename = nodePath['normalize'](filename);
- ret = nodeFS['readFileSync'](filename);
- }
- return binary ? ret : ret.toString();
- };
-
- Module['readBinary'] = function readBinary(filename) {
- var ret = Module['read'](filename, true);
- if (!ret.buffer) {
- ret = new Uint8Array(ret);
- }
- assert(ret.buffer);
- return ret;
- };
-
- if (process['argv'].length > 1) {
- Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/');
- }
-
- Module['arguments'] = process['argv'].slice(2);
-
- if (typeof module !== 'undefined') {
- module['exports'] = Module;
- }
-
- process['on']('uncaughtException', function(ex) {
- // suppress ExitStatus exceptions from showing an error
- if (!(ex instanceof ExitStatus)) {
- throw ex;
- }
- });
- // Currently node will swallow unhandled rejections, but this behavior is
- // deprecated, and in the future it will exit with error status.
- process['on']('unhandledRejection', abort);
-
- Module['quit'] = function(status) {
- process['exit'](status);
- };
-
- Module['inspect'] = function () { return '[Emscripten Module object]'; };
-} else
-if (ENVIRONMENT_IS_SHELL) {
-
-
- if (typeof read != 'undefined') {
- Module['read'] = function shell_read(f) {
- var data = tryParseAsDataURI(f);
- if (data) {
- return intArrayToString(data);
- }
- return read(f);
- };
- }
-
- Module['readBinary'] = function readBinary(f) {
- var data;
- data = tryParseAsDataURI(f);
- if (data) {
- return data;
- }
- if (typeof readbuffer === 'function') {
- return new Uint8Array(readbuffer(f));
- }
- data = read(f, 'binary');
- assert(typeof data === 'object');
- return data;
- };
-
- if (typeof scriptArgs != 'undefined') {
- Module['arguments'] = scriptArgs;
- } else if (typeof arguments != 'undefined') {
- Module['arguments'] = arguments;
- }
-
- if (typeof quit === 'function') {
- Module['quit'] = function(status) {
- quit(status);
- }
- }
-} else
-if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
- if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled
- scriptDirectory = self.location.href;
- } else if (document.currentScript) { // web
- scriptDirectory = document.currentScript.src;
- }
- // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.
- // otherwise, slice off the final part of the url to find the script directory.
- // if scriptDirectory does not contain a slash, lastIndexOf will return -1,
- // and scriptDirectory will correctly be replaced with an empty string.
- if (scriptDirectory.indexOf('blob:') !== 0) {
- scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf('/')+1);
- } else {
- scriptDirectory = '';
- }
-
-
- Module['read'] = function shell_read(url) {
- try {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', url, false);
- xhr.send(null);
- return xhr.responseText;
- } catch (err) {
- var data = tryParseAsDataURI(url);
- if (data) {
- return intArrayToString(data);
- }
- throw err;
- }
- };
-
- if (ENVIRONMENT_IS_WORKER) {
- Module['readBinary'] = function readBinary(url) {
- try {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', url, false);
- xhr.responseType = 'arraybuffer';
- xhr.send(null);
- return new Uint8Array(xhr.response);
- } catch (err) {
- var data = tryParseAsDataURI(url);
- if (data) {
- return data;
- }
- throw err;
- }
- };
- }
-
- Module['readAsync'] = function readAsync(url, onload, onerror) {
- var xhr = new XMLHttpRequest();
- xhr.open('GET', url, true);
- xhr.responseType = 'arraybuffer';
- xhr.onload = function xhr_onload() {
- if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
- onload(xhr.response);
- return;
- }
- var data = tryParseAsDataURI(url);
- if (data) {
- onload(data.buffer);
- return;
- }
- onerror();
- };
- xhr.onerror = onerror;
- xhr.send(null);
- };
-
- Module['setWindowTitle'] = function(title) { document.title = title };
-} else
-{
-}
-
-// Set up the out() and err() hooks, which are how we can print to stdout or
-// stderr, respectively.
-// If the user provided Module.print or printErr, use that. Otherwise,
-// console.log is checked first, as 'print' on the web will open a print dialogue
-// printErr is preferable to console.warn (works better in shells)
-// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.
-var out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null));
-var err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || out));
-
-// Merge back in the overrides
-for (key in moduleOverrides) {
- if (moduleOverrides.hasOwnProperty(key)) {
- Module[key] = moduleOverrides[key];
- }
-}
-// Free the object hierarchy contained in the overrides, this lets the GC
-// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.
-moduleOverrides = undefined;
-
-// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
-
-
-
-// Copyright 2017 The Emscripten Authors. All rights reserved.
-// Emscripten is available under two separate licenses, the MIT license and the
-// University of Illinois/NCSA Open Source License. Both these licenses can be
-// found in the LICENSE file.
-
-// {{PREAMBLE_ADDITIONS}}
-
-var STACK_ALIGN = 16;
-
-
-function dynamicAlloc(size) {
- var ret = HEAP32[DYNAMICTOP_PTR>>2];
- var end = (ret + size + 15) & -16;
- if (end > _emscripten_get_heap_size()) {
- abort();
- }
- HEAP32[DYNAMICTOP_PTR>>2] = end;
- return ret;
-}
-
-function alignMemory(size, factor) {
- if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default
- return Math.ceil(size / factor) * factor;
-}
-
-function getNativeTypeSize(type) {
- switch (type) {
- case 'i1': case 'i8': return 1;
- case 'i16': return 2;
- case 'i32': return 4;
- case 'i64': return 8;
- case 'float': return 4;
- case 'double': return 8;
- default: {
- if (type[type.length-1] === '*') {
- return 4; // A pointer
- } else if (type[0] === 'i') {
- var bits = parseInt(type.substr(1));
- assert(bits % 8 === 0, 'getNativeTypeSize invalid bits ' + bits + ', type ' + type);
- return bits / 8;
- } else {
- return 0;
- }
- }
- }
-}
-
-function warnOnce(text) {
- if (!warnOnce.shown) warnOnce.shown = {};
- if (!warnOnce.shown[text]) {
- warnOnce.shown[text] = 1;
- err(text);
- }
-}
-
-var asm2wasmImports = { // special asm2wasm imports
- "f64-rem": function(x, y) {
- return x % y;
- },
- "debugger": function() {
- debugger;
- }
-};
-
-
-
-var jsCallStartIndex = 1;
-var functionPointers = new Array(0);
-
-
-// 'sig' parameter is required for the llvm backend but only when func is not
-// already a WebAssembly function.
-function addFunction(func, sig) {
-
-
- var base = 0;
- for (var i = base; i < base + 0; i++) {
- if (!functionPointers[i]) {
- functionPointers[i] = func;
- return jsCallStartIndex + i;
- }
- }
- throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
-
-}
-
-function removeFunction(index) {
-
- functionPointers[index-jsCallStartIndex] = null;
-}
-
-var funcWrappers = {};
-
-function getFuncWrapper(func, sig) {
- if (!func) return; // on null pointer, return undefined
- assert(sig);
- if (!funcWrappers[sig]) {
- funcWrappers[sig] = {};
- }
- var sigCache = funcWrappers[sig];
- if (!sigCache[func]) {
- // optimize away arguments usage in common cases
- if (sig.length === 1) {
- sigCache[func] = function dynCall_wrapper() {
- return dynCall(sig, func);
- };
- } else if (sig.length === 2) {
- sigCache[func] = function dynCall_wrapper(arg) {
- return dynCall(sig, func, [arg]);
- };
- } else {
- // general case
- sigCache[func] = function dynCall_wrapper() {
- return dynCall(sig, func, Array.prototype.slice.call(arguments));
- };
- }
- }
- return sigCache[func];
-}
-
-
-function makeBigInt(low, high, unsigned) {
- return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0));
-}
-
-function dynCall(sig, ptr, args) {
- if (args && args.length) {
- return Module['dynCall_' + sig].apply(null, [ptr].concat(args));
- } else {
- return Module['dynCall_' + sig].call(null, ptr);
- }
-}
-
-var tempRet0 = 0;
-
-var setTempRet0 = function(value) {
- tempRet0 = value;
-}
-
-var getTempRet0 = function() {
- return tempRet0;
-}
-
-
-var Runtime = {
-};
-
-// The address globals begin at. Very low in memory, for code size and optimization opportunities.
-// Above 0 is static memory, starting with globals.
-// Then the stack.
-// Then 'dynamic' memory for sbrk.
-var GLOBAL_BASE = 8;
-
-
-
-
-// === Preamble library stuff ===
-
-// Documentation for the public APIs defined in this file must be updated in:
-// site/source/docs/api_reference/preamble.js.rst
-// A prebuilt local version of the documentation is available at:
-// site/build/text/docs/api_reference/preamble.js.txt
-// You can also build docs locally as HTML or other formats in site/
-// An online HTML version (which may be of a different version of Emscripten)
-// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
-
-
-
-
-
-// In MINIMAL_RUNTIME, setValue() and getValue() are only available when building with safe heap enabled, for heap safety checking.
-// In traditional runtime, setValue() and getValue() are always available (although their use is highly discouraged due to perf penalties)
-
-/** @type {function(number, number, string, boolean=)} */
-function setValue(ptr, value, type, noSafe) {
- type = type || 'i8';
- if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
- switch(type) {
- case 'i1': HEAP8[((ptr)>>0)]=value; break;
- case 'i8': HEAP8[((ptr)>>0)]=value; break;
- case 'i16': HEAP16[((ptr)>>1)]=value; break;
- case 'i32': HEAP32[((ptr)>>2)]=value; break;
- case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
- case 'float': HEAPF32[((ptr)>>2)]=value; break;
- case 'double': HEAPF64[((ptr)>>3)]=value; break;
- default: abort('invalid type for setValue: ' + type);
- }
-}
-
-/** @type {function(number, string, boolean=)} */
-function getValue(ptr, type, noSafe) {
- type = type || 'i8';
- if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
- switch(type) {
- case 'i1': return HEAP8[((ptr)>>0)];
- case 'i8': return HEAP8[((ptr)>>0)];
- case 'i16': return HEAP16[((ptr)>>1)];
- case 'i32': return HEAP32[((ptr)>>2)];
- case 'i64': return HEAP32[((ptr)>>2)];
- case 'float': return HEAPF32[((ptr)>>2)];
- case 'double': return HEAPF64[((ptr)>>3)];
- default: abort('invalid type for getValue: ' + type);
- }
- return null;
-}
-
-
-
-
-
-// Wasm globals
-
-var wasmMemory;
-
-// Potentially used for direct table calls.
-var wasmTable;
-
-
-//========================================
-// Runtime essentials
-//========================================
-
-// whether we are quitting the application. no code should run after this.
-// set in exit() and abort()
-var ABORT = false;
-
-// set by exit() and abort(). Passed to 'onExit' handler.
-// NOTE: This is also used as the process return code code in shell environments
-// but only when noExitRuntime is false.
-var EXITSTATUS = 0;
-
-/** @type {function(*, string=)} */
-function assert(condition, text) {
- if (!condition) {
- abort('Assertion failed: ' + text);
- }
-}
-
-// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
-function getCFunc(ident) {
- var func = Module['_' + ident]; // closure exported function
- assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');
- return func;
-}
-
-// C calling interface.
-function ccall(ident, returnType, argTypes, args, opts) {
- // For fast lookup of conversion functions
- var toC = {
- 'string': function(str) {
- var ret = 0;
- if (str !== null && str !== undefined && str !== 0) { // null string
- // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
- var len = (str.length << 2) + 1;
- ret = stackAlloc(len);
- stringToUTF8(str, ret, len);
- }
- return ret;
- },
- 'array': function(arr) {
- var ret = stackAlloc(arr.length);
- writeArrayToMemory(arr, ret);
- return ret;
- }
- };
-
- function convertReturnValue(ret) {
- if (returnType === 'string') return UTF8ToString(ret);
- if (returnType === 'boolean') return Boolean(ret);
- return ret;
- }
-
- var func = getCFunc(ident);
- var cArgs = [];
- var stack = 0;
- if (args) {
- for (var i = 0; i < args.length; i++) {
- var converter = toC[argTypes[i]];
- if (converter) {
- if (stack === 0) stack = stackSave();
- cArgs[i] = converter(args[i]);
- } else {
- cArgs[i] = args[i];
- }
- }
- }
- var ret = func.apply(null, cArgs);
- ret = convertReturnValue(ret);
- if (stack !== 0) stackRestore(stack);
- return ret;
-}
-
-function cwrap(ident, returnType, argTypes, opts) {
- argTypes = argTypes || [];
- // When the function takes numbers and returns a number, we can just return
- // the original function
- var numericArgs = argTypes.every(function(type){ return type === 'number'});
- var numericRet = returnType !== 'string';
- if (numericRet && numericArgs && !opts) {
- return getCFunc(ident);
- }
- return function() {
- return ccall(ident, returnType, argTypes, arguments, opts);
- }
-}
-
-var ALLOC_NORMAL = 0; // Tries to use _malloc()
-var ALLOC_STACK = 1; // Lives for the duration of the current function call
-var ALLOC_DYNAMIC = 2; // Cannot be freed except through sbrk
-var ALLOC_NONE = 3; // Do not allocate
-
-// allocate(): This is for internal use. You can use it yourself as well, but the interface
-// is a little tricky (see docs right below). The reason is that it is optimized
-// for multiple syntaxes to save space in generated code. So you should
-// normally not use allocate(), and instead allocate memory using _malloc(),
-// initialize it with setValue(), and so forth.
-// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
-// in *bytes* (note that this is sometimes confusing: the next parameter does not
-// affect this!)
-// @types: Either an array of types, one for each byte (or 0 if no type at that position),
-// or a single type which is used for the entire block. This only matters if there
-// is initial data - if @slab is a number, then this does not matter at all and is
-// ignored.
-// @allocator: How to allocate memory, see ALLOC_*
-/** @type {function((TypedArray|Array<number>|number), string, number, number=)} */
-function allocate(slab, types, allocator, ptr) {
- var zeroinit, size;
- if (typeof slab === 'number') {
- zeroinit = true;
- size = slab;
- } else {
- zeroinit = false;
- size = slab.length;
- }
-
- var singleType = typeof types === 'string' ? types : null;
-
- var ret;
- if (allocator == ALLOC_NONE) {
- ret = ptr;
- } else {
- ret = [_malloc,
- stackAlloc,
- dynamicAlloc][allocator](Math.max(size, singleType ? 1 : types.length));
- }
-
- if (zeroinit) {
- var stop;
- ptr = ret;
- assert((ret & 3) == 0);
- stop = ret + (size & ~3);
- for (; ptr < stop; ptr += 4) {
- HEAP32[((ptr)>>2)]=0;
- }
- stop = ret + size;
- while (ptr < stop) {
- HEAP8[((ptr++)>>0)]=0;
- }
- return ret;
- }
-
- if (singleType === 'i8') {
- if (slab.subarray || slab.slice) {
- HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret);
- } else {
- HEAPU8.set(new Uint8Array(slab), ret);
- }
- return ret;
- }
-
- var i = 0, type, typeSize, previousType;
- while (i < size) {
- var curr = slab[i];
-
- type = singleType || types[i];
- if (type === 0) {
- i++;
- continue;
- }
-
- if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
-
- setValue(ret+i, curr, type);
-
- // no need to look up size unless type changes, so cache it
- if (previousType !== type) {
- typeSize = getNativeTypeSize(type);
- previousType = type;
- }
- i += typeSize;
- }
-
- return ret;
-}
-
-// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready
-function getMemory(size) {
- if (!runtimeInitialized) return dynamicAlloc(size);
- return _malloc(size);
-}
-
-
-
-
-/** @type {function(number, number=)} */
-function Pointer_stringify(ptr, length) {
- abort("this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!");
-}
-
-// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns
-// a copy of that string as a Javascript String object.
-
-function AsciiToString(ptr) {
- var str = '';
- while (1) {
- var ch = HEAPU8[((ptr++)>>0)];
- if (!ch) return str;
- str += String.fromCharCode(ch);
- }
-}
-
-// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
-// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.
-
-function stringToAscii(str, outPtr) {
- return writeAsciiToMemory(str, outPtr, false);
-}
-
-
-// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns
-// a copy of that string as a Javascript String object.
-
-var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
-
-/**
- * @param {number} idx
- * @param {number=} maxBytesToRead
- * @return {string}
- */
-function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
- var endIdx = idx + maxBytesToRead;
- var endPtr = idx;
- // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
- // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
- // (As a tiny code save trick, compare endPtr against endIdx using a negation, so that undefined means Infinity)
- while (u8Array[endPtr] && !(endPtr >= endIdx)) ++endPtr;
-
- if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {
- return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));
- } else {
- var str = '';
- // If building with TextDecoder, we have already computed the string length above, so test loop end condition against that
- while (idx < endPtr) {
- // For UTF8 byte structure, see:
- // http://en.wikipedia.org/wiki/UTF-8#Description
- // https://www.ietf.org/rfc/rfc2279.txt
- // https://tools.ietf.org/html/rfc3629
- var u0 = u8Array[idx++];
- if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; }
- var u1 = u8Array[idx++] & 63;
- if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; }
- var u2 = u8Array[idx++] & 63;
- if ((u0 & 0xF0) == 0xE0) {
- u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
- } else {
- u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);
- }
-
- if (u0 < 0x10000) {
- str += String.fromCharCode(u0);
- } else {
- var ch = u0 - 0x10000;
- str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
- }
- }
- }
- return str;
-}
-
-// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns a
-// copy of that string as a Javascript String object.
-// maxBytesToRead: an optional length that specifies the maximum number of bytes to read. You can omit
-// this parameter to scan the string until the first \0 byte. If maxBytesToRead is
-// passed, and the string at [ptr, ptr+maxBytesToReadr[ contains a null byte in the
-// middle, then the string will cut short at that byte index (i.e. maxBytesToRead will
-// not produce a string of exact length [ptr, ptr+maxBytesToRead[)
-// N.B. mixing frequent uses of UTF8ToString() with and without maxBytesToRead may
-// throw JS JIT optimizations off, so it is worth to consider consistently using one
-// style or the other.
-/**
- * @param {number} ptr
- * @param {number=} maxBytesToRead
- * @return {string}
- */
-function UTF8ToString(ptr, maxBytesToRead) {
- return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '';
-}
-
-// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',
-// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.
-// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.
-// Parameters:
-// str: the Javascript string to copy.
-// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.
-// outIdx: The starting offset in the array to begin the copying.
-// maxBytesToWrite: The maximum number of bytes this function can write to the array.
-// This count should include the null terminator,
-// i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.
-// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.
-// Returns the number of bytes written, EXCLUDING the null terminator.
-
-function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {
- if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.
- return 0;
-
- var startIdx = outIdx;
- var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.
- for (var i = 0; i < str.length; ++i) {
- // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
- // See http://unicode.org/faq/utf_bom.html#utf16-3
- // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629
- var u = str.charCodeAt(i); // possibly a lead surrogate
- if (u >= 0xD800 && u <= 0xDFFF) {
- var u1 = str.charCodeAt(++i);
- u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF);
- }
- if (u <= 0x7F) {
- if (outIdx >= endIdx) break;
- outU8Array[outIdx++] = u;
- } else if (u <= 0x7FF) {
- if (outIdx + 1 >= endIdx) break;
- outU8Array[outIdx++] = 0xC0 | (u >> 6);
- outU8Array[outIdx++] = 0x80 | (u & 63);
- } else if (u <= 0xFFFF) {
- if (outIdx + 2 >= endIdx) break;
- outU8Array[outIdx++] = 0xE0 | (u >> 12);
- outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
- outU8Array[outIdx++] = 0x80 | (u & 63);
- } else {
- if (outIdx + 3 >= endIdx) break;
- outU8Array[outIdx++] = 0xF0 | (u >> 18);
- outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63);
- outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63);
- outU8Array[outIdx++] = 0x80 | (u & 63);
- }
- }
- // Null-terminate the pointer to the buffer.
- outU8Array[outIdx] = 0;
- return outIdx - startIdx;
-}
-
-// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
-// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.
-// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.
-// Returns the number of bytes written, EXCLUDING the null terminator.
-
-function stringToUTF8(str, outPtr, maxBytesToWrite) {
- return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite);
-}
-
-// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.
-function lengthBytesUTF8(str) {
- var len = 0;
- for (var i = 0; i < str.length; ++i) {
- // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.
- // See http://unicode.org/faq/utf_bom.html#utf16-3
- var u = str.charCodeAt(i); // possibly a lead surrogate
- if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF);
- if (u <= 0x7F) ++len;
- else if (u <= 0x7FF) len += 2;
- else if (u <= 0xFFFF) len += 3;
- else len += 4;
- }
- return len;
-}
-
-
-// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
-// a copy of that string as a Javascript String object.
-
-var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;
-function UTF16ToString(ptr) {
- var endPtr = ptr;
- // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.
- // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.
- var idx = endPtr >> 1;
- while (HEAP16[idx]) ++idx;
- endPtr = idx << 1;
-
- if (endPtr - ptr > 32 && UTF16Decoder) {
- return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
- } else {
- var i = 0;
-
- var str = '';
- while (1) {
- var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
- if (codeUnit == 0) return str;
- ++i;
- // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
- str += String.fromCharCode(codeUnit);
- }
- }
-}
-
-// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
-// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.
-// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.
-// Parameters:
-// str: the Javascript string to copy.
-// outPtr: Byte address in Emscripten HEAP where to write the string to.
-// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
-// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.
-// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.
-// Returns the number of bytes written, EXCLUDING the null terminator.
-
-function stringToUTF16(str, outPtr, maxBytesToWrite) {
- // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
- if (maxBytesToWrite === undefined) {
- maxBytesToWrite = 0x7FFFFFFF;
- }
- if (maxBytesToWrite < 2) return 0;
- maxBytesToWrite -= 2; // Null terminator.
- var startPtr = outPtr;
- var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length;
- for (var i = 0; i < numCharsToWrite; ++i) {
- // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
- var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
- HEAP16[((outPtr)>>1)]=codeUnit;
- outPtr += 2;
- }
- // Null-terminate the pointer to the HEAP.
- HEAP16[((outPtr)>>1)]=0;
- return outPtr - startPtr;
-}
-
-// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
-
-function lengthBytesUTF16(str) {
- return str.length*2;
-}
-
-function UTF32ToString(ptr) {
- var i = 0;
-
- var str = '';
- while (1) {
- var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
- if (utf32 == 0)
- return str;
- ++i;
- // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
- // See http://unicode.org/faq/utf_bom.html#utf16-3
- if (utf32 >= 0x10000) {
- var ch = utf32 - 0x10000;
- str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
- } else {
- str += String.fromCharCode(utf32);
- }
- }
-}
-
-// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
-// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.
-// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.
-// Parameters:
-// str: the Javascript string to copy.
-// outPtr: Byte address in Emscripten HEAP where to write the string to.
-// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null
-// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.
-// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.
-// Returns the number of bytes written, EXCLUDING the null terminator.
-
-function stringToUTF32(str, outPtr, maxBytesToWrite) {
- // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.
- if (maxBytesToWrite === undefined) {
- maxBytesToWrite = 0x7FFFFFFF;
- }
- if (maxBytesToWrite < 4) return 0;
- var startPtr = outPtr;
- var endPtr = startPtr + maxBytesToWrite - 4;
- for (var i = 0; i < str.length; ++i) {
- // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
- // See http://unicode.org/faq/utf_bom.html#utf16-3
- var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
- if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
- var trailSurrogate = str.charCodeAt(++i);
- codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
- }
- HEAP32[((outPtr)>>2)]=codeUnit;
- outPtr += 4;
- if (outPtr + 4 > endPtr) break;
- }
- // Null-terminate the pointer to the HEAP.
- HEAP32[((outPtr)>>2)]=0;
- return outPtr - startPtr;
-}
-
-// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.
-
-function lengthBytesUTF32(str) {
- var len = 0;
- for (var i = 0; i < str.length; ++i) {
- // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
- // See http://unicode.org/faq/utf_bom.html#utf16-3
- var codeUnit = str.charCodeAt(i);
- if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.
- len += 4;
- }
-
- return len;
-}
-
-// Allocate heap space for a JS string, and write it there.
-// It is the responsibility of the caller to free() that memory.
-function allocateUTF8(str) {
- var size = lengthBytesUTF8(str) + 1;
- var ret = _malloc(size);
- if (ret) stringToUTF8Array(str, HEAP8, ret, size);
- return ret;
-}
-
-// Allocate stack space for a JS string, and write it there.
-function allocateUTF8OnStack(str) {
- var size = lengthBytesUTF8(str) + 1;
- var ret = stackAlloc(size);
- stringToUTF8Array(str, HEAP8, ret, size);
- return ret;
-}
-
-// Deprecated: This function should not be called because it is unsafe and does not provide
-// a maximum length limit of how many bytes it is allowed to write. Prefer calling the
-// function stringToUTF8Array() instead, which takes in a maximum length that can be used
-// to be secure from out of bounds writes.
-/** @deprecated */
-function writeStringToMemory(string, buffer, dontAddNull) {
- warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');
-
- var /** @type {number} */ lastChar, /** @type {number} */ end;
- if (dontAddNull) {
- // stringToUTF8Array always appends null. If we don't want to do that, remember the
- // character that existed at the location where the null will be placed, and restore
- // that after the write (below).
- end = buffer + lengthBytesUTF8(string);
- lastChar = HEAP8[end];
- }
- stringToUTF8(string, buffer, Infinity);
- if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.
-}
-
-function writeArrayToMemory(array, buffer) {
- HEAP8.set(array, buffer);
-}
-
-function writeAsciiToMemory(str, buffer, dontAddNull) {
- for (var i = 0; i < str.length; ++i) {
- HEAP8[((buffer++)>>0)]=str.charCodeAt(i);
- }
- // Null-terminate the pointer to the HEAP.
- if (!dontAddNull) HEAP8[((buffer)>>0)]=0;
-}
-
-
-
-
-
-function demangle(func) {
- return func;
-}
-
-function demangleAll(text) {
- var regex =
- /__Z[\w\d_]+/g;
- return text.replace(regex,
- function(x) {
- var y = demangle(x);
- return x === y ? x : (y + ' [' + x + ']');
- });
-}
-
-function jsStackTrace() {
- var err = new Error();
- if (!err.stack) {
- // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,
- // so try that as a special-case.
- try {
- throw new Error(0);
- } catch(e) {
- err = e;
- }
- if (!err.stack) {
- return '(no stack trace available)';
- }
- }
- return err.stack.toString();
-}
-
-function stackTrace() {
- var js = jsStackTrace();
- if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace']();
- return demangleAll(js);
-}
-
-
-
-// Memory management
-
-var PAGE_SIZE = 16384;
-var WASM_PAGE_SIZE = 65536;
-var ASMJS_PAGE_SIZE = 16777216;
-
-function alignUp(x, multiple) {
- if (x % multiple > 0) {
- x += multiple - (x % multiple);
- }
- return x;
-}
-
-var HEAP,
-/** @type {ArrayBuffer} */
- buffer,
-/** @type {Int8Array} */
- HEAP8,
-/** @type {Uint8Array} */
- HEAPU8,
-/** @type {Int16Array} */
- HEAP16,
-/** @type {Uint16Array} */
- HEAPU16,
-/** @type {Int32Array} */
- HEAP32,
-/** @type {Uint32Array} */
- HEAPU32,
-/** @type {Float32Array} */
- HEAPF32,
-/** @type {Float64Array} */
- HEAPF64;
-
-function updateGlobalBufferViews() {
- Module['HEAP8'] = HEAP8 = new Int8Array(buffer);
- Module['HEAP16'] = HEAP16 = new Int16Array(buffer);
- Module['HEAP32'] = HEAP32 = new Int32Array(buffer);
- Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);
- Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);
- Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);
- Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);
- Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);
-}
-
-
-var STATIC_BASE = 8,
- STACK_BASE = 33216,
- STACKTOP = STACK_BASE,
- STACK_MAX = 5276096,
- DYNAMIC_BASE = 5276096,
- DYNAMICTOP_PTR = 33184;
-
-
-
-
-var TOTAL_STACK = 5242880;
-
-var INITIAL_TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
-if (INITIAL_TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + INITIAL_TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')');
-
-// Initialize the runtime's memory
-
-
-
-
-
-
-
-// Use a provided buffer, if there is one, or else allocate a new one
-if (Module['buffer']) {
- buffer = Module['buffer'];
-} else {
- // Use a WebAssembly memory where available
- {
- buffer = new ArrayBuffer(INITIAL_TOTAL_MEMORY);
- }
-}
-updateGlobalBufferViews();
-
-
-HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE;
-
-
-
-
-
-
-// Endianness check (note: assumes compiler arch was little-endian)
-
-function callRuntimeCallbacks(callbacks) {
- while(callbacks.length > 0) {
- var callback = callbacks.shift();
- if (typeof callback == 'function') {
- callback();
- continue;
- }
- var func = callback.func;
- if (typeof func === 'number') {
- if (callback.arg === undefined) {
- Module['dynCall_v'](func);
- } else {
- Module['dynCall_vi'](func, callback.arg);
- }
- } else {
- func(callback.arg === undefined ? null : callback.arg);
- }
- }
-}
-
-var __ATPRERUN__ = []; // functions called before the runtime is initialized
-var __ATINIT__ = []; // functions called during startup
-var __ATMAIN__ = []; // functions called when main() is to be run
-var __ATEXIT__ = []; // functions called during shutdown
-var __ATPOSTRUN__ = []; // functions called after the main() is called
-
-var runtimeInitialized = false;
-var runtimeExited = false;
-
-
-function preRun() {
- // compatibility - merge in anything from Module['preRun'] at this time
- if (Module['preRun']) {
- if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
- while (Module['preRun'].length) {
- addOnPreRun(Module['preRun'].shift());
- }
- }
- callRuntimeCallbacks(__ATPRERUN__);
-}
-
-function ensureInitRuntime() {
- if (runtimeInitialized) return;
- runtimeInitialized = true;
-
- callRuntimeCallbacks(__ATINIT__);
-}
-
-function preMain() {
-
- callRuntimeCallbacks(__ATMAIN__);
-}
-
-function exitRuntime() {
- runtimeExited = true;
-}
-
-function postRun() {
- // compatibility - merge in anything from Module['postRun'] at this time
- if (Module['postRun']) {
- if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
- while (Module['postRun'].length) {
- addOnPostRun(Module['postRun'].shift());
- }
- }
- callRuntimeCallbacks(__ATPOSTRUN__);
-}
-
-function addOnPreRun(cb) {
- __ATPRERUN__.unshift(cb);
-}
-
-function addOnInit(cb) {
- __ATINIT__.unshift(cb);
-}
-
-function addOnPreMain(cb) {
- __ATMAIN__.unshift(cb);
-}
-
-function addOnExit(cb) {
-}
-
-function addOnPostRun(cb) {
- __ATPOSTRUN__.unshift(cb);
-}
-
-function unSign(value, bits, ignore) {
- if (value >= 0) {
- return value;
- }
- return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
- : Math.pow(2, bits) + value;
-}
-function reSign(value, bits, ignore) {
- if (value <= 0) {
- return value;
- }
- var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
- : Math.pow(2, bits-1);
- if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
- // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
- // TODO: In i64 mode 1, resign the two parts separately and safely
- value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
- }
- return value;
-}
-
-
-
-var Math_abs = Math.abs;
-var Math_cos = Math.cos;
-var Math_sin = Math.sin;
-var Math_tan = Math.tan;
-var Math_acos = Math.acos;
-var Math_asin = Math.asin;
-var Math_atan = Math.atan;
-var Math_atan2 = Math.atan2;
-var Math_exp = Math.exp;
-var Math_log = Math.log;
-var Math_sqrt = Math.sqrt;
-var Math_ceil = Math.ceil;
-var Math_floor = Math.floor;
-var Math_pow = Math.pow;
-var Math_imul = Math.imul;
-var Math_fround = Math.fround;
-var Math_round = Math.round;
-var Math_min = Math.min;
-var Math_max = Math.max;
-var Math_clz32 = Math.clz32;
-var Math_trunc = Math.trunc;
-
-
-
-// A counter of dependencies for calling run(). If we need to
-// do asynchronous work before running, increment this and
-// decrement it. Incrementing must happen in a place like
-// Module.preRun (used by emcc to add file preloading).
-// Note that you can add dependencies in preRun, even though
-// it happens right before run - run will be postponed until
-// the dependencies are met.
-var runDependencies = 0;
-var runDependencyWatcher = null;
-var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
-
-function getUniqueRunDependency(id) {
- return id;
-}
-
-function addRunDependency(id) {
- runDependencies++;
- if (Module['monitorRunDependencies']) {
- Module['monitorRunDependencies'](runDependencies);
- }
-}
-
-function removeRunDependency(id) {
- runDependencies--;
- if (Module['monitorRunDependencies']) {
- Module['monitorRunDependencies'](runDependencies);
- }
- if (runDependencies == 0) {
- if (runDependencyWatcher !== null) {
- clearInterval(runDependencyWatcher);
- runDependencyWatcher = null;
- }
- if (dependenciesFulfilled) {
- var callback = dependenciesFulfilled;
- dependenciesFulfilled = null;
- callback(); // can add another dependenciesFulfilled
- }
- }
-}
-
-Module["preloadedImages"] = {}; // maps url to image data
-Module["preloadedAudios"] = {}; // maps url to audio data
-
-
-var memoryInitializer = null;
-
-
-
-
-
-
-// Copyright 2017 The Emscripten Authors. All rights reserved.
-// Emscripten is available under two separate licenses, the MIT license and the
-// University of Illinois/NCSA Open Source License. Both these licenses can be
-// found in the LICENSE file.
-
-// Prefix of data URIs emitted by SINGLE_FILE and related options.
-var dataURIPrefix = 'data:application/octet-stream;base64,';
-
-// Indicates whether filename is a base64 data URI.
-function isDataURI(filename) {
- return String.prototype.startsWith ?
- filename.startsWith(dataURIPrefix) :
- filename.indexOf(dataURIPrefix) === 0;
-}
-
-
-
-
-
-// === Body ===
-
-var ASM_CONSTS = [];
-
-
-
-
-
-// STATICTOP = STATIC_BASE + 33208;
-/* global initializers */ /*__ATINIT__.push();*/
-
-
-memoryInitializer = "data:application/octet-stream;base64,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";
-
-
-
-
-
-/* no memory initializer */
-var tempDoublePtr = 33200
-
-function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
- HEAP8[tempDoublePtr] = HEAP8[ptr];
- HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
- HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
- HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
-}
-
-function copyTempDouble(ptr) {
- HEAP8[tempDoublePtr] = HEAP8[ptr];
- HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
- HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
- HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
- HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
- HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
- HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
- HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
-}
-
-// {{PRE_LIBRARY}}
-
-
-
-
-
-
-
-
-
-
-
- function _emscripten_get_heap_size() {
- return HEAP8.length;
- }
-
-
-
-
-
-
- function _emscripten_memcpy_big(dest, src, num) {
- HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
- }
-
-
-
-
-
-
- function ___setErrNo(value) {
- if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value;
- return value;
- }
-
-
- function abortOnCannotGrowMemory(requestedSize) {
- abort('OOM');
- }function _emscripten_resize_heap(requestedSize) {
- abortOnCannotGrowMemory(requestedSize);
- }
-var ASSERTIONS = false;
-
-// Copyright 2017 The Emscripten Authors. All rights reserved.
-// Emscripten is available under two separate licenses, the MIT license and the
-// University of Illinois/NCSA Open Source License. Both these licenses can be
-// found in the LICENSE file.
-
-/** @type {function(string, boolean=, number=)} */
-function intArrayFromString(stringy, dontAddNull, length) {
- var len = length > 0 ? length : lengthBytesUTF8(stringy)+1;
- var u8array = new Array(len);
- var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
- if (dontAddNull) u8array.length = numBytesWritten;
- return u8array;
-}
-
-function intArrayToString(array) {
- var ret = [];
- for (var i = 0; i < array.length; i++) {
- var chr = array[i];
- if (chr > 0xFF) {
- if (ASSERTIONS) {
- assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');
- }
- chr &= 0xFF;
- }
- ret.push(String.fromCharCode(chr));
- }
- return ret.join('');
-}
-
-
-// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149
-
-// This code was written by Tyler Akins and has been placed in the
-// public domain. It would be nice if you left this header intact.
-// Base64 code from Tyler Akins -- http://rumkin.com
-
-/**
- * Decodes a base64 string.
- * @param {String} input The string to decode.
- */
-var decodeBase64 = typeof atob === 'function' ? atob : function (input) {
- var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
-
- var output = '';
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- var i = 0;
- // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
- do {
- enc1 = keyStr.indexOf(input.charAt(i++));
- enc2 = keyStr.indexOf(input.charAt(i++));
- enc3 = keyStr.indexOf(input.charAt(i++));
- enc4 = keyStr.indexOf(input.charAt(i++));
-
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
-
- output = output + String.fromCharCode(chr1);
-
- if (enc3 !== 64) {
- output = output + String.fromCharCode(chr2);
- }
- if (enc4 !== 64) {
- output = output + String.fromCharCode(chr3);
- }
- } while (i < input.length);
- return output;
-};
-
-// Converts a string of base64 into a byte array.
-// Throws error on invalid input.
-function intArrayFromBase64(s) {
- if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) {
- var buf;
- try {
- buf = Buffer.from(s, 'base64');
- } catch (_) {
- buf = new Buffer(s, 'base64');
- }
- return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
- }
-
- try {
- var decoded = decodeBase64(s);
- var bytes = new Uint8Array(decoded.length);
- for (var i = 0 ; i < decoded.length ; ++i) {
- bytes[i] = decoded.charCodeAt(i);
- }
- return bytes;
- } catch (_) {
- throw new Error('Converting base64 string to bytes failed.');
- }
-}
-
-// If filename is a base64 data URI, parses and returns data (Buffer on node,
-// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined.
-function tryParseAsDataURI(filename) {
- if (!isDataURI(filename)) {
- return;
- }
-
- return intArrayFromBase64(filename.slice(dataURIPrefix.length));
-}
-
-
-// ASM_LIBRARY EXTERN PRIMITIVES: Math_imul,Int8Array,Int32Array
-
-
-var asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array }
-
-var asmLibraryArg = {
- "a": abort,
- "b": setTempRet0,
- "c": getTempRet0,
- "d": ___setErrNo,
- "e": _emscripten_get_heap_size,
- "f": _emscripten_memcpy_big,
- "g": _emscripten_resize_heap,
- "h": abortOnCannotGrowMemory,
- "i": tempDoublePtr,
- "j": DYNAMICTOP_PTR
-}
-// EMSCRIPTEN_START_ASM
-var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) {
-'use asm';
-
- var HEAP8 = new global.Int8Array(buffer),
- HEAP32 = new global.Int32Array(buffer),
- HEAPU8 = new global.Uint8Array(buffer),
- tempDoublePtr=env.i|0,
- DYNAMICTOP_PTR=env.j|0,
- __THREW__ = 0,
- threwValue = 0,
- setjmpId = 0,
- tempInt = 0,
- tempBigInt = 0,
- tempBigIntS = 0,
- tempValue = 0,
- tempDouble = 0.0,
- Math_imul=global.Math.imul,
- abort=env.a,
- setTempRet0=env.b,
- getTempRet0=env.c,
- ___setErrNo=env.d,
- _emscripten_get_heap_size=env.e,
- _emscripten_memcpy_big=env.f,
- _emscripten_resize_heap=env.g,
- abortOnCannotGrowMemory=env.h,
- STACKTOP = 33216,
- STACK_MAX = 5276096,
- tempFloat = 0.0;
-
-// EMSCRIPTEN_START_FUNCS
-
-function stackAlloc(size) {
- size = size|0;
- var ret = 0;
- ret = STACKTOP;
- STACKTOP = (STACKTOP + size)|0;
- STACKTOP = (STACKTOP + 15)&-16;
-
- return ret|0;
-}
-function stackSave() {
- return STACKTOP|0;
-}
-function stackRestore(top) {
- top = top|0;
- STACKTOP = top;
-}
-function establishStackSpace(stackBase, stackMax) {
- stackBase = stackBase|0;
- stackMax = stackMax|0;
- STACKTOP = stackBase;
- STACK_MAX = stackMax;
-}
-
-function _create_keypair($public_key,$private_key,$seed) {
- $public_key = $public_key|0;
- $private_key = $private_key|0;
- $seed = $seed|0;
- var label = 0, sp = 0;
- sp = STACKTOP;
- _ed25519_create_keypair($public_key,$private_key,$seed);
- return;
-}
-function _sign($signature,$message,$message_len,$public_key,$private_key) {
- $signature = $signature|0;
- $message = $message|0;
- $message_len = $message_len|0;
- $public_key = $public_key|0;
- $private_key = $private_key|0;
- var label = 0, sp = 0;
- sp = STACKTOP;
- _ed25519_sign($signature,$message,$message_len,$public_key,$private_key);
- return;
-}
-function _verify($signature,$message,$message_len,$public_key) {
- $signature = $signature|0;
- $message = $message|0;
- $message_len = $message_len|0;
- $public_key = $public_key|0;
- var $call = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $call = (_ed25519_verify($signature,$message,$message_len,$public_key)|0);
- return ($call|0);
-}
-function _fe_0($h) {
- $h = $h|0;
- var dest = 0, label = 0, sp = 0, stop = 0;
- sp = STACKTOP;
- dest=$h; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
- return;
-}
-function _fe_1($h) {
- $h = $h|0;
- var $arrayidx1 = 0, dest = 0, label = 0, sp = 0, stop = 0;
- sp = STACKTOP;
- HEAP32[$h>>2] = 1;
- $arrayidx1 = ((($h)) + 4|0);
- dest=$arrayidx1; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
- return;
-}
-function _fe_add($h,$f,$g) {
- $h = $h|0;
- $f = $f|0;
- $g = $g|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, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
- var $add = 0, $add20 = 0, $add21 = 0, $add22 = 0, $add23 = 0, $add24 = 0, $add25 = 0, $add26 = 0, $add27 = 0, $add28 = 0, $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0;
- var $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx30 = 0, $arrayidx31 = 0, $arrayidx32 = 0, $arrayidx33 = 0, $arrayidx34 = 0, $arrayidx35 = 0, $arrayidx36 = 0, $arrayidx37 = 0, $arrayidx38 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $10 = HEAP32[$g>>2]|0;
- $arrayidx11 = ((($g)) + 4|0);
- $11 = HEAP32[$arrayidx11>>2]|0;
- $arrayidx12 = ((($g)) + 8|0);
- $12 = HEAP32[$arrayidx12>>2]|0;
- $arrayidx13 = ((($g)) + 12|0);
- $13 = HEAP32[$arrayidx13>>2]|0;
- $arrayidx14 = ((($g)) + 16|0);
- $14 = HEAP32[$arrayidx14>>2]|0;
- $arrayidx15 = ((($g)) + 20|0);
- $15 = HEAP32[$arrayidx15>>2]|0;
- $arrayidx16 = ((($g)) + 24|0);
- $16 = HEAP32[$arrayidx16>>2]|0;
- $arrayidx17 = ((($g)) + 28|0);
- $17 = HEAP32[$arrayidx17>>2]|0;
- $arrayidx18 = ((($g)) + 32|0);
- $18 = HEAP32[$arrayidx18>>2]|0;
- $arrayidx19 = ((($g)) + 36|0);
- $19 = HEAP32[$arrayidx19>>2]|0;
- $add = (($10) + ($0))|0;
- $add20 = (($11) + ($1))|0;
- $add21 = (($12) + ($2))|0;
- $add22 = (($13) + ($3))|0;
- $add23 = (($14) + ($4))|0;
- $add24 = (($15) + ($5))|0;
- $add25 = (($16) + ($6))|0;
- $add26 = (($17) + ($7))|0;
- $add27 = (($18) + ($8))|0;
- $add28 = (($19) + ($9))|0;
- HEAP32[$h>>2] = $add;
- $arrayidx30 = ((($h)) + 4|0);
- HEAP32[$arrayidx30>>2] = $add20;
- $arrayidx31 = ((($h)) + 8|0);
- HEAP32[$arrayidx31>>2] = $add21;
- $arrayidx32 = ((($h)) + 12|0);
- HEAP32[$arrayidx32>>2] = $add22;
- $arrayidx33 = ((($h)) + 16|0);
- HEAP32[$arrayidx33>>2] = $add23;
- $arrayidx34 = ((($h)) + 20|0);
- HEAP32[$arrayidx34>>2] = $add24;
- $arrayidx35 = ((($h)) + 24|0);
- HEAP32[$arrayidx35>>2] = $add25;
- $arrayidx36 = ((($h)) + 28|0);
- HEAP32[$arrayidx36>>2] = $add26;
- $arrayidx37 = ((($h)) + 32|0);
- HEAP32[$arrayidx37>>2] = $add27;
- $arrayidx38 = ((($h)) + 36|0);
- HEAP32[$arrayidx38>>2] = $add28;
- return;
-}
-function _fe_cmov($f,$g,$b) {
- $f = $f|0;
- $g = $g|0;
- $b = $b|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, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
- var $and = 0, $and29 = 0, $and30 = 0, $and31 = 0, $and32 = 0, $and33 = 0, $and34 = 0, $and35 = 0, $and36 = 0, $and37 = 0, $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0;
- var $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $sub = 0, $xor = 0, $xor20 = 0, $xor21 = 0, $xor22 = 0, $xor23 = 0, $xor24 = 0, $xor25 = 0, $xor26 = 0, $xor27 = 0, $xor28 = 0, $xor38 = 0;
- var $xor40 = 0, $xor42 = 0, $xor44 = 0, $xor46 = 0, $xor48 = 0, $xor50 = 0, $xor52 = 0, $xor54 = 0, $xor56 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $10 = HEAP32[$g>>2]|0;
- $arrayidx11 = ((($g)) + 4|0);
- $11 = HEAP32[$arrayidx11>>2]|0;
- $arrayidx12 = ((($g)) + 8|0);
- $12 = HEAP32[$arrayidx12>>2]|0;
- $arrayidx13 = ((($g)) + 12|0);
- $13 = HEAP32[$arrayidx13>>2]|0;
- $arrayidx14 = ((($g)) + 16|0);
- $14 = HEAP32[$arrayidx14>>2]|0;
- $arrayidx15 = ((($g)) + 20|0);
- $15 = HEAP32[$arrayidx15>>2]|0;
- $arrayidx16 = ((($g)) + 24|0);
- $16 = HEAP32[$arrayidx16>>2]|0;
- $arrayidx17 = ((($g)) + 28|0);
- $17 = HEAP32[$arrayidx17>>2]|0;
- $arrayidx18 = ((($g)) + 32|0);
- $18 = HEAP32[$arrayidx18>>2]|0;
- $arrayidx19 = ((($g)) + 36|0);
- $19 = HEAP32[$arrayidx19>>2]|0;
- $xor = $10 ^ $0;
- $xor20 = $11 ^ $1;
- $xor21 = $12 ^ $2;
- $xor22 = $13 ^ $3;
- $xor23 = $14 ^ $4;
- $xor24 = $15 ^ $5;
- $xor25 = $16 ^ $6;
- $xor26 = $17 ^ $7;
- $xor27 = $18 ^ $8;
- $xor28 = $19 ^ $9;
- $sub = (0 - ($b))|0;
- $and = $xor & $sub;
- $and29 = $xor20 & $sub;
- $and30 = $xor21 & $sub;
- $and31 = $xor22 & $sub;
- $and32 = $xor23 & $sub;
- $and33 = $xor24 & $sub;
- $and34 = $xor25 & $sub;
- $and35 = $xor26 & $sub;
- $and36 = $xor27 & $sub;
- $and37 = $xor28 & $sub;
- $xor38 = $and ^ $0;
- HEAP32[$f>>2] = $xor38;
- $xor40 = $and29 ^ $1;
- HEAP32[$arrayidx1>>2] = $xor40;
- $xor42 = $and30 ^ $2;
- HEAP32[$arrayidx2>>2] = $xor42;
- $xor44 = $and31 ^ $3;
- HEAP32[$arrayidx3>>2] = $xor44;
- $xor46 = $and32 ^ $4;
- HEAP32[$arrayidx4>>2] = $xor46;
- $xor48 = $and33 ^ $5;
- HEAP32[$arrayidx5>>2] = $xor48;
- $xor50 = $and34 ^ $6;
- HEAP32[$arrayidx6>>2] = $xor50;
- $xor52 = $and35 ^ $7;
- HEAP32[$arrayidx7>>2] = $xor52;
- $xor54 = $and36 ^ $8;
- HEAP32[$arrayidx8>>2] = $xor54;
- $xor56 = $and37 ^ $9;
- HEAP32[$arrayidx9>>2] = $xor56;
- return;
-}
-function _fe_copy($h,$f) {
- $h = $h|0;
- $f = $f|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0;
- var $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- HEAP32[$h>>2] = $0;
- $arrayidx11 = ((($h)) + 4|0);
- HEAP32[$arrayidx11>>2] = $1;
- $arrayidx12 = ((($h)) + 8|0);
- HEAP32[$arrayidx12>>2] = $2;
- $arrayidx13 = ((($h)) + 12|0);
- HEAP32[$arrayidx13>>2] = $3;
- $arrayidx14 = ((($h)) + 16|0);
- HEAP32[$arrayidx14>>2] = $4;
- $arrayidx15 = ((($h)) + 20|0);
- HEAP32[$arrayidx15>>2] = $5;
- $arrayidx16 = ((($h)) + 24|0);
- HEAP32[$arrayidx16>>2] = $6;
- $arrayidx17 = ((($h)) + 28|0);
- HEAP32[$arrayidx17>>2] = $7;
- $arrayidx18 = ((($h)) + 32|0);
- HEAP32[$arrayidx18>>2] = $8;
- $arrayidx19 = ((($h)) + 36|0);
- HEAP32[$arrayidx19>>2] = $9;
- return;
-}
-function _fe_frombytes($h,$s) {
- $h = $h|0;
- $s = $s|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
- var $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, $14 = 0, $15 = 0, $16 = 0, $17 = 0;
- var $18 = 0, $19 = 0, $2 = 0, $20 = 0, $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;
- 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, $65 = 0, $66 = 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, $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;
- var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $add$ptr = 0, $add$ptr11 = 0, $add$ptr13 = 0, $add$ptr16 = 0, $add$ptr19 = 0, $add$ptr2 = 0, $add$ptr22 = 0, $add$ptr5 = 0, $add$ptr8 = 0, $arrayidx73 = 0;
- var $arrayidx75 = 0, $arrayidx77 = 0, $arrayidx79 = 0, $arrayidx81 = 0, $arrayidx83 = 0, $arrayidx85 = 0, $arrayidx87 = 0, $arrayidx89 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = (_load_4($s)|0);
- $1 = (getTempRet0() | 0);
- $add$ptr = ((($s)) + 4|0);
- $2 = (_load_3($add$ptr)|0);
- $3 = (getTempRet0() | 0);
- $4 = (_bitshift64Shl(($2|0),($3|0),6)|0);
- $5 = (getTempRet0() | 0);
- $add$ptr2 = ((($s)) + 7|0);
- $6 = (_load_3($add$ptr2)|0);
- $7 = (getTempRet0() | 0);
- $8 = (_bitshift64Shl(($6|0),($7|0),5)|0);
- $9 = (getTempRet0() | 0);
- $add$ptr5 = ((($s)) + 10|0);
- $10 = (_load_3($add$ptr5)|0);
- $11 = (getTempRet0() | 0);
- $12 = (_bitshift64Shl(($10|0),($11|0),3)|0);
- $13 = (getTempRet0() | 0);
- $add$ptr8 = ((($s)) + 13|0);
- $14 = (_load_3($add$ptr8)|0);
- $15 = (getTempRet0() | 0);
- $16 = (_bitshift64Shl(($14|0),($15|0),2)|0);
- $17 = (getTempRet0() | 0);
- $add$ptr11 = ((($s)) + 16|0);
- $18 = (_load_4($add$ptr11)|0);
- $19 = (getTempRet0() | 0);
- $add$ptr13 = ((($s)) + 20|0);
- $20 = (_load_3($add$ptr13)|0);
- $21 = (getTempRet0() | 0);
- $22 = (_bitshift64Shl(($20|0),($21|0),7)|0);
- $23 = (getTempRet0() | 0);
- $add$ptr16 = ((($s)) + 23|0);
- $24 = (_load_3($add$ptr16)|0);
- $25 = (getTempRet0() | 0);
- $26 = (_bitshift64Shl(($24|0),($25|0),5)|0);
- $27 = (getTempRet0() | 0);
- $add$ptr19 = ((($s)) + 26|0);
- $28 = (_load_3($add$ptr19)|0);
- $29 = (getTempRet0() | 0);
- $30 = (_bitshift64Shl(($28|0),($29|0),4)|0);
- $31 = (getTempRet0() | 0);
- $add$ptr22 = ((($s)) + 29|0);
- $32 = (_load_3($add$ptr22)|0);
- $33 = (getTempRet0() | 0);
- $34 = (_bitshift64Shl(($32|0),($33|0),2)|0);
- $35 = (getTempRet0() | 0);
- $36 = $34 & 33554428;
- $37 = (_i64Add(($36|0),0,16777216,0)|0);
- $38 = (getTempRet0() | 0);
- $39 = (_bitshift64Lshr(($37|0),($38|0),25)|0);
- $40 = (getTempRet0() | 0);
- $41 = (_i64Subtract(0,0,($39|0),($40|0))|0);
- $42 = (getTempRet0() | 0);
- $43 = $41 & 19;
- $44 = (_i64Add(($43|0),0,($0|0),($1|0))|0);
- $45 = (getTempRet0() | 0);
- $46 = $37 & 33554432;
- $47 = (_i64Subtract(($36|0),0,($46|0),0)|0);
- $48 = (getTempRet0() | 0);
- $49 = (_i64Add(($4|0),($5|0),16777216,0)|0);
- $50 = (getTempRet0() | 0);
- $51 = (_bitshift64Ashr(($49|0),($50|0),25)|0);
- $52 = (getTempRet0() | 0);
- $53 = (_i64Add(($51|0),($52|0),($8|0),($9|0))|0);
- $54 = (getTempRet0() | 0);
- $55 = $49 & -33554432;
- $56 = (_i64Subtract(($4|0),($5|0),($55|0),0)|0);
- $57 = (getTempRet0() | 0);
- $58 = (_i64Add(($12|0),($13|0),16777216,0)|0);
- $59 = (getTempRet0() | 0);
- $60 = (_bitshift64Ashr(($58|0),($59|0),25)|0);
- $61 = (getTempRet0() | 0);
- $62 = (_i64Add(($60|0),($61|0),($16|0),($17|0))|0);
- $63 = (getTempRet0() | 0);
- $64 = $58 & -33554432;
- $65 = (_i64Subtract(($12|0),($13|0),($64|0),0)|0);
- $66 = (getTempRet0() | 0);
- $67 = (_i64Add(($18|0),($19|0),16777216,0)|0);
- $68 = (getTempRet0() | 0);
- $69 = (_bitshift64Ashr(($67|0),($68|0),25)|0);
- $70 = (getTempRet0() | 0);
- $71 = (_i64Add(($22|0),($23|0),($69|0),($70|0))|0);
- $72 = (getTempRet0() | 0);
- $73 = $67 & -33554432;
- $74 = (_i64Subtract(($18|0),($19|0),($73|0),0)|0);
- $75 = (getTempRet0() | 0);
- $76 = (_i64Add(($26|0),($27|0),16777216,0)|0);
- $77 = (getTempRet0() | 0);
- $78 = (_bitshift64Ashr(($76|0),($77|0),25)|0);
- $79 = (getTempRet0() | 0);
- $80 = (_i64Add(($78|0),($79|0),($30|0),($31|0))|0);
- $81 = (getTempRet0() | 0);
- $82 = $76 & -33554432;
- $83 = (_i64Subtract(($26|0),($27|0),($82|0),0)|0);
- $84 = (getTempRet0() | 0);
- $85 = (_i64Add(($44|0),($45|0),33554432,0)|0);
- $86 = (getTempRet0() | 0);
- $87 = (_bitshift64Lshr(($85|0),($86|0),26)|0);
- $88 = (getTempRet0() | 0);
- $89 = (_i64Add(($56|0),($57|0),($87|0),($88|0))|0);
- $90 = (getTempRet0() | 0);
- $91 = $85 & -67108864;
- $92 = (_i64Subtract(($44|0),($45|0),($91|0),0)|0);
- $93 = (getTempRet0() | 0);
- $94 = (_i64Add(($53|0),($54|0),33554432,0)|0);
- $95 = (getTempRet0() | 0);
- $96 = (_bitshift64Lshr(($94|0),($95|0),26)|0);
- $97 = (getTempRet0() | 0);
- $98 = (_i64Add(($65|0),($66|0),($96|0),($97|0))|0);
- $99 = (getTempRet0() | 0);
- $100 = $94 & -67108864;
- $101 = (_i64Subtract(($53|0),($54|0),($100|0),0)|0);
- $102 = (getTempRet0() | 0);
- $103 = (_i64Add(($62|0),($63|0),33554432,0)|0);
- $104 = (getTempRet0() | 0);
- $105 = (_bitshift64Lshr(($103|0),($104|0),26)|0);
- $106 = (getTempRet0() | 0);
- $107 = (_i64Add(($74|0),($75|0),($105|0),($106|0))|0);
- $108 = (getTempRet0() | 0);
- $109 = $103 & -67108864;
- $110 = (_i64Subtract(($62|0),($63|0),($109|0),0)|0);
- $111 = (getTempRet0() | 0);
- $112 = (_i64Add(($71|0),($72|0),33554432,0)|0);
- $113 = (getTempRet0() | 0);
- $114 = (_bitshift64Lshr(($112|0),($113|0),26)|0);
- $115 = (getTempRet0() | 0);
- $116 = (_i64Add(($83|0),($84|0),($114|0),($115|0))|0);
- $117 = (getTempRet0() | 0);
- $118 = $112 & -67108864;
- $119 = (_i64Subtract(($71|0),($72|0),($118|0),0)|0);
- $120 = (getTempRet0() | 0);
- $121 = (_i64Add(($80|0),($81|0),33554432,0)|0);
- $122 = (getTempRet0() | 0);
- $123 = (_bitshift64Lshr(($121|0),($122|0),26)|0);
- $124 = (getTempRet0() | 0);
- $125 = (_i64Add(($47|0),($48|0),($123|0),($124|0))|0);
- $126 = (getTempRet0() | 0);
- $127 = $121 & -67108864;
- $128 = (_i64Subtract(($80|0),($81|0),($127|0),0)|0);
- $129 = (getTempRet0() | 0);
- HEAP32[$h>>2] = $92;
- $arrayidx73 = ((($h)) + 4|0);
- HEAP32[$arrayidx73>>2] = $89;
- $arrayidx75 = ((($h)) + 8|0);
- HEAP32[$arrayidx75>>2] = $101;
- $arrayidx77 = ((($h)) + 12|0);
- HEAP32[$arrayidx77>>2] = $98;
- $arrayidx79 = ((($h)) + 16|0);
- HEAP32[$arrayidx79>>2] = $110;
- $arrayidx81 = ((($h)) + 20|0);
- HEAP32[$arrayidx81>>2] = $107;
- $arrayidx83 = ((($h)) + 24|0);
- HEAP32[$arrayidx83>>2] = $119;
- $arrayidx85 = ((($h)) + 28|0);
- HEAP32[$arrayidx85>>2] = $116;
- $arrayidx87 = ((($h)) + 32|0);
- HEAP32[$arrayidx87>>2] = $128;
- $arrayidx89 = ((($h)) + 36|0);
- HEAP32[$arrayidx89>>2] = $125;
- return;
-}
-function _load_4($in) {
- $in = $in|0;
- var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0;
- var $arrayidx3 = 0, $arrayidx7 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP8[$in>>0]|0;
- $1 = $0&255;
- $arrayidx1 = ((($in)) + 1|0);
- $2 = HEAP8[$arrayidx1>>0]|0;
- $3 = $2&255;
- $4 = (_bitshift64Shl(($3|0),0,8)|0);
- $5 = (getTempRet0() | 0);
- $6 = $4 | $1;
- $arrayidx3 = ((($in)) + 2|0);
- $7 = HEAP8[$arrayidx3>>0]|0;
- $8 = $7&255;
- $9 = (_bitshift64Shl(($8|0),0,16)|0);
- $10 = (getTempRet0() | 0);
- $11 = $6 | $9;
- $12 = $5 | $10;
- $arrayidx7 = ((($in)) + 3|0);
- $13 = HEAP8[$arrayidx7>>0]|0;
- $14 = $13&255;
- $15 = (_bitshift64Shl(($14|0),0,24)|0);
- $16 = (getTempRet0() | 0);
- $17 = $11 | $15;
- $18 = $12 | $16;
- setTempRet0(($18) | 0);
- return ($17|0);
-}
-function _load_3($in) {
- $in = $in|0;
- var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx3 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP8[$in>>0]|0;
- $1 = $0&255;
- $arrayidx1 = ((($in)) + 1|0);
- $2 = HEAP8[$arrayidx1>>0]|0;
- $3 = $2&255;
- $4 = (_bitshift64Shl(($3|0),0,8)|0);
- $5 = (getTempRet0() | 0);
- $6 = $4 | $1;
- $arrayidx3 = ((($in)) + 2|0);
- $7 = HEAP8[$arrayidx3>>0]|0;
- $8 = $7&255;
- $9 = (_bitshift64Shl(($8|0),0,16)|0);
- $10 = (getTempRet0() | 0);
- $11 = $6 | $9;
- $12 = $5 | $10;
- setTempRet0(($12) | 0);
- return ($11|0);
-}
-function _fe_invert($out,$z) {
- $out = $out|0;
- $z = $z|0;
- var $exitcond = 0, $exitcond33 = 0, $exitcond34 = 0, $i$727 = 0, $i$826 = 0, $i$925 = 0, $inc104 = 0, $inc117 = 0, $inc91 = 0, $t0 = 0, $t1 = 0, $t2 = 0, $t3 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 192|0;
- $t0 = sp + 144|0;
- $t1 = sp + 96|0;
- $t2 = sp + 48|0;
- $t3 = sp;
- _fe_sq($t0,$z);
- _fe_sq($t1,$t0);
- _fe_sq($t1,$t1);
- _fe_mul($t1,$z,$t1);
- _fe_mul($t0,$t0,$t1);
- _fe_sq($t2,$t0);
- _fe_mul($t1,$t1,$t2);
- _fe_sq($t2,$t1);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_mul($t1,$t2,$t1);
- _fe_sq($t2,$t1);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_mul($t2,$t2,$t1);
- _fe_sq($t3,$t2);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_sq($t3,$t3);
- _fe_mul($t2,$t3,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_mul($t1,$t2,$t1);
- _fe_sq($t2,$t1);
- $i$727 = 1;
- while(1) {
- _fe_sq($t2,$t2);
- $inc91 = (($i$727) + 1)|0;
- $exitcond34 = ($inc91|0)==(50);
- if ($exitcond34) {
- break;
- } else {
- $i$727 = $inc91;
- }
- }
- _fe_mul($t2,$t2,$t1);
- _fe_sq($t3,$t2);
- $i$826 = 1;
- while(1) {
- _fe_sq($t3,$t3);
- $inc104 = (($i$826) + 1)|0;
- $exitcond33 = ($inc104|0)==(100);
- if ($exitcond33) {
- break;
- } else {
- $i$826 = $inc104;
- }
- }
- _fe_mul($t2,$t3,$t2);
- _fe_sq($t2,$t2);
- $i$925 = 1;
- while(1) {
- _fe_sq($t2,$t2);
- $inc117 = (($i$925) + 1)|0;
- $exitcond = ($inc117|0)==(50);
- if ($exitcond) {
- break;
- } else {
- $i$925 = $inc117;
- }
- }
- _fe_mul($t1,$t2,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_mul($out,$t1,$t0);
- STACKTOP = sp;return;
-}
-function _fe_sq($h,$f) {
- $h = $h|0;
- $f = $f|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
- var $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, $132 = 0, $133 = 0;
- var $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, $150 = 0, $151 = 0;
- var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
- var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
- var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
- var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
- var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
- var $242 = 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, $26 = 0;
- var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
- var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
- var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
- var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
- var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
- var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 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, $arrayidx1 = 0, $arrayidx2 = 0, $arrayidx291 = 0, $arrayidx293 = 0, $arrayidx295 = 0, $arrayidx297 = 0, $arrayidx299 = 0, $arrayidx3 = 0, $arrayidx301 = 0, $arrayidx303 = 0, $arrayidx305 = 0, $arrayidx307 = 0, $arrayidx4 = 0, $arrayidx5 = 0;
- var $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $mul = 0, $mul10 = 0, $mul11 = 0, $mul12 = 0, $mul13 = 0, $mul14 = 0, $mul15 = 0, $mul16 = 0, $mul17 = 0, $mul18 = 0, $mul19 = 0, $mul20 = 0, $mul21 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $mul = $0 << 1;
- $mul10 = $1 << 1;
- $mul11 = $2 << 1;
- $mul12 = $3 << 1;
- $mul13 = $4 << 1;
- $mul14 = $5 << 1;
- $mul15 = $6 << 1;
- $mul16 = $7 << 1;
- $mul17 = ($5*38)|0;
- $mul18 = ($6*19)|0;
- $mul19 = ($7*38)|0;
- $mul20 = ($8*19)|0;
- $mul21 = ($9*38)|0;
- $10 = ($0|0)<(0);
- $11 = $10 << 31 >> 31;
- $12 = (___muldi3(($0|0),($11|0),($0|0),($11|0))|0);
- $13 = (getTempRet0() | 0);
- $14 = ($mul|0)<(0);
- $15 = $14 << 31 >> 31;
- $16 = ($1|0)<(0);
- $17 = $16 << 31 >> 31;
- $18 = (___muldi3(($mul|0),($15|0),($1|0),($17|0))|0);
- $19 = (getTempRet0() | 0);
- $20 = ($2|0)<(0);
- $21 = $20 << 31 >> 31;
- $22 = (___muldi3(($2|0),($21|0),($mul|0),($15|0))|0);
- $23 = (getTempRet0() | 0);
- $24 = ($3|0)<(0);
- $25 = $24 << 31 >> 31;
- $26 = (___muldi3(($3|0),($25|0),($mul|0),($15|0))|0);
- $27 = (getTempRet0() | 0);
- $28 = ($4|0)<(0);
- $29 = $28 << 31 >> 31;
- $30 = (___muldi3(($4|0),($29|0),($mul|0),($15|0))|0);
- $31 = (getTempRet0() | 0);
- $32 = ($5|0)<(0);
- $33 = $32 << 31 >> 31;
- $34 = (___muldi3(($5|0),($33|0),($mul|0),($15|0))|0);
- $35 = (getTempRet0() | 0);
- $36 = ($6|0)<(0);
- $37 = $36 << 31 >> 31;
- $38 = (___muldi3(($6|0),($37|0),($mul|0),($15|0))|0);
- $39 = (getTempRet0() | 0);
- $40 = ($7|0)<(0);
- $41 = $40 << 31 >> 31;
- $42 = (___muldi3(($7|0),($41|0),($mul|0),($15|0))|0);
- $43 = (getTempRet0() | 0);
- $44 = ($8|0)<(0);
- $45 = $44 << 31 >> 31;
- $46 = (___muldi3(($8|0),($45|0),($mul|0),($15|0))|0);
- $47 = (getTempRet0() | 0);
- $48 = ($9|0)<(0);
- $49 = $48 << 31 >> 31;
- $50 = (___muldi3(($9|0),($49|0),($mul|0),($15|0))|0);
- $51 = (getTempRet0() | 0);
- $52 = ($mul10|0)<(0);
- $53 = $52 << 31 >> 31;
- $54 = (___muldi3(($mul10|0),($53|0),($1|0),($17|0))|0);
- $55 = (getTempRet0() | 0);
- $56 = (___muldi3(($mul10|0),($53|0),($2|0),($21|0))|0);
- $57 = (getTempRet0() | 0);
- $58 = ($mul12|0)<(0);
- $59 = $58 << 31 >> 31;
- $60 = (___muldi3(($mul12|0),($59|0),($mul10|0),($53|0))|0);
- $61 = (getTempRet0() | 0);
- $62 = (___muldi3(($4|0),($29|0),($mul10|0),($53|0))|0);
- $63 = (getTempRet0() | 0);
- $64 = ($mul14|0)<(0);
- $65 = $64 << 31 >> 31;
- $66 = (___muldi3(($mul14|0),($65|0),($mul10|0),($53|0))|0);
- $67 = (getTempRet0() | 0);
- $68 = (___muldi3(($6|0),($37|0),($mul10|0),($53|0))|0);
- $69 = (getTempRet0() | 0);
- $70 = ($mul16|0)<(0);
- $71 = $70 << 31 >> 31;
- $72 = (___muldi3(($mul16|0),($71|0),($mul10|0),($53|0))|0);
- $73 = (getTempRet0() | 0);
- $74 = (___muldi3(($8|0),($45|0),($mul10|0),($53|0))|0);
- $75 = (getTempRet0() | 0);
- $76 = ($mul21|0)<(0);
- $77 = $76 << 31 >> 31;
- $78 = (___muldi3(($mul21|0),($77|0),($mul10|0),($53|0))|0);
- $79 = (getTempRet0() | 0);
- $80 = (___muldi3(($2|0),($21|0),($2|0),($21|0))|0);
- $81 = (getTempRet0() | 0);
- $82 = ($mul11|0)<(0);
- $83 = $82 << 31 >> 31;
- $84 = (___muldi3(($mul11|0),($83|0),($3|0),($25|0))|0);
- $85 = (getTempRet0() | 0);
- $86 = (___muldi3(($4|0),($29|0),($mul11|0),($83|0))|0);
- $87 = (getTempRet0() | 0);
- $88 = (___muldi3(($5|0),($33|0),($mul11|0),($83|0))|0);
- $89 = (getTempRet0() | 0);
- $90 = (___muldi3(($6|0),($37|0),($mul11|0),($83|0))|0);
- $91 = (getTempRet0() | 0);
- $92 = (___muldi3(($7|0),($41|0),($mul11|0),($83|0))|0);
- $93 = (getTempRet0() | 0);
- $94 = ($mul20|0)<(0);
- $95 = $94 << 31 >> 31;
- $96 = (___muldi3(($mul20|0),($95|0),($mul11|0),($83|0))|0);
- $97 = (getTempRet0() | 0);
- $98 = (___muldi3(($mul21|0),($77|0),($2|0),($21|0))|0);
- $99 = (getTempRet0() | 0);
- $100 = (___muldi3(($mul12|0),($59|0),($3|0),($25|0))|0);
- $101 = (getTempRet0() | 0);
- $102 = (___muldi3(($mul12|0),($59|0),($4|0),($29|0))|0);
- $103 = (getTempRet0() | 0);
- $104 = (___muldi3(($mul14|0),($65|0),($mul12|0),($59|0))|0);
- $105 = (getTempRet0() | 0);
- $106 = (___muldi3(($6|0),($37|0),($mul12|0),($59|0))|0);
- $107 = (getTempRet0() | 0);
- $108 = ($mul19|0)<(0);
- $109 = $108 << 31 >> 31;
- $110 = (___muldi3(($mul19|0),($109|0),($mul12|0),($59|0))|0);
- $111 = (getTempRet0() | 0);
- $112 = (___muldi3(($mul20|0),($95|0),($mul12|0),($59|0))|0);
- $113 = (getTempRet0() | 0);
- $114 = (___muldi3(($mul21|0),($77|0),($mul12|0),($59|0))|0);
- $115 = (getTempRet0() | 0);
- $116 = (___muldi3(($4|0),($29|0),($4|0),($29|0))|0);
- $117 = (getTempRet0() | 0);
- $118 = ($mul13|0)<(0);
- $119 = $118 << 31 >> 31;
- $120 = (___muldi3(($mul13|0),($119|0),($5|0),($33|0))|0);
- $121 = (getTempRet0() | 0);
- $122 = ($mul18|0)<(0);
- $123 = $122 << 31 >> 31;
- $124 = (___muldi3(($mul18|0),($123|0),($mul13|0),($119|0))|0);
- $125 = (getTempRet0() | 0);
- $126 = (___muldi3(($mul19|0),($109|0),($4|0),($29|0))|0);
- $127 = (getTempRet0() | 0);
- $128 = (___muldi3(($mul20|0),($95|0),($mul13|0),($119|0))|0);
- $129 = (getTempRet0() | 0);
- $130 = (___muldi3(($mul21|0),($77|0),($4|0),($29|0))|0);
- $131 = (getTempRet0() | 0);
- $132 = ($mul17|0)<(0);
- $133 = $132 << 31 >> 31;
- $134 = (___muldi3(($mul17|0),($133|0),($5|0),($33|0))|0);
- $135 = (getTempRet0() | 0);
- $136 = (___muldi3(($mul18|0),($123|0),($mul14|0),($65|0))|0);
- $137 = (getTempRet0() | 0);
- $138 = (___muldi3(($mul19|0),($109|0),($mul14|0),($65|0))|0);
- $139 = (getTempRet0() | 0);
- $140 = (___muldi3(($mul20|0),($95|0),($mul14|0),($65|0))|0);
- $141 = (getTempRet0() | 0);
- $142 = (___muldi3(($mul21|0),($77|0),($mul14|0),($65|0))|0);
- $143 = (getTempRet0() | 0);
- $144 = (___muldi3(($mul18|0),($123|0),($6|0),($37|0))|0);
- $145 = (getTempRet0() | 0);
- $146 = (___muldi3(($mul19|0),($109|0),($6|0),($37|0))|0);
- $147 = (getTempRet0() | 0);
- $148 = ($mul15|0)<(0);
- $149 = $148 << 31 >> 31;
- $150 = (___muldi3(($mul20|0),($95|0),($mul15|0),($149|0))|0);
- $151 = (getTempRet0() | 0);
- $152 = (___muldi3(($mul21|0),($77|0),($6|0),($37|0))|0);
- $153 = (getTempRet0() | 0);
- $154 = (___muldi3(($mul19|0),($109|0),($7|0),($41|0))|0);
- $155 = (getTempRet0() | 0);
- $156 = (___muldi3(($mul20|0),($95|0),($mul16|0),($71|0))|0);
- $157 = (getTempRet0() | 0);
- $158 = (___muldi3(($mul21|0),($77|0),($mul16|0),($71|0))|0);
- $159 = (getTempRet0() | 0);
- $160 = (___muldi3(($mul20|0),($95|0),($8|0),($45|0))|0);
- $161 = (getTempRet0() | 0);
- $162 = (___muldi3(($mul21|0),($77|0),($8|0),($45|0))|0);
- $163 = (getTempRet0() | 0);
- $164 = (___muldi3(($mul21|0),($77|0),($9|0),($49|0))|0);
- $165 = (getTempRet0() | 0);
- $166 = (_i64Add(($134|0),($135|0),($12|0),($13|0))|0);
- $167 = (getTempRet0() | 0);
- $168 = (_i64Add(($166|0),($167|0),($124|0),($125|0))|0);
- $169 = (getTempRet0() | 0);
- $170 = (_i64Add(($168|0),($169|0),($110|0),($111|0))|0);
- $171 = (getTempRet0() | 0);
- $172 = (_i64Add(($170|0),($171|0),($96|0),($97|0))|0);
- $173 = (getTempRet0() | 0);
- $174 = (_i64Add(($172|0),($173|0),($78|0),($79|0))|0);
- $175 = (getTempRet0() | 0);
- $176 = (_i64Add(($22|0),($23|0),($54|0),($55|0))|0);
- $177 = (getTempRet0() | 0);
- $178 = (_i64Add(($26|0),($27|0),($56|0),($57|0))|0);
- $179 = (getTempRet0() | 0);
- $180 = (_i64Add(($60|0),($61|0),($80|0),($81|0))|0);
- $181 = (getTempRet0() | 0);
- $182 = (_i64Add(($180|0),($181|0),($30|0),($31|0))|0);
- $183 = (getTempRet0() | 0);
- $184 = (_i64Add(($182|0),($183|0),($154|0),($155|0))|0);
- $185 = (getTempRet0() | 0);
- $186 = (_i64Add(($184|0),($185|0),($150|0),($151|0))|0);
- $187 = (getTempRet0() | 0);
- $188 = (_i64Add(($186|0),($187|0),($142|0),($143|0))|0);
- $189 = (getTempRet0() | 0);
- $190 = (_i64Add(($174|0),($175|0),33554432,0)|0);
- $191 = (getTempRet0() | 0);
- $192 = (_bitshift64Ashr(($190|0),($191|0),26)|0);
- $193 = (getTempRet0() | 0);
- $194 = (_i64Add(($136|0),($137|0),($18|0),($19|0))|0);
- $195 = (getTempRet0() | 0);
- $196 = (_i64Add(($194|0),($195|0),($126|0),($127|0))|0);
- $197 = (getTempRet0() | 0);
- $198 = (_i64Add(($196|0),($197|0),($112|0),($113|0))|0);
- $199 = (getTempRet0() | 0);
- $200 = (_i64Add(($198|0),($199|0),($98|0),($99|0))|0);
- $201 = (getTempRet0() | 0);
- $202 = (_i64Add(($200|0),($201|0),($192|0),($193|0))|0);
- $203 = (getTempRet0() | 0);
- $204 = $190 & -67108864;
- $205 = (_i64Subtract(($174|0),($175|0),($204|0),($191|0))|0);
- $206 = (getTempRet0() | 0);
- $207 = (_i64Add(($188|0),($189|0),33554432,0)|0);
- $208 = (getTempRet0() | 0);
- $209 = (_bitshift64Ashr(($207|0),($208|0),26)|0);
- $210 = (getTempRet0() | 0);
- $211 = (_i64Add(($62|0),($63|0),($84|0),($85|0))|0);
- $212 = (getTempRet0() | 0);
- $213 = (_i64Add(($211|0),($212|0),($34|0),($35|0))|0);
- $214 = (getTempRet0() | 0);
- $215 = (_i64Add(($213|0),($214|0),($156|0),($157|0))|0);
- $216 = (getTempRet0() | 0);
- $217 = (_i64Add(($215|0),($216|0),($152|0),($153|0))|0);
- $218 = (getTempRet0() | 0);
- $219 = (_i64Add(($217|0),($218|0),($209|0),($210|0))|0);
- $220 = (getTempRet0() | 0);
- $221 = $207 & -67108864;
- $222 = (_i64Subtract(($188|0),($189|0),($221|0),($208|0))|0);
- $223 = (getTempRet0() | 0);
- $224 = (_i64Add(($202|0),($203|0),16777216,0)|0);
- $225 = (getTempRet0() | 0);
- $226 = (_bitshift64Ashr(($224|0),($225|0),25)|0);
- $227 = (getTempRet0() | 0);
- $228 = (_i64Add(($176|0),($177|0),($144|0),($145|0))|0);
- $229 = (getTempRet0() | 0);
- $230 = (_i64Add(($228|0),($229|0),($138|0),($139|0))|0);
- $231 = (getTempRet0() | 0);
- $232 = (_i64Add(($230|0),($231|0),($128|0),($129|0))|0);
- $233 = (getTempRet0() | 0);
- $234 = (_i64Add(($232|0),($233|0),($114|0),($115|0))|0);
- $235 = (getTempRet0() | 0);
- $236 = (_i64Add(($234|0),($235|0),($226|0),($227|0))|0);
- $237 = (getTempRet0() | 0);
- $238 = $224 & -33554432;
- $239 = (_i64Subtract(($202|0),($203|0),($238|0),0)|0);
- $240 = (getTempRet0() | 0);
- $241 = (_i64Add(($219|0),($220|0),16777216,0)|0);
- $242 = (getTempRet0() | 0);
- $243 = (_bitshift64Ashr(($241|0),($242|0),25)|0);
- $244 = (getTempRet0() | 0);
- $245 = (_i64Add(($100|0),($101|0),($86|0),($87|0))|0);
- $246 = (getTempRet0() | 0);
- $247 = (_i64Add(($245|0),($246|0),($66|0),($67|0))|0);
- $248 = (getTempRet0() | 0);
- $249 = (_i64Add(($247|0),($248|0),($38|0),($39|0))|0);
- $250 = (getTempRet0() | 0);
- $251 = (_i64Add(($249|0),($250|0),($160|0),($161|0))|0);
- $252 = (getTempRet0() | 0);
- $253 = (_i64Add(($251|0),($252|0),($158|0),($159|0))|0);
- $254 = (getTempRet0() | 0);
- $255 = (_i64Add(($253|0),($254|0),($243|0),($244|0))|0);
- $256 = (getTempRet0() | 0);
- $257 = $241 & -33554432;
- $258 = (_i64Subtract(($219|0),($220|0),($257|0),0)|0);
- $259 = (getTempRet0() | 0);
- $260 = (_i64Add(($236|0),($237|0),33554432,0)|0);
- $261 = (getTempRet0() | 0);
- $262 = (_bitshift64Ashr(($260|0),($261|0),26)|0);
- $263 = (getTempRet0() | 0);
- $264 = (_i64Add(($178|0),($179|0),($146|0),($147|0))|0);
- $265 = (getTempRet0() | 0);
- $266 = (_i64Add(($264|0),($265|0),($140|0),($141|0))|0);
- $267 = (getTempRet0() | 0);
- $268 = (_i64Add(($266|0),($267|0),($130|0),($131|0))|0);
- $269 = (getTempRet0() | 0);
- $270 = (_i64Add(($268|0),($269|0),($262|0),($263|0))|0);
- $271 = (getTempRet0() | 0);
- $272 = $260 & -67108864;
- $273 = (_i64Subtract(($236|0),($237|0),($272|0),0)|0);
- $274 = (getTempRet0() | 0);
- $275 = (_i64Add(($255|0),($256|0),33554432,0)|0);
- $276 = (getTempRet0() | 0);
- $277 = (_bitshift64Ashr(($275|0),($276|0),26)|0);
- $278 = (getTempRet0() | 0);
- $279 = (_i64Add(($88|0),($89|0),($102|0),($103|0))|0);
- $280 = (getTempRet0() | 0);
- $281 = (_i64Add(($279|0),($280|0),($68|0),($69|0))|0);
- $282 = (getTempRet0() | 0);
- $283 = (_i64Add(($281|0),($282|0),($42|0),($43|0))|0);
- $284 = (getTempRet0() | 0);
- $285 = (_i64Add(($283|0),($284|0),($162|0),($163|0))|0);
- $286 = (getTempRet0() | 0);
- $287 = (_i64Add(($285|0),($286|0),($277|0),($278|0))|0);
- $288 = (getTempRet0() | 0);
- $289 = $275 & -67108864;
- $290 = (_i64Subtract(($255|0),($256|0),($289|0),0)|0);
- $291 = (getTempRet0() | 0);
- $292 = (_i64Add(($270|0),($271|0),16777216,0)|0);
- $293 = (getTempRet0() | 0);
- $294 = (_bitshift64Ashr(($292|0),($293|0),25)|0);
- $295 = (getTempRet0() | 0);
- $296 = (_i64Add(($294|0),($295|0),($222|0),($223|0))|0);
- $297 = (getTempRet0() | 0);
- $298 = $292 & -33554432;
- $299 = (_i64Subtract(($270|0),($271|0),($298|0),0)|0);
- $300 = (getTempRet0() | 0);
- $301 = (_i64Add(($287|0),($288|0),16777216,0)|0);
- $302 = (getTempRet0() | 0);
- $303 = (_bitshift64Ashr(($301|0),($302|0),25)|0);
- $304 = (getTempRet0() | 0);
- $305 = (_i64Add(($90|0),($91|0),($116|0),($117|0))|0);
- $306 = (getTempRet0() | 0);
- $307 = (_i64Add(($305|0),($306|0),($104|0),($105|0))|0);
- $308 = (getTempRet0() | 0);
- $309 = (_i64Add(($307|0),($308|0),($72|0),($73|0))|0);
- $310 = (getTempRet0() | 0);
- $311 = (_i64Add(($309|0),($310|0),($46|0),($47|0))|0);
- $312 = (getTempRet0() | 0);
- $313 = (_i64Add(($311|0),($312|0),($164|0),($165|0))|0);
- $314 = (getTempRet0() | 0);
- $315 = (_i64Add(($313|0),($314|0),($303|0),($304|0))|0);
- $316 = (getTempRet0() | 0);
- $317 = $301 & -33554432;
- $318 = (_i64Subtract(($287|0),($288|0),($317|0),0)|0);
- $319 = (getTempRet0() | 0);
- $320 = (_i64Add(($296|0),($297|0),33554432,0)|0);
- $321 = (getTempRet0() | 0);
- $322 = (_bitshift64Lshr(($320|0),($321|0),26)|0);
- $323 = (getTempRet0() | 0);
- $324 = (_i64Add(($258|0),($259|0),($322|0),($323|0))|0);
- $325 = (getTempRet0() | 0);
- $326 = $320 & -67108864;
- $327 = (_i64Subtract(($296|0),($297|0),($326|0),0)|0);
- $328 = (getTempRet0() | 0);
- $329 = (_i64Add(($315|0),($316|0),33554432,0)|0);
- $330 = (getTempRet0() | 0);
- $331 = (_bitshift64Ashr(($329|0),($330|0),26)|0);
- $332 = (getTempRet0() | 0);
- $333 = (_i64Add(($106|0),($107|0),($120|0),($121|0))|0);
- $334 = (getTempRet0() | 0);
- $335 = (_i64Add(($333|0),($334|0),($92|0),($93|0))|0);
- $336 = (getTempRet0() | 0);
- $337 = (_i64Add(($335|0),($336|0),($74|0),($75|0))|0);
- $338 = (getTempRet0() | 0);
- $339 = (_i64Add(($337|0),($338|0),($50|0),($51|0))|0);
- $340 = (getTempRet0() | 0);
- $341 = (_i64Add(($339|0),($340|0),($331|0),($332|0))|0);
- $342 = (getTempRet0() | 0);
- $343 = $329 & -67108864;
- $344 = (_i64Subtract(($315|0),($316|0),($343|0),0)|0);
- $345 = (getTempRet0() | 0);
- $346 = (_i64Add(($341|0),($342|0),16777216,0)|0);
- $347 = (getTempRet0() | 0);
- $348 = (_bitshift64Ashr(($346|0),($347|0),25)|0);
- $349 = (getTempRet0() | 0);
- $350 = (___muldi3(($348|0),($349|0),19,0)|0);
- $351 = (getTempRet0() | 0);
- $352 = (_i64Add(($350|0),($351|0),($205|0),($206|0))|0);
- $353 = (getTempRet0() | 0);
- $354 = $346 & -33554432;
- $355 = (_i64Subtract(($341|0),($342|0),($354|0),0)|0);
- $356 = (getTempRet0() | 0);
- $357 = (_i64Add(($352|0),($353|0),33554432,0)|0);
- $358 = (getTempRet0() | 0);
- $359 = (_bitshift64Lshr(($357|0),($358|0),26)|0);
- $360 = (getTempRet0() | 0);
- $361 = (_i64Add(($239|0),($240|0),($359|0),($360|0))|0);
- $362 = (getTempRet0() | 0);
- $363 = $357 & -67108864;
- $364 = (_i64Subtract(($352|0),($353|0),($363|0),0)|0);
- $365 = (getTempRet0() | 0);
- HEAP32[$h>>2] = $364;
- $arrayidx291 = ((($h)) + 4|0);
- HEAP32[$arrayidx291>>2] = $361;
- $arrayidx293 = ((($h)) + 8|0);
- HEAP32[$arrayidx293>>2] = $273;
- $arrayidx295 = ((($h)) + 12|0);
- HEAP32[$arrayidx295>>2] = $299;
- $arrayidx297 = ((($h)) + 16|0);
- HEAP32[$arrayidx297>>2] = $327;
- $arrayidx299 = ((($h)) + 20|0);
- HEAP32[$arrayidx299>>2] = $324;
- $arrayidx301 = ((($h)) + 24|0);
- HEAP32[$arrayidx301>>2] = $290;
- $arrayidx303 = ((($h)) + 28|0);
- HEAP32[$arrayidx303>>2] = $318;
- $arrayidx305 = ((($h)) + 32|0);
- HEAP32[$arrayidx305>>2] = $344;
- $arrayidx307 = ((($h)) + 36|0);
- HEAP32[$arrayidx307>>2] = $355;
- return;
-}
-function _fe_mul($h,$f,$g) {
- $h = $h|0;
- $f = $f|0;
- $g = $g|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
- var $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, $132 = 0, $133 = 0;
- var $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, $150 = 0, $151 = 0;
- var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
- var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
- var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
- var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
- var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
- var $242 = 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, $26 = 0;
- var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
- var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
- var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
- var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
- var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
- var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
- var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
- var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
- var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
- var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
- var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
- var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
- var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
- var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
- var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
- var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
- var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
- var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0;
- var $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, $81 = 0, $82 = 0;
- var $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, $arrayidx1 = 0, $arrayidx11 = 0;
- var $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx482 = 0, $arrayidx484 = 0, $arrayidx486 = 0, $arrayidx488 = 0, $arrayidx490 = 0, $arrayidx492 = 0, $arrayidx494 = 0, $arrayidx496 = 0, $arrayidx498 = 0;
- var $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $mul = 0, $mul20 = 0, $mul21 = 0, $mul22 = 0, $mul23 = 0, $mul24 = 0, $mul25 = 0, $mul26 = 0, $mul27 = 0, $mul28 = 0, $mul29 = 0, $mul30 = 0, $mul31 = 0, $mul32 = 0, label = 0;
- var sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $10 = HEAP32[$g>>2]|0;
- $arrayidx11 = ((($g)) + 4|0);
- $11 = HEAP32[$arrayidx11>>2]|0;
- $arrayidx12 = ((($g)) + 8|0);
- $12 = HEAP32[$arrayidx12>>2]|0;
- $arrayidx13 = ((($g)) + 12|0);
- $13 = HEAP32[$arrayidx13>>2]|0;
- $arrayidx14 = ((($g)) + 16|0);
- $14 = HEAP32[$arrayidx14>>2]|0;
- $arrayidx15 = ((($g)) + 20|0);
- $15 = HEAP32[$arrayidx15>>2]|0;
- $arrayidx16 = ((($g)) + 24|0);
- $16 = HEAP32[$arrayidx16>>2]|0;
- $arrayidx17 = ((($g)) + 28|0);
- $17 = HEAP32[$arrayidx17>>2]|0;
- $arrayidx18 = ((($g)) + 32|0);
- $18 = HEAP32[$arrayidx18>>2]|0;
- $arrayidx19 = ((($g)) + 36|0);
- $19 = HEAP32[$arrayidx19>>2]|0;
- $mul = ($11*19)|0;
- $mul20 = ($12*19)|0;
- $mul21 = ($13*19)|0;
- $mul22 = ($14*19)|0;
- $mul23 = ($15*19)|0;
- $mul24 = ($16*19)|0;
- $mul25 = ($17*19)|0;
- $mul26 = ($18*19)|0;
- $mul27 = ($19*19)|0;
- $mul28 = $1 << 1;
- $mul29 = $3 << 1;
- $mul30 = $5 << 1;
- $mul31 = $7 << 1;
- $mul32 = $9 << 1;
- $20 = ($0|0)<(0);
- $21 = $20 << 31 >> 31;
- $22 = ($10|0)<(0);
- $23 = $22 << 31 >> 31;
- $24 = (___muldi3(($10|0),($23|0),($0|0),($21|0))|0);
- $25 = (getTempRet0() | 0);
- $26 = ($11|0)<(0);
- $27 = $26 << 31 >> 31;
- $28 = (___muldi3(($11|0),($27|0),($0|0),($21|0))|0);
- $29 = (getTempRet0() | 0);
- $30 = ($12|0)<(0);
- $31 = $30 << 31 >> 31;
- $32 = (___muldi3(($12|0),($31|0),($0|0),($21|0))|0);
- $33 = (getTempRet0() | 0);
- $34 = ($13|0)<(0);
- $35 = $34 << 31 >> 31;
- $36 = (___muldi3(($13|0),($35|0),($0|0),($21|0))|0);
- $37 = (getTempRet0() | 0);
- $38 = ($14|0)<(0);
- $39 = $38 << 31 >> 31;
- $40 = (___muldi3(($14|0),($39|0),($0|0),($21|0))|0);
- $41 = (getTempRet0() | 0);
- $42 = ($15|0)<(0);
- $43 = $42 << 31 >> 31;
- $44 = (___muldi3(($15|0),($43|0),($0|0),($21|0))|0);
- $45 = (getTempRet0() | 0);
- $46 = ($16|0)<(0);
- $47 = $46 << 31 >> 31;
- $48 = (___muldi3(($16|0),($47|0),($0|0),($21|0))|0);
- $49 = (getTempRet0() | 0);
- $50 = ($17|0)<(0);
- $51 = $50 << 31 >> 31;
- $52 = (___muldi3(($17|0),($51|0),($0|0),($21|0))|0);
- $53 = (getTempRet0() | 0);
- $54 = ($18|0)<(0);
- $55 = $54 << 31 >> 31;
- $56 = (___muldi3(($18|0),($55|0),($0|0),($21|0))|0);
- $57 = (getTempRet0() | 0);
- $58 = ($19|0)<(0);
- $59 = $58 << 31 >> 31;
- $60 = (___muldi3(($19|0),($59|0),($0|0),($21|0))|0);
- $61 = (getTempRet0() | 0);
- $62 = ($1|0)<(0);
- $63 = $62 << 31 >> 31;
- $64 = (___muldi3(($10|0),($23|0),($1|0),($63|0))|0);
- $65 = (getTempRet0() | 0);
- $66 = ($mul28|0)<(0);
- $67 = $66 << 31 >> 31;
- $68 = (___muldi3(($11|0),($27|0),($mul28|0),($67|0))|0);
- $69 = (getTempRet0() | 0);
- $70 = (___muldi3(($12|0),($31|0),($1|0),($63|0))|0);
- $71 = (getTempRet0() | 0);
- $72 = (___muldi3(($13|0),($35|0),($mul28|0),($67|0))|0);
- $73 = (getTempRet0() | 0);
- $74 = (___muldi3(($14|0),($39|0),($1|0),($63|0))|0);
- $75 = (getTempRet0() | 0);
- $76 = (___muldi3(($15|0),($43|0),($mul28|0),($67|0))|0);
- $77 = (getTempRet0() | 0);
- $78 = (___muldi3(($16|0),($47|0),($1|0),($63|0))|0);
- $79 = (getTempRet0() | 0);
- $80 = (___muldi3(($17|0),($51|0),($mul28|0),($67|0))|0);
- $81 = (getTempRet0() | 0);
- $82 = (___muldi3(($18|0),($55|0),($1|0),($63|0))|0);
- $83 = (getTempRet0() | 0);
- $84 = ($mul27|0)<(0);
- $85 = $84 << 31 >> 31;
- $86 = (___muldi3(($mul27|0),($85|0),($mul28|0),($67|0))|0);
- $87 = (getTempRet0() | 0);
- $88 = ($2|0)<(0);
- $89 = $88 << 31 >> 31;
- $90 = (___muldi3(($10|0),($23|0),($2|0),($89|0))|0);
- $91 = (getTempRet0() | 0);
- $92 = (___muldi3(($11|0),($27|0),($2|0),($89|0))|0);
- $93 = (getTempRet0() | 0);
- $94 = (___muldi3(($12|0),($31|0),($2|0),($89|0))|0);
- $95 = (getTempRet0() | 0);
- $96 = (___muldi3(($13|0),($35|0),($2|0),($89|0))|0);
- $97 = (getTempRet0() | 0);
- $98 = (___muldi3(($14|0),($39|0),($2|0),($89|0))|0);
- $99 = (getTempRet0() | 0);
- $100 = (___muldi3(($15|0),($43|0),($2|0),($89|0))|0);
- $101 = (getTempRet0() | 0);
- $102 = (___muldi3(($16|0),($47|0),($2|0),($89|0))|0);
- $103 = (getTempRet0() | 0);
- $104 = (___muldi3(($17|0),($51|0),($2|0),($89|0))|0);
- $105 = (getTempRet0() | 0);
- $106 = ($mul26|0)<(0);
- $107 = $106 << 31 >> 31;
- $108 = (___muldi3(($mul26|0),($107|0),($2|0),($89|0))|0);
- $109 = (getTempRet0() | 0);
- $110 = (___muldi3(($mul27|0),($85|0),($2|0),($89|0))|0);
- $111 = (getTempRet0() | 0);
- $112 = ($3|0)<(0);
- $113 = $112 << 31 >> 31;
- $114 = (___muldi3(($10|0),($23|0),($3|0),($113|0))|0);
- $115 = (getTempRet0() | 0);
- $116 = ($mul29|0)<(0);
- $117 = $116 << 31 >> 31;
- $118 = (___muldi3(($11|0),($27|0),($mul29|0),($117|0))|0);
- $119 = (getTempRet0() | 0);
- $120 = (___muldi3(($12|0),($31|0),($3|0),($113|0))|0);
- $121 = (getTempRet0() | 0);
- $122 = (___muldi3(($13|0),($35|0),($mul29|0),($117|0))|0);
- $123 = (getTempRet0() | 0);
- $124 = (___muldi3(($14|0),($39|0),($3|0),($113|0))|0);
- $125 = (getTempRet0() | 0);
- $126 = (___muldi3(($15|0),($43|0),($mul29|0),($117|0))|0);
- $127 = (getTempRet0() | 0);
- $128 = (___muldi3(($16|0),($47|0),($3|0),($113|0))|0);
- $129 = (getTempRet0() | 0);
- $130 = ($mul25|0)<(0);
- $131 = $130 << 31 >> 31;
- $132 = (___muldi3(($mul25|0),($131|0),($mul29|0),($117|0))|0);
- $133 = (getTempRet0() | 0);
- $134 = (___muldi3(($mul26|0),($107|0),($3|0),($113|0))|0);
- $135 = (getTempRet0() | 0);
- $136 = (___muldi3(($mul27|0),($85|0),($mul29|0),($117|0))|0);
- $137 = (getTempRet0() | 0);
- $138 = ($4|0)<(0);
- $139 = $138 << 31 >> 31;
- $140 = (___muldi3(($10|0),($23|0),($4|0),($139|0))|0);
- $141 = (getTempRet0() | 0);
- $142 = (___muldi3(($11|0),($27|0),($4|0),($139|0))|0);
- $143 = (getTempRet0() | 0);
- $144 = (___muldi3(($12|0),($31|0),($4|0),($139|0))|0);
- $145 = (getTempRet0() | 0);
- $146 = (___muldi3(($13|0),($35|0),($4|0),($139|0))|0);
- $147 = (getTempRet0() | 0);
- $148 = (___muldi3(($14|0),($39|0),($4|0),($139|0))|0);
- $149 = (getTempRet0() | 0);
- $150 = (___muldi3(($15|0),($43|0),($4|0),($139|0))|0);
- $151 = (getTempRet0() | 0);
- $152 = ($mul24|0)<(0);
- $153 = $152 << 31 >> 31;
- $154 = (___muldi3(($mul24|0),($153|0),($4|0),($139|0))|0);
- $155 = (getTempRet0() | 0);
- $156 = (___muldi3(($mul25|0),($131|0),($4|0),($139|0))|0);
- $157 = (getTempRet0() | 0);
- $158 = (___muldi3(($mul26|0),($107|0),($4|0),($139|0))|0);
- $159 = (getTempRet0() | 0);
- $160 = (___muldi3(($mul27|0),($85|0),($4|0),($139|0))|0);
- $161 = (getTempRet0() | 0);
- $162 = ($5|0)<(0);
- $163 = $162 << 31 >> 31;
- $164 = (___muldi3(($10|0),($23|0),($5|0),($163|0))|0);
- $165 = (getTempRet0() | 0);
- $166 = ($mul30|0)<(0);
- $167 = $166 << 31 >> 31;
- $168 = (___muldi3(($11|0),($27|0),($mul30|0),($167|0))|0);
- $169 = (getTempRet0() | 0);
- $170 = (___muldi3(($12|0),($31|0),($5|0),($163|0))|0);
- $171 = (getTempRet0() | 0);
- $172 = (___muldi3(($13|0),($35|0),($mul30|0),($167|0))|0);
- $173 = (getTempRet0() | 0);
- $174 = (___muldi3(($14|0),($39|0),($5|0),($163|0))|0);
- $175 = (getTempRet0() | 0);
- $176 = ($mul23|0)<(0);
- $177 = $176 << 31 >> 31;
- $178 = (___muldi3(($mul23|0),($177|0),($mul30|0),($167|0))|0);
- $179 = (getTempRet0() | 0);
- $180 = (___muldi3(($mul24|0),($153|0),($5|0),($163|0))|0);
- $181 = (getTempRet0() | 0);
- $182 = (___muldi3(($mul25|0),($131|0),($mul30|0),($167|0))|0);
- $183 = (getTempRet0() | 0);
- $184 = (___muldi3(($mul26|0),($107|0),($5|0),($163|0))|0);
- $185 = (getTempRet0() | 0);
- $186 = (___muldi3(($mul27|0),($85|0),($mul30|0),($167|0))|0);
- $187 = (getTempRet0() | 0);
- $188 = ($6|0)<(0);
- $189 = $188 << 31 >> 31;
- $190 = (___muldi3(($10|0),($23|0),($6|0),($189|0))|0);
- $191 = (getTempRet0() | 0);
- $192 = (___muldi3(($11|0),($27|0),($6|0),($189|0))|0);
- $193 = (getTempRet0() | 0);
- $194 = (___muldi3(($12|0),($31|0),($6|0),($189|0))|0);
- $195 = (getTempRet0() | 0);
- $196 = (___muldi3(($13|0),($35|0),($6|0),($189|0))|0);
- $197 = (getTempRet0() | 0);
- $198 = ($mul22|0)<(0);
- $199 = $198 << 31 >> 31;
- $200 = (___muldi3(($mul22|0),($199|0),($6|0),($189|0))|0);
- $201 = (getTempRet0() | 0);
- $202 = (___muldi3(($mul23|0),($177|0),($6|0),($189|0))|0);
- $203 = (getTempRet0() | 0);
- $204 = (___muldi3(($mul24|0),($153|0),($6|0),($189|0))|0);
- $205 = (getTempRet0() | 0);
- $206 = (___muldi3(($mul25|0),($131|0),($6|0),($189|0))|0);
- $207 = (getTempRet0() | 0);
- $208 = (___muldi3(($mul26|0),($107|0),($6|0),($189|0))|0);
- $209 = (getTempRet0() | 0);
- $210 = (___muldi3(($mul27|0),($85|0),($6|0),($189|0))|0);
- $211 = (getTempRet0() | 0);
- $212 = ($7|0)<(0);
- $213 = $212 << 31 >> 31;
- $214 = (___muldi3(($10|0),($23|0),($7|0),($213|0))|0);
- $215 = (getTempRet0() | 0);
- $216 = ($mul31|0)<(0);
- $217 = $216 << 31 >> 31;
- $218 = (___muldi3(($11|0),($27|0),($mul31|0),($217|0))|0);
- $219 = (getTempRet0() | 0);
- $220 = (___muldi3(($12|0),($31|0),($7|0),($213|0))|0);
- $221 = (getTempRet0() | 0);
- $222 = ($mul21|0)<(0);
- $223 = $222 << 31 >> 31;
- $224 = (___muldi3(($mul21|0),($223|0),($mul31|0),($217|0))|0);
- $225 = (getTempRet0() | 0);
- $226 = (___muldi3(($mul22|0),($199|0),($7|0),($213|0))|0);
- $227 = (getTempRet0() | 0);
- $228 = (___muldi3(($mul23|0),($177|0),($mul31|0),($217|0))|0);
- $229 = (getTempRet0() | 0);
- $230 = (___muldi3(($mul24|0),($153|0),($7|0),($213|0))|0);
- $231 = (getTempRet0() | 0);
- $232 = (___muldi3(($mul25|0),($131|0),($mul31|0),($217|0))|0);
- $233 = (getTempRet0() | 0);
- $234 = (___muldi3(($mul26|0),($107|0),($7|0),($213|0))|0);
- $235 = (getTempRet0() | 0);
- $236 = (___muldi3(($mul27|0),($85|0),($mul31|0),($217|0))|0);
- $237 = (getTempRet0() | 0);
- $238 = ($8|0)<(0);
- $239 = $238 << 31 >> 31;
- $240 = (___muldi3(($10|0),($23|0),($8|0),($239|0))|0);
- $241 = (getTempRet0() | 0);
- $242 = (___muldi3(($11|0),($27|0),($8|0),($239|0))|0);
- $243 = (getTempRet0() | 0);
- $244 = ($mul20|0)<(0);
- $245 = $244 << 31 >> 31;
- $246 = (___muldi3(($mul20|0),($245|0),($8|0),($239|0))|0);
- $247 = (getTempRet0() | 0);
- $248 = (___muldi3(($mul21|0),($223|0),($8|0),($239|0))|0);
- $249 = (getTempRet0() | 0);
- $250 = (___muldi3(($mul22|0),($199|0),($8|0),($239|0))|0);
- $251 = (getTempRet0() | 0);
- $252 = (___muldi3(($mul23|0),($177|0),($8|0),($239|0))|0);
- $253 = (getTempRet0() | 0);
- $254 = (___muldi3(($mul24|0),($153|0),($8|0),($239|0))|0);
- $255 = (getTempRet0() | 0);
- $256 = (___muldi3(($mul25|0),($131|0),($8|0),($239|0))|0);
- $257 = (getTempRet0() | 0);
- $258 = (___muldi3(($mul26|0),($107|0),($8|0),($239|0))|0);
- $259 = (getTempRet0() | 0);
- $260 = (___muldi3(($mul27|0),($85|0),($8|0),($239|0))|0);
- $261 = (getTempRet0() | 0);
- $262 = ($9|0)<(0);
- $263 = $262 << 31 >> 31;
- $264 = (___muldi3(($10|0),($23|0),($9|0),($263|0))|0);
- $265 = (getTempRet0() | 0);
- $266 = ($mul32|0)<(0);
- $267 = $266 << 31 >> 31;
- $268 = ($mul|0)<(0);
- $269 = $268 << 31 >> 31;
- $270 = (___muldi3(($mul|0),($269|0),($mul32|0),($267|0))|0);
- $271 = (getTempRet0() | 0);
- $272 = (___muldi3(($mul20|0),($245|0),($9|0),($263|0))|0);
- $273 = (getTempRet0() | 0);
- $274 = (___muldi3(($mul21|0),($223|0),($mul32|0),($267|0))|0);
- $275 = (getTempRet0() | 0);
- $276 = (___muldi3(($mul22|0),($199|0),($9|0),($263|0))|0);
- $277 = (getTempRet0() | 0);
- $278 = (___muldi3(($mul23|0),($177|0),($mul32|0),($267|0))|0);
- $279 = (getTempRet0() | 0);
- $280 = (___muldi3(($mul24|0),($153|0),($9|0),($263|0))|0);
- $281 = (getTempRet0() | 0);
- $282 = (___muldi3(($mul25|0),($131|0),($mul32|0),($267|0))|0);
- $283 = (getTempRet0() | 0);
- $284 = (___muldi3(($mul26|0),($107|0),($9|0),($263|0))|0);
- $285 = (getTempRet0() | 0);
- $286 = (___muldi3(($mul27|0),($85|0),($mul32|0),($267|0))|0);
- $287 = (getTempRet0() | 0);
- $288 = (_i64Add(($270|0),($271|0),($24|0),($25|0))|0);
- $289 = (getTempRet0() | 0);
- $290 = (_i64Add(($288|0),($289|0),($246|0),($247|0))|0);
- $291 = (getTempRet0() | 0);
- $292 = (_i64Add(($290|0),($291|0),($224|0),($225|0))|0);
- $293 = (getTempRet0() | 0);
- $294 = (_i64Add(($292|0),($293|0),($200|0),($201|0))|0);
- $295 = (getTempRet0() | 0);
- $296 = (_i64Add(($294|0),($295|0),($178|0),($179|0))|0);
- $297 = (getTempRet0() | 0);
- $298 = (_i64Add(($296|0),($297|0),($154|0),($155|0))|0);
- $299 = (getTempRet0() | 0);
- $300 = (_i64Add(($298|0),($299|0),($132|0),($133|0))|0);
- $301 = (getTempRet0() | 0);
- $302 = (_i64Add(($300|0),($301|0),($108|0),($109|0))|0);
- $303 = (getTempRet0() | 0);
- $304 = (_i64Add(($302|0),($303|0),($86|0),($87|0))|0);
- $305 = (getTempRet0() | 0);
- $306 = (_i64Add(($28|0),($29|0),($64|0),($65|0))|0);
- $307 = (getTempRet0() | 0);
- $308 = (_i64Add(($118|0),($119|0),($140|0),($141|0))|0);
- $309 = (getTempRet0() | 0);
- $310 = (_i64Add(($308|0),($309|0),($94|0),($95|0))|0);
- $311 = (getTempRet0() | 0);
- $312 = (_i64Add(($310|0),($311|0),($72|0),($73|0))|0);
- $313 = (getTempRet0() | 0);
- $314 = (_i64Add(($312|0),($313|0),($40|0),($41|0))|0);
- $315 = (getTempRet0() | 0);
- $316 = (_i64Add(($314|0),($315|0),($278|0),($279|0))|0);
- $317 = (getTempRet0() | 0);
- $318 = (_i64Add(($316|0),($317|0),($254|0),($255|0))|0);
- $319 = (getTempRet0() | 0);
- $320 = (_i64Add(($318|0),($319|0),($232|0),($233|0))|0);
- $321 = (getTempRet0() | 0);
- $322 = (_i64Add(($320|0),($321|0),($208|0),($209|0))|0);
- $323 = (getTempRet0() | 0);
- $324 = (_i64Add(($322|0),($323|0),($186|0),($187|0))|0);
- $325 = (getTempRet0() | 0);
- $326 = (_i64Add(($304|0),($305|0),33554432,0)|0);
- $327 = (getTempRet0() | 0);
- $328 = (_bitshift64Ashr(($326|0),($327|0),26)|0);
- $329 = (getTempRet0() | 0);
- $330 = (_i64Add(($306|0),($307|0),($272|0),($273|0))|0);
- $331 = (getTempRet0() | 0);
- $332 = (_i64Add(($330|0),($331|0),($248|0),($249|0))|0);
- $333 = (getTempRet0() | 0);
- $334 = (_i64Add(($332|0),($333|0),($226|0),($227|0))|0);
- $335 = (getTempRet0() | 0);
- $336 = (_i64Add(($334|0),($335|0),($202|0),($203|0))|0);
- $337 = (getTempRet0() | 0);
- $338 = (_i64Add(($336|0),($337|0),($180|0),($181|0))|0);
- $339 = (getTempRet0() | 0);
- $340 = (_i64Add(($338|0),($339|0),($156|0),($157|0))|0);
- $341 = (getTempRet0() | 0);
- $342 = (_i64Add(($340|0),($341|0),($134|0),($135|0))|0);
- $343 = (getTempRet0() | 0);
- $344 = (_i64Add(($342|0),($343|0),($110|0),($111|0))|0);
- $345 = (getTempRet0() | 0);
- $346 = (_i64Add(($344|0),($345|0),($328|0),($329|0))|0);
- $347 = (getTempRet0() | 0);
- $348 = $326 & -67108864;
- $349 = (_i64Subtract(($304|0),($305|0),($348|0),($327|0))|0);
- $350 = (getTempRet0() | 0);
- $351 = (_i64Add(($324|0),($325|0),33554432,0)|0);
- $352 = (getTempRet0() | 0);
- $353 = (_bitshift64Ashr(($351|0),($352|0),26)|0);
- $354 = (getTempRet0() | 0);
- $355 = (_i64Add(($142|0),($143|0),($164|0),($165|0))|0);
- $356 = (getTempRet0() | 0);
- $357 = (_i64Add(($355|0),($356|0),($120|0),($121|0))|0);
- $358 = (getTempRet0() | 0);
- $359 = (_i64Add(($357|0),($358|0),($96|0),($97|0))|0);
- $360 = (getTempRet0() | 0);
- $361 = (_i64Add(($359|0),($360|0),($74|0),($75|0))|0);
- $362 = (getTempRet0() | 0);
- $363 = (_i64Add(($361|0),($362|0),($44|0),($45|0))|0);
- $364 = (getTempRet0() | 0);
- $365 = (_i64Add(($363|0),($364|0),($280|0),($281|0))|0);
- $366 = (getTempRet0() | 0);
- $367 = (_i64Add(($365|0),($366|0),($256|0),($257|0))|0);
- $368 = (getTempRet0() | 0);
- $369 = (_i64Add(($367|0),($368|0),($234|0),($235|0))|0);
- $370 = (getTempRet0() | 0);
- $371 = (_i64Add(($369|0),($370|0),($210|0),($211|0))|0);
- $372 = (getTempRet0() | 0);
- $373 = (_i64Add(($371|0),($372|0),($353|0),($354|0))|0);
- $374 = (getTempRet0() | 0);
- $375 = $351 & -67108864;
- $376 = (_i64Subtract(($324|0),($325|0),($375|0),($352|0))|0);
- $377 = (getTempRet0() | 0);
- $378 = (_i64Add(($346|0),($347|0),16777216,0)|0);
- $379 = (getTempRet0() | 0);
- $380 = (_bitshift64Ashr(($378|0),($379|0),25)|0);
- $381 = (getTempRet0() | 0);
- $382 = (_i64Add(($68|0),($69|0),($90|0),($91|0))|0);
- $383 = (getTempRet0() | 0);
- $384 = (_i64Add(($382|0),($383|0),($32|0),($33|0))|0);
- $385 = (getTempRet0() | 0);
- $386 = (_i64Add(($384|0),($385|0),($274|0),($275|0))|0);
- $387 = (getTempRet0() | 0);
- $388 = (_i64Add(($386|0),($387|0),($250|0),($251|0))|0);
- $389 = (getTempRet0() | 0);
- $390 = (_i64Add(($388|0),($389|0),($228|0),($229|0))|0);
- $391 = (getTempRet0() | 0);
- $392 = (_i64Add(($390|0),($391|0),($204|0),($205|0))|0);
- $393 = (getTempRet0() | 0);
- $394 = (_i64Add(($392|0),($393|0),($182|0),($183|0))|0);
- $395 = (getTempRet0() | 0);
- $396 = (_i64Add(($394|0),($395|0),($158|0),($159|0))|0);
- $397 = (getTempRet0() | 0);
- $398 = (_i64Add(($396|0),($397|0),($136|0),($137|0))|0);
- $399 = (getTempRet0() | 0);
- $400 = (_i64Add(($398|0),($399|0),($380|0),($381|0))|0);
- $401 = (getTempRet0() | 0);
- $402 = $378 & -33554432;
- $403 = (_i64Subtract(($346|0),($347|0),($402|0),0)|0);
- $404 = (getTempRet0() | 0);
- $405 = (_i64Add(($373|0),($374|0),16777216,0)|0);
- $406 = (getTempRet0() | 0);
- $407 = (_bitshift64Ashr(($405|0),($406|0),25)|0);
- $408 = (getTempRet0() | 0);
- $409 = (_i64Add(($168|0),($169|0),($190|0),($191|0))|0);
- $410 = (getTempRet0() | 0);
- $411 = (_i64Add(($409|0),($410|0),($144|0),($145|0))|0);
- $412 = (getTempRet0() | 0);
- $413 = (_i64Add(($411|0),($412|0),($122|0),($123|0))|0);
- $414 = (getTempRet0() | 0);
- $415 = (_i64Add(($413|0),($414|0),($98|0),($99|0))|0);
- $416 = (getTempRet0() | 0);
- $417 = (_i64Add(($415|0),($416|0),($76|0),($77|0))|0);
- $418 = (getTempRet0() | 0);
- $419 = (_i64Add(($417|0),($418|0),($48|0),($49|0))|0);
- $420 = (getTempRet0() | 0);
- $421 = (_i64Add(($419|0),($420|0),($282|0),($283|0))|0);
- $422 = (getTempRet0() | 0);
- $423 = (_i64Add(($421|0),($422|0),($258|0),($259|0))|0);
- $424 = (getTempRet0() | 0);
- $425 = (_i64Add(($423|0),($424|0),($236|0),($237|0))|0);
- $426 = (getTempRet0() | 0);
- $427 = (_i64Add(($425|0),($426|0),($407|0),($408|0))|0);
- $428 = (getTempRet0() | 0);
- $429 = $405 & -33554432;
- $430 = (_i64Subtract(($373|0),($374|0),($429|0),0)|0);
- $431 = (getTempRet0() | 0);
- $432 = (_i64Add(($400|0),($401|0),33554432,0)|0);
- $433 = (getTempRet0() | 0);
- $434 = (_bitshift64Ashr(($432|0),($433|0),26)|0);
- $435 = (getTempRet0() | 0);
- $436 = (_i64Add(($92|0),($93|0),($114|0),($115|0))|0);
- $437 = (getTempRet0() | 0);
- $438 = (_i64Add(($436|0),($437|0),($70|0),($71|0))|0);
- $439 = (getTempRet0() | 0);
- $440 = (_i64Add(($438|0),($439|0),($36|0),($37|0))|0);
- $441 = (getTempRet0() | 0);
- $442 = (_i64Add(($440|0),($441|0),($276|0),($277|0))|0);
- $443 = (getTempRet0() | 0);
- $444 = (_i64Add(($442|0),($443|0),($252|0),($253|0))|0);
- $445 = (getTempRet0() | 0);
- $446 = (_i64Add(($444|0),($445|0),($230|0),($231|0))|0);
- $447 = (getTempRet0() | 0);
- $448 = (_i64Add(($446|0),($447|0),($206|0),($207|0))|0);
- $449 = (getTempRet0() | 0);
- $450 = (_i64Add(($448|0),($449|0),($184|0),($185|0))|0);
- $451 = (getTempRet0() | 0);
- $452 = (_i64Add(($450|0),($451|0),($160|0),($161|0))|0);
- $453 = (getTempRet0() | 0);
- $454 = (_i64Add(($452|0),($453|0),($434|0),($435|0))|0);
- $455 = (getTempRet0() | 0);
- $456 = $432 & -67108864;
- $457 = (_i64Subtract(($400|0),($401|0),($456|0),0)|0);
- $458 = (getTempRet0() | 0);
- $459 = (_i64Add(($427|0),($428|0),33554432,0)|0);
- $460 = (getTempRet0() | 0);
- $461 = (_bitshift64Ashr(($459|0),($460|0),26)|0);
- $462 = (getTempRet0() | 0);
- $463 = (_i64Add(($192|0),($193|0),($214|0),($215|0))|0);
- $464 = (getTempRet0() | 0);
- $465 = (_i64Add(($463|0),($464|0),($170|0),($171|0))|0);
- $466 = (getTempRet0() | 0);
- $467 = (_i64Add(($465|0),($466|0),($146|0),($147|0))|0);
- $468 = (getTempRet0() | 0);
- $469 = (_i64Add(($467|0),($468|0),($124|0),($125|0))|0);
- $470 = (getTempRet0() | 0);
- $471 = (_i64Add(($469|0),($470|0),($100|0),($101|0))|0);
- $472 = (getTempRet0() | 0);
- $473 = (_i64Add(($471|0),($472|0),($78|0),($79|0))|0);
- $474 = (getTempRet0() | 0);
- $475 = (_i64Add(($473|0),($474|0),($52|0),($53|0))|0);
- $476 = (getTempRet0() | 0);
- $477 = (_i64Add(($475|0),($476|0),($284|0),($285|0))|0);
- $478 = (getTempRet0() | 0);
- $479 = (_i64Add(($477|0),($478|0),($260|0),($261|0))|0);
- $480 = (getTempRet0() | 0);
- $481 = (_i64Add(($479|0),($480|0),($461|0),($462|0))|0);
- $482 = (getTempRet0() | 0);
- $483 = $459 & -67108864;
- $484 = (_i64Subtract(($427|0),($428|0),($483|0),0)|0);
- $485 = (getTempRet0() | 0);
- $486 = (_i64Add(($454|0),($455|0),16777216,0)|0);
- $487 = (getTempRet0() | 0);
- $488 = (_bitshift64Ashr(($486|0),($487|0),25)|0);
- $489 = (getTempRet0() | 0);
- $490 = (_i64Add(($488|0),($489|0),($376|0),($377|0))|0);
- $491 = (getTempRet0() | 0);
- $492 = $486 & -33554432;
- $493 = (_i64Subtract(($454|0),($455|0),($492|0),0)|0);
- $494 = (getTempRet0() | 0);
- $495 = (_i64Add(($481|0),($482|0),16777216,0)|0);
- $496 = (getTempRet0() | 0);
- $497 = (_bitshift64Ashr(($495|0),($496|0),25)|0);
- $498 = (getTempRet0() | 0);
- $499 = (_i64Add(($218|0),($219|0),($240|0),($241|0))|0);
- $500 = (getTempRet0() | 0);
- $501 = (_i64Add(($499|0),($500|0),($194|0),($195|0))|0);
- $502 = (getTempRet0() | 0);
- $503 = (_i64Add(($501|0),($502|0),($172|0),($173|0))|0);
- $504 = (getTempRet0() | 0);
- $505 = (_i64Add(($503|0),($504|0),($148|0),($149|0))|0);
- $506 = (getTempRet0() | 0);
- $507 = (_i64Add(($505|0),($506|0),($126|0),($127|0))|0);
- $508 = (getTempRet0() | 0);
- $509 = (_i64Add(($507|0),($508|0),($102|0),($103|0))|0);
- $510 = (getTempRet0() | 0);
- $511 = (_i64Add(($509|0),($510|0),($80|0),($81|0))|0);
- $512 = (getTempRet0() | 0);
- $513 = (_i64Add(($511|0),($512|0),($56|0),($57|0))|0);
- $514 = (getTempRet0() | 0);
- $515 = (_i64Add(($513|0),($514|0),($286|0),($287|0))|0);
- $516 = (getTempRet0() | 0);
- $517 = (_i64Add(($515|0),($516|0),($497|0),($498|0))|0);
- $518 = (getTempRet0() | 0);
- $519 = $495 & -33554432;
- $520 = (_i64Subtract(($481|0),($482|0),($519|0),0)|0);
- $521 = (getTempRet0() | 0);
- $522 = (_i64Add(($490|0),($491|0),33554432,0)|0);
- $523 = (getTempRet0() | 0);
- $524 = (_bitshift64Lshr(($522|0),($523|0),26)|0);
- $525 = (getTempRet0() | 0);
- $526 = (_i64Add(($430|0),($431|0),($524|0),($525|0))|0);
- $527 = (getTempRet0() | 0);
- $528 = $522 & -67108864;
- $529 = (_i64Subtract(($490|0),($491|0),($528|0),0)|0);
- $530 = (getTempRet0() | 0);
- $531 = (_i64Add(($517|0),($518|0),33554432,0)|0);
- $532 = (getTempRet0() | 0);
- $533 = (_bitshift64Ashr(($531|0),($532|0),26)|0);
- $534 = (getTempRet0() | 0);
- $535 = (_i64Add(($242|0),($243|0),($264|0),($265|0))|0);
- $536 = (getTempRet0() | 0);
- $537 = (_i64Add(($535|0),($536|0),($220|0),($221|0))|0);
- $538 = (getTempRet0() | 0);
- $539 = (_i64Add(($537|0),($538|0),($196|0),($197|0))|0);
- $540 = (getTempRet0() | 0);
- $541 = (_i64Add(($539|0),($540|0),($174|0),($175|0))|0);
- $542 = (getTempRet0() | 0);
- $543 = (_i64Add(($541|0),($542|0),($150|0),($151|0))|0);
- $544 = (getTempRet0() | 0);
- $545 = (_i64Add(($543|0),($544|0),($128|0),($129|0))|0);
- $546 = (getTempRet0() | 0);
- $547 = (_i64Add(($545|0),($546|0),($104|0),($105|0))|0);
- $548 = (getTempRet0() | 0);
- $549 = (_i64Add(($547|0),($548|0),($82|0),($83|0))|0);
- $550 = (getTempRet0() | 0);
- $551 = (_i64Add(($549|0),($550|0),($60|0),($61|0))|0);
- $552 = (getTempRet0() | 0);
- $553 = (_i64Add(($551|0),($552|0),($533|0),($534|0))|0);
- $554 = (getTempRet0() | 0);
- $555 = $531 & -67108864;
- $556 = (_i64Subtract(($517|0),($518|0),($555|0),0)|0);
- $557 = (getTempRet0() | 0);
- $558 = (_i64Add(($553|0),($554|0),16777216,0)|0);
- $559 = (getTempRet0() | 0);
- $560 = (_bitshift64Ashr(($558|0),($559|0),25)|0);
- $561 = (getTempRet0() | 0);
- $562 = (___muldi3(($560|0),($561|0),19,0)|0);
- $563 = (getTempRet0() | 0);
- $564 = (_i64Add(($562|0),($563|0),($349|0),($350|0))|0);
- $565 = (getTempRet0() | 0);
- $566 = $558 & -33554432;
- $567 = (_i64Subtract(($553|0),($554|0),($566|0),0)|0);
- $568 = (getTempRet0() | 0);
- $569 = (_i64Add(($564|0),($565|0),33554432,0)|0);
- $570 = (getTempRet0() | 0);
- $571 = (_bitshift64Lshr(($569|0),($570|0),26)|0);
- $572 = (getTempRet0() | 0);
- $573 = (_i64Add(($403|0),($404|0),($571|0),($572|0))|0);
- $574 = (getTempRet0() | 0);
- $575 = $569 & -67108864;
- $576 = (_i64Subtract(($564|0),($565|0),($575|0),0)|0);
- $577 = (getTempRet0() | 0);
- HEAP32[$h>>2] = $576;
- $arrayidx482 = ((($h)) + 4|0);
- HEAP32[$arrayidx482>>2] = $573;
- $arrayidx484 = ((($h)) + 8|0);
- HEAP32[$arrayidx484>>2] = $457;
- $arrayidx486 = ((($h)) + 12|0);
- HEAP32[$arrayidx486>>2] = $493;
- $arrayidx488 = ((($h)) + 16|0);
- HEAP32[$arrayidx488>>2] = $529;
- $arrayidx490 = ((($h)) + 20|0);
- HEAP32[$arrayidx490>>2] = $526;
- $arrayidx492 = ((($h)) + 24|0);
- HEAP32[$arrayidx492>>2] = $484;
- $arrayidx494 = ((($h)) + 28|0);
- HEAP32[$arrayidx494>>2] = $520;
- $arrayidx496 = ((($h)) + 32|0);
- HEAP32[$arrayidx496>>2] = $556;
- $arrayidx498 = ((($h)) + 36|0);
- HEAP32[$arrayidx498>>2] = $567;
- return;
-}
-function _fe_isnegative($f) {
- $f = $f|0;
- var $0 = 0, $1 = 0, $and = 0, $s = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 32|0;
- $s = sp;
- _fe_tobytes($s,$f);
- $0 = HEAP8[$s>>0]|0;
- $1 = $0 & 1;
- $and = $1&255;
- STACKTOP = sp;return ($and|0);
-}
-function _fe_tobytes($s,$h) {
- $s = $s|0;
- $h = $h|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 $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, $add = 0;
- var $add10 = 0, $add12 = 0, $add14 = 0, $add16 = 0, $add18 = 0, $add20 = 0, $add22 = 0, $add24 = 0, $add26 = 0, $add28 = 0, $add31 = 0, $add33 = 0, $add35 = 0, $add39 = 0, $add43 = 0, $add47 = 0, $add51 = 0, $add55 = 0, $add59 = 0, $add63 = 0;
- var $arrayidx1 = 0, $arrayidx102 = 0, $arrayidx105 = 0, $arrayidx108 = 0, $arrayidx113 = 0, $arrayidx116 = 0, $arrayidx119 = 0, $arrayidx122 = 0, $arrayidx125 = 0, $arrayidx128 = 0, $arrayidx131 = 0, $arrayidx136 = 0, $arrayidx139 = 0, $arrayidx142 = 0, $arrayidx147 = 0, $arrayidx150 = 0, $arrayidx153 = 0, $arrayidx158 = 0, $arrayidx161 = 0, $arrayidx164 = 0;
- var $arrayidx169 = 0, $arrayidx172 = 0, $arrayidx175 = 0, $arrayidx178 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx73 = 0, $arrayidx76 = 0, $arrayidx8 = 0, $arrayidx80 = 0, $arrayidx83 = 0, $arrayidx86 = 0, $arrayidx9 = 0, $arrayidx91 = 0, $arrayidx94 = 0, $arrayidx97 = 0;
- var $conv = 0, $conv101 = 0, $conv104 = 0, $conv107 = 0, $conv112 = 0, $conv115 = 0, $conv118 = 0, $conv121 = 0, $conv124 = 0, $conv127 = 0, $conv130 = 0, $conv135 = 0, $conv138 = 0, $conv141 = 0, $conv146 = 0, $conv149 = 0, $conv152 = 0, $conv157 = 0, $conv160 = 0, $conv163 = 0;
- var $conv168 = 0, $conv171 = 0, $conv174 = 0, $conv177 = 0, $conv72 = 0, $conv75 = 0, $conv79 = 0, $conv82 = 0, $conv85 = 0, $conv90 = 0, $conv93 = 0, $conv96 = 0, $mul = 0, $mul30 = 0, $or = 0, $or100 = 0, $or111 = 0, $or134 = 0, $or145 = 0, $or156 = 0;
- var $or167 = 0, $or89 = 0, $shl110 = 0, $shl133 = 0, $shl144 = 0, $shl155 = 0, $shl166 = 0, $shl78 = 0, $shl88 = 0, $shl99 = 0, $shr = 0, $shr11 = 0, $shr13 = 0, $shr15 = 0, $shr17 = 0, $shr19 = 0, $shr21 = 0, $shr23 = 0, $shr25 = 0, $shr27 = 0;
- var $shr29 = 0, $shr32 = 0, $shr34 = 0, $shr38 = 0, $shr42 = 0, $shr46 = 0, $shr50 = 0, $shr54 = 0, $shr58 = 0, $shr62 = 0, $sub = 0, $sub37 = 0, $sub41 = 0, $sub45 = 0, $sub49 = 0, $sub53 = 0, $sub57 = 0, $sub61 = 0, $sub65 = 0, $sub68 = 0;
- var label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$h>>2]|0;
- $arrayidx1 = ((($h)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($h)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($h)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($h)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($h)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($h)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($h)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($h)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($h)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $mul = ($9*19)|0;
- $add = (($mul) + 16777216)|0;
- $shr = $add >> 25;
- $add10 = (($shr) + ($0))|0;
- $shr11 = $add10 >> 26;
- $add12 = (($shr11) + ($1))|0;
- $shr13 = $add12 >> 25;
- $add14 = (($shr13) + ($2))|0;
- $shr15 = $add14 >> 26;
- $add16 = (($shr15) + ($3))|0;
- $shr17 = $add16 >> 25;
- $add18 = (($shr17) + ($4))|0;
- $shr19 = $add18 >> 26;
- $add20 = (($shr19) + ($5))|0;
- $shr21 = $add20 >> 25;
- $add22 = (($shr21) + ($6))|0;
- $shr23 = $add22 >> 26;
- $add24 = (($shr23) + ($7))|0;
- $shr25 = $add24 >> 25;
- $add26 = (($shr25) + ($8))|0;
- $shr27 = $add26 >> 26;
- $add28 = (($shr27) + ($9))|0;
- $shr29 = $add28 >> 25;
- $mul30 = ($shr29*19)|0;
- $add31 = (($mul30) + ($0))|0;
- $shr32 = $add31 >> 26;
- $add33 = (($shr32) + ($1))|0;
- $shr34 = $add33 >> 25;
- $add35 = (($shr34) + ($2))|0;
- $sub37 = $add33 & 33554431;
- $shr38 = $add35 >> 26;
- $add39 = (($shr38) + ($3))|0;
- $sub41 = $add35 & 67108863;
- $shr42 = $add39 >> 25;
- $add43 = (($shr42) + ($4))|0;
- $sub45 = $add39 & 33554431;
- $shr46 = $add43 >> 26;
- $add47 = (($shr46) + ($5))|0;
- $shr50 = $add47 >> 25;
- $add51 = (($shr50) + ($6))|0;
- $shr54 = $add51 >> 26;
- $add55 = (($shr54) + ($7))|0;
- $sub57 = $add51 & 67108863;
- $shr58 = $add55 >> 25;
- $add59 = (($shr58) + ($8))|0;
- $sub61 = $add55 & 33554431;
- $shr62 = $add59 >> 26;
- $add63 = (($shr62) + ($9))|0;
- $sub65 = $add59 & 67108863;
- $sub68 = $add63 & 33554431;
- $conv = $add31&255;
- HEAP8[$s>>0] = $conv;
- $10 = $add31 >>> 8;
- $conv72 = $10&255;
- $arrayidx73 = ((($s)) + 1|0);
- HEAP8[$arrayidx73>>0] = $conv72;
- $11 = $add31 >>> 16;
- $conv75 = $11&255;
- $arrayidx76 = ((($s)) + 2|0);
- HEAP8[$arrayidx76>>0] = $conv75;
- $sub = $add31 >>> 24;
- $12 = $sub & 3;
- $shl78 = $sub37 << 2;
- $or = $shl78 | $12;
- $conv79 = $or&255;
- $arrayidx80 = ((($s)) + 3|0);
- HEAP8[$arrayidx80>>0] = $conv79;
- $13 = $add33 >>> 6;
- $conv82 = $13&255;
- $arrayidx83 = ((($s)) + 4|0);
- HEAP8[$arrayidx83>>0] = $conv82;
- $14 = $add33 >>> 14;
- $conv85 = $14&255;
- $arrayidx86 = ((($s)) + 5|0);
- HEAP8[$arrayidx86>>0] = $conv85;
- $15 = $sub37 >>> 22;
- $shl88 = $sub41 << 3;
- $or89 = $shl88 | $15;
- $conv90 = $or89&255;
- $arrayidx91 = ((($s)) + 6|0);
- HEAP8[$arrayidx91>>0] = $conv90;
- $16 = $add35 >>> 5;
- $conv93 = $16&255;
- $arrayidx94 = ((($s)) + 7|0);
- HEAP8[$arrayidx94>>0] = $conv93;
- $17 = $add35 >>> 13;
- $conv96 = $17&255;
- $arrayidx97 = ((($s)) + 8|0);
- HEAP8[$arrayidx97>>0] = $conv96;
- $18 = $sub41 >>> 21;
- $shl99 = $sub45 << 5;
- $or100 = $shl99 | $18;
- $conv101 = $or100&255;
- $arrayidx102 = ((($s)) + 9|0);
- HEAP8[$arrayidx102>>0] = $conv101;
- $19 = $add39 >>> 3;
- $conv104 = $19&255;
- $arrayidx105 = ((($s)) + 10|0);
- HEAP8[$arrayidx105>>0] = $conv104;
- $20 = $add39 >>> 11;
- $conv107 = $20&255;
- $arrayidx108 = ((($s)) + 11|0);
- HEAP8[$arrayidx108>>0] = $conv107;
- $21 = $sub45 >>> 19;
- $shl110 = $add43 << 6;
- $or111 = $shl110 | $21;
- $conv112 = $or111&255;
- $arrayidx113 = ((($s)) + 12|0);
- HEAP8[$arrayidx113>>0] = $conv112;
- $22 = $add43 >>> 2;
- $conv115 = $22&255;
- $arrayidx116 = ((($s)) + 13|0);
- HEAP8[$arrayidx116>>0] = $conv115;
- $23 = $add43 >>> 10;
- $conv118 = $23&255;
- $arrayidx119 = ((($s)) + 14|0);
- HEAP8[$arrayidx119>>0] = $conv118;
- $sub49 = $add43 >>> 18;
- $conv121 = $sub49&255;
- $arrayidx122 = ((($s)) + 15|0);
- HEAP8[$arrayidx122>>0] = $conv121;
- $conv124 = $add47&255;
- $arrayidx125 = ((($s)) + 16|0);
- HEAP8[$arrayidx125>>0] = $conv124;
- $24 = $add47 >>> 8;
- $conv127 = $24&255;
- $arrayidx128 = ((($s)) + 17|0);
- HEAP8[$arrayidx128>>0] = $conv127;
- $25 = $add47 >>> 16;
- $conv130 = $25&255;
- $arrayidx131 = ((($s)) + 18|0);
- HEAP8[$arrayidx131>>0] = $conv130;
- $sub53 = $add47 >>> 24;
- $26 = $sub53 & 1;
- $shl133 = $sub57 << 1;
- $or134 = $shl133 | $26;
- $conv135 = $or134&255;
- $arrayidx136 = ((($s)) + 19|0);
- HEAP8[$arrayidx136>>0] = $conv135;
- $27 = $add51 >>> 7;
- $conv138 = $27&255;
- $arrayidx139 = ((($s)) + 20|0);
- HEAP8[$arrayidx139>>0] = $conv138;
- $28 = $add51 >>> 15;
- $conv141 = $28&255;
- $arrayidx142 = ((($s)) + 21|0);
- HEAP8[$arrayidx142>>0] = $conv141;
- $29 = $sub57 >>> 23;
- $shl144 = $sub61 << 3;
- $or145 = $shl144 | $29;
- $conv146 = $or145&255;
- $arrayidx147 = ((($s)) + 22|0);
- HEAP8[$arrayidx147>>0] = $conv146;
- $30 = $add55 >>> 5;
- $conv149 = $30&255;
- $arrayidx150 = ((($s)) + 23|0);
- HEAP8[$arrayidx150>>0] = $conv149;
- $31 = $add55 >>> 13;
- $conv152 = $31&255;
- $arrayidx153 = ((($s)) + 24|0);
- HEAP8[$arrayidx153>>0] = $conv152;
- $32 = $sub61 >>> 21;
- $shl155 = $sub65 << 4;
- $or156 = $shl155 | $32;
- $conv157 = $or156&255;
- $arrayidx158 = ((($s)) + 25|0);
- HEAP8[$arrayidx158>>0] = $conv157;
- $33 = $add59 >>> 4;
- $conv160 = $33&255;
- $arrayidx161 = ((($s)) + 26|0);
- HEAP8[$arrayidx161>>0] = $conv160;
- $34 = $add59 >>> 12;
- $conv163 = $34&255;
- $arrayidx164 = ((($s)) + 27|0);
- HEAP8[$arrayidx164>>0] = $conv163;
- $35 = $sub65 >>> 20;
- $shl166 = $sub68 << 6;
- $or167 = $shl166 | $35;
- $conv168 = $or167&255;
- $arrayidx169 = ((($s)) + 28|0);
- HEAP8[$arrayidx169>>0] = $conv168;
- $36 = $add63 >>> 2;
- $conv171 = $36&255;
- $arrayidx172 = ((($s)) + 29|0);
- HEAP8[$arrayidx172>>0] = $conv171;
- $37 = $add63 >>> 10;
- $conv174 = $37&255;
- $arrayidx175 = ((($s)) + 30|0);
- HEAP8[$arrayidx175>>0] = $conv174;
- $38 = $sub68 >>> 18;
- $conv177 = $38&255;
- $arrayidx178 = ((($s)) + 31|0);
- HEAP8[$arrayidx178>>0] = $conv177;
- return;
-}
-function _fe_isnonzero($f) {
- $f = $f|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 $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx104 = 0, $arrayidx109 = 0, $arrayidx114 = 0, $arrayidx119 = 0, $arrayidx124 = 0, $arrayidx129 = 0, $arrayidx134 = 0;
- var $arrayidx139 = 0, $arrayidx14 = 0, $arrayidx144 = 0, $arrayidx149 = 0, $arrayidx19 = 0, $arrayidx24 = 0, $arrayidx29 = 0, $arrayidx34 = 0, $arrayidx39 = 0, $arrayidx4 = 0, $arrayidx44 = 0, $arrayidx49 = 0, $arrayidx54 = 0, $arrayidx59 = 0, $arrayidx64 = 0, $arrayidx69 = 0, $arrayidx74 = 0, $arrayidx79 = 0, $arrayidx84 = 0, $arrayidx89 = 0;
- var $arrayidx9 = 0, $arrayidx94 = 0, $arrayidx99 = 0, $cmp = 0, $conv155 = 0, $or10253 = 0, $or10754 = 0, $or11255 = 0, $or11756 = 0, $or12257 = 0, $or1235 = 0, $or12758 = 0, $or13259 = 0, $or13760 = 0, $or14261 = 0, $or14762 = 0, $or15263 = 0, $or1736 = 0, $or2237 = 0, $or2738 = 0;
- var $or3239 = 0, $or33 = 0, $or3740 = 0, $or4241 = 0, $or4742 = 0, $or5243 = 0, $or5744 = 0, $or6245 = 0, $or6746 = 0, $or7247 = 0, $or734 = 0, $or7748 = 0, $or8249 = 0, $or8750 = 0, $or9251 = 0, $or9752 = 0, $s = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 32|0;
- $s = sp;
- _fe_tobytes($s,$f);
- $0 = HEAP8[$s>>0]|0;
- $arrayidx1 = ((($s)) + 1|0);
- $1 = HEAP8[$arrayidx1>>0]|0;
- $or33 = $1 | $0;
- $arrayidx4 = ((($s)) + 2|0);
- $2 = HEAP8[$arrayidx4>>0]|0;
- $or734 = $or33 | $2;
- $arrayidx9 = ((($s)) + 3|0);
- $3 = HEAP8[$arrayidx9>>0]|0;
- $or1235 = $or734 | $3;
- $arrayidx14 = ((($s)) + 4|0);
- $4 = HEAP8[$arrayidx14>>0]|0;
- $or1736 = $or1235 | $4;
- $arrayidx19 = ((($s)) + 5|0);
- $5 = HEAP8[$arrayidx19>>0]|0;
- $or2237 = $or1736 | $5;
- $arrayidx24 = ((($s)) + 6|0);
- $6 = HEAP8[$arrayidx24>>0]|0;
- $or2738 = $or2237 | $6;
- $arrayidx29 = ((($s)) + 7|0);
- $7 = HEAP8[$arrayidx29>>0]|0;
- $or3239 = $or2738 | $7;
- $arrayidx34 = ((($s)) + 8|0);
- $8 = HEAP8[$arrayidx34>>0]|0;
- $or3740 = $or3239 | $8;
- $arrayidx39 = ((($s)) + 9|0);
- $9 = HEAP8[$arrayidx39>>0]|0;
- $or4241 = $or3740 | $9;
- $arrayidx44 = ((($s)) + 10|0);
- $10 = HEAP8[$arrayidx44>>0]|0;
- $or4742 = $or4241 | $10;
- $arrayidx49 = ((($s)) + 11|0);
- $11 = HEAP8[$arrayidx49>>0]|0;
- $or5243 = $or4742 | $11;
- $arrayidx54 = ((($s)) + 12|0);
- $12 = HEAP8[$arrayidx54>>0]|0;
- $or5744 = $or5243 | $12;
- $arrayidx59 = ((($s)) + 13|0);
- $13 = HEAP8[$arrayidx59>>0]|0;
- $or6245 = $or5744 | $13;
- $arrayidx64 = ((($s)) + 14|0);
- $14 = HEAP8[$arrayidx64>>0]|0;
- $or6746 = $or6245 | $14;
- $arrayidx69 = ((($s)) + 15|0);
- $15 = HEAP8[$arrayidx69>>0]|0;
- $or7247 = $or6746 | $15;
- $arrayidx74 = ((($s)) + 16|0);
- $16 = HEAP8[$arrayidx74>>0]|0;
- $or7748 = $or7247 | $16;
- $arrayidx79 = ((($s)) + 17|0);
- $17 = HEAP8[$arrayidx79>>0]|0;
- $or8249 = $or7748 | $17;
- $arrayidx84 = ((($s)) + 18|0);
- $18 = HEAP8[$arrayidx84>>0]|0;
- $or8750 = $or8249 | $18;
- $arrayidx89 = ((($s)) + 19|0);
- $19 = HEAP8[$arrayidx89>>0]|0;
- $or9251 = $or8750 | $19;
- $arrayidx94 = ((($s)) + 20|0);
- $20 = HEAP8[$arrayidx94>>0]|0;
- $or9752 = $or9251 | $20;
- $arrayidx99 = ((($s)) + 21|0);
- $21 = HEAP8[$arrayidx99>>0]|0;
- $or10253 = $or9752 | $21;
- $arrayidx104 = ((($s)) + 22|0);
- $22 = HEAP8[$arrayidx104>>0]|0;
- $or10754 = $or10253 | $22;
- $arrayidx109 = ((($s)) + 23|0);
- $23 = HEAP8[$arrayidx109>>0]|0;
- $or11255 = $or10754 | $23;
- $arrayidx114 = ((($s)) + 24|0);
- $24 = HEAP8[$arrayidx114>>0]|0;
- $or11756 = $or11255 | $24;
- $arrayidx119 = ((($s)) + 25|0);
- $25 = HEAP8[$arrayidx119>>0]|0;
- $or12257 = $or11756 | $25;
- $arrayidx124 = ((($s)) + 26|0);
- $26 = HEAP8[$arrayidx124>>0]|0;
- $or12758 = $or12257 | $26;
- $arrayidx129 = ((($s)) + 27|0);
- $27 = HEAP8[$arrayidx129>>0]|0;
- $or13259 = $or12758 | $27;
- $arrayidx134 = ((($s)) + 28|0);
- $28 = HEAP8[$arrayidx134>>0]|0;
- $or13760 = $or13259 | $28;
- $arrayidx139 = ((($s)) + 29|0);
- $29 = HEAP8[$arrayidx139>>0]|0;
- $or14261 = $or13760 | $29;
- $arrayidx144 = ((($s)) + 30|0);
- $30 = HEAP8[$arrayidx144>>0]|0;
- $or14762 = $or14261 | $30;
- $arrayidx149 = ((($s)) + 31|0);
- $31 = HEAP8[$arrayidx149>>0]|0;
- $or15263 = $or14762 | $31;
- $cmp = ($or15263<<24>>24)!=(0);
- $conv155 = $cmp&1;
- STACKTOP = sp;return ($conv155|0);
-}
-function _fe_neg($h,$f) {
- $h = $h|0;
- $f = $f|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx2 = 0, $arrayidx20 = 0, $arrayidx21 = 0, $arrayidx22 = 0, $arrayidx23 = 0, $arrayidx24 = 0, $arrayidx25 = 0, $arrayidx26 = 0, $arrayidx27 = 0;
- var $arrayidx28 = 0, $arrayidx3 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $sub = 0, $sub10 = 0, $sub11 = 0, $sub12 = 0, $sub13 = 0, $sub14 = 0, $sub15 = 0, $sub16 = 0, $sub17 = 0, $sub18 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $sub = (0 - ($0))|0;
- $sub10 = (0 - ($1))|0;
- $sub11 = (0 - ($2))|0;
- $sub12 = (0 - ($3))|0;
- $sub13 = (0 - ($4))|0;
- $sub14 = (0 - ($5))|0;
- $sub15 = (0 - ($6))|0;
- $sub16 = (0 - ($7))|0;
- $sub17 = (0 - ($8))|0;
- $sub18 = (0 - ($9))|0;
- HEAP32[$h>>2] = $sub;
- $arrayidx20 = ((($h)) + 4|0);
- HEAP32[$arrayidx20>>2] = $sub10;
- $arrayidx21 = ((($h)) + 8|0);
- HEAP32[$arrayidx21>>2] = $sub11;
- $arrayidx22 = ((($h)) + 12|0);
- HEAP32[$arrayidx22>>2] = $sub12;
- $arrayidx23 = ((($h)) + 16|0);
- HEAP32[$arrayidx23>>2] = $sub13;
- $arrayidx24 = ((($h)) + 20|0);
- HEAP32[$arrayidx24>>2] = $sub14;
- $arrayidx25 = ((($h)) + 24|0);
- HEAP32[$arrayidx25>>2] = $sub15;
- $arrayidx26 = ((($h)) + 28|0);
- HEAP32[$arrayidx26>>2] = $sub16;
- $arrayidx27 = ((($h)) + 32|0);
- HEAP32[$arrayidx27>>2] = $sub17;
- $arrayidx28 = ((($h)) + 36|0);
- HEAP32[$arrayidx28>>2] = $sub18;
- return;
-}
-function _fe_pow22523($out,$z) {
- $out = $out|0;
- $z = $z|0;
- var $exitcond = 0, $exitcond34 = 0, $exitcond35 = 0, $i$728 = 0, $i$827 = 0, $i$926 = 0, $inc104 = 0, $inc117 = 0, $inc91 = 0, $t0 = 0, $t1 = 0, $t2 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 144|0;
- $t0 = sp + 96|0;
- $t1 = sp + 48|0;
- $t2 = sp;
- _fe_sq($t0,$z);
- _fe_sq($t1,$t0);
- _fe_sq($t1,$t1);
- _fe_mul($t1,$z,$t1);
- _fe_mul($t0,$t0,$t1);
- _fe_sq($t0,$t0);
- _fe_mul($t0,$t1,$t0);
- _fe_sq($t1,$t0);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_mul($t0,$t1,$t0);
- _fe_sq($t1,$t0);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_mul($t1,$t1,$t0);
- _fe_sq($t2,$t1);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_sq($t2,$t2);
- _fe_mul($t1,$t2,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_sq($t1,$t1);
- _fe_mul($t0,$t1,$t0);
- _fe_sq($t1,$t0);
- $i$728 = 1;
- while(1) {
- _fe_sq($t1,$t1);
- $inc91 = (($i$728) + 1)|0;
- $exitcond35 = ($inc91|0)==(50);
- if ($exitcond35) {
- break;
- } else {
- $i$728 = $inc91;
- }
- }
- _fe_mul($t1,$t1,$t0);
- _fe_sq($t2,$t1);
- $i$827 = 1;
- while(1) {
- _fe_sq($t2,$t2);
- $inc104 = (($i$827) + 1)|0;
- $exitcond34 = ($inc104|0)==(100);
- if ($exitcond34) {
- break;
- } else {
- $i$827 = $inc104;
- }
- }
- _fe_mul($t1,$t2,$t1);
- _fe_sq($t1,$t1);
- $i$926 = 1;
- while(1) {
- _fe_sq($t1,$t1);
- $inc117 = (($i$926) + 1)|0;
- $exitcond = ($inc117|0)==(50);
- if ($exitcond) {
- break;
- } else {
- $i$926 = $inc117;
- }
- }
- _fe_mul($t0,$t1,$t0);
- _fe_sq($t0,$t0);
- _fe_sq($t0,$t0);
- _fe_mul($out,$t0,$z);
- STACKTOP = sp;return;
-}
-function _fe_sq2($h,$f) {
- $h = $h|0;
- $f = $f|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
- var $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, $132 = 0, $133 = 0;
- var $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, $150 = 0, $151 = 0;
- var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
- var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
- var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
- var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
- var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
- var $242 = 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, $26 = 0;
- var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
- var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
- var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
- var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
- var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
- var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
- var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 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, $arrayidx1 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx301 = 0, $arrayidx303 = 0, $arrayidx305 = 0, $arrayidx307 = 0, $arrayidx309 = 0, $arrayidx311 = 0, $arrayidx313 = 0, $arrayidx315 = 0, $arrayidx317 = 0, $arrayidx4 = 0, $arrayidx5 = 0;
- var $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $mul = 0, $mul10 = 0, $mul11 = 0, $mul12 = 0, $mul13 = 0, $mul14 = 0, $mul15 = 0, $mul16 = 0, $mul17 = 0, $mul18 = 0, $mul19 = 0, $mul20 = 0, $mul21 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $mul = $0 << 1;
- $mul10 = $1 << 1;
- $mul11 = $2 << 1;
- $mul12 = $3 << 1;
- $mul13 = $4 << 1;
- $mul14 = $5 << 1;
- $mul15 = $6 << 1;
- $mul16 = $7 << 1;
- $mul17 = ($5*38)|0;
- $mul18 = ($6*19)|0;
- $mul19 = ($7*38)|0;
- $mul20 = ($8*19)|0;
- $mul21 = ($9*38)|0;
- $10 = ($0|0)<(0);
- $11 = $10 << 31 >> 31;
- $12 = (___muldi3(($0|0),($11|0),($0|0),($11|0))|0);
- $13 = (getTempRet0() | 0);
- $14 = ($mul|0)<(0);
- $15 = $14 << 31 >> 31;
- $16 = ($1|0)<(0);
- $17 = $16 << 31 >> 31;
- $18 = (___muldi3(($mul|0),($15|0),($1|0),($17|0))|0);
- $19 = (getTempRet0() | 0);
- $20 = ($2|0)<(0);
- $21 = $20 << 31 >> 31;
- $22 = (___muldi3(($2|0),($21|0),($mul|0),($15|0))|0);
- $23 = (getTempRet0() | 0);
- $24 = ($3|0)<(0);
- $25 = $24 << 31 >> 31;
- $26 = (___muldi3(($3|0),($25|0),($mul|0),($15|0))|0);
- $27 = (getTempRet0() | 0);
- $28 = ($4|0)<(0);
- $29 = $28 << 31 >> 31;
- $30 = (___muldi3(($4|0),($29|0),($mul|0),($15|0))|0);
- $31 = (getTempRet0() | 0);
- $32 = ($5|0)<(0);
- $33 = $32 << 31 >> 31;
- $34 = (___muldi3(($5|0),($33|0),($mul|0),($15|0))|0);
- $35 = (getTempRet0() | 0);
- $36 = ($6|0)<(0);
- $37 = $36 << 31 >> 31;
- $38 = (___muldi3(($6|0),($37|0),($mul|0),($15|0))|0);
- $39 = (getTempRet0() | 0);
- $40 = ($7|0)<(0);
- $41 = $40 << 31 >> 31;
- $42 = (___muldi3(($7|0),($41|0),($mul|0),($15|0))|0);
- $43 = (getTempRet0() | 0);
- $44 = ($8|0)<(0);
- $45 = $44 << 31 >> 31;
- $46 = (___muldi3(($8|0),($45|0),($mul|0),($15|0))|0);
- $47 = (getTempRet0() | 0);
- $48 = ($9|0)<(0);
- $49 = $48 << 31 >> 31;
- $50 = (___muldi3(($9|0),($49|0),($mul|0),($15|0))|0);
- $51 = (getTempRet0() | 0);
- $52 = ($mul10|0)<(0);
- $53 = $52 << 31 >> 31;
- $54 = (___muldi3(($mul10|0),($53|0),($1|0),($17|0))|0);
- $55 = (getTempRet0() | 0);
- $56 = (___muldi3(($mul10|0),($53|0),($2|0),($21|0))|0);
- $57 = (getTempRet0() | 0);
- $58 = ($mul12|0)<(0);
- $59 = $58 << 31 >> 31;
- $60 = (___muldi3(($mul12|0),($59|0),($mul10|0),($53|0))|0);
- $61 = (getTempRet0() | 0);
- $62 = (___muldi3(($4|0),($29|0),($mul10|0),($53|0))|0);
- $63 = (getTempRet0() | 0);
- $64 = ($mul14|0)<(0);
- $65 = $64 << 31 >> 31;
- $66 = (___muldi3(($mul14|0),($65|0),($mul10|0),($53|0))|0);
- $67 = (getTempRet0() | 0);
- $68 = (___muldi3(($6|0),($37|0),($mul10|0),($53|0))|0);
- $69 = (getTempRet0() | 0);
- $70 = ($mul16|0)<(0);
- $71 = $70 << 31 >> 31;
- $72 = (___muldi3(($mul16|0),($71|0),($mul10|0),($53|0))|0);
- $73 = (getTempRet0() | 0);
- $74 = (___muldi3(($8|0),($45|0),($mul10|0),($53|0))|0);
- $75 = (getTempRet0() | 0);
- $76 = ($mul21|0)<(0);
- $77 = $76 << 31 >> 31;
- $78 = (___muldi3(($mul21|0),($77|0),($mul10|0),($53|0))|0);
- $79 = (getTempRet0() | 0);
- $80 = (___muldi3(($2|0),($21|0),($2|0),($21|0))|0);
- $81 = (getTempRet0() | 0);
- $82 = ($mul11|0)<(0);
- $83 = $82 << 31 >> 31;
- $84 = (___muldi3(($mul11|0),($83|0),($3|0),($25|0))|0);
- $85 = (getTempRet0() | 0);
- $86 = (___muldi3(($4|0),($29|0),($mul11|0),($83|0))|0);
- $87 = (getTempRet0() | 0);
- $88 = (___muldi3(($5|0),($33|0),($mul11|0),($83|0))|0);
- $89 = (getTempRet0() | 0);
- $90 = (___muldi3(($6|0),($37|0),($mul11|0),($83|0))|0);
- $91 = (getTempRet0() | 0);
- $92 = (___muldi3(($7|0),($41|0),($mul11|0),($83|0))|0);
- $93 = (getTempRet0() | 0);
- $94 = ($mul20|0)<(0);
- $95 = $94 << 31 >> 31;
- $96 = (___muldi3(($mul20|0),($95|0),($mul11|0),($83|0))|0);
- $97 = (getTempRet0() | 0);
- $98 = (___muldi3(($mul21|0),($77|0),($2|0),($21|0))|0);
- $99 = (getTempRet0() | 0);
- $100 = (___muldi3(($mul12|0),($59|0),($3|0),($25|0))|0);
- $101 = (getTempRet0() | 0);
- $102 = (___muldi3(($mul12|0),($59|0),($4|0),($29|0))|0);
- $103 = (getTempRet0() | 0);
- $104 = (___muldi3(($mul14|0),($65|0),($mul12|0),($59|0))|0);
- $105 = (getTempRet0() | 0);
- $106 = (___muldi3(($6|0),($37|0),($mul12|0),($59|0))|0);
- $107 = (getTempRet0() | 0);
- $108 = ($mul19|0)<(0);
- $109 = $108 << 31 >> 31;
- $110 = (___muldi3(($mul19|0),($109|0),($mul12|0),($59|0))|0);
- $111 = (getTempRet0() | 0);
- $112 = (___muldi3(($mul20|0),($95|0),($mul12|0),($59|0))|0);
- $113 = (getTempRet0() | 0);
- $114 = (___muldi3(($mul21|0),($77|0),($mul12|0),($59|0))|0);
- $115 = (getTempRet0() | 0);
- $116 = (___muldi3(($4|0),($29|0),($4|0),($29|0))|0);
- $117 = (getTempRet0() | 0);
- $118 = ($mul13|0)<(0);
- $119 = $118 << 31 >> 31;
- $120 = (___muldi3(($mul13|0),($119|0),($5|0),($33|0))|0);
- $121 = (getTempRet0() | 0);
- $122 = ($mul18|0)<(0);
- $123 = $122 << 31 >> 31;
- $124 = (___muldi3(($mul18|0),($123|0),($mul13|0),($119|0))|0);
- $125 = (getTempRet0() | 0);
- $126 = (___muldi3(($mul19|0),($109|0),($4|0),($29|0))|0);
- $127 = (getTempRet0() | 0);
- $128 = (___muldi3(($mul20|0),($95|0),($mul13|0),($119|0))|0);
- $129 = (getTempRet0() | 0);
- $130 = (___muldi3(($mul21|0),($77|0),($4|0),($29|0))|0);
- $131 = (getTempRet0() | 0);
- $132 = ($mul17|0)<(0);
- $133 = $132 << 31 >> 31;
- $134 = (___muldi3(($mul17|0),($133|0),($5|0),($33|0))|0);
- $135 = (getTempRet0() | 0);
- $136 = (___muldi3(($mul18|0),($123|0),($mul14|0),($65|0))|0);
- $137 = (getTempRet0() | 0);
- $138 = (___muldi3(($mul19|0),($109|0),($mul14|0),($65|0))|0);
- $139 = (getTempRet0() | 0);
- $140 = (___muldi3(($mul20|0),($95|0),($mul14|0),($65|0))|0);
- $141 = (getTempRet0() | 0);
- $142 = (___muldi3(($mul21|0),($77|0),($mul14|0),($65|0))|0);
- $143 = (getTempRet0() | 0);
- $144 = (___muldi3(($mul18|0),($123|0),($6|0),($37|0))|0);
- $145 = (getTempRet0() | 0);
- $146 = (___muldi3(($mul19|0),($109|0),($6|0),($37|0))|0);
- $147 = (getTempRet0() | 0);
- $148 = ($mul15|0)<(0);
- $149 = $148 << 31 >> 31;
- $150 = (___muldi3(($mul20|0),($95|0),($mul15|0),($149|0))|0);
- $151 = (getTempRet0() | 0);
- $152 = (___muldi3(($mul21|0),($77|0),($6|0),($37|0))|0);
- $153 = (getTempRet0() | 0);
- $154 = (___muldi3(($mul19|0),($109|0),($7|0),($41|0))|0);
- $155 = (getTempRet0() | 0);
- $156 = (___muldi3(($mul20|0),($95|0),($mul16|0),($71|0))|0);
- $157 = (getTempRet0() | 0);
- $158 = (___muldi3(($mul21|0),($77|0),($mul16|0),($71|0))|0);
- $159 = (getTempRet0() | 0);
- $160 = (___muldi3(($mul20|0),($95|0),($8|0),($45|0))|0);
- $161 = (getTempRet0() | 0);
- $162 = (___muldi3(($mul21|0),($77|0),($8|0),($45|0))|0);
- $163 = (getTempRet0() | 0);
- $164 = (___muldi3(($mul21|0),($77|0),($9|0),($49|0))|0);
- $165 = (getTempRet0() | 0);
- $166 = (_i64Add(($134|0),($135|0),($12|0),($13|0))|0);
- $167 = (getTempRet0() | 0);
- $168 = (_i64Add(($166|0),($167|0),($124|0),($125|0))|0);
- $169 = (getTempRet0() | 0);
- $170 = (_i64Add(($168|0),($169|0),($110|0),($111|0))|0);
- $171 = (getTempRet0() | 0);
- $172 = (_i64Add(($170|0),($171|0),($96|0),($97|0))|0);
- $173 = (getTempRet0() | 0);
- $174 = (_i64Add(($172|0),($173|0),($78|0),($79|0))|0);
- $175 = (getTempRet0() | 0);
- $176 = (_i64Add(($136|0),($137|0),($18|0),($19|0))|0);
- $177 = (getTempRet0() | 0);
- $178 = (_i64Add(($176|0),($177|0),($126|0),($127|0))|0);
- $179 = (getTempRet0() | 0);
- $180 = (_i64Add(($178|0),($179|0),($112|0),($113|0))|0);
- $181 = (getTempRet0() | 0);
- $182 = (_i64Add(($180|0),($181|0),($98|0),($99|0))|0);
- $183 = (getTempRet0() | 0);
- $184 = (_i64Add(($22|0),($23|0),($54|0),($55|0))|0);
- $185 = (getTempRet0() | 0);
- $186 = (_i64Add(($184|0),($185|0),($144|0),($145|0))|0);
- $187 = (getTempRet0() | 0);
- $188 = (_i64Add(($186|0),($187|0),($138|0),($139|0))|0);
- $189 = (getTempRet0() | 0);
- $190 = (_i64Add(($188|0),($189|0),($128|0),($129|0))|0);
- $191 = (getTempRet0() | 0);
- $192 = (_i64Add(($190|0),($191|0),($114|0),($115|0))|0);
- $193 = (getTempRet0() | 0);
- $194 = (_i64Add(($26|0),($27|0),($56|0),($57|0))|0);
- $195 = (getTempRet0() | 0);
- $196 = (_i64Add(($194|0),($195|0),($146|0),($147|0))|0);
- $197 = (getTempRet0() | 0);
- $198 = (_i64Add(($196|0),($197|0),($140|0),($141|0))|0);
- $199 = (getTempRet0() | 0);
- $200 = (_i64Add(($198|0),($199|0),($130|0),($131|0))|0);
- $201 = (getTempRet0() | 0);
- $202 = (_i64Add(($60|0),($61|0),($80|0),($81|0))|0);
- $203 = (getTempRet0() | 0);
- $204 = (_i64Add(($202|0),($203|0),($30|0),($31|0))|0);
- $205 = (getTempRet0() | 0);
- $206 = (_i64Add(($204|0),($205|0),($154|0),($155|0))|0);
- $207 = (getTempRet0() | 0);
- $208 = (_i64Add(($206|0),($207|0),($150|0),($151|0))|0);
- $209 = (getTempRet0() | 0);
- $210 = (_i64Add(($208|0),($209|0),($142|0),($143|0))|0);
- $211 = (getTempRet0() | 0);
- $212 = (_i64Add(($62|0),($63|0),($84|0),($85|0))|0);
- $213 = (getTempRet0() | 0);
- $214 = (_i64Add(($212|0),($213|0),($34|0),($35|0))|0);
- $215 = (getTempRet0() | 0);
- $216 = (_i64Add(($214|0),($215|0),($156|0),($157|0))|0);
- $217 = (getTempRet0() | 0);
- $218 = (_i64Add(($216|0),($217|0),($152|0),($153|0))|0);
- $219 = (getTempRet0() | 0);
- $220 = (_i64Add(($100|0),($101|0),($86|0),($87|0))|0);
- $221 = (getTempRet0() | 0);
- $222 = (_i64Add(($220|0),($221|0),($66|0),($67|0))|0);
- $223 = (getTempRet0() | 0);
- $224 = (_i64Add(($222|0),($223|0),($38|0),($39|0))|0);
- $225 = (getTempRet0() | 0);
- $226 = (_i64Add(($224|0),($225|0),($160|0),($161|0))|0);
- $227 = (getTempRet0() | 0);
- $228 = (_i64Add(($226|0),($227|0),($158|0),($159|0))|0);
- $229 = (getTempRet0() | 0);
- $230 = (_i64Add(($88|0),($89|0),($102|0),($103|0))|0);
- $231 = (getTempRet0() | 0);
- $232 = (_i64Add(($230|0),($231|0),($68|0),($69|0))|0);
- $233 = (getTempRet0() | 0);
- $234 = (_i64Add(($232|0),($233|0),($42|0),($43|0))|0);
- $235 = (getTempRet0() | 0);
- $236 = (_i64Add(($234|0),($235|0),($162|0),($163|0))|0);
- $237 = (getTempRet0() | 0);
- $238 = (_i64Add(($90|0),($91|0),($116|0),($117|0))|0);
- $239 = (getTempRet0() | 0);
- $240 = (_i64Add(($238|0),($239|0),($104|0),($105|0))|0);
- $241 = (getTempRet0() | 0);
- $242 = (_i64Add(($240|0),($241|0),($72|0),($73|0))|0);
- $243 = (getTempRet0() | 0);
- $244 = (_i64Add(($242|0),($243|0),($46|0),($47|0))|0);
- $245 = (getTempRet0() | 0);
- $246 = (_i64Add(($244|0),($245|0),($164|0),($165|0))|0);
- $247 = (getTempRet0() | 0);
- $248 = (_i64Add(($106|0),($107|0),($120|0),($121|0))|0);
- $249 = (getTempRet0() | 0);
- $250 = (_i64Add(($248|0),($249|0),($92|0),($93|0))|0);
- $251 = (getTempRet0() | 0);
- $252 = (_i64Add(($250|0),($251|0),($74|0),($75|0))|0);
- $253 = (getTempRet0() | 0);
- $254 = (_i64Add(($252|0),($253|0),($50|0),($51|0))|0);
- $255 = (getTempRet0() | 0);
- $256 = (_bitshift64Shl(($174|0),($175|0),1)|0);
- $257 = (getTempRet0() | 0);
- $258 = (_bitshift64Shl(($182|0),($183|0),1)|0);
- $259 = (getTempRet0() | 0);
- $260 = (_bitshift64Shl(($192|0),($193|0),1)|0);
- $261 = (getTempRet0() | 0);
- $262 = (_bitshift64Shl(($200|0),($201|0),1)|0);
- $263 = (getTempRet0() | 0);
- $264 = (_bitshift64Shl(($210|0),($211|0),1)|0);
- $265 = (getTempRet0() | 0);
- $266 = (_bitshift64Shl(($218|0),($219|0),1)|0);
- $267 = (getTempRet0() | 0);
- $268 = (_bitshift64Shl(($228|0),($229|0),1)|0);
- $269 = (getTempRet0() | 0);
- $270 = (_bitshift64Shl(($236|0),($237|0),1)|0);
- $271 = (getTempRet0() | 0);
- $272 = (_bitshift64Shl(($246|0),($247|0),1)|0);
- $273 = (getTempRet0() | 0);
- $274 = (_bitshift64Shl(($254|0),($255|0),1)|0);
- $275 = (getTempRet0() | 0);
- $276 = (_i64Add(($256|0),($257|0),33554432,0)|0);
- $277 = (getTempRet0() | 0);
- $278 = (_bitshift64Ashr(($276|0),($277|0),26)|0);
- $279 = (getTempRet0() | 0);
- $280 = (_i64Add(($278|0),($279|0),($258|0),($259|0))|0);
- $281 = (getTempRet0() | 0);
- $282 = $276 & -67108864;
- $283 = (_i64Subtract(($256|0),($257|0),($282|0),($277|0))|0);
- $284 = (getTempRet0() | 0);
- $285 = (_i64Add(($264|0),($265|0),33554432,0)|0);
- $286 = (getTempRet0() | 0);
- $287 = (_bitshift64Ashr(($285|0),($286|0),26)|0);
- $288 = (getTempRet0() | 0);
- $289 = (_i64Add(($287|0),($288|0),($266|0),($267|0))|0);
- $290 = (getTempRet0() | 0);
- $291 = $285 & -67108864;
- $292 = (_i64Subtract(($264|0),($265|0),($291|0),($286|0))|0);
- $293 = (getTempRet0() | 0);
- $294 = (_i64Add(($280|0),($281|0),16777216,0)|0);
- $295 = (getTempRet0() | 0);
- $296 = (_bitshift64Ashr(($294|0),($295|0),25)|0);
- $297 = (getTempRet0() | 0);
- $298 = (_i64Add(($296|0),($297|0),($260|0),($261|0))|0);
- $299 = (getTempRet0() | 0);
- $300 = $294 & -33554432;
- $301 = (_i64Subtract(($280|0),($281|0),($300|0),0)|0);
- $302 = (getTempRet0() | 0);
- $303 = (_i64Add(($289|0),($290|0),16777216,0)|0);
- $304 = (getTempRet0() | 0);
- $305 = (_bitshift64Ashr(($303|0),($304|0),25)|0);
- $306 = (getTempRet0() | 0);
- $307 = (_i64Add(($305|0),($306|0),($268|0),($269|0))|0);
- $308 = (getTempRet0() | 0);
- $309 = $303 & -33554432;
- $310 = (_i64Subtract(($289|0),($290|0),($309|0),0)|0);
- $311 = (getTempRet0() | 0);
- $312 = (_i64Add(($298|0),($299|0),33554432,0)|0);
- $313 = (getTempRet0() | 0);
- $314 = (_bitshift64Ashr(($312|0),($313|0),26)|0);
- $315 = (getTempRet0() | 0);
- $316 = (_i64Add(($314|0),($315|0),($262|0),($263|0))|0);
- $317 = (getTempRet0() | 0);
- $318 = $312 & -67108864;
- $319 = (_i64Subtract(($298|0),($299|0),($318|0),0)|0);
- $320 = (getTempRet0() | 0);
- $321 = (_i64Add(($307|0),($308|0),33554432,0)|0);
- $322 = (getTempRet0() | 0);
- $323 = (_bitshift64Ashr(($321|0),($322|0),26)|0);
- $324 = (getTempRet0() | 0);
- $325 = (_i64Add(($323|0),($324|0),($270|0),($271|0))|0);
- $326 = (getTempRet0() | 0);
- $327 = $321 & -67108864;
- $328 = (_i64Subtract(($307|0),($308|0),($327|0),0)|0);
- $329 = (getTempRet0() | 0);
- $330 = (_i64Add(($316|0),($317|0),16777216,0)|0);
- $331 = (getTempRet0() | 0);
- $332 = (_bitshift64Ashr(($330|0),($331|0),25)|0);
- $333 = (getTempRet0() | 0);
- $334 = (_i64Add(($332|0),($333|0),($292|0),($293|0))|0);
- $335 = (getTempRet0() | 0);
- $336 = $330 & -33554432;
- $337 = (_i64Subtract(($316|0),($317|0),($336|0),0)|0);
- $338 = (getTempRet0() | 0);
- $339 = (_i64Add(($325|0),($326|0),16777216,0)|0);
- $340 = (getTempRet0() | 0);
- $341 = (_bitshift64Ashr(($339|0),($340|0),25)|0);
- $342 = (getTempRet0() | 0);
- $343 = (_i64Add(($341|0),($342|0),($272|0),($273|0))|0);
- $344 = (getTempRet0() | 0);
- $345 = $339 & -33554432;
- $346 = (_i64Subtract(($325|0),($326|0),($345|0),0)|0);
- $347 = (getTempRet0() | 0);
- $348 = (_i64Add(($334|0),($335|0),33554432,0)|0);
- $349 = (getTempRet0() | 0);
- $350 = (_bitshift64Lshr(($348|0),($349|0),26)|0);
- $351 = (getTempRet0() | 0);
- $352 = (_i64Add(($310|0),($311|0),($350|0),($351|0))|0);
- $353 = (getTempRet0() | 0);
- $354 = $348 & -67108864;
- $355 = (_i64Subtract(($334|0),($335|0),($354|0),0)|0);
- $356 = (getTempRet0() | 0);
- $357 = (_i64Add(($343|0),($344|0),33554432,0)|0);
- $358 = (getTempRet0() | 0);
- $359 = (_bitshift64Ashr(($357|0),($358|0),26)|0);
- $360 = (getTempRet0() | 0);
- $361 = (_i64Add(($359|0),($360|0),($274|0),($275|0))|0);
- $362 = (getTempRet0() | 0);
- $363 = $357 & -67108864;
- $364 = (_i64Subtract(($343|0),($344|0),($363|0),0)|0);
- $365 = (getTempRet0() | 0);
- $366 = (_i64Add(($361|0),($362|0),16777216,0)|0);
- $367 = (getTempRet0() | 0);
- $368 = (_bitshift64Ashr(($366|0),($367|0),25)|0);
- $369 = (getTempRet0() | 0);
- $370 = (___muldi3(($368|0),($369|0),19,0)|0);
- $371 = (getTempRet0() | 0);
- $372 = (_i64Add(($370|0),($371|0),($283|0),($284|0))|0);
- $373 = (getTempRet0() | 0);
- $374 = $366 & -33554432;
- $375 = (_i64Subtract(($361|0),($362|0),($374|0),0)|0);
- $376 = (getTempRet0() | 0);
- $377 = (_i64Add(($372|0),($373|0),33554432,0)|0);
- $378 = (getTempRet0() | 0);
- $379 = (_bitshift64Lshr(($377|0),($378|0),26)|0);
- $380 = (getTempRet0() | 0);
- $381 = (_i64Add(($301|0),($302|0),($379|0),($380|0))|0);
- $382 = (getTempRet0() | 0);
- $383 = $377 & -67108864;
- $384 = (_i64Subtract(($372|0),($373|0),($383|0),0)|0);
- $385 = (getTempRet0() | 0);
- HEAP32[$h>>2] = $384;
- $arrayidx301 = ((($h)) + 4|0);
- HEAP32[$arrayidx301>>2] = $381;
- $arrayidx303 = ((($h)) + 8|0);
- HEAP32[$arrayidx303>>2] = $319;
- $arrayidx305 = ((($h)) + 12|0);
- HEAP32[$arrayidx305>>2] = $337;
- $arrayidx307 = ((($h)) + 16|0);
- HEAP32[$arrayidx307>>2] = $355;
- $arrayidx309 = ((($h)) + 20|0);
- HEAP32[$arrayidx309>>2] = $352;
- $arrayidx311 = ((($h)) + 24|0);
- HEAP32[$arrayidx311>>2] = $328;
- $arrayidx313 = ((($h)) + 28|0);
- HEAP32[$arrayidx313>>2] = $346;
- $arrayidx315 = ((($h)) + 32|0);
- HEAP32[$arrayidx315>>2] = $364;
- $arrayidx317 = ((($h)) + 36|0);
- HEAP32[$arrayidx317>>2] = $375;
- return;
-}
-function _fe_sub($h,$f,$g) {
- $h = $h|0;
- $f = $f|0;
- $g = $g|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, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0;
- var $arrayidx1 = 0, $arrayidx11 = 0, $arrayidx12 = 0, $arrayidx13 = 0, $arrayidx14 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx18 = 0, $arrayidx19 = 0, $arrayidx2 = 0, $arrayidx3 = 0, $arrayidx30 = 0, $arrayidx31 = 0, $arrayidx32 = 0, $arrayidx33 = 0, $arrayidx34 = 0, $arrayidx35 = 0, $arrayidx36 = 0, $arrayidx37 = 0;
- var $arrayidx38 = 0, $arrayidx4 = 0, $arrayidx5 = 0, $arrayidx6 = 0, $arrayidx7 = 0, $arrayidx8 = 0, $arrayidx9 = 0, $sub = 0, $sub20 = 0, $sub21 = 0, $sub22 = 0, $sub23 = 0, $sub24 = 0, $sub25 = 0, $sub26 = 0, $sub27 = 0, $sub28 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP32[$f>>2]|0;
- $arrayidx1 = ((($f)) + 4|0);
- $1 = HEAP32[$arrayidx1>>2]|0;
- $arrayidx2 = ((($f)) + 8|0);
- $2 = HEAP32[$arrayidx2>>2]|0;
- $arrayidx3 = ((($f)) + 12|0);
- $3 = HEAP32[$arrayidx3>>2]|0;
- $arrayidx4 = ((($f)) + 16|0);
- $4 = HEAP32[$arrayidx4>>2]|0;
- $arrayidx5 = ((($f)) + 20|0);
- $5 = HEAP32[$arrayidx5>>2]|0;
- $arrayidx6 = ((($f)) + 24|0);
- $6 = HEAP32[$arrayidx6>>2]|0;
- $arrayidx7 = ((($f)) + 28|0);
- $7 = HEAP32[$arrayidx7>>2]|0;
- $arrayidx8 = ((($f)) + 32|0);
- $8 = HEAP32[$arrayidx8>>2]|0;
- $arrayidx9 = ((($f)) + 36|0);
- $9 = HEAP32[$arrayidx9>>2]|0;
- $10 = HEAP32[$g>>2]|0;
- $arrayidx11 = ((($g)) + 4|0);
- $11 = HEAP32[$arrayidx11>>2]|0;
- $arrayidx12 = ((($g)) + 8|0);
- $12 = HEAP32[$arrayidx12>>2]|0;
- $arrayidx13 = ((($g)) + 12|0);
- $13 = HEAP32[$arrayidx13>>2]|0;
- $arrayidx14 = ((($g)) + 16|0);
- $14 = HEAP32[$arrayidx14>>2]|0;
- $arrayidx15 = ((($g)) + 20|0);
- $15 = HEAP32[$arrayidx15>>2]|0;
- $arrayidx16 = ((($g)) + 24|0);
- $16 = HEAP32[$arrayidx16>>2]|0;
- $arrayidx17 = ((($g)) + 28|0);
- $17 = HEAP32[$arrayidx17>>2]|0;
- $arrayidx18 = ((($g)) + 32|0);
- $18 = HEAP32[$arrayidx18>>2]|0;
- $arrayidx19 = ((($g)) + 36|0);
- $19 = HEAP32[$arrayidx19>>2]|0;
- $sub = (($0) - ($10))|0;
- $sub20 = (($1) - ($11))|0;
- $sub21 = (($2) - ($12))|0;
- $sub22 = (($3) - ($13))|0;
- $sub23 = (($4) - ($14))|0;
- $sub24 = (($5) - ($15))|0;
- $sub25 = (($6) - ($16))|0;
- $sub26 = (($7) - ($17))|0;
- $sub27 = (($8) - ($18))|0;
- $sub28 = (($9) - ($19))|0;
- HEAP32[$h>>2] = $sub;
- $arrayidx30 = ((($h)) + 4|0);
- HEAP32[$arrayidx30>>2] = $sub20;
- $arrayidx31 = ((($h)) + 8|0);
- HEAP32[$arrayidx31>>2] = $sub21;
- $arrayidx32 = ((($h)) + 12|0);
- HEAP32[$arrayidx32>>2] = $sub22;
- $arrayidx33 = ((($h)) + 16|0);
- HEAP32[$arrayidx33>>2] = $sub23;
- $arrayidx34 = ((($h)) + 20|0);
- HEAP32[$arrayidx34>>2] = $sub24;
- $arrayidx35 = ((($h)) + 24|0);
- HEAP32[$arrayidx35>>2] = $sub25;
- $arrayidx36 = ((($h)) + 28|0);
- HEAP32[$arrayidx36>>2] = $sub26;
- $arrayidx37 = ((($h)) + 32|0);
- HEAP32[$arrayidx37>>2] = $sub27;
- $arrayidx38 = ((($h)) + 36|0);
- HEAP32[$arrayidx38>>2] = $sub28;
- return;
-}
-function _ge_add($r,$p,$q) {
- $r = $r|0;
- $p = $p|0;
- $q = $q|0;
- var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay18 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay26 = 0, $arraydecay28 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 48|0;
- $t0 = sp;
- $arraydecay1 = ((($p)) + 40|0);
- _fe_add($r,$arraydecay1,$p);
- $arraydecay5 = ((($r)) + 40|0);
- _fe_sub($arraydecay5,$arraydecay1,$p);
- $arraydecay10 = ((($r)) + 80|0);
- _fe_mul($arraydecay10,$r,$q);
- $arraydecay18 = ((($q)) + 40|0);
- _fe_mul($arraydecay5,$arraydecay5,$arraydecay18);
- $arraydecay19 = ((($r)) + 120|0);
- $arraydecay20 = ((($q)) + 120|0);
- $arraydecay22 = ((($p)) + 120|0);
- _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
- $arraydecay26 = ((($p)) + 80|0);
- $arraydecay28 = ((($q)) + 80|0);
- _fe_mul($r,$arraydecay26,$arraydecay28);
- _fe_add($t0,$r,$r);
- _fe_sub($r,$arraydecay10,$arraydecay5);
- _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
- _fe_add($arraydecay10,$t0,$arraydecay19);
- _fe_sub($arraydecay19,$t0,$arraydecay19);
- STACKTOP = sp;return;
-}
-function _ge_double_scalarmult_vartime($r,$a,$A,$b) {
- $r = $r|0;
- $a = $a|0;
- $A = $A|0;
- $b = $b|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $A2 = 0, $Ai = 0, $arrayidx11 = 0, $arrayidx13 = 0, $arrayidx15 = 0, $arrayidx16 = 0, $arrayidx17 = 0, $arrayidx24 = 0, $arrayidx3 = 0, $arrayidx31 = 0;
- var $arrayidx40 = 0, $arrayidx43 = 0, $arrayidx5 = 0, $arrayidx51 = 0, $arrayidx62 = 0, $arrayidx7 = 0, $arrayidx9 = 0, $aslide = 0, $bslide = 0, $cmp = 0, $cmp21 = 0, $cmp2118 = 0, $cmp26 = 0, $cmp34 = 0, $cmp45 = 0, $cmp55 = 0, $dec = 0, $dec66 = 0, $div39 = 0, $div61 = 0;
- var $i$020 = 0, $i$119 = 0, $t = 0, $tobool = 0, $tobool19 = 0, $u = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 2272|0;
- $aslide = sp + 1536|0;
- $bslide = sp + 1280|0;
- $Ai = sp;
- $t = sp + 2112|0;
- $u = sp + 1952|0;
- $A2 = sp + 1792|0;
- _slide($aslide,$a);
- _slide($bslide,$b);
- _ge_p3_to_cached($Ai,$A);
- _ge_p3_dbl($t,$A);
- _ge_p1p1_to_p3($A2,$t);
- _ge_add($t,$A2,$Ai);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx3 = ((($Ai)) + 160|0);
- _ge_p3_to_cached($arrayidx3,$u);
- _ge_add($t,$A2,$arrayidx3);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx5 = ((($Ai)) + 320|0);
- _ge_p3_to_cached($arrayidx5,$u);
- _ge_add($t,$A2,$arrayidx5);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx7 = ((($Ai)) + 480|0);
- _ge_p3_to_cached($arrayidx7,$u);
- _ge_add($t,$A2,$arrayidx7);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx9 = ((($Ai)) + 640|0);
- _ge_p3_to_cached($arrayidx9,$u);
- _ge_add($t,$A2,$arrayidx9);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx11 = ((($Ai)) + 800|0);
- _ge_p3_to_cached($arrayidx11,$u);
- _ge_add($t,$A2,$arrayidx11);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx13 = ((($Ai)) + 960|0);
- _ge_p3_to_cached($arrayidx13,$u);
- _ge_add($t,$A2,$arrayidx13);
- _ge_p1p1_to_p3($u,$t);
- $arrayidx15 = ((($Ai)) + 1120|0);
- _ge_p3_to_cached($arrayidx15,$u);
- _ge_p2_0($r);
- $i$020 = 255;
- while(1) {
- $arrayidx16 = (($aslide) + ($i$020)|0);
- $0 = HEAP8[$arrayidx16>>0]|0;
- $tobool = ($0<<24>>24)==(0);
- if (!($tobool)) {
- break;
- }
- $arrayidx17 = (($bslide) + ($i$020)|0);
- $1 = HEAP8[$arrayidx17>>0]|0;
- $tobool19 = ($1<<24>>24)==(0);
- if (!($tobool19)) {
- break;
- }
- $dec = (($i$020) + -1)|0;
- $cmp = ($i$020|0)==(0);
- if ($cmp) {
- label = 16;
- break;
- } else {
- $i$020 = $dec;
- }
- }
- if ((label|0) == 16) {
- STACKTOP = sp;return;
- }
- $cmp2118 = ($i$020|0)>(-1);
- if (!($cmp2118)) {
- STACKTOP = sp;return;
- }
- $i$119 = $i$020;
- while(1) {
- _ge_p2_dbl($t,$r);
- $arrayidx24 = (($aslide) + ($i$119)|0);
- $2 = HEAP8[$arrayidx24>>0]|0;
- $cmp26 = ($2<<24>>24)>(0);
- if ($cmp26) {
- _ge_p1p1_to_p3($u,$t);
- $3 = ($2&255) >>> 1;
- $4 = $3&255;
- $arrayidx31 = (($Ai) + (($4*160)|0)|0);
- _ge_add($t,$u,$arrayidx31);
- } else {
- $cmp34 = ($2<<24>>24)<(0);
- if ($cmp34) {
- _ge_p1p1_to_p3($u,$t);
- $5 = (($2<<24>>24) / -2)&-1;
- $div39 = $5 << 24 >> 24;
- $arrayidx40 = (($Ai) + (($div39*160)|0)|0);
- _ge_sub($t,$u,$arrayidx40);
- }
- }
- $arrayidx43 = (($bslide) + ($i$119)|0);
- $6 = HEAP8[$arrayidx43>>0]|0;
- $cmp45 = ($6<<24>>24)>(0);
- if ($cmp45) {
- _ge_p1p1_to_p3($u,$t);
- $7 = ($6&255) >>> 1;
- $8 = $7&255;
- $arrayidx51 = (16 + (($8*120)|0)|0);
- _ge_madd($t,$u,$arrayidx51);
- } else {
- $cmp55 = ($6<<24>>24)<(0);
- if ($cmp55) {
- _ge_p1p1_to_p3($u,$t);
- $9 = (($6<<24>>24) / -2)&-1;
- $div61 = $9 << 24 >> 24;
- $arrayidx62 = (16 + (($div61*120)|0)|0);
- _ge_msub($t,$u,$arrayidx62);
- }
- }
- _ge_p1p1_to_p2($r,$t);
- $dec66 = (($i$119) + -1)|0;
- $cmp21 = ($i$119|0)>(0);
- if ($cmp21) {
- $i$119 = $dec66;
- } else {
- break;
- }
- }
- STACKTOP = sp;return;
-}
-function _slide($r,$a) {
- $r = $r|0;
- $a = $a|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $add = 0, $add25 = 0, $and = 0, $and2 = 0, $arrayidx = 0, $arrayidx17 = 0, $arrayidx4 = 0, $arrayidx61 = 0, $arrayidx9 = 0, $b$052 = 0, $cmp11 = 0, $cmp13 = 0, $cmp26 = 0, $cmp45 = 0;
- var $cmp58 = 0, $conv = 0, $conv21 = 0, $conv24 = 0, $conv3 = 0, $conv36 = 0, $conv55 = 0, $exitcond = 0, $exitcond58 = 0, $i$056 = 0, $i$153 = 0, $inc = 0, $inc67 = 0, $inc74 = 0, $inc78 = 0, $k$051 = 0, $shl = 0, $shr1 = 0, $sub = 0, $tobool = 0;
- var $tobool18 = 0, $tobool62 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $i$056 = 0;
- while(1) {
- $0 = $i$056 >>> 3;
- $arrayidx = (($a) + ($0)|0);
- $1 = HEAP8[$arrayidx>>0]|0;
- $conv = $1&255;
- $and = $i$056 & 7;
- $shr1 = $conv >>> $and;
- $and2 = $shr1 & 1;
- $conv3 = $and2&255;
- $arrayidx4 = (($r) + ($i$056)|0);
- HEAP8[$arrayidx4>>0] = $conv3;
- $inc = (($i$056) + 1)|0;
- $exitcond58 = ($inc|0)==(256);
- if ($exitcond58) {
- break;
- } else {
- $i$056 = $inc;
- }
- }
- $i$153 = 0;
- while(1) {
- $arrayidx9 = (($r) + ($i$153)|0);
- $2 = HEAP8[$arrayidx9>>0]|0;
- $tobool = ($2<<24>>24)==(0);
- L6: do {
- if (!($tobool)) {
- $b$052 = 1;
- while(1) {
- $add = (($b$052) + ($i$153))|0;
- $cmp13 = ($add>>>0)<(256);
- if (!($cmp13)) {
- break L6;
- }
- $arrayidx17 = (($r) + ($add)|0);
- $3 = HEAP8[$arrayidx17>>0]|0;
- $tobool18 = ($3<<24>>24)==(0);
- L11: do {
- if (!($tobool18)) {
- $4 = HEAP8[$arrayidx9>>0]|0;
- $conv21 = $4 << 24 >> 24;
- $conv24 = $3 << 24 >> 24;
- $shl = $conv24 << $b$052;
- $add25 = (($shl) + ($conv21))|0;
- $cmp26 = ($add25|0)<(16);
- if ($cmp26) {
- $conv36 = $add25&255;
- HEAP8[$arrayidx9>>0] = $conv36;
- HEAP8[$arrayidx17>>0] = 0;
- break;
- }
- $sub = (($conv21) - ($shl))|0;
- $cmp45 = ($sub|0)>(-16);
- if (!($cmp45)) {
- break L6;
- }
- $conv55 = $sub&255;
- HEAP8[$arrayidx9>>0] = $conv55;
- $k$051 = $add;
- while(1) {
- $arrayidx61 = (($r) + ($k$051)|0);
- $5 = HEAP8[$arrayidx61>>0]|0;
- $tobool62 = ($5<<24>>24)==(0);
- if ($tobool62) {
- break;
- }
- HEAP8[$arrayidx61>>0] = 0;
- $inc67 = (($k$051) + 1)|0;
- $cmp58 = ($k$051>>>0)<(255);
- if ($cmp58) {
- $k$051 = $inc67;
- } else {
- break L11;
- }
- }
- HEAP8[$arrayidx61>>0] = 1;
- }
- } while(0);
- $inc74 = (($b$052) + 1)|0;
- $cmp11 = ($inc74>>>0)<(7);
- if ($cmp11) {
- $b$052 = $inc74;
- } else {
- break;
- }
- }
- }
- } while(0);
- $inc78 = (($i$153) + 1)|0;
- $exitcond = ($inc78|0)==(256);
- if ($exitcond) {
- break;
- } else {
- $i$153 = $inc78;
- }
- }
- return;
-}
-function _ge_p3_to_cached($r,$p) {
- $r = $r|0;
- $p = $p|0;
- var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay11 = 0, $arraydecay12 = 0, $arraydecay3 = 0, $arraydecay8 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $arraydecay1 = ((($p)) + 40|0);
- _fe_add($r,$arraydecay1,$p);
- $arraydecay3 = ((($r)) + 40|0);
- _fe_sub($arraydecay3,$arraydecay1,$p);
- $arraydecay8 = ((($r)) + 80|0);
- $arraydecay10 = ((($p)) + 80|0);
- _fe_copy($arraydecay8,$arraydecay10);
- $arraydecay11 = ((($r)) + 120|0);
- $arraydecay12 = ((($p)) + 120|0);
- _fe_mul($arraydecay11,$arraydecay12,976);
- return;
-}
-function _ge_p3_dbl($r,$p) {
- $r = $r|0;
- $p = $p|0;
- var $q = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 128|0;
- $q = sp;
- _ge_p3_to_p2($q,$p);
- _ge_p2_dbl($r,$q);
- STACKTOP = sp;return;
-}
-function _ge_p1p1_to_p3($r,$p) {
- $r = $r|0;
- $p = $p|0;
- var $arraydecay15 = 0, $arraydecay3 = 0, $arraydecay4 = 0, $arraydecay6 = 0, $arraydecay7 = 0, $arraydecay9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $arraydecay3 = ((($p)) + 120|0);
- _fe_mul($r,$p,$arraydecay3);
- $arraydecay4 = ((($r)) + 40|0);
- $arraydecay6 = ((($p)) + 40|0);
- $arraydecay7 = ((($p)) + 80|0);
- _fe_mul($arraydecay4,$arraydecay6,$arraydecay7);
- $arraydecay9 = ((($r)) + 80|0);
- _fe_mul($arraydecay9,$arraydecay7,$arraydecay3);
- $arraydecay15 = ((($r)) + 120|0);
- _fe_mul($arraydecay15,$p,$arraydecay6);
- return;
-}
-function _ge_p2_0($h) {
- $h = $h|0;
- var $arraydecay1 = 0, $arraydecay2 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- _fe_0($h);
- $arraydecay1 = ((($h)) + 40|0);
- _fe_1($arraydecay1);
- $arraydecay2 = ((($h)) + 80|0);
- _fe_1($arraydecay2);
- return;
-}
-function _ge_p2_dbl($r,$p) {
- $r = $r|0;
- $p = $p|0;
- var $arraydecay3 = 0, $arraydecay4 = 0, $arraydecay5 = 0, $arraydecay7 = 0, $arraydecay9 = 0, $t0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 48|0;
- $t0 = sp;
- _fe_sq($r,$p);
- $arraydecay3 = ((($r)) + 80|0);
- $arraydecay4 = ((($p)) + 40|0);
- _fe_sq($arraydecay3,$arraydecay4);
- $arraydecay5 = ((($r)) + 120|0);
- $arraydecay7 = ((($p)) + 80|0);
- _fe_sq2($arraydecay5,$arraydecay7);
- $arraydecay9 = ((($r)) + 40|0);
- _fe_add($arraydecay9,$p,$arraydecay4);
- _fe_sq($t0,$arraydecay9);
- _fe_add($arraydecay9,$arraydecay3,$r);
- _fe_sub($arraydecay3,$arraydecay3,$r);
- _fe_sub($r,$t0,$arraydecay9);
- _fe_sub($arraydecay5,$arraydecay5,$arraydecay3);
- STACKTOP = sp;return;
-}
-function _ge_sub($r,$p,$q) {
- $r = $r|0;
- $p = $p|0;
- $q = $q|0;
- var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay13 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay26 = 0, $arraydecay28 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 48|0;
- $t0 = sp;
- $arraydecay1 = ((($p)) + 40|0);
- _fe_add($r,$arraydecay1,$p);
- $arraydecay5 = ((($r)) + 40|0);
- _fe_sub($arraydecay5,$arraydecay1,$p);
- $arraydecay10 = ((($r)) + 80|0);
- $arraydecay13 = ((($q)) + 40|0);
- _fe_mul($arraydecay10,$r,$arraydecay13);
- _fe_mul($arraydecay5,$arraydecay5,$q);
- $arraydecay19 = ((($r)) + 120|0);
- $arraydecay20 = ((($q)) + 120|0);
- $arraydecay22 = ((($p)) + 120|0);
- _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
- $arraydecay26 = ((($p)) + 80|0);
- $arraydecay28 = ((($q)) + 80|0);
- _fe_mul($r,$arraydecay26,$arraydecay28);
- _fe_add($t0,$r,$r);
- _fe_sub($r,$arraydecay10,$arraydecay5);
- _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
- _fe_sub($arraydecay10,$t0,$arraydecay19);
- _fe_add($arraydecay19,$t0,$arraydecay19);
- STACKTOP = sp;return;
-}
-function _ge_madd($r,$p,$q) {
- $r = $r|0;
- $p = $p|0;
- $q = $q|0;
- var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay18 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay25 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 48|0;
- $t0 = sp;
- $arraydecay1 = ((($p)) + 40|0);
- _fe_add($r,$arraydecay1,$p);
- $arraydecay5 = ((($r)) + 40|0);
- _fe_sub($arraydecay5,$arraydecay1,$p);
- $arraydecay10 = ((($r)) + 80|0);
- _fe_mul($arraydecay10,$r,$q);
- $arraydecay18 = ((($q)) + 40|0);
- _fe_mul($arraydecay5,$arraydecay5,$arraydecay18);
- $arraydecay19 = ((($r)) + 120|0);
- $arraydecay20 = ((($q)) + 80|0);
- $arraydecay22 = ((($p)) + 120|0);
- _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
- $arraydecay25 = ((($p)) + 80|0);
- _fe_add($t0,$arraydecay25,$arraydecay25);
- _fe_sub($r,$arraydecay10,$arraydecay5);
- _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
- _fe_add($arraydecay10,$t0,$arraydecay19);
- _fe_sub($arraydecay19,$t0,$arraydecay19);
- STACKTOP = sp;return;
-}
-function _ge_msub($r,$p,$q) {
- $r = $r|0;
- $p = $p|0;
- $q = $q|0;
- var $arraydecay1 = 0, $arraydecay10 = 0, $arraydecay13 = 0, $arraydecay19 = 0, $arraydecay20 = 0, $arraydecay22 = 0, $arraydecay25 = 0, $arraydecay5 = 0, $t0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 48|0;
- $t0 = sp;
- $arraydecay1 = ((($p)) + 40|0);
- _fe_add($r,$arraydecay1,$p);
- $arraydecay5 = ((($r)) + 40|0);
- _fe_sub($arraydecay5,$arraydecay1,$p);
- $arraydecay10 = ((($r)) + 80|0);
- $arraydecay13 = ((($q)) + 40|0);
- _fe_mul($arraydecay10,$r,$arraydecay13);
- _fe_mul($arraydecay5,$arraydecay5,$q);
- $arraydecay19 = ((($r)) + 120|0);
- $arraydecay20 = ((($q)) + 80|0);
- $arraydecay22 = ((($p)) + 120|0);
- _fe_mul($arraydecay19,$arraydecay20,$arraydecay22);
- $arraydecay25 = ((($p)) + 80|0);
- _fe_add($t0,$arraydecay25,$arraydecay25);
- _fe_sub($r,$arraydecay10,$arraydecay5);
- _fe_add($arraydecay5,$arraydecay10,$arraydecay5);
- _fe_sub($arraydecay10,$t0,$arraydecay19);
- _fe_add($arraydecay19,$t0,$arraydecay19);
- STACKTOP = sp;return;
-}
-function _ge_p1p1_to_p2($r,$p) {
- $r = $r|0;
- $p = $p|0;
- var $arraydecay3 = 0, $arraydecay4 = 0, $arraydecay6 = 0, $arraydecay7 = 0, $arraydecay9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $arraydecay3 = ((($p)) + 120|0);
- _fe_mul($r,$p,$arraydecay3);
- $arraydecay4 = ((($r)) + 40|0);
- $arraydecay6 = ((($p)) + 40|0);
- $arraydecay7 = ((($p)) + 80|0);
- _fe_mul($arraydecay4,$arraydecay6,$arraydecay7);
- $arraydecay9 = ((($r)) + 80|0);
- _fe_mul($arraydecay9,$arraydecay7,$arraydecay3);
- return;
-}
-function _ge_p3_to_p2($r,$p) {
- $r = $r|0;
- $p = $p|0;
- var $arraydecay3 = 0, $arraydecay5 = 0, $arraydecay6 = 0, $arraydecay8 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- _fe_copy($r,$p);
- $arraydecay3 = ((($r)) + 40|0);
- $arraydecay5 = ((($p)) + 40|0);
- _fe_copy($arraydecay3,$arraydecay5);
- $arraydecay6 = ((($r)) + 80|0);
- $arraydecay8 = ((($p)) + 80|0);
- _fe_copy($arraydecay6,$arraydecay8);
- return;
-}
-function _ge_frombytes_negate_vartime($h,$s) {
- $h = $h|0;
- $s = $s|0;
- var $0 = 0, $1 = 0, $arraydecay = 0, $arraydecay1 = 0, $arraydecay78 = 0, $arrayidx = 0, $call = 0, $call60 = 0, $call70 = 0, $check = 0, $cmp = 0, $conv = 0, $retval$0 = 0, $tobool = 0, $tobool61 = 0, $u = 0, $v = 0, $v3 = 0, $vxx = 0, label = 0;
- var sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 240|0;
- $u = sp + 192|0;
- $v = sp + 144|0;
- $v3 = sp + 96|0;
- $vxx = sp + 48|0;
- $check = sp;
- $arraydecay = ((($h)) + 40|0);
- _fe_frombytes($arraydecay,$s);
- $arraydecay1 = ((($h)) + 80|0);
- _fe_1($arraydecay1);
- _fe_sq($u,$arraydecay);
- _fe_mul($v,$u,1024);
- _fe_sub($u,$u,$arraydecay1);
- _fe_add($v,$v,$arraydecay1);
- _fe_sq($v3,$v);
- _fe_mul($v3,$v3,$v);
- _fe_sq($h,$v3);
- _fe_mul($h,$h,$v);
- _fe_mul($h,$h,$u);
- _fe_pow22523($h,$h);
- _fe_mul($h,$h,$v3);
- _fe_mul($h,$h,$u);
- _fe_sq($vxx,$h);
- _fe_mul($vxx,$vxx,$v);
- _fe_sub($check,$vxx,$u);
- $call = (_fe_isnonzero($check)|0);
- $tobool = ($call|0)==(0);
- do {
- if (!($tobool)) {
- _fe_add($check,$vxx,$u);
- $call60 = (_fe_isnonzero($check)|0);
- $tobool61 = ($call60|0)==(0);
- if ($tobool61) {
- _fe_mul($h,$h,1072);
- break;
- } else {
- $retval$0 = -1;
- STACKTOP = sp;return ($retval$0|0);
- }
- }
- } while(0);
- $call70 = (_fe_isnegative($h)|0);
- $arrayidx = ((($s)) + 31|0);
- $0 = HEAP8[$arrayidx>>0]|0;
- $conv = $0&255;
- $1 = $conv >>> 7;
- $cmp = ($call70|0)==($1|0);
- if ($cmp) {
- _fe_neg($h,$h);
- }
- $arraydecay78 = ((($h)) + 120|0);
- _fe_mul($arraydecay78,$h,$arraydecay);
- $retval$0 = 0;
- STACKTOP = sp;return ($retval$0|0);
-}
-function _ge_p3_0($h) {
- $h = $h|0;
- var $arraydecay1 = 0, $arraydecay2 = 0, $arraydecay3 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- _fe_0($h);
- $arraydecay1 = ((($h)) + 40|0);
- _fe_1($arraydecay1);
- $arraydecay2 = ((($h)) + 80|0);
- _fe_1($arraydecay2);
- $arraydecay3 = ((($h)) + 120|0);
- _fe_0($arraydecay3);
- return;
-}
-function _ge_p3_tobytes($s,$h) {
- $s = $s|0;
- $h = $h|0;
- var $0 = 0, $arraydecay1 = 0, $arraydecay6 = 0, $arrayidx = 0, $call = 0, $conv = 0, $conv10 = 0, $recip = 0, $shl = 0, $x = 0, $xor = 0, $y = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 144|0;
- $recip = sp + 96|0;
- $x = sp + 48|0;
- $y = sp;
- $arraydecay1 = ((($h)) + 80|0);
- _fe_invert($recip,$arraydecay1);
- _fe_mul($x,$h,$recip);
- $arraydecay6 = ((($h)) + 40|0);
- _fe_mul($y,$arraydecay6,$recip);
- _fe_tobytes($s,$y);
- $call = (_fe_isnegative($x)|0);
- $shl = $call << 7;
- $arrayidx = ((($s)) + 31|0);
- $0 = HEAP8[$arrayidx>>0]|0;
- $conv = $0&255;
- $xor = $shl ^ $conv;
- $conv10 = $xor&255;
- HEAP8[$arrayidx>>0] = $conv10;
- STACKTOP = sp;return;
-}
-function _ge_scalarmult_base($h,$a) {
- $h = $h|0;
- $a = $a|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $add18 = 0, $add37 = 0, $add45 = 0, $add54 = 0, $add9 = 0, $arrayidx = 0, $arrayidx10 = 0, $arrayidx16 = 0, $arrayidx2 = 0, $arrayidx35 = 0, $arrayidx43 = 0, $arrayidx52 = 0, $carry$034 = 0;
- var $cmp40 = 0, $cmp48 = 0, $conv1730 = 0, $conv30 = 0, $conv3629 = 0, $conv38 = 0, $div = 0, $div51 = 0, $e = 0, $exitcond = 0, $exitcond37 = 0, $i$036 = 0, $i$135 = 0, $i$233 = 0, $i$332 = 0, $inc = 0, $inc32 = 0, $mul = 0, $r = 0, $s = 0;
- var $sext = 0, $sext31 = 0, $shl = 0, $shr25 = 0, $sub = 0, $t = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 464|0;
- $e = sp;
- $r = sp + 304|0;
- $s = sp + 184|0;
- $t = sp + 64|0;
- $i$036 = 0;
- while(1) {
- $arrayidx = (($a) + ($i$036)|0);
- $0 = HEAP8[$arrayidx>>0]|0;
- $1 = $0 & 15;
- $mul = $i$036 << 1;
- $arrayidx2 = (($e) + ($mul)|0);
- HEAP8[$arrayidx2>>0] = $1;
- $2 = ($0&255) >>> 4;
- $add9 = $mul | 1;
- $arrayidx10 = (($e) + ($add9)|0);
- HEAP8[$arrayidx10>>0] = $2;
- $inc = (($i$036) + 1)|0;
- $exitcond37 = ($inc|0)==(32);
- if ($exitcond37) {
- break;
- } else {
- $i$036 = $inc;
- }
- }
- $carry$034 = 0;$i$135 = 0;
- while(1) {
- $arrayidx16 = (($e) + ($i$135)|0);
- $3 = HEAP8[$arrayidx16>>0]|0;
- $conv1730 = $3&255;
- $add18 = (($carry$034) + ($conv1730))|0;
- $sext = $add18 << 24;
- $sext31 = (($sext) + 134217728)|0;
- $shr25 = $sext31 >> 28;
- $shl = $shr25 << 4;
- $sub = (($add18) - ($shl))|0;
- $conv30 = $sub&255;
- HEAP8[$arrayidx16>>0] = $conv30;
- $inc32 = (($i$135) + 1)|0;
- $exitcond = ($inc32|0)==(63);
- if ($exitcond) {
- break;
- } else {
- $carry$034 = $shr25;$i$135 = $inc32;
- }
- }
- $arrayidx35 = ((($e)) + 63|0);
- $4 = HEAP8[$arrayidx35>>0]|0;
- $conv3629 = $4&255;
- $add37 = (($shr25) + ($conv3629))|0;
- $conv38 = $add37&255;
- HEAP8[$arrayidx35>>0] = $conv38;
- _ge_p3_0($h);
- $i$233 = 1;
- while(1) {
- $div = $i$233 >>> 1;
- $arrayidx43 = (($e) + ($i$233)|0);
- $5 = HEAP8[$arrayidx43>>0]|0;
- _select_42($t,$div,$5);
- _ge_madd($r,$h,$t);
- _ge_p1p1_to_p3($h,$r);
- $add45 = (($i$233) + 2)|0;
- $cmp40 = ($add45>>>0)<(64);
- if ($cmp40) {
- $i$233 = $add45;
- } else {
- break;
- }
- }
- _ge_p3_dbl($r,$h);
- _ge_p1p1_to_p2($s,$r);
- _ge_p2_dbl($r,$s);
- _ge_p1p1_to_p2($s,$r);
- _ge_p2_dbl($r,$s);
- _ge_p1p1_to_p2($s,$r);
- _ge_p2_dbl($r,$s);
- _ge_p1p1_to_p3($h,$r);
- $i$332 = 0;
- while(1) {
- $div51 = $i$332 >>> 1;
- $arrayidx52 = (($e) + ($i$332)|0);
- $6 = HEAP8[$arrayidx52>>0]|0;
- _select_42($t,$div51,$6);
- _ge_madd($r,$h,$t);
- _ge_p1p1_to_p3($h,$r);
- $add54 = (($i$332) + 2)|0;
- $cmp48 = ($add54>>>0)<(64);
- if ($cmp48) {
- $i$332 = $add54;
- } else {
- break;
- }
- }
- STACKTOP = sp;return;
-}
-function _select_42($t,$pos,$b) {
- $t = $t|0;
- $pos = $pos|0;
- $b = $b|0;
- var $and = 0, $arraydecay35 = 0, $arraydecay39 = 0, $arraydecay5 = 0, $arraydecay6 = 0, $arrayidx10 = 0, $arrayidx13 = 0, $arrayidx16 = 0, $arrayidx19 = 0, $arrayidx22 = 0, $arrayidx25 = 0, $arrayidx28 = 0, $arrayidx7 = 0, $call = 0, $call11 = 0, $call14 = 0, $call17 = 0, $call20 = 0, $call23 = 0, $call26 = 0;
- var $call29 = 0, $call8 = 0, $conv = 0, $conv1 = 0, $conv4 = 0, $minust = 0, $shl = 0, $sub = 0, $sub3 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 128|0;
- $minust = sp;
- $call = (_negative($b)|0);
- $conv = $b << 24 >> 24;
- $conv1 = $call&255;
- $sub = (0 - ($conv1))|0;
- $and = $sub & $conv;
- $shl = $and << 1;
- $sub3 = (($conv) - ($shl))|0;
- $conv4 = $sub3&255;
- _fe_1($t);
- $arraydecay5 = ((($t)) + 40|0);
- _fe_1($arraydecay5);
- $arraydecay6 = ((($t)) + 80|0);
- _fe_0($arraydecay6);
- $arrayidx7 = (1120 + (($pos*960)|0)|0);
- $call8 = (_equal($conv4,1)|0);
- _cmov($t,$arrayidx7,$call8);
- $arrayidx10 = (((1120 + (($pos*960)|0)|0)) + 120|0);
- $call11 = (_equal($conv4,2)|0);
- _cmov($t,$arrayidx10,$call11);
- $arrayidx13 = (((1120 + (($pos*960)|0)|0)) + 240|0);
- $call14 = (_equal($conv4,3)|0);
- _cmov($t,$arrayidx13,$call14);
- $arrayidx16 = (((1120 + (($pos*960)|0)|0)) + 360|0);
- $call17 = (_equal($conv4,4)|0);
- _cmov($t,$arrayidx16,$call17);
- $arrayidx19 = (((1120 + (($pos*960)|0)|0)) + 480|0);
- $call20 = (_equal($conv4,5)|0);
- _cmov($t,$arrayidx19,$call20);
- $arrayidx22 = (((1120 + (($pos*960)|0)|0)) + 600|0);
- $call23 = (_equal($conv4,6)|0);
- _cmov($t,$arrayidx22,$call23);
- $arrayidx25 = (((1120 + (($pos*960)|0)|0)) + 720|0);
- $call26 = (_equal($conv4,7)|0);
- _cmov($t,$arrayidx25,$call26);
- $arrayidx28 = (((1120 + (($pos*960)|0)|0)) + 840|0);
- $call29 = (_equal($conv4,8)|0);
- _cmov($t,$arrayidx28,$call29);
- _fe_copy($minust,$arraydecay5);
- $arraydecay35 = ((($minust)) + 40|0);
- _fe_copy($arraydecay35,$t);
- $arraydecay39 = ((($minust)) + 80|0);
- _fe_neg($arraydecay39,$arraydecay6);
- _cmov($t,$minust,$call);
- STACKTOP = sp;return;
-}
-function _negative($b) {
- $b = $b|0;
- var $0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = ($b&255) >>> 7;
- return ($0|0);
-}
-function _equal($b,$c) {
- $b = $b|0;
- $c = $c|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $xor4 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $xor4 = $c ^ $b;
- $0 = $xor4&255;
- $1 = (_i64Add(($0|0),0,-1,-1)|0);
- $2 = (getTempRet0() | 0);
- $3 = (_bitshift64Lshr(($1|0),($2|0),63)|0);
- $4 = (getTempRet0() | 0);
- $5 = $3&255;
- return ($5|0);
-}
-function _cmov($t,$u,$b) {
- $t = $t|0;
- $u = $u|0;
- $b = $b|0;
- var $arraydecay3 = 0, $arraydecay5 = 0, $arraydecay7 = 0, $arraydecay9 = 0, $conv = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $conv = $b&255;
- _fe_cmov($t,$u,$conv);
- $arraydecay3 = ((($t)) + 40|0);
- $arraydecay5 = ((($u)) + 40|0);
- _fe_cmov($arraydecay3,$arraydecay5,$conv);
- $arraydecay7 = ((($t)) + 80|0);
- $arraydecay9 = ((($u)) + 80|0);
- _fe_cmov($arraydecay7,$arraydecay9,$conv);
- return;
-}
-function _ge_tobytes($s,$h) {
- $s = $s|0;
- $h = $h|0;
- var $0 = 0, $arraydecay1 = 0, $arraydecay6 = 0, $arrayidx = 0, $call = 0, $conv = 0, $conv10 = 0, $recip = 0, $shl = 0, $x = 0, $xor = 0, $y = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 144|0;
- $recip = sp + 96|0;
- $x = sp + 48|0;
- $y = sp;
- $arraydecay1 = ((($h)) + 80|0);
- _fe_invert($recip,$arraydecay1);
- _fe_mul($x,$h,$recip);
- $arraydecay6 = ((($h)) + 40|0);
- _fe_mul($y,$arraydecay6,$recip);
- _fe_tobytes($s,$y);
- $call = (_fe_isnegative($x)|0);
- $shl = $call << 7;
- $arrayidx = ((($s)) + 31|0);
- $0 = HEAP8[$arrayidx>>0]|0;
- $conv = $0&255;
- $xor = $shl ^ $conv;
- $conv10 = $xor&255;
- HEAP8[$arrayidx>>0] = $conv10;
- STACKTOP = sp;return;
-}
-function _ed25519_create_keypair($public_key,$private_key,$seed) {
- $public_key = $public_key|0;
- $private_key = $private_key|0;
- $seed = $seed|0;
- var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $A = 0, $arrayidx2 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 160|0;
- $A = sp;
- (_sha512($seed,32,$private_key)|0);
- $0 = HEAP8[$private_key>>0]|0;
- $1 = $0 & -8;
- HEAP8[$private_key>>0] = $1;
- $arrayidx2 = ((($private_key)) + 31|0);
- $2 = HEAP8[$arrayidx2>>0]|0;
- $3 = $2 & 63;
- $4 = $3 | 64;
- HEAP8[$arrayidx2>>0] = $4;
- _ge_scalarmult_base($A,$private_key);
- _ge_p3_tobytes($public_key,$A);
- STACKTOP = sp;return;
-}
-function _sc_reduce($s) {
- $s = $s|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0;
- var $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, $132 = 0, $133 = 0;
- var $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, $150 = 0, $151 = 0;
- var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0;
- var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0;
- var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0;
- var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0;
- var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0;
- var $242 = 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, $26 = 0;
- var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0;
- var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0;
- var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0;
- var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0;
- var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0;
- var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0;
- var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0;
- var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0;
- var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0;
- var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0;
- var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0;
- var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0;
- var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0;
- var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0;
- var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0;
- var $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0;
- var $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0;
- var $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0;
- var $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0;
- var $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0;
- var $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0;
- var $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0;
- var $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0;
- var $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0;
- var $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0;
- var $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0;
- var $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0;
- var $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0;
- var $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0;
- var $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0;
- var $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0;
- var $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0;
- var $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0;
- var $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0;
- var $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 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, $add$ptr = 0, $add$ptr11 = 0, $add$ptr15 = 0, $add$ptr19 = 0, $add$ptr23 = 0, $add$ptr27 = 0, $add$ptr3 = 0, $add$ptr30 = 0, $add$ptr34 = 0, $add$ptr38 = 0, $add$ptr42 = 0;
- var $add$ptr46 = 0, $add$ptr50 = 0, $add$ptr54 = 0, $add$ptr58 = 0, $add$ptr61 = 0, $add$ptr65 = 0, $add$ptr69 = 0, $add$ptr7 = 0, $add$ptr73 = 0, $add$ptr77 = 0, $add$ptr81 = 0, $add$ptr85 = 0, $arrayidx462 = 0, $arrayidx469 = 0, $arrayidx472 = 0, $arrayidx480 = 0, $arrayidx488 = 0, $arrayidx491 = 0, $arrayidx499 = 0, $arrayidx502 = 0;
- var $arrayidx510 = 0, $arrayidx518 = 0, $arrayidx521 = 0, $arrayidx529 = 0, $arrayidx532 = 0, $arrayidx538 = 0, $arrayidx546 = 0, $arrayidx549 = 0, $arrayidx557 = 0, $arrayidx565 = 0, $arrayidx568 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = (_load_3_17($s)|0);
- $1 = (getTempRet0() | 0);
- $2 = $0 & 2097151;
- $add$ptr = ((($s)) + 2|0);
- $3 = (_load_4_18($add$ptr)|0);
- $4 = (getTempRet0() | 0);
- $5 = (_bitshift64Lshr(($3|0),($4|0),5)|0);
- $6 = (getTempRet0() | 0);
- $7 = $5 & 2097151;
- $add$ptr3 = ((($s)) + 5|0);
- $8 = (_load_3_17($add$ptr3)|0);
- $9 = (getTempRet0() | 0);
- $10 = (_bitshift64Lshr(($8|0),($9|0),2)|0);
- $11 = (getTempRet0() | 0);
- $12 = $10 & 2097151;
- $add$ptr7 = ((($s)) + 7|0);
- $13 = (_load_4_18($add$ptr7)|0);
- $14 = (getTempRet0() | 0);
- $15 = (_bitshift64Lshr(($13|0),($14|0),7)|0);
- $16 = (getTempRet0() | 0);
- $17 = $15 & 2097151;
- $add$ptr11 = ((($s)) + 10|0);
- $18 = (_load_4_18($add$ptr11)|0);
- $19 = (getTempRet0() | 0);
- $20 = (_bitshift64Lshr(($18|0),($19|0),4)|0);
- $21 = (getTempRet0() | 0);
- $22 = $20 & 2097151;
- $add$ptr15 = ((($s)) + 13|0);
- $23 = (_load_3_17($add$ptr15)|0);
- $24 = (getTempRet0() | 0);
- $25 = (_bitshift64Lshr(($23|0),($24|0),1)|0);
- $26 = (getTempRet0() | 0);
- $27 = $25 & 2097151;
- $add$ptr19 = ((($s)) + 15|0);
- $28 = (_load_4_18($add$ptr19)|0);
- $29 = (getTempRet0() | 0);
- $30 = (_bitshift64Lshr(($28|0),($29|0),6)|0);
- $31 = (getTempRet0() | 0);
- $32 = $30 & 2097151;
- $add$ptr23 = ((($s)) + 18|0);
- $33 = (_load_3_17($add$ptr23)|0);
- $34 = (getTempRet0() | 0);
- $35 = (_bitshift64Lshr(($33|0),($34|0),3)|0);
- $36 = (getTempRet0() | 0);
- $37 = $35 & 2097151;
- $add$ptr27 = ((($s)) + 21|0);
- $38 = (_load_3_17($add$ptr27)|0);
- $39 = (getTempRet0() | 0);
- $40 = $38 & 2097151;
- $add$ptr30 = ((($s)) + 23|0);
- $41 = (_load_4_18($add$ptr30)|0);
- $42 = (getTempRet0() | 0);
- $43 = (_bitshift64Lshr(($41|0),($42|0),5)|0);
- $44 = (getTempRet0() | 0);
- $45 = $43 & 2097151;
- $add$ptr34 = ((($s)) + 26|0);
- $46 = (_load_3_17($add$ptr34)|0);
- $47 = (getTempRet0() | 0);
- $48 = (_bitshift64Lshr(($46|0),($47|0),2)|0);
- $49 = (getTempRet0() | 0);
- $50 = $48 & 2097151;
- $add$ptr38 = ((($s)) + 28|0);
- $51 = (_load_4_18($add$ptr38)|0);
- $52 = (getTempRet0() | 0);
- $53 = (_bitshift64Lshr(($51|0),($52|0),7)|0);
- $54 = (getTempRet0() | 0);
- $55 = $53 & 2097151;
- $add$ptr42 = ((($s)) + 31|0);
- $56 = (_load_4_18($add$ptr42)|0);
- $57 = (getTempRet0() | 0);
- $58 = (_bitshift64Lshr(($56|0),($57|0),4)|0);
- $59 = (getTempRet0() | 0);
- $60 = $58 & 2097151;
- $add$ptr46 = ((($s)) + 34|0);
- $61 = (_load_3_17($add$ptr46)|0);
- $62 = (getTempRet0() | 0);
- $63 = (_bitshift64Lshr(($61|0),($62|0),1)|0);
- $64 = (getTempRet0() | 0);
- $65 = $63 & 2097151;
- $add$ptr50 = ((($s)) + 36|0);
- $66 = (_load_4_18($add$ptr50)|0);
- $67 = (getTempRet0() | 0);
- $68 = (_bitshift64Lshr(($66|0),($67|0),6)|0);
- $69 = (getTempRet0() | 0);
- $70 = $68 & 2097151;
- $add$ptr54 = ((($s)) + 39|0);
- $71 = (_load_3_17($add$ptr54)|0);
- $72 = (getTempRet0() | 0);
- $73 = (_bitshift64Lshr(($71|0),($72|0),3)|0);
- $74 = (getTempRet0() | 0);
- $75 = $73 & 2097151;
- $add$ptr58 = ((($s)) + 42|0);
- $76 = (_load_3_17($add$ptr58)|0);
- $77 = (getTempRet0() | 0);
- $78 = $76 & 2097151;
- $add$ptr61 = ((($s)) + 44|0);
- $79 = (_load_4_18($add$ptr61)|0);
- $80 = (getTempRet0() | 0);
- $81 = (_bitshift64Lshr(($79|0),($80|0),5)|0);
- $82 = (getTempRet0() | 0);
- $83 = $81 & 2097151;
- $add$ptr65 = ((($s)) + 47|0);
- $84 = (_load_3_17($add$ptr65)|0);
- $85 = (getTempRet0() | 0);
- $86 = (_bitshift64Lshr(($84|0),($85|0),2)|0);
- $87 = (getTempRet0() | 0);
- $88 = $86 & 2097151;
- $add$ptr69 = ((($s)) + 49|0);
- $89 = (_load_4_18($add$ptr69)|0);
- $90 = (getTempRet0() | 0);
- $91 = (_bitshift64Lshr(($89|0),($90|0),7)|0);
- $92 = (getTempRet0() | 0);
- $93 = $91 & 2097151;
- $add$ptr73 = ((($s)) + 52|0);
- $94 = (_load_4_18($add$ptr73)|0);
- $95 = (getTempRet0() | 0);
- $96 = (_bitshift64Lshr(($94|0),($95|0),4)|0);
- $97 = (getTempRet0() | 0);
- $98 = $96 & 2097151;
- $add$ptr77 = ((($s)) + 55|0);
- $99 = (_load_3_17($add$ptr77)|0);
- $100 = (getTempRet0() | 0);
- $101 = (_bitshift64Lshr(($99|0),($100|0),1)|0);
- $102 = (getTempRet0() | 0);
- $103 = $101 & 2097151;
- $add$ptr81 = ((($s)) + 57|0);
- $104 = (_load_4_18($add$ptr81)|0);
- $105 = (getTempRet0() | 0);
- $106 = (_bitshift64Lshr(($104|0),($105|0),6)|0);
- $107 = (getTempRet0() | 0);
- $108 = $106 & 2097151;
- $add$ptr85 = ((($s)) + 60|0);
- $109 = (_load_4_18($add$ptr85)|0);
- $110 = (getTempRet0() | 0);
- $111 = (_bitshift64Lshr(($109|0),($110|0),3)|0);
- $112 = (getTempRet0() | 0);
- $113 = (___muldi3(($111|0),($112|0),666643,0)|0);
- $114 = (getTempRet0() | 0);
- $115 = (___muldi3(($111|0),($112|0),470296,0)|0);
- $116 = (getTempRet0() | 0);
- $117 = (___muldi3(($111|0),($112|0),654183,0)|0);
- $118 = (getTempRet0() | 0);
- $119 = (___muldi3(($111|0),($112|0),-997805,-1)|0);
- $120 = (getTempRet0() | 0);
- $121 = (___muldi3(($111|0),($112|0),136657,0)|0);
- $122 = (getTempRet0() | 0);
- $123 = (_i64Add(($121|0),($122|0),($75|0),0)|0);
- $124 = (getTempRet0() | 0);
- $125 = (___muldi3(($111|0),($112|0),-683901,-1)|0);
- $126 = (getTempRet0() | 0);
- $127 = (_i64Add(($125|0),($126|0),($78|0),0)|0);
- $128 = (getTempRet0() | 0);
- $129 = (___muldi3(($108|0),0,666643,0)|0);
- $130 = (getTempRet0() | 0);
- $131 = (___muldi3(($108|0),0,470296,0)|0);
- $132 = (getTempRet0() | 0);
- $133 = (___muldi3(($108|0),0,654183,0)|0);
- $134 = (getTempRet0() | 0);
- $135 = (___muldi3(($108|0),0,-997805,-1)|0);
- $136 = (getTempRet0() | 0);
- $137 = (___muldi3(($108|0),0,136657,0)|0);
- $138 = (getTempRet0() | 0);
- $139 = (___muldi3(($108|0),0,-683901,-1)|0);
- $140 = (getTempRet0() | 0);
- $141 = (_i64Add(($123|0),($124|0),($139|0),($140|0))|0);
- $142 = (getTempRet0() | 0);
- $143 = (___muldi3(($103|0),0,666643,0)|0);
- $144 = (getTempRet0() | 0);
- $145 = (___muldi3(($103|0),0,470296,0)|0);
- $146 = (getTempRet0() | 0);
- $147 = (___muldi3(($103|0),0,654183,0)|0);
- $148 = (getTempRet0() | 0);
- $149 = (___muldi3(($103|0),0,-997805,-1)|0);
- $150 = (getTempRet0() | 0);
- $151 = (___muldi3(($103|0),0,136657,0)|0);
- $152 = (getTempRet0() | 0);
- $153 = (___muldi3(($103|0),0,-683901,-1)|0);
- $154 = (getTempRet0() | 0);
- $155 = (_i64Add(($153|0),($154|0),($70|0),0)|0);
- $156 = (getTempRet0() | 0);
- $157 = (_i64Add(($155|0),($156|0),($119|0),($120|0))|0);
- $158 = (getTempRet0() | 0);
- $159 = (_i64Add(($157|0),($158|0),($137|0),($138|0))|0);
- $160 = (getTempRet0() | 0);
- $161 = (___muldi3(($98|0),0,666643,0)|0);
- $162 = (getTempRet0() | 0);
- $163 = (___muldi3(($98|0),0,470296,0)|0);
- $164 = (getTempRet0() | 0);
- $165 = (___muldi3(($98|0),0,654183,0)|0);
- $166 = (getTempRet0() | 0);
- $167 = (___muldi3(($98|0),0,-997805,-1)|0);
- $168 = (getTempRet0() | 0);
- $169 = (___muldi3(($98|0),0,136657,0)|0);
- $170 = (getTempRet0() | 0);
- $171 = (___muldi3(($98|0),0,-683901,-1)|0);
- $172 = (getTempRet0() | 0);
- $173 = (___muldi3(($93|0),0,666643,0)|0);
- $174 = (getTempRet0() | 0);
- $175 = (___muldi3(($93|0),0,470296,0)|0);
- $176 = (getTempRet0() | 0);
- $177 = (___muldi3(($93|0),0,654183,0)|0);
- $178 = (getTempRet0() | 0);
- $179 = (___muldi3(($93|0),0,-997805,-1)|0);
- $180 = (getTempRet0() | 0);
- $181 = (___muldi3(($93|0),0,136657,0)|0);
- $182 = (getTempRet0() | 0);
- $183 = (___muldi3(($93|0),0,-683901,-1)|0);
- $184 = (getTempRet0() | 0);
- $185 = (_i64Add(($183|0),($184|0),($60|0),0)|0);
- $186 = (getTempRet0() | 0);
- $187 = (_i64Add(($185|0),($186|0),($169|0),($170|0))|0);
- $188 = (getTempRet0() | 0);
- $189 = (_i64Add(($187|0),($188|0),($149|0),($150|0))|0);
- $190 = (getTempRet0() | 0);
- $191 = (_i64Add(($189|0),($190|0),($115|0),($116|0))|0);
- $192 = (getTempRet0() | 0);
- $193 = (_i64Add(($191|0),($192|0),($133|0),($134|0))|0);
- $194 = (getTempRet0() | 0);
- $195 = (___muldi3(($88|0),0,666643,0)|0);
- $196 = (getTempRet0() | 0);
- $197 = (_i64Add(($195|0),($196|0),($32|0),0)|0);
- $198 = (getTempRet0() | 0);
- $199 = (___muldi3(($88|0),0,470296,0)|0);
- $200 = (getTempRet0() | 0);
- $201 = (___muldi3(($88|0),0,654183,0)|0);
- $202 = (getTempRet0() | 0);
- $203 = (_i64Add(($201|0),($202|0),($40|0),0)|0);
- $204 = (getTempRet0() | 0);
- $205 = (_i64Add(($203|0),($204|0),($175|0),($176|0))|0);
- $206 = (getTempRet0() | 0);
- $207 = (_i64Add(($205|0),($206|0),($161|0),($162|0))|0);
- $208 = (getTempRet0() | 0);
- $209 = (___muldi3(($88|0),0,-997805,-1)|0);
- $210 = (getTempRet0() | 0);
- $211 = (___muldi3(($88|0),0,136657,0)|0);
- $212 = (getTempRet0() | 0);
- $213 = (_i64Add(($211|0),($212|0),($50|0),0)|0);
- $214 = (getTempRet0() | 0);
- $215 = (_i64Add(($213|0),($214|0),($179|0),($180|0))|0);
- $216 = (getTempRet0() | 0);
- $217 = (_i64Add(($215|0),($216|0),($165|0),($166|0))|0);
- $218 = (getTempRet0() | 0);
- $219 = (_i64Add(($217|0),($218|0),($145|0),($146|0))|0);
- $220 = (getTempRet0() | 0);
- $221 = (_i64Add(($219|0),($220|0),($129|0),($130|0))|0);
- $222 = (getTempRet0() | 0);
- $223 = (___muldi3(($88|0),0,-683901,-1)|0);
- $224 = (getTempRet0() | 0);
- $225 = (_i64Add(($197|0),($198|0),1048576,0)|0);
- $226 = (getTempRet0() | 0);
- $227 = (_bitshift64Lshr(($225|0),($226|0),21)|0);
- $228 = (getTempRet0() | 0);
- $229 = (_i64Add(($199|0),($200|0),($37|0),0)|0);
- $230 = (getTempRet0() | 0);
- $231 = (_i64Add(($229|0),($230|0),($173|0),($174|0))|0);
- $232 = (getTempRet0() | 0);
- $233 = (_i64Add(($231|0),($232|0),($227|0),($228|0))|0);
- $234 = (getTempRet0() | 0);
- $235 = $225 & -2097152;
- $236 = $226 & 2047;
- $237 = (_i64Subtract(($197|0),($198|0),($235|0),($236|0))|0);
- $238 = (getTempRet0() | 0);
- $239 = (_i64Add(($207|0),($208|0),1048576,0)|0);
- $240 = (getTempRet0() | 0);
- $241 = (_bitshift64Lshr(($239|0),($240|0),21)|0);
- $242 = (getTempRet0() | 0);
- $243 = (_i64Add(($209|0),($210|0),($45|0),0)|0);
- $244 = (getTempRet0() | 0);
- $245 = (_i64Add(($243|0),($244|0),($177|0),($178|0))|0);
- $246 = (getTempRet0() | 0);
- $247 = (_i64Add(($245|0),($246|0),($163|0),($164|0))|0);
- $248 = (getTempRet0() | 0);
- $249 = (_i64Add(($247|0),($248|0),($143|0),($144|0))|0);
- $250 = (getTempRet0() | 0);
- $251 = (_i64Add(($249|0),($250|0),($241|0),($242|0))|0);
- $252 = (getTempRet0() | 0);
- $253 = $239 & -2097152;
- $254 = (_i64Add(($221|0),($222|0),1048576,0)|0);
- $255 = (getTempRet0() | 0);
- $256 = (_bitshift64Ashr(($254|0),($255|0),21)|0);
- $257 = (getTempRet0() | 0);
- $258 = (_i64Add(($223|0),($224|0),($55|0),0)|0);
- $259 = (getTempRet0() | 0);
- $260 = (_i64Add(($258|0),($259|0),($181|0),($182|0))|0);
- $261 = (getTempRet0() | 0);
- $262 = (_i64Add(($260|0),($261|0),($167|0),($168|0))|0);
- $263 = (getTempRet0() | 0);
- $264 = (_i64Add(($262|0),($263|0),($147|0),($148|0))|0);
- $265 = (getTempRet0() | 0);
- $266 = (_i64Add(($264|0),($265|0),($113|0),($114|0))|0);
- $267 = (getTempRet0() | 0);
- $268 = (_i64Add(($266|0),($267|0),($131|0),($132|0))|0);
- $269 = (getTempRet0() | 0);
- $270 = (_i64Add(($268|0),($269|0),($256|0),($257|0))|0);
- $271 = (getTempRet0() | 0);
- $272 = $254 & -2097152;
- $273 = (_i64Add(($193|0),($194|0),1048576,0)|0);
- $274 = (getTempRet0() | 0);
- $275 = (_bitshift64Ashr(($273|0),($274|0),21)|0);
- $276 = (getTempRet0() | 0);
- $277 = (_i64Add(($171|0),($172|0),($65|0),0)|0);
- $278 = (getTempRet0() | 0);
- $279 = (_i64Add(($277|0),($278|0),($151|0),($152|0))|0);
- $280 = (getTempRet0() | 0);
- $281 = (_i64Add(($279|0),($280|0),($117|0),($118|0))|0);
- $282 = (getTempRet0() | 0);
- $283 = (_i64Add(($281|0),($282|0),($135|0),($136|0))|0);
- $284 = (getTempRet0() | 0);
- $285 = (_i64Add(($283|0),($284|0),($275|0),($276|0))|0);
- $286 = (getTempRet0() | 0);
- $287 = $273 & -2097152;
- $288 = (_i64Subtract(($193|0),($194|0),($287|0),($274|0))|0);
- $289 = (getTempRet0() | 0);
- $290 = (_i64Add(($159|0),($160|0),1048576,0)|0);
- $291 = (getTempRet0() | 0);
- $292 = (_bitshift64Ashr(($290|0),($291|0),21)|0);
- $293 = (getTempRet0() | 0);
- $294 = (_i64Add(($141|0),($142|0),($292|0),($293|0))|0);
- $295 = (getTempRet0() | 0);
- $296 = $290 & -2097152;
- $297 = (_i64Subtract(($159|0),($160|0),($296|0),($291|0))|0);
- $298 = (getTempRet0() | 0);
- $299 = (_i64Add(($127|0),($128|0),1048576,0)|0);
- $300 = (getTempRet0() | 0);
- $301 = (_bitshift64Ashr(($299|0),($300|0),21)|0);
- $302 = (getTempRet0() | 0);
- $303 = (_i64Add(($301|0),($302|0),($83|0),0)|0);
- $304 = (getTempRet0() | 0);
- $305 = $299 & -2097152;
- $306 = (_i64Subtract(($127|0),($128|0),($305|0),($300|0))|0);
- $307 = (getTempRet0() | 0);
- $308 = (_i64Add(($233|0),($234|0),1048576,0)|0);
- $309 = (getTempRet0() | 0);
- $310 = (_bitshift64Lshr(($308|0),($309|0),21)|0);
- $311 = (getTempRet0() | 0);
- $312 = $308 & -2097152;
- $313 = (_i64Subtract(($233|0),($234|0),($312|0),($309|0))|0);
- $314 = (getTempRet0() | 0);
- $315 = (_i64Add(($251|0),($252|0),1048576,0)|0);
- $316 = (getTempRet0() | 0);
- $317 = (_bitshift64Ashr(($315|0),($316|0),21)|0);
- $318 = (getTempRet0() | 0);
- $319 = $315 & -2097152;
- $320 = (_i64Add(($270|0),($271|0),1048576,0)|0);
- $321 = (getTempRet0() | 0);
- $322 = (_bitshift64Ashr(($320|0),($321|0),21)|0);
- $323 = (getTempRet0() | 0);
- $324 = (_i64Add(($322|0),($323|0),($288|0),($289|0))|0);
- $325 = (getTempRet0() | 0);
- $326 = $320 & -2097152;
- $327 = (_i64Subtract(($270|0),($271|0),($326|0),($321|0))|0);
- $328 = (getTempRet0() | 0);
- $329 = (_i64Add(($285|0),($286|0),1048576,0)|0);
- $330 = (getTempRet0() | 0);
- $331 = (_bitshift64Ashr(($329|0),($330|0),21)|0);
- $332 = (getTempRet0() | 0);
- $333 = (_i64Add(($331|0),($332|0),($297|0),($298|0))|0);
- $334 = (getTempRet0() | 0);
- $335 = $329 & -2097152;
- $336 = (_i64Subtract(($285|0),($286|0),($335|0),($330|0))|0);
- $337 = (getTempRet0() | 0);
- $338 = (_i64Add(($294|0),($295|0),1048576,0)|0);
- $339 = (getTempRet0() | 0);
- $340 = (_bitshift64Ashr(($338|0),($339|0),21)|0);
- $341 = (getTempRet0() | 0);
- $342 = (_i64Add(($340|0),($341|0),($306|0),($307|0))|0);
- $343 = (getTempRet0() | 0);
- $344 = $338 & -2097152;
- $345 = (_i64Subtract(($294|0),($295|0),($344|0),($339|0))|0);
- $346 = (getTempRet0() | 0);
- $347 = (___muldi3(($303|0),($304|0),666643,0)|0);
- $348 = (getTempRet0() | 0);
- $349 = (_i64Add(($347|0),($348|0),($27|0),0)|0);
- $350 = (getTempRet0() | 0);
- $351 = (___muldi3(($303|0),($304|0),470296,0)|0);
- $352 = (getTempRet0() | 0);
- $353 = (_i64Add(($237|0),($238|0),($351|0),($352|0))|0);
- $354 = (getTempRet0() | 0);
- $355 = (___muldi3(($303|0),($304|0),654183,0)|0);
- $356 = (getTempRet0() | 0);
- $357 = (_i64Add(($313|0),($314|0),($355|0),($356|0))|0);
- $358 = (getTempRet0() | 0);
- $359 = (___muldi3(($303|0),($304|0),-997805,-1)|0);
- $360 = (getTempRet0() | 0);
- $361 = (___muldi3(($303|0),($304|0),136657,0)|0);
- $362 = (getTempRet0() | 0);
- $363 = (___muldi3(($303|0),($304|0),-683901,-1)|0);
- $364 = (getTempRet0() | 0);
- $365 = (_i64Add(($363|0),($364|0),($221|0),($222|0))|0);
- $366 = (getTempRet0() | 0);
- $367 = (_i64Add(($365|0),($366|0),($317|0),($318|0))|0);
- $368 = (getTempRet0() | 0);
- $369 = (_i64Subtract(($367|0),($368|0),($272|0),($255|0))|0);
- $370 = (getTempRet0() | 0);
- $371 = (___muldi3(($342|0),($343|0),666643,0)|0);
- $372 = (getTempRet0() | 0);
- $373 = (_i64Add(($371|0),($372|0),($22|0),0)|0);
- $374 = (getTempRet0() | 0);
- $375 = (___muldi3(($342|0),($343|0),470296,0)|0);
- $376 = (getTempRet0() | 0);
- $377 = (_i64Add(($349|0),($350|0),($375|0),($376|0))|0);
- $378 = (getTempRet0() | 0);
- $379 = (___muldi3(($342|0),($343|0),654183,0)|0);
- $380 = (getTempRet0() | 0);
- $381 = (_i64Add(($353|0),($354|0),($379|0),($380|0))|0);
- $382 = (getTempRet0() | 0);
- $383 = (___muldi3(($342|0),($343|0),-997805,-1)|0);
- $384 = (getTempRet0() | 0);
- $385 = (_i64Add(($357|0),($358|0),($383|0),($384|0))|0);
- $386 = (getTempRet0() | 0);
- $387 = (___muldi3(($342|0),($343|0),136657,0)|0);
- $388 = (getTempRet0() | 0);
- $389 = (___muldi3(($342|0),($343|0),-683901,-1)|0);
- $390 = (getTempRet0() | 0);
- $391 = (___muldi3(($345|0),($346|0),666643,0)|0);
- $392 = (getTempRet0() | 0);
- $393 = (_i64Add(($391|0),($392|0),($17|0),0)|0);
- $394 = (getTempRet0() | 0);
- $395 = (___muldi3(($345|0),($346|0),470296,0)|0);
- $396 = (getTempRet0() | 0);
- $397 = (_i64Add(($373|0),($374|0),($395|0),($396|0))|0);
- $398 = (getTempRet0() | 0);
- $399 = (___muldi3(($345|0),($346|0),654183,0)|0);
- $400 = (getTempRet0() | 0);
- $401 = (_i64Add(($377|0),($378|0),($399|0),($400|0))|0);
- $402 = (getTempRet0() | 0);
- $403 = (___muldi3(($345|0),($346|0),-997805,-1)|0);
- $404 = (getTempRet0() | 0);
- $405 = (_i64Add(($381|0),($382|0),($403|0),($404|0))|0);
- $406 = (getTempRet0() | 0);
- $407 = (___muldi3(($345|0),($346|0),136657,0)|0);
- $408 = (getTempRet0() | 0);
- $409 = (_i64Add(($385|0),($386|0),($407|0),($408|0))|0);
- $410 = (getTempRet0() | 0);
- $411 = (___muldi3(($345|0),($346|0),-683901,-1)|0);
- $412 = (getTempRet0() | 0);
- $413 = (_i64Add(($310|0),($311|0),($207|0),($208|0))|0);
- $414 = (getTempRet0() | 0);
- $415 = (_i64Subtract(($413|0),($414|0),($253|0),($240|0))|0);
- $416 = (getTempRet0() | 0);
- $417 = (_i64Add(($415|0),($416|0),($359|0),($360|0))|0);
- $418 = (getTempRet0() | 0);
- $419 = (_i64Add(($417|0),($418|0),($387|0),($388|0))|0);
- $420 = (getTempRet0() | 0);
- $421 = (_i64Add(($419|0),($420|0),($411|0),($412|0))|0);
- $422 = (getTempRet0() | 0);
- $423 = (___muldi3(($333|0),($334|0),666643,0)|0);
- $424 = (getTempRet0() | 0);
- $425 = (_i64Add(($423|0),($424|0),($12|0),0)|0);
- $426 = (getTempRet0() | 0);
- $427 = (___muldi3(($333|0),($334|0),470296,0)|0);
- $428 = (getTempRet0() | 0);
- $429 = (_i64Add(($393|0),($394|0),($427|0),($428|0))|0);
- $430 = (getTempRet0() | 0);
- $431 = (___muldi3(($333|0),($334|0),654183,0)|0);
- $432 = (getTempRet0() | 0);
- $433 = (_i64Add(($397|0),($398|0),($431|0),($432|0))|0);
- $434 = (getTempRet0() | 0);
- $435 = (___muldi3(($333|0),($334|0),-997805,-1)|0);
- $436 = (getTempRet0() | 0);
- $437 = (_i64Add(($401|0),($402|0),($435|0),($436|0))|0);
- $438 = (getTempRet0() | 0);
- $439 = (___muldi3(($333|0),($334|0),136657,0)|0);
- $440 = (getTempRet0() | 0);
- $441 = (_i64Add(($405|0),($406|0),($439|0),($440|0))|0);
- $442 = (getTempRet0() | 0);
- $443 = (___muldi3(($333|0),($334|0),-683901,-1)|0);
- $444 = (getTempRet0() | 0);
- $445 = (_i64Add(($409|0),($410|0),($443|0),($444|0))|0);
- $446 = (getTempRet0() | 0);
- $447 = (___muldi3(($336|0),($337|0),666643,0)|0);
- $448 = (getTempRet0() | 0);
- $449 = (_i64Add(($447|0),($448|0),($7|0),0)|0);
- $450 = (getTempRet0() | 0);
- $451 = (___muldi3(($336|0),($337|0),470296,0)|0);
- $452 = (getTempRet0() | 0);
- $453 = (_i64Add(($425|0),($426|0),($451|0),($452|0))|0);
- $454 = (getTempRet0() | 0);
- $455 = (___muldi3(($336|0),($337|0),654183,0)|0);
- $456 = (getTempRet0() | 0);
- $457 = (_i64Add(($429|0),($430|0),($455|0),($456|0))|0);
- $458 = (getTempRet0() | 0);
- $459 = (___muldi3(($336|0),($337|0),-997805,-1)|0);
- $460 = (getTempRet0() | 0);
- $461 = (_i64Add(($433|0),($434|0),($459|0),($460|0))|0);
- $462 = (getTempRet0() | 0);
- $463 = (___muldi3(($336|0),($337|0),136657,0)|0);
- $464 = (getTempRet0() | 0);
- $465 = (_i64Add(($437|0),($438|0),($463|0),($464|0))|0);
- $466 = (getTempRet0() | 0);
- $467 = (___muldi3(($336|0),($337|0),-683901,-1)|0);
- $468 = (getTempRet0() | 0);
- $469 = (_i64Add(($441|0),($442|0),($467|0),($468|0))|0);
- $470 = (getTempRet0() | 0);
- $471 = (___muldi3(($324|0),($325|0),666643,0)|0);
- $472 = (getTempRet0() | 0);
- $473 = (_i64Add(($471|0),($472|0),($2|0),0)|0);
- $474 = (getTempRet0() | 0);
- $475 = (___muldi3(($324|0),($325|0),470296,0)|0);
- $476 = (getTempRet0() | 0);
- $477 = (_i64Add(($449|0),($450|0),($475|0),($476|0))|0);
- $478 = (getTempRet0() | 0);
- $479 = (___muldi3(($324|0),($325|0),654183,0)|0);
- $480 = (getTempRet0() | 0);
- $481 = (_i64Add(($453|0),($454|0),($479|0),($480|0))|0);
- $482 = (getTempRet0() | 0);
- $483 = (___muldi3(($324|0),($325|0),-997805,-1)|0);
- $484 = (getTempRet0() | 0);
- $485 = (_i64Add(($457|0),($458|0),($483|0),($484|0))|0);
- $486 = (getTempRet0() | 0);
- $487 = (___muldi3(($324|0),($325|0),136657,0)|0);
- $488 = (getTempRet0() | 0);
- $489 = (_i64Add(($461|0),($462|0),($487|0),($488|0))|0);
- $490 = (getTempRet0() | 0);
- $491 = (___muldi3(($324|0),($325|0),-683901,-1)|0);
- $492 = (getTempRet0() | 0);
- $493 = (_i64Add(($465|0),($466|0),($491|0),($492|0))|0);
- $494 = (getTempRet0() | 0);
- $495 = (_i64Add(($473|0),($474|0),1048576,0)|0);
- $496 = (getTempRet0() | 0);
- $497 = (_bitshift64Ashr(($495|0),($496|0),21)|0);
- $498 = (getTempRet0() | 0);
- $499 = (_i64Add(($477|0),($478|0),($497|0),($498|0))|0);
- $500 = (getTempRet0() | 0);
- $501 = $495 & -2097152;
- $502 = (_i64Subtract(($473|0),($474|0),($501|0),($496|0))|0);
- $503 = (getTempRet0() | 0);
- $504 = (_i64Add(($481|0),($482|0),1048576,0)|0);
- $505 = (getTempRet0() | 0);
- $506 = (_bitshift64Ashr(($504|0),($505|0),21)|0);
- $507 = (getTempRet0() | 0);
- $508 = (_i64Add(($485|0),($486|0),($506|0),($507|0))|0);
- $509 = (getTempRet0() | 0);
- $510 = $504 & -2097152;
- $511 = (_i64Add(($489|0),($490|0),1048576,0)|0);
- $512 = (getTempRet0() | 0);
- $513 = (_bitshift64Ashr(($511|0),($512|0),21)|0);
- $514 = (getTempRet0() | 0);
- $515 = (_i64Add(($493|0),($494|0),($513|0),($514|0))|0);
- $516 = (getTempRet0() | 0);
- $517 = $511 & -2097152;
- $518 = (_i64Add(($469|0),($470|0),1048576,0)|0);
- $519 = (getTempRet0() | 0);
- $520 = (_bitshift64Ashr(($518|0),($519|0),21)|0);
- $521 = (getTempRet0() | 0);
- $522 = (_i64Add(($445|0),($446|0),($520|0),($521|0))|0);
- $523 = (getTempRet0() | 0);
- $524 = $518 & -2097152;
- $525 = (_i64Subtract(($469|0),($470|0),($524|0),($519|0))|0);
- $526 = (getTempRet0() | 0);
- $527 = (_i64Add(($421|0),($422|0),1048576,0)|0);
- $528 = (getTempRet0() | 0);
- $529 = (_bitshift64Ashr(($527|0),($528|0),21)|0);
- $530 = (getTempRet0() | 0);
- $531 = (_i64Add(($361|0),($362|0),($251|0),($252|0))|0);
- $532 = (getTempRet0() | 0);
- $533 = (_i64Subtract(($531|0),($532|0),($319|0),($316|0))|0);
- $534 = (getTempRet0() | 0);
- $535 = (_i64Add(($533|0),($534|0),($389|0),($390|0))|0);
- $536 = (getTempRet0() | 0);
- $537 = (_i64Add(($535|0),($536|0),($529|0),($530|0))|0);
- $538 = (getTempRet0() | 0);
- $539 = $527 & -2097152;
- $540 = (_i64Subtract(($421|0),($422|0),($539|0),($528|0))|0);
- $541 = (getTempRet0() | 0);
- $542 = (_i64Add(($369|0),($370|0),1048576,0)|0);
- $543 = (getTempRet0() | 0);
- $544 = (_bitshift64Ashr(($542|0),($543|0),21)|0);
- $545 = (getTempRet0() | 0);
- $546 = (_i64Add(($544|0),($545|0),($327|0),($328|0))|0);
- $547 = (getTempRet0() | 0);
- $548 = $542 & -2097152;
- $549 = (_i64Subtract(($369|0),($370|0),($548|0),($543|0))|0);
- $550 = (getTempRet0() | 0);
- $551 = (_i64Add(($499|0),($500|0),1048576,0)|0);
- $552 = (getTempRet0() | 0);
- $553 = (_bitshift64Ashr(($551|0),($552|0),21)|0);
- $554 = (getTempRet0() | 0);
- $555 = $551 & -2097152;
- $556 = (_i64Add(($508|0),($509|0),1048576,0)|0);
- $557 = (getTempRet0() | 0);
- $558 = (_bitshift64Ashr(($556|0),($557|0),21)|0);
- $559 = (getTempRet0() | 0);
- $560 = $556 & -2097152;
- $561 = (_i64Add(($515|0),($516|0),1048576,0)|0);
- $562 = (getTempRet0() | 0);
- $563 = (_bitshift64Ashr(($561|0),($562|0),21)|0);
- $564 = (getTempRet0() | 0);
- $565 = (_i64Add(($525|0),($526|0),($563|0),($564|0))|0);
- $566 = (getTempRet0() | 0);
- $567 = $561 & -2097152;
- $568 = (_i64Add(($522|0),($523|0),1048576,0)|0);
- $569 = (getTempRet0() | 0);
- $570 = (_bitshift64Ashr(($568|0),($569|0),21)|0);
- $571 = (getTempRet0() | 0);
- $572 = (_i64Add(($540|0),($541|0),($570|0),($571|0))|0);
- $573 = (getTempRet0() | 0);
- $574 = $568 & -2097152;
- $575 = (_i64Subtract(($522|0),($523|0),($574|0),($569|0))|0);
- $576 = (getTempRet0() | 0);
- $577 = (_i64Add(($537|0),($538|0),1048576,0)|0);
- $578 = (getTempRet0() | 0);
- $579 = (_bitshift64Ashr(($577|0),($578|0),21)|0);
- $580 = (getTempRet0() | 0);
- $581 = (_i64Add(($549|0),($550|0),($579|0),($580|0))|0);
- $582 = (getTempRet0() | 0);
- $583 = $577 & -2097152;
- $584 = (_i64Subtract(($537|0),($538|0),($583|0),($578|0))|0);
- $585 = (getTempRet0() | 0);
- $586 = (_i64Add(($546|0),($547|0),1048576,0)|0);
- $587 = (getTempRet0() | 0);
- $588 = (_bitshift64Ashr(($586|0),($587|0),21)|0);
- $589 = (getTempRet0() | 0);
- $590 = $586 & -2097152;
- $591 = (_i64Subtract(($546|0),($547|0),($590|0),($587|0))|0);
- $592 = (getTempRet0() | 0);
- $593 = (___muldi3(($588|0),($589|0),666643,0)|0);
- $594 = (getTempRet0() | 0);
- $595 = (_i64Add(($502|0),($503|0),($593|0),($594|0))|0);
- $596 = (getTempRet0() | 0);
- $597 = (___muldi3(($588|0),($589|0),470296,0)|0);
- $598 = (getTempRet0() | 0);
- $599 = (___muldi3(($588|0),($589|0),654183,0)|0);
- $600 = (getTempRet0() | 0);
- $601 = (___muldi3(($588|0),($589|0),-997805,-1)|0);
- $602 = (getTempRet0() | 0);
- $603 = (___muldi3(($588|0),($589|0),136657,0)|0);
- $604 = (getTempRet0() | 0);
- $605 = (___muldi3(($588|0),($589|0),-683901,-1)|0);
- $606 = (getTempRet0() | 0);
- $607 = (_bitshift64Ashr(($595|0),($596|0),21)|0);
- $608 = (getTempRet0() | 0);
- $609 = (_i64Add(($597|0),($598|0),($499|0),($500|0))|0);
- $610 = (getTempRet0() | 0);
- $611 = (_i64Subtract(($609|0),($610|0),($555|0),($552|0))|0);
- $612 = (getTempRet0() | 0);
- $613 = (_i64Add(($611|0),($612|0),($607|0),($608|0))|0);
- $614 = (getTempRet0() | 0);
- $615 = $595 & 2097151;
- $616 = (_bitshift64Ashr(($613|0),($614|0),21)|0);
- $617 = (getTempRet0() | 0);
- $618 = (_i64Add(($599|0),($600|0),($481|0),($482|0))|0);
- $619 = (getTempRet0() | 0);
- $620 = (_i64Subtract(($618|0),($619|0),($510|0),($505|0))|0);
- $621 = (getTempRet0() | 0);
- $622 = (_i64Add(($620|0),($621|0),($553|0),($554|0))|0);
- $623 = (getTempRet0() | 0);
- $624 = (_i64Add(($622|0),($623|0),($616|0),($617|0))|0);
- $625 = (getTempRet0() | 0);
- $626 = $613 & 2097151;
- $627 = (_bitshift64Ashr(($624|0),($625|0),21)|0);
- $628 = (getTempRet0() | 0);
- $629 = (_i64Add(($508|0),($509|0),($601|0),($602|0))|0);
- $630 = (getTempRet0() | 0);
- $631 = (_i64Subtract(($629|0),($630|0),($560|0),($557|0))|0);
- $632 = (getTempRet0() | 0);
- $633 = (_i64Add(($631|0),($632|0),($627|0),($628|0))|0);
- $634 = (getTempRet0() | 0);
- $635 = $624 & 2097151;
- $636 = (_bitshift64Ashr(($633|0),($634|0),21)|0);
- $637 = (getTempRet0() | 0);
- $638 = (_i64Add(($603|0),($604|0),($489|0),($490|0))|0);
- $639 = (getTempRet0() | 0);
- $640 = (_i64Subtract(($638|0),($639|0),($517|0),($512|0))|0);
- $641 = (getTempRet0() | 0);
- $642 = (_i64Add(($640|0),($641|0),($558|0),($559|0))|0);
- $643 = (getTempRet0() | 0);
- $644 = (_i64Add(($642|0),($643|0),($636|0),($637|0))|0);
- $645 = (getTempRet0() | 0);
- $646 = $633 & 2097151;
- $647 = (_bitshift64Ashr(($644|0),($645|0),21)|0);
- $648 = (getTempRet0() | 0);
- $649 = (_i64Add(($515|0),($516|0),($605|0),($606|0))|0);
- $650 = (getTempRet0() | 0);
- $651 = (_i64Subtract(($649|0),($650|0),($567|0),($562|0))|0);
- $652 = (getTempRet0() | 0);
- $653 = (_i64Add(($651|0),($652|0),($647|0),($648|0))|0);
- $654 = (getTempRet0() | 0);
- $655 = $644 & 2097151;
- $656 = (_bitshift64Ashr(($653|0),($654|0),21)|0);
- $657 = (getTempRet0() | 0);
- $658 = (_i64Add(($565|0),($566|0),($656|0),($657|0))|0);
- $659 = (getTempRet0() | 0);
- $660 = $653 & 2097151;
- $661 = (_bitshift64Ashr(($658|0),($659|0),21)|0);
- $662 = (getTempRet0() | 0);
- $663 = (_i64Add(($661|0),($662|0),($575|0),($576|0))|0);
- $664 = (getTempRet0() | 0);
- $665 = $658 & 2097151;
- $666 = (_bitshift64Ashr(($663|0),($664|0),21)|0);
- $667 = (getTempRet0() | 0);
- $668 = (_i64Add(($572|0),($573|0),($666|0),($667|0))|0);
- $669 = (getTempRet0() | 0);
- $670 = $663 & 2097151;
- $671 = (_bitshift64Ashr(($668|0),($669|0),21)|0);
- $672 = (getTempRet0() | 0);
- $673 = (_i64Add(($671|0),($672|0),($584|0),($585|0))|0);
- $674 = (getTempRet0() | 0);
- $675 = $668 & 2097151;
- $676 = (_bitshift64Ashr(($673|0),($674|0),21)|0);
- $677 = (getTempRet0() | 0);
- $678 = (_i64Add(($581|0),($582|0),($676|0),($677|0))|0);
- $679 = (getTempRet0() | 0);
- $680 = $673 & 2097151;
- $681 = (_bitshift64Ashr(($678|0),($679|0),21)|0);
- $682 = (getTempRet0() | 0);
- $683 = (_i64Add(($681|0),($682|0),($591|0),($592|0))|0);
- $684 = (getTempRet0() | 0);
- $685 = $678 & 2097151;
- $686 = (_bitshift64Ashr(($683|0),($684|0),21)|0);
- $687 = (getTempRet0() | 0);
- $688 = $683 & 2097151;
- $689 = (___muldi3(($686|0),($687|0),666643,0)|0);
- $690 = (getTempRet0() | 0);
- $691 = (_i64Add(($689|0),($690|0),($615|0),0)|0);
- $692 = (getTempRet0() | 0);
- $693 = (___muldi3(($686|0),($687|0),470296,0)|0);
- $694 = (getTempRet0() | 0);
- $695 = (_i64Add(($693|0),($694|0),($626|0),0)|0);
- $696 = (getTempRet0() | 0);
- $697 = (___muldi3(($686|0),($687|0),654183,0)|0);
- $698 = (getTempRet0() | 0);
- $699 = (_i64Add(($697|0),($698|0),($635|0),0)|0);
- $700 = (getTempRet0() | 0);
- $701 = (___muldi3(($686|0),($687|0),-997805,-1)|0);
- $702 = (getTempRet0() | 0);
- $703 = (_i64Add(($701|0),($702|0),($646|0),0)|0);
- $704 = (getTempRet0() | 0);
- $705 = (___muldi3(($686|0),($687|0),136657,0)|0);
- $706 = (getTempRet0() | 0);
- $707 = (_i64Add(($705|0),($706|0),($655|0),0)|0);
- $708 = (getTempRet0() | 0);
- $709 = (___muldi3(($686|0),($687|0),-683901,-1)|0);
- $710 = (getTempRet0() | 0);
- $711 = (_i64Add(($709|0),($710|0),($660|0),0)|0);
- $712 = (getTempRet0() | 0);
- $713 = (_bitshift64Ashr(($691|0),($692|0),21)|0);
- $714 = (getTempRet0() | 0);
- $715 = (_i64Add(($695|0),($696|0),($713|0),($714|0))|0);
- $716 = (getTempRet0() | 0);
- $717 = (_bitshift64Ashr(($715|0),($716|0),21)|0);
- $718 = (getTempRet0() | 0);
- $719 = (_i64Add(($699|0),($700|0),($717|0),($718|0))|0);
- $720 = (getTempRet0() | 0);
- $721 = $715 & 2097151;
- $722 = (_bitshift64Ashr(($719|0),($720|0),21)|0);
- $723 = (getTempRet0() | 0);
- $724 = (_i64Add(($703|0),($704|0),($722|0),($723|0))|0);
- $725 = (getTempRet0() | 0);
- $726 = $719 & 2097151;
- $727 = (_bitshift64Ashr(($724|0),($725|0),21)|0);
- $728 = (getTempRet0() | 0);
- $729 = (_i64Add(($707|0),($708|0),($727|0),($728|0))|0);
- $730 = (getTempRet0() | 0);
- $731 = $724 & 2097151;
- $732 = (_bitshift64Ashr(($729|0),($730|0),21)|0);
- $733 = (getTempRet0() | 0);
- $734 = (_i64Add(($711|0),($712|0),($732|0),($733|0))|0);
- $735 = (getTempRet0() | 0);
- $736 = $729 & 2097151;
- $737 = (_bitshift64Ashr(($734|0),($735|0),21)|0);
- $738 = (getTempRet0() | 0);
- $739 = (_i64Add(($737|0),($738|0),($665|0),0)|0);
- $740 = (getTempRet0() | 0);
- $741 = $734 & 2097151;
- $742 = (_bitshift64Ashr(($739|0),($740|0),21)|0);
- $743 = (getTempRet0() | 0);
- $744 = (_i64Add(($742|0),($743|0),($670|0),0)|0);
- $745 = (getTempRet0() | 0);
- $746 = $739 & 2097151;
- $747 = (_bitshift64Ashr(($744|0),($745|0),21)|0);
- $748 = (getTempRet0() | 0);
- $749 = (_i64Add(($747|0),($748|0),($675|0),0)|0);
- $750 = (getTempRet0() | 0);
- $751 = (_bitshift64Ashr(($749|0),($750|0),21)|0);
- $752 = (getTempRet0() | 0);
- $753 = (_i64Add(($751|0),($752|0),($680|0),0)|0);
- $754 = (getTempRet0() | 0);
- $755 = (_bitshift64Ashr(($753|0),($754|0),21)|0);
- $756 = (getTempRet0() | 0);
- $757 = (_i64Add(($755|0),($756|0),($685|0),0)|0);
- $758 = (getTempRet0() | 0);
- $759 = $753 & 2097151;
- $760 = (_bitshift64Ashr(($757|0),($758|0),21)|0);
- $761 = (getTempRet0() | 0);
- $762 = (_i64Add(($760|0),($761|0),($688|0),0)|0);
- $763 = (getTempRet0() | 0);
- $764 = $757 & 2097151;
- $765 = $691&255;
- HEAP8[$s>>0] = $765;
- $766 = (_bitshift64Lshr(($691|0),($692|0),8)|0);
- $767 = (getTempRet0() | 0);
- $768 = $766&255;
- $arrayidx462 = ((($s)) + 1|0);
- HEAP8[$arrayidx462>>0] = $768;
- $769 = (_bitshift64Lshr(($691|0),($692|0),16)|0);
- $770 = (getTempRet0() | 0);
- $771 = $769 & 31;
- $772 = (_bitshift64Shl(($721|0),0,5)|0);
- $773 = (getTempRet0() | 0);
- $774 = $772 | $771;
- $775 = $774&255;
- HEAP8[$add$ptr>>0] = $775;
- $776 = (_bitshift64Lshr(($715|0),($716|0),3)|0);
- $777 = (getTempRet0() | 0);
- $778 = $776&255;
- $arrayidx469 = ((($s)) + 3|0);
- HEAP8[$arrayidx469>>0] = $778;
- $779 = (_bitshift64Lshr(($715|0),($716|0),11)|0);
- $780 = (getTempRet0() | 0);
- $781 = $779&255;
- $arrayidx472 = ((($s)) + 4|0);
- HEAP8[$arrayidx472>>0] = $781;
- $782 = (_bitshift64Lshr(($721|0),0,19)|0);
- $783 = (getTempRet0() | 0);
- $784 = (_bitshift64Shl(($726|0),0,2)|0);
- $785 = (getTempRet0() | 0);
- $786 = $784 | $782;
- $785 | $783;
- $787 = $786&255;
- HEAP8[$add$ptr3>>0] = $787;
- $788 = (_bitshift64Lshr(($719|0),($720|0),6)|0);
- $789 = (getTempRet0() | 0);
- $790 = $788&255;
- $arrayidx480 = ((($s)) + 6|0);
- HEAP8[$arrayidx480>>0] = $790;
- $791 = (_bitshift64Lshr(($726|0),0,14)|0);
- $792 = (getTempRet0() | 0);
- $793 = (_bitshift64Shl(($731|0),0,7)|0);
- $794 = (getTempRet0() | 0);
- $795 = $793 | $791;
- $794 | $792;
- $796 = $795&255;
- HEAP8[$add$ptr7>>0] = $796;
- $797 = (_bitshift64Lshr(($724|0),($725|0),1)|0);
- $798 = (getTempRet0() | 0);
- $799 = $797&255;
- $arrayidx488 = ((($s)) + 8|0);
- HEAP8[$arrayidx488>>0] = $799;
- $800 = (_bitshift64Lshr(($724|0),($725|0),9)|0);
- $801 = (getTempRet0() | 0);
- $802 = $800&255;
- $arrayidx491 = ((($s)) + 9|0);
- HEAP8[$arrayidx491>>0] = $802;
- $803 = (_bitshift64Lshr(($731|0),0,17)|0);
- $804 = (getTempRet0() | 0);
- $805 = (_bitshift64Shl(($736|0),0,4)|0);
- $806 = (getTempRet0() | 0);
- $807 = $805 | $803;
- $806 | $804;
- $808 = $807&255;
- HEAP8[$add$ptr11>>0] = $808;
- $809 = (_bitshift64Lshr(($729|0),($730|0),4)|0);
- $810 = (getTempRet0() | 0);
- $811 = $809&255;
- $arrayidx499 = ((($s)) + 11|0);
- HEAP8[$arrayidx499>>0] = $811;
- $812 = (_bitshift64Lshr(($729|0),($730|0),12)|0);
- $813 = (getTempRet0() | 0);
- $814 = $812&255;
- $arrayidx502 = ((($s)) + 12|0);
- HEAP8[$arrayidx502>>0] = $814;
- $815 = (_bitshift64Lshr(($736|0),0,20)|0);
- $816 = (getTempRet0() | 0);
- $817 = (_bitshift64Shl(($741|0),0,1)|0);
- $818 = (getTempRet0() | 0);
- $819 = $817 | $815;
- $818 | $816;
- $820 = $819&255;
- HEAP8[$add$ptr15>>0] = $820;
- $821 = (_bitshift64Lshr(($734|0),($735|0),7)|0);
- $822 = (getTempRet0() | 0);
- $823 = $821&255;
- $arrayidx510 = ((($s)) + 14|0);
- HEAP8[$arrayidx510>>0] = $823;
- $824 = (_bitshift64Lshr(($741|0),0,15)|0);
- $825 = (getTempRet0() | 0);
- $826 = (_bitshift64Shl(($746|0),0,6)|0);
- $827 = (getTempRet0() | 0);
- $828 = $826 | $824;
- $827 | $825;
- $829 = $828&255;
- HEAP8[$add$ptr19>>0] = $829;
- $830 = (_bitshift64Lshr(($739|0),($740|0),2)|0);
- $831 = (getTempRet0() | 0);
- $832 = $830&255;
- $arrayidx518 = ((($s)) + 16|0);
- HEAP8[$arrayidx518>>0] = $832;
- $833 = (_bitshift64Lshr(($739|0),($740|0),10)|0);
- $834 = (getTempRet0() | 0);
- $835 = $833&255;
- $arrayidx521 = ((($s)) + 17|0);
- HEAP8[$arrayidx521>>0] = $835;
- $836 = (_bitshift64Lshr(($746|0),0,18)|0);
- $837 = (getTempRet0() | 0);
- $838 = (_bitshift64Shl(($744|0),($745|0),3)|0);
- $839 = (getTempRet0() | 0);
- $840 = $838 | $836;
- $839 | $837;
- $841 = $840&255;
- HEAP8[$add$ptr23>>0] = $841;
- $842 = (_bitshift64Lshr(($744|0),($745|0),5)|0);
- $843 = (getTempRet0() | 0);
- $844 = $842&255;
- $arrayidx529 = ((($s)) + 19|0);
- HEAP8[$arrayidx529>>0] = $844;
- $845 = (_bitshift64Lshr(($744|0),($745|0),13)|0);
- $846 = (getTempRet0() | 0);
- $847 = $845&255;
- $arrayidx532 = ((($s)) + 20|0);
- HEAP8[$arrayidx532>>0] = $847;
- $848 = $749&255;
- HEAP8[$add$ptr27>>0] = $848;
- $849 = (_bitshift64Lshr(($749|0),($750|0),8)|0);
- $850 = (getTempRet0() | 0);
- $851 = $849&255;
- $arrayidx538 = ((($s)) + 22|0);
- HEAP8[$arrayidx538>>0] = $851;
- $852 = (_bitshift64Lshr(($749|0),($750|0),16)|0);
- $853 = (getTempRet0() | 0);
- $854 = $852 & 31;
- $855 = (_bitshift64Shl(($759|0),0,5)|0);
- $856 = (getTempRet0() | 0);
- $857 = $855 | $854;
- $858 = $857&255;
- HEAP8[$add$ptr30>>0] = $858;
- $859 = (_bitshift64Lshr(($753|0),($754|0),3)|0);
- $860 = (getTempRet0() | 0);
- $861 = $859&255;
- $arrayidx546 = ((($s)) + 24|0);
- HEAP8[$arrayidx546>>0] = $861;
- $862 = (_bitshift64Lshr(($753|0),($754|0),11)|0);
- $863 = (getTempRet0() | 0);
- $864 = $862&255;
- $arrayidx549 = ((($s)) + 25|0);
- HEAP8[$arrayidx549>>0] = $864;
- $865 = (_bitshift64Lshr(($759|0),0,19)|0);
- $866 = (getTempRet0() | 0);
- $867 = (_bitshift64Shl(($764|0),0,2)|0);
- $868 = (getTempRet0() | 0);
- $869 = $867 | $865;
- $868 | $866;
- $870 = $869&255;
- HEAP8[$add$ptr34>>0] = $870;
- $871 = (_bitshift64Lshr(($757|0),($758|0),6)|0);
- $872 = (getTempRet0() | 0);
- $873 = $871&255;
- $arrayidx557 = ((($s)) + 27|0);
- HEAP8[$arrayidx557>>0] = $873;
- $874 = (_bitshift64Lshr(($764|0),0,14)|0);
- $875 = (getTempRet0() | 0);
- $876 = (_bitshift64Shl(($762|0),($763|0),7)|0);
- $877 = (getTempRet0() | 0);
- $878 = $876 | $874;
- $877 | $875;
- $879 = $878&255;
- HEAP8[$add$ptr38>>0] = $879;
- $880 = (_bitshift64Lshr(($762|0),($763|0),1)|0);
- $881 = (getTempRet0() | 0);
- $882 = $880&255;
- $arrayidx565 = ((($s)) + 29|0);
- HEAP8[$arrayidx565>>0] = $882;
- $883 = (_bitshift64Lshr(($762|0),($763|0),9)|0);
- $884 = (getTempRet0() | 0);
- $885 = $883&255;
- $arrayidx568 = ((($s)) + 30|0);
- HEAP8[$arrayidx568>>0] = $885;
- $886 = (_bitshift64Ashr(($762|0),($763|0),17)|0);
- $887 = (getTempRet0() | 0);
- $888 = $886&255;
- HEAP8[$add$ptr42>>0] = $888;
- return;
-}
-function _load_3_17($in) {
- $in = $in|0;
- var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0, $arrayidx3 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP8[$in>>0]|0;
- $1 = $0&255;
- $arrayidx1 = ((($in)) + 1|0);
- $2 = HEAP8[$arrayidx1>>0]|0;
- $3 = $2&255;
- $4 = (_bitshift64Shl(($3|0),0,8)|0);
- $5 = (getTempRet0() | 0);
- $6 = $4 | $1;
- $arrayidx3 = ((($in)) + 2|0);
- $7 = HEAP8[$arrayidx3>>0]|0;
- $8 = $7&255;
- $9 = (_bitshift64Shl(($8|0),0,16)|0);
- $10 = (getTempRet0() | 0);
- $11 = $6 | $9;
- $12 = $5 | $10;
- setTempRet0(($12) | 0);
- return ($11|0);
-}
-function _load_4_18($in) {
- $in = $in|0;
- var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $arrayidx1 = 0;
- var $arrayidx3 = 0, $arrayidx7 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP8[$in>>0]|0;
- $1 = $0&255;
- $arrayidx1 = ((($in)) + 1|0);
- $2 = HEAP8[$arrayidx1>>0]|0;
- $3 = $2&255;
- $4 = (_bitshift64Shl(($3|0),0,8)|0);
- $5 = (getTempRet0() | 0);
- $6 = $4 | $1;
- $arrayidx3 = ((($in)) + 2|0);
- $7 = HEAP8[$arrayidx3>>0]|0;
- $8 = $7&255;
- $9 = (_bitshift64Shl(($8|0),0,16)|0);
- $10 = (getTempRet0() | 0);
- $11 = $6 | $9;
- $12 = $5 | $10;
- $arrayidx7 = ((($in)) + 3|0);
- $13 = HEAP8[$arrayidx7>>0]|0;
- $14 = $13&255;
- $15 = (_bitshift64Shl(($14|0),0,24)|0);
- $16 = (getTempRet0() | 0);
- $17 = $11 | $15;
- $18 = $12 | $16;
- setTempRet0(($18) | 0);
- return ($17|0);
-}
-function _sc_muladd($s,$a,$b,$c) {
- $s = $s|0;
- $a = $a|0;
- $b = $b|0;
- $c = $c|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
- var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0;
- var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0;
- var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0;
- var $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0;
- var $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0, $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0;
- var $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0;
- var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0;
- var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0;
- var $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0;
- var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0;
- var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0;
- var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0;
- var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0;
- var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0;
- var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0, $1285 = 0;
- var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0;
- var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0, $132 = 0, $1320 = 0;
- var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0, $1339 = 0;
- var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0, $1357 = 0;
- var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0;
- var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0;
- var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0, $1410 = 0;
- var $1411 = 0, $1412 = 0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0;
- var $143 = 0, $1430 = 0, $1431 = 0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0;
- var $1448 = 0, $1449 = 0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0, $1465 = 0;
- var $1466 = 0, $1467 = 0, $1468 = 0, $1469 = 0, $147 = 0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0, $1481 = 0, $1482 = 0, $1483 = 0;
- var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0, $15 = 0, $150 = 0, $1500 = 0;
- var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $1518 = 0, $1519 = 0;
- var $152 = 0, $1520 = 0, $1521 = 0, $1522 = 0, $1523 = 0, $1524 = 0, $1525 = 0, $1526 = 0, $1527 = 0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0, $1532 = 0, $1533 = 0, $1534 = 0, $1535 = 0, $1536 = 0, $1537 = 0;
- var $1538 = 0, $1539 = 0, $154 = 0, $1540 = 0, $1541 = 0, $1542 = 0, $1543 = 0, $1544 = 0, $1545 = 0, $1546 = 0, $1547 = 0, $1548 = 0, $1549 = 0, $155 = 0, $1550 = 0, $1551 = 0, $1552 = 0, $1553 = 0, $1554 = 0, $1555 = 0;
- var $1556 = 0, $1557 = 0, $1558 = 0, $1559 = 0, $156 = 0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0, $1564 = 0, $1565 = 0, $1566 = 0, $1567 = 0, $1568 = 0, $1569 = 0, $157 = 0, $1570 = 0, $1571 = 0, $1572 = 0, $1573 = 0;
- var $1574 = 0, $1575 = 0, $1576 = 0, $1577 = 0, $1578 = 0, $1579 = 0, $158 = 0, $1580 = 0, $1581 = 0, $1582 = 0, $1583 = 0, $1584 = 0, $1585 = 0, $1586 = 0, $1587 = 0, $1588 = 0, $1589 = 0, $159 = 0, $1590 = 0, $1591 = 0;
- var $1592 = 0, $1593 = 0, $1594 = 0, $1595 = 0, $1596 = 0, $1597 = 0, $1598 = 0, $1599 = 0, $16 = 0, $160 = 0, $1600 = 0, $1601 = 0, $1602 = 0, $1603 = 0, $1604 = 0, $1605 = 0, $1606 = 0, $1607 = 0, $1608 = 0, $1609 = 0;
- var $161 = 0, $1610 = 0, $1611 = 0, $1612 = 0, $1613 = 0, $1614 = 0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0, $1619 = 0, $162 = 0, $1620 = 0, $1621 = 0, $1622 = 0, $1623 = 0, $1624 = 0, $1625 = 0, $1626 = 0, $1627 = 0;
- var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0;
- var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0;
- var $1664 = 0, $1665 = 0, $1666 = 0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0, $1670 = 0, $1671 = 0, $1672 = 0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0, $168 = 0, $1680 = 0, $1681 = 0;
- var $1682 = 0, $1683 = 0, $1684 = 0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0, $1689 = 0, $169 = 0, $1690 = 0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0, $1696 = 0, $1697 = 0, $1698 = 0, $1699 = 0, $17 = 0;
- var $170 = 0, $1700 = 0, $1701 = 0, $1702 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0;
- var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0;
- var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0;
- var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0;
- var $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, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0;
- var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0;
- var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0;
- var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0;
- var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0;
- var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0;
- var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0;
- var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0;
- var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0;
- var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0;
- var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0;
- var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0;
- var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0;
- var $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0;
- var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0;
- var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0;
- var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0;
- var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0;
- var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0;
- var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0;
- var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0;
- var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0;
- var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0;
- var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0;
- var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0;
- var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0;
- var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0;
- var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0;
- var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0;
- var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0;
- var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0;
- var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0;
- var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0;
- var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0;
- var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0;
- var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0;
- var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0;
- var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0;
- var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0;
- var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0;
- var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0;
- var $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0;
- var $997 = 0, $998 = 0, $999 = 0, $add$ptr = 0, $add$ptr103 = 0, $add$ptr107 = 0, $add$ptr11 = 0, $add$ptr111 = 0, $add$ptr115 = 0, $add$ptr118 = 0, $add$ptr122 = 0, $add$ptr126 = 0, $add$ptr15 = 0, $add$ptr19 = 0, $add$ptr23 = 0, $add$ptr27 = 0, $add$ptr3 = 0, $add$ptr30 = 0, $add$ptr34 = 0, $add$ptr38 = 0;
- var $add$ptr43 = 0, $add$ptr47 = 0, $add$ptr51 = 0, $add$ptr55 = 0, $add$ptr59 = 0, $add$ptr63 = 0, $add$ptr67 = 0, $add$ptr7 = 0, $add$ptr71 = 0, $add$ptr74 = 0, $add$ptr78 = 0, $add$ptr82 = 0, $add$ptr87 = 0, $add$ptr91 = 0, $add$ptr95 = 0, $add$ptr99 = 0, $arrayidx1001 = 0, $arrayidx1004 = 0, $arrayidx895 = 0, $arrayidx899 = 0;
- var $arrayidx902 = 0, $arrayidx905 = 0, $arrayidx910 = 0, $arrayidx913 = 0, $arrayidx918 = 0, $arrayidx921 = 0, $arrayidx924 = 0, $arrayidx929 = 0, $arrayidx932 = 0, $arrayidx935 = 0, $arrayidx940 = 0, $arrayidx943 = 0, $arrayidx948 = 0, $arrayidx951 = 0, $arrayidx954 = 0, $arrayidx959 = 0, $arrayidx962 = 0, $arrayidx965 = 0, $arrayidx968 = 0, $arrayidx971 = 0;
- var $arrayidx976 = 0, $arrayidx979 = 0, $arrayidx982 = 0, $arrayidx987 = 0, $arrayidx990 = 0, $arrayidx995 = 0, $arrayidx998 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = (_load_3_17($a)|0);
- $1 = (getTempRet0() | 0);
- $2 = $0 & 2097151;
- $add$ptr = ((($a)) + 2|0);
- $3 = (_load_4_18($add$ptr)|0);
- $4 = (getTempRet0() | 0);
- $5 = (_bitshift64Lshr(($3|0),($4|0),5)|0);
- $6 = (getTempRet0() | 0);
- $7 = $5 & 2097151;
- $add$ptr3 = ((($a)) + 5|0);
- $8 = (_load_3_17($add$ptr3)|0);
- $9 = (getTempRet0() | 0);
- $10 = (_bitshift64Lshr(($8|0),($9|0),2)|0);
- $11 = (getTempRet0() | 0);
- $12 = $10 & 2097151;
- $add$ptr7 = ((($a)) + 7|0);
- $13 = (_load_4_18($add$ptr7)|0);
- $14 = (getTempRet0() | 0);
- $15 = (_bitshift64Lshr(($13|0),($14|0),7)|0);
- $16 = (getTempRet0() | 0);
- $17 = $15 & 2097151;
- $add$ptr11 = ((($a)) + 10|0);
- $18 = (_load_4_18($add$ptr11)|0);
- $19 = (getTempRet0() | 0);
- $20 = (_bitshift64Lshr(($18|0),($19|0),4)|0);
- $21 = (getTempRet0() | 0);
- $22 = $20 & 2097151;
- $add$ptr15 = ((($a)) + 13|0);
- $23 = (_load_3_17($add$ptr15)|0);
- $24 = (getTempRet0() | 0);
- $25 = (_bitshift64Lshr(($23|0),($24|0),1)|0);
- $26 = (getTempRet0() | 0);
- $27 = $25 & 2097151;
- $add$ptr19 = ((($a)) + 15|0);
- $28 = (_load_4_18($add$ptr19)|0);
- $29 = (getTempRet0() | 0);
- $30 = (_bitshift64Lshr(($28|0),($29|0),6)|0);
- $31 = (getTempRet0() | 0);
- $32 = $30 & 2097151;
- $add$ptr23 = ((($a)) + 18|0);
- $33 = (_load_3_17($add$ptr23)|0);
- $34 = (getTempRet0() | 0);
- $35 = (_bitshift64Lshr(($33|0),($34|0),3)|0);
- $36 = (getTempRet0() | 0);
- $37 = $35 & 2097151;
- $add$ptr27 = ((($a)) + 21|0);
- $38 = (_load_3_17($add$ptr27)|0);
- $39 = (getTempRet0() | 0);
- $40 = $38 & 2097151;
- $add$ptr30 = ((($a)) + 23|0);
- $41 = (_load_4_18($add$ptr30)|0);
- $42 = (getTempRet0() | 0);
- $43 = (_bitshift64Lshr(($41|0),($42|0),5)|0);
- $44 = (getTempRet0() | 0);
- $45 = $43 & 2097151;
- $add$ptr34 = ((($a)) + 26|0);
- $46 = (_load_3_17($add$ptr34)|0);
- $47 = (getTempRet0() | 0);
- $48 = (_bitshift64Lshr(($46|0),($47|0),2)|0);
- $49 = (getTempRet0() | 0);
- $50 = $48 & 2097151;
- $add$ptr38 = ((($a)) + 28|0);
- $51 = (_load_4_18($add$ptr38)|0);
- $52 = (getTempRet0() | 0);
- $53 = (_bitshift64Lshr(($51|0),($52|0),7)|0);
- $54 = (getTempRet0() | 0);
- $55 = (_load_3_17($b)|0);
- $56 = (getTempRet0() | 0);
- $57 = $55 & 2097151;
- $add$ptr43 = ((($b)) + 2|0);
- $58 = (_load_4_18($add$ptr43)|0);
- $59 = (getTempRet0() | 0);
- $60 = (_bitshift64Lshr(($58|0),($59|0),5)|0);
- $61 = (getTempRet0() | 0);
- $62 = $60 & 2097151;
- $add$ptr47 = ((($b)) + 5|0);
- $63 = (_load_3_17($add$ptr47)|0);
- $64 = (getTempRet0() | 0);
- $65 = (_bitshift64Lshr(($63|0),($64|0),2)|0);
- $66 = (getTempRet0() | 0);
- $67 = $65 & 2097151;
- $add$ptr51 = ((($b)) + 7|0);
- $68 = (_load_4_18($add$ptr51)|0);
- $69 = (getTempRet0() | 0);
- $70 = (_bitshift64Lshr(($68|0),($69|0),7)|0);
- $71 = (getTempRet0() | 0);
- $72 = $70 & 2097151;
- $add$ptr55 = ((($b)) + 10|0);
- $73 = (_load_4_18($add$ptr55)|0);
- $74 = (getTempRet0() | 0);
- $75 = (_bitshift64Lshr(($73|0),($74|0),4)|0);
- $76 = (getTempRet0() | 0);
- $77 = $75 & 2097151;
- $add$ptr59 = ((($b)) + 13|0);
- $78 = (_load_3_17($add$ptr59)|0);
- $79 = (getTempRet0() | 0);
- $80 = (_bitshift64Lshr(($78|0),($79|0),1)|0);
- $81 = (getTempRet0() | 0);
- $82 = $80 & 2097151;
- $add$ptr63 = ((($b)) + 15|0);
- $83 = (_load_4_18($add$ptr63)|0);
- $84 = (getTempRet0() | 0);
- $85 = (_bitshift64Lshr(($83|0),($84|0),6)|0);
- $86 = (getTempRet0() | 0);
- $87 = $85 & 2097151;
- $add$ptr67 = ((($b)) + 18|0);
- $88 = (_load_3_17($add$ptr67)|0);
- $89 = (getTempRet0() | 0);
- $90 = (_bitshift64Lshr(($88|0),($89|0),3)|0);
- $91 = (getTempRet0() | 0);
- $92 = $90 & 2097151;
- $add$ptr71 = ((($b)) + 21|0);
- $93 = (_load_3_17($add$ptr71)|0);
- $94 = (getTempRet0() | 0);
- $95 = $93 & 2097151;
- $add$ptr74 = ((($b)) + 23|0);
- $96 = (_load_4_18($add$ptr74)|0);
- $97 = (getTempRet0() | 0);
- $98 = (_bitshift64Lshr(($96|0),($97|0),5)|0);
- $99 = (getTempRet0() | 0);
- $100 = $98 & 2097151;
- $add$ptr78 = ((($b)) + 26|0);
- $101 = (_load_3_17($add$ptr78)|0);
- $102 = (getTempRet0() | 0);
- $103 = (_bitshift64Lshr(($101|0),($102|0),2)|0);
- $104 = (getTempRet0() | 0);
- $105 = $103 & 2097151;
- $add$ptr82 = ((($b)) + 28|0);
- $106 = (_load_4_18($add$ptr82)|0);
- $107 = (getTempRet0() | 0);
- $108 = (_bitshift64Lshr(($106|0),($107|0),7)|0);
- $109 = (getTempRet0() | 0);
- $110 = (_load_3_17($c)|0);
- $111 = (getTempRet0() | 0);
- $112 = $110 & 2097151;
- $add$ptr87 = ((($c)) + 2|0);
- $113 = (_load_4_18($add$ptr87)|0);
- $114 = (getTempRet0() | 0);
- $115 = (_bitshift64Lshr(($113|0),($114|0),5)|0);
- $116 = (getTempRet0() | 0);
- $117 = $115 & 2097151;
- $add$ptr91 = ((($c)) + 5|0);
- $118 = (_load_3_17($add$ptr91)|0);
- $119 = (getTempRet0() | 0);
- $120 = (_bitshift64Lshr(($118|0),($119|0),2)|0);
- $121 = (getTempRet0() | 0);
- $122 = $120 & 2097151;
- $add$ptr95 = ((($c)) + 7|0);
- $123 = (_load_4_18($add$ptr95)|0);
- $124 = (getTempRet0() | 0);
- $125 = (_bitshift64Lshr(($123|0),($124|0),7)|0);
- $126 = (getTempRet0() | 0);
- $127 = $125 & 2097151;
- $add$ptr99 = ((($c)) + 10|0);
- $128 = (_load_4_18($add$ptr99)|0);
- $129 = (getTempRet0() | 0);
- $130 = (_bitshift64Lshr(($128|0),($129|0),4)|0);
- $131 = (getTempRet0() | 0);
- $132 = $130 & 2097151;
- $add$ptr103 = ((($c)) + 13|0);
- $133 = (_load_3_17($add$ptr103)|0);
- $134 = (getTempRet0() | 0);
- $135 = (_bitshift64Lshr(($133|0),($134|0),1)|0);
- $136 = (getTempRet0() | 0);
- $137 = $135 & 2097151;
- $add$ptr107 = ((($c)) + 15|0);
- $138 = (_load_4_18($add$ptr107)|0);
- $139 = (getTempRet0() | 0);
- $140 = (_bitshift64Lshr(($138|0),($139|0),6)|0);
- $141 = (getTempRet0() | 0);
- $142 = $140 & 2097151;
- $add$ptr111 = ((($c)) + 18|0);
- $143 = (_load_3_17($add$ptr111)|0);
- $144 = (getTempRet0() | 0);
- $145 = (_bitshift64Lshr(($143|0),($144|0),3)|0);
- $146 = (getTempRet0() | 0);
- $147 = $145 & 2097151;
- $add$ptr115 = ((($c)) + 21|0);
- $148 = (_load_3_17($add$ptr115)|0);
- $149 = (getTempRet0() | 0);
- $150 = $148 & 2097151;
- $add$ptr118 = ((($c)) + 23|0);
- $151 = (_load_4_18($add$ptr118)|0);
- $152 = (getTempRet0() | 0);
- $153 = (_bitshift64Lshr(($151|0),($152|0),5)|0);
- $154 = (getTempRet0() | 0);
- $155 = $153 & 2097151;
- $add$ptr122 = ((($c)) + 26|0);
- $156 = (_load_3_17($add$ptr122)|0);
- $157 = (getTempRet0() | 0);
- $158 = (_bitshift64Lshr(($156|0),($157|0),2)|0);
- $159 = (getTempRet0() | 0);
- $160 = $158 & 2097151;
- $add$ptr126 = ((($c)) + 28|0);
- $161 = (_load_4_18($add$ptr126)|0);
- $162 = (getTempRet0() | 0);
- $163 = (_bitshift64Lshr(($161|0),($162|0),7)|0);
- $164 = (getTempRet0() | 0);
- $165 = (___muldi3(($57|0),0,($2|0),0)|0);
- $166 = (getTempRet0() | 0);
- $167 = (_i64Add(($112|0),0,($165|0),($166|0))|0);
- $168 = (getTempRet0() | 0);
- $169 = (___muldi3(($62|0),0,($2|0),0)|0);
- $170 = (getTempRet0() | 0);
- $171 = (___muldi3(($57|0),0,($7|0),0)|0);
- $172 = (getTempRet0() | 0);
- $173 = (___muldi3(($67|0),0,($2|0),0)|0);
- $174 = (getTempRet0() | 0);
- $175 = (___muldi3(($62|0),0,($7|0),0)|0);
- $176 = (getTempRet0() | 0);
- $177 = (___muldi3(($57|0),0,($12|0),0)|0);
- $178 = (getTempRet0() | 0);
- $179 = (_i64Add(($175|0),($176|0),($177|0),($178|0))|0);
- $180 = (getTempRet0() | 0);
- $181 = (_i64Add(($179|0),($180|0),($173|0),($174|0))|0);
- $182 = (getTempRet0() | 0);
- $183 = (_i64Add(($181|0),($182|0),($122|0),0)|0);
- $184 = (getTempRet0() | 0);
- $185 = (___muldi3(($72|0),0,($2|0),0)|0);
- $186 = (getTempRet0() | 0);
- $187 = (___muldi3(($67|0),0,($7|0),0)|0);
- $188 = (getTempRet0() | 0);
- $189 = (___muldi3(($62|0),0,($12|0),0)|0);
- $190 = (getTempRet0() | 0);
- $191 = (___muldi3(($57|0),0,($17|0),0)|0);
- $192 = (getTempRet0() | 0);
- $193 = (___muldi3(($77|0),0,($2|0),0)|0);
- $194 = (getTempRet0() | 0);
- $195 = (___muldi3(($72|0),0,($7|0),0)|0);
- $196 = (getTempRet0() | 0);
- $197 = (___muldi3(($67|0),0,($12|0),0)|0);
- $198 = (getTempRet0() | 0);
- $199 = (___muldi3(($62|0),0,($17|0),0)|0);
- $200 = (getTempRet0() | 0);
- $201 = (___muldi3(($57|0),0,($22|0),0)|0);
- $202 = (getTempRet0() | 0);
- $203 = (_i64Add(($199|0),($200|0),($201|0),($202|0))|0);
- $204 = (getTempRet0() | 0);
- $205 = (_i64Add(($203|0),($204|0),($197|0),($198|0))|0);
- $206 = (getTempRet0() | 0);
- $207 = (_i64Add(($205|0),($206|0),($195|0),($196|0))|0);
- $208 = (getTempRet0() | 0);
- $209 = (_i64Add(($207|0),($208|0),($193|0),($194|0))|0);
- $210 = (getTempRet0() | 0);
- $211 = (_i64Add(($209|0),($210|0),($132|0),0)|0);
- $212 = (getTempRet0() | 0);
- $213 = (___muldi3(($82|0),0,($2|0),0)|0);
- $214 = (getTempRet0() | 0);
- $215 = (___muldi3(($77|0),0,($7|0),0)|0);
- $216 = (getTempRet0() | 0);
- $217 = (___muldi3(($72|0),0,($12|0),0)|0);
- $218 = (getTempRet0() | 0);
- $219 = (___muldi3(($67|0),0,($17|0),0)|0);
- $220 = (getTempRet0() | 0);
- $221 = (___muldi3(($62|0),0,($22|0),0)|0);
- $222 = (getTempRet0() | 0);
- $223 = (___muldi3(($57|0),0,($27|0),0)|0);
- $224 = (getTempRet0() | 0);
- $225 = (___muldi3(($87|0),0,($2|0),0)|0);
- $226 = (getTempRet0() | 0);
- $227 = (___muldi3(($82|0),0,($7|0),0)|0);
- $228 = (getTempRet0() | 0);
- $229 = (___muldi3(($77|0),0,($12|0),0)|0);
- $230 = (getTempRet0() | 0);
- $231 = (___muldi3(($72|0),0,($17|0),0)|0);
- $232 = (getTempRet0() | 0);
- $233 = (___muldi3(($67|0),0,($22|0),0)|0);
- $234 = (getTempRet0() | 0);
- $235 = (___muldi3(($62|0),0,($27|0),0)|0);
- $236 = (getTempRet0() | 0);
- $237 = (___muldi3(($57|0),0,($32|0),0)|0);
- $238 = (getTempRet0() | 0);
- $239 = (_i64Add(($235|0),($236|0),($237|0),($238|0))|0);
- $240 = (getTempRet0() | 0);
- $241 = (_i64Add(($239|0),($240|0),($233|0),($234|0))|0);
- $242 = (getTempRet0() | 0);
- $243 = (_i64Add(($241|0),($242|0),($231|0),($232|0))|0);
- $244 = (getTempRet0() | 0);
- $245 = (_i64Add(($243|0),($244|0),($229|0),($230|0))|0);
- $246 = (getTempRet0() | 0);
- $247 = (_i64Add(($245|0),($246|0),($227|0),($228|0))|0);
- $248 = (getTempRet0() | 0);
- $249 = (_i64Add(($247|0),($248|0),($225|0),($226|0))|0);
- $250 = (getTempRet0() | 0);
- $251 = (_i64Add(($249|0),($250|0),($142|0),0)|0);
- $252 = (getTempRet0() | 0);
- $253 = (___muldi3(($92|0),0,($2|0),0)|0);
- $254 = (getTempRet0() | 0);
- $255 = (___muldi3(($87|0),0,($7|0),0)|0);
- $256 = (getTempRet0() | 0);
- $257 = (___muldi3(($82|0),0,($12|0),0)|0);
- $258 = (getTempRet0() | 0);
- $259 = (___muldi3(($77|0),0,($17|0),0)|0);
- $260 = (getTempRet0() | 0);
- $261 = (___muldi3(($72|0),0,($22|0),0)|0);
- $262 = (getTempRet0() | 0);
- $263 = (___muldi3(($67|0),0,($27|0),0)|0);
- $264 = (getTempRet0() | 0);
- $265 = (___muldi3(($62|0),0,($32|0),0)|0);
- $266 = (getTempRet0() | 0);
- $267 = (___muldi3(($57|0),0,($37|0),0)|0);
- $268 = (getTempRet0() | 0);
- $269 = (___muldi3(($95|0),0,($2|0),0)|0);
- $270 = (getTempRet0() | 0);
- $271 = (___muldi3(($92|0),0,($7|0),0)|0);
- $272 = (getTempRet0() | 0);
- $273 = (___muldi3(($87|0),0,($12|0),0)|0);
- $274 = (getTempRet0() | 0);
- $275 = (___muldi3(($82|0),0,($17|0),0)|0);
- $276 = (getTempRet0() | 0);
- $277 = (___muldi3(($77|0),0,($22|0),0)|0);
- $278 = (getTempRet0() | 0);
- $279 = (___muldi3(($72|0),0,($27|0),0)|0);
- $280 = (getTempRet0() | 0);
- $281 = (___muldi3(($67|0),0,($32|0),0)|0);
- $282 = (getTempRet0() | 0);
- $283 = (___muldi3(($62|0),0,($37|0),0)|0);
- $284 = (getTempRet0() | 0);
- $285 = (___muldi3(($57|0),0,($40|0),0)|0);
- $286 = (getTempRet0() | 0);
- $287 = (_i64Add(($283|0),($284|0),($285|0),($286|0))|0);
- $288 = (getTempRet0() | 0);
- $289 = (_i64Add(($287|0),($288|0),($281|0),($282|0))|0);
- $290 = (getTempRet0() | 0);
- $291 = (_i64Add(($289|0),($290|0),($279|0),($280|0))|0);
- $292 = (getTempRet0() | 0);
- $293 = (_i64Add(($291|0),($292|0),($277|0),($278|0))|0);
- $294 = (getTempRet0() | 0);
- $295 = (_i64Add(($293|0),($294|0),($275|0),($276|0))|0);
- $296 = (getTempRet0() | 0);
- $297 = (_i64Add(($295|0),($296|0),($273|0),($274|0))|0);
- $298 = (getTempRet0() | 0);
- $299 = (_i64Add(($297|0),($298|0),($269|0),($270|0))|0);
- $300 = (getTempRet0() | 0);
- $301 = (_i64Add(($299|0),($300|0),($271|0),($272|0))|0);
- $302 = (getTempRet0() | 0);
- $303 = (_i64Add(($301|0),($302|0),($150|0),0)|0);
- $304 = (getTempRet0() | 0);
- $305 = (___muldi3(($100|0),0,($2|0),0)|0);
- $306 = (getTempRet0() | 0);
- $307 = (___muldi3(($95|0),0,($7|0),0)|0);
- $308 = (getTempRet0() | 0);
- $309 = (___muldi3(($92|0),0,($12|0),0)|0);
- $310 = (getTempRet0() | 0);
- $311 = (___muldi3(($87|0),0,($17|0),0)|0);
- $312 = (getTempRet0() | 0);
- $313 = (___muldi3(($82|0),0,($22|0),0)|0);
- $314 = (getTempRet0() | 0);
- $315 = (___muldi3(($77|0),0,($27|0),0)|0);
- $316 = (getTempRet0() | 0);
- $317 = (___muldi3(($72|0),0,($32|0),0)|0);
- $318 = (getTempRet0() | 0);
- $319 = (___muldi3(($67|0),0,($37|0),0)|0);
- $320 = (getTempRet0() | 0);
- $321 = (___muldi3(($62|0),0,($40|0),0)|0);
- $322 = (getTempRet0() | 0);
- $323 = (___muldi3(($57|0),0,($45|0),0)|0);
- $324 = (getTempRet0() | 0);
- $325 = (___muldi3(($105|0),0,($2|0),0)|0);
- $326 = (getTempRet0() | 0);
- $327 = (___muldi3(($100|0),0,($7|0),0)|0);
- $328 = (getTempRet0() | 0);
- $329 = (___muldi3(($95|0),0,($12|0),0)|0);
- $330 = (getTempRet0() | 0);
- $331 = (___muldi3(($92|0),0,($17|0),0)|0);
- $332 = (getTempRet0() | 0);
- $333 = (___muldi3(($87|0),0,($22|0),0)|0);
- $334 = (getTempRet0() | 0);
- $335 = (___muldi3(($82|0),0,($27|0),0)|0);
- $336 = (getTempRet0() | 0);
- $337 = (___muldi3(($77|0),0,($32|0),0)|0);
- $338 = (getTempRet0() | 0);
- $339 = (___muldi3(($72|0),0,($37|0),0)|0);
- $340 = (getTempRet0() | 0);
- $341 = (___muldi3(($67|0),0,($40|0),0)|0);
- $342 = (getTempRet0() | 0);
- $343 = (___muldi3(($62|0),0,($45|0),0)|0);
- $344 = (getTempRet0() | 0);
- $345 = (___muldi3(($57|0),0,($50|0),0)|0);
- $346 = (getTempRet0() | 0);
- $347 = (_i64Add(($343|0),($344|0),($345|0),($346|0))|0);
- $348 = (getTempRet0() | 0);
- $349 = (_i64Add(($347|0),($348|0),($341|0),($342|0))|0);
- $350 = (getTempRet0() | 0);
- $351 = (_i64Add(($349|0),($350|0),($339|0),($340|0))|0);
- $352 = (getTempRet0() | 0);
- $353 = (_i64Add(($351|0),($352|0),($337|0),($338|0))|0);
- $354 = (getTempRet0() | 0);
- $355 = (_i64Add(($353|0),($354|0),($335|0),($336|0))|0);
- $356 = (getTempRet0() | 0);
- $357 = (_i64Add(($355|0),($356|0),($333|0),($334|0))|0);
- $358 = (getTempRet0() | 0);
- $359 = (_i64Add(($357|0),($358|0),($329|0),($330|0))|0);
- $360 = (getTempRet0() | 0);
- $361 = (_i64Add(($359|0),($360|0),($331|0),($332|0))|0);
- $362 = (getTempRet0() | 0);
- $363 = (_i64Add(($361|0),($362|0),($327|0),($328|0))|0);
- $364 = (getTempRet0() | 0);
- $365 = (_i64Add(($363|0),($364|0),($325|0),($326|0))|0);
- $366 = (getTempRet0() | 0);
- $367 = (_i64Add(($365|0),($366|0),($160|0),0)|0);
- $368 = (getTempRet0() | 0);
- $369 = (___muldi3(($108|0),($109|0),($2|0),0)|0);
- $370 = (getTempRet0() | 0);
- $371 = (___muldi3(($105|0),0,($7|0),0)|0);
- $372 = (getTempRet0() | 0);
- $373 = (___muldi3(($100|0),0,($12|0),0)|0);
- $374 = (getTempRet0() | 0);
- $375 = (___muldi3(($95|0),0,($17|0),0)|0);
- $376 = (getTempRet0() | 0);
- $377 = (___muldi3(($92|0),0,($22|0),0)|0);
- $378 = (getTempRet0() | 0);
- $379 = (___muldi3(($87|0),0,($27|0),0)|0);
- $380 = (getTempRet0() | 0);
- $381 = (___muldi3(($82|0),0,($32|0),0)|0);
- $382 = (getTempRet0() | 0);
- $383 = (___muldi3(($77|0),0,($37|0),0)|0);
- $384 = (getTempRet0() | 0);
- $385 = (___muldi3(($72|0),0,($40|0),0)|0);
- $386 = (getTempRet0() | 0);
- $387 = (___muldi3(($67|0),0,($45|0),0)|0);
- $388 = (getTempRet0() | 0);
- $389 = (___muldi3(($62|0),0,($50|0),0)|0);
- $390 = (getTempRet0() | 0);
- $391 = (___muldi3(($57|0),0,($53|0),($54|0))|0);
- $392 = (getTempRet0() | 0);
- $393 = (___muldi3(($108|0),($109|0),($7|0),0)|0);
- $394 = (getTempRet0() | 0);
- $395 = (___muldi3(($105|0),0,($12|0),0)|0);
- $396 = (getTempRet0() | 0);
- $397 = (___muldi3(($100|0),0,($17|0),0)|0);
- $398 = (getTempRet0() | 0);
- $399 = (___muldi3(($95|0),0,($22|0),0)|0);
- $400 = (getTempRet0() | 0);
- $401 = (___muldi3(($92|0),0,($27|0),0)|0);
- $402 = (getTempRet0() | 0);
- $403 = (___muldi3(($87|0),0,($32|0),0)|0);
- $404 = (getTempRet0() | 0);
- $405 = (___muldi3(($82|0),0,($37|0),0)|0);
- $406 = (getTempRet0() | 0);
- $407 = (___muldi3(($77|0),0,($40|0),0)|0);
- $408 = (getTempRet0() | 0);
- $409 = (___muldi3(($72|0),0,($45|0),0)|0);
- $410 = (getTempRet0() | 0);
- $411 = (___muldi3(($67|0),0,($50|0),0)|0);
- $412 = (getTempRet0() | 0);
- $413 = (___muldi3(($62|0),0,($53|0),($54|0))|0);
- $414 = (getTempRet0() | 0);
- $415 = (_i64Add(($411|0),($412|0),($413|0),($414|0))|0);
- $416 = (getTempRet0() | 0);
- $417 = (_i64Add(($415|0),($416|0),($409|0),($410|0))|0);
- $418 = (getTempRet0() | 0);
- $419 = (_i64Add(($417|0),($418|0),($407|0),($408|0))|0);
- $420 = (getTempRet0() | 0);
- $421 = (_i64Add(($419|0),($420|0),($405|0),($406|0))|0);
- $422 = (getTempRet0() | 0);
- $423 = (_i64Add(($421|0),($422|0),($403|0),($404|0))|0);
- $424 = (getTempRet0() | 0);
- $425 = (_i64Add(($423|0),($424|0),($399|0),($400|0))|0);
- $426 = (getTempRet0() | 0);
- $427 = (_i64Add(($425|0),($426|0),($401|0),($402|0))|0);
- $428 = (getTempRet0() | 0);
- $429 = (_i64Add(($427|0),($428|0),($397|0),($398|0))|0);
- $430 = (getTempRet0() | 0);
- $431 = (_i64Add(($429|0),($430|0),($395|0),($396|0))|0);
- $432 = (getTempRet0() | 0);
- $433 = (_i64Add(($431|0),($432|0),($393|0),($394|0))|0);
- $434 = (getTempRet0() | 0);
- $435 = (___muldi3(($108|0),($109|0),($12|0),0)|0);
- $436 = (getTempRet0() | 0);
- $437 = (___muldi3(($105|0),0,($17|0),0)|0);
- $438 = (getTempRet0() | 0);
- $439 = (___muldi3(($100|0),0,($22|0),0)|0);
- $440 = (getTempRet0() | 0);
- $441 = (___muldi3(($95|0),0,($27|0),0)|0);
- $442 = (getTempRet0() | 0);
- $443 = (___muldi3(($92|0),0,($32|0),0)|0);
- $444 = (getTempRet0() | 0);
- $445 = (___muldi3(($87|0),0,($37|0),0)|0);
- $446 = (getTempRet0() | 0);
- $447 = (___muldi3(($82|0),0,($40|0),0)|0);
- $448 = (getTempRet0() | 0);
- $449 = (___muldi3(($77|0),0,($45|0),0)|0);
- $450 = (getTempRet0() | 0);
- $451 = (___muldi3(($72|0),0,($50|0),0)|0);
- $452 = (getTempRet0() | 0);
- $453 = (___muldi3(($67|0),0,($53|0),($54|0))|0);
- $454 = (getTempRet0() | 0);
- $455 = (___muldi3(($108|0),($109|0),($17|0),0)|0);
- $456 = (getTempRet0() | 0);
- $457 = (___muldi3(($105|0),0,($22|0),0)|0);
- $458 = (getTempRet0() | 0);
- $459 = (___muldi3(($100|0),0,($27|0),0)|0);
- $460 = (getTempRet0() | 0);
- $461 = (___muldi3(($95|0),0,($32|0),0)|0);
- $462 = (getTempRet0() | 0);
- $463 = (___muldi3(($92|0),0,($37|0),0)|0);
- $464 = (getTempRet0() | 0);
- $465 = (___muldi3(($87|0),0,($40|0),0)|0);
- $466 = (getTempRet0() | 0);
- $467 = (___muldi3(($82|0),0,($45|0),0)|0);
- $468 = (getTempRet0() | 0);
- $469 = (___muldi3(($77|0),0,($50|0),0)|0);
- $470 = (getTempRet0() | 0);
- $471 = (___muldi3(($72|0),0,($53|0),($54|0))|0);
- $472 = (getTempRet0() | 0);
- $473 = (_i64Add(($469|0),($470|0),($471|0),($472|0))|0);
- $474 = (getTempRet0() | 0);
- $475 = (_i64Add(($473|0),($474|0),($467|0),($468|0))|0);
- $476 = (getTempRet0() | 0);
- $477 = (_i64Add(($475|0),($476|0),($465|0),($466|0))|0);
- $478 = (getTempRet0() | 0);
- $479 = (_i64Add(($477|0),($478|0),($461|0),($462|0))|0);
- $480 = (getTempRet0() | 0);
- $481 = (_i64Add(($479|0),($480|0),($463|0),($464|0))|0);
- $482 = (getTempRet0() | 0);
- $483 = (_i64Add(($481|0),($482|0),($459|0),($460|0))|0);
- $484 = (getTempRet0() | 0);
- $485 = (_i64Add(($483|0),($484|0),($457|0),($458|0))|0);
- $486 = (getTempRet0() | 0);
- $487 = (_i64Add(($485|0),($486|0),($455|0),($456|0))|0);
- $488 = (getTempRet0() | 0);
- $489 = (___muldi3(($108|0),($109|0),($22|0),0)|0);
- $490 = (getTempRet0() | 0);
- $491 = (___muldi3(($105|0),0,($27|0),0)|0);
- $492 = (getTempRet0() | 0);
- $493 = (___muldi3(($100|0),0,($32|0),0)|0);
- $494 = (getTempRet0() | 0);
- $495 = (___muldi3(($95|0),0,($37|0),0)|0);
- $496 = (getTempRet0() | 0);
- $497 = (___muldi3(($92|0),0,($40|0),0)|0);
- $498 = (getTempRet0() | 0);
- $499 = (___muldi3(($87|0),0,($45|0),0)|0);
- $500 = (getTempRet0() | 0);
- $501 = (___muldi3(($82|0),0,($50|0),0)|0);
- $502 = (getTempRet0() | 0);
- $503 = (___muldi3(($77|0),0,($53|0),($54|0))|0);
- $504 = (getTempRet0() | 0);
- $505 = (___muldi3(($108|0),($109|0),($27|0),0)|0);
- $506 = (getTempRet0() | 0);
- $507 = (___muldi3(($105|0),0,($32|0),0)|0);
- $508 = (getTempRet0() | 0);
- $509 = (___muldi3(($100|0),0,($37|0),0)|0);
- $510 = (getTempRet0() | 0);
- $511 = (___muldi3(($95|0),0,($40|0),0)|0);
- $512 = (getTempRet0() | 0);
- $513 = (___muldi3(($92|0),0,($45|0),0)|0);
- $514 = (getTempRet0() | 0);
- $515 = (___muldi3(($87|0),0,($50|0),0)|0);
- $516 = (getTempRet0() | 0);
- $517 = (___muldi3(($82|0),0,($53|0),($54|0))|0);
- $518 = (getTempRet0() | 0);
- $519 = (_i64Add(($515|0),($516|0),($517|0),($518|0))|0);
- $520 = (getTempRet0() | 0);
- $521 = (_i64Add(($519|0),($520|0),($511|0),($512|0))|0);
- $522 = (getTempRet0() | 0);
- $523 = (_i64Add(($521|0),($522|0),($513|0),($514|0))|0);
- $524 = (getTempRet0() | 0);
- $525 = (_i64Add(($523|0),($524|0),($509|0),($510|0))|0);
- $526 = (getTempRet0() | 0);
- $527 = (_i64Add(($525|0),($526|0),($507|0),($508|0))|0);
- $528 = (getTempRet0() | 0);
- $529 = (_i64Add(($527|0),($528|0),($505|0),($506|0))|0);
- $530 = (getTempRet0() | 0);
- $531 = (___muldi3(($108|0),($109|0),($32|0),0)|0);
- $532 = (getTempRet0() | 0);
- $533 = (___muldi3(($105|0),0,($37|0),0)|0);
- $534 = (getTempRet0() | 0);
- $535 = (___muldi3(($100|0),0,($40|0),0)|0);
- $536 = (getTempRet0() | 0);
- $537 = (___muldi3(($95|0),0,($45|0),0)|0);
- $538 = (getTempRet0() | 0);
- $539 = (___muldi3(($92|0),0,($50|0),0)|0);
- $540 = (getTempRet0() | 0);
- $541 = (___muldi3(($87|0),0,($53|0),($54|0))|0);
- $542 = (getTempRet0() | 0);
- $543 = (___muldi3(($108|0),($109|0),($37|0),0)|0);
- $544 = (getTempRet0() | 0);
- $545 = (___muldi3(($105|0),0,($40|0),0)|0);
- $546 = (getTempRet0() | 0);
- $547 = (___muldi3(($100|0),0,($45|0),0)|0);
- $548 = (getTempRet0() | 0);
- $549 = (___muldi3(($95|0),0,($50|0),0)|0);
- $550 = (getTempRet0() | 0);
- $551 = (___muldi3(($92|0),0,($53|0),($54|0))|0);
- $552 = (getTempRet0() | 0);
- $553 = (_i64Add(($551|0),($552|0),($549|0),($550|0))|0);
- $554 = (getTempRet0() | 0);
- $555 = (_i64Add(($553|0),($554|0),($547|0),($548|0))|0);
- $556 = (getTempRet0() | 0);
- $557 = (_i64Add(($555|0),($556|0),($545|0),($546|0))|0);
- $558 = (getTempRet0() | 0);
- $559 = (_i64Add(($557|0),($558|0),($543|0),($544|0))|0);
- $560 = (getTempRet0() | 0);
- $561 = (___muldi3(($108|0),($109|0),($40|0),0)|0);
- $562 = (getTempRet0() | 0);
- $563 = (___muldi3(($105|0),0,($45|0),0)|0);
- $564 = (getTempRet0() | 0);
- $565 = (___muldi3(($100|0),0,($50|0),0)|0);
- $566 = (getTempRet0() | 0);
- $567 = (___muldi3(($95|0),0,($53|0),($54|0))|0);
- $568 = (getTempRet0() | 0);
- $569 = (___muldi3(($108|0),($109|0),($45|0),0)|0);
- $570 = (getTempRet0() | 0);
- $571 = (___muldi3(($105|0),0,($50|0),0)|0);
- $572 = (getTempRet0() | 0);
- $573 = (___muldi3(($100|0),0,($53|0),($54|0))|0);
- $574 = (getTempRet0() | 0);
- $575 = (_i64Add(($571|0),($572|0),($573|0),($574|0))|0);
- $576 = (getTempRet0() | 0);
- $577 = (_i64Add(($575|0),($576|0),($569|0),($570|0))|0);
- $578 = (getTempRet0() | 0);
- $579 = (___muldi3(($108|0),($109|0),($50|0),0)|0);
- $580 = (getTempRet0() | 0);
- $581 = (___muldi3(($105|0),0,($53|0),($54|0))|0);
- $582 = (getTempRet0() | 0);
- $583 = (_i64Add(($579|0),($580|0),($581|0),($582|0))|0);
- $584 = (getTempRet0() | 0);
- $585 = (___muldi3(($108|0),($109|0),($53|0),($54|0))|0);
- $586 = (getTempRet0() | 0);
- $587 = (_i64Add(($167|0),($168|0),1048576,0)|0);
- $588 = (getTempRet0() | 0);
- $589 = (_bitshift64Lshr(($587|0),($588|0),21)|0);
- $590 = (getTempRet0() | 0);
- $591 = (_i64Add(($169|0),($170|0),($171|0),($172|0))|0);
- $592 = (getTempRet0() | 0);
- $593 = (_i64Add(($591|0),($592|0),($117|0),0)|0);
- $594 = (getTempRet0() | 0);
- $595 = (_i64Add(($593|0),($594|0),($589|0),($590|0))|0);
- $596 = (getTempRet0() | 0);
- $597 = $587 & -2097152;
- $598 = $588 & 4095;
- $599 = (_i64Subtract(($167|0),($168|0),($597|0),($598|0))|0);
- $600 = (getTempRet0() | 0);
- $601 = (_i64Add(($183|0),($184|0),1048576,0)|0);
- $602 = (getTempRet0() | 0);
- $603 = (_bitshift64Lshr(($601|0),($602|0),21)|0);
- $604 = (getTempRet0() | 0);
- $605 = (_i64Add(($189|0),($190|0),($191|0),($192|0))|0);
- $606 = (getTempRet0() | 0);
- $607 = (_i64Add(($605|0),($606|0),($187|0),($188|0))|0);
- $608 = (getTempRet0() | 0);
- $609 = (_i64Add(($607|0),($608|0),($185|0),($186|0))|0);
- $610 = (getTempRet0() | 0);
- $611 = (_i64Add(($609|0),($610|0),($127|0),0)|0);
- $612 = (getTempRet0() | 0);
- $613 = (_i64Add(($611|0),($612|0),($603|0),($604|0))|0);
- $614 = (getTempRet0() | 0);
- $615 = $601 & -2097152;
- $616 = (_i64Add(($211|0),($212|0),1048576,0)|0);
- $617 = (getTempRet0() | 0);
- $618 = (_bitshift64Ashr(($616|0),($617|0),21)|0);
- $619 = (getTempRet0() | 0);
- $620 = (_i64Add(($221|0),($222|0),($223|0),($224|0))|0);
- $621 = (getTempRet0() | 0);
- $622 = (_i64Add(($620|0),($621|0),($219|0),($220|0))|0);
- $623 = (getTempRet0() | 0);
- $624 = (_i64Add(($622|0),($623|0),($217|0),($218|0))|0);
- $625 = (getTempRet0() | 0);
- $626 = (_i64Add(($624|0),($625|0),($215|0),($216|0))|0);
- $627 = (getTempRet0() | 0);
- $628 = (_i64Add(($626|0),($627|0),($213|0),($214|0))|0);
- $629 = (getTempRet0() | 0);
- $630 = (_i64Add(($628|0),($629|0),($137|0),0)|0);
- $631 = (getTempRet0() | 0);
- $632 = (_i64Add(($630|0),($631|0),($618|0),($619|0))|0);
- $633 = (getTempRet0() | 0);
- $634 = $616 & -2097152;
- $635 = (_i64Add(($251|0),($252|0),1048576,0)|0);
- $636 = (getTempRet0() | 0);
- $637 = (_bitshift64Ashr(($635|0),($636|0),21)|0);
- $638 = (getTempRet0() | 0);
- $639 = (_i64Add(($265|0),($266|0),($267|0),($268|0))|0);
- $640 = (getTempRet0() | 0);
- $641 = (_i64Add(($639|0),($640|0),($263|0),($264|0))|0);
- $642 = (getTempRet0() | 0);
- $643 = (_i64Add(($641|0),($642|0),($261|0),($262|0))|0);
- $644 = (getTempRet0() | 0);
- $645 = (_i64Add(($643|0),($644|0),($259|0),($260|0))|0);
- $646 = (getTempRet0() | 0);
- $647 = (_i64Add(($645|0),($646|0),($257|0),($258|0))|0);
- $648 = (getTempRet0() | 0);
- $649 = (_i64Add(($647|0),($648|0),($255|0),($256|0))|0);
- $650 = (getTempRet0() | 0);
- $651 = (_i64Add(($649|0),($650|0),($253|0),($254|0))|0);
- $652 = (getTempRet0() | 0);
- $653 = (_i64Add(($651|0),($652|0),($147|0),0)|0);
- $654 = (getTempRet0() | 0);
- $655 = (_i64Add(($653|0),($654|0),($637|0),($638|0))|0);
- $656 = (getTempRet0() | 0);
- $657 = $635 & -2097152;
- $658 = (_i64Add(($303|0),($304|0),1048576,0)|0);
- $659 = (getTempRet0() | 0);
- $660 = (_bitshift64Ashr(($658|0),($659|0),21)|0);
- $661 = (getTempRet0() | 0);
- $662 = (_i64Add(($321|0),($322|0),($323|0),($324|0))|0);
- $663 = (getTempRet0() | 0);
- $664 = (_i64Add(($662|0),($663|0),($319|0),($320|0))|0);
- $665 = (getTempRet0() | 0);
- $666 = (_i64Add(($664|0),($665|0),($317|0),($318|0))|0);
- $667 = (getTempRet0() | 0);
- $668 = (_i64Add(($666|0),($667|0),($315|0),($316|0))|0);
- $669 = (getTempRet0() | 0);
- $670 = (_i64Add(($668|0),($669|0),($313|0),($314|0))|0);
- $671 = (getTempRet0() | 0);
- $672 = (_i64Add(($670|0),($671|0),($311|0),($312|0))|0);
- $673 = (getTempRet0() | 0);
- $674 = (_i64Add(($672|0),($673|0),($307|0),($308|0))|0);
- $675 = (getTempRet0() | 0);
- $676 = (_i64Add(($674|0),($675|0),($309|0),($310|0))|0);
- $677 = (getTempRet0() | 0);
- $678 = (_i64Add(($676|0),($677|0),($305|0),($306|0))|0);
- $679 = (getTempRet0() | 0);
- $680 = (_i64Add(($678|0),($679|0),($155|0),0)|0);
- $681 = (getTempRet0() | 0);
- $682 = (_i64Add(($680|0),($681|0),($660|0),($661|0))|0);
- $683 = (getTempRet0() | 0);
- $684 = $658 & -2097152;
- $685 = (_i64Add(($367|0),($368|0),1048576,0)|0);
- $686 = (getTempRet0() | 0);
- $687 = (_bitshift64Ashr(($685|0),($686|0),21)|0);
- $688 = (getTempRet0() | 0);
- $689 = (_i64Add(($389|0),($390|0),($391|0),($392|0))|0);
- $690 = (getTempRet0() | 0);
- $691 = (_i64Add(($689|0),($690|0),($387|0),($388|0))|0);
- $692 = (getTempRet0() | 0);
- $693 = (_i64Add(($691|0),($692|0),($385|0),($386|0))|0);
- $694 = (getTempRet0() | 0);
- $695 = (_i64Add(($693|0),($694|0),($383|0),($384|0))|0);
- $696 = (getTempRet0() | 0);
- $697 = (_i64Add(($695|0),($696|0),($381|0),($382|0))|0);
- $698 = (getTempRet0() | 0);
- $699 = (_i64Add(($697|0),($698|0),($379|0),($380|0))|0);
- $700 = (getTempRet0() | 0);
- $701 = (_i64Add(($699|0),($700|0),($375|0),($376|0))|0);
- $702 = (getTempRet0() | 0);
- $703 = (_i64Add(($701|0),($702|0),($377|0),($378|0))|0);
- $704 = (getTempRet0() | 0);
- $705 = (_i64Add(($703|0),($704|0),($373|0),($374|0))|0);
- $706 = (getTempRet0() | 0);
- $707 = (_i64Add(($705|0),($706|0),($369|0),($370|0))|0);
- $708 = (getTempRet0() | 0);
- $709 = (_i64Add(($707|0),($708|0),($371|0),($372|0))|0);
- $710 = (getTempRet0() | 0);
- $711 = (_i64Add(($709|0),($710|0),($163|0),($164|0))|0);
- $712 = (getTempRet0() | 0);
- $713 = (_i64Add(($711|0),($712|0),($687|0),($688|0))|0);
- $714 = (getTempRet0() | 0);
- $715 = $685 & -2097152;
- $716 = (_i64Add(($433|0),($434|0),1048576,0)|0);
- $717 = (getTempRet0() | 0);
- $718 = (_bitshift64Ashr(($716|0),($717|0),21)|0);
- $719 = (getTempRet0() | 0);
- $720 = (_i64Add(($451|0),($452|0),($453|0),($454|0))|0);
- $721 = (getTempRet0() | 0);
- $722 = (_i64Add(($720|0),($721|0),($449|0),($450|0))|0);
- $723 = (getTempRet0() | 0);
- $724 = (_i64Add(($722|0),($723|0),($447|0),($448|0))|0);
- $725 = (getTempRet0() | 0);
- $726 = (_i64Add(($724|0),($725|0),($445|0),($446|0))|0);
- $727 = (getTempRet0() | 0);
- $728 = (_i64Add(($726|0),($727|0),($441|0),($442|0))|0);
- $729 = (getTempRet0() | 0);
- $730 = (_i64Add(($728|0),($729|0),($443|0),($444|0))|0);
- $731 = (getTempRet0() | 0);
- $732 = (_i64Add(($730|0),($731|0),($439|0),($440|0))|0);
- $733 = (getTempRet0() | 0);
- $734 = (_i64Add(($732|0),($733|0),($437|0),($438|0))|0);
- $735 = (getTempRet0() | 0);
- $736 = (_i64Add(($734|0),($735|0),($435|0),($436|0))|0);
- $737 = (getTempRet0() | 0);
- $738 = (_i64Add(($736|0),($737|0),($718|0),($719|0))|0);
- $739 = (getTempRet0() | 0);
- $740 = $716 & -2097152;
- $741 = (_i64Add(($487|0),($488|0),1048576,0)|0);
- $742 = (getTempRet0() | 0);
- $743 = (_bitshift64Ashr(($741|0),($742|0),21)|0);
- $744 = (getTempRet0() | 0);
- $745 = (_i64Add(($501|0),($502|0),($503|0),($504|0))|0);
- $746 = (getTempRet0() | 0);
- $747 = (_i64Add(($745|0),($746|0),($499|0),($500|0))|0);
- $748 = (getTempRet0() | 0);
- $749 = (_i64Add(($747|0),($748|0),($495|0),($496|0))|0);
- $750 = (getTempRet0() | 0);
- $751 = (_i64Add(($749|0),($750|0),($497|0),($498|0))|0);
- $752 = (getTempRet0() | 0);
- $753 = (_i64Add(($751|0),($752|0),($493|0),($494|0))|0);
- $754 = (getTempRet0() | 0);
- $755 = (_i64Add(($753|0),($754|0),($491|0),($492|0))|0);
- $756 = (getTempRet0() | 0);
- $757 = (_i64Add(($755|0),($756|0),($489|0),($490|0))|0);
- $758 = (getTempRet0() | 0);
- $759 = (_i64Add(($757|0),($758|0),($743|0),($744|0))|0);
- $760 = (getTempRet0() | 0);
- $761 = $741 & -2097152;
- $762 = (_i64Add(($529|0),($530|0),1048576,0)|0);
- $763 = (getTempRet0() | 0);
- $764 = (_bitshift64Ashr(($762|0),($763|0),21)|0);
- $765 = (getTempRet0() | 0);
- $766 = (_i64Add(($537|0),($538|0),($541|0),($542|0))|0);
- $767 = (getTempRet0() | 0);
- $768 = (_i64Add(($766|0),($767|0),($539|0),($540|0))|0);
- $769 = (getTempRet0() | 0);
- $770 = (_i64Add(($768|0),($769|0),($535|0),($536|0))|0);
- $771 = (getTempRet0() | 0);
- $772 = (_i64Add(($770|0),($771|0),($533|0),($534|0))|0);
- $773 = (getTempRet0() | 0);
- $774 = (_i64Add(($772|0),($773|0),($531|0),($532|0))|0);
- $775 = (getTempRet0() | 0);
- $776 = (_i64Add(($774|0),($775|0),($764|0),($765|0))|0);
- $777 = (getTempRet0() | 0);
- $778 = $762 & -2097152;
- $779 = (_i64Add(($559|0),($560|0),1048576,0)|0);
- $780 = (getTempRet0() | 0);
- $781 = (_bitshift64Ashr(($779|0),($780|0),21)|0);
- $782 = (getTempRet0() | 0);
- $783 = (_i64Add(($565|0),($566|0),($567|0),($568|0))|0);
- $784 = (getTempRet0() | 0);
- $785 = (_i64Add(($783|0),($784|0),($563|0),($564|0))|0);
- $786 = (getTempRet0() | 0);
- $787 = (_i64Add(($785|0),($786|0),($561|0),($562|0))|0);
- $788 = (getTempRet0() | 0);
- $789 = (_i64Add(($787|0),($788|0),($781|0),($782|0))|0);
- $790 = (getTempRet0() | 0);
- $791 = $779 & -2097152;
- $792 = (_i64Subtract(($559|0),($560|0),($791|0),($780|0))|0);
- $793 = (getTempRet0() | 0);
- $794 = (_i64Add(($577|0),($578|0),1048576,0)|0);
- $795 = (getTempRet0() | 0);
- $796 = (_bitshift64Lshr(($794|0),($795|0),21)|0);
- $797 = (getTempRet0() | 0);
- $798 = (_i64Add(($583|0),($584|0),($796|0),($797|0))|0);
- $799 = (getTempRet0() | 0);
- $800 = $794 & -2097152;
- $801 = $795 & 2147483647;
- $802 = (_i64Subtract(($577|0),($578|0),($800|0),($801|0))|0);
- $803 = (getTempRet0() | 0);
- $804 = (_i64Add(($585|0),($586|0),1048576,0)|0);
- $805 = (getTempRet0() | 0);
- $806 = (_bitshift64Lshr(($804|0),($805|0),21)|0);
- $807 = (getTempRet0() | 0);
- $808 = $804 & -2097152;
- $809 = $805 & 2147483647;
- $810 = (_i64Subtract(($585|0),($586|0),($808|0),($809|0))|0);
- $811 = (getTempRet0() | 0);
- $812 = (_i64Add(($595|0),($596|0),1048576,0)|0);
- $813 = (getTempRet0() | 0);
- $814 = (_bitshift64Lshr(($812|0),($813|0),21)|0);
- $815 = (getTempRet0() | 0);
- $816 = $812 & -2097152;
- $817 = (_i64Subtract(($595|0),($596|0),($816|0),($813|0))|0);
- $818 = (getTempRet0() | 0);
- $819 = (_i64Add(($613|0),($614|0),1048576,0)|0);
- $820 = (getTempRet0() | 0);
- $821 = (_bitshift64Ashr(($819|0),($820|0),21)|0);
- $822 = (getTempRet0() | 0);
- $823 = $819 & -2097152;
- $824 = (_i64Subtract(($613|0),($614|0),($823|0),($820|0))|0);
- $825 = (getTempRet0() | 0);
- $826 = (_i64Add(($632|0),($633|0),1048576,0)|0);
- $827 = (getTempRet0() | 0);
- $828 = (_bitshift64Ashr(($826|0),($827|0),21)|0);
- $829 = (getTempRet0() | 0);
- $830 = $826 & -2097152;
- $831 = (_i64Subtract(($632|0),($633|0),($830|0),($827|0))|0);
- $832 = (getTempRet0() | 0);
- $833 = (_i64Add(($655|0),($656|0),1048576,0)|0);
- $834 = (getTempRet0() | 0);
- $835 = (_bitshift64Ashr(($833|0),($834|0),21)|0);
- $836 = (getTempRet0() | 0);
- $837 = $833 & -2097152;
- $838 = (_i64Add(($682|0),($683|0),1048576,0)|0);
- $839 = (getTempRet0() | 0);
- $840 = (_bitshift64Ashr(($838|0),($839|0),21)|0);
- $841 = (getTempRet0() | 0);
- $842 = $838 & -2097152;
- $843 = (_i64Add(($713|0),($714|0),1048576,0)|0);
- $844 = (getTempRet0() | 0);
- $845 = (_bitshift64Ashr(($843|0),($844|0),21)|0);
- $846 = (getTempRet0() | 0);
- $847 = $843 & -2097152;
- $848 = (_i64Add(($738|0),($739|0),1048576,0)|0);
- $849 = (getTempRet0() | 0);
- $850 = (_bitshift64Ashr(($848|0),($849|0),21)|0);
- $851 = (getTempRet0() | 0);
- $852 = $848 & -2097152;
- $853 = (_i64Add(($759|0),($760|0),1048576,0)|0);
- $854 = (getTempRet0() | 0);
- $855 = (_bitshift64Ashr(($853|0),($854|0),21)|0);
- $856 = (getTempRet0() | 0);
- $857 = $853 & -2097152;
- $858 = (_i64Add(($776|0),($777|0),1048576,0)|0);
- $859 = (getTempRet0() | 0);
- $860 = (_bitshift64Ashr(($858|0),($859|0),21)|0);
- $861 = (getTempRet0() | 0);
- $862 = (_i64Add(($860|0),($861|0),($792|0),($793|0))|0);
- $863 = (getTempRet0() | 0);
- $864 = $858 & -2097152;
- $865 = (_i64Subtract(($776|0),($777|0),($864|0),($859|0))|0);
- $866 = (getTempRet0() | 0);
- $867 = (_i64Add(($789|0),($790|0),1048576,0)|0);
- $868 = (getTempRet0() | 0);
- $869 = (_bitshift64Ashr(($867|0),($868|0),21)|0);
- $870 = (getTempRet0() | 0);
- $871 = (_i64Add(($869|0),($870|0),($802|0),($803|0))|0);
- $872 = (getTempRet0() | 0);
- $873 = $867 & -2097152;
- $874 = (_i64Subtract(($789|0),($790|0),($873|0),($868|0))|0);
- $875 = (getTempRet0() | 0);
- $876 = (_i64Add(($798|0),($799|0),1048576,0)|0);
- $877 = (getTempRet0() | 0);
- $878 = (_bitshift64Lshr(($876|0),($877|0),21)|0);
- $879 = (getTempRet0() | 0);
- $880 = (_i64Add(($878|0),($879|0),($810|0),($811|0))|0);
- $881 = (getTempRet0() | 0);
- $882 = $876 & -2097152;
- $883 = $877 & 2147483647;
- $884 = (_i64Subtract(($798|0),($799|0),($882|0),($883|0))|0);
- $885 = (getTempRet0() | 0);
- $886 = (___muldi3(($806|0),($807|0),666643,0)|0);
- $887 = (getTempRet0() | 0);
- $888 = (___muldi3(($806|0),($807|0),470296,0)|0);
- $889 = (getTempRet0() | 0);
- $890 = (___muldi3(($806|0),($807|0),654183,0)|0);
- $891 = (getTempRet0() | 0);
- $892 = (___muldi3(($806|0),($807|0),-997805,-1)|0);
- $893 = (getTempRet0() | 0);
- $894 = (___muldi3(($806|0),($807|0),136657,0)|0);
- $895 = (getTempRet0() | 0);
- $896 = (___muldi3(($806|0),($807|0),-683901,-1)|0);
- $897 = (getTempRet0() | 0);
- $898 = (_i64Add(($529|0),($530|0),($896|0),($897|0))|0);
- $899 = (getTempRet0() | 0);
- $900 = (_i64Subtract(($898|0),($899|0),($778|0),($763|0))|0);
- $901 = (getTempRet0() | 0);
- $902 = (_i64Add(($900|0),($901|0),($855|0),($856|0))|0);
- $903 = (getTempRet0() | 0);
- $904 = (___muldi3(($880|0),($881|0),666643,0)|0);
- $905 = (getTempRet0() | 0);
- $906 = (___muldi3(($880|0),($881|0),470296,0)|0);
- $907 = (getTempRet0() | 0);
- $908 = (___muldi3(($880|0),($881|0),654183,0)|0);
- $909 = (getTempRet0() | 0);
- $910 = (___muldi3(($880|0),($881|0),-997805,-1)|0);
- $911 = (getTempRet0() | 0);
- $912 = (___muldi3(($880|0),($881|0),136657,0)|0);
- $913 = (getTempRet0() | 0);
- $914 = (___muldi3(($880|0),($881|0),-683901,-1)|0);
- $915 = (getTempRet0() | 0);
- $916 = (___muldi3(($884|0),($885|0),666643,0)|0);
- $917 = (getTempRet0() | 0);
- $918 = (___muldi3(($884|0),($885|0),470296,0)|0);
- $919 = (getTempRet0() | 0);
- $920 = (___muldi3(($884|0),($885|0),654183,0)|0);
- $921 = (getTempRet0() | 0);
- $922 = (___muldi3(($884|0),($885|0),-997805,-1)|0);
- $923 = (getTempRet0() | 0);
- $924 = (___muldi3(($884|0),($885|0),136657,0)|0);
- $925 = (getTempRet0() | 0);
- $926 = (___muldi3(($884|0),($885|0),-683901,-1)|0);
- $927 = (getTempRet0() | 0);
- $928 = (_i64Add(($487|0),($488|0),($892|0),($893|0))|0);
- $929 = (getTempRet0() | 0);
- $930 = (_i64Add(($928|0),($929|0),($912|0),($913|0))|0);
- $931 = (getTempRet0() | 0);
- $932 = (_i64Add(($930|0),($931|0),($926|0),($927|0))|0);
- $933 = (getTempRet0() | 0);
- $934 = (_i64Subtract(($932|0),($933|0),($761|0),($742|0))|0);
- $935 = (getTempRet0() | 0);
- $936 = (_i64Add(($934|0),($935|0),($850|0),($851|0))|0);
- $937 = (getTempRet0() | 0);
- $938 = (___muldi3(($871|0),($872|0),666643,0)|0);
- $939 = (getTempRet0() | 0);
- $940 = (___muldi3(($871|0),($872|0),470296,0)|0);
- $941 = (getTempRet0() | 0);
- $942 = (___muldi3(($871|0),($872|0),654183,0)|0);
- $943 = (getTempRet0() | 0);
- $944 = (___muldi3(($871|0),($872|0),-997805,-1)|0);
- $945 = (getTempRet0() | 0);
- $946 = (___muldi3(($871|0),($872|0),136657,0)|0);
- $947 = (getTempRet0() | 0);
- $948 = (___muldi3(($871|0),($872|0),-683901,-1)|0);
- $949 = (getTempRet0() | 0);
- $950 = (___muldi3(($874|0),($875|0),666643,0)|0);
- $951 = (getTempRet0() | 0);
- $952 = (___muldi3(($874|0),($875|0),470296,0)|0);
- $953 = (getTempRet0() | 0);
- $954 = (___muldi3(($874|0),($875|0),654183,0)|0);
- $955 = (getTempRet0() | 0);
- $956 = (___muldi3(($874|0),($875|0),-997805,-1)|0);
- $957 = (getTempRet0() | 0);
- $958 = (___muldi3(($874|0),($875|0),136657,0)|0);
- $959 = (getTempRet0() | 0);
- $960 = (___muldi3(($874|0),($875|0),-683901,-1)|0);
- $961 = (getTempRet0() | 0);
- $962 = (_i64Add(($908|0),($909|0),($888|0),($889|0))|0);
- $963 = (getTempRet0() | 0);
- $964 = (_i64Add(($962|0),($963|0),($922|0),($923|0))|0);
- $965 = (getTempRet0() | 0);
- $966 = (_i64Add(($964|0),($965|0),($433|0),($434|0))|0);
- $967 = (getTempRet0() | 0);
- $968 = (_i64Add(($966|0),($967|0),($946|0),($947|0))|0);
- $969 = (getTempRet0() | 0);
- $970 = (_i64Add(($968|0),($969|0),($960|0),($961|0))|0);
- $971 = (getTempRet0() | 0);
- $972 = (_i64Subtract(($970|0),($971|0),($740|0),($717|0))|0);
- $973 = (getTempRet0() | 0);
- $974 = (_i64Add(($972|0),($973|0),($845|0),($846|0))|0);
- $975 = (getTempRet0() | 0);
- $976 = (___muldi3(($862|0),($863|0),666643,0)|0);
- $977 = (getTempRet0() | 0);
- $978 = (_i64Add(($251|0),($252|0),($976|0),($977|0))|0);
- $979 = (getTempRet0() | 0);
- $980 = (_i64Add(($978|0),($979|0),($828|0),($829|0))|0);
- $981 = (getTempRet0() | 0);
- $982 = (_i64Subtract(($980|0),($981|0),($657|0),($636|0))|0);
- $983 = (getTempRet0() | 0);
- $984 = (___muldi3(($862|0),($863|0),470296,0)|0);
- $985 = (getTempRet0() | 0);
- $986 = (___muldi3(($862|0),($863|0),654183,0)|0);
- $987 = (getTempRet0() | 0);
- $988 = (_i64Add(($952|0),($953|0),($938|0),($939|0))|0);
- $989 = (getTempRet0() | 0);
- $990 = (_i64Add(($988|0),($989|0),($986|0),($987|0))|0);
- $991 = (getTempRet0() | 0);
- $992 = (_i64Add(($990|0),($991|0),($303|0),($304|0))|0);
- $993 = (getTempRet0() | 0);
- $994 = (_i64Subtract(($992|0),($993|0),($684|0),($659|0))|0);
- $995 = (getTempRet0() | 0);
- $996 = (_i64Add(($994|0),($995|0),($835|0),($836|0))|0);
- $997 = (getTempRet0() | 0);
- $998 = (___muldi3(($862|0),($863|0),-997805,-1)|0);
- $999 = (getTempRet0() | 0);
- $1000 = (___muldi3(($862|0),($863|0),136657,0)|0);
- $1001 = (getTempRet0() | 0);
- $1002 = (_i64Add(($918|0),($919|0),($904|0),($905|0))|0);
- $1003 = (getTempRet0() | 0);
- $1004 = (_i64Add(($1002|0),($1003|0),($942|0),($943|0))|0);
- $1005 = (getTempRet0() | 0);
- $1006 = (_i64Add(($1004|0),($1005|0),($956|0),($957|0))|0);
- $1007 = (getTempRet0() | 0);
- $1008 = (_i64Add(($1006|0),($1007|0),($1000|0),($1001|0))|0);
- $1009 = (getTempRet0() | 0);
- $1010 = (_i64Add(($1008|0),($1009|0),($367|0),($368|0))|0);
- $1011 = (getTempRet0() | 0);
- $1012 = (_i64Add(($1010|0),($1011|0),($840|0),($841|0))|0);
- $1013 = (getTempRet0() | 0);
- $1014 = (_i64Subtract(($1012|0),($1013|0),($715|0),($686|0))|0);
- $1015 = (getTempRet0() | 0);
- $1016 = (___muldi3(($862|0),($863|0),-683901,-1)|0);
- $1017 = (getTempRet0() | 0);
- $1018 = (_i64Add(($982|0),($983|0),1048576,0)|0);
- $1019 = (getTempRet0() | 0);
- $1020 = (_bitshift64Ashr(($1018|0),($1019|0),21)|0);
- $1021 = (getTempRet0() | 0);
- $1022 = (_i64Add(($984|0),($985|0),($950|0),($951|0))|0);
- $1023 = (getTempRet0() | 0);
- $1024 = (_i64Add(($1022|0),($1023|0),($655|0),($656|0))|0);
- $1025 = (getTempRet0() | 0);
- $1026 = (_i64Subtract(($1024|0),($1025|0),($837|0),($834|0))|0);
- $1027 = (getTempRet0() | 0);
- $1028 = (_i64Add(($1026|0),($1027|0),($1020|0),($1021|0))|0);
- $1029 = (getTempRet0() | 0);
- $1030 = $1018 & -2097152;
- $1031 = (_i64Add(($996|0),($997|0),1048576,0)|0);
- $1032 = (getTempRet0() | 0);
- $1033 = (_bitshift64Ashr(($1031|0),($1032|0),21)|0);
- $1034 = (getTempRet0() | 0);
- $1035 = (_i64Add(($940|0),($941|0),($916|0),($917|0))|0);
- $1036 = (getTempRet0() | 0);
- $1037 = (_i64Add(($1035|0),($1036|0),($954|0),($955|0))|0);
- $1038 = (getTempRet0() | 0);
- $1039 = (_i64Add(($1037|0),($1038|0),($998|0),($999|0))|0);
- $1040 = (getTempRet0() | 0);
- $1041 = (_i64Add(($1039|0),($1040|0),($682|0),($683|0))|0);
- $1042 = (getTempRet0() | 0);
- $1043 = (_i64Subtract(($1041|0),($1042|0),($842|0),($839|0))|0);
- $1044 = (getTempRet0() | 0);
- $1045 = (_i64Add(($1043|0),($1044|0),($1033|0),($1034|0))|0);
- $1046 = (getTempRet0() | 0);
- $1047 = $1031 & -2097152;
- $1048 = (_i64Add(($1014|0),($1015|0),1048576,0)|0);
- $1049 = (getTempRet0() | 0);
- $1050 = (_bitshift64Ashr(($1048|0),($1049|0),21)|0);
- $1051 = (getTempRet0() | 0);
- $1052 = (_i64Add(($906|0),($907|0),($886|0),($887|0))|0);
- $1053 = (getTempRet0() | 0);
- $1054 = (_i64Add(($1052|0),($1053|0),($920|0),($921|0))|0);
- $1055 = (getTempRet0() | 0);
- $1056 = (_i64Add(($1054|0),($1055|0),($944|0),($945|0))|0);
- $1057 = (getTempRet0() | 0);
- $1058 = (_i64Add(($1056|0),($1057|0),($958|0),($959|0))|0);
- $1059 = (getTempRet0() | 0);
- $1060 = (_i64Add(($1058|0),($1059|0),($1016|0),($1017|0))|0);
- $1061 = (getTempRet0() | 0);
- $1062 = (_i64Add(($1060|0),($1061|0),($713|0),($714|0))|0);
- $1063 = (getTempRet0() | 0);
- $1064 = (_i64Subtract(($1062|0),($1063|0),($847|0),($844|0))|0);
- $1065 = (getTempRet0() | 0);
- $1066 = (_i64Add(($1064|0),($1065|0),($1050|0),($1051|0))|0);
- $1067 = (getTempRet0() | 0);
- $1068 = $1048 & -2097152;
- $1069 = (_i64Add(($974|0),($975|0),1048576,0)|0);
- $1070 = (getTempRet0() | 0);
- $1071 = (_bitshift64Ashr(($1069|0),($1070|0),21)|0);
- $1072 = (getTempRet0() | 0);
- $1073 = (_i64Add(($910|0),($911|0),($890|0),($891|0))|0);
- $1074 = (getTempRet0() | 0);
- $1075 = (_i64Add(($1073|0),($1074|0),($924|0),($925|0))|0);
- $1076 = (getTempRet0() | 0);
- $1077 = (_i64Add(($1075|0),($1076|0),($948|0),($949|0))|0);
- $1078 = (getTempRet0() | 0);
- $1079 = (_i64Add(($1077|0),($1078|0),($738|0),($739|0))|0);
- $1080 = (getTempRet0() | 0);
- $1081 = (_i64Subtract(($1079|0),($1080|0),($852|0),($849|0))|0);
- $1082 = (getTempRet0() | 0);
- $1083 = (_i64Add(($1081|0),($1082|0),($1071|0),($1072|0))|0);
- $1084 = (getTempRet0() | 0);
- $1085 = $1069 & -2097152;
- $1086 = (_i64Subtract(($974|0),($975|0),($1085|0),($1070|0))|0);
- $1087 = (getTempRet0() | 0);
- $1088 = (_i64Add(($936|0),($937|0),1048576,0)|0);
- $1089 = (getTempRet0() | 0);
- $1090 = (_bitshift64Ashr(($1088|0),($1089|0),21)|0);
- $1091 = (getTempRet0() | 0);
- $1092 = (_i64Add(($914|0),($915|0),($894|0),($895|0))|0);
- $1093 = (getTempRet0() | 0);
- $1094 = (_i64Add(($1092|0),($1093|0),($759|0),($760|0))|0);
- $1095 = (getTempRet0() | 0);
- $1096 = (_i64Subtract(($1094|0),($1095|0),($857|0),($854|0))|0);
- $1097 = (getTempRet0() | 0);
- $1098 = (_i64Add(($1096|0),($1097|0),($1090|0),($1091|0))|0);
- $1099 = (getTempRet0() | 0);
- $1100 = $1088 & -2097152;
- $1101 = (_i64Subtract(($936|0),($937|0),($1100|0),($1089|0))|0);
- $1102 = (getTempRet0() | 0);
- $1103 = (_i64Add(($902|0),($903|0),1048576,0)|0);
- $1104 = (getTempRet0() | 0);
- $1105 = (_bitshift64Ashr(($1103|0),($1104|0),21)|0);
- $1106 = (getTempRet0() | 0);
- $1107 = (_i64Add(($1105|0),($1106|0),($865|0),($866|0))|0);
- $1108 = (getTempRet0() | 0);
- $1109 = $1103 & -2097152;
- $1110 = (_i64Subtract(($902|0),($903|0),($1109|0),($1104|0))|0);
- $1111 = (getTempRet0() | 0);
- $1112 = (_i64Add(($1028|0),($1029|0),1048576,0)|0);
- $1113 = (getTempRet0() | 0);
- $1114 = (_bitshift64Ashr(($1112|0),($1113|0),21)|0);
- $1115 = (getTempRet0() | 0);
- $1116 = $1112 & -2097152;
- $1117 = (_i64Add(($1045|0),($1046|0),1048576,0)|0);
- $1118 = (getTempRet0() | 0);
- $1119 = (_bitshift64Ashr(($1117|0),($1118|0),21)|0);
- $1120 = (getTempRet0() | 0);
- $1121 = $1117 & -2097152;
- $1122 = (_i64Add(($1066|0),($1067|0),1048576,0)|0);
- $1123 = (getTempRet0() | 0);
- $1124 = (_bitshift64Ashr(($1122|0),($1123|0),21)|0);
- $1125 = (getTempRet0() | 0);
- $1126 = (_i64Add(($1124|0),($1125|0),($1086|0),($1087|0))|0);
- $1127 = (getTempRet0() | 0);
- $1128 = $1122 & -2097152;
- $1129 = (_i64Subtract(($1066|0),($1067|0),($1128|0),($1123|0))|0);
- $1130 = (getTempRet0() | 0);
- $1131 = (_i64Add(($1083|0),($1084|0),1048576,0)|0);
- $1132 = (getTempRet0() | 0);
- $1133 = (_bitshift64Ashr(($1131|0),($1132|0),21)|0);
- $1134 = (getTempRet0() | 0);
- $1135 = (_i64Add(($1133|0),($1134|0),($1101|0),($1102|0))|0);
- $1136 = (getTempRet0() | 0);
- $1137 = $1131 & -2097152;
- $1138 = (_i64Subtract(($1083|0),($1084|0),($1137|0),($1132|0))|0);
- $1139 = (getTempRet0() | 0);
- $1140 = (_i64Add(($1098|0),($1099|0),1048576,0)|0);
- $1141 = (getTempRet0() | 0);
- $1142 = (_bitshift64Ashr(($1140|0),($1141|0),21)|0);
- $1143 = (getTempRet0() | 0);
- $1144 = (_i64Add(($1142|0),($1143|0),($1110|0),($1111|0))|0);
- $1145 = (getTempRet0() | 0);
- $1146 = $1140 & -2097152;
- $1147 = (_i64Subtract(($1098|0),($1099|0),($1146|0),($1141|0))|0);
- $1148 = (getTempRet0() | 0);
- $1149 = (___muldi3(($1107|0),($1108|0),666643,0)|0);
- $1150 = (getTempRet0() | 0);
- $1151 = (_i64Add(($831|0),($832|0),($1149|0),($1150|0))|0);
- $1152 = (getTempRet0() | 0);
- $1153 = (___muldi3(($1107|0),($1108|0),470296,0)|0);
- $1154 = (getTempRet0() | 0);
- $1155 = (___muldi3(($1107|0),($1108|0),654183,0)|0);
- $1156 = (getTempRet0() | 0);
- $1157 = (___muldi3(($1107|0),($1108|0),-997805,-1)|0);
- $1158 = (getTempRet0() | 0);
- $1159 = (___muldi3(($1107|0),($1108|0),136657,0)|0);
- $1160 = (getTempRet0() | 0);
- $1161 = (___muldi3(($1107|0),($1108|0),-683901,-1)|0);
- $1162 = (getTempRet0() | 0);
- $1163 = (_i64Add(($1014|0),($1015|0),($1161|0),($1162|0))|0);
- $1164 = (getTempRet0() | 0);
- $1165 = (_i64Add(($1163|0),($1164|0),($1119|0),($1120|0))|0);
- $1166 = (getTempRet0() | 0);
- $1167 = (_i64Subtract(($1165|0),($1166|0),($1068|0),($1049|0))|0);
- $1168 = (getTempRet0() | 0);
- $1169 = (___muldi3(($1144|0),($1145|0),666643,0)|0);
- $1170 = (getTempRet0() | 0);
- $1171 = (___muldi3(($1144|0),($1145|0),470296,0)|0);
- $1172 = (getTempRet0() | 0);
- $1173 = (_i64Add(($1151|0),($1152|0),($1171|0),($1172|0))|0);
- $1174 = (getTempRet0() | 0);
- $1175 = (___muldi3(($1144|0),($1145|0),654183,0)|0);
- $1176 = (getTempRet0() | 0);
- $1177 = (___muldi3(($1144|0),($1145|0),-997805,-1)|0);
- $1178 = (getTempRet0() | 0);
- $1179 = (___muldi3(($1144|0),($1145|0),136657,0)|0);
- $1180 = (getTempRet0() | 0);
- $1181 = (___muldi3(($1144|0),($1145|0),-683901,-1)|0);
- $1182 = (getTempRet0() | 0);
- $1183 = (___muldi3(($1147|0),($1148|0),666643,0)|0);
- $1184 = (getTempRet0() | 0);
- $1185 = (_i64Add(($824|0),($825|0),($1183|0),($1184|0))|0);
- $1186 = (getTempRet0() | 0);
- $1187 = (___muldi3(($1147|0),($1148|0),470296,0)|0);
- $1188 = (getTempRet0() | 0);
- $1189 = (___muldi3(($1147|0),($1148|0),654183,0)|0);
- $1190 = (getTempRet0() | 0);
- $1191 = (_i64Add(($1173|0),($1174|0),($1189|0),($1190|0))|0);
- $1192 = (getTempRet0() | 0);
- $1193 = (___muldi3(($1147|0),($1148|0),-997805,-1)|0);
- $1194 = (getTempRet0() | 0);
- $1195 = (___muldi3(($1147|0),($1148|0),136657,0)|0);
- $1196 = (getTempRet0() | 0);
- $1197 = (___muldi3(($1147|0),($1148|0),-683901,-1)|0);
- $1198 = (getTempRet0() | 0);
- $1199 = (_i64Add(($996|0),($997|0),($1157|0),($1158|0))|0);
- $1200 = (getTempRet0() | 0);
- $1201 = (_i64Add(($1199|0),($1200|0),($1114|0),($1115|0))|0);
- $1202 = (getTempRet0() | 0);
- $1203 = (_i64Subtract(($1201|0),($1202|0),($1047|0),($1032|0))|0);
- $1204 = (getTempRet0() | 0);
- $1205 = (_i64Add(($1203|0),($1204|0),($1179|0),($1180|0))|0);
- $1206 = (getTempRet0() | 0);
- $1207 = (_i64Add(($1205|0),($1206|0),($1197|0),($1198|0))|0);
- $1208 = (getTempRet0() | 0);
- $1209 = (___muldi3(($1135|0),($1136|0),666643,0)|0);
- $1210 = (getTempRet0() | 0);
- $1211 = (___muldi3(($1135|0),($1136|0),470296,0)|0);
- $1212 = (getTempRet0() | 0);
- $1213 = (___muldi3(($1135|0),($1136|0),654183,0)|0);
- $1214 = (getTempRet0() | 0);
- $1215 = (___muldi3(($1135|0),($1136|0),-997805,-1)|0);
- $1216 = (getTempRet0() | 0);
- $1217 = (___muldi3(($1135|0),($1136|0),136657,0)|0);
- $1218 = (getTempRet0() | 0);
- $1219 = (___muldi3(($1135|0),($1136|0),-683901,-1)|0);
- $1220 = (getTempRet0() | 0);
- $1221 = (___muldi3(($1138|0),($1139|0),666643,0)|0);
- $1222 = (getTempRet0() | 0);
- $1223 = (___muldi3(($1138|0),($1139|0),470296,0)|0);
- $1224 = (getTempRet0() | 0);
- $1225 = (___muldi3(($1138|0),($1139|0),654183,0)|0);
- $1226 = (getTempRet0() | 0);
- $1227 = (___muldi3(($1138|0),($1139|0),-997805,-1)|0);
- $1228 = (getTempRet0() | 0);
- $1229 = (___muldi3(($1138|0),($1139|0),136657,0)|0);
- $1230 = (getTempRet0() | 0);
- $1231 = (___muldi3(($1138|0),($1139|0),-683901,-1)|0);
- $1232 = (getTempRet0() | 0);
- $1233 = (_i64Add(($1153|0),($1154|0),($982|0),($983|0))|0);
- $1234 = (getTempRet0() | 0);
- $1235 = (_i64Subtract(($1233|0),($1234|0),($1030|0),($1019|0))|0);
- $1236 = (getTempRet0() | 0);
- $1237 = (_i64Add(($1235|0),($1236|0),($1175|0),($1176|0))|0);
- $1238 = (getTempRet0() | 0);
- $1239 = (_i64Add(($1237|0),($1238|0),($1193|0),($1194|0))|0);
- $1240 = (getTempRet0() | 0);
- $1241 = (_i64Add(($1239|0),($1240|0),($1217|0),($1218|0))|0);
- $1242 = (getTempRet0() | 0);
- $1243 = (_i64Add(($1241|0),($1242|0),($1231|0),($1232|0))|0);
- $1244 = (getTempRet0() | 0);
- $1245 = (___muldi3(($1126|0),($1127|0),666643,0)|0);
- $1246 = (getTempRet0() | 0);
- $1247 = (_i64Add(($1245|0),($1246|0),($599|0),($600|0))|0);
- $1248 = (getTempRet0() | 0);
- $1249 = (___muldi3(($1126|0),($1127|0),470296,0)|0);
- $1250 = (getTempRet0() | 0);
- $1251 = (___muldi3(($1126|0),($1127|0),654183,0)|0);
- $1252 = (getTempRet0() | 0);
- $1253 = (_i64Add(($814|0),($815|0),($183|0),($184|0))|0);
- $1254 = (getTempRet0() | 0);
- $1255 = (_i64Subtract(($1253|0),($1254|0),($615|0),($602|0))|0);
- $1256 = (getTempRet0() | 0);
- $1257 = (_i64Add(($1255|0),($1256|0),($1251|0),($1252|0))|0);
- $1258 = (getTempRet0() | 0);
- $1259 = (_i64Add(($1257|0),($1258|0),($1209|0),($1210|0))|0);
- $1260 = (getTempRet0() | 0);
- $1261 = (_i64Add(($1259|0),($1260|0),($1223|0),($1224|0))|0);
- $1262 = (getTempRet0() | 0);
- $1263 = (___muldi3(($1126|0),($1127|0),-997805,-1)|0);
- $1264 = (getTempRet0() | 0);
- $1265 = (___muldi3(($1126|0),($1127|0),136657,0)|0);
- $1266 = (getTempRet0() | 0);
- $1267 = (_i64Add(($821|0),($822|0),($211|0),($212|0))|0);
- $1268 = (getTempRet0() | 0);
- $1269 = (_i64Subtract(($1267|0),($1268|0),($634|0),($617|0))|0);
- $1270 = (getTempRet0() | 0);
- $1271 = (_i64Add(($1269|0),($1270|0),($1169|0),($1170|0))|0);
- $1272 = (getTempRet0() | 0);
- $1273 = (_i64Add(($1271|0),($1272|0),($1187|0),($1188|0))|0);
- $1274 = (getTempRet0() | 0);
- $1275 = (_i64Add(($1273|0),($1274|0),($1265|0),($1266|0))|0);
- $1276 = (getTempRet0() | 0);
- $1277 = (_i64Add(($1275|0),($1276|0),($1213|0),($1214|0))|0);
- $1278 = (getTempRet0() | 0);
- $1279 = (_i64Add(($1277|0),($1278|0),($1227|0),($1228|0))|0);
- $1280 = (getTempRet0() | 0);
- $1281 = (___muldi3(($1126|0),($1127|0),-683901,-1)|0);
- $1282 = (getTempRet0() | 0);
- $1283 = (_i64Add(($1247|0),($1248|0),1048576,0)|0);
- $1284 = (getTempRet0() | 0);
- $1285 = (_bitshift64Ashr(($1283|0),($1284|0),21)|0);
- $1286 = (getTempRet0() | 0);
- $1287 = (_i64Add(($817|0),($818|0),($1249|0),($1250|0))|0);
- $1288 = (getTempRet0() | 0);
- $1289 = (_i64Add(($1287|0),($1288|0),($1221|0),($1222|0))|0);
- $1290 = (getTempRet0() | 0);
- $1291 = (_i64Add(($1289|0),($1290|0),($1285|0),($1286|0))|0);
- $1292 = (getTempRet0() | 0);
- $1293 = $1283 & -2097152;
- $1294 = (_i64Subtract(($1247|0),($1248|0),($1293|0),($1284|0))|0);
- $1295 = (getTempRet0() | 0);
- $1296 = (_i64Add(($1261|0),($1262|0),1048576,0)|0);
- $1297 = (getTempRet0() | 0);
- $1298 = (_bitshift64Ashr(($1296|0),($1297|0),21)|0);
- $1299 = (getTempRet0() | 0);
- $1300 = (_i64Add(($1185|0),($1186|0),($1263|0),($1264|0))|0);
- $1301 = (getTempRet0() | 0);
- $1302 = (_i64Add(($1300|0),($1301|0),($1211|0),($1212|0))|0);
- $1303 = (getTempRet0() | 0);
- $1304 = (_i64Add(($1302|0),($1303|0),($1225|0),($1226|0))|0);
- $1305 = (getTempRet0() | 0);
- $1306 = (_i64Add(($1304|0),($1305|0),($1298|0),($1299|0))|0);
- $1307 = (getTempRet0() | 0);
- $1308 = $1296 & -2097152;
- $1309 = (_i64Add(($1279|0),($1280|0),1048576,0)|0);
- $1310 = (getTempRet0() | 0);
- $1311 = (_bitshift64Ashr(($1309|0),($1310|0),21)|0);
- $1312 = (getTempRet0() | 0);
- $1313 = (_i64Add(($1191|0),($1192|0),($1281|0),($1282|0))|0);
- $1314 = (getTempRet0() | 0);
- $1315 = (_i64Add(($1313|0),($1314|0),($1215|0),($1216|0))|0);
- $1316 = (getTempRet0() | 0);
- $1317 = (_i64Add(($1315|0),($1316|0),($1229|0),($1230|0))|0);
- $1318 = (getTempRet0() | 0);
- $1319 = (_i64Add(($1317|0),($1318|0),($1311|0),($1312|0))|0);
- $1320 = (getTempRet0() | 0);
- $1321 = $1309 & -2097152;
- $1322 = (_i64Add(($1243|0),($1244|0),1048576,0)|0);
- $1323 = (getTempRet0() | 0);
- $1324 = (_bitshift64Ashr(($1322|0),($1323|0),21)|0);
- $1325 = (getTempRet0() | 0);
- $1326 = (_i64Add(($1028|0),($1029|0),($1155|0),($1156|0))|0);
- $1327 = (getTempRet0() | 0);
- $1328 = (_i64Subtract(($1326|0),($1327|0),($1116|0),($1113|0))|0);
- $1329 = (getTempRet0() | 0);
- $1330 = (_i64Add(($1328|0),($1329|0),($1177|0),($1178|0))|0);
- $1331 = (getTempRet0() | 0);
- $1332 = (_i64Add(($1330|0),($1331|0),($1195|0),($1196|0))|0);
- $1333 = (getTempRet0() | 0);
- $1334 = (_i64Add(($1332|0),($1333|0),($1219|0),($1220|0))|0);
- $1335 = (getTempRet0() | 0);
- $1336 = (_i64Add(($1334|0),($1335|0),($1324|0),($1325|0))|0);
- $1337 = (getTempRet0() | 0);
- $1338 = $1322 & -2097152;
- $1339 = (_i64Subtract(($1243|0),($1244|0),($1338|0),($1323|0))|0);
- $1340 = (getTempRet0() | 0);
- $1341 = (_i64Add(($1207|0),($1208|0),1048576,0)|0);
- $1342 = (getTempRet0() | 0);
- $1343 = (_bitshift64Ashr(($1341|0),($1342|0),21)|0);
- $1344 = (getTempRet0() | 0);
- $1345 = (_i64Add(($1181|0),($1182|0),($1159|0),($1160|0))|0);
- $1346 = (getTempRet0() | 0);
- $1347 = (_i64Add(($1345|0),($1346|0),($1045|0),($1046|0))|0);
- $1348 = (getTempRet0() | 0);
- $1349 = (_i64Subtract(($1347|0),($1348|0),($1121|0),($1118|0))|0);
- $1350 = (getTempRet0() | 0);
- $1351 = (_i64Add(($1349|0),($1350|0),($1343|0),($1344|0))|0);
- $1352 = (getTempRet0() | 0);
- $1353 = $1341 & -2097152;
- $1354 = (_i64Subtract(($1207|0),($1208|0),($1353|0),($1342|0))|0);
- $1355 = (getTempRet0() | 0);
- $1356 = (_i64Add(($1167|0),($1168|0),1048576,0)|0);
- $1357 = (getTempRet0() | 0);
- $1358 = (_bitshift64Ashr(($1356|0),($1357|0),21)|0);
- $1359 = (getTempRet0() | 0);
- $1360 = (_i64Add(($1129|0),($1130|0),($1358|0),($1359|0))|0);
- $1361 = (getTempRet0() | 0);
- $1362 = $1356 & -2097152;
- $1363 = (_i64Add(($1291|0),($1292|0),1048576,0)|0);
- $1364 = (getTempRet0() | 0);
- $1365 = (_bitshift64Ashr(($1363|0),($1364|0),21)|0);
- $1366 = (getTempRet0() | 0);
- $1367 = $1363 & -2097152;
- $1368 = (_i64Add(($1306|0),($1307|0),1048576,0)|0);
- $1369 = (getTempRet0() | 0);
- $1370 = (_bitshift64Ashr(($1368|0),($1369|0),21)|0);
- $1371 = (getTempRet0() | 0);
- $1372 = $1368 & -2097152;
- $1373 = (_i64Add(($1319|0),($1320|0),1048576,0)|0);
- $1374 = (getTempRet0() | 0);
- $1375 = (_bitshift64Ashr(($1373|0),($1374|0),21)|0);
- $1376 = (getTempRet0() | 0);
- $1377 = (_i64Add(($1339|0),($1340|0),($1375|0),($1376|0))|0);
- $1378 = (getTempRet0() | 0);
- $1379 = $1373 & -2097152;
- $1380 = (_i64Add(($1336|0),($1337|0),1048576,0)|0);
- $1381 = (getTempRet0() | 0);
- $1382 = (_bitshift64Ashr(($1380|0),($1381|0),21)|0);
- $1383 = (getTempRet0() | 0);
- $1384 = (_i64Add(($1354|0),($1355|0),($1382|0),($1383|0))|0);
- $1385 = (getTempRet0() | 0);
- $1386 = $1380 & -2097152;
- $1387 = (_i64Subtract(($1336|0),($1337|0),($1386|0),($1381|0))|0);
- $1388 = (getTempRet0() | 0);
- $1389 = (_i64Add(($1351|0),($1352|0),1048576,0)|0);
- $1390 = (getTempRet0() | 0);
- $1391 = (_bitshift64Ashr(($1389|0),($1390|0),21)|0);
- $1392 = (getTempRet0() | 0);
- $1393 = $1389 & -2097152;
- $1394 = (_i64Subtract(($1351|0),($1352|0),($1393|0),($1390|0))|0);
- $1395 = (getTempRet0() | 0);
- $1396 = (_i64Add(($1360|0),($1361|0),1048576,0)|0);
- $1397 = (getTempRet0() | 0);
- $1398 = (_bitshift64Ashr(($1396|0),($1397|0),21)|0);
- $1399 = (getTempRet0() | 0);
- $1400 = $1396 & -2097152;
- $1401 = (_i64Subtract(($1360|0),($1361|0),($1400|0),($1397|0))|0);
- $1402 = (getTempRet0() | 0);
- $1403 = (___muldi3(($1398|0),($1399|0),666643,0)|0);
- $1404 = (getTempRet0() | 0);
- $1405 = (_i64Add(($1294|0),($1295|0),($1403|0),($1404|0))|0);
- $1406 = (getTempRet0() | 0);
- $1407 = (___muldi3(($1398|0),($1399|0),470296,0)|0);
- $1408 = (getTempRet0() | 0);
- $1409 = (___muldi3(($1398|0),($1399|0),654183,0)|0);
- $1410 = (getTempRet0() | 0);
- $1411 = (___muldi3(($1398|0),($1399|0),-997805,-1)|0);
- $1412 = (getTempRet0() | 0);
- $1413 = (___muldi3(($1398|0),($1399|0),136657,0)|0);
- $1414 = (getTempRet0() | 0);
- $1415 = (___muldi3(($1398|0),($1399|0),-683901,-1)|0);
- $1416 = (getTempRet0() | 0);
- $1417 = (_bitshift64Ashr(($1405|0),($1406|0),21)|0);
- $1418 = (getTempRet0() | 0);
- $1419 = (_i64Add(($1291|0),($1292|0),($1407|0),($1408|0))|0);
- $1420 = (getTempRet0() | 0);
- $1421 = (_i64Subtract(($1419|0),($1420|0),($1367|0),($1364|0))|0);
- $1422 = (getTempRet0() | 0);
- $1423 = (_i64Add(($1421|0),($1422|0),($1417|0),($1418|0))|0);
- $1424 = (getTempRet0() | 0);
- $1425 = $1405 & 2097151;
- $1426 = (_bitshift64Ashr(($1423|0),($1424|0),21)|0);
- $1427 = (getTempRet0() | 0);
- $1428 = (_i64Add(($1261|0),($1262|0),($1409|0),($1410|0))|0);
- $1429 = (getTempRet0() | 0);
- $1430 = (_i64Subtract(($1428|0),($1429|0),($1308|0),($1297|0))|0);
- $1431 = (getTempRet0() | 0);
- $1432 = (_i64Add(($1430|0),($1431|0),($1365|0),($1366|0))|0);
- $1433 = (getTempRet0() | 0);
- $1434 = (_i64Add(($1432|0),($1433|0),($1426|0),($1427|0))|0);
- $1435 = (getTempRet0() | 0);
- $1436 = $1423 & 2097151;
- $1437 = (_bitshift64Ashr(($1434|0),($1435|0),21)|0);
- $1438 = (getTempRet0() | 0);
- $1439 = (_i64Add(($1306|0),($1307|0),($1411|0),($1412|0))|0);
- $1440 = (getTempRet0() | 0);
- $1441 = (_i64Subtract(($1439|0),($1440|0),($1372|0),($1369|0))|0);
- $1442 = (getTempRet0() | 0);
- $1443 = (_i64Add(($1441|0),($1442|0),($1437|0),($1438|0))|0);
- $1444 = (getTempRet0() | 0);
- $1445 = $1434 & 2097151;
- $1446 = (_bitshift64Ashr(($1443|0),($1444|0),21)|0);
- $1447 = (getTempRet0() | 0);
- $1448 = (_i64Add(($1279|0),($1280|0),($1413|0),($1414|0))|0);
- $1449 = (getTempRet0() | 0);
- $1450 = (_i64Subtract(($1448|0),($1449|0),($1321|0),($1310|0))|0);
- $1451 = (getTempRet0() | 0);
- $1452 = (_i64Add(($1450|0),($1451|0),($1370|0),($1371|0))|0);
- $1453 = (getTempRet0() | 0);
- $1454 = (_i64Add(($1452|0),($1453|0),($1446|0),($1447|0))|0);
- $1455 = (getTempRet0() | 0);
- $1456 = $1443 & 2097151;
- $1457 = (_bitshift64Ashr(($1454|0),($1455|0),21)|0);
- $1458 = (getTempRet0() | 0);
- $1459 = (_i64Add(($1319|0),($1320|0),($1415|0),($1416|0))|0);
- $1460 = (getTempRet0() | 0);
- $1461 = (_i64Subtract(($1459|0),($1460|0),($1379|0),($1374|0))|0);
- $1462 = (getTempRet0() | 0);
- $1463 = (_i64Add(($1461|0),($1462|0),($1457|0),($1458|0))|0);
- $1464 = (getTempRet0() | 0);
- $1465 = $1454 & 2097151;
- $1466 = (_bitshift64Ashr(($1463|0),($1464|0),21)|0);
- $1467 = (getTempRet0() | 0);
- $1468 = (_i64Add(($1377|0),($1378|0),($1466|0),($1467|0))|0);
- $1469 = (getTempRet0() | 0);
- $1470 = $1463 & 2097151;
- $1471 = (_bitshift64Ashr(($1468|0),($1469|0),21)|0);
- $1472 = (getTempRet0() | 0);
- $1473 = (_i64Add(($1471|0),($1472|0),($1387|0),($1388|0))|0);
- $1474 = (getTempRet0() | 0);
- $1475 = $1468 & 2097151;
- $1476 = (_bitshift64Ashr(($1473|0),($1474|0),21)|0);
- $1477 = (getTempRet0() | 0);
- $1478 = (_i64Add(($1384|0),($1385|0),($1476|0),($1477|0))|0);
- $1479 = (getTempRet0() | 0);
- $1480 = $1473 & 2097151;
- $1481 = (_bitshift64Ashr(($1478|0),($1479|0),21)|0);
- $1482 = (getTempRet0() | 0);
- $1483 = (_i64Add(($1481|0),($1482|0),($1394|0),($1395|0))|0);
- $1484 = (getTempRet0() | 0);
- $1485 = $1478 & 2097151;
- $1486 = (_bitshift64Ashr(($1483|0),($1484|0),21)|0);
- $1487 = (getTempRet0() | 0);
- $1488 = (_i64Add(($1391|0),($1392|0),($1167|0),($1168|0))|0);
- $1489 = (getTempRet0() | 0);
- $1490 = (_i64Subtract(($1488|0),($1489|0),($1362|0),($1357|0))|0);
- $1491 = (getTempRet0() | 0);
- $1492 = (_i64Add(($1490|0),($1491|0),($1486|0),($1487|0))|0);
- $1493 = (getTempRet0() | 0);
- $1494 = $1483 & 2097151;
- $1495 = (_bitshift64Ashr(($1492|0),($1493|0),21)|0);
- $1496 = (getTempRet0() | 0);
- $1497 = (_i64Add(($1495|0),($1496|0),($1401|0),($1402|0))|0);
- $1498 = (getTempRet0() | 0);
- $1499 = $1492 & 2097151;
- $1500 = (_bitshift64Ashr(($1497|0),($1498|0),21)|0);
- $1501 = (getTempRet0() | 0);
- $1502 = $1497 & 2097151;
- $1503 = (___muldi3(($1500|0),($1501|0),666643,0)|0);
- $1504 = (getTempRet0() | 0);
- $1505 = (_i64Add(($1503|0),($1504|0),($1425|0),0)|0);
- $1506 = (getTempRet0() | 0);
- $1507 = (___muldi3(($1500|0),($1501|0),470296,0)|0);
- $1508 = (getTempRet0() | 0);
- $1509 = (_i64Add(($1507|0),($1508|0),($1436|0),0)|0);
- $1510 = (getTempRet0() | 0);
- $1511 = (___muldi3(($1500|0),($1501|0),654183,0)|0);
- $1512 = (getTempRet0() | 0);
- $1513 = (_i64Add(($1511|0),($1512|0),($1445|0),0)|0);
- $1514 = (getTempRet0() | 0);
- $1515 = (___muldi3(($1500|0),($1501|0),-997805,-1)|0);
- $1516 = (getTempRet0() | 0);
- $1517 = (_i64Add(($1515|0),($1516|0),($1456|0),0)|0);
- $1518 = (getTempRet0() | 0);
- $1519 = (___muldi3(($1500|0),($1501|0),136657,0)|0);
- $1520 = (getTempRet0() | 0);
- $1521 = (_i64Add(($1519|0),($1520|0),($1465|0),0)|0);
- $1522 = (getTempRet0() | 0);
- $1523 = (___muldi3(($1500|0),($1501|0),-683901,-1)|0);
- $1524 = (getTempRet0() | 0);
- $1525 = (_i64Add(($1523|0),($1524|0),($1470|0),0)|0);
- $1526 = (getTempRet0() | 0);
- $1527 = (_bitshift64Ashr(($1505|0),($1506|0),21)|0);
- $1528 = (getTempRet0() | 0);
- $1529 = (_i64Add(($1509|0),($1510|0),($1527|0),($1528|0))|0);
- $1530 = (getTempRet0() | 0);
- $1531 = (_bitshift64Ashr(($1529|0),($1530|0),21)|0);
- $1532 = (getTempRet0() | 0);
- $1533 = (_i64Add(($1513|0),($1514|0),($1531|0),($1532|0))|0);
- $1534 = (getTempRet0() | 0);
- $1535 = $1529 & 2097151;
- $1536 = (_bitshift64Ashr(($1533|0),($1534|0),21)|0);
- $1537 = (getTempRet0() | 0);
- $1538 = (_i64Add(($1517|0),($1518|0),($1536|0),($1537|0))|0);
- $1539 = (getTempRet0() | 0);
- $1540 = $1533 & 2097151;
- $1541 = (_bitshift64Ashr(($1538|0),($1539|0),21)|0);
- $1542 = (getTempRet0() | 0);
- $1543 = (_i64Add(($1521|0),($1522|0),($1541|0),($1542|0))|0);
- $1544 = (getTempRet0() | 0);
- $1545 = $1538 & 2097151;
- $1546 = (_bitshift64Ashr(($1543|0),($1544|0),21)|0);
- $1547 = (getTempRet0() | 0);
- $1548 = (_i64Add(($1525|0),($1526|0),($1546|0),($1547|0))|0);
- $1549 = (getTempRet0() | 0);
- $1550 = $1543 & 2097151;
- $1551 = (_bitshift64Ashr(($1548|0),($1549|0),21)|0);
- $1552 = (getTempRet0() | 0);
- $1553 = (_i64Add(($1551|0),($1552|0),($1475|0),0)|0);
- $1554 = (getTempRet0() | 0);
- $1555 = $1548 & 2097151;
- $1556 = (_bitshift64Ashr(($1553|0),($1554|0),21)|0);
- $1557 = (getTempRet0() | 0);
- $1558 = (_i64Add(($1556|0),($1557|0),($1480|0),0)|0);
- $1559 = (getTempRet0() | 0);
- $1560 = $1553 & 2097151;
- $1561 = (_bitshift64Ashr(($1558|0),($1559|0),21)|0);
- $1562 = (getTempRet0() | 0);
- $1563 = (_i64Add(($1561|0),($1562|0),($1485|0),0)|0);
- $1564 = (getTempRet0() | 0);
- $1565 = (_bitshift64Ashr(($1563|0),($1564|0),21)|0);
- $1566 = (getTempRet0() | 0);
- $1567 = (_i64Add(($1565|0),($1566|0),($1494|0),0)|0);
- $1568 = (getTempRet0() | 0);
- $1569 = (_bitshift64Ashr(($1567|0),($1568|0),21)|0);
- $1570 = (getTempRet0() | 0);
- $1571 = (_i64Add(($1569|0),($1570|0),($1499|0),0)|0);
- $1572 = (getTempRet0() | 0);
- $1573 = $1567 & 2097151;
- $1574 = (_bitshift64Ashr(($1571|0),($1572|0),21)|0);
- $1575 = (getTempRet0() | 0);
- $1576 = (_i64Add(($1574|0),($1575|0),($1502|0),0)|0);
- $1577 = (getTempRet0() | 0);
- $1578 = $1571 & 2097151;
- $1579 = $1505&255;
- HEAP8[$s>>0] = $1579;
- $1580 = (_bitshift64Lshr(($1505|0),($1506|0),8)|0);
- $1581 = (getTempRet0() | 0);
- $1582 = $1580&255;
- $arrayidx895 = ((($s)) + 1|0);
- HEAP8[$arrayidx895>>0] = $1582;
- $1583 = (_bitshift64Lshr(($1505|0),($1506|0),16)|0);
- $1584 = (getTempRet0() | 0);
- $1585 = $1583 & 31;
- $1586 = (_bitshift64Shl(($1535|0),0,5)|0);
- $1587 = (getTempRet0() | 0);
- $1588 = $1586 | $1585;
- $1589 = $1588&255;
- $arrayidx899 = ((($s)) + 2|0);
- HEAP8[$arrayidx899>>0] = $1589;
- $1590 = (_bitshift64Lshr(($1529|0),($1530|0),3)|0);
- $1591 = (getTempRet0() | 0);
- $1592 = $1590&255;
- $arrayidx902 = ((($s)) + 3|0);
- HEAP8[$arrayidx902>>0] = $1592;
- $1593 = (_bitshift64Lshr(($1529|0),($1530|0),11)|0);
- $1594 = (getTempRet0() | 0);
- $1595 = $1593&255;
- $arrayidx905 = ((($s)) + 4|0);
- HEAP8[$arrayidx905>>0] = $1595;
- $1596 = (_bitshift64Lshr(($1535|0),0,19)|0);
- $1597 = (getTempRet0() | 0);
- $1598 = (_bitshift64Shl(($1540|0),0,2)|0);
- $1599 = (getTempRet0() | 0);
- $1600 = $1598 | $1596;
- $1599 | $1597;
- $1601 = $1600&255;
- $arrayidx910 = ((($s)) + 5|0);
- HEAP8[$arrayidx910>>0] = $1601;
- $1602 = (_bitshift64Lshr(($1533|0),($1534|0),6)|0);
- $1603 = (getTempRet0() | 0);
- $1604 = $1602&255;
- $arrayidx913 = ((($s)) + 6|0);
- HEAP8[$arrayidx913>>0] = $1604;
- $1605 = (_bitshift64Lshr(($1540|0),0,14)|0);
- $1606 = (getTempRet0() | 0);
- $1607 = (_bitshift64Shl(($1545|0),0,7)|0);
- $1608 = (getTempRet0() | 0);
- $1609 = $1607 | $1605;
- $1608 | $1606;
- $1610 = $1609&255;
- $arrayidx918 = ((($s)) + 7|0);
- HEAP8[$arrayidx918>>0] = $1610;
- $1611 = (_bitshift64Lshr(($1538|0),($1539|0),1)|0);
- $1612 = (getTempRet0() | 0);
- $1613 = $1611&255;
- $arrayidx921 = ((($s)) + 8|0);
- HEAP8[$arrayidx921>>0] = $1613;
- $1614 = (_bitshift64Lshr(($1538|0),($1539|0),9)|0);
- $1615 = (getTempRet0() | 0);
- $1616 = $1614&255;
- $arrayidx924 = ((($s)) + 9|0);
- HEAP8[$arrayidx924>>0] = $1616;
- $1617 = (_bitshift64Lshr(($1545|0),0,17)|0);
- $1618 = (getTempRet0() | 0);
- $1619 = (_bitshift64Shl(($1550|0),0,4)|0);
- $1620 = (getTempRet0() | 0);
- $1621 = $1619 | $1617;
- $1620 | $1618;
- $1622 = $1621&255;
- $arrayidx929 = ((($s)) + 10|0);
- HEAP8[$arrayidx929>>0] = $1622;
- $1623 = (_bitshift64Lshr(($1543|0),($1544|0),4)|0);
- $1624 = (getTempRet0() | 0);
- $1625 = $1623&255;
- $arrayidx932 = ((($s)) + 11|0);
- HEAP8[$arrayidx932>>0] = $1625;
- $1626 = (_bitshift64Lshr(($1543|0),($1544|0),12)|0);
- $1627 = (getTempRet0() | 0);
- $1628 = $1626&255;
- $arrayidx935 = ((($s)) + 12|0);
- HEAP8[$arrayidx935>>0] = $1628;
- $1629 = (_bitshift64Lshr(($1550|0),0,20)|0);
- $1630 = (getTempRet0() | 0);
- $1631 = (_bitshift64Shl(($1555|0),0,1)|0);
- $1632 = (getTempRet0() | 0);
- $1633 = $1631 | $1629;
- $1632 | $1630;
- $1634 = $1633&255;
- $arrayidx940 = ((($s)) + 13|0);
- HEAP8[$arrayidx940>>0] = $1634;
- $1635 = (_bitshift64Lshr(($1548|0),($1549|0),7)|0);
- $1636 = (getTempRet0() | 0);
- $1637 = $1635&255;
- $arrayidx943 = ((($s)) + 14|0);
- HEAP8[$arrayidx943>>0] = $1637;
- $1638 = (_bitshift64Lshr(($1555|0),0,15)|0);
- $1639 = (getTempRet0() | 0);
- $1640 = (_bitshift64Shl(($1560|0),0,6)|0);
- $1641 = (getTempRet0() | 0);
- $1642 = $1640 | $1638;
- $1641 | $1639;
- $1643 = $1642&255;
- $arrayidx948 = ((($s)) + 15|0);
- HEAP8[$arrayidx948>>0] = $1643;
- $1644 = (_bitshift64Lshr(($1553|0),($1554|0),2)|0);
- $1645 = (getTempRet0() | 0);
- $1646 = $1644&255;
- $arrayidx951 = ((($s)) + 16|0);
- HEAP8[$arrayidx951>>0] = $1646;
- $1647 = (_bitshift64Lshr(($1553|0),($1554|0),10)|0);
- $1648 = (getTempRet0() | 0);
- $1649 = $1647&255;
- $arrayidx954 = ((($s)) + 17|0);
- HEAP8[$arrayidx954>>0] = $1649;
- $1650 = (_bitshift64Lshr(($1560|0),0,18)|0);
- $1651 = (getTempRet0() | 0);
- $1652 = (_bitshift64Shl(($1558|0),($1559|0),3)|0);
- $1653 = (getTempRet0() | 0);
- $1654 = $1652 | $1650;
- $1653 | $1651;
- $1655 = $1654&255;
- $arrayidx959 = ((($s)) + 18|0);
- HEAP8[$arrayidx959>>0] = $1655;
- $1656 = (_bitshift64Lshr(($1558|0),($1559|0),5)|0);
- $1657 = (getTempRet0() | 0);
- $1658 = $1656&255;
- $arrayidx962 = ((($s)) + 19|0);
- HEAP8[$arrayidx962>>0] = $1658;
- $1659 = (_bitshift64Lshr(($1558|0),($1559|0),13)|0);
- $1660 = (getTempRet0() | 0);
- $1661 = $1659&255;
- $arrayidx965 = ((($s)) + 20|0);
- HEAP8[$arrayidx965>>0] = $1661;
- $1662 = $1563&255;
- $arrayidx968 = ((($s)) + 21|0);
- HEAP8[$arrayidx968>>0] = $1662;
- $1663 = (_bitshift64Lshr(($1563|0),($1564|0),8)|0);
- $1664 = (getTempRet0() | 0);
- $1665 = $1663&255;
- $arrayidx971 = ((($s)) + 22|0);
- HEAP8[$arrayidx971>>0] = $1665;
- $1666 = (_bitshift64Lshr(($1563|0),($1564|0),16)|0);
- $1667 = (getTempRet0() | 0);
- $1668 = $1666 & 31;
- $1669 = (_bitshift64Shl(($1573|0),0,5)|0);
- $1670 = (getTempRet0() | 0);
- $1671 = $1669 | $1668;
- $1672 = $1671&255;
- $arrayidx976 = ((($s)) + 23|0);
- HEAP8[$arrayidx976>>0] = $1672;
- $1673 = (_bitshift64Lshr(($1567|0),($1568|0),3)|0);
- $1674 = (getTempRet0() | 0);
- $1675 = $1673&255;
- $arrayidx979 = ((($s)) + 24|0);
- HEAP8[$arrayidx979>>0] = $1675;
- $1676 = (_bitshift64Lshr(($1567|0),($1568|0),11)|0);
- $1677 = (getTempRet0() | 0);
- $1678 = $1676&255;
- $arrayidx982 = ((($s)) + 25|0);
- HEAP8[$arrayidx982>>0] = $1678;
- $1679 = (_bitshift64Lshr(($1573|0),0,19)|0);
- $1680 = (getTempRet0() | 0);
- $1681 = (_bitshift64Shl(($1578|0),0,2)|0);
- $1682 = (getTempRet0() | 0);
- $1683 = $1681 | $1679;
- $1682 | $1680;
- $1684 = $1683&255;
- $arrayidx987 = ((($s)) + 26|0);
- HEAP8[$arrayidx987>>0] = $1684;
- $1685 = (_bitshift64Lshr(($1571|0),($1572|0),6)|0);
- $1686 = (getTempRet0() | 0);
- $1687 = $1685&255;
- $arrayidx990 = ((($s)) + 27|0);
- HEAP8[$arrayidx990>>0] = $1687;
- $1688 = (_bitshift64Lshr(($1578|0),0,14)|0);
- $1689 = (getTempRet0() | 0);
- $1690 = (_bitshift64Shl(($1576|0),($1577|0),7)|0);
- $1691 = (getTempRet0() | 0);
- $1692 = $1690 | $1688;
- $1691 | $1689;
- $1693 = $1692&255;
- $arrayidx995 = ((($s)) + 28|0);
- HEAP8[$arrayidx995>>0] = $1693;
- $1694 = (_bitshift64Lshr(($1576|0),($1577|0),1)|0);
- $1695 = (getTempRet0() | 0);
- $1696 = $1694&255;
- $arrayidx998 = ((($s)) + 29|0);
- HEAP8[$arrayidx998>>0] = $1696;
- $1697 = (_bitshift64Lshr(($1576|0),($1577|0),9)|0);
- $1698 = (getTempRet0() | 0);
- $1699 = $1697&255;
- $arrayidx1001 = ((($s)) + 30|0);
- HEAP8[$arrayidx1001>>0] = $1699;
- $1700 = (_bitshift64Ashr(($1576|0),($1577|0),17)|0);
- $1701 = (getTempRet0() | 0);
- $1702 = $1700&255;
- $arrayidx1004 = ((($s)) + 31|0);
- HEAP8[$arrayidx1004>>0] = $1702;
- return;
-}
-function _sha512_init($md) {
- $md = $md|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 $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, $arrayidx = 0, $arrayidx10 = 0, $arrayidx12 = 0, $arrayidx14 = 0;
- var $arrayidx2 = 0, $arrayidx4 = 0, $arrayidx6 = 0, $arrayidx8 = 0, $cmp = 0, $curlen = 0, $retval$0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $cmp = ($md|0)==(0|0);
- if ($cmp) {
- $retval$0 = 1;
- return ($retval$0|0);
- }
- $curlen = ((($md)) + 72|0);
- HEAP32[$curlen>>2] = 0;
- $0 = $md;
- $1 = $0;
- HEAP32[$1>>2] = 0;
- $2 = (($0) + 4)|0;
- $3 = $2;
- HEAP32[$3>>2] = 0;
- $arrayidx = ((($md)) + 8|0);
- $4 = $arrayidx;
- $5 = $4;
- HEAP32[$5>>2] = -205731576;
- $6 = (($4) + 4)|0;
- $7 = $6;
- HEAP32[$7>>2] = 1779033703;
- $arrayidx2 = ((($md)) + 16|0);
- $8 = $arrayidx2;
- $9 = $8;
- HEAP32[$9>>2] = -2067093701;
- $10 = (($8) + 4)|0;
- $11 = $10;
- HEAP32[$11>>2] = -1150833019;
- $arrayidx4 = ((($md)) + 24|0);
- $12 = $arrayidx4;
- $13 = $12;
- HEAP32[$13>>2] = -23791573;
- $14 = (($12) + 4)|0;
- $15 = $14;
- HEAP32[$15>>2] = 1013904242;
- $arrayidx6 = ((($md)) + 32|0);
- $16 = $arrayidx6;
- $17 = $16;
- HEAP32[$17>>2] = 1595750129;
- $18 = (($16) + 4)|0;
- $19 = $18;
- HEAP32[$19>>2] = -1521486534;
- $arrayidx8 = ((($md)) + 40|0);
- $20 = $arrayidx8;
- $21 = $20;
- HEAP32[$21>>2] = -1377402159;
- $22 = (($20) + 4)|0;
- $23 = $22;
- HEAP32[$23>>2] = 1359893119;
- $arrayidx10 = ((($md)) + 48|0);
- $24 = $arrayidx10;
- $25 = $24;
- HEAP32[$25>>2] = 725511199;
- $26 = (($24) + 4)|0;
- $27 = $26;
- HEAP32[$27>>2] = -1694144372;
- $arrayidx12 = ((($md)) + 56|0);
- $28 = $arrayidx12;
- $29 = $28;
- HEAP32[$29>>2] = -79577749;
- $30 = (($28) + 4)|0;
- $31 = $30;
- HEAP32[$31>>2] = 528734635;
- $arrayidx14 = ((($md)) + 64|0);
- $32 = $arrayidx14;
- $33 = $32;
- HEAP32[$33>>2] = 327033209;
- $34 = (($32) + 4)|0;
- $35 = $34;
- HEAP32[$35>>2] = 1541459225;
- $retval$0 = 0;
- return ($retval$0|0);
-}
-function _sha512_update($md,$in,$inlen) {
- $md = $md|0;
- $in = $in|0;
- $inlen = $inlen|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 $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $add$ptr = 0, $add$ptr26 = 0, $add22 = 0, $add25 = 0, $arraydecay = 0, $arrayidx = 0, $arrayidx23 = 0, $cmp = 0, $cmp1 = 0, $cmp10 = 0, $cmp17 = 0;
- var $cmp20 = 0, $cmp2035 = 0, $cmp29 = 0, $cmp4 = 0, $cmp7 = 0, $cmp737 = 0, $cmp9 = 0, $curlen = 0, $i$036 = 0, $in$addr$038 = 0, $in$addr$1 = 0, $inc = 0, $inlen$addr$0$sub16 = 0, $inlen$addr$039 = 0, $inlen$addr$1 = 0, $or$cond = 0, $or$cond34 = 0, $retval$0 = 0, $sub = 0, $sub16 = 0;
- var $sub27 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $cmp = ($md|0)==(0|0);
- $cmp1 = ($in|0)==(0|0);
- $or$cond34 = $cmp | $cmp1;
- if ($or$cond34) {
- $retval$0 = 1;
- return ($retval$0|0);
- }
- $curlen = ((($md)) + 72|0);
- $0 = HEAP32[$curlen>>2]|0;
- $cmp4 = ($0>>>0)>(128);
- if ($cmp4) {
- $retval$0 = 1;
- return ($retval$0|0);
- }
- $cmp737 = ($inlen|0)==(0);
- if ($cmp737) {
- $retval$0 = 0;
- return ($retval$0|0);
- }
- $arraydecay = ((($md)) + 76|0);
- $in$addr$038 = $in;$inlen$addr$039 = $inlen;
- while(1) {
- $1 = HEAP32[$curlen>>2]|0;
- $cmp9 = ($1|0)==(0);
- $cmp10 = ($inlen$addr$039>>>0)>(127);
- $or$cond = $cmp10 & $cmp9;
- if ($or$cond) {
- _sha512_compress($md,$in$addr$038);
- $2 = $md;
- $3 = $2;
- $4 = HEAP32[$3>>2]|0;
- $5 = (($2) + 4)|0;
- $6 = $5;
- $7 = HEAP32[$6>>2]|0;
- $8 = (_i64Add(($4|0),($7|0),1024,0)|0);
- $9 = (getTempRet0() | 0);
- $10 = $md;
- $11 = $10;
- HEAP32[$11>>2] = $8;
- $12 = (($10) + 4)|0;
- $13 = $12;
- HEAP32[$13>>2] = $9;
- $add$ptr = ((($in$addr$038)) + 128|0);
- $sub = (($inlen$addr$039) + -128)|0;
- $in$addr$1 = $add$ptr;$inlen$addr$1 = $sub;
- } else {
- $sub16 = (128 - ($1))|0;
- $cmp17 = ($inlen$addr$039>>>0)<($sub16>>>0);
- $inlen$addr$0$sub16 = $cmp17 ? $inlen$addr$039 : $sub16;
- $cmp2035 = ($inlen$addr$0$sub16|0)==(0);
- if (!($cmp2035)) {
- $i$036 = 0;
- while(1) {
- $arrayidx = (($in$addr$038) + ($i$036)|0);
- $14 = HEAP8[$arrayidx>>0]|0;
- $15 = HEAP32[$curlen>>2]|0;
- $add22 = (($15) + ($i$036))|0;
- $arrayidx23 = (((($md)) + 76|0) + ($add22)|0);
- HEAP8[$arrayidx23>>0] = $14;
- $inc = (($i$036) + 1)|0;
- $cmp20 = ($inc>>>0)<($inlen$addr$0$sub16>>>0);
- if ($cmp20) {
- $i$036 = $inc;
- } else {
- break;
- }
- }
- }
- $16 = HEAP32[$curlen>>2]|0;
- $add25 = (($16) + ($inlen$addr$0$sub16))|0;
- HEAP32[$curlen>>2] = $add25;
- $add$ptr26 = (($in$addr$038) + ($inlen$addr$0$sub16)|0);
- $sub27 = (($inlen$addr$039) - ($inlen$addr$0$sub16))|0;
- $cmp29 = ($add25|0)==(128);
- if ($cmp29) {
- _sha512_compress($md,$arraydecay);
- $17 = $md;
- $18 = $17;
- $19 = HEAP32[$18>>2]|0;
- $20 = (($17) + 4)|0;
- $21 = $20;
- $22 = HEAP32[$21>>2]|0;
- $23 = (_i64Add(($19|0),($22|0),1024,0)|0);
- $24 = (getTempRet0() | 0);
- $25 = $md;
- $26 = $25;
- HEAP32[$26>>2] = $23;
- $27 = (($25) + 4)|0;
- $28 = $27;
- HEAP32[$28>>2] = $24;
- HEAP32[$curlen>>2] = 0;
- $in$addr$1 = $add$ptr26;$inlen$addr$1 = $sub27;
- } else {
- $in$addr$1 = $add$ptr26;$inlen$addr$1 = $sub27;
- }
- }
- $cmp7 = ($inlen$addr$1|0)==(0);
- if ($cmp7) {
- $retval$0 = 0;
- break;
- } else {
- $in$addr$038 = $in$addr$1;$inlen$addr$039 = $inlen$addr$1;
- }
- }
- return ($retval$0|0);
-}
-function _sha512_compress($md,$buf) {
- $md = $md|0;
- $buf = $buf|0;
- var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0;
- var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0;
- var $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, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0;
- var $129 = 0, $13 = 0, $130 = 0, $131 = 0, $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;
- var $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0;
- var $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0;
- var $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0;
- var $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0;
- var $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0;
- var $237 = 0, $238 = 0, $239 = 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, $251 = 0, $252 = 0, $253 = 0, $254 = 0;
- var $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0;
- var $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0;
- var $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0;
- var $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0;
- var $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0;
- var $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0;
- var $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0;
- var $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0;
- var $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0;
- var $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0;
- var $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0;
- var $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0;
- var $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0;
- var $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0;
- var $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0;
- var $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0;
- var $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0;
- var $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0;
- var $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0;
- var $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0;
- var $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0;
- var $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0;
- var $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0;
- var $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0;
- var $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0;
- var $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0;
- var $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0;
- var $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0;
- var $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0;
- var $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0;
- var $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0;
- var $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0;
- var $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0;
- var $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0;
- var $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0;
- var $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0;
- var $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0;
- var $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0;
- var $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0;
- var $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0;
- var $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0;
- var $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $S = 0, $W = 0, $add$ptr = 0, $add209 = 0, $add273 = 0, $add337 = 0, $add401 = 0, $add465 = 0, $add529 = 0, $add593 = 0, $add631 = 0, $arrayidx108 = 0, $arrayidx110 = 0, $arrayidx118 = 0;
- var $arrayidx119 = 0, $arrayidx137 = 0, $arrayidx139 = 0, $arrayidx146 = 0, $arrayidx149 = 0, $arrayidx16 = 0, $arrayidx169 = 0, $arrayidx171 = 0, $arrayidx178 = 0, $arrayidx210 = 0, $arrayidx213 = 0, $arrayidx24 = 0, $arrayidx274 = 0, $arrayidx277 = 0, $arrayidx32 = 0, $arrayidx338 = 0, $arrayidx341 = 0, $arrayidx40 = 0, $arrayidx402 = 0, $arrayidx405 = 0;
- var $arrayidx466 = 0, $arrayidx469 = 0, $arrayidx48 = 0, $arrayidx530 = 0, $arrayidx533 = 0, $arrayidx56 = 0, $arrayidx594 = 0, $arrayidx597 = 0, $arrayidx61 = 0, $arrayidx638 = 0, $arrayidx638$1 = 0, $arrayidx638$2 = 0, $arrayidx638$3 = 0, $arrayidx638$4 = 0, $arrayidx638$5 = 0, $arrayidx638$6 = 0, $arrayidx638$7 = 0, $arrayidx639$1 = 0, $arrayidx639$2 = 0, $arrayidx639$3 = 0;
- var $arrayidx639$4 = 0, $arrayidx639$5 = 0, $arrayidx639$6 = 0, $arrayidx639$7 = 0, $arrayidx69 = 0, $arrayidx86 = 0, $arrayidx88 = 0, $arrayidx9 = 0, $cmp115 = 0, $exitcond = 0, $exitcond14 = 0, $i$112 = 0, $i$211 = 0, $i$32 = 0, $inc112 = 0, $inc63 = 0, $mul = 0, $scevgep = 0, $sub = 0, $sub107 = 0;
- var $sub85 = 0, $sub87 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 704|0;
- $S = sp + 640|0;
- $W = sp;
- $scevgep = ((($md)) + 8|0);
- dest=$S; src=$scevgep; 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));
- $i$112 = 0;
- while(1) {
- $mul = $i$112 << 3;
- $add$ptr = (($buf) + ($mul)|0);
- $0 = HEAP8[$add$ptr>>0]|0;
- $1 = $0&255;
- $2 = (_bitshift64Shl(($1|0),0,56)|0);
- $3 = (getTempRet0() | 0);
- $arrayidx9 = ((($add$ptr)) + 1|0);
- $4 = HEAP8[$arrayidx9>>0]|0;
- $5 = $4&255;
- $6 = (_bitshift64Shl(($5|0),0,48)|0);
- $7 = (getTempRet0() | 0);
- $8 = $6 | $2;
- $9 = $7 | $3;
- $arrayidx16 = ((($add$ptr)) + 2|0);
- $10 = HEAP8[$arrayidx16>>0]|0;
- $11 = $10&255;
- $12 = (_bitshift64Shl(($11|0),0,40)|0);
- $13 = (getTempRet0() | 0);
- $14 = $8 | $12;
- $15 = $9 | $13;
- $arrayidx24 = ((($add$ptr)) + 3|0);
- $16 = HEAP8[$arrayidx24>>0]|0;
- $17 = $16&255;
- $18 = $15 | $17;
- $arrayidx32 = ((($add$ptr)) + 4|0);
- $19 = HEAP8[$arrayidx32>>0]|0;
- $20 = $19&255;
- $21 = (_bitshift64Shl(($20|0),0,24)|0);
- $22 = (getTempRet0() | 0);
- $23 = $14 | $21;
- $24 = $18 | $22;
- $arrayidx40 = ((($add$ptr)) + 5|0);
- $25 = HEAP8[$arrayidx40>>0]|0;
- $26 = $25&255;
- $27 = (_bitshift64Shl(($26|0),0,16)|0);
- $28 = (getTempRet0() | 0);
- $29 = $23 | $27;
- $30 = $24 | $28;
- $arrayidx48 = ((($add$ptr)) + 6|0);
- $31 = HEAP8[$arrayidx48>>0]|0;
- $32 = $31&255;
- $33 = (_bitshift64Shl(($32|0),0,8)|0);
- $34 = (getTempRet0() | 0);
- $35 = $29 | $33;
- $36 = $30 | $34;
- $arrayidx56 = ((($add$ptr)) + 7|0);
- $37 = HEAP8[$arrayidx56>>0]|0;
- $38 = $37&255;
- $39 = $35 | $38;
- $arrayidx61 = (($W) + ($i$112<<3)|0);
- $40 = $arrayidx61;
- $41 = $40;
- HEAP32[$41>>2] = $39;
- $42 = (($40) + 4)|0;
- $43 = $42;
- HEAP32[$43>>2] = $36;
- $inc63 = (($i$112) + 1)|0;
- $exitcond14 = ($inc63|0)==(16);
- if ($exitcond14) {
- break;
- } else {
- $i$112 = $inc63;
- }
- }
- $i$211 = 16;
- while(1) {
- $sub = (($i$211) + -2)|0;
- $arrayidx69 = (($W) + ($sub<<3)|0);
- $44 = $arrayidx69;
- $45 = $44;
- $46 = HEAP32[$45>>2]|0;
- $47 = (($44) + 4)|0;
- $48 = $47;
- $49 = HEAP32[$48>>2]|0;
- $50 = (_bitshift64Lshr(($46|0),($49|0),19)|0);
- $51 = (getTempRet0() | 0);
- $52 = (_bitshift64Shl(($46|0),($49|0),45)|0);
- $53 = (getTempRet0() | 0);
- $54 = $50 | $52;
- $55 = $51 | $53;
- $56 = (_bitshift64Lshr(($46|0),($49|0),61)|0);
- $57 = (getTempRet0() | 0);
- $58 = (_bitshift64Shl(($46|0),($49|0),3)|0);
- $59 = (getTempRet0() | 0);
- $60 = $56 | $58;
- $61 = $57 | $59;
- $62 = (_bitshift64Lshr(($46|0),($49|0),6)|0);
- $63 = (getTempRet0() | 0);
- $64 = $60 ^ $62;
- $65 = $61 ^ $63;
- $66 = $64 ^ $54;
- $67 = $65 ^ $55;
- $sub85 = (($i$211) + -7)|0;
- $arrayidx86 = (($W) + ($sub85<<3)|0);
- $68 = $arrayidx86;
- $69 = $68;
- $70 = HEAP32[$69>>2]|0;
- $71 = (($68) + 4)|0;
- $72 = $71;
- $73 = HEAP32[$72>>2]|0;
- $sub87 = (($i$211) + -15)|0;
- $arrayidx88 = (($W) + ($sub87<<3)|0);
- $74 = $arrayidx88;
- $75 = $74;
- $76 = HEAP32[$75>>2]|0;
- $77 = (($74) + 4)|0;
- $78 = $77;
- $79 = HEAP32[$78>>2]|0;
- $80 = (_bitshift64Lshr(($76|0),($79|0),1)|0);
- $81 = (getTempRet0() | 0);
- $82 = (_bitshift64Shl(($76|0),($79|0),63)|0);
- $83 = (getTempRet0() | 0);
- $84 = $80 | $82;
- $85 = $81 | $83;
- $86 = (_bitshift64Lshr(($76|0),($79|0),8)|0);
- $87 = (getTempRet0() | 0);
- $88 = (_bitshift64Shl(($76|0),($79|0),56)|0);
- $89 = (getTempRet0() | 0);
- $90 = $86 | $88;
- $91 = $87 | $89;
- $92 = (_bitshift64Lshr(($76|0),($79|0),7)|0);
- $93 = (getTempRet0() | 0);
- $94 = $90 ^ $92;
- $95 = $91 ^ $93;
- $96 = $94 ^ $84;
- $97 = $95 ^ $85;
- $sub107 = (($i$211) + -16)|0;
- $arrayidx108 = (($W) + ($sub107<<3)|0);
- $98 = $arrayidx108;
- $99 = $98;
- $100 = HEAP32[$99>>2]|0;
- $101 = (($98) + 4)|0;
- $102 = $101;
- $103 = HEAP32[$102>>2]|0;
- $104 = (_i64Add(($100|0),($103|0),($70|0),($73|0))|0);
- $105 = (getTempRet0() | 0);
- $106 = (_i64Add(($104|0),($105|0),($66|0),($67|0))|0);
- $107 = (getTempRet0() | 0);
- $108 = (_i64Add(($106|0),($107|0),($96|0),($97|0))|0);
- $109 = (getTempRet0() | 0);
- $arrayidx110 = (($W) + ($i$211<<3)|0);
- $110 = $arrayidx110;
- $111 = $110;
- HEAP32[$111>>2] = $108;
- $112 = (($110) + 4)|0;
- $113 = $112;
- HEAP32[$113>>2] = $109;
- $inc112 = (($i$211) + 1)|0;
- $exitcond = ($inc112|0)==(80);
- if ($exitcond) {
- break;
- } else {
- $i$211 = $inc112;
- }
- }
- $arrayidx118 = ((($S)) + 56|0);
- $arrayidx119 = ((($S)) + 32|0);
- $arrayidx137 = ((($S)) + 48|0);
- $arrayidx139 = ((($S)) + 40|0);
- $arrayidx169 = ((($S)) + 8|0);
- $arrayidx171 = ((($S)) + 16|0);
- $arrayidx178 = ((($S)) + 24|0);
- $114 = $arrayidx118;
- $115 = $114;
- $116 = HEAP32[$115>>2]|0;
- $117 = (($114) + 4)|0;
- $118 = $117;
- $119 = HEAP32[$118>>2]|0;
- $120 = $arrayidx119;
- $121 = $120;
- $122 = HEAP32[$121>>2]|0;
- $123 = (($120) + 4)|0;
- $124 = $123;
- $125 = HEAP32[$124>>2]|0;
- $126 = $arrayidx137;
- $127 = $126;
- $128 = HEAP32[$127>>2]|0;
- $129 = (($126) + 4)|0;
- $130 = $129;
- $131 = HEAP32[$130>>2]|0;
- $132 = $arrayidx139;
- $133 = $132;
- $134 = HEAP32[$133>>2]|0;
- $135 = (($132) + 4)|0;
- $136 = $135;
- $137 = HEAP32[$136>>2]|0;
- $138 = $S;
- $139 = $138;
- $140 = HEAP32[$139>>2]|0;
- $141 = (($138) + 4)|0;
- $142 = $141;
- $143 = HEAP32[$142>>2]|0;
- $144 = $arrayidx169;
- $145 = $144;
- $146 = HEAP32[$145>>2]|0;
- $147 = (($144) + 4)|0;
- $148 = $147;
- $149 = HEAP32[$148>>2]|0;
- $150 = $arrayidx171;
- $151 = $150;
- $152 = HEAP32[$151>>2]|0;
- $153 = (($150) + 4)|0;
- $154 = $153;
- $155 = HEAP32[$154>>2]|0;
- $156 = $arrayidx178;
- $157 = $156;
- $158 = HEAP32[$157>>2]|0;
- $159 = (($156) + 4)|0;
- $160 = $159;
- $161 = HEAP32[$160>>2]|0;
- $162 = $122;$163 = $125;$187 = $134;$188 = $128;$190 = $137;$191 = $131;$208 = $116;$209 = $119;$218 = $140;$219 = $143;$243 = $146;$245 = $149;$247 = $152;$249 = $155;$254 = $158;$255 = $161;$i$32 = 0;
- while(1) {
- $164 = (_bitshift64Lshr(($162|0),($163|0),14)|0);
- $165 = (getTempRet0() | 0);
- $166 = (_bitshift64Shl(($162|0),($163|0),50)|0);
- $167 = (getTempRet0() | 0);
- $168 = $164 | $166;
- $169 = $165 | $167;
- $170 = (_bitshift64Lshr(($162|0),($163|0),18)|0);
- $171 = (getTempRet0() | 0);
- $172 = (_bitshift64Shl(($162|0),($163|0),46)|0);
- $173 = (getTempRet0() | 0);
- $174 = $170 | $172;
- $175 = $171 | $173;
- $176 = $168 ^ $174;
- $177 = $169 ^ $175;
- $178 = (_bitshift64Lshr(($162|0),($163|0),41)|0);
- $179 = (getTempRet0() | 0);
- $180 = (_bitshift64Shl(($162|0),($163|0),23)|0);
- $181 = (getTempRet0() | 0);
- $182 = $178 | $180;
- $183 = $179 | $181;
- $184 = $176 ^ $182;
- $185 = $177 ^ $183;
- $186 = $187 ^ $188;
- $189 = $190 ^ $191;
- $192 = $186 & $162;
- $193 = $189 & $163;
- $194 = $192 ^ $188;
- $195 = $193 ^ $191;
- $arrayidx146 = (31840 + ($i$32<<3)|0);
- $196 = $arrayidx146;
- $197 = $196;
- $198 = HEAP32[$197>>2]|0;
- $199 = (($196) + 4)|0;
- $200 = $199;
- $201 = HEAP32[$200>>2]|0;
- $arrayidx149 = (($W) + ($i$32<<3)|0);
- $202 = $arrayidx149;
- $203 = $202;
- $204 = HEAP32[$203>>2]|0;
- $205 = (($202) + 4)|0;
- $206 = $205;
- $207 = HEAP32[$206>>2]|0;
- $210 = (_i64Add(($198|0),($201|0),($208|0),($209|0))|0);
- $211 = (getTempRet0() | 0);
- $212 = (_i64Add(($210|0),($211|0),($184|0),($185|0))|0);
- $213 = (getTempRet0() | 0);
- $214 = (_i64Add(($212|0),($213|0),($204|0),($207|0))|0);
- $215 = (getTempRet0() | 0);
- $216 = (_i64Add(($214|0),($215|0),($194|0),($195|0))|0);
- $217 = (getTempRet0() | 0);
- $220 = (_bitshift64Lshr(($218|0),($219|0),28)|0);
- $221 = (getTempRet0() | 0);
- $222 = (_bitshift64Shl(($218|0),($219|0),36)|0);
- $223 = (getTempRet0() | 0);
- $224 = $220 | $222;
- $225 = $221 | $223;
- $226 = (_bitshift64Lshr(($218|0),($219|0),34)|0);
- $227 = (getTempRet0() | 0);
- $228 = (_bitshift64Shl(($218|0),($219|0),30)|0);
- $229 = (getTempRet0() | 0);
- $230 = $226 | $228;
- $231 = $227 | $229;
- $232 = $224 ^ $230;
- $233 = $225 ^ $231;
- $234 = (_bitshift64Lshr(($218|0),($219|0),39)|0);
- $235 = (getTempRet0() | 0);
- $236 = (_bitshift64Shl(($218|0),($219|0),25)|0);
- $237 = (getTempRet0() | 0);
- $238 = $234 | $236;
- $239 = $235 | $237;
- $240 = $232 ^ $238;
- $241 = $233 ^ $239;
- $242 = $243 | $218;
- $244 = $245 | $219;
- $246 = $242 & $247;
- $248 = $244 & $249;
- $250 = $243 & $218;
- $251 = $245 & $219;
- $252 = $246 | $250;
- $253 = $248 | $251;
- $256 = (_i64Add(($254|0),($255|0),($216|0),($217|0))|0);
- $257 = (getTempRet0() | 0);
- $258 = (_i64Add(($252|0),($253|0),($216|0),($217|0))|0);
- $259 = (getTempRet0() | 0);
- $260 = (_i64Add(($258|0),($259|0),($240|0),($241|0))|0);
- $261 = (getTempRet0() | 0);
- $262 = (_bitshift64Lshr(($256|0),($257|0),14)|0);
- $263 = (getTempRet0() | 0);
- $264 = (_bitshift64Shl(($256|0),($257|0),50)|0);
- $265 = (getTempRet0() | 0);
- $266 = $262 | $264;
- $267 = $263 | $265;
- $268 = (_bitshift64Lshr(($256|0),($257|0),18)|0);
- $269 = (getTempRet0() | 0);
- $270 = (_bitshift64Shl(($256|0),($257|0),46)|0);
- $271 = (getTempRet0() | 0);
- $272 = $268 | $270;
- $273 = $269 | $271;
- $274 = $266 ^ $272;
- $275 = $267 ^ $273;
- $276 = (_bitshift64Lshr(($256|0),($257|0),41)|0);
- $277 = (getTempRet0() | 0);
- $278 = (_bitshift64Shl(($256|0),($257|0),23)|0);
- $279 = (getTempRet0() | 0);
- $280 = $276 | $278;
- $281 = $277 | $279;
- $282 = $274 ^ $280;
- $283 = $275 ^ $281;
- $284 = $187 ^ $162;
- $285 = $190 ^ $163;
- $286 = $256 & $284;
- $287 = $257 & $285;
- $288 = $286 ^ $187;
- $289 = $287 ^ $190;
- $add209 = $i$32 | 1;
- $arrayidx210 = (31840 + ($add209<<3)|0);
- $290 = $arrayidx210;
- $291 = $290;
- $292 = HEAP32[$291>>2]|0;
- $293 = (($290) + 4)|0;
- $294 = $293;
- $295 = HEAP32[$294>>2]|0;
- $arrayidx213 = (($W) + ($add209<<3)|0);
- $296 = $arrayidx213;
- $297 = $296;
- $298 = HEAP32[$297>>2]|0;
- $299 = (($296) + 4)|0;
- $300 = $299;
- $301 = HEAP32[$300>>2]|0;
- $302 = (_i64Add(($288|0),($289|0),($188|0),($191|0))|0);
- $303 = (getTempRet0() | 0);
- $304 = (_i64Add(($302|0),($303|0),($292|0),($295|0))|0);
- $305 = (getTempRet0() | 0);
- $306 = (_i64Add(($304|0),($305|0),($298|0),($301|0))|0);
- $307 = (getTempRet0() | 0);
- $308 = (_i64Add(($306|0),($307|0),($282|0),($283|0))|0);
- $309 = (getTempRet0() | 0);
- $310 = (_bitshift64Lshr(($260|0),($261|0),28)|0);
- $311 = (getTempRet0() | 0);
- $312 = (_bitshift64Shl(($260|0),($261|0),36)|0);
- $313 = (getTempRet0() | 0);
- $314 = $310 | $312;
- $315 = $311 | $313;
- $316 = (_bitshift64Lshr(($260|0),($261|0),34)|0);
- $317 = (getTempRet0() | 0);
- $318 = (_bitshift64Shl(($260|0),($261|0),30)|0);
- $319 = (getTempRet0() | 0);
- $320 = $316 | $318;
- $321 = $317 | $319;
- $322 = $314 ^ $320;
- $323 = $315 ^ $321;
- $324 = (_bitshift64Lshr(($260|0),($261|0),39)|0);
- $325 = (getTempRet0() | 0);
- $326 = (_bitshift64Shl(($260|0),($261|0),25)|0);
- $327 = (getTempRet0() | 0);
- $328 = $324 | $326;
- $329 = $325 | $327;
- $330 = $322 ^ $328;
- $331 = $323 ^ $329;
- $332 = $260 | $218;
- $333 = $261 | $219;
- $334 = $332 & $243;
- $335 = $333 & $245;
- $336 = $260 & $218;
- $337 = $261 & $219;
- $338 = $334 | $336;
- $339 = $335 | $337;
- $340 = (_i64Add(($330|0),($331|0),($338|0),($339|0))|0);
- $341 = (getTempRet0() | 0);
- $342 = (_i64Add(($308|0),($309|0),($247|0),($249|0))|0);
- $343 = (getTempRet0() | 0);
- $344 = (_i64Add(($340|0),($341|0),($308|0),($309|0))|0);
- $345 = (getTempRet0() | 0);
- $346 = (_bitshift64Lshr(($342|0),($343|0),14)|0);
- $347 = (getTempRet0() | 0);
- $348 = (_bitshift64Shl(($342|0),($343|0),50)|0);
- $349 = (getTempRet0() | 0);
- $350 = $346 | $348;
- $351 = $347 | $349;
- $352 = (_bitshift64Lshr(($342|0),($343|0),18)|0);
- $353 = (getTempRet0() | 0);
- $354 = (_bitshift64Shl(($342|0),($343|0),46)|0);
- $355 = (getTempRet0() | 0);
- $356 = $352 | $354;
- $357 = $353 | $355;
- $358 = $350 ^ $356;
- $359 = $351 ^ $357;
- $360 = (_bitshift64Lshr(($342|0),($343|0),41)|0);
- $361 = (getTempRet0() | 0);
- $362 = (_bitshift64Shl(($342|0),($343|0),23)|0);
- $363 = (getTempRet0() | 0);
- $364 = $360 | $362;
- $365 = $361 | $363;
- $366 = $358 ^ $364;
- $367 = $359 ^ $365;
- $368 = $256 ^ $162;
- $369 = $257 ^ $163;
- $370 = $342 & $368;
- $371 = $343 & $369;
- $372 = $370 ^ $162;
- $373 = $371 ^ $163;
- $add273 = $i$32 | 2;
- $arrayidx274 = (31840 + ($add273<<3)|0);
- $374 = $arrayidx274;
- $375 = $374;
- $376 = HEAP32[$375>>2]|0;
- $377 = (($374) + 4)|0;
- $378 = $377;
- $379 = HEAP32[$378>>2]|0;
- $arrayidx277 = (($W) + ($add273<<3)|0);
- $380 = $arrayidx277;
- $381 = $380;
- $382 = HEAP32[$381>>2]|0;
- $383 = (($380) + 4)|0;
- $384 = $383;
- $385 = HEAP32[$384>>2]|0;
- $386 = (_i64Add(($376|0),($379|0),($187|0),($190|0))|0);
- $387 = (getTempRet0() | 0);
- $388 = (_i64Add(($386|0),($387|0),($382|0),($385|0))|0);
- $389 = (getTempRet0() | 0);
- $390 = (_i64Add(($388|0),($389|0),($372|0),($373|0))|0);
- $391 = (getTempRet0() | 0);
- $392 = (_i64Add(($390|0),($391|0),($366|0),($367|0))|0);
- $393 = (getTempRet0() | 0);
- $394 = (_bitshift64Lshr(($344|0),($345|0),28)|0);
- $395 = (getTempRet0() | 0);
- $396 = (_bitshift64Shl(($344|0),($345|0),36)|0);
- $397 = (getTempRet0() | 0);
- $398 = $394 | $396;
- $399 = $395 | $397;
- $400 = (_bitshift64Lshr(($344|0),($345|0),34)|0);
- $401 = (getTempRet0() | 0);
- $402 = (_bitshift64Shl(($344|0),($345|0),30)|0);
- $403 = (getTempRet0() | 0);
- $404 = $400 | $402;
- $405 = $401 | $403;
- $406 = $398 ^ $404;
- $407 = $399 ^ $405;
- $408 = (_bitshift64Lshr(($344|0),($345|0),39)|0);
- $409 = (getTempRet0() | 0);
- $410 = (_bitshift64Shl(($344|0),($345|0),25)|0);
- $411 = (getTempRet0() | 0);
- $412 = $408 | $410;
- $413 = $409 | $411;
- $414 = $406 ^ $412;
- $415 = $407 ^ $413;
- $416 = $344 | $260;
- $417 = $345 | $261;
- $418 = $416 & $218;
- $419 = $417 & $219;
- $420 = $344 & $260;
- $421 = $345 & $261;
- $422 = $418 | $420;
- $423 = $419 | $421;
- $424 = (_i64Add(($414|0),($415|0),($422|0),($423|0))|0);
- $425 = (getTempRet0() | 0);
- $426 = (_i64Add(($392|0),($393|0),($243|0),($245|0))|0);
- $427 = (getTempRet0() | 0);
- $428 = (_i64Add(($424|0),($425|0),($392|0),($393|0))|0);
- $429 = (getTempRet0() | 0);
- $430 = (_bitshift64Lshr(($426|0),($427|0),14)|0);
- $431 = (getTempRet0() | 0);
- $432 = (_bitshift64Shl(($426|0),($427|0),50)|0);
- $433 = (getTempRet0() | 0);
- $434 = $430 | $432;
- $435 = $431 | $433;
- $436 = (_bitshift64Lshr(($426|0),($427|0),18)|0);
- $437 = (getTempRet0() | 0);
- $438 = (_bitshift64Shl(($426|0),($427|0),46)|0);
- $439 = (getTempRet0() | 0);
- $440 = $436 | $438;
- $441 = $437 | $439;
- $442 = $434 ^ $440;
- $443 = $435 ^ $441;
- $444 = (_bitshift64Lshr(($426|0),($427|0),41)|0);
- $445 = (getTempRet0() | 0);
- $446 = (_bitshift64Shl(($426|0),($427|0),23)|0);
- $447 = (getTempRet0() | 0);
- $448 = $444 | $446;
- $449 = $445 | $447;
- $450 = $442 ^ $448;
- $451 = $443 ^ $449;
- $452 = $342 ^ $256;
- $453 = $343 ^ $257;
- $454 = $426 & $452;
- $455 = $427 & $453;
- $456 = $454 ^ $256;
- $457 = $455 ^ $257;
- $add337 = $i$32 | 3;
- $arrayidx338 = (31840 + ($add337<<3)|0);
- $458 = $arrayidx338;
- $459 = $458;
- $460 = HEAP32[$459>>2]|0;
- $461 = (($458) + 4)|0;
- $462 = $461;
- $463 = HEAP32[$462>>2]|0;
- $arrayidx341 = (($W) + ($add337<<3)|0);
- $464 = $arrayidx341;
- $465 = $464;
- $466 = HEAP32[$465>>2]|0;
- $467 = (($464) + 4)|0;
- $468 = $467;
- $469 = HEAP32[$468>>2]|0;
- $470 = (_i64Add(($460|0),($463|0),($162|0),($163|0))|0);
- $471 = (getTempRet0() | 0);
- $472 = (_i64Add(($470|0),($471|0),($466|0),($469|0))|0);
- $473 = (getTempRet0() | 0);
- $474 = (_i64Add(($472|0),($473|0),($456|0),($457|0))|0);
- $475 = (getTempRet0() | 0);
- $476 = (_i64Add(($474|0),($475|0),($450|0),($451|0))|0);
- $477 = (getTempRet0() | 0);
- $478 = (_bitshift64Lshr(($428|0),($429|0),28)|0);
- $479 = (getTempRet0() | 0);
- $480 = (_bitshift64Shl(($428|0),($429|0),36)|0);
- $481 = (getTempRet0() | 0);
- $482 = $478 | $480;
- $483 = $479 | $481;
- $484 = (_bitshift64Lshr(($428|0),($429|0),34)|0);
- $485 = (getTempRet0() | 0);
- $486 = (_bitshift64Shl(($428|0),($429|0),30)|0);
- $487 = (getTempRet0() | 0);
- $488 = $484 | $486;
- $489 = $485 | $487;
- $490 = $482 ^ $488;
- $491 = $483 ^ $489;
- $492 = (_bitshift64Lshr(($428|0),($429|0),39)|0);
- $493 = (getTempRet0() | 0);
- $494 = (_bitshift64Shl(($428|0),($429|0),25)|0);
- $495 = (getTempRet0() | 0);
- $496 = $492 | $494;
- $497 = $493 | $495;
- $498 = $490 ^ $496;
- $499 = $491 ^ $497;
- $500 = $428 | $344;
- $501 = $429 | $345;
- $502 = $500 & $260;
- $503 = $501 & $261;
- $504 = $428 & $344;
- $505 = $429 & $345;
- $506 = $502 | $504;
- $507 = $503 | $505;
- $508 = (_i64Add(($498|0),($499|0),($506|0),($507|0))|0);
- $509 = (getTempRet0() | 0);
- $510 = (_i64Add(($476|0),($477|0),($218|0),($219|0))|0);
- $511 = (getTempRet0() | 0);
- $512 = (_i64Add(($508|0),($509|0),($476|0),($477|0))|0);
- $513 = (getTempRet0() | 0);
- $514 = (_bitshift64Lshr(($510|0),($511|0),14)|0);
- $515 = (getTempRet0() | 0);
- $516 = (_bitshift64Shl(($510|0),($511|0),50)|0);
- $517 = (getTempRet0() | 0);
- $518 = $514 | $516;
- $519 = $515 | $517;
- $520 = (_bitshift64Lshr(($510|0),($511|0),18)|0);
- $521 = (getTempRet0() | 0);
- $522 = (_bitshift64Shl(($510|0),($511|0),46)|0);
- $523 = (getTempRet0() | 0);
- $524 = $520 | $522;
- $525 = $521 | $523;
- $526 = $518 ^ $524;
- $527 = $519 ^ $525;
- $528 = (_bitshift64Lshr(($510|0),($511|0),41)|0);
- $529 = (getTempRet0() | 0);
- $530 = (_bitshift64Shl(($510|0),($511|0),23)|0);
- $531 = (getTempRet0() | 0);
- $532 = $528 | $530;
- $533 = $529 | $531;
- $534 = $526 ^ $532;
- $535 = $527 ^ $533;
- $536 = $426 ^ $342;
- $537 = $427 ^ $343;
- $538 = $510 & $536;
- $539 = $511 & $537;
- $540 = $538 ^ $342;
- $541 = $539 ^ $343;
- $add401 = $i$32 | 4;
- $arrayidx402 = (31840 + ($add401<<3)|0);
- $542 = $arrayidx402;
- $543 = $542;
- $544 = HEAP32[$543>>2]|0;
- $545 = (($542) + 4)|0;
- $546 = $545;
- $547 = HEAP32[$546>>2]|0;
- $arrayidx405 = (($W) + ($add401<<3)|0);
- $548 = $arrayidx405;
- $549 = $548;
- $550 = HEAP32[$549>>2]|0;
- $551 = (($548) + 4)|0;
- $552 = $551;
- $553 = HEAP32[$552>>2]|0;
- $554 = (_i64Add(($544|0),($547|0),($256|0),($257|0))|0);
- $555 = (getTempRet0() | 0);
- $556 = (_i64Add(($554|0),($555|0),($550|0),($553|0))|0);
- $557 = (getTempRet0() | 0);
- $558 = (_i64Add(($556|0),($557|0),($540|0),($541|0))|0);
- $559 = (getTempRet0() | 0);
- $560 = (_i64Add(($558|0),($559|0),($534|0),($535|0))|0);
- $561 = (getTempRet0() | 0);
- $562 = (_bitshift64Lshr(($512|0),($513|0),28)|0);
- $563 = (getTempRet0() | 0);
- $564 = (_bitshift64Shl(($512|0),($513|0),36)|0);
- $565 = (getTempRet0() | 0);
- $566 = $562 | $564;
- $567 = $563 | $565;
- $568 = (_bitshift64Lshr(($512|0),($513|0),34)|0);
- $569 = (getTempRet0() | 0);
- $570 = (_bitshift64Shl(($512|0),($513|0),30)|0);
- $571 = (getTempRet0() | 0);
- $572 = $568 | $570;
- $573 = $569 | $571;
- $574 = $566 ^ $572;
- $575 = $567 ^ $573;
- $576 = (_bitshift64Lshr(($512|0),($513|0),39)|0);
- $577 = (getTempRet0() | 0);
- $578 = (_bitshift64Shl(($512|0),($513|0),25)|0);
- $579 = (getTempRet0() | 0);
- $580 = $576 | $578;
- $581 = $577 | $579;
- $582 = $574 ^ $580;
- $583 = $575 ^ $581;
- $584 = $512 | $428;
- $585 = $513 | $429;
- $586 = $584 & $344;
- $587 = $585 & $345;
- $588 = $512 & $428;
- $589 = $513 & $429;
- $590 = $586 | $588;
- $591 = $587 | $589;
- $592 = (_i64Add(($582|0),($583|0),($590|0),($591|0))|0);
- $593 = (getTempRet0() | 0);
- $594 = (_i64Add(($560|0),($561|0),($260|0),($261|0))|0);
- $595 = (getTempRet0() | 0);
- $596 = (_i64Add(($592|0),($593|0),($560|0),($561|0))|0);
- $597 = (getTempRet0() | 0);
- $598 = (_bitshift64Lshr(($594|0),($595|0),14)|0);
- $599 = (getTempRet0() | 0);
- $600 = (_bitshift64Shl(($594|0),($595|0),50)|0);
- $601 = (getTempRet0() | 0);
- $602 = $598 | $600;
- $603 = $599 | $601;
- $604 = (_bitshift64Lshr(($594|0),($595|0),18)|0);
- $605 = (getTempRet0() | 0);
- $606 = (_bitshift64Shl(($594|0),($595|0),46)|0);
- $607 = (getTempRet0() | 0);
- $608 = $604 | $606;
- $609 = $605 | $607;
- $610 = $602 ^ $608;
- $611 = $603 ^ $609;
- $612 = (_bitshift64Lshr(($594|0),($595|0),41)|0);
- $613 = (getTempRet0() | 0);
- $614 = (_bitshift64Shl(($594|0),($595|0),23)|0);
- $615 = (getTempRet0() | 0);
- $616 = $612 | $614;
- $617 = $613 | $615;
- $618 = $610 ^ $616;
- $619 = $611 ^ $617;
- $620 = $510 ^ $426;
- $621 = $511 ^ $427;
- $622 = $594 & $620;
- $623 = $595 & $621;
- $624 = $622 ^ $426;
- $625 = $623 ^ $427;
- $add465 = $i$32 | 5;
- $arrayidx466 = (31840 + ($add465<<3)|0);
- $626 = $arrayidx466;
- $627 = $626;
- $628 = HEAP32[$627>>2]|0;
- $629 = (($626) + 4)|0;
- $630 = $629;
- $631 = HEAP32[$630>>2]|0;
- $arrayidx469 = (($W) + ($add465<<3)|0);
- $632 = $arrayidx469;
- $633 = $632;
- $634 = HEAP32[$633>>2]|0;
- $635 = (($632) + 4)|0;
- $636 = $635;
- $637 = HEAP32[$636>>2]|0;
- $638 = (_i64Add(($628|0),($631|0),($342|0),($343|0))|0);
- $639 = (getTempRet0() | 0);
- $640 = (_i64Add(($638|0),($639|0),($634|0),($637|0))|0);
- $641 = (getTempRet0() | 0);
- $642 = (_i64Add(($640|0),($641|0),($624|0),($625|0))|0);
- $643 = (getTempRet0() | 0);
- $644 = (_i64Add(($642|0),($643|0),($618|0),($619|0))|0);
- $645 = (getTempRet0() | 0);
- $646 = (_bitshift64Lshr(($596|0),($597|0),28)|0);
- $647 = (getTempRet0() | 0);
- $648 = (_bitshift64Shl(($596|0),($597|0),36)|0);
- $649 = (getTempRet0() | 0);
- $650 = $646 | $648;
- $651 = $647 | $649;
- $652 = (_bitshift64Lshr(($596|0),($597|0),34)|0);
- $653 = (getTempRet0() | 0);
- $654 = (_bitshift64Shl(($596|0),($597|0),30)|0);
- $655 = (getTempRet0() | 0);
- $656 = $652 | $654;
- $657 = $653 | $655;
- $658 = $650 ^ $656;
- $659 = $651 ^ $657;
- $660 = (_bitshift64Lshr(($596|0),($597|0),39)|0);
- $661 = (getTempRet0() | 0);
- $662 = (_bitshift64Shl(($596|0),($597|0),25)|0);
- $663 = (getTempRet0() | 0);
- $664 = $660 | $662;
- $665 = $661 | $663;
- $666 = $658 ^ $664;
- $667 = $659 ^ $665;
- $668 = $596 | $512;
- $669 = $597 | $513;
- $670 = $668 & $428;
- $671 = $669 & $429;
- $672 = $596 & $512;
- $673 = $597 & $513;
- $674 = $670 | $672;
- $675 = $671 | $673;
- $676 = (_i64Add(($666|0),($667|0),($674|0),($675|0))|0);
- $677 = (getTempRet0() | 0);
- $678 = (_i64Add(($644|0),($645|0),($344|0),($345|0))|0);
- $679 = (getTempRet0() | 0);
- $680 = (_i64Add(($676|0),($677|0),($644|0),($645|0))|0);
- $681 = (getTempRet0() | 0);
- $682 = (_bitshift64Lshr(($678|0),($679|0),14)|0);
- $683 = (getTempRet0() | 0);
- $684 = (_bitshift64Shl(($678|0),($679|0),50)|0);
- $685 = (getTempRet0() | 0);
- $686 = $682 | $684;
- $687 = $683 | $685;
- $688 = (_bitshift64Lshr(($678|0),($679|0),18)|0);
- $689 = (getTempRet0() | 0);
- $690 = (_bitshift64Shl(($678|0),($679|0),46)|0);
- $691 = (getTempRet0() | 0);
- $692 = $688 | $690;
- $693 = $689 | $691;
- $694 = $686 ^ $692;
- $695 = $687 ^ $693;
- $696 = (_bitshift64Lshr(($678|0),($679|0),41)|0);
- $697 = (getTempRet0() | 0);
- $698 = (_bitshift64Shl(($678|0),($679|0),23)|0);
- $699 = (getTempRet0() | 0);
- $700 = $696 | $698;
- $701 = $697 | $699;
- $702 = $694 ^ $700;
- $703 = $695 ^ $701;
- $704 = $594 ^ $510;
- $705 = $595 ^ $511;
- $706 = $678 & $704;
- $707 = $679 & $705;
- $708 = $706 ^ $510;
- $709 = $707 ^ $511;
- $add529 = $i$32 | 6;
- $arrayidx530 = (31840 + ($add529<<3)|0);
- $710 = $arrayidx530;
- $711 = $710;
- $712 = HEAP32[$711>>2]|0;
- $713 = (($710) + 4)|0;
- $714 = $713;
- $715 = HEAP32[$714>>2]|0;
- $arrayidx533 = (($W) + ($add529<<3)|0);
- $716 = $arrayidx533;
- $717 = $716;
- $718 = HEAP32[$717>>2]|0;
- $719 = (($716) + 4)|0;
- $720 = $719;
- $721 = HEAP32[$720>>2]|0;
- $722 = (_i64Add(($712|0),($715|0),($426|0),($427|0))|0);
- $723 = (getTempRet0() | 0);
- $724 = (_i64Add(($722|0),($723|0),($718|0),($721|0))|0);
- $725 = (getTempRet0() | 0);
- $726 = (_i64Add(($724|0),($725|0),($708|0),($709|0))|0);
- $727 = (getTempRet0() | 0);
- $728 = (_i64Add(($726|0),($727|0),($702|0),($703|0))|0);
- $729 = (getTempRet0() | 0);
- $730 = (_bitshift64Lshr(($680|0),($681|0),28)|0);
- $731 = (getTempRet0() | 0);
- $732 = (_bitshift64Shl(($680|0),($681|0),36)|0);
- $733 = (getTempRet0() | 0);
- $734 = $730 | $732;
- $735 = $731 | $733;
- $736 = (_bitshift64Lshr(($680|0),($681|0),34)|0);
- $737 = (getTempRet0() | 0);
- $738 = (_bitshift64Shl(($680|0),($681|0),30)|0);
- $739 = (getTempRet0() | 0);
- $740 = $736 | $738;
- $741 = $737 | $739;
- $742 = $734 ^ $740;
- $743 = $735 ^ $741;
- $744 = (_bitshift64Lshr(($680|0),($681|0),39)|0);
- $745 = (getTempRet0() | 0);
- $746 = (_bitshift64Shl(($680|0),($681|0),25)|0);
- $747 = (getTempRet0() | 0);
- $748 = $744 | $746;
- $749 = $745 | $747;
- $750 = $742 ^ $748;
- $751 = $743 ^ $749;
- $752 = $680 | $596;
- $753 = $681 | $597;
- $754 = $752 & $512;
- $755 = $753 & $513;
- $756 = $680 & $596;
- $757 = $681 & $597;
- $758 = $754 | $756;
- $759 = $755 | $757;
- $760 = (_i64Add(($750|0),($751|0),($758|0),($759|0))|0);
- $761 = (getTempRet0() | 0);
- $762 = (_i64Add(($728|0),($729|0),($428|0),($429|0))|0);
- $763 = (getTempRet0() | 0);
- $764 = (_i64Add(($760|0),($761|0),($728|0),($729|0))|0);
- $765 = (getTempRet0() | 0);
- $766 = (_bitshift64Lshr(($762|0),($763|0),14)|0);
- $767 = (getTempRet0() | 0);
- $768 = (_bitshift64Shl(($762|0),($763|0),50)|0);
- $769 = (getTempRet0() | 0);
- $770 = $766 | $768;
- $771 = $767 | $769;
- $772 = (_bitshift64Lshr(($762|0),($763|0),18)|0);
- $773 = (getTempRet0() | 0);
- $774 = (_bitshift64Shl(($762|0),($763|0),46)|0);
- $775 = (getTempRet0() | 0);
- $776 = $772 | $774;
- $777 = $773 | $775;
- $778 = $770 ^ $776;
- $779 = $771 ^ $777;
- $780 = (_bitshift64Lshr(($762|0),($763|0),41)|0);
- $781 = (getTempRet0() | 0);
- $782 = (_bitshift64Shl(($762|0),($763|0),23)|0);
- $783 = (getTempRet0() | 0);
- $784 = $780 | $782;
- $785 = $781 | $783;
- $786 = $778 ^ $784;
- $787 = $779 ^ $785;
- $788 = $678 ^ $594;
- $789 = $679 ^ $595;
- $790 = $762 & $788;
- $791 = $763 & $789;
- $792 = $790 ^ $594;
- $793 = $791 ^ $595;
- $add593 = $i$32 | 7;
- $arrayidx594 = (31840 + ($add593<<3)|0);
- $794 = $arrayidx594;
- $795 = $794;
- $796 = HEAP32[$795>>2]|0;
- $797 = (($794) + 4)|0;
- $798 = $797;
- $799 = HEAP32[$798>>2]|0;
- $arrayidx597 = (($W) + ($add593<<3)|0);
- $800 = $arrayidx597;
- $801 = $800;
- $802 = HEAP32[$801>>2]|0;
- $803 = (($800) + 4)|0;
- $804 = $803;
- $805 = HEAP32[$804>>2]|0;
- $806 = (_i64Add(($510|0),($511|0),($796|0),($799|0))|0);
- $807 = (getTempRet0() | 0);
- $808 = (_i64Add(($806|0),($807|0),($802|0),($805|0))|0);
- $809 = (getTempRet0() | 0);
- $810 = (_i64Add(($808|0),($809|0),($792|0),($793|0))|0);
- $811 = (getTempRet0() | 0);
- $812 = (_i64Add(($810|0),($811|0),($786|0),($787|0))|0);
- $813 = (getTempRet0() | 0);
- $814 = (_bitshift64Lshr(($764|0),($765|0),28)|0);
- $815 = (getTempRet0() | 0);
- $816 = (_bitshift64Shl(($764|0),($765|0),36)|0);
- $817 = (getTempRet0() | 0);
- $818 = $814 | $816;
- $819 = $815 | $817;
- $820 = (_bitshift64Lshr(($764|0),($765|0),34)|0);
- $821 = (getTempRet0() | 0);
- $822 = (_bitshift64Shl(($764|0),($765|0),30)|0);
- $823 = (getTempRet0() | 0);
- $824 = $820 | $822;
- $825 = $821 | $823;
- $826 = $818 ^ $824;
- $827 = $819 ^ $825;
- $828 = (_bitshift64Lshr(($764|0),($765|0),39)|0);
- $829 = (getTempRet0() | 0);
- $830 = (_bitshift64Shl(($764|0),($765|0),25)|0);
- $831 = (getTempRet0() | 0);
- $832 = $828 | $830;
- $833 = $829 | $831;
- $834 = $826 ^ $832;
- $835 = $827 ^ $833;
- $836 = $764 | $680;
- $837 = $765 | $681;
- $838 = $836 & $596;
- $839 = $837 & $597;
- $840 = $764 & $680;
- $841 = $765 & $681;
- $842 = $838 | $840;
- $843 = $839 | $841;
- $844 = (_i64Add(($834|0),($835|0),($842|0),($843|0))|0);
- $845 = (getTempRet0() | 0);
- $846 = (_i64Add(($812|0),($813|0),($512|0),($513|0))|0);
- $847 = (getTempRet0() | 0);
- $848 = (_i64Add(($844|0),($845|0),($812|0),($813|0))|0);
- $849 = (getTempRet0() | 0);
- $add631 = (($i$32) + 8)|0;
- $cmp115 = ($add631>>>0)<(80);
- if ($cmp115) {
- $162 = $846;$163 = $847;$187 = $762;$188 = $678;$190 = $763;$191 = $679;$208 = $594;$209 = $595;$218 = $848;$219 = $849;$243 = $764;$245 = $765;$247 = $680;$249 = $681;$254 = $596;$255 = $597;$i$32 = $add631;
- } else {
- break;
- }
- }
- $850 = $arrayidx118;
- $851 = $850;
- HEAP32[$851>>2] = $594;
- $852 = (($850) + 4)|0;
- $853 = $852;
- HEAP32[$853>>2] = $595;
- $854 = $arrayidx119;
- $855 = $854;
- HEAP32[$855>>2] = $846;
- $856 = (($854) + 4)|0;
- $857 = $856;
- HEAP32[$857>>2] = $847;
- $858 = $arrayidx137;
- $859 = $858;
- HEAP32[$859>>2] = $678;
- $860 = (($858) + 4)|0;
- $861 = $860;
- HEAP32[$861>>2] = $679;
- $862 = $arrayidx139;
- $863 = $862;
- HEAP32[$863>>2] = $762;
- $864 = (($862) + 4)|0;
- $865 = $864;
- HEAP32[$865>>2] = $763;
- $866 = $S;
- $867 = $866;
- HEAP32[$867>>2] = $848;
- $868 = (($866) + 4)|0;
- $869 = $868;
- HEAP32[$869>>2] = $849;
- $870 = $arrayidx169;
- $871 = $870;
- HEAP32[$871>>2] = $764;
- $872 = (($870) + 4)|0;
- $873 = $872;
- HEAP32[$873>>2] = $765;
- $874 = $arrayidx171;
- $875 = $874;
- HEAP32[$875>>2] = $680;
- $876 = (($874) + 4)|0;
- $877 = $876;
- HEAP32[$877>>2] = $681;
- $878 = $arrayidx178;
- $879 = $878;
- HEAP32[$879>>2] = $596;
- $880 = (($878) + 4)|0;
- $881 = $880;
- HEAP32[$881>>2] = $597;
- $arrayidx638 = ((($md)) + 8|0);
- $882 = $arrayidx638;
- $883 = $882;
- $884 = HEAP32[$883>>2]|0;
- $885 = (($882) + 4)|0;
- $886 = $885;
- $887 = HEAP32[$886>>2]|0;
- $888 = $S;
- $889 = $888;
- $890 = HEAP32[$889>>2]|0;
- $891 = (($888) + 4)|0;
- $892 = $891;
- $893 = HEAP32[$892>>2]|0;
- $894 = (_i64Add(($890|0),($893|0),($884|0),($887|0))|0);
- $895 = (getTempRet0() | 0);
- $896 = $arrayidx638;
- $897 = $896;
- HEAP32[$897>>2] = $894;
- $898 = (($896) + 4)|0;
- $899 = $898;
- HEAP32[$899>>2] = $895;
- $arrayidx638$1 = ((($md)) + 16|0);
- $900 = $arrayidx638$1;
- $901 = $900;
- $902 = HEAP32[$901>>2]|0;
- $903 = (($900) + 4)|0;
- $904 = $903;
- $905 = HEAP32[$904>>2]|0;
- $arrayidx639$1 = ((($S)) + 8|0);
- $906 = $arrayidx639$1;
- $907 = $906;
- $908 = HEAP32[$907>>2]|0;
- $909 = (($906) + 4)|0;
- $910 = $909;
- $911 = HEAP32[$910>>2]|0;
- $912 = (_i64Add(($908|0),($911|0),($902|0),($905|0))|0);
- $913 = (getTempRet0() | 0);
- $914 = $arrayidx638$1;
- $915 = $914;
- HEAP32[$915>>2] = $912;
- $916 = (($914) + 4)|0;
- $917 = $916;
- HEAP32[$917>>2] = $913;
- $arrayidx638$2 = ((($md)) + 24|0);
- $918 = $arrayidx638$2;
- $919 = $918;
- $920 = HEAP32[$919>>2]|0;
- $921 = (($918) + 4)|0;
- $922 = $921;
- $923 = HEAP32[$922>>2]|0;
- $arrayidx639$2 = ((($S)) + 16|0);
- $924 = $arrayidx639$2;
- $925 = $924;
- $926 = HEAP32[$925>>2]|0;
- $927 = (($924) + 4)|0;
- $928 = $927;
- $929 = HEAP32[$928>>2]|0;
- $930 = (_i64Add(($926|0),($929|0),($920|0),($923|0))|0);
- $931 = (getTempRet0() | 0);
- $932 = $arrayidx638$2;
- $933 = $932;
- HEAP32[$933>>2] = $930;
- $934 = (($932) + 4)|0;
- $935 = $934;
- HEAP32[$935>>2] = $931;
- $arrayidx638$3 = ((($md)) + 32|0);
- $936 = $arrayidx638$3;
- $937 = $936;
- $938 = HEAP32[$937>>2]|0;
- $939 = (($936) + 4)|0;
- $940 = $939;
- $941 = HEAP32[$940>>2]|0;
- $arrayidx639$3 = ((($S)) + 24|0);
- $942 = $arrayidx639$3;
- $943 = $942;
- $944 = HEAP32[$943>>2]|0;
- $945 = (($942) + 4)|0;
- $946 = $945;
- $947 = HEAP32[$946>>2]|0;
- $948 = (_i64Add(($944|0),($947|0),($938|0),($941|0))|0);
- $949 = (getTempRet0() | 0);
- $950 = $arrayidx638$3;
- $951 = $950;
- HEAP32[$951>>2] = $948;
- $952 = (($950) + 4)|0;
- $953 = $952;
- HEAP32[$953>>2] = $949;
- $arrayidx638$4 = ((($md)) + 40|0);
- $954 = $arrayidx638$4;
- $955 = $954;
- $956 = HEAP32[$955>>2]|0;
- $957 = (($954) + 4)|0;
- $958 = $957;
- $959 = HEAP32[$958>>2]|0;
- $arrayidx639$4 = ((($S)) + 32|0);
- $960 = $arrayidx639$4;
- $961 = $960;
- $962 = HEAP32[$961>>2]|0;
- $963 = (($960) + 4)|0;
- $964 = $963;
- $965 = HEAP32[$964>>2]|0;
- $966 = (_i64Add(($962|0),($965|0),($956|0),($959|0))|0);
- $967 = (getTempRet0() | 0);
- $968 = $arrayidx638$4;
- $969 = $968;
- HEAP32[$969>>2] = $966;
- $970 = (($968) + 4)|0;
- $971 = $970;
- HEAP32[$971>>2] = $967;
- $arrayidx638$5 = ((($md)) + 48|0);
- $972 = $arrayidx638$5;
- $973 = $972;
- $974 = HEAP32[$973>>2]|0;
- $975 = (($972) + 4)|0;
- $976 = $975;
- $977 = HEAP32[$976>>2]|0;
- $arrayidx639$5 = ((($S)) + 40|0);
- $978 = $arrayidx639$5;
- $979 = $978;
- $980 = HEAP32[$979>>2]|0;
- $981 = (($978) + 4)|0;
- $982 = $981;
- $983 = HEAP32[$982>>2]|0;
- $984 = (_i64Add(($980|0),($983|0),($974|0),($977|0))|0);
- $985 = (getTempRet0() | 0);
- $986 = $arrayidx638$5;
- $987 = $986;
- HEAP32[$987>>2] = $984;
- $988 = (($986) + 4)|0;
- $989 = $988;
- HEAP32[$989>>2] = $985;
- $arrayidx638$6 = ((($md)) + 56|0);
- $990 = $arrayidx638$6;
- $991 = $990;
- $992 = HEAP32[$991>>2]|0;
- $993 = (($990) + 4)|0;
- $994 = $993;
- $995 = HEAP32[$994>>2]|0;
- $arrayidx639$6 = ((($S)) + 48|0);
- $996 = $arrayidx639$6;
- $997 = $996;
- $998 = HEAP32[$997>>2]|0;
- $999 = (($996) + 4)|0;
- $1000 = $999;
- $1001 = HEAP32[$1000>>2]|0;
- $1002 = (_i64Add(($998|0),($1001|0),($992|0),($995|0))|0);
- $1003 = (getTempRet0() | 0);
- $1004 = $arrayidx638$6;
- $1005 = $1004;
- HEAP32[$1005>>2] = $1002;
- $1006 = (($1004) + 4)|0;
- $1007 = $1006;
- HEAP32[$1007>>2] = $1003;
- $arrayidx638$7 = ((($md)) + 64|0);
- $1008 = $arrayidx638$7;
- $1009 = $1008;
- $1010 = HEAP32[$1009>>2]|0;
- $1011 = (($1008) + 4)|0;
- $1012 = $1011;
- $1013 = HEAP32[$1012>>2]|0;
- $arrayidx639$7 = ((($S)) + 56|0);
- $1014 = $arrayidx639$7;
- $1015 = $1014;
- $1016 = HEAP32[$1015>>2]|0;
- $1017 = (($1014) + 4)|0;
- $1018 = $1017;
- $1019 = HEAP32[$1018>>2]|0;
- $1020 = (_i64Add(($1016|0),($1019|0),($1010|0),($1013|0))|0);
- $1021 = (getTempRet0() | 0);
- $1022 = $arrayidx638$7;
- $1023 = $1022;
- HEAP32[$1023>>2] = $1020;
- $1024 = (($1022) + 4)|0;
- $1025 = $1024;
- HEAP32[$1025>>2] = $1021;
- STACKTOP = sp;return;
-}
-function _sha512_final($md,$out) {
- $md = $md|0;
- $out = $out|0;
- var $$ph = 0, $$pr = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $12 = 0;
- var $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, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0;
- var $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, $49 = 0;
- var $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, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0;
- var $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, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0;
- var $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, $add$ptr = 0, $add$ptr103 = 0, $arrayidx = 0, $arrayidx112 = 0, $arrayidx120 = 0;
- var $arrayidx128 = 0, $arrayidx136 = 0, $arrayidx144 = 0, $arrayidx152 = 0, $arrayidx159 = 0, $arrayidx19 = 0, $arrayidx31 = 0, $arrayidx45 = 0, $arrayidx53 = 0, $arrayidx61 = 0, $arrayidx69 = 0, $arrayidx77 = 0, $arrayidx85 = 0, $arrayidx92 = 0, $arrayidx98 = 0, $buf = 0, $cmp = 0, $cmp1 = 0, $cmp10 = 0, $cmp14 = 0;
- var $cmp1468 = 0, $cmp25 = 0, $cmp4 = 0, $curlen = 0, $exitcond = 0, $i$066 = 0, $inc = 0, $inc160 = 0, $inc18 = 0, $inc30 = 0, $mul102 = 0, $or$cond = 0, $retval$0 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $cmp = ($md|0)==(0|0);
- $cmp1 = ($out|0)==(0|0);
- $or$cond = $cmp | $cmp1;
- if ($or$cond) {
- $retval$0 = 1;
- return ($retval$0|0);
- }
- $curlen = ((($md)) + 72|0);
- $0 = HEAP32[$curlen>>2]|0;
- $cmp4 = ($0>>>0)>(127);
- if ($cmp4) {
- $retval$0 = 1;
- return ($retval$0|0);
- }
- $1 = (_bitshift64Shl(($0|0),0,3)|0);
- $2 = (getTempRet0() | 0);
- $3 = $md;
- $4 = $3;
- $5 = HEAP32[$4>>2]|0;
- $6 = (($3) + 4)|0;
- $7 = $6;
- $8 = HEAP32[$7>>2]|0;
- $9 = (_i64Add(($5|0),($8|0),($1|0),($2|0))|0);
- $10 = (getTempRet0() | 0);
- $11 = $md;
- $12 = $11;
- HEAP32[$12>>2] = $9;
- $13 = (($11) + 4)|0;
- $14 = $13;
- HEAP32[$14>>2] = $10;
- $buf = ((($md)) + 76|0);
- $inc = (($0) + 1)|0;
- HEAP32[$curlen>>2] = $inc;
- $arrayidx = (((($md)) + 76|0) + ($0)|0);
- HEAP8[$arrayidx>>0] = -128;
- $15 = HEAP32[$curlen>>2]|0;
- $cmp10 = ($15>>>0)>(112);
- if ($cmp10) {
- $cmp1468 = ($15>>>0)<(128);
- if ($cmp1468) {
- $16 = $15;
- while(1) {
- $inc18 = (($16) + 1)|0;
- HEAP32[$curlen>>2] = $inc18;
- $arrayidx19 = (((($md)) + 76|0) + ($16)|0);
- HEAP8[$arrayidx19>>0] = 0;
- $$pr = HEAP32[$curlen>>2]|0;
- $cmp14 = ($$pr>>>0)<(128);
- if ($cmp14) {
- $16 = $$pr;
- } else {
- break;
- }
- }
- }
- _sha512_compress($md,$buf);
- HEAP32[$curlen>>2] = 0;
- $$ph = 0;
- } else {
- $$ph = $15;
- }
- $17 = $$ph;
- while(1) {
- $inc30 = (($17) + 1)|0;
- HEAP32[$curlen>>2] = $inc30;
- $arrayidx31 = (((($md)) + 76|0) + ($17)|0);
- HEAP8[$arrayidx31>>0] = 0;
- $18 = HEAP32[$curlen>>2]|0;
- $cmp25 = ($18>>>0)<(120);
- if ($cmp25) {
- $17 = $18;
- } else {
- break;
- }
- }
- $19 = $md;
- $20 = $19;
- $21 = HEAP32[$20>>2]|0;
- $22 = (($19) + 4)|0;
- $23 = $22;
- $24 = HEAP32[$23>>2]|0;
- $25 = (_bitshift64Lshr(($21|0),($24|0),56)|0);
- $26 = (getTempRet0() | 0);
- $27 = $25&255;
- $add$ptr = ((($md)) + 196|0);
- HEAP8[$add$ptr>>0] = $27;
- $28 = (_bitshift64Lshr(($21|0),($24|0),48)|0);
- $29 = (getTempRet0() | 0);
- $30 = $28&255;
- $arrayidx45 = ((($md)) + 197|0);
- HEAP8[$arrayidx45>>0] = $30;
- $31 = (_bitshift64Lshr(($21|0),($24|0),40)|0);
- $32 = (getTempRet0() | 0);
- $33 = $31&255;
- $arrayidx53 = ((($md)) + 198|0);
- HEAP8[$arrayidx53>>0] = $33;
- $34 = $24&255;
- $arrayidx61 = ((($md)) + 199|0);
- HEAP8[$arrayidx61>>0] = $34;
- $35 = (_bitshift64Lshr(($21|0),($24|0),24)|0);
- $36 = (getTempRet0() | 0);
- $37 = $35&255;
- $arrayidx69 = ((($md)) + 200|0);
- HEAP8[$arrayidx69>>0] = $37;
- $38 = (_bitshift64Lshr(($21|0),($24|0),16)|0);
- $39 = (getTempRet0() | 0);
- $40 = $38&255;
- $arrayidx77 = ((($md)) + 201|0);
- HEAP8[$arrayidx77>>0] = $40;
- $41 = (_bitshift64Lshr(($21|0),($24|0),8)|0);
- $42 = (getTempRet0() | 0);
- $43 = $41&255;
- $arrayidx85 = ((($md)) + 202|0);
- HEAP8[$arrayidx85>>0] = $43;
- $44 = $21&255;
- $arrayidx92 = ((($md)) + 203|0);
- HEAP8[$arrayidx92>>0] = $44;
- _sha512_compress($md,$buf);
- $i$066 = 0;
- while(1) {
- $arrayidx98 = (((($md)) + 8|0) + ($i$066<<3)|0);
- $45 = $arrayidx98;
- $46 = $45;
- $47 = HEAP32[$46>>2]|0;
- $48 = (($45) + 4)|0;
- $49 = $48;
- $50 = HEAP32[$49>>2]|0;
- $51 = (_bitshift64Lshr(($47|0),($50|0),56)|0);
- $52 = (getTempRet0() | 0);
- $53 = $51&255;
- $mul102 = $i$066 << 3;
- $add$ptr103 = (($out) + ($mul102)|0);
- HEAP8[$add$ptr103>>0] = $53;
- $54 = $arrayidx98;
- $55 = $54;
- $56 = HEAP32[$55>>2]|0;
- $57 = (($54) + 4)|0;
- $58 = $57;
- $59 = HEAP32[$58>>2]|0;
- $60 = (_bitshift64Lshr(($56|0),($59|0),48)|0);
- $61 = (getTempRet0() | 0);
- $62 = $60&255;
- $arrayidx112 = ((($add$ptr103)) + 1|0);
- HEAP8[$arrayidx112>>0] = $62;
- $63 = $arrayidx98;
- $64 = $63;
- $65 = HEAP32[$64>>2]|0;
- $66 = (($63) + 4)|0;
- $67 = $66;
- $68 = HEAP32[$67>>2]|0;
- $69 = (_bitshift64Lshr(($65|0),($68|0),40)|0);
- $70 = (getTempRet0() | 0);
- $71 = $69&255;
- $arrayidx120 = ((($add$ptr103)) + 2|0);
- HEAP8[$arrayidx120>>0] = $71;
- $72 = $arrayidx98;
- $73 = $72;
- $74 = HEAP32[$73>>2]|0;
- $75 = (($72) + 4)|0;
- $76 = $75;
- $77 = HEAP32[$76>>2]|0;
- $78 = $77&255;
- $arrayidx128 = ((($add$ptr103)) + 3|0);
- HEAP8[$arrayidx128>>0] = $78;
- $79 = $arrayidx98;
- $80 = $79;
- $81 = HEAP32[$80>>2]|0;
- $82 = (($79) + 4)|0;
- $83 = $82;
- $84 = HEAP32[$83>>2]|0;
- $85 = (_bitshift64Lshr(($81|0),($84|0),24)|0);
- $86 = (getTempRet0() | 0);
- $87 = $85&255;
- $arrayidx136 = ((($add$ptr103)) + 4|0);
- HEAP8[$arrayidx136>>0] = $87;
- $88 = $arrayidx98;
- $89 = $88;
- $90 = HEAP32[$89>>2]|0;
- $91 = (($88) + 4)|0;
- $92 = $91;
- $93 = HEAP32[$92>>2]|0;
- $94 = (_bitshift64Lshr(($90|0),($93|0),16)|0);
- $95 = (getTempRet0() | 0);
- $96 = $94&255;
- $arrayidx144 = ((($add$ptr103)) + 5|0);
- HEAP8[$arrayidx144>>0] = $96;
- $97 = $arrayidx98;
- $98 = $97;
- $99 = HEAP32[$98>>2]|0;
- $100 = (($97) + 4)|0;
- $101 = $100;
- $102 = HEAP32[$101>>2]|0;
- $103 = (_bitshift64Lshr(($99|0),($102|0),8)|0);
- $104 = (getTempRet0() | 0);
- $105 = $103&255;
- $arrayidx152 = ((($add$ptr103)) + 6|0);
- HEAP8[$arrayidx152>>0] = $105;
- $106 = $arrayidx98;
- $107 = $106;
- $108 = HEAP32[$107>>2]|0;
- $109 = (($106) + 4)|0;
- $110 = $109;
- $111 = HEAP32[$110>>2]|0;
- $112 = $108&255;
- $arrayidx159 = ((($add$ptr103)) + 7|0);
- HEAP8[$arrayidx159>>0] = $112;
- $inc160 = (($i$066) + 1)|0;
- $exitcond = ($inc160|0)==(8);
- if ($exitcond) {
- $retval$0 = 0;
- break;
- } else {
- $i$066 = $inc160;
- }
- }
- return ($retval$0|0);
-}
-function _sha512($message,$message_len,$out) {
- $message = $message|0;
- $message_len = $message_len|0;
- $out = $out|0;
- var $call = 0, $call1 = 0, $call5 = 0, $ctx = 0, $retval$0 = 0, $tobool = 0, $tobool2 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 208|0;
- $ctx = sp;
- $call = (_sha512_init($ctx)|0);
- $tobool = ($call|0)==(0);
- if ($tobool) {
- $call1 = (_sha512_update($ctx,$message,$message_len)|0);
- $tobool2 = ($call1|0)==(0);
- if ($tobool2) {
- $call5 = (_sha512_final($ctx,$out)|0);
- $retval$0 = $call5;
- } else {
- $retval$0 = $call1;
- }
- } else {
- $retval$0 = $call;
- }
- STACKTOP = sp;return ($retval$0|0);
-}
-function _ed25519_sign($signature,$message,$message_len,$public_key,$private_key) {
- $signature = $signature|0;
- $message = $message|0;
- $message_len = $message_len|0;
- $public_key = $public_key|0;
- $private_key = $private_key|0;
- var $R = 0, $add$ptr = 0, $add$ptr13 = 0, $hash = 0, $hram = 0, $r = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 496|0;
- $hash = sp + 128|0;
- $hram = sp + 64|0;
- $r = sp;
- $R = sp + 336|0;
- (_sha512_init($hash)|0);
- $add$ptr = ((($private_key)) + 32|0);
- (_sha512_update($hash,$add$ptr,32)|0);
- (_sha512_update($hash,$message,$message_len)|0);
- (_sha512_final($hash,$r)|0);
- _sc_reduce($r);
- _ge_scalarmult_base($R,$r);
- _ge_p3_tobytes($signature,$R);
- (_sha512_init($hash)|0);
- (_sha512_update($hash,$signature,32)|0);
- (_sha512_update($hash,$public_key,32)|0);
- (_sha512_update($hash,$message,$message_len)|0);
- (_sha512_final($hash,$hram)|0);
- _sc_reduce($hram);
- $add$ptr13 = ((($signature)) + 32|0);
- _sc_muladd($add$ptr13,$hram,$private_key,$r);
- STACKTOP = sp;return;
-}
-function _ed25519_verify($signature,$message,$message_len,$public_key) {
- $signature = $signature|0;
- $message = $message|0;
- $message_len = $message_len|0;
- $public_key = $public_key|0;
- var $$ = 0, $0 = 0, $A = 0, $R = 0, $add$ptr = 0, $arrayidx = 0, $call = 0, $call13 = 0, $checker = 0, $cmp = 0, $h = 0, $hash = 0, $retval$0 = 0, $tobool = 0, $tobool14 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 592|0;
- $h = sp + 32|0;
- $checker = sp;
- $hash = sp + 96|0;
- $A = sp + 424|0;
- $R = sp + 304|0;
- $arrayidx = ((($signature)) + 63|0);
- $0 = HEAP8[$arrayidx>>0]|0;
- $tobool = ($0&255)>(31);
- if ($tobool) {
- $retval$0 = 0;
- STACKTOP = sp;return ($retval$0|0);
- }
- $call = (_ge_frombytes_negate_vartime($A,$public_key)|0);
- $cmp = ($call|0)==(0);
- if (!($cmp)) {
- $retval$0 = 0;
- STACKTOP = sp;return ($retval$0|0);
- }
- (_sha512_init($hash)|0);
- (_sha512_update($hash,$signature,32)|0);
- (_sha512_update($hash,$public_key,32)|0);
- (_sha512_update($hash,$message,$message_len)|0);
- (_sha512_final($hash,$h)|0);
- _sc_reduce($h);
- $add$ptr = ((($signature)) + 32|0);
- _ge_double_scalarmult_vartime($R,$h,$A,$add$ptr);
- _ge_tobytes($checker,$R);
- $call13 = (_consttime_equal($checker,$signature)|0);
- $tobool14 = ($call13|0)!=(0);
- $$ = $tobool14&1;
- $retval$0 = $$;
- STACKTOP = sp;return ($retval$0|0);
-}
-function _consttime_equal($x,$y) {
- $x = $x|0;
- $y = $y|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 $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, $7 = 0, $8 = 0, $9 = 0, $arrayidx101 = 0, $arrayidx107 = 0, $arrayidx109 = 0, $arrayidx11 = 0, $arrayidx115 = 0, $arrayidx117 = 0, $arrayidx123 = 0, $arrayidx125 = 0, $arrayidx13 = 0, $arrayidx131 = 0, $arrayidx133 = 0, $arrayidx139 = 0, $arrayidx141 = 0, $arrayidx147 = 0, $arrayidx149 = 0, $arrayidx155 = 0;
- var $arrayidx157 = 0, $arrayidx163 = 0, $arrayidx165 = 0, $arrayidx171 = 0, $arrayidx173 = 0, $arrayidx179 = 0, $arrayidx181 = 0, $arrayidx187 = 0, $arrayidx189 = 0, $arrayidx19 = 0, $arrayidx195 = 0, $arrayidx197 = 0, $arrayidx203 = 0, $arrayidx205 = 0, $arrayidx21 = 0, $arrayidx211 = 0, $arrayidx213 = 0, $arrayidx219 = 0, $arrayidx221 = 0, $arrayidx227 = 0;
- var $arrayidx229 = 0, $arrayidx235 = 0, $arrayidx237 = 0, $arrayidx243 = 0, $arrayidx245 = 0, $arrayidx27 = 0, $arrayidx29 = 0, $arrayidx35 = 0, $arrayidx37 = 0, $arrayidx4 = 0, $arrayidx43 = 0, $arrayidx45 = 0, $arrayidx51 = 0, $arrayidx53 = 0, $arrayidx59 = 0, $arrayidx6 = 0, $arrayidx61 = 0, $arrayidx67 = 0, $arrayidx69 = 0, $arrayidx75 = 0;
- var $arrayidx77 = 0, $arrayidx83 = 0, $arrayidx85 = 0, $arrayidx91 = 0, $arrayidx93 = 0, $arrayidx99 = 0, $lnot$ext = 0, $or105120 = 0, $or113122 = 0, $or121124 = 0, $or129126 = 0, $or137128 = 0, $or145130 = 0, $or153132 = 0, $or161134 = 0, $or169136 = 0, $or177138 = 0, $or1798 = 0, $or185140 = 0, $or193142 = 0;
- var $or201144 = 0, $or209146 = 0, $or217148 = 0, $or225150 = 0, $or233152 = 0, $or241154 = 0, $or249156 = 0, $or25100 = 0, $or33102 = 0, $or41104 = 0, $or49106 = 0, $or57108 = 0, $or65110 = 0, $or73112 = 0, $or81114 = 0, $or89116 = 0, $or96 = 0, $or97118 = 0, $tobool = 0, $xor103119 = 0;
- var $xor111121 = 0, $xor119123 = 0, $xor127125 = 0, $xor135127 = 0, $xor143129 = 0, $xor151131 = 0, $xor159133 = 0, $xor1597 = 0, $xor167135 = 0, $xor175137 = 0, $xor183139 = 0, $xor191141 = 0, $xor199143 = 0, $xor207145 = 0, $xor215147 = 0, $xor223149 = 0, $xor231151 = 0, $xor239153 = 0, $xor2399 = 0, $xor247155 = 0;
- var $xor31101 = 0, $xor39103 = 0, $xor47105 = 0, $xor55107 = 0, $xor63109 = 0, $xor71111 = 0, $xor79113 = 0, $xor87115 = 0, $xor895 = 0, $xor94 = 0, $xor95117 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $0 = HEAP8[$x>>0]|0;
- $1 = HEAP8[$y>>0]|0;
- $xor94 = $1 ^ $0;
- $arrayidx4 = ((($x)) + 1|0);
- $2 = HEAP8[$arrayidx4>>0]|0;
- $arrayidx6 = ((($y)) + 1|0);
- $3 = HEAP8[$arrayidx6>>0]|0;
- $xor895 = $3 ^ $2;
- $or96 = $xor895 | $xor94;
- $arrayidx11 = ((($x)) + 2|0);
- $4 = HEAP8[$arrayidx11>>0]|0;
- $arrayidx13 = ((($y)) + 2|0);
- $5 = HEAP8[$arrayidx13>>0]|0;
- $xor1597 = $5 ^ $4;
- $or1798 = $or96 | $xor1597;
- $arrayidx19 = ((($x)) + 3|0);
- $6 = HEAP8[$arrayidx19>>0]|0;
- $arrayidx21 = ((($y)) + 3|0);
- $7 = HEAP8[$arrayidx21>>0]|0;
- $xor2399 = $7 ^ $6;
- $or25100 = $or1798 | $xor2399;
- $arrayidx27 = ((($x)) + 4|0);
- $8 = HEAP8[$arrayidx27>>0]|0;
- $arrayidx29 = ((($y)) + 4|0);
- $9 = HEAP8[$arrayidx29>>0]|0;
- $xor31101 = $9 ^ $8;
- $or33102 = $or25100 | $xor31101;
- $arrayidx35 = ((($x)) + 5|0);
- $10 = HEAP8[$arrayidx35>>0]|0;
- $arrayidx37 = ((($y)) + 5|0);
- $11 = HEAP8[$arrayidx37>>0]|0;
- $xor39103 = $11 ^ $10;
- $or41104 = $or33102 | $xor39103;
- $arrayidx43 = ((($x)) + 6|0);
- $12 = HEAP8[$arrayidx43>>0]|0;
- $arrayidx45 = ((($y)) + 6|0);
- $13 = HEAP8[$arrayidx45>>0]|0;
- $xor47105 = $13 ^ $12;
- $or49106 = $or41104 | $xor47105;
- $arrayidx51 = ((($x)) + 7|0);
- $14 = HEAP8[$arrayidx51>>0]|0;
- $arrayidx53 = ((($y)) + 7|0);
- $15 = HEAP8[$arrayidx53>>0]|0;
- $xor55107 = $15 ^ $14;
- $or57108 = $or49106 | $xor55107;
- $arrayidx59 = ((($x)) + 8|0);
- $16 = HEAP8[$arrayidx59>>0]|0;
- $arrayidx61 = ((($y)) + 8|0);
- $17 = HEAP8[$arrayidx61>>0]|0;
- $xor63109 = $17 ^ $16;
- $or65110 = $or57108 | $xor63109;
- $arrayidx67 = ((($x)) + 9|0);
- $18 = HEAP8[$arrayidx67>>0]|0;
- $arrayidx69 = ((($y)) + 9|0);
- $19 = HEAP8[$arrayidx69>>0]|0;
- $xor71111 = $19 ^ $18;
- $or73112 = $or65110 | $xor71111;
- $arrayidx75 = ((($x)) + 10|0);
- $20 = HEAP8[$arrayidx75>>0]|0;
- $arrayidx77 = ((($y)) + 10|0);
- $21 = HEAP8[$arrayidx77>>0]|0;
- $xor79113 = $21 ^ $20;
- $or81114 = $or73112 | $xor79113;
- $arrayidx83 = ((($x)) + 11|0);
- $22 = HEAP8[$arrayidx83>>0]|0;
- $arrayidx85 = ((($y)) + 11|0);
- $23 = HEAP8[$arrayidx85>>0]|0;
- $xor87115 = $23 ^ $22;
- $or89116 = $or81114 | $xor87115;
- $arrayidx91 = ((($x)) + 12|0);
- $24 = HEAP8[$arrayidx91>>0]|0;
- $arrayidx93 = ((($y)) + 12|0);
- $25 = HEAP8[$arrayidx93>>0]|0;
- $xor95117 = $25 ^ $24;
- $or97118 = $or89116 | $xor95117;
- $arrayidx99 = ((($x)) + 13|0);
- $26 = HEAP8[$arrayidx99>>0]|0;
- $arrayidx101 = ((($y)) + 13|0);
- $27 = HEAP8[$arrayidx101>>0]|0;
- $xor103119 = $27 ^ $26;
- $or105120 = $or97118 | $xor103119;
- $arrayidx107 = ((($x)) + 14|0);
- $28 = HEAP8[$arrayidx107>>0]|0;
- $arrayidx109 = ((($y)) + 14|0);
- $29 = HEAP8[$arrayidx109>>0]|0;
- $xor111121 = $29 ^ $28;
- $or113122 = $or105120 | $xor111121;
- $arrayidx115 = ((($x)) + 15|0);
- $30 = HEAP8[$arrayidx115>>0]|0;
- $arrayidx117 = ((($y)) + 15|0);
- $31 = HEAP8[$arrayidx117>>0]|0;
- $xor119123 = $31 ^ $30;
- $or121124 = $or113122 | $xor119123;
- $arrayidx123 = ((($x)) + 16|0);
- $32 = HEAP8[$arrayidx123>>0]|0;
- $arrayidx125 = ((($y)) + 16|0);
- $33 = HEAP8[$arrayidx125>>0]|0;
- $xor127125 = $33 ^ $32;
- $or129126 = $or121124 | $xor127125;
- $arrayidx131 = ((($x)) + 17|0);
- $34 = HEAP8[$arrayidx131>>0]|0;
- $arrayidx133 = ((($y)) + 17|0);
- $35 = HEAP8[$arrayidx133>>0]|0;
- $xor135127 = $35 ^ $34;
- $or137128 = $or129126 | $xor135127;
- $arrayidx139 = ((($x)) + 18|0);
- $36 = HEAP8[$arrayidx139>>0]|0;
- $arrayidx141 = ((($y)) + 18|0);
- $37 = HEAP8[$arrayidx141>>0]|0;
- $xor143129 = $37 ^ $36;
- $or145130 = $or137128 | $xor143129;
- $arrayidx147 = ((($x)) + 19|0);
- $38 = HEAP8[$arrayidx147>>0]|0;
- $arrayidx149 = ((($y)) + 19|0);
- $39 = HEAP8[$arrayidx149>>0]|0;
- $xor151131 = $39 ^ $38;
- $or153132 = $or145130 | $xor151131;
- $arrayidx155 = ((($x)) + 20|0);
- $40 = HEAP8[$arrayidx155>>0]|0;
- $arrayidx157 = ((($y)) + 20|0);
- $41 = HEAP8[$arrayidx157>>0]|0;
- $xor159133 = $41 ^ $40;
- $or161134 = $or153132 | $xor159133;
- $arrayidx163 = ((($x)) + 21|0);
- $42 = HEAP8[$arrayidx163>>0]|0;
- $arrayidx165 = ((($y)) + 21|0);
- $43 = HEAP8[$arrayidx165>>0]|0;
- $xor167135 = $43 ^ $42;
- $or169136 = $or161134 | $xor167135;
- $arrayidx171 = ((($x)) + 22|0);
- $44 = HEAP8[$arrayidx171>>0]|0;
- $arrayidx173 = ((($y)) + 22|0);
- $45 = HEAP8[$arrayidx173>>0]|0;
- $xor175137 = $45 ^ $44;
- $or177138 = $or169136 | $xor175137;
- $arrayidx179 = ((($x)) + 23|0);
- $46 = HEAP8[$arrayidx179>>0]|0;
- $arrayidx181 = ((($y)) + 23|0);
- $47 = HEAP8[$arrayidx181>>0]|0;
- $xor183139 = $47 ^ $46;
- $or185140 = $or177138 | $xor183139;
- $arrayidx187 = ((($x)) + 24|0);
- $48 = HEAP8[$arrayidx187>>0]|0;
- $arrayidx189 = ((($y)) + 24|0);
- $49 = HEAP8[$arrayidx189>>0]|0;
- $xor191141 = $49 ^ $48;
- $or193142 = $or185140 | $xor191141;
- $arrayidx195 = ((($x)) + 25|0);
- $50 = HEAP8[$arrayidx195>>0]|0;
- $arrayidx197 = ((($y)) + 25|0);
- $51 = HEAP8[$arrayidx197>>0]|0;
- $xor199143 = $51 ^ $50;
- $or201144 = $or193142 | $xor199143;
- $arrayidx203 = ((($x)) + 26|0);
- $52 = HEAP8[$arrayidx203>>0]|0;
- $arrayidx205 = ((($y)) + 26|0);
- $53 = HEAP8[$arrayidx205>>0]|0;
- $xor207145 = $53 ^ $52;
- $or209146 = $or201144 | $xor207145;
- $arrayidx211 = ((($x)) + 27|0);
- $54 = HEAP8[$arrayidx211>>0]|0;
- $arrayidx213 = ((($y)) + 27|0);
- $55 = HEAP8[$arrayidx213>>0]|0;
- $xor215147 = $55 ^ $54;
- $or217148 = $or209146 | $xor215147;
- $arrayidx219 = ((($x)) + 28|0);
- $56 = HEAP8[$arrayidx219>>0]|0;
- $arrayidx221 = ((($y)) + 28|0);
- $57 = HEAP8[$arrayidx221>>0]|0;
- $xor223149 = $57 ^ $56;
- $or225150 = $or217148 | $xor223149;
- $arrayidx227 = ((($x)) + 29|0);
- $58 = HEAP8[$arrayidx227>>0]|0;
- $arrayidx229 = ((($y)) + 29|0);
- $59 = HEAP8[$arrayidx229>>0]|0;
- $xor231151 = $59 ^ $58;
- $or233152 = $or225150 | $xor231151;
- $arrayidx235 = ((($x)) + 30|0);
- $60 = HEAP8[$arrayidx235>>0]|0;
- $arrayidx237 = ((($y)) + 30|0);
- $61 = HEAP8[$arrayidx237>>0]|0;
- $xor239153 = $61 ^ $60;
- $or241154 = $or233152 | $xor239153;
- $arrayidx243 = ((($x)) + 31|0);
- $62 = HEAP8[$arrayidx243>>0]|0;
- $arrayidx245 = ((($y)) + 31|0);
- $63 = HEAP8[$arrayidx245>>0]|0;
- $xor247155 = $63 ^ $62;
- $or249156 = $or241154 | $xor247155;
- $tobool = ($or249156<<24>>24)==(0);
- $lnot$ext = $tobool&1;
- return ($lnot$ext|0);
-}
-function _malloc($bytes) {
- $bytes = $bytes|0;
- var $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i134 = 0, $$pre$i194 = 0, $$pre$i31$i = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i195Z2D = 0, $$pre$phi$i32$iZ2D = 0, $$pre$phi$iZ2D = 0, $$pre$phiZ2D = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0;
- var $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, $123 = 0;
- var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0;
- var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0;
- var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $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;
- var $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, $51 = 0, $52 = 0;
- var $53 = 0, $54 = 0, $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;
- var $71 = 0, $72 = 0, $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;
- var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F$0$i$i = 0, $F104$0 = 0, $F197$0$i = 0, $F224$0$i$i = 0, $F290$0$i = 0, $I252$0$i$i = 0, $I316$0$i = 0, $I57$0$i$i = 0, $K105$010$i$i = 0;
- var $K305$08$i$i = 0, $K373$015$i = 0, $R$1$i = 0, $R$1$i$be = 0, $R$1$i$i = 0, $R$1$i$i$be = 0, $R$1$i$i$ph = 0, $R$1$i$ph = 0, $R$1$i183 = 0, $R$1$i183$be = 0, $R$1$i183$ph = 0, $R$3$i = 0, $R$3$i$i = 0, $R$3$i188 = 0, $RP$1$i = 0, $RP$1$i$be = 0, $RP$1$i$i = 0, $RP$1$i$i$be = 0, $RP$1$i$i$ph = 0, $RP$1$i$ph = 0;
- var $RP$1$i182 = 0, $RP$1$i182$be = 0, $RP$1$i182$ph = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i34$i = 0, $T$014$i = 0, $T$07$i$i = 0, $T$09$i$i = 0, $add$i = 0, $add$i$i = 0, $add$i135 = 0, $add$i155 = 0, $add$ptr = 0, $add$ptr$i = 0, $add$ptr$i$i = 0, $add$ptr$i$i$i = 0, $add$ptr$i141 = 0, $add$ptr$i174 = 0, $add$ptr$i2$i$i = 0;
- var $add$ptr$i35$i = 0, $add$ptr$i43$i = 0, $add$ptr$i57$i = 0, $add$ptr14$i$i = 0, $add$ptr15$i$i = 0, $add$ptr16$i$i = 0, $add$ptr166 = 0, $add$ptr169 = 0, $add$ptr17$i$i = 0, $add$ptr178 = 0, $add$ptr181$i = 0, $add$ptr182 = 0, $add$ptr189$i = 0, $add$ptr190$i = 0, $add$ptr193 = 0, $add$ptr199 = 0, $add$ptr2$i$i = 0, $add$ptr205$i$i = 0, $add$ptr212$i$i = 0, $add$ptr225$i = 0;
- var $add$ptr227$i = 0, $add$ptr24$i$i = 0, $add$ptr262$i = 0, $add$ptr269$i = 0, $add$ptr273$i = 0, $add$ptr282$i = 0, $add$ptr3$i$i = 0, $add$ptr30$i$i = 0, $add$ptr369$i$i = 0, $add$ptr4$i$i = 0, $add$ptr4$i$i$i = 0, $add$ptr4$i41$i = 0, $add$ptr4$i49$i = 0, $add$ptr441$i = 0, $add$ptr5$i$i = 0, $add$ptr6$i$i = 0, $add$ptr6$i$i$i = 0, $add$ptr6$i53$i = 0, $add$ptr7$i$i = 0, $add$ptr81$i$i = 0;
- var $add$ptr95 = 0, $add$ptr98 = 0, $add10$i = 0, $add101$i = 0, $add110$i = 0, $add13$i = 0, $add14$i = 0, $add140$i = 0, $add144 = 0, $add150$i = 0, $add17$i = 0, $add17$i158 = 0, $add177$i = 0, $add18$i = 0, $add19$i = 0, $add2 = 0, $add20$i = 0, $add206$i$i = 0, $add212$i = 0, $add215$i = 0;
- var $add22$i = 0, $add246$i = 0, $add26$i$i = 0, $add268$i = 0, $add269$i$i = 0, $add274$i$i = 0, $add278$i$i = 0, $add280$i$i = 0, $add283$i$i = 0, $add337$i = 0, $add342$i = 0, $add346$i = 0, $add348$i = 0, $add351$i = 0, $add46$i = 0, $add50 = 0, $add51$i = 0, $add54 = 0, $add54$i = 0, $add58 = 0;
- var $add62 = 0, $add64 = 0, $add74$i$i = 0, $add77$i = 0, $add78$i = 0, $add79$i$i = 0, $add8 = 0, $add82$i = 0, $add83$i$i = 0, $add85$i$i = 0, $add86$i = 0, $add88$i$i = 0, $add9$i = 0, $add90$i = 0, $add92$i = 0, $and = 0, $and$i = 0, $and$i$i = 0, $and$i$i$i = 0, $and$i14$i = 0;
- var $and$i152 = 0, $and$i36$i = 0, $and$i44$i = 0, $and100$i = 0, $and103$i = 0, $and104$i = 0, $and106 = 0, $and11$i = 0, $and119$i$i = 0, $and1197$i$i = 0, $and12$i = 0, $and13$i = 0, $and13$i$i = 0, $and133$i$i = 0, $and14 = 0, $and145 = 0, $and17$i = 0, $and194$i = 0, $and194$i191 = 0, $and199$i = 0;
- var $and209$i$i = 0, $and21$i = 0, $and21$i159 = 0, $and227$i$i = 0, $and236$i = 0, $and264$i$i = 0, $and268$i$i = 0, $and273$i$i = 0, $and282$i$i = 0, $and29$i = 0, $and292$i = 0, $and295$i$i = 0, $and3$i = 0, $and3$i$i = 0, $and3$i$i$i = 0, $and3$i39$i = 0, $and3$i47$i = 0, $and30$i = 0, $and318$i$i = 0, $and3185$i$i = 0;
- var $and32$i = 0, $and32$i$i = 0, $and33$i$i = 0, $and331$i = 0, $and336$i = 0, $and341$i = 0, $and350$i = 0, $and363$i = 0, $and37$i$i = 0, $and387$i = 0, $and38712$i = 0, $and4 = 0, $and40$i$i = 0, $and41 = 0, $and42$i = 0, $and43 = 0, $and46 = 0, $and49 = 0, $and49$i = 0, $and49$i$i = 0;
- var $and53 = 0, $and57 = 0, $and6$i = 0, $and6$i$i = 0, $and6$i13$i = 0, $and6$i18$i = 0, $and61 = 0, $and64$i = 0, $and68$i = 0, $and69$i$i = 0, $and7 = 0, $and73$i = 0, $and73$i$i = 0, $and74 = 0, $and77$i = 0, $and78$i$i = 0, $and8$i = 0, $and80$i = 0, $and81$i = 0, $and85$i = 0;
- var $and87$i$i = 0, $and89$i = 0, $and9$i = 0, $and96$i$i = 0, $arrayidx = 0, $arrayidx$i = 0, $arrayidx$i$i = 0, $arrayidx$i160 = 0, $arrayidx103 = 0, $arrayidx103$i$i = 0, $arrayidx106$i = 0, $arrayidx107$i$i = 0, $arrayidx113$i = 0, $arrayidx113$i173 = 0, $arrayidx121$i = 0, $arrayidx121$i$sink = 0, $arrayidx123$i$i = 0, $arrayidx126$i$i = 0, $arrayidx137$i = 0, $arrayidx143$i$i = 0;
- var $arrayidx148$i = 0, $arrayidx151$i = 0, $arrayidx151$i$i = 0, $arrayidx151$i$i$sink = 0, $arrayidx154$i = 0, $arrayidx155$i = 0, $arrayidx161$i = 0, $arrayidx165$i = 0, $arrayidx165$i185 = 0, $arrayidx178$i$i = 0, $arrayidx184$i = 0, $arrayidx184$i$i = 0, $arrayidx195$i$i = 0, $arrayidx196$i = 0, $arrayidx204$i = 0, $arrayidx212$i = 0, $arrayidx212$i$sink = 0, $arrayidx223$i$i = 0, $arrayidx228$i = 0, $arrayidx23$i = 0;
- var $arrayidx239$i = 0, $arrayidx245$i = 0, $arrayidx256$i = 0, $arrayidx27$i = 0, $arrayidx287$i$i = 0, $arrayidx289$i = 0, $arrayidx290$i$i = 0, $arrayidx325$i$i = 0, $arrayidx355$i = 0, $arrayidx358$i = 0, $arrayidx394$i = 0, $arrayidx40$i = 0, $arrayidx44$i = 0, $arrayidx61$i = 0, $arrayidx65$i = 0, $arrayidx66 = 0, $arrayidx71$i = 0, $arrayidx75$i = 0, $arrayidx91$i$i = 0, $arrayidx92$i$i = 0;
- var $arrayidx94$i = 0, $arrayidx94$i170 = 0, $arrayidx96$i$i = 0, $bk$i = 0, $bk$i$i = 0, $bk$i176 = 0, $bk$i26$i = 0, $bk102$i$i = 0, $bk122 = 0, $bk124 = 0, $bk139$i$i = 0, $bk145$i = 0, $bk158$i$i = 0, $bk161$i$i = 0, $bk18 = 0, $bk218$i = 0, $bk220$i = 0, $bk246$i$i = 0, $bk248$i$i = 0, $bk302$i$i = 0;
- var $bk311$i = 0, $bk313$i = 0, $bk338$i$i = 0, $bk357$i$i = 0, $bk360$i$i = 0, $bk370$i = 0, $bk407$i = 0, $bk429$i = 0, $bk432$i = 0, $bk55$i$i = 0, $bk56$i = 0, $bk67$i$i = 0, $bk74$i$i = 0, $bk85 = 0, $bk91$i$i = 0, $br$2$ph$i = 0, $call107$i = 0, $call131$i = 0, $call132$i = 0, $call275$i = 0;
- var $call37$i = 0, $call68$i = 0, $call83$i = 0, $child$i$i = 0, $child166$i$i = 0, $child289$i$i = 0, $child357$i = 0, $cmp = 0, $cmp$i = 0, $cmp$i$i$i = 0, $cmp$i12$i = 0, $cmp$i133 = 0, $cmp$i149 = 0, $cmp$i15$i = 0, $cmp$i3$i$i = 0, $cmp$i37$i = 0, $cmp$i45$i = 0, $cmp$i55$i = 0, $cmp1 = 0, $cmp1$i = 0;
- var $cmp10 = 0, $cmp100$i$i = 0, $cmp102$i = 0, $cmp104$i$i = 0, $cmp105$i = 0, $cmp106$i$i = 0, $cmp107$i = 0, $cmp108$i = 0, $cmp108$i$i = 0, $cmp114$i = 0, $cmp116$i = 0, $cmp118$i = 0, $cmp119$i = 0, $cmp12$i = 0, $cmp120$i$i = 0, $cmp120$i28$i = 0, $cmp1208$i$i = 0, $cmp123$i = 0, $cmp124$i$i = 0, $cmp126$i = 0;
- var $cmp127$i = 0, $cmp128 = 0, $cmp128$i = 0, $cmp128$i$i = 0, $cmp133$i = 0, $cmp135$i = 0, $cmp137$i = 0, $cmp138$i = 0, $cmp139 = 0, $cmp141$i = 0, $cmp144$i$i = 0, $cmp146 = 0, $cmp147$i = 0, $cmp14799$i = 0, $cmp15$i = 0, $cmp151$i = 0, $cmp152$i = 0, $cmp155$i = 0, $cmp156 = 0, $cmp156$i = 0;
- var $cmp156$i$i = 0, $cmp157$i = 0, $cmp159$i = 0, $cmp162 = 0, $cmp162$i = 0, $cmp162$i184 = 0, $cmp166$i = 0, $cmp168$i$i = 0, $cmp174$i = 0, $cmp180$i = 0, $cmp185$i = 0, $cmp185$i$i = 0, $cmp186 = 0, $cmp186$i = 0, $cmp19$i = 0, $cmp190$i = 0, $cmp191$i = 0, $cmp2$i$i = 0, $cmp2$i$i$i = 0, $cmp20$i$i = 0;
- var $cmp203$i = 0, $cmp205$i = 0, $cmp209$i = 0, $cmp21$i = 0, $cmp215$i$i = 0, $cmp217$i = 0, $cmp218$i = 0, $cmp224$i = 0, $cmp228$i = 0, $cmp229$i = 0, $cmp24$i = 0, $cmp24$i$i = 0, $cmp246$i = 0, $cmp254$i$i = 0, $cmp257$i = 0, $cmp258$i$i = 0, $cmp26$i = 0, $cmp265$i = 0, $cmp27$i$i = 0, $cmp28$i = 0;
- var $cmp28$i$i = 0, $cmp284$i = 0, $cmp29 = 0, $cmp3$i$i = 0, $cmp306$i$i = 0, $cmp31 = 0, $cmp319$i = 0, $cmp319$i$i = 0, $cmp3196$i$i = 0, $cmp32$i = 0, $cmp32$i138 = 0, $cmp323$i = 0, $cmp327$i$i = 0, $cmp34$i = 0, $cmp34$i$i = 0, $cmp35$i = 0, $cmp36$i = 0, $cmp36$i$i = 0, $cmp374$i = 0, $cmp38$i = 0;
- var $cmp38$i$i = 0, $cmp388$i = 0, $cmp38813$i = 0, $cmp396$i = 0, $cmp40$i = 0, $cmp43$i = 0, $cmp45$i = 0, $cmp46$i = 0, $cmp46$i$i = 0, $cmp49$i = 0, $cmp5 = 0, $cmp55$i = 0, $cmp55$i166 = 0, $cmp57$i = 0, $cmp57$i167 = 0, $cmp59$i$i = 0, $cmp60$i = 0, $cmp62$i = 0, $cmp63$i = 0, $cmp63$i$i = 0;
- var $cmp65$i = 0, $cmp66$i = 0, $cmp66$i140 = 0, $cmp69$i = 0, $cmp7$i$i = 0, $cmp70 = 0, $cmp72$i = 0, $cmp75$i$i = 0, $cmp76$i = 0, $cmp81$i = 0, $cmp85$i = 0, $cmp89$i = 0, $cmp9$i$i = 0, $cmp90$i = 0, $cmp91$i = 0, $cmp93$i = 0, $cmp95$i = 0, $cmp96$i = 0, $cmp97$i = 0, $cmp97$i$i = 0;
- var $cmp9716$i = 0, $cmp99 = 0, $cond = 0, $cond$i = 0, $cond$i$i = 0, $cond$i$i$i = 0, $cond$i17$i = 0, $cond$i40$i = 0, $cond$i48$i = 0, $cond1$i$i = 0, $cond115$i = 0, $cond115$i$i = 0, $cond13$i$i = 0, $cond15$i$i = 0, $cond2$i = 0, $cond3$i = 0, $cond315$i$i = 0, $cond383$i = 0, $cond4$i = 0, $fd$i = 0;
- var $fd$i$i = 0, $fd$i177 = 0, $fd103$i$i = 0, $fd123 = 0, $fd140$i$i = 0, $fd146$i = 0, $fd148$i$i = 0, $fd160$i$i = 0, $fd219$i = 0, $fd247$i$i = 0, $fd303$i$i = 0, $fd312$i = 0, $fd339$i$i = 0, $fd344$i$i = 0, $fd359$i$i = 0, $fd371$i = 0, $fd408$i = 0, $fd416$i = 0, $fd431$i = 0, $fd54$i$i = 0;
- var $fd57$i = 0, $fd68$i$i = 0, $fd69 = 0, $fd78$i$i = 0, $fd9 = 0, $fd92$i$i = 0, $head = 0, $head$i = 0, $head$i$i = 0, $head$i$i$i = 0, $head$i164 = 0, $head$i22$i = 0, $head$i42$i = 0, $head$i52$i = 0, $head118$i$i = 0, $head1186$i$i = 0, $head168 = 0, $head173 = 0, $head177 = 0, $head179 = 0;
- var $head179$i = 0, $head182$i = 0, $head187$i = 0, $head189$i = 0, $head195 = 0, $head198 = 0, $head208$i$i = 0, $head211$i$i = 0, $head23$i$i = 0, $head25 = 0, $head26$i$i = 0, $head265$i = 0, $head268$i = 0, $head271$i = 0, $head274$i = 0, $head279$i = 0, $head281$i = 0, $head29$i = 0, $head29$i$i = 0, $head317$i$i = 0;
- var $head3174$i$i = 0, $head32$i$i = 0, $head34$i$i = 0, $head386$i = 0, $head38611$i = 0, $head7$i$i = 0, $head7$i$i$i = 0, $head7$i54$i = 0, $head94 = 0, $head97 = 0, $head99$i = 0, $idx$0$i = 0, $index$i = 0, $index$i$i = 0, $index$i189 = 0, $index$i29$i = 0, $index288$i$i = 0, $index356$i = 0, $magic$i$i = 0, $nb$0 = 0;
- var $neg = 0, $neg$i = 0, $neg$i$i = 0, $neg$i137 = 0, $neg$i190 = 0, $neg103$i = 0, $neg13 = 0, $neg132$i$i = 0, $neg48$i = 0, $neg73 = 0, $next$i = 0, $next$i$i = 0, $next$i$i$i = 0, $next231$i = 0, $not$cmp141$i = 0, $oldfirst$0$i$i = 0, $or$cond$i = 0, $or$cond$i168 = 0, $or$cond1$i = 0, $or$cond1$i165 = 0;
- var $or$cond11$i = 0, $or$cond2$i = 0, $or$cond4$i = 0, $or$cond5$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0, $or$cond97$i = 0, $or$cond98$i = 0, $or$i = 0, $or$i$i = 0, $or$i$i$i = 0, $or$i169 = 0, $or$i51$i = 0, $or101$i$i = 0, $or110 = 0, $or167 = 0, $or172 = 0, $or176 = 0, $or178$i = 0;
- var $or180 = 0, $or183$i = 0, $or186$i = 0, $or188$i = 0, $or19$i$i = 0, $or194 = 0, $or197 = 0, $or204$i = 0, $or210$i$i = 0, $or22$i$i = 0, $or23 = 0, $or232$i$i = 0, $or26 = 0, $or264$i = 0, $or267$i = 0, $or270$i = 0, $or275$i = 0, $or278$i = 0, $or28$i$i = 0, $or280$i = 0;
- var $or297$i = 0, $or300$i$i = 0, $or33$i$i = 0, $or368$i = 0, $or40 = 0, $or44$i$i = 0, $or93 = 0, $or96 = 0, $parent$i = 0, $parent$i$i = 0, $parent$i175 = 0, $parent$i27$i = 0, $parent135$i = 0, $parent138$i$i = 0, $parent149$i = 0, $parent162$i$i = 0, $parent165$i$i = 0, $parent166$i = 0, $parent179$i$i = 0, $parent196$i$i = 0;
- var $parent226$i = 0, $parent240$i = 0, $parent257$i = 0, $parent301$i$i = 0, $parent337$i$i = 0, $parent361$i$i = 0, $parent369$i = 0, $parent406$i = 0, $parent433$i = 0, $qsize$0$i$i = 0, $retval$0 = 0, $rsize$0$i = 0, $rsize$0$i162 = 0, $rsize$1$i = 0, $rsize$3$i = 0, $rsize$4$lcssa$i = 0, $rsize$418$i = 0, $rsize$418$i$ph = 0, $rst$0$i = 0, $rst$1$i = 0;
- var $sflags193$i = 0, $sflags235$i = 0, $shl = 0, $shl$i = 0, $shl$i$i = 0, $shl$i153 = 0, $shl102 = 0, $shl105 = 0, $shl116$i$i = 0, $shl12 = 0, $shl127$i$i = 0, $shl131$i$i = 0, $shl15$i = 0, $shl18$i = 0, $shl192$i = 0, $shl195$i = 0, $shl198$i = 0, $shl22 = 0, $shl222$i$i = 0, $shl226$i$i = 0;
- var $shl265$i$i = 0, $shl270$i$i = 0, $shl276$i$i = 0, $shl279$i$i = 0, $shl288$i = 0, $shl291$i = 0, $shl294$i$i = 0, $shl31$i = 0, $shl316$i$i = 0, $shl326$i$i = 0, $shl333$i = 0, $shl338$i = 0, $shl344$i = 0, $shl347$i = 0, $shl35 = 0, $shl362$i = 0, $shl37 = 0, $shl384$i = 0, $shl39$i$i = 0, $shl395$i = 0;
- var $shl48$i$i = 0, $shl60$i = 0, $shl65 = 0, $shl70$i$i = 0, $shl72 = 0, $shl75$i$i = 0, $shl81$i$i = 0, $shl84$i$i = 0, $shl9$i = 0, $shl90 = 0, $shl95$i$i = 0, $shr = 0, $shr$i = 0, $shr$i$i = 0, $shr$i148 = 0, $shr$i25$i = 0, $shr101 = 0, $shr11$i = 0, $shr11$i156 = 0, $shr110$i$i = 0;
- var $shr12$i = 0, $shr124$i$i = 0, $shr15$i = 0, $shr16$i = 0, $shr16$i157 = 0, $shr19$i = 0, $shr194$i = 0, $shr20$i = 0, $shr214$i$i = 0, $shr253$i$i = 0, $shr263$i$i = 0, $shr267$i$i = 0, $shr27$i = 0, $shr272$i$i = 0, $shr277$i$i = 0, $shr281$i$i = 0, $shr283$i = 0, $shr3 = 0, $shr310$i$i = 0, $shr318$i = 0;
- var $shr323$i$i = 0, $shr330$i = 0, $shr335$i = 0, $shr340$i = 0, $shr345$i = 0, $shr349$i = 0, $shr378$i = 0, $shr392$i = 0, $shr4$i = 0, $shr42$i = 0, $shr45 = 0, $shr47 = 0, $shr48 = 0, $shr5$i = 0, $shr5$i151 = 0, $shr51 = 0, $shr52 = 0, $shr55 = 0, $shr56 = 0, $shr58$i$i = 0;
- var $shr59 = 0, $shr60 = 0, $shr63 = 0, $shr68$i$i = 0, $shr7$i = 0, $shr7$i154 = 0, $shr72$i = 0, $shr72$i$i = 0, $shr75$i = 0, $shr76$i = 0, $shr77$i$i = 0, $shr79$i = 0, $shr8$i = 0, $shr80$i = 0, $shr82$i$i = 0, $shr83$i = 0, $shr84$i = 0, $shr86$i$i = 0, $shr87$i = 0, $shr88$i = 0;
- var $shr91$i = 0, $size$i$i = 0, $size$i$i$i = 0, $size$i$i$le = 0, $size188$i = 0, $size188$i$le = 0, $size245$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$0112$i = 0, $sp$1111$i = 0, $spec$select$i = 0, $spec$select$i171 = 0, $spec$select1$i = 0, $spec$select2$i = 0, $spec$select5$i = 0, $spec$select9$i = 0, $spec$select96$i = 0, $ssize$2$ph$i = 0;
- var $sub = 0, $sub$i = 0, $sub$i$i = 0, $sub$i$i$i = 0, $sub$i136 = 0, $sub$i147 = 0, $sub$i16$i = 0, $sub$i38$i = 0, $sub$i46$i = 0, $sub$ptr$lhs$cast$i = 0, $sub$ptr$lhs$cast$i$i = 0, $sub$ptr$lhs$cast$i19$i = 0, $sub$ptr$rhs$cast$i = 0, $sub$ptr$rhs$cast$i$i = 0, $sub$ptr$rhs$cast$i20$i = 0, $sub$ptr$sub$i = 0, $sub$ptr$sub$i$i = 0, $sub$ptr$sub$i21$i = 0, $sub10$i = 0, $sub101$i = 0;
- var $sub112$i = 0, $sub113$i$i = 0, $sub118$i = 0, $sub12$i$i = 0, $sub14$i = 0, $sub16$i$i = 0, $sub160 = 0, $sub172$i = 0, $sub18$i$i = 0, $sub190 = 0, $sub2$i = 0, $sub22$i = 0, $sub260$i = 0, $sub262$i$i = 0, $sub266$i$i = 0, $sub271$i$i = 0, $sub275$i$i = 0, $sub30$i = 0, $sub31$i = 0, $sub313$i$i = 0;
- var $sub329$i = 0, $sub33$i = 0, $sub334$i = 0, $sub339$i = 0, $sub343$i = 0, $sub381$i = 0, $sub4$i = 0, $sub41$i = 0, $sub42 = 0, $sub44 = 0, $sub5$i$i = 0, $sub5$i$i$i = 0, $sub5$i50$i = 0, $sub50$i = 0, $sub6$i = 0, $sub63$i = 0, $sub67$i = 0, $sub67$i$i = 0, $sub70$i = 0, $sub71$i$i = 0;
- var $sub76$i$i = 0, $sub80$i$i = 0, $sub91 = 0, $sub99$i = 0, $t$0$i = 0, $t$0$i161 = 0, $t$2$i = 0, $t$4$i = 0, $t$517$i = 0, $t$517$i$ph = 0, $tbase$795$i = 0, $tobool$i$i = 0, $tobool107 = 0, $tobool195$i = 0, $tobool200$i = 0, $tobool228$i$i = 0, $tobool237$i = 0, $tobool293$i = 0, $tobool296$i$i = 0, $tobool30$i = 0;
- var $tobool364$i = 0, $tobool97$i$i = 0, $tsize$2647482$i = 0, $tsize$4$i = 0, $tsize$794$i = 0, $v$0$i = 0, $v$0$i163 = 0, $v$1$i = 0, $v$3$i = 0, $v$3$i204 = 0, $v$4$lcssa$i = 0, $v$419$i = 0, $v$419$i$ph = 0, $xor$i$i = 0, label = 0, sp = 0;
- sp = STACKTOP;
- STACKTOP = STACKTOP + 16|0;
- $magic$i$i = sp;
- $cmp = ($bytes>>>0)<(245);
- do {
- if ($cmp) {
- $cmp1 = ($bytes>>>0)<(11);
- $add2 = (($bytes) + 11)|0;
- $and = $add2 & -8;
- $cond = $cmp1 ? 16 : $and;
- $shr = $cond >>> 3;
- $0 = HEAP32[8120]|0;
- $shr3 = $0 >>> $shr;
- $and4 = $shr3 & 3;
- $cmp5 = ($and4|0)==(0);
- if (!($cmp5)) {
- $neg = $shr3 & 1;
- $and7 = $neg ^ 1;
- $add8 = (($and7) + ($shr))|0;
- $shl = $add8 << 1;
- $arrayidx = (32520 + ($shl<<2)|0);
- $1 = ((($arrayidx)) + 8|0);
- $2 = HEAP32[$1>>2]|0;
- $fd9 = ((($2)) + 8|0);
- $3 = HEAP32[$fd9>>2]|0;
- $cmp10 = ($3|0)==($arrayidx|0);
- if ($cmp10) {
- $shl12 = 1 << $add8;
- $neg13 = $shl12 ^ -1;
- $and14 = $0 & $neg13;
- HEAP32[8120] = $and14;
- } else {
- $bk18 = ((($3)) + 12|0);
- HEAP32[$bk18>>2] = $arrayidx;
- HEAP32[$1>>2] = $3;
- }
- $shl22 = $add8 << 3;
- $or23 = $shl22 | 3;
- $head = ((($2)) + 4|0);
- HEAP32[$head>>2] = $or23;
- $add$ptr = (($2) + ($shl22)|0);
- $head25 = ((($add$ptr)) + 4|0);
- $4 = HEAP32[$head25>>2]|0;
- $or26 = $4 | 1;
- HEAP32[$head25>>2] = $or26;
- $retval$0 = $fd9;
- STACKTOP = sp;return ($retval$0|0);
- }
- $5 = HEAP32[(32488)>>2]|0;
- $cmp29 = ($cond>>>0)>($5>>>0);
- if ($cmp29) {
- $cmp31 = ($shr3|0)==(0);
- if (!($cmp31)) {
- $shl35 = $shr3 << $shr;
- $shl37 = 2 << $shr;
- $sub = (0 - ($shl37))|0;
- $or40 = $shl37 | $sub;
- $and41 = $shl35 & $or40;
- $sub42 = (0 - ($and41))|0;
- $and43 = $and41 & $sub42;
- $sub44 = (($and43) + -1)|0;
- $shr45 = $sub44 >>> 12;
- $and46 = $shr45 & 16;
- $shr47 = $sub44 >>> $and46;
- $shr48 = $shr47 >>> 5;
- $and49 = $shr48 & 8;
- $add50 = $and49 | $and46;
- $shr51 = $shr47 >>> $and49;
- $shr52 = $shr51 >>> 2;
- $and53 = $shr52 & 4;
- $add54 = $add50 | $and53;
- $shr55 = $shr51 >>> $and53;
- $shr56 = $shr55 >>> 1;
- $and57 = $shr56 & 2;
- $add58 = $add54 | $and57;
- $shr59 = $shr55 >>> $and57;
- $shr60 = $shr59 >>> 1;
- $and61 = $shr60 & 1;
- $add62 = $add58 | $and61;
- $shr63 = $shr59 >>> $and61;
- $add64 = (($add62) + ($shr63))|0;
- $shl65 = $add64 << 1;
- $arrayidx66 = (32520 + ($shl65<<2)|0);
- $6 = ((($arrayidx66)) + 8|0);
- $7 = HEAP32[$6>>2]|0;
- $fd69 = ((($7)) + 8|0);
- $8 = HEAP32[$fd69>>2]|0;
- $cmp70 = ($8|0)==($arrayidx66|0);
- if ($cmp70) {
- $shl72 = 1 << $add64;
- $neg73 = $shl72 ^ -1;
- $and74 = $0 & $neg73;
- HEAP32[8120] = $and74;
- $10 = $and74;
- } else {
- $bk85 = ((($8)) + 12|0);
- HEAP32[$bk85>>2] = $arrayidx66;
- HEAP32[$6>>2] = $8;
- $10 = $0;
- }
- $shl90 = $add64 << 3;
- $sub91 = (($shl90) - ($cond))|0;
- $or93 = $cond | 3;
- $head94 = ((($7)) + 4|0);
- HEAP32[$head94>>2] = $or93;
- $add$ptr95 = (($7) + ($cond)|0);
- $or96 = $sub91 | 1;
- $head97 = ((($add$ptr95)) + 4|0);
- HEAP32[$head97>>2] = $or96;
- $add$ptr98 = (($7) + ($shl90)|0);
- HEAP32[$add$ptr98>>2] = $sub91;
- $cmp99 = ($5|0)==(0);
- if (!($cmp99)) {
- $9 = HEAP32[(32500)>>2]|0;
- $shr101 = $5 >>> 3;
- $shl102 = $shr101 << 1;
- $arrayidx103 = (32520 + ($shl102<<2)|0);
- $shl105 = 1 << $shr101;
- $and106 = $10 & $shl105;
- $tobool107 = ($and106|0)==(0);
- if ($tobool107) {
- $or110 = $10 | $shl105;
- HEAP32[8120] = $or110;
- $$pre = ((($arrayidx103)) + 8|0);
- $$pre$phiZ2D = $$pre;$F104$0 = $arrayidx103;
- } else {
- $11 = ((($arrayidx103)) + 8|0);
- $12 = HEAP32[$11>>2]|0;
- $$pre$phiZ2D = $11;$F104$0 = $12;
- }
- HEAP32[$$pre$phiZ2D>>2] = $9;
- $bk122 = ((($F104$0)) + 12|0);
- HEAP32[$bk122>>2] = $9;
- $fd123 = ((($9)) + 8|0);
- HEAP32[$fd123>>2] = $F104$0;
- $bk124 = ((($9)) + 12|0);
- HEAP32[$bk124>>2] = $arrayidx103;
- }
- HEAP32[(32488)>>2] = $sub91;
- HEAP32[(32500)>>2] = $add$ptr95;
- $retval$0 = $fd69;
- STACKTOP = sp;return ($retval$0|0);
- }
- $13 = HEAP32[(32484)>>2]|0;
- $cmp128 = ($13|0)==(0);
- if ($cmp128) {
- $nb$0 = $cond;
- } else {
- $sub$i = (0 - ($13))|0;
- $and$i = $13 & $sub$i;
- $sub2$i = (($and$i) + -1)|0;
- $shr$i = $sub2$i >>> 12;
- $and3$i = $shr$i & 16;
- $shr4$i = $sub2$i >>> $and3$i;
- $shr5$i = $shr4$i >>> 5;
- $and6$i = $shr5$i & 8;
- $add$i = $and6$i | $and3$i;
- $shr7$i = $shr4$i >>> $and6$i;
- $shr8$i = $shr7$i >>> 2;
- $and9$i = $shr8$i & 4;
- $add10$i = $add$i | $and9$i;
- $shr11$i = $shr7$i >>> $and9$i;
- $shr12$i = $shr11$i >>> 1;
- $and13$i = $shr12$i & 2;
- $add14$i = $add10$i | $and13$i;
- $shr15$i = $shr11$i >>> $and13$i;
- $shr16$i = $shr15$i >>> 1;
- $and17$i = $shr16$i & 1;
- $add18$i = $add14$i | $and17$i;
- $shr19$i = $shr15$i >>> $and17$i;
- $add20$i = (($add18$i) + ($shr19$i))|0;
- $arrayidx$i = (32784 + ($add20$i<<2)|0);
- $14 = HEAP32[$arrayidx$i>>2]|0;
- $head$i = ((($14)) + 4|0);
- $15 = HEAP32[$head$i>>2]|0;
- $and21$i = $15 & -8;
- $sub22$i = (($and21$i) - ($cond))|0;
- $rsize$0$i = $sub22$i;$t$0$i = $14;$v$0$i = $14;
- while(1) {
- $arrayidx23$i = ((($t$0$i)) + 16|0);
- $16 = HEAP32[$arrayidx23$i>>2]|0;
- $cmp$i = ($16|0)==(0|0);
- if ($cmp$i) {
- $arrayidx27$i = ((($t$0$i)) + 20|0);
- $17 = HEAP32[$arrayidx27$i>>2]|0;
- $cmp28$i = ($17|0)==(0|0);
- if ($cmp28$i) {
- break;
- } else {
- $cond4$i = $17;
- }
- } else {
- $cond4$i = $16;
- }
- $head29$i = ((($cond4$i)) + 4|0);
- $18 = HEAP32[$head29$i>>2]|0;
- $and30$i = $18 & -8;
- $sub31$i = (($and30$i) - ($cond))|0;
- $cmp32$i = ($sub31$i>>>0)<($rsize$0$i>>>0);
- $spec$select$i = $cmp32$i ? $sub31$i : $rsize$0$i;
- $spec$select1$i = $cmp32$i ? $cond4$i : $v$0$i;
- $rsize$0$i = $spec$select$i;$t$0$i = $cond4$i;$v$0$i = $spec$select1$i;
- }
- $add$ptr$i = (($v$0$i) + ($cond)|0);
- $cmp35$i = ($add$ptr$i>>>0)>($v$0$i>>>0);
- if ($cmp35$i) {
- $parent$i = ((($v$0$i)) + 24|0);
- $19 = HEAP32[$parent$i>>2]|0;
- $bk$i = ((($v$0$i)) + 12|0);
- $20 = HEAP32[$bk$i>>2]|0;
- $cmp40$i = ($20|0)==($v$0$i|0);
- do {
- if ($cmp40$i) {
- $arrayidx61$i = ((($v$0$i)) + 20|0);
- $22 = HEAP32[$arrayidx61$i>>2]|0;
- $cmp62$i = ($22|0)==(0|0);
- if ($cmp62$i) {
- $arrayidx65$i = ((($v$0$i)) + 16|0);
- $23 = HEAP32[$arrayidx65$i>>2]|0;
- $cmp66$i = ($23|0)==(0|0);
- if ($cmp66$i) {
- $R$3$i = 0;
- break;
- } else {
- $R$1$i$ph = $23;$RP$1$i$ph = $arrayidx65$i;
- }
- } else {
- $R$1$i$ph = $22;$RP$1$i$ph = $arrayidx61$i;
- }
- $R$1$i = $R$1$i$ph;$RP$1$i = $RP$1$i$ph;
- while(1) {
- $arrayidx71$i = ((($R$1$i)) + 20|0);
- $24 = HEAP32[$arrayidx71$i>>2]|0;
- $cmp72$i = ($24|0)==(0|0);
- if ($cmp72$i) {
- $arrayidx75$i = ((($R$1$i)) + 16|0);
- $25 = HEAP32[$arrayidx75$i>>2]|0;
- $cmp76$i = ($25|0)==(0|0);
- if ($cmp76$i) {
- break;
- } else {
- $R$1$i$be = $25;$RP$1$i$be = $arrayidx75$i;
- }
- } else {
- $R$1$i$be = $24;$RP$1$i$be = $arrayidx71$i;
- }
- $R$1$i = $R$1$i$be;$RP$1$i = $RP$1$i$be;
- }
- HEAP32[$RP$1$i>>2] = 0;
- $R$3$i = $R$1$i;
- } else {
- $fd$i = ((($v$0$i)) + 8|0);
- $21 = HEAP32[$fd$i>>2]|0;
- $bk56$i = ((($21)) + 12|0);
- HEAP32[$bk56$i>>2] = $20;
- $fd57$i = ((($20)) + 8|0);
- HEAP32[$fd57$i>>2] = $21;
- $R$3$i = $20;
- }
- } while(0);
- $cmp90$i = ($19|0)==(0|0);
- do {
- if (!($cmp90$i)) {
- $index$i = ((($v$0$i)) + 28|0);
- $26 = HEAP32[$index$i>>2]|0;
- $arrayidx94$i = (32784 + ($26<<2)|0);
- $27 = HEAP32[$arrayidx94$i>>2]|0;
- $cmp95$i = ($v$0$i|0)==($27|0);
- if ($cmp95$i) {
- HEAP32[$arrayidx94$i>>2] = $R$3$i;
- $cond2$i = ($R$3$i|0)==(0|0);
- if ($cond2$i) {
- $shl$i = 1 << $26;
- $neg$i = $shl$i ^ -1;
- $and103$i = $13 & $neg$i;
- HEAP32[(32484)>>2] = $and103$i;
- break;
- }
- } else {
- $arrayidx113$i = ((($19)) + 16|0);
- $28 = HEAP32[$arrayidx113$i>>2]|0;
- $cmp114$i = ($28|0)==($v$0$i|0);
- $arrayidx121$i = ((($19)) + 20|0);
- $arrayidx121$i$sink = $cmp114$i ? $arrayidx113$i : $arrayidx121$i;
- HEAP32[$arrayidx121$i$sink>>2] = $R$3$i;
- $cmp126$i = ($R$3$i|0)==(0|0);
- if ($cmp126$i) {
- break;
- }
- }
- $parent135$i = ((($R$3$i)) + 24|0);
- HEAP32[$parent135$i>>2] = $19;
- $arrayidx137$i = ((($v$0$i)) + 16|0);
- $29 = HEAP32[$arrayidx137$i>>2]|0;
- $cmp138$i = ($29|0)==(0|0);
- if (!($cmp138$i)) {
- $arrayidx148$i = ((($R$3$i)) + 16|0);
- HEAP32[$arrayidx148$i>>2] = $29;
- $parent149$i = ((($29)) + 24|0);
- HEAP32[$parent149$i>>2] = $R$3$i;
- }
- $arrayidx154$i = ((($v$0$i)) + 20|0);
- $30 = HEAP32[$arrayidx154$i>>2]|0;
- $cmp155$i = ($30|0)==(0|0);
- if (!($cmp155$i)) {
- $arrayidx165$i = ((($R$3$i)) + 20|0);
- HEAP32[$arrayidx165$i>>2] = $30;
- $parent166$i = ((($30)) + 24|0);
- HEAP32[$parent166$i>>2] = $R$3$i;
- }
- }
- } while(0);
- $cmp174$i = ($rsize$0$i>>>0)<(16);
- if ($cmp174$i) {
- $add177$i = (($rsize$0$i) + ($cond))|0;
- $or178$i = $add177$i | 3;
- $head179$i = ((($v$0$i)) + 4|0);
- HEAP32[$head179$i>>2] = $or178$i;
- $add$ptr181$i = (($v$0$i) + ($add177$i)|0);
- $head182$i = ((($add$ptr181$i)) + 4|0);
- $31 = HEAP32[$head182$i>>2]|0;
- $or183$i = $31 | 1;
- HEAP32[$head182$i>>2] = $or183$i;
- } else {
- $or186$i = $cond | 3;
- $head187$i = ((($v$0$i)) + 4|0);
- HEAP32[$head187$i>>2] = $or186$i;
- $or188$i = $rsize$0$i | 1;
- $head189$i = ((($add$ptr$i)) + 4|0);
- HEAP32[$head189$i>>2] = $or188$i;
- $add$ptr190$i = (($add$ptr$i) + ($rsize$0$i)|0);
- HEAP32[$add$ptr190$i>>2] = $rsize$0$i;
- $cmp191$i = ($5|0)==(0);
- if (!($cmp191$i)) {
- $32 = HEAP32[(32500)>>2]|0;
- $shr194$i = $5 >>> 3;
- $shl195$i = $shr194$i << 1;
- $arrayidx196$i = (32520 + ($shl195$i<<2)|0);
- $shl198$i = 1 << $shr194$i;
- $and199$i = $shl198$i & $0;
- $tobool200$i = ($and199$i|0)==(0);
- if ($tobool200$i) {
- $or204$i = $shl198$i | $0;
- HEAP32[8120] = $or204$i;
- $$pre$i = ((($arrayidx196$i)) + 8|0);
- $$pre$phi$iZ2D = $$pre$i;$F197$0$i = $arrayidx196$i;
- } else {
- $33 = ((($arrayidx196$i)) + 8|0);
- $34 = HEAP32[$33>>2]|0;
- $$pre$phi$iZ2D = $33;$F197$0$i = $34;
- }
- HEAP32[$$pre$phi$iZ2D>>2] = $32;
- $bk218$i = ((($F197$0$i)) + 12|0);
- HEAP32[$bk218$i>>2] = $32;
- $fd219$i = ((($32)) + 8|0);
- HEAP32[$fd219$i>>2] = $F197$0$i;
- $bk220$i = ((($32)) + 12|0);
- HEAP32[$bk220$i>>2] = $arrayidx196$i;
- }
- HEAP32[(32488)>>2] = $rsize$0$i;
- HEAP32[(32500)>>2] = $add$ptr$i;
- }
- $add$ptr225$i = ((($v$0$i)) + 8|0);
- $retval$0 = $add$ptr225$i;
- STACKTOP = sp;return ($retval$0|0);
- } else {
- $nb$0 = $cond;
- }
- }
- } else {
- $nb$0 = $cond;
- }
- } else {
- $cmp139 = ($bytes>>>0)>(4294967231);
- if ($cmp139) {
- $nb$0 = -1;
- } else {
- $add144 = (($bytes) + 11)|0;
- $and145 = $add144 & -8;
- $35 = HEAP32[(32484)>>2]|0;
- $cmp146 = ($35|0)==(0);
- if ($cmp146) {
- $nb$0 = $and145;
- } else {
- $sub$i147 = (0 - ($and145))|0;
- $shr$i148 = $add144 >>> 8;
- $cmp$i149 = ($shr$i148|0)==(0);
- if ($cmp$i149) {
- $idx$0$i = 0;
- } else {
- $cmp1$i = ($and145>>>0)>(16777215);
- if ($cmp1$i) {
- $idx$0$i = 31;
- } else {
- $sub4$i = (($shr$i148) + 1048320)|0;
- $shr5$i151 = $sub4$i >>> 16;
- $and$i152 = $shr5$i151 & 8;
- $shl$i153 = $shr$i148 << $and$i152;
- $sub6$i = (($shl$i153) + 520192)|0;
- $shr7$i154 = $sub6$i >>> 16;
- $and8$i = $shr7$i154 & 4;
- $add$i155 = $and8$i | $and$i152;
- $shl9$i = $shl$i153 << $and8$i;
- $sub10$i = (($shl9$i) + 245760)|0;
- $shr11$i156 = $sub10$i >>> 16;
- $and12$i = $shr11$i156 & 2;
- $add13$i = $add$i155 | $and12$i;
- $sub14$i = (14 - ($add13$i))|0;
- $shl15$i = $shl9$i << $and12$i;
- $shr16$i157 = $shl15$i >>> 15;
- $add17$i158 = (($sub14$i) + ($shr16$i157))|0;
- $shl18$i = $add17$i158 << 1;
- $add19$i = (($add17$i158) + 7)|0;
- $shr20$i = $and145 >>> $add19$i;
- $and21$i159 = $shr20$i & 1;
- $add22$i = $and21$i159 | $shl18$i;
- $idx$0$i = $add22$i;
- }
- }
- $arrayidx$i160 = (32784 + ($idx$0$i<<2)|0);
- $36 = HEAP32[$arrayidx$i160>>2]|0;
- $cmp24$i = ($36|0)==(0|0);
- L79: do {
- if ($cmp24$i) {
- $rsize$3$i = $sub$i147;$t$2$i = 0;$v$3$i = 0;
- label = 61;
- } else {
- $cmp26$i = ($idx$0$i|0)==(31);
- $shr27$i = $idx$0$i >>> 1;
- $sub30$i = (25 - ($shr27$i))|0;
- $cond$i = $cmp26$i ? 0 : $sub30$i;
- $shl31$i = $and145 << $cond$i;
- $rsize$0$i162 = $sub$i147;$rst$0$i = 0;$sizebits$0$i = $shl31$i;$t$0$i161 = $36;$v$0$i163 = 0;
- while(1) {
- $head$i164 = ((($t$0$i161)) + 4|0);
- $37 = HEAP32[$head$i164>>2]|0;
- $and32$i = $37 & -8;
- $sub33$i = (($and32$i) - ($and145))|0;
- $cmp34$i = ($sub33$i>>>0)<($rsize$0$i162>>>0);
- if ($cmp34$i) {
- $cmp36$i = ($sub33$i|0)==(0);
- if ($cmp36$i) {
- $rsize$418$i$ph = 0;$t$517$i$ph = $t$0$i161;$v$419$i$ph = $t$0$i161;
- label = 65;
- break L79;
- } else {
- $rsize$1$i = $sub33$i;$v$1$i = $t$0$i161;
- }
- } else {
- $rsize$1$i = $rsize$0$i162;$v$1$i = $v$0$i163;
- }
- $arrayidx40$i = ((($t$0$i161)) + 20|0);
- $38 = HEAP32[$arrayidx40$i>>2]|0;
- $shr42$i = $sizebits$0$i >>> 31;
- $arrayidx44$i = (((($t$0$i161)) + 16|0) + ($shr42$i<<2)|0);
- $39 = HEAP32[$arrayidx44$i>>2]|0;
- $cmp45$i = ($38|0)==(0|0);
- $cmp46$i = ($38|0)==($39|0);
- $or$cond1$i165 = $cmp45$i | $cmp46$i;
- $rst$1$i = $or$cond1$i165 ? $rst$0$i : $38;
- $cmp49$i = ($39|0)==(0|0);
- $spec$select5$i = $sizebits$0$i << 1;
- if ($cmp49$i) {
- $rsize$3$i = $rsize$1$i;$t$2$i = $rst$1$i;$v$3$i = $v$1$i;
- label = 61;
- break;
- } else {
- $rsize$0$i162 = $rsize$1$i;$rst$0$i = $rst$1$i;$sizebits$0$i = $spec$select5$i;$t$0$i161 = $39;$v$0$i163 = $v$1$i;
- }
- }
- }
- } while(0);
- if ((label|0) == 61) {
- $cmp55$i166 = ($t$2$i|0)==(0|0);
- $cmp57$i167 = ($v$3$i|0)==(0|0);
- $or$cond$i168 = $cmp55$i166 & $cmp57$i167;
- if ($or$cond$i168) {
- $shl60$i = 2 << $idx$0$i;
- $sub63$i = (0 - ($shl60$i))|0;
- $or$i169 = $shl60$i | $sub63$i;
- $and64$i = $or$i169 & $35;
- $cmp65$i = ($and64$i|0)==(0);
- if ($cmp65$i) {
- $nb$0 = $and145;
- break;
- }
- $sub67$i = (0 - ($and64$i))|0;
- $and68$i = $and64$i & $sub67$i;
- $sub70$i = (($and68$i) + -1)|0;
- $shr72$i = $sub70$i >>> 12;
- $and73$i = $shr72$i & 16;
- $shr75$i = $sub70$i >>> $and73$i;
- $shr76$i = $shr75$i >>> 5;
- $and77$i = $shr76$i & 8;
- $add78$i = $and77$i | $and73$i;
- $shr79$i = $shr75$i >>> $and77$i;
- $shr80$i = $shr79$i >>> 2;
- $and81$i = $shr80$i & 4;
- $add82$i = $add78$i | $and81$i;
- $shr83$i = $shr79$i >>> $and81$i;
- $shr84$i = $shr83$i >>> 1;
- $and85$i = $shr84$i & 2;
- $add86$i = $add82$i | $and85$i;
- $shr87$i = $shr83$i >>> $and85$i;
- $shr88$i = $shr87$i >>> 1;
- $and89$i = $shr88$i & 1;
- $add90$i = $add86$i | $and89$i;
- $shr91$i = $shr87$i >>> $and89$i;
- $add92$i = (($add90$i) + ($shr91$i))|0;
- $arrayidx94$i170 = (32784 + ($add92$i<<2)|0);
- $40 = HEAP32[$arrayidx94$i170>>2]|0;
- $t$4$i = $40;$v$3$i204 = 0;
- } else {
- $t$4$i = $t$2$i;$v$3$i204 = $v$3$i;
- }
- $cmp9716$i = ($t$4$i|0)==(0|0);
- if ($cmp9716$i) {
- $rsize$4$lcssa$i = $rsize$3$i;$v$4$lcssa$i = $v$3$i204;
- } else {
- $rsize$418$i$ph = $rsize$3$i;$t$517$i$ph = $t$4$i;$v$419$i$ph = $v$3$i204;
- label = 65;
- }
- }
- if ((label|0) == 65) {
- $rsize$418$i = $rsize$418$i$ph;$t$517$i = $t$517$i$ph;$v$419$i = $v$419$i$ph;
- while(1) {
- $head99$i = ((($t$517$i)) + 4|0);
- $41 = HEAP32[$head99$i>>2]|0;
- $and100$i = $41 & -8;
- $sub101$i = (($and100$i) - ($and145))|0;
- $cmp102$i = ($sub101$i>>>0)<($rsize$418$i>>>0);
- $spec$select$i171 = $cmp102$i ? $sub101$i : $rsize$418$i;
- $spec$select2$i = $cmp102$i ? $t$517$i : $v$419$i;
- $arrayidx106$i = ((($t$517$i)) + 16|0);
- $42 = HEAP32[$arrayidx106$i>>2]|0;
- $cmp107$i = ($42|0)==(0|0);
- if ($cmp107$i) {
- $arrayidx113$i173 = ((($t$517$i)) + 20|0);
- $43 = HEAP32[$arrayidx113$i173>>2]|0;
- $cond115$i = $43;
- } else {
- $cond115$i = $42;
- }
- $cmp97$i = ($cond115$i|0)==(0|0);
- if ($cmp97$i) {
- $rsize$4$lcssa$i = $spec$select$i171;$v$4$lcssa$i = $spec$select2$i;
- break;
- } else {
- $rsize$418$i = $spec$select$i171;$t$517$i = $cond115$i;$v$419$i = $spec$select2$i;
- }
- }
- }
- $cmp116$i = ($v$4$lcssa$i|0)==(0|0);
- if ($cmp116$i) {
- $nb$0 = $and145;
- } else {
- $44 = HEAP32[(32488)>>2]|0;
- $sub118$i = (($44) - ($and145))|0;
- $cmp119$i = ($rsize$4$lcssa$i>>>0)<($sub118$i>>>0);
- if ($cmp119$i) {
- $add$ptr$i174 = (($v$4$lcssa$i) + ($and145)|0);
- $cmp123$i = ($add$ptr$i174>>>0)>($v$4$lcssa$i>>>0);
- if ($cmp123$i) {
- $parent$i175 = ((($v$4$lcssa$i)) + 24|0);
- $45 = HEAP32[$parent$i175>>2]|0;
- $bk$i176 = ((($v$4$lcssa$i)) + 12|0);
- $46 = HEAP32[$bk$i176>>2]|0;
- $cmp128$i = ($46|0)==($v$4$lcssa$i|0);
- do {
- if ($cmp128$i) {
- $arrayidx151$i = ((($v$4$lcssa$i)) + 20|0);
- $48 = HEAP32[$arrayidx151$i>>2]|0;
- $cmp152$i = ($48|0)==(0|0);
- if ($cmp152$i) {
- $arrayidx155$i = ((($v$4$lcssa$i)) + 16|0);
- $49 = HEAP32[$arrayidx155$i>>2]|0;
- $cmp156$i = ($49|0)==(0|0);
- if ($cmp156$i) {
- $R$3$i188 = 0;
- break;
- } else {
- $R$1$i183$ph = $49;$RP$1$i182$ph = $arrayidx155$i;
- }
- } else {
- $R$1$i183$ph = $48;$RP$1$i182$ph = $arrayidx151$i;
- }
- $R$1$i183 = $R$1$i183$ph;$RP$1$i182 = $RP$1$i182$ph;
- while(1) {
- $arrayidx161$i = ((($R$1$i183)) + 20|0);
- $50 = HEAP32[$arrayidx161$i>>2]|0;
- $cmp162$i184 = ($50|0)==(0|0);
- if ($cmp162$i184) {
- $arrayidx165$i185 = ((($R$1$i183)) + 16|0);
- $51 = HEAP32[$arrayidx165$i185>>2]|0;
- $cmp166$i = ($51|0)==(0|0);
- if ($cmp166$i) {
- break;
- } else {
- $R$1$i183$be = $51;$RP$1$i182$be = $arrayidx165$i185;
- }
- } else {
- $R$1$i183$be = $50;$RP$1$i182$be = $arrayidx161$i;
- }
- $R$1$i183 = $R$1$i183$be;$RP$1$i182 = $RP$1$i182$be;
- }
- HEAP32[$RP$1$i182>>2] = 0;
- $R$3$i188 = $R$1$i183;
- } else {
- $fd$i177 = ((($v$4$lcssa$i)) + 8|0);
- $47 = HEAP32[$fd$i177>>2]|0;
- $bk145$i = ((($47)) + 12|0);
- HEAP32[$bk145$i>>2] = $46;
- $fd146$i = ((($46)) + 8|0);
- HEAP32[$fd146$i>>2] = $47;
- $R$3$i188 = $46;
- }
- } while(0);
- $cmp180$i = ($45|0)==(0|0);
- do {
- if ($cmp180$i) {
- $61 = $35;
- } else {
- $index$i189 = ((($v$4$lcssa$i)) + 28|0);
- $52 = HEAP32[$index$i189>>2]|0;
- $arrayidx184$i = (32784 + ($52<<2)|0);
- $53 = HEAP32[$arrayidx184$i>>2]|0;
- $cmp185$i = ($v$4$lcssa$i|0)==($53|0);
- if ($cmp185$i) {
- HEAP32[$arrayidx184$i>>2] = $R$3$i188;
- $cond3$i = ($R$3$i188|0)==(0|0);
- if ($cond3$i) {
- $shl192$i = 1 << $52;
- $neg$i190 = $shl192$i ^ -1;
- $and194$i191 = $35 & $neg$i190;
- HEAP32[(32484)>>2] = $and194$i191;
- $61 = $and194$i191;
- break;
- }
- } else {
- $arrayidx204$i = ((($45)) + 16|0);
- $54 = HEAP32[$arrayidx204$i>>2]|0;
- $cmp205$i = ($54|0)==($v$4$lcssa$i|0);
- $arrayidx212$i = ((($45)) + 20|0);
- $arrayidx212$i$sink = $cmp205$i ? $arrayidx204$i : $arrayidx212$i;
- HEAP32[$arrayidx212$i$sink>>2] = $R$3$i188;
- $cmp217$i = ($R$3$i188|0)==(0|0);
- if ($cmp217$i) {
- $61 = $35;
- break;
- }
- }
- $parent226$i = ((($R$3$i188)) + 24|0);
- HEAP32[$parent226$i>>2] = $45;
- $arrayidx228$i = ((($v$4$lcssa$i)) + 16|0);
- $55 = HEAP32[$arrayidx228$i>>2]|0;
- $cmp229$i = ($55|0)==(0|0);
- if (!($cmp229$i)) {
- $arrayidx239$i = ((($R$3$i188)) + 16|0);
- HEAP32[$arrayidx239$i>>2] = $55;
- $parent240$i = ((($55)) + 24|0);
- HEAP32[$parent240$i>>2] = $R$3$i188;
- }
- $arrayidx245$i = ((($v$4$lcssa$i)) + 20|0);
- $56 = HEAP32[$arrayidx245$i>>2]|0;
- $cmp246$i = ($56|0)==(0|0);
- if ($cmp246$i) {
- $61 = $35;
- } else {
- $arrayidx256$i = ((($R$3$i188)) + 20|0);
- HEAP32[$arrayidx256$i>>2] = $56;
- $parent257$i = ((($56)) + 24|0);
- HEAP32[$parent257$i>>2] = $R$3$i188;
- $61 = $35;
- }
- }
- } while(0);
- $cmp265$i = ($rsize$4$lcssa$i>>>0)<(16);
- L128: do {
- if ($cmp265$i) {
- $add268$i = (($rsize$4$lcssa$i) + ($and145))|0;
- $or270$i = $add268$i | 3;
- $head271$i = ((($v$4$lcssa$i)) + 4|0);
- HEAP32[$head271$i>>2] = $or270$i;
- $add$ptr273$i = (($v$4$lcssa$i) + ($add268$i)|0);
- $head274$i = ((($add$ptr273$i)) + 4|0);
- $57 = HEAP32[$head274$i>>2]|0;
- $or275$i = $57 | 1;
- HEAP32[$head274$i>>2] = $or275$i;
- } else {
- $or278$i = $and145 | 3;
- $head279$i = ((($v$4$lcssa$i)) + 4|0);
- HEAP32[$head279$i>>2] = $or278$i;
- $or280$i = $rsize$4$lcssa$i | 1;
- $head281$i = ((($add$ptr$i174)) + 4|0);
- HEAP32[$head281$i>>2] = $or280$i;
- $add$ptr282$i = (($add$ptr$i174) + ($rsize$4$lcssa$i)|0);
- HEAP32[$add$ptr282$i>>2] = $rsize$4$lcssa$i;
- $shr283$i = $rsize$4$lcssa$i >>> 3;
- $cmp284$i = ($rsize$4$lcssa$i>>>0)<(256);
- if ($cmp284$i) {
- $shl288$i = $shr283$i << 1;
- $arrayidx289$i = (32520 + ($shl288$i<<2)|0);
- $58 = HEAP32[8120]|0;
- $shl291$i = 1 << $shr283$i;
- $and292$i = $58 & $shl291$i;
- $tobool293$i = ($and292$i|0)==(0);
- if ($tobool293$i) {
- $or297$i = $58 | $shl291$i;
- HEAP32[8120] = $or297$i;
- $$pre$i194 = ((($arrayidx289$i)) + 8|0);
- $$pre$phi$i195Z2D = $$pre$i194;$F290$0$i = $arrayidx289$i;
- } else {
- $59 = ((($arrayidx289$i)) + 8|0);
- $60 = HEAP32[$59>>2]|0;
- $$pre$phi$i195Z2D = $59;$F290$0$i = $60;
- }
- HEAP32[$$pre$phi$i195Z2D>>2] = $add$ptr$i174;
- $bk311$i = ((($F290$0$i)) + 12|0);
- HEAP32[$bk311$i>>2] = $add$ptr$i174;
- $fd312$i = ((($add$ptr$i174)) + 8|0);
- HEAP32[$fd312$i>>2] = $F290$0$i;
- $bk313$i = ((($add$ptr$i174)) + 12|0);
- HEAP32[$bk313$i>>2] = $arrayidx289$i;
- break;
- }
- $shr318$i = $rsize$4$lcssa$i >>> 8;
- $cmp319$i = ($shr318$i|0)==(0);
- if ($cmp319$i) {
- $I316$0$i = 0;
- } else {
- $cmp323$i = ($rsize$4$lcssa$i>>>0)>(16777215);
- if ($cmp323$i) {
- $I316$0$i = 31;
- } else {
- $sub329$i = (($shr318$i) + 1048320)|0;
- $shr330$i = $sub329$i >>> 16;
- $and331$i = $shr330$i & 8;
- $shl333$i = $shr318$i << $and331$i;
- $sub334$i = (($shl333$i) + 520192)|0;
- $shr335$i = $sub334$i >>> 16;
- $and336$i = $shr335$i & 4;
- $add337$i = $and336$i | $and331$i;
- $shl338$i = $shl333$i << $and336$i;
- $sub339$i = (($shl338$i) + 245760)|0;
- $shr340$i = $sub339$i >>> 16;
- $and341$i = $shr340$i & 2;
- $add342$i = $add337$i | $and341$i;
- $sub343$i = (14 - ($add342$i))|0;
- $shl344$i = $shl338$i << $and341$i;
- $shr345$i = $shl344$i >>> 15;
- $add346$i = (($sub343$i) + ($shr345$i))|0;
- $shl347$i = $add346$i << 1;
- $add348$i = (($add346$i) + 7)|0;
- $shr349$i = $rsize$4$lcssa$i >>> $add348$i;
- $and350$i = $shr349$i & 1;
- $add351$i = $and350$i | $shl347$i;
- $I316$0$i = $add351$i;
- }
- }
- $arrayidx355$i = (32784 + ($I316$0$i<<2)|0);
- $index356$i = ((($add$ptr$i174)) + 28|0);
- HEAP32[$index356$i>>2] = $I316$0$i;
- $child357$i = ((($add$ptr$i174)) + 16|0);
- $arrayidx358$i = ((($child357$i)) + 4|0);
- HEAP32[$arrayidx358$i>>2] = 0;
- HEAP32[$child357$i>>2] = 0;
- $shl362$i = 1 << $I316$0$i;
- $and363$i = $61 & $shl362$i;
- $tobool364$i = ($and363$i|0)==(0);
- if ($tobool364$i) {
- $or368$i = $61 | $shl362$i;
- HEAP32[(32484)>>2] = $or368$i;
- HEAP32[$arrayidx355$i>>2] = $add$ptr$i174;
- $parent369$i = ((($add$ptr$i174)) + 24|0);
- HEAP32[$parent369$i>>2] = $arrayidx355$i;
- $bk370$i = ((($add$ptr$i174)) + 12|0);
- HEAP32[$bk370$i>>2] = $add$ptr$i174;
- $fd371$i = ((($add$ptr$i174)) + 8|0);
- HEAP32[$fd371$i>>2] = $add$ptr$i174;
- break;
- }
- $62 = HEAP32[$arrayidx355$i>>2]|0;
- $head38611$i = ((($62)) + 4|0);
- $63 = HEAP32[$head38611$i>>2]|0;
- $and38712$i = $63 & -8;
- $cmp38813$i = ($and38712$i|0)==($rsize$4$lcssa$i|0);
- L145: do {
- if ($cmp38813$i) {
- $T$0$lcssa$i = $62;
- } else {
- $cmp374$i = ($I316$0$i|0)==(31);
- $shr378$i = $I316$0$i >>> 1;
- $sub381$i = (25 - ($shr378$i))|0;
- $cond383$i = $cmp374$i ? 0 : $sub381$i;
- $shl384$i = $rsize$4$lcssa$i << $cond383$i;
- $K373$015$i = $shl384$i;$T$014$i = $62;
- while(1) {
- $shr392$i = $K373$015$i >>> 31;
- $arrayidx394$i = (((($T$014$i)) + 16|0) + ($shr392$i<<2)|0);
- $64 = HEAP32[$arrayidx394$i>>2]|0;
- $cmp396$i = ($64|0)==(0|0);
- if ($cmp396$i) {
- break;
- }
- $shl395$i = $K373$015$i << 1;
- $head386$i = ((($64)) + 4|0);
- $65 = HEAP32[$head386$i>>2]|0;
- $and387$i = $65 & -8;
- $cmp388$i = ($and387$i|0)==($rsize$4$lcssa$i|0);
- if ($cmp388$i) {
- $T$0$lcssa$i = $64;
- break L145;
- } else {
- $K373$015$i = $shl395$i;$T$014$i = $64;
- }
- }
- HEAP32[$arrayidx394$i>>2] = $add$ptr$i174;
- $parent406$i = ((($add$ptr$i174)) + 24|0);
- HEAP32[$parent406$i>>2] = $T$014$i;
- $bk407$i = ((($add$ptr$i174)) + 12|0);
- HEAP32[$bk407$i>>2] = $add$ptr$i174;
- $fd408$i = ((($add$ptr$i174)) + 8|0);
- HEAP32[$fd408$i>>2] = $add$ptr$i174;
- break L128;
- }
- } while(0);
- $fd416$i = ((($T$0$lcssa$i)) + 8|0);
- $66 = HEAP32[$fd416$i>>2]|0;
- $bk429$i = ((($66)) + 12|0);
- HEAP32[$bk429$i>>2] = $add$ptr$i174;
- HEAP32[$fd416$i>>2] = $add$ptr$i174;
- $fd431$i = ((($add$ptr$i174)) + 8|0);
- HEAP32[$fd431$i>>2] = $66;
- $bk432$i = ((($add$ptr$i174)) + 12|0);
- HEAP32[$bk432$i>>2] = $T$0$lcssa$i;
- $parent433$i = ((($add$ptr$i174)) + 24|0);
- HEAP32[$parent433$i>>2] = 0;
- }
- } while(0);
- $add$ptr441$i = ((($v$4$lcssa$i)) + 8|0);
- $retval$0 = $add$ptr441$i;
- STACKTOP = sp;return ($retval$0|0);
- } else {
- $nb$0 = $and145;
- }
- } else {
- $nb$0 = $and145;
- }
- }
- }
- }
- }
- } while(0);
- $67 = HEAP32[(32488)>>2]|0;
- $cmp156 = ($67>>>0)<($nb$0>>>0);
- if (!($cmp156)) {
- $sub160 = (($67) - ($nb$0))|0;
- $68 = HEAP32[(32500)>>2]|0;
- $cmp162 = ($sub160>>>0)>(15);
- if ($cmp162) {
- $add$ptr166 = (($68) + ($nb$0)|0);
- HEAP32[(32500)>>2] = $add$ptr166;
- HEAP32[(32488)>>2] = $sub160;
- $or167 = $sub160 | 1;
- $head168 = ((($add$ptr166)) + 4|0);
- HEAP32[$head168>>2] = $or167;
- $add$ptr169 = (($68) + ($67)|0);
- HEAP32[$add$ptr169>>2] = $sub160;
- $or172 = $nb$0 | 3;
- $head173 = ((($68)) + 4|0);
- HEAP32[$head173>>2] = $or172;
- } else {
- HEAP32[(32488)>>2] = 0;
- HEAP32[(32500)>>2] = 0;
- $or176 = $67 | 3;
- $head177 = ((($68)) + 4|0);
- HEAP32[$head177>>2] = $or176;
- $add$ptr178 = (($68) + ($67)|0);
- $head179 = ((($add$ptr178)) + 4|0);
- $69 = HEAP32[$head179>>2]|0;
- $or180 = $69 | 1;
- HEAP32[$head179>>2] = $or180;
- }
- $add$ptr182 = ((($68)) + 8|0);
- $retval$0 = $add$ptr182;
- STACKTOP = sp;return ($retval$0|0);
- }
- $70 = HEAP32[(32492)>>2]|0;
- $cmp186 = ($70>>>0)>($nb$0>>>0);
- if ($cmp186) {
- $sub190 = (($70) - ($nb$0))|0;
- HEAP32[(32492)>>2] = $sub190;
- $71 = HEAP32[(32504)>>2]|0;
- $add$ptr193 = (($71) + ($nb$0)|0);
- HEAP32[(32504)>>2] = $add$ptr193;
- $or194 = $sub190 | 1;
- $head195 = ((($add$ptr193)) + 4|0);
- HEAP32[$head195>>2] = $or194;
- $or197 = $nb$0 | 3;
- $head198 = ((($71)) + 4|0);
- HEAP32[$head198>>2] = $or197;
- $add$ptr199 = ((($71)) + 8|0);
- $retval$0 = $add$ptr199;
- STACKTOP = sp;return ($retval$0|0);
- }
- $72 = HEAP32[8238]|0;
- $cmp$i133 = ($72|0)==(0);
- if ($cmp$i133) {
- HEAP32[(32960)>>2] = 4096;
- HEAP32[(32956)>>2] = 4096;
- HEAP32[(32964)>>2] = -1;
- HEAP32[(32968)>>2] = -1;
- HEAP32[(32972)>>2] = 0;
- HEAP32[(32924)>>2] = 0;
- $73 = $magic$i$i;
- $xor$i$i = $73 & -16;
- $and6$i$i = $xor$i$i ^ 1431655768;
- HEAP32[8238] = $and6$i$i;
- $74 = 4096;
- } else {
- $$pre$i134 = HEAP32[(32960)>>2]|0;
- $74 = $$pre$i134;
- }
- $add$i135 = (($nb$0) + 48)|0;
- $sub$i136 = (($nb$0) + 47)|0;
- $add9$i = (($74) + ($sub$i136))|0;
- $neg$i137 = (0 - ($74))|0;
- $and11$i = $add9$i & $neg$i137;
- $cmp12$i = ($and11$i>>>0)>($nb$0>>>0);
- if (!($cmp12$i)) {
- $retval$0 = 0;
- STACKTOP = sp;return ($retval$0|0);
- }
- $75 = HEAP32[(32920)>>2]|0;
- $cmp15$i = ($75|0)==(0);
- if (!($cmp15$i)) {
- $76 = HEAP32[(32912)>>2]|0;
- $add17$i = (($76) + ($and11$i))|0;
- $cmp19$i = ($add17$i>>>0)<=($76>>>0);
- $cmp21$i = ($add17$i>>>0)>($75>>>0);
- $or$cond1$i = $cmp19$i | $cmp21$i;
- if ($or$cond1$i) {
- $retval$0 = 0;
- STACKTOP = sp;return ($retval$0|0);
- }
- }
- $77 = HEAP32[(32924)>>2]|0;
- $and29$i = $77 & 4;
- $tobool30$i = ($and29$i|0)==(0);
- L178: do {
- if ($tobool30$i) {
- $78 = HEAP32[(32504)>>2]|0;
- $cmp32$i138 = ($78|0)==(0|0);
- L180: do {
- if ($cmp32$i138) {
- label = 128;
- } else {
- $sp$0$i$i = (32928);
- while(1) {
- $79 = HEAP32[$sp$0$i$i>>2]|0;
- $cmp$i55$i = ($79>>>0)>($78>>>0);
- if (!($cmp$i55$i)) {
- $size$i$i = ((($sp$0$i$i)) + 4|0);
- $80 = HEAP32[$size$i$i>>2]|0;
- $add$ptr$i57$i = (($79) + ($80)|0);
- $cmp2$i$i = ($add$ptr$i57$i>>>0)>($78>>>0);
- if ($cmp2$i$i) {
- break;
- }
- }
- $next$i$i = ((($sp$0$i$i)) + 8|0);
- $81 = HEAP32[$next$i$i>>2]|0;
- $cmp3$i$i = ($81|0)==(0|0);
- if ($cmp3$i$i) {
- label = 128;
- break L180;
- } else {
- $sp$0$i$i = $81;
- }
- }
- $add77$i = (($add9$i) - ($70))|0;
- $and80$i = $add77$i & $neg$i137;
- $cmp81$i = ($and80$i>>>0)<(2147483647);
- if ($cmp81$i) {
- $size$i$i$le = ((($sp$0$i$i)) + 4|0);
- $call83$i = (_sbrk(($and80$i|0))|0);
- $86 = HEAP32[$sp$0$i$i>>2]|0;
- $87 = HEAP32[$size$i$i$le>>2]|0;
- $add$ptr$i141 = (($86) + ($87)|0);
- $cmp85$i = ($call83$i|0)==($add$ptr$i141|0);
- if ($cmp85$i) {
- $cmp89$i = ($call83$i|0)==((-1)|0);
- if ($cmp89$i) {
- $tsize$2647482$i = $and80$i;
- } else {
- $tbase$795$i = $call83$i;$tsize$794$i = $and80$i;
- label = 145;
- break L178;
- }
- } else {
- $br$2$ph$i = $call83$i;$ssize$2$ph$i = $and80$i;
- label = 136;
- }
- } else {
- $tsize$2647482$i = 0;
- }
- }
- } while(0);
- do {
- if ((label|0) == 128) {
- $call37$i = (_sbrk(0)|0);
- $cmp38$i = ($call37$i|0)==((-1)|0);
- if ($cmp38$i) {
- $tsize$2647482$i = 0;
- } else {
- $82 = $call37$i;
- $83 = HEAP32[(32956)>>2]|0;
- $sub41$i = (($83) + -1)|0;
- $and42$i = $sub41$i & $82;
- $cmp43$i = ($and42$i|0)==(0);
- $add46$i = (($sub41$i) + ($82))|0;
- $neg48$i = (0 - ($83))|0;
- $and49$i = $add46$i & $neg48$i;
- $sub50$i = (($and49$i) - ($82))|0;
- $add51$i = $cmp43$i ? 0 : $sub50$i;
- $spec$select96$i = (($add51$i) + ($and11$i))|0;
- $84 = HEAP32[(32912)>>2]|0;
- $add54$i = (($spec$select96$i) + ($84))|0;
- $cmp55$i = ($spec$select96$i>>>0)>($nb$0>>>0);
- $cmp57$i = ($spec$select96$i>>>0)<(2147483647);
- $or$cond$i = $cmp55$i & $cmp57$i;
- if ($or$cond$i) {
- $85 = HEAP32[(32920)>>2]|0;
- $cmp60$i = ($85|0)==(0);
- if (!($cmp60$i)) {
- $cmp63$i = ($add54$i>>>0)<=($84>>>0);
- $cmp66$i140 = ($add54$i>>>0)>($85>>>0);
- $or$cond2$i = $cmp63$i | $cmp66$i140;
- if ($or$cond2$i) {
- $tsize$2647482$i = 0;
- break;
- }
- }
- $call68$i = (_sbrk(($spec$select96$i|0))|0);
- $cmp69$i = ($call68$i|0)==($call37$i|0);
- if ($cmp69$i) {
- $tbase$795$i = $call37$i;$tsize$794$i = $spec$select96$i;
- label = 145;
- break L178;
- } else {
- $br$2$ph$i = $call68$i;$ssize$2$ph$i = $spec$select96$i;
- label = 136;
- }
- } else {
- $tsize$2647482$i = 0;
- }
- }
- }
- } while(0);
- do {
- if ((label|0) == 136) {
- $sub112$i = (0 - ($ssize$2$ph$i))|0;
- $cmp91$i = ($br$2$ph$i|0)!=((-1)|0);
- $cmp93$i = ($ssize$2$ph$i>>>0)<(2147483647);
- $or$cond5$i = $cmp93$i & $cmp91$i;
- $cmp96$i = ($add$i135>>>0)>($ssize$2$ph$i>>>0);
- $or$cond7$i = $cmp96$i & $or$cond5$i;
- if (!($or$cond7$i)) {
- $cmp118$i = ($br$2$ph$i|0)==((-1)|0);
- if ($cmp118$i) {
- $tsize$2647482$i = 0;
- break;
- } else {
- $tbase$795$i = $br$2$ph$i;$tsize$794$i = $ssize$2$ph$i;
- label = 145;
- break L178;
- }
- }
- $88 = HEAP32[(32960)>>2]|0;
- $sub99$i = (($sub$i136) - ($ssize$2$ph$i))|0;
- $add101$i = (($sub99$i) + ($88))|0;
- $neg103$i = (0 - ($88))|0;
- $and104$i = $add101$i & $neg103$i;
- $cmp105$i = ($and104$i>>>0)<(2147483647);
- if (!($cmp105$i)) {
- $tbase$795$i = $br$2$ph$i;$tsize$794$i = $ssize$2$ph$i;
- label = 145;
- break L178;
- }
- $call107$i = (_sbrk(($and104$i|0))|0);
- $cmp108$i = ($call107$i|0)==((-1)|0);
- if ($cmp108$i) {
- (_sbrk(($sub112$i|0))|0);
- $tsize$2647482$i = 0;
- break;
- } else {
- $add110$i = (($and104$i) + ($ssize$2$ph$i))|0;
- $tbase$795$i = $br$2$ph$i;$tsize$794$i = $add110$i;
- label = 145;
- break L178;
- }
- }
- } while(0);
- $89 = HEAP32[(32924)>>2]|0;
- $or$i = $89 | 4;
- HEAP32[(32924)>>2] = $or$i;
- $tsize$4$i = $tsize$2647482$i;
- label = 143;
- } else {
- $tsize$4$i = 0;
- label = 143;
- }
- } while(0);
- if ((label|0) == 143) {
- $cmp127$i = ($and11$i>>>0)<(2147483647);
- if ($cmp127$i) {
- $call131$i = (_sbrk(($and11$i|0))|0);
- $call132$i = (_sbrk(0)|0);
- $cmp133$i = ($call131$i|0)!=((-1)|0);
- $cmp135$i = ($call132$i|0)!=((-1)|0);
- $or$cond4$i = $cmp133$i & $cmp135$i;
- $cmp137$i = ($call131$i>>>0)<($call132$i>>>0);
- $or$cond8$i = $cmp137$i & $or$cond4$i;
- $sub$ptr$lhs$cast$i = $call132$i;
- $sub$ptr$rhs$cast$i = $call131$i;
- $sub$ptr$sub$i = (($sub$ptr$lhs$cast$i) - ($sub$ptr$rhs$cast$i))|0;
- $add140$i = (($nb$0) + 40)|0;
- $cmp141$i = ($sub$ptr$sub$i>>>0)>($add140$i>>>0);
- $spec$select9$i = $cmp141$i ? $sub$ptr$sub$i : $tsize$4$i;
- $or$cond8$not$i = $or$cond8$i ^ 1;
- $cmp14799$i = ($call131$i|0)==((-1)|0);
- $not$cmp141$i = $cmp141$i ^ 1;
- $cmp147$i = $cmp14799$i | $not$cmp141$i;
- $or$cond97$i = $cmp147$i | $or$cond8$not$i;
- if (!($or$cond97$i)) {
- $tbase$795$i = $call131$i;$tsize$794$i = $spec$select9$i;
- label = 145;
- }
- }
- }
- if ((label|0) == 145) {
- $90 = HEAP32[(32912)>>2]|0;
- $add150$i = (($90) + ($tsize$794$i))|0;
- HEAP32[(32912)>>2] = $add150$i;
- $91 = HEAP32[(32916)>>2]|0;
- $cmp151$i = ($add150$i>>>0)>($91>>>0);
- if ($cmp151$i) {
- HEAP32[(32916)>>2] = $add150$i;
- }
- $92 = HEAP32[(32504)>>2]|0;
- $cmp157$i = ($92|0)==(0|0);
- L215: do {
- if ($cmp157$i) {
- $93 = HEAP32[(32496)>>2]|0;
- $cmp159$i = ($93|0)==(0|0);
- $cmp162$i = ($tbase$795$i>>>0)<($93>>>0);
- $or$cond11$i = $cmp159$i | $cmp162$i;
- if ($or$cond11$i) {
- HEAP32[(32496)>>2] = $tbase$795$i;
- }
- HEAP32[(32928)>>2] = $tbase$795$i;
- HEAP32[(32932)>>2] = $tsize$794$i;
- HEAP32[(32940)>>2] = 0;
- $94 = HEAP32[8238]|0;
- HEAP32[(32516)>>2] = $94;
- HEAP32[(32512)>>2] = -1;
- HEAP32[(32532)>>2] = (32520);
- HEAP32[(32528)>>2] = (32520);
- HEAP32[(32540)>>2] = (32528);
- HEAP32[(32536)>>2] = (32528);
- HEAP32[(32548)>>2] = (32536);
- HEAP32[(32544)>>2] = (32536);
- HEAP32[(32556)>>2] = (32544);
- HEAP32[(32552)>>2] = (32544);
- HEAP32[(32564)>>2] = (32552);
- HEAP32[(32560)>>2] = (32552);
- HEAP32[(32572)>>2] = (32560);
- HEAP32[(32568)>>2] = (32560);
- HEAP32[(32580)>>2] = (32568);
- HEAP32[(32576)>>2] = (32568);
- HEAP32[(32588)>>2] = (32576);
- HEAP32[(32584)>>2] = (32576);
- HEAP32[(32596)>>2] = (32584);
- HEAP32[(32592)>>2] = (32584);
- HEAP32[(32604)>>2] = (32592);
- HEAP32[(32600)>>2] = (32592);
- HEAP32[(32612)>>2] = (32600);
- HEAP32[(32608)>>2] = (32600);
- HEAP32[(32620)>>2] = (32608);
- HEAP32[(32616)>>2] = (32608);
- HEAP32[(32628)>>2] = (32616);
- HEAP32[(32624)>>2] = (32616);
- HEAP32[(32636)>>2] = (32624);
- HEAP32[(32632)>>2] = (32624);
- HEAP32[(32644)>>2] = (32632);
- HEAP32[(32640)>>2] = (32632);
- HEAP32[(32652)>>2] = (32640);
- HEAP32[(32648)>>2] = (32640);
- HEAP32[(32660)>>2] = (32648);
- HEAP32[(32656)>>2] = (32648);
- HEAP32[(32668)>>2] = (32656);
- HEAP32[(32664)>>2] = (32656);
- HEAP32[(32676)>>2] = (32664);
- HEAP32[(32672)>>2] = (32664);
- HEAP32[(32684)>>2] = (32672);
- HEAP32[(32680)>>2] = (32672);
- HEAP32[(32692)>>2] = (32680);
- HEAP32[(32688)>>2] = (32680);
- HEAP32[(32700)>>2] = (32688);
- HEAP32[(32696)>>2] = (32688);
- HEAP32[(32708)>>2] = (32696);
- HEAP32[(32704)>>2] = (32696);
- HEAP32[(32716)>>2] = (32704);
- HEAP32[(32712)>>2] = (32704);
- HEAP32[(32724)>>2] = (32712);
- HEAP32[(32720)>>2] = (32712);
- HEAP32[(32732)>>2] = (32720);
- HEAP32[(32728)>>2] = (32720);
- HEAP32[(32740)>>2] = (32728);
- HEAP32[(32736)>>2] = (32728);
- HEAP32[(32748)>>2] = (32736);
- HEAP32[(32744)>>2] = (32736);
- HEAP32[(32756)>>2] = (32744);
- HEAP32[(32752)>>2] = (32744);
- HEAP32[(32764)>>2] = (32752);
- HEAP32[(32760)>>2] = (32752);
- HEAP32[(32772)>>2] = (32760);
- HEAP32[(32768)>>2] = (32760);
- HEAP32[(32780)>>2] = (32768);
- HEAP32[(32776)>>2] = (32768);
- $sub172$i = (($tsize$794$i) + -40)|0;
- $add$ptr$i43$i = ((($tbase$795$i)) + 8|0);
- $95 = $add$ptr$i43$i;
- $and$i44$i = $95 & 7;
- $cmp$i45$i = ($and$i44$i|0)==(0);
- $sub$i46$i = (0 - ($95))|0;
- $and3$i47$i = $sub$i46$i & 7;
- $cond$i48$i = $cmp$i45$i ? 0 : $and3$i47$i;
- $add$ptr4$i49$i = (($tbase$795$i) + ($cond$i48$i)|0);
- $sub5$i50$i = (($sub172$i) - ($cond$i48$i))|0;
- HEAP32[(32504)>>2] = $add$ptr4$i49$i;
- HEAP32[(32492)>>2] = $sub5$i50$i;
- $or$i51$i = $sub5$i50$i | 1;
- $head$i52$i = ((($add$ptr4$i49$i)) + 4|0);
- HEAP32[$head$i52$i>>2] = $or$i51$i;
- $add$ptr6$i53$i = (($tbase$795$i) + ($sub172$i)|0);
- $head7$i54$i = ((($add$ptr6$i53$i)) + 4|0);
- HEAP32[$head7$i54$i>>2] = 40;
- $96 = HEAP32[(32968)>>2]|0;
- HEAP32[(32508)>>2] = $96;
- } else {
- $sp$0112$i = (32928);
- while(1) {
- $97 = HEAP32[$sp$0112$i>>2]|0;
- $size188$i = ((($sp$0112$i)) + 4|0);
- $98 = HEAP32[$size188$i>>2]|0;
- $add$ptr189$i = (($97) + ($98)|0);
- $cmp190$i = ($tbase$795$i|0)==($add$ptr189$i|0);
- if ($cmp190$i) {
- label = 154;
- break;
- }
- $next$i = ((($sp$0112$i)) + 8|0);
- $99 = HEAP32[$next$i>>2]|0;
- $cmp186$i = ($99|0)==(0|0);
- if ($cmp186$i) {
- break;
- } else {
- $sp$0112$i = $99;
- }
- }
- if ((label|0) == 154) {
- $size188$i$le = ((($sp$0112$i)) + 4|0);
- $sflags193$i = ((($sp$0112$i)) + 12|0);
- $100 = HEAP32[$sflags193$i>>2]|0;
- $and194$i = $100 & 8;
- $tobool195$i = ($and194$i|0)==(0);
- if ($tobool195$i) {
- $cmp203$i = ($97>>>0)<=($92>>>0);
- $cmp209$i = ($tbase$795$i>>>0)>($92>>>0);
- $or$cond98$i = $cmp209$i & $cmp203$i;
- if ($or$cond98$i) {
- $add212$i = (($98) + ($tsize$794$i))|0;
- HEAP32[$size188$i$le>>2] = $add212$i;
- $101 = HEAP32[(32492)>>2]|0;
- $add215$i = (($101) + ($tsize$794$i))|0;
- $add$ptr$i35$i = ((($92)) + 8|0);
- $102 = $add$ptr$i35$i;
- $and$i36$i = $102 & 7;
- $cmp$i37$i = ($and$i36$i|0)==(0);
- $sub$i38$i = (0 - ($102))|0;
- $and3$i39$i = $sub$i38$i & 7;
- $cond$i40$i = $cmp$i37$i ? 0 : $and3$i39$i;
- $add$ptr4$i41$i = (($92) + ($cond$i40$i)|0);
- $sub5$i$i = (($add215$i) - ($cond$i40$i))|0;
- HEAP32[(32504)>>2] = $add$ptr4$i41$i;
- HEAP32[(32492)>>2] = $sub5$i$i;
- $or$i$i = $sub5$i$i | 1;
- $head$i42$i = ((($add$ptr4$i41$i)) + 4|0);
- HEAP32[$head$i42$i>>2] = $or$i$i;
- $add$ptr6$i$i = (($92) + ($add215$i)|0);
- $head7$i$i = ((($add$ptr6$i$i)) + 4|0);
- HEAP32[$head7$i$i>>2] = 40;
- $103 = HEAP32[(32968)>>2]|0;
- HEAP32[(32508)>>2] = $103;
- break;
- }
- }
- }
- $104 = HEAP32[(32496)>>2]|0;
- $cmp218$i = ($tbase$795$i>>>0)<($104>>>0);
- if ($cmp218$i) {
- HEAP32[(32496)>>2] = $tbase$795$i;
- }
- $add$ptr227$i = (($tbase$795$i) + ($tsize$794$i)|0);
- $sp$1111$i = (32928);
- while(1) {
- $105 = HEAP32[$sp$1111$i>>2]|0;
- $cmp228$i = ($105|0)==($add$ptr227$i|0);
- if ($cmp228$i) {
- label = 162;
- break;
- }
- $next231$i = ((($sp$1111$i)) + 8|0);
- $106 = HEAP32[$next231$i>>2]|0;
- $cmp224$i = ($106|0)==(0|0);
- if ($cmp224$i) {
- break;
- } else {
- $sp$1111$i = $106;
- }
- }
- if ((label|0) == 162) {
- $sflags235$i = ((($sp$1111$i)) + 12|0);
- $107 = HEAP32[$sflags235$i>>2]|0;
- $and236$i = $107 & 8;
- $tobool237$i = ($and236$i|0)==(0);
- if ($tobool237$i) {
- HEAP32[$sp$1111$i>>2] = $tbase$795$i;
- $size245$i = ((($sp$1111$i)) + 4|0);
- $108 = HEAP32[$size245$i>>2]|0;
- $add246$i = (($108) + ($tsize$794$i))|0;
- HEAP32[$size245$i>>2] = $add246$i;
- $add$ptr$i$i = ((($tbase$795$i)) + 8|0);
- $109 = $add$ptr$i$i;
- $and$i14$i = $109 & 7;
- $cmp$i15$i = ($and$i14$i|0)==(0);
- $sub$i16$i = (0 - ($109))|0;
- $and3$i$i = $sub$i16$i & 7;
- $cond$i17$i = $cmp$i15$i ? 0 : $and3$i$i;
- $add$ptr4$i$i = (($tbase$795$i) + ($cond$i17$i)|0);
- $add$ptr5$i$i = ((($add$ptr227$i)) + 8|0);
- $110 = $add$ptr5$i$i;
- $and6$i18$i = $110 & 7;
- $cmp7$i$i = ($and6$i18$i|0)==(0);
- $sub12$i$i = (0 - ($110))|0;
- $and13$i$i = $sub12$i$i & 7;
- $cond15$i$i = $cmp7$i$i ? 0 : $and13$i$i;
- $add$ptr16$i$i = (($add$ptr227$i) + ($cond15$i$i)|0);
- $sub$ptr$lhs$cast$i19$i = $add$ptr16$i$i;
- $sub$ptr$rhs$cast$i20$i = $add$ptr4$i$i;
- $sub$ptr$sub$i21$i = (($sub$ptr$lhs$cast$i19$i) - ($sub$ptr$rhs$cast$i20$i))|0;
- $add$ptr17$i$i = (($add$ptr4$i$i) + ($nb$0)|0);
- $sub18$i$i = (($sub$ptr$sub$i21$i) - ($nb$0))|0;
- $or19$i$i = $nb$0 | 3;
- $head$i22$i = ((($add$ptr4$i$i)) + 4|0);
- HEAP32[$head$i22$i>>2] = $or19$i$i;
- $cmp20$i$i = ($92|0)==($add$ptr16$i$i|0);
- L238: do {
- if ($cmp20$i$i) {
- $111 = HEAP32[(32492)>>2]|0;
- $add$i$i = (($111) + ($sub18$i$i))|0;
- HEAP32[(32492)>>2] = $add$i$i;
- HEAP32[(32504)>>2] = $add$ptr17$i$i;
- $or22$i$i = $add$i$i | 1;
- $head23$i$i = ((($add$ptr17$i$i)) + 4|0);
- HEAP32[$head23$i$i>>2] = $or22$i$i;
- } else {
- $112 = HEAP32[(32500)>>2]|0;
- $cmp24$i$i = ($112|0)==($add$ptr16$i$i|0);
- if ($cmp24$i$i) {
- $113 = HEAP32[(32488)>>2]|0;
- $add26$i$i = (($113) + ($sub18$i$i))|0;
- HEAP32[(32488)>>2] = $add26$i$i;
- HEAP32[(32500)>>2] = $add$ptr17$i$i;
- $or28$i$i = $add26$i$i | 1;
- $head29$i$i = ((($add$ptr17$i$i)) + 4|0);
- HEAP32[$head29$i$i>>2] = $or28$i$i;
- $add$ptr30$i$i = (($add$ptr17$i$i) + ($add26$i$i)|0);
- HEAP32[$add$ptr30$i$i>>2] = $add26$i$i;
- break;
- }
- $head32$i$i = ((($add$ptr16$i$i)) + 4|0);
- $114 = HEAP32[$head32$i$i>>2]|0;
- $and33$i$i = $114 & 3;
- $cmp34$i$i = ($and33$i$i|0)==(1);
- if ($cmp34$i$i) {
- $and37$i$i = $114 & -8;
- $shr$i25$i = $114 >>> 3;
- $cmp38$i$i = ($114>>>0)<(256);
- L246: do {
- if ($cmp38$i$i) {
- $fd$i$i = ((($add$ptr16$i$i)) + 8|0);
- $115 = HEAP32[$fd$i$i>>2]|0;
- $bk$i26$i = ((($add$ptr16$i$i)) + 12|0);
- $116 = HEAP32[$bk$i26$i>>2]|0;
- $cmp46$i$i = ($116|0)==($115|0);
- if ($cmp46$i$i) {
- $shl48$i$i = 1 << $shr$i25$i;
- $neg$i$i = $shl48$i$i ^ -1;
- $117 = HEAP32[8120]|0;
- $and49$i$i = $117 & $neg$i$i;
- HEAP32[8120] = $and49$i$i;
- break;
- } else {
- $bk67$i$i = ((($115)) + 12|0);
- HEAP32[$bk67$i$i>>2] = $116;
- $fd68$i$i = ((($116)) + 8|0);
- HEAP32[$fd68$i$i>>2] = $115;
- break;
- }
- } else {
- $parent$i27$i = ((($add$ptr16$i$i)) + 24|0);
- $118 = HEAP32[$parent$i27$i>>2]|0;
- $bk74$i$i = ((($add$ptr16$i$i)) + 12|0);
- $119 = HEAP32[$bk74$i$i>>2]|0;
- $cmp75$i$i = ($119|0)==($add$ptr16$i$i|0);
- do {
- if ($cmp75$i$i) {
- $child$i$i = ((($add$ptr16$i$i)) + 16|0);
- $arrayidx96$i$i = ((($child$i$i)) + 4|0);
- $121 = HEAP32[$arrayidx96$i$i>>2]|0;
- $cmp97$i$i = ($121|0)==(0|0);
- if ($cmp97$i$i) {
- $122 = HEAP32[$child$i$i>>2]|0;
- $cmp100$i$i = ($122|0)==(0|0);
- if ($cmp100$i$i) {
- $R$3$i$i = 0;
- break;
- } else {
- $R$1$i$i$ph = $122;$RP$1$i$i$ph = $child$i$i;
- }
- } else {
- $R$1$i$i$ph = $121;$RP$1$i$i$ph = $arrayidx96$i$i;
- }
- $R$1$i$i = $R$1$i$i$ph;$RP$1$i$i = $RP$1$i$i$ph;
- while(1) {
- $arrayidx103$i$i = ((($R$1$i$i)) + 20|0);
- $123 = HEAP32[$arrayidx103$i$i>>2]|0;
- $cmp104$i$i = ($123|0)==(0|0);
- if ($cmp104$i$i) {
- $arrayidx107$i$i = ((($R$1$i$i)) + 16|0);
- $124 = HEAP32[$arrayidx107$i$i>>2]|0;
- $cmp108$i$i = ($124|0)==(0|0);
- if ($cmp108$i$i) {
- break;
- } else {
- $R$1$i$i$be = $124;$RP$1$i$i$be = $arrayidx107$i$i;
- }
- } else {
- $R$1$i$i$be = $123;$RP$1$i$i$be = $arrayidx103$i$i;
- }
- $R$1$i$i = $R$1$i$i$be;$RP$1$i$i = $RP$1$i$i$be;
- }
- HEAP32[$RP$1$i$i>>2] = 0;
- $R$3$i$i = $R$1$i$i;
- } else {
- $fd78$i$i = ((($add$ptr16$i$i)) + 8|0);
- $120 = HEAP32[$fd78$i$i>>2]|0;
- $bk91$i$i = ((($120)) + 12|0);
- HEAP32[$bk91$i$i>>2] = $119;
- $fd92$i$i = ((($119)) + 8|0);
- HEAP32[$fd92$i$i>>2] = $120;
- $R$3$i$i = $119;
- }
- } while(0);
- $cmp120$i28$i = ($118|0)==(0|0);
- if ($cmp120$i28$i) {
- break;
- }
- $index$i29$i = ((($add$ptr16$i$i)) + 28|0);
- $125 = HEAP32[$index$i29$i>>2]|0;
- $arrayidx123$i$i = (32784 + ($125<<2)|0);
- $126 = HEAP32[$arrayidx123$i$i>>2]|0;
- $cmp124$i$i = ($126|0)==($add$ptr16$i$i|0);
- do {
- if ($cmp124$i$i) {
- HEAP32[$arrayidx123$i$i>>2] = $R$3$i$i;
- $cond1$i$i = ($R$3$i$i|0)==(0|0);
- if (!($cond1$i$i)) {
- break;
- }
- $shl131$i$i = 1 << $125;
- $neg132$i$i = $shl131$i$i ^ -1;
- $127 = HEAP32[(32484)>>2]|0;
- $and133$i$i = $127 & $neg132$i$i;
- HEAP32[(32484)>>2] = $and133$i$i;
- break L246;
- } else {
- $arrayidx143$i$i = ((($118)) + 16|0);
- $128 = HEAP32[$arrayidx143$i$i>>2]|0;
- $cmp144$i$i = ($128|0)==($add$ptr16$i$i|0);
- $arrayidx151$i$i = ((($118)) + 20|0);
- $arrayidx151$i$i$sink = $cmp144$i$i ? $arrayidx143$i$i : $arrayidx151$i$i;
- HEAP32[$arrayidx151$i$i$sink>>2] = $R$3$i$i;
- $cmp156$i$i = ($R$3$i$i|0)==(0|0);
- if ($cmp156$i$i) {
- break L246;
- }
- }
- } while(0);
- $parent165$i$i = ((($R$3$i$i)) + 24|0);
- HEAP32[$parent165$i$i>>2] = $118;
- $child166$i$i = ((($add$ptr16$i$i)) + 16|0);
- $129 = HEAP32[$child166$i$i>>2]|0;
- $cmp168$i$i = ($129|0)==(0|0);
- if (!($cmp168$i$i)) {
- $arrayidx178$i$i = ((($R$3$i$i)) + 16|0);
- HEAP32[$arrayidx178$i$i>>2] = $129;
- $parent179$i$i = ((($129)) + 24|0);
- HEAP32[$parent179$i$i>>2] = $R$3$i$i;
- }
- $arrayidx184$i$i = ((($child166$i$i)) + 4|0);
- $130 = HEAP32[$arrayidx184$i$i>>2]|0;
- $cmp185$i$i = ($130|0)==(0|0);
- if ($cmp185$i$i) {
- break;
- }
- $arrayidx195$i$i = ((($R$3$i$i)) + 20|0);
- HEAP32[$arrayidx195$i$i>>2] = $130;
- $parent196$i$i = ((($130)) + 24|0);
- HEAP32[$parent196$i$i>>2] = $R$3$i$i;
- }
- } while(0);
- $add$ptr205$i$i = (($add$ptr16$i$i) + ($and37$i$i)|0);
- $add206$i$i = (($and37$i$i) + ($sub18$i$i))|0;
- $oldfirst$0$i$i = $add$ptr205$i$i;$qsize$0$i$i = $add206$i$i;
- } else {
- $oldfirst$0$i$i = $add$ptr16$i$i;$qsize$0$i$i = $sub18$i$i;
- }
- $head208$i$i = ((($oldfirst$0$i$i)) + 4|0);
- $131 = HEAP32[$head208$i$i>>2]|0;
- $and209$i$i = $131 & -2;
- HEAP32[$head208$i$i>>2] = $and209$i$i;
- $or210$i$i = $qsize$0$i$i | 1;
- $head211$i$i = ((($add$ptr17$i$i)) + 4|0);
- HEAP32[$head211$i$i>>2] = $or210$i$i;
- $add$ptr212$i$i = (($add$ptr17$i$i) + ($qsize$0$i$i)|0);
- HEAP32[$add$ptr212$i$i>>2] = $qsize$0$i$i;
- $shr214$i$i = $qsize$0$i$i >>> 3;
- $cmp215$i$i = ($qsize$0$i$i>>>0)<(256);
- if ($cmp215$i$i) {
- $shl222$i$i = $shr214$i$i << 1;
- $arrayidx223$i$i = (32520 + ($shl222$i$i<<2)|0);
- $132 = HEAP32[8120]|0;
- $shl226$i$i = 1 << $shr214$i$i;
- $and227$i$i = $132 & $shl226$i$i;
- $tobool228$i$i = ($and227$i$i|0)==(0);
- if ($tobool228$i$i) {
- $or232$i$i = $132 | $shl226$i$i;
- HEAP32[8120] = $or232$i$i;
- $$pre$i31$i = ((($arrayidx223$i$i)) + 8|0);
- $$pre$phi$i32$iZ2D = $$pre$i31$i;$F224$0$i$i = $arrayidx223$i$i;
- } else {
- $133 = ((($arrayidx223$i$i)) + 8|0);
- $134 = HEAP32[$133>>2]|0;
- $$pre$phi$i32$iZ2D = $133;$F224$0$i$i = $134;
- }
- HEAP32[$$pre$phi$i32$iZ2D>>2] = $add$ptr17$i$i;
- $bk246$i$i = ((($F224$0$i$i)) + 12|0);
- HEAP32[$bk246$i$i>>2] = $add$ptr17$i$i;
- $fd247$i$i = ((($add$ptr17$i$i)) + 8|0);
- HEAP32[$fd247$i$i>>2] = $F224$0$i$i;
- $bk248$i$i = ((($add$ptr17$i$i)) + 12|0);
- HEAP32[$bk248$i$i>>2] = $arrayidx223$i$i;
- break;
- }
- $shr253$i$i = $qsize$0$i$i >>> 8;
- $cmp254$i$i = ($shr253$i$i|0)==(0);
- do {
- if ($cmp254$i$i) {
- $I252$0$i$i = 0;
- } else {
- $cmp258$i$i = ($qsize$0$i$i>>>0)>(16777215);
- if ($cmp258$i$i) {
- $I252$0$i$i = 31;
- break;
- }
- $sub262$i$i = (($shr253$i$i) + 1048320)|0;
- $shr263$i$i = $sub262$i$i >>> 16;
- $and264$i$i = $shr263$i$i & 8;
- $shl265$i$i = $shr253$i$i << $and264$i$i;
- $sub266$i$i = (($shl265$i$i) + 520192)|0;
- $shr267$i$i = $sub266$i$i >>> 16;
- $and268$i$i = $shr267$i$i & 4;
- $add269$i$i = $and268$i$i | $and264$i$i;
- $shl270$i$i = $shl265$i$i << $and268$i$i;
- $sub271$i$i = (($shl270$i$i) + 245760)|0;
- $shr272$i$i = $sub271$i$i >>> 16;
- $and273$i$i = $shr272$i$i & 2;
- $add274$i$i = $add269$i$i | $and273$i$i;
- $sub275$i$i = (14 - ($add274$i$i))|0;
- $shl276$i$i = $shl270$i$i << $and273$i$i;
- $shr277$i$i = $shl276$i$i >>> 15;
- $add278$i$i = (($sub275$i$i) + ($shr277$i$i))|0;
- $shl279$i$i = $add278$i$i << 1;
- $add280$i$i = (($add278$i$i) + 7)|0;
- $shr281$i$i = $qsize$0$i$i >>> $add280$i$i;
- $and282$i$i = $shr281$i$i & 1;
- $add283$i$i = $and282$i$i | $shl279$i$i;
- $I252$0$i$i = $add283$i$i;
- }
- } while(0);
- $arrayidx287$i$i = (32784 + ($I252$0$i$i<<2)|0);
- $index288$i$i = ((($add$ptr17$i$i)) + 28|0);
- HEAP32[$index288$i$i>>2] = $I252$0$i$i;
- $child289$i$i = ((($add$ptr17$i$i)) + 16|0);
- $arrayidx290$i$i = ((($child289$i$i)) + 4|0);
- HEAP32[$arrayidx290$i$i>>2] = 0;
- HEAP32[$child289$i$i>>2] = 0;
- $135 = HEAP32[(32484)>>2]|0;
- $shl294$i$i = 1 << $I252$0$i$i;
- $and295$i$i = $135 & $shl294$i$i;
- $tobool296$i$i = ($and295$i$i|0)==(0);
- if ($tobool296$i$i) {
- $or300$i$i = $135 | $shl294$i$i;
- HEAP32[(32484)>>2] = $or300$i$i;
- HEAP32[$arrayidx287$i$i>>2] = $add$ptr17$i$i;
- $parent301$i$i = ((($add$ptr17$i$i)) + 24|0);
- HEAP32[$parent301$i$i>>2] = $arrayidx287$i$i;
- $bk302$i$i = ((($add$ptr17$i$i)) + 12|0);
- HEAP32[$bk302$i$i>>2] = $add$ptr17$i$i;
- $fd303$i$i = ((($add$ptr17$i$i)) + 8|0);
- HEAP32[$fd303$i$i>>2] = $add$ptr17$i$i;
- break;
- }
- $136 = HEAP32[$arrayidx287$i$i>>2]|0;
- $head3174$i$i = ((($136)) + 4|0);
- $137 = HEAP32[$head3174$i$i>>2]|0;
- $and3185$i$i = $137 & -8;
- $cmp3196$i$i = ($and3185$i$i|0)==($qsize$0$i$i|0);
- L291: do {
- if ($cmp3196$i$i) {
- $T$0$lcssa$i34$i = $136;
- } else {
- $cmp306$i$i = ($I252$0$i$i|0)==(31);
- $shr310$i$i = $I252$0$i$i >>> 1;
- $sub313$i$i = (25 - ($shr310$i$i))|0;
- $cond315$i$i = $cmp306$i$i ? 0 : $sub313$i$i;
- $shl316$i$i = $qsize$0$i$i << $cond315$i$i;
- $K305$08$i$i = $shl316$i$i;$T$07$i$i = $136;
- while(1) {
- $shr323$i$i = $K305$08$i$i >>> 31;
- $arrayidx325$i$i = (((($T$07$i$i)) + 16|0) + ($shr323$i$i<<2)|0);
- $138 = HEAP32[$arrayidx325$i$i>>2]|0;
- $cmp327$i$i = ($138|0)==(0|0);
- if ($cmp327$i$i) {
- break;
- }
- $shl326$i$i = $K305$08$i$i << 1;
- $head317$i$i = ((($138)) + 4|0);
- $139 = HEAP32[$head317$i$i>>2]|0;
- $and318$i$i = $139 & -8;
- $cmp319$i$i = ($and318$i$i|0)==($qsize$0$i$i|0);
- if ($cmp319$i$i) {
- $T$0$lcssa$i34$i = $138;
- break L291;
- } else {
- $K305$08$i$i = $shl326$i$i;$T$07$i$i = $138;
- }
- }
- HEAP32[$arrayidx325$i$i>>2] = $add$ptr17$i$i;
- $parent337$i$i = ((($add$ptr17$i$i)) + 24|0);
- HEAP32[$parent337$i$i>>2] = $T$07$i$i;
- $bk338$i$i = ((($add$ptr17$i$i)) + 12|0);
- HEAP32[$bk338$i$i>>2] = $add$ptr17$i$i;
- $fd339$i$i = ((($add$ptr17$i$i)) + 8|0);
- HEAP32[$fd339$i$i>>2] = $add$ptr17$i$i;
- break L238;
- }
- } while(0);
- $fd344$i$i = ((($T$0$lcssa$i34$i)) + 8|0);
- $140 = HEAP32[$fd344$i$i>>2]|0;
- $bk357$i$i = ((($140)) + 12|0);
- HEAP32[$bk357$i$i>>2] = $add$ptr17$i$i;
- HEAP32[$fd344$i$i>>2] = $add$ptr17$i$i;
- $fd359$i$i = ((($add$ptr17$i$i)) + 8|0);
- HEAP32[$fd359$i$i>>2] = $140;
- $bk360$i$i = ((($add$ptr17$i$i)) + 12|0);
- HEAP32[$bk360$i$i>>2] = $T$0$lcssa$i34$i;
- $parent361$i$i = ((($add$ptr17$i$i)) + 24|0);
- HEAP32[$parent361$i$i>>2] = 0;
- }
- } while(0);
- $add$ptr369$i$i = ((($add$ptr4$i$i)) + 8|0);
- $retval$0 = $add$ptr369$i$i;
- STACKTOP = sp;return ($retval$0|0);
- }
- }
- $sp$0$i$i$i = (32928);
- while(1) {
- $141 = HEAP32[$sp$0$i$i$i>>2]|0;
- $cmp$i$i$i = ($141>>>0)>($92>>>0);
- if (!($cmp$i$i$i)) {
- $size$i$i$i = ((($sp$0$i$i$i)) + 4|0);
- $142 = HEAP32[$size$i$i$i>>2]|0;
- $add$ptr$i$i$i = (($141) + ($142)|0);
- $cmp2$i$i$i = ($add$ptr$i$i$i>>>0)>($92>>>0);
- if ($cmp2$i$i$i) {
- break;
- }
- }
- $next$i$i$i = ((($sp$0$i$i$i)) + 8|0);
- $143 = HEAP32[$next$i$i$i>>2]|0;
- $sp$0$i$i$i = $143;
- }
- $add$ptr2$i$i = ((($add$ptr$i$i$i)) + -47|0);
- $add$ptr3$i$i = ((($add$ptr2$i$i)) + 8|0);
- $144 = $add$ptr3$i$i;
- $and$i$i = $144 & 7;
- $cmp$i12$i = ($and$i$i|0)==(0);
- $sub$i$i = (0 - ($144))|0;
- $and6$i13$i = $sub$i$i & 7;
- $cond$i$i = $cmp$i12$i ? 0 : $and6$i13$i;
- $add$ptr7$i$i = (($add$ptr2$i$i) + ($cond$i$i)|0);
- $add$ptr81$i$i = ((($92)) + 16|0);
- $cmp9$i$i = ($add$ptr7$i$i>>>0)<($add$ptr81$i$i>>>0);
- $cond13$i$i = $cmp9$i$i ? $92 : $add$ptr7$i$i;
- $add$ptr14$i$i = ((($cond13$i$i)) + 8|0);
- $add$ptr15$i$i = ((($cond13$i$i)) + 24|0);
- $sub16$i$i = (($tsize$794$i) + -40)|0;
- $add$ptr$i2$i$i = ((($tbase$795$i)) + 8|0);
- $145 = $add$ptr$i2$i$i;
- $and$i$i$i = $145 & 7;
- $cmp$i3$i$i = ($and$i$i$i|0)==(0);
- $sub$i$i$i = (0 - ($145))|0;
- $and3$i$i$i = $sub$i$i$i & 7;
- $cond$i$i$i = $cmp$i3$i$i ? 0 : $and3$i$i$i;
- $add$ptr4$i$i$i = (($tbase$795$i) + ($cond$i$i$i)|0);
- $sub5$i$i$i = (($sub16$i$i) - ($cond$i$i$i))|0;
- HEAP32[(32504)>>2] = $add$ptr4$i$i$i;
- HEAP32[(32492)>>2] = $sub5$i$i$i;
- $or$i$i$i = $sub5$i$i$i | 1;
- $head$i$i$i = ((($add$ptr4$i$i$i)) + 4|0);
- HEAP32[$head$i$i$i>>2] = $or$i$i$i;
- $add$ptr6$i$i$i = (($tbase$795$i) + ($sub16$i$i)|0);
- $head7$i$i$i = ((($add$ptr6$i$i$i)) + 4|0);
- HEAP32[$head7$i$i$i>>2] = 40;
- $146 = HEAP32[(32968)>>2]|0;
- HEAP32[(32508)>>2] = $146;
- $head$i$i = ((($cond13$i$i)) + 4|0);
- HEAP32[$head$i$i>>2] = 27;
- ;HEAP32[$add$ptr14$i$i>>2]=HEAP32[(32928)>>2]|0;HEAP32[$add$ptr14$i$i+4>>2]=HEAP32[(32928)+4>>2]|0;HEAP32[$add$ptr14$i$i+8>>2]=HEAP32[(32928)+8>>2]|0;HEAP32[$add$ptr14$i$i+12>>2]=HEAP32[(32928)+12>>2]|0;
- HEAP32[(32928)>>2] = $tbase$795$i;
- HEAP32[(32932)>>2] = $tsize$794$i;
- HEAP32[(32940)>>2] = 0;
- HEAP32[(32936)>>2] = $add$ptr14$i$i;
- $147 = $add$ptr15$i$i;
- while(1) {
- $add$ptr24$i$i = ((($147)) + 4|0);
- HEAP32[$add$ptr24$i$i>>2] = 7;
- $head26$i$i = ((($147)) + 8|0);
- $cmp27$i$i = ($head26$i$i>>>0)<($add$ptr$i$i$i>>>0);
- if ($cmp27$i$i) {
- $147 = $add$ptr24$i$i;
- } else {
- break;
- }
- }
- $cmp28$i$i = ($cond13$i$i|0)==($92|0);
- if (!($cmp28$i$i)) {
- $sub$ptr$lhs$cast$i$i = $cond13$i$i;
- $sub$ptr$rhs$cast$i$i = $92;
- $sub$ptr$sub$i$i = (($sub$ptr$lhs$cast$i$i) - ($sub$ptr$rhs$cast$i$i))|0;
- $148 = HEAP32[$head$i$i>>2]|0;
- $and32$i$i = $148 & -2;
- HEAP32[$head$i$i>>2] = $and32$i$i;
- $or33$i$i = $sub$ptr$sub$i$i | 1;
- $head34$i$i = ((($92)) + 4|0);
- HEAP32[$head34$i$i>>2] = $or33$i$i;
- HEAP32[$cond13$i$i>>2] = $sub$ptr$sub$i$i;
- $shr$i$i = $sub$ptr$sub$i$i >>> 3;
- $cmp36$i$i = ($sub$ptr$sub$i$i>>>0)<(256);
- if ($cmp36$i$i) {
- $shl$i$i = $shr$i$i << 1;
- $arrayidx$i$i = (32520 + ($shl$i$i<<2)|0);
- $149 = HEAP32[8120]|0;
- $shl39$i$i = 1 << $shr$i$i;
- $and40$i$i = $149 & $shl39$i$i;
- $tobool$i$i = ($and40$i$i|0)==(0);
- if ($tobool$i$i) {
- $or44$i$i = $149 | $shl39$i$i;
- HEAP32[8120] = $or44$i$i;
- $$pre$i$i = ((($arrayidx$i$i)) + 8|0);
- $$pre$phi$i$iZ2D = $$pre$i$i;$F$0$i$i = $arrayidx$i$i;
- } else {
- $150 = ((($arrayidx$i$i)) + 8|0);
- $151 = HEAP32[$150>>2]|0;
- $$pre$phi$i$iZ2D = $150;$F$0$i$i = $151;
- }
- HEAP32[$$pre$phi$i$iZ2D>>2] = $92;
- $bk$i$i = ((($F$0$i$i)) + 12|0);
- HEAP32[$bk$i$i>>2] = $92;
- $fd54$i$i = ((($92)) + 8|0);
- HEAP32[$fd54$i$i>>2] = $F$0$i$i;
- $bk55$i$i = ((($92)) + 12|0);
- HEAP32[$bk55$i$i>>2] = $arrayidx$i$i;
- break;
- }
- $shr58$i$i = $sub$ptr$sub$i$i >>> 8;
- $cmp59$i$i = ($shr58$i$i|0)==(0);
- if ($cmp59$i$i) {
- $I57$0$i$i = 0;
- } else {
- $cmp63$i$i = ($sub$ptr$sub$i$i>>>0)>(16777215);
- if ($cmp63$i$i) {
- $I57$0$i$i = 31;
- } else {
- $sub67$i$i = (($shr58$i$i) + 1048320)|0;
- $shr68$i$i = $sub67$i$i >>> 16;
- $and69$i$i = $shr68$i$i & 8;
- $shl70$i$i = $shr58$i$i << $and69$i$i;
- $sub71$i$i = (($shl70$i$i) + 520192)|0;
- $shr72$i$i = $sub71$i$i >>> 16;
- $and73$i$i = $shr72$i$i & 4;
- $add74$i$i = $and73$i$i | $and69$i$i;
- $shl75$i$i = $shl70$i$i << $and73$i$i;
- $sub76$i$i = (($shl75$i$i) + 245760)|0;
- $shr77$i$i = $sub76$i$i >>> 16;
- $and78$i$i = $shr77$i$i & 2;
- $add79$i$i = $add74$i$i | $and78$i$i;
- $sub80$i$i = (14 - ($add79$i$i))|0;
- $shl81$i$i = $shl75$i$i << $and78$i$i;
- $shr82$i$i = $shl81$i$i >>> 15;
- $add83$i$i = (($sub80$i$i) + ($shr82$i$i))|0;
- $shl84$i$i = $add83$i$i << 1;
- $add85$i$i = (($add83$i$i) + 7)|0;
- $shr86$i$i = $sub$ptr$sub$i$i >>> $add85$i$i;
- $and87$i$i = $shr86$i$i & 1;
- $add88$i$i = $and87$i$i | $shl84$i$i;
- $I57$0$i$i = $add88$i$i;
- }
- }
- $arrayidx91$i$i = (32784 + ($I57$0$i$i<<2)|0);
- $index$i$i = ((($92)) + 28|0);
- HEAP32[$index$i$i>>2] = $I57$0$i$i;
- $arrayidx92$i$i = ((($92)) + 20|0);
- HEAP32[$arrayidx92$i$i>>2] = 0;
- HEAP32[$add$ptr81$i$i>>2] = 0;
- $152 = HEAP32[(32484)>>2]|0;
- $shl95$i$i = 1 << $I57$0$i$i;
- $and96$i$i = $152 & $shl95$i$i;
- $tobool97$i$i = ($and96$i$i|0)==(0);
- if ($tobool97$i$i) {
- $or101$i$i = $152 | $shl95$i$i;
- HEAP32[(32484)>>2] = $or101$i$i;
- HEAP32[$arrayidx91$i$i>>2] = $92;
- $parent$i$i = ((($92)) + 24|0);
- HEAP32[$parent$i$i>>2] = $arrayidx91$i$i;
- $bk102$i$i = ((($92)) + 12|0);
- HEAP32[$bk102$i$i>>2] = $92;
- $fd103$i$i = ((($92)) + 8|0);
- HEAP32[$fd103$i$i>>2] = $92;
- break;
- }
- $153 = HEAP32[$arrayidx91$i$i>>2]|0;
- $head1186$i$i = ((($153)) + 4|0);
- $154 = HEAP32[$head1186$i$i>>2]|0;
- $and1197$i$i = $154 & -8;
- $cmp1208$i$i = ($and1197$i$i|0)==($sub$ptr$sub$i$i|0);
- L325: do {
- if ($cmp1208$i$i) {
- $T$0$lcssa$i$i = $153;
- } else {
- $cmp106$i$i = ($I57$0$i$i|0)==(31);
- $shr110$i$i = $I57$0$i$i >>> 1;
- $sub113$i$i = (25 - ($shr110$i$i))|0;
- $cond115$i$i = $cmp106$i$i ? 0 : $sub113$i$i;
- $shl116$i$i = $sub$ptr$sub$i$i << $cond115$i$i;
- $K105$010$i$i = $shl116$i$i;$T$09$i$i = $153;
- while(1) {
- $shr124$i$i = $K105$010$i$i >>> 31;
- $arrayidx126$i$i = (((($T$09$i$i)) + 16|0) + ($shr124$i$i<<2)|0);
- $155 = HEAP32[$arrayidx126$i$i>>2]|0;
- $cmp128$i$i = ($155|0)==(0|0);
- if ($cmp128$i$i) {
- break;
- }
- $shl127$i$i = $K105$010$i$i << 1;
- $head118$i$i = ((($155)) + 4|0);
- $156 = HEAP32[$head118$i$i>>2]|0;
- $and119$i$i = $156 & -8;
- $cmp120$i$i = ($and119$i$i|0)==($sub$ptr$sub$i$i|0);
- if ($cmp120$i$i) {
- $T$0$lcssa$i$i = $155;
- break L325;
- } else {
- $K105$010$i$i = $shl127$i$i;$T$09$i$i = $155;
- }
- }
- HEAP32[$arrayidx126$i$i>>2] = $92;
- $parent138$i$i = ((($92)) + 24|0);
- HEAP32[$parent138$i$i>>2] = $T$09$i$i;
- $bk139$i$i = ((($92)) + 12|0);
- HEAP32[$bk139$i$i>>2] = $92;
- $fd140$i$i = ((($92)) + 8|0);
- HEAP32[$fd140$i$i>>2] = $92;
- break L215;
- }
- } while(0);
- $fd148$i$i = ((($T$0$lcssa$i$i)) + 8|0);
- $157 = HEAP32[$fd148$i$i>>2]|0;
- $bk158$i$i = ((($157)) + 12|0);
- HEAP32[$bk158$i$i>>2] = $92;
- HEAP32[$fd148$i$i>>2] = $92;
- $fd160$i$i = ((($92)) + 8|0);
- HEAP32[$fd160$i$i>>2] = $157;
- $bk161$i$i = ((($92)) + 12|0);
- HEAP32[$bk161$i$i>>2] = $T$0$lcssa$i$i;
- $parent162$i$i = ((($92)) + 24|0);
- HEAP32[$parent162$i$i>>2] = 0;
- }
- }
- } while(0);
- $158 = HEAP32[(32492)>>2]|0;
- $cmp257$i = ($158>>>0)>($nb$0>>>0);
- if ($cmp257$i) {
- $sub260$i = (($158) - ($nb$0))|0;
- HEAP32[(32492)>>2] = $sub260$i;
- $159 = HEAP32[(32504)>>2]|0;
- $add$ptr262$i = (($159) + ($nb$0)|0);
- HEAP32[(32504)>>2] = $add$ptr262$i;
- $or264$i = $sub260$i | 1;
- $head265$i = ((($add$ptr262$i)) + 4|0);
- HEAP32[$head265$i>>2] = $or264$i;
- $or267$i = $nb$0 | 3;
- $head268$i = ((($159)) + 4|0);
- HEAP32[$head268$i>>2] = $or267$i;
- $add$ptr269$i = ((($159)) + 8|0);
- $retval$0 = $add$ptr269$i;
- STACKTOP = sp;return ($retval$0|0);
- }
- }
- $call275$i = (___errno_location()|0);
- HEAP32[$call275$i>>2] = 12;
- $retval$0 = 0;
- STACKTOP = sp;return ($retval$0|0);
-}
-function _free($mem) {
- $mem = $mem|0;
- var $$pre = 0, $$pre$phiZ2D = 0, $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;
- 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, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0;
- var $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, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $F510$0 = 0, $I534$0 = 0, $K583$0266 = 0;
- var $R$1 = 0, $R$1$be = 0, $R$1$ph = 0, $R$3 = 0, $R332$1 = 0, $R332$1$be = 0, $R332$1$ph = 0, $R332$3 = 0, $RP$1 = 0, $RP$1$be = 0, $RP$1$ph = 0, $RP360$1 = 0, $RP360$1$be = 0, $RP360$1$ph = 0, $T$0$lcssa = 0, $T$0265 = 0, $add$ptr = 0, $add$ptr16 = 0, $add$ptr217 = 0, $add$ptr261 = 0;
- var $add$ptr482 = 0, $add$ptr498 = 0, $add$ptr6 = 0, $add17 = 0, $add246 = 0, $add258 = 0, $add267 = 0, $add550 = 0, $add555 = 0, $add559 = 0, $add561 = 0, $add564 = 0, $and12 = 0, $and140 = 0, $and210 = 0, $and215 = 0, $and232 = 0, $and240 = 0, $and266 = 0, $and301 = 0;
- var $and410 = 0, $and46 = 0, $and495 = 0, $and5 = 0, $and512 = 0, $and545 = 0, $and549 = 0, $and554 = 0, $and563 = 0, $and574 = 0, $and592 = 0, $and592263 = 0, $and8 = 0, $arrayidx108 = 0, $arrayidx113 = 0, $arrayidx130 = 0, $arrayidx149 = 0, $arrayidx157 = 0, $arrayidx157$sink = 0, $arrayidx182 = 0;
- var $arrayidx188 = 0, $arrayidx198 = 0, $arrayidx362 = 0, $arrayidx374 = 0, $arrayidx379 = 0, $arrayidx400 = 0, $arrayidx419 = 0, $arrayidx427 = 0, $arrayidx427$sink = 0, $arrayidx454 = 0, $arrayidx460 = 0, $arrayidx470 = 0, $arrayidx509 = 0, $arrayidx567 = 0, $arrayidx570 = 0, $arrayidx599 = 0, $arrayidx99 = 0, $bk = 0, $bk275 = 0, $bk321 = 0;
- var $bk333 = 0, $bk355 = 0, $bk529 = 0, $bk531 = 0, $bk580 = 0, $bk611 = 0, $bk631 = 0, $bk634 = 0, $bk66 = 0, $bk73 = 0, $bk94 = 0, $child = 0, $child171 = 0, $child361 = 0, $child443 = 0, $child569 = 0, $cmp = 0, $cmp$i = 0, $cmp100 = 0, $cmp104 = 0;
- var $cmp109 = 0, $cmp114 = 0, $cmp127 = 0, $cmp13 = 0, $cmp131 = 0, $cmp150 = 0, $cmp162 = 0, $cmp173 = 0, $cmp18 = 0, $cmp189 = 0, $cmp211 = 0, $cmp22 = 0, $cmp228 = 0, $cmp243 = 0, $cmp249 = 0, $cmp25 = 0, $cmp255 = 0, $cmp269 = 0, $cmp296 = 0, $cmp334 = 0;
- var $cmp363 = 0, $cmp368 = 0, $cmp375 = 0, $cmp380 = 0, $cmp395 = 0, $cmp401 = 0, $cmp42 = 0, $cmp420 = 0, $cmp432 = 0, $cmp445 = 0, $cmp461 = 0, $cmp484 = 0, $cmp502 = 0, $cmp536 = 0, $cmp540 = 0, $cmp584 = 0, $cmp593 = 0, $cmp593264 = 0, $cmp601 = 0, $cmp640 = 0;
- var $cmp74 = 0, $cond = 0, $cond254 = 0, $cond255 = 0, $dec = 0, $fd = 0, $fd273 = 0, $fd322 = 0, $fd338 = 0, $fd356 = 0, $fd530 = 0, $fd581 = 0, $fd612 = 0, $fd620 = 0, $fd633 = 0, $fd67 = 0, $fd78 = 0, $fd95 = 0, $head209 = 0, $head216 = 0;
- var $head231 = 0, $head248 = 0, $head260 = 0, $head4 = 0, $head481 = 0, $head497 = 0, $head591 = 0, $head591262 = 0, $idx$neg = 0, $index = 0, $index399 = 0, $index568 = 0, $neg = 0, $neg139 = 0, $neg300 = 0, $neg409 = 0, $next4$i = 0, $or = 0, $or247 = 0, $or259 = 0;
- var $or480 = 0, $or496 = 0, $or516 = 0, $or578 = 0, $p$1 = 0, $parent = 0, $parent170 = 0, $parent183 = 0, $parent199 = 0, $parent331 = 0, $parent442 = 0, $parent455 = 0, $parent471 = 0, $parent579 = 0, $parent610 = 0, $parent635 = 0, $psize$1 = 0, $psize$2 = 0, $shl138 = 0, $shl299 = 0;
- var $shl408 = 0, $shl45 = 0, $shl508 = 0, $shl511 = 0, $shl546 = 0, $shl551 = 0, $shl557 = 0, $shl560 = 0, $shl573 = 0, $shl590 = 0, $shl600 = 0, $shr = 0, $shr268 = 0, $shr501 = 0, $shr535 = 0, $shr544 = 0, $shr548 = 0, $shr553 = 0, $shr558 = 0, $shr562 = 0;
- var $shr586 = 0, $shr597 = 0, $sp$0$i = 0, $sp$0$in$i = 0, $sub = 0, $sub547 = 0, $sub552 = 0, $sub556 = 0, $sub589 = 0, $tobool233 = 0, $tobool241 = 0, $tobool513 = 0, $tobool575 = 0, $tobool9 = 0, label = 0, sp = 0;
- sp = STACKTOP;
- $cmp = ($mem|0)==(0|0);
- if ($cmp) {
- return;
- }
- $add$ptr = ((($mem)) + -8|0);
- $0 = HEAP32[(32496)>>2]|0;
- $head4 = ((($mem)) + -4|0);
- $1 = HEAP32[$head4>>2]|0;
- $and5 = $1 & -8;
- $add$ptr6 = (($add$ptr) + ($and5)|0);
- $and8 = $1 & 1;
- $tobool9 = ($and8|0)==(0);
- do {
- if ($tobool9) {
- $2 = HEAP32[$add$ptr>>2]|0;
- $and12 = $1 & 3;
- $cmp13 = ($and12|0)==(0);
- if ($cmp13) {
- return;
- }
- $idx$neg = (0 - ($2))|0;
- $add$ptr16 = (($add$ptr) + ($idx$neg)|0);
- $add17 = (($2) + ($and5))|0;
- $cmp18 = ($add$ptr16>>>0)<($0>>>0);
- if ($cmp18) {
- return;
- }
- $3 = HEAP32[(32500)>>2]|0;
- $cmp22 = ($3|0)==($add$ptr16|0);
- if ($cmp22) {
- $head209 = ((($add$ptr6)) + 4|0);
- $20 = HEAP32[$head209>>2]|0;
- $and210 = $20 & 3;
- $cmp211 = ($and210|0)==(3);
- if (!($cmp211)) {
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- break;
- }
- $add$ptr217 = (($add$ptr16) + ($add17)|0);
- $head216 = ((($add$ptr16)) + 4|0);
- $or = $add17 | 1;
- $and215 = $20 & -2;
- HEAP32[(32488)>>2] = $add17;
- HEAP32[$head209>>2] = $and215;
- HEAP32[$head216>>2] = $or;
- HEAP32[$add$ptr217>>2] = $add17;
- return;
- }
- $shr = $2 >>> 3;
- $cmp25 = ($2>>>0)<(256);
- if ($cmp25) {
- $fd = ((($add$ptr16)) + 8|0);
- $4 = HEAP32[$fd>>2]|0;
- $bk = ((($add$ptr16)) + 12|0);
- $5 = HEAP32[$bk>>2]|0;
- $cmp42 = ($5|0)==($4|0);
- if ($cmp42) {
- $shl45 = 1 << $shr;
- $neg = $shl45 ^ -1;
- $6 = HEAP32[8120]|0;
- $and46 = $6 & $neg;
- HEAP32[8120] = $and46;
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- break;
- } else {
- $bk66 = ((($4)) + 12|0);
- HEAP32[$bk66>>2] = $5;
- $fd67 = ((($5)) + 8|0);
- HEAP32[$fd67>>2] = $4;
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- break;
- }
- }
- $parent = ((($add$ptr16)) + 24|0);
- $7 = HEAP32[$parent>>2]|0;
- $bk73 = ((($add$ptr16)) + 12|0);
- $8 = HEAP32[$bk73>>2]|0;
- $cmp74 = ($8|0)==($add$ptr16|0);
- do {
- if ($cmp74) {
- $child = ((($add$ptr16)) + 16|0);
- $arrayidx99 = ((($child)) + 4|0);
- $10 = HEAP32[$arrayidx99>>2]|0;
- $cmp100 = ($10|0)==(0|0);
- if ($cmp100) {
- $11 = HEAP32[$child>>2]|0;
- $cmp104 = ($11|0)==(0|0);
- if ($cmp104) {
- $R$3 = 0;
- break;
- } else {
- $R$1$ph = $11;$RP$1$ph = $child;
- }
- } else {
- $R$1$ph = $10;$RP$1$ph = $arrayidx99;
- }
- $R$1 = $R$1$ph;$RP$1 = $RP$1$ph;
- while(1) {
- $arrayidx108 = ((($R$1)) + 20|0);
- $12 = HEAP32[$arrayidx108>>2]|0;
- $cmp109 = ($12|0)==(0|0);
- if ($cmp109) {
- $arrayidx113 = ((($R$1)) + 16|0);
- $13 = HEAP32[$arrayidx113>>2]|0;
- $cmp114 = ($13|0)==(0|0);
- if ($cmp114) {
- break;
- } else {
- $R$1$be = $13;$RP$1$be = $arrayidx113;
- }
- } else {
- $R$1$be = $12;$RP$1$be = $arrayidx108;
- }
- $R$1 = $R$1$be;$RP$1 = $RP$1$be;
- }
- HEAP32[$RP$1>>2] = 0;
- $R$3 = $R$1;
- } else {
- $fd78 = ((($add$ptr16)) + 8|0);
- $9 = HEAP32[$fd78>>2]|0;
- $bk94 = ((($9)) + 12|0);
- HEAP32[$bk94>>2] = $8;
- $fd95 = ((($8)) + 8|0);
- HEAP32[$fd95>>2] = $9;
- $R$3 = $8;
- }
- } while(0);
- $cmp127 = ($7|0)==(0|0);
- if ($cmp127) {
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- } else {
- $index = ((($add$ptr16)) + 28|0);
- $14 = HEAP32[$index>>2]|0;
- $arrayidx130 = (32784 + ($14<<2)|0);
- $15 = HEAP32[$arrayidx130>>2]|0;
- $cmp131 = ($15|0)==($add$ptr16|0);
- if ($cmp131) {
- HEAP32[$arrayidx130>>2] = $R$3;
- $cond254 = ($R$3|0)==(0|0);
- if ($cond254) {
- $shl138 = 1 << $14;
- $neg139 = $shl138 ^ -1;
- $16 = HEAP32[(32484)>>2]|0;
- $and140 = $16 & $neg139;
- HEAP32[(32484)>>2] = $and140;
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- break;
- }
- } else {
- $arrayidx149 = ((($7)) + 16|0);
- $17 = HEAP32[$arrayidx149>>2]|0;
- $cmp150 = ($17|0)==($add$ptr16|0);
- $arrayidx157 = ((($7)) + 20|0);
- $arrayidx157$sink = $cmp150 ? $arrayidx149 : $arrayidx157;
- HEAP32[$arrayidx157$sink>>2] = $R$3;
- $cmp162 = ($R$3|0)==(0|0);
- if ($cmp162) {
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- break;
- }
- }
- $parent170 = ((($R$3)) + 24|0);
- HEAP32[$parent170>>2] = $7;
- $child171 = ((($add$ptr16)) + 16|0);
- $18 = HEAP32[$child171>>2]|0;
- $cmp173 = ($18|0)==(0|0);
- if (!($cmp173)) {
- $arrayidx182 = ((($R$3)) + 16|0);
- HEAP32[$arrayidx182>>2] = $18;
- $parent183 = ((($18)) + 24|0);
- HEAP32[$parent183>>2] = $R$3;
- }
- $arrayidx188 = ((($child171)) + 4|0);
- $19 = HEAP32[$arrayidx188>>2]|0;
- $cmp189 = ($19|0)==(0|0);
- if ($cmp189) {
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- } else {
- $arrayidx198 = ((($R$3)) + 20|0);
- HEAP32[$arrayidx198>>2] = $19;
- $parent199 = ((($19)) + 24|0);
- HEAP32[$parent199>>2] = $R$3;
- $21 = $add$ptr16;$p$1 = $add$ptr16;$psize$1 = $add17;
- }
- }
- } else {
- $21 = $add$ptr;$p$1 = $add$ptr;$psize$1 = $and5;
- }
- } while(0);
- $cmp228 = ($21>>>0)<($add$ptr6>>>0);
- if (!($cmp228)) {
- return;
- }
- $head231 = ((($add$ptr6)) + 4|0);
- $22 = HEAP32[$head231>>2]|0;
- $and232 = $22 & 1;
- $tobool233 = ($and232|0)==(0);
- if ($tobool233) {
- return;
- }
- $and240 = $22 & 2;
- $tobool241 = ($and240|0)==(0);
- if ($tobool241) {
- $23 = HEAP32[(32504)>>2]|0;
- $cmp243 = ($23|0)==($add$ptr6|0);
- if ($cmp243) {
- $24 = HEAP32[(32492)>>2]|0;
- $add246 = (($24) + ($psize$1))|0;
- HEAP32[(32492)>>2] = $add246;
- HEAP32[(32504)>>2] = $p$1;
- $or247 = $add246 | 1;
- $head248 = ((($p$1)) + 4|0);
- HEAP32[$head248>>2] = $or247;
- $25 = HEAP32[(32500)>>2]|0;
- $cmp249 = ($p$1|0)==($25|0);
- if (!($cmp249)) {
- return;
- }
- HEAP32[(32500)>>2] = 0;
- HEAP32[(32488)>>2] = 0;
- return;
- }
- $26 = HEAP32[(32500)>>2]|0;
- $cmp255 = ($26|0)==($add$ptr6|0);
- if ($cmp255) {
- $27 = HEAP32[(32488)>>2]|0;
- $add258 = (($27) + ($psize$1))|0;
- HEAP32[(32488)>>2] = $add258;
- HEAP32[(32500)>>2] = $21;
- $or259 = $add258 | 1;
- $head260 = ((($p$1)) + 4|0);
- HEAP32[$head260>>2] = $or259;
- $add$ptr261 = (($21) + ($add258)|0);
- HEAP32[$add$ptr261>>2] = $add258;
- return;
- }
- $and266 = $22 & -8;
- $add267 = (($and266) + ($psize$1))|0;
- $shr268 = $22 >>> 3;
- $cmp269 = ($22>>>0)<(256);
- do {
- if ($cmp269) {
- $fd273 = ((($add$ptr6)) + 8|0);
- $28 = HEAP32[$fd273>>2]|0;
- $bk275 = ((($add$ptr6)) + 12|0);
- $29 = HEAP32[$bk275>>2]|0;
- $cmp296 = ($29|0)==($28|0);
- if ($cmp296) {
- $shl299 = 1 << $shr268;
- $neg300 = $shl299 ^ -1;
- $30 = HEAP32[8120]|0;
- $and301 = $30 & $neg300;
- HEAP32[8120] = $and301;
- break;
- } else {
- $bk321 = ((($28)) + 12|0);
- HEAP32[$bk321>>2] = $29;
- $fd322 = ((($29)) + 8|0);
- HEAP32[$fd322>>2] = $28;
- break;
- }
- } else {
- $parent331 = ((($add$ptr6)) + 24|0);
- $31 = HEAP32[$parent331>>2]|0;
- $bk333 = ((($add$ptr6)) + 12|0);
- $32 = HEAP32[$bk333>>2]|0;
- $cmp334 = ($32|0)==($add$ptr6|0);
- do {
- if ($cmp334) {
- $child361 = ((($add$ptr6)) + 16|0);
- $arrayidx362 = ((($child361)) + 4|0);
- $34 = HEAP32[$arrayidx362>>2]|0;
- $cmp363 = ($34|0)==(0|0);
- if ($cmp363) {
- $35 = HEAP32[$child361>>2]|0;
- $cmp368 = ($35|0)==(0|0);
- if ($cmp368) {
- $R332$3 = 0;
- break;
- } else {
- $R332$1$ph = $35;$RP360$1$ph = $child361;
- }
- } else {
- $R332$1$ph = $34;$RP360$1$ph = $arrayidx362;
- }
- $R332$1 = $R332$1$ph;$RP360$1 = $RP360$1$ph;
- while(1) {
- $arrayidx374 = ((($R332$1)) + 20|0);
- $36 = HEAP32[$arrayidx374>>2]|0;
- $cmp375 = ($36|0)==(0|0);
- if ($cmp375) {
- $arrayidx379 = ((($R332$1)) + 16|0);
- $37 = HEAP32[$arrayidx379>>2]|0;
- $cmp380 = ($37|0)==(0|0);
- if ($cmp380) {
- break;
- } else {
- $R332$1$be = $37;$RP360$1$be = $arrayidx379;
- }
- } else {
- $R332$1$be = $36;$RP360$1$be = $arrayidx374;
- }
- $R332$1 = $R332$1$be;$RP360$1 = $RP360$1$be;
- }
- HEAP32[$RP360$1>>2] = 0;
- $R332$3 = $R332$1;
- } else {
- $fd338 = ((($add$ptr6)) + 8|0);
- $33 = HEAP32[$fd338>>2]|0;
- $bk355 = ((($33)) + 12|0);
- HEAP32[$bk355>>2] = $32;
- $fd356 = ((($32)) + 8|0);
- HEAP32[$fd356>>2] = $33;
- $R332$3 = $32;
- }
- } while(0);
- $cmp395 = ($31|0)==(0|0);
- if (!($cmp395)) {
- $index399 = ((($add$ptr6)) + 28|0);
- $38 = HEAP32[$index399>>2]|0;
- $arrayidx400 = (32784 + ($38<<2)|0);
- $39 = HEAP32[$arrayidx400>>2]|0;
- $cmp401 = ($39|0)==($add$ptr6|0);
- if ($cmp401) {
- HEAP32[$arrayidx400>>2] = $R332$3;
- $cond255 = ($R332$3|0)==(0|0);
- if ($cond255) {
- $shl408 = 1 << $38;
- $neg409 = $shl408 ^ -1;
- $40 = HEAP32[(32484)>>2]|0;
- $and410 = $40 & $neg409;
- HEAP32[(32484)>>2] = $and410;
- break;
- }
- } else {
- $arrayidx419 = ((($31)) + 16|0);
- $41 = HEAP32[$arrayidx419>>2]|0;
- $cmp420 = ($41|0)==($add$ptr6|0);
- $arrayidx427 = ((($31)) + 20|0);
- $arrayidx427$sink = $cmp420 ? $arrayidx419 : $arrayidx427;
- HEAP32[$arrayidx427$sink>>2] = $R332$3;
- $cmp432 = ($R332$3|0)==(0|0);
- if ($cmp432) {
- break;
- }
- }
- $parent442 = ((($R332$3)) + 24|0);
- HEAP32[$parent442>>2] = $31;
- $child443 = ((($add$ptr6)) + 16|0);
- $42 = HEAP32[$child443>>2]|0;
- $cmp445 = ($42|0)==(0|0);
- if (!($cmp445)) {
- $arrayidx454 = ((($R332$3)) + 16|0);
- HEAP32[$arrayidx454>>2] = $42;
- $parent455 = ((($42)) + 24|0);
- HEAP32[$parent455>>2] = $R332$3;
- }
- $arrayidx460 = ((($child443)) + 4|0);
- $43 = HEAP32[$arrayidx460>>2]|0;
- $cmp461 = ($43|0)==(0|0);
- if (!($cmp461)) {
- $arrayidx470 = ((($R332$3)) + 20|0);
- HEAP32[$arrayidx470>>2] = $43;
- $parent471 = ((($43)) + 24|0);
- HEAP32[$parent471>>2] = $R332$3;
- }
- }
- }
- } while(0);
- $or480 = $add267 | 1;
- $head481 = ((($p$1)) + 4|0);
- HEAP32[$head481>>2] = $or480;
- $add$ptr482 = (($21) + ($add267)|0);
- HEAP32[$add$ptr482>>2] = $add267;
- $44 = HEAP32[(32500)>>2]|0;
- $cmp484 = ($p$1|0)==($44|0);
- if ($cmp484) {
- HEAP32[(32488)>>2] = $add267;
- return;
- } else {
- $psize$2 = $add267;
- }
- } else {
- $and495 = $22 & -2;
- HEAP32[$head231>>2] = $and495;
- $or496 = $psize$1 | 1;
- $head497 = ((($p$1)) + 4|0);
- HEAP32[$head497>>2] = $or496;
- $add$ptr498 = (($21) + ($psize$1)|0);
- HEAP32[$add$ptr498>>2] = $psize$1;
- $psize$2 = $psize$1;
- }
- $shr501 = $psize$2 >>> 3;
- $cmp502 = ($psize$2>>>0)<(256);
- if ($cmp502) {
- $shl508 = $shr501 << 1;
- $arrayidx509 = (32520 + ($shl508<<2)|0);
- $45 = HEAP32[8120]|0;
- $shl511 = 1 << $shr501;
- $and512 = $45 & $shl511;
- $tobool513 = ($and512|0)==(0);
- if ($tobool513) {
- $or516 = $45 | $shl511;
- HEAP32[8120] = $or516;
- $$pre = ((($arrayidx509)) + 8|0);
- $$pre$phiZ2D = $$pre;$F510$0 = $arrayidx509;
- } else {
- $46 = ((($arrayidx509)) + 8|0);
- $47 = HEAP32[$46>>2]|0;
- $$pre$phiZ2D = $46;$F510$0 = $47;
- }
- HEAP32[$$pre$phiZ2D>>2] = $p$1;
- $bk529 = ((($F510$0)) + 12|0);
- HEAP32[$bk529>>2] = $p$1;
- $fd530 = ((($p$1)) + 8|0);
- HEAP32[$fd530>>2] = $F510$0;
- $bk531 = ((($p$1)) + 12|0);
- HEAP32[$bk531>>2] = $arrayidx509;
- return;
- }
- $shr535 = $psize$2 >>> 8;
- $cmp536 = ($shr535|0)==(0);
- if ($cmp536) {
- $I534$0 = 0;
- } else {
- $cmp540 = ($psize$2>>>0)>(16777215);
- if ($cmp540) {
- $I534$0 = 31;
- } else {
- $sub = (($shr535) + 1048320)|0;
- $shr544 = $sub >>> 16;
- $and545 = $shr544 & 8;
- $shl546 = $shr535 << $and545;
- $sub547 = (($shl546) + 520192)|0;
- $shr548 = $sub547 >>> 16;
- $and549 = $shr548 & 4;
- $add550 = $and549 | $and545;
- $shl551 = $shl546 << $and549;
- $sub552 = (($shl551) + 245760)|0;
- $shr553 = $sub552 >>> 16;
- $and554 = $shr553 & 2;
- $add555 = $add550 | $and554;
- $sub556 = (14 - ($add555))|0;
- $shl557 = $shl551 << $and554;
- $shr558 = $shl557 >>> 15;
- $add559 = (($sub556) + ($shr558))|0;
- $shl560 = $add559 << 1;
- $add561 = (($add559) + 7)|0;
- $shr562 = $psize$2 >>> $add561;
- $and563 = $shr562 & 1;
- $add564 = $and563 | $shl560;
- $I534$0 = $add564;
- }
- }
- $arrayidx567 = (32784 + ($I534$0<<2)|0);
- $index568 = ((($p$1)) + 28|0);
- HEAP32[$index568>>2] = $I534$0;
- $child569 = ((($p$1)) + 16|0);
- $arrayidx570 = ((($p$1)) + 20|0);
- HEAP32[$arrayidx570>>2] = 0;
- HEAP32[$child569>>2] = 0;
- $48 = HEAP32[(32484)>>2]|0;
- $shl573 = 1 << $I534$0;
- $and574 = $48 & $shl573;
- $tobool575 = ($and574|0)==(0);
- L112: do {
- if ($tobool575) {
- $or578 = $48 | $shl573;
- HEAP32[(32484)>>2] = $or578;
- HEAP32[$arrayidx567>>2] = $p$1;
- $parent579 = ((($p$1)) + 24|0);
- HEAP32[$parent579>>2] = $arrayidx567;
- $bk580 = ((($p$1)) + 12|0);
- HEAP32[$bk580>>2] = $p$1;
- $fd581 = ((($p$1)) + 8|0);
- HEAP32[$fd581>>2] = $p$1;
- } else {
- $49 = HEAP32[$arrayidx567>>2]|0;
- $head591262 = ((($49)) + 4|0);
- $50 = HEAP32[$head591262>>2]|0;
- $and592263 = $50 & -8;
- $cmp593264 = ($and592263|0)==($psize$2|0);
- L115: do {
- if ($cmp593264) {
- $T$0$lcssa = $49;
- } else {
- $cmp584 = ($I534$0|0)==(31);
- $shr586 = $I534$0 >>> 1;
- $sub589 = (25 - ($shr586))|0;
- $cond = $cmp584 ? 0 : $sub589;
- $shl590 = $psize$2 << $cond;
- $K583$0266 = $shl590;$T$0265 = $49;
- while(1) {
- $shr597 = $K583$0266 >>> 31;
- $arrayidx599 = (((($T$0265)) + 16|0) + ($shr597<<2)|0);
- $51 = HEAP32[$arrayidx599>>2]|0;
- $cmp601 = ($51|0)==(0|0);
- if ($cmp601) {
- break;
- }
- $shl600 = $K583$0266 << 1;
- $head591 = ((($51)) + 4|0);
- $52 = HEAP32[$head591>>2]|0;
- $and592 = $52 & -8;
- $cmp593 = ($and592|0)==($psize$2|0);
- if ($cmp593) {
- $T$0$lcssa = $51;
- break L115;
- } else {
- $K583$0266 = $shl600;$T$0265 = $51;
- }
- }
- HEAP32[$arrayidx599>>2] = $p$1;
- $parent610 = ((($p$1)) + 24|0);
- HEAP32[$parent610>>2] = $T$0265;
- $bk611 = ((($p$1)) + 12|0);
- HEAP32[$bk611>>2] = $p$1;
- $fd612 = ((($p$1)) + 8|0);
- HEAP32[$fd612>>2] = $p$1;
- break L112;
- }
- } while(0);
- $fd620 = ((($T$0$lcssa)) + 8|0);
- $53 = HEAP32[$fd620>>2]|0;
- $bk631 = ((($53)) + 12|0);
- HEAP32[$bk631>>2] = $p$1;
- HEAP32[$fd620>>2] = $p$1;
- $fd633 = ((($p$1)) + 8|0);
- HEAP32[$fd633>>2] = $53;
- $bk634 = ((($p$1)) + 12|0);
- HEAP32[$bk634>>2] = $T$0$lcssa;
- $parent635 = ((($p$1)) + 24|0);
- HEAP32[$parent635>>2] = 0;
- }
- } while(0);
- $54 = HEAP32[(32512)>>2]|0;
- $dec = (($54) + -1)|0;
- HEAP32[(32512)>>2] = $dec;
- $cmp640 = ($dec|0)==(0);
- if (!($cmp640)) {
- return;
- }
- $sp$0$in$i = (32936);
- while(1) {
- $sp$0$i = HEAP32[$sp$0$in$i>>2]|0;
- $cmp$i = ($sp$0$i|0)==(0|0);
- $next4$i = ((($sp$0$i)) + 8|0);
- if ($cmp$i) {
- break;
- } else {
- $sp$0$in$i = $next4$i;
- }
- }
- HEAP32[(32512)>>2] = -1;
- return;
-}
-function ___errno_location() {
- var label = 0, sp = 0;
- sp = STACKTOP;
- return (32976|0);
-}
-function ___muldsi3($a, $b) {
- $a = $a | 0;
- $b = $b | 0;
- var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0;
- $1 = $a & 65535;
- $2 = $b & 65535;
- $3 = Math_imul($2, $1) | 0;
- $6 = $a >>> 16;
- $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0;
- $11 = $b >>> 16;
- $12 = Math_imul($11, $1) | 0;
- return (setTempRet0(((($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0) | 0), 0 | ($8 + $12 << 16 | $3 & 65535)) | 0;
-}
-function ___muldi3($a$0, $a$1, $b$0, $b$1) {
- $a$0 = $a$0 | 0;
- $a$1 = $a$1 | 0;
- $b$0 = $b$0 | 0;
- $b$1 = $b$1 | 0;
- var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0;
- $x_sroa_0_0_extract_trunc = $a$0;
- $y_sroa_0_0_extract_trunc = $b$0;
- $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0;
- $1$1 = (getTempRet0() | 0);
- $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0;
- return (setTempRet0((((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0) | 0), 0 | $1$0 & -1) | 0;
-}
-function _bitshift64Ashr(low, high, bits) {
- low = low|0; high = high|0; bits = bits|0;
- var ander = 0;
- if ((bits|0) < 32) {
- ander = ((1 << bits) - 1)|0;
- setTempRet0((high >> bits) | 0);
- return (low >>> bits) | ((high&ander) << (32 - bits));
- }
- setTempRet0(((high|0) < 0 ? -1 : 0) | 0);
- return (high >> (bits - 32))|0;
-}
-function _bitshift64Lshr(low, high, bits) {
- low = low|0; high = high|0; bits = bits|0;
- var ander = 0;
- if ((bits|0) < 32) {
- ander = ((1 << bits) - 1)|0;
- setTempRet0((high >>> bits) | 0);
- return (low >>> bits) | ((high&ander) << (32 - bits));
- }
- setTempRet0((0) | 0);
- return (high >>> (bits - 32))|0;
-}
-function _bitshift64Shl(low, high, bits) {
- low = low|0; high = high|0; bits = bits|0;
- var ander = 0;
- if ((bits|0) < 32) {
- ander = ((1 << bits) - 1)|0;
- setTempRet0(((high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits))) | 0);
- return low << bits;
- }
- setTempRet0((low << (bits - 32)) | 0);
- return 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 ((setTempRet0((h) | 0),l|0)|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 ((setTempRet0((h) | 0),l|0)|0);
-}
-function _memcpy(dest, src, num) {
- dest = dest|0; src = src|0; num = num|0;
- var ret = 0;
- var aligned_dest_end = 0;
- var block_aligned_dest_end = 0;
- var dest_end = 0;
- // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use.
- if ((num|0) >= 8192) {
- _emscripten_memcpy_big(dest|0, src|0, num|0)|0;
- return dest|0;
- }
-
- ret = dest|0;
- dest_end = (dest + num)|0;
- if ((dest&3) == (src&3)) {
- // The initial unaligned < 4-byte front.
- while (dest & 3) {
- if ((num|0) == 0) return ret|0;
- HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
- dest = (dest+1)|0;
- src = (src+1)|0;
- num = (num-1)|0;
- }
- aligned_dest_end = (dest_end & -4)|0;
- block_aligned_dest_end = (aligned_dest_end - 64)|0;
- while ((dest|0) <= (block_aligned_dest_end|0) ) {
- HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
- HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0);
- HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0);
- HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0);
- HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0);
- HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0);
- HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0);
- HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0);
- HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0);
- HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0);
- HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0);
- HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0);
- HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0);
- HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0);
- HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0);
- HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0);
- dest = (dest+64)|0;
- src = (src+64)|0;
- }
- while ((dest|0) < (aligned_dest_end|0) ) {
- HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0);
- dest = (dest+4)|0;
- src = (src+4)|0;
- }
- } else {
- // In the unaligned copy case, unroll a bit as well.
- aligned_dest_end = (dest_end - 4)|0;
- while ((dest|0) < (aligned_dest_end|0) ) {
- HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
- HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0);
- HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0);
- HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0);
- dest = (dest+4)|0;
- src = (src+4)|0;
- }
- }
- // The remaining unaligned < 4 byte tail.
- while ((dest|0) < (dest_end|0)) {
- HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0);
- dest = (dest+1)|0;
- src = (src+1)|0;
- }
- 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;
- value4 = value | (value << 8) | (value << 16) | (value << 24);
-
- block_aligned_end = (aligned_end - 64)|0;
-
- 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 _sbrk(increment) {
- increment = increment|0;
- var oldDynamicTop = 0;
- var oldDynamicTopOnChange = 0;
- var newDynamicTop = 0;
- var totalMemory = 0;
- totalMemory = _emscripten_get_heap_size()|0;
-
- oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0;
- newDynamicTop = oldDynamicTop + increment | 0;
-
- if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int.
- | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract.
- abortOnCannotGrowMemory(newDynamicTop|0)|0;
- ___setErrNo(12);
- return -1;
- }
-
- if ((newDynamicTop|0) > (totalMemory|0)) {
- if (_emscripten_resize_heap(newDynamicTop|0)|0) {
- // We resized the heap. Start another loop iteration if we need to.
- } else {
- // We failed to resize the heap.
- ___setErrNo(12);
- return -1;
- }
- }
-
- HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop|0;
-
- return oldDynamicTop|0;
-}
-
-
-
-
-// EMSCRIPTEN_END_FUNCS
-
-
- return { ___errno_location: ___errno_location, ___muldi3: ___muldi3, _bitshift64Ashr: _bitshift64Ashr, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _create_keypair: _create_keypair, _free: _free, _i64Add: _i64Add, _i64Subtract: _i64Subtract, _malloc: _malloc, _memcpy: _memcpy, _memset: _memset, _sbrk: _sbrk, _sign: _sign, _verify: _verify, establishStackSpace: establishStackSpace, stackAlloc: stackAlloc, stackRestore: stackRestore, stackSave: stackSave };
-})
-// EMSCRIPTEN_END_ASM
-(asmGlobalArg, asmLibraryArg, buffer);
-
-var ___errno_location = Module["___errno_location"] = asm["___errno_location"];
-var ___muldi3 = Module["___muldi3"] = asm["___muldi3"];
-var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"];
-var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"];
-var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
-var _create_keypair = Module["_create_keypair"] = asm["_create_keypair"];
-var _free = Module["_free"] = asm["_free"];
-var _i64Add = Module["_i64Add"] = asm["_i64Add"];
-var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
-var _malloc = Module["_malloc"] = asm["_malloc"];
-var _memcpy = Module["_memcpy"] = asm["_memcpy"];
-var _memset = Module["_memset"] = asm["_memset"];
-var _sbrk = Module["_sbrk"] = asm["_sbrk"];
-var _sign = Module["_sign"] = asm["_sign"];
-var _verify = Module["_verify"] = asm["_verify"];
-var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"];
-var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"];
-var stackRestore = Module["stackRestore"] = asm["stackRestore"];
-var stackSave = Module["stackSave"] = asm["stackSave"];
-;
-
-
-
-// === Auto-generated postamble setup entry stuff ===
-
-Module['asm'] = asm;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if (memoryInitializer) {
- if (!isDataURI(memoryInitializer)) {
- memoryInitializer = locateFile(memoryInitializer);
- }
- if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
- var data = Module['readBinary'](memoryInitializer);
- HEAPU8.set(data, GLOBAL_BASE);
- } else {
- addRunDependency('memory initializer');
- var applyMemoryInitializer = function(data) {
- if (data.byteLength) data = new Uint8Array(data);
- HEAPU8.set(data, GLOBAL_BASE);
- // Delete the typed array that contains the large blob of the memory initializer request response so that
- // we won't keep unnecessary memory lying around. However, keep the XHR object itself alive so that e.g.
- // its .status field can still be accessed later.
- if (Module['memoryInitializerRequest']) delete Module['memoryInitializerRequest'].response;
- removeRunDependency('memory initializer');
- }
- var doBrowserLoad = function() {
- Module['readAsync'](memoryInitializer, applyMemoryInitializer, function() {
- throw 'could not load memory initializer ' + memoryInitializer;
- });
- }
- var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer);
- if (memoryInitializerBytes) {
- applyMemoryInitializer(memoryInitializerBytes.buffer);
- } else
- if (Module['memoryInitializerRequest']) {
- // a network request has already been created, just use that
- var useRequest = function() {
- var request = Module['memoryInitializerRequest'];
- var response = request.response;
- if (request.status !== 200 && request.status !== 0) {
- var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']);
- if (data) {
- response = data.buffer;
- } else {
- // If you see this warning, the issue may be that you are using locateFile and defining it in JS. That
- // means that the HTML file doesn't know about it, and when it tries to create the mem init request early, does it to the wrong place.
- // Look in your browser's devtools network console to see what's going on.
- console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + memoryInitializer);
- doBrowserLoad();
- return;
- }
- }
- applyMemoryInitializer(response);
- }
- if (Module['memoryInitializerRequest'].response) {
- setTimeout(useRequest, 0); // it's already here; but, apply it asynchronously
- } else {
- Module['memoryInitializerRequest'].addEventListener('load', useRequest); // wait for it
- }
- } else {
- // fetch it from the network ourselves
- doBrowserLoad();
- }
- }
-}
-
-
-
-/**
- * @constructor
- * @extends {Error}
- * @this {ExitStatus}
- */
-function ExitStatus(status) {
- this.name = "ExitStatus";
- this.message = "Program terminated with exit(" + status + ")";
- this.status = status;
-};
-ExitStatus.prototype = new Error();
-ExitStatus.prototype.constructor = ExitStatus;
-
-var calledMain = false;
-
-dependenciesFulfilled = function runCaller() {
- // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
- if (!Module['calledRun']) run();
- if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
-}
-
-
-
-
-
-/** @type {function(Array=)} */
-function run(args) {
- args = args || Module['arguments'];
-
- if (runDependencies > 0) {
- return;
- }
-
-
- preRun();
-
- if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
- if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
-
- function doRun() {
- if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
- Module['calledRun'] = true;
-
- if (ABORT) return;
-
- ensureInitRuntime();
-
- preMain();
-
- if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();
-
-
- postRun();
- }
-
- if (Module['setStatus']) {
- Module['setStatus']('Running...');
- setTimeout(function() {
- setTimeout(function() {
- Module['setStatus']('');
- }, 1);
- doRun();
- }, 1);
- } else {
- doRun();
- }
-}
-Module['run'] = run;
-
-
-function exit(status, implicit) {
-
- // if this is just main exit-ing implicitly, and the status is 0, then we
- // don't need to do anything here and can just leave. if the status is
- // non-zero, though, then we need to report it.
- // (we may have warned about this earlier, if a situation justifies doing so)
- if (implicit && Module['noExitRuntime'] && status === 0) {
- return;
- }
-
- if (Module['noExitRuntime']) {
- } else {
-
- ABORT = true;
- EXITSTATUS = status;
-
- exitRuntime();
-
- if (Module['onExit']) Module['onExit'](status);
- }
-
- Module['quit'](status, new ExitStatus(status));
-}
-
-var abortDecorators = [];
-
-function abort(what) {
- if (Module['onAbort']) {
- Module['onAbort'](what);
- }
-
- if (what !== undefined) {
- out(what);
- err(what);
- what = '"' + what + '"';
- } else {
- what = '';
- }
-
- ABORT = true;
- EXITSTATUS = 1;
-
- throw 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.';
-}
-Module['abort'] = abort;
-
-if (Module['preInit']) {
- if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
- while (Module['preInit'].length > 0) {
- Module['preInit'].pop()();
- }
-}
-
-
- Module["noExitRuntime"] = true;
-
-run();
-
-
-
-
-
-// {{MODULE_ADDITIONS}}
-
-
-
-if ('undefined' !== typeof module) module.exports = Module;
diff --git a/test.js b/test.js
@@ -13,11 +13,11 @@ test('Type checks', t => {
t.is(typeof lib.verify , 'function', 'export method: verify' );
});
-test('Random bytes generation', t => {
+test('Random bytes generation',async t => {
t.plan(4);
- const randomBytes32 = lib._randomBytes(32);
- const randomBytes64 = lib._randomBytes(64);
+ const randomBytes32 = await lib._randomBytes(32);
+ const randomBytes64 = await lib._randomBytes(64);
t.is(isBuffer(randomBytes32), true, 'Random32 is a buffer');
t.is(isBuffer(randomBytes64), true, 'Random64 is a buffer');
@@ -25,7 +25,7 @@ test('Random bytes generation', t => {
t.is(randomBytes64.length , 64 , 'Random64 is 64 bytes long');
});
-test('Argument validation', t => {
+test('Argument validation',async t => {
t.plan(14);
// We'll not throw in this test
@@ -37,73 +37,73 @@ test('Argument validation', t => {
// Variables to test with
const undef = undefined;
- const rightSeed = lib._randomBytes(32);
- const wrongSeed = lib._randomBytes(33);
- const rightPublicKey = lib._randomBytes(32);
- const wrongPublicKey = lib._randomBytes(33);
- const rightSecretKey = lib._randomBytes(64);
- const wrongSecretKey = lib._randomBytes(65);
- const randomMessage = lib._randomBytes(1024);
-
- t.is(lib._checkArguments(null , callback), 'Expected object, null given' , 'Failure on null argument');
- t.is(lib._checkArguments('some string' , callback), 'Expected object, string given' , 'Failure on string argument');
- t.is(lib._checkArguments(callback , callback), 'Expected object, function given', 'Failure on function argument');
- t.is(lib._checkArguments({ seed : undef }, callback), 'Seed is not a buffer' , 'Failure on undefined seed');
- t.is(lib._checkArguments({ seed : rightSeed }, callback), false , 'Success on 32-byte seed');
- t.is(lib._checkArguments({ seed : wrongSeed }, callback), 'Seed must be 32 bytes' , 'Failure on 33-byte seed');
- t.is(lib._checkArguments({ publicKey: undef }, callback), 'Public key is not a buffer' , 'Failure on undefined public key');
- t.is(lib._checkArguments({ publicKey: rightPublicKey }, callback), false , 'Success on 32-byte public key');
- t.is(lib._checkArguments({ publicKey: wrongPublicKey }, callback), 'Public key must be 32 bytes' , 'Failure on 33-byte public key');
- t.is(lib._checkArguments({ secretKey: undef }, callback), 'Secret key is not a buffer' , 'Failure on undefined secret key');
- t.is(lib._checkArguments({ secretKey: rightSecretKey }, callback), false , 'Success on 64-byte secret key');
- t.is(lib._checkArguments({ secretKey: wrongSecretKey }, callback), 'Secret key must be 64 bytes' , 'Failure on 65-byte secret key');
- t.is(lib._checkArguments({ message : undef }, callback), 'Message is not a buffer' , 'Failure on undefined message');
- t.is(lib._checkArguments({ message : randomMessage }, callback), false , 'Success on buffer message');
+ const rightSeed = await lib._randomBytes(32);
+ const wrongSeed = await lib._randomBytes(33);
+ const rightPublicKey = await lib._randomBytes(32);
+ const wrongPublicKey = await lib._randomBytes(33);
+ const rightSecretKey = await lib._randomBytes(64);
+ const wrongSecretKey = await lib._randomBytes(65);
+ const randomMessage = await lib._randomBytes(1024);
+
+ t.is(await lib._checkArguments(null , callback), 'Expected object, null given' , 'Failure on null argument');
+ t.is(await lib._checkArguments('some string' , callback), 'Expected object, string given' , 'Failure on string argument');
+ t.is(await lib._checkArguments(callback , callback), 'Expected object, function given', 'Failure on function argument');
+ t.is(await lib._checkArguments({ seed : undef }, callback), 'Seed is not a buffer' , 'Failure on undefined seed');
+ t.is(await lib._checkArguments({ seed : rightSeed }, callback), false , 'Success on 32-byte seed');
+ t.is(await lib._checkArguments({ seed : wrongSeed }, callback), 'Seed must be 32 bytes' , 'Failure on 33-byte seed');
+ t.is(await lib._checkArguments({ publicKey: undef }, callback), 'Public key is not a buffer' , 'Failure on undefined public key');
+ t.is(await lib._checkArguments({ publicKey: rightPublicKey }, callback), false , 'Success on 32-byte public key');
+ t.is(await lib._checkArguments({ publicKey: wrongPublicKey }, callback), 'Public key must be 32 bytes' , 'Failure on 33-byte public key');
+ t.is(await lib._checkArguments({ secretKey: undef }, callback), 'Secret key is not a buffer' , 'Failure on undefined secret key');
+ t.is(await lib._checkArguments({ secretKey: rightSecretKey }, callback), false , 'Success on 64-byte secret key');
+ t.is(await lib._checkArguments({ secretKey: wrongSecretKey }, callback), 'Secret key must be 64 bytes' , 'Failure on 65-byte secret key');
+ t.is(await lib._checkArguments({ message : undef }, callback), 'Message is not a buffer' , 'Failure on undefined message');
+ t.is(await lib._checkArguments({ message : randomMessage }, callback), false , 'Success on buffer message');
});
-test('Key generation', t => {
+test('Key generation',async t => {
t.plan(6);
- const seed = lib.createSeed();
+ const seed = await lib.createSeed();
t.is(isBuffer(seed), true, 'Seed is a buffer' );
t.is(seed.length , 32 , 'Seed\'s length is 32');
- const keys = lib.createKeyPair(seed);
+ const keys = await lib.createKeyPair(seed);
t.is(isBuffer(keys.publicKey), true, 'Public key is a buffer' );
t.is(keys.publicKey.length , 32 , 'Public key\'s length is 32');
t.is(isBuffer(keys.secretKey), true, 'Secret key is a buffer' );
t.is(keys.secretKey.length , 64 , 'Secret key\'s length is 64');
});
-test('Signatures', t => {
+test('Signatures',async t => {
t.plan(2);
- const seed = lib.createSeed();
- const keys = lib.createKeyPair(seed);
- const signature = lib.sign(new Buffer('hello there m8'), keys.publicKey, keys.secretKey);
+ const seed = await lib.createSeed();
+ const keys = await lib.createKeyPair(seed);
+ const signature = await lib.sign(Buffer.from('hello there m8'), keys.publicKey, keys.secretKey);
t.is(isBuffer(signature), true, 'Signature is a buffer');
t.is(signature.length , 64 , 'Signature\'s length is 64 bytes');
});
-test('Verify', t => {
+test('Verify',async t => {
t.plan(4);
- const seed = lib.createSeed();
- const keys = lib.createKeyPair(seed);
- const messageBuf = new Buffer('hello there m8');
- const messageStr = 'hello there m8';
- const wrongMessage = lib._randomBytes(messageBuf.length);
+ const seed = await lib.createSeed();
+ const keys = await lib.createKeyPair(seed);
+ const messageBuf = Buffer.from('hello there m8');
+ const messageStr = 'hello there m8';
+ const wrongMessage = await lib._randomBytes(messageBuf.length);
- const signatureBuf = lib.sign(messageBuf, keys.publicKey, keys.secretKey);
- const signatureStr = lib.sign(messageStr, keys.publicKey, keys.secretKey);
+ const signatureBuf = await lib.sign(messageBuf, keys.publicKey, keys.secretKey);
+ const signatureStr = await lib.sign(messageStr, keys.publicKey, keys.secretKey);
t.is(Buffer.compare(signatureBuf, signatureStr), 0, 'String and buffer sourced signature match');
- const wrongSeed = lib.createSeed();
- const wrongKeys = lib.createKeyPair(wrongSeed);
+ const wrongSeed = await lib.createSeed();
+ const wrongKeys = await lib.createKeyPair(wrongSeed);
- t.is(lib.verify(signatureBuf, messageBuf, keys.publicKey) , true , 'Signature verified message');
- t.is(lib.verify(signatureBuf, wrongMessage, keys.publicKey) , false, 'Different messaged does not verify');
- t.is(lib.verify(signatureBuf, messageBuf, wrongKeys.publicKey), false, 'Different public key does not verify');
+ t.is(await lib.verify(signatureBuf, messageBuf, keys.publicKey) , true , 'Signature verified message');
+ t.is(await lib.verify(signatureBuf, wrongMessage, keys.publicKey) , false, 'Different messaged does not verify');
+ t.is(await lib.verify(signatureBuf, messageBuf, wrongKeys.publicKey), false, 'Different public key does not verify');
});