diff --git a/package-lock.json b/package-lock.json index b35eed0..5222944 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "daikon", - "version": "1.2.43", - "lockfileVersion": 2, + "version": "1.2.44", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "daikon", - "version": "1.2.43", + "version": "1.2.44", "license": "MIT", "dependencies": { "@wearemothership/dicom-character-set": "^1.0.4-opt.1", @@ -15,497 +15,441 @@ "xss": "^1.0.14" }, "devDependencies": { - "browserify": "^16.5.2", - "full-icu": "^1.3.0", - "icu4c-data": "^0.60.2", - "jsdoc-to-markdown": "^4.0.1", - "mocha": "^5.2.0", - "uglifyjs": "^2.4.11" + "esbuild": "*", + "full-icu": "*", + "icu4c-data": "*", + "jsdoc-to-markdown": "*", + "mocha": "*" } }, - "node_modules/@wearemothership/dicom-character-set": { - "version": "1.0.4-opt.1", - "resolved": "https://registry.npmjs.org/@wearemothership/dicom-character-set/-/dicom-character-set-1.0.4-opt.1.tgz", - "integrity": "sha512-stqhnpawYHY2UZKj4RHTF71ab3q3z8S1SO9ToQKjsHQwowUdFVo6YFea93psFux3yqNbRlQjwoCdPjHcD0YQzw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", "dev": true, "bin": { - "acorn": "bin/acorn" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.0.0" } }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "node_modules/@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "node_modules/@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "typical": "^2.6.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "node_modules/@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "inherits": "2.0.1" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/babylon": { - "version": "7.0.0-beta.19", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", - "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "babylon": "bin/babylon.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4.2.0" + "node": ">=12" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "cpu": [ + "ia32" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "resolve": "^1.17.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserify": { - "version": "16.5.2", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", - "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "pako": "~1.0.5" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "node_modules/@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "*" + "node": ">=12" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "node_modules/cache-point": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-0.4.1.tgz", - "integrity": "sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q==", + "node_modules/@jsdoc/salty": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz", + "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==", "dev": true, "dependencies": { - "array-back": "^2.0.0", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.3" + "lodash": "^4.17.21" }, "engines": { - "node": ">=4.0.0" + "node": ">=v12.0.0" } }, - "node_modules/cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", "dev": true }, - "node_modules/catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", "dev": true, "dependencies": { - "lodash": "^4.17.14" - }, - "engines": { - "node": ">= 8" + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true }, - "node_modules/collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, - "dependencies": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" - }, + "node_modules/@wearemothership/dicom-character-set": { + "version": "1.0.4-opt.1", + "resolved": "https://registry.npmjs.org/@wearemothership/dicom-character-set/-/dicom-character-set-1.0.4-opt.1.tgz", + "integrity": "sha512-stqhnpawYHY2UZKj4RHTF71ab3q3z8S1SO9ToQKjsHQwowUdFVo6YFea93psFux3yqNbRlQjwoCdPjHcD0YQzw==", "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" + "engines": { + "node": ">=6" } }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "node_modules/ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", "dev": true, "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "array-back": "^3.0.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=8.0.0" } }, - "node_modules/command-line-args/node_modules/array-back": { + "node_modules/ansi-escape-sequences/node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", @@ -514,399 +458,544 @@ "node": ">=6" } }, - "node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=4.0.0" + "node": ">= 8" } }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/common-sequence": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz", - "integrity": "sha512-z3ln8PqfoBRwY1X0B1W0NEvfuo3+lZdvVjYaxusK84FPGkBy+ZqfbMhgdGOLr1v1dv13z5KYOtbL/yupL4I8Yw==", + "node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12.17" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "engines": { + "node": ">=8" } }, - "node_modules/config-master": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", - "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/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, "dependencies": { - "walk-back": "^2.0.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/config-master/node_modules/walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "node_modules/cache-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", "dev": true, "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" + "array-back": "^4.0.1", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + }, + "engines": { + "node": ">=8" } }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/cache-point/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", "dev": true, "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "ms": "2.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, "engines": { - "node": ">=4.0.0" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "node_modules/collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", "dev": true, "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" }, - "bin": { - "deps-sort": "bin/cmd.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/detective": { + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/command-line-args": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=4.0.0" } }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "node_modules/command-line-args/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=6" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "node_modules/command-line-args/node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/dmd": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-3.0.13.tgz", - "integrity": "sha512-FV/417bH2c/CYpe8BjFEAHoaHaItcJnPlKELi/qyPZdmUom8joyuC78OhhfPUdyKD/WcouTQ2LxQT4M/RoiJ3w==", + "node_modules/command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", "dev": true, "dependencies": { + "ansi-escape-sequences": "^4.0.0", "array-back": "^2.0.0", - "cache-point": "^0.4.1", - "common-sequence": "^1.0.2", - "file-set": "^2.0.0", - "handlebars": "^4.0.11", - "marked": "^0.3.16", - "object-get": "^2.1.0", - "reduce-flatten": "^1.0.1", - "reduce-unique": "^1.0.0", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^3.0.0" + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" }, "engines": { "node": ">=4.0.0" } }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "node_modules/command-line-tool/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, "engines": { - "node": ">=0.4", - "npm": ">=1.2" + "node": ">=4" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "node_modules/command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", "dev": true, "dependencies": { - "readable-stream": "^2.0.2" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "node_modules/command-line-usage/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "typical": "^2.6.1" + }, "engines": { - "node": ">=0.8.0" + "node": ">=4" } }, - "node_modules/events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "engines": { + "node": ">=8" } }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "node_modules/config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", "dev": true, "dependencies": { - "pend": "~1.2.0" + "walk-back": "^2.0.1" + } + }, + "node_modules/config-master/node_modules/walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/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 + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dmd": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", + "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", + "dev": true, + "dependencies": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.2", + "file-set": "^4.0.2", + "handlebars": "^4.7.7", + "marked": "^4.2.3", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.1", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" } }, "node_modules/fflate": { @@ -915,13 +1004,37 @@ "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" }, "node_modules/file-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-2.0.1.tgz", - "integrity": "sha512-XgOUUpgR6FbbfYcniLw0qm1Am7PnNYIAkd+eXxRt42LiYhjaso0WiuQ+VmrNdtwotyM+cLCfZ56AZrySP3QnKA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", "dev": true, "dependencies": { - "array-back": "^2.0.0", - "glob": "^7.1.3" + "array-back": "^5.0.0", + "glob": "^7.1.6" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/file-set/node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/find-replace": { @@ -945,6 +1058,31 @@ "node": ">=6" } }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/fs-then-native": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", @@ -960,6 +1098,20 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/full-icu": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.5.0.tgz", @@ -974,17 +1126,14 @@ "node-full-icu-path": "node-icu-data.js" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, "node_modules/glob": { "version": "7.2.3", @@ -1006,21 +1155,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -1042,135 +1194,30 @@ "uglify-js": "^3.1.4" } }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "node": ">=8" } }, "node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "bin": { "he": "bin/he" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, "node_modules/icu4c-data": { - "version": "0.60.2", - "resolved": "https://registry.npmjs.org/icu4c-data/-/icu4c-data-0.60.2.tgz", - "integrity": "sha512-4ScORTYJPIDJRPtAkQWXfKqGk8u1ThOxFWCJ3jkq+rj/MU4cK6isCvhFiEjunivw1/bJ10LqNAaJ9pAK68DEZg==", + "version": "0.57.2", + "resolved": "https://registry.npmjs.org/icu4c-data/-/icu4c-data-0.57.2.tgz", + "integrity": "sha512-oyPIZGEn7sprroCgTc/LuZzr2Br+7StiwHDKLGgcNWs+S9q8Mqpm6vlb1OGDnBVEc7hfSmAWHaiHRu/nhDNRtg==", "dev": true }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1187,218 +1234,222 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "source-map": "~0.5.3" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" + "is-extglob": "^2.1.1" }, - "bin": { - "insert-module-globals": "bin/cmd.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "dependencies": { - "has": "^1.0.3" + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, "node_modules/jpeg-lossless-decoder-js": { "version": "2.0.4", "resolved": "git+ssh://git@github.com/rii-mango/JPEGLosslessDecoderJS.git#78fe90c7cae985b1a394a66f99c81633144bb867", "license": "MIT" }, - "node_modules/js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha512-CSOkdn0/GhRFwxnipmhXfqJ+FG6+wkWBi46kKSsPx6+j65176ZiQcrCYpg6K8x3iLbO4k3zScBnZ7I/L80dAtw==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "xmlcreate": "^1.0.1" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdoc": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", - "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, "dependencies": { - "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", + "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" }, "bin": { "jsdoc": "jsdoc.js" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.0.0" } }, "node_modules/jsdoc-api": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-4.0.3.tgz", - "integrity": "sha512-dfYq9JgB+XahY0XfSEw93PmXmocjwYcvJ5aMuQUJ/OdDRGWamf2SSOk3W06Bsj8qdjp/UdefzqpP/mpwsvHuvA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", + "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", "dev": true, "dependencies": { - "array-back": "^2.0.0", - "cache-point": "^0.4.1", - "collect-all": "^1.0.3", - "file-set": "^2.0.0", + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", "fs-then-native": "^2.0.0", - "jsdoc": "~3.5.5", - "object-to-spawn-args": "^1.1.1", + "jsdoc": "^4.0.0", + "object-to-spawn-args": "^2.0.1", "temp-path": "^1.0.0", - "walk-back": "^3.0.0" + "walk-back": "^5.1.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=12.17" } }, "node_modules/jsdoc-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-3.0.1.tgz", - "integrity": "sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz", + "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==", "dev": true, "dependencies": { - "array-back": "^2.0.0", + "array-back": "^6.2.2", "lodash.omit": "^4.5.0", "lodash.pick": "^4.4.0", "reduce-extract": "^1.0.0", - "sort-array": "^2.0.0", + "sort-array": "^4.1.5", "test-value": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=12" } }, "node_modules/jsdoc-to-markdown": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-4.0.1.tgz", - "integrity": "sha512-LHJRoLoLyDdxNcColgkLoB/rFG5iRP+PNJjMILI0x+95IdEAtyjSt0wJ6ZlKxRpkhBYtQXTQQ119hMqPIUZzTQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz", + "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==", "dev": true, "dependencies": { - "array-back": "^2.0.0", + "array-back": "^6.2.2", "command-line-tool": "^0.8.0", "config-master": "^3.1.0", - "dmd": "^3.0.10", - "jsdoc-api": "^4.0.1", - "jsdoc-parse": "^3.0.1", - "walk-back": "^3.0.0" + "dmd": "^6.2.0", + "jsdoc-api": "^8.0.0", + "jsdoc-parse": "^6.2.0", + "walk-back": "^5.1.0" }, "bin": { "jsdoc2md": "bin/cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=12.17" } }, - "node_modules/json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha512-nKtD/Qxm7tWdZqJoldEC7fF0S41v0mWbeaXG3637stOWfyGxTgWTYE2wtfKmjzpvxv2MA2xzxsXOIiwUpkX6Qw==", + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "dev": true, "dependencies": { - "jsonify": "~0.0.0" + "graceful-fs": "^4.1.9" } }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "uc.micro": "^1.0.1" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" + "p-locate": "^5.0.0" }, "engines": { - "node": "*" - } - }, - "node_modules/klaw": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha512-Hx5PvgJKTWpMkNJCYrBUNBLlxYIkxN4FVU/BnZP4CFh5BpiHOgujAPx7iFVz/phD0bP8rsqD48gtqcvNlUt0lQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -1413,12 +1464,6 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true - }, "node_modules/lodash.omit": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", @@ -1437,58 +1482,64 @@ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", "dev": true }, - "node_modules/marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "bin": { - "marked": "bin/marked" + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "dev": true, "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" }, "bin": { - "miller-rabin": "bin/miller-rabin" + "markdown-it": "bin/markdown-it.js" } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } }, - "node_modules/minimalistic-crypto-utils": { + "node_modules/mdurl": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, "node_modules/minimatch": { @@ -1513,23 +1564,17 @@ } }, "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, "bin": { "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/mkdirp2": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", @@ -1537,35 +1582,61 @@ "dev": true }, "node_modules/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "dependencies": { + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -1577,12 +1648,15 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -1591,70 +1665,55 @@ "node": "*" } }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", - "dev": true - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "minimist": "0.0.8" + "brace-expansion": "^2.0.1" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=10" } }, - "node_modules/module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" + "balanced-match": "^1.0.0" } }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1667,10 +1726,13 @@ "dev": true }, "node_modules/object-to-spawn-args": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", - "integrity": "sha512-d6xH8b+QdNj+cdndsL3rVCzwW9PqSSXQBDVj0d8fyaCqMimUEz+sW+Jtxp77bxaSs7C5w7XOH844FG7p2A0cFw==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } }, "node_modules/once": { "version": "1.4.0", @@ -1681,45 +1743,44 @@ "wrappy": "1" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "path-platform": "~0.11.15" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/path-is-absolute": { "version": "1.0.1", @@ -1730,101 +1791,22 @@ "node": ">=0.10.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/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 - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { - "node": ">=0.4.x" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/randombytes": { @@ -1836,53 +1818,16 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/readable-stream/node_modules/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 - }, - "node_modules/readable-stream/node_modules/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==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, "node_modules/reduce-extract": { @@ -1923,21 +1868,21 @@ } }, "node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/reduce-unique": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz", - "integrity": "sha512-WQ6qRDbx7NL4CdW6AFjnyX9i0k6FxGiUaGJ5xAEZ8ZLjwisxi3wcKWYzKmULj8s1N8G1KYcREyg0P4PVo2rI/A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/reduce-without": { @@ -1977,2720 +1922,440 @@ "node": ">=0.10.0" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requizzle": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", "dev": true, "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha512-UTzHm/+AzKfO9RgPgRpDIuMSNie1ubXRaljjlhFMNGYoG7z+rm9AHLPMf70R7887xboDH9Q+5YQbWKObFHEAtw==", - "dev": true, - "dependencies": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } - }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/sort-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz", - "integrity": "sha512-nZI3lq+nPRImxYqQY5iwpOPVLdDEMr2k6rCOAz5hRcpyYFsrR+2m5Kw0tZaTt452nx/9wZrKaMEMrX03I7ChqQ==", - "dev": true, - "dependencies": { - "array-back": "^1.0.4", - "object-get": "^2.1.0", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sort-array/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", - "dev": true, - "dependencies": { - "array-back": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-connect/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==", - "dev": true - }, - "node_modules/temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", - "dev": true - }, - "node_modules/test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglifyjs": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/uglifyjs/-/uglifyjs-2.4.11.tgz", - "integrity": "sha512-iR5+eXZCsoqmlzqYYENJm+rtX/KpC+jhhCtgORtBeVxRET+mfFHlyArl3DgYEqRTVDOxenv0OojFg02tf6LluA==", - "deprecated": "uglifyjs is deprecated - use uglify-js instead.", - "dev": true - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/walk-back": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.1.tgz", - "integrity": "sha512-umiNB2qLO731Sxbp6cfZ9pwURJzTnftxE4Gc7hq8n/ehkuXC//s9F65IEIJA2ZytQZ1ZOsm/Fju4IWx0bivkUQ==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "dev": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha512-Mbe56Dvj00onbnSo9J0qj/XlY5bfN9KidsOnpd5tRCsR3ekB3hyyNU9fGrTdqNT5ZNvv4BsA2TcQlignsZyVcw==", - "dev": true - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "@wearemothership/dicom-character-set": { - "version": "1.0.4-opt.1", - "resolved": "https://registry.npmjs.org/@wearemothership/dicom-character-set/-/dicom-character-set-1.0.4-opt.1.tgz", - "integrity": "sha512-stqhnpawYHY2UZKj4RHTF71ab3q3z8S1SO9ToQKjsHQwowUdFVo6YFea93psFux3yqNbRlQjwoCdPjHcD0YQzw==" - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } - } - }, - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "babylon": { - "version": "7.0.0-beta.19", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", - "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "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", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "requires": { - "resolve": "^1.17.0" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify": { - "version": "16.5.2", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", - "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", - "dev": true, - "requires": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^2.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "~0.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "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-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "cache-point": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-0.4.1.tgz", - "integrity": "sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.3" - } - }, - "cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, - "requires": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" - } - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } - } - }, - "command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", - "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" - } - }, - "command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "common-sequence": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz", - "integrity": "sha512-z3ln8PqfoBRwY1X0B1W0NEvfuo3+lZdvVjYaxusK84FPGkBy+ZqfbMhgdGOLr1v1dv13z5KYOtbL/yupL4I8Yw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "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" - } - }, - "config-master": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", - "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", - "dev": true, - "requires": { - "walk-back": "^2.0.1" - }, - "dependencies": { - "walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", - "dev": true - } - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true - }, - "deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "requires": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dmd": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-3.0.13.tgz", - "integrity": "sha512-FV/417bH2c/CYpe8BjFEAHoaHaItcJnPlKELi/qyPZdmUom8joyuC78OhhfPUdyKD/WcouTQ2LxQT4M/RoiJ3w==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "cache-point": "^0.4.1", - "common-sequence": "^1.0.2", - "file-set": "^2.0.0", - "handlebars": "^4.0.11", - "marked": "^0.3.16", - "object-get": "^2.1.0", - "reduce-flatten": "^1.0.1", - "reduce-unique": "^1.0.0", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^3.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", - "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fflate": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", - "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==" - }, - "file-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-2.0.1.tgz", - "integrity": "sha512-XgOUUpgR6FbbfYcniLw0qm1Am7PnNYIAkd+eXxRt42LiYhjaso0WiuQ+VmrNdtwotyM+cLCfZ56AZrySP3QnKA==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "glob": "^7.1.3" - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } - } - }, - "fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "full-icu": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/full-icu/-/full-icu-1.5.0.tgz", - "integrity": "sha512-BxB2otKUSFyvENjbI8EtQscpiPOEnhrf5V4MVpa6PjzsrLmdKKUUhulbydsfKS4ve6cGXNVRLlrOjizby/ZfDA==", - "dev": true, - "requires": { - "yauzl": "^2.10.0" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "icu4c-data": { - "version": "0.60.2", - "resolved": "https://registry.npmjs.org/icu4c-data/-/icu4c-data-0.60.2.tgz", - "integrity": "sha512-4ScORTYJPIDJRPtAkQWXfKqGk8u1ThOxFWCJ3jkq+rj/MU4cK6isCvhFiEjunivw1/bJ10LqNAaJ9pAK68DEZg==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "requires": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "jpeg-lossless-decoder-js": { - "version": "git+ssh://git@github.com/rii-mango/JPEGLosslessDecoderJS.git#78fe90c7cae985b1a394a66f99c81633144bb867", - "from": "jpeg-lossless-decoder-js@git+https://github.com/rii-mango/JPEGLosslessDecoderJS.git#v2.0.4" - }, - "js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha512-CSOkdn0/GhRFwxnipmhXfqJ+FG6+wkWBi46kKSsPx6+j65176ZiQcrCYpg6K8x3iLbO4k3zScBnZ7I/L80dAtw==", - "dev": true, - "requires": { - "xmlcreate": "^1.0.1" - } - }, - "jsdoc": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", - "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", - "dev": true, - "requires": { - "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" - } - }, - "jsdoc-api": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-4.0.3.tgz", - "integrity": "sha512-dfYq9JgB+XahY0XfSEw93PmXmocjwYcvJ5aMuQUJ/OdDRGWamf2SSOk3W06Bsj8qdjp/UdefzqpP/mpwsvHuvA==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "cache-point": "^0.4.1", - "collect-all": "^1.0.3", - "file-set": "^2.0.0", - "fs-then-native": "^2.0.0", - "jsdoc": "~3.5.5", - "object-to-spawn-args": "^1.1.1", - "temp-path": "^1.0.0", - "walk-back": "^3.0.0" - } - }, - "jsdoc-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-3.0.1.tgz", - "integrity": "sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^2.0.0", - "test-value": "^3.0.0" - } - }, - "jsdoc-to-markdown": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-4.0.1.tgz", - "integrity": "sha512-LHJRoLoLyDdxNcColgkLoB/rFG5iRP+PNJjMILI0x+95IdEAtyjSt0wJ6ZlKxRpkhBYtQXTQQ119hMqPIUZzTQ==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "command-line-tool": "^0.8.0", - "config-master": "^3.1.0", - "dmd": "^3.0.10", - "jsdoc-api": "^4.0.1", - "jsdoc-parse": "^3.0.1", - "walk-back": "^3.0.0" - } - }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha512-nKtD/Qxm7tWdZqJoldEC7fF0S41v0mWbeaXG3637stOWfyGxTgWTYE2wtfKmjzpvxv2MA2xzxsXOIiwUpkX6Qw==", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "klaw": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha512-Hx5PvgJKTWpMkNJCYrBUNBLlxYIkxN4FVU/BnZP4CFh5BpiHOgujAPx7iFVz/phD0bP8rsqD48gtqcvNlUt0lQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", - "dev": true - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true - }, - "marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "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" - } - }, - "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.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, - "module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "requires": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true - }, - "object-to-spawn-args": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", - "integrity": "sha512-d6xH8b+QdNj+cdndsL3rVCzwW9PqSSXQBDVj0d8fyaCqMimUEz+sW+Jtxp77bxaSs7C5w7XOH844FG7p2A0cFw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "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 - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" - }, - "dependencies": { - "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_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" - } - } - } - }, - "reduce-extract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", - "dev": true, - "requires": { - "test-value": "^1.0.1" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", - "dev": true, - "requires": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - } - } - } - }, - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", - "dev": true - }, - "reduce-unique": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz", - "integrity": "sha512-WQ6qRDbx7NL4CdW6AFjnyX9i0k6FxGiUaGJ5xAEZ8ZLjwisxi3wcKWYzKmULj8s1N8G1KYcREyg0P4PVo2rI/A==", - "dev": true - }, - "reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", - "dev": true, - "requires": { - "test-value": "^2.0.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - } - } - } - }, - "requizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", - "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "lodash": "^4.17.21" } }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha512-UTzHm/+AzKfO9RgPgRpDIuMSNie1ubXRaljjlhFMNGYoG7z+rm9AHLPMf70R7887xboDH9Q+5YQbWKObFHEAtw==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, - "requires": { - "fast-safe-stringify": "^2.0.7" + "dependencies": { + "randombytes": "^2.1.0" } }, - "shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "sort-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz", - "integrity": "sha512-nZI3lq+nPRImxYqQY5iwpOPVLdDEMr2k6rCOAz5hRcpyYFsrR+2m5Kw0tZaTt452nx/9wZrKaMEMrX03I7ChqQ==", + "node_modules/sort-array": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", + "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", "dev": true, - "requires": { - "array-back": "^1.0.4", - "object-get": "^2.1.0", - "typical": "^2.6.0" - }, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } + "array-back": "^5.0.0", + "typical": "^6.0.1" + }, + "engines": { + "node": ">=10" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true + "node_modules/sort-array/node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "node_modules/sort-array/node_modules/typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "engines": { + "node": ">=10" } }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" + "engines": { + "node": ">=0.10.0" } }, - "stream-connect": { + "node_modules/stream-connect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", "dev": true, - "requires": { + "dependencies": { "array-back": "^1.0.2" }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } + "engines": { + "node": ">=0.10.0" } }, - "stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "node_modules/stream-connect/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - }, "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" } }, - "stream-via": { + "node_modules/stream-via": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "requires": { - "safe-buffer": "~5.2.0" + "engines": { + "node": ">=0.10.0" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "minimist": "^1.1.0" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "has-flag": "^3.0.0" + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "acorn-node": "^1.2.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "table-layout": { + "node_modules/table-layout": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", "dev": true, - "requires": { + "dependencies": { "array-back": "^2.0.0", "deep-extend": "~0.6.0", "lodash.padend": "^4.6.1", "typical": "^2.6.1", "wordwrapjs": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==", - "dev": true + "node_modules/table-layout/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } }, - "temp-path": { + "node_modules/temp-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", "dev": true }, - "test-value": { + "node_modules/test-value": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", "dev": true, - "requires": { + "dependencies": { "array-back": "^2.0.0", "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/test-value/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { - "process": "~0.11.0" + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "typical": { + "node_modules/typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", "dev": true }, - "uglify-js": { + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, - "optional": true - }, - "uglifyjs": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/uglifyjs/-/uglifyjs-2.4.11.tgz", - "integrity": "sha512-iR5+eXZCsoqmlzqYYENJm+rtX/KpC+jhhCtgORtBeVxRET+mfFHlyArl3DgYEqRTVDOxenv0OojFg02tf6LluA==", - "dev": true - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==", + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } - } - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "node_modules/walk-back": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", + "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - } + "engines": { + "node": ">=12.17" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "walk-back": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.1.tgz", - "integrity": "sha512-umiNB2qLO731Sxbp6cfZ9pwURJzTnftxE4Gc7hq8n/ehkuXC//s9F65IEIJA2ZytQZ1ZOsm/Fju4IWx0bivkUQ==", - "dev": true - }, - "wordwrap": { + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, - "wordwrapjs": { + "node_modules/wordwrapjs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", "dev": true, - "requires": { + "dependencies": { "reduce-flatten": "^1.0.1", "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha512-Mbe56Dvj00onbnSo9J0qj/XlY5bfN9KidsOnpd5tRCsR3ekB3hyyNU9fGrTdqNT5ZNvv4BsA2TcQlignsZyVcw==", + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, - "xss": { + "node_modules/xss": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "requires": { + "dependencies": { "commander": "^2.20.3", "cssfilter": "0.0.10" }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } }, - "yauzl": { + "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, - "requires": { + "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index ea7dc5d..b89c26d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daikon", - "version": "1.2.43", + "version": "1.2.44", "description": "A JavaScript DICOM reader.", "main": "src/main.js", "directories": { @@ -13,16 +13,15 @@ "xss": "^1.0.14" }, "devDependencies": { - "browserify": "^16.5.2", - "full-icu": "^1.3.0", - "icu4c-data": "^0.60.2", - "jsdoc-to-markdown": "^4.0.1", - "mocha": "^5.2.0", - "uglifyjs": "^2.4.11" + "esbuild": "*", + "full-icu": "*", + "icu4c-data": "*", + "jsdoc-to-markdown": "*", + "mocha": "*" }, "scripts": { "test": "NODE_ICU_DATA=./node_modules/icu4c-data/ && mocha --timeout 0 tests", - "build": "rm -rf build; mkdir build; browserify --standalone daikon src/main.js -o build/daikon.js; uglifyjs build/daikon.js -o build/daikon-min.js", + "build": "rm -rf build; mkdir build; esbuild src/main.js --bundle --platform=node --outfile=build/daikon.js; esbuild src/main.js --bundle --platform=node --minify --outfile=build/daikon-min.js", "release": "rm release/current/*.js; cp build/*.js release/current/.", "doc": "rm -rf build; mkdir build; ./node_modules/.bin/jsdoc2md src/*.js > build/docs.md" }, diff --git a/release/current/daikon-min.js b/release/current/daikon-min.js index 0a47aea..3978639 100644 --- a/release/current/daikon-min.js +++ b/release/current/daikon-min.js @@ -1 +1,74 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.daikon=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?function(x){dump(x)}:function(x){}}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=function(title){document.title=title}}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=function(){}}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:function(value){tempRet0=value},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(stackTop){STACKTOP=stackTop},getNativeTypeSize:function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}},getNativeFieldSize:function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr},getAlignSize:function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)},dynCall:function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}},functionPointers:[],addFunction:function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret},alignMemory:function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret},makeBigInt:function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret},stringToC:function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret}};var toC={string:JSfuncs["stringToC"],array:JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY=LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=function(buffer){return buffer.byteLength}}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32};Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+59744;__ATINIT__.push({func:function(){__GLOBAL__I_000101()}},{func:function(){__GLOBAL__sub_I_jpegls_cpp()}},{func:function(){__GLOBAL__sub_I_iostream_cpp()}});allocate([0,0,0,0,0,0,0,0,84,144,0,0,31,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,237,191,0,0,48,0,0,0,0,0,0,0,44,144,0,0,41,192,0,0,84,144,0,0,55,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,115,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,192,0,0,152,3,0,0,0,0,0,0,84,144,0,0,241,192,0,0,216,3,0,0,0,0,0,0,84,144,0,0,55,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,95,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,135,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,216,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,241,193,0,0,48,0,0,0,0,0,0,0,44,144,0,0,13,194,0,0,84,144,0,0,80,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,44,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,139,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,179,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,219,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,3,195,0,0,48,0,0,0,0,0,0,0,84,144,0,0,103,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,157,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,211,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,8,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,71,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,138,196,0,0,160,1,0,0,0,0,0,0,44,144,0,0,120,196,0,0,84,144,0,0,187,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,246,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,49,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,103,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,157,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,210,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,17,198,0,0,160,1,0,0,0,0,0,0,84,144,0,0,86,198,0,0,72,3,0,0,0,0,0,0,84,144,0,0,162,198,0,0,56,2,0,0,0,0,0,0,44,144,0,0,182,198,0,0,84,144,0,0,196,198,0,0,56,2,0,0,0,0,0,0,84,144,0,0,112,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,125,199,0,0,84,144,0,0,138,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,156,199,0,0,84,144,0,0,169,199,0,0,96,2,0,0,0,0,0,0,84,144,0,0,181,199,0,0,120,2,0,0,0,0,0,0,84,144,0,0,214,199,0,0,144,2,0,0,0,0,0,0,84,144,0,0,28,200,0,0,144,2,0,0,0,0,0,0,84,144,0,0,248,199,0,0,176,2,0,0,0,0,0,0,84,144,0,0,62,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,99,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,182,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,245,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,13,222,0,0,152,3,0,0,0,0,0,0,84,144,0,0,38,222,0,0,152,3,0,0,0,0,0,0,44,144,0,0,62,222,0,0,84,144,0,0,87,222,0,0,104,2,0,0,0,0,0,0,44,144,0,0,110,222,0,0,84,144,0,0,135,222,0,0,72,3,0,0,0,0,0,0,84,144,0,0,161,222,0,0,56,3,0,0,0,0,0,0,44,144,0,0,187,222,0,0,84,144,0,0,205,222,0,0,112,3,0,0,0,0,0,0,84,144,0,0,247,222,0,0,112,3,0,0,0,0,0,0,44,144,0,0,33,223,0,0,44,144,0,0,82,223,0,0,124,144,0,0,131,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,178,223,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,124,144,0,0,225,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,16,224,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,84,144,0,0,63,224,0,0,80,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,144,0,0,187,224,0,0,48,3,0,0,0,0,0,0,124,144,0,0,209,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,124,144,0,0,227,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,5,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,40,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,75,225,0,0,144,4,0,0,0,0,0,0,84,144,0,0,109,225,0,0,144,4,0,0,0,0,0,0,124,144,0,0,144,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,178,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,200,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,220,225,0,0,32,4,0,0,0,0,0,0,124,144,0,0,240,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,84,144,0,0,2,226,0,0,32,4,0,0,0,0,0,0,84,144,0,0,23,226,0,0,32,4,0,0,0,0,0,0,124,144,0,0,44,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,80,10,0,0,0,0,0,0,124,144,0,0,112,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,104,10,0,0,0,0,0,0,124,144,0,0,180,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,128,10,0,0,0,0,0,0,124,144,0,0,248,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,152,10,0,0,0,0,0,0,124,144,0,0,60,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,184,10,0,0,0,8,0,0,124,144,0,0,129,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,192,10,0,0,0,8,0,0,124,144,0,0,198,227,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,11,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,80,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,108,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,136,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,164,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,192,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,216,10,0,0,0,0,0,0,124,144,0,0,6,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,224,10,0,0,0,0,0,0,124,144,0,0,76,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,232,10,0,0,0,0,0,0,124,144,0,0,146,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,240,10,0,0,0,0,0,0,124,144,0,0,216,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,124,144,0,0,237,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,144,0,0,73,233,0,0,44,144,0,0,50,233,0,0,124,144,0,0,28,233,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,237,232,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,215,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,124,144,0,0,168,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,44,144,0,0,149,232,0,0,44,144,0,0,115,232,0,0,44,144,0,0,81,232,0,0,44,144,0,0,60,232,0,0,44,144,0,0,39,232,0,0,44,144,0,0,14,232,0,0,44,144,0,0,245,231,0,0,44,144,0,0,220,231,0,0,44,144,0,0,195,231,0,0,44,144,0,0,171,231,0,0,44,144,0,0,190,232,0,0,44,144,0,0,3,233],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([156,143,0,0,0,0,0,0,8,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,248,1,0,0,3,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,1,0,0,5,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,7,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,200,1,0,0,9,0,0,0,10,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,184,1,0,0,11,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,168,1,0,0,13,0,0,0,14,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,144,1,0,0,15,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,128,1,0,0,17,0,0,0,18,0,0,0,9,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,112,1,0,0,19,0,0,0,20,0,0,0,10,0,0,0,2,0,0,0,10,0,0,0,0,0,0,0,96,1,0,0,21,0,0,0,22,0,0,0,11,0,0,0,3,0,0,0,11,0,0,0,0,0,0,0,80,1,0,0,23,0,0,0,24,0,0,0,12,0,0,0,4,0,0,0,12,0,0,0,0,0,0,0,64,1,0,0,25,0,0,0,26,0,0,0,13,0,0,0,5,0,0,0,13,0,0,0,0,0,0,0,240,0,0,0,27,0,0,0,28,0,0,0,14,0,0,0,6,0,0,0,14,0,0,0,0,0,0,0,224,0,0,0,29,0,0,0,30,0,0,0,15,0,0,0,7,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,31,0,0,0,32,0,0,0,16,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,200,0,0,0,33,0,0,0,34,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,184,0,0,0,33,0,0,0,35,0,0,0,3,0,0,0,4,0,0,0,56,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,200,255,255,255,200,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,56,0,0,0,0,0,0,0,104,0,0,0,40,0,0,0,41,0,0,0,200,255,255,255,200,255,255,255,104,0,0,0,42,0,0,0,43,0,0,0,0,0,0,0,88,0,0,0,44,0,0,0,45,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,17,0,0,0,3,0,0,0,18,0,0,0,104,141,0,0,64,141,0,0,84,141,0,0,124,141,0,0,0,0,0,0,32,0,0,0,46,0,0,0,47,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,56,0,0,0,48,0,0,0,49,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,72,0,0,0,50,0,0,0,51,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,120,0,0,0,52,0,0,0,53,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,136,0,0,0,54,0,0,0,55,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,152,0,0,0,56,0,0,0,57,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,168,0,0,0,58,0,0,0,59,0,0,0,18,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,216,0,0,0,60,0,0,0,61,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,62,0,0,0,63,0,0,0,20,0,0,0,21,0,0,0,0,0,0,0,16,1,0,0,64,0,0,0,65,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,32,1,0,0,66,0,0,0,67,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,48,1,0,0,68,0,0,0,69,0,0,0,26,0,0,0,27,0,0,0,0,0,0,0,160,1,0,0,70,0,0,0,71,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,24,2,0,0,72,0,0,0,73,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,0,0,0,0,40,2,0,0,74,0,0,0,75,0,0,0,18,0,0,0,0,0,0,0,64,2,0,0,76,0,0,0,77,0,0,0,19,0,0,0,2,0,0,0,0,0,0,0,80,2,0,0,78,0,0,0,79,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,80,0,0,0,81,0,0,0,7,0,0,0,0,0,0,0,128,2,0,0,82,0,0,0,83,0,0,0,8,0,0,0,0,0,0,0,160,2,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,2,0,0,0,9,0,0,0,28,0,0,0,0,0,0,0,208,2,0,0,84,0,0,0,88,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,3,0,0,0,10,0,0,0,29,0,0,0,0,0,0,0,224,2,0,0,84,0,0,0,89,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,4,0,0,0,11,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,1,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,88,146,0,0,200,146,0,0,56,147,0,0,56,147,0,0,120,187,0,0,168,155,0,0,168,149,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,159,219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,9,0,0,0,151,215,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,0,0,0,143,211,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+35640);allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+39844);allocate([240,2,0,0,90,0,0,0,91,0,0,0,20,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,14,0,0,0,20,0,0,0,0,0,0,0,0,3,0,0,90,0,0,0,92,0,0,0,21,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,22,0,0,0,0,0,0,0,16,3,0,0,93,0,0,0,94,0,0,0,22,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,17,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,32,3,0,0,93,0,0,0,95,0,0,0,23,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,19,0,0,0,20,0,0,0,25,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,56,3,0,0,96,0,0,0,97,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,3,0,0,93,0,0,0,98,0,0,0,17,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,160,3,0,0,90,0,0,0,99,0,0,0,24,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,15,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,168,3,0,0,100,0,0,0,101,0,0,0,248,255,255,255,248,255,255,255,168,3,0,0,102,0,0,0,103,0,0,0,8,0,0,0,0,0,0,0,192,3,0,0,104,0,0,0,105,0,0,0,248,255,255,255,248,255,255,255,192,3,0,0,106,0,0,0,107,0,0,0,4,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,252,255,255,255,252,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,240,3,0,0,108,0,0,0,109,0,0,0,252,255,255,255,252,255,255,255,240,3,0,0,110,0,0,0,111,0,0,0,0,0,0,0,96,3,0,0,112,0,0,0,113,0,0,0,7,0,0,0,0,0,0,0,112,3,0,0,114,0,0,0,115,0,0,0,0,0,0,0,8,4,0,0,72,0,0,0,116,0,0,0,21,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,117,0,0,0,118,0,0,0,119,0,0,0,1,0,0,0,33,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,0,0,120,0,0,0,121,0,0,0,119,0,0,0,2,0,0,0,34,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,5,0,0,122,0,0,0,123,0,0,0,119,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,5,0,0,124,0,0,0,125,0,0,0,119,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,5,0,0,126,0,0,0,127,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,5,0,0,128,0,0,0,129,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,130,0,0,0,131,0,0,0,119,0,0,0,22,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,224,5,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,6,0,0,132,0,0,0,133,0,0,0,119,0,0,0,30,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,8,6,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,134,0,0,0,135,0,0,0,119,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,136,0,0,0,137,0,0,0,119,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,138,0,0,0,139,0,0,0,119,0,0,0,38,0,0,0,39,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,40,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,140,0,0,0,141,0,0,0,119,0,0,0,41,0,0,0,42,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,43,0,0,0,35,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,142,0,0,0,143,0,0,0,119,0,0,0,44,0,0,0,45,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,46,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,144,0,0,0,145,0,0,0,119,0,0,0,47,0,0,0,48,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,49,0,0,0,47,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,146,0,0,0,147,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,0,0,148,0,0,0,149,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,7,0,0,150,0,0,0,151,0,0,0,119,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,7,0,0,152,0,0,0,153,0,0,0,119,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,7,0,0,154,0,0,0,155,0,0,0,119,0,0,0,19,0,0,0,7,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,7,0,0,156,0,0,0,157,0,0,0,119,0,0,0,20,0,0,0,8,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,4,0,0,158,0,0,0,159,0,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,5,0,0,160,0,0,0,161,0,0,0,119,0,0,0,27,0,0,0,21,0,0,0,28,0,0,0,22,0,0,0,29,0,0,0,9,0,0,0,23,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,4,0,0,162,0,0,0,163,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,50,0,0,0,51,0,0,0,13,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,5,0,0,164,0,0,0,165,0,0,0,119,0,0,0,53,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,0,0,0,0,80,5,0,0,166,0,0,0,167,0,0,0,119,0,0,0,55,0,0,0,56,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,0,0,0,0,32,4,0,0,168,0,0,0,169,0,0,0,119,0,0,0,0,0,0,0,48,4,0,0,168,0,0,0,170,0,0,0,119,0,0,0,24,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,30,0,0,0,25,0,0,0,31,0,0,0,26,0,0,0,32,0,0,0,13,0,0,0,27,0,0,0,14,0,0,0,0,0,0,0,80,4,0,0,168,0,0,0,171,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,57,0,0,0,58,0,0,0,16,0,0,0,59,0,0,0,0,0,0,0,112,4,0,0,168,0,0,0,172,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,60,0,0,0,61,0,0,0,18,0,0,0,62,0,0,0,0,0,0,0,144,4,0,0,168,0,0,0,173,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,176,4,0,0,168,0,0,0,174,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,192,4,0,0,168,0,0,0,175,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,119,83,116,114,101,97,109,32,111,114,32,114,97,119,68,97,116,97,32,110,101,101,100,115,32,116,111,32,114,101,102,101,114,101,110,99,101,32,116,111,32,115,111,109,101,116,104,105,110,103,0,119,105,100,116,104,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,104,101,105,103,104,116,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,98,105,116,115,112,101,114,115,97,109,112,108,101,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,50,44,32,49,54,93,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,110,101,101,100,115,32,116,111,32,98,101,32,115,101,116,32,116,111,32,97,32,118,97,108,117,101,32,111,102,32,123,78,111,110,101,44,32,83,97,109,112,108,101,44,32,76,105,110,101,125,0,99,111,109,112,111,110,101,110,116,115,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,50,53,53,93,0,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,119,105,116,104,32,116,104,101,32,111,116,104,101,114,32,112,97,114,97,109,101,116,101,114,115,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,110,111,116,32,98,101,32,115,101,116,32,116,111,32,83,97,109,112,108,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,52,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,32,111,110,108,121,32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,49,0,67,111,108,111,114,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,0,78,111,32,109,111,114,101,32,98,121,116,101,115,32,97,118,97,105,108,97,98,108,101,32,105,110,32,105,110,112,117,116,32,98,117,102,102,101,114,44,32,115,116,105,108,108,32,110,101,101,100,101,100,105,110,103,32,0,65,110,32,111,100,100,32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,40,0,41,32,99,97,110,110,111,116,32,98,101,32,115,119,97,112,112,101,100,46,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,69,0,49,49,80,114,111,99,101,115,115,76,105,110,101,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,105,110,103,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,57,98,97,115,105,99,95,111,115,116,114,105,110,103,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,116,69,69,0,50,50,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,83,116,114,101,97,109,0,50,53,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,67,111,109,112,111,110,101,110,116,0,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,104,69,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,67,104,97,114,76,83,32,101,114,114,111,114,0,99,104,97,114,108,115,0,49,53,99,104,97,114,108,115,95,99,97,116,101,103,111,114,121,0,112,97,114,97,109,115,46,88,116,104,117,109,98,110,97,105,108,32,105,115,32,62,32,48,32,98,117,116,32,112,97,114,97,109,115,46,116,104,117,109,98,110,97,105,108,32,61,61,32,110,117,108,108,95,112,116,114,0,49,55,74,112,101,103,77,97,114,107,101,114,83,101,103,109,101,110,116,0,49,49,74,112,101,103,83,101,103,109,101,110,116,0,50,48,74,112,101,103,73,109,97,103,101,68,97,116,97,83,101,103,109,101,110,116,0,69,120,112,101,99,116,101,100,32,74,80,69,71,32,77,97,114,107,101,114,32,115,116,97,114,116,32,98,121,116,101,32,48,120,70,70,32,98,117,116,32,116,104,101,32,98,121,116,101,32,118,97,108,117,101,32,119,97,115,32,48,120,0,74,80,69,71,32,101,110,99,111,100,105,110,103,32,119,105,116,104,32,109,97,114,107,101,114,32,0,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,0,85,110,107,110,111,119,110,32,74,80,69,71,32,109,97,114,107,101,114,32,0,32,101,110,99,111,117,110,116,101,114,101,100,46,0,109,114,102,120,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,83,116,57,116,121,112,101,95,105,110,102,111,0,83,116,56,98,97,100,95,99,97,115,116,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42396);allocate([32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+52636);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,58,32,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,105,111,115,116,114,101,97,109,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+56215);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted},addRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++},decRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}},clearRef:function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0}};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}Module["_memset"]=_memset;var _BDtoILow=true;var _emscripten_resume=true;function ___gxx_personality_v0(){}var _emscripten_landingpad=true;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){return leadingNulls(date.tm_hour<13?date.tm_hour:date.tm_hour-12,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>0&&date.tm_hour<13){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){if(___cxa_end_catch.rethrown){___cxa_end_catch.rethrown=false;return}asm["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var _fabs=Math_abs;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var PATH=undefined;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}});if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||function(){};canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:function(func){return function(){if(!ABORT)return func.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach(function(func){func()})}},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}})},safeSetTimeout:function(func,timeout){Module["noExitRuntime"]=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}},timeout)},safeSetInterval:function(func,timeout){Module["noExitRuntime"]=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}},timeout)},getMimetype:function(name){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},xhrLoad:function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)},asyncLoad:function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(!noRunDep)addRunDependency("al "+url)},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];return ret},getStr:function(){var ret=Pointer_stringify(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push(function(){Runtime.dynCall("vi",routine,[arg])});_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_broadcast(){return 0}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){HEAP8[variable>>0]=1;return 1}return 0}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_release(){}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _llvm_eh_typeid_for(type){return type}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_mutex_lock(){}var _emscripten_postinvoke=true;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")}}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function ___cxa_guard_abort(){}Module["_memmove"]=_memmove;var _emscripten_preinvoke=true;var _BItoD=true;function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){___cxa_end_catch.rethrown=true;var ptr=EXCEPTIONS.caught.pop();EXCEPTIONS.last=ptr;throw ptr}function _pthread_mutex_unlock(){}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer)___syscall146.buffer=[];var buffer=___syscall146.buffer;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true}function dc(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function ec(){return r|0}function fc(a){a=a|0;r=a}function gc(a,b){a=a|0;b=b|0;r=a;s=b}function hc(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function ic(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function jc(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function kc(a){a=a|0;M=a}function lc(){return M|0}function mc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;v=r;r=r+128|0;n=v+44|0;q=v+8|0;j=v+4|0;m=v;o=c+4|0;p=c+8|0;x=0;Ja(35,k[c>>2]|0,k[o>>2]|0,k[p>>2]|0,d|0);l=x;x=0;if(!(l&1)){g=n;f=g+84|0;do{k[g>>2]=k[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));d=n+12|0;if((k[d>>2]|0)==0?(h=ia(((k[n+8>>2]|0)+7|0)/8|0,k[n>>2]|0)|0,k[d>>2]=h,(k[n+24>>2]|0)!=0):0){l=ia(k[n+16>>2]|0,h)|0;k[d>>2]=l}x=0;qa(176,q|0);l=x;x=0;if(!(l&1)){d=n+56|0;do{if(k[d>>2]|0){x=0;d=ta(66,d|0)|0;l=x;x=0;if(!(l&1)){k[j>>2]=d;f=q+28|0;g=k[f>>2]|0;if(g>>>0<(k[q+32>>2]|0)>>>0){k[g>>2]=d;k[f>>2]=g+4;k[j>>2]=0;s=19;break}x=0;ra(57,q+24|0,j|0);l=x;x=0;if(l&1){f=Wa(824,0)|0;d=M;g=k[j>>2]|0;k[j>>2]=0;if(!g)break;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break}else{d=k[j>>2]|0;k[j>>2]=0;if(!d){s=19;break}Lb[k[(k[d>>2]|0)+4>>2]&255](d);s=19;break}}else s=15}else s=19}while(0);a:do{if((s|0)==19){g=n+4|0;h=n+8|0;j=n+16|0;x=0;d=Ea(14,k[n>>2]|0,k[g>>2]|0,k[h>>2]|0,k[j>>2]|0)|0;l=x;x=0;if(!(l&1)){k[m>>2]=d;l=q+28|0;f=k[l>>2]|0;do{if(f>>>0>=(k[q+32>>2]|0)>>>0){x=0;ra(57,q+24|0,m|0);f=x;x=0;if(f&1){f=Wa(824,0)|0;d=M;g=k[m>>2]|0;k[m>>2]=0;if(!g)break a;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break a}else{d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}}else{k[f>>2]=d;k[l>>2]=f+4;k[m>>2]=0}}while(0);d=k[n+28>>2]|0;if((d|0)!=0?(x=0,ra(58,q|0,d|0),s=x,x=0,s&1):0){s=15;break}b:do{if(!(k[n+24>>2]|0)){d=ia(k[g>>2]|0,k[n>>2]|0)|0;d=ia(d,((k[h>>2]|0)+7|0)/8|0)|0;if((k[j>>2]|0)>0){g=0;while(1){x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1)break;f=k[o>>2]|0;if(f){k[o>>2]=f+d;k[p>>2]=(k[p>>2]|0)-d}g=g+1|0;if((g|0)>=(k[j>>2]|0))break b}f=Wa(824,0)|0;d=M;s=16;break a}}else{x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1){s=15;break a}}}while(0);x=0;Aa(33,q|0,a|0)|0;s=x;x=0;if(!(s&1)){k[b>>2]=k[q+16>>2];if(e)i[e>>0]=0;g=q+24|0;d=k[g>>2]|0;if(d){f=k[l>>2]|0;if((f|0)!=(d|0)){do{e=f+-4|0;k[l>>2]=e;f=k[e>>2]|0;k[e>>2]=0;if(f)Lb[k[(k[f>>2]|0)+4>>2]&255](f);f=k[l>>2]|0}while((f|0)!=(d|0));d=k[g>>2]|0}mj(d)}e=0;r=v;return e|0}else s=15}else s=15}}while(0);if((s|0)==15){f=Wa(824,0)|0;d=M;s=16}l=q+24|0;g=k[l>>2]|0;if(g){j=q+28|0;h=k[j>>2]|0;if((h|0)!=(g|0)){do{q=h+-4|0;k[j>>2]=q;h=k[q>>2]|0;k[q>>2]=0;if(h)Lb[k[(k[h>>2]|0)+4>>2]&255](h);h=k[j>>2]|0}while((h|0)!=(g|0));g=k[l>>2]|0}mj(g)}}else s=5}else s=5;if((s|0)==5){f=Wa(824,0)|0;d=M}q=(d|0)==(ab(824)|0);h=cb(f|0)|0;d=(e|0)==0;if(!q){if(!d)i[e>>0]=0;eb();e=14;r=v;return e|0}g=h+12|0;do{if(!d){d=k[g>>2]|0;x=0;f=Da(1)|0;q=x;x=0;if(!(q&1))if((d|0)==(f|0)){wl(e,Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0)|0;s=60;break}else{i[e>>0]=0;s=60;break}}else s=60}while(0);if((s|0)==60?(t=k[g>>2]|0,x=0,u=Da(1)|0,e=x,x=0,!(e&1)):0){e=(t|0)==(u|0)?k[h+8>>2]|0:13;eb();r=v;return e|0}d=Wa()|0;x=0;Ga(3);v=x;x=0;if(v&1){v=Wa(0)|0;oc(v)}else fb(d|0);return 0}function nc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;j=r;r=r+112|0;f=j+96|0;i=j+84|0;l=j+72|0;m=j+60|0;n=j+48|0;o=j+36|0;p=j+24|0;q=j+12|0;s=j;h=(b|0)==0;if((a|0)==0&h){e=Va(16)|0;x=0;Fa(5,f|0,48504,52);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,f|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(f);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}g=k[d>>2]|0;if((g+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,i|0,48557,41);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,i|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(i);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}f=k[d+4>>2]|0;if((f+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,l|0,48599,42);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,l|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(l);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}e=k[d+8>>2]|0;if((e+-2|0)>>>0>14){e=Va(16)|0;x=0;Fa(5,m|0,48642,46);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,m|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(m);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}a=k[d+24>>2]|0;if(a>>>0>=3){e=Va(16)|0;x=0;Fa(5,n|0,48689,65);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,n|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(n);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}b=k[d+16>>2]|0;if((b+-1|0)>>>0>254){e=Va(16)|0;x=0;Fa(5,o|0,48755,44);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,o|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(o);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}if(!h?(o=ia(f,g)|0,(ia(ia(o,(e|0)>8?2:1)|0,b)|0)>>>0>c>>>0):0){e=Va(16)|0;x=0;Fa(5,p|0,48800,58);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,p|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(p);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}switch(b|0){case 4:{if((a|0)!=2){r=j;return}e=Va(16)|0;x=0;Fa(5,q|0,48859,73);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,q|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(q);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}case 3:{r=j;return}default:{if(!a){r=j;return}e=Va(16)|0;x=0;Fa(5,s|0,48933,73);q=x;x=0;if(!(q&1)){x=0;b=Da(1)|0;q=x;x=0;if(!(q&1)?(x=0,Ja(36,e|0,1,b|0,s|0),q=x,x=0,!(q&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(s);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}}}function oc(a){a=a|0;cb(a|0)|0;tj()}function pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;f=m+116|0;g=m;x=0;k[f>>2]=k[b>>2];k[f+4>>2]=k[b+4>>2];k[f+8>>2]=k[b+8>>2];ra(59,g|0,f|0);e=x;x=0;if(!(e&1)){if(c){e=g+16|0;b=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(b|0))}x=0;k[f>>2]=k[a>>2];k[f+4>>2]=k[a+4>>2];k[f+8>>2]=k[a+8>>2];ra(60,g|0,f|0);g=x;x=0;if(!(g&1)){if(d)i[d>>0]=0;l=0;r=m;return l|0}}a=Wa(824,0)|0;g=M;g=(g|0)==(ab(824)|0);a=cb(a|0)|0;b=(d|0)==0;if(!g){if(!b)i[d>>0]=0;eb();l=14;r=m;return l|0}e=a+12|0;do{if(!b){b=k[e>>2]|0;x=0;c=Da(1)|0;g=x;x=0;if(!(g&1))if((b|0)==(c|0)){wl(d,Ob[k[(k[a>>2]|0)+8>>2]&127](a)|0)|0;l=10;break}else{i[d>>0]=0;l=10;break}}else l=10}while(0);if((l|0)==10?(h=k[e>>2]|0,x=0,j=Da(1)|0,l=x,x=0,!(l&1)):0){l=(h|0)==(j|0)?k[a+8>>2]|0:13;eb();r=m;return l|0}b=Wa()|0;x=0;Ga(3);m=x;x=0;if(m&1){m=Wa(0)|0;oc(m)}else fb(b|0);return 0}function qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+128|0;e=j+116|0;d=j;x=0;k[e>>2]=k[a>>2];k[e+4>>2]=k[a+4>>2];k[e+8>>2]=k[a+8>>2];ra(59,d|0,e|0);e=x;x=0;if((!(e&1)?(x=0,qa(177,d|0),e=x,x=0,!(e&1)):0)?(x=0,ra(61,d|0,1),e=x,x=0,!(e&1)):0){a=d+16|0;d=b+84|0;do{k[b>>2]=k[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(d|0));if(c)i[c>>0]=0;c=0;r=j;return c|0}e=Wa(824,0)|0;b=M;b=(b|0)==(ab(824)|0);e=cb(e|0)|0;a=(c|0)==0;if(!b){if(!a)i[c>>0]=0;eb();c=14;r=j;return c|0}b=e+12|0;do{if(!a){a=k[b>>2]|0;x=0;d=Da(1)|0;l=x;x=0;if(!(l&1))if((a|0)==(d|0)){wl(c,Ob[k[(k[e>>2]|0)+8>>2]&127](e)|0)|0;h=13;break}else{i[c>>0]=0;h=13;break}}else h=13}while(0);if((h|0)==13?(f=k[b>>2]|0,x=0,g=Da(1)|0,l=x,x=0,!(l&1)):0){l=(f|0)==(g|0)?k[e+8>>2]|0:13;eb();r=j;return l|0}a=Wa()|0;x=0;Ga(3);l=x;x=0;if(l&1){l=Wa(0)|0;oc(l)}else fb(a|0);return 0}function rc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,l=0,m=0;m=r;r=r+48|0;i=m+36|0;h=m+24|0;j=m+12|0;l=m;if(!((a|0)!=0&(c|0)!=0&(d|0)!=0&(f|0)!=0)){e=1;r=m;return e|0}k[j>>2]=0;k[j+4>>2]=a;k[j+8>>2]=b;k[l>>2]=0;k[l+4>>2]=d;k[l+8>>2]=e;k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];e=mc(h,c,i,f,g)|0;r=m;return e|0}function sc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=r;r=r+32|0;f=e+12|0;g=e;h=g;k[h>>2]=0;k[h+4>>2]=0;k[g+4>>2]=a;k[g+8>>2]=b;k[f>>2]=k[g>>2];k[f+4>>2]=k[g+4>>2];k[f+8>>2]=k[g+8>>2];c=qc(f,c,d)|0;r=e;return c|0}function tc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+48|0;h=g+36|0;i=g+24|0;l=g+12|0;j=g;k[l>>2]=0;k[l+4>>2]=a;k[l+8>>2]=b;k[j>>2]=0;k[j+4>>2]=c;k[j+8>>2]=d;k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];d=pc(i,h,e,f)|0;r=g;return d|0}function uc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=a+4|0;c=k[a>>2]|0;e=((k[j>>2]|0)-c>>2)+1|0;if(e>>>0>1073741823){jj(a);c=k[a>>2]|0}l=a+8|0;d=(k[l>>2]|0)-c|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d;c=(k[j>>2]|0)-c>>2;if(!d){f=0;g=0}else h=6}else{d=1073741823;c=(k[j>>2]|0)-c>>2;h=6}if((h|0)==6){f=d;g=lj(d<<2)|0}e=g+(c<<2)|0;d=e;i=g+(f<<2)|0;h=k[b>>2]|0;k[b>>2]=0;k[e>>2]=h;h=g+(c+1<<2)|0;g=k[a>>2]|0;c=k[j>>2]|0;if((c|0)==(g|0)){e=a;f=j}else{do{c=c+-4|0;b=k[c>>2]|0;k[c>>2]=0;k[e+-4>>2]=b;e=d+-4|0;d=e}while((c|0)!=(g|0));c=d;e=a;f=j;d=c;g=k[a>>2]|0;c=k[j>>2]|0}k[e>>2]=d;k[f>>2]=h;k[l>>2]=i;e=g;if((c|0)!=(e|0))do{c=c+-4|0;d=k[c>>2]|0;k[c>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d)}while((c|0)!=(e|0));if(!g)return;mj(g);return}function vc(){if(i[8]|0)return 35648;if(!(Qa(8)|0))return 35648;tb(72,35648,w|0)|0;Ya(8);return 35648}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+32|0;j=m;Oi(j,(1<>2]|0;l=f+1|0;c=l<<1;k[a>>2]=0;g=a+4|0;k[g>>2]=0;k[a+8>>2]=0;a:do{if(l){if(!((f|0)<-1?(x=0,qa(178,a|0),h=x,x=0,h&1):0))d=4;if((d|0)==4?(x=0,e=ta(67,c|0)|0,h=x,x=0,!(h&1)):0){k[g>>2]=e;k[a>>2]=e;k[a+8>>2]=e+c;b=e;while(1){i[b>>0]=0;b=(k[g>>2]|0)+1|0;k[g>>2]=b;c=c+-1|0;if(!c)break a}}c=Wa()|0;b=k[a>>2]|0;if(!b)fb(c|0);if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b);fb(c|0)}}while(0);b=~f;if((f|0)<(b|0)){r=m;return}g=j+12|0;h=j+8|0;f=j+4|0;e=b;do{b=k[g>>2]|0;if((e|0)>(0-b|0)){c=k[h>>2]|0;if((e|0)>(0-c|0)){d=k[f>>2]|0;if((e|0)>(0-d|0))if((e|0)>=0)if((e|0)>0)if((d|0)<=(e|0))if((c|0)>(e|0))b=2;else b=(b|0)>(e|0)?3:4;else b=1;else b=0;else b=-1;else b=-2}else b=-3}else b=-4;i[(k[a>>2]|0)+(e+l)>>0]=b;e=e+1|0}while((e|0)<(l|0));r=m;return}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(34,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4624)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;h=d+4|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));h=d+88|0;m=h+40|0;do{k[h>>2]=0;h=h+4|0}while((h|0)<(m|0));k[d>>2]=35660;k[d+128>>2]=e;k[d+132>>2]=n;k[d+136>>2]=o;k[d+140>>2]=a;k[d+144>>2]=g;k[d+148>>2]=f;k[d+152>>2]=p;a=d+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+172>>2]=k[b>>2];k[d+176>>2]=0;k[d+180>>2]=0;k[d+184>>2]=0;a=d+4568|0;e=d+188|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+12>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do{if(!n){if(c){if((a|0)!=8)break;d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35688;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35716;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 12:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35744;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 16:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35772;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}default:break a}}}while(0);m=(1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35800;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35660;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35828;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35856;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}return 0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(35,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4632)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;k[d+4>>2]=0;h=d+8|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;m=d+116|0;k[m>>2]=0;k[m+4>>2]=0;k[m+8>>2]=0;k[m+12>>2]=0;k[m+16>>2]=0;k[d>>2]=35884;k[d+136>>2]=e;k[d+140>>2]=n;k[d+144>>2]=o;k[d+148>>2]=a;k[d+152>>2]=g;k[d+156>>2]=f;k[d+160>>2]=p;a=d+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+180>>2]=k[b>>2];k[d+184>>2]=0;k[d+188>>2]=0;k[d+192>>2]=0;a=d+4576|0;e=d+196|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+8>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function Ac(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do{if(!n){if(c){if((a|0)!=8)break;d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35912;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35940;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 12:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35968;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 16:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35996;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}default:break a}}}while(0);m=(1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36024;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=35884;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36052;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36080;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}return 0}function Bc(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0;a=2832;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=4880);sw(2832,0,2048)|0;a=0;do{g=2832+(a+128<<3)|0;k[g>>2]=0;k[g+4>>2]=1;a=a+1|0}while((a|0)!=128);a=3088;k[a>>2]=1;k[a+4>>2]=3;a=3096;k[a>>2]=1;k[a+4>>2]=3;a=3104;k[a>>2]=1;k[a+4>>2]=3;a=3112;k[a>>2]=1;k[a+4>>2]=3;a=3120;k[a>>2]=1;k[a+4>>2]=3;a=3128;k[a>>2]=1;k[a+4>>2]=3;a=3136;k[a>>2]=1;k[a+4>>2]=3;a=3144;k[a>>2]=1;k[a+4>>2]=3;a=3152;k[a>>2]=1;k[a+4>>2]=3;a=3160;k[a>>2]=1;k[a+4>>2]=3;a=3168;k[a>>2]=1;k[a+4>>2]=3;a=3176;k[a>>2]=1;k[a+4>>2]=3;a=3184;k[a>>2]=1;k[a+4>>2]=3;a=3192;k[a>>2]=1;k[a+4>>2]=3;a=3200;k[a>>2]=1;k[a+4>>2]=3;a=3208;k[a>>2]=1;k[a+4>>2]=3;a=3216;k[a>>2]=1;k[a+4>>2]=3;a=3224;k[a>>2]=1;k[a+4>>2]=3;a=3232;k[a>>2]=1;k[a+4>>2]=3;a=3240;k[a>>2]=1;k[a+4>>2]=3;a=3248;k[a>>2]=1;k[a+4>>2]=3;a=3256;k[a>>2]=1;k[a+4>>2]=3;a=3264;k[a>>2]=1;k[a+4>>2]=3;a=3272;k[a>>2]=1;k[a+4>>2]=3;a=3280;k[a>>2]=1;k[a+4>>2]=3;a=3288;k[a>>2]=1;k[a+4>>2]=3;a=3296;k[a>>2]=1;k[a+4>>2]=3;a=3304;k[a>>2]=1;k[a+4>>2]=3;a=3312;k[a>>2]=1;k[a+4>>2]=3;a=3320;k[a>>2]=1;k[a+4>>2]=3;a=3328;k[a>>2]=1;k[a+4>>2]=3;a=3336;k[a>>2]=1;k[a+4>>2]=3;a=2896;k[a>>2]=2;k[a+4>>2]=5;a=2904;k[a>>2]=2;k[a+4>>2]=5;a=2912;k[a>>2]=2;k[a+4>>2]=5;a=2920;k[a>>2]=2;k[a+4>>2]=5;a=2928;k[a>>2]=2;k[a+4>>2]=5;a=2936;k[a>>2]=2;k[a+4>>2]=5;a=2944;k[a>>2]=2;k[a+4>>2]=5;a=2952;k[a>>2]=2;k[a+4>>2]=5;a=2848;k[a>>2]=3;k[a+4>>2]=7;a=2856;k[a>>2]=3;k[a+4>>2]=7;a=0;do{g=2832+(a+64<<3)|0;k[g>>2]=-1;k[g+4>>2]=2;a=a+1|0}while((a|0)!=64);a=2960;k[a>>2]=-2;k[a+4>>2]=4;a=2968;k[a>>2]=-2;k[a+4>>2]=4;a=2976;k[a>>2]=-2;k[a+4>>2]=4;a=2984;k[a>>2]=-2;k[a+4>>2]=4;a=2992;k[a>>2]=-2;k[a+4>>2]=4;a=3e3;k[a>>2]=-2;k[a+4>>2]=4;a=3008;k[a>>2]=-2;k[a+4>>2]=4;a=3016;k[a>>2]=-2;k[a+4>>2]=4;a=3024;k[a>>2]=-2;k[a+4>>2]=4;a=3032;k[a>>2]=-2;k[a+4>>2]=4;a=3040;k[a>>2]=-2;k[a+4>>2]=4;a=3048;k[a>>2]=-2;k[a+4>>2]=4;a=3056;k[a>>2]=-2;k[a+4>>2]=4;a=3064;k[a>>2]=-2;k[a+4>>2]=4;a=3072;k[a>>2]=-2;k[a+4>>2]=4;a=3080;k[a>>2]=-2;k[a+4>>2]=4;a=2864;k[a>>2]=-3;k[a+4>>2]=6;a=2872;k[a>>2]=-3;k[a+4>>2]=6;a=2880;k[a>>2]=-3;k[a+4>>2]=6;a=2888;k[a>>2]=-3;k[a+4>>2]=6;a=2840;k[a>>2]=-4;k[a+4>>2]=8;a=4880;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=6928);sw(4880,0,2048)|0;c=2;a=0;e=0;f=0;while(1){c=c<<16>>16;b=8-c|0;d=1<>2]=e;k[g+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==7){b=2;e=1;f=-1;g=-1;break}else{c=(a>>1)+2|0;e=b>>16}}while(1){c=b<<16>>16;a=8-c|0;d=1<>2]=f;k[e+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}a=(g<<16)+-65536|0;e=a>>31^a>>15;b=(e>>1)+2|0;if((b|0)>8){a=6928;break}else{f=a>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=8976);sw(6928,0,2048)|0;e=3;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==12){e=3;b=1;d=-1;f=-1;break}else{e=(a>>2)+3|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>2)+3|0;if((e|0)>8){a=8976;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=11024);sw(8976,0,2048)|0;e=4;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==20){e=4;b=1;d=-1;f=-1;break}else{e=(a>>3)+4|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>3)+4|0;if((e|0)>8){a=11024;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=13072);sw(11024,0,2048)|0;e=5;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==32){e=5;b=1;d=-1;f=-1;break}else{e=(a>>4)+5|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>4)+5|0;if((e|0)>8){a=13072;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=15120);sw(13072,0,2048)|0;e=6;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==48){e=6;b=1;d=-1;f=-1;break}else{e=(a>>5)+6|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>5)+6|0;if((e|0)>8){a=15120;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=17168);sw(15120,0,2048)|0;e=7;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){e=7;b=1;d=-1;f=-1;break}else{e=(a>>6)+7|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>6)+7|0;if((e|0)>8){a=17168;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=19216);sw(17168,0,2048)|0;e=8;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){f=8;d=1;e=-1;g=-1;break}else{e=(a>>7)+8|0;d=b>>16}}while(1){a=8-f|0;c=1<>2]=e;k[d+4>>2]=f;b=b+1|0}while((b|0)<(c|0))}b=(g<<16)+-65536|0;d=b>>31^b>>15;a=d>>7;if((a|0)>0){a=19216;break}else{f=a+8|0;e=b>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=21264);sw(19216,0,2048)|0;a=21264;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=23312);sw(21264,0,2048)|0;a=23312;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=25360);sw(23312,0,2048)|0;a=25360;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=27408);sw(25360,0,2048)|0;a=27408;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=29456);sw(27408,0,2048)|0;a=29456;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=31504);sw(29456,0,2048)|0;a=31504;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=33552);sw(31504,0,2048)|0;a=33552;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=35600);sw(33552,0,2048)|0;wc(35600,8);tb(179,35600,w|0)|0;wc(35612,10);tb(179,35612,w|0)|0;wc(35624,12);tb(179,35624,w|0)|0;wc(35636,16);tb(179,35636,w|0)|0;return}function Cc(a){a=a|0;var b=0;b=k[a>>2]|0;if(!b)return;a=a+4|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Dc(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ec(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;re(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Gc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35856;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Hc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ic(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36460;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Jc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36436;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Kc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36412;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Lc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36388;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do{if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+32|0;Tm(g,b)|0;f=a+44|0;k[f>>2]=0;h=a+48|0;e=k[h>>2]|0;if(e&8){b=i[g>>0]|0;if(!(b&1)){b=((b&255)>>>1)+(g+1)|0;k[f>>2]=b;c=g+1|0;d=g+1|0}else{b=(k[a+40>>2]|0)+(k[a+36>>2]|0)|0;k[f>>2]=b;d=k[a+40>>2]|0;c=d}k[a+8>>2]=c;k[a+12>>2]=d;k[a+16>>2]=b}if(!(e&16))return;b=i[g>>0]|0;if(!(b&1)){e=(b&255)>>>1;k[f>>2]=g+1+e;b=10;f=e}else{e=k[a+36>>2]|0;k[f>>2]=(k[a+40>>2]|0)+e;b=(k[g>>2]&-2)+-1|0;f=e}Wm(g,b,0);b=i[g>>0]|0;if(!(b&1)){e=g+1|0;d=(b&255)>>>1;c=g+1|0}else{c=k[a+40>>2]|0;e=c;d=k[a+36>>2]|0}b=a+24|0;k[b>>2]=c;k[a+20>>2]=c;k[a+28>>2]=e+d;if(!(k[h>>2]&3))return;k[b>>2]=c+f;return}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;g=o+16|0;n=o+8|0;h=o;x=0;ra(65,n|0,a|0);l=x;x=0;a:do{if(l&1){c=Wa(0)|0;d=a;e=a}else{do{if(i[n>>0]|0){d=k[(k[a>>2]|0)+-12>>2]|0;k[h>>2]=k[a+(d+24)>>2];j=a+d|0;l=k[a+(d+4)>>2]|0;e=b+c|0;d=a+(d+76)|0;c=k[d>>2]|0;do{if((c|0)==-1){x=0;c=ta(68,j|0)|0;p=x;x=0;if(p&1)m=13;else{k[g>>2]=c;x=0;c=Aa(37,g|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(g);c=f<<24>>24;k[d>>2]=c;m=9;break}c=Wa(0)|0;Qs(g)}}else m=9}while(0);if((m|0)==9){x=0;k[g>>2]=k[h>>2];c=sa(39,g|0,b|0,((l&176|0)==32?e:b)|0,e|0,j|0,c&255|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break;else m=13}else m=13}if((m|0)==13)c=Wa(0)|0;ro(n);d=a;e=a;break a}}while(0);ro(n);r=o;return a|0}}while(0);cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();r=o;return a|0}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0);return 0}function Oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=k[b+48>>2]|0;if(c&16){c=b+44|0;d=k[c>>2]|0;e=k[b+24>>2]|0;if(d>>>0>>0)k[c>>2]=e;else e=d;d=k[b+20>>2]|0;f=e-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{b=f+16&-16;c=lj(b)|0;k[a+8>>2]=c;k[a>>2]=b|1;k[a+4>>2]=f}if((d|0)!=(e|0)){b=c;while(1){i[b>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(e|0))break;else b=b+1|0}c=c+f|0}i[c>>0]=0;return}if(!(c&8)){k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}d=k[b+8>>2]|0;b=k[b+16>>2]|0;f=b-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{e=f+16&-16;c=lj(e)|0;k[a+8>>2]=c;k[a>>2]=e|1;k[a+4>>2]=f}if((d|0)!=(b|0)){e=c;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(b|0))break;else e=e+1|0}c=c+f|0}i[c>>0]=0;return}function Pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36364;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do{if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36340;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do{if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Rc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36316;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do{if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Sc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Tc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;Zc(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Zc(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;Wc(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xc(a,e,b,c,d);return}}function Wc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do{if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{o=k[f>>2]|0;l=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(l+49152+((a+e|0)>>>2)&65535)>>>o;j[c+(b*6|0)+2>>1]=a>>>o;j[c+(b*6|0)+4>>1]=e>>>o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(d+49152+((a+o|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=a>>>f;j[c+(b+h<<1)>>1]=o>>>f;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)+2>>1]<>1]<>1]<>1]=(p+49152+((d+a|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=d>>>f;j[c+(b+h<<1)>>1]=a>>>f;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function Xc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}function Yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;e=r;r=r+176|0;c=e+152|0;j=e+16|0;g=e;if(!(b&1)){c=(b|0)/4|0;if((b|0)>3){d=0;do{j=a+(d<<2)|0;h=k[j>>2]|0;k[j>>2]=h>>>8&16711935|h<<8&-16711936;d=d+1|0}while((d|0)<(c|0))}if(!(b&3)){r=e;return}g=a+(b+-2)|0;j=a+(b+-1)|0;h=i[g>>0]|0;i[g>>0]=i[j>>0]|0;i[j>>0]=h;r=e;return}h=j+56|0;f=j+4|0;k[j>>2]=36160;k[h>>2]=36180;x=0;ra(62,j+56|0,f|0);e=x;x=0;if(e&1){j=Wa()|0;qn(h);fb(j|0)}k[j+128>>2]=0;k[j+132>>2]=-1;k[j>>2]=36200;k[j+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do{if(e&1)c=Wa()|0;else{k[f>>2]=36236;e=j+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[j+52>>2]=16;k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;x=0;ra(63,f|0,c|0);a=x;x=0;if(a&1){j=Wa()|0;Sm(c);Sm(e);xn(f);c=j;break}Sm(c);x=0;c=va(28,j|0,49087,24)|0;a=x;x=0;if((!(a&1)?(x=0,d=Aa(36,c|0,b|0)|0,b=x,x=0,!(b&1)):0)?(x=0,va(28,d|0,49112,20)|0,b=x,x=0,!(b&1)):0){a=Va(16)|0;x=0;ra(64,g|0,f|0);b=x;x=0;if(!(b&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,a|0,1,35648,g|0);b=x;x=0;if(b&1)d=1;else{x=0;Fa(6,a|0,824,96);x=0;d=0}c=Wa()|0;Sm(g);if(!d){g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else c=Wa()|0;Ua(a|0);g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}while(0);j=c;qn(h);fb(j|0)}function Zc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=a+4|0;f=k[n>>2]|0;a:do{switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{e=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(g+32768+l&65535)>>>e;j[c+(a*6|0)+2>>1]=(l&65535)>>>e;j[c+(a*6|0)+4>>1]=(h+32768+l&65535)>>>e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{l=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(q+32768+o&65535)>>>l;j[c+(a*6|0)+2>>1]=(o&65535)>>>l;j[c+(a*6|0)+4>>1]=(p+32768+o&65535)>>>l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;p=m[b+(g+e<<1)>>1]<>1]<>1]<>2)+16384|0;r=j[b+(g+a<<1)>>1]|0;t=ww((o&65535)>>>q&65535|0,0,16)|0;p=(p+32768+o&65535)>>>q|M;r=ww(r&65535|0,0,48)|0;r=t|(s+32768+o&65535)>>>q&65535|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){t=f+4|0;s=j[f>>1]|0;j[f>>1]=j[t>>1]|0;j[t>>1]=s;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function _c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function $c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ed(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ed(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;cd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{dd(a,e,b,c,d);return}}function cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do{if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;l=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>e&65535;j[c+(b*6|0)>>1]=(l+32768-a&65535)>>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(d+32768-a&65535)>>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(p+32768-d&65535)>>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+h<<1)>>1]=a;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function dd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}function ed(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do{switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>>1)&65535)>>>l&65535;j[c+(a*6|0)>>1]=g>>>l;j[c+(a*6|0)+2>>1]=h>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o&65535;j[c+(a*6|0)>>1]=q>>>o;j[c+(a*6|0)+2>>1]=p>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{o=k[f>>2]|0;q=m[b+(g+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o;r=j[b+(g+a<<1)>>1]|0;q=ww(q>>>o&65535|0,0,16)|0;p=M|p;r=ww(r&65535|0,0,48)|0;r=s>>>o&65535|q|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function gd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ld(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ld(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;jd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{kd(a,e,b,c,d);return}}function jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0;l=a+4|0;f=k[l>>2]|0;do{if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;a=m[n+(b*6|0)+2>>1]<>1]<>>e&65535;j[c+(b*6|0)>>1]=((m[n+(b*6|0)>>1]<>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{a=m[n+(b*6|0)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b*6|0)>>1]<>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;h=(e|0)<(d|0)?e:d;if((h|0)<=0)return;l=e<<1;g=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;d=m[n+(b<<3)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b<<3)>>1]<>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+l<<1)>>1]=a;j[c+(b+g<<1)>>1]=o;b=b+1|0}while((b|0)!=(h|0));return}default:return}}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}function ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do{switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>>l&65535;j[c+(a*6|0)>>1]=((m[b+(a*6|0)>>1]<>>l;j[c+(a*6|0)+2>>1]=(h&65535)>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>>o&65535;j[c+(a*6|0)>>1]=((m[b+(a<<1)>>1]<>>o;j[c+(a*6|0)+2>>1]=(p&65535)>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;s=m[b+(g+e<<1)>>1]<>1]<>>q;o=(s+32768+(m[b+(g+h<<1)>>1]<>>q;r=j[b+(g+a<<1)>>1]|0;q=ww((s&65535)>>>q&65535|0,0,16)|0;o=o|M;r=ww(r&65535|0,0,48)|0;r=q|p&65535|r;o=o&65535|M;p=c+(g<<3)|0;q=p;j[q>>1]=r;j[q+2>>1]=r>>>16;p=p+4|0;j[p>>1]=o;j[p+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function md(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;l=n;m=k[a>>2]|0;if(!m){a=0;r=n;return a|0}o=b;h=d-o|0;j=e+12|0;g=k[j>>2]|0;h=(g|0)>(h|0)?g-h|0:0;g=c;e=g-o|0;if((e|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,b,e)|0)!=(e|0):0){k[a>>2]=0;o=0;r=n;return o|0}do{if((h|0)>0){Rm(l,h,f);x=0;e=va(k[(k[m>>2]|0)+48>>2]|0,m|0,((i[l>>0]&1)==0?l+1|0:k[l+8>>2]|0)|0,h|0)|0;o=x;x=0;if(o&1){o=Wa()|0;Sm(l);fb(o|0)}if((e|0)==(h|0)){Sm(l);break}k[a>>2]=0;Sm(l);o=0;r=n;return o|0}}while(0);d=d-g|0;if((d|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,c,d)|0)!=(d|0):0){k[a>>2]=0;o=0;r=n;return o|0}k[j>>2]=0;o=m;r=n;return o|0}function nd(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);return}function od(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);mj(a);return}function pd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0;g=b+44|0;h=k[g>>2]|0;l=b+24|0;m=k[l>>2]|0;if(h>>>0>>0){k[g>>2]=m;h=m}j=h;g=f&24;if(!g){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((e|0)==1&(g|0)==24){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}a:do{switch(e|0){case 0:{g=0;e=0;break}case 1:if(!(f&8)){e=m-(k[b+20>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}else{e=(k[b+12>>2]|0)-(k[b+8>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}case 2:{g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;e=h-g|0;g=e;e=((e|0)<0)<<31>>31;break}default:{b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}}while(0);e=tw(g|0,e|0,c|0,d|0)|0;c=M;if((c|0)>=0){g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;d=h-g|0;h=((d|0)<0)<<31>>31;if(!((h|0)<(c|0)|(h|0)==(c|0)&d>>>0>>0)){g=f&8;if(!((e|0)==0&(c|0)==0)){if((g|0)!=0?(k[b+12>>2]|0)==0:0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((f&16|0)!=0&(m|0)==0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}if(g){k[b+12>>2]=(k[b+8>>2]|0)+e;k[b+16>>2]=j}if(f&16)k[l>>2]=(k[b+20>>2]|0)+e;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=e;k[b+4>>2]=c;return}}b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function qd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=c+8|0;Sb[k[(k[b>>2]|0)+16>>2]&15](a,b,k[c>>2]|0,k[c+4>>2]|0,0,d);return}function rd(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+44|0;c=k[b>>2]|0;d=k[a+24>>2]|0;if(c>>>0>>0){k[b>>2]=d;c=d}if(!(k[a+48>>2]&8)){a=-1;return a|0}e=a+16|0;b=k[e>>2]|0;d=a+12|0;if(b>>>0>>0){d=k[d>>2]|0;k[e>>2]=c;b=c}else d=k[d>>2]|0;if(d>>>0>=b>>>0){a=-1;return a|0}a=l[d>>0]|0;return a|0}function sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;d=a+44|0;c=k[d>>2]|0;e=k[a+24>>2]|0;if(c>>>0>>0){k[d>>2]=e;c=e}h=a+8|0;d=k[h>>2]|0;j=a+12|0;f=k[j>>2]|0;g=d;if(d>>>0>=f>>>0){a=-1;return a|0}if((b|0)==-1){k[h>>2]=d;k[j>>2]=f+-1;k[a+16>>2]=c;a=0;return a|0}if(!(k[a+48>>2]&16)){e=b&255;d=f+-1|0;if(e<<24>>24!=(i[d>>0]|0)){a=-1;return a|0}}else{e=b&255;d=f+-1|0}k[h>>2]=g;k[j>>2]=d;k[a+16>>2]=c;i[d>>0]=e;a=b;return a|0}function td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;s=r;r=r+16|0;m=s;if((b|0)==-1){a=0;r=s;return a|0}n=a+12|0;o=a+8|0;p=(k[n>>2]|0)-(k[o>>2]|0)|0;q=a+24|0;c=k[q>>2]|0;l=a+28|0;d=k[l>>2]|0;do{if((c|0)==(d|0)){h=a+48|0;if(!(k[h>>2]&16)){a=-1;r=s;return a|0}j=a+20|0;g=k[j>>2]|0;e=c-g|0;f=a+44|0;g=(k[f>>2]|0)-g|0;d=a+32|0;x=0;ra(67,d|0,0);c=x;x=0;if(!(c&1)){if(!(i[d>>0]&1))c=10;else c=(k[d>>2]&-2)+-1|0;x=0;Fa(8,d|0,c|0,0);c=x;x=0;if(!(c&1)){c=i[d>>0]|0;if(!(c&1)){d=d+1|0;c=(c&255)>>>1}else{d=k[a+40>>2]|0;c=k[a+36>>2]|0}t=d+c|0;k[j>>2]=d;k[l>>2]=t;j=d+e|0;k[q>>2]=j;c=d+g|0;k[f>>2]=c;d=t;break}}t=Wa(0)|0;cb(t|0)|0;eb();t=-1;r=s;return t|0}else{t=a+44|0;h=a+48|0;f=t;j=c;c=k[t>>2]|0}}while(0);g=j+1|0;k[m>>2]=g;e=k[(g>>>0>>0?f:m)>>2]|0;k[f>>2]=e;if(k[h>>2]&8){c=a+32|0;if(!(i[c>>0]&1))c=c+1|0;else c=k[a+40>>2]|0;k[o>>2]=c;k[n>>2]=c+p;k[a+16>>2]=e}if((j|0)==(d|0)){t=Vb[k[(k[a>>2]|0)+52>>2]&63](a,b&255)|0;r=s;return t|0}else{k[q>>2]=g;i[j>>0]=b;t=b&255;r=s;return t|0}return 0}function ud(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);return}function vd(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);mj(a);return}function wd(a){a=a|0;var b=0,c=0,d=0,e=0;e=k[(k[a>>2]|0)+-12>>2]|0;b=a+e|0;k[b>>2]=36200;c=a+(e+56)|0;k[c>>2]=36220;d=a+(e+4)|0;k[d>>2]=36236;Sm(a+(e+36)|0);xn(d);qn(c);mj(b);return}function xd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function yd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function zd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Dd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Dd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Bd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Cd(a,e,b,c,d);return}}function Bd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{h=m[l+(f*6|0)+2>>1]|0;e=32768-h+(m[l+(f*6|0)+4>>1]|0)|0;n=(m[l+(f*6|0)>>1]|0)-h+32768|0;j[c+(f*6|0)>>1]=h+49152+(((e&65535)+(n&65535)|0)>>>2);j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{h=m[l+(b*6|0)+2>>1]|0;d=32768-h+(m[l+(b*6|0)+4>>1]|0)|0;n=(m[l+(b*6|0)>>1]|0)-h+32768|0;j[c+(b<<1)>>1]=h+49152+(((d&65535)+(n&65535)|0)>>>2);j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{n=j[l+(g<<3)+6>>1]|0;o=m[l+(g<<3)+2>>1]|0;h=32768-o+(m[l+(g<<3)+4>>1]|0)|0;d=(m[l+(g<<3)>>1]|0)-o+32768|0;j[c+(g<<1)>>1]=o+49152+(((h&65535)+(d&65535)|0)>>>2);j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}function Dd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=m[b+(a*6|0)+2>>1]|0;g=m[b+(a*6|0)+4>>1]|0;e=(m[b+(a*6|0)>>1]|0)-((g+h|0)>>>2)+16384|0;j[c+(a*6|0)>>1]=g+32768+e;j[c+(a*6|0)+2>>1]=e;j[c+(a*6|0)+4>>1]=h+32768+e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=m[b+(g+e<<1)>>1]|0;o=m[b+(g+f<<1)>>1]|0;h=(m[b+(g<<1)>>1]|0)-((o+n|0)>>>2)+16384|0;j[c+(g*6|0)>>1]=o+32768+h;j[c+(g*6|0)+2>>1]=h;j[c+(g*6|0)+4>>1]=n+32768+h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=m[b+(g+e<<1)>>1]|0;p=m[b+(g+a<<1)>>1]|0;o=(m[b+(g<<1)>>1]|0)-((p+n|0)>>>2)+16384|0;q=j[b+(g+f<<1)>>1]|0;r=ww(o&65535|0,0,16)|0;n=n+32768+o|M;q=ww(q&65535|0,0,48)|0;q=r|p+32768+o&65535|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){r=a+4|0;q=j[a>>1]|0;j[a>>1]=j[r>>1]|0;j[r>>1]=q;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ed(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Kd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Kd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Id(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Jd(a,e,b,c,d);return}}function Id(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=m[l+(f*6|0)>>1]|0;e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=(m[l+(f*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(f*6|0)>>1]=g+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;g=m[l+(b*6|0)>>1]|0;h=d&65535;n=(m[l+(b*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(b<<1)>>1]=g+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;p=m[l+(g<<3)>>1]|0;o=h&65535;d=(m[l+(g<<3)+4>>1]|0)+32768-((o+p|0)>>>1)&65535;j[c+(g<<1)>>1]=p+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}function Kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=h&65535;g=(m[b+(a*6|0)>>1]|0)+32768+e|0;e=(m[b+(a*6|0)+4>>1]|0)+32768+(((g&65535)+e|0)>>>1)&65535;j[c+(a*6|0)>>1]=g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=n&65535;o=(m[b+(g<<1)>>1]|0)+32768+h|0;h=(m[b+(g+f<<1)>>1]|0)+32768+(((o&65535)+h|0)>>>1)&65535;j[c+(g*6|0)>>1]=o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n&65535;n=(m[b+(g+a<<1)>>1]|0)+32768+((p+n|0)>>>1)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ld(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Md(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Rd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Rd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Pd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Qd(a,e,b,c,d);return}}function Pd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=32768-h+(m[l+(f*6|0)+4>>1]|0)&65535;j[c+(f*6|0)>>1]=(m[l+(f*6|0)>>1]|0)+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;h=d&65535;n=32768-h+(m[l+(b*6|0)+4>>1]|0)&65535;j[c+(b<<1)>>1]=(m[l+(b*6|0)>>1]|0)+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;o=h&65535;d=32768-o+(m[l+(g<<3)+4>>1]|0)&65535;j[c+(g<<1)>>1]=(m[l+(g<<3)>>1]|0)+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Qd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}function Rd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;g=h&65535;e=g+32768+(m[b+(a*6|0)+4>>1]|0)&65535;j[c+(a*6|0)>>1]=(m[b+(a*6|0)>>1]|0)+32768+g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;o=n&65535;h=o+32768+(m[b+(g+f<<1)>>1]|0)&65535;j[c+(g*6|0)>>1]=(m[b+(g<<1)>>1]|0)+32768+o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n|0;n=n+32768+(m[b+(g+a<<1)>>1]|0)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p&65535|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Sd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Td(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Yd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Yd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Wd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xd(a,e,b,c,d);return}}function Wd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0;h=a+4|0;f=k[h>>2]|0;do{if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;m=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=m;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;m=j[l+(f*6|0)+4>>1]|0;j[c+(f*6|0)>>1]=j[l+(f*6|0)>>1]|0;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=m;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;m=j[l+(b*6|0)+4>>1]|0;j[c+(b<<1)>>1]=j[l+(b*6|0)>>1]|0;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;d=j[l+(g<<3)+4>>1]|0;m=j[l+(g<<3)+6>>1]|0;j[c+(g<<1)>>1]=j[l+(g<<3)>>1]|0;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Xd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do{if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do{if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}while(0);q=f;qn(l);fb(q|0)}}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}function Yd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=j[b+(a*6|0)+4>>1]|0;j[c+(a*6|0)>>1]=j[b+(a*6|0)>>1]|0;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=j[b+(g+f<<1)>>1]|0;j[c+(g*6|0)>>1]=j[b+(g<<1)>>1]|0;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=j[b+(g<<1)>>1]|0;q=j[b+(g+f<<1)>>1]|0;o=m[b+(g+a<<1)>>1]|0;p=ww(m[b+(g+e<<1)>>1]|0,0,16)|0;o=M|o;q=ww(q&65535|0,0,48)|0;q=p|n&65535|q;o=o&65535|M;n=c+(g<<3)|0;p=n;j[p>>1]=q;j[p+2>>1]=q>>>16;n=n+4|0;j[n>>1]=o;j[n+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Zd(a){a=a|0;return}function _d(a){a=a|0;mj(a);return}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=ia(k[a+8>>2]|0,c)|0;a=k[a+4>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,b,c)|0)==(c|0))return;d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+16|0;l=m;j=a+8|0;e=k[j>>2]|0;d=ia(e,c)|0;do{if(d){g=a+4|0;f=d;while(1){e=k[g>>2]|0;e=Qb[k[(k[e>>2]|0)+32>>2]&63](e,b,f)|0;if(!e)break;d=f-e|0;if((f|0)==(e|0)){h=11;break}else f=d}if((h|0)==11){e=k[j>>2]|0;f=d;break}d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}else f=0}while(0);if((e|0)==2){Yc(b,c<<1);e=k[j>>2]|0}d=k[a+12>>2]|0;if((d|0)<=(ia(e,c)|0)){r=m;return}a=k[a+4>>2]|0;Sb[k[(k[a>>2]|0)+16>>2]&15](l,a,d-f|0,0,1,24);r=m;return}function be(a){a=a|0;mj(a);return}function ce(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(k[d>>2]|0,b|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(b|0,k[d>>2]|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;k[a+112>>2]=0;k[a+108>>2]=0;l=k[b>>2]|0;e=l;do{if(l){g=a+92|0;l=a+96|0;h=k[l>>2]|0;j=k[g>>2]|0;c=j;d=h-c|0;if(d>>>0>=4e4)if(d>>>0>4e4?(f=j+4e4|0,(h|0)!=(f|0)):0){k[l>>2]=f;f=c}else f=c;else{fe(g,4e4-d|0);f=k[g>>2]|0;e=k[b>>2]|0}c=a+116|0;k[c>>2]=f;h=a+124|0;k[h>>2]=f;j=a+104|0;k[j>>2]=e;d=e;if(e){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){b=(Ob[k[(k[e>>2]|0)+36>>2]&127](d)|0)==-1;d=k[h>>2]|0;if(b)break;e=k[c>>2]|0}else{d=f;e=f}g=d-e|0;if(g>>>0<=64){f=a+92|0;if((d|0)==(e|0))d=e;else{d=e;e=0;do{i[(k[f>>2]|0)+e>>0]=i[d+e>>0]|0;e=e+1|0;d=k[c>>2]|0}while(e>>>0>>0);e=k[h>>2]|0}f=k[f>>2]|0;b=f;m=b-d|0;k[c>>2]=f;d=e+m|0;k[h>>2]=d;f=a+120|0;k[f>>2]=(k[f>>2]|0)+m;j=k[j>>2]|0;d=Qb[k[(k[j>>2]|0)+32>>2]&63](j,d,(k[l>>2]|0)-(b+g)|0)|0;d=(k[h>>2]|0)+d|0;k[h>>2]=d}}else d=f}else{k[a+104>>2]=0;d=k[b+4>>2]|0;c=a+116|0;k[c>>2]=d;d=d+(k[b+8>>2]|0)|0;k[a+124>>2]=d}}while(0);c=k[c>>2]|0;if(c>>>0>=d>>>0){l=c;m=a+120|0;k[m>>2]=l;qe(a);return}while(1){if((i[c>>0]|0)==-1){d=20;break}c=c+1|0;if(c>>>0>=d>>>0){d=20;break}}if((d|0)==20){m=a+120|0;k[m>>2]=c;qe(a);return}}function fe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function ge(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do{if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+12|0;a:do{if((k[f>>2]|0)>0){g=a+4604|0;h=(ia(s,q)|0)+1|0;i=a+4608|0;l=a+92|0;m=(s|0)>0;n=a+4600|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(68,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40}while(0);do{if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4604|0;b=k[p>>2]|0;s=a+180|0;if((k[s>>2]|0)<=0)return;q=a+4608|0;r=a+4612|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(me(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=le(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function ie(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;e=a+104|0;if((k[e>>2]|0)>>>0<4)je(a);f=a+100|0;g=a+112|0;h=a+96|0;j=a+108|0;l=a+116|0;b=k[f>>2]|0;d=0;do{c=i[g>>0]|0;if((b|0)>31)break;b=k[h>>2]|0;if(!(c<<24>>24)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;c=(i[m>>0]|0)==-1&1;i[g>>0]=c;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;d=d+1|0}while((d|0)<4);if(!(c<<24>>24))ke(a,0,(b|0)%8|0);else ke(a,0,(b+-1|0)%8|0);if((k[e>>2]|0)>>>0<4)je(a);b=k[f>>2]|0;c=0;do{if((b|0)>31)break;b=k[h>>2]|0;if(!(i[g>>0]|0)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;i[g>>0]=(i[m>>0]|0)==-1&1;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;c=c+1|0}while((c|0)<4);if(!(k[a+132>>2]|0))return;je(a);return}function je(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=k[a+132>>2]|0;if(!b){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}c=a+108|0;d=a+120|0;f=k[d>>2]|0;e=(k[c>>2]|0)-f|0;if((Qb[k[(k[b>>2]|0)+48>>2]&63](b,f,e)|0)==(e|0)){f=k[d>>2]|0;k[c>>2]=f;k[a+104>>2]=(k[a+124>>2]|0)-f;return}b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);f=x;x=0;if(!(f&1))ub(b|0,824,96);f=Wa()|0;Ua(b|0);fb(f|0)}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;l=a+100|0;c=(k[l>>2]|0)-c|0;k[l>>2]=c;if((c|0)>-1){m=a+96|0;k[m>>2]=k[m>>2]|b<>2]=k[m>>2]|b>>0-c;j=a+104|0;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0}f=a+112|0;g=a+108|0;h=a+116|0;d=0;while(1){if((c|0)>31)break;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;if((d|0)>=4){e=11;break}}a:do{if((e|0)==11)if((c|0)<0){k[m>>2]=k[m>>2]|b>>0-c;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0;d=0}else d=0;do{if((c|0)>31)break a;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0}while((d|0)<4)}}while(0);k[m>>2]=k[m>>2]|b<>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;pe(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;i=(k[a+180>>2]|0)-b|0;l=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=j[l+(b+-1<<1)>>1]|0;h=e&65535;c=k[a+144>>2]|0;f=0;while(1){d=l+(f+b<<1)|0;g=(m[d>>1]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(c|0))break;j[d>>1]=e;f=f+1|0;if((f|0)==(i|0)){f=i;break}}e=(f|0)==(i|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0,h,m[n+(i<<1)>>1]|0)|0;j[b>>1]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=i;return a|0}ke(a,1,1);a=i;return a|0}function ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}return 0}function oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;pe(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0;j=a+120|0;if(b>>>0<((k[j>>2]|0)+-3|0)>>>0){j=a+112|0;g=k[j>>2]|0;a=a+108|0;k[a>>2]=(l[b+1>>0]<<16|l[b>>0]<<24|l[b+2>>0]<<8|l[b+3>>0])>>>g|k[a>>2];a=32-g>>3;k[h>>2]=b+a;k[j>>2]=(a<<3)+g;return}g=a+104|0;c=k[g>>2]|0;do{if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){if((Ob[k[(k[c>>2]|0)+36>>2]&127](c)|0)==-1)break;b=k[h>>2]|0}e=a+124|0;c=k[e>>2]|0;f=c-b|0;if(f>>>0<=64){d=a+92|0;if((c|0)==(b|0))c=b;else{c=0;do{i[(k[d>>2]|0)+c>>0]=i[b+c>>0]|0;c=c+1|0;b=k[h>>2]|0}while(c>>>0>>0);c=b;b=k[e>>2]|0}n=k[d>>2]|0;d=n;m=d-c|0;k[h>>2]=n;c=b+m|0;k[e>>2]=c;k[j>>2]=(k[j>>2]|0)+m;g=k[g>>2]|0;g=Qb[k[(k[g>>2]|0)+32>>2]&63](g,c,(k[a+96>>2]|0)-(d+f)|0)|0;k[e>>2]=(k[e>>2]|0)+g}}}while(0);g=a+112|0;f=a+108|0;a=k[a+124>>2]|0;e=a+-1|0;b=k[h>>2]|0;while(1){if(b>>>0>=a>>>0){c=14;break}d=i[b>>0]|0;c=d&255;d=d<<24>>24==-1;if(d){if((b|0)==(e|0)){c=25;break}b=b+1|0;if((i[b>>0]|0)<0){c=25;break}}else b=b+1|0;n=k[g>>2]|0;k[f>>2]=c<<24-n|k[f>>2];k[h>>2]=b;n=n+(d?7:8)|0;k[g>>2]=n;if((n|0)>=24){c=33;break}}if((c|0)==14){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==25){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==33){a:do{if(b>>>0>>0)do{if((i[b>>0]|0)==-1)break a;b=b+1|0}while(b>>>0>>0)}while(0);k[j>>2]=b;return}}function re(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do{if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function te(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function ue(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ve(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function we(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;He(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function ye(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35828;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;do{if(b){if(!(b>>>0>715827882?(x=0,qa(178,v|0),u=x,x=0,u&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;d=c+(b*6|0)|0;k[v+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[w>>2]=d;break}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)g=20;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))g=18;if((g|0)==18?(e=q<<2,x=0,f=ta(67,e|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=f;g=f+(q<<2)|0;k[s+8>>2]=g;sw(f|0,0,e|0)|0;k[u>>2]=g;g=20;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==20){e=a+12|0;a:do{if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;i=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;b:while(1){c=k[v>>2]|0;b=c+6|0;k[f>>2]=b;c=c+(g*6|0)|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[i>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){g=30;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*6|0)|0;c=c+((y+-1|0)*6|0)|0;j[b>>1]=j[c>>1]|0;j[b+2>>1]=j[c+2>>1]|0;j[b+4>>1]=j[c+4>>1]|0;c=(k[h>>2]|0)+-6|0;b=k[f>>2]|0;j[c>>1]=j[b>>1]|0;j[c+2>>1]=j[b+2>>1]|0;j[c+4>>1]=j[b+4>>1]|0;x=0;ra(69,a|0,0);c=x;x=0;if(c&1){g=29;break b}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*6|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*6|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=t;return}}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function Be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;B=a+180|0;if((k[B>>2]|0)<=0)return;C=a+4608|0;D=a+4604|0;E=a+4612|0;A=0;while(1){x=A+-1|0;f=k[C>>2]|0;g=k[D>>2]|0;b=A+1|0;e=m[g+(A*6|0)>>1]|0;z=k[E>>2]|0;h=m[g+(x*6|0)>>1]|0;l=e-h|0;n=m[f+(x*6|0)>>1]|0;o=h-n|0;p=((((i[z+((m[g+(b*6|0)>>1]|0)-e)>>0]|0)*9|0)+(i[z+l>>0]|0)|0)*9|0)+(i[z+o>>0]|0)|0;d=m[g+(A*6|0)+2>>1]|0;q=m[g+(x*6|0)+2>>1]|0;r=d-q|0;s=m[f+(x*6|0)+2>>1]|0;t=q-s|0;u=((((i[z+((m[g+(b*6|0)+2>>1]|0)-d)>>0]|0)*9|0)+(i[z+r>>0]|0)|0)*9|0)+(i[z+t>>0]|0)|0;c=m[g+(A*6|0)+4>>1]|0;v=m[g+(x*6|0)+4>>1]|0;w=c-v|0;x=m[f+(x*6|0)+4>>1]|0;y=v-x|0;z=((((i[z+((m[g+(b*6|0)+4>>1]|0)-c)>>0]|0)*9|0)+(i[z+w>>0]|0)|0)*9|0)+(i[z+y>>0]|0)|0;if(!(u|p|z))b=(Ce(a,A,0)|0)+A|0;else{g=m[f+(A*6|0)>>1]|0;f=e-n>>31;if((f^o|0)>=0)if((f^l|0)<0)e=n;else e=n-h+e|0;g=De(a,p,g,e,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+2>>1]|0;e=d-s>>31;if((e^t|0)>=0)if((e^r|0)<0)d=s;else d=s-q+d|0;e=De(a,u,f,d,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+4>>1]|0;d=c-x>>31;if((d^y|0)>=0)if((d^w|0)<0)c=x;else c=x-v+c|0;y=De(a,z,f,c,0)|0;z=k[C>>2]|0;j[z+(A*6|0)>>1]=g;j[z+(A*6|0)+2>>1]=e;j[z+(A*6|0)+4>>1]=y}if((b|0)<(k[B>>2]|0))A=b;else break}return}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+48|0;q=B+30|0;p=B+24|0;o=B+18|0;s=B+12|0;x=B+6|0;y=B;z=(k[a+180>>2]|0)-b|0;A=k[a+4608>>2]|0;t=k[a+4604>>2]|0;w=b+-1|0;u=j[A+(w*6|0)>>1]|0;v=j[A+(w*6|0)+2>>1]|0;w=j[A+(w*6|0)+4>>1]|0;c=u&65535;d=a+144|0;e=v&65535;f=w&65535;n=0;while(1){i=n+b|0;g=A+(i*6|0)|0;h=A+(i*6|0)+2|0;i=A+(i*6|0)+4|0;C=(m[g>>1]|0)-c|0;l=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[h>>1]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[i>>1]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;j[g>>1]=u;j[h>>1]=v;j[i>>1]=w;n=n+1|0;if((n|0)==(z|0)){n=z;break}}e=(n|0)==(z|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]=j[C>>1]|0;j[x+2>>1]=j[C+2>>1]|0;j[x+4>>1]=j[C+4>>1]|0;j[y>>1]=u;j[y+2>>1]=v;j[y+4>>1]=w;b=t+(b*6|0)|0;j[o>>1]=j[x>>1]|0;j[o+2>>1]=j[x+2>>1]|0;j[o+4>>1]=j[x+4>>1]|0;j[p>>1]=j[y>>1]|0;j[p+2>>1]=j[y+2>>1]|0;j[p+4>>1]=j[y+4>>1]|0;j[q>>1]=j[b>>1]|0;j[q+2>>1]=j[b+2>>1]|0;j[q+4>>1]=j[b+4>>1]|0;Fe(s,a,o,p,q);j[C>>1]=j[s>>1]|0;j[C+2>>1]=j[s+2>>1]|0;j[C+4>>1]=j[s+4>>1]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=z;r=B;return C|0}ke(a,1,1);C=z;r=B;return C|0}function De(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Ee(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function Ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>1]|0;p=o-(m[d>>1]|0)>>31|1;f=ia(p,(m[c>>1]|0)-o|0)|0;l=b+144|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;i=k[w>>2]|0;h=((f|0)<0?i:0)+f|0;i=h-((h|0)<((i+1|0)/2|0|0)?0:i)|0;h=b+4576|0;Ge(b,h,i);t=m[e+2>>1]|0;u=t-(m[d+2>>1]|0)>>31|1;f=ia(u,(m[c+2>>1]|0)-t|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;Ge(b,h,q);v=m[e+4>>1]|0;s=v-(m[d+4>>1]|0)>>31|1;f=ia(s,(m[c+4>>1]|0)-v|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;Ge(b,h,n);h=k[l>>2]|0;l=h<<1|1;f=(ia(ia(l,i)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,l)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,l)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&65535;f=(ia(ia(l,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&65535;f=(ia(ia(l,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}w=d&~(f>>31);w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Ee(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function He(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do{if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ie(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Je(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;zf(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35800;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36712;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Oe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36688;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36664;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36640;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do{if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Re(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Se(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;Xe(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;Xe(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Ve(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{We(a,e,b,c,d);return}}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=l[h+(f*3|0)+1>>0]|0;e=128-g+(l[h+(f*3|0)+2>>0]|0)|0;j=(l[h+(f*3|0)>>0]|0)-g+128|0;m=c+(f*3|0)|0;i[m>>0]=g+192+(((e&255)+(j&255)|0)>>>2);i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=l[h+(b*3|0)+1>>0]|0;j=128-d+(l[h+(b*3|0)+2>>0]|0)|0;m=(l[h+(b*3|0)>>0]|0)-d+128|0;i[c+b>>0]=d+192+(((j&255)+(m&255)|0)>>>2);i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{m=i[h+(g<<2)+3>>0]|0;n=l[h+(g<<2)+1>>0]|0;d=128-n+(l[h+(g<<2)+2>>0]|0)|0;j=(l[h+(g<<2)>>0]|0)-n+128|0;i[c+g>>0]=n+192+(((d&255)+(j&255)|0)>>>2);i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function We(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;Ve(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){Ve(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function Xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=l[b+(a*3|0)+1>>0]|0;f=l[b+(a*3|0)+2>>0]|0;h=(l[b+(a*3|0)>>0]|0)-((f+g|0)>>>2)+64|0;e=c+(a*3|0)|0;i[e>>0]=f+128+h;i[e+1>>0]=h;i[e+2>>0]=g+128+h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=l[b+(g+e)>>0]|0;o=l[b+(g+f)>>0]|0;m=(l[b+g>>0]|0)-((o+n|0)>>>2)+64|0;h=c+(g*3|0)|0;i[h>>0]=o+128+m;i[h+1>>0]=m;i[h+2>>0]=n+128+m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{m=l[b+(g+e)>>0]|0;p=l[b+(g+a)>>0]|0;n=(l[b+g>>0]|0)-((p+m|0)>>>2)+64|0;o=c+(g<<2)|0;n=n<<8&65280|l[b+(g+f)>>0]<<24|p+128+n&255|m+128+n<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){p=a+2|0;o=i[a>>0]|0;i[a>>0]=i[p>>0]|0;i[p>>0]=o;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function Ye(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Ze(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function _e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;cf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;cf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function $e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;af(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{bf(a,e,b,c,d);return}}function af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{b=l[h+(f*3|0)>>0]|0;e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=(l[h+(f*3|0)+2>>0]|0)+128-((g+b|0)>>>1)&255;m=c+(f*3|0)|0;i[m>>0]=b+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;g=l[h+(b*3|0)>>0]|0;d=j&255;m=(l[h+(b*3|0)+2>>0]|0)+128-((d+g|0)>>>1)&255;i[c+b>>0]=g+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;o=l[h+(g<<2)>>0]|0;n=d&255;j=(l[h+(g<<2)+2>>0]|0)+128-((n+o|0)>>>1)&255;i[c+g>>0]=o+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function bf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;af(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){af(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function cf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=g&255;f=(l[b+(a*3|0)>>0]|0)+128+h|0;h=(l[b+(a*3|0)+2>>0]|0)+128+(((f&255)+h|0)>>>1)&255;e=c+(a*3|0)|0;i[e>>0]=f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=n&255;o=(l[b+g>>0]|0)+128+m|0;m=(l[b+(g+f)>>0]|0)+128+(((o&255)+m|0)>>>1)&255;h=c+(g*3|0)|0;i[h>>0]=o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;m=(l[b+g>>0]|0)+128+n&255;o=c+(g<<2)|0;n=m|n<<8|l[b+(g+f)>>0]<<24|(l[b+(g+a)>>0]|0)+128+((m+n|0)>>>1)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function df(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function ef(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;kf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;kf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;hf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{jf(a,e,b,c,d);return}}function hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=128-g+(l[h+(f*3|0)+2>>0]|0)&255;m=c+(f*3|0)|0;i[m>>0]=(l[h+(f*3|0)>>0]|0)+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;d=j&255;m=128-d+(l[h+(b*3|0)+2>>0]|0)&255;i[c+b>>0]=(l[h+(b*3|0)>>0]|0)+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;n=d&255;j=128-n+(l[h+(g<<2)+2>>0]|0)&255;i[c+g>>0]=(l[h+(g<<2)>>0]|0)+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;hf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){hf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function kf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;f=g&255;h=f+128+(l[b+(a*3|0)+2>>0]|0)&255;e=c+(a*3|0)|0;i[e>>0]=(l[b+(a*3|0)>>0]|0)+128+f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;o=n&255;m=o+128+(l[b+(g+f)>>0]|0)&255;h=c+(g*3|0)|0;i[h>>0]=(l[b+g>>0]|0)+128+o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;o=c+(g<<2)|0;n=(l[b+g>>0]|0)+128+n&255|n<<8|l[b+(g+f)>>0]<<24|n+128+(l[b+(g+a)>>0]|0)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function lf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function mf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;rf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;rf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;pf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{qf(a,e,b,c,d);return}}function pf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;l=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=l;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;j=i[h+(f*3|0)+2>>0]|0;l=c+(f*3|0)|0;i[l>>0]=i[h+(f*3|0)>>0]|0;i[l+1>>0]=e;i[l+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;l=i[h+(b*3|0)+2>>0]|0;i[c+b>>0]=i[h+(b*3|0)>>0]|0;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=l;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;j=i[h+(g<<2)+2>>0]|0;l=i[h+(g<<2)+3>>0]|0;i[c+g>>0]=i[h+(g<<2)>>0]|0;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=l;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function qf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;pf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){pf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do{if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}while(0);p=f;qn(c);fb(p|0)}function rf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0;j=a+4|0;a=k[j>>2]|0;a:do{switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=i[b+(a*3|0)+2>>0]|0;e=c+(a*3|0)|0;i[e>>0]=i[b+(a*3|0)>>0]|0;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=i[b+(g+f)>>0]|0;h=c+(g*3|0)|0;i[h>>0]=i[b+g>>0]|0;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=c+(g<<2)|0;m=l[b+(g+e)>>0]<<8|l[b+g>>0]|l[b+(g+a)>>0]<<16|l[b+(g+f)>>0]<<24;i[n>>0]=m;i[n+1>>0]=m>>8;i[n+2>>0]=m>>16;i[n+3>>0]=m>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){n=a+2|0;m=i[a>>0]|0;i[a>>0]=i[n>>0]|0;i[n>>0]=m;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function sf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){e=a+12|0;b:do{if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;j=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(70,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41}while(0);do{if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function tf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=a+180|0;if((k[A>>2]|0)<=0)return;B=a+4608|0;C=a+4604|0;D=a+4612|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(uf(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=vf(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=vf(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=vf(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+32|0;A=B+15|0;p=B+12|0;o=B+9|0;q=B+6|0;w=B+3|0;x=B;y=(k[a+180>>2]|0)-b|0;z=k[a+4608>>2]|0;s=k[a+4604>>2]|0;v=z+((b+-1|0)*3|0)|0;t=i[v>>0]|0;u=i[v+1>>0]|0;v=i[v+2>>0]|0;c=t&255;d=a+144|0;e=u&255;f=v&255;n=0;while(1){g=z+((n+b|0)*3|0)|0;h=g+1|0;j=g+2|0;C=(l[g>>0]|0)-c|0;m=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[h>>0]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[j>>0]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;i[g>>0]=t;i[h>>0]=u;i[j>>0]=v;n=n+1|0;if((n|0)==(y|0)){n=y;break}}e=(n|0)==(y|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]=i[C>>0]|0;i[w+1>>0]=i[C+1>>0]|0;i[w+2>>0]=i[C+2>>0]|0;i[x>>0]=t;i[x+1>>0]=u;i[x+2>>0]=v;b=s+(b*3|0)|0;i[o>>0]=i[w>>0]|0;i[o+1>>0]=i[w+1>>0]|0;i[o+2>>0]=i[w+2>>0]|0;i[p>>0]=i[x>>0]|0;i[p+1>>0]=i[x+1>>0]|0;i[p+2>>0]=i[x+2>>0]|0;i[A>>0]=i[b>>0]|0;i[A+1>>0]=i[b+1>>0]|0;i[A+2>>0]=i[b+2>>0]|0;xf(q,a,o,p,A);i[C>>0]=i[q>>0]|0;i[C+1>>0]=i[q+1>>0]|0;i[C+2>>0]=i[q+2>>0]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=y;r=B;return C|0}ke(a,1,1);C=y;r=B;return C|0}function vf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;wf(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>0]|0;p=o-(l[d>>0]|0)>>31|1;f=ia(p,(l[c>>0]|0)-o|0)|0;m=b+144|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;j=k[w>>2]|0;h=((f|0)<0?j:0)+f|0;j=h-((h|0)<((j+1|0)/2|0|0)?0:j)|0;h=b+4576|0;yf(b,h,j);t=l[e+1>>0]|0;u=t-(l[d+1>>0]|0)>>31|1;f=ia(u,(l[c+1>>0]|0)-t|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;yf(b,h,q);v=l[e+2>>0]|0;s=v-(l[d+2>>0]|0)>>31|1;f=ia(s,(l[c+2>>0]|0)-v|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;yf(b,h,n);h=k[m>>2]|0;m=h<<1|1;f=(ia(ia(m,j)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,m)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,m)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&255;f=(ia(ia(m,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&255;f=(ia(ia(m,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}w=d&~(f>>31);w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}function yf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;wf(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do{if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Af(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Bf(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Cf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Lf(a);d=0;do{k[a+172+(d*12|0)>>2]=1024;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=1024;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=1024;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35772;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ff(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do{if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+12|0;a:do{if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(71,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40}while(0);do{if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Gf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(If(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Hf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&65535|0)==(e|0))m=e;else m=e>>31&65535^65535;h=(c-m^q)-q<<16;l=h>>16;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<47){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-65536?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}function If(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<16>>16;Jf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<16,l)|0)>>16;Jf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Kf(a,e,d,63-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-16|0;if((e|0)<(d+-17|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-47|0)}else ke(a,1,f);ke(a,c+65535&65535,16);return}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8909]|0;k[a+4588>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+65536;g=a+168|0;e=a+164|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Mf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Nf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Xf(a);d=0;do{k[a+172+(d*12|0)>>2]=64;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=64;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=64;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35744;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do{if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+12|0;a:do{if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(72,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40}while(0);do{if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Uf(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Tf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&4095|0)==(e|0))m=e;else m=e>>31&4095^4095;h=(c-m^q)-q<<20;l=h>>20;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<35){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-1048576?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<20>>20;Vf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<20,l)|0)>>20;Vf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c&4095;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Wf(a,e,d,47-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-12|0;if((e|0)<(d+-13|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-43|0)}else ke(a,1,f);ke(a,c+4095&4095,12);return}function Xf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8906]|0;k[a+4588>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+4096;g=a+168|0;e=a+164|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Yf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;hg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function $f(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35716;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){e=a+12|0;b:do{if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){c=k[v>>2]|0;b=c+1|0;k[f>>2]=b;c=c+g|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[j>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[f>>2]|0;c=k[s>>2]|0;d=0;do{k[m>>2]=k[c+(d<<2)>>2];c=k[o>>2]|0;i[b+c>>0]=i[b+(c+-1)>>0]|0;i[(k[h>>2]|0)+-1>>0]=i[k[f>>2]>>0]|0;x=0;ra(73,a|0,0);c=x;x=0;if(c&1){f=28;break c}c=k[s>>2]|0;k[c+(d<<2)>>2]=k[m>>2];b=(k[f>>2]|0)+p|0;k[f>>2]=b;k[h>>2]=(k[h>>2]|0)+p;d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){c=Wa()|0;break}else if((f|0)==29){c=Wa()|0;break}}else f=41}while(0);do{if((f|0)==41){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4580|0;b=k[o>>2]|0;r=a+156|0;if((k[r>>2]|0)<=0)return;p=a+4584|0;q=a+4588|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(eg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=dg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function dg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;m=k[a+4580>>2]|0;e=i[h+(b+-1)>>0]|0;d=0;while(1){c=h+(d+b)|0;if((i[c>>0]|0)!=e<<24>>24){n=d;break}i[c>>0]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&255;e=(n|0)==(g|0);j=a+4576|0;d=k[36476+(k[j>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[j>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[j>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;c=l[m+c>>0]|0;m=f-c|0;if((((m|0)>-1?m:0-m|0)|0)<1){c=d-f<<24>>24;fg(a,a+4564|0,c);c=c+f|0}else{m=c-f>>31|1;b=(ia(d-c<<24,m)|0)>>24;fg(a,a+4552|0,b);c=(ia(b,m)|0)+c|0}i[e>>0]=c;a=k[j>>2]|0;k[j>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;gg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function hg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ig(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jg(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;tg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35688;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ng(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){e=a+12|0;b:do{if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(74,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41}while(0);do{if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=a+156|0;if((k[A>>2]|0)<=0)return;B=a+4584|0;C=a+4580|0;D=a+4588|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(pg(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=qg(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=qg(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=qg(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=(k[a+156>>2]|0)-b|0;n=k[a+4584>>2]|0;o=k[a+4580>>2]|0;j=n+((b+-1|0)*3|0)|0;p=i[j>>0]|0;h=i[j+1>>0]|0;j=i[j+2>>0]|0;f=0;while(1){c=n+((f+b|0)*3|0)|0;d=c+1|0;e=c+2|0;if(!(((i[c>>0]|0)==p<<24>>24?(i[d>>0]|0)==h<<24>>24:0)&(i[e>>0]|0)==j<<24>>24))break;i[c>>0]=p;i[d>>0]=h;i[e>>0]=j;f=f+1|0;if((f|0)==(m|0)){f=m;break}}e=(f|0)==(m|0);g=a+4576|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;b=m+2|0;e=i[b>>0]|0;o=o+(d*3|0)|0;d=i[o+1>>0]|0;t=i[o+2>>0]|0;o=l[o>>0]|0;q=o-(p&255)>>31|1;r=(ia((l[m>>0]|0)-o<<24,q)|0)>>24;s=a+4552|0;rg(a,s,r);p=d&255;d=p-(h&255)>>31|1;c=(ia((c&255)-p<<24,d)|0)>>24;rg(a,s,c);h=t&255;j=h-(j&255)>>31|1;e=(ia((e&255)-h<<24,j)|0)>>24;rg(a,s,e);o=(ia(r,q)|0)+o&255;p=(ia(c,d)|0)+p&255;a=(ia(e,j)|0)+h&255;i[m>>0]=o;i[n>>0]=p;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){t=m;return t|0}ke(a,1,1);t=m;return t|0}function qg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;sg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ug(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vg(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;Gg(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35660;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function yg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function zg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)n=k[a+24>>2]|0;else n=1;b=ia(n<<1,q)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))o=6;if((o|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do{if(!n)o=19;else{if(!(n>>>0>1073741823?(x=0,qa(178,s|0),m=x,x=0,m&1):0))o=17;if((o|0)==17?(d=n<<2,x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[s>>2]=e;o=e+(n<<2)|0;k[s+8>>2]=o;sw(e|0,0,d|0)|0;k[u>>2]=o;o=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((o|0)==19){g=a+12|0;b:do{if((k[g>>2]|0)>0){h=a+4604|0;j=(ia(n,q)|0)+1|0;l=a+4608|0;m=a+92|0;f=a+4600|0;if((n|0)>0)e=0;else{d=0;while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(d&1))b=c;else{k[h>>2]=c;k[l>>2]=b}n=k[m>>2]|0;x=0;Ja(k[(k[n>>2]|0)+12>>2]|0,n|0,b|0,k[p>>2]|0,q|0);n=x;x=0;if(n&1)break;d=d+1|0;if((d|0)>=(k[g>>2]|0)){o=45;break b}}c=Wa()|0;break}c:while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(e&1))b=c;else{k[h>>2]=c;k[l>>2]=b}o=k[m>>2]|0;x=0;Ja(k[(k[o>>2]|0)+12>>2]|0,o|0,b|0,k[p>>2]|0,q|0);o=x;x=0;if(o&1){o=28;break}b=k[s>>2]|0;c=k[h>>2]|0;d=0;do{k[f>>2]=k[b+(d<<2)>>2];o=k[p>>2]|0;i[c+o>>0]=i[c+(o+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[h>>2]>>0]|0;x=0;ra(75,a|0,0);o=x;x=0;if(o&1){o=36;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[f>>2];c=(k[h>>2]|0)+q|0;k[h>>2]=c;k[l>>2]=(k[l>>2]|0)+q;d=d+1|0}while((d|0)<(n|0));e=e+1|0;if((e|0)>=(k[g>>2]|0)){o=45;break b}}if((o|0)==28){c=Wa()|0;break}else if((o|0)==36){c=Wa()|0;break}}else o=45}while(0);do{if((o|0)==45){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4604|0;b=k[o>>2]|0;r=a+180|0;if((k[r>>2]|0)<=0)return;p=a+4608|0;q=a+4612|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Cg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Bg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Bg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Fg(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;j=(k[a+180>>2]|0)-b|0;m=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=i[m+(b+-1)>>0]|0;h=e&255;c=a+144|0;f=0;while(1){d=m+(f+b)|0;g=(l[d>>0]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(k[c>>2]|0))break;i[d>>0]=e;f=f+1|0;if((f|0)==(j|0)){f=j;break}}e=(f|0)==(j|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0,h,l[n+j>>0]|0)|0;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=j;return a|0}ke(a,1,1);a=j;return a|0}function Dg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}return 0}function Eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do{if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Fg(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Fg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0}while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Hg(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ig(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Jg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;Vg(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function Lg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Mg(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(76,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=a+4596|0;c=k[q>>2]|0;u=a+172|0;b=k[u>>2]|0;if((b|0)<=0)return;r=a+4600|0;s=a+4604|0;t=a+4592|0;h=c;f=m[c+-2>>1]|0;c=m[c>>1]|0;p=0;while(1){n=k[r>>2]|0;g=j[n+(p+-1<<1)>>1]|0;o=g&65535;e=p+1|0;d=m[h+(e<<1)>>1]|0;l=k[s>>2]|0;h=c-f|0;f=f-o|0;l=((((i[l+(d-c)>>0]|0)*9|0)+(i[l+h>>0]|0)|0)*9|0)+(i[l+f>>0]|0)|0;n=n+(p<<1)|0;if(!l){b=Qg(a,g,n,b-p|0)|0;c=b+p|0;if((c|0)!=(k[u>>2]|0)){o=Rg(a,o,m[(k[q>>2]|0)+(c<<1)>>1]|0)|0;j[(k[r>>2]|0)+(c<<1)>>1]=o;o=k[t>>2]|0;k[t>>2]=(o|0)<1?0:o+-1|0;b=b+1|0}e=b+p|0;d=k[q>>2]|0;c=m[d+(e+-1<<1)>>1]|0;d=m[d+(e<<1)>>1]|0}else{b=c-o>>31;if((b^f|0)<0)b=c;else b=o+((b^h|0)<0?0:h)|0;o=Pg(a,l,m[n>>1]|0,b,0)|0;j[(k[r>>2]|0)+(p<<1)>>1]=o}b=k[u>>2]|0;if((b|0)<=(e|0))break;h=k[q>>2]|0;f=c;c=d;p=e}return}function Og(a){a=a|0;var b=0,c=0,d=0,e=0;d=a+116|0;c=k[d>>2]|0;if((i[c>>0]|0)!=-1){e=a+112|0;b=k[e>>2]|0;if((b|0)<1){qe(a);b=k[e>>2]|0;c=k[d>>2]|0}a=a+108|0;d=k[a>>2]|0;k[e>>2]=b+-1;b=d<<1;k[a>>2]=b;if((i[c>>0]|0)!=-1){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}else b=k[a+108>>2]|0;if(!b)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}function Pg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function Qg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(Sg(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}else{c=Sg(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}return 0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function Tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=a+112|0;if((k[f>>2]|0)<16)qe(a);g=a+108|0;c=k[g>>2]|0;if((c|0)>=0)if(!(c&1073741824))if(!(c&536870912))if(!(c&268435456))if(!(c&134217728))if(!(c&67108864))if(!(c&33554432))if(!(c&16777216))if(!(c&8388608))if(!(c&4194304))if(!(c&2097152))if(!(c&1048576))if(!(c&524288))if(!(c&262144))if(!(c&131072)){e=c>>>12&16;b=e+-1|0;if(!e){b=(k[f>>2]|0)+-15|0;k[f>>2]=b;d=c<<15;k[g>>2]=d;c=b;b=15;while(1){if((c|0)<1){qe(a);e=k[g>>2]|0;c=k[f>>2]|0}else e=d;c=c+-1|0;k[f>>2]=c;d=e<<1;k[g>>2]=d;if((e|0)<0)break;else b=b+1|0}return b|0}}else b=14;else b=13;else b=12;else b=11;else b=10;else b=9;else b=8;else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;a=b+1|0;k[f>>2]=(k[f>>2]|0)-a;k[g>>2]=c<>2]|0;if((c|0)<(b|0)){qe(a);c=k[d>>2]|0;if((c|0)<(b|0)){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}e=a+108|0;a=k[e>>2]|0;k[d>>2]=c-b;k[e>>2]=a<>>(32-b|0)|0}function Vg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Wg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Xg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Yg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function $g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;hh(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function ah(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);bh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!(b>>>0>715827882?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;d=c+(b*6|0)|0;k[C+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[D>>2]=d;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=20;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=18;if((g|0)==18?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=20;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==20){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+6|0;k[g>>2]=c;d=d+(i*6|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*6|0)|0;c=c+((b+-1|0)*6|0)|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;e=(k[l>>2]|0)+-6|0;c=k[g>>2]|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;x=0;ra(77,a|0,0);e=x;x=0;if(e&1){g=31;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*6|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*6|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*6|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=32;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=44;break a}}if((g|0)==31){d=Wa()|0;break}else if((g|0)==32){d=Wa()|0;break}}else g=44}while(0);do{if((g|0)==44){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function ch(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;N=r;r=r+32|0;D=N+24|0;M=N+18|0;L=N+12|0;E=N+6|0;F=N;G=a+172|0;b=k[G>>2]|0;if((b|0)<=0){r=N;return}H=a+4600|0;I=a+4596|0;J=a+4604|0;K=a+4592|0;C=0;while(1){d=C+-1|0;e=k[H>>2]|0;O=k[I>>2]|0;c=C+1|0;f=m[O+(C*6|0)>>1]|0;B=k[J>>2]|0;g=m[O+(d*6|0)>>1]|0;h=f-g|0;l=m[e+(d*6|0)>>1]|0;n=g-l|0;o=((((i[B+((m[O+(c*6|0)>>1]|0)-f)>>0]|0)*9|0)+(i[B+h>>0]|0)|0)*9|0)+(i[B+n>>0]|0)|0;p=m[O+(C*6|0)+2>>1]|0;q=m[O+(d*6|0)+2>>1]|0;s=p-q|0;t=m[e+(d*6|0)+2>>1]|0;u=q-t|0;v=((((i[B+((m[O+(c*6|0)+2>>1]|0)-p)>>0]|0)*9|0)+(i[B+s>>0]|0)|0)*9|0)+(i[B+u>>0]|0)|0;w=m[O+(C*6|0)+4>>1]|0;x=m[O+(d*6|0)+4>>1]|0;y=w-x|0;z=m[e+(d*6|0)+4>>1]|0;A=x-z|0;B=((((i[B+((m[O+(c*6|0)+4>>1]|0)-w)>>0]|0)*9|0)+(i[B+y>>0]|0)|0)*9|0)+(i[B+A>>0]|0)|0;if(!(v|o|B)){c=e+(d*6|0)|0;j[L>>1]=j[c>>1]|0;j[L+2>>1]=j[c+2>>1]|0;j[L+4>>1]=j[c+4>>1]|0;j[D>>1]=j[c>>1]|0;j[D+2>>1]=j[c+2>>1]|0;j[D+4>>1]=j[c+4>>1]|0;b=dh(a,D,e+(C*6|0)|0,b-C|0)|0;c=b+C|0;if((c|0)!=(k[G>>2]|0)){O=(k[I>>2]|0)+(c*6|0)|0;j[F>>1]=j[O>>1]|0;j[F+2>>1]=j[O+2>>1]|0;j[F+4>>1]=j[O+4>>1]|0;O=(k[H>>2]|0)+(c*6|0)|0;j[M>>1]=j[L>>1]|0;j[M+2>>1]=j[L+2>>1]|0;j[M+4>>1]=j[L+4>>1]|0;j[D>>1]=j[F>>1]|0;j[D+2>>1]=j[F+2>>1]|0;j[D+4>>1]=j[F+4>>1]|0;eh(E,a,M,D);j[O>>1]=j[E>>1]|0;j[O+2>>1]=j[E+2>>1]|0;j[O+4>>1]=j[E+4>>1]|0;O=k[K>>2]|0;k[K>>2]=(O|0)<1?0:O+-1|0;b=b+1|0}c=b+C|0}else{d=m[e+(C*6|0)>>1]|0;b=f-l>>31;if((b^n|0)>=0)if((b^h|0)<0)b=l;else b=l-g+f|0;else b=f;f=fh(a,o,d,b,0)|0;d=m[(k[H>>2]|0)+(C*6|0)+2>>1]|0;b=p-t>>31;if((b^u|0)>=0)if((b^s|0)<0)b=t;else b=t-q+p|0;else b=p;d=fh(a,v,d,b,0)|0;e=m[(k[H>>2]|0)+(C*6|0)+4>>1]|0;b=w-z>>31;if((b^A|0)>=0)if((b^y|0)<0)b=z;else b=z-x+w|0;else b=w;B=fh(a,B,e,b,0)|0;O=k[H>>2]|0;j[O+(C*6|0)>>1]=f;j[O+(C*6|0)+2>>1]=d;j[O+(C*6|0)+4>>1]=B}b=k[G>>2]|0;if((c|0)>=(b|0))break;else C=c}r=N;return}function dh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{p=c+(f*6|0)|0;j[p>>1]=j[b>>1]|0;j[p+2>>1]=j[b+2>>1]|0;j[p+4>>1]=j[b+4>>1]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function eh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0;i=b+4568|0;o=gh(b,i)|0;g=gh(b,i)|0;i=gh(b,i)|0;f=b+128|0;e=m[d>>1]|0;l=k[b+136>>2]|0;n=l<<1|1;e=(ia(ia(n,o)|0,e-(m[c>>1]|0)>>31|1)|0)+e|0;o=0-l|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&65535;e=m[d+2>>1]|0;e=(ia(ia(n,g)|0,e-(m[c+2>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&65535;e=m[d+4>>1]|0;e=(ia(ia(n,i)|0,e-(m[c+4>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}b=f&~(e>>31);b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}function fh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function ih(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jh(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;th(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);nh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){f=a+8|0;b:do{if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;j=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(78,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43}while(0);do{if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;M=r;r=r+16|0;C=M+12|0;L=M+9|0;K=M+6|0;D=M+3|0;E=M;F=a+172|0;b=k[F>>2]|0;if((b|0)<=0){r=M;return}G=a+4600|0;H=a+4596|0;I=a+4604|0;J=a+4592|0;B=0;while(1){y=B+-1|0;d=k[G>>2]|0;e=d+(y*3|0)|0;N=k[H>>2]|0;c=B+1|0;f=l[N+(B*3|0)>>0]|0;A=k[I>>2]|0;g=l[N+(y*3|0)>>0]|0;h=f-g|0;j=l[e>>0]|0;m=g-j|0;n=((((i[A+((l[N+(c*3|0)>>0]|0)-f)>>0]|0)*9|0)+(i[A+h>>0]|0)|0)*9|0)+(i[A+m>>0]|0)|0;o=l[N+(B*3|0)+1>>0]|0;p=l[N+(y*3|0)+1>>0]|0;q=o-p|0;s=l[d+(y*3|0)+1>>0]|0;t=p-s|0;u=((((i[A+((l[N+(c*3|0)+1>>0]|0)-o)>>0]|0)*9|0)+(i[A+q>>0]|0)|0)*9|0)+(i[A+t>>0]|0)|0;v=l[N+(B*3|0)+2>>0]|0;w=l[N+(y*3|0)+2>>0]|0;x=v-w|0;y=l[d+(y*3|0)+2>>0]|0;z=w-y|0;A=((((i[A+((l[N+(c*3|0)+2>>0]|0)-v)>>0]|0)*9|0)+(i[A+x>>0]|0)|0)*9|0)+(i[A+z>>0]|0)|0;if(!(u|n|A)){i[K>>0]=i[e>>0]|0;i[K+1>>0]=i[e+1>>0]|0;i[K+2>>0]=i[e+2>>0]|0;i[C>>0]=i[e>>0]|0;i[C+1>>0]=i[e+1>>0]|0;i[C+2>>0]=i[e+2>>0]|0;b=ph(a,C,d+(B*3|0)|0,b-B|0)|0;c=b+B|0;if((c|0)!=(k[F>>2]|0)){N=(k[H>>2]|0)+(c*3|0)|0;i[E>>0]=i[N>>0]|0;i[E+1>>0]=i[N+1>>0]|0;i[E+2>>0]=i[N+2>>0]|0;N=k[G>>2]|0;i[L>>0]=i[K>>0]|0;i[L+1>>0]=i[K+1>>0]|0;i[L+2>>0]=i[K+2>>0]|0;i[C>>0]=i[E>>0]|0;i[C+1>>0]=i[E+1>>0]|0;i[C+2>>0]=i[E+2>>0]|0;qh(D,a,L,C);N=N+(c*3|0)|0;i[N>>0]=i[D>>0]|0;i[N+1>>0]=i[D+1>>0]|0;i[N+2>>0]=i[D+2>>0]|0;N=k[J>>2]|0;k[J>>2]=(N|0)<1?0:N+-1|0;b=b+1|0}c=b+B|0}else{d=l[d+(B*3|0)>>0]|0;b=f-j>>31;if((b^m|0)>=0)if((b^h|0)<0)b=j;else b=j-g+f|0;else b=f;f=rh(a,n,d,b,0)|0;d=l[(k[G>>2]|0)+(B*3|0)+1>>0]|0;b=o-s>>31;if((b^t|0)>=0)if((b^q|0)<0)b=s;else b=s-p+o|0;else b=o;d=rh(a,u,d,b,0)|0;e=l[(k[G>>2]|0)+(B*3|0)+2>>0]|0;b=v-y>>31;if((b^z|0)>=0)if((b^x|0)<0)b=y;else b=y-w+v|0;else b=v;A=rh(a,A,e,b,0)|0;N=(k[G>>2]|0)+(B*3|0)|0;i[N>>0]=f;i[N+1>>0]=d;i[N+2>>0]=A}b=k[F>>2]|0;if((c|0)>=(b|0))break;else B=c}r=M;return}function ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0;j=b+4568|0;o=sh(b,j)|0;g=sh(b,j)|0;j=sh(b,j)|0;f=b+128|0;e=l[d>>0]|0;m=k[b+136>>2]|0;n=m<<1|1;e=(ia(ia(n,o)|0,e-(l[c>>0]|0)>>31|1)|0)+e|0;o=0-m|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&255;e=l[d+1>>0]|0;e=(ia(ia(n,g)|0,e-(l[c+1>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&255;e=l[d+2>>0]|0;e=(ia(ia(n,j)|0,e-(l[c+2>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}b=f&~(e>>31);b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}function rh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function th(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function uh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Fh(a);d=0;do{k[a+164+(d*12|0)>>2]=1024;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=1024;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=1024;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function yh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);zh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(79,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Ch(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Bh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Bh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&65535|0)!=(c|0))c=c>>31&65535^65535;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<47){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Dh(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Eh(a,a+4556|0)|0)+c|0;else c=(ia(Eh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Dh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Eh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(46-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,16)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Fh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8909]|0;k[a+4580>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+65536;g=a+160|0;e=a+156|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Gh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Hh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Rh(a);d=0;do{k[a+164+(d*12|0)>>2]=64;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=64;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=64;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Kh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Lh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((g|0)==18){f=a+8|0;a:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(80,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42}while(0);do{if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Oh(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Nh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&4095|0)!=(c|0))c=c>>31&4095^4095;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<35){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Ph(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Qh(a,a+4556|0)|0)+c|0;else c=(ia(Qh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c&4095;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Qh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(34-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,12)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Rh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8906]|0;k[a+4580>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+4096;g=a+160|0;e=a+156|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Sh(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Th(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;bi(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Wh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Xh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){f=a+8|0;b:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+1|0;k[g>>2]=c;d=d+j|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;i[c+e>>0]=i[c+(e+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[g>>2]>>0]|0;x=0;ra(81,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+w|0;k[g>>2]=c;b=(k[l>>2]|0)+w|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){c=Wa()|0;break}else if((f|0)==31){c=Wa()|0;break}}else f=43}while(0);do{if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function Yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4572|0;b=k[o>>2]|0;r=a+148|0;if((k[r>>2]|0)<=0)return;p=a+4576|0;q=a+4580|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(_h(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Zh(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Zh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=i[e+(b+-1)>>0]|0;g=a+148|0;e=$h(a,c,e+b|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&255;b=l[(k[a+4572>>2]|0)+d>>0]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(ai(a,a+4556|0)|0)+c|0;else c=(ia(ai(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;i[(k[f>>2]|0)+d>>0]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function $h(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ci(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function di(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ei(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function fi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;ni(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function gi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);hi(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}}while(0);if((f|0)==19){f=a+8|0;b:do{if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(82,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43}while(0);do{if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=a+148|0;if((k[A>>2]|0)<=0)return;B=a+4576|0;C=a+4572|0;D=a+4580|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(ji(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=ki(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=ki(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=ki(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;j=r;r=r+16|0;m=j+3|0;n=j;f=a+4576|0;c=k[f>>2]|0;d=c+((b+-1|0)*3|0)|0;g=i[d>>0]|0;h=i[d+1>>0]|0;d=i[d+2>>0]|0;i[n>>0]=g;i[n+1>>0]=h;i[n+2>>0]=d;l=a+148|0;e=(k[l>>2]|0)-b|0;i[m>>0]=i[n>>0]|0;i[m+1>>0]=i[n+1>>0]|0;i[m+2>>0]=i[n+2>>0]|0;e=li(a,m,c+(b*3|0)|0,e)|0;c=e+b|0;if((c|0)==(k[l>>2]|0)){n=e;r=j;return n|0}m=(k[a+4572>>2]|0)+(c*3|0)|0;b=i[m>>0]|0;l=i[m+1>>0]|0;m=i[m+2>>0]|0;n=k[f>>2]|0;f=a+4544|0;p=mi(a,f)|0;o=mi(a,f)|0;b=b&255;b=(ia(b-(g&255)>>31|1,p)|0)+b&255;l=l&255;l=(ia(l-(h&255)>>31|1,o)|0)+l&255;m=m&255;m=(ia(m-(d&255)>>31|1,mi(a,f)|0)|0)+m&255;n=n+(c*3|0)|0;i[n>>0]=b;i[n+1>>0]=l;i[n+2>>0]=m;n=a+4568|0;m=k[n>>2]|0;k[n>>2]=(m|0)<1?0:m+-1|0;n=e+1|0;r=j;return n|0}function ki(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function li(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do{if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Vp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Wp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+240|0;g=m+8|0;a=m;o=m+204|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Xp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+312|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+316|0;s=z+80|0;h=z+84|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Yp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;y=r;r=r+16|0;z=y;w=Ss(g,44212)|0;u=Ss(g,44368)|0;Mb[k[(k[u>>2]|0)+20>>2]&127](z,u);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,g|0)|0;v=x;x=0;if(v&1)t=8;else{l=k[f>>2]|0;k[f>>2]=l+4;k[l>>2]=g;l=a+1|0;t=10}break}default:{l=a;t=10}}a:do{if((t|0)==10){v=c;b:do{if((v-l|0)>1?(i[l>>0]|0)==48:0){h=l+1|0;switch(i[h>>0]|0){case 88:case 120:break;default:{t=11;break b}}x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,48)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;l=l+2|0;x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[h>>0]|0)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(39,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break b}g=g+1|0;if(g>>>0>=c>>>0){s=l;break b}}g=Wa()|0;break a}else{s=l;g=l}}else t=11}while(0);c:do{if((t|0)==11)if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(40,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break c}g=g+1|0;if(g>>>0>=c>>>0){s=l;break c}}g=Wa()|0;break a}else{s=l;g=l}}while(0);p=i[z>>0]|0;q=z+4|0;if(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0){if((s|0)!=(g|0)?(m=g+-1|0,s>>>0>>0):0){j=s;h=m;do{p=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=p;j=j+1|0;h=h+-1|0}while(j>>>0>>0)}x=0;m=ta(k[(k[u>>2]|0)+16>>2]|0,u|0)|0;p=x;x=0;if(p&1){t=8;break}n=z+8|0;o=z+1|0;d:do{if(s>>>0>>0){h=0;j=0;p=s;while(1){l=i[((i[z>>0]&1)==0?o:k[n>>2]|0)+j>>0]|0;if(l<<24>>24>0&(h|0)==(l<<24>>24|0)){h=k[f>>2]|0;k[f>>2]=h+4;k[h>>2]=m;h=i[z>>0]|0;l=0;j=(j>>>0<(((h&1)==0?(h&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+j|0}else l=h;x=0;h=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[p>>0]|0)|0;A=x;x=0;if(A&1)break;A=k[f>>2]|0;k[f>>2]=A+4;k[A>>2]=h;p=p+1|0;if(p>>>0>=g>>>0)break d;else h=l+1|0}g=Wa()|0;break a}}while(0);h=d+(s-a<<2)|0;l=k[f>>2]|0;if((h|0)!=(l|0)){j=l+-4|0;if(h>>>0>>0){do{A=k[h>>2]|0;k[h>>2]=k[j>>2];k[j>>2]=A;h=h+4|0;j=j+-4|0}while(h>>>0>>0);m=w;h=l}else{m=w;h=l}}else m=w}else{x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,s|0,g|0,k[f>>2]|0)|0;A=x;x=0;if(A&1){t=8;break}h=(k[f>>2]|0)+(g-s<<2)|0;k[f>>2]=h;m=w}e:do{if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46){j=g;break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,w|0,h|0)|0;A=x;x=0;if(A&1){t=4;break}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=j;g=g+1|0;if(g>>>0>=c>>>0)break e}if((t|0)==4){g=Wa()|0;break a}x=0;g=ta(k[(k[u>>2]|0)+12>>2]|0,u|0)|0;A=x;x=0;if(A&1){t=8;break a}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=g;g=j+1|0}}while(0);x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,g|0,c|0,h|0)|0;A=x;x=0;if(A&1)t=8;else{A=(k[f>>2]|0)+(v-g<<2)|0;k[f>>2]=A;k[e>>2]=(b|0)==(c|0)?A:d+(b-a<<2)|0;Sm(z);r=y;return}}}while(0);if((t|0)==8)g=Wa()|0;Sm(z);fb(g|0)}function Zp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+304|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+308|0;s=z+72|0;h=z+76|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function _p(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+192|0;j=o;a=o+180|0;m=o+160|0;n=o+12|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44212)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+48>>2]&31](h,m,e,n)|0;p=n+(a<<2)|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=cv(j,n,(f|0)==(e|0)?p:n+(f-m<<2)|0,p,c,d)|0;r=o;return p|0}return 0}function $p(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0;C=r;r=r+32|0;v=C+16|0;u=C+12|0;z=C+8|0;w=C+4|0;y=C;m=tn(d)|0;k[z>>2]=m;x=0;z=Aa(37,z|0,44220)|0;t=x;x=0;if(t&1){C=Wa()|0;zm(m)|0;fb(C|0)}zm(m)|0;k[e>>2]=0;t=z+8|0;m=k[b>>2]|0;a:do{if((g|0)!=(h|0)){b:while(1){n=m;if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0;n=0}}else m=0;q=(m|0)==0;p=k[c>>2]|0;o=p;do{if(p){if((k[p+12>>2]|0)==(k[p+16>>2]|0)?(Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)==-1:0){k[c>>2]=0;o=0;B=12;break}if(!q){B=13;break b}}else B=12}while(0);if((B|0)==12){B=0;if(q){B=13;break}else p=0}c:do{if((Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[g>>0]|0,0)|0)<<24>>24==37){p=g+1|0;if((p|0)==(h|0)){B=17;break b}s=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[p>>0]|0,0)|0;switch(s<<24>>24){case 48:case 69:{q=g+2|0;if((q|0)==(h|0)){B=20;break b}g=p;p=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[q>>0]|0,0)|0;m=s;break}default:{p=s;m=0}}s=k[(k[a>>2]|0)+36>>2]|0;k[w>>2]=n;k[y>>2]=o;k[u>>2]=k[w>>2];k[v>>2]=k[y>>2];s=ac[s&15](a,u,v,d,e,f,p,m)|0;k[b>>2]=s;g=g+2|0}else{n=i[g>>0]|0;if(n<<24>>24>-1?(A=k[t>>2]|0,(j[A+(n<<24>>24<<1)>>1]&8192)!=0):0){do{g=g+1|0;if((g|0)==(h|0)){g=h;break}n=i[g>>0]|0;if(n<<24>>24<=-1)break}while((j[A+(n<<24>>24<<1)>>1]&8192)!=0);n=p;while(1){if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;o=(m|0)==0;do{if(p){if((k[p+12>>2]|0)!=(k[p+16>>2]|0))if(o){s=n;break}else break c;if((Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)!=-1)if(o^(n|0)==0){s=n;p=n;break}else break c;else{k[c>>2]=0;n=0;B=39;break}}else B=39}while(0);if((B|0)==39){B=0;if(o)break c;else{s=n;p=0}}o=m+12|0;n=k[o>>2]|0;q=m+16|0;if((n|0)==(k[q>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;if((n&255)<<24>>24<=-1)break c;if(!(j[(k[t>>2]|0)+(n<<24>>24<<1)>>1]&8192))break c;n=k[o>>2]|0;if((n|0)==(k[q>>2]|0)){Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;n=s;continue}else{k[o>>2]=n+1;n=s;continue}}}o=m+12|0;n=k[o>>2]|0;p=m+16|0;if((n|0)==(k[p>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;s=Vb[k[(k[z>>2]|0)+12>>2]&63](z,n&255)|0;if(s<<24>>24!=(Vb[k[(k[z>>2]|0)+12>>2]&63](z,i[g>>0]|0)|0)<<24>>24){B=57;break b}n=k[o>>2]|0;if((n|0)==(k[p>>2]|0))Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;else k[o>>2]=n+1;g=g+1|0}}while(0);m=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((B|0)==13){k[e>>2]=4;break}else if((B|0)==17){k[e>>2]=4;break}else if((B|0)==20){k[e>>2]=4;break}else if((B|0)==57){k[e>>2]=4;m=k[b>>2]|0;break}}}while(0);if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;g=(m|0)==0;n=k[c>>2]|0;do{if(n){if((k[n+12>>2]|0)==(k[n+16>>2]|0)?(Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0)==-1:0){k[c>>2]=0;B=67;break}if(!g)B=68}else B=67}while(0);if((B|0)==67?g:0)B=68;if((B|0)==68)k[e>>2]=k[e>>2]|2;r=C;return m|0}function aq(a){a=a|0;return}function bq(a){a=a|0;mj(a);return}function cq(a){a=a|0;return 2}function dq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$p(a,i,h,d,e,f,58907,58915)|0;r=g;return a|0}function eq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;n=a+8|0;n=Ob[k[(k[n>>2]|0)+20>>2]&127](n)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];c=i[n>>0]|0;o=(c&1)==0;b=o?n+1|0:k[n+8>>2]|0;c=b+(o?(c&255)>>>1:k[n+4>>2]|0)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=$p(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function fq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];gq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function gq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function hq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];iq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function iq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function jq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];kq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function kq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function lq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44220)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do{switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];gq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];iq(a,f+16|0,b,j,e,N);V=28;break}case 99:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+12>>2]&127](V)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];mq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=$p(a,h,j,d,e,f,58915,58923)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=$p(a,h,j,d,e,f,58923,58931)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];nq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];oq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];pq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];qq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];rq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];sq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];tq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=$p(a,h,j,d,e,f,58931,58942)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=$p(a,h,j,d,e,f,58942,58947)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];uq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=$p(a,h,j,d,e,f,58947,58955)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];vq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+24>>2]&127](V)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];kq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];wq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];xq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function mq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function nq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function oq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function pq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function qq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function rq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function sq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=e+8|0;a:while(1){e=k[b>>2]|0;do{if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0}while(0);e=(e|0)==0;a=k[c>>2]|0;do{if(a){if((k[a+12>>2]|0)!=(k[a+16>>2]|0))if(e)break;else break a;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)!=-1)if(e)break;else break a;else{k[c>>2]=0;h=12;break}}else h=12}while(0);if((h|0)==12){h=0;if(e){a=0;break}else a=0}e=k[b>>2]|0;f=k[e+12>>2]|0;if((f|0)==(k[e+16>>2]|0))e=Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0;else e=l[f>>0]|0;if((e&255)<<24>>24<=-1)break;if(!(j[(k[g>>2]|0)+(e<<24>>24<<1)>>1]&8192))break;e=k[b>>2]|0;a=e+12|0;f=k[a>>2]|0;if((f|0)==(k[e+16>>2]|0)){Ob[k[(k[e>>2]|0)+40>>2]&127](e)|0;continue}else{k[a>>2]=f+1;continue}}e=k[b>>2]|0;do{if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0}while(0);e=(e|0)==0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=32;break}if(!e)h=33}else h=32}while(0);if((h|0)==32?e:0)h=33;if((h|0)==33)k[d>>2]=k[d>>2]|2;return}function tq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do{if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Hu(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4}while(0);r=m;return}function uq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function vq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function wq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function xq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=k[b>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}else a=0}while(0);f=(a|0)==0;a=k[c>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=11;break}if(f){g=a;h=13}else h=12}else h=11}while(0);if((h|0)==11)if(f)h=12;else{g=0;h=13}a:do{if((h|0)==12)k[d>>2]=k[d>>2]|6;else if((h|0)==13){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=l[f>>0]|0;if((Qb[k[(k[e>>2]|0)+36>>2]&63](e,a&255,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;e=k[f>>2]|0;if((e|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)a=0;else h=21}else{k[f>>2]=e+1;h=21}do{if((h|0)==21)if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}while(0);a=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)?(Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1:0){k[c>>2]=0;h=30;break}if(a)break a}else h=30}while(0);if((h|0)==30?!a:0)break;k[d>>2]=k[d>>2]|2}}while(0);return}function yq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;w=r;r=r+32|0;q=w+16|0;p=w+12|0;u=w+8|0;s=w+4|0;t=w;i=tn(d)|0;k[u>>2]=i;x=0;u=Aa(37,u|0,44212)|0;o=x;x=0;if(o&1){w=Wa()|0;zm(i)|0;fb(w|0)}zm(i)|0;k[e>>2]=0;i=k[b>>2]|0;a:do{if((g|0)!=(h|0)){b:while(1){l=i;if(i){j=k[i+12>>2]|0;if((j|0)==(k[i+16>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if((j|0)==-1){k[b>>2]=0;i=0;n=1;o=0}else{n=0;o=l}}else{i=0;n=1;o=l}m=k[c>>2]|0;j=m;do{if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0))l=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(n)break;else{v=17;break b}else{k[c>>2]=0;j=0;v=15;break}}else v=15}while(0);if((v|0)==15){v=0;if(n){v=17;break}else m=0}c:do{if((Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[g>>2]|0,0)|0)<<24>>24==37){l=g+4|0;if((l|0)==(h|0)){v=21;break b}n=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[l>>2]|0,0)|0;switch(n<<24>>24){case 48:case 69:{m=g+8|0;if((m|0)==(h|0)){v=24;break b}g=l;l=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[m>>2]|0,0)|0;i=n;break}default:{l=n;i=0}}n=k[(k[a>>2]|0)+36>>2]|0;k[s>>2]=o;k[t>>2]=j;k[p>>2]=k[s>>2];k[q>>2]=k[t>>2];o=ac[n&15](a,p,q,d,e,f,l,i)|0;k[b>>2]=o;g=g+8|0}else{if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0)){l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;o=Vb[k[(k[u>>2]|0)+28>>2]&63](u,j)|0;if((o|0)!=(Vb[k[(k[u>>2]|0)+28>>2]&63](u,k[g>>2]|0)|0)){v=61;break b}j=k[l>>2]|0;if((j|0)==(k[m>>2]|0))Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;else k[l>>2]=j+4;g=g+4|0;break}do{g=g+4|0;if((g|0)==(h|0)){g=h;break}}while(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0);j=m;n=m;while(1){if(i){l=k[i+12>>2]|0;if((l|0)==(k[i+16>>2]|0))l=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else l=k[l>>2]|0;if((l|0)==-1){k[b>>2]=0;m=1;i=0}else m=0}else{m=1;i=0}do{if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0))l=Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(m^(j|0)==0){o=j;n=j;break}else break c;else{k[c>>2]=0;j=0;v=44;break}}else v=44}while(0);if((v|0)==44){v=0;if(m)break c;else{o=j;n=0}}l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,j)|0))break c;j=k[l>>2]|0;if((j|0)==(k[m>>2]|0)){Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;j=o;continue}else{k[l>>2]=j+4;j=o;continue}}}}while(0);i=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((v|0)==17){k[e>>2]=4;break}else if((v|0)==21){k[e>>2]=4;break}else if((v|0)==24){k[e>>2]=4;break}else if((v|0)==61){k[e>>2]=4;i=k[b>>2]|0;break}}}while(0);if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;l=1}else l=0}else{i=0;l=1}g=k[c>>2]|0;do{if(g){j=k[g+12>>2]|0;if((j|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[j>>2]|0;if((g|0)!=-1)if(l)break;else{v=76;break}else{k[c>>2]=0;v=74;break}}else v=74}while(0);if((v|0)==74?l:0)v=76;if((v|0)==76)k[e>>2]=k[e>>2]|2;r=w;return i|0}function zq(a){a=a|0;return}function Aq(a){a=a|0;mj(a);return}function Bq(a){a=a|0;return 2}function Cq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=yq(a,i,h,d,e,f,44788,44820)|0;r=g;return a|0}function Dq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;p=a+8|0;p=Ob[k[(k[p>>2]|0)+20>>2]&127](p)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];n=i[p>>0]|0;o=(n&1)==0;c=p+4|0;b=o?c:k[p+8>>2]|0;c=b+((o?(n&255)>>>1:k[c>>2]|0)<<2)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=yq(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function Eq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Fq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Fq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function Gq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Hq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Hq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function Iq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Jq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Jq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function Kq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44212)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do{switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];Fq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];Hq(a,f+16|0,b,j,e,N);V=28;break}case 99:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+12>>2]&127](W)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];Lq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=yq(a,h,j,d,e,f,44820,44852)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=yq(a,h,j,d,e,f,44852,44884)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];Mq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];Nq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];Oq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];Pq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];Qq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];Rq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];Sq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=yq(a,h,j,d,e,f,44884,44928)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=yq(a,h,j,d,e,f,44928,44948)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];Tq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=yq(a,h,j,d,e,f,44948,44980)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];Uq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+24>>2]&127](W)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];Jq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];Vq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];Wq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function Lq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Mq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Nq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Oq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Pq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function Qq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Rq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:while(1){a=k[b>>2]|0;do{if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1}while(0);f=k[c>>2]|0;do{if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){g=f;break}else{g=f;break a}else{k[c>>2]=0;h=15;break}}else h=15}while(0);if((h|0)==15){h=0;if(g){g=0;break}else g=0}a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if(!(Qb[k[(k[e>>2]|0)+12>>2]&63](e,8192,a)|0))break;a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;continue}else{k[f>>2]=g+4;continue}}a=k[b>>2]|0;do{if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}else f=1}while(0);do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0))a=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break;else{h=39;break}else{k[c>>2]=0;h=37;break}}else h=37}while(0);if((h|0)==37?f:0)h=39;if((h|0)==39)k[d>>2]=k[d>>2]|2;return}function Sq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do{if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Su(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4}while(0);r=m;return}function Tq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Uq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Vq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function Wq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;a=k[b>>2]|0;do{if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1}while(0);f=k[c>>2]|0;do{if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){h=f;i=17;break}else{i=16;break}else{k[c>>2]=0;i=14;break}}else i=14}while(0);if((i|0)==14)if(g)i=16;else{h=0;i=17}a:do{if((i|0)==16)k[d>>2]=k[d>>2]|6;else if((i|0)==17){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((Qb[k[(k[e>>2]|0)+52>>2]&63](e,a,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)f=1;else i=25}else{k[f>>2]=g+4;i=25}do{if((i|0)==25){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}}while(0);do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0))a=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break a;else break;else{k[c>>2]=0;i=37;break}}else i=37}while(0);if((i|0)==37?!f:0)break;k[d>>2]=k[d>>2]|2}}while(0);return}function Xq(a){a=a|0;Yq(a+8|0);return}function Yq(a){a=a|0;var b=0,c=0,d=0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do{if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}}while(0);d=Wa(0)|0;oc(d)}function Zq(a){a=a|0;Yq(a+8|0);mj(a);return}function _q(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=r;r=r+112|0;h=j+4|0;c=j;k[c>>2]=h+100;$q(a+8|0,h,c,e,f,g);e=k[c>>2]|0;c=k[b>>2]|0;if((h|0)!=(e|0))do{g=i[h>>0]|0;do{if(c){d=c+24|0;f=k[d>>2]|0;if((f|0)==(k[c+28>>2]|0)){b=(Vb[k[(k[c>>2]|0)+52>>2]&63](c,g&255)|0)==-1;c=b?0:c;break}else{k[d>>2]=f+1;i[f>>0]=g;break}}else c=0}while(0);h=h+1|0}while((h|0)!=(e|0));r=j;return c|0}function $q(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0;l=r;r=r+16|0;j=l;i[j>>0]=37;g=j+1|0;i[g>>0]=e;h=j+2|0;i[h>>0]=f;i[j+3>>0]=0;if(f<<24>>24){i[g>>0]=f;i[h>>0]=e}a=b+(_a(b|0,(k[c>>2]|0)-b|0,j|0,d|0,k[a>>2]|0)|0)|0;k[c>>2]=a;r=l;return}function ar(a){a=a|0;Yq(a+8|0);return}function br(a){a=a|0;Yq(a+8|0);mj(a);return}function cr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=r;r=r+416|0;d=h+8|0;c=h;k[c>>2]=d+400;dr(a+8|0,d,c,e,f,g);a=k[c>>2]|0;c=k[b>>2]|0;if((d|0)!=(a|0)){e=d;do{d=k[e>>2]|0;if(!c)c=0;else{f=c+24|0;g=k[f>>2]|0;if((g|0)==(k[c+28>>2]|0))d=Vb[k[(k[c>>2]|0)+52>>2]&63](c,d)|0;else{k[f>>2]=g+4;k[g>>2]=d}c=(d|0)==-1?0:c}e=e+4|0}while((e|0)!=(a|0))}r=h;return c|0}function dr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+128|0;j=g+16|0;l=g+12|0;h=g;i=g+8|0;k[l>>2]=j+100;$q(a,j,l,d,e,f);e=h;k[e>>2]=0;k[e+4>>2]=0;k[i>>2]=j;e=(k[c>>2]|0)-b>>2;f=Ak(k[a>>2]|0)|0;x=0;e=Ea(18,b|0,i|0,e|0,h|0)|0;a=x;x=0;if(a&1){e=Wa()|0;if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}fb(e|0)}if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}if((e|0)==-1)$r(58955);else{k[c>>2]=b+(e<<2);r=g;return}}function er(a){a=a|0;return}function fr(a){a=a|0;mj(a);return}function gr(a){a=a|0;return 127}function hr(a){a=a|0;return 127}function ir(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function jr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function kr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function lr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function mr(a){a=a|0;return 0}function nr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function or(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function pr(a){a=a|0;return}function qr(a){a=a|0;mj(a);return}function rr(a){a=a|0;return 127}function sr(a){a=a|0;return 127}function tr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function ur(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function vr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function wr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function xr(a){a=a|0;return 0}function yr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function zr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Ar(a){a=a|0;return}function Br(a){a=a|0;mj(a);return}function Cr(a){a=a|0;return 2147483647}function Dr(a){a=a|0;return 2147483647}function Er(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Fr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Gr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Hr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Ir(a){a=a|0;return 0}function Jr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Kr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Lr(a){a=a|0;return}function Mr(a){a=a|0;mj(a);return}function Nr(a){a=a|0;return 2147483647}function Or(a){a=a|0;return 2147483647}function Pr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Qr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Rr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Sr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Tr(a){a=a|0;return 0}function Ur(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Vr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Wr(a){a=a|0;return}function Xr(a){a=a|0;mj(a);return}function Yr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+240|0;z=B+24|0;A=B;a=B+136|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+134|0;j=B+4|0;w=B+124|0;k[D>>2]=a;E=D+4|0;k[E>>2]=189;l=a+100|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44220)|0;v=x;x=0;a:do{if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[z>>2]=k[j>>2],m=ua(1,b|0,z|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do{if(m){x=0;Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,58976,58986,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>98){a=Pl(a+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do{if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+10|0;v=w;if(l>>>0>>0){m=w+1|0;d=m+1|0;e=d+1|0;n=e+1|0;o=n+1|0;p=o+1|0;q=p+1|0;s=q+1|0;t=s+1|0;do{j=i[l>>0]|0;do{if((i[w>>0]|0)!=j<<24>>24)if((i[m>>0]|0)!=j<<24>>24)if((i[d>>0]|0)!=j<<24>>24)if((i[e>>0]|0)!=j<<24>>24)if((i[n>>0]|0)==j<<24>>24)j=n;else{if((i[o>>0]|0)==j<<24>>24){j=o;break}if((i[p>>0]|0)==j<<24>>24){j=p;break}if((i[q>>0]|0)==j<<24>>24){j=q;break}if((i[s>>0]|0)==j<<24>>24){j=s;break}j=(i[t>>0]|0)==j<<24>>24?t:u}else j=e;else j=d;else j=m;else j=w}while(0);i[a>>0]=i[58976+(j-v)>>0]|0;l=l+1|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}}while(0);a=k[b>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0}while(0);h=(a|0)==0;a=k[c>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[c>>2]=0;G=37;break}}if(!h)G=38}else G=37}while(0);if((G|0)==37?h:0)G=38;if((G|0)==38)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[E>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10}while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)F=j;else{h=k[E>>2]|0;G=45}}else{j=Wa()|0;k[D>>2]=0;h=189;G=45}if((G|0)==45){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else F=j}fb(F|0);return 0}function Zr(a){a=a|0;return}function _r(a,b,c,d,e,f,g,h,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;ba=r;r=r+512|0;P=ba+88|0;t=ba+96|0;da=ba+80|0;T=ba+72|0;S=ba+68|0;U=ba+500|0;Q=ba+497|0;V=ba+496|0;Y=ba+56|0;aa=ba+44|0;_=ba+32|0;Z=ba+20|0;$=ba+8|0;R=ba+4|0;X=ba;k[P>>2]=o;k[da>>2]=t;ca=da+4|0;k[ca>>2]=189;k[T>>2]=t;k[S>>2]=t+400;k[Y>>2]=0;k[Y+4>>2]=0;k[Y+8>>2]=0;k[aa>>2]=0;k[aa+4>>2]=0;k[aa+8>>2]=0;k[_>>2]=0;k[_+4>>2]=0;k[_+8>>2]=0;k[Z>>2]=0;k[Z+4>>2]=0;k[Z+8>>2]=0;k[$>>2]=0;k[$+4>>2]=0;k[$+8>>2]=0;x=0;za(1,c|0,d|0,U|0,Q|0,V|0,Y|0,aa|0,_|0,Z|0,R|0);O=x;x=0;a:do{if(O&1)h=Wa()|0;else{k[n>>2]=k[m>>2];I=h+8|0;J=_+4|0;K=Z+4|0;L=Z+8|0;M=Z+1|0;N=_+8|0;O=_+1|0;z=(e&512|0)!=0;A=aa+8|0;B=aa+1|0;C=aa+4|0;D=$+4|0;E=$+8|0;F=$+1|0;G=U+3|0;H=Y+4|0;y=0;s=0;b:while(1){o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);o=(o|0)==0;h=k[b>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(o){w=h;break}else{W=235;break b}x=0;c=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=24;break b}if((c|0)!=-1)if(o){w=h;break}else{W=235;break b}else{k[b>>2]=0;W=15;break}}else W=15}while(0);if((W|0)==15){W=0;if(o){W=235;break}else w=0}c:do{switch(i[U+y>>0]|0){case 1:{if((y|0)!=3){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1){W=40;break b}if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192)){W=40;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=24;break b}else{o=w;d=w;W=42}}break}case 0:{if((y|0)!=3){o=w;d=w;W=42}break}case 3:{h=i[_>>0]|0;o=(h&1)==0?(h&255)>>>1:k[J>>2]|0;c=i[Z>>0]|0;d=(c&1)==0?(c&255)>>>1:k[K>>2]|0;if((o|0)!=(0-d|0)){if(!o){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[Z>>0]|0}else{o=l[h>>0]|0;h=c}if((o&255)<<24>>24!=(i[((h&1)==0?M:k[L>>2]|0)>>0]|0))break c;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s;break c}e=k[a>>2]|0;p=k[e+12>>2]|0;c=k[e+16>>2]|0;o=(p|0)==(c|0);if(!d){if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[_>>0]|0}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){i[g>>0]=1;break c}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}c=k[a>>2]|0;h=i[_>>0]|0;e=c;p=k[c+12>>2]|0;c=k[c+16>>2]|0}else o=l[p>>0]|0;d=e+12|0;c=(p|0)==(c|0);if((o&255)<<24>>24==(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){if(c){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[d>>2]=p+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(c){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((i[Z>>0]&1)==0?M:k[L>>2]|0)>>0]|0)){W=104;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s}break}case 2:{if(!(y>>>0<2|(s|0)!=0)?!(z|(y|0)==2&(i[G>>0]|0)!=0):0){s=0;break c}u=i[aa>>0]|0;o=(u&1)==0;v=k[A>>2]|0;c=o?B:v;q=c;d:do{if((y|0)!=0?(l[U+(y+-1)>>0]|0)<2:0){p=o?(u&255)>>>1:k[C>>2]|0;d=c+p|0;e=k[I>>2]|0;e:do{if(!p)h=q;else{p=c;h=q;do{o=i[p>>0]|0;if(o<<24>>24<=-1)break e;if(!(j[e+(o<<24>>24<<1)>>1]&8192))break e;p=p+1|0;h=p}while((p|0)!=(d|0))}}while(0);d=h-q|0;e=i[$>>0]|0;o=(e&1)==0;e=o?(e&255)>>>1:k[D>>2]|0;if(e>>>0>=d>>>0){o=o?F:k[E>>2]|0;p=o+e|0;if((h|0)!=(q|0)){o=o+(e-d)|0;while(1){if((i[o>>0]|0)!=(i[c>>0]|0)){h=q;break d}o=o+1|0;if((o|0)==(p|0))break;else c=c+1|0}}}else h=q}else h=q}while(0);o=(u&1)==0;o=(o?B:v)+(o?(u&255)>>>1:k[C>>2]|0)|0;f:do{if((h|0)!=(o|0)){e=w;d=w;o=h;while(1){h=k[a>>2]|0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0}while(0);c=(h|0)==0;do{if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){h=e;p=d;break}else break f;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)!=-1)if(c^(e|0)==0){h=e;p=e;break}else break f;else{k[b>>2]=0;h=0;W=131;break}}else{h=e;W=131}}while(0);if((W|0)==131){W=0;if(c)break f;else p=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else c=l[d>>0]|0;if((c&255)<<24>>24!=(i[o>>0]|0))break f;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else k[d>>2]=e+1;o=o+1|0;c=i[aa>>0]|0;w=(c&1)==0;c=(w?B:k[A>>2]|0)+(w?(c&255)>>>1:k[C>>2]|0)|0;if((o|0)==(c|0)){o=c;break}else{e=h;d=p}}}}while(0);if(z?(w=i[aa>>0]|0,v=(w&1)==0,(o|0)!=((v?B:k[A>>2]|0)+(v?(w&255)>>>1:k[C>>2]|0)|0)):0){W=143;break b}break}case 4:{q=i[V>>0]|0;h=w;e=w;o=0;g:while(1){c=k[a>>2]|0;do{if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)==-1){k[a>>2]=0;c=0;break}else{c=k[a>>2]|0;break}}}else c=0}while(0);d=(c|0)==0;do{if(e){if((k[e+12>>2]|0)!=(k[e+16>>2]|0))if(d){p=h;break}else{d=h;break g}x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)!=-1)if(d^(h|0)==0){p=h;e=h;break}else{d=h;break g}else{k[b>>2]=0;h=0;W=156;break}}else W=156}while(0);if((W|0)==156){W=0;if(d){d=h;break}else{p=h;e=0}}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}}else h=l[c>>0]|0;c=h&255;if(c<<24>>24>-1?(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)!=0:0){h=k[n>>2]|0;if((h|0)==(k[P>>2]|0)){x=0;Fa(12,m|0,n|0,P|0);w=x;x=0;if(w&1){W=23;break b}h=k[n>>2]|0}k[n>>2]=h+1;i[h>>0]=c;o=o+1|0}else{w=i[Y>>0]|0;if(!(c<<24>>24==q<<24>>24&((o|0)!=0?(((w&1)==0?(w&255)>>>1:k[H>>2]|0)|0)!=0:0))){d=p;break}if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=23;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w;o=0}h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}else{h=p;continue}}else{k[c>>2]=d+1;h=p;continue}}if((o|0)!=0?(k[da>>2]|0)!=(t|0):0){if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=24;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w}p=k[R>>2]|0;if((p|0)>0){o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);o=(o|0)==0;do{if(d){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=24;break b}if((h|0)==-1){k[b>>2]=0;W=193;break}}if(!o){W=198;break b}}else W=193}while(0);if((W|0)==193){W=0;if(o){W=198;break b}else d=0}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24!=(i[Q>>0]|0)){W=198;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;if((p|0)>0){e=d;c=d;q=p;while(1){o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);h=(o|0)==0;do{if(c){if((k[c+12>>2]|0)!=(k[c+16>>2]|0))if(h){o=e;p=c;break}else{W=222;break b}x=0;o=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)!=-1)if(h^(e|0)==0){o=e;p=e;break}else{W=222;break b}else{k[b>>2]=0;o=0;W=215;break}}else{o=e;W=215}}while(0);if((W|0)==215){W=0;if(h){W=222;break b}else p=0}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;if((h&255)<<24>>24<=-1){W=222;break b}if(!(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)){W=222;break b}if((k[n>>2]|0)==(k[P>>2]|0)?(x=0,Fa(12,m|0,n|0,P|0),w=x,x=0,w&1):0){W=22;break b}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;c=k[n>>2]|0;k[n>>2]=c+1;i[c>>0]=h;h=q;q=q+-1|0;k[R>>2]=q;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}}else k[d>>2]=e+1;if((h|0)<=1)break;else{e=o;c=p}}}}if((k[n>>2]|0)==(k[m>>2]|0)){W=233;break b}break}default:{}}}while(0);h:do{if((W|0)==42)while(1){W=0;h=k[a>>2]|0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0}while(0);c=(h|0)==0;do{if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){e=o;break}else break h;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)!=-1)if(c^(o|0)==0){e=o;d=o;break}else break h;else{k[b>>2]=0;o=0;W=54;break}}else W=54}while(0);if((W|0)==54){W=0;if(c)break h;else{e=o;d=0}}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=20;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1)break h;if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192))break h;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=20;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=20;break b}else{o=e;W=42}}}while(0);y=y+1|0;if(y>>>0>=4){W=235;break}}i:switch(W|0){case 20:{h=Wa()|0;break a}case 21:{h=Wa()|0;break a}case 22:{h=Wa()|0;break a}case 23:{h=Wa()|0;break a}case 24:{h=Wa()|0;break a}case 40:{k[f>>2]=k[f>>2]|4;h=0;break}case 104:{k[f>>2]=k[f>>2]|4;h=0;break}case 143:{k[f>>2]=k[f>>2]|4;h=0;break}case 198:{k[f>>2]=k[f>>2]|4;h=0;break}case 222:{k[f>>2]=k[f>>2]|4;h=0;break}case 233:{k[f>>2]=k[f>>2]|4;h=0;break}case 235:{j:do{if(s){e=s+1|0;p=s+8|0;q=s+4|0;c=1;k:while(1){o=i[s>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[q>>2]|0;if(c>>>0>=o>>>0)break j;o=k[a>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0}while(0);h=(o|0)==0;o=k[b>>2]|0;do{if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[b>>2]=0;W=253;break}}if(!h){W=260;break k}}else W=253}while(0);if((W|0)==253?(W=0,h):0){W=260;break}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break}}else o=l[h>>0]|0;if(!(i[s>>0]&1))h=e;else h=k[p>>2]|0;if((o&255)<<24>>24!=(i[h+c>>0]|0)){W=260;break}o=c+1|0;h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;n=x;x=0;if(n&1){W=19;break}else{c=o;continue}}else{k[c>>2]=d+1;c=o;continue}}if((W|0)==19){h=Wa()|0;break a}else if((W|0)==260){k[f>>2]=k[f>>2]|4;h=0;break i}}}while(0);o=k[da>>2]|0;if((o|0)!=(t|0)?(k[X>>2]=0,cs(Y,o,t,X),(k[X>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;h=0}else h=1;break}}Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}r=ba;return h|0}}while(0);Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}fb(h|0);return 0}function $r(a){a=a|0;var b=0;b=Va(8)|0;x=0;ra(90,b|0,a|0);a=x;x=0;if(a&1){a=Wa()|0;Ua(b|0);fb(a|0)}else ub(b|0,616,80)}function as(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+144|0;h=v+24|0;a=v+32|0;w=v+16|0;q=v+8|0;n=v+4|0;o=v+28|0;j=v;k[w>>2]=a;A=w+4|0;k[A>>2]=189;l=a+100|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44220)|0;a=x;x=0;a:do{if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(1,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,w|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(67,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[w>>2]|0;l=k[q>>2]|0;h=l+-1|0;b:do{if(a>>>0>>0)do{if((i[a>>0]|0)!=j<<24>>24)break b;a=a+1|0}while(a>>>0>>0)}while(0);x=0;va(32,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do{if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a;if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0}while(0);h=(a|0)==0;do{if(s){if((k[t+12>>2]|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a;if((a|0)==-1){k[c>>2]=0;z=29;break}}if(!h)z=30}else z=29}while(0);if((z|0)==29?h:0)z=30;if((z|0)==30)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}}while(0);h=Wa()|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if(!a)y=h;else z=36}else{h=Wa()|0;k[w>>2]=0;z=36}if((z|0)==36){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else y=h}fb(y|0);return 0}function bs(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do{if(a){a=Ss(b,43828)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;Sm(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43764)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=y;r=z;return}function cs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i[a>>0]|0;g=a+4|0;f=k[g>>2]|0;a:do{if(((e&1)==0?(e&255)>>>1:f)|0){if((b|0)!=(c|0)){e=c+-4|0;if(e>>>0>b>>>0){f=b;do{h=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=h;f=f+4|0;e=e+-4|0}while(f>>>0>>0)}e=i[a>>0]|0;f=k[g>>2]|0}h=(e&1)==0;g=h?a+1|0:k[a+8>>2]|0;c=c+-4|0;a=g+(h?(e&255)>>>1:f)|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;b:do{if(c>>>0>b>>>0){while(1){if(!e?(f<<24>>24|0)!=(k[b>>2]|0):0)break;g=(a-g|0)>1?g+1|0:g;b=b+4|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;if(b>>>0>=c>>>0)break b}k[d>>2]=4;break a}}while(0);if(!e?((k[c>>2]|0)+-1|0)>>>0>=f<<24>>24>>>0:0)k[d>>2]=4}}while(0);return}function ds(a){a=a|0;return}function es(a){a=a|0;mj(a);return}function fs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+576|0;w=B+424|0;A=B;a=B+24|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+464|0;j=B+4|0;z=B+468|0;k[D>>2]=a;F=D+4|0;k[F>>2]=189;l=a+400|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44212)|0;v=x;x=0;a:do{if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[w>>2]=k[j>>2],m=ua(2,b|0,w|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do{if(m){x=0;Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,59007,59017,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>392){a=Pl((a>>2)+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do{if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+40|0;v=w;if(l>>>0>>0){m=w+4|0;d=m+4|0;e=d+4|0;n=e+4|0;o=n+4|0;p=o+4|0;q=p+4|0;s=q+4|0;t=s+4|0;do{j=k[l>>2]|0;do{if((k[w>>2]|0)!=(j|0))if((k[m>>2]|0)!=(j|0))if((k[d>>2]|0)!=(j|0))if((k[e>>2]|0)!=(j|0))if((k[n>>2]|0)==(j|0))j=n;else{if((k[o>>2]|0)==(j|0)){j=o;break}if((k[p>>2]|0)==(j|0)){j=p;break}if((k[q>>2]|0)==(j|0)){j=q;break}if((k[s>>2]|0)==(j|0)){j=s;break}j=(k[t>>2]|0)==(j|0)?t:u}else j=e;else j=d;else j=m;else j=w}while(0);i[a>>0]=i[59007+(j-v>>2)>>0]|0;l=l+4|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}}while(0);a=k[b>>2]|0;do{if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;j=1;break}else{j=(k[b>>2]|0)==0;break}}else j=1}while(0);a=k[c>>2]|0;do{if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)!=-1)if(j)break;else{G=40;break}else{k[c>>2]=0;G=38;break}}else G=38}while(0);if((G|0)==38?j:0)G=40;if((G|0)==40)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[F>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10}while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)E=j;else{h=k[F>>2]|0;G=47}}else{j=Wa()|0;k[D>>2]=0;h=189;G=47}if((G|0)==47){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else E=j}fb(E|0);return 0}function gs(a,b,c,d,e,f,g,h,j,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;var o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;Y=r;r=r+512|0;K=Y+96|0;o=Y+104|0;_=Y+88|0;O=Y+80|0;N=Y+76|0;P=Y+504|0;L=Y+72|0;Q=Y+68|0;T=Y+56|0;X=Y+44|0;V=Y+32|0;U=Y+20|0;W=Y+8|0;M=Y+4|0;S=Y;k[K>>2]=n;k[_>>2]=o;Z=_+4|0;k[Z>>2]=189;k[O>>2]=o;k[N>>2]=o+400;k[T>>2]=0;k[T+4>>2]=0;k[T+8>>2]=0;k[X>>2]=0;k[X+4>>2]=0;k[X+8>>2]=0;k[V>>2]=0;k[V+4>>2]=0;k[V+8>>2]=0;k[U>>2]=0;k[U+4>>2]=0;k[U+8>>2]=0;k[W>>2]=0;k[W+4>>2]=0;k[W+8>>2]=0;x=0;za(2,c|0,d|0,P|0,L|0,Q|0,T|0,X|0,V|0,U|0,M|0);J=x;x=0;a:do{if(J&1)c=Wa()|0;else{k[m>>2]=k[j>>2];G=V+4|0;H=U+4|0;I=U+8|0;J=V+8|0;z=(e&512|0)!=0;A=X+8|0;B=X+4|0;C=W+4|0;D=W+8|0;E=P+3|0;F=T+4|0;y=0;q=0;b:while(1){n=k[a>>2]|0;do{if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);c=k[b>>2]|0;do{if(c){n=k[c+12>>2]|0;if((n|0)==(k[c+16>>2]|0)){x=0;n=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[n>>2]|0;if((n|0)!=-1)if(d){w=c;break}else{s=o;R=244;break b}else{k[b>>2]=0;R=16;break}}else R=16}while(0);if((R|0)==16){R=0;if(d){s=o;R=244;break}else w=0}c:do{switch(i[P+y>>0]|0){case 1:{if((y|0)!=3){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;R=x;x=0;if(R&1){R=26;break b}if(!n){R=42;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=26;break b}else{n=w;e=w;R=44}}else n=o;break}case 0:{if((y|0)==3)n=o;else{n=w;e=w;R=44}break}case 3:{c=i[V>>0]|0;n=(c&1)==0?(c&255)>>>1:k[G>>2]|0;d=i[U>>0]|0;e=(d&1)==0?(d&255)>>>1:k[H>>2]|0;if((n|0)==(0-e|0))n=o;else{if(!n){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[U>>0]|0}else{n=k[c>>2]|0;c=d}if((n|0)!=(k[((c&1)==0?H:k[I>>2]|0)>>2]|0)){n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q;break c}p=k[a>>2]|0;s=k[p+12>>2]|0;d=k[p+16>>2]|0;n=(s|0)==(d|0);if(!e){if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[V>>0]|0}else n=k[s>>2]|0;if((n|0)!=(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){i[g>>0]=1;n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}d=k[a>>2]|0;c=i[V>>0]|0;p=d;s=k[d+12>>2]|0;d=k[d+16>>2]|0}else n=k[s>>2]|0;e=p+12|0;d=(s|0)==(d|0);if((n|0)==(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){if(d){x=0;ta(k[(k[p>>2]|0)+40>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[e>>2]=s+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(d){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[s>>2]|0;if((n|0)!=(k[((i[U>>0]&1)==0?H:k[I>>2]|0)>>2]|0)){R=107;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q}break}case 2:{if(!(y>>>0<2|(q|0)!=0)?!(z|(y|0)==2&(i[E>>0]|0)!=0):0){n=o;q=0;break c}e=i[X>>0]|0;d=k[A>>2]|0;c=(e&1)==0?B:d;n=c;d:do{if((y|0)!=0?(l[P+(y+-1)>>0]|0)<2:0){v=(e&1)==0;e:do{if((c|0)!=((v?B:d)+((v?(e&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;while(1){x=0;c=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,k[e>>2]|0)|0;v=x;x=0;if(v&1){R=23;break b}if(!c)break;e=e+4|0;n=e;c=i[X>>0]|0;d=k[A>>2]|0;v=(c&1)==0;if((e|0)==((v?B:d)+((v?(c&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;break e}}e=i[X>>0]|0;d=k[A>>2]|0}}while(0);s=(e&1)==0?B:d;c=s;t=n-c>>2;u=i[W>>0]|0;p=(u&1)==0;u=p?(u&255)>>>1:k[C>>2]|0;if(u>>>0>=t>>>0){p=p?C:k[D>>2]|0;v=p+(u<<2)|0;if(!t)c=n;else{p=p+(u-t<<2)|0;while(1){if((k[p>>2]|0)!=(k[s>>2]|0))break d;p=p+4|0;if((p|0)==(v|0)){c=n;break}else s=s+4|0}}}}else c=n}while(0);n=(e&1)==0;n=(n?B:d)+((n?(e&255)>>>1:k[B>>2]|0)<<2)|0;f:do{if((c|0)!=(n|0)){p=w;e=w;n=c;while(1){c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else break f;else{k[b>>2]=0;c=0;R=136;break}}else{c=p;R=136}}while(0);if((R|0)==136){R=0;if(d)break f;else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else d=k[e>>2]|0;if((d|0)!=(k[n>>2]|0))break f;d=k[a>>2]|0;e=d+12|0;p=k[e>>2]|0;if((p|0)==(k[d+16>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else k[e>>2]=p+4;n=n+4|0;d=i[X>>0]|0;w=(d&1)==0;d=(w?B:k[A>>2]|0)+((w?(d&255)>>>1:k[B>>2]|0)<<2)|0;if((n|0)==(d|0)){n=d;break}else{p=c;e=s}}}}while(0);if(z?(w=i[X>>0]|0,v=(w&1)==0,(n|0)!=((v?B:k[A>>2]|0)+((v?(w&255)>>>1:k[B>>2]|0)<<2)|0)):0){R=148;break b}else n=o;break}case 4:{u=k[Q>>2]|0;t=w;p=w;n=o;c=0;g:while(1){d=k[a>>2]|0;do{if(d){e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[e>>2]|0;if((d|0)==-1){k[a>>2]=0;e=1;break}else{e=(k[a>>2]|0)==0;break}}else e=1}while(0);do{if(p){d=k[p+12>>2]|0;if((d|0)==(k[p+16>>2]|0)){x=0;d=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(e^(t|0)==0){d=t;s=t;break}else{o=t;break g}else{k[b>>2]=0;d=0;R=162;break}}else{d=t;R=162}}while(0);if((R|0)==162){R=0;if(e){o=d;break}else s=0}e=k[a>>2]|0;o=k[e+12>>2]|0;if((o|0)==(k[e+16>>2]|0)){x=0;e=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}}else e=k[o>>2]|0;x=0;o=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,e|0)|0;w=x;x=0;if(w&1){R=25;break b}if(o){o=k[m>>2]|0;if((o|0)==(k[K>>2]|0)){x=0;Fa(14,j|0,m|0,K|0);w=x;x=0;if(w&1){R=25;break b}o=k[m>>2]|0}k[m>>2]=o+4;k[o>>2]=e;c=c+1|0}else{w=i[T>>0]|0;if(!((e|0)==(u|0)&((c|0)!=0?(((w&1)==0?(w&255)>>>1:k[F>>2]|0)|0)!=0:0))){o=d;break}if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=25;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w;c=0}e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}else{t=d;p=s;continue}}else{k[o>>2]=p+4;t=d;p=s;continue}}if((c|0)!=0?(k[_>>2]|0)!=(n|0):0){if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=26;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w}s=k[M>>2]|0;if((s|0)>0){c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(o){c=k[o+12>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;c=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d)break;else{R=206;break b}else{k[b>>2]=0;R=200;break}}else R=200}while(0);if((R|0)==200){R=0;if(d){R=206;break b}else o=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)!=(k[L>>2]|0)){R=206;break b}c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[d>>2]=e+4;if((s|0)>0){p=o;e=o;t=s;while(1){c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else{R=231;break b}else{k[b>>2]=0;c=0;R=224;break}}else{c=p;R=224}}while(0);if((R|0)==224){R=0;if(d){R=231;break b}else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;x=0;d=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,d|0)|0;w=x;x=0;if(w&1){R=24;break b}if(!d){R=231;break b}if((k[m>>2]|0)==(k[K>>2]|0)?(x=0,Fa(14,j|0,m|0,K|0),w=x,x=0,w&1):0){R=24;break b}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;e=k[m>>2]|0;k[m>>2]=e+4;k[e>>2]=d;d=t;t=t+-1|0;k[M>>2]=t;e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else k[o>>2]=p+4;if((d|0)<=1)break;else{p=c;e=s}}}}if((k[m>>2]|0)==(k[j>>2]|0)){R=242;break b}break}default:n=o}}while(0);h:do{if((R|0)==44)while(1){R=0;c=k[a>>2]|0;do{if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);do{if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(n|0)==0){p=n;e=n;break}else{n=o;break h}else{k[b>>2]=0;n=0;R=57;break}}else R=57}while(0);if((R|0)==57){R=0;if(d){n=o;break h}else{p=n;e=0}}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=21;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;w=x;x=0;if(w&1){R=21;break b}if(!n){n=o;break h}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=21;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=21;break b}else{n=p;R=44}}}while(0);y=y+1|0;if(y>>>0>=4){s=n;R=244;break}else o=n}i:switch(R|0){case 21:{c=Wa()|0;break a}case 22:{c=Wa()|0;break a}case 23:{c=Wa()|0;break a}case 24:{c=Wa()|0;break a}case 25:{c=Wa()|0;break a}case 26:{c=Wa()|0;break a}case 42:{k[f>>2]=k[f>>2]|4;c=0;break}case 107:{k[f>>2]=k[f>>2]|4;c=0;break}case 148:{k[f>>2]=k[f>>2]|4;c=0;break}case 206:{k[f>>2]=k[f>>2]|4;c=0;break}case 231:{k[f>>2]=k[f>>2]|4;c=0;break}case 242:{k[f>>2]=k[f>>2]|4;c=0;break}case 244:{j:do{if(q){o=q+4|0;p=q+8|0;e=1;k:while(1){n=i[q>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[o>>2]|0;if(e>>>0>=n>>>0)break j;n=k[a>>2]|0;do{if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1}while(0);n=k[b>>2]|0;do{if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)!=-1)if(d)break;else{R=271;break k}else{k[b>>2]=0;R=263;break}}else R=263}while(0);if((R|0)==263?(R=0,d):0){R=271;break}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break}}else n=k[c>>2]|0;if(!(i[q>>0]&1))c=o;else c=k[p>>2]|0;if((n|0)!=(k[c+(e<<2)>>2]|0)){R=271;break}n=e+1|0;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;m=x;x=0;if(m&1){R=20;break}else{e=n;continue}}else{k[d>>2]=e+4;e=n;continue}}if((R|0)==20){c=Wa()|0;break a}else if((R|0)==271){k[f>>2]=k[f>>2]|4;c=0;break i}}}while(0);n=k[_>>2]|0;if((n|0)!=(s|0)?(k[S>>2]=0,cs(T,n,s,S),(k[S>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;c=0}else c=1;break}}en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}r=Y;return c|0}}while(0);en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}fb(c|0);return 0}function hs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+432|0;h=v+424|0;a=v+24|0;y=v+16|0;q=v+8|0;n=v+4|0;o=v+428|0;j=v;k[y>>2]=a;A=y+4|0;k[A>>2]=189;l=a+400|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44212)|0;a=x;x=0;a:do{if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(2,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,y|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(92,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[y>>2]|0;l=k[q>>2]|0;h=l+-4|0;b:do{if(a>>>0>>0)do{if((k[a>>2]|0)!=(j|0))break b;a=a+4|0}while(a>>>0>>0)}while(0);x=0;va(33,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do{if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;h=1;break}else{h=(k[b>>2]|0)==0;break}}else h=1}while(0);do{if(s){a=k[t+12>>2]|0;if((a|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a}else a=k[a>>2]|0;if((a|0)!=-1)if(h)break;else{z=32;break}else{k[c>>2]=0;z=30;break}}else z=30}while(0);if((z|0)==30?h:0)z=32;if((z|0)==32)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}}while(0);h=Wa()|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if(!a)w=h;else z=38}else{h=Wa()|0;k[y>>2]=0;z=38}if((z|0)==38){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else w=h}fb(w|0);return 0}function is(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do{if(a){a=Ss(b,43956)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;en(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;en(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43892)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;en(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=y;r=z;return}function js(a){a=a|0;return}function ks(a){a=a|0;mj(a);return}function ls(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+384|0;u=D+8|0;g=D;j=D+284|0;l=D+72|0;h=D+184|0;F=D+68|0;A=D+80|0;w=D+77|0;B=D+76|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+84|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do{if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44220)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+32>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(3,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(1,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+q|0,o|0,n|0,A|0,i[w>>0]|0,i[B>>0]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(39,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}Sm(H);Sm(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;Sm(H);Sm(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ms(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;D=r;r=r+112|0;o=D+108|0;p=D+96|0;t=D+92|0;u=D+80|0;v=D+68|0;w=D+56|0;y=D+52|0;z=D+40|0;A=D+36|0;B=D+24|0;q=D+12|0;s=D;do{if(a){a=Ss(c,43828)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](o,a);b=k[o>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](p,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[p>>2];k[j+4>>2]=k[p+4>>2];k[j+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);n=a;break}}else{Mb[k[c+40>>2]&127](t,a);b=k[t>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[u>>2];k[j+4>>2]=k[u+4>>2];k[j+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);n=a;break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[n>>2]|0)+20>>2]&127](v,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[v>>2];k[g+4>>2]=k[v+4>>2];k[g+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[n>>2]|0)+24>>2]&127](w,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[w>>2];k[h+4>>2]=k[w+4>>2];k[h+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43764)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](z,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;Sm(z);m=a;break}}else{Mb[k[c+40>>2]&127](A,a);b=k[A>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](B,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[B>>2];k[j+4>>2]=k[B+4>>2];k[j+8>>2]=k[B+8>>2];k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;Sm(B);m=a;break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[m>>2]|0)+20>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);Mb[k[(k[m>>2]|0)+24>>2]&127](s,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[s>>2];k[h+4>>2]=k[s+4>>2];k[h+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;Sm(s);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=C;r=D;return}function ns(a,b,c,d,e,f,g,h,l,m,n,o,p,q,r){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;k[c>>2]=a;N=q+4|0;O=q+8|0;P=q+1|0;H=p+4|0;I=(d&512|0)==0;J=p+8|0;K=p+1|0;L=g+8|0;M=(r|0)>0;A=o+4|0;B=o+8|0;C=o+1|0;D=r+1|0;F=-2-r-((r|0)<0?~r:-1)|0;G=(r|0)>0;z=0;do{switch(i[l+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;break}case 3:{y=i[q>>0]|0;s=(y&1)==0;if((s?(y&255)>>>1:k[N>>2]|0)|0){x=i[(s?P:k[O>>2]|0)>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}break}case 2:{u=i[p>>0]|0;s=(u&1)==0;u=s?(u&255)>>>1:k[H>>2]|0;if(!(I|(u|0)==0)){t=s?K:k[J>>2]|0;v=t+u|0;s=k[c>>2]|0;if(u)do{i[s>>0]=i[t>>0]|0;t=t+1|0;s=s+1|0}while((t|0)!=(v|0));k[c>>2]=s}break}case 4:{s=k[c>>2]|0;e=h?e+1|0:e;w=e;v=k[L>>2]|0;a:do{if(e>>>0>>0){t=e;do{u=i[t>>0]|0;if(u<<24>>24<=-1)break a;if(!(j[v+(u<<24>>24<<1)>>1]&2048))break a;t=t+1|0}while(t>>>0>>0)}else t=e}while(0);u=t;if(M){x=-2-u-~(u>>>0>w>>>0?w:u)|0;x=F>>>0>x>>>0?F:x;if(t>>>0>e>>>0&G){u=t;w=r;while(1){u=u+-1|0;y=i[u>>0]|0;v=k[c>>2]|0;k[c>>2]=v+1;i[v>>0]=y;v=(w|0)>1;if(!(u>>>0>e>>>0&v))break;else w=w+-1|0}}else v=G;y=D+x|0;u=t+(x+1)|0;if(v)w=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;else w=0;t=k[c>>2]|0;k[c>>2]=t+1;if((y|0)>0){v=y;while(1){i[t>>0]=w;t=k[c>>2]|0;k[c>>2]=t+1;if((v|0)>1)v=v+-1|0;else break}}i[t>>0]=m}else u=t;if((u|0)!=(e|0)){y=i[o>>0]|0;t=(y&1)==0;if(!((t?(y&255)>>>1:k[A>>2]|0)|0))t=-1;else t=i[(t?C:k[B>>2]|0)>>0]|0;if((u|0)!=(e|0)){v=0;w=0;while(1){if((w|0)==(t|0)){y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=n;v=v+1|0;y=i[o>>0]|0;t=(y&1)==0;if(v>>>0<(t?(y&255)>>>1:k[A>>2]|0)>>>0){t=i[(t?C:k[B>>2]|0)+v>>0]|0;t=t<<24>>24==127?-1:t<<24>>24;w=0}else{t=w;w=0}}u=u+-1|0;x=i[u>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;if((u|0)==(e|0))break;else w=w+1|0}}}else{x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}t=k[c>>2]|0;if((s|0)!=(t|0)?(E=t+-1|0,s>>>0>>0):0){t=E;do{y=i[s>>0]|0;i[s>>0]=i[t>>0]|0;i[t>>0]=y;s=s+1|0;t=t+-1|0}while(s>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);t=i[q>>0]|0;e=(t&1)==0;t=e?(t&255)>>>1:k[N>>2]|0;if(t>>>0>1){s=e?P:k[O>>2]|0;u=s+t|0;e=k[c>>2]|0;if((t|0)!=1){s=s+1|0;do{i[e>>0]=i[s>>0]|0;e=e+1|0;s=s+1|0}while((s|0)!=(u|0))}k[c>>2]=e}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function os(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+176|0;p=z+56|0;B=z+52|0;w=z+64|0;t=z+61|0;y=z+60|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;o=z+68|0;v=z+8|0;u=z+4|0;q=z;a=tn(d)|0;k[B>>2]=a;x=0;s=Aa(37,B|0,44220)|0;n=x;x=0;do{if(n&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;n=f+4|0;if(!((g?(m&255)>>>1:k[n>>2]|0)|0))m=0;else{g=i[(g?f+1|0:k[f+8>>2]|0)>>0]|0;x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=g<<24>>24==h<<24>>24}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(3,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=0;F=17}}else F=17}else{h=0;g=o;F=17}if((F|0)==17){G=(j&1)==0;f=G?f+1|0:k[f+8>>2]|0;x=0;wa(1,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+(G?(j&255)>>>1:c)|0,s|0,m|0,w|0,i[t>>0]|0,i[y>>0]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[q>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[p>>2]=k[q>>2],A=sa(39,p|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}Sm(D);Sm(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;Sm(D);Sm(E);Sm(C)}}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function ps(a){a=a|0;return}function qs(a){a=a|0;mj(a);return}function rs(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+992|0;u=D+8|0;g=D;j=D+888|0;l=D+880|0;h=D+480|0;F=D+76|0;A=D+884|0;w=D+72|0;B=D+68|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+80|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do{if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q<<2)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44212)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+48>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(4,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j<<2)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(2,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+(q<<2)|0,o|0,n|0,A|0,k[w>>2]|0,k[B>>2]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(40,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}en(H);en(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;en(H);en(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ss(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;B=r;r=r+112|0;m=B+108|0;n=B+96|0;q=B+92|0;s=B+80|0;t=B+68|0;u=B+56|0;v=B+52|0;w=B+40|0;y=B+36|0;z=B+24|0;o=B+12|0;p=B;do{if(a){a=Ss(c,43956)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](m,a);b=k[m>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);break}}else{Mb[k[c+40>>2]&127](q,a);b=k[q>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](s,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[s>>2];k[j+4>>2]=k[s+4>>2];k[j+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;en(s);break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](t,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[t>>2];k[g+4>>2]=k[t+4>>2];k[g+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+24>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43892)|0;c=k[a>>2]|0;do{if(b){Mb[k[c+44>>2]&127](v,a);b=k[v>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](w,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[w>>2];k[j+4>>2]=k[w+4>>2];k[j+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);break}}else{Mb[k[c+40>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](z,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;en(z);break}}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](o,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}k[g>>2]=k[o>>2];k[g+4>>2]=k[o+4>>2];k[g+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);Mb[k[(k[a>>2]|0)+24>>2]&127](p,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[p>>2];k[h+4>>2]=k[p+4>>2];k[h+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;en(p);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}}while(0);k[l>>2]=A;r=B;return}function ts(a,b,c,d,e,f,g,h,j,l,m,n,o,p,q){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;k[c>>2]=a;J=p+4|0;K=p+8|0;C=o+4|0;D=(d&512|0)==0;E=o+8|0;F=(q|0)>0;G=n+4|0;H=n+8|0;I=n+1|0;A=(q|0)>0;z=0;do{switch(i[j+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x;break}case 3:{y=i[p>>0]|0;r=(y&1)==0;if((r?(y&255)>>>1:k[J>>2]|0)|0){x=k[(r?J:k[K>>2]|0)>>2]|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x}break}case 2:{v=i[o>>0]|0;r=(v&1)==0;v=r?(v&255)>>>1:k[C>>2]|0;if(!(D|(v|0)==0)){r=r?C:k[E>>2]|0;t=r+(v<<2)|0;u=k[c>>2]|0;if(v){s=u;while(1){k[s>>2]=k[r>>2];r=r+4|0;if((r|0)==(t|0))break;else s=s+4|0}}k[c>>2]=u+(v<<2)}break}case 4:{r=k[c>>2]|0;e=h?e+4|0:e;a:do{if(e>>>0>>0){s=e;do{if(!(Qb[k[(k[g>>2]|0)+12>>2]&63](g,2048,k[s>>2]|0)|0))break a;s=s+4|0}while(s>>>0>>0)}else s=e}while(0);if(F){if(s>>>0>e>>>0&A){v=k[c>>2]|0;u=q;while(1){s=s+-4|0;t=v+4|0;k[v>>2]=k[s>>2];w=u+-1|0;u=(u|0)>1;if(s>>>0>e>>>0&u){v=t;u=w}else{v=w;break}}k[c>>2]=t;t=v}else{u=A;t=q}if(u)w=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;else w=0;x=k[c>>2]|0;u=t+((t|0)<0?~t:-1)|0;if((t|0)>0){v=x;while(1){k[v>>2]=w;if((t|0)>1){v=v+4|0;t=t+-1|0}else break}}k[c>>2]=x+(u+2<<2);k[x+(u+1<<2)>>2]=l}if((s|0)==(e|0)){x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;y=k[c>>2]|0;s=y+4|0;k[c>>2]=s;k[y>>2]=x}else{x=i[n>>0]|0;t=(x&1)==0;y=k[G>>2]|0;if(!((t?(x&255)>>>1:y)|0))t=-1;else t=i[(t?I:k[H>>2]|0)>>0]|0;if((s|0)!=(e|0)){w=0;x=0;while(1){u=k[c>>2]|0;if((x|0)==(t|0)){v=u+4|0;k[c>>2]=v;k[u>>2]=m;w=w+1|0;u=i[n>>0]|0;t=(u&1)==0;if(w>>>0<(t?(u&255)>>>1:y)>>>0){t=i[(t?I:k[H>>2]|0)+w>>0]|0;u=v;t=t<<24>>24==127?-1:t<<24>>24;v=0}else{u=v;t=x;v=0}}else v=x;s=s+-4|0;x=k[s>>2]|0;k[c>>2]=u+4;k[u>>2]=x;if((s|0)==(e|0))break;else x=v+1|0}}s=k[c>>2]|0}if((r|0)!=(s|0)?(B=s+-4|0,r>>>0>>0):0){s=B;do{y=k[r>>2]|0;k[r>>2]=k[s>>2];k[s>>2]=y;r=r+4|0;s=s+-4|0}while(r>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);r=i[p>>0]|0;e=(r&1)==0;r=e?(r&255)>>>1:k[J>>2]|0;if(r>>>0>1){s=e?J:k[K>>2]|0;e=s+4|0;s=s+(r<<2)|0;t=k[c>>2]|0;u=s-e|0;if((r|0)!=1){r=t;while(1){k[r>>2]=k[e>>2];e=e+4|0;if((e|0)==(s|0))break;else r=r+4|0}}k[c>>2]=t+(u>>>2<<2)}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function us(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+480|0;o=z+468|0;B=z+464|0;w=z+472|0;t=z+56|0;y=z+52|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;n=z+64|0;v=z+8|0;u=z+4|0;p=z;a=tn(d)|0;k[B>>2]=a;x=0;q=Aa(37,B|0,44212)|0;s=x;x=0;do{if(s&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;s=f+4|0;if(!((g?(m&255)>>>1:k[s>>2]|0)|0))m=0;else{g=k[(g?s:k[f+8>>2]|0)>>2]|0;x=0;h=Aa(k[(k[q>>2]|0)+44>>2]|0,q|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=(g|0)==(h|0)}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(4,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g<<2)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=0;F=17}}else F=17}else{h=0;g=n;F=17}if((F|0)==17){G=(j&1)==0;f=G?s:k[f+8>>2]|0;x=0;wa(2,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+((G?(j&255)>>>1:c)<<2)|0,q|0,m|0,w|0,k[t>>2]|0,k[y>>2]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[p>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[o>>2]=k[p>>2],A=sa(40,o|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}en(D);en(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;en(D);en(E);Sm(C)}}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function vs(a){a=a|0;return}function ws(a){a=a|0;mj(a);return}function xs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function ys(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0;h=r;r=r+16|0;j=h;k[j>>2]=0;k[j+4>>2]=0;k[j+8>>2]=0;g=i[f>>0]|0;l=(g&1)==0;b=l?f+1|0:k[f+8>>2]|0;g=l?(g&255)>>>1:k[f+4>>2]|0;f=b+g|0;a:do{if((g|0)>0){while(1){x=0;ra(67,j|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0){g=4;break a}}b=Wa()|0;g=7}else g=4}while(0);b:do{if((g|0)==4){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[j>>0]&1)==0?j+1|0:k[j+8>>2]|0)|0)|0;l=x;x=0;if(l&1){b=Wa()|0;g=7;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;l=xl(b)|0;f=b+l|0;c:do{if((l|0)>0){while(1){x=0;ra(67,a|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0)break c}b=Wa()|0;Sm(a);break b}}while(0);Sm(j);r=h;return}}while(0);Sm(j);fb(b|0)}function zs(a,b){a=a|0;b=b|0;return}function As(a){a=a|0;return}function Bs(a){a=a|0;mj(a);return}function Cs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function Ds(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;v=r;r=r+224|0;n=v+184|0;m=v+192|0;l=v+180|0;o=v+176|0;t=v+168|0;s=v+40|0;q=v+32|0;u=v+28|0;w=v+16|0;j=v+8|0;p=v;k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;k[j+4>>2]=0;k[j>>2]=44696;h=i[f>>0]|0;y=(h&1)==0;g=f+4|0;b=y?g:k[f+8>>2]|0;f=y?(h&255)>>>1:k[g>>2]|0;g=b+(f<<2)|0;h=m+32|0;a:do{if((f|0)>0){b:while(1){k[o>>2]=b;x=0;f=Ha(k[(k[j>>2]|0)+12>>2]|0,j|0,n|0,b|0,g|0,o|0,m|0,h|0,l|0)|0;y=x;x=0;if(y&1){f=12;break}if((f|0)==2?1:(k[o>>2]|0)==(b|0)){f=5;break}if(m>>>0<(k[l>>2]|0)>>>0){b=m;do{x=0;ra(67,w|0,i[b>>0]|0);y=x;x=0;if(y&1){f=11;break b}b=b+1|0}while(b>>>0<(k[l>>2]|0)>>>0)}b=k[o>>2]|0;if(!((f|0)!=2&b>>>0>>0)){f=9;break a}}if((f|0)==5){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==11)b=Wa()|0;else if((f|0)==12)b=Wa()|0}else f=9}while(0);c:do{if((f|0)==9){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[w>>0]&1)==0?w+1|0:k[w+8>>2]|0)|0)|0;y=x;x=0;if(y&1){b=Wa()|0;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[p+4>>2]=0;k[p>>2]=44744;y=xl(b)|0;g=b+y|0;h=g;j=s+128|0;d:do{if((y|0)>0){e:while(1){k[u>>2]=b;x=0;f=Ha(k[(k[p>>2]|0)+16>>2]|0,p|0,t|0,b|0,((h-b|0)>32?b+32|0:g)|0,u|0,s|0,j|0,q|0)|0;y=x;x=0;if(y&1){f=24;break}if((f|0)==2?1:(k[u>>2]|0)==(b|0)){f=18;break}if(s>>>0<(k[q>>2]|0)>>>0){b=s;do{x=0;ra(92,a|0,k[b>>2]|0);y=x;x=0;if(y&1){f=23;break e}b=b+4|0}while(b>>>0<(k[q>>2]|0)>>>0)}b=k[u>>2]|0;if(!((f|0)!=2&b>>>0>>0))break d}if((f|0)==18){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==23)b=Wa()|0;else if((f|0)==24)b=Wa()|0;en(a);break c}}while(0);Sm(w);r=v;return}}while(0);Sm(w);fb(b|0)}function Es(a,b){a=a|0;b=b|0;return}function Fs(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;k[a+4>>2]=b+-1;k[a>>2]=44196;f=a+8|0;x=0;ra(94,f|0,28);e=x;x=0;if(e&1)b=Wa()|0;else{e=a+144|0;x=0;Fa(5,e|0,58885,1);d=x;x=0;if(d&1)b=Wa()|0;else{c=k[f>>2]|0;d=a+12|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do{b=b+-4|0}while((b|0)!=(c|0));k[d>>2]=b}k[495]=0;k[494]=43124;x=0;ra(95,a|0,1976);d=x;x=0;do{if(((((((((((((!(d&1)?(k[497]=0,k[496]=43164,x=0,ra(96,a|0,1984),d=x,x=0,!(d&1)):0)?(k[499]=0,k[498]=44236,k[500]=0,i[2004]=0,d=Ys()|0,k[500]=d,x=0,ra(97,a|0,1992),d=x,x=0,!(d&1)):0)?(k[503]=0,k[502]=44484,x=0,ra(98,a|0,2008),d=x,x=0,!(d&1)):0)?(k[505]=0,k[504]=44552,x=0,ra(99,a|0,2016),d=x,x=0,!(d&1)):0)?(x=0,ra(100,2024,1),d=x,x=0,!(d&1)):0)?(x=0,ra(101,a|0,2024),d=x,x=0,!(d&1)):0)?(k[511]=0,k[510]=44600,x=0,ra(102,a|0,2040),d=x,x=0,!(d&1)):0)?(k[513]=0,k[512]=44648,x=0,ra(103,a|0,2048),d=x,x=0,!(d&1)):0)?(bu(2056,1),x=0,ra(104,a|0,2056),d=x,x=0,!(d&1)):0)?(cu(2080,1),x=0,ra(105,a|0,2080),d=x,x=0,!(d&1)):0)?(k[529]=0,k[528]=43204,x=0,ra(106,a|0,2112),d=x,x=0,!(d&1)):0)?(k[531]=0,k[530]=43276,x=0,ra(107,a|0,2120),d=x,x=0,!(d&1)):0)?(k[533]=0,k[532]=43348,x=0,ra(108,a|0,2128),d=x,x=0,!(d&1)):0){k[535]=0;k[534]=43408;x=0;ra(109,a|0,2136);d=x;x=0;if(d&1){g=42;break}k[537]=0;k[536]=43716;x=0;ra(110,a|0,2144);d=x;x=0;if(d&1){g=42;break}k[539]=0;k[538]=43780;x=0;ra(111,a|0,2152);d=x;x=0;if(d&1){g=42;break}k[541]=0;k[540]=43844;x=0;ra(112,a|0,2160);d=x;x=0;if(d&1){g=42;break}k[543]=0;k[542]=43908;x=0;ra(113,a|0,2168);d=x;x=0;if(d&1){g=42;break}k[545]=0;k[544]=43972;x=0;ra(114,a|0,2176);d=x;x=0;if(d&1){g=42;break}k[547]=0;k[546]=44008;x=0;ra(115,a|0,2184);d=x;x=0;if(d&1){g=42;break}k[549]=0;k[548]=44044;x=0;ra(116,a|0,2192);d=x;x=0;if(d&1){g=42;break}k[551]=0;k[550]=44080;x=0;ra(117,a|0,2200);d=x;x=0;if(d&1){g=42;break}k[553]=0;k[552]=43468;k[554]=43516;x=0;ra(118,a|0,2208);d=x;x=0;if(d&1){g=42;break}k[557]=0;k[556]=43560;k[558]=43608;x=0;ra(119,a|0,2224);d=x;x=0;if(d&1){g=42;break}k[561]=0;k[560]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[562]=b;k[560]=43652;x=0;ra(120,a|0,2240);d=x;x=0;if(d&1){g=42;break}k[565]=0;k[564]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[566]=b;k[564]=43684;x=0;ra(121,a|0,2256);g=x;x=0;if(g&1){g=42;break}k[569]=0;k[568]=44116;x=0;ra(122,a|0,2272);g=x;x=0;if(g&1){g=42;break}k[571]=0;k[570]=44156;x=0;ra(123,a|0,2280);g=x;x=0;if(g&1){g=42;break}return}else g=42}while(0);if((g|0)==42)b=Wa()|0;Sm(e)}Nv(f)}fb(b|0)}function Gs(){var a=0;do{if((i[2288]|0)==0?(Qa(2288)|0)!=0:0){x=0;Da(4)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2288);fb(a|0)}else{k[11246]=44980;Ya(2288);break}}}while(0);return k[11246]|0}function Hs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;ym(b);e=a+8|0;d=k[e>>2]|0;do{if((k[a+12>>2]|0)-d>>2>>>0<=c>>>0){x=0;ra(124,e|0,c+1|0);a=x;x=0;if(!(a&1)){d=k[e>>2]|0;break}d=Wa()|0;if(b)zm(b)|0;fb(d|0)}}while(0);a=k[d+(c<<2)>>2]|0;if(a){zm(a)|0;d=k[e>>2]|0}k[d+(c<<2)>>2]=b;return}function Is(a){a=a|0;var b=0,c=0,d=0,e=0;k[a>>2]=44196;d=a+8|0;e=a+12|0;b=k[d>>2]|0;if((k[e>>2]|0)!=(b|0)){c=0;do{b=k[b+(c<<2)>>2]|0;if(b)zm(b)|0;c=c+1|0;b=k[d>>2]|0}while(c>>>0<(k[e>>2]|0)-b>>2>>>0)}Sm(a+144|0);Nv(d);return}function Js(a){a=a|0;Is(a);mj(a);return}function Ks(a,b){a=a|0;b=b|0;if(Pv(a,b)|0)return k[(k[a+8>>2]|0)+(b<<2)>>2]|0;else{a=Va(4)|0;Aj(a);ub(a|0,640,82)}return 0}function Ls(){Fs(2296,1);k[11245]=2296;return 44980}function Ms(){var a=0;a=Gs()|0;a=k[a>>2]|0;k[11247]=a;ym(a);return 44988}function Ns(){var a=0;do{if((i[2456]|0)==0?(Qa(2456)|0)!=0:0){x=0;Da(5)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2456);fb(a|0)}else{k[11248]=44988;Ya(2456);break}}}while(0);return k[11248]|0}function Os(a){a=a|0;var b=0,c=0;x=0;b=Da(6)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}else{c=k[b>>2]|0;k[a>>2]=c;ym(c);return}}function Ps(a,b){a=a|0;b=b|0;b=k[b>>2]|0;k[a>>2]=b;ym(b);return}function Qs(a){a=a|0;zm(k[a>>2]|0)|0;return}function Rs(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a>>2]|0)!=-1){k[b>>2]=a;k[b+4>>2]=191;k[b+8>>2]=0;Om(a,b,192)}r=c;return(k[a+4>>2]|0)+-1|0}function Ss(a,b){a=a|0;b=b|0;a=k[a>>2]|0;return Ks(a,Rs(b)|0)|0}function Ts(a){a=a|0;mj(a);return}function Us(a){a=a|0;if(a)Lb[k[(k[a>>2]|0)+4>>2]&255](a);return}function Vs(a){a=a|0;var b=0;b=k[11052]|0;k[11052]=b+1;k[a+4>>2]=b+1;return}function Ws(a){a=a|0;mj(a);return}function Xs(a,b,c){a=a|0;b=b|0;c=c|0;if(c>>>0<128){c=(Ys()|0)+(c<<1)|0;c=(j[c>>1]&b)<<16>>16!=0}else c=0;return c|0}function Ys(){var a=0,b=0;x=0;a=Da(7)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function Zs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=(c-b|0)>>>2;if((b|0)!=(c|0)){e=b;while(1){a=k[e>>2]|0;if(a>>>0<128){a=(Ys()|0)+(a<<1)|0;a=m[a>>1]|0}else a=0;j[d>>1]=a;e=e+4|0;if((e|0)==(c|0))break;else d=d+2|0}}return b+(f<<2)|0}function _s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do{if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0<128?(a=(Ys()|0)+(a<<1)|0,(j[a>>1]&b)<<16>>16!=0):0)break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}}while(0);return c|0}function $s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do{if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0>=128)break a;a=(Ys()|0)+(a<<1)|0;if(!((j[a>>1]&b)<<16>>16))break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}}while(0);return c|0}function at(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(bt()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function bt(){var a=0,b=0;x=0;a=Da(8)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ct(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(bt()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function dt(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(et()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function et(){var a=0,b=0;x=0;a=Da(9)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ft(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(et()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function gt(a,b){a=a|0;b=b|0;return b<<24>>24|0}function ht(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){k[d>>2]=i[b>>0];b=b+1|0;if((b|0)==(c|0))break;else d=d+4|0}return c|0}function it(a,b,c){a=a|0;b=b|0;c=c|0;return(b>>>0<128?b&255:c)|0}function jt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=(c-b|0)>>>2;if((b|0)!=(c|0)){f=b;a=e;while(1){e=k[f>>2]|0;i[a>>0]=e>>>0<128?e&255:d;f=f+4|0;if((f|0)==(c|0))break;else a=a+1|0}}return b+(g<<2)|0}function kt(a){a=a|0;var b=0;k[a>>2]=44236;b=k[a+8>>2]|0;if((b|0)!=0?(i[a+12>>0]|0)!=0:0)nj(b);return}function lt(a){a=a|0;kt(a);mj(a);return}function mt(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(bt()|0)+((b&255)<<2)|0;b=k[b>>2]&255}return b|0}function nt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(bt()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function ot(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}return b|0}function pt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function qt(a,b){a=a|0;b=b|0;return b|0}function rt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}return c|0}function st(a,b,c){a=a|0;b=b|0;c=c|0;return(b<<24>>24>-1?b:c)|0}function tt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if((b|0)!=(c|0))while(1){a=i[b>>0]|0;i[e>>0]=a<<24>>24>-1?a:d;b=b+1|0;if((b|0)==(c|0))break;else e=e+1|0}return c|0}function ut(a){a=a|0;mj(a);return}function vt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k[e>>2]=c;k[h>>2]=f;return 3}function wt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k[e>>2]=c;k[h>>2]=f;return 3}function xt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function yt(a){a=a|0;return 1}function zt(a){a=a|0;return 1}function At(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=d-c|0;return(a>>>0>>0?a:e)|0}function Bt(a){a=a|0;return 1}function Ct(a,b){a=a|0;b=b|0;var c=0;k[a+4>>2]=b+-1;k[a>>2]=44304;x=0;b=Da(3)|0;c=x;x=0;if(c&1){c=Wa()|0;fb(c|0)}else{k[a+8>>2]=b;return}}function Dt(a){a=a|0;Gu(a);mj(a);return}function Hl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;L=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do{if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=mk()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do{if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}}while(0);y=h-w|0;if(L?(k[a>>2]&32|0)==0:0)fl(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do{if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}}while(0);do{if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!L){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}}while(0);e:do{if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(L){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1}while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[56223+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do{if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!L){f=0;break a}Ml(aa,q,c)}}while(0);if((K|0)==52?(K=0,!L):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do{switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=uw(h|0,m|0,3)|0;m=M}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=56703;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=56703;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=rw(0,0,g|0,h|0)|0;h=M;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=56703;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?56703:56705;K=76}else{m=1;q=56704;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=56703;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=56703;g=N;break}case 109:{g=mk()|0;g=nk(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:56713;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Ol(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?56721:56726}else{F=1;G=56723}else{n=-n;F=1;G=56720}p[t>>3]=n;E=k[t+4>>2]&2146435072;do{if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+Gk(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do{if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v}while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Nl(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[56687+G>>0]|w;n=(n-+(G|0))*16.0;do{if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Ol(a,32,J,m,H);if(!(k[a>>2]&32))fl(y,x,a)|0;Ol(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))fl(ca,g,a)|0;h=_-s|0;Ol(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))fl(s,h,a)|0;Ol(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do{if(o>>>0>>0)o=q;else{h=0;do{B=ww(k[o>>2]|0,0,s|0)|0;B=tw(B|0,M|0,h|0,0)|0;h=M;A=Fw(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=Ew(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do{if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ia(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w}while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do{if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0}while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do{if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do{if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}}while(0);do{if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do{if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do{if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9}while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8}while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Nl(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Ol(a,32,J,y,H);if(!(k[a>>2]&32))fl(G,F,a)|0;Ol(a,48,J,y,H^65536);do{if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Nl(k[h>>2]|0,0,R)|0;do{if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}}while(0);if(!(k[a>>2]&32))fl(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do{if(x){if(k[a>>2]&32)break;fl(56755,1,a)|0}}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Nl(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))fl(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Ol(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Nl(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do{if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))fl(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}fl(56755,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}}while(0);m=S-h|0;if(!(k[a>>2]&32))fl(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Ol(a,48,g+18|0,18,0);if(k[a>>2]&32)break;fl(u,_-u|0,a)|0}}while(0);Ol(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Ol(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){fl(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))fl(q?s?56747:56751:s?56739:56743,3,a)|0;Ol(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=56703;g=N}}}while(0);g:do{if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[56687+(h&15)>>0]|q;h=uw(h|0,m|0,4)|0;m=M}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=56703;K=77}else{h=s;s=2;q=56703+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=56703;K=77}}else if((K|0)==76){g=Nl(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=tl(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=56703;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=Sk(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Ol(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=Sk(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))fl(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}}while(0);if((K|0)==98){K=0;Ol(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Ol(a,32,g,o,m);if(!(k[a>>2]&32))fl(u,s,a)|0;Ol(a,48,g,o,m^65536);Ol(a,48,h,q,0);if(!(k[a>>2]&32))fl(w,q,a)|0;Ol(a,32,g,o,m^8192);w=I}h:do{if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Ml(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0}while(0);r=ga;return f|0}function Il(a,b,c){a=a|0;b=b|0;c=c|0;return $k(a,b,c)|0}function Jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+112|0;g=h;e=g;f=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));e=g+4|0;k[e>>2]=a;f=g+8|0;k[f>>2]=-1;k[g+44>>2]=a;k[g+76>>2]=-1;qk(g,0);d=+ok(g,c,1);c=(k[e>>2]|0)-(k[f>>2]|0)+(k[g+108>>2]|0)|0;if(b)k[b>>2]=(c|0)!=0?a+c|0:a;r=h;return+d}function Kl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=r;r=r+112|0;h=i;k[h>>2]=0;f=h+4|0;k[f>>2]=a;k[h+44>>2]=a;g=h+8|0;k[g>>2]=(a|0)<0?-1:a+2147483647|0;k[h+76>>2]=-1;qk(h,0);d=pk(h,c,1,d,e)|0;if(b)k[b>>2]=a+((k[f>>2]|0)+(k[h+108>>2]|0)-(k[g>>2]|0));r=i;return d|0}function Ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;vw(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do{if(b>>>0<=20)do{switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}}while(0)}while(0);return}function Nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=Fw(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=Ew(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=M}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Ol(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=r;r=r+256|0;g=h;do{if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;sw(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){fl(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;fl(g,e,a)|0}}while(0);r=h;return}function Pl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do{if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[10218]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do{if((c|0)!=(g|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Pa()}else k[10218]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[10220]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do{if((c|0)!=(e|0)){if(e>>>0<(k[10222]|0)>>>0)Pa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[10220]|0;break}else Pa()}else{k[10218]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[10223]|0;c=j>>>3;b=c<<1;d=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(b>>>0<(k[10222]|0)>>>0)Pa();else{l=a;m=b}}else{k[10218]=a|c;l=40912+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[10220]=g;k[10223]=h;M=i;return M|0}a=k[10219]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[41176+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[10222]|0;if(d>>>0>>0)Pa();h=d+o|0;if(d>>>0>=h>>>0)Pa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do{if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Pa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Pa()}}while(0);do{if(g){b=k[d+28>>2]|0;a=41176+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[10222]|0;if(n>>>0>>0)Pa();k[n+24>>2]=g;b=k[d+16>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[10220]|0;if(b){f=k[10223]|0;c=b>>>3;b=c<<1;e=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{p=b;q=a}}else{k[10218]=a|c;p=40912+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[10220]=i;k[10223]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[10219]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[41176+(j<<2)>>2]|0;a:do{if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[41176+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[10220]|0)-m|0)>>>0:0){e=k[10222]|0;if(i>>>0>>0)Pa();g=i+m|0;if(i>>>0>=g>>>0)Pa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do{if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Pa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Pa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Pa()}}while(0);do{if(f){b=k[i+28>>2]|0;a=41176+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[10222]|0;if(o>>>0>>0)Pa();k[o+24>>2]=f;b=k[i+16>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}}while(0);b:do{if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{s=b;t=a}}else{k[10218]=c|b;s=40912+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=41176+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do{if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b}while(0);b=y+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Pa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1}while(0);c=k[10220]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[10223]|0;if(b>>>0>15){k[10223]=a+q;k[10220]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[10220]=0;k[10223]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[10221]|0;if(a>>>0>q>>>0){L=a-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do{if(!(k[10336]|0)){a=hb(30)|0;if(!(a+-1&a)){k[10338]=a;k[10337]=a;k[10339]=-1;k[10340]=-1;k[10341]=0;k[10329]=0;y=(zb(0)|0)&-16^1431655768;k[10336]=y;break}else Pa()}}while(0);i=q+48|0;h=k[10338]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[10328]|0;if((a|0)!=0?(t=k[10326]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do{if(!(k[10329]&4)){a=k[10224]|0;e:do{if(a){e=41320;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[10221]|0)&h;if(c>>>0<2147483647){e=bb(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174}while(0);do{if((v|0)==174){f=bb(0)|0;if((f|0)!=(-1|0)){a=f;c=k[10337]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[10326]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[10328]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=bb(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}}while(0);f:do{if((v|0)==184){f=0-c|0;do{if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[10338]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((bb(u|0)|0)==(-1|0)){bb(f|0)|0;break f}else{c=u+c|0;break}}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}}while(0);k[10329]=k[10329]|4;v=191}else{a=0;v=191}}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=bb(l|0)|0,x=bb(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[10326]|0)+p|0;k[10326]=a;if(a>>>0>(k[10327]|0)>>>0)k[10327]=a;g=k[10224]|0;g:do{if(g){f=41320;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[10221]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[10224]=g+L;k[10221]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[10225]=k[10340];break}a=k[10222]|0;if(w>>>0>>0){k[10222]=w;a=w}c=w+p|0;f=41320;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=41320;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do{if((b|0)!=(g|0)){if((b|0)==(k[10223]|0)){M=(k[10220]|0)+l|0;k[10220]=M;k[10223]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do{if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do{if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Pa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Pa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Pa()}}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=41176+(a<<2)|0;do{if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[10219]=k[10219]&~(1<>>0>>0)Pa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do{if(a)if(a>>>0>>0)Pa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=40912+(f<<1<<2)|0;do{if((d|0)!=(c|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)==(b|0))break;Pa()}}while(0);if((e|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Pa()}}while(0);k[d+12>>2]=e;k[F>>2]=d}}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0>=(k[10222]|0)>>>0){K=b;L=a;break}Pa()}}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do{if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}}while(0);b=41176+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do{if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b}while(0);b=M+8|0;a=k[b>>2]|0;L=k[10222]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Pa()}else{M=(k[10221]|0)+l|0;k[10221]=M;k[10224]=o;k[w+(m+4)>>2]=M|1}}while(0);M=w+(n|8)|0;return M|0}else c=41320;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[10224]=w+c;k[10221]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340];c=a+4|0;k[c>>2]=27;k[b>>2]=k[10330];k[b+4>>2]=k[10331];k[b+8>>2]=k[10332];k[b+12>>2]=k[10333];k[10330]=w;k[10331]=p;k[10333]=0;k[10332]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{G=b;H=a}}else{k[10218]=c|b;G=40912+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=41176+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[10219]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do{if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b}while(0);b=I+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Pa()}}else{M=k[10222]|0;if((M|0)==0|w>>>0>>0)k[10222]=w;k[10330]=w;k[10331]=p;k[10333]=0;k[10227]=k[10336];k[10226]=-1;b=0;do{M=b<<1;L=40912+(M<<2)|0;k[40912+(M+3<<2)>>2]=L;k[40912+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[10224]=w+M;k[10221]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340]}}while(0);b=k[10221]|0;if(b>>>0>q>>>0){L=b-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=mk()|0;k[M>>2]=12;M=0;return M|0}function Ql(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[10222]|0;if(b>>>0>>0)Pa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Pa();o=c&-8;q=a+(o+-8)|0;do{if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Pa();if((l|0)==(k[10223]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[10220]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)!=(l|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Pa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do{if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Pa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Pa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Pa()}}while(0);if(g){b=k[a+(i+28)>>2]|0;c=41176+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}}while(0);if(u>>>0>=q>>>0)Pa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Pa();if(!(c&2)){if((q|0)==(k[10224]|0)){t=(k[10221]|0)+f|0;k[10221]=t;k[10224]=u;k[u+4>>2]=t|1;if((u|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){t=(k[10220]|0)+f|0;k[10220]=t;k[10223]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do{if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do{if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Pa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Pa()}}while(0);if(g){b=k[a+(o+20)>>2]|0;c=41176+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do{if(b)if(b>>>0>>0)Pa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[10222]|0)>>>0)Pa();if((k[d+12>>2]|0)!=(q|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Pa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[10223]|0)){k[10220]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=40912+(c<<2)|0;d=k[10218]|0;b=1<>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();else{r=b;s=c}}else{k[10218]=d|b;r=40912+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=41176+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[10219]|0;d=1<>2]|0;b:do{if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b}while(0);b=t+8|0;c=k[b>>2]|0;s=k[10222]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Pa()}else{k[10219]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}}while(0);u=(k[10226]|0)+-1|0;k[10226]=u;if(!u)b=41328;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[10226]=-1;return}function Rl(a,b){a=a|0;b=b|0;var c=0;if(a){c=ia(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;b=Pl(c)|0;if(!b)return b|0;if(!(k[b+-4>>2]&3))return b|0;sw(b|0,0,c|0)|0;return b|0}function Sl(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Pl(b)|0;return a|0}if(b>>>0>4294967231){a=mk()|0;k[a>>2]=12;a=0;return a|0}c=Tl(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Pl(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;vw(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Ql(a);a=c;return a|0}function Tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[10222]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Pa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Pa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[10338]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Ul(a+b|0,c);return a|0}if((l|0)==(k[10224]|0)){c=(k[10221]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[10224]=a+b;k[10221]=n;return a|0}if((l|0)==(k[10223]|0)){d=(k[10220]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[10220]=c;k[10223]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do{if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do{if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Pa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Pa()}}while(0);if(g){c=k[a+(i+28)>>2]|0;d=41176+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do{if(c)if(c>>>0>>0)Pa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(l|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Pa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Ul(a+b|0,n);return a|0}return 0}function Ul(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do{if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[10222]|0;if(n>>>0>>0)Pa();if((n|0)==(k[10223]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[10220]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(n|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Pa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do{if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Pa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Pa()}}while(0);if(h){c=k[a+(28-j)>>2]|0;d=41176+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[10222]|0;if(l>>>0>>0)Pa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do{if(d)if(d>>>0>>0)Pa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}}while(0);i=k[10222]|0;if(q>>>0>>0)Pa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[10224]|0)){s=(k[10221]|0)+g|0;k[10221]=s;k[10224]=t;k[t+4>>2]=s|1;if((t|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){s=(k[10220]|0)+g|0;k[10220]=s;k[10223]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do{if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do{if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Pa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Pa()}}while(0);if(h){c=k[a+(b+28)>>2]|0;d=41176+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do{if(c)if(c>>>0>>0)Pa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(q|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Pa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[10223]|0)){k[10220]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=40912+(d<<2)|0;e=k[10218]|0;c=1<>2]|0;if(d>>>0<(k[10222]|0)>>>0)Pa();else{r=c;s=d}}else{k[10218]=e|c;r=40912+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=41176+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[10219]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do{if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[10222]|0)>>>0)Pa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}}while(0);d=c+8|0;e=k[d>>2]|0;s=k[10222]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Pa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Vl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;d=k[9321]|0;Zl(42048,d,42104);k[10342]=42892;k[10344]=42912;k[10343]=0;a=k[10720]|0;x=0;ra(62,41368+a|0,42048);f=x;x=0;if(f&1){f=Wa()|0;qn(41376);fb(f|0)}k[41368+(a+72)>>2]=0;k[41368+(a+76)>>2]=-1;e=k[9322]|0;_l(42152,e,42112);k[10364]=42972;k[10365]=42992;c=k[10740]|0;x=0;ra(62,41456+c|0,42152);f=x;x=0;if(f&1){f=Wa()|0;qn(41460);fb(f|0)}a=c+72|0;k[41456+a>>2]=0;b=c+76|0;k[41456+b>>2]=-1;f=k[9320]|0;_l(42200,f,42120);k[10385]=42972;k[10386]=42992;x=0;ra(62,41540+c|0,42200);g=x;x=0;if(g&1){g=Wa()|0;qn(41544);fb(g|0)}k[41540+a>>2]=0;k[41540+b>>2]=-1;g=k[41540+((k[(k[10385]|0)+-12>>2]|0)+24)>>2]|0;k[10406]=42972;k[10407]=42992;x=0;ra(62,41624+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;qn(41628);fb(g|0)}k[41624+a>>2]=0;k[41624+b>>2]=-1;k[41368+((k[(k[10342]|0)+-12>>2]|0)+72)>>2]=41456;a=41540+((k[(k[10385]|0)+-12>>2]|0)+4)|0;k[a>>2]=k[a>>2]|8192;k[41540+((k[(k[10385]|0)+-12>>2]|0)+72)>>2]=41456;$l(42248,d,42128);k[10427]=42932;k[10429]=42952;k[10428]=0;a=k[10730]|0;x=0;ra(62,41708+a|0,42248);g=x;x=0;if(g&1){g=Wa()|0;vn(41716);fb(g|0)}k[41708+(a+72)>>2]=0;k[41708+(a+76)>>2]=-1;am(42304,e,42136);k[10449]=43012;k[10450]=43032;c=k[10750]|0;x=0;ra(62,41796+c|0,42304);g=x;x=0;if(g&1){g=Wa()|0;vn(41800);fb(g|0)}a=c+72|0;k[41796+a>>2]=0;b=c+76|0;k[41796+b>>2]=-1;am(42352,f,42144);k[10470]=43012;k[10471]=43032;x=0;ra(62,41880+c|0,42352);g=x;x=0;if(g&1){g=Wa()|0;vn(41884);fb(g|0)}k[41880+a>>2]=0;k[41880+b>>2]=-1;g=k[41880+((k[(k[10470]|0)+-12>>2]|0)+24)>>2]|0;k[10491]=43012;k[10492]=43032;x=0;ra(62,41964+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;vn(41968);fb(g|0)}else{k[41964+a>>2]=0;k[41964+b>>2]=-1;k[41708+((k[(k[10427]|0)+-12>>2]|0)+72)>>2]=41796;g=41880+((k[(k[10470]|0)+-12>>2]|0)+4)|0;k[g>>2]=k[g>>2]|8192;k[41880+((k[(k[10470]|0)+-12>>2]|0)+72)>>2]=41796;return}}function Wl(a){a=a|0;x=0;ta(70,41456)|0;a=x;x=0;if(((!(a&1)?(x=0,ta(70,41624)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41796)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41964)|0,a=x,x=0,!(a&1)):0)return;a=Wa(0)|0;oc(a)}function Xl(){Vl(0);tb(187,56757,w|0)|0;return}function Yl(){return}function Zl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42600;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(23,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);r=e;return}}function _l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42536;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44280)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function $l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42472;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(21,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);r=e;return}}function am(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42408;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44288)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function bm(a){a=a|0;Mn(a);mj(a);return}function cm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44288)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function dm(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do{if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[d>>2]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+4|0;else break}}else b=0;else b=gl(b,4,c,k[a+32>>2]|0)|0}while(0);return b|0}function fm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do{if(!p){k[c>>2]=b;if(i[a+44>>0]|0)if((gl(c,4,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;j=c+4|0;l=a+36|0;e=a+40|0;f=o+8|0;g=o;h=a+32|0;while(1){a=k[l>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[e>>2]|0,c,j,m,o,f,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-g|0;if((gl(o,1,a,k[h>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[h>>2]|0)|0)!=1)c=-1;else q=11}else q=11}while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function gm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44288)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function hm(a){a=a|0;Mn(a);mj(a);return}function im(a){a=a|0;return lm(a,0)|0}function jm(a){a=a|0;return lm(a,1)|0}function km(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+8|0;d=l+4|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do{if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do{if(c){k[d>>2]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+4|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}}while(0);k[g>>2]=b;i[f>>0]=1}}while(0);r=l;return b|0}function lm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+32|0;p=q+16|0;o=q+8|0;l=q+4|0;m=q;e=a+52|0;a:do{if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;n=a+32|0;if((c|0)>0){e=0;do{d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[p+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do{if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=o+4|0;c:while(1){s=k[g>>2]|0;e=s;d=k[e>>2]|0;e=k[e+4>>2]|0;t=k[h>>2]|0;f=p+c|0;switch(ac[k[(k[t>>2]|0)+16>>2]&15](t,s,p,f,l,o,j,m)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}t=k[g>>2]|0;k[t>>2]=d;k[t+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}k[o>>2]=i[p>>0]}else k[o>>2]=i[p>>0]}while(0);if(b){c=k[o>>2]|0;k[a+48>>2]=c;break}while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(i[p+c>>0]|0,k[n>>2]|0)|0)==-1){c=-1;break a}}c=k[o>>2]|0}}while(0);r=q;return c|0}function mm(a){a=a|0;xn(a);mj(a);return}function nm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44280)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function om(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function pm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do{if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[d>>0]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+1|0;else break}}else b=0;else b=gl(b,1,c,k[a+32>>2]|0)|0}while(0);return b|0}function qm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do{if(!p){i[c>>0]=b;if(i[a+44>>0]|0)if((gl(c,1,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;l=c+1|0;e=a+36|0;f=a+40|0;g=o+8|0;h=o;j=a+32|0;while(1){a=k[e>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[f>>2]|0,c,l,m,o,g,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-h|0;if((gl(o,1,a,k[j>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[j>>2]|0)|0)!=1)c=-1;else q=11}else q=11}while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function rm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44280)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function sm(a){a=a|0;xn(a);mj(a);return}function tm(a){a=a|0;return wm(a,0)|0}function um(a){a=a|0;return wm(a,1)|0}function vm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+4|0;d=l+8|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do{if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do{if(c){i[d>>0]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+1|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}}while(0);k[g>>2]=b;i[f>>0]=1}}while(0);r=l;return b|0}function wm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0;s=r;r=r+32|0;q=s+16|0;p=s+8|0;m=s+4|0;n=s;e=a+52|0;a:do{if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;o=a+32|0;if((c|0)>0){e=0;do{d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[q+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do{if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=p+1|0;c:while(1){t=k[g>>2]|0;e=t;d=k[e>>2]|0;e=k[e+4>>2]|0;u=k[h>>2]|0;f=q+c|0;switch(ac[k[(k[u>>2]|0)+16>>2]&15](u,t,q,f,m,p,j,n)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}u=k[g>>2]|0;k[u>>2]=d;k[u+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}i[p>>0]=i[q>>0]|0}else i[p>>0]=i[q>>0]|0}while(0);if(b){c=i[p>>0]|0;k[a+48>>2]=c&255}else{while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(l[q+c>>0]|0,k[o>>2]|0)|0)==-1){c=-1;break a}}c=i[p>>0]|0}c=c&255}}while(0);r=s;return c|0}function xm(a){a=a|0;return}function ym(a){a=a|0;a=a+4|0;k[a>>2]=(k[a>>2]|0)+1;return}function zm(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if(!b){Lb[k[(k[a>>2]|0)+8>>2]&255](a);a=1}else a=0;return a|0}function Am(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0)|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Bm(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,b|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Cm(a,b){a=a|0;b=b|0;var c=0,d=0;d=xl(b)|0;c=lj(d+13|0)|0;k[c>>2]=d;k[c+4>>2]=d;k[c+8>>2]=0;c=c+12|0;vw(c|0,b|0,d+1|0)|0;k[a>>2]=c;return}function Dm(a,b,c){a=a|0;b=b|0;c=c|0;k[a>>2]=c;k[a+4>>2]=b;return}function Em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;_b[k[(k[a>>2]|0)+12>>2]&15](d,a,b);if((k[d+4>>2]|0)==(k[c+4>>2]|0))d=(k[d>>2]|0)==(k[c>>2]|0);else d=0;r=e;return d|0}function Fm(a,b,c){a=a|0;b=b|0;c=c|0;return((k[b>>2]|0)==(c|0)?(k[b+4>>2]|0)==(a|0):0)|0}function Gm(a,b,c){a=a|0;b=b|0;c=c|0;b=nk(c)|0;Qm(a,b,xl(b)|0);return}function Hm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;f=g;d=k[b>>2]|0;do{if(d){e=i[c>>0]|0;if(!(e&1))e=(e&255)>>>1;else e=k[c+4>>2]|0;if(e){Zm(c,56990)|0;d=k[b>>2]|0}b=k[b+4>>2]|0;_b[k[(k[b>>2]|0)+24>>2]&15](f,b,d);b=i[f>>0]|0;e=(b&1)==0;x=0;va(30,c|0,(e?f+1|0:k[f+8>>2]|0)|0,(e?(b&255)>>>1:k[f+4>>2]|0)|0)|0;b=x;x=0;if(b&1){g=Wa()|0;Sm(f);fb(g|0)}else{Sm(f);break}}}while(0);k[a>>2]=k[c>>2];k[a+4>>2]=k[c+4>>2];k[a+8>>2]=k[c+8>>2];k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;r=g;return}function Im(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;d=e+12|0;f=e;Qm(f,c,xl(c)|0);x=0;Fa(10,d|0,b|0,f|0);c=x;x=0;do{if(!(c&1)){x=0;ra(87,a|0,d|0);c=x;x=0;if(c&1){e=Wa()|0;Sm(d);d=e;break}else{Sm(d);Sm(f);k[a>>2]=42664;c=k[b+4>>2]|0;f=a+8|0;k[f>>2]=k[b>>2];k[f+4>>2]=c;r=e;return}}else d=Wa()|0}while(0);Sm(f);fb(d|0)}function Jm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=r;r=r+48|0;e=f+24|0;h=f+16|0;g=f;k[h>>2]=b;k[h+4>>2]=c;Pm(g,d);x=0;Fa(10,e|0,h|0,g|0);d=x;x=0;do{if(!(d&1)){x=0;ra(87,a|0,e|0);h=x;x=0;if(h&1){h=Wa()|0;Sm(e);e=h;break}else{Sm(e);Sm(g);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=f;return}}else e=Wa()|0}while(0);Sm(g);fb(e|0)}function Km(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=r;r=r+48|0;d=e+24|0;g=e+16|0;f=e;k[g>>2]=b;k[g+4>>2]=c;Qm(f,58898,0);x=0;Fa(10,d|0,g|0,f|0);g=x;x=0;do{if(!(g&1)){x=0;ra(87,a|0,d|0);g=x;x=0;if(g&1){g=Wa()|0;Sm(d);d=g;break}else{Sm(d);Sm(f);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=e;return}}else d=Wa()|0}while(0);Sm(f);fb(d|0)}function Lm(a){a=a|0;wj(a);return}function Mm(a){a=a|0;wj(a);mj(a);return}function Nm(a){a=a|0;return}function Om(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;Ab(42676)|0;if((k[a>>2]|0)==1)do{Ma(42704,42676)|0}while((k[a>>2]|0)==1);do{if(!(k[a>>2]|0)){k[a>>2]=1;x=0;ta(72,42676)|0;d=x;x=0;if((((!(d&1)?(x=0,qa(c|0,b|0),d=x,x=0,!(d&1)):0)?(x=0,ta(73,42676)|0,d=x,x=0,!(d&1)):0)?(k[a>>2]=-1,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0)break;d=Wa(0)|0;cb(d|0)|0;x=0;ta(73,42676)|0;d=x;x=0;if((!(d&1)?(k[a>>2]=0,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0){x=0;Ga(5);x=0}b=Wa()|0;x=0;Ga(3);d=x;x=0;if(d&1){d=Wa(0)|0;oc(d)}else fb(b|0)}else lb(42676)|0}while(0);return}function Pm(a,b){a=a|0;b=b|0;if(!(i[b>>0]&1)){k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2]}else Qm(a,k[b+8>>2]|0,k[b+4>>2]|0);return}function Qm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>4294967279)ij(a);if(c>>>0<11){i[a>>0]=c<<1;a=a+1|0}else{e=c+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}vw(a|0,b|0,c|0)|0;i[a+c>>0]=0;return}function Rm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>4294967279)ij(a);if(b>>>0<11){i[a>>0]=b<<1;a=a+1|0}else{e=b+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}sw(a|0,c|0,b|0)|0;i[a+b>>0]=0;return}function Sm(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function Tm(a,b){a=a|0;b=b|0;var c=0,d=0;if((a|0)!=(b|0)){c=i[b>>0]|0;d=(c&1)==0;Vm(a,d?b+1|0:k[b+8>>2]|0,d?(c&255)>>>1:k[b+4>>2]|0)|0}return a|0}function Um(a,b){a=a|0;b=b|0;return Vm(a,b,xl(b)|0)|0}function Vm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=10;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do{if(f>>>0>=c>>>0){if(e)d=a+1|0;else d=k[a+8>>2]|0;xw(d|0,b|0,c|0)|0;i[d+c>>0]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;an(a,f,c-f|0,d,0,d,c,b)}}while(0);return a|0}function Wm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i[a>>0]|0;e=(d&1)==0;if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;do{if(d>>>0>=b>>>0)if(e){i[a+1+b>>0]=0;i[a>>0]=b<<1;break}else{i[(k[a+8>>2]|0)+b>>0]=0;k[a+4>>2]=b;break}else Xm(a,b-d|0,c)|0}while(0);return}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;if(b){d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>>0){bn(a,e,b-e+f|0,f,f,0,0);d=i[a>>0]|0}if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;sw(e+f|0,c|0,b|0)|0;d=f+b|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}return a|0}function Ym(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>4294967279)ij(a);c=i[a>>0]|0;if(!(c&1))d=10;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<11)g=10;else g=(b+16&-16)+-1|0;a:do{if((g|0)!=(d|0)){do{if((g|0)!=10){b=g+1|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+1|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+1|0;d=0;e=k[a+8>>2]|0;f=1}}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;vw(b|0,e|0,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}}while(0);return}function Zm(a,b){a=a|0;b=b|0;return $m(a,b,xl(b)|0)|0}function _m(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=10;f=(c&255)>>>1}if((f|0)==(e|0)){bn(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+1|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}i[c+f>>0]=b;i[c+d>>0]=0;return}function $m(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>=c>>>0){if(c){if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;vw(e+f|0,b|0,c|0)|0;d=f+c|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}}else an(a,e,c-e+f|0,f,f,0,c,b);return a|0}function an(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0;if((-18-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+1|0;else m=k[a+8>>2]|0;if(b>>>0<2147483623){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<11?11:j+16&-16}else j=-17;l=lj(j)|0;if(e)vw(l|0,m|0,e|0)|0;if(g)vw(l+e|0,h|0,g|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(l+(g+e)|0,m+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;i[l+b>>0]=0;return}function bn(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((-17-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+1|0;else l=k[a+8>>2]|0;if(b>>>0<2147483623){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<11?11:h+16&-16}else h=-17;j=lj(h)|0;if(e)vw(j|0,l|0,e|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(j+(g+e)|0,l+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function cn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>1073741807)ij(a);if(c>>>0<2){i[a>>0]=c<<1;a=a+4|0}else{e=c+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}Al(a,b,c)|0;k[a+(c<<2)>>2]=0;return}function dn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>1073741807)ij(a);if(b>>>0<2){i[a>>0]=b<<1;a=a+4|0}else{e=b+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}Cl(a,c,b)|0;k[a+(b<<2)>>2]=0;return}function en(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function fn(a,b){a=a|0;b=b|0;return gn(a,b,zl(b)|0)|0}function gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=1;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do{if(f>>>0>=c>>>0){if(e)d=a+4|0;else d=k[a+8>>2]|0;Bl(d,b,c)|0;k[d+(c<<2)>>2]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;kn(a,f,c-f|0,d,0,d,c,b)}}while(0);return a|0}function hn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>1073741807)ij(a);c=i[a>>0]|0;if(!(c&1))d=1;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<2)g=1;else g=(b+4&-4)+-1|0;a:do{if((g|0)!=(d|0)){do{if((g|0)!=1){b=(g<<2)+4|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+4|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+4|0;d=0;e=k[a+8>>2]|0;f=1}}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;Al(b,e,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}}while(0);return}function jn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=1;f=(c&255)>>>1}if((f|0)==(e|0)){ln(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+4|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}k[c+(f<<2)>>2]=b;k[c+(d<<2)>>2]=0;return}function kn(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0;if((1073741806-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+4|0;else m=k[a+8>>2]|0;if(b>>>0<536870887){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<2?2:j+4&-4}else j=1073741807;l=lj(j<<2)|0;if(e)Al(l,m,e)|0;if(g)Al(l+(e<<2)|0,h,g)|0;c=d-f|0;if((c|0)!=(e|0))Al(l+(g+e<<2)|0,m+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;k[l+(b<<2)>>2]=0;return}function ln(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((1073741807-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+4|0;else l=k[a+8>>2]|0;if(b>>>0<536870887){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<2?2:h+4&-4}else h=1073741807;j=lj(h<<2)|0;if(e)Al(j,l,e)|0;c=d-f|0;if((c|0)!=(e|0))Al(j+(g+e<<2)|0,l+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=b;d=c-e|0;if(d>>>0>4294967279)ij(a);if(d>>>0<11){i[a>>0]=d<<1;f=a+1|0}else{g=d+16&-16;f=lj(g)|0;k[a+8>>2]=f;k[a>>2]=g|1;k[a+4>>2]=d}a=c-e|0;if((b|0)!=(c|0)){d=f;while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}}i[f+a>>0]=0;return}function nn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b;d=c-f|0;e=d>>2;if(e>>>0>1073741807)ij(a);if(e>>>0<2){i[a>>0]=d>>>1;a=a+4|0}else{g=e+4&-4;d=lj(g<<2)|0;k[a+8>>2]=d;k[a>>2]=g|1;k[a+4>>2]=e;a=d}e=(c-f|0)>>>2;if((b|0)!=(c|0)){d=a;while(1){k[d>>2]=k[b>>2];b=b+4|0;if((b|0)==(c|0))break;else d=d+4|0}}k[a+(e<<2)>>2]=0;return}function on(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=r;r=r+16|0;d=c;e=(k[a+24>>2]|0)==0;k[a+16>>2]=e&1|b;if(!((e&1|b)&k[a+20>>2])){r=c;return}b=Va(16)|0;Co()|0;k[d>>2]=1;k[d+4>>2]=43112;x=0;Fa(11,b|0,57437,d|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(b|0);fb(e|0)}else ub(b|0,864,112)}function pn(a){a=a|0;var b=0;k[a>>2]=43068;x=0;ra(88,a|0,0);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else{Qs(a+28|0);Ql(k[a+32>>2]|0);Ql(k[a+36>>2]|0);Ql(k[a+48>>2]|0);Ql(k[a+60>>2]|0);return}}function qn(a){a=a|0;pn(a);return}function rn(a){a=a|0;pn(a);mj(a);return}function sn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=k[a+40>>2]|0;d=a+32|0;e=a+36|0;if(c)do{c=c+-1|0;_b[k[(k[d>>2]|0)+(c<<2)>>2]&15](b,a,k[(k[e>>2]|0)+(c<<2)>>2]|0)}while((c|0)!=0);return}function tn(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;Ps(b,a+28|0);r=c;return k[b>>2]|0}function un(a,b){a=a|0;b=b|0;var c=0;k[a+24>>2]=b;k[a+16>>2]=(b|0)==0&1;k[a+20>>2]=0;k[a+4>>2]=4098;k[a+12>>2]=0;k[a+8>>2]=6;c=a+28|0;b=a+32|0;a=b+40|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));Os(c);return}function vn(a){a=a|0;pn(a);return}function wn(a){a=a|0;pn(a);mj(a);return}function xn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);return}function yn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);mj(a);return}function zn(a){a=a|0;k[a>>2]=42760;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function An(a,b){a=a|0;b=b|0;return}function Bn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Cn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Dn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function En(a){a=a|0;return 0}function Fn(a){a=a|0;return 0}function Gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0<(k[g>>2]|0)>>>0){k[f>>2]=d+1;d=i[d>>0]|0}else{d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a;d=d&255}i[e>>0]=d;b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0}while(0);return b|0}function Hn(a){a=a|0;return-1}function In(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+1;a=l[a>>0]|0}return a|0}function Jn(a,b){a=a|0;b=b|0;return-1}function Kn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[e>>0]|0)|0)==-1)break a}else{h=i[e>>0]|0;k[f>>2]=d+1;i[d>>0]=h}b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0}while(0);return b|0}function Ln(a,b){a=a|0;b=b|0;return-1}function Mn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);return}function Nn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);mj(a);return}function On(a){a=a|0;k[a>>2]=42824;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function Pn(a,b){a=a|0;b=b|0;return}function Qn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Rn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Sn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Tn(a){a=a|0;return 0}function Un(a){a=a|0;return 0}function Vn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a}else{k[f>>2]=d+4;d=k[d>>2]|0}k[e>>2]=d;b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0}while(0);return b|0}function Wn(a){a=a|0;return-1}function Xn(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+4;a=k[a>>2]|0}return a|0}function Yn(a,b){a=a|0;b=b|0;return-1}function Zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do{if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[e>>2]|0)|0)==-1)break a}else{h=k[e>>2]|0;k[f>>2]=d+4;k[d>>2]=h}b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0}while(0);return b|0}function _n(a,b){a=a|0;b=b|0;return-1}function $n(a){a=a|0;pn(a+8|0);return}function ao(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function bo(a){a=a|0;pn(a+8|0);mj(a);return}function co(a){a=a|0;bo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function eo(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do{if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(65,c|0,a|0);b=x;x=0;b:do{if(b&1)b=Wa(0)|0;else{do{if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;ro(c);break b}}while(0);ro(c);break a}}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}}while(0);r=d;return a|0}function fo(a){a=a|0;var b=0;b=a+16|0;k[b>>2]=k[b>>2]|1;if(!(k[a+20>>2]&1))return;else vb()}function go(a){a=a|0;pn(a+8|0);return}function ho(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function io(a){a=a|0;pn(a+8|0);mj(a);return}function jo(a){a=a|0;io(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function ko(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do{if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(89,c|0,a|0);b=x;x=0;b:do{if(b&1)b=Wa(0)|0;else{do{if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;zo(c);break b}}while(0);zo(c);break a}}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}}while(0);r=d;return a|0}function lo(a,b){a=a|0;b=b|0;return}function mo(a){a=a|0;pn(a+4|0);return}function no(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function oo(a){a=a|0;pn(a+4|0);mj(a);return}function po(a){a=a|0;oo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function qo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)eo(c)|0;i[a>>0]=1}return}function ro(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do{if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}}while(0);return}function so(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do{if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do{if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do{if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10}while(0);if((n|0)==10){p=k[(k[l>>2]|0)+16>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}}while(0);ro(m)}}while(0);do{if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}}while(0);r=o;return a|0}function to(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do{if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do{if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do{if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10}while(0);if((n|0)==10){p=k[(k[l>>2]|0)+24>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}}while(0);ro(m)}}while(0);do{if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}}while(0);r=o;return a|0}function uo(a){a=a|0;pn(a+4|0);return}function vo(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function wo(a){a=a|0;pn(a+4|0);mj(a);return}function xo(a){a=a|0;wo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function yo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)ko(c)|0;i[a>>0]=1}return}function zo(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do{if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}}while(0);return}function Ao(a){a=a|0;return 57453}function Bo(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=1&(c|0)<257)Gm(a,b,c);else Qm(a,57462,35);return}function Co(){if((i[1048]|0)==0?(Qa(1048)|0)!=0:0){k[10778]=43084;tb(72,43112,w|0)|0;Ya(1048)}return 43112}function Do(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=r;r=r+16|0;e=d+8|0;f=d;h=c;g=k[h+4>>2]|0;c=f;k[c>>2]=k[h>>2];k[c+4>>2]=g;k[e>>2]=k[f>>2];k[e+4>>2]=k[f+4>>2];Im(a,e,b);k[a>>2]=43048;r=d;return}function Eo(a){a=a|0;Lm(a);return}function Fo(a){a=a|0;Lm(a);mj(a);return}function Go(a){a=a|0;pn(a);mj(a);return}function Ho(a){a=a|0;mj(a);return}function Io(a){a=a|0;return}function Jo(a){a=a|0;return}function Ko(a){a=a|0;mj(a);return}function Lo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;a:do{if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=i[b>>0]|0;f=i[d>>0]|0;if(a<<24>>24>24){b=-1;break a}if(f<<24>>24>24){b=1;break a}b=b+1|0;d=d+1|0;if((d|0)==(e|0)){g=6;break}}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mn(a,c,d);return}function No(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(i[b>>0]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+1|0}while((b|0)!=(c|0))}return a|0}function Oo(a){a=a|0;return}function Po(a){a=a|0;mj(a);return}function Qo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;a:do{if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=k[b>>2]|0;f=k[d>>2]|0;if((a|0)<(f|0)){b=-1;break a}if((f|0)<(a|0)){b=1;break a}b=b+4|0;d=d+4|0;if((d|0)==(e|0)){g=6;break}}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Ro(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;nn(a,c,d);return}function So(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(k[b>>2]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+4|0}while((b|0)!=(c|0))}return a|0}function To(a){a=a|0;return}function Uo(a){a=a|0;mj(a);return}function Vo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do{if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44220)|0;m=x;x=0;do{if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44360)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(7,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;Sm(s+12|0);Sm(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;Sm(s+12|0);Sm(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;Sm(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}}while(0);fb(g|0)}}while(0);r=q;return g|0}function Wo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Iu(a,i,h,d,e,f)|0;r=g;return a|0}function Xo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ju(a,i,h,d,e,f)|0;r=g;return a|0}function Yo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ku(a,i,h,d,e,f)|0;r=g;return a|0}function Zo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Lu(a,i,h,d,e,f)|0;r=g;return a|0}function _o(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Mu(a,i,h,d,e,f)|0;r=g;return a|0}function $o(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Nu(a,i,h,d,e,f)|0;r=g;return a|0}function ap(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ou(a,i,h,d,e,f)|0;r=g;return a|0}function bp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Pu(a,i,h,d,e,f)|0;r=g;return a|0}function cp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Qu(a,i,h,d,e,f)|0;r=g;return a|0}function dp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=r;r=r+240|0;w=C;q=C+208|0;E=C+32|0;a=C+28|0;D=C+16|0;v=C+12|0;t=C+48|0;u=C+8|0;s=C+4|0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;x=0;d=ta(68,d|0)|0;p=x;x=0;do{if(p&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,57498,57524,q|0)|0,p=x,x=0,!(p&1)):0){zm(d)|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;if(!(i[D>>0]&1))a=10;else a=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){o=D+8|0;p=D+1|0;d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d;k[u>>2]=t;k[s>>2]=0;n=D+4|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){F=29;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){F=29;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;F=19;break}}else F=19}while(0);if((F|0)==19){F=0;if(h){g=0;break}else g=0}h=i[D>>0]|0;h=(h&1)==0?(h&255)>>>1:k[n>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,D|0,h<<1|0,0);m=x;x=0;if(m&1){F=29;break}if(!(i[D>>0]&1))d=10;else d=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,d|0,0);m=x;x=0;if(m&1){F=29;break}d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}}else h=l[h>>0]|0;if(ep(h&255,16,d,v,s,0,E,t,u,q)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}else continue}else{k[j>>2]=g+1;continue}}if((F|0)==29){a=Wa()|0;break}x=0;Fa(8,D|0,(k[v>>2]|0)-d|0,0);G=x;x=0;if((!(G&1)?(y=i[D>>0]|0,z=k[o>>2]|0,x=0,A=Da(3)|0,G=x,x=0,!(G&1)):0)?(x=0,k[w>>2]=f,B=Ea(16,((y&1)==0?p:z)|0,A|0,58882,w|0)|0,G=x,x=0,!(G&1)):0){if((B|0)!=1)k[e>>2]=4;if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=30;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;G=x;x=0;if(G&1){F=30;break a}if((a|0)==-1){k[c>>2]=0;F=55;break}}if(!d)F=56}else F=55}while(0);if((F|0)==55?d:0)F=56;if((F|0)==56)k[e>>2]=k[e>>2]|2;G=k[b>>2]|0;Sm(D);Sm(E);r=C;return G|0}else F=30}else F=30}while(0);if((F|0)==30)a=Wa()|0;Sm(D);break}a=Wa()|0;zm(d)|0}}while(0);Sm(E);fb(a|0);return 0}function ep(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do{if(p){m=(i[l+24>>0]|0)==a<<24>>24;if(!m?(i[l+25>>0]|0)!=a<<24>>24:0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5}while(0);a:do{if((n|0)==5){n=i[g>>0]|0;if(a<<24>>24==f<<24>>24?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+26|0;m=l;while(1){if((i[m>>0]|0)==a<<24>>24)break;m=m+1|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;if((m|0)>23)m=-1;else{switch(b|0){case 10:case 8:{if((m|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}}while(0);return m|0}function fp(){var a=0,b=0;do{if((i[1968]|0)==0?(Qa(1968)|0)!=0:0){x=0;a=va(31,2147483647,58885,0)|0;b=x;x=0;if(b&1){b=Wa()|0;Bb(1968);fb(b|0)}else{k[11196]=a;Ya(1968);break}}}while(0);return k[11196]|0}function gp(a){a=a|0;return}function hp(a){a=a|0;mj(a);return}function ip(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do{if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44212)|0;m=x;x=0;do{if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44368)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(8,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;en(s+12|0);en(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;en(s+12|0);en(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;en(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}}while(0);fb(g|0)}}while(0);r=q;return g|0}function jp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Tu(a,i,h,d,e,f)|0;r=g;return a|0}function kp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Uu(a,i,h,d,e,f)|0;r=g;return a|0}function lp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Vu(a,i,h,d,e,f)|0;r=g;return a|0}function mp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Wu(a,i,h,d,e,f)|0;r=g;return a|0}function np(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Xu(a,i,h,d,e,f)|0;r=g;return a|0}function op(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Yu(a,i,h,d,e,f)|0;r=g;return a|0}function pp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Zu(a,i,h,d,e,f)|0;r=g;return a|0}function qp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=_u(a,i,h,d,e,f)|0;r=g;return a|0}function rp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$u(a,i,h,d,e,f)|0;r=g;return a|0}function sp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+320|0;v=B;p=B+208|0;D=B+32|0;a=B+28|0;C=B+16|0;u=B+12|0;s=B+48|0;t=B+8|0;q=B+4|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;d=ta(68,d|0)|0;o=x;x=0;do{if(o&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44212)|0;o=x;x=0;if(!(o&1)?(x=0,Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,57498,57524,p|0)|0,o=x,x=0,!(o&1)):0){zm(d)|0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);o=x;x=0;a:do{if(!(o&1)){n=C+8|0;o=C+1|0;a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a;k[t>>2]=s;k[q>>2]=0;m=C+4|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){E=30;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){E=30;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h){g=j;break}else{g=j;break b}else{k[c>>2]=0;E=20;break}}else E=20}while(0);if((E|0)==20){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[m>>2]|0;if((k[u>>2]|0)==(a+h|0)){x=0;Fa(8,C|0,h<<1|0,0);l=x;x=0;if(l&1){E=30;break}if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);l=x;x=0;if(l&1){E=30;break}a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a+h}j=d+12|0;h=k[j>>2]|0;l=d+16|0;if((h|0)==(k[l>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}}else h=k[h>>2]|0;if(tp(h,16,a,u,q,0,D,s,t,p)|0)break;g=k[j>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}else{g=d;continue}}else{k[j>>2]=g+4;g=d;continue}}if((E|0)==30){a=Wa()|0;break}x=0;Fa(8,C|0,(k[u>>2]|0)-a|0,0);F=x;x=0;if((!(F&1)?(w=i[C>>0]|0,y=k[n>>2]|0,x=0,z=Da(3)|0,F=x,x=0,!(F&1)):0)?(x=0,k[v>>2]=f,A=Ea(16,((w&1)==0?o:y)|0,z|0,58882,v|0)|0,F=x,x=0,!(F&1)):0){if((A|0)!=1)k[e>>2]=4;if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=31;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=31;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{E=59;break}else{k[c>>2]=0;E=57;break}}else E=57}while(0);if((E|0)==57?d:0)E=59;if((E|0)==59)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=31}else E=31}while(0);if((E|0)==31)a=Wa()|0;Sm(C);break}a=Wa()|0;zm(d)|0}}while(0);Sm(D);fb(a|0);return 0}function tp(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do{if(p){m=(k[l+96>>2]|0)==(a|0);if(!m?(k[l+100>>2]|0)!=(a|0):0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5}while(0);a:do{if((n|0)==5){n=i[g>>0]|0;if((a|0)==(f|0)?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+104|0;m=l;while(1){if((k[m>>2]|0)==(a|0))break;m=m+4|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;g=m>>2;if((m|0)>92)m=-1;else{switch(b|0){case 10:case 8:{if((g|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}}while(0);return m|0}function up(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+16|0;h=j;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44220)|0;l=x;x=0;if((((!(l&1)?(x=0,Ea(k[(k[e>>2]|0)+32>>2]|0,e|0,57498,57524,c|0)|0,l=x,x=0,!(l&1)):0)?(x=0,g=Aa(37,h|0,44360)|0,l=x,x=0,!(l&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,l=x,x=0,!(l&1)):0)?(i[d>>0]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),l=x,x=0,!(l&1)):0){zm(b)|0;r=j;return}l=Wa()|0;zm(b)|0;fb(l|0)}function vp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0;m=r;r=r+16|0;l=m;b=tn(b)|0;k[l>>2]=b;x=0;f=Aa(37,l|0,44220)|0;n=x;x=0;if(((((!(n&1)?(x=0,Ea(k[(k[f>>2]|0)+32>>2]|0,f|0,57498,57530,c|0)|0,n=x,x=0,!(n&1)):0)?(x=0,j=Aa(37,l|0,44360)|0,n=x,x=0,!(n&1)):0)?(x=0,g=ta(k[(k[j>>2]|0)+12>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[d>>0]=g,x=0,h=ta(k[(k[j>>2]|0)+16>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[e>>0]=h,x=0,ra(k[(k[j>>2]|0)+20>>2]|0,a|0,j|0),n=x,x=0,!(n&1)):0){zm(b)|0;r=m;return}n=Wa()|0;zm(b)|0;fb(n|0)}function wp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do{if(a<<24>>24==f<<24>>24)if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if(a<<24>>24==g<<24>>24?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+32|0;p=o;while(1){if((i[p>>0]|0)==a<<24>>24)break;p=p+1|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;if((f|0)>31)p=-1;else{g=i[57498+f>>0]|0;switch(f|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;p=k[e>>2]|0;k[e>>2]=p+1;i[p>>0]=g;p=0;break a}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>21){p=0;break a}k[n>>2]=(k[n>>2]|0)+1;p=0;break a}}}}}while(0);return p|0}function xp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+16|0;h=i;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44212)|0;j=x;x=0;if((((!(j&1)?(x=0,Ea(k[(k[e>>2]|0)+48>>2]|0,e|0,57498,57524,c|0)|0,j=x,x=0,!(j&1)):0)?(x=0,g=Aa(37,h|0,44368)|0,j=x,x=0,!(j&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,j=x,x=0,!(j&1)):0)?(k[d>>2]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),j=x,x=0,!(j&1)):0){zm(b)|0;r=i;return}j=Wa()|0;zm(b)|0;fb(j|0)}function yp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0;l=r;r=r+16|0;j=l;b=tn(b)|0;k[j>>2]=b;x=0;f=Aa(37,j|0,44212)|0;m=x;x=0;if(((((!(m&1)?(x=0,Ea(k[(k[f>>2]|0)+48>>2]|0,f|0,57498,57530,c|0)|0,m=x,x=0,!(m&1)):0)?(x=0,i=Aa(37,j|0,44368)|0,m=x,x=0,!(m&1)):0)?(x=0,g=ta(k[(k[i>>2]|0)+12>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[d>>2]=g,x=0,h=ta(k[(k[i>>2]|0)+16>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[e>>2]=h,x=0,ra(k[(k[i>>2]|0)+20>>2]|0,a|0,i|0),m=x,x=0,!(m&1)):0){zm(b)|0;r=l;return}m=Wa()|0;zm(b)|0;fb(m|0)}function zp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do{if((a|0)==(f|0))if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if((a|0)==(g|0)?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+128|0;p=o;while(1){if((k[p>>2]|0)==(a|0))break;p=p+4|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;p=f>>2;if((f|0)<=124){g=i[57498+p>>0]|0;switch(p|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;break}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}}}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>84)p=0;else{k[n>>2]=(k[n>>2]|0)+1;p=0}}else p=-1}}while(0);return p|0}function Ap(a){a=a|0;return}function Bp(a){a=a|0;mj(a);return}function Cp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+32|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m;a:do{if(!(k[c+4>>2]&1)){l=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[l&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44360)|0;j=x;x=0;b:do{if(j&1){m=Wa()|0;zm(f)|0;f=m}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](l,g);else Mb[k[f+28>>2]&127](l,g);a=i[l>>0]|0;j=(a&1)==0;f=l+1|0;e=l+8|0;h=j?f:l+1|0;f=j?f:k[l+8>>2]|0;j=l+4|0;c=(a&1)==0;c:do{if((f|0)!=((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0)){d:while(1){g=i[f>>0]|0;d=k[b>>2]|0;do{if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)!=(k[d+28>>2]|0)){k[c>>2]=a+1;i[a>>0]=g;break}x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g&255|0)|0;a=x;x=0;if(a&1)break d;if((g|0)==-1)k[b>>2]=0}}while(0);f=f+1|0;a=i[l>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0))break c}f=Wa()|0;Sm(l);break b}}while(0);f=k[b>>2]|0;Sm(l);break a}}while(0);fb(f|0)}}while(0);r=m;return f|0}function Dp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Ep(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(d&2048){i[a>>0]=43;a=a+1|0}if(d&512){i[a>>0]=35;a=a+1|0}e=i[b>>0]|0;if(e<<24>>24){f=b;while(1){f=f+1|0;b=a+1|0;i[a>>0]=e;e=i[f>>0]|0;if(!(e<<24>>24)){a=b;break}else a=b}}a:do{switch(d&74|0){case 64:{i[a>>0]=111;break}case 8:if(!(d&16384)){i[a>>0]=120;break a}else{i[a>>0]=88;break a}default:if(c){i[a>>0]=100;break a}else{i[a>>0]=117;break a}}}while(0);return}function Fp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do{switch(k[c+4>>2]&176|0){case 16:{c=i[a>>0]|0;switch(c<<24>>24){case 43:case 45:{a=a+1|0;break a}default:{}}if((b-a|0)>1&c<<24>>24==48){switch(i[a+1>>0]|0){case 88:case 120:break;default:{d=7;break a}}a=a+2|0}else d=7;break}case 32:{a=b;break}default:d=7}}while(0);return a|0}function Gp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44220)|0;l=Ss(g,44360)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do{if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+32>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a)|0;k[f>>2]=g;t=29}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=g;j=a+1|0;break}default:j=a}b:do{if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:break b}x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=h;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=g;j=j+2|0}}while(0);if((j|0)!=(c|0)?(m=c+-1|0,j>>>0>>0):0){h=j;g=m;do{p=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=p;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;m=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;p=x;x=0;if(!(p&1)){n=v+8|0;o=v+1|0;c:do{if(j>>>0>>0){g=0;h=0;p=j;while(1){l=i[((i[v>>0]&1)==0?o:k[n>>2]|0)+h>>0]|0;if(l<<24>>24!=0&(g|0)==(l<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+1;i[g>>0]=m;g=i[v>>0]|0;l=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else l=g;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[p>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+1;i[w>>0]=g;p=p+1|0;if(p>>>0>=c>>>0)break c;else g=l+1|0}g=Wa()|0;break a}}while(0);h=a;g=d+(j-h)|0;a=k[f>>2]|0;if((g|0)==(a|0)){a=h;t=29}else{a=a+-1|0;if(g>>>0>>0)do{w=i[g>>0]|0;i[g>>0]=i[a>>0]|0;i[a>>0]=w;g=g+1|0;a=a+-1|0}while(g>>>0>>0);a=h;g=k[f>>2]|0;t=29}}else t=5}}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==29){k[e>>2]=(b|0)==(c|0)?g:d+(b-a)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Hp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+96|0;g=m+8|0;a=m;o=m+74|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Ip(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Jp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+112|0;g=m+8|0;a=m;o=m+75|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Kp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+84|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+88|0;s=z+80|0;h=z+118|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Lp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(c&2048){i[a>>0]=43;a=a+1|0}if(c&1024){i[a>>0]=35;a=a+1|0}g=c&260;e=c>>>14;h=(g|0)==260;if(h)f=0;else{i[a>>0]=46;i[a+1>>0]=42;a=a+2|0;f=1}c=i[b>>0]|0;if(c<<24>>24){d=a;while(1){b=b+1|0;a=d+1|0;i[d>>0]=c;c=i[b>>0]|0;if(!(c<<24>>24))break;else d=a}}a:do{switch(g|0){case 4:if(!(e&1)){i[a>>0]=102;break a}else{i[a>>0]=70;break a}case 256:if(!(e&1)){i[a>>0]=101;break a}else{i[a>>0]=69;break a}default:{c=(e&1|0)!=0;if(h)if(c){i[a>>0]=65;break a}else{i[a>>0]=97;break a}else if(c){i[a>>0]=71;break a}else{i[a>>0]=103;break a}}}}while(0);return f|0}function Mp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;z=r;r=r+16|0;A=z;y=Ss(g,44220)|0;v=Ss(g,44360)|0;Mb[k[(k[v>>2]|0)+20>>2]&127](A,v);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,g|0)|0;w=x;x=0;if(w&1)u=8;else{m=k[f>>2]|0;k[f>>2]=m+1;i[m>>0]=g;m=a+1|0;u=10}break}default:{m=a;u=10}}a:do{if((u|0)==10){w=c;b:do{if((w-m|0)>1?(i[m>>0]|0)==48:0){j=m+1|0;switch(i[j>>0]|0){case 88:case 120:break;default:{u=11;break b}}x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,48)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;m=m+2|0;x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[j>>0]|0)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(39,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break b}g=g+1|0;if(g>>>0>=c>>>0){t=m;break b}}g=Wa()|0;break a}else{t=m;g=m}}else u=11}while(0);c:do{if((u|0)==11)if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(40,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break c}g=g+1|0;if(g>>>0>=c>>>0){t=m;break c}}g=Wa()|0;break a}else{t=m;g=m}}while(0);q=i[A>>0]|0;s=A+4|0;if(((q&1)==0?(q&255)>>>1:k[s>>2]|0)|0){if((t|0)!=(g|0)?(n=g+-1|0,t>>>0>>0):0){l=t;j=n;do{q=i[l>>0]|0;i[l>>0]=i[j>>0]|0;i[j>>0]=q;l=l+1|0;j=j+-1|0}while(l>>>0>>0)}x=0;n=ta(k[(k[v>>2]|0)+16>>2]|0,v|0)|0;q=x;x=0;if(q&1){u=8;break}o=A+8|0;p=A+1|0;d:do{if(t>>>0>>0){j=0;l=0;q=t;while(1){m=i[((i[A>>0]&1)==0?p:k[o>>2]|0)+l>>0]|0;if(m<<24>>24>0&(j|0)==(m<<24>>24|0)){j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=n;j=i[A>>0]|0;m=0;l=(l>>>0<(((j&1)==0?(j&255)>>>1:k[s>>2]|0)+-1|0)>>>0&1)+l|0}else m=j;x=0;j=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[q>>0]|0)|0;B=x;x=0;if(B&1)break;B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=j;q=q+1|0;if(q>>>0>=g>>>0)break d;else j=m+1|0}g=Wa()|0;break a}}while(0);j=d+(t-a)|0;l=k[f>>2]|0;if((j|0)!=(l|0)?(h=l+-1|0,j>>>0>>0):0){do{B=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=B;j=j+1|0;h=h+-1|0}while(j>>>0>>0);j=y}else j=y}else{x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,t|0,g|0,k[f>>2]|0)|0;B=x;x=0;if(B&1){u=8;break}k[f>>2]=(k[f>>2]|0)+(g-t);j=y}e:do{if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46)break;x=0;h=Aa(k[(k[j>>2]|0)+28>>2]|0,y|0,h|0)|0;B=x;x=0;if(B&1){u=4;break}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0;if(g>>>0>=c>>>0)break e}if((u|0)==4){g=Wa()|0;break a}x=0;h=ta(k[(k[v>>2]|0)+12>>2]|0,v|0)|0;B=x;x=0;if(B&1){u=8;break a}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0}}while(0);x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,g|0,c|0,k[f>>2]|0)|0;B=x;x=0;if(B&1)u=8;else{B=(k[f>>2]|0)+(w-g)|0;k[f>>2]=B;k[e>>2]=(b|0)==(c|0)?B:d+(b-a)|0;Sm(A);r=z;return}}}while(0);if((u|0)==8)g=Wa()|0;Sm(A);fb(g|0)}function Np(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+76|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+80|0;s=z+72|0;h=z+110|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do{if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do{if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do{if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}}while(0);do{if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Op(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+80|0;j=o;a=o+70|0;m=o+12|0;n=o+32|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44220)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+32>>2]&31](h,m,e,n)|0;p=n+a|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=md(j,n,(f|0)==(e|0)?p:n+(f-m)|0,p,c,d)|0;r=o;return p|0}return 0}function Pp(a){a=a|0;return}function Qp(a){a=a|0;mj(a);return}function Rp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;f=l+20|0;g=l+16|0;h=l+12|0;j=l;a:do{if(!(k[c+4>>2]&1)){j=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[j&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44368)|0;h=x;x=0;b:do{if(h&1){l=Wa()|0;zm(f)|0;f=l}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](j,g);else Mb[k[f+28>>2]&127](j,g);a=i[j>>0]|0;c=(a&1)==0;f=j+4|0;e=j+8|0;h=c?f:j+4|0;f=c?f:k[j+8>>2]|0;c=(a&1)==0;c:do{if((f|0)!=((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0)){while(1){g=k[f>>2]|0;d=k[b>>2]|0;if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)==(k[d+28>>2]|0)){x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g|0)|0;a=x;x=0;if(a&1)break}else{k[c>>2]=a+4;k[a>>2]=g}if((g|0)==-1)k[b>>2]=0}f=f+4|0;a=i[j>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0))break c}f=Wa()|0;en(j);break b}}while(0);f=k[b>>2]|0;en(j);break a}}while(0);fb(f|0)}}while(0);r=l;return f|0}function Sp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Tp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44212)|0;l=Ss(g,44368)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do{if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+48>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a<<2)|0;k[f>>2]=g;t=28}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+4;k[j>>2]=g;j=a+1|0;break}default:j=a}b:do{if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:{p=j;break b}}x=0;h=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=h;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=g;p=j+2|0}else p=j}while(0);if((p|0)!=(c|0)?(m=c+-1|0,p>>>0>>0):0){h=p;g=m;do{o=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=o;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;l=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;o=x;x=0;if(!(o&1)){m=v+8|0;n=v+1|0;c:do{if(p>>>0>>0){g=0;h=0;o=p;while(1){j=i[((i[v>>0]&1)==0?n:k[m>>2]|0)+h>>0]|0;if(j<<24>>24!=0&(g|0)==(j<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+4;k[g>>2]=l;g=i[v>>0]|0;j=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else j=g;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[o>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+4;k[w>>2]=g;o=o+1|0;if(o>>>0>=c>>>0)break c;else g=j+1|0}g=Wa()|0;break a}}while(0);j=a;g=d+(p-j<<2)|0;h=k[f>>2]|0;if((g|0)!=(h|0)){a=h+-4|0;if(g>>>0>>0){do{w=k[g>>2]|0;k[g>>2]=k[a>>2];k[a>>2]=w;g=g+4|0;a=a+-4|0}while(g>>>0>>0);a=j;g=h;t=28}else{a=j;g=h;t=28}}else{a=j;t=28}}else t=5}}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==28){k[e>>2]=(b|0)==(c|0)?g:d+(b-a<<2)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Up(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+224|0;g=m+8|0;a=m;o=m+196|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Et(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;q=t;o=t+8|0;a:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break a;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}}while(0);k[h>>2]=f;k[e>>2]=c;m=g;p=a+8|0;b:do{if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;l=j;c:while(1){v=b;f=k[v+4>>2]|0;j=q;k[j>>2]=k[v>>2];k[j+4>>2]=f;j=Ak(k[p>>2]|0)|0;x=0;f=Ba(21,a|0,e|0,l-c>>2|0,m-a|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(f|0){case 0:{n=1;break b}case-1:{j=a;u=14;break c}default:{}}j=(k[h>>2]|0)+f|0;k[h>>2]=j;if((j|0)==(g|0)){u=27;break}if((l|0)==(d|0)){c=k[e>>2]|0;a=j;j=d}else{j=Ak(k[p>>2]|0)|0;x=0;c=va(34,o|0,0,b|0)|0;v=x;x=0;if(v&1){u=35;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=34;break}if((c|0)==-1){n=2;break b}if(c>>>0>(m-(k[h>>2]|0)|0)>>>0){n=1;break b}if(c){j=o;while(1){l=i[j>>0]|0;v=k[h>>2]|0;k[h>>2]=v+1;i[v>>0]=l;c=c+-1|0;if(!c)break;else j=j+1|0}}c=(k[e>>2]|0)+4|0;k[e>>2]=c;d:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break d;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else l=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do{if((c|0)!=(k[e>>2]|0)){while(1){v=k[c>>2]|0;a=Ak(k[p>>2]|0)|0;x=0;j=va(34,j|0,v|0,q|0)|0;v=x;x=0;if(v&1){s=a;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,v=x,x=0,v&1):0){u=18;break}if((j|0)==-1)break e;j=(k[h>>2]|0)+j|0;k[h>>2]=j;c=c+4|0;if((c|0)==(k[e>>2]|0))break e}if((u|0)==18){v=Wa(0)|0;oc(v)}c=Wa()|0;if((s|0)!=0?(x=0,ta(75,s|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}while(0);k[e>>2]=c;n=2;break}else if((u|0)==27){c=k[e>>2]|0;u=47;break}else if((u|0)==34){v=Wa(0)|0;oc(v)}else if((u|0)==35){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47}while(0);if((u|0)==47)n=(c|0)!=(d|0)&1;r=t;return n|0}function Ft(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;s=t;a:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break a;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}}while(0);k[h>>2]=f;k[e>>2]=c;n=g;p=a+8|0;b:do{if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;m=j;c:while(1){l=b;j=k[l+4>>2]|0;f=s;k[f>>2]=k[l>>2];k[f+4>>2]=j;f=m;j=Ak(k[p>>2]|0)|0;x=0;l=Ba(22,a|0,e|0,f-c|0,n-a>>2|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(l|0){case 0:{o=2;break b}case-1:{j=a;u=14;break c}default:{}}a=(k[h>>2]|0)+(l<<2)|0;k[h>>2]=a;if((a|0)==(g|0)){u=31;break}c=k[e>>2]|0;if((m|0)==(d|0))j=d;else{j=Ak(k[p>>2]|0)|0;x=0;c=Ea(20,a|0,c|0,1,b|0)|0;v=x;x=0;if(v&1){u=38;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=37;break}if(c){o=2;break b}k[h>>2]=(k[h>>2]|0)+4;c=(k[e>>2]|0)+1|0;k[e>>2]=c;d:do{if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break d;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else m=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do{if((c|0)!=(k[e>>2]|0)){a=j;f:while(1){j=Ak(k[p>>2]|0)|0;x=0;a=Ea(20,a|0,c|0,f-c|0,s|0)|0;v=x;x=0;if(v&1){u=19;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=18;break}switch(a|0){case-1:{u=25;break f}case-2:{u=26;break f}case 0:{c=c+1|0;break}default:c=c+a|0}a=(k[h>>2]|0)+4|0;k[h>>2]=a;if((c|0)==(k[e>>2]|0)){q=c;break e}}if((u|0)==18){v=Wa(0)|0;oc(v)}else if((u|0)==19){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==25){k[e>>2]=c;o=2;break b}else if((u|0)==26){k[e>>2]=c;o=1;break b}}else q=c}while(0);k[e>>2]=q;o=(q|0)!=(d|0)&1;break}else if((u|0)==31){c=k[e>>2]|0;u=47;break}else if((u|0)==37){v=Wa(0)|0;oc(v)}else if((u|0)==38){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47}while(0);if((u|0)==47)o=(c|0)!=(d|0)&1;r=t;return o|0}function Gt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=r;r=r+16|0;f=g;k[e>>2]=c;c=Ak(k[a+8>>2]|0)|0;x=0;a=va(34,f|0,0,b|0)|0;b=x;x=0;if(b&1){f=Wa()|0;if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}fb(f|0)}if((c|0)!=0?(x=0,ta(75,c|0)|0,b=x,x=0,b&1):0){b=Wa(0)|0;oc(b)}switch(a|0){case 0:case-1:{f=2;break}default:{a=a+-1|0;if(a>>>0<=(d-(k[e>>2]|0)|0)>>>0)if(!a)f=0;else while(1){b=i[f>>0]|0;d=k[e>>2]|0;k[e>>2]=d+1;i[d>>0]=b;a=a+-1|0;if(!a){f=0;break}else f=f+1|0}else f=1}}r=g;return f|0}function Ht(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+8|0;x=0;c=ta(75,k[b>>2]|0)|0;d=x;x=0;do{if(d&1)e=16;else{x=0;d=va(35,0,0,4)|0;a=x;x=0;if(a&1){a=Wa(0)|0;if(!c)break;x=0;ta(75,c|0)|0;g=x;x=0;if(!(g&1))break;g=Wa(0)|0;oc(g)}if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}if(!d){a=k[b>>2]|0;if(a){x=0;a=ta(75,a|0)|0;g=x;x=0;if(g&1){e=16;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}else f=0}else f=1}else f=-1;return f|0}}while(0);if((e|0)==16)a=Wa(0)|0;oc(a);return 0}function It(a){a=a|0;return 0}function Jt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;j=d;i=a+8|0;a:do{if((c|0)==(d|0)|(e|0)==0)a=0;else{a=0;h=0;while(1){g=Ak(k[i>>2]|0)|0;x=0;f=va(36,c|0,j-c|0,b|0)|0;n=x;x=0;if(n&1){m=g;break}if((g|0)!=0?(x=0,ta(75,g|0)|0,n=x,x=0,n&1):0){l=5;break}switch(f|0){case-2:case-1:break a;case 0:{c=c+1|0;f=1;break}default:c=c+f|0}a=f+a|0;h=h+1|0;if((c|0)==(d|0)|h>>>0>=e>>>0)break a}if((l|0)==5){n=Wa(0)|0;oc(n)}a=Wa()|0;if((m|0)!=0?(x=0,ta(75,m|0)|0,n=x,x=0,n&1):0){n=Wa(0)|0;oc(n)}fb(a|0)}}while(0);return a|0}function Kt(a){a=a|0;var b=0,c=0;a=k[a+8>>2]|0;if(a){x=0;a=ta(75,a|0)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if((a|0)!=0?(x=0,ta(75,a|0)|0,c=x,x=0,c&1):0){c=Wa(0)|0;oc(c)}else b=4}else b=1;return b|0}function Lt(a){a=a|0;mj(a);return}function Mt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Rv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Nt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Sv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Ot(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Pt(a){a=a|0;return 0}function Qt(a){a=a|0;return 0}function Rt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Tv(c,d,e,1114111,0)|0}function St(a){a=a|0;return 4}function Tt(a){a=a|0;mj(a);return}function Ut(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Uv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Vt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Vv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Wt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Xt(a){a=a|0;return 0}function Yt(a){a=a|0;return 0}function Zt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wv(c,d,e,1114111,0)|0}function _t(a){a=a|0;return 4}function $t(a){a=a|0;mj(a);return}function au(a){a=a|0;mj(a);return}function bu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44384;i[a+8>>0]=46;i[a+9>>0]=44;a=a+12|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function cu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44424;k[a+8>>2]=46;k[a+12>>2]=44;a=a+16|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function du(a){a=a|0;k[a>>2]=44384;Sm(a+12|0);return}function eu(a){a=a|0;du(a);mj(a);return}function fu(a){a=a|0;k[a>>2]=44424;Sm(a+16|0);return}function gu(a){a=a|0;fu(a);mj(a);return}function hu(a){a=a|0;return i[a+8>>0]|0}function iu(a){a=a|0;return k[a+8>>2]|0}function ju(a){a=a|0;return i[a+9>>0]|0}function ku(a){a=a|0;return k[a+12>>2]|0}function lu(a,b){a=a|0;b=b|0;Pm(a,b+12|0);return}function mu(a,b){a=a|0;b=b|0;Pm(a,b+16|0);return}function nu(a,b){a=a|0;b=b|0;Qm(a,59024,4);return}function ou(a,b){a=a|0;b=b|0;cn(a,44996,zl(44996)|0);return}function pu(a,b){a=a|0;b=b|0;Qm(a,59029,5);return}function qu(a,b){a=a|0;b=b|0;cn(a,45016,zl(45016)|0);return}function ru(a){a=a|0;switch(k[a+4>>2]&74|0){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function su(a){a=a|0;do{if((i[2464]|0)==0?(Qa(2464)|0)!=0:0){if((i[2472]|0)==0?(Qa(2472)|0)!=0:0){a=45040;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45208);tb(193,0,w|0)|0;Ya(2472)}x=0;Aa(41,45040,59035)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(41,45052,59042)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45064,59049)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45076,59057)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45088,59067)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45100,59076)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45112,59083)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45124,59092)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45136,59096)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45148,59100)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45160,59104)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45172,59108)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45184,59112)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45196,59116)|0,a=x,x=0,!(a&1)):0){k[11302]=45040;Ya(2464);break}a=Wa()|0;Bb(2464);fb(a|0)}}while(0);return k[11302]|0}function tu(a){a=a|0;do{if((i[2480]|0)==0?(Qa(2480)|0)!=0:0){if((i[2488]|0)==0?(Qa(2488)|0)!=0:0){a=45212;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45380);tb(194,0,w|0)|0;Ya(2488)}x=0;Aa(42,45212,45380)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(42,45224,45408)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45236,45436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45248,45468)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45260,45508)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45272,45544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45284,45572)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45296,45608)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45308,45624)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45320,45640)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45332,45656)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45344,45672)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45356,45688)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45368,45704)|0,a=x,x=0,!(a&1)):0){k[11430]=45212;Ya(2480);break}a=Wa()|0;Bb(2480);fb(a|0)}}while(0);return k[11430]|0}function uu(a){a=a|0;a:do{if((i[2496]|0)==0?(Qa(2496)|0)!=0:0){if((i[2504]|0)==0?(Qa(2504)|0)!=0:0){a=45724;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46012);tb(195,0,w|0)|0;Ya(2504)}x=0;Aa(41,45724,59120)|0;a=x;x=0;do{if((((((((((((((!(a&1)?(x=0,Aa(41,45736,59128)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45748,59137)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45760,59143)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45772,59149)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45784,59153)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45796,59158)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45808,59163)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45820,59170)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45832,59180)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45844,59188)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45856,59197)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45868,59206)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45880,59210)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45892,59214)|0,a=x,x=0,!(a&1)):0){x=0;Aa(41,45904,59218)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45916,59149)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45928,59222)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45940,59226)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45952,59230)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45964,59234)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45976,59238)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45988,59242)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,46e3,59246)|0;a=x;x=0;if(a&1)break;k[11503]=45724;Ya(2496);break a}}while(0);a=Wa()|0;Bb(2496);fb(a|0)}}while(0);return k[11503]|0}function vu(a){a=a|0;a:do{if((i[2512]|0)==0?(Qa(2512)|0)!=0:0){if((i[2520]|0)==0?(Qa(2520)|0)!=0:0){a=46016;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46304);tb(196,0,w|0)|0;Ya(2520)}x=0;Aa(42,46016,46304)|0;a=x;x=0;do{if((((((((((((((!(a&1)?(x=0,Aa(42,46028,46336)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46040,46372)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46052,46396)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46064,46420)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46076,46436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46088,46456)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46100,46476)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46112,46504)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46124,46544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46136,46576)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46148,46612)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46160,46648)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46172,46664)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46184,46680)|0,a=x,x=0,!(a&1)):0){x=0;Aa(42,46196,46696)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46208,46420)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46220,46712)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46232,46728)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46244,46744)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46256,46760)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46268,46776)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46280,46792)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46292,46808)|0;a=x;x=0;if(a&1)break;k[11706]=46016;Ya(2512);break a}}while(0);a=Wa()|0;Bb(2512);fb(a|0)}}while(0);return k[11706]|0}function wu(a){a=a|0;do{if((i[2528]|0)==0?(Qa(2528)|0)!=0:0){if((i[2536]|0)==0?(Qa(2536)|0)!=0:0){a=46828;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47116);tb(197,0,w|0)|0;Ya(2536)}x=0;Aa(41,46828,59250)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(41,46840,59253)|0,a=x,x=0,!(a&1)):0){k[11779]=46828;Ya(2528);break}a=Wa()|0;Bb(2528);fb(a|0)}}while(0);return k[11779]|0}function xu(a){a=a|0;do{if((i[2544]|0)==0?(Qa(2544)|0)!=0:0){if((i[2552]|0)==0?(Qa(2552)|0)!=0:0){a=47120;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47408);tb(198,0,w|0)|0;Ya(2552)}x=0;Aa(42,47120,47408)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(42,47132,47420)|0,a=x,x=0,!(a&1)):0){k[11858]=47120;Ya(2544);break}a=Wa()|0;Bb(2544);fb(a|0)}}while(0);return k[11858]|0}function yu(a){a=a|0;do{if((i[2560]|0)==0?(Qa(2560)|0)!=0:0){x=0;Fa(5,47436,59256,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2560);fb(a|0)}else{tb(199,47436,w|0)|0;Ya(2560);break}}}while(0);return 47436}function zu(a){a=a|0;var b=0;do{if((i[2568]|0)==0?(Qa(2568)|0)!=0:0){x=0;a=ta(76,47448)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47484,47448,a|0),b=x,x=0,!(b&1)):0){tb(200,47484,w|0)|0;Ya(2568);break}b=Wa()|0;Bb(2568);fb(b|0)}}while(0);return 47484}function Au(a){a=a|0;do{if((i[2576]|0)==0?(Qa(2576)|0)!=0:0){x=0;Fa(5,47496,59265,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2576);fb(a|0)}else{tb(199,47496,w|0)|0;Ya(2576);break}}}while(0);return 47496}function Bu(a){a=a|0;var b=0;do{if((i[2584]|0)==0?(Qa(2584)|0)!=0:0){x=0;a=ta(76,47508)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47544,47508,a|0),b=x,x=0,!(b&1)):0){tb(200,47544,w|0)|0;Ya(2584);break}b=Wa()|0;Bb(2584);fb(b|0)}}while(0);return 47544}function Cu(a){a=a|0;do{if((i[2592]|0)==0?(Qa(2592)|0)!=0:0){x=0;Fa(5,47556,59274,20);a=x;x=0;if(a&1){a=Wa()|0;Bb(2592);fb(a|0)}else{tb(199,47556,w|0)|0;Ya(2592);break}}}while(0);return 47556}function Du(a){a=a|0;var b=0;do{if((i[2600]|0)==0?(Qa(2600)|0)!=0:0){x=0;a=ta(76,47568)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47652,47568,a|0),b=x,x=0,!(b&1)):0){tb(200,47652,w|0)|0;Ya(2600);break}b=Wa()|0;Bb(2600);fb(b|0)}}while(0);return 47652}function Eu(a){a=a|0;do{if((i[2608]|0)==0?(Qa(2608)|0)!=0:0){x=0;Fa(5,47664,59295,11);a=x;x=0;if(a&1){a=Wa()|0;Bb(2608);fb(a|0)}else{tb(199,47664,w|0)|0;Ya(2608);break}}}while(0);return 47664}function Fu(a){a=a|0;var b=0;do{if((i[2616]|0)==0?(Qa(2616)|0)!=0:0){x=0;a=ta(76,47676)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47724,47676,a|0),b=x,x=0,!(b&1)):0){tb(200,47724,w|0)|0;Ya(2616);break}b=Wa()|0;Bb(2616);fb(b|0)}}while(0);return 47724}function Gu(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=44304;a=a+8|0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do{if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}}while(0);d=Wa(0)|0;oc(d)}function Hu(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+112|0;j=z;n=(d-c|0)/12|0;do{if(n>>>0>100){j=Pl(n)|0;if((j|0)==0?(x=0,Ga(6),y=x,x=0,y&1):0){h=0;q=6;break}h=j;q=11}else{h=0;q=11}}while(0);a:do{if((q|0)==11){if((c|0)==(d|0))m=0;else{q=c;o=0;p=j;while(1){m=i[q>>0]|0;if(!(m&1))m=(m&255)>>>1;else m=k[q+4>>2]|0;if(!m){i[p>>0]=2;m=o+1|0;n=n+-1|0}else{i[p>>0]=1;m=o}q=q+12|0;if((q|0)==(d|0))break;else{o=m;p=p+1|0}}}w=(c|0)==(d|0);y=(c|0)==(d|0);v=0;s=m;b:while(1){m=k[a>>2]|0;do{if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break b}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0}while(0);q=(m|0)==0;o=k[b>>2]|0;if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;u=x;x=0;if(u&1){q=5;break}if((m|0)==-1){k[b>>2]=0;o=0}}}else o=0;p=(o|0)==0;m=k[a>>2]|0;if(!((n|0)!=0&(q^p))){q=64;break}o=k[m+12>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}else m=l[o>>0]|0;m=m&255;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}u=v+1|0;if(w){m=0;q=s}else{p=0;t=c;q=s;s=j;while(1){do{if((i[s>>0]|0)==1){if(!(i[t>>0]&1))o=t+1|0;else o=k[t+8>>2]|0;o=i[o+v>>0]|0;if(!g){x=0;o=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,o|0)|0;A=x;x=0;if(A&1){q=4;break b}}if(m<<24>>24!=o<<24>>24){i[s>>0]=0;o=p;n=n+-1|0;break}o=i[t>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[t+4>>2]|0;if((o|0)==(u|0)){i[s>>0]=2;o=1;q=q+1|0;n=n+-1|0}else o=1}else o=p}while(0);t=t+12|0;if((t|0)==(d|0)){m=o;break}else{p=o;s=s+1|0}}}if(!m){v=u;s=q;continue}m=k[a>>2]|0;o=m+12|0;p=k[o>>2]|0;if((p|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=5;break}}else k[o>>2]=p+1;if((q+n|0)>>>0<2|y){v=u;s=q;continue}else{m=c;p=q;q=j}while(1){if((i[q>>0]|0)==2){o=i[m>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[m+4>>2]|0;if((o|0)!=(u|0)){i[q>>0]=0;p=p+-1|0}}m=m+12|0;if((m|0)==(d|0)){v=u;s=p;continue b}else q=q+1|0}}if((q|0)==4){c=Wa()|0;break}else if((q|0)==5){c=Wa()|0;break}else if((q|0)==64){do{if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0}while(0);n=(m|0)==0;do{if(!p){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[b>>2]=0;q=76;break}}if(!n)q=77}else q=76}while(0);if((q|0)==76?n:0)q=77;if((q|0)==77)k[f>>2]=k[f>>2]|2;c:do{if((c|0)==(d|0))q=81;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){q=81;break}else j=j+1|0}}while(0);if((q|0)==81){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=z;return c|0}}}while(0);if((q|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Iu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(21,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ju(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(22,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ku(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+240|0;t=B+202|0;g=B+200|0;D=B+24|0;C=B+12|0;v=B+8|0;z=B+40|0;A=B+4|0;w=B;u=ru(d)|0;up(D,d,t,g);k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);s=x;x=0;a:do{if(!(s&1)){p=C+8|0;q=C+1|0;d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d;k[A>>2]=z;k[w>>2]=0;s=C+4|0;o=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){E=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;m=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;n=x;x=0;if(n&1){E=24;break b}if((m|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;E=16;break}}else E=16}while(0);if((E|0)==16){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[s>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,C|0,h<<1|0,0);n=x;x=0;if(n&1){E=24;break}if(!(i[C>>0]&1))d=10;else d=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,d|0,0);n=x;x=0;if(n&1){E=24;break}d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d+h}m=a+12|0;h=k[m>>2]|0;n=a+16|0;if((h|0)==(k[n>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}}else h=l[h>>0]|0;if(ep(h&255,u,d,v,w,o,D,z,A,t)|0)break;g=k[m>>2]|0;if((g|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}else continue}else{k[m>>2]=g+1;continue}}if((E|0)==24){a=Wa()|0;break}F=i[D>>0]|0;if((((F&1)==0?(F&255)>>>1:k[D+4>>2]|0)|0)!=0?(y=k[A>>2]|0,(y-z|0)<160):0){F=k[w>>2]|0;k[A>>2]=y+4;k[y>>2]=F}x=0;d=Ea(23,d|0,k[v>>2]|0,e|0,u|0)|0;F=x;x=0;if(!(F&1)){j[f>>1]=d;cs(D,z,k[A>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=25;break a}if((a|0)==-1){k[c>>2]=0;E=49;break}}if(!d)E=50}else E=49}while(0);if((E|0)==49?d:0)E=50;if((E|0)==50)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=25}else E=25}while(0);if((E|0)==25)a=Wa()|0;Sm(C);Sm(D);fb(a|0);return 0}function Lu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(24,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Mu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do{if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(25,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Nu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16}while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(26,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49}while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25}while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ou(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do{if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;p=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16}while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,p,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(1,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){o[f>>2]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49}while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25}while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Pu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do{if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16}while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(2,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49}while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25}while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Qu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do{if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do{if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16}while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(3,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49}while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25}while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Ru(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;b=pl(a,c,f)|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}function Su(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;y=r;r=r+112|0;j=y;m=(d-c|0)/12|0;do{if(m>>>0>100){j=Pl(m)|0;if((j|0)==0?(x=0,Ga(6),w=x,x=0,w&1):0){h=0;o=6;break}h=j;o=11}else{h=0;o=11}}while(0);a:do{if((o|0)==11){if((c|0)==(d|0))l=0;else{p=c;n=0;o=j;while(1){l=i[p>>0]|0;if(!(l&1))l=(l&255)>>>1;else l=k[p+4>>2]|0;if(!l){i[o>>0]=2;l=n+1|0;m=m+-1|0}else{i[o>>0]=1;l=n}p=p+12|0;if((p|0)==(d|0))break;else{n=l;o=o+1|0}}}v=(c|0)==(d|0);w=(c|0)==(d|0);u=0;q=m;b:while(1){m=k[a>>2]|0;do{if(m){n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break b}}else m=k[n>>2]|0;if((m|0)==-1){k[a>>2]=0;p=1;break}else{p=(k[a>>2]|0)==0;break}}else p=1}while(0);n=k[b>>2]|0;if(n){m=k[n+12>>2]|0;if((m|0)==(k[n+16>>2]|0)){x=0;m=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[m>>2]|0;if((m|0)==-1){k[b>>2]=0;n=0;o=1}else o=0}else{n=0;o=1}m=k[a>>2]|0;if(!((q|0)!=0&(p^o))){o=66;break}n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[n>>2]|0;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}t=u+1|0;if(v){m=0;p=q}else{p=0;s=c;o=q;q=j;while(1){do{if((i[q>>0]|0)==1){if(!(i[s>>0]&1))n=s+4|0;else n=k[s+8>>2]|0;n=k[n+(u<<2)>>2]|0;if(!g){x=0;n=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,n|0)|0;z=x;x=0;if(z&1){o=4;break b}}if((m|0)!=(n|0)){i[q>>0]=0;n=p;o=o+-1|0;break}n=i[s>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[s+4>>2]|0;if((n|0)==(t|0)){i[q>>0]=2;n=1;l=l+1|0;o=o+-1|0}else n=1}else n=p}while(0);s=s+12|0;if((s|0)==(d|0)){m=n;p=o;break}else{p=n;q=q+1|0}}}if(!m){u=t;q=p;continue}m=k[a>>2]|0;n=m+12|0;o=k[n>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=5;break}}else k[n>>2]=o+4;if((l+p|0)>>>0<2|w){u=t;q=p;continue}else{m=c;o=j}while(1){if((i[o>>0]|0)==2){n=i[m>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[m+4>>2]|0;if((n|0)!=(t|0)){i[o>>0]=0;l=l+-1|0}}m=m+12|0;if((m|0)==(d|0)){u=t;q=p;continue b}else o=o+1|0}}if((o|0)==4){c=Wa()|0;break}else if((o|0)==5){c=Wa()|0;break}else if((o|0)==66){do{if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0)){x=0;l=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)==-1){k[a>>2]=0;m=1;break}else{m=(k[a>>2]|0)==0;break}}else m=1}while(0);do{if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0)){x=0;l=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)!=-1)if(m)break;else{o=81;break}else{k[b>>2]=0;o=79;break}}else o=79}while(0);if((o|0)==79?m:0)o=81;if((o|0)==81)k[f>>2]=k[f>>2]|2;c:do{if((c|0)==(d|0))o=85;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){o=85;break}else j=j+1|0}}while(0);if((o|0)==85){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=y;return c|0}}}while(0);if((o|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Tu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(21,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Uu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do{if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(22,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Vu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+320|0;s=A+208|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;xp(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do{if(!(q&1)){o=B+8|0;p=B+1|0;a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}l=k[c>>2]|0;do{if(l){g=k[l+12>>2]|0;if((g|0)==(k[l+16>>2]|0)){x=0;g=ta(k[(k[l>>2]|0)+36>>2]|0,l|0)|0;m=x;x=0;if(m&1){D=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=l;break b}else{k[c>>2]=0;D=17;break}}else D=17}while(0);if((D|0)==17){D=0;if(h){g=0;break}else l=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(a+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=25;break}if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);m=x;x=0;if(m&1){D=25;break}a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a+g}h=d+12|0;g=k[h>>2]|0;m=d+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}}else g=k[g>>2]|0;if(tp(g,t,a,u,v,n,C,y,z,s)|0){g=l;break}g=k[h>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((D|0)==25){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;a=Ea(23,a|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){j[f>>1]=a;cs(C,y,k[z>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{D=53;break}else{k[c>>2]=0;D=51;break}}else D=51}while(0);if((D|0)==51?d:0)D=53;if((D|0)==53)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=26}else D=26}while(0);if((D|0)==26)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Wu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(24,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Xu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do{if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(25,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Yu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do{if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do{if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17}while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(26,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51}while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26}while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Zu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do{if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;p=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do{if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17}while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,p,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(1,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){o[f>>2]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51}while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26}while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function _u(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do{if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do{if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17}while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(2,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51}while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26}while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function $u(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do{if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do{if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17}while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(3,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do{if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51}while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26}while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function av(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=r;r=r+16|0;g=f;k[g>>2]=e;e=Ak(c)|0;c=ol(a,b,d,g)|0;if((e|0)!=0?(x=0,ta(75,e|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}r=f;return c|0}function bv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;x=0;b=va(37,a|0,c|0,f|0)|0;a=x;x=0;if(a&1){b=Wa()|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}fb(b|0)}else{if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}return 0}function cv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;m=n;g=k[a>>2]|0;a:do{if(!g)g=0;else{o=b;j=d-o>>2;l=e+12|0;h=k[l>>2]|0;j=(h|0)>(j|0)?h-j|0:0;h=c;o=h-o|0;e=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,b,e)|0)!=(e|0):0){k[a>>2]=0;g=0;break}do{if((j|0)>0){dn(m,j,f);x=0;e=va(k[(k[g>>2]|0)+48>>2]|0,g|0,((i[m>>0]&1)==0?m+4|0:k[m+8>>2]|0)|0,j|0)|0;o=x;x=0;if(o&1){o=Wa()|0;en(m);fb(o|0)}if((e|0)==(j|0)){en(m);break}else{k[a>>2]=0;en(m);g=0;break a}}}while(0);o=d-h|0;d=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,c,d)|0)!=(d|0):0){k[a>>2]=0;g=0;break}k[l>>2]=0}}while(0);r=n;return g|0}function dv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,m=0,n=0,o=0,p=0,q=0,r=0;f=k[a>>2]|0;do{if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0))if((Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1){k[a>>2]=0;f=0;break}else{f=k[a>>2]|0;break}}else f=0}while(0);g=(f|0)==0;f=k[b>>2]|0;do{if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0)?(Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1:0){k[b>>2]=0;r=11;break}if(g)r=13;else r=12}else r=11}while(0);if((r|0)==11)if(g)r=12;else{f=0;r=13}a:do{if((r|0)==12){k[c>>2]=k[c>>2]|6;f=0}else if((r|0)==13){g=k[a>>2]|0;h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[h>>0]|0;h=g&255;if(h<<24>>24>-1?(q=d+8|0,(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0):0){m=(Qb[k[(k[d>>2]|0)+36>>2]&63](d,h,0)|0)<<24>>24;g=k[a>>2]|0;h=g+12|0;i=k[h>>2]|0;if((i|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=e;n=f;e=f;f=m}else{k[h>>2]=i+1;o=e;n=f;e=f;f=m}while(1){f=f+-48|0;p=o+-1|0;g=k[a>>2]|0;do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0}while(0);i=(g|0)==0;if(e)if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;h=0;e=0}else{h=n;e=n}else h=n;else{h=n;e=0}g=k[a>>2]|0;if(!((o|0)>1&(i^(e|0)==0)))break;i=k[g+12>>2]|0;if((i|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[i>>0]|0;i=g&255;if(i<<24>>24<=-1)break a;if(!(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048))break a;f=((Qb[k[(k[d>>2]|0)+36>>2]&63](d,i,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;i=g+12|0;m=k[i>>2]|0;if((m|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=p;n=h;continue}else{k[i>>2]=m+1;o=p;n=h;continue}}do{if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0}while(0);g=(g|0)==0;do{if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)?(Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0)==-1:0){k[b>>2]=0;r=50;break}if(g)break a}else r=50}while(0);if((r|0)==50?!g:0)break;k[c>>2]=k[c>>2]|2;break}k[c>>2]=k[c>>2]|4;f=0}}while(0);return f|0}function ev(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;f=k[a>>2]|0;do{if(f){g=k[f+12>>2]|0;if((g|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[g>>2]|0;if((f|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1}while(0);g=k[b>>2]|0;do{if(g){f=k[g+12>>2]|0;if((f|0)==(k[g+16>>2]|0))f=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else f=k[f>>2]|0;if((f|0)!=-1)if(h){o=17;break}else{o=16;break}else{k[b>>2]=0;o=14;break}}else o=14}while(0);if((o|0)==14)if(h)o=16;else{g=0;o=17}a:do{if((o|0)==16){k[c>>2]=k[c>>2]|6;f=0}else if((o|0)==17){f=k[a>>2]|0;h=k[f+12>>2]|0;if((h|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[h>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,f)|0)){k[c>>2]=k[c>>2]|4;f=0;break}f=(Qb[k[(k[d>>2]|0)+52>>2]&63](d,f,0)|0)<<24>>24;h=k[a>>2]|0;i=h+12|0;j=k[i>>2]|0;if((j|0)==(k[h+16>>2]|0)){Ob[k[(k[h>>2]|0)+40>>2]&127](h)|0;m=e;l=g;i=g}else{k[i>>2]=j+4;m=e;l=g;i=g}while(1){f=f+-48|0;n=m+-1|0;g=k[a>>2]|0;do{if(g){h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[h>>2]|0;if((g|0)==-1){k[a>>2]=0;j=1;break}else{j=(k[a>>2]|0)==0;break}}else j=1}while(0);do{if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;e=0;g=1;break}else{i=l;e=l;g=(l|0)==0;break}}else{i=l;e=0;g=1}}while(0);h=k[a>>2]|0;if(!((m|0)>1&(j^g)))break;g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,g)|0))break a;f=((Qb[k[(k[d>>2]|0)+52>>2]&63](d,g,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;h=g+12|0;j=k[h>>2]|0;if((j|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;m=n;l=i;i=e;continue}else{k[h>>2]=j+4;m=n;l=i;i=e;continue}}do{if(h){g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if((g|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1}while(0);do{if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)!=-1)if(h)break a;else break;else{k[b>>2]=0;o=60;break}}else o=60}while(0);if((o|0)==60?!h:0)break;k[c>>2]=k[c>>2]|2}}while(0);return f|0}function fv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g|0;h=Sl(d?h:0,e)|0;if(!h)ak();do{if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}}while(0);k[f>>2]=201;k[b>>2]=i+g;k[c>>2]=(k[a>>2]|0)+e;return}function gv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do{if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function hv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=10;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f|0;do{if((c|0)!=(b|0)){if((e-j|0)>>>0>>0){bn(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+1|0;else g=k[a+8>>2]|0;f=c+(j-f)|0;if((b|0)!=(c|0)){d=b;e=g+j|0;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(c|0))break;else e=e+1|0}}i[g+f>>0]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}}while(0);return a|0}function iv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do{if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function jv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=1;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f>>2;do{if(h){if((e-j|0)>>>0>>0){ln(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+4|0;else g=k[a+8>>2]|0;f=j+((c-f|0)>>>2)|0;if((b|0)!=(c|0)){d=b;e=g+(j<<2)|0;while(1){k[e>>2]=k[d>>2];d=d+4|0;if((d|0)==(c|0))break;else e=e+4|0}}k[g+(f<<2)>>2]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}}while(0);return a|0}function kv(a,b){a=a|0;b=b|0;var c=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;i[a+128>>0]=0;do{if(b){x=0;ra(125,a|0,b|0);c=x;x=0;if(c&1){c=Wa()|0;Nv(a);fb(c|0)}else{cw(a,b);break}}}while(0);return}function lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43148)|0);return}function mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43188)|0);return}function nv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44220)|0);return}function ov(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44212)|0);return}function pv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44280)|0);return}function qv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44288)|0);return}function rv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44344)|0);return}function sv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44352)|0);return}function tv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44360)|0);return}function uv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44368)|0);return}function vv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43260)|0);return}function wv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43332)|0);return}function xv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43392)|0);return}function yv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43452)|0);return}function zv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43764)|0);return}function Av(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43828)|0);return}function Bv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43892)|0);return}function Cv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43956)|0);return}function Dv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43992)|0);return}function Ev(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44028)|0);return}function Fv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44064)|0);return}function Gv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44100)|0);return}function Hv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43544)|0);return}function Iv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43636)|0);return}function Jv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43668)|0);return}function Kv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43700)|0);return}function Lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44140)|0);return}function Mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44180)|0);return}function Nv(a){a=a|0;var b=0,c=0,d=0;c=k[a>>2]|0;do{if(c){d=a+4|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do{b=b+-4|0}while((b|0)!=(c|0));k[d>>2]=b}if((a+16|0)==(c|0)){i[a+128>>0]=0;break}else{mj(c);break}}}while(0);return}function Ov(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;g=a+4|0;c=k[g>>2]|0;d=k[a>>2]|0;e=c-d>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0?(f=d+(b<<2)|0,(c|0)!=(f|0)):0){do{c=c+-4|0}while((c|0)!=(f|0));k[g>>2]=c}}else bw(a,b-e|0);return}function Pv(a,b){a=a|0;b=b|0;var c=0;c=k[a+8>>2]|0;if((k[a+12>>2]|0)-c>>2>>>0>b>>>0)c=(k[c+(b<<2)>>2]|0)!=0;else c=0;return c|0}function Qv(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;c=k[c+4>>2]|0;a=(k[a>>2]|0)+(c>>1)|0;if(c&1)b=k[(k[a>>2]|0)+b>>2]|0;Lb[b&255](a);return}function Rv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var l=0,n=0;k[c>>2]=a;k[f>>2]=d;if(h&2)if((e-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-69;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-65;l=4}else l=4;a:do{if((l|0)==4){n=b;a=k[c>>2]|0;if(a>>>0>>0)while(1){h=j[a>>1]|0;l=h&65535;if(l>>>0>g>>>0){a=2;break a}do{if((h&65535)<128){a=k[f>>2]|0;if((e-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}else{if((h&65535)<2048){a=k[f>>2]|0;if((e-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>6|192;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)<55296){a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){a=2;break a}a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((n-a|0)<4){a=1;break a}a=a+2|0;h=m[a>>1]|0;if((h&64512|0)!=56320){a=2;break a}if((e-(k[f>>2]|0)|0)<4){a=1;break a}d=l&960;if(((d<<10)+65536|l<<10&64512|h&1023)>>>0>g>>>0){a=2;break a}k[c>>2]=a;a=(d>>>6)+1|0;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=a>>>2|240;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>2&15|a<<4&48|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l<<4&48|h>>>6&15|128;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=h&63|128}}while(0);a=(k[c>>2]|0)+2|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}}while(0);return a|0}function Sv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var m=0,n=0,o=0,p=0,q=0,r=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;m=k[f>>2]|0}else m=d}else{m=d;h=b}q=e;d=k[c>>2]|0;a=d>>>0>>0;a:do{if(a&m>>>0>>0)while(1){a=i[d>>0]|0;o=a&255;if(o>>>0>g>>>0){a=2;break a}do{if(a<<24>>24>-1){j[m>>1]=a&255;k[c>>2]=d+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((h-d|0)<2){a=1;break a}a=l[d+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+2;break}if((a&255)<240){if((h-d|0)<3){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;switch(o|0){case 224:{if((n&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((n&-32)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<6&4032|o<<12|a&63;if((a&65535)>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+3;break}if((a&255)>=245){a=2;break a}if((h-d|0)<4){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;d=i[d+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}p=a&255;if((p&192|0)!=128){a=2;break a}a=d&255;if((a&192|0)!=128){a=2;break a}if((q-m|0)<4){a=1;break a}o=o&7;d=n&255;n=p<<6;a=a&63;if((d<<12&258048|o<<18|n&4032|a)>>>0>g>>>0){a=2;break a}j[m>>1]=d<<2&60|p>>>4&3|((d>>>4&3|o<<2)<<6)+16320|55296;p=m+2|0;k[f>>2]=p;j[p>>1]=a|n&960|56320;k[c>>2]=(k[c>>2]|0)+4}}while(0);m=(k[f>>2]|0)+2|0;k[f>>2]=m;d=k[c>>2]|0;a=d>>>0>>0;if(!(a&m>>>0>>0)){r=39;break}}else r=39}while(0);if((r|0)==39)a=a&1;return a|0}function Tv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do{if((c|0)!=0&e>>>0>>0){m=e;f=0;b:while(1){e=i[m>>0]|0;k=e&255;if(k>>>0>d>>>0){e=m;f=42;break a}do{if(e<<24>>24>-1)e=m+1|0;else{if((e&255)<194){e=m;f=42;break a}if((e&255)<224){if((n-m|0)<2){e=m;f=42;break a}e=l[m+1>>0]|0;if((e&192|0)!=128){e=m;f=42;break a}if((e&63|k<<6&1984)>>>0>d>>>0){e=m;f=42;break a}e=m+2|0;break}if((e&255)<240){e=m;if((n-e|0)<3){e=m;f=42;break a}h=i[m+1>>0]|0;g=i[m+2>>0]|0;switch(k|0){case 224:{if((h&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((h&-32)<<24>>24!=-128){f=22;break b}break}default:if((h&-64)<<24>>24!=-128){f=24;break b}}e=g&255;if((e&192|0)!=128){e=m;f=42;break a}if(((h&255)<<6&4032|k<<12&61440|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+3|0;break}if((e&255)>=245){e=m;f=42;break a}e=m;if((c-f|0)>>>0<2|(n-e|0)<4){e=m;f=42;break a}j=i[m+1>>0]|0;g=i[m+2>>0]|0;h=i[m+3>>0]|0;switch(k|0){case 240:{if((j+112&255)>=48){f=32;break b}break}case 244:{if((j&-16)<<24>>24!=-128){f=34;break b}break}default:if((j&-64)<<24>>24!=-128){f=36;break b}}g=g&255;if((g&192|0)!=128){e=m;f=42;break a}e=h&255;if((e&192|0)!=128){e=m;f=42;break a}if(((j&255)<<12&258048|k<<18&1835008|g<<6&4032|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+4|0;f=f+1|0}}while(0);f=f+1|0;if(!(f>>>0>>0&e>>>0>>0)){f=42;break a}else m=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42}while(0);if((f|0)==42)e=e-a|0;return e|0}function Uv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0;k[c>>2]=a;k[f>>2]=d;l=e;if(h&2)if((l-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-69;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-65;j=4}else j=4;a:do{if((j|0)==4){a=k[c>>2]|0;if(a>>>0>>0)while(1){h=k[a>>2]|0;if(h>>>0>g>>>0|(h&-2048|0)==55296){a=2;break a}do{if(h>>>0>=128){if(h>>>0<2048){a=k[f>>2]|0;if((l-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>6|192;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}a=k[f>>2]|0;e=l-a|0;if(h>>>0<65536){if((e|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>12|224;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}else{if((e|0)<4){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>18|240;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>12&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}}else{a=k[f>>2]|0;if((l-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}}while(0);a=(k[c>>2]|0)+4|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}}while(0);return a|0}function Vv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,m=0,n=0,o=0,p=0,q=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;d=k[f>>2]|0;p=h}else p=h}else p=b;h=k[c>>2]|0;a=h>>>0>>0;a:do{if(a&d>>>0>>0)while(1){a=i[h>>0]|0;o=a&255;do{if(a<<24>>24>-1){if(o>>>0>g>>>0){a=2;break a}k[d>>2]=o;k[c>>2]=h+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((p-h|0)<2){a=1;break a}a=l[h+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+2;break}if((a&255)<240){if((p-h|0)<3){a=1;break a}j=i[h+1>>0]|0;a=i[h+2>>0]|0;switch(o|0){case 224:{if((j&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((j&-32)<<24>>24!=-128){a=2;break a}break}default:if((j&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(j&255)<<6&4032|o<<12&61440|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+3;break}if((a&255)>=245){a=2;break a}if((p-h|0)<4){a=1;break a}n=i[h+1>>0]|0;a=i[h+2>>0]|0;j=i[h+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}m=a&255;if((m&192|0)!=128){a=2;break a}a=j&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<12&258048|o<<18&1835008|m<<6&4032|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+4}}while(0);d=(k[f>>2]|0)+4|0;k[f>>2]=d;h=k[c>>2]|0;a=h>>>0>>0;if(!(a&d>>>0>>0)){q=38;break}}else q=38}while(0);if((q|0)==38)a=a&1;return a|0}function Wv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do{if((c|0)!=0&e>>>0>>0){k=e;m=0;b:while(1){e=i[k>>0]|0;j=e&255;do{if(e<<24>>24>-1){if(j>>>0>d>>>0){e=k;f=42;break a}e=k+1|0}else{if((e&255)<194){e=k;f=42;break a}if((e&255)<224){if((n-k|0)<2){e=k;f=42;break a}e=l[k+1>>0]|0;if((e&192|0)!=128){e=k;f=42;break a}if((e&63|j<<6&1984)>>>0>d>>>0){e=k;f=42;break a}e=k+2|0;break}if((e&255)<240){e=k;if((n-e|0)<3){e=k;f=42;break a}g=i[k+1>>0]|0;f=i[k+2>>0]|0;switch(j|0){case 224:{if((g&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((g&-32)<<24>>24!=-128){f=22;break b}break}default:if((g&-64)<<24>>24!=-128){f=24;break b}}e=f&255;if((e&192|0)!=128){e=k;f=42;break a}if(((g&255)<<6&4032|j<<12&61440|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+3|0;break}if((e&255)>=245){e=k;f=42;break a}e=k;if((n-e|0)<4){e=k;f=42;break a}h=i[k+1>>0]|0;f=i[k+2>>0]|0;g=i[k+3>>0]|0;switch(j|0){case 240:{if((h+112&255)>=48){f=32;break b}break}case 244:{if((h&-16)<<24>>24!=-128){f=34;break b}break}default:if((h&-64)<<24>>24!=-128){f=36;break b}}f=f&255;if((f&192|0)!=128){e=k;f=42;break a}e=g&255;if((e&192|0)!=128){e=k;f=42;break a}if(((h&255)<<12&258048|j<<18&1835008|f<<6&4032|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+4|0}}while(0);m=m+1|0;if(!(m>>>0>>0&e>>>0>>0)){f=42;break a}else k=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42}while(0);if((f|0)==42)e=e-a|0;return e|0}function Xv(a){a=a|0;Sm(45196);Sm(45184);Sm(45172);Sm(45160);Sm(45148);Sm(45136);Sm(45124);Sm(45112);Sm(45100);Sm(45088);Sm(45076);Sm(45064);Sm(45052);Sm(45040);return}function Yv(a){a=a|0;en(45368);en(45356);en(45344);en(45332);en(45320);en(45308);en(45296);en(45284);en(45272);en(45260);en(45248);en(45236);en(45224);en(45212);return}function Zv(a){a=a|0;Sm(46e3);Sm(45988);Sm(45976);Sm(45964);Sm(45952);Sm(45940);Sm(45928);Sm(45916);Sm(45904);Sm(45892);Sm(45880);Sm(45868);Sm(45856);Sm(45844);Sm(45832);Sm(45820);Sm(45808);Sm(45796);Sm(45784);Sm(45772);Sm(45760);Sm(45748);Sm(45736);Sm(45724);return}function _v(a){a=a|0;en(46292);en(46280);en(46268);en(46256);en(46244);en(46232);en(46220);en(46208);en(46196);en(46184);en(46172);en(46160);en(46148);en(46136);en(46124);en(46112);en(46100);en(46088);en(46076);en(46064);en(46052);en(46040);en(46028);en(46016);return}function $v(a){a=a|0;Sm(47104);Sm(47092);Sm(47080);Sm(47068);Sm(47056);Sm(47044);Sm(47032);Sm(47020);Sm(47008);Sm(46996);Sm(46984);Sm(46972);Sm(46960);Sm(46948);Sm(46936);Sm(46924);Sm(46912);Sm(46900);Sm(46888);Sm(46876);Sm(46864);Sm(46852);Sm(46840);Sm(46828);return}function aw(a){a=a|0;en(47396);en(47384);en(47372);en(47360);en(47348);en(47336);en(47324);en(47312);en(47300);en(47288);en(47276);en(47264);en(47252);en(47240);en(47228);en(47216);en(47204);en(47192);en(47180);en(47168);en(47156);en(47144);en(47132);en(47120);return}function bw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+32|0;h=i;f=k[a+8>>2]|0;c=k[a+4>>2]|0;if(f-c>>2>>>0>>0){d=k[a>>2]|0;g=c-d>>2;e=g+b|0;if(e>>>0>1073741823)jj(a);c=f-d|0;if(c>>2>>>0<536870911){c=c>>1;c=c>>>0>>0?e:c}else c=1073741823;dw(h,c,g,a+16|0);g=h+8|0;f=k[g>>2]|0;sw(f|0,0,b<<2|0)|0;k[g>>2]=f+(b<<2);ew(a,h);fw(h)}else cw(a,b);r=i;return}function cw(a,b){a=a|0;b=b|0;var c=0;c=a+4|0;a=b;b=k[c>>2]|0;do{k[b>>2]=0;b=(k[c>>2]|0)+4|0;k[c>>2]=b;a=a+-1|0}while((a|0)!=0);return}function dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;k[a+12>>2]=0;k[a+16>>2]=d;do{if(b){e=d+112|0;if(b>>>0<29&(i[e>>0]|0)==0){i[e>>0]=1;break}else{d=lj(b<<2)|0;break}}else d=0}while(0);k[a>>2]=d;c=d+(c<<2)|0;k[a+8>>2]=c;k[a+4>>2]=c;k[a+12>>2]=d+(b<<2);return}function ew(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=k[a>>2]|0;f=a+4|0;c=b+4|0;e=(k[f>>2]|0)-d|0;g=(k[c>>2]|0)+(0-(e>>2)<<2)|0;k[c>>2]=g;vw(g|0,d|0,e|0)|0;e=k[a>>2]|0;k[a>>2]=k[c>>2];k[c>>2]=e;e=b+8|0;d=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=d;e=a+8|0;a=b+12|0;d=k[e>>2]|0;k[e>>2]=k[a>>2];k[a>>2]=d;k[b>>2]=k[c>>2];return}function fw(a){a=a|0;var b=0,c=0,d=0;c=k[a+4>>2]|0;d=a+8|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do{b=b+-4|0}while((b|0)!=(c|0));k[d>>2]=b}c=k[a>>2]|0;do{if(c){b=k[a+16>>2]|0;if((b|0)==(c|0)){i[b+112>>0]=0;break}else{mj(c);break}}}while(0);return}function gw(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>1073741823)jj(a);c=a+128|0;if(b>>>0<29&(i[c>>0]|0)==0){i[c>>0]=1;c=a+16|0}else c=lj(b<<2)|0;k[a+4>>2]=c;k[a>>2]=c;k[a+8>>2]=c+(b<<2);return}function hw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}}while(0);r=h;return+d}function iw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}}while(0);r=h;return+d}function jw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)==(b|0)){k[c>>2]=4;d=0.0}else{e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}}while(0);r=h;return+d}function kw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;d=0;a=0;break}e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;a=fk(a,g,d,fp()|0)|0;d=k[e>>2]|0;if(!d)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((d|0)==34){k[c>>2]=4;d=-1;a=-1}else d=M}else{k[c>>2]=4;d=0;a=0}}while(0);M=d;r=h;return a|0}function lw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}}while(0);r=j;return a|0}function mw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}}while(0);r=j;return a|0}function nw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;do{if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>65535|(e|0)==34){k[c>>2]=4;a=-1;break}else{a=a&65535;break}}else{k[c>>2]=4;a=0}}while(0);r=j;return a|0}function ow(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=r;r=r+16|0;h=i;do{if((a|0)!=(b|0)){f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((e|0)==34){k[c>>2]=4;h=(d|0)>0|(d|0)==0&a>>>0>0;M=h?2147483647:-2147483648;r=i;return(h?-1:0)|0}}else{k[c>>2]=4;d=0;a=0}}while(0);M=d;r=i;return a|0}function pw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=r;r=r+16|0;h=i;a:do{if((a|0)==(b|0)){k[c>>2]=4;a=0}else{f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}do{if((e|0)==34){k[c>>2]=4;if((d|0)>0|(d|0)==0&a>>>0>0){a=2147483647;break a}}else{if((d|0)<-1|(d|0)==-1&a>>>0<2147483648){k[c>>2]=4;break}if((d|0)>0|(d|0)==0&a>>>0>2147483647){k[c>>2]=4;a=2147483647;break a}else break a}}while(0);a=-2147483648}}while(0);r=i;return a|0}function qw(){}function rw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return(M=d,a-c>>>0|0)|0}function sw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function tw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(M=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function uw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>>c;return a>>>c|(b&(1<>>c-32|0}function vw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)>=4096)return db(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function ww(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b<>>32-c;return a<0){a=a-1|0;b=b-1|0;c=c-1|0;i[a>>0]=i[b>>0]|0}a=d}else vw(a,b,c)|0;return a|0}function yw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>c;return a>>>c|(b&(1<>c-32|0}function zw(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return(i[v+(a>>>24)>>0]|0)+24|0}function Aw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ia(e,f)|0;d=a>>>16;a=(c>>>16)+(ia(e,d)|0)|0;e=b>>>16;b=ia(e,f)|0;return(M=(a>>>16)+(ia(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Bw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=rw(j^a,i^b,j,i)|0;g=M;a=f^j;b=e^i;return rw((Gw(h,g,rw(f^c,e^d,f,e)|0,M,0)|0)^a,M^b,a,b)|0}function Cw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=rw(g^a,f^b,g,f)|0;b=M;Gw(a,b,rw(j^c,i^d,j,i)|0,M,h)|0;d=rw(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=M;r=e;return(M=c,d)|0}function Dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Aw(e,f)|0;a=M;return(M=(ia(b,f)|0)+(ia(d,e)|0)+a|a&0,c|0|0)|0}function Ew(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gw(a,b,c,d,0)|0}function Fw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;Gw(a,b,c,d,e)|0;r=f;return(M=k[e+4>>2]|0,k[e>>2]|0)|0}function Gw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return(M=n,e)|0}else{if(!f){n=0;e=0;return(M=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return(M=n,e)|0}}f=(h|0)==0;do{if(g){if(!f){f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return(M=n,e)|0}f=g-1|0;if(f&g){h=(ka(g|0)|0)+33-(ka(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return(M=o,p)|0}else{p=zw(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return(M=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return(M=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return(M=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((zw(h|0)|0)>>>0);return(M=o,p)|0}f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return(M=o,p)|0}}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=tw(m|0,l|0,-1,-1)|0;c=M;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;rw(j,c,d,n)|0;p=M;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=rw(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=M;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return(M=o,p)|0}function Hw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Ib[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function Iw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Jb[a&15](b|0,c|0,d|0,e|0,f|0)}function Jw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Kb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function Kw(a,b){a=a|0;b=b|0;Lb[a&255](b|0)}function Lw(a,b,c){a=a|0;b=b|0;c=c|0;Mb[a&127](b|0,c|0)}function Mw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Nb[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Nw(a,b){a=a|0;b=b|0;return Ob[a&127](b|0)|0}function Ow(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;return Pb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)|0}function Pw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qb[a&63](b|0,c|0,d|0)|0}function Qw(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;Rb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0,n|0,o|0,p|0)}function Rw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Sb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function Sw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Tb[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Tw(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;Ub[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Uw(a,b,c){a=a|0;b=b|0;c=c|0;return Vb[a&63](b|0,c|0)|0}function Vw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Wb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function Ww(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return+Xb[a&3](b|0,c|0,d|0)}function Xw(a){a=a|0;return Yb[a&15]()|0}function Yw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zb[a&31](b|0,c|0,d|0,e|0)|0}function Zw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_b[a&15](b|0,c|0,d|0)}function _w(a){a=a|0;$b[a&7]()}function $w(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return ac[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function ax(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return bc[a&7](b|0,c|0,d|0,e|0,+f)|0}function bx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;cc[a&63](b|0,c|0,d|0,e|0)}function cx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(0);return 0}function dx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(1)}function ex(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;la(2);return 0}function fx(a){a=a|0;la(3)}function gx(a,b){a=a|0;b=b|0;la(4)}function hx(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(5);return 0}function ix(a){a=a|0;la(6);return 0}function jx(a){a=a|0;return lb(a|0)|0}function kx(a){a=a|0;return Ab(a|0)|0}function lx(a){a=a|0;return qb(a|0)|0}function mx(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;la(7);return 0}function nx(a,b,c){a=a|0;b=b|0;c=c|0;la(8);return 0}function ox(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;la(9)}function px(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(10)}function qx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(11)}function rx(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;la(12)}function sx(a,b){a=a|0;b=b|0;la(13);return 0}function tx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(14);return 0}function ux(a,b,c){a=a|0;b=b|0;c=c|0;la(15);return 0.0}function vx(){la(16);return 0}function wx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(17);return 0}function xx(a,b,c){a=a|0;b=b|0;c=c|0;la(18)}function yx(a,b,c){a=a|0;b=b|0;c=c|0;ub(a|0,b|0,c|0)}function zx(){la(19)}function Ax(){yb()}function Bx(){eb()}function Cx(){vb()}function Dx(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;la(20);return 0}function Ex(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;la(21);return 0}function Fx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(22)}function ni(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function oi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function pi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do{if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do{if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34}while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do{if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do{if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64}while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;zi(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function si(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);ti(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function ti(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;h=a+172|0;y=(k[h>>2]|0)+4|0;if((k[a+28>>2]|0)==1)j=k[a+20>>2]|0;else j=1;b=ia(j<<1,y)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do{if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))w=6;if((w|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do{if(!j)w=19;else{if(!(j>>>0>1073741823?(x=0,qa(178,z|0),v=x,x=0,v&1):0))w=17;if((w|0)==17?(d=j<<2,x=0,e=ta(67,d|0)|0,v=x,x=0,!(v&1)):0){k[z>>2]=e;w=e+(j<<2)|0;k[z+8>>2]=w;sw(e|0,0,d|0)|0;k[B>>2]=w;w=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}}while(0);if((w|0)==19){l=a+8|0;b=k[l>>2]|0;b:do{if((b|0)>0){m=a+4596|0;n=ia(j,y)|0;o=n+1|0;p=a+4600|0;q=a+160|0;s=a+168|0;t=a+164|0;u=a+156|0;v=a+88|0;g=a+4592|0;if((j|0)>0)f=0;else{f=0;while(1){e=k[C>>2]|0;c=e+1|0;k[m>>2]=c;d=e+o|0;k[p>>2]=d;if(!(f&1))c=o;else{k[m>>2]=d;k[p>>2]=c;c=1}j=k[q>>2]|0;if((j|0)<=(f|0)?(f|0)<((k[s>>2]|0)+j|0):0){j=k[v>>2]|0;x=0;Ja(k[(k[j>>2]|0)+8>>2]|0,j|0,e+(c+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0);j=x;x=0;if(j&1)break;b=k[l>>2]|0}f=f+1|0;if((f|0)>=(b|0)){w=50;break b}}c=Wa()|0;break}c:while(1){c=k[C>>2]|0;b=c+1|0;k[m>>2]=b;c=c+o|0;k[p>>2]=c;if(f&1){k[m>>2]=c;k[p>>2]=b;b=c}e=k[z>>2]|0;c=b;d=0;do{k[g>>2]=k[e+(d<<2)>>2];w=k[h>>2]|0;i[c+w>>0]=i[c+(w+-1)>>0]|0;i[(k[p>>2]|0)+-1>>0]=i[k[m>>2]>>0]|0;x=0;ra(83,a|0,0);w=x;x=0;if(w&1){w=38;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[g>>2];c=(k[m>>2]|0)+y|0;k[m>>2]=c;b=k[p>>2]|0;k[p>>2]=b+y;d=d+1|0}while((d|0)<(j|0));w=k[q>>2]|0;if(((w|0)<=(f|0)?(f|0)<((k[s>>2]|0)+w|0):0)?(w=k[v>>2]|0,x=0,Ja(k[(k[w>>2]|0)+8>>2]|0,w|0,b+(y+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0),w=x,x=0,w&1):0){w=30;break}f=f+1|0;if((f|0)>=(k[l>>2]|0)){w=50;break b}}if((w|0)==30){c=Wa()|0;break}else if((w|0)==38){c=Wa()|0;break}}else w=50}while(0);do{if((w|0)==50){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=a+4596|0;c=k[p>>2]|0;t=a+172|0;b=k[t>>2]|0;if((b|0)<=0)return;q=a+4600|0;r=a+4604|0;s=a+4592|0;h=c;f=l[c+-1>>0]|0;c=l[c>>0]|0;o=0;while(1){m=k[q>>2]|0;g=i[m+(o+-1)>>0]|0;n=g&255;e=o+1|0;d=l[h+e>>0]|0;j=k[r>>2]|0;h=c-f|0;f=f-n|0;j=((((i[j+(d-c)>>0]|0)*9|0)+(i[j+h>>0]|0)|0)*9|0)+(i[j+f>>0]|0)|0;m=m+o|0;if(!j){b=wi(a,g,m,b-o|0)|0;c=b+o|0;if((c|0)!=(k[t>>2]|0)){n=xi(a,n,l[(k[p>>2]|0)+c>>0]|0)|0;i[(k[q>>2]|0)+c>>0]=n;n=k[s>>2]|0;k[s>>2]=(n|0)<1?0:n+-1|0;b=b+1|0}e=b+o|0;d=k[p>>2]|0;c=l[d+(e+-1)>>0]|0;d=l[d+e>>0]|0}else{b=c-n>>31;if((b^f|0)<0)b=c;else b=n+((b^h|0)<0?0:h)|0;n=vi(a,j,l[m>>0]|0,b,0)|0;i[(k[q>>2]|0)+o>>0]=n}b=k[t>>2]|0;if((b|0)<=(e|0))break;h=k[p>>2]|0;f=c;c=d;o=e}return}function vi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function wi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function xi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(yi(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}else{c=yi(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}return 0}function yi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do{if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do{if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0}while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ai(a){a=a|0;mj(a);return}function Bi(a){a=a|0;return 50767}function Ci(a,b,c){a=a|0;b=b|0;c=c|0;Qm(a,50754,12);return}function Di(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+16|0;s=q;k[s>>2]=0;t=s+4|0;k[t>>2]=0;k[s+8>>2]=0;o=s+8|0;x=0;e=ta(67,1)|0;n=x;x=0;a:do{if((!(n&1)?(n=e+1|0,i[e>>0]=c,k[s>>2]=e,k[t>>2]=n,k[o>>2]=n,x=0,ra(84,s|0,b&65535|0),n=x,x=0,!(n&1)):0)?(x=0,ra(84,s|0,a&65535|0),n=x,x=0,!(n&1)):0){l=d&255;e=k[t>>2]|0;c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);n=x;x=0;if(n&1){p=52;break}a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=12}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=12}if((p|0)==12){x=0;g=ta(67,e|0)|0;n=x;x=0;if(n&1){p=52;break}}i[g+h>>0]=l;m=c-j|0;n=g+(h-m)|0;vw(n|0,b|0,m|0)|0;k[s>>2]=n;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=l;k[t>>2]=(k[t>>2]|0)+1}b:do{if((d|0)>0){n=0;while(1){n=n+1|0;m=n&255;e=k[t>>2]|0;b=k[o>>2]|0;if(e>>>0>=b>>>0){a=k[s>>2]|0;c=a;g=e-c+1|0;if((g|0)<0){x=0;qa(178,s|0);l=x;x=0;if(l&1)break;a=k[s>>2]|0;c=a;b=k[o>>2]|0}l=a;e=b-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;b=k[t>>2]|0;h=b-l|0;if(!e){j=0;g=0}else p=25}else{h=k[t>>2]|0;e=2147483647;b=h;h=h-l|0;p=25}if((p|0)==25){p=0;x=0;g=ta(67,e|0)|0;j=x;x=0;if(j&1)break;else j=e}i[g+h>>0]=m;e=g+(h+1)|0;l=b-l|0;m=g+(h-l)|0;vw(m|0,a|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=g+j;if(c){mj(c);e=k[t>>2]|0}}else{i[e>>0]=m;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}l=b;e=c-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;g=k[t>>2]|0;h=g-l|0;if(!e){j=0;c=0}else p=36}else{h=k[t>>2]|0;e=2147483647;g=h;h=h-l|0;p=36}if((p|0)==36){p=0;x=0;c=ta(67,e|0)|0;m=x;x=0;if(m&1)break;else j=e}i[c+h>>0]=17;e=c+(h+1)|0;l=g-l|0;m=c+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=c+j;if(a){mj(a);e=k[t>>2]|0}}else{i[e>>0]=17;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=48}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=48}if((p|0)==48){p=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1)break}i[g+h>>0]=0;l=c-j|0;m=g+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=0;k[t>>2]=(k[t>>2]|0)+1}if((n|0)>=(d|0))break b}f=Wa()|0;break a}}while(0);x=0;h=ta(67,20)|0;d=x;x=0;if(!(d&1)){k[h>>2]=36800;i[h+4>>0]=-9;a=h+8|0;k[a>>2]=0;g=h+12|0;k[g>>2]=0;c=h+16|0;k[c>>2]=0;e=k[t>>2]|0;d=k[s>>2]|0;b=e-d|0;do{if((e|0)!=(d|0)){if(!((b|0)<0?(x=0,qa(178,a|0),d=x,x=0,d&1):0))p=62;if((p|0)==62?(x=0,f=ta(67,b|0)|0,d=x,x=0,!(d&1)):0){k[g>>2]=f;k[a>>2]=f;k[c>>2]=f+b;e=k[s>>2]|0;c=k[t>>2]|0;if((e|0)==(c|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[g>>2]|0)+1|0;k[g>>2]=f;e=e+1|0}while((e|0)!=(c|0));e=k[s>>2]|0;break}f=Wa()|0;e=k[a>>2]|0;if(e){if((k[g>>2]|0)!=(e|0))k[g>>2]=e;mj(e)}mj(h);break a}}while(0);if(!e){r=q;return h|0}if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);r=q;return h|0}else p=52}else p=52}while(0);if((p|0)==52)f=Wa()|0;e=k[s>>2]|0;if(!e)fb(f|0);if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);fb(f|0);return 0}function Ei(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;p=t+28|0;v=t+16|0;s=t+4|0;q=t;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;n=lj(5)|0;k[v>>2]=n;o=v+8|0;k[o>>2]=n+5;i[n>>0]=74;i[n+1>>0]=70;i[n+2>>0]=73;i[n+3>>0]=70;i[n+4>>0]=0;k[w>>2]=n+5;x=0;ra(84,v|0,k[a>>2]&65535|0);n=x;x=0;a:do{if(!(n&1)){l=k[a+4>>2]&255;b=k[w>>2]|0;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);n=x;x=0;if(n&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=10}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=10}if((u|0)==10){x=0;g=ta(67,b|0)|0;n=x;x=0;if(n&1){u=43;break}}i[g+h>>0]=l;m=d-j|0;n=g+(h-m)|0;vw(n|0,e|0,m|0)|0;k[v>>2]=n;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}x=0;ra(84,v|0,k[a+8>>2]&65535|0);n=x;x=0;if(!(n&1)?(x=0,ra(84,v|0,k[a+12>>2]&65535|0),n=x,x=0,!(n&1)):0){n=a+16|0;m=k[n>>2]&255;b=k[w>>2]|0;e=k[o>>2]|0;if(b>>>0>=e>>>0){f=k[v>>2]|0;d=f;g=b-d+1|0;if((g|0)<0){x=0;qa(178,v|0);l=x;x=0;if(l&1){u=43;break}f=k[v>>2]|0;d=f;e=k[o>>2]|0}l=f;b=e-l|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;g=k[w>>2]|0;h=g-l|0;if(!b){j=0;e=0}else u=23}else{h=k[w>>2]|0;b=2147483647;g=h;h=h-l|0;u=23}if((u|0)==23){x=0;e=ta(67,b|0)|0;j=x;x=0;if(j&1){u=43;break}else j=b}i[e+h>>0]=m;b=e+(h+1)|0;l=g-l|0;m=e+(h-l)|0;vw(m|0,f|0,l|0)|0;k[v>>2]=m;k[w>>2]=b;k[o>>2]=e+j;if(d){mj(d);b=k[w>>2]|0}}else{i[b>>0]=m;b=(k[w>>2]|0)+1|0;k[w>>2]=b}m=a+20|0;l=k[m>>2]&255;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);j=x;x=0;if(j&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=34}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=34}if((u|0)==34){x=0;g=ta(67,b|0)|0;y=x;x=0;if(y&1){u=43;break}}i[g+h>>0]=l;l=d-j|0;y=g+(h-l)|0;vw(y|0,e|0,l|0)|0;k[v>>2]=y;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}b=k[n>>2]|0;do{if((b|0)>0){if(!(k[a+24>>2]|0)){k[q>>2]=k[w>>2];y=0+(ia(b*3|0,k[m>>2]|0)|0)|0;x=0;k[p>>2]=k[q>>2];Ea(15,v|0,p|0,0,y|0)|0;y=x;x=0;if(y&1){u=43;break a}else break}d=Va(16)|0;x=0;Fa(5,s|0,50792,57);y=x;x=0;if(!(y&1)){x=0;b=Da(1)|0;y=x;x=0;if(!(y&1)?(x=0,Ja(36,d|0,1,b|0,s|0),y=x,x=0,!(y&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;b=Wa()|0;Sm(s);if(!c){c=b;break a}}else b=Wa()|0;Ua(d|0);c=b;break a}}while(0);x=0;h=ta(67,20)|0;y=x;x=0;if(!(y&1)){k[h>>2]=36800;i[h+4>>0]=-32;f=h+8|0;k[f>>2]=0;g=h+12|0;k[g>>2]=0;d=h+16|0;k[d>>2]=0;b=k[w>>2]|0;y=k[v>>2]|0;e=b-y|0;do{if((b|0)!=(y|0)){if(!((e|0)<0?(x=0,qa(178,f|0),y=x,x=0,y&1):0))u=53;if((u|0)==53?(x=0,c=ta(67,e|0)|0,y=x,x=0,!(y&1)):0){k[g>>2]=c;k[f>>2]=c;k[d>>2]=c+e;b=k[v>>2]|0;d=k[w>>2]|0;if((b|0)==(d|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(d|0));b=k[v>>2]|0;break}b=Wa()|0;c=k[f>>2]|0;if(c){if((k[g>>2]|0)!=(c|0))k[g>>2]=c;mj(c)}mj(h);u=44;break a}}while(0);if(!b){r=t;return h|0}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return h|0}else u=43}else u=43}else u=43}while(0);if((u|0)==43){b=Wa()|0;u=44}if((u|0)==44)c=b;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0);return 0}function Fi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;h=r;r=r+16|0;l=h;k[l>>2]=0;m=l+4|0;k[m>>2]=0;k[l+8>>2]=0;x=0;b=ta(67,1)|0;g=x;x=0;a:do{if((((((!(g&1)?(g=b+1|0,i[b>>0]=1,k[l>>2]=b,k[m>>2]=g,k[l+8>>2]=g,x=0,ra(84,l|0,k[a>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+4>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+8>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+12>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+16>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,j=ta(67,20)|0,g=x,x=0,!(g&1)):0){k[j>>2]=36800;i[j+4>>0]=-8;e=j+8|0;k[e>>2]=0;g=j+12|0;k[g>>2]=0;a=j+16|0;k[a>>2]=0;b=k[m>>2]|0;n=k[l>>2]|0;d=b-n|0;do{if((b|0)!=(n|0)){if(!((d|0)<0?(x=0,qa(178,e|0),n=x,x=0,n&1):0))f=11;if((f|0)==11?(x=0,c=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[g>>2]=c;k[e>>2]=c;k[a>>2]=c+d;b=k[l>>2]|0;a=k[m>>2]|0;if((b|0)==(a|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(a|0));b=k[l>>2]|0;break}c=Wa()|0;b=k[e>>2]|0;if(b){if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b)}mj(j);break a}}while(0);if(!b){r=h;return j|0}if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);r=h;return j|0}else f=25}while(0);if((f|0)==25)c=Wa()|0;b=k[l>>2]|0;if(!b)fb(c|0);if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);fb(c|0);return 0}function Gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=lj(5)|0;i[f>>0]=109;i[f+1>>0]=114;i[f+2>>0]=102;i[f+3>>0]=120;i[f+4>>0]=a;x=0;e=ta(67,20)|0;d=x;x=0;if(d&1){e=Wa()|0;mj(f);fb(e|0)}k[e>>2]=36800;i[e+4>>0]=-24;a=e+8|0;k[a>>2]=0;b=e+12|0;k[b>>2]=0;c=e+16|0;k[c>>2]=0;x=0;d=ta(67,5)|0;g=x;x=0;if(!(g&1)){k[b>>2]=d;k[a>>2]=d;k[c>>2]=d+5;i[d>>0]=109;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=f+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;i[g>>0]=i[d+1>>0]|0;k[b>>2]=(k[b>>2]|0)+1;mj(f);return e|0}g=Wa()|0;mj(e);mj(f);fb(g|0);return 0}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;s=v+8|0;x=0;e=ta(67,1)|0;q=x;x=0;a:do{if(!(q&1)){h=e+1|0;q=h;i[e>>0]=b;k[v>>2]=e;k[w>>2]=q;k[s>>2]=q;if((b|0)>0){g=h;q=0;do{p=q+a&255;if(g>>>0>=h>>>0){e=k[v>>2]|0;j=e;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);o=x;x=0;if(o&1){t=28;break}j=k[v>>2]|0;h=k[s>>2]|0;o=j}else o=e;n=o;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;h=k[w>>2]|0;l=h-n|0;if(!e){m=0;g=0}else t=13}else{l=k[w>>2]|0;e=2147483647;h=l;l=l-n|0;t=13}if((t|0)==13){t=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1){t=28;break}else m=e}i[g+l>>0]=p;e=g+(l+1)|0;n=h-n|0;p=g+(l-n)|0;vw(p|0,o|0,n|0)|0;k[v>>2]=p;k[w>>2]=e;k[s>>2]=g+m;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}h=k[s>>2]|0;if(e>>>0>=h>>>0){j=k[v>>2]|0;g=j;l=e-g+1|0;if((l|0)<0){x=0;qa(178,v|0);p=x;x=0;if(p&1){t=28;break}j=k[v>>2]|0;g=j;h=k[s>>2]|0}n=j;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;l=k[w>>2]|0;h=l-n|0;if(!e){e=0;m=0}else t=24}else{h=k[w>>2]|0;e=2147483647;l=h;h=h-n|0;t=24}if((t|0)==24){t=0;x=0;m=ta(67,e|0)|0;p=x;x=0;if(p&1){t=28;break}}i[m+h>>0]=0;o=l-n|0;p=m+(h-o)|0;vw(p|0,j|0,o|0)|0;k[v>>2]=p;k[w>>2]=m+(h+1);k[s>>2]=m+e;if(g)mj(g)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}q=q+1|0;g=k[w>>2]|0;h=k[s>>2]|0}while((q|0)<(b|0));if((t|0)==28){f=Wa()|0;break}e=c&255;if(g>>>0>>0){i[g>>0]=e;g=(k[w>>2]|0)+1|0;k[w>>2]=g}else t=37}else{g=h;e=c&255;t=37}if((t|0)==37){j=k[v>>2]|0;l=j;m=g-l+1|0;if((m|0)<0){x=0;qa(178,v|0);c=x;x=0;if(c&1){t=29;break}l=k[v>>2]|0;h=k[s>>2]|0;j=l}p=j;g=h-p|0;if(g>>>0<1073741823){g=g<<1;g=g>>>0>>0?m:g;m=k[w>>2]|0;n=m-p|0;if(!g){o=0;h=0}else t=43}else{n=k[w>>2]|0;g=2147483647;m=n;n=n-p|0;t=43}if((t|0)==43){x=0;h=ta(67,g|0)|0;c=x;x=0;if(c&1){t=29;break}else o=g}i[h+n>>0]=e;g=h+(n+1)|0;a=m-p|0;c=h+(n-a)|0;vw(c|0,j|0,a|0)|0;k[v>>2]=c;k[w>>2]=g;k[s>>2]=h+o;if(l){mj(l);g=k[w>>2]|0}}p=d&255;e=k[s>>2]|0;if(g>>>0>=e>>>0){h=k[v>>2]|0;j=h;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;e=k[s>>2]|0;h=j}o=h;e=e-o|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;l=k[w>>2]|0;m=l-o|0;if(!e){n=0;g=0}else t=54}else{m=k[w>>2]|0;e=2147483647;l=m;m=m-o|0;t=54}if((t|0)==54){x=0;g=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}else n=e}i[g+m>>0]=p;e=g+(m+1)|0;c=l-o|0;d=g+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=e;k[s>>2]=g+n;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}g=k[s>>2]|0;if(e>>>0>=g>>>0){h=k[v>>2]|0;j=h;l=e-j+1|0;if((l|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;g=k[s>>2]|0;h=j}n=h;e=g-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;g=k[w>>2]|0;m=g-n|0;if(!e){e=0;l=0}else t=65}else{m=k[w>>2]|0;e=2147483647;g=m;m=m-n|0;t=65}if((t|0)==65){x=0;l=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}}i[l+m>>0]=0;c=g-n|0;d=l+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=l+(m+1);k[s>>2]=l+e;if(j)mj(j)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}x=0;m=ta(67,20)|0;s=x;x=0;if(!(s&1)){k[m>>2]=36800;i[m+4>>0]=-38;j=m+8|0;k[j>>2]=0;l=m+12|0;k[l>>2]=0;g=m+16|0;k[g>>2]=0;e=k[w>>2]|0;s=k[v>>2]|0;h=e-s|0;do{if((e|0)!=(s|0)){if(!((h|0)<0?(x=0,qa(178,j|0),s=x,x=0,s&1):0))t=72;if((t|0)==72?(x=0,f=ta(67,h|0)|0,s=x,x=0,!(s&1)):0){k[l>>2]=f;k[j>>2]=f;k[g>>2]=f+h;e=k[v>>2]|0;g=k[w>>2]|0;if((e|0)==(g|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[l>>2]|0)+1|0;k[l>>2]=f;e=e+1|0}while((e|0)!=(g|0));e=k[v>>2]|0;break}f=Wa()|0;e=k[j>>2]|0;if(e){if((k[l>>2]|0)!=(e|0))k[l>>2]=e;mj(e)}mj(m);break a}}while(0);if(!e){r=u;return m|0}if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);r=u;return m|0}else t=29}else t=29}while(0);if((t|0)==29)f=Wa()|0;e=k[v>>2]|0;if(!e)fb(f|0);if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);fb(f|0);return 0}function Ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=(b&65535)>>>8&255;o=a+4|0;c=k[o>>2]|0;p=a+8|0;d=k[p>>2]|0;if(c>>>0>=d>>>0){e=k[a>>2]|0;f=e;g=c-f+1|0;if((g|0)<0){jj(a);f=k[a>>2]|0;d=k[p>>2]|0;e=f}m=e;c=d-m|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?g:c;g=k[o>>2]|0;d=g-m|0;if(!c){l=0;j=0;h=d;c=g}else q=8}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-m|0;q=8}if((q|0)==8){l=c;j=lj(c)|0;h=d;c=g}i[j+h>>0]=n;d=j+(h+1)|0;m=c-m|0;n=j+(h-m)|0;vw(n|0,e|0,m|0)|0;k[a>>2]=n;k[o>>2]=d;k[p>>2]=j+l;if(f){mj(f);d=k[o>>2]|0}}else{i[c>>0]=n;d=(k[o>>2]|0)+1|0;k[o>>2]=d}m=b&255;c=k[p>>2]|0;if(d>>>0>>0){i[d>>0]=m;k[o>>2]=(k[o>>2]|0)+1;return}e=k[a>>2]|0;f=e;d=d-f+1|0;if((d|0)<0){jj(a);f=k[a>>2]|0;c=k[p>>2]|0;e=f}l=e;c=c-l|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?d:c;g=k[o>>2]|0;d=g-l|0;if(!c){j=0;h=0;c=g}else q=18}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-l|0;q=18}if((q|0)==18){j=c;h=lj(c)|0;c=g}i[h+d>>0]=m;b=c-l|0;q=h+(d-b)|0;vw(q|0,e|0,b|0)|0;k[a>>2]=q;k[o>>2]=h+(d+1);k[p>>2]=h+j;if(!f)return;mj(f);return}function Ji(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=k[a>>2]|0;q=k[b>>2]|0;p=q;j=e;n=c;l=d-n|0;if((l|0)<=0){r=q;return r|0}o=a+8|0;b=k[o>>2]|0;r=a+4|0;m=k[r>>2]|0;f=m;if((l|0)<=(b-f|0)){h=f-p|0;if((l|0)>(h|0)){g=c+h|0;if((g|0)==(d|0))b=m;else{f=g;b=m;do{i[b>>0]=i[f>>0]|0;b=(k[r>>2]|0)+1|0;k[r>>2]=b;f=f+1|0}while((f|0)!=(d|0))}if((h|0)>0)h=b;else{r=q;return r|0}}else{h=m;g=d}e=h-(e+(l-j+p))|0;b=q+e|0;if(b>>>0>>0){f=h;do{i[f>>0]=i[b>>0]|0;b=b+1|0;f=(k[r>>2]|0)+1|0;k[r>>2]=f}while((b|0)!=(m|0))}xw(h+(0-e)|0,q|0,e|0)|0;xw(q|0,c|0,g-n|0)|0;r=q;return r|0}f=f-j+l|0;if((f|0)<0){jj(a);b=k[o>>2]|0;e=k[a>>2]|0}g=e;b=b-g|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?f:b;f=p-g|0;if(!b){g=0;l=0}else h=15}else{b=2147483647;f=p-g|0;h=15}if((h|0)==15){g=b;l=lj(b)|0}j=l+f|0;b=j;h=l+g|0;if((c|0)!=(d|0)){e=c;g=j;do{i[g>>0]=i[e>>0]|0;g=b+1|0;b=g;e=e+1|0}while((e|0)!=(d|0));e=k[a>>2]|0}c=p-e|0;d=l+(f-c)|0;vw(d|0,e|0,c|0)|0;p=(k[r>>2]|0)-p|0;c=b;vw(c|0,q|0,p|0)|0;b=k[a>>2]|0;k[a>>2]=d;k[r>>2]=c+p;k[o>>2]=h;if(!b){r=j;return r|0}mj(b);r=j;return r|0}function Ki(a){a=a|0;var b=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b)return;a=a+12|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Li(a){a=a|0;var b=0,c=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Ni(b,-1);Ni(b,i[a+4>>0]|0);e=a+12|0;d=a+8|0;a=(k[e>>2]|0)-(k[d>>2]|0)+2|0;Ni(b,(a&65535)>>>8&255);Ni(b,a&255);a=k[d>>2]|0;if((k[e>>2]|0)==(a|0))return;else c=0;do{Ni(b,i[a+c>>0]|0);c=c+1|0;a=k[d>>2]|0}while(c>>>0<((k[e>>2]|0)-a|0)>>>0);return}function Ni(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=k[a+4>>2]|0;if(e){c=e+24|0;d=k[c>>2]|0;if((d|0)==(k[e+28>>2]|0)){Vb[k[(k[e>>2]|0)+52>>2]&63](e,b&255)|0;return}else{k[c>>2]=d+1;i[d>>0]=b;return}}c=a+16|0;d=k[c>>2]|0;if(d>>>0<(k[a+12>>2]|0)>>>0){k[c>>2]=d+1;i[(k[a+8>>2]|0)+d>>0]=b;return}c=Va(16)|0;x=0;d=Da(1)|0;b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}x=0;Fa(7,c|0,4,d|0);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}function Oi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=(b|0)<4095?(b+128|0)/256|0:16;f=(c*3|0)+2+e|0;d=c+1|0;f=(f|0)<(d|0)|(f|0)>(b|0)?d:f;k[a+4>>2]=f;d=(e<<2|3)+(c*5|0)|0;d=(d|0)>(b|0)|(d|0)<(f|0)?f:d;k[a+8>>2]=d;c=(c*7|0)+4+(e*17|0)|0;k[a+12>>2]=(c|0)>(b|0)|(c|0)<(d|0)?d:c;k[a>>2]=b;k[a+16>>2]=64;return}function Pi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+128|0;h=l+100|0;d=l+16|0;c=l+112|0;j=l+4|0;m=l;e=d;f=a+20|0;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));k[d+16>>2]=k[a+4>>2];f=zc(c,d,a+56|0)|0;c=k[(k[f>>2]|0)+16>>2]|0;a=a+8|0;x=0;k[h>>2]=k[a>>2];k[h+4>>2]=k[a+4>>2];k[h+8>>2]=k[a+8>>2];c=Aa(c|0,f|0,h|0)|0;a=x;x=0;do{if(a&1)c=Wa()|0;else{e=b+4|0;k[j>>2]=k[e>>2];k[j+4>>2]=k[e+4>>2];k[j+8>>2]=k[e+8>>2];e=b+16|0;a=k[e>>2]|0;h=j+8|0;k[h>>2]=(k[h>>2]|0)-a;h=j+4|0;k[h>>2]=(k[h>>2]|0)+a;h=k[(k[f>>2]|0)+12>>2]|0;k[m>>2]=c;x=0;c=Ea(h|0,f|0,m|0,j|0,((i[b>>0]|0)==0?0:(k[b+8>>2]|0)+a|0)|0)|0;j=x;x=0;if(j&1){c=Wa()|0;d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}d=k[m>>2]|0;k[m>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!(k[b+4>>2]|0))k[e>>2]=(k[e>>2]|0)+c;if(!f){r=l;return}Lb[k[(k[f>>2]|0)+4>>2]&255](f);r=l;return}}while(0);if(!f)fb(c|0);Lb[k[(k[f>>2]|0)+4>>2]&255](f);fb(c|0)}function Qi(a,b){a=a|0;b=b|0;k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2];i[a+12>>0]=0;b=a+16|0;a=b+100|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+32|0;t=u+4|0;o=u+16|0;v=u;Si(a);p=a+16|0;e=k[a+24>>2]|0;a:do{if((e+-2|0)>>>0<=14){q=a+40|0;c=k[q>>2]|0;if(c>>>0>2)c=5;else{s=a+32|0;f=k[s>>2]|0;switch(f|0){case 0:{c=1;break a}case 4:{if((c|0)==2){c=2;break a}break}case 3:break;default:if(c){c=2;break a}}n=a+100|0;c=a+108|0;d=k[c>>2]|0;if((d|0)<1){d=k[p>>2]|0;k[c>>2]=d;c=k[a+20>>2]|0;k[a+112>>2]=c}else c=k[a+112>>2]|0;j=Dw(c|0,((c|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;h=(e+7|0)/8|0;h=Dw(j|0,M|0,h|0,((h|0)<0)<<31>>31|0)|0;j=b+4|0;c=k[j>>2]|0;g=b+8|0;if((c|0)!=0?(l=k[g>>2]|0,m=Dw(f|0,((f|0)<0)<<31>>31|0,h|0,M|0)|0,e=M,0<(e|0)|0==(e|0)&l>>>0>>0):0){c=Va(16)|0;x=0;d=Da(1)|0;v=x;x=0;if(!(v&1)?(x=0,Fa(7,c|0,3,d|0),v=x,x=0,!(v&1)):0)ub(c|0,824,96);v=Wa()|0;Ua(c|0);fb(v|0)}l=a+52|0;m=a+12|0;if((f|0)>0)f=0;else{r=u;return}while(1){Ti(a,(f|0)==0);d=xc(o,p,l)|0;e=k[(k[d>>2]|0)+8>>2]|0;x=0;k[t>>2]=k[b>>2];k[t+4>>2]=k[b+4>>2];k[t+8>>2]=k[b+8>>2];e=Aa(e|0,d|0,t|0)|0;w=x;x=0;if(w&1){e=32;break}w=k[(k[d>>2]|0)+16>>2]|0;k[v>>2]=e;x=0;oa(w|0,d|0,v|0,n|0,a|0,(i[m>>0]|0)!=0|0);w=x;x=0;if(w&1){e=30;break}e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e);if(!c)c=0;else{c=c+h|0;k[j>>2]=c;k[g>>2]=(k[g>>2]|0)-h}e=(k[q>>2]|0)==0;f=(e&1)+f|0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!e){e=34;break}if((f|0)>=(k[s>>2]|0)){e=34;break}}if((e|0)==30){c=Wa()|0;e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e)}else if((e|0)==32){c=Wa()|0;if(!d){w=c;fb(w|0)}}else if((e|0)==34){r=u;return}Lb[k[(k[d>>2]|0)+4>>2]&255](d);w=c;fb(w|0)}}else c=2}while(0);d=Va(16)|0;x=0;e=Da(1)|0;w=x;x=0;if(!(w&1)?(x=0,Fa(7,d|0,c|0,e|0),w=x,x=0,!(w&1)):0)ub(d|0,824,96);w=Wa()|0;Ua(d|0);fb(w|0)}function Si(a){a=a|0;var b=0,c=0,d=0,e=0;if((Wi(a)|0)<<24>>24!=-40){b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}b=Wi(a)|0;if(b<<24>>24==-38)return;while(1){d=((Vi(a)|0)&255)<<8;d=d|(Vi(a)|0)&255;b=Xi(a,b)|0;c=-2-b+d|0;if((c|0)<0)break;if((c|0)>0){b=d+-2-b|0;c=0;do{Vi(a)|0;c=c+1|0}while((c|0)!=(b|0))}b=Wi(a)|0;if(b<<24>>24==-38){e=8;break}}if((e|0)==8)return;b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b){if((Vi(a)|0)<<24>>24!=-1){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,12,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24!=-38){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}Vi(a)|0;Vi(a)|0;c=Vi(a)|0;d=c&255;do{if(c<<24>>24==1){Vi(a)|0;c=0;e=20}else{if((d|0)==(k[a+32>>2]|0)){b=Vi(a)|0;if(!(c<<24>>24))break;else{c=0;e=20;break}}b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,2,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}while(0);if((e|0)==20)while(1){Vi(a)|0;c=c+1|0;b=Vi(a)|0;if((c|0)==(d|0))break;else e=20}k[a+36>>2]=b&255;e=Vi(a)|0;c=a+40|0;k[c>>2]=e&255;if((e&255)>=3){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}d=a+28|0;if(k[d>>2]|0)return;b=k[a+108>>2]|0;if(!b)b=k[a+16>>2]|0;if(!(k[c>>2]|0))c=1;else c=k[a+32>>2]|0;e=ia(c,b)|0;a=ia(e,((k[a+24>>2]|0)+7|0)/8|0)|0;k[d>>2]=a;return}function Ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c|0)<=0)return;n=b+4|0;o=b+8|0;q=0;do{p=Vi(a)|0;d=k[n>>2]|0;e=k[o>>2]|0;if(d>>>0>=e>>>0){f=k[b>>2]|0;g=f;h=d-g+1|0;if((h|0)<0){jj(b);g=k[b>>2]|0;e=k[o>>2]|0;f=g}m=f;d=e-m|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?h:d;h=k[n>>2]|0;e=h-m|0;if(!d){l=0;j=0;d=h}else r=10}else{e=k[n>>2]|0;d=2147483647;h=e;e=e-m|0;r=10}if((r|0)==10){r=0;l=d;j=lj(d)|0;d=h}i[j+e>>0]=p;m=d-m|0;p=j+(e-m)|0;vw(p|0,f|0,m|0)|0;k[b>>2]=p;k[n>>2]=j+(e+1);k[o>>2]=j+l;if(g)mj(g)}else{i[d>>0]=p;k[n>>2]=(k[n>>2]|0)+1}q=q+1|0}while((q|0)!=(c|0));return}function Vi(a){a=a|0;var b=0,c=0,d=0,e=0;c=k[a>>2]|0;if(c){a=c+12|0;b=k[a>>2]|0;if((b|0)==(k[c+16>>2]|0))a=Ob[k[(k[c>>2]|0)+40>>2]&127](c)|0;else{k[a>>2]=b+1;a=l[b>>0]|0}e=a&255;return e|0}d=a+8|0;e=k[d>>2]|0;if(e){a=a+4|0;b=k[a>>2]|0;c=i[b>>0]|0;if(!b){e=c;return e|0}k[a>>2]=b+1;k[d>>2]=e+-1;e=c;return e|0}a=Va(16)|0;x=0;b=Da(1)|0;e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}x=0;Fa(7,a|0,4,b|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}else ub(a|0,824,96);return 0}function Wi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=r;r=r+176|0;b=c+152|0;i=c+16|0;g=c;h=Vi(a)|0;d=h&255;if(h<<24>>24==-1){do{b=Vi(a)|0}while(b<<24>>24==-1);r=c;return b|0}h=i+56|0;f=i+4|0;k[i>>2]=36160;k[h>>2]=36180;x=0;ra(62,i+56|0,f|0);e=x;x=0;if(e&1){i=Wa()|0;qn(h);fb(i|0)}k[i+128>>2]=0;k[i+132>>2]=-1;k[i>>2]=36200;k[i+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do{if(e&1)b=Wa()|0;else{k[f>>2]=36236;e=i+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[i+52>>2]=16;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;x=0;ra(63,f|0,b|0);c=x;x=0;if(c&1){i=Wa()|0;Sm(b);Sm(e);xn(f);b=i;break}Sm(b);k[i+((k[(k[i>>2]|0)+-12>>2]|0)+76)>>2]=48;x=0;b=va(28,i|0,50907,62)|0;c=x;x=0;if(!(c&1)?(c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]&-75|8,c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]|16384,k[b+((k[(k[b>>2]|0)+-12>>2]|0)+12)>>2]=2,x=0,Aa(38,b|0,d|0)|0,d=x,x=0,!(d&1)):0){c=Va(16)|0;x=0;ra(64,g|0,f|0);d=x;x=0;if(!(d&1)){x=0;b=Da(1)|0;d=x;x=0;if(!(d&1)?(x=0,Ja(36,c|0,12,b|0,g|0),d=x,x=0,!(d&1)):0){x=0;Fa(6,c|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(g);if(!a){g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else b=Wa()|0;Ua(c|0);g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}while(0);i=b;qn(h);fb(i|0);return 0}function Xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;c=r;r=r+320|0;h=c+300|0;l=c+152|0;i=c+288|0;m=c+16|0;j=c;switch(b<<24>>24){case-9:{n=(Vi(a)|0)&255;k[a+24>>2]=n;n=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;m=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;k[a+16>>2]=m;k[a+20>>2]=n;n=(Vi(a)|0)&255;k[a+32>>2]=n;n=6;r=c;return n|0}case-8:{n=Yi(a)|0;r=c;return n|0}case-24:{n=Zi(a)|0;r=c;return n|0}case-53:case-54:case-55:case-57:case-58:case-59:case-61:case-62:case-63:case-64:{g=l+56|0;e=l+4|0;k[l>>2]=36160;k[g>>2]=36180;x=0;ra(62,l+56|0,e|0);m=x;x=0;if(m&1){n=Wa()|0;qn(g);fb(n|0)}k[l+128>>2]=0;k[l+132>>2]=-1;k[l>>2]=36200;k[l+56>>2]=36220;x=0;qa(180,e|0);m=x;x=0;do{if(m&1)a=Wa()|0;else{k[e>>2]=36236;f=l+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[l+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,e|0,h|0);m=x;x=0;if(m&1){a=Wa()|0;Sm(h);Sm(f);xn(e);break}Sm(h);x=0;a=va(28,l|0,50970,26)|0;m=x;x=0;do{if((!(m&1)?(x=0,d=Aa(38,a|0,b&255|0)|0,m=x,x=0,!(m&1)):0)?(x=0,va(28,d|0,50997,18)|0,m=x,x=0,!(m&1)):0){d=Va(16)|0;x=0;ra(64,i|0,e|0);m=x;x=0;if(!(m&1)){x=0;a=Da(1)|0;m=x;x=0;if(!(m&1)?(x=0,Ja(36,d|0,10,a|0,i|0),m=x,x=0,!(m&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(i);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=20}while(0);if((n|0)==20)a=Wa()|0;k[l>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);n=a;fb(n|0)}}while(0);n=a;qn(g);fb(n|0)}case-25:case-32:case-2:{n=0;r=c;return n|0}default:{i=m+56|0;f=m+4|0;k[m>>2]=36160;k[i>>2]=36180;x=0;ra(62,m+56|0,f|0);l=x;x=0;if(l&1){n=Wa()|0;qn(i);fb(n|0)}k[m+128>>2]=0;k[m+132>>2]=-1;k[m>>2]=36200;k[m+56>>2]=36220;x=0;qa(180,f|0);l=x;x=0;do{if(l&1)a=Wa()|0;else{k[f>>2]=36236;g=m+36|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[m+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,f|0,h|0);l=x;x=0;if(l&1){a=Wa()|0;Sm(h);Sm(g);xn(f);break}Sm(h);x=0;a=va(28,m|0,51016,20)|0;l=x;x=0;do{if((!(l&1)?(x=0,e=Aa(38,a|0,b&255|0)|0,l=x,x=0,!(l&1)):0)?(x=0,va(28,e|0,51037,13)|0,l=x,x=0,!(l&1)):0){d=Va(16)|0;x=0;ra(64,j|0,f|0);l=x;x=0;if(!(l&1)){x=0;a=Da(1)|0;l=x;x=0;if(!(l&1)?(x=0,Ja(36,d|0,11,a|0,j|0),l=x,x=0,!(l&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(j);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=40}while(0);if((n|0)==40)a=Wa()|0;k[m>>2]=36200;k[i>>2]=36220;k[f>>2]=36236;Sm(g);xn(f);qn(i);n=a;fb(n|0)}}while(0);n=a;qn(i);fb(n|0)}}return 0}function Yi(a){a=a|0;var b=0;if((Vi(a)|0)<<24>>24!=1){a=1;return a|0}b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+52>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+56>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+60>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+64>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+68>>2]=b;a=11;return a|0}function Zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=r;r=r+16|0;e=c;k[e>>2]=0;f=e+4|0;k[f>>2]=0;k[e+8>>2]=0;x=0;Fa(9,a|0,e|0,4);b=x;x=0;a:do{if(b&1)d=3;else{b=k[e>>2]|0;b:do{if(!(yl(b,51051,4)|0)){x=0;b=ta(69,a|0)|0;g=x;x=0;if(g&1){d=3;break a}b=b&255;switch(b|0){case 3:case 2:case 1:case 0:{k[a+44>>2]=b;a=5;b=k[e>>2]|0;break b}case 5:case 4:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,7,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}default:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,5,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}}}else a=4}while(0);if(!b){r=c;return a|0}if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);r=c;return a|0}}while(0);if((d|0)==3)a=Wa()|0;b=k[e>>2]|0;if(!b)fb(a|0);if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);fb(a|0);return 0}function _i(a){a=a|0;var b=0,c=0,d=0;d=k[(k[a>>2]|0)+-12>>2]|0;k[a+d>>2]=36200;b=a+(d+56)|0;k[b>>2]=36220;c=a+(d+4)|0;k[c>>2]=36236;Sm(a+(d+36)|0);xn(c);qn(b);return}function $i(a){a=a|0;return}function aj(a){a=a|0;mj(a);return}function bj(a){a=a|0;i[a>>0]=0;a=a+4|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;k[a+24>>2]=0;k[a+28>>2]=0;return}function cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;e=r;r=r+16|0;f=e;b=Gi(b)|0;k[f>>2]=b;c=a+28|0;d=k[c>>2]|0;if(d>>>0<(k[a+32>>2]|0)>>>0){k[d>>2]=b;k[c>>2]=d+4;k[f>>2]=0;r=e;return}x=0;ra(57,a+24|0,f|0);a=x;x=0;if(a&1){b=Wa()|0;c=k[f>>2]|0;k[f>>2]=0;if(!c)fb(b|0);Lb[k[(k[c>>2]|0)+4>>2]&255](c);fb(b|0)}else{b=k[f>>2]|0;k[f>>2]=0;if(!b){r=e;return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);r=e;return}}function dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=a+4|0;k[d>>2]=k[b>>2];k[d+4>>2]=k[b+4>>2];k[d+8>>2]=k[b+8>>2];Ni(a,-1);Ni(a,-40);d=a+28|0;e=a+24|0;b=k[e>>2]|0;if((k[d>>2]|0)==(b|0)){Ni(a,-1);Ni(a,-39);a=a+16|0;a=k[a>>2]|0;return a|0}else c=0;do{f=k[b+(c<<2)>>2]|0;Mb[k[(k[f>>2]|0)+8>>2]&127](f,a);c=c+1|0;b=k[e>>2]|0}while(c>>>0<(k[d>>2]|0)-b>>2>>>0);Ni(a,-1);Ni(a,-39);f=a+16|0;f=k[f>>2]|0;return f|0}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;m=r;r=r+48|0;h=m+32|0;e=m+12|0;i=m+8|0;l=m+4|0;n=m;d=c+36|0;do{if(((((k[d>>2]|0)==0?(k[c+40>>2]|0)==0:0)?(k[c+44>>2]|0)==0:0)?(k[c+48>>2]|0)==0:0)?(k[c+52>>2]|0)==0:0){d=k[c+8>>2]|0;if((d|0)<=12){f=a+28|0;g=a+32|0;break}Oi(e,(1<>2]|0);d=Fi(e)|0;k[i>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[i>>2]=0;break}x=0;ra(57,a+24|0,i|0);h=x;x=0;if(!(h&1)){d=k[i>>2]|0;k[i>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[i>>2]|0;k[i>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else j=6}while(0);do{if((j|0)==6){d=Fi(d)|0;k[h>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[h>>2]=0;break}x=0;ra(57,a+24|0,h|0);j=x;x=0;if(!(j&1)){d=k[h>>2]|0;k[h>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[h>>2]|0;k[h>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}}while(0);d=a+20|0;e=(k[d>>2]|0)+1|0;k[d>>2]=e;d=k[c+24>>2]|0;h=(d|0)==0?1:k[c+16>>2]|0;d=Hi(e,h,k[c+20>>2]|0,d)|0;k[l>>2]=d;e=k[f>>2]|0;do{if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[l>>2]=0}else{x=0;ra(57,a+24|0,l|0);j=x;x=0;if(!(j&1)){d=k[l>>2]|0;k[l>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[l>>2]|0;k[l>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}}while(0);i=lj(104)|0;k[i>>2]=36820;k[i+4>>2]=h;e=i+8|0;k[e>>2]=k[b>>2];k[e+4>>2]=k[b+4>>2];k[e+8>>2]=k[b+8>>2];e=i+20|0;d=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(d|0));k[n>>2]=i;c=k[f>>2]|0;if(c>>>0<(k[g>>2]|0)>>>0){k[c>>2]=i;k[f>>2]=c+4;k[n>>2]=0;r=m;return}x=0;ra(57,a+24|0,n|0);a=x;x=0;if(a&1){c=Wa()|0;d=k[n>>2]|0;k[n>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else{c=k[n>>2]|0;k[n>>2]=0;if(!c){r=m;return}Lb[k[(k[c>>2]|0)+4>>2]&255](c);r=m;return}}function fj(a,b,c,d,e,f,g,h,j,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,s=0,t=0,u=0;p=r;r=r+96|0;o=p;n=sc(a,b,o,0)|0;if(n){e=n;r=p;return e|0}i[o+32>>0]=0;s=k[o+8>>2]|0;u=k[o>>2]|0;t=k[o+4>>2]|0;n=ia(t,u)|0;q=k[o+16>>2]|0;n=ia(ia(n,(s|0)<9?1:2)|0,q)|0;k[d>>2]=n;n=Pl(n)|0;k[c>>2]=n;k[e>>2]=u;k[f>>2]=t;k[g>>2]=s;k[h>>2]=k[o+12>>2];k[j>>2]=q;k[l>>2]=k[o+20>>2];k[m>>2]=k[o+24>>2];e=tc(n,k[d>>2]|0,a,b,0,0)|0;r=p;return e|0}function gj(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0;m=r;r=r+96|0;j=m+4|0;g=m;l=j;n=l+84|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(n|0));k[j+16>>2]=f;k[j+8>>2]=e;k[j>>2]=c;k[j+4>>2]=d;c=Pl(b)|0;k[h>>2]=c;k[g>>2]=0;c=rc(h,b,g,a,b,j,0)|0;k[i>>2]=k[g>>2];r=m;return c|0}function hj(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[9320]|0;ml(b,a,c)|0;el(10,b)|0;Pa()}function ij(a){a=a|0;Ta(51337,51366,1164,51442)}function jj(a){a=a|0;Ta(51463,51486,303,51442)}function kj(){var a=0,b=0;a=r;r=r+16|0;if(!(mb(37024,4)|0)){b=ib(k[9255]|0)|0;r=a;return b|0}else hj(51562,a);return 0}function lj(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=Pl(b)|0;a:do{if(!a){while(1){a=uj()|0;if(!a)break;$b[a&7]();a=Pl(b)|0;if(a)break a}b=Va(4)|0;k[b>>2]=36844;ub(b|0,592,78)}}while(0);return a|0}function mj(a){a=a|0;Ql(a);return}function nj(a){a=a|0;mj(a);return}function oj(a){a=a|0;k[a>>2]=36844;return}function pj(a){a=a|0;return}function qj(a){a=a|0;mj(a);return}function rj(a){a=a|0;return 51611}function sj(a){a=a|0;var b=0;b=r;r=r+16|0;x=0;Ga(a|0);a=x;x=0;if(!(a&1)){x=0;ra(85,51626,b|0);x=0}a=Wa(0)|0;cb(a|0)|0;x=0;ra(85,51666,b+8|0);x=0;a=Wa(0)|0;x=0;Ga(3);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else oc(a)}function tj(){var a=0,b=0,c=0;x=0;a=Da(2)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(c=b+48|0,(k[c>>2]&-256|0)==1126902528?(k[c+4>>2]|0)==1129074247:0):0)sj(k[b+12>>2]|0);c=k[9208]|0;k[9208]=c+0;sj(c)}function uj(){var a=0;a=k[9214]|0;k[9214]=a+0;return a|0}function vj(a){a=a|0;return}function wj(a){a=a|0;k[a>>2]=36868;dk(a+4|0);return}function xj(a){a=a|0;wj(a);mj(a);return}function yj(a){a=a|0;return k[a+4>>2]|0}function zj(a){a=a|0;return}function Aj(a){a=a|0;k[a>>2]=36888;return}function Bj(a){a=a|0;return}function Cj(a){a=a|0;mj(a);return}function Dj(a){a=a|0;return 51716}function Ej(a){a=a|0;return}function Fj(a){a=a|0;return}function Gj(a){a=a|0;return}function Hj(a){a=a|0;mj(a);return}function Ij(a){a=a|0;mj(a);return}function Jj(a){a=a|0;mj(a);return}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=Qj(b,656,672,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;cc[k[(k[e>>2]|0)+28>>2]&63](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Lj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do{if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}}while(0);return}function Mj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);return}function Nj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);else{a=k[a+8>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c,d)}return}function Oj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=k[a+4>>2]|0;e=f>>8;if(f&1)e=k[(k[c>>2]|0)+e>>2]|0;a=k[a>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c+e|0,(f&2|0)!=0?d:2);return}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do{if((a|0)!=(k[b+8>>2]|0)){f=k[a+12>>2]|0;e=a+16+(f<<3)|0;Oj(a+16|0,b,c,d);if((f|0)>1){f=b+54|0;a=a+24|0;do{Oj(a,b,c,d);if(i[f>>0]|0)break a;a=a+8|0}while(a>>>0>>0)}}else Lj(0,b,c,d)}while(0);return}function Qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do{if(h){k[p+48>>2]=1;Sb[k[(k[c>>2]|0)+20>>2]&15](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Jb[k[(k[o>>2]|0)+24>>2]&15](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}}while(0);r=q;return d|0}function Rj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do{if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}}while(0);return}function Sj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do{if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){q=k[a+12>>2]|0;h=a+16+(q<<3)|0;Uj(a+16|0,b,c,d,e);f=a+24|0;if((q|0)<=1)break;g=k[a+8>>2]|0;if((g&2|0)==0?(j=b+36|0,(k[j>>2]|0)!=1):0){if(!(g&1)){g=b+54|0;while(1){if(i[g>>0]|0)break a;if((k[j>>2]|0)==1)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+24|0;a=b+54|0;while(1){if(i[a>>0]|0)break a;if((k[j>>2]|0)==1?(k[g>>2]|0)==1:0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+54|0;while(1){if(i[g>>0]|0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}if((k[b+16>>2]|0)!=(c|0)?(p=b+20|0,(k[p>>2]|0)!=(c|0)):0){k[b+32>>2]=d;m=b+44|0;if((k[m>>2]|0)==4)break;g=k[a+12>>2]|0;h=a+16+(g<<3)|0;j=b+52|0;d=b+53|0;n=b+54|0;l=a+8|0;o=b+24|0;b:do{if((g|0)>0){g=0;f=0;a=a+16|0;while(1){i[j>>0]=0;i[d>>0]=0;Tj(a,b,c,c,1,e);if(i[n>>0]|0){q=20;break b}do{if(i[d>>0]|0){if(!(i[j>>0]|0))if(!(k[l>>2]&1)){f=1;q=20;break b}else{f=1;break}if((k[o>>2]|0)==1)break b;if(!(k[l>>2]&2))break b;else{g=1;f=1}}}while(0);a=a+8|0;if(a>>>0>=h>>>0){q=20;break}}}else{g=0;f=0;q=20}}while(0);do{if((q|0)==20){if((!g?(k[p>>2]=c,c=b+40|0,k[c>>2]=(k[c>>2]|0)+1,(k[b+36>>2]|0)==1):0)?(k[o>>2]|0)==2:0){i[n>>0]=1;if(f)break}else q=24;if((q|0)==24?f:0)break;k[m>>2]=4;break a}}while(0);k[m>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}}while(0);return}function Tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=k[a+4>>2]|0;g=h>>8;if(h&1)g=k[(k[d>>2]|0)+g>>2]|0;a=k[a>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d+g|0,(h&2|0)!=0?e:2,f);return}function Uj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=k[a+4>>2]|0;f=g>>8;if(g&1)f=k[(k[c>>2]|0)+f>>2]|0;a=k[a>>2]|0;Jb[k[(k[a>>2]|0)+24>>2]&15](a,b,c+f|0,(g&2|0)!=0?d:2,e);return}function Vj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;a:do{if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Jb[k[(k[h>>2]|0)+24>>2]&15](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do{if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}}while(0);return}function Wj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;do{if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}}while(0);return}function Xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{m=b+52|0;n=i[m>>0]|0;o=b+53|0;p=i[o>>0]|0;l=k[a+12>>2]|0;g=a+16+(l<<3)|0;i[m>>0]=0;i[o>>0]=0;Tj(a+16|0,b,c,d,e,f);a:do{if((l|0)>1){h=b+24|0;j=a+8|0;l=b+54|0;a=a+24|0;do{if(i[l>>0]|0)break a;if(!(i[m>>0]|0)){if((i[o>>0]|0)!=0?(k[j>>2]&1|0)==0:0)break a}else{if((k[h>>2]|0)==1)break a;if(!(k[j>>2]&2))break a}i[m>>0]=0;i[o>>0]=0;Tj(a,b,c,d,e,f);a=a+8|0}while(a>>>0>>0)}}while(0);i[m>>0]=n;i[o>>0]=p}return}function Yj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d,e,f)}return}function Zj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);return}function _j(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Qb[k[(k[a>>2]|0)+16>>2]&63](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function $j(a){a=a|0;if(!a)a=0;else a=(Qj(a,656,704,0)|0)!=0;return a&1|0}function ak(){var a=0;a=Va(4)|0;oj(a);ub(a|0,592,78)}function bk(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=kj()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=k[9257];hj(51919,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Qb[k[(k[608>>2]|0)+16>>2]&63](608,d,e)|0){h=k[e>>2]|0;e=k[9257]|0;h=Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0;k[f>>2]=e;k[f+4>>2]=a;k[f+8>>2]=h;hj(51833,f)}else{k[h>>2]=k[9257];k[h+4>>2]=a;hj(51878,h)}}hj(51957,g)}function ck(){var a=0;a=r;r=r+16|0;if(!(Oa(37020,184)|0)){r=a;return}else hj(51730,a)}function dk(a){a=a|0;var b=0,c=0;c=(k[a>>2]|0)+-4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if((b+-1|0)<0)mj((k[a>>2]|0)+-12|0);return}function ek(a){a=a|0;var b=0;b=r;r=r+16|0;Ql(a);if(!(sb(k[9255]|0,0)|0)){r=b;return}else hj(51780,b)}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=rl(a,b,c)|0;return a|0}function gk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=sl(a,b,c)|0;return a|0}function hk(){return 37296}function ik(){return 37300}function jk(){return 37304}function kk(a){a=a|0;return((a|0)==32|(a+-9|0)>>>0<5)&1|0}function lk(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function mk(){var a=0;if(!(k[9258]|0))a=37308;else{a=(kb()|0)+60|0;a=k[a>>2]|0}return a|0}function nk(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[51978+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=52066;c=5;break}}if((c|0)==2)if(!b)a=52066;else{a=52066;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0.0,g=0,h=0,j=0.0,m=0,n=0,o=0,p=0.0,q=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0;K=r;r=r+512|0;G=K;switch(b|0){case 0:{J=24;I=-149;y=4;break}case 1:{J=53;I=-1074;y=4;break}case 2:{J=53;I=-1074;y=4;break}default:d=0.0}a:do{if((y|0)==4){D=a+4|0;A=a+100|0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0}while((kk(b)|0)!=0);b:do{switch(b|0){case 43:case 45:{e=1-(((b|0)==45&1)<<1)|0;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;H=e;break b}else{b=rk(a)|0;H=e;break b}}default:H=1}}while(0);e=b;b=0;do{if((e|32|0)!=(i[53870+b>>0]|0))break;do{if(b>>>0<7){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}}while(0);b=b+1|0}while(b>>>0<8);c:do{switch(b|0){case 8:break;case 3:{y=23;break}default:{g=(c|0)!=0;if(g&b>>>0>3)if((b|0)==8)break c;else{y=23;break c}d:do{if(!b){b=0;do{if((e|32|0)!=(i[56747+b>>0]|0))break d;do{if(b>>>0<2){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}}while(0);b=b+1|0}while(b>>>0<3)}}while(0);switch(b|0){case 3:{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==40)b=1;else{if(!(k[A>>2]|0)){d=B;break a}k[D>>2]=(k[D>>2]|0)+-1;d=B;break a}while(1){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0}else e=rk(a)|0;if(!((e+-48|0)>>>0<10|(e+-65|0)>>>0<26)?!((e|0)==95|(e+-97|0)>>>0<26):0)break;b=b+1|0}if((e|0)==41){d=B;break a}e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!g){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}if(!b){d=B;break a}while(1){b=b+-1|0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!b){d=B;break a}}}case 0:{do{if((e|0)==48){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|32|0)!=120){if(!(k[A>>2]|0)){b=48;break}k[D>>2]=(k[D>>2]|0)+-1;b=48;break}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=0}else{b=rk(a)|0;g=0}e:while(1){switch(b|0){case 46:{y=74;break e}case 48:break;default:{w=0;h=0;v=0;e=0;m=g;n=0;u=0;j=1.0;g=0;d=0.0;break e}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==74){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){g=0;e=0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;g=tw(g|0,e|0,-1,-1)|0;e=M}while((b|0)==48);w=0;h=0;v=g;m=1;n=1;u=0;j=1.0;g=0;d=0.0}else{w=0;h=0;v=0;e=0;m=g;n=1;u=0;j=1.0;g=0;d=0.0}}while(1){s=b+-48|0;o=b|32;if(s>>>0>=10){t=(b|0)==46;if(!(t|(o+-97|0)>>>0<6)){o=v;s=w;break}if(t)if(!n){t=h;e=w;s=w;n=1;o=u;f=j}else{o=v;s=w;b=46;break}else y=86}else y=86;if((y|0)==86){y=0;b=(b|0)>57?o+-87|0:s;do{if(!((w|0)<0|(w|0)==0&h>>>0<8)){if((w|0)<0|(w|0)==0&h>>>0<14){q=j*.0625;o=u;f=q;d=d+q*+(b|0);break}if((u|0)!=0|(b|0)==0){o=u;f=j}else{o=1;f=j;d=d+j*.5}}else{o=u;f=j;g=b+(g<<4)|0}}while(0);h=tw(h|0,w|0,1,0)|0;t=v;s=M;m=1}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;w=s;v=t;b=l[b>>0]|0;u=o;j=f;continue}else{w=s;v=t;b=rk(a)|0;u=o;j=f;continue}}if(!m){b=(k[A>>2]|0)==0;if(!b)k[D>>2]=(k[D>>2]|0)+-1;if(c){if(!b?(x=k[D>>2]|0,k[D>>2]=x+-1,(n|0)!=0):0)k[D>>2]=x+-2}else qk(a,0);d=+(H|0)*0.0;break a}m=(n|0)==0;n=m?h:o;m=m?s:e;if((s|0)<0|(s|0)==0&h>>>0<8){e=s;do{g=g<<4;h=tw(h|0,e|0,1,0)|0;e=M}while((e|0)<0|(e|0)==0&h>>>0<8)}if((b|32|0)==112){e=Dl(a,c)|0;b=M;if((e|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break a}if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}}}else if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}G=ww(n|0,m|0,2)|0;G=tw(G|0,M|0,-32,-1)|0;b=tw(G|0,M|0,e|0,b|0)|0;e=M;if(!g){d=+(H|0)*0.0;break a}if((e|0)>0|(e|0)==0&b>>>0>(0-I|0)>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}G=I+-106|0;F=((G|0)<0)<<31>>31;if((e|0)<(F|0)|(e|0)==(F|0)&b>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((g|0)>-1){do{F=!(d>=.5);G=F&1|g<<1;g=G^1;d=d+(F?d:d+-1.0);b=tw(b|0,e|0,-1,-1)|0;e=M}while((G|0)>-1);h=b;j=d}else{h=b;j=d}b=rw(32,0,I|0,((I|0)<0)<<31>>31|0)|0;b=tw(h|0,e|0,b|0,M|0)|0;I=M;if(0>(I|0)|0==(I|0)&J>>>0>b>>>0)if((b|0)<0){b=0;y=127}else y=125;else{b=J;y=125}if((y|0)==125)if((b|0)<53)y=127;else{e=b;f=+(H|0);d=0.0}if((y|0)==127){d=+(H|0);e=b;f=d;d=+Ck(+Hk(1.0,84-b|0),d)}J=(g&1|0)==0&(j!=0.0&(e|0)<32);d=f*(J?0.0:j)+(d+f*+(((J&1)+g|0)>>>0))-d;if(!(d!=0.0)){J=mk()|0;k[J>>2]=34}d=+Ik(d,h);break a}else b=e}while(0);E=I+J|0;F=0-E|0;g=0;f:while(1){switch(b|0){case 46:{y=138;break f}case 48:break;default:{e=0;o=0;n=0;break f}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==138){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){e=0;b=0;while(1){e=tw(e|0,b|0,-1,-1)|0;g=M;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48)b=g;else{o=g;g=1;n=1;break}}}else{e=0;o=0;n=1}}k[G>>2]=0;m=b+-48|0;h=(b|0)==46;g:do{if(h|m>>>0<10){z=G+496|0;w=0;t=0;u=h;y=o;s=g;x=n;g=0;h=0;n=0;h:while(1){do{if(u)if(!x){e=w;o=t;x=1}else{o=y;b=w;m=t;break h}else{u=tw(w|0,t|0,1,0)|0;t=M;v=(b|0)!=48;if((h|0)>=125){if(!v){o=y;w=u;break}k[z>>2]=k[z>>2]|1;o=y;w=u;break}o=G+(h<<2)|0;if(g)m=b+-48+((k[o>>2]|0)*10|0)|0;k[o>>2]=m;g=g+1|0;m=(g|0)==9;o=y;w=u;s=1;g=m?0:g;h=(m&1)+h|0;n=v?u:n}}while(0);b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;m=b+-48|0;u=(b|0)==46;if(!(u|m>>>0<10)){m=x;y=161;break g}else y=o}s=(s|0)!=0;y=169}else{w=0;t=0;s=g;m=n;g=0;h=0;n=0;y=161}}while(0);do{if((y|0)==161){z=(m|0)==0;e=z?w:e;o=z?t:o;s=(s|0)!=0;if(!((b|32|0)==101&s))if((b|0)>-1){b=w;m=t;y=169;break}else{b=w;m=t;y=171;break}m=Dl(a,c)|0;b=M;if((m|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break}if(!(k[A>>2]|0)){m=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;m=0;b=0}}e=tw(m|0,b|0,e|0,o|0)|0;s=w;o=M;m=t;y=173}}while(0);if((y|0)==169)if(k[A>>2]|0){k[D>>2]=(k[D>>2]|0)+-1;if(s){s=b;y=173}else y=172}else y=171;if((y|0)==171)if(s){s=b;y=173}else y=172;do{if((y|0)==172){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0}else if((y|0)==173){b=k[G>>2]|0;if(!b){d=+(H|0)*0.0;break}if(((m|0)<0|(m|0)==0&s>>>0<10)&((e|0)==(s|0)&(o|0)==(m|0))?J>>>0>30|(b>>>J|0)==0:0){d=+(H|0)*+(b>>>0);break}a=(I|0)/-2|0;D=((a|0)<0)<<31>>31;if((o|0)>(D|0)|(o|0)==(D|0)&e>>>0>a>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=I+-106|0;D=((a|0)<0)<<31>>31;if((o|0)<(D|0)|(o|0)==(D|0)&e>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(g){if((g|0)<9){m=G+(h<<2)|0;b=k[m>>2]|0;do{b=b*10|0;g=g+1|0}while((g|0)!=9);k[m>>2]=b}h=h+1|0}if((n|0)<9?(n|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){d=+(H|0)*+((k[G>>2]|0)>>>0);break}if((e|0)<9){d=+(H|0)*+((k[G>>2]|0)>>>0)/+(k[37312+(8-e<<2)>>2]|0);break}a=J+27+(ia(e,-3)|0)|0;b=k[G>>2]|0;if((a|0)>30|(b>>>a|0)==0){d=+(H|0)*+(b>>>0)*+(k[37312+(e+-10<<2)>>2]|0);break}}b=(e|0)%9|0;if(!b){g=0;b=0}else{s=(e|0)>-1?b:b+9|0;m=k[37312+(8-s<<2)>>2]|0;if(h){n=1e9/(m|0)|0;g=0;b=0;o=0;do{A=G+(o<<2)|0;D=k[A>>2]|0;a=((D>>>0)/(m>>>0)|0)+b|0;k[A>>2]=a;b=ia((D>>>0)%(m>>>0)|0,n)|0;a=(o|0)==(g|0)&(a|0)==0;o=o+1|0;e=a?e+-9|0:e;g=a?o&127:g}while((o|0)!=(h|0));if(b){k[G+(h<<2)>>2]=b;h=h+1|0}}else{g=0;h=0}b=0;e=9-s+e|0}i:while(1){t=(e|0)<18;u=(e|0)==18;v=G+(g<<2)|0;do{if(!t){if(!u)break i;if((k[v>>2]|0)>>>0>=9007199){e=18;break i}}m=0;n=h+127|0;while(1){s=n&127;o=G+(s<<2)|0;n=ww(k[o>>2]|0,0,29)|0;n=tw(n|0,M|0,m|0,0)|0;m=M;if(m>>>0>0|(m|0)==0&n>>>0>1e9){a=Ew(n|0,m|0,1e9,0)|0;n=Fw(n|0,m|0,1e9,0)|0;m=a}else m=0;k[o>>2]=n;a=(s|0)==(g|0);h=(s|0)!=(h+127&127|0)|a?h:(n|0)==0?s:h;if(a)break;else n=s+-1|0}b=b+-29|0}while((m|0)==0);g=g+127&127;if((g|0)==(h|0)){a=h+127&127;h=G+((h+126&127)<<2)|0;k[h>>2]=k[h>>2]|k[G+(a<<2)>>2];h=a}k[G+(g<<2)>>2]=m;e=e+9|0}j:while(1){w=h+1&127;v=G+((h+127&127)<<2)|0;while(1){t=(e|0)==18;u=(e|0)>27?9:1;s=t^1;while(1){n=g&127;o=(n|0)==(h|0);do{if(!o){m=k[G+(n<<2)>>2]|0;if(m>>>0<9007199){y=219;break}if(m>>>0>9007199)break;m=g+1&127;if((m|0)==(h|0)){y=219;break}m=k[G+(m<<2)>>2]|0;if(m>>>0<254740991){y=219;break}if(!(m>>>0>254740991|s)){e=n;break j}}else y=219}while(0);if((y|0)==219?(y=0,t):0){y=220;break j}b=b+u|0;if((g|0)==(h|0))g=h;else break}s=(1<>>u;n=g;m=0;o=g;while(1){D=G+(o<<2)|0;a=k[D>>2]|0;g=(a>>>u)+m|0;k[D>>2]=g;m=ia(a&s,t)|0;g=(o|0)==(n|0)&(g|0)==0;o=o+1&127;e=g?e+-9|0:e;g=g?o:n;if((o|0)==(h|0))break;else n=g}if(!m)continue;if((w|0)!=(g|0))break;k[v>>2]=k[v>>2]|1}k[G+(h<<2)>>2]=m;h=w}if((y|0)==220)if(o){k[G+(w+-1<<2)>>2]=0;e=h;h=w}else e=n;d=+((k[G+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(h|0)){h=g+2&127;k[G+(h+-1<<2)>>2]=0}q=+(H|0);f=q*(d*1.0e9+ +((k[G+(e<<2)>>2]|0)>>>0));t=b+53|0;o=t-I|0;s=(o|0)<(J|0);e=s&1;n=s?(o|0)<0?0:o:J;if((n|0)<53){L=+Ck(+Hk(1.0,105-n|0),f);j=+Ek(f,+Hk(1.0,53-n|0));p=L;d=j;j=L+(f-j)}else{p=0.0;d=0.0;j=f}m=g+2&127;do{if((m|0)==(h|0))f=d;else{m=k[G+(m<<2)>>2]|0;do{if(m>>>0>=5e8){if(m>>>0>5e8){d=q*.75+d;break}if((g+3&127|0)==(h|0)){d=q*.5+d;break}else{d=q*.75+d;break}}else{if((m|0)==0?(g+3&127|0)==(h|0):0)break;d=q*.25+d}}while(0);if((53-n|0)<=1){f=d;break}if(+Ek(d,1.0)!=0.0){f=d;break}f=d+1.0}}while(0);d=j+f-p;do{if((t&2147483647|0)>(-2-E|0)){if(+X(+d)>=9007199254740992.0){e=s&(n|0)==(o|0)?0:e;b=b+1|0;d=d*.5}if((b+50|0)<=(F|0)?!(f!=0.0&(e|0)!=0):0)break;J=mk()|0;k[J>>2]=34}}while(0);d=+Ik(d,b)}}while(0);break a}default:{if(k[A>>2]|0)k[D>>2]=(k[D>>2]|0)+-1;J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}}}}}while(0);if((y|0)==23){e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if((c|0)!=0&b>>>0>3)do{if(!e)k[D>>2]=(k[D>>2]|0)+-1;b=b+-1|0}while(b>>>0>3)}d=+(H|0)*C}}while(0);r=K;return+d}function pk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do{if(b>>>0>36){e=mk()|0;k[e>>2]=22;e=0;d=0}else{r=a+4|0;q=a+100|0;do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);b:do{switch(f|0){case 43:case 45:{g=((f|0)==45)<<31>>31;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0;p=g;break b}else{f=rk(a)|0;p=g;break b}}default:p=0}}while(0);g=(b|0)==0;do{if((b&-17|0)==0&(f|0)==48){f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|32|0)!=120)if(g){b=8;n=46;break}else{n=32;break}b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;if((l[53879+(f+1)>>0]|0)>15){d=(k[q>>2]|0)==0;if(!d)k[r>>2]=(k[r>>2]|0)+-1;if(!c){qk(a,0);e=0;d=0;break a}if(d){e=0;d=0;break a}k[r>>2]=(k[r>>2]|0)+-1;e=0;d=0;break a}else{b=16;n=46}}else{b=g?10:b;if((l[53879+(f+1)>>0]|0)>>>0>>0)n=32;else{if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;qk(a,0);e=mk()|0;k[e>>2]=22;e=0;d=0;break a}}}while(0);if((n|0)==32)if((b|0)==10){b=f+-48|0;if(b>>>0<10){f=0;while(1){g=(f*10|0)+b|0;b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;b=f+-48|0;if(!(b>>>0<10&g>>>0<429496729)){b=g;break}else f=g}g=0}else{b=0;g=0}c=f+-48|0;if(c>>>0<10){while(1){h=Dw(b|0,g|0,10,0)|0;j=M;m=((c|0)<0)<<31>>31;o=~m;if(j>>>0>o>>>0|(j|0)==(o|0)&h>>>0>~c>>>0){h=b;break}b=tw(h|0,j|0,c|0,m|0)|0;g=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;c=f+-48|0;if(!(c>>>0<10&(g>>>0<429496729|(g|0)==429496729&b>>>0<2576980378))){h=b;break}}if(c>>>0>9){f=h;b=p}else{b=10;n=72}}else{f=b;b=p}}else n=46;c:do{if((n|0)==46){if(!(b+-1&b)){n=i[54136+((b*23|0)>>>5&7)>>0]|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c|f<>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<134217728&c>>>0>>0))break;else f=h}c=0}else{c=0;h=0}j=uw(-1,-1,n|0)|0;m=M;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break}else f=c;while(1){h=ww(h|0,f|0,n|0)|0;c=M;h=g&255|h;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break c}else f=c}}g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c+(ia(f,b)|0)|0;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<119304647&c>>>0>>0))break;else f=h}c=0}else{h=0;c=0}if((g&255)>>>0>>0){n=Ew(-1,-1,b|0,0)|0;o=M;m=c;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&h>>>0>n>>>0){g=m;n=72;break c}c=Dw(h|0,m|0,b|0,0)|0;j=M;g=g&255;if(j>>>0>4294967295|(j|0)==-1&c>>>0>~g>>>0){g=m;n=72;break c}h=tw(g|0,0,c|0,j|0)|0;c=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0){g=c;n=72;break}else m=c}}else{g=c;n=72}}}while(0);if((n|0)==72)if((l[53879+(f+1)>>0]|0)>>>0>>0){do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((l[53879+(f+1)>>0]|0)>>>0>>0);g=mk()|0;k[g>>2]=34;g=e;f=d;b=(d&1|0)==0&0==0?p:0}else{f=h;b=p}if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;if(!(g>>>0>>0|(g|0)==(e|0)&f>>>0>>0)){if(!((d&1|0)!=0|0!=0|(b|0)!=0)){r=mk()|0;k[r>>2]=34;d=tw(d|0,e|0,-1,-1)|0;e=M;break}if(g>>>0>e>>>0|(g|0)==(e|0)&f>>>0>d>>>0){r=mk()|0;k[r>>2]=34;break}}d=((b|0)<0)<<31>>31;d=rw(f^b|0,g^d|0,b|0,d|0)|0;e=M}}while(0);M=e;return d|0}function qk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;k[a+104>>2]=b;c=k[a+4>>2]|0;d=k[a+8>>2]|0;e=d-c|0;k[a+108>>2]=e;if((b|0)!=0&(e|0)>(b|0))k[a+100>>2]=c+b;else k[a+100>>2]=d;return}function rk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=a+104|0;f=k[c>>2]|0;if((f|0)!=0?(k[a+108>>2]|0)>=(f|0):0)g=4;else{b=cl(a)|0;if((b|0)>=0){e=k[c>>2]|0;c=a+8|0;if(e){d=k[c>>2]|0;f=k[a+4>>2]|0;c=d;e=e-(k[a+108>>2]|0)+-1|0;if((c-f|0)>(e|0))k[a+100>>2]=f+e;else g=9}else{d=k[c>>2]|0;c=d;g=9}if((g|0)==9)k[a+100>>2]=c;c=k[a+4>>2]|0;if(d){a=a+108|0;k[a>>2]=d+1-c+(k[a>>2]|0)}c=c+-1|0;if((l[c>>0]|0|0)!=(b|0))i[c>>0]=b}else g=4}if((g|0)==4){k[a+100>>2]=0;b=-1}return b|0}function sk(a){a=a|0;var b=0;if(a>>>0>4294963200){b=mk()|0;k[b>>2]=0-a;a=-1}return a|0}function tk(a){a=a|0;return 0}function uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function vk(a,b){a=a|0;b=b|0;return-1|0}function wk(a){a=a|0;Ql(a);return}function xk(a,b){a=a|0;b=b|0;return(a+-48|0)>>>0<10|0}function yk(a,b){a=a|0;b=b|0;return lk(a)|0}function zk(a,b,c){a=a|0;b=b|0;c=c|0;if(((i[b>>0]|0)!=0?(vl(b,58885)|0)!=0:0)?(vl(b,54145)|0)!=0:0)c=0;else if(!c)c=Rl(1,4)|0;return c|0}function Ak(a){a=a|0;var b=0,c=0;b=(kb()|0)+176|0;c=k[b>>2]|0;if(a)k[b>>2]=a;return c|0}function Bk(a,b){a=+a;b=+b;var c=0,d=0;p[t>>3]=a;d=k[t>>2]|0;c=k[t+4>>2]|0;p[t>>3]=b;c=k[t+4>>2]&-2147483648|c&2147483647;k[t>>2]=d;k[t+4>>2]=c;return+ +p[t>>3]}function Ck(a,b){a=+a;b=+b;return+ +Bk(a,b)}function Dk(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;p[t>>3]=a;c=k[t>>2]|0;j=k[t+4>>2]|0;p[t>>3]=b;l=k[t>>2]|0;m=k[t+4>>2]|0;d=uw(c|0,j|0,52)|0;d=d&2047;h=uw(l|0,m|0,52)|0;h=h&2047;n=j&-2147483648;g=ww(l|0,m|0,1)|0;i=M;a:do{if(!((g|0)==0&(i|0)==0)?(f=m&2147483647,!(f>>>0>2146435072|(f|0)==2146435072&l>>>0>0|(d|0)==2047)):0){e=ww(c|0,j|0,1)|0;f=M;if(!(f>>>0>i>>>0|(f|0)==(i|0)&e>>>0>g>>>0))return+((e|0)==(g|0)&(f|0)==(i|0)?a*0.0:a);if(!d){d=ww(c|0,j|0,12)|0;e=M;if((e|0)>-1|(e|0)==-1&d>>>0>4294967295){f=d;d=0;do{d=d+-1|0;f=ww(f|0,e|0,1)|0;e=M}while((e|0)>-1|(e|0)==-1&f>>>0>4294967295)}else d=0;c=ww(c|0,j|0,1-d|0)|0;e=M}else e=j&1048575|1048576;if(!h){f=ww(l|0,m|0,12)|0;g=M;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295){h=0;do{h=h+-1|0;f=ww(f|0,g|0,1)|0;g=M}while((g|0)>-1|(g|0)==-1&f>>>0>4294967295)}else h=0;l=ww(l|0,m|0,1-h|0)|0;j=M}else j=m&1048575|1048576;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;b:do{if((d|0)>(h|0)){while(1){if(f)if((c|0)==(l|0)&(e|0)==(j|0))break;else{c=i;e=g}c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;if((d|0)<=(h|0))break b}b=a*0.0;break a}}while(0);if(f)if((c|0)==(l|0)&(e|0)==(j|0)){b=a*0.0;break}else{e=g;c=i}if(e>>>0<1048576|(e|0)==1048576&c>>>0<0)do{c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0}while(e>>>0<1048576|(e|0)==1048576&c>>>0<0);if((d|0)>0){m=tw(c|0,e|0,0,-1048576)|0;c=M;d=ww(d|0,0,52)|0;c=c|M;d=m|d}else{d=uw(c|0,e|0,1-d|0)|0;c=M}k[t>>2]=d;k[t+4>>2]=c|n;b=+p[t>>3]}else o=3}while(0);if((o|0)==3){b=a*b;b=b/b}return+b}function Ek(a,b){a=+a;b=+b;return+ +Dk(a,b)}function Fk(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=uw(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+Fk(a*18446744073709551616.0,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return+a}function Gk(a,b){a=+a;b=b|0;return+ +Fk(a,b)}function Hk(a,b){a=+a;b=b|0;var c=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;c=b+-1023|0;if((c|0)>1023){c=b+-2046|0;c=(c|0)>1023?1023:c;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;c=b+1022|0;if((c|0)<-1022){c=b+2044|0;c=(c|0)<-1022?-1022:c;a=a*2.2250738585072014e-308}}else c=b;c=ww(c+1023|0,0,52)|0;b=M;k[t>>2]=c;k[t+4>>2]=b;return+(a*+p[t>>3])}function Ik(a,b){a=+a;b=b|0;return+ +Hk(a,b)}function Jk(a,b,c){a=a|0;b=b|0;c=c|0;return Kk(0,a,b,(c|0)!=0?c:37344)|0}function Kk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+16|0;e=j;g=(d|0)==0?37348:d;d=k[g>>2]|0;a:do{if(!b)if(!d)d=0;else h=15;else{f=(a|0)==0?e:a;if(!c)d=-2;else{if(!d){d=i[b>>0]|0;e=d&255;if(d<<24>>24>-1){k[f>>2]=e;d=d<<24>>24!=0&1;break}d=e+-194|0;if(d>>>0>50){h=15;break}d=k[37076+(d<<2)>>2]|0;e=c+-1|0;if(e){b=b+1|0;h=9}}else{e=c;h=9}b:do{if((h|0)==9){a=i[b>>0]|0;l=(a&255)>>>3;if((l+-16|l+(d>>26))>>>0>7){h=15;break a}while(1){b=b+1|0;d=(a&255)+-128|d<<6;e=e+-1|0;if((d|0)>=0)break;if(!e)break b;a=i[b>>0]|0;if((a&-64)<<24>>24!=-128){h=15;break a}}k[g>>2]=0;k[f>>2]=d;d=c-e|0;break a}}while(0);k[g>>2]=d;d=-2}}}while(0);if((h|0)==15){k[g>>2]=0;d=mk()|0;k[d>>2]=84;d=-1}r=j;return d|0}function Lk(a){a=a|0;if(!a)a=1;else a=(k[a>>2]|0)==0;return a&1|0}function Mk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;n=r;r=r+1040|0;j=n+8|0;m=n;i=k[b>>2]|0;k[m>>2]=i;l=(a|0)!=0;d=l?d:256;a=l?a:j;f=i;a:do{if((d|0)!=0&(i|0)!=0){h=d;i=f;d=0;while(1){f=c>>>2;g=f>>>0>=h>>>0;if(!(c>>>0>131|g)){f=i;break a}f=g?h:f;c=c-f|0;f=Nk(a,m,f,e)|0;if((f|0)==-1){d=c;break}o=(a|0)==(j|0);i=o?0:f;g=h-i|0;a=o?a:a+(f<<2)|0;d=f+d|0;f=k[m>>2]|0;if((h|0)!=(i|0)&(f|0)!=0){h=g;i=f}else{h=g;break a}}c=d;h=0;f=k[m>>2]|0;d=-1}else{h=d;d=0}}while(0);b:do{if((f|0)!=0?(h|0)!=0&(c|0)!=0:0){g=f;f=a;while(1){a=Kk(f,g,c,e)|0;if((a+2|0)>>>0<3)break;g=(k[m>>2]|0)+a|0;k[m>>2]=g;h=h+-1|0;d=d+1|0;if(!((h|0)!=0&(c|0)!=(a|0)))break b;else{c=c-a|0;f=f+4|0}}switch(a|0){case-1:{d=-1;break b}case 0:{k[m>>2]=0;break b}default:{k[e>>2]=0;break b}}}}while(0);if(l)k[b>>2]=k[m>>2];r=n;return d|0}function Nk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,m=0;e=k[b>>2]|0;if((d|0)!=0?(f=k[d>>2]|0,(f|0)!=0):0)if(!a){d=c;g=e;m=16}else{k[d>>2]=0;j=a;d=c;h=f;m=37}else if(!a){d=c;m=7}else{f=a;d=c;m=6}a:while(1)if((m|0)==6){if(!d){m=26;break}else a=f;while(1){f=i[e>>0]|0;do{if(((f&255)+-1|0)>>>0<127?d>>>0>4&(e&3|0)==0:0){g=e;while(1){e=k[g>>2]|0;if((e+-16843009|e)&-2139062144){f=e;e=g;m=32;break}k[a>>2]=e&255;k[a+4>>2]=l[g+1>>0];k[a+8>>2]=l[g+2>>0];e=g+4|0;f=a+16|0;k[a+12>>2]=l[g+3>>0];d=d+-4|0;if(d>>>0>4){a=f;g=e}else{m=31;break}}if((m|0)==31){a=f;f=i[e>>0]|0;break}else if((m|0)==32){f=f&255;break}}}while(0);f=f&255;if((f+-1|0)>>>0>=127)break;e=e+1|0;k[a>>2]=f;d=d+-1|0;if(!d){m=26;break a}else a=a+4|0}f=f+-194|0;if(f>>>0>50){m=48;break}j=a;h=k[37076+(f<<2)>>2]|0;e=e+1|0;m=37;continue}else if((m|0)==7){f=i[e>>0]|0;if(((f&255)+-1|0)>>>0<127?(e&3|0)==0:0){f=k[e>>2]|0;if(!((f+-16843009|f)&-2139062144))do{e=e+4|0;d=d+-4|0;f=k[e>>2]|0}while(((f+-16843009|f)&-2139062144|0)==0);f=f&255}f=f&255;if((f+-1|0)>>>0<127){d=d+-1|0;e=e+1|0;m=7;continue}f=f+-194|0;if(f>>>0>50){m=48;break}f=k[37076+(f<<2)>>2]|0;g=e+1|0;m=16;continue}else if((m|0)==16){m=(l[g>>0]|0)>>>3;if((m+-16|m+(f>>26))>>>0>7){m=17;break}e=g+1|0;if(f&33554432){if((i[e>>0]&-64)<<24>>24!=-128){m=20;break}e=g+2|0;if(f&524288){if((i[e>>0]&-64)<<24>>24!=-128){m=23;break}e=g+3|0}}d=d+-1|0;m=7;continue}else if((m|0)==37){f=l[e>>0]|0;m=f>>>3;if((m+-16|m+(h>>26))>>>0>7){m=38;break}g=e+1|0;a=f+-128|h<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=41;break}g=e+2|0;a=f+-128|a<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=44;break}a=f+-128|a<<6;e=e+3|0}else e=g}else e=g;k[j>>2]=a;f=j+4|0;d=d+-1|0;m=6;continue}if((m|0)==17){e=g+-1|0;m=47}else if((m|0)==20){e=g+-1|0;m=47}else if((m|0)==23){e=g+-1|0;m=47}else if((m|0)==26)k[b>>2]=e;else if((m|0)==38){a=j;f=h;e=e+-1|0;m=47}else if((m|0)==41){d=j;c=e+-1|0;m=52}else if((m|0)==44){d=j;c=e+-1|0;m=52}if((m|0)==47)if(!f)m=48;else{d=a;c=e;m=52}if((m|0)==48)if(!(i[e>>0]|0)){if(a){k[a>>2]=0;k[b>>2]=0}c=c-d|0}else{d=a;c=e;m=52}if((m|0)==52){m=mk()|0;k[m>>2]=84;if(!d)c=-1;else{k[b>>2]=c;c=-1}}return c|0}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;d=g;a:do{if(!b)d=0;else{do{if(c){f=(a|0)==0?d:a;d=i[b>>0]|0;a=d&255;if(d<<24>>24>-1){k[f>>2]=a;d=d<<24>>24!=0&1;break a}d=a+-194|0;if(d>>>0<=50){a=b+1|0;e=k[37076+(d<<2)>>2]|0;if(c>>>0<4?(e&-2147483648>>>((c*6|0)+-6|0)|0)!=0:0)break;d=l[a>>0]|0;c=d>>>3;if((c+-16|c+(e>>26))>>>0<=7){d=d+-128|e<<6;if((d|0)>=0){k[f>>2]=d;d=2;break a}a=l[b+2>>0]|0;if((a&192|0)==128){a=a+-128|d<<6;if((a|0)>=0){k[f>>2]=a;d=3;break a}d=l[b+3>>0]|0;if((d&192|0)==128){k[f>>2]=d+-128|a<<6;d=4;break a}}}}}}while(0);d=mk()|0;k[d>>2]=84;d=-1}}while(0);r=g;return d|0}function Pk(a,b,c){a=a|0;b=b|0;c=c|0;do{if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=mk()|0;k[a>>2]=84;a=-1;break}}else a=1}while(0);return a|0}function Qk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;l=r;r=r+272|0;h=l+8|0;j=l;g=k[b>>2]|0;k[j>>2]=g;i=(a|0)!=0;e=i?d:256;d=i?a:h;a=g;a:do{if((e|0)!=0&(g|0)!=0){g=e;f=a;e=0;while(1){a=c>>>0>=g>>>0;if(!(a|c>>>0>32)){a=f;break a}a=a?g:c;c=c-a|0;a=Rk(d,j,a,0)|0;if((a|0)==-1){e=c;break}n=(d|0)==(h|0);m=n?0:a;f=g-m|0;d=n?d:d+a|0;e=a+e|0;a=k[j>>2]|0;if((g|0)!=(m|0)&(a|0)!=0){g=f;f=a}else{g=f;break a}}c=e;g=0;a=k[j>>2]|0;e=-1}else{g=e;e=0}}while(0);b:do{if((a|0)!=0?(g|0)!=0&(c|0)!=0:0){f=a;a=d;while(1){d=Pk(a,k[f>>2]|0,0)|0;if((d+1|0)>>>0<2)break;f=(k[j>>2]|0)+4|0;k[j>>2]=f;c=c+-1|0;e=e+1|0;if(!((g|0)!=(d|0)&(c|0)!=0))break b;else{g=g-d|0;a=a+d|0}}if(!d)k[j>>2]=0;else e=-1}}while(0);if(i)k[b>>2]=k[j>>2];r=l;return e|0}function Rk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;a:do{if(!a){a=k[b>>2]|0;d=k[a>>2]|0;if(!d)c=0;else{c=0;do{if(d>>>0>127){d=Pk(g,d,0)|0;if((d|0)==-1){c=-1;break a}}else d=1;c=d+c|0;a=a+4|0;d=k[a>>2]|0}while((d|0)!=0)}}else{b:do{if(c>>>0>3){d=c;e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f)break;f=Pk(a,f,0)|0;if((f|0)==-1){c=-1;break a}a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(d>>>0<=3)break b}i[a>>0]=0;k[b>>2]=0;c=c-d|0;break a}else d=c}while(0);if(d){e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f){e=19;break}f=Pk(g,f,0)|0;if((f|0)==-1){c=-1;break a}if(d>>>0>>0){e=22;break}Pk(a,k[e>>2]|0,0)|0;a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(!d)break a}if((e|0)==19){i[a>>0]=0;k[b>>2]=0;c=c-d|0;break}else if((e|0)==22){c=c-d|0;break}}}}while(0);r=h;return c|0}function Sk(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Pk(a,b,0)|0;return a|0}function Tk(a){a=a|0;return 0}function Uk(a){a=a|0;return}function Vk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(bl(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do{if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Qb[k[a+36>>2]&63](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}}while(0);r=j;return c|0}function Wk(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=sk(wb(6,c|0)|0)|0;r=b;return a|0}function Xk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+48|0;f=l+16|0;e=l;d=l+32|0;k[d>>2]=b;g=d+4|0;j=a+48|0;m=k[j>>2]|0;k[g>>2]=c-((m|0)!=0&1);h=a+44|0;k[d+8>>2]=k[h>>2];k[d+12>>2]=m;if(!(k[9258]|0)){k[f>>2]=k[a+60>>2];k[f+4>>2]=d;k[f+8>>2]=2;d=sk(Eb(145,f|0)|0)|0}else{xb(185,a|0);k[e>>2]=k[a+60>>2];k[e+4>>2]=d;k[e+8>>2]=2;d=sk(Eb(145,e|0)|0)|0;pb(0)}if((d|0)>=1){g=k[g>>2]|0;if(d>>>0>g>>>0){f=k[h>>2]|0;e=a+4|0;k[e>>2]=f;k[a+8>>2]=f+(d-g);if(!(k[j>>2]|0))d=c;else{k[e>>2]=f+1;i[b+(c+-1)>>0]=i[f>>0]|0;d=c}}}else{k[a>>2]=k[a>>2]|d&48^16;k[a+8>>2]=0;k[a+4>>2]=0}r=l;return d|0}function Yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((sk(Db(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Zk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[9258]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=sk(Fb(146,m|0)|0)|0}else{xb(186,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=sk(Fb(146,l|0)|0)|0;pb(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function _k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=8;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(nb(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Zk(a,b,c)|0;r=e;return d|0}function $k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+84|0;f=k[d>>2]|0;g=c+256|0;e=tl(f,0,g)|0;e=(e|0)==0?g:e-f|0;c=e>>>0>>0?e:c;vw(b|0,f|0,c|0)|0;k[a+4>>2]=f+c;b=f+e|0;k[a+8>>2]=b;k[d>>2]=b;return c|0}function al(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=a+20|0;c=a+44|0;if((k[b>>2]|0)>>>0>(k[c>>2]|0)>>>0)Qb[k[a+36>>2]&63](a,0,0)|0;k[a+16>>2]=0;k[a+28>>2]=0;k[b>>2]=0;b=k[a>>2]|0;if(b&20)if(!(b&4))b=-1;else{k[a>>2]=b|32;b=-1}else{b=k[c>>2]|0;k[a+8>>2]=b;k[a+4>>2]=b;b=0}return b|0}function bl(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function cl(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a+8>>2]|0)==0?(al(a)|0)!=0:0)b=-1;else if((Qb[k[a+32>>2]&63](a,b,1)|0)==1)b=l[b>>0]|0;else b=-1;r=c;return b|0}function dl(a){a=a|0;var b=0,c=0;do{if(a){if((k[a+76>>2]|0)<=-1){b=Gl(a)|0;break}c=(Tk(a)|0)==0;b=Gl(a)|0;if(!c)Uk(a)}else{if(!(k[9323]|0))b=0;else b=dl(k[9323]|0)|0;Na(37060);a=k[9264]|0;if(a)do{if((k[a+76>>2]|0)>-1)c=Tk(a)|0;else c=0;if((k[a+20>>2]|0)>>>0>(k[a+28>>2]|0)>>>0)b=Gl(a)|0|b;if(c)Uk(a);a=k[a+56>>2]|0}while((a|0)!=0);ob(37060)}}while(0);return b|0}function el(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Tk(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Vk(b,a)|0;Uk(b)}else g=3;do{if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Vk(b,a)|0}}while(0);return c|0}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(bl(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do{if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Qb[k[c+36>>2]&63](c,a,b)|0;break}b:do{if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Qb[k[c+36>>2]&63](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}}while(0);vw(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}}while(0);return d|0}function gl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ia(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Tk(d)|0)==0;a=fl(a,e,d)|0;if(!f)Uk(d)}else a=fl(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function hl(a){a=a|0;var b=0,c=0,d=0;if((k[a+76>>2]|0)>=0?(Tk(a)|0)!=0:0){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0}else b=cl(a)|0}else d=3;do{if((d|0)==3){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0;break}else{b=cl(a)|0;break}}}while(0);return b|0}function il(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=ol(a,b,c,f)|0;r=e;return d|0}function jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=pl(a,b,e)|0;r=d;return c|0}function kl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;do{if((a|0)!=-1){if((k[b+76>>2]|0)>-1)e=Tk(b)|0;else e=0;if(!((k[b+8>>2]|0)==0?(al(b)|0)!=0:0))f=6;if((f|0)==6?(c=b+4|0,d=k[c>>2]|0,d>>>0>((k[b+44>>2]|0)+-8|0)>>>0):0){f=d+-1|0;k[c>>2]=f;i[f>>0]=a;k[b>>2]=k[b>>2]&-17;if(!e)break;Uk(b);break}if(e){Uk(b);a=-1}else a=-1}else a=-1}while(0);return a|0}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;d=h;e=Pl(240)|0;do{if(e){k[d>>2]=k[c>>2];d=ol(e,240,b,d)|0;if(d>>>0<240){b=Sl(e,d+1|0)|0;k[a>>2]=(b|0)!=0?b:e;break}Ql(e);if((d|0)>=0?(g=d+1|0,f=Pl(g)|0,k[a>>2]=f,(f|0)!=0):0)d=ol(f,g,b,c)|0;else d=-1}else d=-1}while(0);r=h;return d|0}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+80|0;q=s+96|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Hl(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Tk(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Hl(a,b,n,p,q)|0;if(f){Qb[k[a+36>>2]&63](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Hl(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Uk(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,m=0.0,n=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0;P=r;r=r+304|0;G=P+16|0;I=P+8|0;H=P+33|0;J=P;y=P+32|0;if((k[a+76>>2]|0)>-1)O=Tk(a)|0;else O=0;d=i[b>>0]|0;a:do{if(d<<24>>24){K=a+4|0;L=a+100|0;F=a+108|0;z=a+8|0;A=H+10|0;B=H+33|0;C=I+4|0;D=H+46|0;E=H+94|0;f=d;d=0;g=b;s=0;e=0;b=0;b:while(1){c:do{if(!(kk(f&255)|0)){f=(i[g>>0]|0)==37;d:do{if(f){n=g+1|0;h=i[n>>0]|0;e:do{switch(h<<24>>24){case 37:break d;case 42:{x=0;h=g+2|0;break}default:{h=(h&255)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[G>>2]=k[c>>2];while(1){x=(k[G>>2]|0)+(4-1)&~(4-1);f=k[x>>2]|0;k[G>>2]=x+4;if(h>>>0>1)h=h+-1|0;else break}x=f;h=g+3|0;break e}h=(k[c>>2]|0)+(4-1)&~(4-1);x=k[h>>2]|0;k[c>>2]=h+4;h=n}}}while(0);f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0<10){f=0;while(1){n=(f*10|0)+-48+g|0;h=h+1|0;f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0>=10)break;else f=n}}else n=0;if(f<<24>>24==109){h=h+1|0;q=i[h>>0]|0;f=(x|0)!=0&1;e=0;b=0}else{q=f;f=0}g=h+1|0;switch(q&255|0){case 104:{w=(i[g>>0]|0)==104;g=w?h+2|0:g;h=w?-2:-1;break}case 108:{w=(i[g>>0]|0)==108;g=w?h+2|0:g;h=w?3:1;break}case 106:{h=3;break}case 116:case 122:{h=1;break}case 76:{h=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{g=h;h=0;break}default:{N=152;break b}}q=l[g>>0]|0;t=(q&47|0)==3;q=t?q|32:q;t=t?1:h;switch(q|0){case 99:{w=s;v=(n|0)<1?1:n;break}case 91:{w=s;v=n;break}case 110:{if(!x){h=s;break c}switch(t|0){case-2:{i[x>>0]=s;h=s;break c}case-1:{j[x>>1]=s;h=s;break c}case 0:{k[x>>2]=s;h=s;break c}case 1:{k[x>>2]=s;h=s;break c}case 3:{h=x;k[h>>2]=s;k[h+4>>2]=((s|0)<0)<<31>>31;h=s;break c}default:{h=s;break c}}}default:{qk(a,0);do{h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0}while((kk(h)|0)!=0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}w=(k[F>>2]|0)+s+h-(k[z>>2]|0)|0;v=n}}qk(a,v);h=k[K>>2]|0;n=k[L>>2]|0;if(h>>>0>>0)k[K>>2]=h+1;else{if((rk(a)|0)<0){N=152;break b}n=k[L>>2]|0}if(n)k[K>>2]=(k[K>>2]|0)+-1;f:do{switch(q|0){case 91:case 99:case 115:{u=(q|0)==99;g:do{if((q&239|0)==99){sw(H|0,-1,257)|0;i[H>>0]=0;if((q|0)==115){i[B>>0]=0;i[A>>0]=0;i[A+1>>0]=0;i[A+2>>0]=0;i[A+3>>0]=0;i[A+4>>0]=0}}else{Q=g+1|0;s=(i[Q>>0]|0)==94;h=s&1;q=s?Q:g;g=s?g+2|0:Q;sw(H|0,s&1|0,257)|0;i[H>>0]=0;switch(i[g>>0]|0){case 45:{s=(h^1)&255;i[D>>0]=s;g=q+2|0;break}case 93:{s=(h^1)&255;i[E>>0]=s;g=q+2|0;break}default:s=(h^1)&255}while(1){h=i[g>>0]|0;h:do{switch(h<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{q=g+1|0;h=i[q>>0]|0;switch(h<<24>>24){case 93:case 0:{h=45;break h}default:{}}g=i[g+-1>>0]|0;if((g&255)<(h&255)){g=g&255;do{g=g+1|0;i[H+g>>0]=s;h=i[q>>0]|0}while((g|0)<(h&255|0));g=q}else g=q;break}default:{}}}while(0);i[H+((h&255)+1)>>0]=s;g=g+1|0}}}while(0);q=u?v+1|0:31;s=(t|0)==1;t=(f|0)!=0;i:do{if(s){if(t){b=Pl(q<<2)|0;if(!b){e=0;N=152;break b}}else b=x;k[I>>2]=0;k[C>>2]=0;e=0;j:while(1){n=(b|0)==0;do{k:while(1){h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0;if(!(i[H+(h+1)>>0]|0))break j;i[y>>0]=h;switch(Kk(J,y,1,I)|0){case-1:{e=0;N=152;break b}case-2:break;default:break k}}if(!n){k[b+(e<<2)>>2]=k[J>>2];e=e+1|0}}while(!(t&(e|0)==(q|0)));e=q<<1|1;h=Sl(b,e<<2)|0;if(!h){e=0;N=152;break b}Q=q;q=e;b=h;e=Q}if(!(Lk(I)|0)){e=0;N=152;break b}else{n=e;e=0}}else{if(t){e=Pl(q)|0;if(!e){e=0;b=0;N=152;break b}else h=0;while(1){do{b=k[K>>2]|0;if(b>>>0<(k[L>>2]|0)>>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=h;b=0;break i}i[e+h>>0]=b;h=h+1|0}while((h|0)!=(q|0));b=q<<1|1;h=Sl(e,b)|0;if(!h){b=0;N=152;break b}else{Q=q;q=b;e=h;h=Q}}}if(!x){e=n;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=0;e=0;b=0;break i}e=k[L>>2]|0}}else{e=0;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=e;e=x;b=0;break i}i[x+e>>0]=b;n=k[L>>2]|0;e=e+1|0}}}}while(0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}h=h-(k[z>>2]|0)+(k[F>>2]|0)|0;if(!h)break b;if(!((h|0)==(v|0)|u^1))break b;do{if(t)if(s){k[x>>2]=b;break}else{k[x>>2]=e;break}}while(0);if(!u){if(b)k[b+(n<<2)>>2]=0;if(!e){e=0;break f}i[e+n>>0]=0}break}case 120:case 88:case 112:{h=16;N=134;break}case 111:{h=8;N=134;break}case 117:case 100:{h=10;N=134;break}case 105:{h=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{m=+ok(a,t,0);if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if(x)switch(t|0){case 0:{o[x>>2]=m;break f}case 1:{p[x>>3]=m;break f}case 2:{p[x>>3]=m;break f}default:break f}break}default:{}}}while(0);l:do{if((N|0)==134){N=0;h=pk(a,h,0,-1,-1)|0;if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if((x|0)!=0&(q|0)==112){k[x>>2]=h;break}if(x)switch(t|0){case-2:{i[x>>0]=h;break l}case-1:{j[x>>1]=h;break l}case 0:{k[x>>2]=h;break l}case 1:{k[x>>2]=h;break l}case 3:{Q=x;k[Q>>2]=h;k[Q+4>>2]=M;break l}default:break l}}}while(0);d=((x|0)!=0&1)+d|0;h=(k[F>>2]|0)+w+(k[K>>2]|0)-(k[z>>2]|0)|0;break c}}while(0);g=g+(f&1)|0;qk(a,0);f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|0)!=(l[g>>0]|0)){N=21;break b}h=s+1|0}else{while(1){f=g+1|0;if(!(kk(l[f>>0]|0)|0))break;else g=f}qk(a,0);do{f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);f=k[K>>2]|0;if(k[L>>2]|0){f=f+-1|0;k[K>>2]=f}h=(k[F>>2]|0)+s+f-(k[z>>2]|0)|0}}while(0);g=g+1|0;f=i[g>>0]|0;if(!(f<<24>>24))break a;else s=h}if((N|0)==21){if(k[L>>2]|0)k[K>>2]=(k[K>>2]|0)+-1;if((d|0)!=0|(f|0)>-1)break;else{d=0;N=153}}else if((N|0)==152)if(!d){d=f;N=153}if((N|0)==153){f=d;d=-1}if(f){Ql(e);Ql(b)}}else d=0}while(0);if(O)Uk(a);r=P;return d|0}function ol(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=37352;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=mk()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=ml(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function pl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=r;r=r+112|0;d=f;e=d;g=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[d+32>>2]=29;k[d+44>>2]=a;k[d+76>>2]=-1;k[d+84>>2]=a;g=nl(d,b,c)|0;r=f;return g|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;return+ +Jl(a,b,2)}function rl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,-1,-1)|0;return a|0}function sl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,0,-2147483648)|0;return a|0}function tl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do{if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5}while(0);if((g|0)==5)if(d)g=6;else c=0;b:do{if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ia(f,16843009)|0;c:do{if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11}while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}}while(0);return((c|0)!=0?a:0)|0}function ul(a,b){a=a|0;b=b|0;var c=0,d=0;c=b;a:do{if(!((c^a)&3)){if(c&3)do{c=i[b>>0]|0;i[a>>0]=c;if(!(c<<24>>24))break a;b=b+1|0;a=a+1|0}while((b&3|0)!=0);c=k[b>>2]|0;if(!((c&-2139062144^-2139062144)&c+-16843009)){d=a;while(1){b=b+4|0;a=d+4|0;k[d>>2]=c;c=k[b>>2]|0;if((c&-2139062144^-2139062144)&c+-16843009)break;else d=a}}d=8}else d=8}while(0);if((d|0)==8){d=i[b>>0]|0;i[a>>0]=d;if(d<<24>>24)do{b=b+1|0;a=a+1|0;d=i[b>>0]|0;i[a>>0]=d}while(d<<24>>24!=0)}return a|0}function vl(a,b){a=a|0;b=b|0;var c=0,d=0;d=i[a>>0]|0;c=i[b>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=c<<24>>24)b=d;else{do{a=a+1|0;b=b+1|0;d=i[a>>0]|0;c=i[b>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=c<<24>>24));b=d}return(b&255)-(c&255)|0}function wl(a,b){a=a|0;b=b|0;ul(a,b)|0;return a|0}function xl(a){a=a|0;var b=0,c=0,d=0;d=a;a:do{if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do{a=a+1|0}while((i[a>>0]|0)!=0)}return a-d|0}function yl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!c)b=0;else{d=i[a>>0]|0;a:do{if(!(d<<24>>24))d=0;else while(1){c=c+-1|0;e=i[b>>0]|0;if(!(d<<24>>24==e<<24>>24&((c|0)!=0&e<<24>>24!=0)))break a;a=a+1|0;b=b+1|0;d=i[a>>0]|0;if(!(d<<24>>24)){d=0;break}}}while(0);b=(d&255)-(l[b>>0]|0)|0}return b|0}function zl(a){a=a|0;var b=0;b=a;while(1)if(!(k[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=k[b>>2];if(!c)break;else{b=b+4|0;d=d+4|0}}}return a|0}function Bl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(c|0)==0;if(a-b>>2>>>0>>0){if(!d)do{c=c+-1|0;k[a+(c<<2)>>2]=k[b+(c<<2)>>2]}while((c|0)!=0)}else if(!d){d=b;b=a;while(1){c=c+-1|0;k[b>>2]=k[d>>2];if(!c)break;else{d=d+4|0;b=b+4|0}}}return a|0}function Cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=b;if(!c)break;else d=d+4|0}}return a|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+4|0;c=k[g>>2]|0;h=a+100|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;switch(c|0){case 43:case 45:{d=(c|0)==45&1;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;if((b|0)!=0&(c+-48|0)>>>0>9?(k[h>>2]|0)!=0:0){k[g>>2]=(k[g>>2]|0)+-1;f=d}else f=d;break}default:f=0}if((c+-48|0)>>>0>9)if(!(k[h>>2]|0)){d=-2147483648;c=0}else{k[g>>2]=(k[g>>2]|0)+-1;d=-2147483648;c=0}else{d=0;do{d=c+-48+(d*10|0)|0;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&(d|0)<214748364);b=((d|0)<0)<<31>>31;if((c+-48|0)>>>0<10){do{b=Dw(d|0,b|0,10,0)|0;d=M;c=tw(c|0,((c|0)<0)<<31>>31|0,-48,-1)|0;d=tw(c|0,M|0,b|0,d|0)|0;b=M;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&d>>>0<2061584302));e=d}else e=d;if((c+-48|0)>>>0<10)do{c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10);if(k[h>>2]|0)k[g>>2]=(k[g>>2]|0)+-1;a=(f|0)!=0;c=rw(0,0,e|0,b|0)|0;d=a?M:b;c=a?c:e}M=d;return c|0}function El(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Fl(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Gl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+20|0;f=a+28|0;if((k[b>>2]|0)>>>0>(k[f>>2]|0)>>>0?(Qb[k[a+36>>2]&63](a,0,0)|0,(k[b>>2]|0)==0):0)b=-1;else{g=a+4|0;c=k[g>>2]|0;d=a+8|0;e=k[d>>2]|0;if(c>>>0>>0)Qb[k[a+40>>2]&63](a,c-e|0,1)|0;k[a+16>>2]=0;k[f>>2]=0;k[b>>2]=0;k[d>>2]=0;k[g>>2]=0;b=0}return b|0}var Ib=[cx,_q,cr,Yr,as,fs,hs,Hu,Su,cx,cx,cx,cx,cx,cx,cx];var Jb=[dx,si,gi,Wh,Kh,yh,mh,ah,Lg,Wj,Vj,Sj,dx,dx,dx,dx];var Kb=[ex,ls,rs,ex];var Lb=[fx,oi,pi,ci,di,Sh,Th,Gh,Hh,uh,vh,ih,jh,Yg,Zg,Hg,Ig,ug,vg,ig,jg,Yf,Zf,Mf,Nf,Af,Bf,Ie,Je,ve,we,Dc,Ec,Zd,be,_d,mo,oo,no,po,ud,vd,_i,wd,nd,od,Sc,Tc,_c,$c,fd,gd,xd,yd,Ed,Fd,Ld,Md,Sd,Td,te,ue,Re,Se,Ye,Ze,df,ef,lf,mf,Wg,Xg,Nm,Ai,Ki,Li,$i,aj,pj,qj,wj,xj,Bj,Cj,Ej,Hj,Fj,Gj,Ij,Jj,Mn,bm,hm,xn,mm,sm,Lm,Mm,yn,Nn,$n,bo,ao,co,go,io,ho,jo,uo,wo,vo,xo,Eo,Fo,pn,Go,Ho,Io,Ko,Us,Oo,Po,To,Uo,gp,hp,Ap,Bp,Pp,Qp,aq,bq,zq,Aq,Xq,Zq,ar,br,er,fr,pr,qr,Ar,Br,Lr,Mr,Wr,Xr,ds,es,js,ks,ps,qs,vs,ws,As,Bs,Is,Js,kt,lt,Gu,Dt,du,eu,fu,gu,Jo,Ts,Ws,ut,Lt,Tt,$t,au,bj,Si,jj,Cc,zn,fo,ie,Og,ek,El,Fl,Wl,wk,Zr,$r,Vs,Qv,Xv,Yv,Zv,_v,$v,aw,Sm,en,Ql,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx];var Mb=[gx,ri,fi,Vh,Jh,xh,lh,$g,Kg,wg,kg,_f,Of,Cf,Ke,xe,Fc,An,Mi,Pi,cm,gm,nm,rm,Pn,ir,jr,kr,lr,nr,or,tr,ur,vr,wr,yr,zr,Er,Fr,Gr,Hr,Jr,Kr,Pr,Qr,Rr,Sr,Ur,Vr,zs,Es,lu,nu,pu,mu,ou,qu,uc,cj,Qi,Ri,Ti,un,Mc,Oc,qo,on,_m,he,Be,tf,Gf,Sf,cg,og,Ag,Ng,ch,oh,Ah,Mh,Yh,ii,ui,Ii,hj,Cm,Am,sn,yo,Bm,Ym,jn,hn,kv,lv,mv,nv,ov,pv,Ct,qv,rv,sv,tv,uv,vv,wv,xv,yv,zv,Av,Bv,Cv,Dv,Ev,Fv,Gv,Hv,Iv,Jv,Kv,Lv,Mv,Ov,gw,gx,gx];var Nb=[hx,Vo,Wo,Xo,Yo,Zo,_o,$o,ap,bp,cp,dp,ip,jp,kp,lp,mp,np,op,pp,qp,rp,sp,Hp,Jp,Up,Wp,dq,eq,fq,hq,jq,Cq,Dq,Eq,Gq,Iq,os,us,md,cv,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx];var Ob=[ix,En,Fn,rd,In,Bi,rj,yj,Dj,Wk,dm,Un,Wn,Xn,Tn,im,jm,om,Hn,tm,um,Ao,cq,su,uu,wu,Cu,Eu,yu,Au,Bq,tu,vu,xu,Du,Fu,zu,Bu,gr,hr,mr,rr,sr,xr,Cr,Dr,Ir,Nr,Or,Tr,Ht,It,Kt,hu,ju,iu,ku,yt,zt,Bt,Pt,Qt,St,Xt,Yt,_t,Ei,lj,tn,Vi,eo,ko,jx,kx,lx,Ak,zl,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix];var Pb=[mx,_r,gs,mx];var Qb=[nx,Bn,Gn,Kn,Em,Fm,Kj,Ll,Zk,Yk,Xk,_k,Qn,Vn,em,Zn,pm,No,So,xs,Cs,nt,pt,st,Xs,ct,ft,it,Nc,Il,$m,zk,hv,jv,Pk,Ok,Jk,ll,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx];var Rb=[ox,ns,ts,ox];var Sb=[px,pd,Zj,Yj,Xj,Rn,Cn,ys,Ds,px,px,px,px,px,px,px];var Tb=[qx,Gp,Mp,Tp,Yp,qx,qx,qx];var Ub=[rx,bs,is,ms,ss,rx,rx,rx];var Vb=[sx,qi,ei,Uh,Ih,wh,kh,_g,Jg,yg,mg,ag,Qf,Ef,Me,ze,Hc,sd,td,Yn,fm,km,_n,Jn,qm,vm,Ln,mt,ot,qt,at,dt,gt,dj,yc,Ac,so,Ss,to,yk,xk,Um,fn,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx];var Wb=[tx,Lo,Qo,Cp,Dp,Ip,Op,Rp,Sp,Vp,_p,tt,Gt,Jt,jt,xt,At,Ot,Rt,Wt,Zt,Qk,Mk,tx,tx,tx,tx,tx,tx,tx,tx,tx];var Xb=[ux,jw,iw,hw];var Yb=[vx,vc,kj,fp,Ls,Ms,Ns,hk,jk,ik,vx,vx,vx,vx,vx,vx];var Zb=[wx,xg,lg,$f,Pf,Df,Le,ye,Gc,rt,Zs,_s,$s,ht,Di,Ji,Ru,bv,Nk,uk,Kk,pw,ow,nw,mw,lw,kw,wx,wx,wx,wx,wx];var _b=[xx,Dm,Ci,Bo,ej,Qm,yx,Km,Wm,Ui,Hm,Do,fv,gv,iv,cn];var $b=[zx,Ax,bk,Bx,ck,Cx,ak,zx];var ac=[Dx,lq,Kq,Et,Ft,vt,wt,Mt,Nt,Ut,Vt,Dx,Dx,Dx,Dx,Dx];var bc=[Ex,Kp,Np,Xp,Zp,Ex,Ex,Ex];var cc=[Fx,ce,de,$d,ae,qd,Uc,Vc,ad,bd,hd,id,zd,Ad,Gd,Hd,Nd,Od,Ud,Vd,Te,Ue,_e,$e,ff,gf,nf,of,Mj,Nj,Pj,Sn,Dn,Mo,Ro,nc,Jm,Ic,Jc,Kc,Lc,Pc,Qc,Rc,Ne,Oe,Pe,Qe,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx];return{_jpegls_encode:gj,___cxa_can_catch:_j,_free:Ql,_jpegls_decode:fj,___cxa_is_pointer_type:$j,_i64Add:tw,_memmove:xw,_i64Subtract:rw,_memset:sw,_malloc:Pl,_memcpy:vw,_bitshift64Lshr:uw,_bitshift64Shl:ww,__GLOBAL__I_000101:Xl,__GLOBAL__sub_I_jpegls_cpp:Bc,__GLOBAL__sub_I_iostream_cpp:Yl,runPostSets:qw,_emscripten_replace_memory:Hb,stackAlloc:dc,stackSave:ec,stackRestore:fc,establishStackSpace:gc,setThrew:hc,setTempRet0:kc,getTempRet0:lc,dynCall_iiiiiiii:Hw,dynCall_viiiii:Iw,dynCall_iiiiiid:Jw,dynCall_vi:Kw,dynCall_vii:Lw,dynCall_iiiiiii:Mw,dynCall_ii:Nw,dynCall_iiiiiiiiiiii:Ow,dynCall_iiii:Pw,dynCall_viiiiiiiiiiiiiii:Qw,dynCall_viiiiii:Rw,dynCall_viiiiiii:Sw,dynCall_viiiiiiiiii:Tw,dynCall_iii:Uw,dynCall_iiiiii:Vw,dynCall_diii:Ww,dynCall_i:Xw,dynCall_iiiii:Yw,dynCall_viii:Zw,dynCall_v:_w,dynCall_iiiiiiiii:$w,dynCall_iiiiid:ax,dynCall_viiii:bx}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _jpegls_encode=Module["_jpegls_encode"]=asm["_jpegls_encode"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var _jpegls_decode=Module["_jpegls_decode"]=asm["_jpegls_decode"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var __GLOBAL__sub_I_jpegls_cpp=Module["__GLOBAL__sub_I_jpegls_cpp"]=asm["__GLOBAL__sub_I_jpegls_cpp"];var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=asm["dynCall_iiiiiiiiiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiiiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_diii=Module["dynCall_diii"]=asm["dynCall_diii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",function(){process["exit"](status)});console.log(" ");setTimeout(function(){process["exit"](status)},500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach(function(decorator){output=decorator(output,what)})}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();return Module};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=CharLS}}).call(this)}).call(this,require("_process"),"/lib")},{_process:20,fs:6,path:19}],2:[function(require,module,exports){var ColorSpace={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4};var JpegImage=function jpegImage(){"use strict";var dctZigZag=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);var dctCos1=4017;var dctSin1=799;var dctCos3=3406;var dctSin3=2276;var dctCos6=1567;var dctSin6=3784;var dctSqrt2=5793;var dctSqrt1d2=2896;function constructor(){}function buildHuffmanTable(codeLengths,values){var k=0,code=[],i,j,length=16;while(length>0&&!codeLengths[length-1])length--;code.push({children:[],index:0});var p=code[0],q;for(i=0;i0){p=code.pop()}p.index++;code.push(p);while(code.length<=i){code.push(q={children:[],index:0});p.children[p.index]=q.children;p=q}k++}if(i+10){bitsCount--;return bitsData>>bitsCount&1}bitsData=data[offset++];if(bitsData==255){var nextByte=data[offset++];if(nextByte){throw"unexpected marker: "+(bitsData<<8|nextByte).toString(16)}}bitsCount=7;return bitsData>>>7}function decodeHuffman(tree){var node=tree;var bit;while((bit=readBit())!==null){node=node[bit];if(typeof node==="number")return node;if(typeof node!=="object")throw"invalid huffman sequence"}return null}function receive(length){var n=0;while(length>0){var bit=readBit();if(bit===null)return;n=n<<1|bit;length--}return n}function receiveAndExtend(length){var n=receive(length);if(n>=1<>4;if(s===0){if(r<15)break;k+=16;continue}k+=r;var z=dctZigZag[k];component.blockData[offset+z]=receiveAndExtend(s);k++}}function decodeDCFirst(component,offset){var t=decodeHuffman(component.huffmanTableDC);var diff=t===0?0:receiveAndExtend(t)<0){eobrun--;return}var k=spectralStart,e=spectralEnd;while(k<=e){var rs=decodeHuffman(component.huffmanTableAC);var s=rs&15,r=rs>>4;if(s===0){if(r<15){eobrun=receive(r)+(1<>4;if(s===0){if(r<15){eobrun=receive(r)+(1<=65488&&marker<=65495){offset+=2}else{break}}return offset-startOffset}function quantizeAndInverse(component,blockBufferOffset,p){var qt=component.quantizationTable;var v0,v1,v2,v3,v4,v5,v6,v7,t;var i;for(i=0;i<64;i++){p[i]=component.blockData[blockBufferOffset+i]*qt[i]}for(i=0;i<8;++i){var row=8*i;if(p[1+row]===0&&p[2+row]===0&&p[3+row]===0&&p[4+row]===0&&p[5+row]===0&&p[6+row]===0&&p[7+row]===0){t=dctSqrt2*p[0+row]+512>>10;p[0+row]=t;p[1+row]=t;p[2+row]=t;p[3+row]=t;p[4+row]=t;p[5+row]=t;p[6+row]=t;p[7+row]=t;continue}v0=dctSqrt2*p[0+row]+128>>8;v1=dctSqrt2*p[4+row]+128>>8;v2=p[2+row];v3=p[6+row];v4=dctSqrt1d2*(p[1+row]-p[7+row])+128>>8;v7=dctSqrt1d2*(p[1+row]+p[7+row])+128>>8;v5=p[3+row]<<4;v6=p[5+row]<<4;t=v0-v1+1>>1;v0=v0+v1+1>>1;v1=t;t=v2*dctSin6+v3*dctCos6+128>>8;v2=v2*dctCos6-v3*dctSin6+128>>8;v3=t;t=v4-v6+1>>1;v4=v4+v6+1>>1;v6=t;t=v7+v5+1>>1;v5=v7-v5+1>>1;v7=t;t=v0-v3+1>>1;v0=v0+v3+1>>1;v3=t;t=v1-v2+1>>1;v1=v1+v2+1>>1;v2=t;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p[0+row]=v0+v7;p[7+row]=v0-v7;p[1+row]=v1+v6;p[6+row]=v1-v6;p[2+row]=v2+v5;p[5+row]=v2-v5;p[3+row]=v3+v4;p[4+row]=v3-v4}for(i=0;i<8;++i){var col=i;if(p[1*8+col]===0&&p[2*8+col]===0&&p[3*8+col]===0&&p[4*8+col]===0&&p[5*8+col]===0&&p[6*8+col]===0&&p[7*8+col]===0){t=dctSqrt2*p[i+0]+8192>>14;p[0*8+col]=t;p[1*8+col]=t;p[2*8+col]=t;p[3*8+col]=t;p[4*8+col]=t;p[5*8+col]=t;p[6*8+col]=t;p[7*8+col]=t;continue}v0=dctSqrt2*p[0*8+col]+2048>>12;v1=dctSqrt2*p[4*8+col]+2048>>12;v2=p[2*8+col];v3=p[6*8+col];v4=dctSqrt1d2*(p[1*8+col]-p[7*8+col])+2048>>12;v7=dctSqrt1d2*(p[1*8+col]+p[7*8+col])+2048>>12;v5=p[3*8+col];v6=p[5*8+col];t=v0-v1+1>>1;v0=v0+v1+1>>1;v1=t;t=v2*dctSin6+v3*dctCos6+2048>>12;v2=v2*dctCos6-v3*dctSin6+2048>>12;v3=t;t=v4-v6+1>>1;v4=v4+v6+1>>1;v6=t;t=v7+v5+1>>1;v5=v7-v5+1>>1;v7=t;t=v0-v3+1>>1;v0=v0+v3+1>>1;v3=t;t=v1-v2+1>>1;v1=v1+v2+1>>1;v2=t;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p[0*8+col]=v0+v7;p[7*8+col]=v0-v7;p[1*8+col]=v1+v6;p[6*8+col]=v1-v6;p[2*8+col]=v2+v5;p[5*8+col]=v2-v5;p[3*8+col]=v3+v4;p[4*8+col]=v3-v4}for(i=0;i<64;++i){var index=blockBufferOffset+i;var q=p[i];q=q<=-2056/component.bitConversion?0:q>=2024/component.bitConversion?255/component.bitConversion:q+2056/component.bitConversion>>4;component.blockData[index]=q}}function buildComponentData(frame,component){var lines=[];var blocksPerLine=component.blocksPerLine;var blocksPerColumn=component.blocksPerColumn;var samplesPerLine=blocksPerLine<<3;var computationBuffer=new Int32Array(64);var i,j,ll=0;for(var blockRow=0;blockRow=255?255:a|0}constructor.prototype={load:function load(path){var handleData=function(data){this.parse(data);if(this.onload)this.onload()}.bind(this);if(path.indexOf("data:")>-1){var offset=path.indexOf("base64,")+7;var data=atob(path.substring(offset));var arr=new Uint8Array(data.length);for(var i=data.length-1;i>=0;i--){arr[i]=data.charCodeAt(i)}handleData(data)}else{var xhr=new XMLHttpRequest;xhr.open("GET",path,true);xhr.responseType="arraybuffer";xhr.onload=function(){var data=new Uint8Array(xhr.response);handleData(data)}.bind(this);xhr.send(null)}},parse:function parse(data){function readUint16(){var value=data[offset]<<8|data[offset+1];offset+=2;return value}function readDataBlock(){var length=readUint16();var array=data.subarray(offset,offset+length-2);offset+=array.length;return array}function prepareComponents(frame){var mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH);var mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(var i=0;i>4===0){for(j=0;j<64;j++){var z=dctZigZag[j];tableData[z]=data[offset++]}}else if(quantizationTableSpec>>4===1){for(j=0;j<64;j++){var zz=dctZigZag[j];tableData[zz]=readUint16()}}else throw"DQT: invalid table spec";quantizationTables[quantizationTableSpec&15]=tableData}break;case 65472:case 65473:case 65474:if(frame){throw"Only single frame JPEGs supported"}readUint16();frame={};frame.extended=fileMarker===65473;frame.progressive=fileMarker===65474;frame.precision=data[offset++];frame.scanLines=readUint16();frame.samplesPerLine=readUint16();frame.components=[];frame.componentIds={};var componentsCount=data[offset++],componentId;var maxH=0,maxV=0;for(i=0;i>4;var v=data[offset+1]&15;if(maxH>4===0?huffmanTablesDC:huffmanTablesAC)[huffmanTableSpec&15]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:readUint16();resetInterval=readUint16();break;case 65498:var scanLength=readUint16();var selectorsCount=data[offset++];var components=[],component;for(i=0;i>4];component.huffmanTableAC=huffmanTablesAC[tableSpec&15];components.push(component)}var spectralStart=data[offset++];var spectralEnd=data[offset++];var successiveApproximation=data[offset++];var processed=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,successiveApproximation&15);offset+=processed;break;default:if(data[offset-3]==255&&data[offset-2]>=192&&data[offset-2]<=254){offset-=3;break}throw"unknown JPEG marker "+fileMarker.toString(16)}fileMarker=readUint16()}this.width=frame.samplesPerLine;this.height=frame.scanLines;this.jfif=jfif;this.adobe=adobe;this.components=[];switch(frame.components.length){case 1:this.colorspace=ColorSpace.Grayscale;break;case 3:if(this.adobe)this.colorspace=ColorSpace.AdobeRGB;else this.colorspace=ColorSpace.RGB;break;case 4:this.colorspace=ColorSpace.CYMK;break;default:this.colorspace=ColorSpace.Unknown}for(var i=0;i>24&255,tbox>>16&255,tbox>>8&255,tbox&255);warn("Unsupported header type "+tbox+" ("+headerType+")");break}if(jumpDataLength){position+=dataLength}}},parseImageProperties:function JpxImage_parseImageProperties(stream){var newByte=stream.getByte();while(newByte>=0){var oldByte=newByte;newByte=stream.getByte();var code=oldByte<<8|newByte;if(code===65361){stream.skip(4);var Xsiz=stream.getInt32()>>>0;var Ysiz=stream.getInt32()>>>0;var XOsiz=stream.getInt32()>>>0;var YOsiz=stream.getInt32()>>>0;stream.skip(16);var Csiz=stream.getUint16();this.width=Xsiz-XOsiz;this.height=Ysiz-YOsiz;this.componentsCount=Csiz;this.bitsPerComponent=8;return}}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function JpxImage_parseCodestream(data,start,end){var context={};try{var doNotRecover=false;var position=start;while(position+1>5;spqcds=[];while(j>3;spqcd.mu=0}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&7)<<8|data[j+1];j+=2}spqcds.push(spqcd)}qcd.SPqcds=spqcds;if(context.mainHeader){context.QCD=qcd}else{context.currentTile.QCD=qcd;context.currentTile.QCC=[]}break;case 65373:length=readUint16(data,position);var qcc={};j=position+2;var cqcc;if(context.SIZ.Csiz<257){cqcc=data[j++]}else{cqcc=readUint16(data,j);j+=2}sqcd=data[j++];switch(sqcd&31){case 0:spqcdSize=8;scalarExpounded=true;break;case 1:spqcdSize=16;scalarExpounded=false;break;case 2:spqcdSize=16;scalarExpounded=true;break;default:throw new Error("JPX Error: Invalid SQcd value "+sqcd)}qcc.noQuantization=spqcdSize===8;qcc.scalarExpounded=scalarExpounded;qcc.guardBits=sqcd>>5;spqcds=[];while(j>3;spqcd.mu=0}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&7)<<8|data[j+1];j+=2}spqcds.push(spqcd)}qcc.SPqcds=spqcds;if(context.mainHeader){context.QCC[cqcc]=qcc}else{context.currentTile.QCC[cqcc]=qcc}break;case 65362:length=readUint16(data,position);var cod={};j=position+2;var scod=data[j++];cod.entropyCoderWithCustomPrecincts=!!(scod&1);cod.sopMarkerUsed=!!(scod&2);cod.ephMarkerUsed=!!(scod&4);cod.progressionOrder=data[j++];cod.layersCount=readUint16(data,j);j+=2;cod.multipleComponentTransform=data[j++];cod.decompositionLevelsCount=data[j++];cod.xcb=(data[j++]&15)+2;cod.ycb=(data[j++]&15)+2;var blockStyle=data[j++];cod.selectiveArithmeticCodingBypass=!!(blockStyle&1);cod.resetContextProbabilities=!!(blockStyle&2);cod.terminationOnEachCodingPass=!!(blockStyle&4);cod.verticalyStripe=!!(blockStyle&8);cod.predictableTermination=!!(blockStyle&16);cod.segmentationSymbolUsed=!!(blockStyle&32);cod.reversibleTransformation=data[j++];if(cod.entropyCoderWithCustomPrecincts){var precinctsSizes=[];while(j>4})}cod.precinctsSizes=precinctsSizes}var unsupported=[];if(cod.selectiveArithmeticCodingBypass){unsupported.push("selectiveArithmeticCodingBypass")}if(cod.resetContextProbabilities){unsupported.push("resetContextProbabilities")}if(cod.terminationOnEachCodingPass){unsupported.push("terminationOnEachCodingPass")}if(cod.verticalyStripe){unsupported.push("verticalyStripe")}if(cod.predictableTermination){unsupported.push("predictableTermination")}if(unsupported.length>0){doNotRecover=true;throw new Error("JPX Error: Unsupported COD options ("+unsupported.join(", ")+")")}if(context.mainHeader){context.COD=cod}else{context.currentTile.COD=cod;context.currentTile.COC=[]}break;case 65424:length=readUint16(data,position);tile={};tile.index=readUint16(data,position+2);tile.length=readUint32(data,position+4);tile.dataEnd=tile.length+position-2;tile.partIndex=data[position+8];tile.partsCount=data[position+9];context.mainHeader=false;if(tile.partIndex===0){tile.COD=context.COD;tile.COC=context.COC.slice(0);tile.QCD=context.QCD;tile.QCC=context.QCC.slice(0)}context.currentTile=tile;break;case 65427:tile=context.currentTile;if(tile.partIndex===0){initializeTile(context,tile.index);buildPackets(context)}length=tile.dataEnd-position;parseTilePackets(context,data,position,length);break;case 65365:case 65367:case 65368:case 65380:length=readUint16(data,position);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is "+"not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+code.toString(16))}position+=length}}catch(e){if(doNotRecover||this.failOnCorruptedImage){throw e}else{warn("Trying to recover from "+e.message)}}this.tiles=transformComponents(context);this.width=context.SIZ.Xsiz-context.SIZ.XOsiz;this.height=context.SIZ.Ysiz-context.SIZ.YOsiz;this.componentsCount=context.SIZ.Csiz}};function calculateComponentDimensions(component,siz){component.x0=Math.ceil(siz.XOsiz/component.XRsiz);component.x1=Math.ceil(siz.Xsiz/component.XRsiz);component.y0=Math.ceil(siz.YOsiz/component.YRsiz);component.y1=Math.ceil(siz.Ysiz/component.YRsiz);component.width=component.x1-component.x0;component.height=component.y1-component.y0}function calculateTileGrids(context,components){var siz=context.SIZ;var tile,tiles=[];var numXtiles=Math.ceil((siz.Xsiz-siz.XTOsiz)/siz.XTsiz);var numYtiles=Math.ceil((siz.Ysiz-siz.YTOsiz)/siz.YTsiz);for(var q=0;q0?Math.min(codOrCoc.xcb,result.PPx-1):Math.min(codOrCoc.xcb,result.PPx);result.ycb_=r>0?Math.min(codOrCoc.ycb,result.PPy-1):Math.min(codOrCoc.ycb,result.PPy);return result}function buildPrecincts(context,resolution,dimensions){var precinctWidth=1<resolution.trx0?Math.ceil(resolution.trx1/precinctWidth)-Math.floor(resolution.trx0/precinctWidth):0;var numprecinctshigh=resolution.try1>resolution.try0?Math.ceil(resolution.try1/precinctHeight)-Math.floor(resolution.try0/precinctHeight):0;var numprecincts=numprecinctswide*numprecinctshigh;resolution.precinctParameters={precinctWidth:precinctWidth,precinctHeight:precinctHeight,numprecinctswide:numprecinctswide,numprecinctshigh:numprecinctshigh,numprecincts:numprecincts,precinctWidthInSubband:precinctWidthInSubband,precinctHeightInSubband:precinctHeightInSubband}}function buildCodeblocks(context,subband,dimensions){var xcb_=dimensions.xcb_;var ycb_=dimensions.ycb_;var codeblockWidth=1<>xcb_;var cby0=subband.tby0>>ycb_;var cbx1=subband.tbx1+codeblockWidth-1>>xcb_;var cby1=subband.tby1+codeblockHeight-1>>ycb_;var precinctParameters=subband.resolution.precinctParameters;var codeblocks=[];var precincts=[];var i,j,codeblock,precinctNumber;for(j=cby0;jprecinct.cbxMax){precinct.cbxMax=i}if(jprecinct.cbyMax){precinct.cbyMax=j}}else{precincts[precinctNumber]=precinct={cbxMin:i,cbyMin:j,cbxMax:i,cbyMax:j}}codeblock.precinct=precinct}}subband.codeblockParameters={codeblockWidth:xcb_,codeblockHeight:ycb_,numcodeblockwide:cbx1-cbx0+1,numcodeblockhigh:cby1-cby0+1};subband.codeblocks=codeblocks;subband.precincts=precincts}function createPacket(resolution,precinctNumber,layerNumber){var precinctCodeblocks=[];var subbands=resolution.subbands;for(var i=0,ii=subbands.length;icomponent.codingStyleParameters.decompositionLevelsCount){continue}var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;for(;kcomponent.codingStyleParameters.decompositionLevelsCount){continue}var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;for(;kcomponent.codingStyleParameters.decompositionLevelsCount){continue}var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;if(p>=numprecincts){continue}for(;l=0;--r){var resolution=component.resolutions[r];var widthCurrentResolution=scale*resolution.precinctParameters.precinctWidth;var heightCurrentResolution=scale*resolution.precinctParameters.precinctHeight;minWidthCurrentComponent=Math.min(minWidthCurrentComponent,widthCurrentResolution);minHeightCurrentComponent=Math.min(minHeightCurrentComponent,heightCurrentResolution);maxNumWideCurrentComponent=Math.max(maxNumWideCurrentComponent,resolution.precinctParameters.numprecinctswide);maxNumHighCurrentComponent=Math.max(maxNumHighCurrentComponent,resolution.precinctParameters.numprecinctshigh);sizePerResolution[r]={width:widthCurrentResolution,height:heightCurrentResolution};scale<<=1}minWidth=Math.min(minWidth,minWidthCurrentComponent);minHeight=Math.min(minHeight,minHeightCurrentComponent);maxNumWide=Math.max(maxNumWide,maxNumWideCurrentComponent);maxNumHigh=Math.max(maxNumHigh,maxNumHighCurrentComponent);sizePerComponent[c]={resolutions:sizePerResolution,minWidth:minWidthCurrentComponent,minHeight:minHeightCurrentComponent,maxNumWide:maxNumWideCurrentComponent,maxNumHigh:maxNumHighCurrentComponent}}return{components:sizePerComponent,minWidth:minWidth,minHeight:minHeight,maxNumWide:maxNumWide,maxNumHigh:maxNumHigh}}function buildPackets(context){var siz=context.SIZ;var tileIndex=context.currentTile.index;var tile=context.tiles[tileIndex];var componentsCount=siz.Csiz;for(var c=0;c=data.length){throw new Error("Unexpected EOF")}var b=data[offset+position];position++;if(skipNextBit){buffer=buffer<<7|b;bufferSize+=7;skipNextBit=false}else{buffer=buffer<<8|b;bufferSize+=8}if(b===255){skipNextBit=true}}bufferSize-=count;return buffer>>>bufferSize&(1<=data.length){return}if(inclusionTree.isAboveThreshold()){break}if(inclusionTree.isKnown()){inclusionTree.nextLevel();continue}if(readBits(1)){inclusionTree.setKnown();if(inclusionTree.isLeaf()){codeblock.included=true;codeblockIncluded=firstTimeInclusion=true;break}else{inclusionTree.nextLevel()}}else{inclusionTree.incrementValue()}}}if(!codeblockIncluded){continue}if(firstTimeInclusion){zeroBitPlanesTree=precinct.zeroBitPlanesTree;zeroBitPlanesTree.reset(codeblockColumn,codeblockRow);while(true){if(position>=data.length){return}if(readBits(1)){valueReady=!zeroBitPlanesTree.nextLevel();if(valueReady){break}}else{zeroBitPlanesTree.incrementValue()}}codeblock.zeroBitPlanes=zeroBitPlanesTree.value}var codingpasses=readCodingpasses();while(readBits(1)){codeblock.Lblock++}var codingpassesLog2=log2(codingpasses);var bits=(codingpasses<1<0){var packetItem=queue.shift();codeblock=packetItem.codeblock;if(codeblock["data"]===undefined){codeblock.data=[]}codeblock.data.push({data:data,start:offset+position,end:offset+position+packetItem.dataLength,codingpasses:packetItem.codingpasses});position+=packetItem.dataLength}}catch(e){return}}return position}function copyCoefficients(coefficients,levelWidth,levelHeight,subband,delta,mb,reversible,segmentationSymbolUsed){var x0=subband.tbx0;var y0=subband.tby0;var width=subband.tbx1-subband.tbx0;var codeblocks=subband.codeblocks;var right=subband.type.charAt(0)==="H"?1:0;var bottom=subband.type.charAt(1)==="H"?levelWidth:0;for(var i=0,ii=codeblocks.length;i=mb){coefficients[pos]=n}else{coefficients[pos]=n*(1<0?1-i:0)}else{mu=spqcds[b].mu;epsilon=spqcds[b].epsilon;b++}var subband=resolution.subbands[j];var gainLog2=SubbandsGainLog2[subband.type];var delta=reversible?1:Math.pow(2,precision+gainLog2-epsilon)*(1+mu/2048);var mb=guardBits+epsilon-1;copyCoefficients(coefficients,width,height,subband,delta,mb,reversible,segmentationSymbolUsed)}subbandCoefficients.push({width:width,height:height,items:coefficients})}var result=transform.calculate(subbandCoefficients,component.tcx0,component.tcy0);return{left:component.tcx0,top:component.tcy0,width:result.width,height:result.height,items:result.items}}function transformComponents(context){var siz=context.SIZ;var components=context.components;var componentsCount=siz.Csiz;var resultImages=[];for(var i=0,ii=context.tiles.length;i=max?255:r>>shift;out[pos++]=g<=0?0:g>=max?255:g>>shift;out[pos++]=b<=0?0:b>=max?255:b>>shift}}else{for(j=0;j>2);r=g+y2;b=g+y1;out[pos++]=r<=0?0:r>=max?255:r>>shift;out[pos++]=g<=0?0:g>=max?255:g>>shift;out[pos++]=b<=0?0:b>=max?255:b>>shift}}if(fourComponents){for(j=0,pos=3;j=maxK?255:k+offset>>shift}}}else{for(c=0;c=max?255:val+offset>>shift;pos+=componentsCount}}else{var isSigned=components[c].isSigned;var items=transformedTiles[c].items;if(isSigned){for(pos=c,j=0,jj=items.length;j>=1;j>>=1;currentLevel++}currentLevel--;level=this.levels[currentLevel];level.items[level.index]=value;this.currentLevel=currentLevel;delete this.value},incrementValue:function TagTree_incrementValue(){var level=this.levels[this.currentLevel];level.items[level.index]++},nextLevel:function TagTree_nextLevel(){var currentLevel=this.currentLevel;var level=this.levels[currentLevel];var value=level.items[level.index];currentLevel--;if(currentLevel<0){this.value=value;return false}this.currentLevel=currentLevel;level=this.levels[currentLevel];level.items[level.index]=value;return true}};return TagTree}();var InclusionTree=function InclusionTreeClosure(){function InclusionTree(width,height){var levelsLength=log2(Math.max(width,height))+1;this.levels=[];for(var i=0;i>=1;j>>=1;currentLevel++}this.currentLevel=this.levels.length-1;this.minValue=this.levels[this.currentLevel].items[0];return},incrementValue:function InclusionTree_incrementValue(){var level=this.levels[this.currentLevel];level.items[level.index]=level.items[level.index]+1;if(level.items[level.index]>this.minValue){this.minValue=level.items[level.index]}},nextLevel:function InclusionTree_nextLevel(){var currentLevel=this.currentLevel;currentLevel--;if(currentLevel<0){return false}else{this.currentLevel=currentLevel;var level=this.levels[currentLevel];if(level.items[level.index]this.minValue){this.minValue=level.items[level.index]}return true}},isLeaf:function InclusionTree_isLeaf(){return this.currentLevel===0},isAboveThreshold:function InclusionTree_isAboveThreshold(){var levelindex=this.currentLevel;var level=this.levels[levelindex];return level.items[level.index]>this.currentStopValue},isKnown:function InclusionTree_isKnown(){var levelindex=this.currentLevel;var level=this.levels[levelindex];return level.status[level.index]>0},setKnown:function InclusionTree_setKnown(){var levelindex=this.currentLevel;var level=this.levels[levelindex];level.status[level.index]=1;return}};return InclusionTree}();var BitModel=function BitModelClosure(){var UNIFORM_CONTEXT=17;var RUNLENGTH_CONTEXT=18;var LLAndLHContextsLabel=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]);var HLContextLabel=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]);var HHContextLabel=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function BitModel(width,height,subband,zeroBitPlanes,mb){this.width=width;this.height=height;this.contextLabelTable=subband==="HH"?HHContextLabel:subband==="HL"?HLContextLabel:LLAndLHContextsLabel;var coefficientCount=width*height;this.neighborsSignificance=new Uint8Array(coefficientCount);this.coefficentsSign=new Uint8Array(coefficientCount);this.coefficentsMagnitude=mb>14?new Uint32Array(coefficientCount):mb>6?new Uint16Array(coefficientCount):new Uint8Array(coefficientCount);this.processingFlags=new Uint8Array(coefficientCount);var bitsDecoded=new Uint8Array(coefficientCount);if(zeroBitPlanes!==0){for(var i=0;i0;var right=column+10){i=index-width;if(left){neighborsSignificance[i-1]+=16}if(right){neighborsSignificance[i+1]+=16}neighborsSignificance[i]+=4}if(row+1=height){break}processingFlags[index]&=processedInverseMask;if(coefficentsMagnitude[index]||!neighborsSignificance[index]){continue}var contextLabel=labels[neighborsSignificance[index]];var decision=decoder.readBit(contexts,contextLabel);if(decision){var sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask}bitsDecoded[index]++;processingFlags[index]|=processedMask}}}},decodeSignBit:function BitModel_decodeSignBit(row,column,index){var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var coefficentsSign=this.coefficentsSign;var contribution,sign0,sign1,significance1;var contextLabel,decoded;significance1=column>0&&coefficentsMagnitude[index-1]!==0;if(column+10&&coefficentsMagnitude[index-width]!==0;if(row+1=0){contextLabel=9+contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)}else{contextLabel=9-contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)^1}return decoded},runMagnitudeRefinementPass:function BitModel_runMagnitudeRefinementPass(){var decoder=this.decoder;var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var neighborsSignificance=this.neighborsSignificance;var contexts=this.contexts;var bitsDecoded=this.bitsDecoded;var processingFlags=this.processingFlags;var processedMask=1;var firstMagnitudeBitMask=2;var length=width*height;var width4=width*4;for(var index0=0,indexNext;index0>1;offset=offset|0;var j,n,current,next;var alpha=-1.586134342059924;var beta=-.052980118572961;var gamma=.882911075530934;var delta=.443506852043971;var K=1.230174104914001;var K_=1/K;j=offset-3;for(n=len+4;n--;j+=2){x[j]*=K_}j=offset-2;current=delta*x[j-1];for(n=len+3;n--;j+=2){next=delta*x[j+1];x[j]=K*x[j]-current-next;if(n--){j+=2;current=delta*x[j+1];x[j]=K*x[j]-current-next}else{break}}j=offset-1;current=gamma*x[j-1];for(n=len+2;n--;j+=2){next=gamma*x[j+1];x[j]-=current+next;if(n--){j+=2;current=gamma*x[j+1];x[j]-=current+next}else{break}}j=offset;current=beta*x[j-1];for(n=len+1;n--;j+=2){next=beta*x[j+1];x[j]-=current+next;if(n--){j+=2;current=beta*x[j+1];x[j]-=current+next}else{break}}if(len!==0){j=offset+1;current=alpha*x[j-1];for(n=len;n--;j+=2){next=alpha*x[j+1];x[j]-=current+next;if(n--){j+=2;current=alpha*x[j+1];x[j]-=current+next}else{break}}}};return IrreversibleTransform}();var ReversibleTransform=function ReversibleTransformClosure(){function ReversibleTransform(){Transform.call(this)}ReversibleTransform.prototype=Object.create(Transform.prototype);ReversibleTransform.prototype.filter=function reversibleTransformFilter(x,offset,length){var len=length>>1;offset=offset|0;var j,n;for(j=offset,n=len+1;n--;j+=2){x[j]-=x[j-1]+x[j+1]+2>>2}for(j=offset+1,n=len;n--;j+=2){x[j]+=x[j-1]+x[j+1]>>1}};return ReversibleTransform}();return JpxImage}();"use strict";var ArithmeticDecoder=function ArithmeticDecoderClosure(){var QeTable=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];function ArithmeticDecoder(data,start,end){this.data=data;this.bp=start;this.dataEnd=end;this.chigh=data[start];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}ArithmeticDecoder.prototype={byteIn:function ArithmeticDecoder_byteIn(){var data=this.data;var bp=this.bp;if(data[bp]===255){var b1=data[bp+1];if(b1>143){this.clow+=65280;this.ct=8}else{bp++;this.clow+=data[bp]<<9;this.ct=7;this.bp=bp}}else{bp++;this.clow+=bp65535){this.chigh+=this.clow>>16;this.clow&=65535}},readBit:function ArithmeticDecoder_readBit(contexts,pos){var cx_index=contexts[pos]>>1,cx_mps=contexts[pos]&1;var qeTableIcx=QeTable[cx_index];var qeIcx=qeTableIcx.qe;var d;var a=this.a-qeIcx;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while((a&32768)===0);this.a=a;contexts[pos]=cx_index<<1|cx_mps;return d}};return ArithmeticDecoder}();"use strict";var globalScope=typeof window==="undefined"?this:window;var isWorker=typeof window==="undefined";var FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];var TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};var ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};var AnnotationType={WIDGET:1,TEXT:2,LINK:3};var StreamType={UNKNOWN:0,FLATE:1,LZW:2,DCT:3,JPX:4,JBIG:5,A85:6,AHX:7,CCF:8,RL:9};var FontType={UNKNOWN:0,TYPE1:1,TYPE1C:2,CIDFONTTYPE0:3,CIDFONTTYPE0C:4,TRUETYPE:5,CIDFONTTYPE2:6,TYPE3:7,OPENTYPE:8,TYPE0:9,MMTYPE1:10};if(!globalScope.PDFJS){globalScope.PDFJS={}}var PDFJS=PDFJS||{};PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var OPS=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};function info(msg){if(PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos){console.log("Info: "+msg)}}function warn(msg){if(PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings){console.log("Warning: "+msg)}}function error(msg){if(arguments.length>1){var logArguments=["Error:"];logArguments.push.apply(logArguments,arguments);console.log.apply(console,logArguments);msg=[].join.call(arguments," ")}else{console.log("Error: "+msg)}console.log(backtrace());UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown);throw new Error(msg)}function backtrace(){try{throw new Error}catch(e){return e.stack?e.stack.split("\n").slice(2).join("\n"):""}}function assert(cond,msg){if(!cond){error(msg)}}var UNSUPPORTED_FEATURES=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"};var UnsupportedManager=PDFJS.UnsupportedManager=function UnsupportedManagerClosure(){var listeners=[];return{listen:function(cb){listeners.push(cb)},notify:function(featureId){warn('Unsupported feature "'+featureId+'"');for(var i=0,ii=listeners.length;i=0?i:pathLength;i=baseUrl.lastIndexOf("?",pathLength);pathLength=i>=0?i:pathLength;var prefixLength=baseUrl.lastIndexOf("/",pathLength);return baseUrl.substring(0,prefixLength+1)+url}}function isValidUrl(url,allowRelative){if(!url){return false}var protocol=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url);if(!protocol){return allowRelative}protocol=protocol[0].toLowerCase();switch(protocol){case"http":case"https":case"ftp":case"mailto":case"tel":return true;default:return false}}PDFJS.isValidUrl=isValidUrl;function shadow(obj,prop,value){Object.defineProperty(obj,prop,{value:value,enumerable:true,configurable:true,writable:false});return value}PDFJS.shadow=shadow;var PasswordResponses=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var PasswordException=function PasswordExceptionClosure(){function PasswordException(msg,code){this.name="PasswordException";this.message=msg;this.code=code}PasswordException.prototype=new Error;PasswordException.constructor=PasswordException;return PasswordException}();PDFJS.PasswordException=PasswordException;var UnknownErrorException=function UnknownErrorExceptionClosure(){function UnknownErrorException(msg,details){this.name="UnknownErrorException";this.message=msg;this.details=details}UnknownErrorException.prototype=new Error;UnknownErrorException.constructor=UnknownErrorException;return UnknownErrorException}();PDFJS.UnknownErrorException=UnknownErrorException;var InvalidPDFException=function InvalidPDFExceptionClosure(){function InvalidPDFException(msg){this.name="InvalidPDFException";this.message=msg}InvalidPDFException.prototype=new Error;InvalidPDFException.constructor=InvalidPDFException;return InvalidPDFException}();PDFJS.InvalidPDFException=InvalidPDFException;var MissingPDFException=function MissingPDFExceptionClosure(){function MissingPDFException(msg){this.name="MissingPDFException";this.message=msg}MissingPDFException.prototype=new Error;MissingPDFException.constructor=MissingPDFException;return MissingPDFException}();PDFJS.MissingPDFException=MissingPDFException;var UnexpectedResponseException=function UnexpectedResponseExceptionClosure(){function UnexpectedResponseException(msg,status){this.name="UnexpectedResponseException";this.message=msg;this.status=status}UnexpectedResponseException.prototype=new Error;UnexpectedResponseException.constructor=UnexpectedResponseException;return UnexpectedResponseException}();PDFJS.UnexpectedResponseException=UnexpectedResponseException;var NotImplementedException=function NotImplementedExceptionClosure(){function NotImplementedException(msg){this.message=msg}NotImplementedException.prototype=new Error;NotImplementedException.prototype.name="NotImplementedException";NotImplementedException.constructor=NotImplementedException;return NotImplementedException}();var MissingDataException=function MissingDataExceptionClosure(){function MissingDataException(begin,end){this.begin=begin;this.end=end;this.message="Missing data ["+begin+", "+end+")"}MissingDataException.prototype=new Error;MissingDataException.prototype.name="MissingDataException";MissingDataException.constructor=MissingDataException;return MissingDataException}();var XRefParseException=function XRefParseExceptionClosure(){function XRefParseException(msg){this.message=msg}XRefParseException.prototype=new Error;XRefParseException.prototype.name="XRefParseException";XRefParseException.constructor=XRefParseException;return XRefParseException}();function bytesToString(bytes){assert(bytes!==null&&typeof bytes==="object"&&bytes.length!==undefined,"Invalid argument for bytesToString");var length=bytes.length;var MAX_ARGUMENT_COUNT=8192;if(length>24&255,value>>16&255,value>>8&255,value&255)}function log2(x){var n=1,i=0;while(x>n){n<<=1;i++}return i}function readInt8(data,start){return data[start]<<24>>24}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isLittleEndian(){var buffer8=new Uint8Array(2);buffer8[0]=1;var buffer16=new Uint16Array(buffer8.buffer);return buffer16[0]===1}Object.defineProperty(PDFJS,"isLittleEndian",{configurable:true,get:function PDFJS_isLittleEndian(){return shadow(PDFJS,"isLittleEndian",isLittleEndian())}});function hasCanvasTypedArrays(){var canvas=document.createElement("canvas");canvas.width=canvas.height=1;var ctx=canvas.getContext("2d");var imageData=ctx.createImageData(1,1);return typeof imageData.data.buffer!=="undefined"}Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:true,get:function PDFJS_hasCanvasTypedArrays(){return shadow(PDFJS,"hasCanvasTypedArrays",hasCanvasTypedArrays())}});var Uint32ArrayView=function Uint32ArrayViewClosure(){function Uint32ArrayView(buffer,length){this.buffer=buffer;this.byteLength=buffer.length;this.length=length===undefined?this.byteLength>>2:length;ensureUint32ArrayViewProps(this.length)}Uint32ArrayView.prototype=Object.create(null);var uint32ArrayViewSetters=0;function createUint32ArrayProp(index){return{get:function(){var buffer=this.buffer,offset=index<<2;return(buffer[offset]|buffer[offset+1]<<8|buffer[offset+2]<<16|buffer[offset+3]<<24)>>>0},set:function(value){var buffer=this.buffer,offset=index<<2;buffer[offset]=value&255;buffer[offset+1]=value>>8&255;buffer[offset+2]=value>>16&255;buffer[offset+3]=value>>>24&255}}}function ensureUint32ArrayViewProps(length){while(uint32ArrayViewSettersrect[2]){r[0]=rect[2];r[2]=rect[0]}if(rect[1]>rect[3]){r[1]=rect[3];r[3]=rect[1]}return r};Util.intersect=function Util_intersect(rect1,rect2){function compare(a,b){return a-b}var orderedX=[rect1[0],rect1[2],rect2[0],rect2[2]].sort(compare),orderedY=[rect1[1],rect1[3],rect2[1],rect2[3]].sort(compare),result=[];rect1=Util.normalizeRect(rect1);rect2=Util.normalizeRect(rect2);if(orderedX[0]===rect1[0]&&orderedX[1]===rect2[0]||orderedX[0]===rect2[0]&&orderedX[1]===rect1[0]){result[0]=orderedX[1];result[2]=orderedX[2]}else{return false}if(orderedY[0]===rect1[1]&&orderedY[1]===rect2[1]||orderedY[0]===rect2[1]&&orderedY[1]===rect1[1]){result[1]=orderedY[1];result[3]=orderedY[2]}else{return false}return result};Util.sign=function Util_sign(num){return num<0?-1:1};Util.appendToArray=function Util_appendToArray(arr1,arr2){Array.prototype.push.apply(arr1,arr2)};Util.prependToArray=function Util_prependToArray(arr1,arr2){Array.prototype.unshift.apply(arr1,arr2)};Util.extendObj=function extendObj(obj1,obj2){for(var key in obj2){obj1[key]=obj2[key]}};Util.getInheritableProperty=function Util_getInheritableProperty(dict,name){while(dict&&!dict.has(name)){dict=dict.get("Parent")}if(!dict){return null}return dict.get(name)};Util.inherit=function Util_inherit(sub,base,prototype){sub.prototype=Object.create(base.prototype);sub.prototype.constructor=sub;for(var prop in prototype){sub.prototype[prop]=prototype[prop]}};Util.loadScript=function Util_loadScript(src,callback){var script=document.createElement("script");var loaded=false;script.setAttribute("src",src);if(callback){script.onload=function(){if(!loaded){callback()}loaded=true}}document.getElementsByTagName("head")[0].appendChild(script)};return Util}();var PageViewport=PDFJS.PageViewport=function PageViewportClosure(){function PageViewport(viewBox,scale,rotation,offsetX,offsetY,dontFlip){this.viewBox=viewBox;this.scale=scale;this.rotation=rotation;this.offsetX=offsetX;this.offsetY=offsetY;var centerX=(viewBox[2]+viewBox[0])/2;var centerY=(viewBox[3]+viewBox[1])/2;var rotateA,rotateB,rotateC,rotateD;rotation=rotation%360;rotation=rotation<0?rotation+360:rotation;switch(rotation){case 180:rotateA=-1;rotateB=0;rotateC=0;rotateD=1;break;case 90:rotateA=0;rotateB=1;rotateC=1;rotateD=0;break;case 270:rotateA=0;rotateB=-1;rotateC=-1;rotateD=0;break;default:rotateA=1;rotateB=0;rotateC=0;rotateD=-1;break}if(dontFlip){rotateC=-rotateC;rotateD=-rotateD}var offsetCanvasX,offsetCanvasY;var width,height;if(rotateA===0){offsetCanvasX=Math.abs(centerY-viewBox[1])*scale+offsetX;offsetCanvasY=Math.abs(centerX-viewBox[0])*scale+offsetY;width=Math.abs(viewBox[3]-viewBox[1])*scale;height=Math.abs(viewBox[2]-viewBox[0])*scale}else{offsetCanvasX=Math.abs(centerX-viewBox[0])*scale+offsetX;offsetCanvasY=Math.abs(centerY-viewBox[1])*scale+offsetY;width=Math.abs(viewBox[2]-viewBox[0])*scale;height=Math.abs(viewBox[3]-viewBox[1])*scale}this.transform=[rotateA*scale,rotateB*scale,rotateC*scale,rotateD*scale,offsetCanvasX-rotateA*scale*centerX-rotateC*scale*centerY,offsetCanvasY-rotateB*scale*centerX-rotateD*scale*centerY];this.width=width;this.height=height;this.fontScale=scale}PageViewport.prototype={clone:function PageViewPort_clone(args){args=args||{};var scale="scale"in args?args.scale:this.scale;var rotation="rotation"in args?args.rotation:this.rotation;return new PageViewport(this.viewBox.slice(),scale,rotation,this.offsetX,this.offsetY,args.dontFlip)},convertToViewportPoint:function PageViewport_convertToViewportPoint(x,y){return Util.applyTransform([x,y],this.transform)},convertToViewportRectangle:function PageViewport_convertToViewportRectangle(rect){var tl=Util.applyTransform([rect[0],rect[1]],this.transform);var br=Util.applyTransform([rect[2],rect[3]],this.transform);return[tl[0],tl[1],br[0],br[1]]},convertToPdfPoint:function PageViewport_convertToPdfPoint(x,y){return Util.applyInverseTransform([x,y],this.transform)}};return PageViewport}();var PDFStringTranslateTable=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToPDFString(str){var i,n=str.length,strBuf=[];if(str[0]==="þ"&&str[1]==="ÿ"){for(i=2;i0){var handler=this.handlers.shift();var nextStatus=handler.thisPromise._status;var nextValue=handler.thisPromise._value;try{if(nextStatus===STATUS_RESOLVED){if(typeof handler.onResolve==="function"){nextValue=handler.onResolve(nextValue)}}else if(typeof handler.onReject==="function"){nextValue=handler.onReject(nextValue);nextStatus=STATUS_RESOLVED;if(handler.thisPromise._unhandledRejection){this.removeUnhandeledRejection(handler.thisPromise)}}}catch(ex){nextStatus=STATUS_REJECTED;nextValue=ex}handler.nextPromise._updateStatus(nextStatus,nextValue);if(Date.now()>=timeoutAt){break}}if(this.handlers.length>0){setTimeout(this.runHandlers.bind(this),0);return}this.running=false},addUnhandledRejection:function addUnhandledRejection(promise){this.unhandledRejections.push({promise:promise,time:Date.now()});this.scheduleRejectionCheck()},removeUnhandeledRejection:function removeUnhandeledRejection(promise){promise._unhandledRejection=false;for(var i=0;iREJECTION_TIMEOUT){var unhandled=this.unhandledRejections[i].promise._value;var msg="Unhandled rejection: "+unhandled;if(unhandled.stack){msg+="\n"+unhandled.stack}warn(msg);this.unhandledRejections.splice(i);i--}}if(this.unhandledRejections.length){this.scheduleRejectionCheck()}}.bind(this),REJECTION_TIMEOUT)}};function Promise(resolver){this._status=STATUS_PENDING;this._handlers=[];try{resolver.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(e){this._reject(e)}}Promise.all=function Promise_all(promises){var resolveAll,rejectAll;var deferred=new Promise(function(resolve,reject){resolveAll=resolve;rejectAll=reject});var unresolved=promises.length;var results=[];if(unresolved===0){resolveAll(results);return deferred}function reject(reason){if(deferred._status===STATUS_REJECTED){return}results=[];rejectAll(reason)}for(var i=0,ii=promises.length;ilongest){longest=name.length}}for(i=0,ii=times.length;i>2,d2=(b1&3)<<4|b2>>4;var d3=i+1>6:64;var d4=i+2{"use strict";var o={d:(e,n)=>{for(var t in n)o.o(n,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{characterSets:()=>i,convertBytes:()=>function(e,n,t){return g(y,r,e,n,t)},convertBytesPromise:()=>function(e,n,t){return g(P,m,e,n,t)}});var n={codeElement:"G0",escapeSequence:[27,40,66],encoding:"windows-1252",isASCII:!0,bytesPerCodePoint:1},i={"ISO_IR 6":{encoding:"utf-8"},"ISO_IR 100":{encoding:"windows-1252"},"ISO_IR 101":{encoding:"iso-8859-2"},"ISO_IR 109":{encoding:"iso-8859-3"},"ISO_IR 110":{encoding:"iso-8859-4"},"ISO_IR 144":{encoding:"iso-8859-5"},"ISO_IR 127":{encoding:"iso-8859-6"},"ISO_IR 126":{encoding:"iso-8859-7"},"ISO_IR 138":{encoding:"iso-8859-8"},"ISO_IR 148":{encoding:"windows-1254"},"ISO_IR 13":{encoding:"shift-jis"},"ISO_IR 166":{encoding:"tis-620"},"ISO 2022 IR 6":{extension:!0,elements:[n]},"ISO 2022 IR 100":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,65],encoding:"windows-1252",bytesPerCodePoint:1}]},"ISO 2022 IR 101":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,66],encoding:"iso-8859-2",bytesPerCodePoint:1}]},"ISO 2022 IR 109":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,67],encoding:"iso-8859-3",bytesPerCodePoint:1}]},"ISO 2022 IR 110":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,68],encoding:"iso-8859-4",bytesPerCodePoint:1}]},"ISO 2022 IR 144":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,76],encoding:"iso-8859-5",bytesPerCodePoint:1}]},"ISO 2022 IR 127":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,71],encoding:"iso-8859-6",bytesPerCodePoint:1}]},"ISO 2022 IR 126":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,70],encoding:"iso-8859-7",bytesPerCodePoint:1}]},"ISO 2022 IR 138":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,72],encoding:"iso-8859-8",bytesPerCodePoint:1}]},"ISO 2022 IR 148":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,77],encoding:"windows-1254",bytesPerCodePoint:1}]},"ISO 2022 IR 13":{extension:!0,elements:[{codeElement:"G0",escapeSequence:[27,40,74],encoding:"shift-jis",bytesPerCodePoint:1},{codeElement:"G1",escapeSequence:[27,41,73],encoding:"shift-jis",bytesPerCodePoint:1}]},"ISO 2022 IR 166":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,84],encoding:"tis-620",bytesPerCodePoint:1}]},"ISO 2022 IR 87":{extension:!0,multiByte:!0,elements:[{codeElement:"G0",escapeSequence:[27,36,66],encoding:"euc-jp",setHighBit:!0,bytesPerCodePoint:2}]},"ISO 2022 IR 159":{extension:!0,multiByte:!0,elements:[{codeElement:"G0",escapeSequence:[27,36,40,68],encoding:"euc-jp",isJISX0212:!0,bytesPerCodePoint:2}]},"ISO 2022 IR 149":{extension:!0,multiByte:!0,elements:[{codeElement:"G1",escapeSequence:[27,36,41,67],encoding:"euc-kr",bytesPerCodePoint:2}]},"ISO 2022 IR 58":{extension:!0,multiByte:!0,elements:[{codeElement:"G1",escapeSequence:[27,36,41,65],encoding:"gb18030",bytesPerCodePoint:2}]},"ISO_IR 192":{encoding:"utf-8",multiByte:!0},GB18030:{encoding:"gb18030",multiByte:!0},GBK:{encoding:"gbk",multiByte:!0}},l=27,c=10,s=12,u=13,d=9,a=92,f=61,I=94;function S(e){return e.replace(/~/g,"‾").replace(/\\/g,"Â¥")}function r(e,n,t,o,r){r=b(n,t,o,r);return e+y(n.encoding,r)}function m(e,t,n,o,r){var i=b(t,n,o,r);return(""===e?Promise.resolve(""):e).then(function(n){return P(t.encoding,i).then(function(e){return n+e})})}function g(e,n,t,o,r){!function(e,n){if(n&&!(n instanceof Uint8Array))throw new Error("bytes must be a Uint8Array");if(e&&"string"!=typeof e)throw new Error("specificCharacterSet must be a string")}(t,o);t=function(e){e=e?e.split("\\").map(function(e){return e.trim().toUpperCase()}):[""];""===e[0]&&(e[0]=1=n.length)return!1;if(n[t+o]!==e[o])return!1}return!0}(c.escapeSequence,e,n))return c}throw new Error("Unknown escape sequence encountered at byte "+n)}(n,d,e),c[a.codeElement]=a,s+=a.escapeSequence.length)}return r}(t.map(function(e){return i[e]}),o,function(e){var n=(e||"").trim().toUpperCase(),e=[c,s,u,d];["UT","ST","LT"].includes(n)||e.push(a);"PN"===n&&(e.push(f),e.push(I));return e}(r.vr),n)}var p={};function y(e,n){var t=p[e];return t||(t=new TextDecoder(e),p[e]=t="shift-jis"===e?{textDecoder:t,decode:function(e){return S(t.decode(e))}}:t),t.decode(n)}function P(o,r){return new Promise(function(e){var n=new FileReader;n.onload="shift-jis"===o?function(){return e(S(n.result))}:function(){return e(n.result)};var t=new Blob([r]);n.readAsText(t,o)})}function h(e,n){return 127>>1|(i&21845)<<1;x=(x&52428)>>>2|(x&13107)<<2;x=(x&61680)>>>4|(x&3855)<<4;rev[i]=((x&65280)>>>8|(x&255)<<8)>>>1}var hMap=function(cd,mb,r){var s=cd.length;var i=0;var l=new u16(mb);for(;i>>rvb]=sv}}}}else{co=new u16(s);for(i=0;i>>15-cd[i]}}}return co};var flt=new u8(288);for(var i=0;i<144;++i)flt[i]=8;for(var i=144;i<256;++i)flt[i]=9;for(var i=256;i<280;++i)flt[i]=7;for(var i=280;i<288;++i)flt[i]=8;var fdt=new u8(32);for(var i=0;i<32;++i)fdt[i]=5;var flm=hMap(flt,9,0),flrm=hMap(flt,9,1);var fdm=hMap(fdt,5,0),fdrm=hMap(fdt,5,1);var max=function(a){var m=a[0];for(var i=1;im)m=a[i]}return m};var bits=function(d,p,m){var o=p/8|0;return(d[o]|d[o+1]<<8)>>(p&7)&m};var bits16=function(d,p){var o=p/8|0;return(d[o]|d[o+1]<<8|d[o+2]<<16)>>(p&7)};var shft=function(p){return(p+7)/8|0};var slc=function(v,s,e){if(s==null||s<0)s=0;if(e==null||e>v.length)e=v.length;var n=new(v.BYTES_PER_ELEMENT==2?u16:v.BYTES_PER_ELEMENT==4?u32:u8)(e-s);n.set(v.subarray(s,e));return n};exports.FlateErrorCode={UnexpectedEOF:0,InvalidBlockType:1,InvalidLengthLiteral:2,InvalidDistance:3,StreamFinished:4,NoStreamHandler:5,InvalidHeader:6,NoCallback:7,InvalidUTF8:8,ExtraFieldTooLong:9,InvalidDate:10,FilenameTooLong:11,StreamFinishing:12,InvalidZipData:13,UnknownCompressionMethod:14};var ec=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"];var err=function(ind,msg,nt){var e=new Error(msg||ec[ind]);e.code=ind;if(Error.captureStackTrace)Error.captureStackTrace(e,err);if(!nt)throw e;return e};var inflt=function(dat,buf,st){var sl=dat.length;if(!sl||st&&st.f&&!st.l)return buf||new u8(0);var noBuf=!buf||st;var noSt=!st||st.i;if(!st)st={};if(!buf)buf=new u8(sl*3);var cbuf=function(l){var bl=buf.length;if(l>bl){var nbuf=new u8(Math.max(bl*2,l));nbuf.set(buf);buf=nbuf}};var final=st.f||0,pos=st.p||0,bt=st.b||0,lm=st.l,dm=st.d,lbt=st.m,dbt=st.n;var tbts=sl*8;do{if(!lm){final=bits(dat,pos,1);var type=bits(dat,pos+1,3);pos+=3;if(!type){var s=shft(pos)+4,l=dat[s-4]|dat[s-3]<<8,t=s+l;if(t>sl){if(noSt)err(0);break}if(noBuf)cbuf(bt+l);buf.set(dat.subarray(s,t),bt);st.b=bt+=l,st.p=pos=t*8,st.f=final;continue}else if(type==1)lm=flrm,dm=fdrm,lbt=9,dbt=5;else if(type==2){var hLit=bits(dat,pos,31)+257,hcLen=bits(dat,pos+10,15)+4;var tl=hLit+bits(dat,pos+5,31)+1;pos+=14;var ldt=new u8(tl);var clt=new u8(19);for(var i=0;i>>4;if(s<16){ldt[i++]=s}else{var c=0,n=0;if(s==16)n=3+bits(dat,pos,3),pos+=2,c=ldt[i-1];else if(s==17)n=3+bits(dat,pos,7),pos+=3;else if(s==18)n=11+bits(dat,pos,127),pos+=7;while(n--)ldt[i++]=c}}var lt=ldt.subarray(0,hLit),dt=ldt.subarray(hLit);lbt=max(lt);dbt=max(dt);lm=hMap(lt,lbt,1);dm=hMap(dt,dbt,1)}else err(1);if(pos>tbts){if(noSt)err(0);break}}if(noBuf)cbuf(bt+131072);var lms=(1<>>4;pos+=c&15;if(pos>tbts){if(noSt)err(0);break}if(!c)err(2);if(sym<256)buf[bt++]=sym;else if(sym==256){lpos=pos,lm=null;break}else{var add=sym-254;if(sym>264){var i=sym-257,b=fleb[i];add=bits(dat,pos,(1<>>4;if(!d)err(3);pos+=d&15;var dt=fd[dsym];if(dsym>3){var b=fdeb[dsym];dt+=bits16(dat,pos)&(1<tbts){if(noSt)err(0);break}if(noBuf)cbuf(bt+131072);var end=bt+add;for(;bt>>8};var wbits16=function(d,p,v){v<<=p&7;var o=p/8|0;d[o]|=v;d[o+1]|=v>>>8;d[o+2]|=v>>>16};var hTree=function(d,mb){var t=[];for(var i=0;imaxSym)maxSym=t2[i].s}var tr=new u16(maxSym+1);var mbt=ln(t[i1-1],tr,0);if(mbt>mb){var i=0,dt=0;var lft=mbt-mb,cst=1<mb){dt+=cst-(1<>>=lft;while(dt>0){var i2_2=t2[i].s;if(tr[i2_2]=0&&dt;--i){var i2_3=t2[i].s;if(tr[i2_3]==mb){--tr[i2_3];++dt}}mbt=mb}return[new u8(tr),mbt]};var ln=function(n,l,d){return n.s==-1?Math.max(ln(n.l,l,d+1),ln(n.r,l,d+1)):l[n.s]=d};var lc=function(c){var s=c.length;while(s&&!c[--s]);var cl=new u16(++s);var cli=0,cln=c[0],cls=1;var w=function(v){cl[cli++]=v};for(var i=1;i<=s;++i){if(c[i]==cln&&i!=s)++cls;else{if(!cln&&cls>2){for(;cls>138;cls-=138)w(32754);if(cls>2){w(cls>10?cls-11<<5|28690:cls-3<<5|12305);cls=0}}else if(cls>3){w(cln),--cls;for(;cls>6;cls-=6)w(8304);if(cls>2)w(cls-3<<5|8208),cls=0}while(cls--)w(cln);cls=1;cln=c[i]}}return[cl.subarray(0,cli),s]};var clen=function(cf,cl){var l=0;for(var i=0;i>>8;out[o+2]=out[o]^255;out[o+3]=out[o+1]^255;for(var i=0;i4&&!lct[clim[nlcc-1]];--nlcc);var flen=bl+5<<3;var ftlen=clen(lf,flt)+clen(df,fdt)+eb;var dtlen=clen(lf,dlt)+clen(df,ddt)+eb+14+3*nlcc+clen(lcfreq,lct)+(2*lcfreq[16]+3*lcfreq[17]+7*lcfreq[18]);if(flen<=ftlen&&flen<=dtlen)return wfblk(out,p,dat.subarray(bs,bs+bl));var lm,ll,dm,dl;wbits(out,p,1+(dtlen15)wbits(out,p,clct[i]>>>5&127),p+=clct[i]>>>12}}}else{lm=flm,ll=flt,dm=fdm,dl=fdt}for(var i=0;i255){var len=syms[i]>>>18&31;wbits16(out,p,lm[len+257]),p+=ll[len+257];if(len>7)wbits(out,p,syms[i]>>>23&31),p+=fleb[len];var dst=syms[i]&31;wbits16(out,p,dm[dst]),p+=dl[dst];if(dst>3)wbits16(out,p,syms[i]>>>5&8191),p+=fdeb[dst]}else{wbits16(out,p,lm[syms[i]]),p+=ll[syms[i]]}}wbits16(out,p,lm[256]);return p+ll[256]};var deo=new u32([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]);var et=new u8(0);var dflt=function(dat,lvl,plvl,pre,post,lst){var s=dat.length;var o=new u8(pre+s+5*(1+Math.ceil(s/7e3))+post);var w=o.subarray(pre,o.length-post);var pos=0;if(!lvl||s<8){for(var i=0;i<=s;i+=65535){var e=i+65535;if(e>=s){w[pos>>3]=lst}pos=wfblk(w,pos+1,dat.subarray(i,e))}}else{var opt=deo[lvl-1];var n=opt>>>13,c=opt&8191;var msk_1=(1<7e3||li>24576)&&rem>423){pos=wblk(dat,w,0,syms,lf,df,eb,li,bs,i-bs,pos);li=lc_1=eb=0,bs=i;for(var j=0;j<286;++j)lf[j]=0;for(var j=0;j<30;++j)df[j]=0}var l=2,d=0,ch_1=c,dif=imod-pimod&32767;if(rem>2&&hv==hsh(i-dif)){var maxn=Math.min(n,rem)-1;var maxd=Math.min(32767,i);var ml=Math.min(258,rem);while(dif<=maxd&&--ch_1&&imod!=pimod){if(dat[i+l]==dat[i+l-dif]){var nl=0;for(;nll){l=nl,d=dif;if(nl>maxn)break;var mmd=Math.min(dif,nl-2);var md=0;for(var j=0;jmd)md=cd,pimod=ti}}}imod=pimod,pimod=prev[imod];dif+=imod-pimod+32768&32767}}if(d){syms[li++]=268435456|revfl[l]<<18|revfd[d];var lin=revfl[l]&31,din=revfd[d]&31;eb+=fleb[lin]+fdeb[din];++lf[257+lin];++df[din];wi=i+l;++lc_1}else{syms[li++]=dat[i];++lf[dat[i]]}}}pos=wblk(dat,w,lst,syms,lf,df,eb,li,bs,i-bs,pos);if(!lst&&pos&7)pos=wfblk(w,pos+1,et)}return slc(o,0,pre+shft(pos)+post)};var crct=function(){var t=new Int32Array(256);for(var i=0;i<256;++i){var c=i,k=9;while(--k)c=(c&1&&-306674912)^c>>>1;t[i]=c}return t}();var crc=function(){var c=-1;return{p:function(d){var cr=c;for(var i=0;i>>8;c=cr},d:function(){return~c}}};var adler=function(){var a=1,b=0;return{p:function(d){var n=a,m=b;var l=d.length|0;for(var i=0;i!=l;){var e=Math.min(i+2655,l);for(;i>16),m=(m&65535)+15*(m>>16)}a=n,b=m},d:function(){a%=65521,b%=65521;return(a&255)<<24|a>>>8<<16|(b&255)<<8|b>>>8}}};var dopt=function(dat,opt,pre,post,st){return dflt(dat,opt.level==null?6:opt.level,opt.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(dat.length)))*1.5):12+opt.mem,pre,post,!st)};var mrg=function(a,b){var o={};for(var k in a)o[k]=a[k];for(var k in b)o[k]=b[k];return o};var wcln=function(fn,fnStr,td){var dt=fn();var st=fn.toString();var ks=st.slice(st.indexOf("[")+1,st.lastIndexOf("]")).replace(/\s+/g,"").split(",");for(var i=0;i>>0};var b8=function(d,b){return b4(d,b)+b4(d,b+4)*4294967296};var wbytes=function(d,b,v){for(;v;++b)d[b]=v,v>>>=8};var gzh=function(c,o){var fn=o.filename;c[0]=31,c[1]=139,c[2]=8,c[8]=o.level<2?4:o.level==9?2:0,c[9]=3;if(o.mtime!=0)wbytes(c,4,Math.floor(new Date(o.mtime||Date.now())/1e3));if(fn){c[3]=8;for(var i=0;i<=fn.length;++i)c[i+10]=fn.charCodeAt(i)}};var gzs=function(d){if(d[0]!=31||d[1]!=139||d[2]!=8)err(6,"invalid gzip data");var flg=d[3];var st=10;if(flg&4)st+=d[10]|(d[11]<<8)+2;for(var zs=(flg>>3&1)+(flg>>4&1);zs>0;zs-=!d[st++]);return st+(flg&2)};var gzl=function(d){var l=d.length;return(d[l-4]|d[l-3]<<8|d[l-2]<<16|d[l-1]<<24)>>>0};var gzhl=function(o){return 10+(o.filename&&o.filename.length+1||0)};var zlh=function(c,o){var lv=o.level,fl=lv==0?0:lv<6?1:lv==9?3:2;c[0]=120,c[1]=fl<<6|(fl?32-2*fl:1)};var zlv=function(d){if((d[0]&15)!=8||d[0]>>>4>7||(d[0]<<8|d[1])%31)err(6,"invalid zlib data");if(d[1]&32)err(6,"invalid zlib data: preset dictionaries not supported")};function AsyncCmpStrm(opts,cb){if(!cb&&typeof opts=="function")cb=opts,opts={};this.ondata=cb;return opts}var Deflate=function(){function Deflate(opts,cb){if(!cb&&typeof opts=="function")cb=opts,opts={};this.ondata=cb;this.o=opts||{}}Deflate.prototype.p=function(c,f){this.ondata(dopt(c,this.o,0,0,!f),f)};Deflate.prototype.push=function(chunk,final){if(!this.ondata)err(5);if(this.d)err(4);this.d=final;this.p(chunk,final||false)};return Deflate}();exports.Deflate=Deflate;var AsyncDeflate=function(){function AsyncDeflate(opts,cb){astrmify([bDflt,function(){return[astrm,Deflate]}],this,AsyncCmpStrm.call(this,opts,cb),function(ev){var strm=new Deflate(ev.data);onmessage=astrm(strm)},6)}return AsyncDeflate}();exports.AsyncDeflate=AsyncDeflate;function deflate(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return cbify(data,opts,[bDflt],function(ev){return pbf(deflateSync(ev.data[0],ev.data[1]))},0,cb)}exports.deflate=deflate;function deflateSync(data,opts){return dopt(data,opts||{},0,0)}exports.deflateSync=deflateSync;var Inflate=function(){function Inflate(cb){this.s={};this.p=new u8(0);this.ondata=cb}Inflate.prototype.e=function(c){if(!this.ondata)err(5);if(this.d)err(4);var l=this.p.length;var n=new u8(l+c.length);n.set(this.p),n.set(c,l),this.p=n};Inflate.prototype.c=function(final){this.d=this.s.i=final||false;var bts=this.s.b;var dt=inflt(this.p,this.o,this.s);this.ondata(slc(dt,bts,this.s.b),this.d);this.o=slc(dt,this.s.b-32768),this.s.b=this.o.length;this.p=slc(this.p,this.s.p/8|0),this.s.p&=7};Inflate.prototype.push=function(chunk,final){this.e(chunk),this.c(final)};return Inflate}();exports.Inflate=Inflate;var AsyncInflate=function(){function AsyncInflate(cb){this.ondata=cb;astrmify([bInflt,function(){return[astrm,Inflate]}],this,0,function(){var strm=new Inflate;onmessage=astrm(strm)},7)}return AsyncInflate}();exports.AsyncInflate=AsyncInflate;function inflate(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return cbify(data,opts,[bInflt],function(ev){return pbf(inflateSync(ev.data[0],gu8(ev.data[1])))},1,cb)}exports.inflate=inflate;function inflateSync(data,out){return inflt(data,out)}exports.inflateSync=inflateSync;var Gzip=function(){function Gzip(opts,cb){this.c=crc();this.l=0;this.v=1;Deflate.call(this,opts,cb)}Gzip.prototype.push=function(chunk,final){Deflate.prototype.push.call(this,chunk,final)};Gzip.prototype.p=function(c,f){this.c.p(c);this.l+=c.length;var raw=dopt(c,this.o,this.v&&gzhl(this.o),f&&8,!f);if(this.v)gzh(raw,this.o),this.v=0;if(f)wbytes(raw,raw.length-8,this.c.d()),wbytes(raw,raw.length-4,this.l);this.ondata(raw,f)};return Gzip}();exports.Gzip=Gzip;exports.Compress=Gzip;var AsyncGzip=function(){function AsyncGzip(opts,cb){astrmify([bDflt,gze,function(){return[astrm,Deflate,Gzip]}],this,AsyncCmpStrm.call(this,opts,cb),function(ev){var strm=new Gzip(ev.data);onmessage=astrm(strm)},8)}return AsyncGzip}();exports.AsyncGzip=AsyncGzip;exports.AsyncCompress=AsyncGzip;function gzip(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return cbify(data,opts,[bDflt,gze,function(){return[gzipSync]}],function(ev){return pbf(gzipSync(ev.data[0],ev.data[1]))},2,cb)}exports.gzip=gzip;exports.compress=gzip;function gzipSync(data,opts){if(!opts)opts={};var c=crc(),l=data.length;c.p(data);var d=dopt(data,opts,gzhl(opts),8),s=d.length;return gzh(d,opts),wbytes(d,s-8,c.d()),wbytes(d,s-4,l),d}exports.gzipSync=gzipSync;exports.compressSync=gzipSync;var Gunzip=function(){function Gunzip(cb){this.v=1;Inflate.call(this,cb)}Gunzip.prototype.push=function(chunk,final){Inflate.prototype.e.call(this,chunk);if(this.v){var s=this.p.length>3?gzs(this.p):4;if(s>=this.p.length&&!final)return;this.p=this.p.subarray(s),this.v=0}if(final){if(this.p.length<8)err(6,"invalid gzip data");this.p=this.p.subarray(0,-8)}Inflate.prototype.c.call(this,final)};return Gunzip}();exports.Gunzip=Gunzip;var AsyncGunzip=function(){function AsyncGunzip(cb){this.ondata=cb;astrmify([bInflt,guze,function(){return[astrm,Inflate,Gunzip]}],this,0,function(){var strm=new Gunzip;onmessage=astrm(strm)},9)}return AsyncGunzip}();exports.AsyncGunzip=AsyncGunzip;function gunzip(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return cbify(data,opts,[bInflt,guze,function(){return[gunzipSync]}],function(ev){return pbf(gunzipSync(ev.data[0]))},3,cb)}exports.gunzip=gunzip;function gunzipSync(data,out){return inflt(data.subarray(gzs(data),-8),out||new u8(gzl(data)))}exports.gunzipSync=gunzipSync;var Zlib=function(){function Zlib(opts,cb){this.c=adler();this.v=1;Deflate.call(this,opts,cb)}Zlib.prototype.push=function(chunk,final){Deflate.prototype.push.call(this,chunk,final)};Zlib.prototype.p=function(c,f){this.c.p(c);var raw=dopt(c,this.o,this.v&&2,f&&4,!f);if(this.v)zlh(raw,this.o),this.v=0;if(f)wbytes(raw,raw.length-4,this.c.d());this.ondata(raw,f)};return Zlib}();exports.Zlib=Zlib;var AsyncZlib=function(){function AsyncZlib(opts,cb){astrmify([bDflt,zle,function(){return[astrm,Deflate,Zlib]}],this,AsyncCmpStrm.call(this,opts,cb),function(ev){var strm=new Zlib(ev.data);onmessage=astrm(strm)},10)}return AsyncZlib}();exports.AsyncZlib=AsyncZlib;function zlib(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return cbify(data,opts,[bDflt,zle,function(){return[zlibSync]}],function(ev){return pbf(zlibSync(ev.data[0],ev.data[1]))},4,cb)}exports.zlib=zlib;function zlibSync(data,opts){if(!opts)opts={};var a=adler();a.p(data);var d=dopt(data,opts,2,4);return zlh(d,opts),wbytes(d,d.length-4,a.d()),d}exports.zlibSync=zlibSync;var Unzlib=function(){function Unzlib(cb){this.v=1;Inflate.call(this,cb)}Unzlib.prototype.push=function(chunk,final){Inflate.prototype.e.call(this,chunk);if(this.v){if(this.p.length<2&&!final)return;this.p=this.p.subarray(2),this.v=0}if(final){if(this.p.length<4)err(6,"invalid zlib data");this.p=this.p.subarray(0,-4)}Inflate.prototype.c.call(this,final)};return Unzlib}();exports.Unzlib=Unzlib;var AsyncUnzlib=function(){function AsyncUnzlib(cb){this.ondata=cb;astrmify([bInflt,zule,function(){return[astrm,Inflate,Unzlib]}],this,0,function(){var strm=new Unzlib;onmessage=astrm(strm)},11)}return AsyncUnzlib}();exports.AsyncUnzlib=AsyncUnzlib;function unzlib(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return cbify(data,opts,[bInflt,zule,function(){return[unzlibSync]}],function(ev){return pbf(unzlibSync(ev.data[0],gu8(ev.data[1])))},5,cb)}exports.unzlib=unzlib;function unzlibSync(data,out){return inflt((zlv(data),data.subarray(2,-4)),out)}exports.unzlibSync=unzlibSync;var Decompress=function(){function Decompress(cb){this.G=Gunzip;this.I=Inflate;this.Z=Unzlib;this.ondata=cb}Decompress.prototype.push=function(chunk,final){if(!this.ondata)err(5);if(!this.s){if(this.p&&this.p.length){var n=new u8(this.p.length+chunk.length);n.set(this.p),n.set(chunk,this.p.length)}else this.p=chunk;if(this.p.length>2){var _this_1=this;var cb=function(){_this_1.ondata.apply(_this_1,arguments)};this.s=this.p[0]==31&&this.p[1]==139&&this.p[2]==8?new this.G(cb):(this.p[0]&15)!=8||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(cb):new this.Z(cb);this.s.push(this.p,final);this.p=null}}else this.s.push(chunk,final)};return Decompress}();exports.Decompress=Decompress;var AsyncDecompress=function(){function AsyncDecompress(cb){this.G=AsyncGunzip;this.I=AsyncInflate;this.Z=AsyncUnzlib;this.ondata=cb}AsyncDecompress.prototype.push=function(chunk,final){Decompress.prototype.push.call(this,chunk,final)};return AsyncDecompress}();exports.AsyncDecompress=AsyncDecompress;function decompress(data,opts,cb){if(!cb)cb=opts,opts={};if(typeof cb!="function")err(7);return data[0]==31&&data[1]==139&&data[2]==8?gunzip(data,opts,cb):(data[0]&15)!=8||data[0]>>4>7||(data[0]<<8|data[1])%31?inflate(data,opts,cb):unzlib(data,opts,cb)}exports.decompress=decompress;function decompressSync(data,out){return data[0]==31&&data[1]==139&&data[2]==8?gunzipSync(data,out):(data[0]&15)!=8||data[0]>>4>7||(data[0]<<8|data[1])%31?inflateSync(data,out):unzlibSync(data,out)}exports.decompressSync=decompressSync;var fltn=function(d,p,t,o){for(var k in d){var val=d[k],n=p+k,op=o;if(Array.isArray(val))op=mrg(o,val[1]),val=val[0];if(val instanceof u8)t[n]=[val,op];else{t[n+="/"]=[new u8(0),op];fltn(val,n,t,o)}}};var te=typeof TextEncoder!="undefined"&&new TextEncoder;var td=typeof TextDecoder!="undefined"&&new TextDecoder;var tds=0;try{td.decode(et,{stream:true});tds=1}catch(e){}var dutf8=function(d){for(var r="",i=0;;){var c=d[i++];var eb=(c>127)+(c>223)+(c>239);if(i+eb>d.length)return[r,slc(d,i-1)];if(!eb)r+=String.fromCharCode(c);else if(eb==3){c=((c&15)<<18|(d[i++]&63)<<12|(d[i++]&63)<<6|d[i++]&63)-65536,r+=String.fromCharCode(55296|c>>10,56320|c&1023)}else if(eb&1)r+=String.fromCharCode((c&31)<<6|d[i++]&63);else r+=String.fromCharCode((c&15)<<12|(d[i++]&63)<<6|d[i++]&63)}};var DecodeUTF8=function(){function DecodeUTF8(cb){this.ondata=cb;if(tds)this.t=new TextDecoder;else this.p=et}DecodeUTF8.prototype.push=function(chunk,final){if(!this.ondata)err(5);final=!!final;if(this.t){this.ondata(this.t.decode(chunk,{stream:true}),final);if(final){if(this.t.decode().length)err(8);this.t=null}return}if(!this.p)err(4);var dat=new u8(this.p.length+chunk.length);dat.set(this.p);dat.set(chunk,this.p.length);var _a=dutf8(dat),ch=_a[0],np=_a[1];if(final){if(np.length)err(8);this.p=null}else this.p=np;this.ondata(ch,final)};return DecodeUTF8}();exports.DecodeUTF8=DecodeUTF8;var EncodeUTF8=function(){function EncodeUTF8(cb){this.ondata=cb}EncodeUTF8.prototype.push=function(chunk,final){if(!this.ondata)err(5);if(this.d)err(4);this.ondata(strToU8(chunk),this.d=final||false)};return EncodeUTF8}();exports.EncodeUTF8=EncodeUTF8;function strToU8(str,latin1){if(latin1){var ar_1=new u8(str.length);for(var i=0;i>1));var ai=0;var w=function(v){ar[ai++]=v};for(var i=0;iar.length){var n=new u8(ai+8+(l-i<<1));n.set(ar);ar=n}var c=str.charCodeAt(i);if(c<128||latin1)w(c);else if(c<2048)w(192|c>>6),w(128|c&63);else if(c>55295&&c<57344)c=65536+(c&1023<<10)|str.charCodeAt(++i)&1023,w(240|c>>18),w(128|c>>12&63),w(128|c>>6&63),w(128|c&63);else w(224|c>>12),w(128|c>>6&63),w(128|c&63)}return slc(ar,0,ai)}exports.strToU8=strToU8;function strFromU8(dat,latin1){if(latin1){var r="";for(var i=0;i65535)err(9);le+=l+4}}return le};var wzh=function(d,b,f,fn,u,c,ce,co){var fl=fn.length,ex=f.extra,col=co&&co.length;var exl=exfl(ex);wbytes(d,b,ce!=null?33639248:67324752),b+=4;if(ce!=null)d[b++]=20,d[b++]=f.os;d[b]=20,b+=2;d[b++]=f.flag<<1|(c<0&&8),d[b++]=u&&8;d[b++]=f.compression&255,d[b++]=f.compression>>8;var dt=new Date(f.mtime==null?Date.now():f.mtime),y=dt.getFullYear()-1980;if(y<0||y>119)err(10);wbytes(d,b,y<<25|dt.getMonth()+1<<21|dt.getDate()<<16|dt.getHours()<<11|dt.getMinutes()<<5|dt.getSeconds()>>>1),b+=4;if(c!=-1){wbytes(d,b,f.crc);wbytes(d,b+4,c<0?-c-2:c);wbytes(d,b+8,f.size)}wbytes(d,b+12,fl);wbytes(d,b+14,exl),b+=16;if(ce!=null){wbytes(d,b,col);wbytes(d,b+6,f.attrs);wbytes(d,b+10,ce),b+=14}d.set(fn,b);b+=fl;if(exl){for(var k in ex){var exf=ex[k],l=exf.length;wbytes(d,b,+k);wbytes(d,b+2,l);d.set(exf,b+4),b+=4+l}}if(col)d.set(co,b),b+=col;return b};var wzf=function(o,b,c,d,e){wbytes(o,b,101010256);wbytes(o,b+8,c);wbytes(o,b+10,c);wbytes(o,b+12,d);wbytes(o,b+16,e)};var ZipPassThrough=function(){function ZipPassThrough(filename){this.filename=filename;this.c=crc();this.size=0;this.compression=0}ZipPassThrough.prototype.process=function(chunk,final){this.ondata(null,chunk,final)};ZipPassThrough.prototype.push=function(chunk,final){if(!this.ondata)err(5);this.c.p(chunk);this.size+=chunk.length;if(final)this.crc=this.c.d();this.process(chunk,final||false)};return ZipPassThrough}();exports.ZipPassThrough=ZipPassThrough;var ZipDeflate=function(){function ZipDeflate(filename,opts){var _this_1=this;if(!opts)opts={};ZipPassThrough.call(this,filename);this.d=new Deflate(opts,function(dat,final){_this_1.ondata(null,dat,final)});this.compression=8;this.flag=dbf(opts.level)}ZipDeflate.prototype.process=function(chunk,final){try{this.d.push(chunk,final)}catch(e){this.ondata(e,null,final)}};ZipDeflate.prototype.push=function(chunk,final){ZipPassThrough.prototype.push.call(this,chunk,final)};return ZipDeflate}();exports.ZipDeflate=ZipDeflate;var AsyncZipDeflate=function(){function AsyncZipDeflate(filename,opts){var _this_1=this;if(!opts)opts={};ZipPassThrough.call(this,filename);this.d=new AsyncDeflate(opts,function(err,dat,final){_this_1.ondata(err,dat,final)});this.compression=8;this.flag=dbf(opts.level);this.terminate=this.d.terminate}AsyncZipDeflate.prototype.process=function(chunk,final){this.d.push(chunk,final)};AsyncZipDeflate.prototype.push=function(chunk,final){ZipPassThrough.prototype.push.call(this,chunk,final)};return AsyncZipDeflate}();exports.AsyncZipDeflate=AsyncZipDeflate;var Zip=function(){function Zip(cb){this.ondata=cb;this.u=[];this.d=1}Zip.prototype.add=function(file){var _this_1=this;if(!this.ondata)err(5);if(this.d&2)this.ondata(err(4+(this.d&1)*8,0,1),null,false);else{var f=strToU8(file.filename),fl_1=f.length;var com=file.comment,o=com&&strToU8(com);var u=fl_1!=file.filename.length||o&&com.length!=o.length;var hl_1=fl_1+exfl(file.extra)+30;if(fl_1>65535)this.ondata(err(11,0,1),null,false);var header=new u8(hl_1);wzh(header,0,file,f,u,-1);var chks_1=[header];var pAll_1=function(){for(var _i=0,chks_2=chks_1;_i65535)cbl(err(11,0,1),null);if(!compression)cbl(null,file);else if(size<16e4){try{cbl(null,deflateSync(file,p))}catch(e){cbl(e,null)}}else term.push(deflate(file,p,cbl))};for(var i=0;i65535)err(11);var d=compression?deflateSync(file,p):file,l=d.length;var c=crc();c.p(file);files.push(mrg(p,{size:file.length,crc:c.d(),c:d,f:f,m:m,u:s!=fn.length||m&&com.length!=ms,o:o,compression:compression}));o+=30+s+exl+l;tot+=76+2*(s+exl)+(ms||0)+l}var out=new u8(tot+22),oe=o,cdl=tot-o;for(var i=0;i0){var len=Math.min(this.c,chunk.length);var toAdd=chunk.subarray(0,len);this.c-=len;if(this.d)this.d.push(toAdd,!this.c);else this.k[0].push(toAdd);chunk=chunk.subarray(len);if(chunk.length)return this.push(chunk,final)}else{var f=0,i=0,is=void 0,buf=void 0;if(!this.p.length)buf=chunk;else if(!chunk.length)buf=this.p;else{buf=new u8(this.p.length+chunk.length);buf.set(this.p),buf.set(chunk,this.p.length)}var l=buf.length,oc=this.c,add=oc&&this.d;var _loop_2=function(){var _a;var sig=b4(buf,i);if(sig==67324752){f=1,is=i;this_1.d=null;this_1.c=0;var bf=b2(buf,i+6),cmp_1=b2(buf,i+8),u=bf&2048,dd=bf&8,fnl=b2(buf,i+26),es=b2(buf,i+28);if(l>i+30+fnl+es){var chks_3=[];this_1.k.unshift(chks_3);f=2;var sc_1=b4(buf,i+18),su_1=b4(buf,i+22);var fn_1=strFromU8(buf.subarray(i+30,i+=30+fnl),!u);if(sc_1==4294967295){_a=dd?[-2]:z64e(buf,i),sc_1=_a[0],su_1=_a[1]}else if(dd)sc_1=-1;i+=es;this_1.c=sc_1;var d_1;var file_1={name:fn_1,compression:cmp_1,start:function(){if(!file_1.ondata)err(5);if(!sc_1)file_1.ondata(null,et,true);else{var ctr=_this_1.o[cmp_1];if(!ctr)file_1.ondata(err(14,"unknown compression type "+cmp_1,1),null,false);d_1=sc_1<0?new ctr(fn_1):new ctr(fn_1,sc_1,su_1);d_1.ondata=function(err,dat,final){file_1.ondata(err,dat,final)};for(var _i=0,chks_4=chks_3;_i=0)file_1.size=sc_1,file_1.originalSize=su_1;this_1.onfile(file_1)}return"break"}else if(oc){if(sig==134695760){is=i+=12+(oc==-2&&8),f=3,this_1.c=0;return"break"}else if(sig==33639248){is=i-=4,f=3,this_1.c=0;return"break"}}};var this_1=this;for(;i65558){cbd(err(13,0,1),null);return tAll}}var lft=b2(data,e+8);if(lft){var c=lft;var o=b4(data,e+16);var z=o==4294967295||c==65535;if(z){var ze=b4(data,e-12);z=b4(data,ze)==101075792;if(z){c=lft=b4(data,ze+32);o=b4(data,ze+48)}}var fltr=opts&&opts.filter;var _loop_3=function(i){var _a=zh(data,o,z),c_1=_a[0],sc=_a[1],su=_a[2],fn=_a[3],no=_a[4],off=_a[5],b=slzh(data,off);o=no;var cbl=function(e,d){if(e){tAll();cbd(e,null)}else{if(d)files[fn]=d;if(!--lft)cbd(null,files)}};if(!fltr||fltr({name:fn,size:sc,originalSize:su,compression:c_1})){if(!c_1)cbl(null,slc(data,b,b+sc));else if(c_1==8){var infl=data.subarray(b,b+sc);if(sc<32e4){try{cbl(null,inflateSync(infl,new u8(su)))}catch(e){cbl(e,null)}}else term.push(inflate(infl,{size:su},cbl))}else cbl(err(14,"unknown compression type "+c_1,1),null)}else cbl(null,null)};for(var i=0;i65558)err(13)}var c=b2(data,e+8);if(!c)return{};var o=b4(data,e+16);var z=o==4294967295||c==65535;if(z){var ze=b4(data,e-12);z=b4(data,ze)==101075792;if(z){c=b4(data,ze+32);o=b4(data,ze+48)}}var fltr=opts&&opts.filter;for(var i=0;i>4!==4092||current===65476){switch(current){case 65476:this.huffTable.read(this.stream,this.HuffTab);break;case 65484:throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");case 65499:this.quantTable.read(this.stream,jpeg.lossless.Decoder.TABLE);break;case 65501:this.restartInterval=this.readNumber();break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:this.readApp();break;case 65534:this.readComment();break;default:if(current>>8!==255){throw new Error("ERROR: format throw new IOException! (decode)")}}current=this.stream.get16()}if(current<65472||current>65479){throw new Error("ERROR: could not handle arithmetic code!")}this.frame.read(this.stream);current=this.stream.get16();do{while(current!==65498){switch(current){case 65476:this.huffTable.read(this.stream,this.HuffTab);break;case 65484:throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");case 65499:this.quantTable.read(this.stream,jpeg.lossless.Decoder.TABLE);break;case 65501:this.restartInterval=this.readNumber();break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:this.readApp();break;case 65534:this.readComment();break;default:if(current>>8!==255){throw new Error("ERROR: format throw new IOException! (Parser.decode)")}}current=this.stream.get16()}this.precision=this.frame.precision;this.components=this.frame.components;if(!this.numBytes){this.numBytes=parseInt(Math.ceil(this.precision/8))}if(this.numBytes==1){this.mask=255}else{this.mask=65535}this.scan.read(this.stream);this.numComp=this.scan.numComp;this.selection=this.scan.selection;if(this.numBytes===1){if(this.numComp===3){this.getter=this.getValueRGB;this.setter=this.setValueRGB;this.output=this.outputRGB}else{this.getter=this.getValue8;this.setter=this.setValue8;this.output=this.outputSingle}}else{this.getter=this.getValue16;this.setter=this.setValue16;this.output=this.outputSingle}switch(this.selection){case 2:this.selector=this.select2;break;case 3:this.selector=this.select3;break;case 4:this.selector=this.select4;break;case 5:this.selector=this.select5;break;case 6:this.selector=this.select6;break;case 7:this.selector=this.select7;break;default:this.selector=this.select1;break}this.scanComps=this.scan.components;this.quantTables=this.quantTable.quantTables;for(i=0;i=jpeg.lossless.Decoder.RESTART_MARKER_BEGIN&¤t<=jpeg.lossless.Decoder.RESTART_MARKER_END)){break}}if(current===65500&&scanNum===1){this.readNumber();current=this.stream.get16()}}while(current!==65497&&(this.xLoc>1)};jpeg.lossless.Decoder.prototype.select6=function(compOffset){return this.getPreviousY(compOffset)+(this.getPreviousX(compOffset)-this.getPreviousXY(compOffset)>>1)};jpeg.lossless.Decoder.prototype.select7=function(compOffset){return(this.getPreviousX(compOffset)+this.getPreviousY(compOffset))/2};jpeg.lossless.Decoder.prototype.decodeRGB=function(prev,temp,index){var value,actab,dctab,qtab,ctrC,i,k,j;prev[0]=this.selector(0);prev[1]=this.selector(1);prev[2]=this.selector(2);for(ctrC=0;ctrC=65280){return value}prev[ctrC]=this.IDCT_Source[0]=prev[ctrC]+this.getn(index,value,temp,index);this.IDCT_Source[0]*=qtab[0];for(j=1;j<64;j+=1){value=this.getHuffmanValue(actab,temp,index);if(value>=65280){return value}j+=value>>4;if((value&15)===0){if(value>>4===0){break}}else{this.IDCT_Source[jpeg.lossless.Decoder.IDCT_P[j]]=this.getn(index,value&15,temp,index)*qtab[j]}}}}return 0};jpeg.lossless.Decoder.prototype.decodeSingle=function(prev,temp,index){var value,i,n,nRestart;if(this.restarting){this.restarting=false;prev[0]=1<=65280){return value}n=this.getn(prev,value,temp,index);nRestart=n>>8;if(nRestart>=jpeg.lossless.Decoder.RESTART_MARKER_BEGIN&&nRestart<=jpeg.lossless.Decoder.RESTART_MARKER_END){return nRestart}prev[0]+=n}return 0};jpeg.lossless.Decoder.prototype.getHuffmanValue=function(table,temp,index){var code,input,mask;mask=65535;if(index[0]<8){temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input}else{index[0]-=8}code=table[temp[0]>>index[0]];if((code&jpeg.lossless.Decoder.MSB)!==0){if(this.markerIndex!==0){this.markerIndex=0;return 65280|this.marker}temp[0]&=mask>>16-index[0];temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input;code=table[(code&255)*256+(temp[0]>>index[0])];index[0]+=8}index[0]+=8-(code>>8);if(index[0]<0){throw new Error("index="+index[0]+" temp="+temp[0]+" code="+code+" in HuffmanValue()")}if(index[0]>16-index[0];return code&255};jpeg.lossless.Decoder.prototype.getn=function(PRED,n,temp,index){var result,one,n_one,mask,input;one=1;n_one=-1;mask=65535;if(n===0){return 0}if(n===16){if(PRED[0]>=0){return-32768}else{return 32768}}index[0]-=n;if(index[0]>=0){if(index[0]>index[0];temp[0]&=mask>>16-index[0]}else{temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input;index[0]+=8;if(index[0]<0){if(this.markerIndex!==0){this.markerIndex=0;return(65280|this.marker)<<8}temp[0]<<=8;input=this.stream.get8();if(input===255){this.marker=this.stream.get8();if(this.marker!==0){this.markerIndex=9}}temp[0]|=input;index[0]+=8}if(index[0]<0){throw new Error("index="+index[0]+" in getn()")}if(index[0]>index[0];temp[0]&=mask>>16-index[0]}if(result0){return this.getter(this.yLoc*this.xDim+this.xLoc-1,compOffset)}else if(this.yLoc>0){return this.getPreviousY(compOffset)}else{return 1<0&&this.yLoc>0){return this.getter((this.yLoc-1)*this.xDim+this.xLoc-1,compOffset)}else{return this.getPreviousY(compOffset)}};jpeg.lossless.Decoder.prototype.getPreviousY=function(compOffset){if(this.yLoc>0){return this.getter((this.yLoc-1)*this.xDim+this.xLoc,compOffset)}else{return this.getPreviousX(compOffset)}};jpeg.lossless.Decoder.prototype.isLastPixel=function(){return this.xLoc===this.xDim-1&&this.yLoc===this.yDim-1};jpeg.lossless.Decoder.prototype.outputSingle=function(PRED){if(this.xLoc=this.xDim){this.yLoc+=1;this.xLoc=0}}};jpeg.lossless.Decoder.prototype.outputRGB=function(PRED){var offset=this.yLoc*this.xDim+this.xLoc;if(this.xLoc=this.xDim){this.yLoc+=1;this.xLoc=0}}};jpeg.lossless.Decoder.prototype.setValue8=function(index,val){this.outputData[index]=val};jpeg.lossless.Decoder.prototype.getValue8=function(index){return this.outputData[index]};var littleEndian=function(){var buffer=new ArrayBuffer(2);new DataView(buffer).setInt16(0,256,true);return new Int16Array(buffer)[0]===256}();if(littleEndian){jpeg.lossless.Decoder.prototype.setValue16=jpeg.lossless.Decoder.prototype.setValue8;jpeg.lossless.Decoder.prototype.getValue16=jpeg.lossless.Decoder.prototype.getValue8}else{jpeg.lossless.Decoder.prototype.setValue16=function(index,val){this.outputData[index]=(val&255)<<8|val>>8&255};jpeg.lossless.Decoder.prototype.getValue16=function(index){var val=this.outputData[index];return(val&255)<<8|val>>8&255}}jpeg.lossless.Decoder.prototype.setValueRGB=function(index,val,compOffset){this.outputData[index*3+compOffset]=val};jpeg.lossless.Decoder.prototype.getValueRGB=function(index,compOffset){return this.outputData[index*3+compOffset]};jpeg.lossless.Decoder.prototype.readApp=function(){var count=0,length=this.stream.get16();count+=2;while(countlength){throw new Error("ERROR: frame format error")}c=data.get8();count+=1;if(count>=length){throw new Error("ERROR: frame format error [c>=Lf]")}temp=data.get8();count+=1;if(!this.components[c]){this.components[c]=new jpeg.lossless.ComponentSpec}this.components[c].hSamp=temp>>4;this.components[c].vSamp=temp&15;this.components[c].quantTableSel=data.get8();count+=1}if(count!==length){throw new Error("ERROR: frame format error [Lf!=count]")}return 1};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.FrameHeader}},{"./component-spec.js":9,"./data-stream.js":10}],13:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.Utils=jpeg.lossless.Utils||(typeof require!=="undefined"?require("./utils.js"):null);jpeg.lossless.HuffmanTable=jpeg.lossless.HuffmanTable||function(){this.l=jpeg.lossless.Utils.createArray(4,2,16);this.th=[];this.v=jpeg.lossless.Utils.createArray(4,2,16,200);this.tc=jpeg.lossless.Utils.createArray(4,2);this.tc[0][0]=0;this.tc[1][0]=0;this.tc[2][0]=0;this.tc[3][0]=0;this.tc[0][1]=0;this.tc[1][1]=0;this.tc[2][1]=0;this.tc[3][1]=0;this.th[0]=0;this.th[1]=0;this.th[2]=0;this.th[3]=0};jpeg.lossless.HuffmanTable.MSB=2147483648;jpeg.lossless.HuffmanTable.prototype.read=function(data,HuffTab){var count=0,length,temp,t,c,i,j;length=data.get16();count+=2;while(count3){throw new Error("ERROR: Huffman table ID > 3")}c=temp>>4;if(c>2){throw new Error("ERROR: Huffman table [Table class > 2 ]")}this.th[t]=1;this.tc[t][c]=1;for(i=0;i<16;i+=1){this.l[t][c][i]=data.get8();count+=1}for(i=0;i<16;i+=1){for(j=0;jlength){throw new Error("ERROR: Huffman table format error [count>Lh]")}this.v[t][c][i][j]=data.get8();count+=1}}}if(count!==length){throw new Error("ERROR: Huffman table format error [count!=Lf]")}for(i=0;i<4;i+=1){for(j=0;j<2;j+=1){if(this.tc[i][j]!==0){this.buildHuffTable(HuffTab[i][j],this.l[i][j],this.v[i][j])}}}return 1};jpeg.lossless.HuffmanTable.prototype.buildHuffTable=function(tab,L,V){var currentTable,temp,k,i,j,n;temp=256;k=0;for(i=0;i<8;i+=1){for(j=0;j>i+1;n+=1){tab[k]=V[i][j]|i+1<<8;k+=1}}}for(i=1;k<256;i+=1,k+=1){tab[k]=i|jpeg.lossless.HuffmanTable.MSB}currentTable=1;k=0;for(i=8;i<16;i+=1){for(j=0;j>i-7;n+=1){tab[currentTable*256+k]=V[i][j]|i+1<<8;k+=1}if(k>=256){if(k>256){throw new Error("ERROR: Huffman table error(1)!")}k=0;currentTable+=1}}}};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.HuffmanTable}},{"./data-stream.js":10,"./utils.js":18}],14:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.ComponentSpec=jpeg.lossless.ComponentSpec||(typeof require!=="undefined"?require("./component-spec.js"):null);jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.Decoder=jpeg.lossless.Decoder||(typeof require!=="undefined"?require("./decoder.js"):null);jpeg.lossless.FrameHeader=jpeg.lossless.FrameHeader||(typeof require!=="undefined"?require("./frame-header.js"):null);jpeg.lossless.HuffmanTable=jpeg.lossless.HuffmanTable||(typeof require!=="undefined"?require("./huffman-table.js"):null);jpeg.lossless.QuantizationTable=jpeg.lossless.QuantizationTable||(typeof require!=="undefined"?require("./quantization-table.js"):null);jpeg.lossless.ScanComponent=jpeg.lossless.ScanComponent||(typeof require!=="undefined"?require("./scan-component.js"):null);jpeg.lossless.ScanHeader=jpeg.lossless.ScanHeader||(typeof require!=="undefined"?require("./scan-header.js"):null);jpeg.lossless.Utils=jpeg.lossless.Utils||(typeof require!=="undefined"?require("./utils.js"):null);var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg}},{"./component-spec.js":9,"./data-stream.js":10,"./decoder.js":11,"./frame-header.js":12,"./huffman-table.js":13,"./quantization-table.js":15,"./scan-component.js":16,"./scan-header.js":17,"./utils.js":18}],15:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.Utils=jpeg.lossless.Utils||(typeof require!=="undefined"?require("./utils.js"):null);jpeg.lossless.QuantizationTable=jpeg.lossless.QuantizationTable||function(){this.precision=[];this.tq=[];this.quantTables=jpeg.lossless.Utils.createArray(4,64);this.tq[0]=0;this.tq[1]=0;this.tq[2]=0;this.tq[3]=0};jpeg.lossless.QuantizationTable.enhanceQuantizationTable=function(qtab,table){var i;for(i=0;i<8;i+=1){qtab[table[0*8+i]]*=90;qtab[table[4*8+i]]*=90;qtab[table[2*8+i]]*=118;qtab[table[6*8+i]]*=49;qtab[table[5*8+i]]*=71;qtab[table[1*8+i]]*=126;qtab[table[7*8+i]]*=25;qtab[table[3*8+i]]*=106}for(i=0;i<8;i+=1){qtab[table[0+8*i]]*=90;qtab[table[4+8*i]]*=90;qtab[table[2+8*i]]*=118;qtab[table[6+8*i]]*=49;qtab[table[5+8*i]]*=71;qtab[table[1+8*i]]*=126;qtab[table[7+8*i]]*=25;qtab[table[3+8*i]]*=106}for(i=0;i<64;i+=1){qtab[i]>>=6}};jpeg.lossless.QuantizationTable.prototype.read=function(data,table){var count=0,length,temp,t,i;length=data.get16();count+=2;while(count3){throw new Error("ERROR: Quantization table ID > 3")}this.precision[t]=temp>>4;if(this.precision[t]===0){this.precision[t]=8}else if(this.precision[t]===1){this.precision[t]=16}else{throw new Error("ERROR: Quantization table precision error")}this.tq[t]=1;if(this.precision[t]===8){for(i=0;i<64;i+=1){if(count>length){throw new Error("ERROR: Quantization table format error")}this.quantTables[t][i]=data.get8();count+=1}jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t],table)}else{for(i=0;i<64;i+=1){if(count>length){throw new Error("ERROR: Quantization table format error")}this.quantTables[t][i]=data.get16();count+=2}jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t],table)}}if(count!==length){throw new Error("ERROR: Quantization table error [count!=Lq]")}return 1};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.QuantizationTable}},{"./data-stream.js":10,"./utils.js":18}],16:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.ScanComponent=jpeg.lossless.ScanComponent||function(){this.acTabSel=0;this.dcTabSel=0;this.scanCompSel=0};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.ScanComponent}},{}],17:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.DataStream=jpeg.lossless.DataStream||(typeof require!=="undefined"?require("./data-stream.js"):null);jpeg.lossless.ScanComponent=jpeg.lossless.ScanComponent||(typeof require!=="undefined"?require("./scan-component.js"):null);jpeg.lossless.ScanHeader=jpeg.lossless.ScanHeader||function(){this.ah=0;this.al=0;this.numComp=0;this.selection=0;this.spectralEnd=0;this.components=[]};jpeg.lossless.ScanHeader.prototype.read=function(data){var count=0,length,i,temp;length=data.get16();count+=2;this.numComp=data.get8();count+=1;for(i=0;ilength){throw new Error("ERROR: scan header format error")}this.components[i].scanCompSel=data.get8();count+=1;temp=data.get8();count+=1;this.components[i].dcTabSel=temp>>4;this.components[i].acTabSel=temp&15}this.selection=data.get8();count+=1;this.spectralEnd=data.get8();count+=1;temp=data.get8();this.ah=temp>>4;this.al=temp&15;count+=1;if(count!==length){throw new Error("ERROR: scan header format error [count!=Ns]")}return 1};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.ScanHeader}},{"./data-stream.js":10,"./scan-component.js":16}],18:[function(require,module,exports){"use strict";var jpeg=jpeg||{};jpeg.lossless=jpeg.lossless||{};jpeg.lossless.Utils=jpeg.lossless.Utils||{};jpeg.lossless.Utils.createArray=function(length){var arr=new Array(length||0),i=length;if(arguments.length>1){var args=Array.prototype.slice.call(arguments,1);while(i--)arr[length-1-i]=jpeg.lossless.Utils.createArray.apply(this,args)}return arr};jpeg.lossless.Utils.makeCRCTable=function(){var c;var crcTable=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}crcTable[n]=c}return crcTable};jpeg.lossless.Utils.crc32=function(dataView){var uint8view=new Uint8Array(dataView.buffer);var crcTable=jpeg.lossless.Utils.crcTable||(jpeg.lossless.Utils.crcTable=jpeg.lossless.Utils.makeCRCTable());var crc=0^-1;for(var i=0;i>>8^crcTable[(crc^uint8view[i])&255]}return(crc^-1)>>>0};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=jpeg.lossless.Utils}},{}],19:[function(require,module,exports){(function(process){(function(){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i=1;--i){code=path.charCodeAt(i);if(code===47){if(!matchedSlash){end=i;break}}else{matchedSlash=false}}if(end===-1)return hasRoot?"/":".";if(hasRoot&&end===1){return"/"}return path.slice(0,end)};function basename(path){if(typeof path!=="string")path=path+"";var start=0;var end=-1;var matchedSlash=true;var i;for(i=path.length-1;i>=0;--i){if(path.charCodeAt(i)===47){if(!matchedSlash){start=i+1;break}}else if(end===-1){matchedSlash=false;end=i+1}}if(end===-1)return"";return path.slice(start,end)}exports.basename=function(path,ext){var f=basename(path);if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){if(typeof path!=="string")path=path+"";var startDot=-1;var startPart=0;var end=-1;var matchedSlash=true;var preDotState=0;for(var i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(code===47){if(!matchedSlash){startPart=i+1;break}continue}if(end===-1){matchedSlash=false;end=i+1}if(code===46){if(startDot===-1)startDot=i;else if(preDotState!==1)preDotState=1}else if(startDot!==-1){preDotState=-1}}if(startDot===-1||end===-1||preDotState===0||preDotState===1&&startDot===end-1&&startDot===startPart+1){return""}return path.slice(startDot,end)};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i1){for(var i=1;idaikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&absX>absY&&absX>absZ){axis=orientationX}else if(absY>daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&absY>absX&&absY>absZ){axis=orientationY}else if(absZ>daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&absZ>absX&&absZ>absY){axis=orientationZ}else{axis=null}return axis};daikon.Image.prototype.getCols=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_COLS[0],daikon.Tag.TAG_COLS[1]),0)};daikon.Image.prototype.getRows=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ROWS[0],daikon.Tag.TAG_ROWS[1]),0)};daikon.Image.prototype.getSeriesDescription=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_DESCRIPTION[0],daikon.Tag.TAG_SERIES_DESCRIPTION[1]),0)};daikon.Image.prototype.getSeriesInstanceUID=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_INSTANCE_UID[0],daikon.Tag.TAG_SERIES_INSTANCE_UID[1]),0)};daikon.Image.prototype.getSeriesNumber=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_NUMBER[0],daikon.Tag.TAG_SERIES_NUMBER[1]),0)};daikon.Image.prototype.getEchoNumber=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ECHO_NUMBER[0],daikon.Tag.TAG_ECHO_NUMBER[1]),0)};daikon.Image.prototype.getImagePosition=function(){return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_POSITION[0],daikon.Tag.TAG_IMAGE_POSITION[1]))};daikon.Image.prototype.getImageDirections=function(){return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0],daikon.Tag.TAG_IMAGE_ORIENTATION[1]))};daikon.Image.prototype.getImagePositionSliceDir=function(sliceDir){var imagePos=daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_POSITION[0],daikon.Tag.TAG_IMAGE_POSITION[1]));if(imagePos){if(sliceDir>=0){return imagePos[sliceDir]}}return 0};daikon.Image.prototype.getModality=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_MODALITY[0],daikon.Tag.TAG_MODALITY[1]),0)};daikon.Image.prototype.getSliceLocation=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_LOCATION[0],daikon.Tag.TAG_SLICE_LOCATION[1]),0)};daikon.Image.prototype.getSliceLocationVector=function(){return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_SLICE_LOCATION_VECTOR[0],daikon.Tag.TAG_SLICE_LOCATION_VECTOR[1]))};daikon.Image.prototype.getImageNumber=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_NUM[0],daikon.Tag.TAG_IMAGE_NUM[1]),0)};daikon.Image.prototype.getTemporalPosition=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TEMPORAL_POSITION[0],daikon.Tag.TAG_TEMPORAL_POSITION[1]),0)};daikon.Image.prototype.getTemporalNumber=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0],daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]),0)};daikon.Image.prototype.getSliceGap=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_GAP[0],daikon.Tag.TAG_SLICE_GAP[1]),0)};daikon.Image.prototype.getSliceThickness=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_THICKNESS[0],daikon.Tag.TAG_SLICE_THICKNESS[1]),0)};daikon.Image.prototype.getImageMax=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_MAX[0],daikon.Tag.TAG_IMAGE_MAX[1]),0)};daikon.Image.prototype.getImageMin=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_MIN[0],daikon.Tag.TAG_IMAGE_MIN[1]),0)};daikon.Image.prototype.getDataScaleSlope=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_SLOPE[0],daikon.Tag.TAG_DATA_SCALE_SLOPE[1]),0)};daikon.Image.prototype.getDataScaleIntercept=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_INTERCEPT[0],daikon.Tag.TAG_DATA_SCALE_INTERCEPT[1]),0)};daikon.Image.prototype.getDataScaleElscint=function(){var scale=daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_ELSCINT[0],daikon.Tag.TAG_DATA_SCALE_ELSCINT[1]),0);if(!scale){scale=1}var bandwidth=this.getPixelBandwidth();scale=Math.sqrt(bandwidth)/(10*scale);if(scale<=0){scale=1}return scale};daikon.Image.prototype.getWindowWidth=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_WINDOW_WIDTH[0],daikon.Tag.TAG_WINDOW_WIDTH[1]),0)};daikon.Image.prototype.getWindowCenter=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_WINDOW_CENTER[0],daikon.Tag.TAG_WINDOW_CENTER[1]),0)};daikon.Image.prototype.getPixelBandwidth=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_BANDWIDTH[0],daikon.Tag.TAG_PIXEL_BANDWIDTH[1]),0)};daikon.Image.prototype.getSeriesId=function(){var des=this.getSeriesDescription();var uid=this.getSeriesInstanceUID();var num=this.getSeriesNumber();var echo=this.getEchoNumber();var orientation=this.getOrientation();var cols=this.getCols();var rows=this.getRows();var id="";if(des!==null){id+=" "+des}if(uid!==null){id+=" "+uid}if(num!==null){id+=" "+num}if(echo!==null){id+=" "+echo}if(orientation!==null){id+=" "+orientation}id+=" ("+cols+" x "+rows+")";return id};daikon.Image.prototype.getPixelSpacing=function(){return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_SPACING[0],daikon.Tag.TAG_PIXEL_SPACING[1]))};daikon.Image.prototype.getImageType=function(){return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_TYPE[0],daikon.Tag.TAG_IMAGE_TYPE[1]))};daikon.Image.prototype.getBitsStored=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_BITS_STORED[0],daikon.Tag.TAG_BITS_STORED[1]),0)};daikon.Image.prototype.getBitsAllocated=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_BITS_ALLOCATED[0],daikon.Tag.TAG_BITS_ALLOCATED[1]),0)};daikon.Image.prototype.getFrameTime=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_FRAME_TIME[0],daikon.Tag.TAG_FRAME_TIME[1]),0)};daikon.Image.prototype.getAcquisitionMatrix=function(){var mat,matPrivate,start,end,str;mat=[0,0];mat[0]=daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ACQUISITION_MATRIX[0],daikon.Tag.TAG_ACQUISITION_MATRIX[1]),0);if(this.privateDataAll===null){this.privateDataAll=this.getAllInterpretedPrivateData()}if(this.privateDataAll!==null&&this.privateDataAll.length>0){start=this.privateDataAll.indexOf("AcquisitionMatrixText");if(start!==-1){end=this.privateDataAll.indexOf("\n",start);if(end!==-1){str=this.privateDataAll.substring(start,end);matPrivate=str.match(/\d+/g);if(matPrivate!==null&&matPrivate.length===2){mat[0]=matPrivate[0];mat[1]=matPrivate[1]}else if(matPrivate!==null&&matPrivate.length===1){mat[0]=matPrivate[0]}}}}if(mat[1]===0){mat[1]=mat[0]}return mat};daikon.Image.prototype.getTR=function(){return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TR,daikon.Tag.TAG_TR[1]),0)};daikon.Image.prototype.putTag=function(tag){if(this.tags[tag.id]&&this.tags[tag.id].value[0]!==tag.value[0]){return}this.tags[tag.id]=tag;this.putFlattenedTag(this.tagsFlat,tag)};daikon.Image.prototype.putFlattenedTag=function(tags,tag){var ctr;if(tag.sublist){for(ctr=0;ctrmax){max=value;maxIndex=dataCtr}}if(asObject){return{data:data,min:min,minIndex:minIndex,max:max,maxIndex:maxIndex,numCols:this.getCols(),numRows:this.getRows()}}return data};daikon.Image.prototype.convertPalette=function(){var data,reds,greens,blues,rgb,numBytes,numElements,ctr,index,rVal,gVal,bVal;data=this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0],daikon.Tag.TAG_PIXEL_DATA[1])].value;reds=this.getPalleteValues(daikon.Tag.TAG_PALETTE_RED);greens=this.getPalleteValues(daikon.Tag.TAG_PALETTE_GREEN);blues=this.getPalleteValues(daikon.Tag.TAG_PALETTE_BLUE);if(reds!==null&&reds.length>0&&greens!==null&&greens.length>0&&blues!==null&&blues.length>0&&!this.convertedPalette){rgb=new DataView(new ArrayBuffer(this.getRows()*this.getCols()*this.getNumberOfFrames()*3));numBytes=parseInt(Math.ceil(this.getBitsAllocated()/8));numElements=data.byteLength/numBytes;if(numBytes===1){for(ctr=0;ctrbiggest){biggest=Math.abs(dirCos[ctr]);bigRow=ctr}}biggest=0;for(;ctr<6;ctr+=1){if(Math.abs(dirCos[ctr])>biggest){biggest=Math.abs(dirCos[ctr]);bigCol=ctr}}switch(bigRow){case 0:orient+="X";if(bigCol===4){orient+="YZ"}else{orient+="ZY"}break;case 1:orient+="Y";if(bigCol===3){orient+="XZ"}else{orient+="ZX"}break;case 2:orient+="Z";if(bigCol===3){orient+="XY"}else{orient+="YX"}break;default:break}switch(bigRow){case 0:if(dirCos[bigRow]>0){orient+="-"}else{orient+="+"}if(bigCol===4){if(dirCos[bigCol]>0){orient+="-"}else{orient+="+"}}else{if(dirCos[bigCol]>0){orient+="+"}else{orient+="-"}}break;case 1:if(dirCos[bigRow]>0){orient+="-"}else{orient+="+"}if(bigCol===3){if(dirCos[bigCol]>0){orient+="-"}else{orient+="+"}}else{if(dirCos[bigCol]>0){orient+="+"}else{orient+="-"}}break;case 2:if(dirCos[bigRow]>0){orient+="+"}else{orient+="-"}if(dirCos[bigCol]>0){orient+="-"}else{orient+="+"}break;default:break}if(rowSpacing===0){orient+="+";orientation=orient}else{if(swapZ){switch(orient.charAt(2)){case"X":if(rowSpacing>0){orient+="-"}else{orient+="+"}break;case"Y":case"Z":if(rowSpacing>0){orient+="+"}else{orient+="-"}break;default:break}}else{switch(orient.charAt(2)){case"X":if(rowSpacing>0){orient+="+"}else{orient+="-"}break;case"Y":case"Z":if(rowSpacing>0){orient+="-"}else{orient+="+"}break;default:break}}orientation=orient}return orientation};daikon.Image.prototype.isMosaic=function(){var imageType,labeledAsMosaic=false,canReadAsMosaic,ctr,matSize;imageType=this.getImageType();if(imageType!==null){for(ctr=0;ctr0&&(matSize[0]1){dataConcat[ctr]=daikon.Utils.concatArrayBuffers2(data[ctr])}else{dataConcat[ctr]=data[ctr][0]}data[ctr]=null}return dataConcat};daikon.Image.prototype.getRLE=function(){var encapTags,numTags,ctr,data=[];encapTags=this.getEncapsulatedData();if(encapTags){numTags=encapTags.length;for(ctr=1;ctr"}}str=str.replace(/\n\s*\n/g,"\n");str=str.replace(/(?:\r\n|\r|\n)/g,"
");return str};daikon.Image.prototype.getPalleteValues=function(tagID){var valsBig,valsLittle,value,numVals,ctr,valsBigMax,valsBigMin,valsLittleMax,valsLittleMin,valsBigDiff,valsLittleDiff;valsBig=null;valsLittle=null;value=daikon.Image.getValueSafely(this.getTag(tagID[0],tagID[1]));if(value!==null){numVals=value.buffer.byteLength/2;valsBig=[];valsLittle=[];for(ctr=0;ctr255||min<0){slope=255/(max-min);intercept=min;for(ctr=0;ctr=this.metaFinishedOffset){this.needsDeflate=false;copyMeta=data.buffer.slice(0,tag.offsetEnd);copyDeflated=data.buffer.slice(tag.offsetEnd);this.inflated=daikon.Utils.concatArrayBuffers(copyMeta,fflate.decompressSync(new Uint8Array(copyDeflated)));data=new DataView(this.inflated)}tag=this.getNextTag(data,tag.offsetEnd)}}catch(err){this.error=err}if(image!==null){image.littleEndian=this.littleEndian}return image};daikon.Parser.prototype.parseEncapsulated=function(data){var offset=0,tag,tags=[];this.encapsulation=true;try{tag=this.getNextTag(data,offset);while(tag!==null){if(tag.isSublistItem()){tags.push(tag)}if(daikon.Parser.verbose){console.log(tag.toString())}tag=this.getNextTag(data,tag.offsetEnd)}}catch(err){this.error=err}return tags};daikon.Parser.prototype.testForValidTag=function(data){var offset,tag=null;try{offset=this.findFirstTagOffset(data);tag=this.getNextTag(data,offset,false)}catch(err){this.error=err}return tag};daikon.Parser.prototype.getNextTag=function(data,offset,testForTag){var group=0,element,value=null,offsetStart=offset,offsetValue,length=0,little=true,vr=null,tag;if(offset>=data.byteLength){return null}if(this.metaFinished){little=this.littleEndian;group=data.getUint16(offset,little)}else{group=data.getUint16(offset,true);if(this.metaFinishedOffset!==-1&&offset>=this.metaFinishedOffset||group!==2){this.metaFinished=true;little=this.littleEndian;group=data.getUint16(offset,little)}else{little=true}}if(!this.metaFound&&group===2){this.metaFound=true}offset+=2;element=data.getUint16(offset,little);offset+=2;if(this.explicit||!this.metaFinished){vr=daikon.Utils.getStringAt(data,offset,2);if(!this.metaFound&&this.metaFinished&&daikon.Parser.VRS.indexOf(vr)===-1){vr=daikon.Dictionary.getVR(group,element);length=data.getUint32(offset,little);offset+=4;this.explicit=false}else{offset+=2;if(daikon.Parser.DATA_VRS.indexOf(vr)!==-1){offset+=2;length=data.getUint32(offset,little);offset+=4}else{length=data.getUint16(offset,little);offset+=2}}}else{vr=daikon.Dictionary.getVR(group,element);length=data.getUint32(offset,little);if(length===daikon.Parser.UNDEFINED_LENGTH){vr="SQ"}offset+=4}offsetValue=offset;var isPixelData=group===daikon.Tag.TAG_PIXEL_DATA[0]&&element===daikon.Tag.TAG_PIXEL_DATA[1];var isLookupTableData=40===group&&element>=4609&&element<4864;if(vr==="SQ"||!isLookupTableData&&!isPixelData&&!this.encapsulation&&daikon.Parser.DATA_VRS.indexOf(vr)!==-1&&vr!=="UC"){value=this.parseSublist(data,offset,length,vr!=="SQ");if(length===daikon.Parser.UNDEFINED_LENGTH){length=value[value.length-1].offsetEnd-offset}}else if(length>0&&!testForTag){if(length===daikon.Parser.UNDEFINED_LENGTH){if(isPixelData){length=data.byteLength-offset}}value=data.buffer.slice(offset,offset+length)}offset+=length;tag=new daikon.Tag(group,element,vr,value,offsetStart,offsetValue,offset,this.littleEndian,this.charset);if(tag.value){if(tag.isTransformSyntax()){this.transformSyntaxAlreadyExist=true;if(tag.value[0]===daikon.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE){this.explicit=false;this.littleEndian=true}else if(tag.value[0]===daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG){this.explicit=true;this.littleEndian=false}else if(tag.value[0]===daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE){this.needsDeflate=true;this.explicit=true;this.littleEndian=true}else{this.explicit=true;this.littleEndian=true}}else if(tag.isMetaLength()){this.metaFinishedOffset=tag.value[0]+offset}else if(tag.isCharset()){var charset=tag.value;if(charset.length==2){charset=(charset[0]||"ISO 2022 IR 6")+"\\"+charset[1]}else if(charset.length==1){charset=charset[0]}this.charset=charset}}return tag};daikon.Parser.prototype.parseSublist=function(data,offset,length,raw){var sublistItem,offsetEnd=offset+length,tags=[];this.level++;if(length===daikon.Parser.UNDEFINED_LENGTH){sublistItem=this.parseSublistItem(data,offset,raw);while(!sublistItem.isSequenceDelim()){tags.push(sublistItem);offset=sublistItem.offsetEnd;sublistItem=this.parseSublistItem(data,offset,raw)}tags.push(sublistItem)}else{while(offset=0&&code<128){this.readLiteral(code)}else if(code<=-1&&code>-128){this.readEncoded(code)}else if(code===-128){console.warn("RLE: unsupported code!")}}this.segmentIndex+=1};daikon.RLE.prototype.readLiteral=function(code){var ctr,length=code+1;if(this.hasValidInput()){for(ctr=0;ctr1&&images[0].getTemporalPosition()!==null;hasTemporalNumber=numFrames>1&&images[0].getTemporalNumber()!==null&&images[0].getTemporalNumber()===numFrames;if(hasTemporalPosition&&hasTemporalNumber){for(ctr=0;ctr1||this.isMosaic&&this.images[0].length>1;this.isMultiFrameVolume=false;this.isMultiFrameTimeseries=false;this.isImplicitTimeseries=false;if(this.isMultiFrame){hasFrameTime=this.images[0].getFrameTime()>0;if(this.isMosaic){this.isMultiFrameTimeseries=true}else{if(hasFrameTime){this.isMultiFrameTimeseries=true}else if(this.numberOfFramesInFile>1){this.isMultiFrameTimeseries=true;this.numberOfFrames=this.images.length}else{this.isMultiFrameVolume=true}}}if(!this.isMosaic&&this.numberOfFrames<=1){imagePos=this.images[0].getImagePosition()||[];sliceLoc=imagePos.toString();this.numberOfFrames=0;for(ctr=0;ctr1){this.isImplicitTimeseries=true}}this.sliceDir=this.images[0].getAcquiredSliceDirection();if(daikon.Series.useExplicitOrdering){orderedImages=this.images.slice()}else{orderedImages=daikon.Series.orderDicoms(this.images,this.numberOfFrames,this.sliceDir)}sliceLocationFirst=orderedImages[0].getImagePositionSliceDir(this.sliceDir);sliceLocationLast=orderedImages[orderedImages.length-1].getImagePositionSliceDir(this.sliceDir);sliceLocDiff=sliceLocationLast-sliceLocationFirst;if(daikon.Series.useExplicitOrdering){this.sliceSense=false}else if(this.isMosaic){this.sliceSense=true}else if(this.isMultiFrame){sliceLocations=orderedImages[0].getSliceLocationVector();if(sliceLocations!==null){orientation=orderedImages[0].getOrientation();if(orientation.charAt(2)==="Z"){this.sliceSense=sliceLocations[0]-sliceLocations[sliceLocations.length-1]<0}else{this.sliceSense=sliceLocations[0]-sliceLocations[sliceLocations.length-1]>0}}else{this.sliceSense=sliceLocationFirst<0?false:true}}else{if(this.sliceDir===daikon.Image.SLICE_DIRECTION_SAGITTAL||this.sliceDir===daikon.Image.SLICE_DIRECTION_CORONAL){if(sliceLocDiff>0){this.sliceSense=false}else{this.sliceSense=true}}else{if(sliceLocDiff>0){this.sliceSense=true}else{this.sliceSense=false}}}this.imagesOriginalOrder=this.images;this.images=orderedImages};daikon.Series.prototype.concatenateImageData=function(progressMeter,onFinishedImageRead){var buffer,data,length;if(this.isMosaic){data=this.getMosaicData(this.images[0],this.images[0].getPixelDataBytes())}else{data=this.images[0].getPixelDataBytes()}length=this.validatePixelDataLength(this.images[0]);this.images[0].clearPixelData();buffer=new Uint8Array(new ArrayBuffer(length*this.images.length));buffer.set(new Uint8Array(data,0,length),0);setTimeout(daikon.Utils.bind(this,function(){this.concatenateNextImageData(buffer,length,progressMeter,1,onFinishedImageRead)}),0)};daikon.Series.prototype.concatenateNextImageData=function(buffer,frameSize,progressMeter,index,onFinishedImageRead){var data,length;if(index>=this.images.length){if(progressMeter){progressMeter.drawProgress(1,"Reading DICOM Images")}onFinishedImageRead(buffer.buffer)}else{if(progressMeter){progressMeter.drawProgress(index/this.images.length,"Reading DICOM Images")}if(this.isMosaic){data=this.getMosaicData(this.images[index],this.images[index].getPixelDataBytes())}else{data=this.images[index].getPixelDataBytes()}length=this.validatePixelDataLength(this.images[index]);this.images[index].clearPixelData();buffer.set(new Uint8Array(data,0,length),frameSize*index);setTimeout(daikon.Utils.bind(this,function(){this.concatenateNextImageData(buffer,frameSize,progressMeter,index+1,onFinishedImageRead)}),0)}};daikon.Series.prototype.validatePixelDataLength=function(image){var length=image.getPixelDataBytes().byteLength,sliceLength=image.getCols()*image.getRows();if(length%sliceLength===0){return length}return sliceLength*image.getNumberOfFrames()*image.getNumberOfSamplesPerPixel()*(image.getBitsAllocated()/8)};daikon.Series.prototype.getMosaicData=function(image,data){var mosaicWidth,mosaicHeight,mosaicRows,mosaicCols,mosaicRowHeight,mosaicColWidth,numBytes,ctrS,ctrR,ctrC,numSlices,numRows,numCols,buffer,dataTyped,offset,ctr,index=0;numBytes=parseInt(this.images[0].getBitsAllocated()/8);numSlices=this.images[0].getMosaicCols()*this.images[0].getMosaicRows();numRows=parseInt(this.images[0].getRows()/this.images[0].getMosaicRows());numCols=parseInt(this.images[0].getCols()/this.images[0].getMosaicCols());mosaicWidth=this.images[0].getCols();mosaicHeight=this.images[0].getRows();mosaicRows=this.images[0].getMosaicRows();mosaicCols=this.images[0].getMosaicCols();mosaicRowHeight=parseInt(mosaicHeight/mosaicRows);mosaicColWidth=parseInt(mosaicWidth/mosaicCols);buffer=new Uint8Array(new ArrayBuffer(numSlices*numRows*numCols*numBytes));dataTyped=new Uint8Array(data);for(ctrS=0;ctrSdaikon.Siemens.CSA2_MAGIC_NUMBER.length){match=true;for(ctr=0;ctr128){return this.output}offset+=4;offset+=4;for(ctr=0;ctrthis.data.buffer.length){return-1}offset+=16;if(itemLength>0){this.output+=this.readString(offset,itemLength)+" "}return offset+itemLength};daikon.Siemens.prototype.canRead=function(group,element){return group===daikon.Siemens.GROUP_CSA&&(element===daikon.Siemens.ELEMENT_CSA1||element===daikon.Siemens.ELEMENT_CSA2)};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=daikon.Siemens}},{"./utilities.js":32}],31:[function(require,module,exports){"use strict";var daikon=daikon||{};daikon.Utils=daikon.Utils||(typeof require!=="undefined"?require("./utilities.js"):null);daikon.Dictionary=daikon.Dictionary||(typeof require!=="undefined"?require("./dictionary.js"):null);daikon.Siemens=daikon.Siemens||(typeof require!=="undefined"?require("./siemens.js"):null);daikon.Tag=daikon.Tag||function(group,element,vr,value,offsetStart,offsetValue,offsetEnd,littleEndian,charset){this.group=group;this.element=element;this.vr=vr;this.offsetStart=offsetStart;this.offsetValue=offsetValue;this.offsetEnd=offsetEnd;this.sublist=false;this.preformatted=false;this.id=daikon.Tag.createId(group,element);if(value instanceof Array){this.value=value;this.sublist=true}else if(value!==null){var dv=new DataView(value);this.value=daikon.Tag.convertValue(vr,dv,littleEndian,charset);if(this.value===dv&&this.isPrivateData()){this.value=daikon.Tag.convertPrivateValue(group,element,dv);this.preformatted=this.value!==dv}}else{this.value=null}};daikon.Tag.PRIVATE_DATA_READERS=[daikon.Siemens];daikon.Tag.VR_AE_MAX_LENGTH=16;daikon.Tag.VR_AS_MAX_LENGTH=4;daikon.Tag.VR_AT_MAX_LENGTH=4;daikon.Tag.VR_CS_MAX_LENGTH=16;daikon.Tag.VR_DA_MAX_LENGTH=8;daikon.Tag.VR_DS_MAX_LENGTH=16;daikon.Tag.VR_DT_MAX_LENGTH=26;daikon.Tag.VR_FL_MAX_LENGTH=4;daikon.Tag.VR_FD_MAX_LENGTH=8;daikon.Tag.VR_IS_MAX_LENGTH=12;daikon.Tag.VR_LO_MAX_LENGTH=64;daikon.Tag.VR_LT_MAX_LENGTH=10240;daikon.Tag.VR_OB_MAX_LENGTH=-1;daikon.Tag.VR_OD_MAX_LENGTH=-1;daikon.Tag.VR_OF_MAX_LENGTH=-1;daikon.Tag.VR_OW_MAX_LENGTH=-1;daikon.Tag.VR_PN_MAX_LENGTH=64*5;daikon.Tag.VR_SH_MAX_LENGTH=16;daikon.Tag.VR_SL_MAX_LENGTH=4;daikon.Tag.VR_SS_MAX_LENGTH=2;daikon.Tag.VR_ST_MAX_LENGTH=1024;daikon.Tag.VR_TM_MAX_LENGTH=16;daikon.Tag.VR_UI_MAX_LENGTH=64;daikon.Tag.VR_UL_MAX_LENGTH=4;daikon.Tag.VR_UN_MAX_LENGTH=-1;daikon.Tag.VR_US_MAX_LENGTH=2;daikon.Tag.VR_UT_MAX_LENGTH=-1;daikon.Tag.VR_UC_MAX_LENGTH=-1;daikon.Tag.TAG_TRANSFER_SYNTAX=[2,16];daikon.Tag.TAG_META_LENGTH=[2,0];daikon.Tag.TAG_SUBLIST_ITEM=[65534,57344];daikon.Tag.TAG_SUBLIST_ITEM_DELIM=[65534,57357];daikon.Tag.TAG_SUBLIST_SEQ_DELIM=[65534,57565];daikon.Tag.TAG_ROWS=[40,16];daikon.Tag.TAG_COLS=[40,17];daikon.Tag.TAG_ACQUISITION_MATRIX=[24,4880];daikon.Tag.TAG_NUMBER_OF_FRAMES=[40,8];daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS=[32,261];daikon.Tag.TAG_PIXEL_SPACING=[40,48];daikon.Tag.TAG_SLICE_THICKNESS=[24,80];daikon.Tag.TAG_SLICE_GAP=[24,136];daikon.Tag.TAG_TR=[24,128];daikon.Tag.TAG_FRAME_TIME=[24,4195];daikon.Tag.TAG_BITS_ALLOCATED=[40,256];daikon.Tag.TAG_BITS_STORED=[40,257];daikon.Tag.TAG_PIXEL_REPRESENTATION=[40,259];daikon.Tag.TAG_HIGH_BIT=[40,258];daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION=[40,4];daikon.Tag.TAG_SAMPLES_PER_PIXEL=[40,2];daikon.Tag.TAG_PLANAR_CONFIG=[40,6];daikon.Tag.TAG_PALETTE_RED=[40,4609];daikon.Tag.TAG_PALETTE_GREEN=[40,4610];daikon.Tag.TAG_PALETTE_BLUE=[40,4611];daikon.Tag.TAG_DATA_SCALE_SLOPE=[40,4179];daikon.Tag.TAG_DATA_SCALE_INTERCEPT=[40,4178];daikon.Tag.TAG_DATA_SCALE_ELSCINT=[519,4127];daikon.Tag.TAG_PIXEL_BANDWIDTH=[24,149];daikon.Tag.TAG_IMAGE_MIN=[40,262];daikon.Tag.TAG_IMAGE_MAX=[40,263];daikon.Tag.TAG_WINDOW_CENTER=[40,4176];daikon.Tag.TAG_WINDOW_WIDTH=[40,4177];daikon.Tag.TAG_SPECIFIC_CHAR_SET=[8,5];daikon.Tag.TAG_PATIENT_NAME=[16,16];daikon.Tag.TAG_PATIENT_ID=[16,32];daikon.Tag.TAG_STUDY_DATE=[8,32];daikon.Tag.TAG_STUDY_TIME=[8,48];daikon.Tag.TAG_STUDY_DES=[8,4144];daikon.Tag.TAG_IMAGE_TYPE=[8,8];daikon.Tag.TAG_IMAGE_COMMENTS=[32,16384];daikon.Tag.TAG_SEQUENCE_NAME=[24,36];daikon.Tag.TAG_MODALITY=[8,96];daikon.Tag.TAG_FRAME_OF_REF_UID=[32,82];daikon.Tag.TAG_STUDY_UID=[32,13];daikon.Tag.TAG_SERIES_DESCRIPTION=[8,4158];daikon.Tag.TAG_SERIES_INSTANCE_UID=[32,14];daikon.Tag.TAG_SERIES_NUMBER=[32,17];daikon.Tag.TAG_ECHO_NUMBER=[24,134];daikon.Tag.TAG_TEMPORAL_POSITION=[32,256];daikon.Tag.TAG_IMAGE_NUM=[32,19];daikon.Tag.TAG_SLICE_LOCATION=[32,4161];daikon.Tag.TAG_IMAGE_ORIENTATION=[32,55];daikon.Tag.TAG_IMAGE_POSITION=[32,50];daikon.Tag.TAG_SLICE_LOCATION_VECTOR=[24,8197];daikon.Tag.TAG_LUT_SHAPE=[8272,32];daikon.Tag.TAG_PIXEL_DATA=[32736,16];daikon.Tag.createId=function(group,element){var groupStr=daikon.Utils.dec2hex(group),elemStr=daikon.Utils.dec2hex(element);return groupStr+elemStr};daikon.Tag.getUnsignedInteger16=function(rawData,littleEndian){var data,mul,ctr;mul=rawData.byteLength/2;data=[];for(ctr=0;ctr=4){year=parseInt(stringData[ctr].substring(0,4),10);if(stringData[ctr].length>=6){month=daikon.Utils.safeParseInt(stringData[ctr].substring(4,6))-1}if(stringData[ctr].length>=8){date=daikon.Utils.safeParseInt(stringData[ctr].substring(6,8))}if(stringData[ctr].length>=10){hours=daikon.Utils.safeParseInt(stringData[ctr].substring(8,10))}if(stringData[ctr].length>=12){minutes=daikon.Utils.safeParseInt(stringData[ctr].substring(10,12))}if(stringData[ctr].length>=14){seconds=daikon.Utils.safeParseInt(stringData[ctr].substring(12,14))}data[ctr]=new Date(year,month,date,hours,minutes,seconds)}else{data[ctr]=Date.parse(stringData[ctr])}if(!daikon.Utils.isValidDate(data[ctr])){data[ctr]=stringData[ctr]}}return data};daikon.Tag.getTimeStringValue=function(rawData,ms){var stringData=daikon.Tag.getStringValue(rawData),data=[];if(ms){var parts=null,ctr,hours=0,minutes=0,seconds=0;for(ctr=0;ctr1){minutes=daikon.Utils.safeParseInt(parts[1])}if(parts.length>2){seconds=daikon.Utils.safeParseFloat(parts[2])}}else{if(stringData[ctr].length>=2){hours=daikon.Utils.safeParseInt(stringData[ctr].substring(0,2))}if(stringData[ctr].length>=4){minutes=daikon.Utils.safeParseInt(stringData[ctr].substring(2,4))}if(stringData[ctr].length>=6){seconds=daikon.Utils.safeParseFloat(stringData[ctr].substring(4))}}data[ctr]=Math.round(hours*60*60*1e3+minutes*60*1e3+seconds*1e3)}return data}return stringData};daikon.Tag.getDoubleStringValue=function(rawData){var stringData=daikon.Tag.getStringValue(rawData),data=[],ctr;for(ctr=0;ctr]"}else{valueStr="["+this.value+"]"}}if(this.isSublistItem()){tagStr="Sequence Item"}else if(this.isSublistItemDelim()){tagStr="Sequence Item Delimiter"}else if(this.isSequenceDelim()){tagStr="Sequence Delimiter"}else if(this.isPixelData()){tagStr="Pixel Data"}else{des=daikon.Utils.convertCamcelCaseToTitleCase(daikon.Dictionary.getDescription(this.group,this.element))}if(html){return padding+""+tagStr+"   "+des+"   "+valueStr}else{return padding+" "+tagStr+" "+des+" "+valueStr}};daikon.Tag.prototype.toHTMLString=function(level){return this.toString(level,true)};daikon.Tag.prototype.isTransformSyntax=function(){return this.group===daikon.Tag.TAG_TRANSFER_SYNTAX[0]&&this.element===daikon.Tag.TAG_TRANSFER_SYNTAX[1]};daikon.Tag.prototype.isCharset=function(){return this.group===daikon.Tag.TAG_SPECIFIC_CHAR_SET[0]&&this.element===daikon.Tag.TAG_SPECIFIC_CHAR_SET[1]};daikon.Tag.prototype.isPixelData=function(){return this.group===daikon.Tag.TAG_PIXEL_DATA[0]&&this.element===daikon.Tag.TAG_PIXEL_DATA[1]};daikon.Tag.prototype.isPrivateData=function(){return(this.group&1)===1};daikon.Tag.prototype.hasInterpretedPrivateData=function(){return this.isPrivateData()&&daikon.Utils.isString(this.value)};daikon.Tag.prototype.isSublistItem=function(){return this.group===daikon.Tag.TAG_SUBLIST_ITEM[0]&&this.element===daikon.Tag.TAG_SUBLIST_ITEM[1]};daikon.Tag.prototype.isSublistItemDelim=function(){return this.group===daikon.Tag.TAG_SUBLIST_ITEM_DELIM[0]&&this.element===daikon.Tag.TAG_SUBLIST_ITEM_DELIM[1]};daikon.Tag.prototype.isSequenceDelim=function(){return this.group===daikon.Tag.TAG_SUBLIST_SEQ_DELIM[0]&&this.element===daikon.Tag.TAG_SUBLIST_SEQ_DELIM[1]};daikon.Tag.prototype.isMetaLength=function(){return this.group===daikon.Tag.TAG_META_LENGTH[0]&&this.element===daikon.Tag.TAG_META_LENGTH[1]};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=daikon.Tag}},{"./dictionary.js":22,"./siemens.js":30,"./utilities.js":32}],32:[function(require,module,exports){"use strict";var convertBytes=require("@wearemothership/dicom-character-set").convertBytes;var daikon=daikon||{};daikon.Utils=daikon.Utils||{};daikon.Utils.crcTable=null;daikon.Utils.MAX_VALUE=9007199254740991;daikon.Utils.MIN_VALUE=-9007199254740991;daikon.Utils.dec2hex=function(i){return(i+65536).toString(16).substr(-4).toUpperCase()};daikon.Utils.createArray=function(length){var arr=new Array(length||0),i=length;if(arguments.length>1){var args=Array.prototype.slice.call(arguments,1);while(i--)arr[length-1-i]=daikon.Utils.createArray.apply(this,args)}return arr};daikon.Utils.getStringAt=function(dataview,start,length,charset,vr){var strBuff=new Uint8Array(dataview.buffer,dataview.byteOffset+start,length);var str=convertBytes(charset||"ISO 2022 IR 6",strBuff,{vr:vr});while(str&&str.charCodeAt(str.length-1)===0){str=str.slice(0,-1)}return str};daikon.Utils.trim=function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"")};daikon.Utils.stripLeadingZeros=function(str){return str.replace(/^[0]+/g,"")};daikon.Utils.safeParseInt=function(str){str=daikon.Utils.stripLeadingZeros(str);if(str.length>0){return parseInt(str,10)}return 0};daikon.Utils.convertCamcelCaseToTitleCase=function(str){var result=str.replace(/([A-Z][a-z])/g," $1");return daikon.Utils.trim(result.charAt(0).toUpperCase()+result.slice(1))};daikon.Utils.safeParseFloat=function(str){str=daikon.Utils.stripLeadingZeros(str);if(str.length>0){return parseFloat(str)}return 0};daikon.Utils.bytesToDouble=function(data){var sign=(data[0]&1<<7)>>7;var exponent=(data[0]&127)<<4|(data[1]&15<<4)>>4;if(exponent==0)return 0;if(exponent==2047)return sign?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;var mul=Math.pow(2,exponent-1023-52);var mantissa=data[7]+data[6]*Math.pow(2,8)+data[5]*Math.pow(2,8*2)+data[4]*Math.pow(2,8*3)+data[3]*Math.pow(2,8*4)+data[2]*Math.pow(2,8*5)+(data[1]&15)*Math.pow(2,8*6)+Math.pow(2,52);return Math.pow(-1,sign)*mantissa*mul};daikon.Utils.concatArrayBuffers=function(buffer1,buffer2){var tmp=new Uint8Array(buffer1.byteLength+buffer2.byteLength);tmp.set(new Uint8Array(buffer1),0);tmp.set(new Uint8Array(buffer2),buffer1.byteLength);return tmp.buffer};daikon.Utils.concatArrayBuffers2=function(buffers){var length=0,offset=0,ctr;for(ctr=0;ctr>8&65280|val>>24&255};daikon.Utils.swap16=function(val){return((val&255)<<8|val>>8&255)<<16>>16};daikon.Utils.makeCRCTable=function(){var c;var crcTable=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}crcTable[n]=c}return crcTable};daikon.Utils.crc32=function(dataView){var crcTable=daikon.Utils.crcTable||(daikon.Utils.crcTable=daikon.Utils.makeCRCTable());var crc=0^-1;for(var i=0;i>>8^crcTable[(crc^dataView.getUint8(i))&255]}return(crc^-1)>>>0};daikon.Utils.createBitMask=function(numBytes,bitsStored,unsigned){var mask=4294967295;mask>>>=(4-numBytes)*8+(numBytes*8-bitsStored);if(unsigned){if(numBytes==1){mask&=255}else if(numBytes==2){mask&=65535}else if(numBytes==4){mask&=4294967295}else if(numBytes==8){mask=4294967295}}else{mask=4294967295}return mask};var moduleType=typeof module;if(moduleType!=="undefined"&&module.exports){module.exports=daikon.Utils}},{"@wearemothership/dicom-character-set":5}]},{},[25])(25)}); \ No newline at end of file +"use strict";var Ke=(p,T)=>()=>(T||p((T={exports:{}}).exports,T),T.exports);var Nn=Ke((xd,Qr)=>{"use strict";var a1=a1||{};a1.CompressionUtils=a1.CompressionUtils||{};a1.CompressionUtils.JPEG_MAGIC_NUMBER=[255,216];a1.CompressionUtils.JPEG2000_MAGIC_NUMBER=[255,79,255,81];a1.CompressionUtils.isHeaderJPEG=function(p){return p?!(p.getUint8(0)!==a1.CompressionUtils.JPEG_MAGIC_NUMBER[0]||p.getUint8(1)!==a1.CompressionUtils.JPEG_MAGIC_NUMBER[1]):!1};a1.CompressionUtils.isHeaderJPEG2000=function(p){var T;if(p){for(T=0;T{(function(p,T){typeof Zi=="object"&&typeof Un=="object"?Un.exports=T():typeof define=="function"&&define.amd?define([],T):typeof Zi=="object"?Zi["dicom-character-set"]=T():p["dicom-character-set"]=T()})(Zi,function(){return(()=>{"use strict";var p={d:(L0,S0)=>{for(var O0 in S0)p.o(S0,O0)&&!p.o(L0,O0)&&Object.defineProperty(L0,O0,{enumerable:!0,get:S0[O0]})},o:(L0,S0)=>Object.prototype.hasOwnProperty.call(L0,S0),r:L0=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(L0,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(L0,"__esModule",{value:!0})}},T={};p.r(T),p.d(T,{characterSets:()=>P,convertBytes:()=>function(L0,S0,O0){return b(V0,e,L0,S0,O0)},convertBytesPromise:()=>function(L0,S0,O0){return b(t0,z,L0,S0,O0)}});var A={codeElement:"G0",escapeSequence:[27,40,66],encoding:"windows-1252",isASCII:!0,bytesPerCodePoint:1},P={"ISO_IR 6":{encoding:"utf-8"},"ISO_IR 100":{encoding:"windows-1252"},"ISO_IR 101":{encoding:"iso-8859-2"},"ISO_IR 109":{encoding:"iso-8859-3"},"ISO_IR 110":{encoding:"iso-8859-4"},"ISO_IR 144":{encoding:"iso-8859-5"},"ISO_IR 127":{encoding:"iso-8859-6"},"ISO_IR 126":{encoding:"iso-8859-7"},"ISO_IR 138":{encoding:"iso-8859-8"},"ISO_IR 148":{encoding:"windows-1254"},"ISO_IR 13":{encoding:"shift-jis"},"ISO_IR 166":{encoding:"tis-620"},"ISO 2022 IR 6":{extension:!0,elements:[A]},"ISO 2022 IR 100":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,65],encoding:"windows-1252",bytesPerCodePoint:1}]},"ISO 2022 IR 101":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,66],encoding:"iso-8859-2",bytesPerCodePoint:1}]},"ISO 2022 IR 109":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,67],encoding:"iso-8859-3",bytesPerCodePoint:1}]},"ISO 2022 IR 110":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,68],encoding:"iso-8859-4",bytesPerCodePoint:1}]},"ISO 2022 IR 144":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,76],encoding:"iso-8859-5",bytesPerCodePoint:1}]},"ISO 2022 IR 127":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,71],encoding:"iso-8859-6",bytesPerCodePoint:1}]},"ISO 2022 IR 126":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,70],encoding:"iso-8859-7",bytesPerCodePoint:1}]},"ISO 2022 IR 138":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,72],encoding:"iso-8859-8",bytesPerCodePoint:1}]},"ISO 2022 IR 148":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,77],encoding:"windows-1254",bytesPerCodePoint:1}]},"ISO 2022 IR 13":{extension:!0,elements:[{codeElement:"G0",escapeSequence:[27,40,74],encoding:"shift-jis",bytesPerCodePoint:1},{codeElement:"G1",escapeSequence:[27,41,73],encoding:"shift-jis",bytesPerCodePoint:1}]},"ISO 2022 IR 166":{extension:!0,elements:[A,{codeElement:"G1",escapeSequence:[27,45,84],encoding:"tis-620",bytesPerCodePoint:1}]},"ISO 2022 IR 87":{extension:!0,multiByte:!0,elements:[{codeElement:"G0",escapeSequence:[27,36,66],encoding:"euc-jp",setHighBit:!0,bytesPerCodePoint:2}]},"ISO 2022 IR 159":{extension:!0,multiByte:!0,elements:[{codeElement:"G0",escapeSequence:[27,36,40,68],encoding:"euc-jp",isJISX0212:!0,bytesPerCodePoint:2}]},"ISO 2022 IR 149":{extension:!0,multiByte:!0,elements:[{codeElement:"G1",escapeSequence:[27,36,41,67],encoding:"euc-kr",bytesPerCodePoint:2}]},"ISO 2022 IR 58":{extension:!0,multiByte:!0,elements:[{codeElement:"G1",escapeSequence:[27,36,41,65],encoding:"gb18030",bytesPerCodePoint:2}]},"ISO_IR 192":{encoding:"utf-8",multiByte:!0},GB18030:{encoding:"gb18030",multiByte:!0},GBK:{encoding:"gbk",multiByte:!0}},F=27,M=10,G=12,Q=13,Y=9,X=92,J=61,m=94;function R(L0){return L0.replace(/~/g,"\u203E").replace(/\\/g,"\xA5")}function e(L0,S0,O0,_0,l0){return l0=C(S0,O0,_0,l0),L0+V0(S0.encoding,l0)}function z(L0,S0,O0,_0,l0){var u=C(S0,O0,_0,l0);return(L0===""?Promise.resolve(""):L0).then(function(q0){return t0(S0.encoding,u).then(function(d0){return q0+d0})})}function b(L0,S0,O0,_0,l0){return function(u,q0){if(q0&&!(q0 instanceof Uint8Array))throw new Error("bytes must be a Uint8Array");if(u&&typeof u!="string")throw new Error("specificCharacterSet must be a string")}(O0,_0),O0=function(u){if(u=u?u.split("\\").map(function(q0){return q0.trim().toUpperCase()}):[""],u[0]===""&&(u[0]=1=ee.length||ee[he+re]!==R0[re])return!1;return!0}(E0.escapeSequence,a0,D0))return E0}throw new Error("Unknown escape sequence encountered at byte "+D0)}(q0,T0,u),s0[u0.codeElement]=u0,P0+=u0.escapeSequence.length)}return v0}(O0.map(function(u){return P[u]}),_0,function(d0){var q0=(d0||"").trim().toUpperCase(),d0=[M,G,Q,Y];return["UT","ST","LT"].includes(q0)||d0.push(X),q0==="PN"&&(d0.push(J),d0.push(m)),d0}(l0.vr),S0))}var U0={};function V0(L0,S0){var O0=U0[L0];return O0||(O0=new TextDecoder(L0),U0[L0]=O0=L0==="shift-jis"?{textDecoder:O0,decode:function(_0){return R(O0.decode(_0))}}:O0),O0.decode(S0)}function t0(L0,S0){return new Promise(function(O0){var _0=new FileReader;_0.onload=L0==="shift-jis"?function(){return O0(R(_0.result))}:function(){return O0(_0.result)};var l0=new Blob([S0]);_0.readAsText(l0,L0)})}function f0(L0,S0){return 127{"use strict";var lk=Gf().convertBytes,$e=$e||{};$e.Utils=$e.Utils||{};$e.Utils.crcTable=null;$e.Utils.MAX_VALUE=9007199254740991;$e.Utils.MIN_VALUE=-9007199254740991;$e.Utils.dec2hex=function(p){return(p+65536).toString(16).substr(-4).toUpperCase()};$e.Utils.createArray=function(p){var T=new Array(p||0),A=p;if(arguments.length>1)for(var P=Array.prototype.slice.call(arguments,1);A--;)T[p-1-A]=$e.Utils.createArray.apply(this,P);return T};$e.Utils.getStringAt=function(p,T,A,P,F){for(var M=new Uint8Array(p.buffer,p.byteOffset+T,A),G=lk(P||"ISO 2022 IR 6",M,{vr:F});G&&G.charCodeAt(G.length-1)===0;)G=G.slice(0,-1);return G};$e.Utils.trim=function(p){return p.replace(/^\s\s*/,"").replace(/\s\s*$/,"")};$e.Utils.stripLeadingZeros=function(p){return p.replace(/^[0]+/g,"")};$e.Utils.safeParseInt=function(p){return p=$e.Utils.stripLeadingZeros(p),p.length>0?parseInt(p,10):0};$e.Utils.convertCamcelCaseToTitleCase=function(p){var T=p.replace(/([A-Z][a-z])/g," $1");return $e.Utils.trim(T.charAt(0).toUpperCase()+T.slice(1))};$e.Utils.safeParseFloat=function(p){return p=$e.Utils.stripLeadingZeros(p),p.length>0?parseFloat(p):0};$e.Utils.bytesToDouble=function(p){var T=(p[0]&128)>>7,A=(p[0]&127)<<4|(p[1]&15<<4)>>4;if(A==0)return 0;if(A==2047)return T?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;var P=Math.pow(2,A-1023-52),F=p[7]+p[6]*Math.pow(2,8)+p[5]*Math.pow(2,8*2)+p[4]*Math.pow(2,8*3)+p[3]*Math.pow(2,8*4)+p[2]*Math.pow(2,8*5)+(p[1]&15)*Math.pow(2,8*6)+Math.pow(2,52);return Math.pow(-1,T)*F*P};$e.Utils.concatArrayBuffers=function(p,T){var A=new Uint8Array(p.byteLength+T.byteLength);return A.set(new Uint8Array(p),0),A.set(new Uint8Array(T),p.byteLength),A.buffer};$e.Utils.concatArrayBuffers2=function(p){var T=0,A=0,P;for(P=0;P>8&65280|p>>24&255};$e.Utils.swap16=function(p){return((p&255)<<8|p>>8&255)<<16>>16};$e.Utils.makeCRCTable=function(){for(var p,T=[],A=0;A<256;A++){p=A;for(var P=0;P<8;P++)p=p&1?3988292384^p>>>1:p>>>1;T[A]=p}return T};$e.Utils.crc32=function(p){for(var T=$e.Utils.crcTable||($e.Utils.crcTable=$e.Utils.makeCRCTable()),A=-1,P=0;P>>8^T[(A^p.getUint8(P))&255];return(A^-1)>>>0};$e.Utils.createBitMask=function(p,T,A){var P=4294967295;return P>>>=(4-p)*8+(p*8-T),A?p==1?P&=255:p==2?P&=65535:p==4?P&=4294967295:p==8&&(P=4294967295):P=4294967295,P};var uk=typeof Gr;uk!=="undefined"&&Gr.exports&&(Gr.exports=$e.Utils)});var Hr=Ke((Nd,Vr)=>{"use strict";var A2=A2||{};A2.Dictionary=A2.Dictionary||{};A2.Utils=A2.Utils||(typeof require<"u"?J1():null);A2.Dictionary.dictPrivate={"0207":{"101F":["FE","ElscintDataScale"]}};A2.Dictionary.dict={"0002":{"0001":["OB","FileMetaInformationVersion"],"0002":["UI","MediaStoredSOPClassUID"],"0003":["UI","MediaStoredSOPInstanceUID"],"0010":["UI","TransferSyntaxUID"],"0012":["UI","ImplementationClassUID"],"0013":["SH","ImplementationVersionName"],"0016":["AE","SourceApplicationEntityTitle"],"0100":["UI","PrivateInformationCreatorUID"],"0102":["OB","PrivateInformation"]},"0004":{1130:["CS","FilesetID"],1141:["CS","FilesetDescriptorFileFileID"],1142:["CS","FilesetDescriptorFileFormat"],1200:["UL","RootDirectoryEntitysFirstDirectoryRecordOffset"],1202:["UL","RootDirectoryEntitysLastDirectoryRecordOffset"],1212:["US","File-setConsistenceFlag"],1220:["SQ","DirectoryRecordSequence"],1400:["UL","NextDirectoryRecordOffset"],1410:["US","RecordInuseFlag"],1420:["UL","ReferencedLowerlevelDirectoryEntityOffset"],1430:["CS","DirectoryRecordType"],1432:["UI","PrivateRecordUID"],1500:["CS","ReferencedFileID"],1510:["UI","ReferencedSOPClassUIDInFile"],1511:["UI","ReferencedSOPInstanceUIDInFile"],1600:["UL","NumberOfReferences"]},"0008":{"0001":["UL","LengthToEnd"],"0005":["CS","SpecificCharacterSet"],"0006":["SQ","LanguageCodeSequence"],"0008":["CS","ImageType"],"0010":["SH","RecognitionCode"],"0012":["DA","InstanceCreationDate"],"0013":["TM","InstanceCreationTime"],"0014":["UI","InstanceCreatorUID"],"0016":["UI","SOPClassUID"],"0018":["UI","SOPInstanceUID"],"001A":["UI","RelatedGeneralSOPClassUID"],"001B":["UI","OriginalSpecializedSOPClassUID"],"0020":["DA","StudyDate"],"0021":["DA","SeriesDate"],"0022":["DA","AcquisitionDate"],"0023":["DA","ContentDate"],"0024":["DA","OverlayDate"],"0025":["DA","CurveDate"],"002A":["DT","AcquisitionDateTime"],"0030":["TM","StudyTime"],"0031":["TM","SeriesTime"],"0032":["TM","AcquisitionTime"],"0033":["TM","ContentTime"],"0034":["TM","OverlayTime"],"0035":["TM","CurveTime"],"0040":["US","DataSetType"],"0041":["LO","DataSetSubtype"],"0042":["CS","NuclearMedicineSeriesType"],"0050":["SH","AccessionNumber"],"0051":["SQ","IssuerOfAccessionNumberSequence"],"0052":["CS","QueryRetrieveLevel"],"0054":["AE","RetrieveAETitle"],"0056":["CS","InstanceAvailability"],"0058":["UI","FailedSOPInstanceUIDList"],"0060":["CS","Modality"],"0061":["CS","ModalitiesInStudy"],"0062":["UI","SOPClassesInStudy"],"0064":["CS","ConversionType"],"0068":["CS","PresentationIntentType"],"0070":["LO","Manufacturer"],"0080":["LO","InstitutionName"],"0081":["ST","InstitutionAddress"],"0082":["SQ","InstitutionCodeSequence"],"0090":["PN","ReferringPhysicianName"],"0092":["ST","ReferringPhysicianAddress"],"0094":["SH","ReferringPhysicianTelephoneNumbers"],"0096":["SQ","ReferringPhysicianIdentificationSequence"],"0100":["SH","CodeValue"],"0102":["SH","CodingSchemeDesignator"],"0103":["SH","CodingSchemeVersion"],"0104":["LO","CodeMeaning"],"0105":["CS","MappingResource"],"0106":["DT","ContextGroupVersion"],"0107":["DT","ContextGroupLocalVersion"],"010B":["CS","ContextGroupExtensionFlag"],"010C":["UI","CodingSchemeUID"],"010D":["UI","ContextGroupExtensionCreatorUID"],"010F":["CS","ContextIdentifier"],"0110":["SQ","CodingSchemeIdentificationSequence"],"0112":["LO","CodingSchemeRegistry"],"0114":["ST","CodingSchemeExternalID"],"0115":["ST","CodingSchemeName"],"0116":["ST","CodingSchemeResponsibleOrganization"],"0117":["UI","ContextUID"],"0201":["SH","TimezoneOffsetFromUTC"],1e3:["AE","NetworkID"],1010:["SH","StationName"],1030:["LO","StudyDescription"],1032:["SQ","ProcedureCodeSequence"],"103E":["LO","SeriesDescription"],"103F":["SQ","SeriesDescriptionCodeSequence"],1040:["LO","InstitutionalDepartmentName"],1048:["PN","PhysiciansOfRecord"],1049:["SQ","PhysiciansOfRecordIdentificationSequence"],1050:["PN","PerformingPhysicianName"],1052:["SQ","PerformingPhysicianIdentificationSequence"],1060:["PN","NameOfPhysiciansReadingStudy"],1062:["SQ","PhysiciansReadingStudyIdentificationSequence"],1070:["PN","OperatorsName"],1072:["SQ","OperatorIdentificationSequence"],1080:["LO","AdmittingDiagnosesDescription"],1084:["SQ","AdmittingDiagnosesCodeSequence"],1090:["LO","ManufacturerModelName"],1100:["SQ","ReferencedResultsSequence"],1110:["SQ","ReferencedStudySequence"],1111:["SQ","ReferencedPerformedProcedureStepSequence"],1115:["SQ","ReferencedSeriesSequence"],1120:["SQ","ReferencedPatientSequence"],1125:["SQ","ReferencedVisitSequence"],1130:["SQ","ReferencedOverlaySequence"],1134:["SQ","ReferencedStereometricInstanceSequence"],"113A":["SQ","ReferencedWaveformSequence"],1140:["SQ","ReferencedImageSequence"],1145:["SQ","ReferencedCurveSequence"],"114A":["SQ","ReferencedInstanceSequence"],"114B":["SQ","ReferencedRealWorldValueMappingInstanceSequence"],1150:["UI","ReferencedSOPClassUID"],1155:["UI","ReferencedSOPInstanceUID"],"115A":["UI","SOPClassesSupported"],1160:["IS","ReferencedFrameNumber"],1161:["UL","SimpleFrameList"],1162:["UL","CalculatedFrameList"],1163:["FD","TimeRange"],1164:["SQ","FrameExtractionSequence"],1167:["UI","MultiFrameSourceSOPInstanceUID"],1195:["UI","TransactionUID"],1197:["US","FailureReason"],1198:["SQ","FailedSOPSequence"],1199:["SQ","ReferencedSOPSequence"],1200:["SQ","StudiesContainingOtherReferencedInstancesSequence"],1250:["SQ","RelatedSeriesSequence"],2110:["CS","LossyImageCompressionRetired"],2111:["ST","DerivationDescription"],2112:["SQ","SourceImageSequence"],2120:["SH","StageName"],2122:["IS","StageNumber"],2124:["IS","NumberOfStages"],2127:["SH","ViewName"],2128:["IS","ViewNumber"],2129:["IS","NumberOfEventTimers"],"212A":["IS","NumberOfViewsInStage"],2130:["DS","EventElapsedTimes"],2132:["LO","EventTimerNames"],2133:["SQ","EventTimerSequence"],2134:["FD","EventTimeOffset"],2135:["SQ","EventCodeSequence"],2142:["IS","StartTrim"],2143:["IS","StopTrim"],2144:["IS","RecommendedDisplayFrameRate"],2200:["CS","TransducerPosition"],2204:["CS","TransducerOrientation"],2208:["CS","AnatomicStructure"],2218:["SQ","AnatomicRegionSequence"],2220:["SQ","AnatomicRegionModifierSequence"],2228:["SQ","PrimaryAnatomicStructureSequence"],2229:["SQ","AnatomicStructureSpaceOrRegionSequence"],2230:["SQ","PrimaryAnatomicStructureModifierSequence"],2240:["SQ","TransducerPositionSequence"],2242:["SQ","TransducerPositionModifierSequence"],2244:["SQ","TransducerOrientationSequence"],2246:["SQ","TransducerOrientationModifierSequence"],2251:["SQ","AnatomicStructureSpaceOrRegionCodeSequenceTrial"],2253:["SQ","AnatomicPortalOfEntranceCodeSequenceTrial"],2255:["SQ","AnatomicApproachDirectionCodeSequenceTrial"],2256:["ST","AnatomicPerspectiveDescriptionTrial"],2257:["SQ","AnatomicPerspectiveCodeSequenceTrial"],2258:["ST","AnatomicLocationOfExaminingInstrumentDescriptionTrial"],2259:["SQ","AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"],"225A":["SQ","AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"],"225C":["SQ","OnAxisBackgroundAnatomicStructureCodeSequenceTrial"],3001:["SQ","AlternateRepresentationSequence"],3010:["UI","IrradiationEventUID"],4e3:["LT","IdentifyingComments"],9007:["CS","FrameType"],9092:["SQ","ReferencedImageEvidenceSequence"],9121:["SQ","ReferencedRawDataSequence"],9123:["UI","CreatorVersionUID"],9124:["SQ","DerivationImageSequence"],9154:["SQ","SourceImageEvidenceSequence"],9205:["CS","PixelPresentation"],9206:["CS","VolumetricProperties"],9207:["CS","VolumeBasedCalculationTechnique"],9208:["CS","ComplexImageComponent"],9209:["CS","AcquisitionContrast"],9215:["SQ","DerivationCodeSequence"],9237:["SQ","ReferencedPresentationStateSequence"],9410:["SQ","ReferencedOtherPlaneSequence"],9458:["SQ","FrameDisplaySequence"],9459:["FL","RecommendedDisplayFrameRateInFloat"],9460:["CS","SkipFrameRangeFlag"]},"0010":{"0010":["PN","PatientName"],"0020":["LO","PatientID"],"0021":["LO","IssuerOfPatientID"],"0022":["CS","TypeOfPatientID"],"0024":["SQ","IssuerOfPatientIDQualifiersSequence"],"0030":["DA","PatientBirthDate"],"0032":["TM","PatientBirthTime"],"0040":["CS","PatientSex"],"0050":["SQ","PatientInsurancePlanCodeSequence"],"0101":["SQ","PatientPrimaryLanguageCodeSequence"],"0102":["SQ","PatientPrimaryLanguageModifierCodeSequence"],1e3:["LO","OtherPatientIDs"],1001:["PN","OtherPatientNames"],1002:["SQ","OtherPatientIDsSequence"],1005:["PN","PatientBirthName"],1010:["AS","PatientAge"],1020:["DS","PatientSize"],1021:["SQ","PatientSizeCodeSequence"],1030:["DS","PatientWeight"],1040:["LO","PatientAddress"],1050:["LO","InsurancePlanIdentification"],1060:["PN","PatientMotherBirthName"],1080:["LO","MilitaryRank"],1081:["LO","BranchOfService"],1090:["LO","MedicalRecordLocator"],2e3:["LO","MedicalAlerts"],2110:["LO","Allergies"],2150:["LO","CountryOfResidence"],2152:["LO","RegionOfResidence"],2154:["SH","PatientTelephoneNumbers"],2160:["SH","EthnicGroup"],2180:["SH","Occupation"],"21A0":["CS","SmokingStatus"],"21B0":["LT","AdditionalPatientHistory"],"21C0":["US","PregnancyStatus"],"21D0":["DA","LastMenstrualDate"],"21F0":["LO","PatientReligiousPreference"],2201:["LO","PatientSpeciesDescription"],2202:["SQ","PatientSpeciesCodeSequence"],2203:["CS","PatientSexNeutered"],2210:["CS","AnatomicalOrientationType"],2292:["LO","PatientBreedDescription"],2293:["SQ","PatientBreedCodeSequence"],2294:["SQ","BreedRegistrationSequence"],2295:["LO","BreedRegistrationNumber"],2296:["SQ","BreedRegistryCodeSequence"],2297:["PN","ResponsiblePerson"],2298:["CS","ResponsiblePersonRole"],2299:["LO","ResponsibleOrganization"],4e3:["LT","PatientComments"],9431:["FL","ExaminedBodyThickness"]},"0012":{"0010":["LO","ClinicalTrialSponsorName"],"0020":["LO","ClinicalTrialProtocolID"],"0021":["LO","ClinicalTrialProtocolName"],"0030":["LO","ClinicalTrialSiteID"],"0031":["LO","ClinicalTrialSiteName"],"0040":["LO","ClinicalTrialSubjectID"],"0042":["LO","ClinicalTrialSubjectReadingID"],"0050":["LO","ClinicalTrialTimePointID"],"0051":["ST","ClinicalTrialTimePointDescription"],"0060":["LO","ClinicalTrialCoordinatingCenterName"],"0062":["CS","PatientIdentityRemoved"],"0063":["LO","DeidentificationMethod"],"0064":["SQ","DeidentificationMethodCodeSequence"],"0071":["LO","ClinicalTrialSeriesID"],"0072":["LO","ClinicalTrialSeriesDescription"],"0081":["LO","ClinicalTrialProtocolEthicsCommitteeName"],"0082":["LO","ClinicalTrialProtocolEthicsCommitteeApprovalNumber"],"0083":["SQ","ConsentForClinicalTrialUseSequence"],"0084":["CS","DistributionType"],"0085":["CS","ConsentForDistributionFlag"]},"0014":{"0023":["ST","CADFileFormat"],"0024":["ST","ComponentReferenceSystem"],"0025":["ST","ComponentManufacturingProcedure"],"0028":["ST","ComponentManufacturer"],"0030":["DS","MaterialThickness"],"0032":["DS","MaterialPipeDiameter"],"0034":["DS","MaterialIsolationDiameter"],"0042":["ST","MaterialGrade"],"0044":["ST","MaterialPropertiesFileID"],"0045":["ST","MaterialPropertiesFileFormat"],"0046":["LT","MaterialNotes"],"0050":["CS","ComponentShape"],"0052":["CS","CurvatureType"],"0054":["DS","OuterDiameter"],"0056":["DS","InnerDiameter"],1010:["ST","ActualEnvironmentalConditions"],1020:["DA","ExpiryDate"],1040:["ST","EnvironmentalConditions"],2002:["SQ","EvaluatorSequence"],2004:["IS","EvaluatorNumber"],2006:["PN","EvaluatorName"],2008:["IS","EvaluationAttempt"],2012:["SQ","IndicationSequence"],2014:["IS","IndicationNumber "],2016:["SH","IndicationLabel"],2018:["ST","IndicationDescription"],"201A":["CS","IndicationType"],"201C":["CS","IndicationDisposition"],"201E":["SQ","IndicationROISequence"],2030:["SQ","IndicationPhysicalPropertySequence"],2032:["SH","PropertyLabel"],2202:["IS","CoordinateSystemNumberOfAxes "],2204:["SQ","CoordinateSystemAxesSequence"],2206:["ST","CoordinateSystemAxisDescription"],2208:["CS","CoordinateSystemDataSetMapping"],"220A":["IS","CoordinateSystemAxisNumber"],"220C":["CS","CoordinateSystemAxisType"],"220E":["CS","CoordinateSystemAxisUnits"],2210:["OB","CoordinateSystemAxisValues"],2220:["SQ","CoordinateSystemTransformSequence"],2222:["ST","TransformDescription"],2224:["IS","TransformNumberOfAxes"],2226:["IS","TransformOrderOfAxes"],2228:["CS","TransformedAxisUnits"],"222A":["DS","CoordinateSystemTransformRotationAndScaleMatrix"],"222C":["DS","CoordinateSystemTransformTranslationMatrix"],3011:["DS","InternalDetectorFrameTime"],3012:["DS","NumberOfFramesIntegrated"],3020:["SQ","DetectorTemperatureSequence"],3022:["DS","SensorName"],3024:["DS","HorizontalOffsetOfSensor"],3026:["DS","VerticalOffsetOfSensor"],3028:["DS","SensorTemperature"],3040:["SQ","DarkCurrentSequence"],3050:["OB","DarkCurrentCounts"],3060:["SQ","GainCorrectionReferenceSequence"],3070:["OB","AirCounts"],3071:["DS","KVUsedInGainCalibration"],3072:["DS","MAUsedInGainCalibration"],3073:["DS","NumberOfFramesUsedForIntegration"],3074:["LO","FilterMaterialUsedInGainCalibration"],3075:["DS","FilterThicknessUsedInGainCalibration"],3076:["DA","DateOfGainCalibration"],3077:["TM","TimeOfGainCalibration"],3080:["OB","BadPixelImage"],3099:["LT","CalibrationNotes"],4002:["SQ","PulserEquipmentSequence"],4004:["CS","PulserType"],4006:["LT","PulserNotes"],4008:["SQ","ReceiverEquipmentSequence"],"400A":["CS","AmplifierType"],"400C":["LT","ReceiverNotes"],"400E":["SQ","PreAmplifierEquipmentSequence"],"400F":["LT","PreAmplifierNotes"],4010:["SQ","TransmitTransducerSequence"],4011:["SQ","ReceiveTransducerSequence"],4012:["US","NumberOfElements"],4013:["CS","ElementShape"],4014:["DS","ElementDimensionA"],4015:["DS","ElementDimensionB"],4016:["DS","ElementPitch"],4017:["DS","MeasuredBeamDimensionA"],4018:["DS","MeasuredBeamDimensionB"],4019:["DS","LocationOfMeasuredBeamDiameter"],"401A":["DS","NominalFrequency"],"401B":["DS","MeasuredCenterFrequency"],"401C":["DS","MeasuredBandwidth"],4020:["SQ","PulserSettingsSequence"],4022:["DS","PulseWidth"],4024:["DS","ExcitationFrequency"],4026:["CS","ModulationType"],4028:["DS","Damping"],4030:["SQ","ReceiverSettingsSequence"],4031:["DS","AcquiredSoundpathLength"],4032:["CS","AcquisitionCompressionType"],4033:["IS","AcquisitionSampleSize"],4034:["DS","RectifierSmoothing"],4035:["SQ","DACSequence"],4036:["CS","DACType"],4038:["DS","DACGainPoints"],"403A":["DS","DACTimePoints"],"403C":["DS","DACAmplitude"],4040:["SQ","PreAmplifierSettingsSequence"],4050:["SQ","TransmitTransducerSettingsSequence"],4051:["SQ","ReceiveTransducerSettingsSequence"],4052:["DS","IncidentAngle"],4054:["ST","CouplingTechnique"],4056:["ST","CouplingMedium"],4057:["DS","CouplingVelocity"],4058:["DS","CrystalCenterLocationX"],4059:["DS","CrystalCenterLocationZ"],"405A":["DS","SoundPathLength"],"405C":["ST","DelayLawIdentifier"],4060:["SQ","GateSettingsSequence"],4062:["DS","GateThreshold"],4064:["DS","VelocityOfSound"],4070:["SQ","CalibrationSettingsSequence"],4072:["ST","CalibrationProcedure"],4074:["SH","ProcedureVersion"],4076:["DA","ProcedureCreationDate"],4078:["DA","ProcedureExpirationDate"],"407A":["DA","ProcedureLastModifiedDate"],"407C":["TM","CalibrationTime"],"407E":["DA","CalibrationDate"],5002:["IS","LINACEnergy"],5004:["IS","LINACOutput"]},"0018":{"0010":["LO","ContrastBolusAgent"],"0012":["SQ","ContrastBolusAgentSequence"],"0014":["SQ","ContrastBolusAdministrationRouteSequence"],"0015":["CS","BodyPartExamined"],"0020":["CS","ScanningSequence"],"0021":["CS","SequenceVariant"],"0022":["CS","ScanOptions"],"0023":["CS","MRAcquisitionType"],"0024":["SH","SequenceName"],"0025":["CS","AngioFlag"],"0026":["SQ","InterventionDrugInformationSequence"],"0027":["TM","InterventionDrugStopTime"],"0028":["DS","InterventionDrugDose"],"0029":["SQ","InterventionDrugCodeSequence"],"002A":["SQ","AdditionalDrugSequence"],"0030":["LO","Radionuclide"],"0031":["LO","Radiopharmaceutical"],"0032":["DS","EnergyWindowCenterline"],"0033":["DS","EnergyWindowTotalWidth"],"0034":["LO","InterventionDrugName"],"0035":["TM","InterventionDrugStartTime"],"0036":["SQ","InterventionSequence"],"0037":["CS","TherapyType"],"0038":["CS","InterventionStatus"],"0039":["CS","TherapyDescription"],"003A":["ST","InterventionDescription"],"0040":["IS","CineRate"],"0042":["CS","InitialCineRunState"],"0050":["DS","SliceThickness"],"0060":["DS","KVP"],"0070":["IS","CountsAccumulated"],"0071":["CS","AcquisitionTerminationCondition"],"0072":["DS","EffectiveDuration"],"0073":["CS","AcquisitionStartCondition"],"0074":["IS","AcquisitionStartConditionData"],"0075":["IS","AcquisitionTerminationConditionData"],"0080":["DS","RepetitionTime"],"0081":["DS","EchoTime"],"0082":["DS","InversionTime"],"0083":["DS","NumberOfAverages"],"0084":["DS","ImagingFrequency"],"0085":["SH","ImagedNucleus"],"0086":["IS","EchoNumbers"],"0087":["DS","MagneticFieldStrength"],"0088":["DS","SpacingBetweenSlices"],"0089":["IS","NumberOfPhaseEncodingSteps"],"0090":["DS","DataCollectionDiameter"],"0091":["IS","EchoTrainLength"],"0093":["DS","PercentSampling"],"0094":["DS","PercentPhaseFieldOfView"],"0095":["DS","PixelBandwidth"],1e3:["LO","DeviceSerialNumber"],1002:["UI","DeviceUID"],1003:["LO","DeviceID"],1004:["LO","PlateID"],1005:["LO","GeneratorID"],1006:["LO","GridID"],1007:["LO","CassetteID"],1008:["LO","GantryID"],1010:["LO","SecondaryCaptureDeviceID"],1011:["LO","HardcopyCreationDeviceID"],1012:["DA","DateOfSecondaryCapture"],1014:["TM","TimeOfSecondaryCapture"],1016:["LO","SecondaryCaptureDeviceManufacturer"],1017:["LO","HardcopyDeviceManufacturer"],1018:["LO","SecondaryCaptureDeviceManufacturerModelName"],1019:["LO","SecondaryCaptureDeviceSoftwareVersions"],"101A":["LO","HardcopyDeviceSoftwareVersion"],"101B":["LO","HardcopyDeviceManufacturerModelName"],1020:["LO","SoftwareVersions"],1022:["SH","VideoImageFormatAcquired"],1023:["LO","DigitalImageFormatAcquired"],1030:["LO","ProtocolName"],1040:["LO","ContrastBolusRoute"],1041:["DS","ContrastBolusVolume"],1042:["TM","ContrastBolusStartTime"],1043:["TM","ContrastBolusStopTime"],1044:["DS","ContrastBolusTotalDose"],1045:["IS","SyringeCounts"],1046:["DS","ContrastFlowRate"],1047:["DS","ContrastFlowDuration"],1048:["CS","ContrastBolusIngredient"],1049:["DS","ContrastBolusIngredientConcentration"],1050:["DS","SpatialResolution"],1060:["DS","TriggerTime"],1061:["LO","TriggerSourceOrType"],1062:["IS","NominalInterval"],1063:["DS","FrameTime"],1064:["LO","CardiacFramingType"],1065:["DS","FrameTimeVector"],1066:["DS","FrameDelay"],1067:["DS","ImageTriggerDelay"],1068:["DS","MultiplexGroupTimeOffset"],1069:["DS","TriggerTimeOffset"],"106A":["CS","SynchronizationTrigger"],"106C":["US","SynchronizationChannel"],"106E":["UL","TriggerSamplePosition"],1070:["LO","RadiopharmaceuticalRoute"],1071:["DS","RadiopharmaceuticalVolume"],1072:["TM","RadiopharmaceuticalStartTime"],1073:["TM","RadiopharmaceuticalStopTime"],1074:["DS","RadionuclideTotalDose"],1075:["DS","RadionuclideHalfLife"],1076:["DS","RadionuclidePositronFraction"],1077:["DS","RadiopharmaceuticalSpecificActivity"],1078:["DT","RadiopharmaceuticalStartDateTime"],1079:["DT","RadiopharmaceuticalStopDateTime"],1080:["CS","BeatRejectionFlag"],1081:["IS","LowRRValue"],1082:["IS","HighRRValue"],1083:["IS","IntervalsAcquired"],1084:["IS","IntervalsRejected"],1085:["LO","PVCRejection"],1086:["IS","SkipBeats"],1088:["IS","HeartRate"],1090:["IS","CardiacNumberOfImages"],1094:["IS","TriggerWindow"],1100:["DS","ReconstructionDiameter"],1110:["DS","DistanceSourceToDetector"],1111:["DS","DistanceSourceToPatient"],1114:["DS","EstimatedRadiographicMagnificationFactor"],1120:["DS","GantryDetectorTilt"],1121:["DS","GantryDetectorSlew"],1130:["DS","TableHeight"],1131:["DS","TableTraverse"],1134:["CS","TableMotion"],1135:["DS","TableVerticalIncrement"],1136:["DS","TableLateralIncrement"],1137:["DS","TableLongitudinalIncrement"],1138:["DS","TableAngle"],"113A":["CS","TableType"],1140:["CS","RotationDirection"],1141:["DS","AngularPosition"],1142:["DS","RadialPosition"],1143:["DS","ScanArc"],1144:["DS","AngularStep"],1145:["DS","CenterOfRotationOffset"],1146:["DS","RotationOffset"],1147:["CS","FieldOfViewShape"],1149:["IS","FieldOfViewDimensions"],1150:["IS","ExposureTime"],1151:["IS","XRayTubeCurrent"],1152:["IS","Exposure"],1153:["IS","ExposureInuAs"],1154:["DS","AveragePulseWidth"],1155:["CS","RadiationSetting"],1156:["CS","RectificationType"],"115A":["CS","RadiationMode"],"115E":["DS","ImageAndFluoroscopyAreaDoseProduct"],1160:["SH","FilterType"],1161:["LO","TypeOfFilters"],1162:["DS","IntensifierSize"],1164:["DS","ImagerPixelSpacing"],1166:["CS","Grid"],1170:["IS","GeneratorPower"],1180:["SH","CollimatorGridName"],1181:["CS","CollimatorType"],1182:["IS","FocalDistance"],1183:["DS","XFocusCenter"],1184:["DS","YFocusCenter"],1190:["DS","FocalSpots"],1191:["CS","AnodeTargetMaterial"],"11A0":["DS","BodyPartThickness"],"11A2":["DS","CompressionForce"],1200:["DA","DateOfLastCalibration"],1201:["TM","TimeOfLastCalibration"],1210:["SH","ConvolutionKernel"],1240:["IS","UpperLowerPixelValues"],1242:["IS","ActualFrameDuration"],1243:["IS","CountRate"],1244:["US","PreferredPlaybackSequencing"],1250:["SH","ReceiveCoilName"],1251:["SH","TransmitCoilName"],1260:["SH","PlateType"],1261:["LO","PhosphorType"],1300:["DS","ScanVelocity"],1301:["CS","WholeBodyTechnique"],1302:["IS","ScanLength"],1310:["US","AcquisitionMatrix"],1312:["CS","InPlanePhaseEncodingDirection"],1314:["DS","FlipAngle"],1315:["CS","VariableFlipAngleFlag"],1316:["DS","SAR"],1318:["DS","dBdt"],1400:["LO","AcquisitionDeviceProcessingDescription"],1401:["LO","AcquisitionDeviceProcessingCode"],1402:["CS","CassetteOrientation"],1403:["CS","CassetteSize"],1404:["US","ExposuresOnPlate"],1405:["IS","RelativeXRayExposure"],1411:["DS","ExposureIndex"],1412:["DS","TargetExposureIndex"],1413:["DS","DeviationIndex"],1450:["DS","ColumnAngulation"],1460:["DS","TomoLayerHeight"],1470:["DS","TomoAngle"],1480:["DS","TomoTime"],1490:["CS","TomoType"],1491:["CS","TomoClass"],1495:["IS","NumberOfTomosynthesisSourceImages"],1500:["CS","PositionerMotion"],1508:["CS","PositionerType"],1510:["DS","PositionerPrimaryAngle"],1511:["DS","PositionerSecondaryAngle"],1520:["DS","PositionerPrimaryAngleIncrement"],1521:["DS","PositionerSecondaryAngleIncrement"],1530:["DS","DetectorPrimaryAngle"],1531:["DS","DetectorSecondaryAngle"],1600:["CS","ShutterShape"],1602:["IS","ShutterLeftVerticalEdge"],1604:["IS","ShutterRightVerticalEdge"],1606:["IS","ShutterUpperHorizontalEdge"],1608:["IS","ShutterLowerHorizontalEdge"],1610:["IS","CenterOfCircularShutter"],1612:["IS","RadiusOfCircularShutter"],1620:["IS","VerticesOfThePolygonalShutter"],1622:["US","ShutterPresentationValue"],1623:["US","ShutterOverlayGroup"],1624:["US","ShutterPresentationColorCIELabValue"],1700:["CS","CollimatorShape"],1702:["IS","CollimatorLeftVerticalEdge"],1704:["IS","CollimatorRightVerticalEdge"],1706:["IS","CollimatorUpperHorizontalEdge"],1708:["IS","CollimatorLowerHorizontalEdge"],1710:["IS","CenterOfCircularCollimator"],1712:["IS","RadiusOfCircularCollimator"],1720:["IS","VerticesOfThePolygonalCollimator"],1800:["CS","AcquisitionTimeSynchronized"],1801:["SH","TimeSource"],1802:["CS","TimeDistributionProtocol"],1803:["LO","NTPSourceAddress"],2001:["IS","PageNumberVector"],2002:["SH","FrameLabelVector"],2003:["DS","FramePrimaryAngleVector"],2004:["DS","FrameSecondaryAngleVector"],2005:["DS","SliceLocationVector"],2006:["SH","DisplayWindowLabelVector"],2010:["DS","NominalScannedPixelSpacing"],2020:["CS","DigitizingDeviceTransportDirection"],2030:["DS","RotationOfScannedFilm"],3100:["CS","IVUSAcquisition"],3101:["DS","IVUSPullbackRate"],3102:["DS","IVUSGatedRate"],3103:["IS","IVUSPullbackStartFrameNumber"],3104:["IS","IVUSPullbackStopFrameNumber"],3105:["IS","LesionNumber"],4e3:["LT","AcquisitionComments"],5e3:["SH","OutputPower"],5010:["LO","TransducerData"],5012:["DS","FocusDepth"],5020:["LO","ProcessingFunction"],5021:["LO","PostprocessingFunction"],5022:["DS","MechanicalIndex"],5024:["DS","BoneThermalIndex"],5026:["DS","CranialThermalIndex"],5027:["DS","SoftTissueThermalIndex"],5028:["DS","SoftTissueFocusThermalIndex"],5029:["DS","SoftTissueSurfaceThermalIndex"],5030:["DS","DynamicRange"],5040:["DS","TotalGain"],5050:["IS","DepthOfScanField"],5100:["CS","PatientPosition"],5101:["CS","ViewPosition"],5104:["SQ","ProjectionEponymousNameCodeSequence"],5210:["DS","ImageTransformationMatrix"],5212:["DS","ImageTranslationVector"],6e3:["DS","Sensitivity"],6011:["SQ","SequenceOfUltrasoundRegions"],6012:["US","RegionSpatialFormat"],6014:["US","RegionDataType"],6016:["UL","RegionFlags"],6018:["UL","RegionLocationMinX0"],"601A":["UL","RegionLocationMinY0"],"601C":["UL","RegionLocationMaxX1"],"601E":["UL","RegionLocationMaxY1"],6020:["SL","ReferencePixelX0"],6022:["SL","ReferencePixelY0"],6024:["US","PhysicalUnitsXDirection"],6026:["US","PhysicalUnitsYDirection"],6028:["FD","ReferencePixelPhysicalValueX"],"602A":["FD","ReferencePixelPhysicalValueY"],"602C":["FD","PhysicalDeltaX"],"602E":["FD","PhysicalDeltaY"],6030:["UL","TransducerFrequency"],6031:["CS","TransducerType"],6032:["UL","PulseRepetitionFrequency"],6034:["FD","DopplerCorrectionAngle"],6036:["FD","SteeringAngle"],6038:["UL","DopplerSampleVolumeXPositionRetired"],6039:["SL","DopplerSampleVolumeXPosition"],"603A":["UL","DopplerSampleVolumeYPositionRetired"],"603B":["SL","DopplerSampleVolumeYPosition"],"603C":["UL","TMLinePositionX0Retired"],"603D":["SL","TMLinePositionX0"],"603E":["UL","TMLinePositionY0Retired"],"603F":["SL","TMLinePositionY0"],6040:["UL","TMLinePositionX1Retired"],6041:["SL","TMLinePositionX1"],6042:["UL","TMLinePositionY1Retired"],6043:["SL","TMLinePositionY1"],6044:["US","PixelComponentOrganization"],6046:["UL","PixelComponentMask"],6048:["UL","PixelComponentRangeStart"],"604A":["UL","PixelComponentRangeStop"],"604C":["US","PixelComponentPhysicalUnits"],"604E":["US","PixelComponentDataType"],6050:["UL","NumberOfTableBreakPoints"],6052:["UL","TableOfXBreakPoints"],6054:["FD","TableOfYBreakPoints"],6056:["UL","NumberOfTableEntries"],6058:["UL","TableOfPixelValues"],"605A":["FL","TableOfParameterValues"],6060:["FL","RWaveTimeVector"],7e3:["CS","DetectorConditionsNominalFlag"],7001:["DS","DetectorTemperature"],7004:["CS","DetectorType"],7005:["CS","DetectorConfiguration"],7006:["LT","DetectorDescription"],7008:["LT","DetectorMode"],"700A":["SH","DetectorID"],"700C":["DA","DateOfLastDetectorCalibration"],"700E":["TM","TimeOfLastDetectorCalibration"],7010:["IS","ExposuresOnDetectorSinceLastCalibration"],7011:["IS","ExposuresOnDetectorSinceManufactured"],7012:["DS","DetectorTimeSinceLastExposure"],7014:["DS","DetectorActiveTime"],7016:["DS","DetectorActivationOffsetFromExposure"],"701A":["DS","DetectorBinning"],7020:["DS","DetectorElementPhysicalSize"],7022:["DS","DetectorElementSpacing"],7024:["CS","DetectorActiveShape"],7026:["DS","DetectorActiveDimensions"],7028:["DS","DetectorActiveOrigin"],"702A":["LO","DetectorManufacturerName"],"702B":["LO","DetectorManufacturerModelName"],7030:["DS","FieldOfViewOrigin"],7032:["DS","FieldOfViewRotation"],7034:["CS","FieldOfViewHorizontalFlip"],7036:["FL","PixelDataAreaOriginRelativeToFOV"],7038:["FL","PixelDataAreaRotationAngleRelativeToFOV"],7040:["LT","GridAbsorbingMaterial"],7041:["LT","GridSpacingMaterial"],7042:["DS","GridThickness"],7044:["DS","GridPitch"],7046:["IS","GridAspectRatio"],7048:["DS","GridPeriod"],"704C":["DS","GridFocalDistance"],7050:["CS","FilterMaterial"],7052:["DS","FilterThicknessMinimum"],7054:["DS","FilterThicknessMaximum"],7056:["FL","FilterBeamPathLengthMinimum"],7058:["FL","FilterBeamPathLengthMaximum"],7060:["CS","ExposureControlMode"],7062:["LT","ExposureControlModeDescription"],7064:["CS","ExposureStatus"],7065:["DS","PhototimerSetting"],8150:["DS","ExposureTimeInuS"],8151:["DS","XRayTubeCurrentInuA"],9004:["CS","ContentQualification"],9005:["SH","PulseSequenceName"],9006:["SQ","MRImagingModifierSequence"],9008:["CS","EchoPulseSequence"],9009:["CS","InversionRecovery"],9010:["CS","FlowCompensation"],9011:["CS","MultipleSpinEcho"],9012:["CS","MultiPlanarExcitation"],9014:["CS","PhaseContrast"],9015:["CS","TimeOfFlightContrast"],9016:["CS","Spoiling"],9017:["CS","SteadyStatePulseSequence"],9018:["CS","EchoPlanarPulseSequence"],9019:["FD","TagAngleFirstAxis"],9020:["CS","MagnetizationTransfer"],9021:["CS","T2Preparation"],9022:["CS","BloodSignalNulling"],9024:["CS","SaturationRecovery"],9025:["CS","SpectrallySelectedSuppression"],9026:["CS","SpectrallySelectedExcitation"],9027:["CS","SpatialPresaturation"],9028:["CS","Tagging"],9029:["CS","OversamplingPhase"],9030:["FD","TagSpacingFirstDimension"],9032:["CS","GeometryOfKSpaceTraversal"],9033:["CS","SegmentedKSpaceTraversal"],9034:["CS","RectilinearPhaseEncodeReordering"],9035:["FD","TagThickness"],9036:["CS","PartialFourierDirection"],9037:["CS","CardiacSynchronizationTechnique"],9041:["LO","ReceiveCoilManufacturerName"],9042:["SQ","MRReceiveCoilSequence"],9043:["CS","ReceiveCoilType"],9044:["CS","QuadratureReceiveCoil"],9045:["SQ","MultiCoilDefinitionSequence"],9046:["LO","MultiCoilConfiguration"],9047:["SH","MultiCoilElementName"],9048:["CS","MultiCoilElementUsed"],9049:["SQ","MRTransmitCoilSequence"],9050:["LO","TransmitCoilManufacturerName"],9051:["CS","TransmitCoilType"],9052:["FD","SpectralWidth"],9053:["FD","ChemicalShiftReference"],9054:["CS","VolumeLocalizationTechnique"],9058:["US","MRAcquisitionFrequencyEncodingSteps"],9059:["CS","Decoupling"],9060:["CS","DecoupledNucleus"],9061:["FD","DecouplingFrequency"],9062:["CS","DecouplingMethod"],9063:["FD","DecouplingChemicalShiftReference"],9064:["CS","KSpaceFiltering"],9065:["CS","TimeDomainFiltering"],9066:["US","NumberOfZeroFills"],9067:["CS","BaselineCorrection"],9069:["FD","ParallelReductionFactorInPlane"],9070:["FD","CardiacRRIntervalSpecified"],9073:["FD","AcquisitionDuration"],9074:["DT","FrameAcquisitionDateTime"],9075:["CS","DiffusionDirectionality"],9076:["SQ","DiffusionGradientDirectionSequence"],9077:["CS","ParallelAcquisition"],9078:["CS","ParallelAcquisitionTechnique"],9079:["FD","InversionTimes"],9080:["ST","MetaboliteMapDescription"],9081:["CS","PartialFourier"],9082:["FD","EffectiveEchoTime"],9083:["SQ","MetaboliteMapCodeSequence"],9084:["SQ","ChemicalShiftSequence"],9085:["CS","CardiacSignalSource"],9087:["FD","DiffusionBValue"],9089:["FD","DiffusionGradientOrientation"],9090:["FD","VelocityEncodingDirection"],9091:["FD","VelocityEncodingMinimumValue"],9092:["SQ","VelocityEncodingAcquisitionSequence"],9093:["US","NumberOfKSpaceTrajectories"],9094:["CS","CoverageOfKSpace"],9095:["UL","SpectroscopyAcquisitionPhaseRows"],9096:["FD","ParallelReductionFactorInPlaneRetired"],9098:["FD","TransmitterFrequency"],9100:["CS","ResonantNucleus"],9101:["CS","FrequencyCorrection"],9103:["SQ","MRSpectroscopyFOVGeometrySequence"],9104:["FD","SlabThickness"],9105:["FD","SlabOrientation"],9106:["FD","MidSlabPosition"],9107:["SQ","MRSpatialSaturationSequence"],9112:["SQ","MRTimingAndRelatedParametersSequence"],9114:["SQ","MREchoSequence"],9115:["SQ","MRModifierSequence"],9117:["SQ","MRDiffusionSequence"],9118:["SQ","CardiacSynchronizationSequence"],9119:["SQ","MRAveragesSequence"],9125:["SQ","MRFOVGeometrySequence"],9126:["SQ","VolumeLocalizationSequence"],9127:["UL","SpectroscopyAcquisitionDataColumns"],9147:["CS","DiffusionAnisotropyType"],9151:["DT","FrameReferenceDateTime"],9152:["SQ","MRMetaboliteMapSequence"],9155:["FD","ParallelReductionFactorOutOfPlane"],9159:["UL","SpectroscopyAcquisitionOutOfPlanePhaseSteps"],9166:["CS","BulkMotionStatus"],9168:["FD","ParallelReductionFactorSecondInPlane"],9169:["CS","CardiacBeatRejectionTechnique"],9170:["CS","RespiratoryMotionCompensationTechnique"],9171:["CS","RespiratorySignalSource"],9172:["CS","BulkMotionCompensationTechnique"],9173:["CS","BulkMotionSignalSource"],9174:["CS","ApplicableSafetyStandardAgency"],9175:["LO","ApplicableSafetyStandardDescription"],9176:["SQ","OperatingModeSequence"],9177:["CS","OperatingModeType"],9178:["CS","OperatingMode"],9179:["CS","SpecificAbsorptionRateDefinition"],9180:["CS","GradientOutputType"],9181:["FD","SpecificAbsorptionRateValue"],9182:["FD","GradientOutput"],9183:["CS","FlowCompensationDirection"],9184:["FD","TaggingDelay"],9185:["ST","RespiratoryMotionCompensationTechniqueDescription"],9186:["SH","RespiratorySignalSourceID"],9195:["FD","ChemicalShiftMinimumIntegrationLimitInHz"],9196:["FD","ChemicalShiftMaximumIntegrationLimitInHz"],9197:["SQ","MRVelocityEncodingSequence"],9198:["CS","FirstOrderPhaseCorrection"],9199:["CS","WaterReferencedPhaseCorrection"],9200:["CS","MRSpectroscopyAcquisitionType"],9214:["CS","RespiratoryCyclePosition"],9217:["FD","VelocityEncodingMaximumValue"],9218:["FD","TagSpacingSecondDimension"],9219:["SS","TagAngleSecondAxis"],9220:["FD","FrameAcquisitionDuration"],9226:["SQ","MRImageFrameTypeSequence"],9227:["SQ","MRSpectroscopyFrameTypeSequence"],9231:["US","MRAcquisitionPhaseEncodingStepsInPlane"],9232:["US","MRAcquisitionPhaseEncodingStepsOutOfPlane"],9234:["UL","SpectroscopyAcquisitionPhaseColumns"],9236:["CS","CardiacCyclePosition"],9239:["SQ","SpecificAbsorptionRateSequence"],9240:["US","RFEchoTrainLength"],9241:["US","GradientEchoTrainLength"],9250:["CS","ArterialSpinLabelingContrast"],9251:["SQ","MRArterialSpinLabelingSequence"],9252:["LO","ASLTechniqueDescription"],9253:["US","ASLSlabNumber"],9254:["FD ","ASLSlabThickness"],9255:["FD ","ASLSlabOrientation"],9256:["FD ","ASLMidSlabPosition"],9257:["CS","ASLContext"],9258:["UL","ASLPulseTrainDuration"],9259:["CS","ASLCrusherFlag"],"925A":["FD","ASLCrusherFlow"],"925B":["LO","ASLCrusherDescription"],"925C":["CS","ASLBolusCutoffFlag"],"925D":["SQ","ASLBolusCutoffTimingSequence"],"925E":["LO","ASLBolusCutoffTechnique"],"925F":["UL","ASLBolusCutoffDelayTime"],9260:["SQ","ASLSlabSequence"],9295:["FD","ChemicalShiftMinimumIntegrationLimitInppm"],9296:["FD","ChemicalShiftMaximumIntegrationLimitInppm"],9301:["SQ","CTAcquisitionTypeSequence"],9302:["CS","AcquisitionType"],9303:["FD","TubeAngle"],9304:["SQ","CTAcquisitionDetailsSequence"],9305:["FD","RevolutionTime"],9306:["FD","SingleCollimationWidth"],9307:["FD","TotalCollimationWidth"],9308:["SQ","CTTableDynamicsSequence"],9309:["FD","TableSpeed"],9310:["FD","TableFeedPerRotation"],9311:["FD","SpiralPitchFactor"],9312:["SQ","CTGeometrySequence"],9313:["FD","DataCollectionCenterPatient"],9314:["SQ","CTReconstructionSequence"],9315:["CS","ReconstructionAlgorithm"],9316:["CS","ConvolutionKernelGroup"],9317:["FD","ReconstructionFieldOfView"],9318:["FD","ReconstructionTargetCenterPatient"],9319:["FD","ReconstructionAngle"],9320:["SH","ImageFilter"],9321:["SQ","CTExposureSequence"],9322:["FD","ReconstructionPixelSpacing"],9323:["CS","ExposureModulationType"],9324:["FD","EstimatedDoseSaving"],9325:["SQ","CTXRayDetailsSequence"],9326:["SQ","CTPositionSequence"],9327:["FD","TablePosition"],9328:["FD","ExposureTimeInms"],9329:["SQ","CTImageFrameTypeSequence"],9330:["FD","XRayTubeCurrentInmA"],9332:["FD","ExposureInmAs"],9333:["CS","ConstantVolumeFlag"],9334:["CS","FluoroscopyFlag"],9335:["FD","DistanceSourceToDataCollectionCenter"],9337:["US","ContrastBolusAgentNumber"],9338:["SQ","ContrastBolusIngredientCodeSequence"],9340:["SQ","ContrastAdministrationProfileSequence"],9341:["SQ","ContrastBolusUsageSequence"],9342:["CS","ContrastBolusAgentAdministered"],9343:["CS","ContrastBolusAgentDetected"],9344:["CS","ContrastBolusAgentPhase"],9345:["FD","CTDIvol"],9346:["SQ","CTDIPhantomTypeCodeSequence"],9351:["FL","CalciumScoringMassFactorPatient"],9352:["FL","CalciumScoringMassFactorDevice"],9353:["FL","EnergyWeightingFactor"],9360:["SQ","CTAdditionalXRaySourceSequence"],9401:["SQ","ProjectionPixelCalibrationSequence"],9402:["FL","DistanceSourceToIsocenter"],9403:["FL","DistanceObjectToTableTop"],9404:["FL","ObjectPixelSpacingInCenterOfBeam"],9405:["SQ","PositionerPositionSequence"],9406:["SQ","TablePositionSequence"],9407:["SQ","CollimatorShapeSequence"],9410:["CS","PlanesInAcquisition"],9412:["SQ","XAXRFFrameCharacteristicsSequence"],9417:["SQ","FrameAcquisitionSequence"],9420:["CS","XRayReceptorType"],9423:["LO","AcquisitionProtocolName"],9424:["LT","AcquisitionProtocolDescription"],9425:["CS","ContrastBolusIngredientOpaque"],9426:["FL","DistanceReceptorPlaneToDetectorHousing"],9427:["CS","IntensifierActiveShape"],9428:["FL","IntensifierActiveDimensions"],9429:["FL","PhysicalDetectorSize"],9430:["FL","PositionOfIsocenterProjection"],9432:["SQ","FieldOfViewSequence"],9433:["LO","FieldOfViewDescription"],9434:["SQ","ExposureControlSensingRegionsSequence"],9435:["CS","ExposureControlSensingRegionShape"],9436:["SS","ExposureControlSensingRegionLeftVerticalEdge"],9437:["SS","ExposureControlSensingRegionRightVerticalEdge"],9438:["SS","ExposureControlSensingRegionUpperHorizontalEdge"],9439:["SS","ExposureControlSensingRegionLowerHorizontalEdge"],9440:["SS","CenterOfCircularExposureControlSensingRegion"],9441:["US","RadiusOfCircularExposureControlSensingRegion"],9442:["SS","VerticesOfThePolygonalExposureControlSensingRegion"],9447:["FL","ColumnAngulationPatient"],9449:["FL","BeamAngle"],9451:["SQ","FrameDetectorParametersSequence"],9452:["FL","CalculatedAnatomyThickness"],9455:["SQ","CalibrationSequence"],9456:["SQ","ObjectThicknessSequence"],9457:["CS","PlaneIdentification"],9461:["FL","FieldOfViewDimensionsInFloat"],9462:["SQ","IsocenterReferenceSystemSequence"],9463:["FL","PositionerIsocenterPrimaryAngle"],9464:["FL","PositionerIsocenterSecondaryAngle"],9465:["FL","PositionerIsocenterDetectorRotationAngle"],9466:["FL","TableXPositionToIsocenter"],9467:["FL","TableYPositionToIsocenter"],9468:["FL","TableZPositionToIsocenter"],9469:["FL","TableHorizontalRotationAngle"],9470:["FL","TableHeadTiltAngle"],9471:["FL","TableCradleTiltAngle"],9472:["SQ","FrameDisplayShutterSequence"],9473:["FL","AcquiredImageAreaDoseProduct"],9474:["CS","CArmPositionerTabletopRelationship"],9476:["SQ","XRayGeometrySequence"],9477:["SQ","IrradiationEventIdentificationSequence"],9504:["SQ","XRay3DFrameTypeSequence"],9506:["SQ","ContributingSourcesSequence"],9507:["SQ","XRay3DAcquisitionSequence"],9508:["FL","PrimaryPositionerScanArc"],9509:["FL","SecondaryPositionerScanArc"],9510:["FL ","PrimaryPositionerScanStartAngle"],9511:["FL","SecondaryPositionerScanStartAngle"],9514:["FL","PrimaryPositionerIncrement"],9515:["FL","SecondaryPositionerIncrement"],9516:["DT","StartAcquisitionDateTime"],9517:["DT","EndAcquisitionDateTime"],9524:["LO","ApplicationName"],9525:["LO","ApplicationVersion"],9526:["LO","ApplicationManufacturer"],9527:["CS","AlgorithmType"],9528:["LO","AlgorithmDescription"],9530:["SQ","XRay3DReconstructionSequence"],9531:["LO","ReconstructionDescription"],9538:["SQ","PerProjectionAcquisitionSequence"],9601:["SQ","DiffusionBMatrixSequence"],9602:["FD","DiffusionBValueXX"],9603:["FD","DiffusionBValueXY"],9604:["FD","DiffusionBValueXZ"],9605:["FD","DiffusionBValueYY"],9606:["FD","DiffusionBValueYZ"],9607:["FD","DiffusionBValueZZ"],9701:["DT","DecayCorrectionDateTime"],9715:["FD","StartDensityThreshold"],9716:["FD","StartRelativeDensityDifferenceThreshold"],9717:["FD","StartCardiacTriggerCountThreshold"],9718:["FD","StartRespiratoryTriggerCountThreshold"],9719:["FD","TerminationCountsThreshold"],9720:["FD","TerminationDensityThreshold"],9721:["FD","TerminationRelativeDensityThreshold"],9722:["FD","TerminationTimeThreshold"],9723:["FD","TerminationCardiacTriggerCountThreshold"],9724:["FD","TerminationRespiratoryTriggerCountThreshold"],9725:["CS","DetectorGeometry"],9726:["FD","TransverseDetectorSeparation"],9727:["FD","AxialDetectorDimension"],9729:["US","RadiopharmaceuticalAgentNumber"],9732:["SQ","PETFrameAcquisitionSequence"],9733:["SQ","PETDetectorMotionDetailsSequence"],9734:["SQ","PETTableDynamicsSequence"],9735:["SQ","PETPositionSequence"],9736:["SQ","PETFrameCorrectionFactorsSequence"],9737:["SQ","RadiopharmaceuticalUsageSequence"],9738:["CS","AttenuationCorrectionSource"],9739:["US","NumberOfIterations"],9740:["US","NumberOfSubsets"],9749:["SQ","PETReconstructionSequence"],9751:["SQ","PETFrameTypeSequence"],9755:["CS","TimeOfFlightInformationUsed"],9756:["CS","ReconstructionType"],9758:["CS","DecayCorrected"],9759:["CS","AttenuationCorrected"],9760:["CS","ScatterCorrected"],9761:["CS","DeadTimeCorrected"],9762:["CS","GantryMotionCorrected"],9763:["CS","PatientMotionCorrected"],9764:["CS","CountLossNormalizationCorrected"],9765:["CS","RandomsCorrected"],9766:["CS","NonUniformRadialSamplingCorrected"],9767:["CS","SensitivityCalibrated"],9768:["CS","DetectorNormalizationCorrection"],9769:["CS","IterativeReconstructionMethod"],9770:["CS","AttenuationCorrectionTemporalRelationship"],9771:["SQ","PatientPhysiologicalStateSequence"],9772:["SQ","PatientPhysiologicalStateCodeSequence"],9801:["FD","DepthsOfFocus"],9803:["SQ","ExcludedIntervalsSequence"],9804:["DT","ExclusionStartDatetime"],9805:["FD","ExclusionDuration"],9806:["SQ","USImageDescriptionSequence"],9807:["SQ","ImageDataTypeSequence"],9808:["CS","DataType"],9809:["SQ","TransducerScanPatternCodeSequence"],"980B":["CS","AliasedDataType"],"980C":["CS","PositionMeasuringDeviceUsed"],"980D":["SQ","TransducerGeometryCodeSequence"],"980E":["SQ","TransducerBeamSteeringCodeSequence"],"980F":["SQ","TransducerApplicationCodeSequence"],A001:["SQ","ContributingEquipmentSequence"],A002:["DT","ContributionDateTime"],A003:["ST","ContributionDescription"]},"0020":{"000D":["UI","StudyInstanceUID"],"000E":["UI","SeriesInstanceUID"],"0010":["SH","StudyID"],"0011":["IS","SeriesNumber"],"0012":["IS","AcquisitionNumber"],"0013":["IS","InstanceNumber"],"0014":["IS","IsotopeNumber"],"0015":["IS","PhaseNumber"],"0016":["IS","IntervalNumber"],"0017":["IS","TimeSlotNumber"],"0018":["IS","AngleNumber"],"0019":["IS","ItemNumber"],"0020":["CS","PatientOrientation"],"0022":["IS","OverlayNumber"],"0024":["IS","CurveNumber"],"0026":["IS","LUTNumber"],"0030":["DS","ImagePosition"],"0032":["DS","ImagePositionPatient"],"0035":["DS","ImageOrientation"],"0037":["DS","ImageOrientationPatient"],"0050":["DS","Location"],"0052":["UI","FrameOfReferenceUID"],"0060":["CS","Laterality"],"0062":["CS","ImageLaterality"],"0070":["LO","ImageGeometryType"],"0080":["CS","MaskingImage"],"00AA":["IS","ReportNumber"],"0100":["IS","TemporalPositionIdentifier"],"0105":["IS","NumberOfTemporalPositions"],"0110":["DS","TemporalResolution"],"0200":["UI","SynchronizationFrameOfReferenceUID"],"0242":["UI","SOPInstanceUIDOfConcatenationSource"],1e3:["IS","SeriesInStudy"],1001:["IS","AcquisitionsInSeries"],1002:["IS","ImagesInAcquisition"],1003:["IS","ImagesInSeries"],1004:["IS","AcquisitionsInStudy"],1005:["IS","ImagesInStudy"],1020:["LO","Reference"],1040:["LO","PositionReferenceIndicator"],1041:["DS","SliceLocation"],1070:["IS","OtherStudyNumbers"],1200:["IS","NumberOfPatientRelatedStudies"],1202:["IS","NumberOfPatientRelatedSeries"],1204:["IS","NumberOfPatientRelatedInstances"],1206:["IS","NumberOfStudyRelatedSeries"],1208:["IS","NumberOfStudyRelatedInstances"],1209:["IS","NumberOfSeriesRelatedInstances"],3401:["CS","ModifyingDeviceID"],3402:["CS","ModifiedImageID"],3403:["DA","ModifiedImageDate"],3404:["LO","ModifyingDeviceManufacturer"],3405:["TM","ModifiedImageTime"],3406:["LO","ModifiedImageDescription"],4e3:["LT","ImageComments"],5e3:["AT","OriginalImageIdentification"],5002:["LO","OriginalImageIdentificationNomenclature"],9056:["SH","StackID"],9057:["UL","InStackPositionNumber"],9071:["SQ","FrameAnatomySequence"],9072:["CS","FrameLaterality"],9111:["SQ","FrameContentSequence"],9113:["SQ","PlanePositionSequence"],9116:["SQ","PlaneOrientationSequence"],9128:["UL","TemporalPositionIndex"],9153:["FD","NominalCardiacTriggerDelayTime"],9154:["FL","NominalCardiacTriggerTimePriorToRPeak"],9155:["FL","ActualCardiacTriggerTimePriorToRPeak"],9156:["US","FrameAcquisitionNumber"],9157:["UL","DimensionIndexValues"],9158:["LT","FrameComments"],9161:["UI","ConcatenationUID"],9162:["US","InConcatenationNumber"],9163:["US","InConcatenationTotalNumber"],9164:["UI","DimensionOrganizationUID"],9165:["AT","DimensionIndexPointer"],9167:["AT","FunctionalGroupPointer"],9213:["LO","DimensionIndexPrivateCreator"],9221:["SQ","DimensionOrganizationSequence"],9222:["SQ","DimensionIndexSequence"],9228:["UL","ConcatenationFrameOffsetNumber"],9238:["LO","FunctionalGroupPrivateCreator"],9241:["FL","NominalPercentageOfCardiacPhase"],9245:["FL","NominalPercentageOfRespiratoryPhase"],9246:["FL","StartingRespiratoryAmplitude"],9247:["CS","StartingRespiratoryPhase"],9248:["FL","EndingRespiratoryAmplitude"],9249:["CS","EndingRespiratoryPhase"],9250:["CS","RespiratoryTriggerType"],9251:["FD","RRIntervalTimeNominal"],9252:["FD","ActualCardiacTriggerDelayTime"],9253:["SQ","RespiratorySynchronizationSequence"],9254:["FD","RespiratoryIntervalTime"],9255:["FD","NominalRespiratoryTriggerDelayTime"],9256:["FD","RespiratoryTriggerDelayThreshold"],9257:["FD","ActualRespiratoryTriggerDelayTime"],9301:["FD","ImagePositionVolume"],9302:["FD","ImageOrientationVolume"],9307:["CS","UltrasoundAcquisitionGeometry"],9308:["FD","ApexPosition"],9309:["FD","VolumeToTransducerMappingMatrix"],"930A":["FD","VolumeToTableMappingMatrix"],"930C":["CS","PatientFrameOfReferenceSource"],"930D":["FD","TemporalPositionTimeOffset"],"930E":["SQ","PlanePositionVolumeSequence"],"930F":["SQ","PlaneOrientationVolumeSequence"],9310:["SQ","TemporalPositionSequence"],9311:["CS","DimensionOrganizationType"],9312:["UI","VolumeFrameOfReferenceUID"],9313:["UI","TableFrameOfReferenceUID"],9421:["LO","DimensionDescriptionLabel"],9450:["SQ","PatientOrientationInFrameSequence"],9453:["LO","FrameLabel"],9518:["US","AcquisitionIndex"],9529:["SQ","ContributingSOPInstancesReferenceSequence"],9536:["US","ReconstructionIndex"]},"0022":{"0001":["US","LightPathFilterPassThroughWavelength"],"0002":["US","LightPathFilterPassBand"],"0003":["US","ImagePathFilterPassThroughWavelength"],"0004":["US","ImagePathFilterPassBand"],"0005":["CS","PatientEyeMovementCommanded"],"0006":["SQ","PatientEyeMovementCommandCodeSequence"],"0007":["FL","SphericalLensPower"],"0008":["FL","CylinderLensPower"],"0009":["FL","CylinderAxis"],"000A":["FL","EmmetropicMagnification"],"000B":["FL","IntraOcularPressure"],"000C":["FL","HorizontalFieldOfView"],"000D":["CS","PupilDilated"],"000E":["FL","DegreeOfDilation"],"0010":["FL","StereoBaselineAngle"],"0011":["FL","StereoBaselineDisplacement"],"0012":["FL","StereoHorizontalPixelOffset"],"0013":["FL","StereoVerticalPixelOffset"],"0014":["FL","StereoRotation"],"0015":["SQ","AcquisitionDeviceTypeCodeSequence"],"0016":["SQ","IlluminationTypeCodeSequence"],"0017":["SQ","LightPathFilterTypeStackCodeSequence"],"0018":["SQ","ImagePathFilterTypeStackCodeSequence"],"0019":["SQ","LensesCodeSequence"],"001A":["SQ","ChannelDescriptionCodeSequence"],"001B":["SQ","RefractiveStateSequence"],"001C":["SQ","MydriaticAgentCodeSequence"],"001D":["SQ","RelativeImagePositionCodeSequence"],"001E":["FL","CameraAngleOfView"],"0020":["SQ","StereoPairsSequence"],"0021":["SQ","LeftImageSequence"],"0022":["SQ","RightImageSequence"],"0030":["FL","AxialLengthOfTheEye"],"0031":["SQ","OphthalmicFrameLocationSequence"],"0032":["FL","ReferenceCoordinates"],"0035":["FL","DepthSpatialResolution"],"0036":["FL","MaximumDepthDistortion"],"0037":["FL","AlongScanSpatialResolution"],"0038":["FL","MaximumAlongScanDistortion"],"0039":["CS","OphthalmicImageOrientation"],"0041":["FL","DepthOfTransverseImage"],"0042":["SQ","MydriaticAgentConcentrationUnitsSequence"],"0048":["FL","AcrossScanSpatialResolution"],"0049":["FL","MaximumAcrossScanDistortion"],"004E":["DS","MydriaticAgentConcentration"],"0055":["FL","IlluminationWaveLength"],"0056":["FL","IlluminationPower"],"0057":["FL","IlluminationBandwidth"],"0058":["SQ","MydriaticAgentSequence"],1007:["SQ","OphthalmicAxialMeasurementsRightEyeSequence"],1008:["SQ","OphthalmicAxialMeasurementsLeftEyeSequence"],1010:["CS","OphthalmicAxialLengthMeasurementsType"],1019:["FL","OphthalmicAxialLength"],1024:["SQ","LensStatusCodeSequence"],1025:["SQ","VitreousStatusCodeSequence"],1028:["SQ","IOLFormulaCodeSequence"],1029:["LO","IOLFormulaDetail"],1033:["FL","KeratometerIndex"],1035:["SQ","SourceOfOphthalmicAxialLengthCodeSequence"],1037:["FL","TargetRefraction"],1039:["CS","RefractiveProcedureOccurred"],1040:["SQ","RefractiveSurgeryTypeCodeSequence"],1044:["SQ","OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"],1050:["SQ","OphthalmicAxialLengthMeasurementsSequence"],1053:["FL","IOLPower"],1054:["FL","PredictedRefractiveError"],1059:["FL","OphthalmicAxialLengthVelocity"],1065:["LO","LensStatusDescription"],1066:["LO","VitreousStatusDescription"],1090:["SQ","IOLPowerSequence"],1092:["SQ","LensConstantSequence"],1093:["LO","IOLManufacturer"],1094:["LO","LensConstantDescription"],1096:["SQ","KeratometryMeasurementTypeCodeSequence"],1100:["SQ","ReferencedOphthalmicAxialMeasurementsSequence"],1101:["SQ","OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"],1103:["SQ","RefractiveErrorBeforeRefractiveSurgeryCodeSequence"],1121:["FL","IOLPowerForExactEmmetropia"],1122:["FL","IOLPowerForExactTargetRefraction"],1125:["SQ","AnteriorChamberDepthDefinitionCodeSequence"],1130:["FL","LensThickness"],1131:["FL","AnteriorChamberDepth"],1132:["SQ","SourceOfLensThicknessDataCodeSequence"],1133:["SQ","SourceOfAnteriorChamberDepthDataCodeSequence"],1135:["SQ","SourceOfRefractiveErrorDataCodeSequence"],1140:["CS","OphthalmicAxialLengthMeasurementModified"],1150:["SQ","OphthalmicAxialLengthDataSourceCodeSequence"],1153:["SQ","OphthalmicAxialLengthAcquisitionMethodCodeSequence"],1155:["FL","SignalToNoiseRatio"],1159:["LO","OphthalmicAxialLengthDataSourceDescription"],1210:["SQ","OphthalmicAxialLengthMeasurementsTotalLengthSequence"],1211:["SQ","OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"],1212:["SQ","OphthalmicAxialLengthMeasurementsLengthSummationSequence"],1220:["SQ","UltrasoundOphthalmicAxialLengthMeasurementsSequence"],1225:["SQ","OpticalOphthalmicAxialLengthMeasurementsSequence"],1230:["SQ","UltrasoundSelectedOphthalmicAxialLengthSequence"],1250:["SQ","OphthalmicAxialLengthSelectionMethodCodeSequence"],1255:["SQ","OpticalSelectedOphthalmicAxialLengthSequence"],1257:["SQ","SelectedSegmentalOphthalmicAxialLengthSequence"],1260:["SQ","SelectedTotalOphthalmicAxialLengthSequence"],1262:["SQ","OphthalmicAxialLengthQualityMetricSequence"],1273:["LO","OphthalmicAxialLengthQualityMetricTypeDescription"],1300:["SQ","IntraocularLensCalculationsRightEyeSequence"],1310:["SQ","IntraocularLensCalculationsLeftEyeSequence"],1330:["SQ","ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"]},"0024":{"0010":["FL","VisualFieldHorizontalExtent"],"0011":["FL","VisualFieldVerticalExtent"],"0012":["CS","VisualFieldShape"],"0016":["SQ","ScreeningTestModeCodeSequence"],"0018":["FL","MaximumStimulusLuminance"],"0020":["FL","BackgroundLuminance"],"0021":["SQ","StimulusColorCodeSequence"],"0024":["SQ","BackgroundIlluminationColorCodeSequence"],"0025":["FL","StimulusArea"],"0028":["FL","StimulusPresentationTime"],"0032":["SQ","FixationSequence"],"0033":["SQ","FixationMonitoringCodeSequence"],"0034":["SQ","VisualFieldCatchTrialSequence"],"0035":["US","FixationCheckedQuantity"],"0036":["US","PatientNotProperlyFixatedQuantity"],"0037":["CS","PresentedVisualStimuliDataFlag"],"0038":["US","NumberOfVisualStimuli"],"0039":["CS","ExcessiveFixationLossesDataFlag"],"0040":["CS","ExcessiveFixationLosses"],"0042":["US","StimuliRetestingQuantity"],"0044":["LT","CommentsOnPatientPerformanceOfVisualField"],"0045":["CS","FalseNegativesEstimateFlag"],"0046":["FL","FalseNegativesEstimate"],"0048":["US","NegativeCatchTrialsQuantity"],"0050":["US","FalseNegativesQuantity"],"0051":["CS","ExcessiveFalseNegativesDataFlag"],"0052":["CS","ExcessiveFalseNegatives"],"0053":["CS","FalsePositivesEstimateFlag"],"0054":["FL","FalsePositivesEstimate"],"0055":["CS","CatchTrialsDataFlag"],"0056":["US","PositiveCatchTrialsQuantity"],"0057":["CS","TestPointNormalsDataFlag"],"0058":["SQ","TestPointNormalsSequence"],"0059":["CS","GlobalDeviationProbabilityNormalsFlag"],"0060":["US","FalsePositivesQuantity"],"0061":["CS","ExcessiveFalsePositivesDataFlag"],"0062":["CS","ExcessiveFalsePositives"],"0063":["CS","VisualFieldTestNormalsFlag"],"0064":["SQ","ResultsNormalsSequence"],"0065":["SQ","AgeCorrectedSensitivityDeviationAlgorithmSequence"],"0066":["FL","GlobalDeviationFromNormal"],"0067":["SQ","GeneralizedDefectSensitivityDeviationAlgorithmSequence"],"0068":["FL","LocalizedDeviationfromNormal"],"0069":["LO","PatientReliabilityIndicator"],"0070":["FL","VisualFieldMeanSensitivity"],"0071":["FL","GlobalDeviationProbability"],"0072":["CS","LocalDeviationProbabilityNormalsFlag"],"0073":["FL","LocalizedDeviationProbability"],"0074":["CS","ShortTermFluctuationCalculated"],"0075":["FL","ShortTermFluctuation"],"0076":["CS","ShortTermFluctuationProbabilityCalculated"],"0077":["FL","ShortTermFluctuationProbability"],"0078":["CS","CorrectedLocalizedDeviationFromNormalCalculated"],"0079":["FL","CorrectedLocalizedDeviationFromNormal"],"0080":["CS","CorrectedLocalizedDeviationFromNormalProbabilityCalculated"],"0081":["FL","CorrectedLocalizedDeviationFromNormalProbability"],"0083":["SQ","GlobalDeviationProbabilitySequence"],"0085":["SQ","LocalizedDeviationProbabilitySequence"],"0086":["CS","FovealSensitivityMeasured"],"0087":["FL","FovealSensitivity"],"0088":["FL","VisualFieldTestDuration"],"0089":["SQ","VisualFieldTestPointSequence"],"0090":["FL","VisualFieldTestPointXCoordinate"],"0091":["FL","VisualFieldTestPointYCoordinate"],"0092":["FL","AgeCorrectedSensitivityDeviationValue"],"0093":["CS","StimulusResults"],"0094":["FL","SensitivityValue"],"0095":["CS","RetestStimulusSeen"],"0096":["FL","RetestSensitivityValue"],"0097":["SQ","VisualFieldTestPointNormalsSequence"],"0098":["FL","QuantifiedDefect"],"0100":["FL","AgeCorrectedSensitivityDeviationProbabilityValue"],"0102":["CS","GeneralizedDefectCorrectedSensitivityDeviationFlag "],"0103":["FL","GeneralizedDefectCorrectedSensitivityDeviationValue "],"0104":["FL","GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"],"0105":["FL ","MinimumSensitivityValue"],"0106":["CS","BlindSpotLocalized"],"0107":["FL","BlindSpotXCoordinate"],"0108":["FL","BlindSpotYCoordinate "],"0110":["SQ","VisualAcuityMeasurementSequence"],"0112":["SQ","RefractiveParametersUsedOnPatientSequence"],"0113":["CS","MeasurementLaterality"],"0114":["SQ","OphthalmicPatientClinicalInformationLeftEyeSequence"],"0115":["SQ","OphthalmicPatientClinicalInformationRightEyeSequence"],"0117":["CS","FovealPointNormativeDataFlag"],"0118":["FL","FovealPointProbabilityValue"],"0120":["CS","ScreeningBaselineMeasured"],"0122":["SQ","ScreeningBaselineMeasuredSequence"],"0124":["CS","ScreeningBaselineType"],"0126":["FL","ScreeningBaselineValue"],"0202":["LO","AlgorithmSource"],"0306":["LO","DataSetName"],"0307":["LO","DataSetVersion"],"0308":["LO","DataSetSource"],"0309":["LO","DataSetDescription"],"0317":["SQ","VisualFieldTestReliabilityGlobalIndexSequence"],"0320":["SQ","VisualFieldGlobalResultsIndexSequence"],"0325":["SQ","DataObservationSequence"],"0338":["CS","IndexNormalsFlag"],"0341":["FL","IndexProbability"],"0344":["SQ","IndexProbabilitySequence"]},"0028":{"0002":["US","SamplesPerPixel"],"0003":["US","SamplesPerPixelUsed"],"0004":["CS","PhotometricInterpretation"],"0005":["US","ImageDimensions"],"0006":["US","PlanarConfiguration"],"0008":["IS","NumberOfFrames"],"0009":["AT","FrameIncrementPointer"],"000A":["AT","FrameDimensionPointer"],"0010":["US","Rows"],"0011":["US","Columns"],"0012":["US","Planes"],"0014":["US","UltrasoundColorDataPresent"],"0030":["DS","PixelSpacing"],"0031":["DS","ZoomFactor"],"0032":["DS","ZoomCenter"],"0034":["IS","PixelAspectRatio"],"0040":["CS","ImageFormat"],"0050":["LO","ManipulatedImage"],"0051":["CS","CorrectedImage"],"005F":["LO","CompressionRecognitionCode"],"0060":["CS","CompressionCode"],"0061":["SH","CompressionOriginator"],"0062":["LO","CompressionLabel"],"0063":["SH","CompressionDescription"],"0065":["CS","CompressionSequence"],"0066":["AT","CompressionStepPointers"],"0068":["US","RepeatInterval"],"0069":["US","BitsGrouped"],"0070":["US","PerimeterTable"],"0071":["SS","PerimeterValue"],"0080":["US","PredictorRows"],"0081":["US","PredictorColumns"],"0082":["US","PredictorConstants"],"0090":["CS","BlockedPixels"],"0091":["US","BlockRows"],"0092":["US","BlockColumns"],"0093":["US","RowOverlap"],"0094":["US","ColumnOverlap"],"0100":["US","BitsAllocated"],"0101":["US","BitsStored"],"0102":["US","HighBit"],"0103":["US","PixelRepresentation"],"0104":["SS","SmallestValidPixelValue"],"0105":["SS","LargestValidPixelValue"],"0106":["SS","SmallestImagePixelValue"],"0107":["SS","LargestImagePixelValue"],"0108":["SS","SmallestPixelValueInSeries"],"0109":["SS","LargestPixelValueInSeries"],"0110":["SS","SmallestImagePixelValueInPlane"],"0111":["SS","LargestImagePixelValueInPlane"],"0120":["SS","PixelPaddingValue"],"0121":["SS","PixelPaddingRangeLimit"],"0200":["US","ImageLocation"],"0300":["CS","QualityControlImage"],"0301":["CS","BurnedInAnnotation"],"0302":["CS","RecognizableVisualFeatures"],"0303":["CS","LongitudinalTemporalInformationModified"],"0400":["LO","TransformLabel"],"0401":["LO","TransformVersionNumber"],"0402":["US","NumberOfTransformSteps"],"0403":["LO","SequenceOfCompressedData"],"0404":["AT","DetailsOfCoefficients"],"0700":["LO","DCTLabel"],"0701":["CS","DataBlockDescription"],"0702":["AT","DataBlock"],"0710":["US","NormalizationFactorFormat"],"0720":["US","ZonalMapNumberFormat"],"0721":["AT","ZonalMapLocation"],"0722":["US","ZonalMapFormat"],"0730":["US","AdaptiveMapFormat"],"0740":["US","CodeNumberFormat"],"0A02":["CS","PixelSpacingCalibrationType"],"0A04":["LO","PixelSpacingCalibrationDescription"],1040:["CS","PixelIntensityRelationship"],1041:["SS","PixelIntensityRelationshipSign"],1050:["DS","WindowCenter"],1051:["DS","WindowWidth"],1052:["DS","RescaleIntercept"],1053:["DS","RescaleSlope"],1054:["LO","RescaleType"],1055:["LO","WindowCenterWidthExplanation"],1056:["CS","VOILUTFunction"],1080:["CS","GrayScale"],1090:["CS","RecommendedViewingMode"],1100:["SS","GrayLookupTableDescriptor"],1101:["SS","RedPaletteColorLookupTableDescriptor"],1102:["SS","GreenPaletteColorLookupTableDescriptor"],1103:["SS","BluePaletteColorLookupTableDescriptor"],1104:["US","AlphaPaletteColorLookupTableDescriptor"],1111:["SS","LargeRedPaletteColorLookupTableDescriptor"],1112:["SS","LargeGreenPaletteColorLookupTableDescriptor"],1113:["SS","LargeBluePaletteColorLookupTableDescriptor"],1199:["UI","PaletteColorLookupTableUID"],1200:["OW","GrayLookupTableData"],1201:["OW","RedPaletteColorLookupTableData"],1202:["OW","GreenPaletteColorLookupTableData"],1203:["OW","BluePaletteColorLookupTableData"],1204:["OW","AlphaPaletteColorLookupTableData"],1211:["OW","LargeRedPaletteColorLookupTableData"],1212:["OW","LargeGreenPaletteColorLookupTableData"],1213:["OW","LargeBluePaletteColorLookupTableData"],1214:["UI","LargePaletteColorLookupTableUID"],1221:["OW","SegmentedRedPaletteColorLookupTableData"],1222:["OW","SegmentedGreenPaletteColorLookupTableData"],1223:["OW","SegmentedBluePaletteColorLookupTableData"],1300:["CS","BreastImplantPresent"],1350:["CS","PartialView"],1351:["ST","PartialViewDescription"],1352:["SQ","PartialViewCodeSequence"],"135A":["CS","SpatialLocationsPreserved"],1401:["SQ","DataFrameAssignmentSequence"],1402:["CS","DataPathAssignment"],1403:["US","BitsMappedToColorLookupTable"],1404:["SQ","BlendingLUT1Sequence"],1405:["CS","BlendingLUT1TransferFunction"],1406:["FD","BlendingWeightConstant"],1407:["US","BlendingLookupTableDescriptor"],1408:["OW","BlendingLookupTableData"],"140B":["SQ","EnhancedPaletteColorLookupTableSequence"],"140C":["SQ","BlendingLUT2Sequence"],"140D":["CS","BlendingLUT2TransferFunction"],"140E":["CS","DataPathID"],"140F":["CS","RGBLUTTransferFunction"],1410:["CS","AlphaLUTTransferFunction"],2e3:["OB","ICCProfile"],2110:["CS","LossyImageCompression"],2112:["DS","LossyImageCompressionRatio"],2114:["CS","LossyImageCompressionMethod"],3e3:["SQ","ModalityLUTSequence"],3002:["SS","LUTDescriptor"],3003:["LO","LUTExplanation"],3004:["LO","ModalityLUTType"],3006:["OW","LUTData"],3010:["SQ","VOILUTSequence"],3110:["SQ","SoftcopyVOILUTSequence"],4e3:["LT","ImagePresentationComments"],5e3:["SQ","BiPlaneAcquisitionSequence"],6010:["US","RepresentativeFrameNumber"],6020:["US","FrameNumbersOfInterest"],6022:["LO","FrameOfInterestDescription"],6023:["CS","FrameOfInterestType"],6030:["US","MaskPointers"],6040:["US","RWavePointer"],6100:["SQ","MaskSubtractionSequence"],6101:["CS","MaskOperation"],6102:["US","ApplicableFrameRange"],6110:["US","MaskFrameNumbers"],6112:["US","ContrastFrameAveraging"],6114:["FL","MaskSubPixelShift"],6120:["SS","TIDOffset"],6190:["ST","MaskOperationExplanation"],"7FE0":["UT","PixelDataProviderURL"],9001:["UL","DataPointRows"],9002:["UL","DataPointColumns"],9003:["CS","SignalDomainColumns"],9099:["US","LargestMonochromePixelValue"],9108:["CS","DataRepresentation"],9110:["SQ","PixelMeasuresSequence"],9132:["SQ","FrameVOILUTSequence"],9145:["SQ","PixelValueTransformationSequence"],9235:["CS","SignalDomainRows"],9411:["FL","DisplayFilterPercentage"],9415:["SQ","FramePixelShiftSequence"],9416:["US","SubtractionItemID"],9422:["SQ","PixelIntensityRelationshipLUTSequence"],9443:["SQ","FramePixelDataPropertiesSequence"],9444:["CS","GeometricalProperties"],9445:["FL","GeometricMaximumDistortion"],9446:["CS","ImageProcessingApplied"],9454:["CS","MaskSelectionMode"],9474:["CS","LUTFunction"],9478:["FL","MaskVisibilityPercentage"],9501:["SQ","PixelShiftSequence"],9502:["SQ","RegionPixelShiftSequence"],9503:["SS","VerticesOfTheRegion"],9505:["SQ","MultiFramePresentationSequence"],9506:["US","PixelShiftFrameRange"],9507:["US","LUTFrameRange"],9520:["DS","ImageToEquipmentMappingMatrix"],9537:["CS","EquipmentCoordinateSystemIdentification"]},"0032":{"000A":["CS","StudyStatusID"],"000C":["CS","StudyPriorityID"],"0012":["LO","StudyIDIssuer"],"0032":["DA","StudyVerifiedDate"],"0033":["TM","StudyVerifiedTime"],"0034":["DA","StudyReadDate"],"0035":["TM","StudyReadTime"],1e3:["DA","ScheduledStudyStartDate"],1001:["TM","ScheduledStudyStartTime"],1010:["DA","ScheduledStudyStopDate"],1011:["TM","ScheduledStudyStopTime"],1020:["LO","ScheduledStudyLocation"],1021:["AE","ScheduledStudyLocationAETitle"],1030:["LO","ReasonForStudy"],1031:["SQ","RequestingPhysicianIdentificationSequence"],1032:["PN","RequestingPhysician"],1033:["LO","RequestingService"],1034:["SQ","RequestingServiceCodeSequence"],1040:["DA","StudyArrivalDate"],1041:["TM","StudyArrivalTime"],1050:["DA","StudyCompletionDate"],1051:["TM","StudyCompletionTime"],1055:["CS","StudyComponentStatusID"],1060:["LO","RequestedProcedureDescription"],1064:["SQ","RequestedProcedureCodeSequence"],1070:["LO","RequestedContrastAgent"],4e3:["LT","StudyComments"]},"0038":{"0004":["SQ","ReferencedPatientAliasSequence"],"0008":["CS","VisitStatusID"],"0010":["LO","AdmissionID"],"0011":["LO","IssuerOfAdmissionID"],"0014":["SQ","IssuerOfAdmissionIDSequence"],"0016":["LO","RouteOfAdmissions"],"001A":["DA","ScheduledAdmissionDate"],"001B":["TM","ScheduledAdmissionTime"],"001C":["DA","ScheduledDischargeDate"],"001D":["TM","ScheduledDischargeTime"],"001E":["LO","ScheduledPatientInstitutionResidence"],"0020":["DA","AdmittingDate"],"0021":["TM","AdmittingTime"],"0030":["DA","DischargeDate"],"0032":["TM","DischargeTime"],"0040":["LO","DischargeDiagnosisDescription"],"0044":["SQ","DischargeDiagnosisCodeSequence"],"0050":["LO","SpecialNeeds"],"0060":["LO","ServiceEpisodeID"],"0061":["LO","IssuerOfServiceEpisodeID"],"0062":["LO","ServiceEpisodeDescription"],"0064":["SQ","IssuerOfServiceEpisodeIDSequence"],"0100":["SQ","PertinentDocumentsSequence"],"0300":["LO","CurrentPatientLocation"],"0400":["LO","PatientInstitutionResidence"],"0500":["LO","PatientState"],"0502":["SQ","PatientClinicalTrialParticipationSequence"],4e3:["LT","VisitComments"]},"003A":{"0004":["CS","WaveformOriginality"],"0005":["US","NumberOfWaveformChannels"],"0010":["UL","NumberOfWaveformSamples"],"001A":["DS","SamplingFrequency"],"0020":["SH","MultiplexGroupLabel"],"0200":["SQ","ChannelDefinitionSequence"],"0202":["IS","WaveformChannelNumber"],"0203":["SH","ChannelLabel"],"0205":["CS","ChannelStatus"],"0208":["SQ","ChannelSourceSequence"],"0209":["SQ","ChannelSourceModifiersSequence"],"020A":["SQ","SourceWaveformSequence"],"020C":["LO","ChannelDerivationDescription"],"0210":["DS","ChannelSensitivity"],"0211":["SQ","ChannelSensitivityUnitsSequence"],"0212":["DS","ChannelSensitivityCorrectionFactor"],"0213":["DS","ChannelBaseline"],"0214":["DS","ChannelTimeSkew"],"0215":["DS","ChannelSampleSkew"],"0218":["DS","ChannelOffset"],"021A":["US","WaveformBitsStored"],"0220":["DS","FilterLowFrequency"],"0221":["DS","FilterHighFrequency"],"0222":["DS","NotchFilterFrequency"],"0223":["DS","NotchFilterBandwidth"],"0230":["FL","WaveformDataDisplayScale"],"0231":["US","WaveformDisplayBackgroundCIELabValue"],"0240":["SQ","WaveformPresentationGroupSequence"],"0241":["US","PresentationGroupNumber"],"0242":["SQ","ChannelDisplaySequence"],"0244":["US","ChannelRecommendedDisplayCIELabValue"],"0245":["FL","ChannelPosition"],"0246":["CS","DisplayShadingFlag"],"0247":["FL","FractionalChannelDisplayScale"],"0248":["FL","AbsoluteChannelDisplayScale"],"0300":["SQ","MultiplexedAudioChannelsDescriptionCodeSequence"],"0301":["IS","ChannelIdentificationCode"],"0302":["CS","ChannelMode"]},"0040":{"0001":["AE","ScheduledStationAETitle"],"0002":["DA","ScheduledProcedureStepStartDate"],"0003":["TM","ScheduledProcedureStepStartTime"],"0004":["DA","ScheduledProcedureStepEndDate"],"0005":["TM","ScheduledProcedureStepEndTime"],"0006":["PN","ScheduledPerformingPhysicianName"],"0007":["LO","ScheduledProcedureStepDescription"],"0008":["SQ","ScheduledProtocolCodeSequence"],"0009":["SH","ScheduledProcedureStepID"],"000A":["SQ","StageCodeSequence"],"000B":["SQ","ScheduledPerformingPhysicianIdentificationSequence"],"0010":["SH","ScheduledStationName"],"0011":["SH","ScheduledProcedureStepLocation"],"0012":["LO","PreMedication"],"0020":["CS","ScheduledProcedureStepStatus"],"0026":["SQ","OrderPlacerIdentifierSequence"],"0027":["SQ","OrderFillerIdentifierSequence"],"0031":["UT","LocalNamespaceEntityID"],"0032":["UT","UniversalEntityID"],"0033":["CS","UniversalEntityIDType"],"0035":["CS","IdentifierTypeCode"],"0036":["SQ","AssigningFacilitySequence"],"0039":["SQ","AssigningJurisdictionCodeSequence"],"003A":["SQ","AssigningAgencyOrDepartmentCodeSequence"],"0100":["SQ","ScheduledProcedureStepSequence"],"0220":["SQ","ReferencedNonImageCompositeSOPInstanceSequence"],"0241":["AE","PerformedStationAETitle"],"0242":["SH","PerformedStationName"],"0243":["SH","PerformedLocation"],"0244":["DA","PerformedProcedureStepStartDate"],"0245":["TM","PerformedProcedureStepStartTime"],"0250":["DA","PerformedProcedureStepEndDate"],"0251":["TM","PerformedProcedureStepEndTime"],"0252":["CS","PerformedProcedureStepStatus"],"0253":["SH","PerformedProcedureStepID"],"0254":["LO","PerformedProcedureStepDescription"],"0255":["LO","PerformedProcedureTypeDescription"],"0260":["SQ","PerformedProtocolCodeSequence"],"0261":["CS","PerformedProtocolType"],"0270":["SQ","ScheduledStepAttributesSequence"],"0275":["SQ","RequestAttributesSequence"],"0280":["ST","CommentsOnThePerformedProcedureStep"],"0281":["SQ","PerformedProcedureStepDiscontinuationReasonCodeSequence"],"0293":["SQ","QuantitySequence"],"0294":["DS","Quantity"],"0295":["SQ","MeasuringUnitsSequence"],"0296":["SQ","BillingItemSequence"],"0300":["US","TotalTimeOfFluoroscopy"],"0301":["US","TotalNumberOfExposures"],"0302":["US","EntranceDose"],"0303":["US","ExposedArea"],"0306":["DS","DistanceSourceToEntrance"],"0307":["DS","DistanceSourceToSupport"],"030E":["SQ","ExposureDoseSequence"],"0310":["ST","CommentsOnRadiationDose"],"0312":["DS","XRayOutput"],"0314":["DS","HalfValueLayer"],"0316":["DS","OrganDose"],"0318":["CS","OrganExposed"],"0320":["SQ","BillingProcedureStepSequence"],"0321":["SQ","FilmConsumptionSequence"],"0324":["SQ","BillingSuppliesAndDevicesSequence"],"0330":["SQ","ReferencedProcedureStepSequence"],"0340":["SQ","PerformedSeriesSequence"],"0400":["LT","CommentsOnTheScheduledProcedureStep"],"0440":["SQ","ProtocolContextSequence"],"0441":["SQ","ContentItemModifierSequence"],"0500":["SQ","ScheduledSpecimenSequence"],"050A":["LO","SpecimenAccessionNumber"],"0512":["LO","ContainerIdentifier"],"0513":["SQ","IssuerOfTheContainerIdentifierSequence"],"0515":["SQ","AlternateContainerIdentifierSequence"],"0518":["SQ","ContainerTypeCodeSequence"],"051A":["LO","ContainerDescription"],"0520":["SQ","ContainerComponentSequence"],"0550":["SQ","SpecimenSequence"],"0551":["LO","SpecimenIdentifier"],"0552":["SQ","SpecimenDescriptionSequenceTrial"],"0553":["ST","SpecimenDescriptionTrial"],"0554":["UI","SpecimenUID"],"0555":["SQ","AcquisitionContextSequence"],"0556":["ST","AcquisitionContextDescription"],"059A":["SQ","SpecimenTypeCodeSequence"],"0560":["SQ","SpecimenDescriptionSequence"],"0562":["SQ","IssuerOfTheSpecimenIdentifierSequence"],"0600":["LO","SpecimenShortDescription"],"0602":["UT","SpecimenDetailedDescription"],"0610":["SQ","SpecimenPreparationSequence"],"0612":["SQ","SpecimenPreparationStepContentItemSequence"],"0620":["SQ","SpecimenLocalizationContentItemSequence"],"06FA":["LO","SlideIdentifier"],"071A":["SQ","ImageCenterPointCoordinatesSequence"],"072A":["DS","XOffsetInSlideCoordinateSystem"],"073A":["DS","YOffsetInSlideCoordinateSystem"],"074A":["DS","ZOffsetInSlideCoordinateSystem"],"08D8":["SQ","PixelSpacingSequence"],"08DA":["SQ","CoordinateSystemAxisCodeSequence"],"08EA":["SQ","MeasurementUnitsCodeSequence"],"09F8":["SQ","VitalStainCodeSequenceTrial"],1001:["SH","RequestedProcedureID"],1002:["LO","ReasonForTheRequestedProcedure"],1003:["SH","RequestedProcedurePriority"],1004:["LO","PatientTransportArrangements"],1005:["LO","RequestedProcedureLocation"],1006:["SH","PlacerOrderNumberProcedure"],1007:["SH","FillerOrderNumberProcedure"],1008:["LO","ConfidentialityCode"],1009:["SH","ReportingPriority"],"100A":["SQ","ReasonForRequestedProcedureCodeSequence"],1010:["PN","NamesOfIntendedRecipientsOfResults"],1011:["SQ","IntendedRecipientsOfResultsIdentificationSequence"],1012:["SQ","ReasonForPerformedProcedureCodeSequence"],1060:["LO","RequestedProcedureDescriptionTrial"],1101:["SQ","PersonIdentificationCodeSequence"],1102:["ST","PersonAddress"],1103:["LO","PersonTelephoneNumbers"],1400:["LT","RequestedProcedureComments"],2001:["LO","ReasonForTheImagingServiceRequest"],2004:["DA","IssueDateOfImagingServiceRequest"],2005:["TM","IssueTimeOfImagingServiceRequest"],2006:["SH","PlacerOrderNumberImagingServiceRequestRetired"],2007:["SH","FillerOrderNumberImagingServiceRequestRetired"],2008:["PN","OrderEnteredBy"],2009:["SH","OrderEntererLocation"],2010:["SH","OrderCallbackPhoneNumber"],2016:["LO","PlacerOrderNumberImagingServiceRequest"],2017:["LO","FillerOrderNumberImagingServiceRequest"],2400:["LT","ImagingServiceRequestComments"],3001:["LO","ConfidentialityConstraintOnPatientDataDescription"],4001:["CS","GeneralPurposeScheduledProcedureStepStatus"],4002:["CS","GeneralPurposePerformedProcedureStepStatus"],4003:["CS","GeneralPurposeScheduledProcedureStepPriority"],4004:["SQ","ScheduledProcessingApplicationsCodeSequence"],4005:["DT","ScheduledProcedureStepStartDateTime"],4006:["CS","MultipleCopiesFlag"],4007:["SQ","PerformedProcessingApplicationsCodeSequence"],4009:["SQ","HumanPerformerCodeSequence"],4010:["DT","ScheduledProcedureStepModificationDateTime"],4011:["DT","ExpectedCompletionDateTime"],4015:["SQ","ResultingGeneralPurposePerformedProcedureStepsSequence"],4016:["SQ","ReferencedGeneralPurposeScheduledProcedureStepSequence"],4018:["SQ","ScheduledWorkitemCodeSequence"],4019:["SQ","PerformedWorkitemCodeSequence"],4020:["CS","InputAvailabilityFlag"],4021:["SQ","InputInformationSequence"],4022:["SQ","RelevantInformationSequence"],4023:["UI","ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"],4025:["SQ","ScheduledStationNameCodeSequence"],4026:["SQ","ScheduledStationClassCodeSequence"],4027:["SQ","ScheduledStationGeographicLocationCodeSequence"],4028:["SQ","PerformedStationNameCodeSequence"],4029:["SQ","PerformedStationClassCodeSequence"],4030:["SQ","PerformedStationGeographicLocationCodeSequence"],4031:["SQ","RequestedSubsequentWorkitemCodeSequence"],4032:["SQ","NonDICOMOutputCodeSequence"],4033:["SQ","OutputInformationSequence"],4034:["SQ","ScheduledHumanPerformersSequence"],4035:["SQ","ActualHumanPerformersSequence"],4036:["LO","HumanPerformerOrganization"],4037:["PN","HumanPerformerName"],4040:["CS","RawDataHandling"],4041:["CS","InputReadinessState"],4050:["DT","PerformedProcedureStepStartDateTime"],4051:["DT","PerformedProcedureStepEndDateTime"],4052:["DT","ProcedureStepCancellationDateTime"],8302:["DS","EntranceDoseInmGy"],9094:["SQ","ReferencedImageRealWorldValueMappingSequence"],9096:["SQ","RealWorldValueMappingSequence"],9098:["SQ","PixelValueMappingCodeSequence"],9210:["SH","LUTLabel"],9211:["SS","RealWorldValueLastValueMapped"],9212:["FD","RealWorldValueLUTData"],9216:["SS","RealWorldValueFirstValueMapped"],9224:["FD","RealWorldValueIntercept"],9225:["FD","RealWorldValueSlope"],A007:["CS","FindingsFlagTrial"],A010:["CS","RelationshipType"],A020:["SQ","FindingsSequenceTrial"],A021:["UI","FindingsGroupUIDTrial"],A022:["UI","ReferencedFindingsGroupUIDTrial"],A023:["DA","FindingsGroupRecordingDateTrial"],A024:["TM","FindingsGroupRecordingTimeTrial"],A026:["SQ","FindingsSourceCategoryCodeSequenceTrial"],A027:["LO","VerifyingOrganization"],A028:["SQ","DocumentingOrganizationIdentifierCodeSequenceTrial"],A030:["DT","VerificationDateTime"],A032:["DT","ObservationDateTime"],A040:["CS","ValueType"],A043:["SQ","ConceptNameCodeSequence"],A047:["LO","MeasurementPrecisionDescriptionTrial"],A050:["CS","ContinuityOfContent"],A057:["CS","UrgencyOrPriorityAlertsTrial"],A060:["LO","SequencingIndicatorTrial"],A066:["SQ","DocumentIdentifierCodeSequenceTrial"],A067:["PN","DocumentAuthorTrial"],A068:["SQ","DocumentAuthorIdentifierCodeSequenceTrial"],A070:["SQ","IdentifierCodeSequenceTrial"],A073:["SQ","VerifyingObserverSequence"],A074:["OB","ObjectBinaryIdentifierTrial"],A075:["PN","VerifyingObserverName"],A076:["SQ","DocumentingObserverIdentifierCodeSequenceTrial"],A078:["SQ","AuthorObserverSequence"],A07A:["SQ","ParticipantSequence"],A07C:["SQ","CustodialOrganizationSequence"],A080:["CS","ParticipationType"],A082:["DT","ParticipationDateTime"],A084:["CS","ObserverType"],A085:["SQ","ProcedureIdentifierCodeSequenceTrial"],A088:["SQ","VerifyingObserverIdentificationCodeSequence"],A089:["OB","ObjectDirectoryBinaryIdentifierTrial"],A090:["SQ","EquivalentCDADocumentSequence"],A0B0:["US","ReferencedWaveformChannels"],A110:["DA","DateOfDocumentOrVerbalTransactionTrial"],A112:["TM","TimeOfDocumentCreationOrVerbalTransactionTrial"],A120:["DT","DateTime"],A121:["DA","Date"],A122:["TM","Time"],A123:["PN","PersonName"],A124:["UI","UID"],A125:["CS","ReportStatusIDTrial"],A130:["CS","TemporalRangeType"],A132:["UL","ReferencedSamplePositions"],A136:["US","ReferencedFrameNumbers"],A138:["DS","ReferencedTimeOffsets"],A13A:["DT","ReferencedDateTime"],A160:["UT","TextValue"],A167:["SQ","ObservationCategoryCodeSequenceTrial"],A168:["SQ","ConceptCodeSequence"],A16A:["ST","BibliographicCitationTrial"],A170:["SQ","PurposeOfReferenceCodeSequence"],A171:["UI","ObservationUIDTrial"],A172:["UI","ReferencedObservationUIDTrial"],A173:["CS","ReferencedObservationClassTrial"],A174:["CS","ReferencedObjectObservationClassTrial"],A180:["US","AnnotationGroupNumber"],A192:["DA","ObservationDateTrial"],A193:["TM","ObservationTimeTrial"],A194:["CS","MeasurementAutomationTrial"],A195:["SQ","ModifierCodeSequence"],A224:["ST","IdentificationDescriptionTrial"],A290:["CS","CoordinatesSetGeometricTypeTrial"],A296:["SQ","AlgorithmCodeSequenceTrial"],A297:["ST","AlgorithmDescriptionTrial"],A29A:["SL","PixelCoordinatesSetTrial"],A300:["SQ","MeasuredValueSequence"],A301:["SQ","NumericValueQualifierCodeSequence"],A307:["PN","CurrentObserverTrial"],A30A:["DS","NumericValue"],A313:["SQ","ReferencedAccessionSequenceTrial"],A33A:["ST","ReportStatusCommentTrial"],A340:["SQ","ProcedureContextSequenceTrial"],A352:["PN","VerbalSourceTrial"],A353:["ST","AddressTrial"],A354:["LO","TelephoneNumberTrial"],A358:["SQ","VerbalSourceIdentifierCodeSequenceTrial"],A360:["SQ","PredecessorDocumentsSequence"],A370:["SQ","ReferencedRequestSequence"],A372:["SQ","PerformedProcedureCodeSequence"],A375:["SQ","CurrentRequestedProcedureEvidenceSequence"],A380:["SQ","ReportDetailSequenceTrial"],A385:["SQ","PertinentOtherEvidenceSequence"],A390:["SQ","HL7StructuredDocumentReferenceSequence"],A402:["UI","ObservationSubjectUIDTrial"],A403:["CS","ObservationSubjectClassTrial"],A404:["SQ","ObservationSubjectTypeCodeSequenceTrial"],A491:["CS","CompletionFlag"],A492:["LO","CompletionFlagDescription"],A493:["CS","VerificationFlag"],A494:["CS","ArchiveRequested"],A496:["CS","PreliminaryFlag"],A504:["SQ","ContentTemplateSequence"],A525:["SQ","IdenticalDocumentsSequence"],A600:["CS","ObservationSubjectContextFlagTrial"],A601:["CS","ObserverContextFlagTrial"],A603:["CS","ProcedureContextFlagTrial"],A730:["SQ","ContentSequence"],A731:["SQ","RelationshipSequenceTrial"],A732:["SQ","RelationshipTypeCodeSequenceTrial"],A744:["SQ","LanguageCodeSequenceTrial"],A992:["ST","UniformResourceLocatorTrial"],B020:["SQ","WaveformAnnotationSequence"],DB00:["CS","TemplateIdentifier"],DB06:["DT","TemplateVersion"],DB07:["DT","TemplateLocalVersion"],DB0B:["CS","TemplateExtensionFlag"],DB0C:["UI","TemplateExtensionOrganizationUID"],DB0D:["UI","TemplateExtensionCreatorUID"],DB73:["UL","ReferencedContentItemIdentifier"],E001:["ST","HL7InstanceIdentifier"],E004:["DT","HL7DocumentEffectiveTime"],E006:["SQ","HL7DocumentTypeCodeSequence"],E008:["SQ","DocumentClassCodeSequence"],E010:["UT","RetrieveURI"],E011:["UI","RetrieveLocationUID"],E020:["CS","TypeOfInstances"],E021:["SQ","DICOMRetrievalSequence"],E022:["SQ","DICOMMediaRetrievalSequence"],E023:["SQ","WADORetrievalSequence"],E024:["SQ","XDSRetrievalSequence"],E030:["UI","RepositoryUniqueID"],E031:["UI","HomeCommunityID"]},"0042":{"0010":["ST","DocumentTitle"],"0011":["OB","EncapsulatedDocument"],"0012":["LO","MIMETypeOfEncapsulatedDocument"],"0013":["SQ","SourceInstanceSequence"],"0014":["LO","ListOfMIMETypes"]},"0044":{"0001":["ST","ProductPackageIdentifier"],"0002":["CS","SubstanceAdministrationApproval"],"0003":["LT","ApprovalStatusFurtherDescription"],"0004":["DT","ApprovalStatusDateTime"],"0007":["SQ","ProductTypeCodeSequence"],"0008":["LO","ProductName"],"0009":["LT","ProductDescription"],"000A":["LO","ProductLotIdentifier"],"000B":["DT","ProductExpirationDateTime"],"0010":["DT","SubstanceAdministrationDateTime"],"0011":["LO","SubstanceAdministrationNotes"],"0012":["LO","SubstanceAdministrationDeviceID"],"0013":["SQ","ProductParameterSequence"],"0019":["SQ","SubstanceAdministrationParameterSequence"]},"0046":{"0012":["LO","LensDescription"],"0014":["SQ","RightLensSequence"],"0015":["SQ","LeftLensSequence"],"0016":["SQ","UnspecifiedLateralityLensSequence"],"0018":["SQ","CylinderSequence"],"0028":["SQ","PrismSequence"],"0030":["FD","HorizontalPrismPower"],"0032":["CS","HorizontalPrismBase"],"0034":["FD","VerticalPrismPower"],"0036":["CS","VerticalPrismBase"],"0038":["CS","LensSegmentType"],"0040":["FD","OpticalTransmittance"],"0042":["FD","ChannelWidth"],"0044":["FD","PupilSize"],"0046":["FD","CornealSize"],"0050":["SQ","AutorefractionRightEyeSequence"],"0052":["SQ","AutorefractionLeftEyeSequence"],"0060":["FD","DistancePupillaryDistance"],"0062":["FD","NearPupillaryDistance"],"0063":["FD","IntermediatePupillaryDistance"],"0064":["FD","OtherPupillaryDistance"],"0070":["SQ","KeratometryRightEyeSequence"],"0071":["SQ","KeratometryLeftEyeSequence"],"0074":["SQ","SteepKeratometricAxisSequence"],"0075":["FD","RadiusOfCurvature"],"0076":["FD","KeratometricPower"],"0077":["FD","KeratometricAxis"],"0080":["SQ","FlatKeratometricAxisSequence"],"0092":["CS","BackgroundColor"],"0094":["CS","Optotype"],"0095":["CS","OptotypePresentation"],"0097":["SQ","SubjectiveRefractionRightEyeSequence"],"0098":["SQ","SubjectiveRefractionLeftEyeSequence"],"0100":["SQ","AddNearSequence"],"0101":["SQ","AddIntermediateSequence"],"0102":["SQ","AddOtherSequence"],"0104":["FD","AddPower"],"0106":["FD","ViewingDistance"],"0121":["SQ","VisualAcuityTypeCodeSequence"],"0122":["SQ","VisualAcuityRightEyeSequence"],"0123":["SQ","VisualAcuityLeftEyeSequence"],"0124":["SQ","VisualAcuityBothEyesOpenSequence"],"0125":["CS","ViewingDistanceType"],"0135":["SS","VisualAcuityModifiers"],"0137":["FD","DecimalVisualAcuity"],"0139":["LO","OptotypeDetailedDefinition"],"0145":["SQ","ReferencedRefractiveMeasurementsSequence"],"0146":["FD","SpherePower"],"0147":["FD","CylinderPower"]},"0048":{"0001":["FL","ImagedVolumeWidth"],"0002":["FL","ImagedVolumeHeight"],"0003":["FL","ImagedVolumeDepth"],"0006":["UL","TotalPixelMatrixColumns"],"0007":["UL","TotalPixelMatrixRows"],"0008":["SQ","TotalPixelMatrixOriginSequence"],"0010":["CS","SpecimenLabelInImage"],"0011":["CS","FocusMethod"],"0012":["CS","ExtendedDepthOfField"],"0013":["US","NumberOfFocalPlanes"],"0014":["FL","DistanceBetweenFocalPlanes"],"0015":["US","RecommendedAbsentPixelCIELabValue"],"0100":["SQ","IlluminatorTypeCodeSequence"],"0102":["DS","ImageOrientationSlide"],"0105":["SQ","OpticalPathSequence"],"0106":["SH","OpticalPathIdentifier"],"0107":["ST","OpticalPathDescription"],"0108":["SQ","IlluminationColorCodeSequence"],"0110":["SQ","SpecimenReferenceSequence"],"0111":["DS","CondenserLensPower"],"0112":["DS","ObjectiveLensPower"],"0113":["DS","ObjectiveLensNumericalAperture"],"0120":["SQ","PaletteColorLookupTableSequence"],"0200":["SQ","ReferencedImageNavigationSequence"],"0201":["US","TopLeftHandCornerOfLocalizerArea"],"0202":["US","BottomRightHandCornerOfLocalizerArea"],"0207":["SQ","OpticalPathIdentificationSequence"],"021A":["SQ","PlanePositionSlideSequence"],"021E":["SL","RowPositionInTotalImagePixelMatrix"],"021F":["SL","ColumnPositionInTotalImagePixelMatrix"],"0301":["CS","PixelOriginInterpretation"]},"0050":{"0004":["CS","CalibrationImage"],"0010":["SQ","DeviceSequence"],"0012":["SQ","ContainerComponentTypeCodeSequence"],"0013":["FD","ContainerComponentThickness"],"0014":["DS","DeviceLength"],"0015":["FD","ContainerComponentWidth"],"0016":["DS","DeviceDiameter"],"0017":["CS","DeviceDiameterUnits"],"0018":["DS","DeviceVolume"],"0019":["DS","InterMarkerDistance"],"001A":["CS","ContainerComponentMaterial"],"001B":["LO","ContainerComponentID"],"001C":["FD","ContainerComponentLength"],"001D":["FD","ContainerComponentDiameter"],"001E":["LO","ContainerComponentDescription"],"0020":["LO","DeviceDescription"]},"0052":{"0001":["FL","ContrastBolusIngredientPercentByVolume"],"0002":["FD","OCTFocalDistance"],"0003":["FD","BeamSpotSize"],"0004":["FD","EffectiveRefractiveIndex"],"0006":["CS","OCTAcquisitionDomain"],"0007":["FD","OCTOpticalCenterWavelength"],"0008":["FD","AxialResolution"],"0009":["FD","RangingDepth"],"0011":["FD","ALineRate"],"0012":["US","ALinesPerFrame"],"0013":["FD","CatheterRotationalRate"],"0014":["FD","ALinePixelSpacing"],"0016":["SQ","ModeOfPercutaneousAccessSequence"],"0025":["SQ","IntravascularOCTFrameTypeSequence"],"0026":["CS","OCTZOffsetApplied"],"0027":["SQ","IntravascularFrameContentSequence"],"0028":["FD","IntravascularLongitudinalDistance"],"0029":["SQ","IntravascularOCTFrameContentSequence"],"0030":["SS","OCTZOffsetCorrection"],"0031":["CS","CatheterDirectionOfRotation"],"0033":["FD","SeamLineLocation"],"0034":["FD","FirstALineLocation"],"0036":["US","SeamLineIndex"],"0038":["US","NumberOfPaddedAlines"],"0039":["CS","InterpolationType"],"003A":["CS","RefractiveIndexApplied"]},"0054":{"0010":["US","EnergyWindowVector"],"0011":["US","NumberOfEnergyWindows"],"0012":["SQ","EnergyWindowInformationSequence"],"0013":["SQ","EnergyWindowRangeSequence"],"0014":["DS","EnergyWindowLowerLimit"],"0015":["DS","EnergyWindowUpperLimit"],"0016":["SQ","RadiopharmaceuticalInformationSequence"],"0017":["IS","ResidualSyringeCounts"],"0018":["SH","EnergyWindowName"],"0020":["US","DetectorVector"],"0021":["US","NumberOfDetectors"],"0022":["SQ","DetectorInformationSequence"],"0030":["US","PhaseVector"],"0031":["US","NumberOfPhases"],"0032":["SQ","PhaseInformationSequence"],"0033":["US","NumberOfFramesInPhase"],"0036":["IS","PhaseDelay"],"0038":["IS","PauseBetweenFrames"],"0039":["CS","PhaseDescription"],"0050":["US","RotationVector"],"0051":["US","NumberOfRotations"],"0052":["SQ","RotationInformationSequence"],"0053":["US","NumberOfFramesInRotation"],"0060":["US","RRIntervalVector"],"0061":["US","NumberOfRRIntervals"],"0062":["SQ","GatedInformationSequence"],"0063":["SQ","DataInformationSequence"],"0070":["US","TimeSlotVector"],"0071":["US","NumberOfTimeSlots"],"0072":["SQ","TimeSlotInformationSequence"],"0073":["DS","TimeSlotTime"],"0080":["US","SliceVector"],"0081":["US","NumberOfSlices"],"0090":["US","AngularViewVector"],"0100":["US","TimeSliceVector"],"0101":["US","NumberOfTimeSlices"],"0200":["DS","StartAngle"],"0202":["CS","TypeOfDetectorMotion"],"0210":["IS","TriggerVector"],"0211":["US","NumberOfTriggersInPhase"],"0220":["SQ","ViewCodeSequence"],"0222":["SQ","ViewModifierCodeSequence"],"0300":["SQ","RadionuclideCodeSequence"],"0302":["SQ","AdministrationRouteCodeSequence"],"0304":["SQ","RadiopharmaceuticalCodeSequence"],"0306":["SQ","CalibrationDataSequence"],"0308":["US","EnergyWindowNumber"],"0400":["SH","ImageID"],"0410":["SQ","PatientOrientationCodeSequence"],"0412":["SQ","PatientOrientationModifierCodeSequence"],"0414":["SQ","PatientGantryRelationshipCodeSequence"],"0500":["CS","SliceProgressionDirection"],1e3:["CS","SeriesType"],1001:["CS","Units"],1002:["CS","CountsSource"],1004:["CS","ReprojectionMethod"],1006:["CS","SUVType"],1100:["CS","RandomsCorrectionMethod"],1101:["LO","AttenuationCorrectionMethod"],1102:["CS","DecayCorrection"],1103:["LO","ReconstructionMethod"],1104:["LO","DetectorLinesOfResponseUsed"],1105:["LO","ScatterCorrectionMethod"],1200:["DS","AxialAcceptance"],1201:["IS","AxialMash"],1202:["IS","TransverseMash"],1203:["DS","DetectorElementSize"],1210:["DS","CoincidenceWindowWidth"],1220:["CS","SecondaryCountsType"],1300:["DS","FrameReferenceTime"],1310:["IS","PrimaryPromptsCountsAccumulated"],1311:["IS","SecondaryCountsAccumulated"],1320:["DS","SliceSensitivityFactor"],1321:["DS","DecayFactor"],1322:["DS","DoseCalibrationFactor"],1323:["DS","ScatterFractionFactor"],1324:["DS","DeadTimeFactor"],1330:["US","ImageIndex"],1400:["CS","CountsIncluded"],1401:["CS","DeadTimeCorrectionFlag"]},"0060":{3e3:["SQ","HistogramSequence"],3002:["US","HistogramNumberOfBins"],3004:["SS","HistogramFirstBinValue"],3006:["SS","HistogramLastBinValue"],3008:["US","HistogramBinWidth"],3010:["LO","HistogramExplanation"],3020:["UL","HistogramData"]},"0062":{"0001":["CS","SegmentationType"],"0002":["SQ","SegmentSequence"],"0003":["SQ","SegmentedPropertyCategoryCodeSequence"],"0004":["US","SegmentNumber"],"0005":["LO","SegmentLabel"],"0006":["ST","SegmentDescription"],"0008":["CS","SegmentAlgorithmType"],"0009":["LO","SegmentAlgorithmName"],"000A":["SQ","SegmentIdentificationSequence"],"000B":["US","ReferencedSegmentNumber"],"000C":["US","RecommendedDisplayGrayscaleValue"],"000D":["US","RecommendedDisplayCIELabValue"],"000E":["US","MaximumFractionalValue"],"000F":["SQ","SegmentedPropertyTypeCodeSequence"],"0010":["CS","SegmentationFractionalType"]},"0064":{"0002":["SQ","DeformableRegistrationSequence"],"0003":["UI","SourceFrameOfReferenceUID"],"0005":["SQ","DeformableRegistrationGridSequence"],"0007":["UL","GridDimensions"],"0008":["FD","GridResolution"],"0009":["OF","VectorGridData"],"000F":["SQ","PreDeformationMatrixRegistrationSequence"],"0010":["SQ","PostDeformationMatrixRegistrationSequence"]},"0066":{"0001":["UL","NumberOfSurfaces"],"0002":["SQ","SurfaceSequence"],"0003":["UL","SurfaceNumber"],"0004":["LT","SurfaceComments"],"0009":["CS","SurfaceProcessing"],"000A":["FL","SurfaceProcessingRatio"],"000B":["LO","SurfaceProcessingDescription"],"000C":["FL","RecommendedPresentationOpacity"],"000D":["CS","RecommendedPresentationType"],"000E":["CS","FiniteVolume"],"0010":["CS","Manifold"],"0011":["SQ","SurfacePointsSequence"],"0012":["SQ","SurfacePointsNormalsSequence"],"0013":["SQ","SurfaceMeshPrimitivesSequence"],"0015":["UL","NumberOfSurfacePoints"],"0016":["OF","PointCoordinatesData"],"0017":["FL","PointPositionAccuracy"],"0018":["FL","MeanPointDistance"],"0019":["FL","MaximumPointDistance"],"001A":["FL","PointsBoundingBoxCoordinates"],"001B":["FL","AxisOfRotation"],"001C":["FL","CenterOfRotation"],"001E":["UL","NumberOfVectors"],"001F":["US","VectorDimensionality"],"0020":["FL","VectorAccuracy"],"0021":["OF","VectorCoordinateData"],"0023":["OW","TrianglePointIndexList"],"0024":["OW","EdgePointIndexList"],"0025":["OW","VertexPointIndexList"],"0026":["SQ","TriangleStripSequence"],"0027":["SQ","TriangleFanSequence"],"0028":["SQ","LineSequence"],"0029":["OW","PrimitivePointIndexList"],"002A":["UL","SurfaceCount"],"002B":["SQ","ReferencedSurfaceSequence"],"002C":["UL","ReferencedSurfaceNumber"],"002D":["SQ","SegmentSurfaceGenerationAlgorithmIdentificationSequence"],"002E":["SQ","SegmentSurfaceSourceInstanceSequence"],"002F":["SQ","AlgorithmFamilyCodeSequence"],"0030":["SQ","AlgorithmNameCodeSequence"],"0031":["LO","AlgorithmVersion"],"0032":["LT","AlgorithmParameters"],"0034":["SQ","FacetSequence"],"0035":["SQ","SurfaceProcessingAlgorithmIdentificationSequence"],"0036":["LO","AlgorithmName"]},"0068":{6210:["LO","ImplantSize"],6221:["LO","ImplantTemplateVersion"],6222:["SQ","ReplacedImplantTemplateSequence"],6223:["CS","ImplantType"],6224:["SQ","DerivationImplantTemplateSequence"],6225:["SQ","OriginalImplantTemplateSequence"],6226:["DT","EffectiveDateTime"],6230:["SQ","ImplantTargetAnatomySequence"],6260:["SQ","InformationFromManufacturerSequence"],6265:["SQ","NotificationFromManufacturerSequence"],6270:["DT","InformationIssueDateTime"],6280:["ST","InformationSummary"],"62A0":["SQ","ImplantRegulatoryDisapprovalCodeSequence"],"62A5":["FD","OverallTemplateSpatialTolerance"],"62C0":["SQ","HPGLDocumentSequence"],"62D0":["US","HPGLDocumentID"],"62D5":["LO","HPGLDocumentLabel"],"62E0":["SQ","ViewOrientationCodeSequence"],"62F0":["FD","ViewOrientationModifier"],"62F2":["FD","HPGLDocumentScaling"],6300:["OB","HPGLDocument"],6310:["US","HPGLContourPenNumber"],6320:["SQ","HPGLPenSequence"],6330:["US","HPGLPenNumber"],6340:["LO","HPGLPenLabel"],6345:["ST","HPGLPenDescription"],6346:["FD","RecommendedRotationPoint"],6347:["FD","BoundingRectangle"],6350:["US","ImplantTemplate3DModelSurfaceNumber"],6360:["SQ","SurfaceModelDescriptionSequence"],6380:["LO","SurfaceModelLabel"],6390:["FD","SurfaceModelScalingFactor"],"63A0":["SQ","MaterialsCodeSequence"],"63A4":["SQ","CoatingMaterialsCodeSequence"],"63A8":["SQ","ImplantTypeCodeSequence"],"63AC":["SQ","FixationMethodCodeSequence"],"63B0":["SQ","MatingFeatureSetsSequence"],"63C0":["US","MatingFeatureSetID"],"63D0":["LO","MatingFeatureSetLabel"],"63E0":["SQ","MatingFeatureSequence"],"63F0":["US","MatingFeatureID"],6400:["SQ","MatingFeatureDegreeOfFreedomSequence"],6410:["US","DegreeOfFreedomID"],6420:["CS","DegreeOfFreedomType"],6430:["SQ","TwoDMatingFeatureCoordinatesSequence"],6440:["US","ReferencedHPGLDocumentID"],6450:["FD","TwoDMatingPoint"],6460:["FD","TwoDMatingAxes"],6470:["SQ","TwoDDegreeOfFreedomSequence"],6490:["FD","ThreeDDegreeOfFreedomAxis"],"64A0":["FD","RangeOfFreedom"],"64C0":["FD","ThreeDMatingPoint"],"64D0":["FD","ThreeDMatingAxes"],"64F0":["FD","TwoDDegreeOfFreedomAxis"],6500:["SQ","PlanningLandmarkPointSequence"],6510:["SQ","PlanningLandmarkLineSequence"],6520:["SQ","PlanningLandmarkPlaneSequence"],6530:["US","PlanningLandmarkID"],6540:["LO","PlanningLandmarkDescription"],6545:["SQ","PlanningLandmarkIdentificationCodeSequence"],6550:["SQ","TwoDPointCoordinatesSequence"],6560:["FD","TwoDPointCoordinates"],6590:["FD","ThreeDPointCoordinates"],"65A0":["SQ","TwoDLineCoordinatesSequence"],"65B0":["FD","TwoDLineCoordinates"],"65D0":["FD","ThreeDLineCoordinates"],"65E0":["SQ","TwoDPlaneCoordinatesSequence"],"65F0":["FD","TwoDPlaneIntersection"],6610:["FD","ThreeDPlaneOrigin"],6620:["FD","ThreeDPlaneNormal"]},"0070":{"0001":["SQ","GraphicAnnotationSequence"],"0002":["CS","GraphicLayer"],"0003":["CS","BoundingBoxAnnotationUnits"],"0004":["CS","AnchorPointAnnotationUnits"],"0005":["CS","GraphicAnnotationUnits"],"0006":["ST","UnformattedTextValue"],"0008":["SQ","TextObjectSequence"],"0009":["SQ","GraphicObjectSequence"],"0010":["FL","BoundingBoxTopLeftHandCorner"],"0011":["FL","BoundingBoxBottomRightHandCorner"],"0012":["CS","BoundingBoxTextHorizontalJustification"],"0014":["FL","AnchorPoint"],"0015":["CS","AnchorPointVisibility"],"0020":["US","GraphicDimensions"],"0021":["US","NumberOfGraphicPoints"],"0022":["FL","GraphicData"],"0023":["CS","GraphicType"],"0024":["CS","GraphicFilled"],"0040":["IS","ImageRotationRetired"],"0041":["CS","ImageHorizontalFlip"],"0042":["US","ImageRotation"],"0050":["US","DisplayedAreaTopLeftHandCornerTrial"],"0051":["US","DisplayedAreaBottomRightHandCornerTrial"],"0052":["SL","DisplayedAreaTopLeftHandCorner"],"0053":["SL","DisplayedAreaBottomRightHandCorner"],"005A":["SQ","DisplayedAreaSelectionSequence"],"0060":["SQ","GraphicLayerSequence"],"0062":["IS","GraphicLayerOrder"],"0066":["US","GraphicLayerRecommendedDisplayGrayscaleValue"],"0067":["US","GraphicLayerRecommendedDisplayRGBValue"],"0068":["LO","GraphicLayerDescription"],"0080":["CS","ContentLabel"],"0081":["LO","ContentDescription"],"0082":["DA","PresentationCreationDate"],"0083":["TM","PresentationCreationTime"],"0084":["PN","ContentCreatorName"],"0086":["SQ","ContentCreatorIdentificationCodeSequence"],"0087":["SQ","AlternateContentDescriptionSequence"],"0100":["CS","PresentationSizeMode"],"0101":["DS","PresentationPixelSpacing"],"0102":["IS","PresentationPixelAspectRatio"],"0103":["FL","PresentationPixelMagnificationRatio"],"0207":["LO","GraphicGroupLabel"],"0208":["ST","GraphicGroupDescription"],"0209":["SQ","CompoundGraphicSequence"],"0226":["UL","CompoundGraphicInstanceID"],"0227":["LO","FontName"],"0228":["CS","FontNameType"],"0229":["LO","CSSFontName"],"0230":["FD","RotationAngle"],"0231":["SQ","TextStyleSequence"],"0232":["SQ","LineStyleSequence"],"0233":["SQ","FillStyleSequence"],"0234":["SQ","GraphicGroupSequence"],"0241":["US","TextColorCIELabValue"],"0242":["CS","HorizontalAlignment"],"0243":["CS","VerticalAlignment"],"0244":["CS","ShadowStyle"],"0245":["FL","ShadowOffsetX"],"0246":["FL","ShadowOffsetY"],"0247":["US","ShadowColorCIELabValue"],"0248":["CS","Underlined"],"0249":["CS","Bold"],"0250":["CS","Italic"],"0251":["US","PatternOnColorCIELabValue"],"0252":["US","PatternOffColorCIELabValue"],"0253":["FL","LineThickness"],"0254":["CS","LineDashingStyle"],"0255":["UL","LinePattern"],"0256":["OB","FillPattern"],"0257":["CS","FillMode"],"0258":["FL","ShadowOpacity"],"0261":["FL","GapLength"],"0262":["FL","DiameterOfVisibility"],"0273":["FL","RotationPoint"],"0274":["CS","TickAlignment"],"0278":["CS","ShowTickLabel"],"0279":["CS","TickLabelAlignment"],"0282":["CS","CompoundGraphicUnits"],"0284":["FL","PatternOnOpacity"],"0285":["FL","PatternOffOpacity"],"0287":["SQ","MajorTicksSequence"],"0288":["FL","TickPosition"],"0289":["SH","TickLabel"],"0294":["CS","CompoundGraphicType"],"0295":["UL","GraphicGroupID"],"0306":["CS","ShapeType"],"0308":["SQ","RegistrationSequence"],"0309":["SQ","MatrixRegistrationSequence"],"030A":["SQ","MatrixSequence"],"030C":["CS","FrameOfReferenceTransformationMatrixType"],"030D":["SQ","RegistrationTypeCodeSequence"],"030F":["ST","FiducialDescription"],"0310":["SH","FiducialIdentifier"],"0311":["SQ","FiducialIdentifierCodeSequence"],"0312":["FD","ContourUncertaintyRadius"],"0314":["SQ","UsedFiducialsSequence"],"0318":["SQ","GraphicCoordinatesDataSequence"],"031A":["UI","FiducialUID"],"031C":["SQ","FiducialSetSequence"],"031E":["SQ","FiducialSequence"],"0401":["US","GraphicLayerRecommendedDisplayCIELabValue"],"0402":["SQ","BlendingSequence"],"0403":["FL","RelativeOpacity"],"0404":["SQ","ReferencedSpatialRegistrationSequence"],"0405":["CS","BlendingPosition"]},"0072":{"0002":["SH","HangingProtocolName"],"0004":["LO","HangingProtocolDescription"],"0006":["CS","HangingProtocolLevel"],"0008":["LO","HangingProtocolCreator"],"000A":["DT","HangingProtocolCreationDateTime"],"000C":["SQ","HangingProtocolDefinitionSequence"],"000E":["SQ","HangingProtocolUserIdentificationCodeSequence"],"0010":["LO","HangingProtocolUserGroupName"],"0012":["SQ","SourceHangingProtocolSequence"],"0014":["US","NumberOfPriorsReferenced"],"0020":["SQ","ImageSetsSequence"],"0022":["SQ","ImageSetSelectorSequence"],"0024":["CS","ImageSetSelectorUsageFlag"],"0026":["AT","SelectorAttribute"],"0028":["US","SelectorValueNumber"],"0030":["SQ","TimeBasedImageSetsSequence"],"0032":["US","ImageSetNumber"],"0034":["CS","ImageSetSelectorCategory"],"0038":["US","RelativeTime"],"003A":["CS","RelativeTimeUnits"],"003C":["SS","AbstractPriorValue"],"003E":["SQ","AbstractPriorCodeSequence"],"0040":["LO","ImageSetLabel"],"0050":["CS","SelectorAttributeVR"],"0052":["AT","SelectorSequencePointer"],"0054":["LO","SelectorSequencePointerPrivateCreator"],"0056":["LO","SelectorAttributePrivateCreator"],"0060":["AT","SelectorATValue"],"0062":["CS","SelectorCSValue"],"0064":["IS","SelectorISValue"],"0066":["LO","SelectorLOValue"],"0068":["LT","SelectorLTValue"],"006A":["PN","SelectorPNValue"],"006C":["SH","SelectorSHValue"],"006E":["ST","SelectorSTValue"],"0070":["UT","SelectorUTValue"],"0072":["DS","SelectorDSValue"],"0074":["FD","SelectorFDValue"],"0076":["FL","SelectorFLValue"],"0078":["UL","SelectorULValue"],"007A":["US","SelectorUSValue"],"007C":["SL","SelectorSLValue"],"007E":["SS","SelectorSSValue"],"0080":["SQ","SelectorCodeSequenceValue"],"0100":["US","NumberOfScreens"],"0102":["SQ","NominalScreenDefinitionSequence"],"0104":["US","NumberOfVerticalPixels"],"0106":["US","NumberOfHorizontalPixels"],"0108":["FD","DisplayEnvironmentSpatialPosition"],"010A":["US","ScreenMinimumGrayscaleBitDepth"],"010C":["US","ScreenMinimumColorBitDepth"],"010E":["US","ApplicationMaximumRepaintTime"],"0200":["SQ","DisplaySetsSequence"],"0202":["US","DisplaySetNumber"],"0203":["LO","DisplaySetLabel"],"0204":["US","DisplaySetPresentationGroup"],"0206":["LO","DisplaySetPresentationGroupDescription"],"0208":["CS","PartialDataDisplayHandling"],"0210":["SQ","SynchronizedScrollingSequence"],"0212":["US","DisplaySetScrollingGroup"],"0214":["SQ","NavigationIndicatorSequence"],"0216":["US","NavigationDisplaySet"],"0218":["US","ReferenceDisplaySets"],"0300":["SQ","ImageBoxesSequence"],"0302":["US","ImageBoxNumber"],"0304":["CS","ImageBoxLayoutType"],"0306":["US","ImageBoxTileHorizontalDimension"],"0308":["US","ImageBoxTileVerticalDimension"],"0310":["CS","ImageBoxScrollDirection"],"0312":["CS","ImageBoxSmallScrollType"],"0314":["US","ImageBoxSmallScrollAmount"],"0316":["CS","ImageBoxLargeScrollType"],"0318":["US","ImageBoxLargeScrollAmount"],"0320":["US","ImageBoxOverlapPriority"],"0330":["FD","CineRelativeToRealTime"],"0400":["SQ","FilterOperationsSequence"],"0402":["CS","FilterByCategory"],"0404":["CS","FilterByAttributePresence"],"0406":["CS","FilterByOperator"],"0420":["US","StructuredDisplayBackgroundCIELabValue"],"0421":["US","EmptyImageBoxCIELabValue"],"0422":["SQ","StructuredDisplayImageBoxSequence"],"0424":["SQ","StructuredDisplayTextBoxSequence"],"0427":["SQ","ReferencedFirstFrameSequence"],"0430":["SQ","ImageBoxSynchronizationSequence"],"0432":["US","SynchronizedImageBoxList"],"0434":["CS","TypeOfSynchronization"],"0500":["CS","BlendingOperationType"],"0510":["CS","ReformattingOperationType"],"0512":["FD","ReformattingThickness"],"0514":["FD","ReformattingInterval"],"0516":["CS","ReformattingOperationInitialViewDirection"],"0520":["CS","ThreeDRenderingType"],"0600":["SQ","SortingOperationsSequence"],"0602":["CS","SortByCategory"],"0604":["CS","SortingDirection"],"0700":["CS","DisplaySetPatientOrientation"],"0702":["CS","VOIType"],"0704":["CS","PseudoColorType"],"0705":["SQ","PseudoColorPaletteInstanceReferenceSequence"],"0706":["CS","ShowGrayscaleInverted"],"0710":["CS","ShowImageTrueSizeFlag"],"0712":["CS","ShowGraphicAnnotationFlag"],"0714":["CS","ShowPatientDemographicsFlag"],"0716":["CS","ShowAcquisitionTechniquesFlag"],"0717":["CS","DisplaySetHorizontalJustification"],"0718":["CS","DisplaySetVerticalJustification"]},"0074":{"0120":["FD","ContinuationStartMeterset"],"0121":["FD","ContinuationEndMeterset"],1e3:["CS","ProcedureStepState"],1002:["SQ","ProcedureStepProgressInformationSequence"],1004:["DS","ProcedureStepProgress"],1006:["ST","ProcedureStepProgressDescription"],1008:["SQ","ProcedureStepCommunicationsURISequence"],"100A":["ST","ContactURI"],"100C":["LO","ContactDisplayName"],"100E":["SQ","ProcedureStepDiscontinuationReasonCodeSequence"],1020:["SQ","BeamTaskSequence"],1022:["CS","BeamTaskType"],1024:["IS","BeamOrderIndexTrial"],1026:["FD","TableTopVerticalAdjustedPosition"],1027:["FD","TableTopLongitudinalAdjustedPosition"],1028:["FD","TableTopLateralAdjustedPosition"],"102A":["FD","PatientSupportAdjustedAngle"],"102B":["FD","TableTopEccentricAdjustedAngle"],"102C":["FD","TableTopPitchAdjustedAngle"],"102D":["FD","TableTopRollAdjustedAngle"],1030:["SQ","DeliveryVerificationImageSequence"],1032:["CS","VerificationImageTiming"],1034:["CS","DoubleExposureFlag"],1036:["CS","DoubleExposureOrdering"],1038:["DS","DoubleExposureMetersetTrial"],"103A":["DS","DoubleExposureFieldDeltaTrial"],1040:["SQ","RelatedReferenceRTImageSequence"],1042:["SQ","GeneralMachineVerificationSequence"],1044:["SQ","ConventionalMachineVerificationSequence"],1046:["SQ","IonMachineVerificationSequence"],1048:["SQ","FailedAttributesSequence"],"104A":["SQ","OverriddenAttributesSequence"],"104C":["SQ","ConventionalControlPointVerificationSequence"],"104E":["SQ","IonControlPointVerificationSequence"],1050:["SQ","AttributeOccurrenceSequence"],1052:["AT","AttributeOccurrencePointer"],1054:["UL","AttributeItemSelector"],1056:["LO","AttributeOccurrencePrivateCreator"],1057:["IS","SelectorSequencePointerItems"],1200:["CS","ScheduledProcedureStepPriority"],1202:["LO","WorklistLabel"],1204:["LO","ProcedureStepLabel"],1210:["SQ","ScheduledProcessingParametersSequence"],1212:["SQ","PerformedProcessingParametersSequence"],1216:["SQ","UnifiedProcedureStepPerformedProcedureSequence"],1220:["SQ","RelatedProcedureStepSequence"],1222:["LO","ProcedureStepRelationshipType"],1224:["SQ","ReplacedProcedureStepSequence"],1230:["LO","DeletionLock"],1234:["AE","ReceivingAE"],1236:["AE","RequestingAE"],1238:["LT","ReasonForCancellation"],1242:["CS","SCPStatus"],1244:["CS","SubscriptionListStatus"],1246:["CS","UnifiedProcedureStepListStatus"],1324:["UL","BeamOrderIndex"],1338:["FD","DoubleExposureMeterset"],"133A":["FD","DoubleExposureFieldDelta"]},"0076":{"0001":["LO","ImplantAssemblyTemplateName"],"0003":["LO","ImplantAssemblyTemplateIssuer"],"0006":["LO","ImplantAssemblyTemplateVersion"],"0008":["SQ","ReplacedImplantAssemblyTemplateSequence"],"000A":["CS","ImplantAssemblyTemplateType"],"000C":["SQ","OriginalImplantAssemblyTemplateSequence"],"000E":["SQ","DerivationImplantAssemblyTemplateSequence"],"0010":["SQ","ImplantAssemblyTemplateTargetAnatomySequence"],"0020":["SQ","ProcedureTypeCodeSequence"],"0030":["LO","SurgicalTechnique"],"0032":["SQ","ComponentTypesSequence"],"0034":["CS","ComponentTypeCodeSequence"],"0036":["CS","ExclusiveComponentType"],"0038":["CS","MandatoryComponentType"],"0040":["SQ","ComponentSequence"],"0055":["US","ComponentID"],"0060":["SQ","ComponentAssemblySequence"],"0070":["US","Component1ReferencedID"],"0080":["US","Component1ReferencedMatingFeatureSetID"],"0090":["US","Component1ReferencedMatingFeatureID"],"00A0":["US","Component2ReferencedID"],"00B0":["US","Component2ReferencedMatingFeatureSetID"],"00C0":["US","Component2ReferencedMatingFeatureID"]},"0078":{"0001":["LO","ImplantTemplateGroupName"],"0010":["ST","ImplantTemplateGroupDescription"],"0020":["LO","ImplantTemplateGroupIssuer"],"0024":["LO","ImplantTemplateGroupVersion"],"0026":["SQ","ReplacedImplantTemplateGroupSequence"],"0028":["SQ","ImplantTemplateGroupTargetAnatomySequence"],"002A":["SQ","ImplantTemplateGroupMembersSequence"],"002E":["US","ImplantTemplateGroupMemberID"],"0050":["FD","ThreeDImplantTemplateGroupMemberMatchingPoint"],"0060":["FD","ThreeDImplantTemplateGroupMemberMatchingAxes"],"0070":["SQ","ImplantTemplateGroupMemberMatching2DCoordinatesSequence"],"0090":["FD","TwoDImplantTemplateGroupMemberMatchingPoint"],"00A0":["FD","TwoDImplantTemplateGroupMemberMatchingAxes"],"00B0":["SQ","ImplantTemplateGroupVariationDimensionSequence"],"00B2":["LO","ImplantTemplateGroupVariationDimensionName"],"00B4":["SQ","ImplantTemplateGroupVariationDimensionRankSequence"],"00B6":["US","ReferencedImplantTemplateGroupMemberID"],"00B8":["US","ImplantTemplateGroupVariationDimensionRank"]},"0088":{"0130":["SH","StorageMediaFileSetID"],"0140":["UI","StorageMediaFileSetUID"],"0200":["SQ","IconImageSequence"],"0904":["LO","TopicTitle"],"0906":["ST","TopicSubject"],"0910":["LO","TopicAuthor"],"0912":["LO","TopicKeywords"]},"0100":{"0410":["CS","SOPInstanceStatus"],"0420":["DT","SOPAuthorizationDateTime"],"0424":["LT","SOPAuthorizationComment"],"0426":["LO","AuthorizationEquipmentCertificationNumber"]},"0400":{"0005":["US","MACIDNumber"],"0010":["UI","MACCalculationTransferSyntaxUID"],"0015":["CS","MACAlgorithm"],"0020":["AT","DataElementsSigned"],"0100":["UI","DigitalSignatureUID"],"0105":["DT","DigitalSignatureDateTime"],"0110":["CS","CertificateType"],"0115":["OB","CertificateOfSigner"],"0120":["OB","Signature"],"0305":["CS","CertifiedTimestampType"],"0310":["OB","CertifiedTimestamp"],"0401":["SQ","DigitalSignaturePurposeCodeSequence"],"0402":["SQ","ReferencedDigitalSignatureSequence"],"0403":["SQ","ReferencedSOPInstanceMACSequence"],"0404":["OB","MAC"],"0500":["SQ","EncryptedAttributesSequence"],"0510":["UI","EncryptedContentTransferSyntaxUID"],"0520":["OB","EncryptedContent"],"0550":["SQ","ModifiedAttributesSequence"],"0561":["SQ","OriginalAttributesSequence"],"0562":["DT","AttributeModificationDateTime"],"0563":["LO","ModifyingSystem"],"0564":["LO","SourceOfPreviousValues"],"0565":["CS","ReasonForTheAttributeModification"]},2e3:{"0010":["IS","NumberOfCopies"],"001E":["SQ","PrinterConfigurationSequence"],"0020":["CS","PrintPriority"],"0030":["CS","MediumType"],"0040":["CS","FilmDestination"],"0050":["LO","FilmSessionLabel"],"0060":["IS","MemoryAllocation"],"0061":["IS","MaximumMemoryAllocation"],"0062":["CS","ColorImagePrintingFlag"],"0063":["CS","CollationFlag"],"0065":["CS","AnnotationFlag"],"0067":["CS","ImageOverlayFlag"],"0069":["CS","PresentationLUTFlag"],"006A":["CS","ImageBoxPresentationLUTFlag"],"00A0":["US","MemoryBitDepth"],"00A1":["US","PrintingBitDepth"],"00A2":["SQ","MediaInstalledSequence"],"00A4":["SQ","OtherMediaAvailableSequence"],"00A8":["SQ","SupportedImageDisplayFormatsSequence"],"0500":["SQ","ReferencedFilmBoxSequence"],"0510":["SQ","ReferencedStoredPrintSequence"]},2010:{"0010":["ST","ImageDisplayFormat"],"0030":["CS","AnnotationDisplayFormatID"],"0040":["CS","FilmOrientation"],"0050":["CS","FilmSizeID"],"0052":["CS","PrinterResolutionID"],"0054":["CS","DefaultPrinterResolutionID"],"0060":["CS","MagnificationType"],"0080":["CS","SmoothingType"],"00A6":["CS","DefaultMagnificationType"],"00A7":["CS","OtherMagnificationTypesAvailable"],"00A8":["CS","DefaultSmoothingType"],"00A9":["CS","OtherSmoothingTypesAvailable"],"0100":["CS","BorderDensity"],"0110":["CS","EmptyImageDensity"],"0120":["US","MinDensity"],"0130":["US","MaxDensity"],"0140":["CS","Trim"],"0150":["ST","ConfigurationInformation"],"0152":["LT","ConfigurationInformationDescription"],"0154":["IS","MaximumCollatedFilms"],"015E":["US","Illumination"],"0160":["US","ReflectedAmbientLight"],"0376":["DS","PrinterPixelSpacing"],"0500":["SQ","ReferencedFilmSessionSequence"],"0510":["SQ","ReferencedImageBoxSequence"],"0520":["SQ","ReferencedBasicAnnotationBoxSequence"]},2020:{"0010":["US","ImageBoxPosition"],"0020":["CS","Polarity"],"0030":["DS","RequestedImageSize"],"0040":["CS","RequestedDecimateCropBehavior"],"0050":["CS","RequestedResolutionID"],"00A0":["CS","RequestedImageSizeFlag"],"00A2":["CS","DecimateCropResult"],"0110":["SQ","BasicGrayscaleImageSequence"],"0111":["SQ","BasicColorImageSequence"],"0130":["SQ","ReferencedImageOverlayBoxSequence"],"0140":["SQ","ReferencedVOILUTBoxSequence"]},2030:{"0010":["US","AnnotationPosition"],"0020":["LO","TextString"]},2040:{"0010":["SQ","ReferencedOverlayPlaneSequence"],"0011":["US","ReferencedOverlayPlaneGroups"],"0020":["SQ","OverlayPixelDataSequence"],"0060":["CS","OverlayMagnificationType"],"0070":["CS","OverlaySmoothingType"],"0072":["CS","OverlayOrImageMagnification"],"0074":["US","MagnifyToNumberOfColumns"],"0080":["CS","OverlayForegroundDensity"],"0082":["CS","OverlayBackgroundDensity"],"0090":["CS","OverlayMode"],"0100":["CS","ThresholdDensity"],"0500":["SQ","ReferencedImageBoxSequenceRetired"]},2050:{"0010":["SQ","PresentationLUTSequence"],"0020":["CS","PresentationLUTShape"],"0500":["SQ","ReferencedPresentationLUTSequence"]},2100:{"0010":["SH","PrintJobID"],"0020":["CS","ExecutionStatus"],"0030":["CS","ExecutionStatusInfo"],"0040":["DA","CreationDate"],"0050":["TM","CreationTime"],"0070":["AE","Originator"],"0140":["AE","DestinationAE"],"0160":["SH","OwnerID"],"0170":["IS","NumberOfFilms"],"0500":["SQ","ReferencedPrintJobSequencePullStoredPrint"]},2110:{"0010":["CS","PrinterStatus"],"0020":["CS","PrinterStatusInfo"],"0030":["LO","PrinterName"],"0099":["SH","PrintQueueID"]},2120:{"0010":["CS","QueueStatus"],"0050":["SQ","PrintJobDescriptionSequence"],"0070":["SQ","ReferencedPrintJobSequence"]},2130:{"0010":["SQ","PrintManagementCapabilitiesSequence"],"0015":["SQ","PrinterCharacteristicsSequence"],"0030":["SQ","FilmBoxContentSequence"],"0040":["SQ","ImageBoxContentSequence"],"0050":["SQ","AnnotationContentSequence"],"0060":["SQ","ImageOverlayBoxContentSequence"],"0080":["SQ","PresentationLUTContentSequence"],"00A0":["SQ","ProposedStudySequence"],"00C0":["SQ","OriginalImageSequence"]},2200:{"0001":["CS","LabelUsingInformationExtractedFromInstances"],"0002":["UT","LabelText"],"0003":["CS","LabelStyleSelection"],"0004":["LT","MediaDisposition"],"0005":["LT","BarcodeValue"],"0006":["CS","BarcodeSymbology"],"0007":["CS","AllowMediaSplitting"],"0008":["CS","IncludeNonDICOMObjects"],"0009":["CS","IncludeDisplayApplication"],"000A":["CS","PreserveCompositeInstancesAfterMediaCreation"],"000B":["US","TotalNumberOfPiecesOfMediaCreated"],"000C":["LO","RequestedMediaApplicationProfile"],"000D":["SQ","ReferencedStorageMediaSequence"],"000E":["AT","FailureAttributes"],"000F":["CS","AllowLossyCompression"],"0020":["CS","RequestPriority"]},3002:{"0002":["SH","RTImageLabel"],"0003":["LO","RTImageName"],"0004":["ST","RTImageDescription"],"000A":["CS","ReportedValuesOrigin"],"000C":["CS","RTImagePlane"],"000D":["DS","XRayImageReceptorTranslation"],"000E":["DS","XRayImageReceptorAngle"],"0010":["DS","RTImageOrientation"],"0011":["DS","ImagePlanePixelSpacing"],"0012":["DS","RTImagePosition"],"0020":["SH","RadiationMachineName"],"0022":["DS","RadiationMachineSAD"],"0024":["DS","RadiationMachineSSD"],"0026":["DS","RTImageSID"],"0028":["DS","SourceToReferenceObjectDistance"],"0029":["IS","FractionNumber"],"0030":["SQ","ExposureSequence"],"0032":["DS","MetersetExposure"],"0034":["DS","DiaphragmPosition"],"0040":["SQ","FluenceMapSequence"],"0041":["CS","FluenceDataSource"],"0042":["DS","FluenceDataScale"],"0050":["SQ","PrimaryFluenceModeSequence"],"0051":["CS","FluenceMode"],"0052":["SH","FluenceModeID"]},3004:{"0001":["CS","DVHType"],"0002":["CS","DoseUnits"],"0004":["CS","DoseType"],"0006":["LO","DoseComment"],"0008":["DS","NormalizationPoint"],"000A":["CS","DoseSummationType"],"000C":["DS","GridFrameOffsetVector"],"000E":["DS","DoseGridScaling"],"0010":["SQ","RTDoseROISequence"],"0012":["DS","DoseValue"],"0014":["CS","TissueHeterogeneityCorrection"],"0040":["DS","DVHNormalizationPoint"],"0042":["DS","DVHNormalizationDoseValue"],"0050":["SQ","DVHSequence"],"0052":["DS","DVHDoseScaling"],"0054":["CS","DVHVolumeUnits"],"0056":["IS","DVHNumberOfBins"],"0058":["DS","DVHData"],"0060":["SQ","DVHReferencedROISequence"],"0062":["CS","DVHROIContributionType"],"0070":["DS","DVHMinimumDose"],"0072":["DS","DVHMaximumDose"],"0074":["DS","DVHMeanDose"]},3006:{"0002":["SH","StructureSetLabel"],"0004":["LO","StructureSetName"],"0006":["ST","StructureSetDescription"],"0008":["DA","StructureSetDate"],"0009":["TM","StructureSetTime"],"0010":["SQ","ReferencedFrameOfReferenceSequence"],"0012":["SQ","RTReferencedStudySequence"],"0014":["SQ","RTReferencedSeriesSequence"],"0016":["SQ","ContourImageSequence"],"0020":["SQ","StructureSetROISequence"],"0022":["IS","ROINumber"],"0024":["UI","ReferencedFrameOfReferenceUID"],"0026":["LO","ROIName"],"0028":["ST","ROIDescription"],"002A":["IS","ROIDisplayColor"],"002C":["DS","ROIVolume"],"0030":["SQ","RTRelatedROISequence"],"0033":["CS","RTROIRelationship"],"0036":["CS","ROIGenerationAlgorithm"],"0038":["LO","ROIGenerationDescription"],"0039":["SQ","ROIContourSequence"],"0040":["SQ","ContourSequence"],"0042":["CS","ContourGeometricType"],"0044":["DS","ContourSlabThickness"],"0045":["DS","ContourOffsetVector"],"0046":["IS","NumberOfContourPoints"],"0048":["IS","ContourNumber"],"0049":["IS","AttachedContours"],"0050":["DS","ContourData"],"0080":["SQ","RTROIObservationsSequence"],"0082":["IS","ObservationNumber"],"0084":["IS","ReferencedROINumber"],"0085":["SH","ROIObservationLabel"],"0086":["SQ","RTROIIdentificationCodeSequence"],"0088":["ST","ROIObservationDescription"],"00A0":["SQ","RelatedRTROIObservationsSequence"],"00A4":["CS","RTROIInterpretedType"],"00A6":["PN","ROIInterpreter"],"00B0":["SQ","ROIPhysicalPropertiesSequence"],"00B2":["CS","ROIPhysicalProperty"],"00B4":["DS","ROIPhysicalPropertyValue"],"00B6":["SQ","ROIElementalCompositionSequence"],"00B7":["US","ROIElementalCompositionAtomicNumber"],"00B8":["FL","ROIElementalCompositionAtomicMassFraction"],"00C0":["SQ","FrameOfReferenceRelationshipSequence"],"00C2":["UI","RelatedFrameOfReferenceUID"],"00C4":["CS","FrameOfReferenceTransformationType"],"00C6":["DS","FrameOfReferenceTransformationMatrix"],"00C8":["LO","FrameOfReferenceTransformationComment"]},3008:{"0010":["SQ","MeasuredDoseReferenceSequence"],"0012":["ST","MeasuredDoseDescription"],"0014":["CS","MeasuredDoseType"],"0016":["DS","MeasuredDoseValue"],"0020":["SQ","TreatmentSessionBeamSequence"],"0021":["SQ","TreatmentSessionIonBeamSequence"],"0022":["IS","CurrentFractionNumber"],"0024":["DA","TreatmentControlPointDate"],"0025":["TM","TreatmentControlPointTime"],"002A":["CS","TreatmentTerminationStatus"],"002B":["SH","TreatmentTerminationCode"],"002C":["CS","TreatmentVerificationStatus"],"0030":["SQ","ReferencedTreatmentRecordSequence"],"0032":["DS","SpecifiedPrimaryMeterset"],"0033":["DS","SpecifiedSecondaryMeterset"],"0036":["DS","DeliveredPrimaryMeterset"],"0037":["DS","DeliveredSecondaryMeterset"],"003A":["DS","SpecifiedTreatmentTime"],"003B":["DS","DeliveredTreatmentTime"],"0040":["SQ","ControlPointDeliverySequence"],"0041":["SQ","IonControlPointDeliverySequence"],"0042":["DS","SpecifiedMeterset"],"0044":["DS","DeliveredMeterset"],"0045":["FL","MetersetRateSet"],"0046":["FL","MetersetRateDelivered"],"0047":["FL","ScanSpotMetersetsDelivered"],"0048":["DS","DoseRateDelivered"],"0050":["SQ","TreatmentSummaryCalculatedDoseReferenceSequence"],"0052":["DS","CumulativeDoseToDoseReference"],"0054":["DA","FirstTreatmentDate"],"0056":["DA","MostRecentTreatmentDate"],"005A":["IS","NumberOfFractionsDelivered"],"0060":["SQ","OverrideSequence"],"0061":["AT","ParameterSequencePointer"],"0062":["AT","OverrideParameterPointer"],"0063":["IS","ParameterItemIndex"],"0064":["IS","MeasuredDoseReferenceNumber"],"0065":["AT","ParameterPointer"],"0066":["ST","OverrideReason"],"0068":["SQ","CorrectedParameterSequence"],"006A":["FL","CorrectionValue"],"0070":["SQ","CalculatedDoseReferenceSequence"],"0072":["IS","CalculatedDoseReferenceNumber"],"0074":["ST","CalculatedDoseReferenceDescription"],"0076":["DS","CalculatedDoseReferenceDoseValue"],"0078":["DS","StartMeterset"],"007A":["DS","EndMeterset"],"0080":["SQ","ReferencedMeasuredDoseReferenceSequence"],"0082":["IS","ReferencedMeasuredDoseReferenceNumber"],"0090":["SQ","ReferencedCalculatedDoseReferenceSequence"],"0092":["IS","ReferencedCalculatedDoseReferenceNumber"],"00A0":["SQ","BeamLimitingDeviceLeafPairsSequence"],"00B0":["SQ","RecordedWedgeSequence"],"00C0":["SQ","RecordedCompensatorSequence"],"00D0":["SQ","RecordedBlockSequence"],"00E0":["SQ","TreatmentSummaryMeasuredDoseReferenceSequence"],"00F0":["SQ","RecordedSnoutSequence"],"00F2":["SQ","RecordedRangeShifterSequence"],"00F4":["SQ","RecordedLateralSpreadingDeviceSequence"],"00F6":["SQ","RecordedRangeModulatorSequence"],"0100":["SQ","RecordedSourceSequence"],"0105":["LO","SourceSerialNumber"],"0110":["SQ","TreatmentSessionApplicationSetupSequence"],"0116":["CS","ApplicationSetupCheck"],"0120":["SQ","RecordedBrachyAccessoryDeviceSequence"],"0122":["IS","ReferencedBrachyAccessoryDeviceNumber"],"0130":["SQ","RecordedChannelSequence"],"0132":["DS","SpecifiedChannelTotalTime"],"0134":["DS","DeliveredChannelTotalTime"],"0136":["IS","SpecifiedNumberOfPulses"],"0138":["IS","DeliveredNumberOfPulses"],"013A":["DS","SpecifiedPulseRepetitionInterval"],"013C":["DS","DeliveredPulseRepetitionInterval"],"0140":["SQ","RecordedSourceApplicatorSequence"],"0142":["IS","ReferencedSourceApplicatorNumber"],"0150":["SQ","RecordedChannelShieldSequence"],"0152":["IS","ReferencedChannelShieldNumber"],"0160":["SQ","BrachyControlPointDeliveredSequence"],"0162":["DA","SafePositionExitDate"],"0164":["TM","SafePositionExitTime"],"0166":["DA","SafePositionReturnDate"],"0168":["TM","SafePositionReturnTime"],"0200":["CS","CurrentTreatmentStatus"],"0202":["ST","TreatmentStatusComment"],"0220":["SQ","FractionGroupSummarySequence"],"0223":["IS","ReferencedFractionNumber"],"0224":["CS","FractionGroupType"],"0230":["CS","BeamStopperPosition"],"0240":["SQ","FractionStatusSummarySequence"],"0250":["DA","TreatmentDate"],"0251":["TM","TreatmentTime"]},"300A":{"0002":["SH","RTPlanLabel"],"0003":["LO","RTPlanName"],"0004":["ST","RTPlanDescription"],"0006":["DA","RTPlanDate"],"0007":["TM","RTPlanTime"],"0009":["LO","TreatmentProtocols"],"000A":["CS","PlanIntent"],"000B":["LO","TreatmentSites"],"000C":["CS","RTPlanGeometry"],"000E":["ST","PrescriptionDescription"],"0010":["SQ","DoseReferenceSequence"],"0012":["IS","DoseReferenceNumber"],"0013":["UI","DoseReferenceUID"],"0014":["CS","DoseReferenceStructureType"],"0015":["CS","NominalBeamEnergyUnit"],"0016":["LO","DoseReferenceDescription"],"0018":["DS","DoseReferencePointCoordinates"],"001A":["DS","NominalPriorDose"],"0020":["CS","DoseReferenceType"],"0021":["DS","ConstraintWeight"],"0022":["DS","DeliveryWarningDose"],"0023":["DS","DeliveryMaximumDose"],"0025":["DS","TargetMinimumDose"],"0026":["DS","TargetPrescriptionDose"],"0027":["DS","TargetMaximumDose"],"0028":["DS","TargetUnderdoseVolumeFraction"],"002A":["DS","OrganAtRiskFullVolumeDose"],"002B":["DS","OrganAtRiskLimitDose"],"002C":["DS","OrganAtRiskMaximumDose"],"002D":["DS","OrganAtRiskOverdoseVolumeFraction"],"0040":["SQ","ToleranceTableSequence"],"0042":["IS","ToleranceTableNumber"],"0043":["SH","ToleranceTableLabel"],"0044":["DS","GantryAngleTolerance"],"0046":["DS","BeamLimitingDeviceAngleTolerance"],"0048":["SQ","BeamLimitingDeviceToleranceSequence"],"004A":["DS","BeamLimitingDevicePositionTolerance"],"004B":["FL","SnoutPositionTolerance"],"004C":["DS","PatientSupportAngleTolerance"],"004E":["DS","TableTopEccentricAngleTolerance"],"004F":["FL","TableTopPitchAngleTolerance"],"0050":["FL","TableTopRollAngleTolerance"],"0051":["DS","TableTopVerticalPositionTolerance"],"0052":["DS","TableTopLongitudinalPositionTolerance"],"0053":["DS","TableTopLateralPositionTolerance"],"0055":["CS","RTPlanRelationship"],"0070":["SQ","FractionGroupSequence"],"0071":["IS","FractionGroupNumber"],"0072":["LO","FractionGroupDescription"],"0078":["IS","NumberOfFractionsPlanned"],"0079":["IS","NumberOfFractionPatternDigitsPerDay"],"007A":["IS","RepeatFractionCycleLength"],"007B":["LT","FractionPattern"],"0080":["IS","NumberOfBeams"],"0082":["DS","BeamDoseSpecificationPoint"],"0084":["DS","BeamDose"],"0086":["DS","BeamMeterset"],"0088":["FL","BeamDosePointDepth"],"0089":["FL","BeamDosePointEquivalentDepth"],"008A":["FL","BeamDosePointSSD"],"00A0":["IS","NumberOfBrachyApplicationSetups"],"00A2":["DS","BrachyApplicationSetupDoseSpecificationPoint"],"00A4":["DS","BrachyApplicationSetupDose"],"00B0":["SQ","BeamSequence"],"00B2":["SH","TreatmentMachineName"],"00B3":["CS","PrimaryDosimeterUnit"],"00B4":["DS","SourceAxisDistance"],"00B6":["SQ","BeamLimitingDeviceSequence"],"00B8":["CS","RTBeamLimitingDeviceType"],"00BA":["DS","SourceToBeamLimitingDeviceDistance"],"00BB":["FL","IsocenterToBeamLimitingDeviceDistance"],"00BC":["IS","NumberOfLeafJawPairs"],"00BE":["DS","LeafPositionBoundaries"],"00C0":["IS","BeamNumber"],"00C2":["LO","BeamName"],"00C3":["ST","BeamDescription"],"00C4":["CS","BeamType"],"00C6":["CS","RadiationType"],"00C7":["CS","HighDoseTechniqueType"],"00C8":["IS","ReferenceImageNumber"],"00CA":["SQ","PlannedVerificationImageSequence"],"00CC":["LO","ImagingDeviceSpecificAcquisitionParameters"],"00CE":["CS","TreatmentDeliveryType"],"00D0":["IS","NumberOfWedges"],"00D1":["SQ","WedgeSequence"],"00D2":["IS","WedgeNumber"],"00D3":["CS","WedgeType"],"00D4":["SH","WedgeID"],"00D5":["IS","WedgeAngle"],"00D6":["DS","WedgeFactor"],"00D7":["FL","TotalWedgeTrayWaterEquivalentThickness"],"00D8":["DS","WedgeOrientation"],"00D9":["FL","IsocenterToWedgeTrayDistance"],"00DA":["DS","SourceToWedgeTrayDistance"],"00DB":["FL","WedgeThinEdgePosition"],"00DC":["SH","BolusID"],"00DD":["ST","BolusDescription"],"00E0":["IS","NumberOfCompensators"],"00E1":["SH","MaterialID"],"00E2":["DS","TotalCompensatorTrayFactor"],"00E3":["SQ","CompensatorSequence"],"00E4":["IS","CompensatorNumber"],"00E5":["SH","CompensatorID"],"00E6":["DS","SourceToCompensatorTrayDistance"],"00E7":["IS","CompensatorRows"],"00E8":["IS","CompensatorColumns"],"00E9":["DS","CompensatorPixelSpacing"],"00EA":["DS","CompensatorPosition"],"00EB":["DS","CompensatorTransmissionData"],"00EC":["DS","CompensatorThicknessData"],"00ED":["IS","NumberOfBoli"],"00EE":["CS","CompensatorType"],"00F0":["IS","NumberOfBlocks"],"00F2":["DS","TotalBlockTrayFactor"],"00F3":["FL","TotalBlockTrayWaterEquivalentThickness"],"00F4":["SQ","BlockSequence"],"00F5":["SH","BlockTrayID"],"00F6":["DS","SourceToBlockTrayDistance"],"00F7":["FL","IsocenterToBlockTrayDistance"],"00F8":["CS","BlockType"],"00F9":["LO","AccessoryCode"],"00FA":["CS","BlockDivergence"],"00FB":["CS","BlockMountingPosition"],"00FC":["IS","BlockNumber"],"00FE":["LO","BlockName"],"0100":["DS","BlockThickness"],"0102":["DS","BlockTransmission"],"0104":["IS","BlockNumberOfPoints"],"0106":["DS","BlockData"],"0107":["SQ","ApplicatorSequence"],"0108":["SH","ApplicatorID"],"0109":["CS","ApplicatorType"],"010A":["LO","ApplicatorDescription"],"010C":["DS","CumulativeDoseReferenceCoefficient"],"010E":["DS","FinalCumulativeMetersetWeight"],"0110":["IS","NumberOfControlPoints"],"0111":["SQ","ControlPointSequence"],"0112":["IS","ControlPointIndex"],"0114":["DS","NominalBeamEnergy"],"0115":["DS","DoseRateSet"],"0116":["SQ","WedgePositionSequence"],"0118":["CS","WedgePosition"],"011A":["SQ","BeamLimitingDevicePositionSequence"],"011C":["DS","LeafJawPositions"],"011E":["DS","GantryAngle"],"011F":["CS","GantryRotationDirection"],"0120":["DS","BeamLimitingDeviceAngle"],"0121":["CS","BeamLimitingDeviceRotationDirection"],"0122":["DS","PatientSupportAngle"],"0123":["CS","PatientSupportRotationDirection"],"0124":["DS","TableTopEccentricAxisDistance"],"0125":["DS","TableTopEccentricAngle"],"0126":["CS","TableTopEccentricRotationDirection"],"0128":["DS","TableTopVerticalPosition"],"0129":["DS","TableTopLongitudinalPosition"],"012A":["DS","TableTopLateralPosition"],"012C":["DS","IsocenterPosition"],"012E":["DS","SurfaceEntryPoint"],"0130":["DS","SourceToSurfaceDistance"],"0134":["DS","CumulativeMetersetWeight"],"0140":["FL","TableTopPitchAngle"],"0142":["CS","TableTopPitchRotationDirection"],"0144":["FL","TableTopRollAngle"],"0146":["CS","TableTopRollRotationDirection"],"0148":["FL","HeadFixationAngle"],"014A":["FL","GantryPitchAngle"],"014C":["CS","GantryPitchRotationDirection"],"014E":["FL","GantryPitchAngleTolerance"],"0180":["SQ","PatientSetupSequence"],"0182":["IS","PatientSetupNumber"],"0183":["LO","PatientSetupLabel"],"0184":["LO","PatientAdditionalPosition"],"0190":["SQ","FixationDeviceSequence"],"0192":["CS","FixationDeviceType"],"0194":["SH","FixationDeviceLabel"],"0196":["ST","FixationDeviceDescription"],"0198":["SH","FixationDevicePosition"],"0199":["FL","FixationDevicePitchAngle"],"019A":["FL","FixationDeviceRollAngle"],"01A0":["SQ","ShieldingDeviceSequence"],"01A2":["CS","ShieldingDeviceType"],"01A4":["SH","ShieldingDeviceLabel"],"01A6":["ST","ShieldingDeviceDescription"],"01A8":["SH","ShieldingDevicePosition"],"01B0":["CS","SetupTechnique"],"01B2":["ST","SetupTechniqueDescription"],"01B4":["SQ","SetupDeviceSequence"],"01B6":["CS","SetupDeviceType"],"01B8":["SH","SetupDeviceLabel"],"01BA":["ST","SetupDeviceDescription"],"01BC":["DS","SetupDeviceParameter"],"01D0":["ST","SetupReferenceDescription"],"01D2":["DS","TableTopVerticalSetupDisplacement"],"01D4":["DS","TableTopLongitudinalSetupDisplacement"],"01D6":["DS","TableTopLateralSetupDisplacement"],"0200":["CS","BrachyTreatmentTechnique"],"0202":["CS","BrachyTreatmentType"],"0206":["SQ","TreatmentMachineSequence"],"0210":["SQ","SourceSequence"],"0212":["IS","SourceNumber"],"0214":["CS","SourceType"],"0216":["LO","SourceManufacturer"],"0218":["DS","ActiveSourceDiameter"],"021A":["DS","ActiveSourceLength"],"0222":["DS","SourceEncapsulationNominalThickness"],"0224":["DS","SourceEncapsulationNominalTransmission"],"0226":["LO","SourceIsotopeName"],"0228":["DS","SourceIsotopeHalfLife"],"0229":["CS","SourceStrengthUnits"],"022A":["DS","ReferenceAirKermaRate"],"022B":["DS","SourceStrength"],"022C":["DA","SourceStrengthReferenceDate"],"022E":["TM","SourceStrengthReferenceTime"],"0230":["SQ","ApplicationSetupSequence"],"0232":["CS","ApplicationSetupType"],"0234":["IS","ApplicationSetupNumber"],"0236":["LO","ApplicationSetupName"],"0238":["LO","ApplicationSetupManufacturer"],"0240":["IS","TemplateNumber"],"0242":["SH","TemplateType"],"0244":["LO","TemplateName"],"0250":["DS","TotalReferenceAirKerma"],"0260":["SQ","BrachyAccessoryDeviceSequence"],"0262":["IS","BrachyAccessoryDeviceNumber"],"0263":["SH","BrachyAccessoryDeviceID"],"0264":["CS","BrachyAccessoryDeviceType"],"0266":["LO","BrachyAccessoryDeviceName"],"026A":["DS","BrachyAccessoryDeviceNominalThickness"],"026C":["DS","BrachyAccessoryDeviceNominalTransmission"],"0280":["SQ","ChannelSequence"],"0282":["IS","ChannelNumber"],"0284":["DS","ChannelLength"],"0286":["DS","ChannelTotalTime"],"0288":["CS","SourceMovementType"],"028A":["IS","NumberOfPulses"],"028C":["DS","PulseRepetitionInterval"],"0290":["IS","SourceApplicatorNumber"],"0291":["SH","SourceApplicatorID"],"0292":["CS","SourceApplicatorType"],"0294":["LO","SourceApplicatorName"],"0296":["DS","SourceApplicatorLength"],"0298":["LO","SourceApplicatorManufacturer"],"029C":["DS","SourceApplicatorWallNominalThickness"],"029E":["DS","SourceApplicatorWallNominalTransmission"],"02A0":["DS","SourceApplicatorStepSize"],"02A2":["IS","TransferTubeNumber"],"02A4":["DS","TransferTubeLength"],"02B0":["SQ","ChannelShieldSequence"],"02B2":["IS","ChannelShieldNumber"],"02B3":["SH","ChannelShieldID"],"02B4":["LO","ChannelShieldName"],"02B8":["DS","ChannelShieldNominalThickness"],"02BA":["DS","ChannelShieldNominalTransmission"],"02C8":["DS","FinalCumulativeTimeWeight"],"02D0":["SQ","BrachyControlPointSequence"],"02D2":["DS","ControlPointRelativePosition"],"02D4":["DS","ControlPoint3DPosition"],"02D6":["DS","CumulativeTimeWeight"],"02E0":["CS","CompensatorDivergence"],"02E1":["CS","CompensatorMountingPosition"],"02E2":["DS","SourceToCompensatorDistance"],"02E3":["FL","TotalCompensatorTrayWaterEquivalentThickness"],"02E4":["FL","IsocenterToCompensatorTrayDistance"],"02E5":["FL","CompensatorColumnOffset"],"02E6":["FL","IsocenterToCompensatorDistances"],"02E7":["FL","CompensatorRelativeStoppingPowerRatio"],"02E8":["FL","CompensatorMillingToolDiameter"],"02EA":["SQ","IonRangeCompensatorSequence"],"02EB":["LT","CompensatorDescription"],"0302":["IS","RadiationMassNumber"],"0304":["IS","RadiationAtomicNumber"],"0306":["SS","RadiationChargeState"],"0308":["CS","ScanMode"],"030A":["FL","VirtualSourceAxisDistances"],"030C":["SQ","SnoutSequence"],"030D":["FL","SnoutPosition"],"030F":["SH","SnoutID"],"0312":["IS","NumberOfRangeShifters"],"0314":["SQ","RangeShifterSequence"],"0316":["IS","RangeShifterNumber"],"0318":["SH","RangeShifterID"],"0320":["CS","RangeShifterType"],"0322":["LO","RangeShifterDescription"],"0330":["IS","NumberOfLateralSpreadingDevices"],"0332":["SQ","LateralSpreadingDeviceSequence"],"0334":["IS","LateralSpreadingDeviceNumber"],"0336":["SH","LateralSpreadingDeviceID"],"0338":["CS","LateralSpreadingDeviceType"],"033A":["LO","LateralSpreadingDeviceDescription"],"033C":["FL","LateralSpreadingDeviceWaterEquivalentThickness"],"0340":["IS","NumberOfRangeModulators"],"0342":["SQ","RangeModulatorSequence"],"0344":["IS","RangeModulatorNumber"],"0346":["SH","RangeModulatorID"],"0348":["CS","RangeModulatorType"],"034A":["LO","RangeModulatorDescription"],"034C":["SH","BeamCurrentModulationID"],"0350":["CS","PatientSupportType"],"0352":["SH","PatientSupportID"],"0354":["LO","PatientSupportAccessoryCode"],"0356":["FL","FixationLightAzimuthalAngle"],"0358":["FL","FixationLightPolarAngle"],"035A":["FL","MetersetRate"],"0360":["SQ","RangeShifterSettingsSequence"],"0362":["LO","RangeShifterSetting"],"0364":["FL","IsocenterToRangeShifterDistance"],"0366":["FL","RangeShifterWaterEquivalentThickness"],"0370":["SQ","LateralSpreadingDeviceSettingsSequence"],"0372":["LO","LateralSpreadingDeviceSetting"],"0374":["FL","IsocenterToLateralSpreadingDeviceDistance"],"0380":["SQ","RangeModulatorSettingsSequence"],"0382":["FL","RangeModulatorGatingStartValue"],"0384":["FL","RangeModulatorGatingStopValue"],"0386":["FL","RangeModulatorGatingStartWaterEquivalentThickness"],"0388":["FL","RangeModulatorGatingStopWaterEquivalentThickness"],"038A":["FL","IsocenterToRangeModulatorDistance"],"0390":["SH","ScanSpotTuneID"],"0392":["IS","NumberOfScanSpotPositions"],"0394":["FL","ScanSpotPositionMap"],"0396":["FL","ScanSpotMetersetWeights"],"0398":["FL","ScanningSpotSize"],"039A":["IS","NumberOfPaintings"],"03A0":["SQ","IonToleranceTableSequence"],"03A2":["SQ","IonBeamSequence"],"03A4":["SQ","IonBeamLimitingDeviceSequence"],"03A6":["SQ","IonBlockSequence"],"03A8":["SQ","IonControlPointSequence"],"03AA":["SQ","IonWedgeSequence"],"03AC":["SQ","IonWedgePositionSequence"],"0401":["SQ","ReferencedSetupImageSequence"],"0402":["ST","SetupImageComment"],"0410":["SQ","MotionSynchronizationSequence"],"0412":["FL","ControlPointOrientation"],"0420":["SQ","GeneralAccessorySequence"],"0421":["SH","GeneralAccessoryID"],"0422":["ST","GeneralAccessoryDescription"],"0423":["CS","GeneralAccessoryType"],"0424":["IS","GeneralAccessoryNumber"],"0431":["SQ","ApplicatorGeometrySequence"],"0432":["CS","ApplicatorApertureShape"],"0433":["FL","ApplicatorOpening"],"0434":["FL","ApplicatorOpeningX"],"0435":["FL","ApplicatorOpeningY"],"0436":["FL","SourceToApplicatorMountingPositionDistance"]},"300C":{"0002":["SQ","ReferencedRTPlanSequence"],"0004":["SQ","ReferencedBeamSequence"],"0006":["IS","ReferencedBeamNumber"],"0007":["IS","ReferencedReferenceImageNumber"],"0008":["DS","StartCumulativeMetersetWeight"],"0009":["DS","EndCumulativeMetersetWeight"],"000A":["SQ","ReferencedBrachyApplicationSetupSequence"],"000C":["IS","ReferencedBrachyApplicationSetupNumber"],"000E":["IS","ReferencedSourceNumber"],"0020":["SQ","ReferencedFractionGroupSequence"],"0022":["IS","ReferencedFractionGroupNumber"],"0040":["SQ","ReferencedVerificationImageSequence"],"0042":["SQ","ReferencedReferenceImageSequence"],"0050":["SQ","ReferencedDoseReferenceSequence"],"0051":["IS","ReferencedDoseReferenceNumber"],"0055":["SQ","BrachyReferencedDoseReferenceSequence"],"0060":["SQ","ReferencedStructureSetSequence"],"006A":["IS","ReferencedPatientSetupNumber"],"0080":["SQ","ReferencedDoseSequence"],"00A0":["IS","ReferencedToleranceTableNumber"],"00B0":["SQ","ReferencedBolusSequence"],"00C0":["IS","ReferencedWedgeNumber"],"00D0":["IS","ReferencedCompensatorNumber"],"00E0":["IS","ReferencedBlockNumber"],"00F0":["IS","ReferencedControlPointIndex"],"00F2":["SQ","ReferencedControlPointSequence"],"00F4":["IS","ReferencedStartControlPointIndex"],"00F6":["IS","ReferencedStopControlPointIndex"],"0100":["IS","ReferencedRangeShifterNumber"],"0102":["IS","ReferencedLateralSpreadingDeviceNumber"],"0104":["IS","ReferencedRangeModulatorNumber"]},"300E":{"0002":["CS","ApprovalStatus"],"0004":["DA","ReviewDate"],"0005":["TM","ReviewTime"],"0008":["PN","ReviewerName"]},4e3:{"0010":["LT","Arbitrary"],4e3:["LT","TextComments"]},4008:{"0040":["SH","ResultsID"],"0042":["LO","ResultsIDIssuer"],"0050":["SQ","ReferencedInterpretationSequence"],"00FF":["CS","ReportProductionStatusTrial"],"0100":["DA","InterpretationRecordedDate"],"0101":["TM","InterpretationRecordedTime"],"0102":["PN","InterpretationRecorder"],"0103":["LO","ReferenceToRecordedSound"],"0108":["DA","InterpretationTranscriptionDate"],"0109":["TM","InterpretationTranscriptionTime"],"010A":["PN","InterpretationTranscriber"],"010B":["ST","InterpretationText"],"010C":["PN","InterpretationAuthor"],"0111":["SQ","InterpretationApproverSequence"],"0112":["DA","InterpretationApprovalDate"],"0113":["TM","InterpretationApprovalTime"],"0114":["PN","PhysicianApprovingInterpretation"],"0115":["LT","InterpretationDiagnosisDescription"],"0117":["SQ","InterpretationDiagnosisCodeSequence"],"0118":["SQ","ResultsDistributionListSequence"],"0119":["PN","DistributionName"],"011A":["LO","DistributionAddress"],"0200":["SH","InterpretationID"],"0202":["LO","InterpretationIDIssuer"],"0210":["CS","InterpretationTypeID"],"0212":["CS","InterpretationStatusID"],"0300":["ST","Impressions"],4e3:["ST","ResultsComments"]},4010:{"0001":["CS","LowEnergyDetectors"],"0002":["CS","HighEnergyDetectors"],"0004":["SQ","DetectorGeometrySequence"],1001:["SQ","ThreatROIVoxelSequence"],1004:["FL","ThreatROIBase"],1005:["FL","ThreatROIExtents"],1006:["OB","ThreatROIBitmap"],1007:["SH","RouteSegmentID"],1008:["CS","GantryType"],1009:["CS","OOIOwnerType"],"100A":["SQ","RouteSegmentSequence"],1010:["US","PotentialThreatObjectID"],1011:["SQ","ThreatSequence"],1012:["CS","ThreatCategory"],1013:["LT","ThreatCategoryDescription"],1014:["CS","ATDAbilityAssessment"],1015:["CS","ATDAssessmentFlag"],1016:["FL","ATDAssessmentProbability"],1017:["FL","Mass"],1018:["FL","Density"],1019:["FL","ZEffective"],"101A":["SH","BoardingPassID"],"101B":["FL","CenterOfMass"],"101C":["FL","CenterOfPTO"],"101D":["FL","BoundingPolygon"],"101E":["SH","RouteSegmentStartLocationID"],"101F":["SH","RouteSegmentEndLocationID"],1020:["CS","RouteSegmentLocationIDType"],1021:["CS","AbortReason"],1023:["FL","VolumeOfPTO"],1024:["CS","AbortFlag"],1025:["DT","RouteSegmentStartTime"],1026:["DT","RouteSegmentEndTime"],1027:["CS","TDRType"],1028:["CS","InternationalRouteSegment"],1029:["LO","ThreatDetectionAlgorithmandVersion"],"102A":["SH","AssignedLocation"],"102B":["DT","AlarmDecisionTime"],1031:["CS","AlarmDecision"],1033:["US","NumberOfTotalObjects"],1034:["US","NumberOfAlarmObjects"],1037:["SQ","PTORepresentationSequence"],1038:["SQ","ATDAssessmentSequence"],1039:["CS","TIPType"],"103A":["CS","DICOSVersion"],1041:["DT","OOIOwnerCreationTime"],1042:["CS","OOIType"],1043:["FL","OOISize"],1044:["CS","AcquisitionStatus"],1045:["SQ","BasisMaterialsCodeSequence"],1046:["CS","PhantomType"],1047:["SQ","OOIOwnerSequence"],1048:["CS","ScanType"],1051:["LO","ItineraryID"],1052:["SH","ItineraryIDType"],1053:["LO","ItineraryIDAssigningAuthority"],1054:["SH","RouteID"],1055:["SH","RouteIDAssigningAuthority"],1056:["CS","InboundArrivalType"],1058:["SH","CarrierID"],1059:["CS","CarrierIDAssigningAuthority"],1060:["FL","SourceOrientation"],1061:["FL","SourcePosition"],1062:["FL","BeltHeight"],1064:["SQ","AlgorithmRoutingCodeSequence"],1067:["CS","TransportClassification"],1068:["LT","OOITypeDescriptor"],1069:["FL","TotalProcessingTime"],"106C":["OB","DetectorCalibrationData"]}};A2.Dictionary.getVR=function(p,T){var A,P,F;return F=A2.Dictionary.dict[A2.Utils.dec2hex(p)],F&&(P=F[A2.Utils.dec2hex(T)],P?A=P[0]:T===0&&(A="UL")),A||(F=A2.Dictionary.dictPrivate[A2.Utils.dec2hex(p)],F&&(P=F[A2.Utils.dec2hex(T)],P&&(A=P[0]))),A||(A="OB"),A};A2.Dictionary.getDescription=function(p,T){var A,P,F;return F=A2.Dictionary.dict[A2.Utils.dec2hex(p)],F&&(P=F[A2.Utils.dec2hex(T)],P?A=P[1]:T===0&&(A="Group "+A2.Utils.dec2hex(p)+" Length")),A||(F=A2.Dictionary.dictPrivate[A2.Utils.dec2hex(p)],F&&(P=F[A2.Utils.dec2hex(T)],P&&(A=P[1]))),A||(A="PrivateData"),A};var ak=typeof Vr;ak!=="undefined"&&Vr.exports&&(Vr.exports=A2.Dictionary)});var Bn=Ke(Di=>{function Vf(){var p={};return p["align-content"]=!1,p["align-items"]=!1,p["align-self"]=!1,p["alignment-adjust"]=!1,p["alignment-baseline"]=!1,p.all=!1,p["anchor-point"]=!1,p.animation=!1,p["animation-delay"]=!1,p["animation-direction"]=!1,p["animation-duration"]=!1,p["animation-fill-mode"]=!1,p["animation-iteration-count"]=!1,p["animation-name"]=!1,p["animation-play-state"]=!1,p["animation-timing-function"]=!1,p.azimuth=!1,p["backface-visibility"]=!1,p.background=!0,p["background-attachment"]=!0,p["background-clip"]=!0,p["background-color"]=!0,p["background-image"]=!0,p["background-origin"]=!0,p["background-position"]=!0,p["background-repeat"]=!0,p["background-size"]=!0,p["baseline-shift"]=!1,p.binding=!1,p.bleed=!1,p["bookmark-label"]=!1,p["bookmark-level"]=!1,p["bookmark-state"]=!1,p.border=!0,p["border-bottom"]=!0,p["border-bottom-color"]=!0,p["border-bottom-left-radius"]=!0,p["border-bottom-right-radius"]=!0,p["border-bottom-style"]=!0,p["border-bottom-width"]=!0,p["border-collapse"]=!0,p["border-color"]=!0,p["border-image"]=!0,p["border-image-outset"]=!0,p["border-image-repeat"]=!0,p["border-image-slice"]=!0,p["border-image-source"]=!0,p["border-image-width"]=!0,p["border-left"]=!0,p["border-left-color"]=!0,p["border-left-style"]=!0,p["border-left-width"]=!0,p["border-radius"]=!0,p["border-right"]=!0,p["border-right-color"]=!0,p["border-right-style"]=!0,p["border-right-width"]=!0,p["border-spacing"]=!0,p["border-style"]=!0,p["border-top"]=!0,p["border-top-color"]=!0,p["border-top-left-radius"]=!0,p["border-top-right-radius"]=!0,p["border-top-style"]=!0,p["border-top-width"]=!0,p["border-width"]=!0,p.bottom=!1,p["box-decoration-break"]=!0,p["box-shadow"]=!0,p["box-sizing"]=!0,p["box-snap"]=!0,p["box-suppress"]=!0,p["break-after"]=!0,p["break-before"]=!0,p["break-inside"]=!0,p["caption-side"]=!1,p.chains=!1,p.clear=!0,p.clip=!1,p["clip-path"]=!1,p["clip-rule"]=!1,p.color=!0,p["color-interpolation-filters"]=!0,p["column-count"]=!1,p["column-fill"]=!1,p["column-gap"]=!1,p["column-rule"]=!1,p["column-rule-color"]=!1,p["column-rule-style"]=!1,p["column-rule-width"]=!1,p["column-span"]=!1,p["column-width"]=!1,p.columns=!1,p.contain=!1,p.content=!1,p["counter-increment"]=!1,p["counter-reset"]=!1,p["counter-set"]=!1,p.crop=!1,p.cue=!1,p["cue-after"]=!1,p["cue-before"]=!1,p.cursor=!1,p.direction=!1,p.display=!0,p["display-inside"]=!0,p["display-list"]=!0,p["display-outside"]=!0,p["dominant-baseline"]=!1,p.elevation=!1,p["empty-cells"]=!1,p.filter=!1,p.flex=!1,p["flex-basis"]=!1,p["flex-direction"]=!1,p["flex-flow"]=!1,p["flex-grow"]=!1,p["flex-shrink"]=!1,p["flex-wrap"]=!1,p.float=!1,p["float-offset"]=!1,p["flood-color"]=!1,p["flood-opacity"]=!1,p["flow-from"]=!1,p["flow-into"]=!1,p.font=!0,p["font-family"]=!0,p["font-feature-settings"]=!0,p["font-kerning"]=!0,p["font-language-override"]=!0,p["font-size"]=!0,p["font-size-adjust"]=!0,p["font-stretch"]=!0,p["font-style"]=!0,p["font-synthesis"]=!0,p["font-variant"]=!0,p["font-variant-alternates"]=!0,p["font-variant-caps"]=!0,p["font-variant-east-asian"]=!0,p["font-variant-ligatures"]=!0,p["font-variant-numeric"]=!0,p["font-variant-position"]=!0,p["font-weight"]=!0,p.grid=!1,p["grid-area"]=!1,p["grid-auto-columns"]=!1,p["grid-auto-flow"]=!1,p["grid-auto-rows"]=!1,p["grid-column"]=!1,p["grid-column-end"]=!1,p["grid-column-start"]=!1,p["grid-row"]=!1,p["grid-row-end"]=!1,p["grid-row-start"]=!1,p["grid-template"]=!1,p["grid-template-areas"]=!1,p["grid-template-columns"]=!1,p["grid-template-rows"]=!1,p["hanging-punctuation"]=!1,p.height=!0,p.hyphens=!1,p.icon=!1,p["image-orientation"]=!1,p["image-resolution"]=!1,p["ime-mode"]=!1,p["initial-letters"]=!1,p["inline-box-align"]=!1,p["justify-content"]=!1,p["justify-items"]=!1,p["justify-self"]=!1,p.left=!1,p["letter-spacing"]=!0,p["lighting-color"]=!0,p["line-box-contain"]=!1,p["line-break"]=!1,p["line-grid"]=!1,p["line-height"]=!1,p["line-snap"]=!1,p["line-stacking"]=!1,p["line-stacking-ruby"]=!1,p["line-stacking-shift"]=!1,p["line-stacking-strategy"]=!1,p["list-style"]=!0,p["list-style-image"]=!0,p["list-style-position"]=!0,p["list-style-type"]=!0,p.margin=!0,p["margin-bottom"]=!0,p["margin-left"]=!0,p["margin-right"]=!0,p["margin-top"]=!0,p["marker-offset"]=!1,p["marker-side"]=!1,p.marks=!1,p.mask=!1,p["mask-box"]=!1,p["mask-box-outset"]=!1,p["mask-box-repeat"]=!1,p["mask-box-slice"]=!1,p["mask-box-source"]=!1,p["mask-box-width"]=!1,p["mask-clip"]=!1,p["mask-image"]=!1,p["mask-origin"]=!1,p["mask-position"]=!1,p["mask-repeat"]=!1,p["mask-size"]=!1,p["mask-source-type"]=!1,p["mask-type"]=!1,p["max-height"]=!0,p["max-lines"]=!1,p["max-width"]=!0,p["min-height"]=!0,p["min-width"]=!0,p["move-to"]=!1,p["nav-down"]=!1,p["nav-index"]=!1,p["nav-left"]=!1,p["nav-right"]=!1,p["nav-up"]=!1,p["object-fit"]=!1,p["object-position"]=!1,p.opacity=!1,p.order=!1,p.orphans=!1,p.outline=!1,p["outline-color"]=!1,p["outline-offset"]=!1,p["outline-style"]=!1,p["outline-width"]=!1,p.overflow=!1,p["overflow-wrap"]=!1,p["overflow-x"]=!1,p["overflow-y"]=!1,p.padding=!0,p["padding-bottom"]=!0,p["padding-left"]=!0,p["padding-right"]=!0,p["padding-top"]=!0,p.page=!1,p["page-break-after"]=!1,p["page-break-before"]=!1,p["page-break-inside"]=!1,p["page-policy"]=!1,p.pause=!1,p["pause-after"]=!1,p["pause-before"]=!1,p.perspective=!1,p["perspective-origin"]=!1,p.pitch=!1,p["pitch-range"]=!1,p["play-during"]=!1,p.position=!1,p["presentation-level"]=!1,p.quotes=!1,p["region-fragment"]=!1,p.resize=!1,p.rest=!1,p["rest-after"]=!1,p["rest-before"]=!1,p.richness=!1,p.right=!1,p.rotation=!1,p["rotation-point"]=!1,p["ruby-align"]=!1,p["ruby-merge"]=!1,p["ruby-position"]=!1,p["shape-image-threshold"]=!1,p["shape-outside"]=!1,p["shape-margin"]=!1,p.size=!1,p.speak=!1,p["speak-as"]=!1,p["speak-header"]=!1,p["speak-numeral"]=!1,p["speak-punctuation"]=!1,p["speech-rate"]=!1,p.stress=!1,p["string-set"]=!1,p["tab-size"]=!1,p["table-layout"]=!1,p["text-align"]=!0,p["text-align-last"]=!0,p["text-combine-upright"]=!0,p["text-decoration"]=!0,p["text-decoration-color"]=!0,p["text-decoration-line"]=!0,p["text-decoration-skip"]=!0,p["text-decoration-style"]=!0,p["text-emphasis"]=!0,p["text-emphasis-color"]=!0,p["text-emphasis-position"]=!0,p["text-emphasis-style"]=!0,p["text-height"]=!0,p["text-indent"]=!0,p["text-justify"]=!0,p["text-orientation"]=!0,p["text-overflow"]=!0,p["text-shadow"]=!0,p["text-space-collapse"]=!0,p["text-transform"]=!0,p["text-underline-position"]=!0,p["text-wrap"]=!0,p.top=!1,p.transform=!1,p["transform-origin"]=!1,p["transform-style"]=!1,p.transition=!1,p["transition-delay"]=!1,p["transition-duration"]=!1,p["transition-property"]=!1,p["transition-timing-function"]=!1,p["unicode-bidi"]=!1,p["vertical-align"]=!1,p.visibility=!1,p["voice-balance"]=!1,p["voice-duration"]=!1,p["voice-family"]=!1,p["voice-pitch"]=!1,p["voice-range"]=!1,p["voice-rate"]=!1,p["voice-stress"]=!1,p["voice-volume"]=!1,p.volume=!1,p["white-space"]=!1,p.widows=!1,p.width=!0,p["will-change"]=!1,p["word-break"]=!0,p["word-spacing"]=!0,p["word-wrap"]=!0,p["wrap-flow"]=!1,p["wrap-through"]=!1,p["writing-mode"]=!1,p["z-index"]=!1,p}function ck(p,T,A){}function Sk(p,T,A){}var hk=/javascript\s*\:/img;function mk(p,T){return hk.test(T)?"":T}Di.whiteList=Vf();Di.getDefaultWhiteList=Vf;Di.onAttr=ck;Di.onIgnoreAttr=Sk;Di.safeAttrValue=mk});var Qn=Ke((Bd,Hf)=>{Hf.exports={indexOf:function(p,T){var A,P;if(Array.prototype.indexOf)return p.indexOf(T);for(A=0,P=p.length;A{var $i=Qn();function pk(p,T){p=$i.trimRight(p),p[p.length-1]!==";"&&(p+=";");var A=p.length,P=!1,F=0,M=0,G="";function Q(){if(!P){var J=$i.trim(p.slice(F,M)),m=J.indexOf(":");if(m!==-1){var R=$i.trim(J.slice(0,m)),e=$i.trim(J.slice(m+1));if(R){var z=T(F,G.length,R,e,J);z&&(G+=z+"; ")}}}F=M+1}for(;M{var zr=Bn(),gk=Yf(),Gd=Qn();function Xf(p){return p==null}function vk(p){var T={};for(var A in p)T[A]=p[A];return T}function jf(p){p=vk(p||{}),p.whiteList=p.whiteList||zr.whiteList,p.onAttr=p.onAttr||zr.onAttr,p.onIgnoreAttr=p.onIgnoreAttr||zr.onIgnoreAttr,p.safeAttrValue=p.safeAttrValue||zr.safeAttrValue,this.options=p}jf.prototype.process=function(p){if(p=p||"",p=p.toString(),!p)return"";var T=this,A=T.options,P=A.whiteList,F=A.onAttr,M=A.onIgnoreAttr,G=A.safeAttrValue,Q=gk(p,function(Y,X,J,m,R){var e=P[J],z=!1;if(e===!0?z=e:typeof e=="function"?z=e(m):e instanceof RegExp&&(z=e.test(m)),z!==!0&&(z=!1),m=G(J,m),!!m){var b={position:X,sourcePosition:Y,source:R,isWhite:z};if(z){var U0=F(J,m,b);return Xf(U0)?J+":"+m:U0}else{var U0=M(J,m,b);if(!Xf(U0))return U0}}});return Q};Wf.exports=jf});var Xr=Ke((Yr,Vn)=>{var Kf=Bn(),Zf=Jf();function Tk(p,T){var A=new Zf(T);return A.process(p)}Yr=Vn.exports=Tk;Yr.FilterCSS=Zf;for(Gn in Kf)Yr[Gn]=Kf[Gn];var Gn;typeof window<"u"&&(window.filterCSS=Vn.exports)});var jr=Ke((Hd,$f)=>{$f.exports={indexOf:function(p,T){var A,P;if(Array.prototype.indexOf)return p.indexOf(T);for(A=0,P=p.length;A{var kk=Xr().FilterCSS,wk=Xr().getDefaultWhiteList,Jr=jr();function il(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var rl=new kk;function dk(p,T,A){}function Ck(p,T,A){}function yk(p,T,A){}function Ak(p,T,A){}function tl(p){return p.replace(_k,"<").replace(Ik,">")}function Dk(p,T,A,P){if(A=ul(A),T==="href"||T==="src"){if(A=Jr.trim(A),A==="#")return"#";if(!(A.substr(0,7)==="http://"||A.substr(0,8)==="https://"||A.substr(0,7)==="mailto:"||A.substr(0,4)==="tel:"||A.substr(0,11)==="data:image/"||A.substr(0,6)==="ftp://"||A.substr(0,2)==="./"||A.substr(0,3)==="../"||A[0]==="#"||A[0]==="/"))return""}else if(T==="background"){if(Wr.lastIndex=0,Wr.test(A))return""}else if(T==="style"){if(bf.lastIndex=0,bf.test(A)||(el.lastIndex=0,el.test(A)&&(Wr.lastIndex=0,Wr.test(A))))return"";P!==!1&&(P=P||rl,A=P.process(A))}return A=al(A),A}var _k=//g,Pk=/"/g,Ek=/"/g,Lk=/&#([a-zA-Z0-9]*);?/gim,Fk=/:?/gim,Rk=/&newline;?/gim,Wr=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,bf=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,el=/u\s*r\s*l\s*\(.*/gi;function nl(p){return p.replace(Pk,""")}function sl(p){return p.replace(Ek,'"')}function ol(p){return p.replace(Lk,function(A,P){return P[0]==="x"||P[0]==="X"?String.fromCharCode(parseInt(P.substr(1),16)):String.fromCharCode(parseInt(P,10))})}function fl(p){return p.replace(Fk,":").replace(Rk," ")}function ll(p){for(var T="",A=0,P=p.length;A",P);if(F===-1)break;A=F+3}return T}function qk(p){var T=p.split("");return T=T.filter(function(A){var P=A.charCodeAt(0);return P===127?!1:P<=31?P===10||P===13:!0}),T.join("")}I2.whiteList=il();I2.getDefaultWhiteList=il;I2.onTag=dk;I2.onIgnoreTag=Ck;I2.onTagAttr=yk;I2.onIgnoreTagAttr=Ak;I2.safeAttrValue=Dk;I2.escapeHtml=tl;I2.escapeQuote=nl;I2.unescapeQuote=sl;I2.escapeHtmlEntities=ol;I2.escapeDangerHtml5Entities=fl;I2.clearNonPrintableCharacter=ll;I2.friendlyAttrValue=ul;I2.escapeAttrValue=al;I2.onIgnoreTagStripAll=Ok;I2.StripTagBody=Mk;I2.stripCommentTag=xk;I2.stripBlankChar=qk;I2.cssFilter=rl;I2.getDefaultCSSWhiteList=wk});var Yn=Ke(zn=>{var K1=jr();function Nk(p){var T=K1.spaceIndex(p),A;return T===-1?A=p.slice(1,-1):A=p.slice(1,T+1),A=K1.trim(A).toLowerCase(),A.slice(0,1)==="/"&&(A=A.slice(1)),A.slice(-1)==="/"&&(A=A.slice(0,-1)),A}function Uk(p){return p.slice(0,2)===""||Q===Y-1){P+=A(p.slice(F,M)),J=p.slice(M,Q+1),X=Nk(J),P+=T(M,P.length,X,J,Uk(J)),F=Q+1,M=!1;continue}if(m==='"'||m==="'")for(var R=1,e=p.charAt(Q-R);e.trim()===""||e==="=";){if(e==="="){G=m;continue e}e=p.charAt(Q-++R)}}else if(m===G){G=!1;continue}}return F0;T--){var A=p[T];if(A!==" ")return A==="="?T:-1}}function Yk(p){return p[0]==='"'&&p[p.length-1]==='"'||p[0]==="'"&&p[p.length-1]==="'"}function cl(p){return Yk(p)?p.substr(1,p.length-2):p}zn.parseTag=Bk;zn.parseAttr=Gk});var pl=Ke((Xd,ml)=>{var Xk=Xr().FilterCSS,d1=Hn(),Sl=Yn(),jk=Sl.parseTag,Wk=Sl.parseAttr,Zr=jr();function Kr(p){return p==null}function Jk(p){var T=Zr.spaceIndex(p);if(T===-1)return{html:"",closing:p[p.length-2]==="/"};p=Zr.trim(p.slice(T+1,-1));var A=p[p.length-1]==="/";return A&&(p=Zr.trim(p.slice(0,-1))),{html:p,closing:A}}function Kk(p){var T={};for(var A in p)T[A]=p[A];return T}function Zk(p){var T={};for(var A in p)Array.isArray(p[A])?T[A.toLowerCase()]=p[A].map(function(P){return P.toLowerCase()}):T[A.toLowerCase()]=p[A];return T}function hl(p){p=Kk(p||{}),p.stripIgnoreTag&&(p.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),p.onIgnoreTag=d1.onIgnoreTagStripAll),p.whiteList||p.allowList?p.whiteList=Zk(p.whiteList||p.allowList):p.whiteList=d1.whiteList,p.onTag=p.onTag||d1.onTag,p.onTagAttr=p.onTagAttr||d1.onTagAttr,p.onIgnoreTag=p.onIgnoreTag||d1.onIgnoreTag,p.onIgnoreTagAttr=p.onIgnoreTagAttr||d1.onIgnoreTagAttr,p.safeAttrValue=p.safeAttrValue||d1.safeAttrValue,p.escapeHtml=p.escapeHtml||d1.escapeHtml,this.options=p,p.css===!1?this.cssFilter=!1:(p.css=p.css||{},this.cssFilter=new Xk(p.css))}hl.prototype.process=function(p){if(p=p||"",p=p.toString(),!p)return"";var T=this,A=T.options,P=A.whiteList,F=A.onTag,M=A.onIgnoreTag,G=A.onTagAttr,Q=A.onIgnoreTagAttr,Y=A.safeAttrValue,X=A.escapeHtml,J=T.cssFilter;A.stripBlankChar&&(p=d1.stripBlankChar(p)),A.allowCommentTag||(p=d1.stripCommentTag(p));var m=!1;A.stripIgnoreTagBody&&(m=d1.StripTagBody(A.stripIgnoreTagBody,M),M=m.onIgnoreTag);var R=jk(p,function(e,z,b,U0,V0){var t0={sourcePosition:e,position:z,isClosing:V0,isWhite:Object.prototype.hasOwnProperty.call(P,b)},f0=F(b,U0,t0);if(!Kr(f0))return f0;if(t0.isWhite){if(t0.isClosing)return"";var C=Jk(U0),L0=P[b],S0=Wk(C.html,function(O0,_0){var l0=Zr.indexOf(L0,O0)!==-1,u=G(b,O0,_0,l0);return Kr(u)?l0?(_0=Y(b,O0,_0,J),_0?O0+'="'+_0+'"':O0):(u=Q(b,O0,_0,l0),Kr(u)?void 0:u):u});return U0="<"+b,S0&&(U0+=" "+S0),C.closing&&(U0+=" /"),U0+=">",U0}else return f0=M(b,U0,t0),Kr(f0)?X(U0):f0},X);return m&&(R=m.remove(R)),R};ml.exports=hl});var wl=Ke((_i,$r)=>{var gl=Hn(),vl=Yn(),Tl=pl();function kl(p,T){var A=new Tl(T);return A.process(p)}_i=$r.exports=kl;_i.filterXSS=kl;_i.FilterXSS=Tl;(function(){for(var p in gl)_i[p]=gl[p];for(var T in vl)_i[T]=vl[T]})();typeof window<"u"&&(window.filterXSS=$r.exports);function $k(){return typeof self<"u"&&typeof DedicatedWorkerGlobalScope<"u"&&self instanceof DedicatedWorkerGlobalScope}$k()&&(self.filterXSS=$r.exports)});var Xn=Ke((jd,br)=>{"use strict";var a2=a2||{};a2.Utils=a2.Utils||(typeof require<"u"?J1():null);a2.Siemens=a2.Siemens||function(p){this.output="",this.data=new DataView(p,0)};a2.Siemens.CSA2_MAGIC_NUMBER=[83,86,49,48];a2.Siemens.NAME_LENGTH=64;a2.Siemens.ELEMENT_CSA1=4112;a2.Siemens.ELEMENT_CSA2=4128;a2.Siemens.GROUP_CSA=41;a2.Siemens.prototype.readHeader=function(){var p,T;try{if(this.data.byteLength>a2.Siemens.CSA2_MAGIC_NUMBER.length){for(T=!0,p=0;p128)return this.output;for(p+=4,p+=4,A=0;Athis.data.buffer.length?-1:(p+=16,T>0&&(this.output+=this.readString(p,T)+" "),p+T)};a2.Siemens.prototype.canRead=function(p,T){return p===a2.Siemens.GROUP_CSA&&(T===a2.Siemens.ELEMENT_CSA1||T===a2.Siemens.ELEMENT_CSA2)};var bk=typeof br;bk!=="undefined"&&br.exports&&(br.exports=a2.Siemens)});var it=Ke((Wd,et)=>{"use strict";var ew=wl(),m0=m0||{};m0.Utils=m0.Utils||(typeof require<"u"?J1():null);m0.Dictionary=m0.Dictionary||(typeof require<"u"?Hr():null);m0.Siemens=m0.Siemens||(typeof require<"u"?Xn():null);m0.Tag=m0.Tag||function(p,T,A,P,F,M,G,Q,Y){if(this.group=p,this.element=T,this.vr=A,this.offsetStart=F,this.offsetValue=M,this.offsetEnd=G,this.sublist=!1,this.preformatted=!1,this.id=m0.Tag.createId(p,T),P instanceof Array)this.value=P,this.sublist=!0;else if(P!==null){var X=new DataView(P);this.value=m0.Tag.convertValue(A,X,Q,Y),this.value===X&&this.isPrivateData()&&(this.value=m0.Tag.convertPrivateValue(p,T,X),this.preformatted=this.value!==X)}else this.value=null};m0.Tag.PRIVATE_DATA_READERS=[m0.Siemens];m0.Tag.VR_AE_MAX_LENGTH=16;m0.Tag.VR_AS_MAX_LENGTH=4;m0.Tag.VR_AT_MAX_LENGTH=4;m0.Tag.VR_CS_MAX_LENGTH=16;m0.Tag.VR_DA_MAX_LENGTH=8;m0.Tag.VR_DS_MAX_LENGTH=16;m0.Tag.VR_DT_MAX_LENGTH=26;m0.Tag.VR_FL_MAX_LENGTH=4;m0.Tag.VR_FD_MAX_LENGTH=8;m0.Tag.VR_IS_MAX_LENGTH=12;m0.Tag.VR_LO_MAX_LENGTH=64;m0.Tag.VR_LT_MAX_LENGTH=10240;m0.Tag.VR_OB_MAX_LENGTH=-1;m0.Tag.VR_OD_MAX_LENGTH=-1;m0.Tag.VR_OF_MAX_LENGTH=-1;m0.Tag.VR_OW_MAX_LENGTH=-1;m0.Tag.VR_PN_MAX_LENGTH=64*5;m0.Tag.VR_SH_MAX_LENGTH=16;m0.Tag.VR_SL_MAX_LENGTH=4;m0.Tag.VR_SS_MAX_LENGTH=2;m0.Tag.VR_ST_MAX_LENGTH=1024;m0.Tag.VR_TM_MAX_LENGTH=16;m0.Tag.VR_UI_MAX_LENGTH=64;m0.Tag.VR_UL_MAX_LENGTH=4;m0.Tag.VR_UN_MAX_LENGTH=-1;m0.Tag.VR_US_MAX_LENGTH=2;m0.Tag.VR_UT_MAX_LENGTH=-1;m0.Tag.VR_UC_MAX_LENGTH=-1;m0.Tag.TAG_TRANSFER_SYNTAX=[2,16];m0.Tag.TAG_META_LENGTH=[2,0];m0.Tag.TAG_SUBLIST_ITEM=[65534,57344];m0.Tag.TAG_SUBLIST_ITEM_DELIM=[65534,57357];m0.Tag.TAG_SUBLIST_SEQ_DELIM=[65534,57565];m0.Tag.TAG_ROWS=[40,16];m0.Tag.TAG_COLS=[40,17];m0.Tag.TAG_ACQUISITION_MATRIX=[24,4880];m0.Tag.TAG_NUMBER_OF_FRAMES=[40,8];m0.Tag.TAG_NUMBER_TEMPORAL_POSITIONS=[32,261];m0.Tag.TAG_PIXEL_SPACING=[40,48];m0.Tag.TAG_SLICE_THICKNESS=[24,80];m0.Tag.TAG_SLICE_GAP=[24,136];m0.Tag.TAG_TR=[24,128];m0.Tag.TAG_FRAME_TIME=[24,4195];m0.Tag.TAG_BITS_ALLOCATED=[40,256];m0.Tag.TAG_BITS_STORED=[40,257];m0.Tag.TAG_PIXEL_REPRESENTATION=[40,259];m0.Tag.TAG_HIGH_BIT=[40,258];m0.Tag.TAG_PHOTOMETRIC_INTERPRETATION=[40,4];m0.Tag.TAG_SAMPLES_PER_PIXEL=[40,2];m0.Tag.TAG_PLANAR_CONFIG=[40,6];m0.Tag.TAG_PALETTE_RED=[40,4609];m0.Tag.TAG_PALETTE_GREEN=[40,4610];m0.Tag.TAG_PALETTE_BLUE=[40,4611];m0.Tag.TAG_DATA_SCALE_SLOPE=[40,4179];m0.Tag.TAG_DATA_SCALE_INTERCEPT=[40,4178];m0.Tag.TAG_DATA_SCALE_ELSCINT=[519,4127];m0.Tag.TAG_PIXEL_BANDWIDTH=[24,149];m0.Tag.TAG_IMAGE_MIN=[40,262];m0.Tag.TAG_IMAGE_MAX=[40,263];m0.Tag.TAG_WINDOW_CENTER=[40,4176];m0.Tag.TAG_WINDOW_WIDTH=[40,4177];m0.Tag.TAG_SPECIFIC_CHAR_SET=[8,5];m0.Tag.TAG_PATIENT_NAME=[16,16];m0.Tag.TAG_PATIENT_ID=[16,32];m0.Tag.TAG_STUDY_DATE=[8,32];m0.Tag.TAG_STUDY_TIME=[8,48];m0.Tag.TAG_STUDY_DES=[8,4144];m0.Tag.TAG_IMAGE_TYPE=[8,8];m0.Tag.TAG_IMAGE_COMMENTS=[32,16384];m0.Tag.TAG_SEQUENCE_NAME=[24,36];m0.Tag.TAG_MODALITY=[8,96];m0.Tag.TAG_FRAME_OF_REF_UID=[32,82];m0.Tag.TAG_STUDY_UID=[32,13];m0.Tag.TAG_SERIES_DESCRIPTION=[8,4158];m0.Tag.TAG_SERIES_INSTANCE_UID=[32,14];m0.Tag.TAG_SERIES_NUMBER=[32,17];m0.Tag.TAG_ECHO_NUMBER=[24,134];m0.Tag.TAG_TEMPORAL_POSITION=[32,256];m0.Tag.TAG_IMAGE_NUM=[32,19];m0.Tag.TAG_SLICE_LOCATION=[32,4161];m0.Tag.TAG_IMAGE_ORIENTATION=[32,55];m0.Tag.TAG_IMAGE_POSITION=[32,50];m0.Tag.TAG_SLICE_LOCATION_VECTOR=[24,8197];m0.Tag.TAG_LUT_SHAPE=[8272,32];m0.Tag.TAG_PIXEL_DATA=[32736,16];m0.Tag.createId=function(p,T){var A=m0.Utils.dec2hex(p),P=m0.Utils.dec2hex(T);return A+P};m0.Tag.getUnsignedInteger16=function(p,T){var A,P,F;for(P=p.byteLength/2,A=[],F=0;F=4?(F=parseInt(T[P].substring(0,4),10),T[P].length>=6&&(M=m0.Utils.safeParseInt(T[P].substring(4,6))-1),T[P].length>=8&&(G=m0.Utils.safeParseInt(T[P].substring(6,8))),T[P].length>=10&&(Q=m0.Utils.safeParseInt(T[P].substring(8,10))),T[P].length>=12&&(Y=m0.Utils.safeParseInt(T[P].substring(10,12))),T[P].length>=14&&(X=m0.Utils.safeParseInt(T[P].substring(12,14))),A[P]=new Date(F,M,G,Q,Y,X)):A[P]=Date.parse(T[P]),m0.Utils.isValidDate(A[P])||(A[P]=T[P]);return A};m0.Tag.getTimeStringValue=function(p,T){var A=m0.Tag.getStringValue(p),P=[];if(T){var F=null,M,G=0,Q=0,Y=0;for(M=0;M1&&(Q=m0.Utils.safeParseInt(F[1])),F.length>2&&(Y=m0.Utils.safeParseFloat(F[2]))):(A[M].length>=2&&(G=m0.Utils.safeParseInt(A[M].substring(0,2))),A[M].length>=4&&(Q=m0.Utils.safeParseInt(A[M].substring(2,4))),A[M].length>=6&&(Y=m0.Utils.safeParseFloat(A[M].substring(4)))),P[M]=Math.round(G*60*60*1e3+Q*60*1e3+Y*1e3);return P}return A};m0.Tag.getDoubleStringValue=function(p){var T=m0.Tag.getStringValue(p),A=[],P;for(P=0;P"+this.value+"]":A="["+this.value+"]":A="";return this.isSublistItem()?G="Sequence Item":this.isSublistItemDelim()?G="Sequence Item Delimiter":this.isSequenceDelim()?G="Sequence Delimiter":this.isPixelData()?G="Pixel Data":Q=m0.Utils.convertCamcelCaseToTitleCase(m0.Dictionary.getDescription(this.group,this.element)),A=ew(A),T?Y+""+G+"   "+Q+"   "+A:Y+" "+G+" "+Q+" "+A};m0.Tag.prototype.toHTMLString=function(p){return this.toString(p,!0)};m0.Tag.prototype.isTransformSyntax=function(){return this.group===m0.Tag.TAG_TRANSFER_SYNTAX[0]&&this.element===m0.Tag.TAG_TRANSFER_SYNTAX[1]};m0.Tag.prototype.isCharset=function(){return this.group===m0.Tag.TAG_SPECIFIC_CHAR_SET[0]&&this.element===m0.Tag.TAG_SPECIFIC_CHAR_SET[1]};m0.Tag.prototype.isPixelData=function(){return this.group===m0.Tag.TAG_PIXEL_DATA[0]&&this.element===m0.Tag.TAG_PIXEL_DATA[1]};m0.Tag.prototype.isPrivateData=function(){return(this.group&1)===1};m0.Tag.prototype.hasInterpretedPrivateData=function(){return this.isPrivateData()&&m0.Utils.isString(this.value)};m0.Tag.prototype.isSublistItem=function(){return this.group===m0.Tag.TAG_SUBLIST_ITEM[0]&&this.element===m0.Tag.TAG_SUBLIST_ITEM[1]};m0.Tag.prototype.isSublistItemDelim=function(){return this.group===m0.Tag.TAG_SUBLIST_ITEM_DELIM[0]&&this.element===m0.Tag.TAG_SUBLIST_ITEM_DELIM[1]};m0.Tag.prototype.isSequenceDelim=function(){return this.group===m0.Tag.TAG_SUBLIST_SEQ_DELIM[0]&&this.element===m0.Tag.TAG_SUBLIST_SEQ_DELIM[1]};m0.Tag.prototype.isMetaLength=function(){return this.group===m0.Tag.TAG_META_LENGTH[0]&&this.element===m0.Tag.TAG_META_LENGTH[1]};var iw=typeof et;iw!=="undefined"&&et.exports&&(et.exports=m0.Tag)});var jn=Ke((Jd,rt)=>{"use strict";var G2=G2||{};G2.RLE=G2.RLE||function(){this.rawData=null,this.bytesRead=0,this.bytesPut=0,this.segElemPut=0,this.numSegments=0,this.segmentOffsets=[],this.littleEndian=!0,this.segmentIndex=0,this.numElements=0,this.size=0,this.output=null};G2.RLE.HEADER_SIZE=64;G2.RLE.prototype.decode=function(p,T,A){var P;for(this.rawData=new DataView(p),this.littleEndian=T,this.numElements=A,this.readHeader(),this.output=new DataView(new ArrayBuffer(this.size)),P=0;P=0&&p<128?this.readLiteral(p):p<=-1&&p>-128?this.readEncoded(p):p===-128&&console.warn("RLE: unsupported code!");this.segmentIndex+=1};G2.RLE.prototype.readLiteral=function(p){var T,A=p+1;if(this.hasValidInput())for(T=0;T{"use strict";var Ii=Ii||{};Ii.lossless=Ii.lossless||{};Ii.lossless.ComponentSpec=Ii.lossless.ComponentSpec||function(){this.hSamp=0,this.quantTableSel=0,this.vSamp=0};var tw=typeof tt;tw!=="undefined"&&tt.exports&&(tt.exports=Ii.lossless.ComponentSpec)});var ai=Ke((Zd,nt)=>{"use strict";var Z1=Z1||{};Z1.lossless=Z1.lossless||{};Z1.lossless.DataStream=Z1.lossless.DataStream||function(p,T,A){T===void 0&&A===void 0?this.buffer=new Uint8Array(p):this.buffer=new Uint8Array(p,T,A),this.index=0};Z1.lossless.DataStream.prototype.get16=function(){var p=(this.buffer[this.index]<<8)+this.buffer[this.index+1];return this.index+=2,p};Z1.lossless.DataStream.prototype.get8=function(){var p=this.buffer[this.index];return this.index+=1,p};var nw=typeof nt;nw!=="undefined"&&nt.exports&&(nt.exports=Z1.lossless.DataStream)});var bi=Ke(($d,st)=>{"use strict";var f1=f1||{};f1.lossless=f1.lossless||{};f1.lossless.Utils=f1.lossless.Utils||{};f1.lossless.Utils.createArray=function(p){var T=new Array(p||0),A=p;if(arguments.length>1)for(var P=Array.prototype.slice.call(arguments,1);A--;)T[p-1-A]=f1.lossless.Utils.createArray.apply(this,P);return T};f1.lossless.Utils.makeCRCTable=function(){for(var p,T=[],A=0;A<256;A++){p=A;for(var P=0;P<8;P++)p=p&1?3988292384^p>>>1:p>>>1;T[A]=p}return T};f1.lossless.Utils.crc32=function(p){for(var T=new Uint8Array(p.buffer),A=f1.lossless.Utils.crcTable||(f1.lossless.Utils.crcTable=f1.lossless.Utils.makeCRCTable()),P=-1,F=0;F>>8^A[(P^T[F])&255];return(P^-1)>>>0};var sw=typeof st;sw!=="undefined"&&st.exports&&(st.exports=f1.lossless.Utils)});var Jn=Ke((bd,ot)=>{"use strict";var V2=V2||{};V2.lossless=V2.lossless||{};V2.lossless.DataStream=V2.lossless.DataStream||(typeof require<"u"?ai():null);V2.lossless.Utils=V2.lossless.Utils||(typeof require<"u"?bi():null);V2.lossless.HuffmanTable=V2.lossless.HuffmanTable||function(){this.l=V2.lossless.Utils.createArray(4,2,16),this.th=[],this.v=V2.lossless.Utils.createArray(4,2,16,200),this.tc=V2.lossless.Utils.createArray(4,2),this.tc[0][0]=0,this.tc[1][0]=0,this.tc[2][0]=0,this.tc[3][0]=0,this.tc[0][1]=0,this.tc[1][1]=0,this.tc[2][1]=0,this.tc[3][1]=0,this.th[0]=0,this.th[1]=0,this.th[2]=0,this.th[3]=0};V2.lossless.HuffmanTable.MSB=2147483648;V2.lossless.HuffmanTable.prototype.read=function(p,T){var A=0,P,F,M,G,Q,Y;for(P=p.get16(),A+=2;A3)throw new Error("ERROR: Huffman table ID > 3");if(G=F>>4,G>2)throw new Error("ERROR: Huffman table [Table class > 2 ]");for(this.th[M]=1,this.tc[M][G]=1,Q=0;Q<16;Q+=1)this.l[M][G][Q]=p.get8(),A+=1;for(Q=0;Q<16;Q+=1)for(Y=0;YP)throw new Error("ERROR: Huffman table format error [count>Lh]");this.v[M][G][Q][Y]=p.get8(),A+=1}}if(A!==P)throw new Error("ERROR: Huffman table format error [count!=Lf]");for(Q=0;Q<4;Q+=1)for(Y=0;Y<2;Y+=1)this.tc[Q][Y]!==0&&this.buildHuffTable(T[Q][Y],this.l[Q][Y],this.v[Q][Y]);return 1};V2.lossless.HuffmanTable.prototype.buildHuffTable=function(p,T,A){var P,F,M,G,Q,Y;for(F=256,M=0,G=0;G<8;G+=1)for(Q=0;Q>G+1;Y+=1)p[M]=A[G][Q]|G+1<<8,M+=1;for(G=1;M<256;G+=1,M+=1)p[M]=G|V2.lossless.HuffmanTable.MSB;for(P=1,M=0,G=8;G<16;G+=1)for(Q=0;Q>G-7;Y+=1)p[P*256+M]=A[G][Q]|G+1<<8,M+=1;if(M>=256){if(M>256)throw new Error("ERROR: Huffman table error(1)!");M=0,P+=1}}};var ow=typeof ot;ow!=="undefined"&&ot.exports&&(ot.exports=V2.lossless.HuffmanTable)});var Kn=Ke((eC,ft)=>{"use strict";var b2=b2||{};b2.lossless=b2.lossless||{};b2.lossless.DataStream=b2.lossless.DataStream||(typeof require<"u"?ai():null);b2.lossless.Utils=b2.lossless.Utils||(typeof require<"u"?bi():null);b2.lossless.QuantizationTable=b2.lossless.QuantizationTable||function(){this.precision=[],this.tq=[],this.quantTables=b2.lossless.Utils.createArray(4,64),this.tq[0]=0,this.tq[1]=0,this.tq[2]=0,this.tq[3]=0};b2.lossless.QuantizationTable.enhanceQuantizationTable=function(p,T){var A;for(A=0;A<8;A+=1)p[T[0*8+A]]*=90,p[T[4*8+A]]*=90,p[T[2*8+A]]*=118,p[T[6*8+A]]*=49,p[T[5*8+A]]*=71,p[T[1*8+A]]*=126,p[T[7*8+A]]*=25,p[T[3*8+A]]*=106;for(A=0;A<8;A+=1)p[T[0+8*A]]*=90,p[T[4+8*A]]*=90,p[T[2+8*A]]*=118,p[T[6+8*A]]*=49,p[T[5+8*A]]*=71,p[T[1+8*A]]*=126,p[T[7+8*A]]*=25,p[T[3+8*A]]*=106;for(A=0;A<64;A+=1)p[A]>>=6};b2.lossless.QuantizationTable.prototype.read=function(p,T){var A=0,P,F,M,G;for(P=p.get16(),A+=2;A3)throw new Error("ERROR: Quantization table ID > 3");if(this.precision[M]=F>>4,this.precision[M]===0)this.precision[M]=8;else if(this.precision[M]===1)this.precision[M]=16;else throw new Error("ERROR: Quantization table precision error");if(this.tq[M]=1,this.precision[M]===8){for(G=0;G<64;G+=1){if(A>P)throw new Error("ERROR: Quantization table format error");this.quantTables[M][G]=p.get8(),A+=1}b2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[M],T)}else{for(G=0;G<64;G+=1){if(A>P)throw new Error("ERROR: Quantization table format error");this.quantTables[M][G]=p.get16(),A+=2}b2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[M],T)}}if(A!==P)throw new Error("ERROR: Quantization table error [count!=Lq]");return 1};var fw=typeof ft;fw!=="undefined"&&ft.exports&&(ft.exports=b2.lossless.QuantizationTable)});var Zn=Ke((iC,lt)=>{"use strict";var Pi=Pi||{};Pi.lossless=Pi.lossless||{};Pi.lossless.ScanComponent=Pi.lossless.ScanComponent||function(){this.acTabSel=0,this.dcTabSel=0,this.scanCompSel=0};var lw=typeof lt;lw!=="undefined"&<.exports&&(lt.exports=Pi.lossless.ScanComponent)});var $n=Ke((rC,ut)=>{"use strict";var c1=c1||{};c1.lossless=c1.lossless||{};c1.lossless.DataStream=c1.lossless.DataStream||(typeof require<"u"?ai():null);c1.lossless.ScanComponent=c1.lossless.ScanComponent||(typeof require<"u"?Zn():null);c1.lossless.ScanHeader=c1.lossless.ScanHeader||function(){this.ah=0,this.al=0,this.numComp=0,this.selection=0,this.spectralEnd=0,this.components=[]};c1.lossless.ScanHeader.prototype.read=function(p){var T=0,A,P,F;for(A=p.get16(),T+=2,this.numComp=p.get8(),T+=1,P=0;PA)throw new Error("ERROR: scan header format error");this.components[P].scanCompSel=p.get8(),T+=1,F=p.get8(),T+=1,this.components[P].dcTabSel=F>>4,this.components[P].acTabSel=F&15}if(this.selection=p.get8(),T+=1,this.spectralEnd=p.get8(),T+=1,F=p.get8(),this.ah=F>>4,this.al=F&15,T+=1,T!==A)throw new Error("ERROR: scan header format error [count!=Ns]");return 1};var uw=typeof ut;uw!=="undefined"&&ut.exports&&(ut.exports=c1.lossless.ScanHeader)});var bn=Ke((tC,at)=>{"use strict";var S1=S1||{};S1.lossless=S1.lossless||{};S1.lossless.ComponentSpec=S1.lossless.ComponentSpec||(typeof require<"u"?Wn():null);S1.lossless.DataStream=S1.lossless.DataStream||(typeof require<"u"?ai():null);S1.lossless.FrameHeader=S1.lossless.FrameHeader||function(){this.components=[],this.dimX=0,this.dimY=0,this.numComp=0,this.precision=0};S1.lossless.FrameHeader.prototype.read=function(p){var T=0,A,P,F,M;for(A=p.get16(),T+=2,this.precision=p.get8(),T+=1,this.dimY=p.get16(),T+=2,this.dimX=p.get16(),T+=2,this.numComp=p.get8(),T+=1,P=1;P<=this.numComp;P+=1){if(T>A)throw new Error("ERROR: frame format error");if(F=p.get8(),T+=1,T>=A)throw new Error("ERROR: frame format error [c>=Lf]");M=p.get8(),T+=1,this.components[F]||(this.components[F]=new S1.lossless.ComponentSpec),this.components[F].hSamp=M>>4,this.components[F].vSamp=M&15,this.components[F].quantTableSel=p.get8(),T+=1}if(T!==A)throw new Error("ERROR: frame format error [Lf!=count]");return 1};var aw=typeof at;aw!=="undefined"&&at.exports&&(at.exports=S1.lossless.FrameHeader)});var dl=Ke((nC,ct)=>{"use strict";var ue=ue||{};ue.lossless=ue.lossless||{};ue.lossless.DataStream=ue.lossless.DataStream||(typeof require<"u"?ai():null);ue.lossless.HuffmanTable=ue.lossless.HuffmanTable||(typeof require<"u"?Jn():null);ue.lossless.QuantizationTable=ue.lossless.QuantizationTable||(typeof require<"u"?Kn():null);ue.lossless.ScanHeader=ue.lossless.ScanHeader||(typeof require<"u"?$n():null);ue.lossless.FrameHeader=ue.lossless.FrameHeader||(typeof require<"u"?bn():null);ue.lossless.Utils=ue.lossless.Utils||(typeof require<"u"?bi():null);ue.lossless.Decoder=ue.lossless.Decoder||function(p,T){this.buffer=p,this.frame=new ue.lossless.FrameHeader,this.huffTable=new ue.lossless.HuffmanTable,this.quantTable=new ue.lossless.QuantizationTable,this.scan=new ue.lossless.ScanHeader,this.DU=ue.lossless.Utils.createArray(10,4,64),this.HuffTab=ue.lossless.Utils.createArray(4,2,50*256),this.IDCT_Source=[],this.nBlock=[],this.acTab=ue.lossless.Utils.createArray(10,1),this.dcTab=ue.lossless.Utils.createArray(10,1),this.qTab=ue.lossless.Utils.createArray(10,1),this.marker=0,this.markerIndex=0,this.numComp=0,this.restartInterval=0,this.selection=0,this.xDim=0,this.yDim=0,this.xLoc=0,this.yLoc=0,this.numBytes=0,this.outputData=null,this.restarting=!1,this.mask=0,typeof T<"u"&&(this.numBytes=T)};ue.lossless.Decoder.IDCT_P=[0,5,40,16,45,2,7,42,21,56,8,61,18,47,1,4,41,23,58,13,32,24,37,10,63,17,44,3,6,43,20,57,15,34,29,48,53,26,39,9,60,19,46,22,59,12,33,31,50,55,25,36,11,62,14,35,28,49,52,27,38,30,51,54];ue.lossless.Decoder.TABLE=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63];ue.lossless.Decoder.MAX_HUFFMAN_SUBTREE=50;ue.lossless.Decoder.MSB=2147483648;ue.lossless.Decoder.RESTART_MARKER_BEGIN=65488;ue.lossless.Decoder.RESTART_MARKER_END=65495;ue.lossless.Decoder.prototype.decompress=function(p,T,A){return this.decode(p,T,A).buffer};ue.lossless.Decoder.prototype.decode=function(p,T,A,P){var F,M=0,G=[],Q,Y,X=[],J=[],m;if(typeof p<"u"&&(this.buffer=p),typeof P<"u"&&(this.numBytes=P),this.stream=new ue.lossless.DataStream(this.buffer,T,A),this.buffer=null,this.xLoc=0,this.yLoc=0,F=this.stream.get16(),F!==65496)throw new Error("Not a JPEG file");for(F=this.stream.get16();F>>4!==4092||F===65476;){switch(F){case 65476:this.huffTable.read(this.stream,this.HuffTab);break;case 65484:throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");case 65499:this.quantTable.read(this.stream,ue.lossless.Decoder.TABLE);break;case 65501:this.restartInterval=this.readNumber();break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:this.readApp();break;case 65534:this.readComment();break;default:if(F>>8!==255)throw new Error("ERROR: format throw new IOException! (decode)")}F=this.stream.get16()}if(F<65472||F>65479)throw new Error("ERROR: could not handle arithmetic code!");this.frame.read(this.stream),F=this.stream.get16();do{for(;F!==65498;){switch(F){case 65476:this.huffTable.read(this.stream,this.HuffTab);break;case 65484:throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)");case 65499:this.quantTable.read(this.stream,ue.lossless.Decoder.TABLE);break;case 65501:this.restartInterval=this.readNumber();break;case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:this.readApp();break;case 65534:this.readComment();break;default:if(F>>8!==255)throw new Error("ERROR: format throw new IOException! (Parser.decode)")}F=this.stream.get16()}switch(this.precision=this.frame.precision,this.components=this.frame.components,this.numBytes||(this.numBytes=parseInt(Math.ceil(this.precision/8))),this.numBytes==1?this.mask=255:this.mask=65535,this.scan.read(this.stream),this.numComp=this.scan.numComp,this.selection=this.scan.selection,this.numBytes===1?this.numComp===3?(this.getter=this.getValueRGB,this.setter=this.setValueRGB,this.output=this.outputRGB):(this.getter=this.getValue8,this.setter=this.setValue8,this.output=this.outputSingle):(this.getter=this.getValue16,this.setter=this.setValue16,this.output=this.outputSingle),this.selection){case 2:this.selector=this.select2;break;case 3:this.selector=this.select3;break;case 4:this.selector=this.select4;break;case 5:this.selector=this.select5;break;case 6:this.selector=this.select6;break;case 7:this.selector=this.select7;break;default:this.selector=this.select1;break}for(this.scanComps=this.scan.components,this.quantTables=this.quantTable.quantTables,Q=0;Q=ue.lossless.Decoder.RESTART_MARKER_BEGIN&&F<=ue.lossless.Decoder.RESTART_MARKER_END))break}F===65500&&M===1&&(this.readNumber(),F=this.stream.get16())}while(F!==65497&&this.xLoc>1)};ue.lossless.Decoder.prototype.select6=function(p){return this.getPreviousY(p)+(this.getPreviousX(p)-this.getPreviousXY(p)>>1)};ue.lossless.Decoder.prototype.select7=function(p){return(this.getPreviousX(p)+this.getPreviousY(p))/2};ue.lossless.Decoder.prototype.decodeRGB=function(p,T,A){var P,F,M,G,Q,Y,X,J;for(p[0]=this.selector(0),p[1]=this.selector(1),p[2]=this.selector(2),Q=0;Q=65280)return P;for(p[Q]=this.IDCT_Source[0]=p[Q]+this.getn(A,P,T,A),this.IDCT_Source[0]*=G[0],J=1;J<64;J+=1){if(P=this.getHuffmanValue(F,T,A),P>=65280)return P;if(J+=P>>4,P&15)this.IDCT_Source[ue.lossless.Decoder.IDCT_P[J]]=this.getn(A,P&15,T,A)*G[J];else if(!(P>>4))break}}return 0};ue.lossless.Decoder.prototype.decodeSingle=function(p,T,A){var P,F,M,G;for(this.restarting?(this.restarting=!1,p[0]=1<=65280)return P;if(M=this.getn(p,P,T,A),G=M>>8,G>=ue.lossless.Decoder.RESTART_MARKER_BEGIN&&G<=ue.lossless.Decoder.RESTART_MARKER_END)return G;p[0]+=M}return 0};ue.lossless.Decoder.prototype.getHuffmanValue=function(p,T,A){var P,F,M;if(M=65535,A[0]<8?(T[0]<<=8,F=this.stream.get8(),F===255&&(this.marker=this.stream.get8(),this.marker!==0&&(this.markerIndex=9)),T[0]|=F):A[0]-=8,P=p[T[0]>>A[0]],P&ue.lossless.Decoder.MSB){if(this.markerIndex!==0)return this.markerIndex=0,65280|this.marker;T[0]&=M>>16-A[0],T[0]<<=8,F=this.stream.get8(),F===255&&(this.marker=this.stream.get8(),this.marker!==0&&(this.markerIndex=9)),T[0]|=F,P=p[(P&255)*256+(T[0]>>A[0])],A[0]+=8}if(A[0]+=8-(P>>8),A[0]<0)throw new Error("index="+A[0]+" temp="+T[0]+" code="+P+" in HuffmanValue()");return A[0]>16-A[0],P&255)};ue.lossless.Decoder.prototype.getn=function(p,T,A,P){var F,M,G,Q,Y;if(M=1,G=-1,Q=65535,T===0)return 0;if(T===16)return p[0]>=0?-32768:32768;if(P[0]-=T,P[0]>=0){if(P[0]>P[0],A[0]&=Q>>16-P[0]}else{if(A[0]<<=8,Y=this.stream.get8(),Y===255&&(this.marker=this.stream.get8(),this.marker!==0&&(this.markerIndex=9)),A[0]|=Y,P[0]+=8,P[0]<0){if(this.markerIndex!==0)return this.markerIndex=0,(65280|this.marker)<<8;A[0]<<=8,Y=this.stream.get8(),Y===255&&(this.marker=this.stream.get8(),this.marker!==0&&(this.markerIndex=9)),A[0]|=Y,P[0]+=8}if(P[0]<0)throw new Error("index="+P[0]+" in getn()");if(P[0]>P[0],A[0]&=Q>>16-P[0]}return F0?this.getter(this.yLoc*this.xDim+this.xLoc-1,p):this.yLoc>0?this.getPreviousY(p):1<0&&this.yLoc>0?this.getter((this.yLoc-1)*this.xDim+this.xLoc-1,p):this.getPreviousY(p)};ue.lossless.Decoder.prototype.getPreviousY=function(p){return this.yLoc>0?this.getter((this.yLoc-1)*this.xDim+this.xLoc,p):this.getPreviousX(p)};ue.lossless.Decoder.prototype.isLastPixel=function(){return this.xLoc===this.xDim-1&&this.yLoc===this.yDim-1};ue.lossless.Decoder.prototype.outputSingle=function(p){this.xLoc=this.xDim&&(this.yLoc+=1,this.xLoc=0))};ue.lossless.Decoder.prototype.outputRGB=function(p){var T=this.yLoc*this.xDim+this.xLoc;this.xLoc=this.xDim&&(this.yLoc+=1,this.xLoc=0))};ue.lossless.Decoder.prototype.setValue8=function(p,T){this.outputData[p]=T};ue.lossless.Decoder.prototype.getValue8=function(p){return this.outputData[p]};var cw=function(){var p=new ArrayBuffer(2);return new DataView(p).setInt16(0,256,!0),new Int16Array(p)[0]===256}();cw?(ue.lossless.Decoder.prototype.setValue16=ue.lossless.Decoder.prototype.setValue8,ue.lossless.Decoder.prototype.getValue16=ue.lossless.Decoder.prototype.getValue8):(ue.lossless.Decoder.prototype.setValue16=function(p,T){this.outputData[p]=(T&255)<<8|T>>8&255},ue.lossless.Decoder.prototype.getValue16=function(p){var T=this.outputData[p];return(T&255)<<8|T>>8&255});ue.lossless.Decoder.prototype.setValueRGB=function(p,T,A){this.outputData[p*3+A]=T};ue.lossless.Decoder.prototype.getValueRGB=function(p,T){return this.outputData[p*3+T]};ue.lossless.Decoder.prototype.readApp=function(){var p=0,T=this.stream.get16();for(p+=2;p{"use strict";var P2=P2||{};P2.lossless=P2.lossless||{};P2.lossless.ComponentSpec=P2.lossless.ComponentSpec||(typeof require<"u"?Wn():null);P2.lossless.DataStream=P2.lossless.DataStream||(typeof require<"u"?ai():null);P2.lossless.Decoder=P2.lossless.Decoder||(typeof require<"u"?dl():null);P2.lossless.FrameHeader=P2.lossless.FrameHeader||(typeof require<"u"?bn():null);P2.lossless.HuffmanTable=P2.lossless.HuffmanTable||(typeof require<"u"?Jn():null);P2.lossless.QuantizationTable=P2.lossless.QuantizationTable||(typeof require<"u"?Kn():null);P2.lossless.ScanComponent=P2.lossless.ScanComponent||(typeof require<"u"?Zn():null);P2.lossless.ScanHeader=P2.lossless.ScanHeader||(typeof require<"u"?$n():null);P2.lossless.Utils=P2.lossless.Utils||(typeof require<"u"?bi():null);var hw=typeof St;hw!=="undefined"&&St.exports&&(St.exports=P2)});var is=Ke((oC,ht)=>{var er={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4},mw=function(){"use strict";var T=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),A=4017,P=799,F=3406,M=2276,G=1567,Q=3784,Y=5793,X=2896;function J(){}function m(V0,t0){for(var f0=0,C=[],L0,S0,O0=16;O0>0&&!V0[O0-1];)O0--;C.push({children:[],index:0});var _0=C[0],l0;for(L0=0;L00;)_0=C.pop();for(_0.index++,C.push(_0);C.length<=L0;)C.push(l0={children:[],index:0}),_0.children[_0.index]=l0.children,_0=l0;f0++}L0+10)return T0--,h0>>T0&1;if(h0=V0[t0++],h0==255){var ke=V0[t0++];if(ke)throw"unexpected marker: "+(h0<<8|ke).toString(16)}return T0=7,h0>>>7}function a0(ke){for(var Oe=ke,He;(He=u0())!==null;){if(Oe=Oe[He],typeof Oe=="number")return Oe;if(typeof Oe!="object")throw"invalid huffman sequence"}return null}function D0(ke){for(var Oe=0;ke>0;){var He=u0();if(He===null)return;Oe=Oe<<1|He,ke--}return Oe}function F0(ke){var Oe=D0(ke);return Oe>=1<>4;if(Ge===0){if(J2<15)break;je+=16;continue}je+=J2;var k1=T[je];ke.blockData[Oe+k1]=F0(Ge),je++}}function o0(ke,Oe){var He=a0(ke.huffmanTableDC),Z=He===0?0:F0(He)<0){E0--;return}for(var He=S0,Z=O0;He<=Z;){var je=a0(ke.huffmanTableAC),Be=je&15,Ge=je>>4;if(Be===0){if(Ge<15){E0=D0(Ge)+(1<>4,J2===0)je<15?(E0=D0(je)+(1<=65488&&Te<=65495)t0+=2;else break}return t0-P0}function z(V0,t0,f0){var C=V0.quantizationTable,L0,S0,O0,_0,l0,u,q0,d0,i0,v0;for(v0=0;v0<64;v0++)f0[v0]=V0.blockData[t0+v0]*C[v0];for(v0=0;v0<8;++v0){var K=8*v0;if(f0[1+K]===0&&f0[2+K]===0&&f0[3+K]===0&&f0[4+K]===0&&f0[5+K]===0&&f0[6+K]===0&&f0[7+K]===0){i0=Y*f0[0+K]+512>>10,f0[0+K]=i0,f0[1+K]=i0,f0[2+K]=i0,f0[3+K]=i0,f0[4+K]=i0,f0[5+K]=i0,f0[6+K]=i0,f0[7+K]=i0;continue}L0=Y*f0[0+K]+128>>8,S0=Y*f0[4+K]+128>>8,O0=f0[2+K],_0=f0[6+K],l0=X*(f0[1+K]-f0[7+K])+128>>8,d0=X*(f0[1+K]+f0[7+K])+128>>8,u=f0[3+K]<<4,q0=f0[5+K]<<4,i0=L0-S0+1>>1,L0=L0+S0+1>>1,S0=i0,i0=O0*Q+_0*G+128>>8,O0=O0*G-_0*Q+128>>8,_0=i0,i0=l0-q0+1>>1,l0=l0+q0+1>>1,q0=i0,i0=d0+u+1>>1,u=d0-u+1>>1,d0=i0,i0=L0-_0+1>>1,L0=L0+_0+1>>1,_0=i0,i0=S0-O0+1>>1,S0=S0+O0+1>>1,O0=i0,i0=l0*M+d0*F+2048>>12,l0=l0*F-d0*M+2048>>12,d0=i0,i0=u*P+q0*A+2048>>12,u=u*A-q0*P+2048>>12,q0=i0,f0[0+K]=L0+d0,f0[7+K]=L0-d0,f0[1+K]=S0+q0,f0[6+K]=S0-q0,f0[2+K]=O0+u,f0[5+K]=O0-u,f0[3+K]=_0+l0,f0[4+K]=_0-l0}for(v0=0;v0<8;++v0){var s0=v0;if(f0[1*8+s0]===0&&f0[2*8+s0]===0&&f0[3*8+s0]===0&&f0[4*8+s0]===0&&f0[5*8+s0]===0&&f0[6*8+s0]===0&&f0[7*8+s0]===0){i0=Y*f0[v0+0]+8192>>14,f0[0*8+s0]=i0,f0[1*8+s0]=i0,f0[2*8+s0]=i0,f0[3*8+s0]=i0,f0[4*8+s0]=i0,f0[5*8+s0]=i0,f0[6*8+s0]=i0,f0[7*8+s0]=i0;continue}L0=Y*f0[0*8+s0]+2048>>12,S0=Y*f0[4*8+s0]+2048>>12,O0=f0[2*8+s0],_0=f0[6*8+s0],l0=X*(f0[1*8+s0]-f0[7*8+s0])+2048>>12,d0=X*(f0[1*8+s0]+f0[7*8+s0])+2048>>12,u=f0[3*8+s0],q0=f0[5*8+s0],i0=L0-S0+1>>1,L0=L0+S0+1>>1,S0=i0,i0=O0*Q+_0*G+2048>>12,O0=O0*G-_0*Q+2048>>12,_0=i0,i0=l0-q0+1>>1,l0=l0+q0+1>>1,q0=i0,i0=d0+u+1>>1,u=d0-u+1>>1,d0=i0,i0=L0-_0+1>>1,L0=L0+_0+1>>1,_0=i0,i0=S0-O0+1>>1,S0=S0+O0+1>>1,O0=i0,i0=l0*M+d0*F+2048>>12,l0=l0*F-d0*M+2048>>12,d0=i0,i0=u*P+q0*A+2048>>12,u=u*A-q0*P+2048>>12,q0=i0,f0[0*8+s0]=L0+d0,f0[7*8+s0]=L0-d0,f0[1*8+s0]=S0+q0,f0[6*8+s0]=S0-q0,f0[2*8+s0]=O0+u,f0[5*8+s0]=O0-u,f0[3*8+s0]=_0+l0,f0[4*8+s0]=_0-l0}for(v0=0;v0<64;++v0){var P0=t0+v0,h0=f0[v0];h0=h0<=-2056/V0.bitConversion?0:h0>=2024/V0.bitConversion?255/V0.bitConversion:h0+2056/V0.bitConversion>>4,V0.blockData[P0]=h0}}function b(V0,t0){for(var f0=[],C=t0.blocksPerLine,L0=t0.blocksPerColumn,S0=C<<3,O0=new Int32Array(64),_0,l0,u=0,q0=0;q0=255?255:V0|0}return J.prototype={load:function(t0){var f0=function(l0){this.parse(l0),this.onload&&this.onload()}.bind(this);if(t0.indexOf("data:")>-1){for(var C=t0.indexOf("base64,")+7,L0=atob(t0.substring(C)),S0=new Uint8Array(L0.length),O0=L0.length-1;O0>=0;O0--)S0[O0]=L0.charCodeAt(O0);f0(L0)}else{var _0=new XMLHttpRequest;_0.open("GET",t0,!0),_0.responseType="arraybuffer",_0.onload=function(){var l0=new Uint8Array(_0.response);f0(l0)}.bind(this),_0.send(null)}},parse:function(t0){function f0(){var Z=t0[S0]<<8|t0[S0+1];return S0+=2,Z}function C(){var Z=f0(),je=t0.subarray(S0,S0+Z-2);return S0+=je.length,je}function L0(Z){for(var je=Math.ceil(Z.samplesPerLine/8/Z.maxH),Be=Math.ceil(Z.scanLines/8/Z.maxV),Ge=0;Ge>4)if(F0>>4===1)for(h0=0;h0<64;h0++){var k0=T[h0];M0[k0]=f0()}else throw"DQT: invalid table spec";else for(h0=0;h0<64;h0++){var o0=T[h0];M0[o0]=t0[S0++]}i0[F0&15]=M0}break;case 65472:case 65473:case 65474:if(q0)throw"Only single frame JPEGs supported";f0(),q0={},q0.extended=s0===65473,q0.progressive=s0===65474,q0.precision=t0[S0++],q0.scanLines=f0(),q0.samplesPerLine=f0(),q0.components=[],q0.componentIds={};var E0=t0[S0++],R0,ee=0,he=0;for(P0=0;P0>4,te=t0[S0+1]&15;ee>4?v0:K)[ae&15]=m(Z0,Le)}break;case 65501:f0(),d0=f0();break;case 65498:var Ve=f0(),Me=t0[S0++],Xe=[],Te;for(P0=0;P0>4],Te.huffmanTableAC=v0[T2&15],Xe.push(Te)}var x2=t0[S0++],ke=t0[S0++],Oe=t0[S0++],He=e(t0,S0,q0,Xe,d0,x2,ke,Oe>>4,Oe&15);S0+=He;break;default:if(t0[S0-3]==255&&t0[S0-2]>=192&&t0[S0-2]<=254){S0-=3;break}throw"unknown JPEG marker "+s0.toString(16)}s0=f0()}switch(this.width=q0.samplesPerLine,this.height=q0.scanLines,this.jfif=_0,this.adobe=l0,this.components=[],q0.components.length){case 1:this.colorspace=er.Grayscale;break;case 3:this.adobe?this.colorspace=er.AdobeRGB:this.colorspace=er.RGB;break;case 4:this.colorspace=er.CYMK;break;default:this.colorspace=er.Unknown}for(var P0=0;P0{"use strict";var gw=function(){var T={LL:0,LH:1,HL:1,HH:2};function A(){this.failOnCorruptedImage=!1}A.prototype={parse:function(i0){var v0=h1(i0,0);if(v0===65359){this.parseCodestream(i0,0,i0.length);return}for(var K=0,s0=i0.length;K>24&255,T0>>16&255,T0>>8&255,T0&255);$1("Unsupported header type "+T0+" ("+k0+")");break}a0&&(K+=u0)}},parseImageProperties:function(i0){for(var v0=i0.getByte();v0>=0;){var K=v0;v0=i0.getByte();var s0=K<<8|v0;if(s0===65361){i0.skip(4);var P0=i0.getInt32()>>>0,h0=i0.getInt32()>>>0,T0=i0.getInt32()>>>0,u0=i0.getInt32()>>>0;i0.skip(16);var a0=i0.getUint16();this.width=P0-T0,this.height=h0-u0,this.componentsCount=a0,this.bitsPerComponent=8;return}}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function(i0,v0,K){var s0={};try{for(var P0=!1,h0=v0;h0+1>5,F0=[];a0>3,oe.mu=0):(oe.epsilon=i0[a0]>>3,oe.mu=(i0[a0]&7)<<8|i0[a0+1],a0+=2),F0.push(oe)}te.SPqcds=F0,s0.mainHeader?s0.QCD=te:(s0.currentTile.QCD=te,s0.currentTile.QCC=[]);break;case 65373:u0=h1(i0,h0);var Ce={};a0=h0+2;var ae;switch(s0.SIZ.Csiz<257?ae=i0[a0++]:(ae=h1(i0,a0),a0+=2),D0=i0[a0++],D0&31){case 0:M0=8,o0=!0;break;case 1:M0=16,o0=!1;break;case 2:M0=16,o0=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+D0)}for(Ce.noQuantization=M0===8,Ce.scalarExpounded=o0,Ce.guardBits=D0>>5,F0=[];a0>3,oe.mu=0):(oe.epsilon=i0[a0]>>3,oe.mu=(i0[a0]&7)<<8|i0[a0+1],a0+=2),F0.push(oe);Ce.SPqcds=F0,s0.mainHeader?s0.QCC[ae]=Ce:s0.currentTile.QCC[ae]=Ce;break;case 65362:u0=h1(i0,h0);var Z0={};a0=h0+2;var Ue=i0[a0++];Z0.entropyCoderWithCustomPrecincts=!!(Ue&1),Z0.sopMarkerUsed=!!(Ue&2),Z0.ephMarkerUsed=!!(Ue&4),Z0.progressionOrder=i0[a0++],Z0.layersCount=h1(i0,a0),a0+=2,Z0.multipleComponentTransform=i0[a0++],Z0.decompositionLevelsCount=i0[a0++],Z0.xcb=(i0[a0++]&15)+2,Z0.ycb=(i0[a0++]&15)+2;var Le=i0[a0++];if(Z0.selectiveArithmeticCodingBypass=!!(Le&1),Z0.resetContextProbabilities=!!(Le&2),Z0.terminationOnEachCodingPass=!!(Le&4),Z0.verticalyStripe=!!(Le&8),Z0.predictableTermination=!!(Le&16),Z0.segmentationSymbolUsed=!!(Le&32),Z0.reversibleTransformation=i0[a0++],Z0.entropyCoderWithCustomPrecincts){for(var Ve=[];a0>4})}Z0.precinctsSizes=Ve}var Xe=[];if(Z0.selectiveArithmeticCodingBypass&&Xe.push("selectiveArithmeticCodingBypass"),Z0.resetContextProbabilities&&Xe.push("resetContextProbabilities"),Z0.terminationOnEachCodingPass&&Xe.push("terminationOnEachCodingPass"),Z0.verticalyStripe&&Xe.push("verticalyStripe"),Z0.predictableTermination&&Xe.push("predictableTermination"),Xe.length>0)throw P0=!0,new Error("JPX Error: Unsupported COD options ("+Xe.join(", ")+")");s0.mainHeader?s0.COD=Z0:(s0.currentTile.COD=Z0,s0.currentTile.COC=[]);break;case 65424:u0=h1(i0,h0),k0={},k0.index=h1(i0,h0+2),k0.length=e1(i0,h0+4),k0.dataEnd=k0.length+h0-2,k0.partIndex=i0[h0+8],k0.partsCount=i0[h0+9],s0.mainHeader=!1,k0.partIndex===0&&(k0.COD=s0.COD,k0.COC=s0.COC.slice(0),k0.QCD=s0.QCD,k0.QCC=s0.QCC.slice(0)),s0.currentTile=k0;break;case 65427:k0=s0.currentTile,k0.partIndex===0&&(L0(s0,k0.index),U0(s0)),u0=k0.dataEnd-h0,V0(s0,i0,h0,u0);break;case 65365:case 65367:case 65368:case 65380:u0=h1(i0,h0);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+T0.toString(16))}h0+=u0}}catch(Te){if(P0||this.failOnCorruptedImage)throw Te;$1("Trying to recover from "+Te.message)}this.tiles=C(s0),this.width=s0.SIZ.Xsiz-s0.SIZ.XOsiz,this.height=s0.SIZ.Ysiz-s0.SIZ.YOsiz,this.componentsCount=s0.SIZ.Csiz}};function P(d0,i0){d0.x0=Math.ceil(i0.XOsiz/d0.XRsiz),d0.x1=Math.ceil(i0.Xsiz/d0.XRsiz),d0.y0=Math.ceil(i0.YOsiz/d0.YRsiz),d0.y1=Math.ceil(i0.Ysiz/d0.YRsiz),d0.width=d0.x1-d0.x0,d0.height=d0.y1-d0.y0}function F(d0,i0){for(var v0=d0.SIZ,K,s0=[],P0=Math.ceil((v0.Xsiz-v0.XTOsiz)/v0.XTsiz),h0=Math.ceil((v0.Ysiz-v0.YTOsiz)/v0.YTsiz),T0=0;T00?Math.min(K.xcb,s0.PPx-1):Math.min(K.xcb,s0.PPx),s0.ycb_=v0>0?Math.min(K.ycb,s0.PPy-1):Math.min(K.ycb,s0.PPy),s0}function G(d0,i0,v0){var K=1<i0.trx0?Math.ceil(i0.trx1/K)-Math.floor(i0.trx0/K):0,a0=i0.try1>i0.try0?Math.ceil(i0.try1/s0)-Math.floor(i0.try0/s0):0,D0=u0*a0;i0.precinctParameters={precinctWidth:K,precinctHeight:s0,numprecinctswide:u0,numprecinctshigh:a0,numprecincts:D0,precinctWidthInSubband:h0,precinctHeightInSubband:T0}}function Q(d0,i0,v0){var K=v0.xcb_,s0=v0.ycb_,P0=1<>K,u0=i0.tby0>>s0,a0=i0.tbx1+P0-1>>K,D0=i0.tby1+h0-1>>s0,F0=i0.resolution.precinctParameters,M0=[],o0=[],k0,E0,R0,ee;for(E0=u0;E0te.cbxMax&&(te.cbxMax=k0),E0te.cbyMax&&(te.cbyMax=E0)):o0[ee]=te={cbxMin:k0,cbyMin:E0,cbxMax:k0,cbyMax:E0},R0.precinct=te}}i0.codeblockParameters={codeblockWidth:K,codeblockHeight:s0,numcodeblockwide:a0-T0+1,numcodeblockhigh:D0-u0+1},i0.codeblocks=M0,i0.precincts=o0}function Y(d0,i0,v0){for(var K=[],s0=d0.subbands,P0=0,h0=s0.length;P0o0.codingStyleParameters.decompositionLevelsCount)){for(var k0=o0.resolutions[a0],E0=k0.precinctParameters.numprecincts;F0o0.codingStyleParameters.decompositionLevelsCount)){for(var k0=o0.resolutions[u0],E0=k0.precinctParameters.numprecincts;F0R0.codingStyleParameters.decompositionLevelsCount)){var ee=R0.resolutions[T0],he=ee.precinctParameters.numprecincts;if(!(a0>=he)){for(;h0=0;--R0){var ee=u0.resolutions[R0],he=E0*ee.precinctParameters.precinctWidth,re=E0*ee.precinctParameters.precinctHeight;F0=Math.min(F0,he),M0=Math.min(M0,re),o0=Math.max(o0,ee.precinctParameters.numprecinctswide),k0=Math.max(k0,ee.precinctParameters.numprecinctshigh),D0[R0]={width:he,height:re},E0<<=1}v0=Math.min(v0,F0),K=Math.min(K,M0),s0=Math.max(s0,o0),P0=Math.max(P0,k0),h0[T0]={resolutions:D0,minWidth:F0,minHeight:M0,maxNumWide:o0,maxNumHigh:k0}}return{components:h0,minWidth:v0,minHeight:K,maxNumWide:s0,maxNumHigh:P0}}function U0(d0){for(var i0=d0.SIZ,v0=d0.currentTile.index,K=d0.tiles[v0],s0=i0.Csiz,P0=0;P0=i0.length)throw new Error("Unexpected EOF");var Ge=i0[v0+s0];s0++,T0?(P0=P0<<7|Ge,h0+=7,T0=!1):(P0=P0<<8|Ge,h0+=8),Ge===255&&(T0=!0)}return h0-=Be,P0>>>h0&(1<=i0.length)return;if(Te.isAboveThreshold())break;if(Te.isKnown()){Te.nextLevel();continue}if(u0(1))if(Te.setKnown(),Te.isLeaf()){oe.included=!0,Ve=Me=!0;break}else Te.nextLevel();else Te.incrementValue()}}if(Ve){if(Me){for(xe=Z0.zeroBitPlanesTree,xe.reset(Ue,Le);;){if(s0>=i0.length)return;if(u0(1)){if(Xe=!xe.nextLevel(),Xe)break}else xe.incrementValue()}oe.zeroBitPlanes=xe.value}for(var ke=M0();u0(1);)oe.Lblock++;var Oe=rs(ke),He=(ke<1<0;){var je=te.shift();oe=je.codeblock,oe.data===void 0&&(oe.data=[]),oe.data.push({data:i0,start:v0+s0,end:v0+s0+je.dataLength,codingpasses:je.codingpasses}),s0+=je.dataLength}}catch{return}return s0}function t0(d0,i0,v0,K,s0,P0,h0,T0){for(var u0=K.tbx0,a0=K.tby0,D0=K.tbx1-K.tbx0,F0=K.codeblocks,M0=K.type.charAt(0)==="H"?1:0,o0=K.type.charAt(1)==="H"?i0:0,k0=0,E0=F0.length;k0=P0?d0[k1]=Z:d0[k1]=Z*(1<0?1-R0:0));var Ue=ee.subbands[oe],Le=T[Ue.type],Ve=M0?1:Math.pow(2,F0+Le-Z0)*(1+ae/2048),Me=a0+Z0-1;t0(te,he,re,Ue,Ve,Me,M0,D0)}k0.push({width:he,height:re,items:te})}var Xe=o0.calculate(k0,K.tcx0,K.tcy0);return{left:K.tcx0,top:K.tcy0,width:Xe.width,height:Xe.height,items:Xe.items}}function C(d0){for(var i0=d0.SIZ,v0=d0.components,K=i0.Csiz,s0=[],P0=0,h0=d0.tiles.length;P0>2),Ue=Le+Z0,Ve=Le+ae,M0[re++]=Ue<=0?0:Ue>=R0?255:Ue>>k0,M0[re++]=Le<=0?0:Le>=R0?255:Le>>k0,M0[re++]=Ve<=0?0:Ve>=R0?255:Ve>>k0;else for(te=0;te=R0?255:Ue>>k0,M0[re++]=Le<=0?0:Le>=R0?255:Le>>k0,M0[re++]=Ve<=0?0:Ve>=R0?255:Ve>>k0;if(Te)for(te=0,re=3;te=he?255:Me+E0>>k0}else for(a0=0;a0=R0?255:Xe+E0>>k0,re+=K}else{var F0=v0[a0].isSigned,Z=u0[a0].items;if(F0)for(re=a0,te=0,oe=Z.length;te>=1,s0>>=1,P0++}P0--,T0=this.levels[P0],T0.items[T0.index]=h0,this.currentLevel=P0,delete this.value},incrementValue:function(){var K=this.levels[this.currentLevel];K.items[K.index]++},nextLevel:function(){var K=this.currentLevel,s0=this.levels[K],P0=s0.items[s0.index];return K--,K<0?(this.value=P0,!1):(this.currentLevel=K,s0=this.levels[K],s0.items[s0.index]=P0,!0)}},i0}(),O0=function(){function i0(v0,K){var s0=rs(Math.max(v0,K))+1;this.levels=[];for(var P0=0;P0>=1,s0>>=1,h0++}this.currentLevel=this.levels.length-1,this.minValue=this.levels[this.currentLevel].items[0]},incrementValue:function(){var K=this.levels[this.currentLevel];K.items[K.index]=K.items[K.index]+1,K.items[K.index]>this.minValue&&(this.minValue=K.items[K.index])},nextLevel:function(){var K=this.currentLevel;if(K--,K<0)return!1;this.currentLevel=K;var s0=this.levels[K];return s0.items[s0.index]this.minValue&&(this.minValue=s0.items[s0.index]),!0},isLeaf:function(){return this.currentLevel===0},isAboveThreshold:function(){var K=this.currentLevel,s0=this.levels[K];return s0.items[s0.index]>this.currentStopValue},isKnown:function(){var K=this.currentLevel,s0=this.levels[K];return s0.status[s0.index]>0},setKnown:function(){var K=this.currentLevel,s0=this.levels[K];s0.status[s0.index]=1}},i0}(),_0=function(){var i0=17,v0=18,K=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),s0=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),P0=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function h0(T0,u0,a0,D0,F0){this.width=T0,this.height=u0,this.contextLabelTable=a0==="HH"?P0:a0==="HL"?s0:K;var M0=T0*u0;this.neighborsSignificance=new Uint8Array(M0),this.coefficentsSign=new Uint8Array(M0),this.coefficentsMagnitude=F0>14?new Uint32Array(M0):F0>6?new Uint16Array(M0):new Uint8Array(M0),this.processingFlags=new Uint8Array(M0);var o0=new Uint8Array(M0);if(D0!==0)for(var k0=0;k00,E0=a0+10&&(R0=D0-M0,k0&&(F0[R0-1]+=16),E0&&(F0[R0+1]+=16),F0[R0]+=4),u0+1=D0)break;if(k0[ae]&=he,!(F0[ae]||!o0[ae])){var Le=R0[o0[ae]],Ve=u0.readBit(E0,Le);if(Ve){var Me=this.decodeSignBit(Ue,Ce,ae);M0[ae]=Me,F0[ae]=1,this.setNeighborsSignificance(Ue,Ce,ae),k0[ae]|=te}ee[ae]++,k0[ae]|=re}}},decodeSignBit:function(u0,a0,D0){var F0=this.width,M0=this.height,o0=this.coefficentsMagnitude,k0=this.coefficentsSign,E0,R0,ee,he,re,te;he=a0>0&&o0[D0-1]!==0,a0+10&&o0[D0-F0]!==0,u0+1=0?(re=9+E0,te=this.decoder.readBit(this.contexts,re)):(re=9-E0,te=this.decoder.readBit(this.contexts,re)^1),te},runMagnitudeRefinementPass:function(){for(var u0=this.decoder,a0=this.width,D0=this.height,F0=this.coefficentsMagnitude,M0=this.neighborsSignificance,o0=this.contexts,k0=this.bitsDecoded,E0=this.processingFlags,R0=1,ee=2,he=a0*D0,re=a0*4,te=0,oe;te>1;s0=s0|0;var T0,u0,a0,D0,F0=-1.586134342059924,M0=-.052980118572961,o0=.882911075530934,k0=.443506852043971,E0=1.230174104914001,R0=1/E0;for(T0=s0-3,u0=h0+4;u0--;T0+=2)K[T0]*=R0;for(T0=s0-2,a0=k0*K[T0-1],u0=h0+3;u0--&&(D0=k0*K[T0+1],K[T0]=E0*K[T0]-a0-D0,u0--);T0+=2)T0+=2,a0=k0*K[T0+1],K[T0]=E0*K[T0]-a0-D0;for(T0=s0-1,a0=o0*K[T0-1],u0=h0+2;u0--&&(D0=o0*K[T0+1],K[T0]-=a0+D0,u0--);T0+=2)T0+=2,a0=o0*K[T0+1],K[T0]-=a0+D0;for(T0=s0,a0=M0*K[T0-1],u0=h0+1;u0--&&(D0=M0*K[T0+1],K[T0]-=a0+D0,u0--);T0+=2)T0+=2,a0=M0*K[T0+1],K[T0]-=a0+D0;if(h0!==0)for(T0=s0+1,a0=F0*K[T0-1],u0=h0;u0--&&(D0=F0*K[T0+1],K[T0]-=a0+D0,u0--);T0+=2)T0+=2,a0=F0*K[T0+1],K[T0]-=a0+D0},i0}(),q0=function(){function i0(){l0.call(this)}return i0.prototype=Object.create(l0.prototype),i0.prototype.filter=function(K,s0,P0){var h0=P0>>1;s0=s0|0;var T0,u0;for(T0=s0,u0=h0+1;u0--;T0+=2)K[T0]-=K[T0-1]+K[T0+1]+2>>2;for(T0=s0+1,u0=h0;u0--;T0+=2)K[T0]+=K[T0-1]+K[T0+1]>>1},i0}();return A}(),vw=function(){var T=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];function A(P,F,M){this.data=P,this.bp=F,this.dataEnd=M,this.chigh=P[F],this.clow=0,this.byteIn(),this.chigh=this.chigh<<7&65535|this.clow>>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}return A.prototype={byteIn:function(){var F=this.data,M=this.bp;if(F[M]===255){var G=F[M+1];G>143?(this.clow+=65280,this.ct=8):(M++,this.clow+=F[M]<<9,this.ct=7,this.bp=M)}else M++,this.clow+=M65535&&(this.chigh+=this.clow>>16,this.clow&=65535)},readBit:function(F,M){var G=F[M]>>1,Q=F[M]&1,Y=T[G],X=Y.qe,J,m=this.a-X;if(this.chigh>15&1,this.clow=this.clow<<1&65535,this.ct--;while(!(m&32768));return this.a=m,F[M]=G<<1|Q,J}},A}(),j2=typeof window>"u"?Al:window;j2.PDFJS||(j2.PDFJS={});var h2=h2||{};h2.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var fC=h2.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};function Tw(p){h2.verbosity>=h2.VERBOSITY_LEVELS.infos&&console.log("Info: "+p)}function $1(p){h2.verbosity>=h2.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+p)}function ts(p){if(arguments.length>1){var T=["Error:"];T.push.apply(T,arguments),console.log.apply(console,T),p=[].join.call(arguments," ")}else console.log("Error: "+p);throw console.log(kw()),Cl.notify(ww.unknown),new Error(p)}function kw(){try{throw new Error}catch(p){return p.stack?p.stack.split(` +`).slice(2).join(` +`):""}}var ww=h2.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},Cl=h2.UnsupportedManager=function(){var T=[];return{listen:function(A){T.push(A)},notify:function(A){$1('Unsupported feature "'+A+'"');for(var P=0,F=T.length;PT;)T<<=1,A++;return A}function h1(p,T){return p[T]<<8|p[T+1]}function e1(p,T){return(p[T]<<24|p[T+1]<<16|p[T+2]<<8|p[T+3])>>>0}function Iw(){var p=new Uint8Array(2);p[0]=1;var T=new Uint16Array(p.buffer);return T[0]===1}Object.defineProperty(h2,"isLittleEndian",{configurable:!0,get:function(){return ns(h2,"isLittleEndian",Iw())}});function Pw(){var p=document.createElement("canvas");p.width=p.height=1;var T=p.getContext("2d"),A=T.createImageData(1,1);return typeof A.data.buffer<"u"}Object.defineProperty(h2,"hasCanvasTypedArrays",{configurable:!0,get:function(){return ns(h2,"hasCanvasTypedArrays",Pw())}});var SC=function(){function T(M,G){this.buffer=M,this.byteLength=M.length,this.length=G===void 0?this.byteLength>>2:G,F(this.length)}T.prototype=Object.create(null);var A=0;function P(M){return{get:function(){var G=this.buffer,Q=M<<2;return(G[Q]|G[Q+1]<<8|G[Q+2]<<16|G[Q+3]<<24)>>>0},set:function(G){var Q=this.buffer,Y=M<<2;Q[Y]=G&255,Q[Y+1]=G>>8&255,Q[Y+2]=G>>16&255,Q[Y+3]=G>>>24&255}}}function F(M){for(;AF[2]&&(M[0]=F[2],M[2]=F[0]),F[1]>F[3]&&(M[1]=F[3],M[3]=F[1]),M},T.intersect=function(F,M){function G(J,m){return J-m}var Q=[F[0],F[2],M[0],M[2]].sort(G),Y=[F[1],F[3],M[1],M[3]].sort(G),X=[];if(F=T.normalizeRect(F),M=T.normalizeRect(M),Q[0]===F[0]&&Q[1]===M[0]||Q[0]===M[0]&&Q[1]===F[0])X[0]=Q[1],X[2]=Q[2];else return!1;if(Y[0]===F[1]&&Y[1]===M[1]||Y[0]===M[1]&&Y[1]===F[1])X[1]=Y[1],X[3]=Y[2];else return!1;return X},T.sign=function(F){return F<0?-1:1},T.appendToArray=function(F,M){Array.prototype.push.apply(F,M)},T.prependToArray=function(F,M){Array.prototype.unshift.apply(F,M)},T.extendObj=function(F,M){for(var G in M)F[G]=M[G]},T.getInheritableProperty=function(F,M){for(;F&&!F.has(M);)F=F.get("Parent");return F?F.get(M):null},T.inherit=function(F,M,G){F.prototype=Object.create(M.prototype),F.prototype.constructor=F;for(var Q in G)F.prototype[Q]=G[Q]},T.loadScript=function(F,M){var G=document.createElement("script"),Q=!1;G.setAttribute("src",F),M&&(G.onload=function(){Q||M(),Q=!0}),document.getElementsByTagName("head")[0].appendChild(G)},T}(),hC=h2.PageViewport=function(){function T(A,P,F,M,G,Q){this.viewBox=A,this.scale=P,this.rotation=F,this.offsetX=M,this.offsetY=G;var Y=(A[2]+A[0])/2,X=(A[3]+A[1])/2,J,m,R,e;switch(F=F%360,F=F<0?F+360:F,F){case 180:J=-1,m=0,R=0,e=1;break;case 90:J=0,m=1,R=1,e=0;break;case 270:J=0,m=-1,R=-1,e=0;break;default:J=1,m=0,R=0,e=-1;break}Q&&(R=-R,e=-e);var z,b,U0,V0;J===0?(z=Math.abs(X-A[1])*P+M,b=Math.abs(Y-A[0])*P+G,U0=Math.abs(A[3]-A[1])*P,V0=Math.abs(A[2]-A[0])*P):(z=Math.abs(Y-A[0])*P+M,b=Math.abs(X-A[1])*P+G,U0=Math.abs(A[2]-A[0])*P,V0=Math.abs(A[3]-A[1])*P),this.transform=[J*P,m*P,R*P,e*P,z-J*P*Y-R*P*X,b-m*P*Y-e*P*X],this.width=U0,this.height=V0,this.fontScale=P}return T.prototype={clone:function(P){P=P||{};var F="scale"in P?P.scale:this.scale,M="rotation"in P?P.rotation:this.rotation;return new T(this.viewBox.slice(),F,M,this.offsetX,this.offsetY,P.dontFlip)},convertToViewportPoint:function(P,F){return mt.applyTransform([P,F],this.transform)},convertToViewportRectangle:function(P){var F=mt.applyTransform([P[0],P[1]],this.transform),M=mt.applyTransform([P[2],P[3]],this.transform);return[F[0],F[1],M[0],M[1]]},convertToPdfPoint:function(P,F){return mt.applyInverseTransform([P,F],this.transform)}},T}();function yl(){var p={};return p.promise=new Promise(function(T,A){p.resolve=T,p.reject=A}),p}h2.createPromiseCapability=yl;(function(){if(j2.Promise){typeof j2.Promise.all!="function"&&(j2.Promise.all=function(Q){var Y=0,X=[],J,m,R=new j2.Promise(function(e,z){J=e,m=z});return Q.forEach(function(e,z){Y++,e.then(function(b){X[z]=b,Y--,Y===0&&J(X)},m)}),Y===0&&J(X),R}),typeof j2.Promise.resolve!="function"&&(j2.Promise.resolve=function(Q){return new j2.Promise(function(Y){Y(Q)})}),typeof j2.Promise.reject!="function"&&(j2.Promise.reject=function(Q){return new j2.Promise(function(Y,X){X(Q)})}),typeof j2.Promise.prototype.catch2!="function"&&(j2.Promise.prototype.catch2=function(Q){return j2.Promise.prototype.then(void 0,Q)});return}var T=0,A=1,P=2,F=500,M={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(Y){Y._status!==T&&(this.handlers=this.handlers.concat(Y._handlers),Y._handlers=[],!this.running&&(this.running=!0,setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var Y=1,X=Date.now()+Y;this.handlers.length>0;){var J=this.handlers.shift(),m=J.thisPromise._status,R=J.thisPromise._value;try{m===A?typeof J.onResolve=="function"&&(R=J.onResolve(R)):typeof J.onReject=="function"&&(R=J.onReject(R),m=A,J.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(J.thisPromise))}catch(e){m=P,R=e}if(J.nextPromise._updateStatus(m,R),Date.now()>=X)break}if(this.handlers.length>0){setTimeout(this.runHandlers.bind(this),0);return}this.running=!1},addUnhandledRejection:function(Y){this.unhandledRejections.push({promise:Y,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(Y){Y._unhandledRejection=!1;for(var X=0;XF){var m=this.unhandledRejections[J].promise._value,R="Unhandled rejection: "+m;m.stack&&(R+=` +`+m.stack),$1(R),this.unhandledRejections.splice(J),J--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),F))}};function G(Q){this._status=T,this._handlers=[];try{Q.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(Y){this._reject(Y)}}G.all=function(Y){var X,J,m=new G(function(f0,C){X=f0,J=C}),R=Y.length,e=[];if(R===0)return X(e),m;function z(f0){m._status!==P&&(e=[],J(f0))}for(var b=0,U0=Y.length;bY&&(Y=X.length)}for(F=0,M=G.length;F>2,e=(X&3)<<4|J>>4,z=Q+1>6:64,b=Q+2{var CharLS=function(Module){Module=Module||{};var Module;Module||(Module=(typeof CharLS<"u"?CharLS:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof require=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(T){process.stdout.write(T+` +`)}),Module.printErr||(Module.printErr=function(T){process.stderr.write(T+` +`)});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(T,A){T=nodePath.normalize(T);var P=nodeFS.readFileSync(T);return!P&&T!=nodePath.resolve(T)&&(T=path.join(__dirname,"..","src",T),P=nodeFS.readFileSync(T)),P&&!A&&(P=P.toString()),P},Module.readBinary=function(T){var A=Module.read(T,!0);return A.buffer||(A=new Uint8Array(A)),assert(A.buffer),A},Module.load=function(T){globalEval(read(T))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),process.on("uncaughtException",function(p){if(!(p instanceof ExitStatus))throw p}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(T){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(T));var A=read(T,"binary");return assert(typeof A=="object"),A},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments);else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(T){var A=new XMLHttpRequest;return A.open("GET",T,!1),A.send(null),A.responseText},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(T){console.log(T)}),Module.printErr||(Module.printErr=function(T){console.log(T)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(p){dump(p)}:function(p){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(p){document.title=p})}else throw"Unknown runtime environment. Where are we?";function globalEval(p){eval.call(null,p)}!Module.load&&Module.read&&(Module.load=function(T){globalEval(Module.read(T))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(p){tempRet0=p},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(p){STACKTOP=p},getNativeTypeSize:function(p){switch(p){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(p[p.length-1]==="*")return Runtime.QUANTUM_SIZE;if(p[0]==="i"){var T=parseInt(p.substr(1));return assert(T%8===0),T/8}else return 0}}},getNativeFieldSize:function(p){return Math.max(Runtime.getNativeTypeSize(p),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(p,T){return T==="double"||T==="i64"?p&7&&(assert((p&7)===4),p+=4):assert((p&3)===0),p},getAlignSize:function(p,T,A){return!A&&(p=="i64"||p=="double")?8:p?Math.min(T||(p?Runtime.getNativeFieldSize(p):0),Runtime.QUANTUM_SIZE):Math.min(T,8)},dynCall:function(p,T,A){return A&&A.length?(A.splice||(A=Array.prototype.slice.call(A)),A.splice(0,0,T),Module["dynCall_"+p].apply(null,A)):Module["dynCall_"+p].call(null,T)},functionPointers:[],addFunction:function(p){for(var T=0;T=TOTAL_MEMORY){var A=enlargeMemory();if(!A)return DYNAMICTOP=T,0}return T},alignMemory:function(p,T){var A=p=Math.ceil(p/(T||16))*(T||16);return A},makeBigInt:function(p,T,A){var P=A?+(p>>>0)+ +(T>>>0)*4294967296:+(p>>>0)+ +(T|0)*4294967296;return P},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(p,T){p||abort("Assertion failed: "+T)}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(p){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(p){var T=Runtime.stackAlloc(p.length);return writeArrayToMemory(p,T),T},stringToC:function(p){var T=0;return p!=null&&p!==0&&(T=Runtime.stackAlloc((p.length<<2)+1),writeStringToMemory(p,T)),T}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(T,A,P,F,M){var G=getCFunc(T),Q=[],Y=0;if(F)for(var X=0;X>0]=T;break;case"i8":HEAP8[p>>0]=T;break;case"i16":HEAP16[p>>1]=T;break;case"i32":HEAP32[p>>2]=T;break;case"i64":tempI64=[T>>>0,(tempDouble=T,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[p>>2]=tempI64[0],HEAP32[p+4>>2]=tempI64[1];break;case"float":HEAPF32[p>>2]=T;break;case"double":HEAPF64[p>>3]=T;break;default:abort("invalid type for setValue: "+A)}}Module.setValue=setValue;function getValue(p,T,A){switch(T=T||"i8",T.charAt(T.length-1)==="*"&&(T="i32"),T){case"i1":return HEAP8[p>>0];case"i8":return HEAP8[p>>0];case"i16":return HEAP16[p>>1];case"i32":return HEAP32[p>>2];case"i64":return HEAP32[p>>2];case"float":return HEAPF32[p>>2];case"double":return HEAPF64[p>>3];default:abort("invalid type for setValue: "+T)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(p,T,A,P){var F,M;typeof p=="number"?(F=!0,M=p):(F=!1,M=p.length);var G=typeof T=="string"?T:null,Q;if(A==ALLOC_NONE?Q=P:Q=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][A===void 0?ALLOC_STATIC:A](Math.max(M,G?1:T.length)),F){var P=Q,Y;for(assert((Q&3)==0),Y=Q+(M&-4);P>2]=0;for(Y=Q+M;P>0]=0;return Q}if(G==="i8")return p.subarray||p.slice?HEAPU8.set(p,Q):HEAPU8.set(new Uint8Array(p),Q),Q;for(var X=0,J,m,R;X>0],A|=P,!(P==0&&!T||(F++,T&&F==T)););T||(T=F);var M="";if(A<128){for(var G=1024,Q;T>0;)Q=String.fromCharCode.apply(String,HEAPU8.subarray(p,p+Math.min(T,G))),M=M?M+Q:Q,p+=G,T-=G;return M}return Module.UTF8ToString(p)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(p){for(var T="";;){var A=HEAP8[p++>>0];if(!A)return T;T+=String.fromCharCode(A)}}Module.AsciiToString=AsciiToString;function stringToAscii(p,T){return writeAsciiToMemory(p,T,!1)}Module.stringToAscii=stringToAscii;function UTF8ArrayToString(p,T){for(var A,P,F,M,G,Q,Y="";;){if(A=p[T++],!A)return Y;if(!(A&128)){Y+=String.fromCharCode(A);continue}if(P=p[T++]&63,(A&224)==192){Y+=String.fromCharCode((A&31)<<6|P);continue}if(F=p[T++]&63,(A&240)==224?A=(A&15)<<12|P<<6|F:(M=p[T++]&63,(A&248)==240?A=(A&7)<<18|P<<12|F<<6|M:(G=p[T++]&63,(A&252)==248?A=(A&3)<<24|P<<18|F<<12|M<<6|G:(Q=p[T++]&63,A=(A&1)<<30|P<<24|F<<18|M<<12|G<<6|Q))),A<65536)Y+=String.fromCharCode(A);else{var X=A-65536;Y+=String.fromCharCode(55296|X>>10,56320|X&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(p){return UTF8ArrayToString(HEAPU8,p)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(p,T,A,P){if(!(P>0))return 0;for(var F=A,M=A+P-1,G=0;G=55296&&Q<=57343&&(Q=65536+((Q&1023)<<10)|p.charCodeAt(++G)&1023),Q<=127){if(A>=M)break;T[A++]=Q}else if(Q<=2047){if(A+1>=M)break;T[A++]=192|Q>>6,T[A++]=128|Q&63}else if(Q<=65535){if(A+2>=M)break;T[A++]=224|Q>>12,T[A++]=128|Q>>6&63,T[A++]=128|Q&63}else if(Q<=2097151){if(A+3>=M)break;T[A++]=240|Q>>18,T[A++]=128|Q>>12&63,T[A++]=128|Q>>6&63,T[A++]=128|Q&63}else if(Q<=67108863){if(A+4>=M)break;T[A++]=248|Q>>24,T[A++]=128|Q>>18&63,T[A++]=128|Q>>12&63,T[A++]=128|Q>>6&63,T[A++]=128|Q&63}else{if(A+5>=M)break;T[A++]=252|Q>>30,T[A++]=128|Q>>24&63,T[A++]=128|Q>>18&63,T[A++]=128|Q>>12&63,T[A++]=128|Q>>6&63,T[A++]=128|Q&63}}return T[A]=0,A-F}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(p,T,A){return stringToUTF8Array(p,HEAPU8,T,A)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(p){for(var T=0,A=0;A=55296&&P<=57343&&(P=65536+((P&1023)<<10)|p.charCodeAt(++A)&1023),P<=127?++T:P<=2047?T+=2:P<=65535?T+=3:P<=2097151?T+=4:P<=67108863?T+=5:T+=6}return T}Module.lengthBytesUTF8=lengthBytesUTF8;function UTF16ToString(p){for(var T=0,A="";;){var P=HEAP16[p+T*2>>1];if(P==0)return A;++T,A+=String.fromCharCode(P)}}Module.UTF16ToString=UTF16ToString;function stringToUTF16(p,T,A){if(A===void 0&&(A=2147483647),A<2)return 0;A-=2;for(var P=T,F=A>1]=G,T+=2}return HEAP16[T>>1]=0,T-P}Module.stringToUTF16=stringToUTF16;function lengthBytesUTF16(p){return p.length*2}Module.lengthBytesUTF16=lengthBytesUTF16;function UTF32ToString(p){for(var T=0,A="";;){var P=HEAP32[p+T*4>>2];if(P==0)return A;if(++T,P>=65536){var F=P-65536;A+=String.fromCharCode(55296|F>>10,56320|F&1023)}else A+=String.fromCharCode(P)}}Module.UTF32ToString=UTF32ToString;function stringToUTF32(p,T,A){if(A===void 0&&(A=2147483647),A<4)return 0;for(var P=T,F=P+A-4,M=0;M=55296&&G<=57343){var Q=p.charCodeAt(++M);G=65536+((G&1023)<<10)|Q&1023}if(HEAP32[T>>2]=G,T+=4,T+4>F)break}return HEAP32[T>>2]=0,T-P}Module.stringToUTF32=stringToUTF32;function lengthBytesUTF32(p){for(var T=0,A=0;A=55296&&P<=57343&&++A,T+=4}return T}Module.lengthBytesUTF32=lengthBytesUTF32;function demangle(p){var T=!!Module.___cxa_demangle;if(T)try{var A=_malloc(p.length);writeStringToMemory(p.substr(1),A);var P=_malloc(4),F=Module.___cxa_demangle(A,0,0,P);if(getValue(P,"i32")===0&&F)return Pointer_stringify(F)}catch{}finally{A&&_free(A),P&&_free(P),F&&_free(F)}var M=3,G={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},Q=[],Y=!0;function X(e){e&&Module.print(e),Module.print(p);for(var z="",b=0;b"}else U0=f0;e:for(;M0;){var _0=p[M++];if(_0 in G)V0.push(G[_0]);else switch(_0){case"P":V0.push(m(!0,1,!0)[0]+"*");break;case"R":V0.push(m(!0,1,!0)[0]+"&");break;case"L":{M++;var l0=p.indexOf("E",M),C=l0-M;V0.push(p.substr(M,C)),M+=C+2;break}case"A":{var C=parseInt(p.substr(M));if(M+=C.toString().length,p[M]!=="_")throw"?";M++,V0.push(m(!0,1,!0)[0]+" ["+C+"]");break}case"E":break e;default:U0+="?"+_0;break e}}return!b&&V0.length===1&&V0[0]==="void"&&(V0=[]),e?(U0&&V0.push(U0+"?"),V0):U0+t0()}var R=p;try{if(p=="Object._main"||p=="_main")return"main()";if(typeof p=="number"&&(p=Pointer_stringify(p)),p[0]!=="_"||p[1]!=="_"||p[2]!=="Z")return p;switch(p[3]){case"n":return"operator new()";case"d":return"operator delete()"}R=m()}catch{R+="?"}return R.indexOf("?")>=0&&!T&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),R}function demangleAll(p){return p.replace(/__Z[\w\d_]+/g,function(T){var A=demangle(T);return T===A?T:T+" ["+A+"]"})}function jsStackTrace(){var p=new Error;if(!p.stack){try{throw new Error(0)}catch(T){p=T}if(!p.stack)return"(no stack trace available)"}return p.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.stackTrace=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(p){return p%4096>0&&(p+=4096-p%4096),p}var HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var p=TOTAL_MEMORY,T=Math.pow(2,31);if(DYNAMICTOP>=T)return!1;for(;TOTAL_MEMORY<=DYNAMICTOP;)if(TOTAL_MEMORY=T)return!1;try{if(ArrayBuffer.transfer)buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY);else{var P=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch{return!1}var F=_emscripten_replace_memory(buffer);return F?(Module.buffer=buffer,Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer),ArrayBuffer.transfer||HEAP8.set(P),!0):!1}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get),byteLength(new ArrayBuffer(4))}catch(p){byteLength=function(T){return T.byteLength}}for(var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216,totalMemory=64*1024;totalMemory0;){var T=p.shift();if(typeof T=="function"){T();continue}var A=T.func;typeof A=="number"?T.arg===void 0?Runtime.dynCall("v",A):Runtime.dynCall("vi",A,[T.arg]):A(T.arg===void 0?null:T.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(p){__ATPRERUN__.unshift(p)}Module.addOnPreRun=addOnPreRun;function addOnInit(p){__ATINIT__.unshift(p)}Module.addOnInit=addOnInit;function addOnPreMain(p){__ATMAIN__.unshift(p)}Module.addOnPreMain=addOnPreMain;function addOnExit(p){__ATEXIT__.unshift(p)}Module.addOnExit=addOnExit;function addOnPostRun(p){__ATPOSTRUN__.unshift(p)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(p,T,A){var P=A>0?A:lengthBytesUTF8(p)+1,F=new Array(P),M=stringToUTF8Array(p,F,0,F.length);return T&&(F.length=M),F}Module.intArrayFromString=intArrayFromString;function intArrayToString(p){for(var T=[],A=0;A255&&(P&=255),T.push(String.fromCharCode(P))}return T.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(p,T,A){for(var P=intArrayFromString(p,A),F=0;F>0]=M,F=F+1}}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(p,T){for(var A=0;A>0]=p[A]}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(p,T,A){for(var P=0;P>0]=p.charCodeAt(P);A||(HEAP8[T>>0]=0)}Module.writeAsciiToMemory=writeAsciiToMemory;function unSign(p,T,A){return p>=0?p:T<=32?2*Math.abs(1<=P&&(T<=32||p>P)&&(p=-2*P+p),p}(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function p(T,A){var P=T>>>16,F=T&65535,M=A>>>16,G=A&65535;return F*G+(P*G+F*M<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(p){p=p>>>0;for(var T=0;T<32;T++)if(p&1<<31-T)return T;return 32}),Math.clz32=Math.clz32;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,Math_clz32=Math.clz32,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(p){return p}function addRunDependency(p){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(p){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var T=dependenciesFulfilled;dependenciesFulfilled=null,T()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null,ASM_CONSTS=[];STATIC_BASE=8,STATICTOP=STATIC_BASE+59744,__ATINIT__.push({func:function(){__GLOBAL__I_000101()}},{func:function(){__GLOBAL__sub_I_jpegls_cpp()}},{func:function(){__GLOBAL__sub_I_iostream_cpp()}}),allocate([0,0,0,0,0,0,0,0,84,144,0,0,31,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,237,191,0,0,48,0,0,0,0,0,0,0,44,144,0,0,41,192,0,0,84,144,0,0,55,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,115,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,192,0,0,152,3,0,0,0,0,0,0,84,144,0,0,241,192,0,0,216,3,0,0,0,0,0,0,84,144,0,0,55,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,95,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,135,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,216,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,241,193,0,0,48,0,0,0,0,0,0,0,44,144,0,0,13,194,0,0,84,144,0,0,80,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,44,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,139,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,179,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,219,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,3,195,0,0,48,0,0,0,0,0,0,0,84,144,0,0,103,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,157,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,211,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,8,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,71,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,138,196,0,0,160,1,0,0,0,0,0,0,44,144,0,0,120,196,0,0,84,144,0,0,187,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,246,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,49,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,103,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,157,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,210,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,17,198,0,0,160,1,0,0,0,0,0,0,84,144,0,0,86,198,0,0,72,3,0,0,0,0,0,0,84,144,0,0,162,198,0,0,56,2,0,0,0,0,0,0,44,144,0,0,182,198,0,0,84,144,0,0,196,198,0,0,56,2,0,0,0,0,0,0,84,144,0,0,112,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,125,199,0,0,84,144,0,0,138,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,156,199,0,0,84,144,0,0,169,199,0,0,96,2,0,0,0,0,0,0,84,144,0,0,181,199,0,0,120,2,0,0,0,0,0,0,84,144,0,0,214,199,0,0,144,2,0,0,0,0,0,0,84,144,0,0,28,200,0,0,144,2,0,0,0,0,0,0,84,144,0,0,248,199,0,0,176,2,0,0,0,0,0,0,84,144,0,0,62,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,99,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,182,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,245,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,13,222,0,0,152,3,0,0,0,0,0,0,84,144,0,0,38,222,0,0,152,3,0,0,0,0,0,0,44,144,0,0,62,222,0,0,84,144,0,0,87,222,0,0,104,2,0,0,0,0,0,0,44,144,0,0,110,222,0,0,84,144,0,0,135,222,0,0,72,3,0,0,0,0,0,0,84,144,0,0,161,222,0,0,56,3,0,0,0,0,0,0,44,144,0,0,187,222,0,0,84,144,0,0,205,222,0,0,112,3,0,0,0,0,0,0,84,144,0,0,247,222,0,0,112,3,0,0,0,0,0,0,44,144,0,0,33,223,0,0,44,144,0,0,82,223,0,0,124,144,0,0,131,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,178,223,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,124,144,0,0,225,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,16,224,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,84,144,0,0,63,224,0,0,80,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,144,0,0,187,224,0,0,48,3,0,0,0,0,0,0,124,144,0,0,209,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,124,144,0,0,227,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,5,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,40,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,75,225,0,0,144,4,0,0,0,0,0,0,84,144,0,0,109,225,0,0,144,4,0,0,0,0,0,0,124,144,0,0,144,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,178,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,200,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,220,225,0,0,32,4,0,0,0,0,0,0,124,144,0,0,240,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,84,144,0,0,2,226,0,0,32,4,0,0,0,0,0,0,84,144,0,0,23,226,0,0,32,4,0,0,0,0,0,0,124,144,0,0,44,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,80,10,0,0,0,0,0,0,124,144,0,0,112,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,104,10,0,0,0,0,0,0,124,144,0,0,180,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,128,10,0,0,0,0,0,0,124,144,0,0,248,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,152,10,0,0,0,0,0,0,124,144,0,0,60,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,184,10,0,0,0,8,0,0,124,144,0,0,129,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,192,10,0,0,0,8,0,0,124,144,0,0,198,227,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,11,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,80,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,108,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,136,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,164,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,192,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,216,10,0,0,0,0,0,0,124,144,0,0,6,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,224,10,0,0,0,0,0,0,124,144,0,0,76,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,232,10,0,0,0,0,0,0,124,144,0,0,146,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,240,10,0,0,0,0,0,0,124,144,0,0,216,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,124,144,0,0,237,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,144,0,0,73,233,0,0,44,144,0,0,50,233,0,0,124,144,0,0,28,233,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,237,232,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,215,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,124,144,0,0,168,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,44,144,0,0,149,232,0,0,44,144,0,0,115,232,0,0,44,144,0,0,81,232,0,0,44,144,0,0,60,232,0,0,44,144,0,0,39,232,0,0,44,144,0,0,14,232,0,0,44,144,0,0,245,231,0,0,44,144,0,0,220,231,0,0,44,144,0,0,195,231,0,0,44,144,0,0,171,231,0,0,44,144,0,0,190,232,0,0,44,144,0,0,3,233],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE),allocate([156,143,0,0,0,0,0,0,8,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,248,1,0,0,3,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,1,0,0,5,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,7,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,200,1,0,0,9,0,0,0,10,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,184,1,0,0,11,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,168,1,0,0,13,0,0,0,14,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,144,1,0,0,15,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,128,1,0,0,17,0,0,0,18,0,0,0,9,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,112,1,0,0,19,0,0,0,20,0,0,0,10,0,0,0,2,0,0,0,10,0,0,0,0,0,0,0,96,1,0,0,21,0,0,0,22,0,0,0,11,0,0,0,3,0,0,0,11,0,0,0,0,0,0,0,80,1,0,0,23,0,0,0,24,0,0,0,12,0,0,0,4,0,0,0,12,0,0,0,0,0,0,0,64,1,0,0,25,0,0,0,26,0,0,0,13,0,0,0,5,0,0,0,13,0,0,0,0,0,0,0,240,0,0,0,27,0,0,0,28,0,0,0,14,0,0,0,6,0,0,0,14,0,0,0,0,0,0,0,224,0,0,0,29,0,0,0,30,0,0,0,15,0,0,0,7,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,31,0,0,0,32,0,0,0,16,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,200,0,0,0,33,0,0,0,34,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,184,0,0,0,33,0,0,0,35,0,0,0,3,0,0,0,4,0,0,0,56,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,200,255,255,255,200,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,56,0,0,0,0,0,0,0,104,0,0,0,40,0,0,0,41,0,0,0,200,255,255,255,200,255,255,255,104,0,0,0,42,0,0,0,43,0,0,0,0,0,0,0,88,0,0,0,44,0,0,0,45,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,17,0,0,0,3,0,0,0,18,0,0,0,104,141,0,0,64,141,0,0,84,141,0,0,124,141,0,0,0,0,0,0,32,0,0,0,46,0,0,0,47,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,56,0,0,0,48,0,0,0,49,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,72,0,0,0,50,0,0,0,51,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,120,0,0,0,52,0,0,0,53,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,136,0,0,0,54,0,0,0,55,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,152,0,0,0,56,0,0,0,57,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,168,0,0,0,58,0,0,0,59,0,0,0,18,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,216,0,0,0,60,0,0,0,61,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,62,0,0,0,63,0,0,0,20,0,0,0,21,0,0,0,0,0,0,0,16,1,0,0,64,0,0,0,65,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,32,1,0,0,66,0,0,0,67,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,48,1,0,0,68,0,0,0,69,0,0,0,26,0,0,0,27,0,0,0,0,0,0,0,160,1,0,0,70,0,0,0,71,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,24,2,0,0,72,0,0,0,73,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,0,0,0,0,40,2,0,0,74,0,0,0,75,0,0,0,18,0,0,0,0,0,0,0,64,2,0,0,76,0,0,0,77,0,0,0,19,0,0,0,2,0,0,0,0,0,0,0,80,2,0,0,78,0,0,0,79,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,80,0,0,0,81,0,0,0,7,0,0,0,0,0,0,0,128,2,0,0,82,0,0,0,83,0,0,0,8,0,0,0,0,0,0,0,160,2,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,2,0,0,0,9,0,0,0,28,0,0,0,0,0,0,0,208,2,0,0,84,0,0,0,88,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,3,0,0,0,10,0,0,0,29,0,0,0,0,0,0,0,224,2,0,0,84,0,0,0,89,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,4,0,0,0,11,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,1,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,88,146,0,0,200,146,0,0,56,147,0,0,56,147,0,0,120,187,0,0,168,155,0,0,168,149,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,159,219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,9,0,0,0,151,215,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,0,0,0,143,211,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+35640),allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+39844),allocate([240,2,0,0,90,0,0,0,91,0,0,0,20,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,14,0,0,0,20,0,0,0,0,0,0,0,0,3,0,0,90,0,0,0,92,0,0,0,21,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,22,0,0,0,0,0,0,0,16,3,0,0,93,0,0,0,94,0,0,0,22,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,17,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,32,3,0,0,93,0,0,0,95,0,0,0,23,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,19,0,0,0,20,0,0,0,25,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,56,3,0,0,96,0,0,0,97,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,3,0,0,93,0,0,0,98,0,0,0,17,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,160,3,0,0,90,0,0,0,99,0,0,0,24,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,15,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,168,3,0,0,100,0,0,0,101,0,0,0,248,255,255,255,248,255,255,255,168,3,0,0,102,0,0,0,103,0,0,0,8,0,0,0,0,0,0,0,192,3,0,0,104,0,0,0,105,0,0,0,248,255,255,255,248,255,255,255,192,3,0,0,106,0,0,0,107,0,0,0,4,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,252,255,255,255,252,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,240,3,0,0,108,0,0,0,109,0,0,0,252,255,255,255,252,255,255,255,240,3,0,0,110,0,0,0,111,0,0,0,0,0,0,0,96,3,0,0,112,0,0,0,113,0,0,0,7,0,0,0,0,0,0,0,112,3,0,0,114,0,0,0,115,0,0,0,0,0,0,0,8,4,0,0,72,0,0,0,116,0,0,0,21,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,117,0,0,0,118,0,0,0,119,0,0,0,1,0,0,0,33,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,0,0,120,0,0,0,121,0,0,0,119,0,0,0,2,0,0,0,34,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,5,0,0,122,0,0,0,123,0,0,0,119,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,5,0,0,124,0,0,0,125,0,0,0,119,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,5,0,0,126,0,0,0,127,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,5,0,0,128,0,0,0,129,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,130,0,0,0,131,0,0,0,119,0,0,0,22,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,224,5,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,6,0,0,132,0,0,0,133,0,0,0,119,0,0,0,30,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,8,6,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,134,0,0,0,135,0,0,0,119,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,136,0,0,0,137,0,0,0,119,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,138,0,0,0,139,0,0,0,119,0,0,0,38,0,0,0,39,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,40,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,140,0,0,0,141,0,0,0,119,0,0,0,41,0,0,0,42,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,43,0,0,0,35,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,142,0,0,0,143,0,0,0,119,0,0,0,44,0,0,0,45,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,46,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,144,0,0,0,145,0,0,0,119,0,0,0,47,0,0,0,48,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,49,0,0,0,47,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,146,0,0,0,147,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,0,0,148,0,0,0,149,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,7,0,0,150,0,0,0,151,0,0,0,119,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,7,0,0,152,0,0,0,153,0,0,0,119,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,7,0,0,154,0,0,0,155,0,0,0,119,0,0,0,19,0,0,0,7,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,7,0,0,156,0,0,0,157,0,0,0,119,0,0,0,20,0,0,0,8,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,4,0,0,158,0,0,0,159,0,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,5,0,0,160,0,0,0,161,0,0,0,119,0,0,0,27,0,0,0,21,0,0,0,28,0,0,0,22,0,0,0,29,0,0,0,9,0,0,0,23,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,4,0,0,162,0,0,0,163,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,50,0,0,0,51,0,0,0,13,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,5,0,0,164,0,0,0,165,0,0,0,119,0,0,0,53,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,0,0,0,0,80,5,0,0,166,0,0,0,167,0,0,0,119,0,0,0,55,0,0,0,56,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,0,0,0,0,32,4,0,0,168,0,0,0,169,0,0,0,119,0,0,0,0,0,0,0,48,4,0,0,168,0,0,0,170,0,0,0,119,0,0,0,24,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,30,0,0,0,25,0,0,0,31,0,0,0,26,0,0,0,32,0,0,0,13,0,0,0,27,0,0,0,14,0,0,0,0,0,0,0,80,4,0,0,168,0,0,0,171,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,57,0,0,0,58,0,0,0,16,0,0,0,59,0,0,0,0,0,0,0,112,4,0,0,168,0,0,0,172,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,60,0,0,0,61,0,0,0,18,0,0,0,62,0,0,0,0,0,0,0,144,4,0,0,168,0,0,0,173,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,176,4,0,0,168,0,0,0,174,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,192,4,0,0,168,0,0,0,175,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,119,83,116,114,101,97,109,32,111,114,32,114,97,119,68,97,116,97,32,110,101,101,100,115,32,116,111,32,114,101,102,101,114,101,110,99,101,32,116,111,32,115,111,109,101,116,104,105,110,103,0,119,105,100,116,104,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,104,101,105,103,104,116,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,98,105,116,115,112,101,114,115,97,109,112,108,101,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,50,44,32,49,54,93,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,110,101,101,100,115,32,116,111,32,98,101,32,115,101,116,32,116,111,32,97,32,118,97,108,117,101,32,111,102,32,123,78,111,110,101,44,32,83,97,109,112,108,101,44,32,76,105,110,101,125,0,99,111,109,112,111,110,101,110,116,115,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,50,53,53,93,0,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,119,105,116,104,32,116,104,101,32,111,116,104,101,114,32,112,97,114,97,109,101,116,101,114,115,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,110,111,116,32,98,101,32,115,101,116,32,116,111,32,83,97,109,112,108,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,52,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,32,111,110,108,121,32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,49,0,67,111,108,111,114,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,0,78,111,32,109,111,114,101,32,98,121,116,101,115,32,97,118,97,105,108,97,98,108,101,32,105,110,32,105,110,112,117,116,32,98,117,102,102,101,114,44,32,115,116,105,108,108,32,110,101,101,100,101,100,105,110,103,32,0,65,110,32,111,100,100,32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,40,0,41,32,99,97,110,110,111,116,32,98,101,32,115,119,97,112,112,101,100,46,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,69,0,49,49,80,114,111,99,101,115,115,76,105,110,101,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,105,110,103,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,57,98,97,115,105,99,95,111,115,116,114,105,110,103,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,116,69,69,0,50,50,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,83,116,114,101,97,109,0,50,53,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,67,111,109,112,111,110,101,110,116,0,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,104,69,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,67,104,97,114,76,83,32,101,114,114,111,114,0,99,104,97,114,108,115,0,49,53,99,104,97,114,108,115,95,99,97,116,101,103,111,114,121,0,112,97,114,97,109,115,46,88,116,104,117,109,98,110,97,105,108,32,105,115,32,62,32,48,32,98,117,116,32,112,97,114,97,109,115,46,116,104,117,109,98,110,97,105,108,32,61,61,32,110,117,108,108,95,112,116,114,0,49,55,74,112,101,103,77,97,114,107,101,114,83,101,103,109,101,110,116,0,49,49,74,112,101,103,83,101,103,109,101,110,116,0,50,48,74,112,101,103,73,109,97,103,101,68,97,116,97,83,101,103,109,101,110,116,0,69,120,112,101,99,116,101,100,32,74,80,69,71,32,77,97,114,107,101,114,32,115,116,97,114,116,32,98,121,116,101,32,48,120,70,70,32,98,117,116,32,116,104,101,32,98,121,116,101,32,118,97,108,117,101,32,119,97,115,32,48,120,0,74,80,69,71,32,101,110,99,111,100,105,110,103,32,119,105,116,104,32,109,97,114,107,101,114,32,0,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,0,85,110,107,110,111,119,110,32,74,80,69,71,32,109,97,114,107,101,114,32,0,32,101,110,99,111,117,110,116,101,114,101,100,46,0,109,114,102,120,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,83,116,57,116,121,112,101,95,105,110,102,111,0,83,116,56,98,97,100,95,99,97,115,116,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42396),allocate([32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+52636),allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,58,32,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,105,111,115,116,114,101,97,109,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+56215);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(p){HEAP8[tempDoublePtr]=HEAP8[p],HEAP8[tempDoublePtr+1]=HEAP8[p+1],HEAP8[tempDoublePtr+2]=HEAP8[p+2],HEAP8[tempDoublePtr+3]=HEAP8[p+3]}function copyTempDouble(p){HEAP8[tempDoublePtr]=HEAP8[p],HEAP8[tempDoublePtr+1]=HEAP8[p+1],HEAP8[tempDoublePtr+2]=HEAP8[p+2],HEAP8[tempDoublePtr+3]=HEAP8[p+3],HEAP8[tempDoublePtr+4]=HEAP8[p+4],HEAP8[tempDoublePtr+5]=HEAP8[p+5],HEAP8[tempDoublePtr+6]=HEAP8[p+6],HEAP8[tempDoublePtr+7]=HEAP8[p+7]}function _atexit(p,T){__ATEXIT__.unshift({func:p,arg:T})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module._i64Subtract=_i64Subtract;function ___assert_fail(p,T,A,P){throw ABORT=!0,"Assertion failed: "+Pointer_stringify(p)+", at: "+[T?Pointer_stringify(T):"unknown filename",A,P?Pointer_stringify(P):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(p){if(!p||EXCEPTIONS.infos[p])return p;for(var T in EXCEPTIONS.infos){var A=EXCEPTIONS.infos[T];if(A.adjusted===p)return T}return p},addRef:function(p){if(p){var T=EXCEPTIONS.infos[p];T.refcount++}},decRef:function(p){if(p){var T=EXCEPTIONS.infos[p];assert(T.refcount>0),T.refcount--,T.refcount===0&&(T.destructor&&Runtime.dynCall("vi",T.destructor,[p]),delete EXCEPTIONS.infos[p],___cxa_free_exception(p))}},clearRef:function(p){if(p){var T=EXCEPTIONS.infos[p];T.refcount=0}}};function ___resumeException(p){throw EXCEPTIONS.last||(EXCEPTIONS.last=p),EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(p)),p}function ___cxa_find_matching_catch(){var p=EXCEPTIONS.last;if(!p)return asm.setTempRet0(0),0|0;var T=EXCEPTIONS.infos[p],A=T.type;if(!A)return asm.setTempRet0(0),p|0;var P=Array.prototype.slice.call(arguments),F=Module.___cxa_is_pointer_type(A);___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=p,p=___cxa_find_matching_catch.buffer;for(var M=0;M>2],T.adjusted=p,asm.setTempRet0(P[M]),p|0;return p=HEAP32[p>>2],asm.setTempRet0(A),p|0}function ___cxa_throw(p,T,A){throw EXCEPTIONS.infos[p]={ptr:p,adjusted:p,type:T,destructor:A,refcount:0},EXCEPTIONS.last=p,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,p}Module._memset=_memset;var _BDtoILow=!0,_emscripten_resume=!0;function ___gxx_personality_v0(){}var _emscripten_landingpad=!0;function __isLeapYear(p){return p%4===0&&(p%100!==0||p%400===0)}function __arraySum(p,T){for(var A=0,P=0;P<=T;A+=p[P++]);return A}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(p,T){for(var A=new Date(p.getTime());T>0;){var P=__isLeapYear(A.getFullYear()),F=A.getMonth(),M=(P?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[F];if(T>M-A.getDate())T-=M-A.getDate()+1,A.setDate(1),F<11?A.setMonth(F+1):(A.setMonth(0),A.setFullYear(A.getFullYear()+1));else return A.setDate(A.getDate()+T),A}return A}function _strftime(p,T,A,P){var F=HEAP32[P+40>>2],M={tm_sec:HEAP32[P>>2],tm_min:HEAP32[P+4>>2],tm_hour:HEAP32[P+8>>2],tm_mday:HEAP32[P+12>>2],tm_mon:HEAP32[P+16>>2],tm_year:HEAP32[P+20>>2],tm_wday:HEAP32[P+24>>2],tm_yday:HEAP32[P+28>>2],tm_isdst:HEAP32[P+32>>2],tm_gmtoff:HEAP32[P+36>>2],tm_zone:F?Pointer_stringify(F):""},G=Pointer_stringify(A),Q={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var Y in Q)G=G.replace(new RegExp(Y,"g"),Q[Y]);var X=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],J=["January","February","March","April","May","June","July","August","September","October","November","December"];function m(t0,f0,C){for(var L0=typeof t0=="number"?t0.toString():t0||"";L0.length0?1:0}var L0;return(L0=C(t0.getFullYear()-f0.getFullYear()))===0&&(L0=C(t0.getMonth()-f0.getMonth()))===0&&(L0=C(t0.getDate()-f0.getDate())),L0}function z(t0){switch(t0.getDay()){case 0:return new Date(t0.getFullYear()-1,11,29);case 1:return t0;case 2:return new Date(t0.getFullYear(),0,3);case 3:return new Date(t0.getFullYear(),0,2);case 4:return new Date(t0.getFullYear(),0,1);case 5:return new Date(t0.getFullYear()-1,11,31);case 6:return new Date(t0.getFullYear()-1,11,30)}}function b(t0){var f0=__addDays(new Date(t0.tm_year+1900,0,1),t0.tm_yday),C=new Date(f0.getFullYear(),0,4),L0=new Date(f0.getFullYear()+1,0,4),S0=z(C),O0=z(L0);return e(S0,f0)<=0?e(O0,f0)<=0?f0.getFullYear()+1:f0.getFullYear():f0.getFullYear()-1}var U0={"%a":function(t0){return X[t0.tm_wday].substring(0,3)},"%A":function(t0){return X[t0.tm_wday]},"%b":function(t0){return J[t0.tm_mon].substring(0,3)},"%B":function(t0){return J[t0.tm_mon]},"%C":function(t0){var f0=t0.tm_year+1900;return R(f0/100|0,2)},"%d":function(t0){return R(t0.tm_mday,2)},"%e":function(t0){return m(t0.tm_mday,2," ")},"%g":function(t0){return b(t0).toString().substring(2)},"%G":function(t0){return b(t0)},"%H":function(t0){return R(t0.tm_hour,2)},"%I":function(t0){return R(t0.tm_hour<13?t0.tm_hour:t0.tm_hour-12,2)},"%j":function(t0){return R(t0.tm_mday+__arraySum(__isLeapYear(t0.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,t0.tm_mon-1),3)},"%m":function(t0){return R(t0.tm_mon+1,2)},"%M":function(t0){return R(t0.tm_min,2)},"%n":function(){return` +`},"%p":function(t0){return t0.tm_hour>0&&t0.tm_hour<13?"AM":"PM"},"%S":function(t0){return R(t0.tm_sec,2)},"%t":function(){return" "},"%u":function(t0){var f0=new Date(t0.tm_year+1900,t0.tm_mon+1,t0.tm_mday,0,0,0,0);return f0.getDay()||7},"%U":function(t0){var f0=new Date(t0.tm_year+1900,0,1),C=f0.getDay()===0?f0:__addDays(f0,7-f0.getDay()),L0=new Date(t0.tm_year+1900,t0.tm_mon,t0.tm_mday);if(e(C,L0)<0){var S0=__arraySum(__isLeapYear(L0.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,L0.getMonth()-1)-31,O0=31-C.getDate(),_0=O0+S0+L0.getDate();return R(Math.ceil(_0/7),2)}return e(C,f0)===0?"01":"00"},"%V":function(t0){var f0=new Date(t0.tm_year+1900,0,4),C=new Date(t0.tm_year+1901,0,4),L0=z(f0),S0=z(C),O0=__addDays(new Date(t0.tm_year+1900,0,1),t0.tm_yday);if(e(O0,L0)<0)return"53";if(e(S0,O0)<=0)return"01";var _0;return L0.getFullYear()=0;return f0=Math.abs(f0)/60,f0=f0/60*100+f0%60,(C?"+":"-")+("0000"+f0).slice(-4)},"%Z":function(t0){return t0.tm_zone},"%%":function(){return"%"}};for(var Y in U0)G.indexOf(Y)>=0&&(G=G.replace(new RegExp(Y,"g"),U0[Y](M)));var V0=intArrayFromString(G,!1);return V0.length>T?0:(writeArrayToMemory(V0,p),V0.length-1)}function _strftime_l(p,T,A,P){return _strftime(p,T,A,P)}function _abort(){Module.abort()}function _free(){}Module._free=_free;function ___cxa_free_exception(p){try{return _free(p)}catch{}}function ___cxa_end_catch(){if(___cxa_end_catch.rethrown){___cxa_end_catch.rethrown=!1;return}asm.setThrew(0);var p=EXCEPTIONS.caught.pop();p&&(EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(p)),EXCEPTIONS.last=0)}function _pthread_once(p,T){_pthread_once.seen||(_pthread_once.seen={}),!(p in _pthread_once.seen)&&(Runtime.dynCall("v",T),_pthread_once.seen[p]=1)}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(p){return PTHREAD_SPECIFIC[p]||0}function ___setErrNo(p){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=p),p}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(p){switch(p){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}var _fabs=Math_abs,PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(p,T){return p==0?ERRNO_CODES.EINVAL:(HEAP32[p>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}var PATH=void 0;function _emscripten_set_main_loop_timing(p,T){if(Browser.mainLoop.timingMode=p,Browser.mainLoop.timingValue=T,!Browser.mainLoop.func)return 1;if(p==0)Browser.mainLoop.scheduler=function(){setTimeout(Browser.mainLoop.runner,T)},Browser.mainLoop.method="timeout";else if(p==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(p==2){if(!window.setImmediate){let M=function(G){G.source===window&&G.data===P&&(G.stopPropagation(),A.shift()())};var F=M,A=[],P="__emcc";window.addEventListener("message",M,!0),window.setImmediate=function(Q){A.push(Q),window.postMessage(P,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(p,T,A,P,F){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=p,Browser.mainLoop.arg=P;var M=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var Q=Date.now(),Y=Browser.mainLoop.queue.shift();if(Y.func(Y.arg),Browser.mainLoop.remainingBlockers){var X=Browser.mainLoop.remainingBlockers,J=X%1==0?X-1:Math.floor(X);Y.counted?Browser.mainLoop.remainingBlockers=J:(J=J+.5,Browser.mainLoop.remainingBlockers=(8*X+J)/9)}console.log('main loop blocker "'+Y.name+'" took '+(Date.now()-Q)+" ms"),Browser.mainLoop.updateStatus(),setTimeout(Browser.mainLoop.runner,0);return}if(!(M1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(function(){typeof P<"u"?Runtime.dynCall("vi",p,[P]):Runtime.dynCall("v",p)}),!(M0?_emscripten_set_main_loop_timing(0,1e3/T):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),A)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var p=Browser.mainLoop.timingMode,T=Browser.mainLoop.timingValue,A=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(A,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(p,T),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var p=Module.statusMessage||"Please wait...",T=Browser.mainLoop.remainingBlockers,A=Browser.mainLoop.expectedBlockers;T?T"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var p={};p.canHandle=function(M){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(M)},p.handle=function(M,G,Q,Y){var X=null;if(Browser.hasBlobConstructor)try{X=new Blob([M],{type:Browser.getMimetype(G)}),X.size!==M.length&&(X=new Blob([new Uint8Array(M).buffer],{type:Browser.getMimetype(G)}))}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!X){var J=new Browser.BlobBuilder;J.append(new Uint8Array(M).buffer),X=J.getBlob()}var m=Browser.URLObject.createObjectURL(X),R=new Image;R.onload=function(){assert(R.complete,"Image "+G+" could not be decoded");var z=document.createElement("canvas");z.width=R.width,z.height=R.height;var b=z.getContext("2d");b.drawImage(R,0,0),Module.preloadedImages[G]=z,Browser.URLObject.revokeObjectURL(m),Q&&Q(M)},R.onerror=function(z){console.log("Image "+m+" could not be decoded"),Y&&Y()},R.src=m},Module.preloadPlugins.push(p);var T={};T.canHandle=function(M){return!Module.noAudioDecoding&&M.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},T.handle=function(M,G,Q,Y){var X=!1;function J(b){X||(X=!0,Module.preloadedAudios[G]=b,Q&&Q(M))}function m(){X||(X=!0,Module.preloadedAudios[G]=new Audio,Y&&Y())}if(Browser.hasBlobConstructor){try{var R=new Blob([M],{type:Browser.getMimetype(G)})}catch{return m()}var e=Browser.URLObject.createObjectURL(R),z=new Audio;z.addEventListener("canplaythrough",function(){J(z)},!1),z.onerror=function(U0){if(X)return;console.log("warning: browser could not fully decode audio "+G+", trying slower base64 approach");function V0(t0){for(var f0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",C="=",L0="",S0=0,O0=0,_0=0;_0=6;){var l0=S0>>O0-6&63;O0-=6,L0+=f0[l0]}return O0==2?(L0+=f0[(S0&3)<<4],L0+=C+C):O0==4&&(L0+=f0[(S0&15)<<2],L0+=C),L0}z.src="data:audio/x-"+G.substr(-3)+";base64,"+V0(M),J(z)},z.src=e,Browser.safeSetTimeout(function(){J(z)},1e4)}else return m()},Module.preloadPlugins.push(T);var A=Module.canvas;function P(){Browser.pointerLock=document.pointerLockElement===A||document.mozPointerLockElement===A||document.webkitPointerLockElement===A||document.msPointerLockElement===A}A&&(A.requestPointerLock=A.requestPointerLock||A.mozRequestPointerLock||A.webkitRequestPointerLock||A.msRequestPointerLock||function(){},A.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},A.exitPointerLock=A.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",P,!1),document.addEventListener("mozpointerlockchange",P,!1),document.addEventListener("webkitpointerlockchange",P,!1),document.addEventListener("mspointerlockchange",P,!1),Module.elementPointerLock&&A.addEventListener("click",function(F){!Browser.pointerLock&&A.requestPointerLock&&(A.requestPointerLock(),F.preventDefault())},!1))},createContext:function(p,T,A,P){if(T&&Module.ctx&&p==Module.canvas)return Module.ctx;var F,M;if(T){var G={antialias:!1,alpha:!1};if(P)for(var Q in P)G[Q]=P[Q];M=GL.createContext(p,G),M&&(F=GL.getContext(M).GLctx),p.style.backgroundColor="black"}else F=p.getContext("2d");return F?(A&&(T||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=F,T&&GL.makeContextCurrent(M),Module.useWebGL=T,Browser.moduleContextCreatedCallbacks.forEach(function(Y){Y()}),Browser.init()),F):null},destroyContext:function(p,T,A){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(p,T,A){Browser.lockPointer=p,Browser.resizeCanvas=T,Browser.vrDevice=A,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var P=Module.canvas;function F(){Browser.isFullScreen=!1;var G=P.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===G?(P.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},P.cancelFullScreen=P.cancelFullScreen.bind(document),Browser.lockPointer&&P.requestPointerLock(),Browser.isFullScreen=!0,Browser.resizeCanvas&&Browser.setFullScreenCanvasSize()):(G.parentNode.insertBefore(P,G),G.parentNode.removeChild(G),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullScreen),Browser.updateCanvasDimensions(P)}Browser.fullScreenHandlersInstalled||(Browser.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",F,!1),document.addEventListener("mozfullscreenchange",F,!1),document.addEventListener("webkitfullscreenchange",F,!1),document.addEventListener("MSFullscreenChange",F,!1));var M=document.createElement("div");P.parentNode.insertBefore(M,P),M.appendChild(P),M.requestFullScreen=M.requestFullScreen||M.mozRequestFullScreen||M.msRequestFullscreen||(M.webkitRequestFullScreen?function(){M.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),A?M.requestFullScreen({vrDisplay:A}):M.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(p){var T=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=T+1e3/60;else for(;T+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var A=Math.max(Browser.nextRAF-T,0);setTimeout(p,A)},requestAnimationFrame:function p(T){typeof window>"u"?Browser.fakeRequestAnimationFrame(T):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(T))},safeCallback:function(p){return function(){if(!ABORT)return p.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var p=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],p.forEach(function(T){T()})}},safeRequestAnimationFrame:function(p){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?p():Browser.queuedAsyncCallbacks.push(p))})},safeSetTimeout:function(p,T){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?p():Browser.queuedAsyncCallbacks.push(p))},T)},safeSetInterval:function(p,T){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&p()},T)},getMimetype:function(p){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[p.substr(p.lastIndexOf(".")+1)]},getUserMedia:function(p){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(p)},getMovementX:function(p){return p.movementX||p.mozMovementX||p.webkitMovementX||0},getMovementY:function(p){return p.movementY||p.mozMovementY||p.webkitMovementY||0},getMouseWheelDelta:function(p){var T=0;switch(p.type){case"DOMMouseScroll":T=p.detail;break;case"mousewheel":T=p.wheelDelta;break;case"wheel":T=p.deltaY;break;default:throw"unrecognized mouse wheel event: "+p.type}return T},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(p){if(Browser.pointerLock)p.type!="mousemove"&&"mozMovementX"in p?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(p),Browser.mouseMovementY=Browser.getMovementY(p)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var T=Module.canvas.getBoundingClientRect(),A=Module.canvas.width,P=Module.canvas.height,F=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,M=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(p.type==="touchstart"||p.type==="touchend"||p.type==="touchmove"){var G=p.touch;if(G===void 0)return;var Q=G.pageX-(F+T.left),Y=G.pageY-(M+T.top);Q=Q*(A/T.width),Y=Y*(P/T.height);var X={x:Q,y:Y};if(p.type==="touchstart")Browser.lastTouches[G.identifier]=X,Browser.touches[G.identifier]=X;else if(p.type==="touchend"||p.type==="touchmove"){var J=Browser.touches[G.identifier];J||(J=X),Browser.lastTouches[G.identifier]=J,Browser.touches[G.identifier]=X}return}var m=p.pageX-(F+T.left),R=p.pageY-(M+T.top);m=m*(A/T.width),R=R*(P/T.height),Browser.mouseMovementX=m-Browser.mouseX,Browser.mouseMovementY=R-Browser.mouseY,Browser.mouseX=m,Browser.mouseY=R}},xhrLoad:function(p,T,A){var P=new XMLHttpRequest;P.open("GET",p,!0),P.responseType="arraybuffer",P.onload=function(){P.status==200||P.status==0&&P.response?T(P.response):A()},P.onerror=A,P.send(null)},asyncLoad:function(p,T,A,P){Browser.xhrLoad(p,function(F){assert(F,'Loading data file "'+p+'" failed (no arrayBuffer).'),T(new Uint8Array(F)),P||removeRunDependency("al "+p)},function(F){if(A)A();else throw'Loading data file "'+p+'" failed.'}),P||addRunDependency("al "+p)},resizeListeners:[],updateResizeListeners:function(){var p=Module.canvas;Browser.resizeListeners.forEach(function(T){T(p.width,p.height)})},setCanvasSize:function(p,T,A){var P=Module.canvas;Browser.updateCanvasDimensions(P,p,T),A||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if(typeof SDL<"u"){var p=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];p=p|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=p}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var p=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];p=p&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=p}Browser.updateResizeListeners()},updateCanvasDimensions:function(p,T,A){T&&A?(p.widthNative=T,p.heightNative=A):(T=p.widthNative,A=p.heightNative);var P=T,F=A;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(P/F>2];return T},getStr:function(){var p=Pointer_stringify(SYSCALLS.get());return p},get64:function(){var p=SYSCALLS.get(),T=SYSCALLS.get();return p>=0?assert(T===0):assert(T===-1),p},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall54(p,T){SYSCALLS.varargs=T;try{return 0}catch(A){return(typeof FS>"u"||!(A instanceof FS.ErrnoError))&&abort(A),-A.errno}}Module._i64Add=_i64Add,Module._bitshift64Lshr=_bitshift64Lshr;function ___cxa_pure_virtual(){throw ABORT=!0,"Pure virtual function called!"}var _BDtoIHigh=!0;function _pthread_cleanup_push(p,T){__ATEXIT__.push(function(){Runtime.dynCall("vi",p,[T])}),_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_broadcast(){return 0}function ___cxa_guard_acquire(p){return HEAP8[p>>0]?0:(HEAP8[p>>0]=1,1)}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!"),__ATEXIT__.pop(),_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_release(){}function ___cxa_begin_catch(p){return __ZSt18uncaught_exceptionv.uncaught_exception--,EXCEPTIONS.caught.push(p),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(p)),p}function _llvm_eh_typeid_for(p){return p}function _emscripten_memcpy_big(p,T,A){return HEAPU8.set(HEAPU8.subarray(T,T+A),p),p}Module._memcpy=_memcpy;function ___syscall6(p,T){SYSCALLS.varargs=T;try{var A=SYSCALLS.getStreamFromFD();return FS.close(A),0}catch(P){return(typeof FS>"u"||!(P instanceof FS.ErrnoError))&&abort(P),-P.errno}}function _pthread_mutex_lock(){}var _emscripten_postinvoke=!0;function _sbrk(p){var T=_sbrk;T.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),T.called=!0,assert(Runtime.dynamicAlloc),T.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var A=DYNAMICTOP;if(p!=0){var P=T.alloc(p);if(!P)return 4294967295}return A}Module._bitshift64Shl=_bitshift64Shl;function ___cxa_guard_abort(){}Module._memmove=_memmove;var _emscripten_preinvoke=!0,_BItoD=!0;function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){___cxa_end_catch.rethrown=!0;var p=EXCEPTIONS.caught.pop();throw EXCEPTIONS.last=p,p}function _pthread_mutex_unlock(){}function _time(p){var T=Date.now()/1e3|0;return p&&(HEAP32[p>>2]=T),T}function _pthread_self(){return 0}function ___syscall140(p,T){SYSCALLS.varargs=T;try{var A=SYSCALLS.getStreamFromFD(),P=SYSCALLS.get(),F=SYSCALLS.get(),M=SYSCALLS.get(),G=SYSCALLS.get(),Q=F;return assert(P===0),FS.llseek(A,Q,G),HEAP32[M>>2]=A.position,A.getdents&&Q===0&&G===0&&(A.getdents=null),0}catch(Y){return(typeof FS>"u"||!(Y instanceof FS.ErrnoError))&&abort(Y),-Y.errno}}function ___syscall146(p,T){SYSCALLS.varargs=T;try{var A=SYSCALLS.get(),P=SYSCALLS.get(),F=SYSCALLS.get(),M=0;___syscall146.buffer||(___syscall146.buffer=[]);for(var G=___syscall146.buffer,Q=0;Q>2],X=HEAP32[P+(Q*8+4)>>2],J=0;J"u"||!(R instanceof FS.ErrnoError))&&abort(R),-R.errno}}function ___syscall145(p,T){SYSCALLS.varargs=T;try{var A=SYSCALLS.getStreamFromFD(),P=SYSCALLS.get(),F=SYSCALLS.get();return SYSCALLS.doReadv(A,P,F)}catch(M){return(typeof FS>"u"||!(M instanceof FS.ErrnoError))&&abort(M),-M.errno}}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC);Module.requestFullScreen=function p(T,A,P){Browser.requestFullScreen(T,A,P)},Module.requestAnimationFrame=function p(T){Browser.requestAnimationFrame(T)},Module.setCanvasSize=function p(T,A,P){Browser.setCanvasSize(T,A,P)},Module.pauseMainLoop=function p(){Browser.mainLoop.pause()},Module.resumeMainLoop=function p(){Browser.mainLoop.resume()},Module.getUserMedia=function p(){Browser.getUserMedia()},Module.createContext=function p(T,A,P,F){return Browser.createContext(T,A,P,F)},STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE2147483648?!1:(m=new P(r),R=new F(r),e=new M(r),z=new G(r),b=new Q(r),U0=new Y(r),V0=new X(r),t0=new J(r),A=r,!0)}function E4(r){r=r|0;var t=0;return t=C,C=C+r|0,C=C+15&-16,t|0}function L4(){return C|0}function F4(r){r=r|0,C=r}function R4(r,t){r=r|0,t=t|0,C=r,L0=t}function O4(r,t){r=r|0,t=t|0,u||(u=r,q0=t)}function Cd(r){r=r|0,m[S0>>0]=m[r>>0],m[S0+1>>0]=m[r+1>>0],m[S0+2>>0]=m[r+2>>0],m[S0+3>>0]=m[r+3>>0]}function yd(r){r=r|0,m[S0>>0]=m[r>>0],m[S0+1>>0]=m[r+1>>0],m[S0+2>>0]=m[r+2>>0],m[S0+3>>0]=m[r+3>>0],m[S0+4>>0]=m[r+4>>0],m[S0+5>>0]=m[r+5>>0],m[S0+6>>0]=m[r+6>>0],m[S0+7>>0]=m[r+7>>0]}function M4(r){r=r|0,o0=r}function x4(){return o0|0}function q4(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0;if(y=C,C=C+128|0,g=y+44|0,D=y+8|0,c=y+4|0,S=y,v=n+4|0,k=n+8|0,u=0,w0(35,e[n>>2]|0,e[v>>2]|0,e[k>>2]|0,s|0),h=u,u=0,h&1)I=5;else{l=g,f=l+84|0;do e[l>>2]=e[s>>2],l=l+4|0,s=s+4|0;while((l|0)<(f|0));if(s=g+12|0,!(e[s>>2]|0)&&(a=Z(((e[g+8>>2]|0)+7|0)/8|0,e[g>>2]|0)|0,e[s>>2]=a,(e[g+24>>2]|0)!=0)&&(h=Z(e[g+16>>2]|0,a)|0,e[s>>2]=h),u=0,I0(176,D|0),h=u,u=0,h&1)I=5;else{s=g+56|0;do if(e[s>>2]|0)if(u=0,s=j(66,s|0)|0,h=u,u=0,h&1)I=15;else{if(e[c>>2]=s,f=D+28|0,l=e[f>>2]|0,l>>>0<(e[D+32>>2]|0)>>>0){e[l>>2]=s,e[f>>2]=l+4,e[c>>2]=0,I=19;break}if(u=0,e0(57,D+24|0,c|0),h=u,u=0,h&1){if(f=L(824,0)|0,s=o0,l=e[c>>2]|0,e[c>>2]=0,!l)break;K0[e[(e[l>>2]|0)+4>>2]&255](l);break}else{if(s=e[c>>2]|0,e[c>>2]=0,!s){I=19;break}K0[e[(e[s>>2]|0)+4>>2]&255](s),I=19;break}}else I=19;while(0);e:do if((I|0)==19)if(l=g+4|0,a=g+8|0,c=g+16|0,u=0,s=qe(14,e[g>>2]|0,e[l>>2]|0,e[a>>2]|0,e[c>>2]|0)|0,h=u,u=0,h&1)I=15;else{e[S>>2]=s,h=D+28|0,f=e[h>>2]|0;do if(f>>>0>=(e[D+32>>2]|0)>>>0)if(u=0,e0(57,D+24|0,S|0),f=u,u=0,f&1){if(f=L(824,0)|0,s=o0,l=e[S>>2]|0,e[S>>2]=0,!l)break e;K0[e[(e[l>>2]|0)+4>>2]&255](l);break e}else{if(s=e[S>>2]|0,e[S>>2]=0,!s)break;K0[e[(e[s>>2]|0)+4>>2]&255](s);break}else e[f>>2]=s,e[h>>2]=f+4,e[S>>2]=0;while(0);if(s=e[g+28>>2]|0,s|0&&(u=0,e0(58,D|0,s|0),I=u,u=0,I&1)){I=15;break}i:do if(e[g+24>>2]|0){if(u=0,c0(4,D|0,n|0,g|0),I=u,u=0,I&1){I=15;break e}}else if(s=Z(e[l>>2]|0,e[g>>2]|0)|0,s=Z(s,((e[a>>2]|0)+7|0)/8|0)|0,(e[c>>2]|0)>0){for(l=0;u=0,c0(4,D|0,n|0,g|0),I=u,u=0,!(I&1);)if(f=e[v>>2]|0,f&&(e[v>>2]=f+s,e[k>>2]=(e[k>>2]|0)-s),l=l+1|0,(l|0)>=(e[c>>2]|0))break i;f=L(824,0)|0,s=o0,I=16;break e}while(0);if(u=0,p0(33,D|0,r|0)|0,I=u,u=0,I&1)I=15;else{if(e[t>>2]=e[D+16>>2],o&&(m[o>>0]=0),l=D+24|0,s=e[l>>2]|0,s){if(f=e[h>>2]|0,(f|0)!=(s|0)){do o=f+-4|0,e[h>>2]=o,f=e[o>>2]|0,e[o>>2]=0,f&&K0[e[(e[f>>2]|0)+4>>2]&255](f),f=e[h>>2]|0;while((f|0)!=(s|0));s=e[l>>2]|0}V(s)}return o=0,C=y,o|0}}while(0);if((I|0)==15&&(f=L(824,0)|0,s=o0,I=16),h=D+24|0,l=e[h>>2]|0,l){if(c=D+28|0,a=e[c>>2]|0,(a|0)!=(l|0)){do D=a+-4|0,e[c>>2]=D,a=e[D>>2]|0,e[D>>2]=0,a&&K0[e[(e[a>>2]|0)+4>>2]&255](a),a=e[c>>2]|0;while((a|0)!=(l|0));l=e[h>>2]|0}V(l)}}}if((I|0)==5&&(f=L(824,0)|0,s=o0),D=(s|0)==(Qt(824)|0),a=H2(f|0)|0,s=(o|0)==0,!D)return s||(m[o>>0]=0),K2(),o=14,C=y,o|0;l=a+12|0;do if(s)I=60;else if(s=e[l>>2]|0,u=0,f=de(1)|0,D=u,u=0,!(D&1))if((s|0)==(f|0)){Mn(o,X0[e[(e[a>>2]|0)+8>>2]&127](a)|0)|0,I=60;break}else{m[o>>0]=0,I=60;break}while(0);return(I|0)==60&&(E=e[l>>2]|0,u=0,_=de(1)|0,o=u,u=0,!(o&1))?(o=(E|0)==(_|0)?e[a+8>>2]|0:13,K2(),C=y,o|0):(s=L()|0,u=0,i2(3),y=u,u=0,y&1?(y=L(0)|0,ne(y)):U(s|0),0)}function N4(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;switch(h=C,C=C+112|0,f=h+96|0,c=h+84|0,S=h+72|0,g=h+60|0,v=h+48|0,k=h+36|0,D=h+24|0,I=h+12|0,E=h,a=(t|0)==0,(r|0)==0&a&&(o=H0(16)|0,u=0,c0(5,f|0,48504,52),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,f|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(f),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),l=e[s>>2]|0,(l+-1|0)>>>0>65534&&(o=H0(16)|0,u=0,c0(5,c|0,48557,41),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,c|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(c),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),f=e[s+4>>2]|0,(f+-1|0)>>>0>65534&&(o=H0(16)|0,u=0,c0(5,S|0,48599,42),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,S|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(S),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),o=e[s+8>>2]|0,(o+-2|0)>>>0>14&&(o=H0(16)|0,u=0,c0(5,g|0,48642,46),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,g|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(g),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),r=e[s+24>>2]|0,r>>>0>=3&&(o=H0(16)|0,u=0,c0(5,v|0,48689,65),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,v|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(v),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),t=e[s+16>>2]|0,(t+-1|0)>>>0>254&&(o=H0(16)|0,u=0,c0(5,k|0,48755,44),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,k|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(k),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),!a&&(k=Z(f,l)|0,(Z(Z(k,(o|0)>8?2:1)|0,t)|0)>>>0>n>>>0)&&(o=H0(16)|0,u=0,c0(5,D|0,48800,58),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,D|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(D),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)),t|0){case 4:{if((r|0)!=2){C=h;return}o=H0(16)|0,u=0,c0(5,I|0,48859,73),E=u,u=0,E&1?t=L()|0:(u=0,t=de(1)|0,E=u,u=0,!(E&1)&&(u=0,w0(36,o|0,1,t|0,I|0),E=u,u=0,!(E&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(I),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)}case 3:{C=h;return}default:{if(!r){C=h;return}o=H0(16)|0,u=0,c0(5,E|0,48933,73),I=u,u=0,I&1?t=L()|0:(u=0,t=de(1)|0,I=u,u=0,!(I&1)&&(u=0,w0(36,o|0,1,t|0,E|0),I=u,u=0,!(I&1))?(u=0,c0(6,o|0,824,96),u=0,r=0):r=1,t=L()|0,H(E),r||(E=t,U(E|0))),z0(o|0),E=t,U(E|0)}}}function ne(r){r=r|0,H2(r|0)|0,Vv()}function U4(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+128|0,f=S+116|0,l=S,u=0,e[f>>2]=e[t>>2],e[f+4>>2]=e[t+4>>2],e[f+8>>2]=e[t+8>>2],e0(59,l|0,f|0),o=u,u=0,!(o&1)){if(n){o=l+16|0,t=o+84|0;do e[o>>2]=e[n>>2],o=o+4|0,n=n+4|0;while((o|0)<(t|0))}if(u=0,e[f>>2]=e[r>>2],e[f+4>>2]=e[r+4>>2],e[f+8>>2]=e[r+8>>2],e0(60,l|0,f|0),l=u,u=0,!(l&1))return s&&(m[s>>0]=0),h=0,C=S,h|0}if(r=L(824,0)|0,l=o0,l=(l|0)==(Qt(824)|0),r=H2(r|0)|0,t=(s|0)==0,!l)return t||(m[s>>0]=0),K2(),h=14,C=S,h|0;o=r+12|0;do if(t)h=10;else if(t=e[o>>2]|0,u=0,n=de(1)|0,l=u,u=0,!(l&1))if((t|0)==(n|0)){Mn(s,X0[e[(e[r>>2]|0)+8>>2]&127](r)|0)|0,h=10;break}else{m[s>>0]=0,h=10;break}while(0);return(h|0)==10&&(a=e[o>>2]|0,u=0,c=de(1)|0,h=u,u=0,!(h&1))?(h=(a|0)==(c|0)?e[r+8>>2]|0:13,K2(),C=S,h|0):(t=L()|0,u=0,i2(3),S=u,u=0,S&1?(S=L(0)|0,ne(S)):U(t|0),0)}function B4(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(c=C,C=C+128|0,o=c+116|0,s=c,u=0,e[o>>2]=e[r>>2],e[o+4>>2]=e[r+4>>2],e[o+8>>2]=e[r+8>>2],e0(59,s|0,o|0),o=u,u=0,!(o&1)&&(u=0,I0(177,s|0),o=u,u=0,!(o&1))&&(u=0,e0(61,s|0,1),o=u,u=0,!(o&1))){r=s+16|0,s=t+84|0;do e[t>>2]=e[r>>2],t=t+4|0,r=r+4|0;while((t|0)<(s|0));return n&&(m[n>>0]=0),n=0,C=c,n|0}if(o=L(824,0)|0,t=o0,t=(t|0)==(Qt(824)|0),o=H2(o|0)|0,r=(n|0)==0,!t)return r||(m[n>>0]=0),K2(),n=14,C=c,n|0;t=o+12|0;do if(r)a=13;else if(r=e[t>>2]|0,u=0,s=de(1)|0,h=u,u=0,!(h&1))if((r|0)==(s|0)){Mn(n,X0[e[(e[o>>2]|0)+8>>2]&127](o)|0)|0,a=13;break}else{m[n>>0]=0,a=13;break}while(0);return(a|0)==13&&(f=e[t>>2]|0,u=0,l=de(1)|0,h=u,u=0,!(h&1))?(h=(f|0)==(l|0)?e[o+8>>2]|0:13,K2(),C=c,h|0):(r=L()|0,u=0,i2(3),h=u,u=0,h&1?(h=L(0)|0,ne(h)):U(r|0),0)}function Q4(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0;return g=C,C=C+48|0,c=g+36|0,a=g+24|0,h=g+12|0,S=g,(r|0)!=0&(n|0)!=0&(s|0)!=0&(f|0)!=0?(e[h>>2]=0,e[h+4>>2]=r,e[h+8>>2]=t,e[S>>2]=0,e[S+4>>2]=s,e[S+8>>2]=o,e[a>>2]=e[h>>2],e[a+4>>2]=e[h+4>>2],e[a+8>>2]=e[h+8>>2],e[c>>2]=e[S>>2],e[c+4>>2]=e[S+4>>2],e[c+8>>2]=e[S+8>>2],o=q4(a,n,c,f,l)|0,C=g,o|0):(o=1,C=g,o|0)}function G4(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0;return o=C,C=C+32|0,f=o+12|0,l=o,a=l,e[a>>2]=0,e[a+4>>2]=0,e[l+4>>2]=r,e[l+8>>2]=t,e[f>>2]=e[l>>2],e[f+4>>2]=e[l+4>>2],e[f+8>>2]=e[l+8>>2],n=B4(f,n,s)|0,C=o,n|0}function V4(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+48|0,a=l+36|0,c=l+24|0,S=l+12|0,h=l,e[S>>2]=0,e[S+4>>2]=r,e[S+8>>2]=t,e[h>>2]=0,e[h+4>>2]=n,e[h+8>>2]=s,e[c>>2]=e[S>>2],e[c+4>>2]=e[S+4>>2],e[c+8>>2]=e[S+8>>2],e[a>>2]=e[h>>2],e[a+4>>2]=e[h+4>>2],e[a+8>>2]=e[h+8>>2],s=U4(c,a,o,f)|0,C=l,s|0}function H4(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(h=r+4|0,n=e[r>>2]|0,o=((e[h>>2]|0)-n>>2)+1|0,o>>>0>1073741823&&(_1(r),n=e[r>>2]|0),S=r+8|0,s=(e[S>>2]|0)-n|0,s>>2>>>0<536870911?(s=s>>1,s=s>>>0>>0?o:s,n=(e[h>>2]|0)-n>>2,s?a=6:(f=0,l=0)):(s=1073741823,n=(e[h>>2]|0)-n>>2,a=6),(a|0)==6&&(f=s,l=C0(s<<2)|0),o=l+(n<<2)|0,s=o,c=l+(f<<2)|0,a=e[t>>2]|0,e[t>>2]=0,e[o>>2]=a,a=l+(n+1<<2)|0,l=e[r>>2]|0,n=e[h>>2]|0,(n|0)==(l|0))o=r,f=h;else{do n=n+-4|0,t=e[n>>2]|0,e[n>>2]=0,e[o+-4>>2]=t,o=s+-4|0,s=o;while((n|0)!=(l|0));n=s,o=r,f=h,s=n,l=e[r>>2]|0,n=e[h>>2]|0}if(e[o>>2]=s,e[f>>2]=a,e[S>>2]=c,o=l,(n|0)!=(o|0))do n=n+-4|0,s=e[n>>2]|0,e[n>>2]=0,s&&K0[e[(e[s>>2]|0)+4>>2]&255](s);while((n|0)!=(o|0));l&&V(l)}function z4(){return m[8]|0||!(j0(8)|0)||(J0(72,35648,l0|0)|0,W0(8)),35648}function cr(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;S=C,C=C+32|0,c=S,r2(c,(1<>2]|0,h=f+1|0,n=h<<1,e[r>>2]=0,l=r+4|0,e[l>>2]=0,e[r+8>>2]=0;e:do if(h){if((f|0)<-1&&(u=0,I0(178,r|0),a=u,u=0,a&1)||(s=4),(s|0)==4&&(u=0,o=j(67,n|0)|0,a=u,u=0,!(a&1))){for(e[l>>2]=o,e[r>>2]=o,e[r+8>>2]=o+n,t=o;;)if(m[t>>0]=0,t=(e[l>>2]|0)+1|0,e[l>>2]=t,n=n+-1|0,!n)break e}n=L()|0,t=e[r>>2]|0,t||U(n|0),(e[l>>2]|0)!=(t|0)&&(e[l>>2]=t),V(t),U(n|0)}while(0);if(t=~f,(f|0)<(t|0)){C=S;return}l=c+12|0,a=c+8|0,f=c+4|0,o=t;do t=e[l>>2]|0,(o|0)>(0-t|0)?(n=e[a>>2]|0,(o|0)>(0-n|0)?(s=e[f>>2]|0,(o|0)>(0-s|0)?(o|0)>=0?(o|0)>0?(s|0)<=(o|0)?(n|0)>(o|0)?t=2:t=(t|0)>(o|0)?3:4:t=1:t=0:t=-1:t=-2):t=-3):t=-4,m[(e[r>>2]|0)+(o+h)>>0]=t,o=o+1|0;while((o|0)<(h|0));C=S}function Y4(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;switch(v=e[n+16>>2]|0,v|0){case 64:case 0:{u=0,r=p0(34,r|0,t|0)|0,t=u,u=0,t&1?k=16:s=r;break}default:{for(o=(1<>2])+-1|0,g=e[t+20>>2]|0,S=g<<1,S=((S+o|0)/(S|1|0)|0)+1|0,r=0;(1<>2]|0,u=0,s=j(67,4624)|0,h=u,u=0,h&1)k=16;else{f=((l|0)<8?8:l)+l<<1,a=s+4|0,c=t,h=a+84|0;do e[a>>2]=e[c>>2],a=a+4|0,c=c+4|0;while((a|0)<(h|0));a=s+88|0,h=a+40|0;do e[a>>2]=0,a=a+4|0;while((a|0)<(h|0));e[s>>2]=35660,e[s+128>>2]=o,e[s+132>>2]=S,e[s+136>>2]=g,e[s+140>>2]=r,e[s+144>>2]=l,e[s+148>>2]=f,e[s+152>>2]=v,r=s+156|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+172>>2]=e[t>>2],e[s+176>>2]=0,e[s+180>>2]=0,e[s+184>>2]=0,r=s+4568|0,o=s+188|0;do e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,R[o+10>>1]=1,o=o+12|0;while((o|0)!=(r|0));e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4580|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4592|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+28>>2]|0||(e[s+20>>2]=1)}}}return(k|0)==16&&(k=L()|0,U(k|0)),!s||(u=0,e0(e[(e[s>>2]|0)+12>>2]|0,s|0,n|0),k=u,u=0,!(k&1))?s|0:(r=L()|0,s||(k=r,U(k|0)),K0[e[(e[s>>2]|0)+4>>2]&255](s),k=r,U(k|0),0)}function X4(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(n=(e[t+24>>2]|0)==2,n&&(e[t+16>>2]|0)!=3)return t=0,t|0;S=e[t+20>>2]|0,r=e[t+8>>2]|0;e:do if(!S){if(n){if((r|0)!=8)break;s=C0(4600)|0,l=s+4|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=s+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[s>>2]=35688,r=s+132|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+148>>2]=e[t>>2],e[s+152>>2]=0,e[s+156>>2]=0,e[s+160>>2]=0,r=s+4544|0,n=s+164|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4556|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4568|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+28>>2]|0||(e[s+20>>2]=1),t=s,t|0}switch(r|0){case 8:{s=C0(4600)|0,l=s+4|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=s+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[s>>2]=35716,r=s+132|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+148>>2]=e[t>>2],e[s+152>>2]=0,e[s+156>>2]=0,e[s+160>>2]=0,r=s+4544|0,n=s+164|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4556|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4568|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+28>>2]|0||(e[s+20>>2]=1),t=s,t|0}case 12:{s=C0(4600)|0,l=s+4|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=s+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[s>>2]=35744,r=s+132|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+148>>2]=e[t>>2],e[s+152>>2]=0,e[s+156>>2]=0,e[s+160>>2]=0,r=s+4544|0,n=s+164|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4556|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4568|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+28>>2]|0||(e[s+20>>2]=1),t=s,t|0}case 16:{s=C0(4600)|0,l=s+4|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=s+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[s>>2]=35772,r=s+132|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+148>>2]=e[t>>2],e[s+152>>2]=0,e[s+156>>2]=0,e[s+160>>2]=0,r=s+4544|0,n=s+164|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4556|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4568|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+28>>2]|0||(e[s+20>>2]=1),t=s,t|0}default:break e}}while(0);if(h=(1<>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=o+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[o>>2]=35800,e[o+128>>2]=h,e[o+132>>2]=f,e[o+136>>2]=S,e[o+140>>2]=r,e[o+144>>2]=n,e[o+148>>2]=s,e[o+152>>2]=64,r=o+156|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+172>>2]=e[t>>2],e[o+176>>2]=0,e[o+180>>2]=0,e[o+184>>2]=0,r=o+4568|0,n=o+188|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4580|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4592|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+28>>2]|0||(e[o+20>>2]=1),t=o,t|0}else{for(r=0;(1<>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=o+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[o>>2]=35660,e[o+128>>2]=h,e[o+132>>2]=f,e[o+136>>2]=S,e[o+140>>2]=r,e[o+144>>2]=n,e[o+148>>2]=s,e[o+152>>2]=64,r=o+156|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+172>>2]=e[t>>2],e[o+176>>2]=0,e[o+180>>2]=0,e[o+184>>2]=0,r=o+4568|0,n=o+188|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4580|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4592|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+28>>2]|0||(e[o+20>>2]=1),t=o,t|0}if((r|0)>=17)return t=0,t|0;if(f=S<<1,f=((f+h|0)/(f|1|0)|0)+1|0,n){for(r=0;(1<>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=o+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[o>>2]=35828,e[o+128>>2]=h,e[o+132>>2]=f,e[o+136>>2]=S,e[o+140>>2]=r,e[o+144>>2]=n,e[o+148>>2]=s,e[o+152>>2]=64,r=o+156|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+172>>2]=e[t>>2],e[o+176>>2]=0,e[o+180>>2]=0,e[o+184>>2]=0,r=o+4568|0,n=o+188|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4580|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4592|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+28>>2]|0||(e[o+20>>2]=1),t=o,t|0}else{for(r=0;(1<>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));l=o+88|0,c=l+40|0;do e[l>>2]=0,l=l+4|0;while((l|0)<(c|0));e[o>>2]=35856,e[o+128>>2]=h,e[o+132>>2]=f,e[o+136>>2]=S,e[o+140>>2]=r,e[o+144>>2]=n,e[o+148>>2]=s,e[o+152>>2]=64,r=o+156|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+172>>2]=e[t>>2],e[o+176>>2]=0,e[o+180>>2]=0,e[o+184>>2]=0,r=o+4568|0,n=o+188|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4580|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4592|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+28>>2]|0||(e[o+20>>2]=1),t=o,t|0}return 0}function j4(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;switch(v=e[n+16>>2]|0,v|0){case 64:case 0:{u=0,r=p0(35,r|0,t|0)|0,t=u,u=0,t&1?k=16:s=r;break}default:{for(o=(1<>2])+-1|0,g=e[t+20>>2]|0,S=g<<1,S=((S+o|0)/(S|1|0)|0)+1|0,r=0;(1<>2]|0,u=0,s=j(67,4632)|0,h=u,u=0,h&1)k=16;else{f=((l|0)<8?8:l)+l<<1,e[s+4>>2]=0,a=s+8|0,c=t,h=a+84|0;do e[a>>2]=e[c>>2],a=a+4|0,c=c+4|0;while((a|0)<(h|0));e[s+92>>2]=0,e[s+96>>2]=0,e[s+100>>2]=32,e[s+104>>2]=0,e[s+108>>2]=0,m[s+112>>0]=0,h=s+116|0,e[h>>2]=0,e[h+4>>2]=0,e[h+8>>2]=0,e[h+12>>2]=0,e[h+16>>2]=0,e[s>>2]=35884,e[s+136>>2]=o,e[s+140>>2]=S,e[s+144>>2]=g,e[s+148>>2]=r,e[s+152>>2]=l,e[s+156>>2]=f,e[s+160>>2]=v,r=s+164|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+180>>2]=e[t>>2],e[s+184>>2]=0,e[s+188>>2]=0,e[s+192>>2]=0,r=s+4576|0,o=s+196|0;do e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,R[o+10>>1]=1,o=o+12|0;while((o|0)!=(r|0));e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4588|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4600|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+32>>2]|0||(e[s+24>>2]=1)}}}return(k|0)==16&&(k=L()|0,U(k|0)),!s||(u=0,e0(e[(e[s>>2]|0)+8>>2]|0,s|0,n|0),k=u,u=0,!(k&1))?s|0:(r=L()|0,s||(k=r,U(k|0)),K0[e[(e[s>>2]|0)+4>>2]&255](s),k=r,U(k|0),0)}function W4(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(n=(e[t+24>>2]|0)==2,n&&(e[t+16>>2]|0)!=3)return t=0,t|0;S=e[t+20>>2]|0,r=e[t+8>>2]|0;e:do if(!S){if(n){if((r|0)!=8)break;s=C0(4608)|0,e[s+4>>2]=0,l=s+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[s+92>>2]=0,e[s+96>>2]=0,e[s+100>>2]=32,e[s+104>>2]=0,e[s+108>>2]=0,m[s+112>>0]=0,r=s+116|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[s>>2]=35912,r=s+140|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+156>>2]=e[t>>2],e[s+160>>2]=0,e[s+164>>2]=0,e[s+168>>2]=0,r=s+4552|0,n=s+172|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4564|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4576|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+32>>2]|0||(e[s+24>>2]=1),t=s,t|0}switch(r|0){case 8:{s=C0(4608)|0,e[s+4>>2]=0,l=s+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[s+92>>2]=0,e[s+96>>2]=0,e[s+100>>2]=32,e[s+104>>2]=0,e[s+108>>2]=0,m[s+112>>0]=0,r=s+116|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[s>>2]=35940,r=s+140|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+156>>2]=e[t>>2],e[s+160>>2]=0,e[s+164>>2]=0,e[s+168>>2]=0,r=s+4552|0,n=s+172|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4564|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4576|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+32>>2]|0||(e[s+24>>2]=1),t=s,t|0}case 12:{s=C0(4608)|0,e[s+4>>2]=0,l=s+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[s+92>>2]=0,e[s+96>>2]=0,e[s+100>>2]=32,e[s+104>>2]=0,e[s+108>>2]=0,m[s+112>>0]=0,r=s+116|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[s>>2]=35968,r=s+140|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+156>>2]=e[t>>2],e[s+160>>2]=0,e[s+164>>2]=0,e[s+168>>2]=0,r=s+4552|0,n=s+172|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4564|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4576|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+32>>2]|0||(e[s+24>>2]=1),t=s,t|0}case 16:{s=C0(4608)|0,e[s+4>>2]=0,l=s+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[s+92>>2]=0,e[s+96>>2]=0,e[s+100>>2]=32,e[s+104>>2]=0,e[s+108>>2]=0,m[s+112>>0]=0,r=s+116|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[s>>2]=35996,r=s+140|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[s+156>>2]=e[t>>2],e[s+160>>2]=0,e[s+164>>2]=0,e[s+168>>2]=0,r=s+4552|0,n=s+172|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=s+4564|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=s+4576|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[s+32>>2]|0||(e[s+24>>2]=1),t=s,t|0}default:break e}}while(0);if(h=(1<>2]=0,l=o+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[o+92>>2]=0,e[o+96>>2]=0,e[o+100>>2]=32,e[o+104>>2]=0,e[o+108>>2]=0,m[o+112>>0]=0,c=o+116|0,e[c>>2]=0,e[c+4>>2]=0,e[c+8>>2]=0,e[c+12>>2]=0,e[c+16>>2]=0,e[o>>2]=36024,e[o+136>>2]=h,e[o+140>>2]=f,e[o+144>>2]=S,e[o+148>>2]=r,e[o+152>>2]=n,e[o+156>>2]=s,e[o+160>>2]=64,r=o+164|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+180>>2]=e[t>>2],e[o+184>>2]=0,e[o+188>>2]=0,e[o+192>>2]=0,r=o+4576|0,n=o+196|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4588|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4600|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+32>>2]|0||(e[o+24>>2]=1),t=o,t|0}else{for(r=0;(1<>2]=0,l=o+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[o+92>>2]=0,e[o+96>>2]=0,e[o+100>>2]=32,e[o+104>>2]=0,e[o+108>>2]=0,m[o+112>>0]=0,c=o+116|0,e[c>>2]=0,e[c+4>>2]=0,e[c+8>>2]=0,e[c+12>>2]=0,e[c+16>>2]=0,e[o>>2]=35884,e[o+136>>2]=h,e[o+140>>2]=f,e[o+144>>2]=S,e[o+148>>2]=r,e[o+152>>2]=n,e[o+156>>2]=s,e[o+160>>2]=64,r=o+164|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+180>>2]=e[t>>2],e[o+184>>2]=0,e[o+188>>2]=0,e[o+192>>2]=0,r=o+4576|0,n=o+196|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4588|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4600|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+32>>2]|0||(e[o+24>>2]=1),t=o,t|0}if((r|0)>=17)return t=0,t|0;if(f=S<<1,f=((f+h|0)/(f|1|0)|0)+1|0,n){for(r=0;(1<>2]=0,l=o+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[o+92>>2]=0,e[o+96>>2]=0,e[o+100>>2]=32,e[o+104>>2]=0,e[o+108>>2]=0,m[o+112>>0]=0,c=o+116|0,e[c>>2]=0,e[c+4>>2]=0,e[c+8>>2]=0,e[c+12>>2]=0,e[c+16>>2]=0,e[o>>2]=36052,e[o+136>>2]=h,e[o+140>>2]=f,e[o+144>>2]=S,e[o+148>>2]=r,e[o+152>>2]=n,e[o+156>>2]=s,e[o+160>>2]=64,r=o+164|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+180>>2]=e[t>>2],e[o+184>>2]=0,e[o+188>>2]=0,e[o+192>>2]=0,r=o+4576|0,n=o+196|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4588|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4600|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+32>>2]|0||(e[o+24>>2]=1),t=o,t|0}else{for(r=0;(1<>2]=0,l=o+8|0,a=t,c=l+84|0;do e[l>>2]=e[a>>2],l=l+4|0,a=a+4|0;while((l|0)<(c|0));e[o+92>>2]=0,e[o+96>>2]=0,e[o+100>>2]=32,e[o+104>>2]=0,e[o+108>>2]=0,m[o+112>>0]=0,c=o+116|0,e[c>>2]=0,e[c+4>>2]=0,e[c+8>>2]=0,e[c+12>>2]=0,e[c+16>>2]=0,e[o>>2]=36080,e[o+136>>2]=h,e[o+140>>2]=f,e[o+144>>2]=S,e[o+148>>2]=r,e[o+152>>2]=n,e[o+156>>2]=s,e[o+160>>2]=64,r=o+164|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[o+180>>2]=e[t>>2],e[o+184>>2]=0,e[o+188>>2]=0,e[o+192>>2]=0,r=o+4576|0,n=o+196|0;do e[n>>2]=0,e[n+4>>2]=0,R[n+8>>1]=0,R[n+10>>1]=1,n=n+12|0;while((n|0)!=(r|0));return e[r>>2]=0,e[r+4>>2]=0,R[r+8>>1]=0,m[r+10>>0]=0,t=o+4588|0,e[t>>2]=0,e[t+4>>2]=0,R[t+8>>1]=0,m[t+10>>0]=0,t=o+4600|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[t+16>>2]=0,e[t+20>>2]=0,e[t+24>>2]=0,m[t+28>>0]=0,e[o+32>>2]|0||(e[o+24>>2]=1),t=o,t|0}return 0}function J4(){var r=0,t=0,n=0,s=0,o=0,f=0,l=0;r=2832;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=4880);ye(2832,0,2048)|0,r=0;do l=2832+(r+128<<3)|0,e[l>>2]=0,e[l+4>>2]=1,r=r+1|0;while((r|0)!=128);r=3088,e[r>>2]=1,e[r+4>>2]=3,r=3096,e[r>>2]=1,e[r+4>>2]=3,r=3104,e[r>>2]=1,e[r+4>>2]=3,r=3112,e[r>>2]=1,e[r+4>>2]=3,r=3120,e[r>>2]=1,e[r+4>>2]=3,r=3128,e[r>>2]=1,e[r+4>>2]=3,r=3136,e[r>>2]=1,e[r+4>>2]=3,r=3144,e[r>>2]=1,e[r+4>>2]=3,r=3152,e[r>>2]=1,e[r+4>>2]=3,r=3160,e[r>>2]=1,e[r+4>>2]=3,r=3168,e[r>>2]=1,e[r+4>>2]=3,r=3176,e[r>>2]=1,e[r+4>>2]=3,r=3184,e[r>>2]=1,e[r+4>>2]=3,r=3192,e[r>>2]=1,e[r+4>>2]=3,r=3200,e[r>>2]=1,e[r+4>>2]=3,r=3208,e[r>>2]=1,e[r+4>>2]=3,r=3216,e[r>>2]=1,e[r+4>>2]=3,r=3224,e[r>>2]=1,e[r+4>>2]=3,r=3232,e[r>>2]=1,e[r+4>>2]=3,r=3240,e[r>>2]=1,e[r+4>>2]=3,r=3248,e[r>>2]=1,e[r+4>>2]=3,r=3256,e[r>>2]=1,e[r+4>>2]=3,r=3264,e[r>>2]=1,e[r+4>>2]=3,r=3272,e[r>>2]=1,e[r+4>>2]=3,r=3280,e[r>>2]=1,e[r+4>>2]=3,r=3288,e[r>>2]=1,e[r+4>>2]=3,r=3296,e[r>>2]=1,e[r+4>>2]=3,r=3304,e[r>>2]=1,e[r+4>>2]=3,r=3312,e[r>>2]=1,e[r+4>>2]=3,r=3320,e[r>>2]=1,e[r+4>>2]=3,r=3328,e[r>>2]=1,e[r+4>>2]=3,r=3336,e[r>>2]=1,e[r+4>>2]=3,r=2896,e[r>>2]=2,e[r+4>>2]=5,r=2904,e[r>>2]=2,e[r+4>>2]=5,r=2912,e[r>>2]=2,e[r+4>>2]=5,r=2920,e[r>>2]=2,e[r+4>>2]=5,r=2928,e[r>>2]=2,e[r+4>>2]=5,r=2936,e[r>>2]=2,e[r+4>>2]=5,r=2944,e[r>>2]=2,e[r+4>>2]=5,r=2952,e[r>>2]=2,e[r+4>>2]=5,r=2848,e[r>>2]=3,e[r+4>>2]=7,r=2856,e[r>>2]=3,e[r+4>>2]=7,r=0;do l=2832+(r+64<<3)|0,e[l>>2]=-1,e[l+4>>2]=2,r=r+1|0;while((r|0)!=64);r=2960,e[r>>2]=-2,e[r+4>>2]=4,r=2968,e[r>>2]=-2,e[r+4>>2]=4,r=2976,e[r>>2]=-2,e[r+4>>2]=4,r=2984,e[r>>2]=-2,e[r+4>>2]=4,r=2992,e[r>>2]=-2,e[r+4>>2]=4,r=3e3,e[r>>2]=-2,e[r+4>>2]=4,r=3008,e[r>>2]=-2,e[r+4>>2]=4,r=3016,e[r>>2]=-2,e[r+4>>2]=4,r=3024,e[r>>2]=-2,e[r+4>>2]=4,r=3032,e[r>>2]=-2,e[r+4>>2]=4,r=3040,e[r>>2]=-2,e[r+4>>2]=4,r=3048,e[r>>2]=-2,e[r+4>>2]=4,r=3056,e[r>>2]=-2,e[r+4>>2]=4,r=3064,e[r>>2]=-2,e[r+4>>2]=4,r=3072,e[r>>2]=-2,e[r+4>>2]=4,r=3080,e[r>>2]=-2,e[r+4>>2]=4,r=2864,e[r>>2]=-3,e[r+4>>2]=6,r=2872,e[r>>2]=-3,e[r+4>>2]=6,r=2880,e[r>>2]=-3,e[r+4>>2]=6,r=2888,e[r>>2]=-3,e[r+4>>2]=6,r=2840,e[r>>2]=-4,e[r+4>>2]=8,r=4880;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=6928);for(ye(4880,0,2048)|0,n=2,r=0,o=0,f=0;;){if(n=n<<16>>16,t=8-n|0,s=1<>2]=o,e[l+4>>2]=n,t=t+1|0;while((t|0)<(s|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==7){t=2,o=1,f=-1,l=-1;break}else n=(r>>1)+2|0,o=t>>16}for(;;){if(n=t<<16>>16,r=8-n|0,s=1<>2]=f,e[o+4>>2]=n,t=t+1|0;while((t|0)<(s|0))}if(r=(l<<16)+-65536|0,o=r>>31^r>>15,t=(o>>1)+2|0,(t|0)>8){r=6928;break}else f=r>>16,l=l+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=8976);for(ye(6928,0,2048)|0,o=3,r=0,s=0,f=0;;){if(t=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==12){o=3,t=1,s=-1,f=-1;break}else o=(r>>2)+3|0,s=t>>16}for(;;){if(r=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(r=(f<<16)+-65536|0,t=r>>31^r>>15,o=(t>>2)+3|0,(o|0)>8){r=8976;break}else s=r>>16,f=f+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=11024);for(ye(8976,0,2048)|0,o=4,r=0,s=0,f=0;;){if(t=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==20){o=4,t=1,s=-1,f=-1;break}else o=(r>>3)+4|0,s=t>>16}for(;;){if(r=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(r=(f<<16)+-65536|0,t=r>>31^r>>15,o=(t>>3)+4|0,(o|0)>8){r=11024;break}else s=r>>16,f=f+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=13072);for(ye(11024,0,2048)|0,o=5,r=0,s=0,f=0;;){if(t=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==32){o=5,t=1,s=-1,f=-1;break}else o=(r>>4)+5|0,s=t>>16}for(;;){if(r=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(r=(f<<16)+-65536|0,t=r>>31^r>>15,o=(t>>4)+5|0,(o|0)>8){r=13072;break}else s=r>>16,f=f+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=15120);for(ye(13072,0,2048)|0,o=6,r=0,s=0,f=0;;){if(t=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==48){o=6,t=1,s=-1,f=-1;break}else o=(r>>5)+6|0,s=t>>16}for(;;){if(r=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(r=(f<<16)+-65536|0,t=r>>31^r>>15,o=(t>>5)+6|0,(o|0)>8){r=15120;break}else s=r>>16,f=f+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=17168);for(ye(15120,0,2048)|0,o=7,r=0,s=0,f=0;;){if(t=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==64){o=7,t=1,s=-1,f=-1;break}else o=(r>>6)+7|0,s=t>>16}for(;;){if(r=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(r=(f<<16)+-65536|0,t=r>>31^r>>15,o=(t>>6)+7|0,(o|0)>8){r=17168;break}else s=r>>16,f=f+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=19216);for(ye(17168,0,2048)|0,o=8,r=0,s=0,f=0;;){if(t=8-o|0,n=1<>2]=s,e[l+4>>2]=o,t=t+1|0;while((t|0)<(n|0))}if(t=(f<<16)+65536|0,r=t>>31^t>>15,f=f+1|0,(f|0)==64){f=8,s=1,o=-1,l=-1;break}else o=(r>>7)+8|0,s=t>>16}for(;;){if(r=8-f|0,n=1<>2]=o,e[s+4>>2]=f,t=t+1|0;while((t|0)<(n|0))}if(t=(l<<16)+-65536|0,s=t>>31^t>>15,r=s>>7,(r|0)>0){r=19216;break}else f=r+8|0,o=t>>16,l=l+-1|0}do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=21264);ye(19216,0,2048)|0,r=21264;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=23312);ye(21264,0,2048)|0,r=23312;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=25360);ye(23312,0,2048)|0,r=25360;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=27408);ye(25360,0,2048)|0,r=27408;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=29456);ye(27408,0,2048)|0,r=29456;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=31504);ye(29456,0,2048)|0,r=31504;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=33552);ye(31504,0,2048)|0,r=33552;do e[r>>2]=0,e[r+4>>2]=0,r=r+8|0;while((r|0)!=35600);ye(33552,0,2048)|0,cr(35600,8),J0(179,35600,l0|0)|0,cr(35612,10),J0(179,35612,l0|0)|0,cr(35624,12),J0(179,35624,l0|0)|0,cr(35636,16),J0(179,35636,l0|0)|0}function K4(r){r=r|0;var t=0;t=e[r>>2]|0,t&&(r=r+4|0,(e[r>>2]|0)!=(t|0)&&(e[r>>2]=t),V(t))}function Z4(r){r=r|0;var t=0,n=0;e[r>>2]=36080,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function $4(r){r=r|0;var t=0,n=0;if(e[r>>2]=36080,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function b4(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+136>>2]|0,e[r+144>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+184>>2]=a|0?a:e[c+4>>2]|0,e[r+188>>2]=f,e[r+192>>2]=o,p6(r),o=r+140|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+196+(f*12|0)>>2]=t,e[r+196+(f*12|0)+4>>2]=0,R[r+196+(f*12|0)+8>>1]=0,R[r+196+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4576>>2]=a,e[r+4580>>2]=0,m[r+4584>>0]=c,m[r+4585>>0]=1,m[r+4586>>0]=0,e[r+4588>>2]=a,e[r+4592>>2]=1,m[r+4596>>0]=c,m[r+4597>>0]=1,m[r+4598>>0]=0,e[r+4600>>2]=0,C=l}function eu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4624)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35856,e[t+128>>2]=e[r+136>>2],e[t+132>>2]=e[r+140>>2],e[t+136>>2]=e[r+144>>2],e[t+140>>2]=e[r+148>>2],e[t+144>>2]=e[r+152>>2],e[t+148>>2]=e[r+156>>2],e[t+152>>2]=e[r+160>>2],o=t+156|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+172>>2]=e[s>>2],e[t+176>>2]=0,e[t+180>>2]=0,e[t+184>>2]=0,o=t+4568|0,s=t+188|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4580|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4592|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,bs(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],bs(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function iu(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0)}function ru(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;e[r>>2]=36460,e[r+4>>2]=n,g=r+8|0,f=e[n>>2]|0,h=n+16|0,s=e[h>>2]|0,l=Z(s,f)|0,e[g>>2]=0,v=r+12|0,e[v>>2]=0,e[r+16>>2]=0;do if(l){if((l|0)<0&&(u=0,I0(178,g|0),f=u,u=0,f&1)||(S=4),(S|0)==4&&(a=l<<1,u=0,c=j(67,a|0)|0,f=u,u=0,!(f&1))){e[g>>2]=c,f=c+(l<<1)|0,e[r+16>>2]=f,ye(c|0,0,a|0)|0,e[v>>2]=f,f=e[n>>2]|0,s=e[h>>2]|0;break}l=L()|0,o=e[g>>2]|0,s=o,o&&(f=e[v>>2]|0,(f|0)!=(o|0)&&(e[v>>2]=f+(~((f+-2-s|0)>>>1)<<1)),V(o)),v=l,U(v|0)}while(0);if(l=r+20|0,s=Z(f<<1,s)|0,e[l>>2]=0,a=r+24|0,e[a>>2]=0,e[r+28>>2]=0,!s){v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(S=13),(S|0)==13&&(u=0,o=j(67,s|0)|0,S=u,u=0,!(S&1))){e[a>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[a>>2]|0)+1|0,e[a>>2]=o,s=s+-1|0;while(s|0);v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}f=L()|0,o=e[l>>2]|0,o&&((e[a>>2]|0)!=(o|0)&&(e[a>>2]=o),V(o)),o=e[g>>2]|0,o||(v=f,U(v|0)),s=e[v>>2]|0,(s|0)!=(o|0)&&(e[v>>2]=s+(~((s+-2-o|0)>>>1)<<1)),V(o),v=f,U(v|0)}function tu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;e[r>>2]=36436,e[r+4>>2]=n,g=r+8|0,f=e[n>>2]|0,h=n+16|0,s=e[h>>2]|0,l=Z(s,f)|0,e[g>>2]=0,v=r+12|0,e[v>>2]=0,e[r+16>>2]=0;do if(l){if((l|0)<0&&(u=0,I0(178,g|0),f=u,u=0,f&1)||(S=4),(S|0)==4&&(a=l<<1,u=0,c=j(67,a|0)|0,f=u,u=0,!(f&1))){e[g>>2]=c,f=c+(l<<1)|0,e[r+16>>2]=f,ye(c|0,0,a|0)|0,e[v>>2]=f,f=e[n>>2]|0,s=e[h>>2]|0;break}l=L()|0,o=e[g>>2]|0,s=o,o&&(f=e[v>>2]|0,(f|0)!=(o|0)&&(e[v>>2]=f+(~((f+-2-s|0)>>>1)<<1)),V(o)),v=l,U(v|0)}while(0);if(l=r+20|0,s=Z(f<<1,s)|0,e[l>>2]=0,a=r+24|0,e[a>>2]=0,e[r+28>>2]=0,!s){v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(S=13),(S|0)==13&&(u=0,o=j(67,s|0)|0,S=u,u=0,!(S&1))){e[a>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[a>>2]|0)+1|0,e[a>>2]=o,s=s+-1|0;while(s|0);v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}f=L()|0,o=e[l>>2]|0,o&&((e[a>>2]|0)!=(o|0)&&(e[a>>2]=o),V(o)),o=e[g>>2]|0,o||(v=f,U(v|0)),s=e[v>>2]|0,(s|0)!=(o|0)&&(e[v>>2]=s+(~((s+-2-o|0)>>>1)<<1)),V(o),v=f,U(v|0)}function nu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;e[r>>2]=36412,e[r+4>>2]=n,g=r+8|0,f=e[n>>2]|0,h=n+16|0,s=e[h>>2]|0,l=Z(s,f)|0,e[g>>2]=0,v=r+12|0,e[v>>2]=0,e[r+16>>2]=0;do if(l){if((l|0)<0&&(u=0,I0(178,g|0),f=u,u=0,f&1)||(S=4),(S|0)==4&&(a=l<<1,u=0,c=j(67,a|0)|0,f=u,u=0,!(f&1))){e[g>>2]=c,f=c+(l<<1)|0,e[r+16>>2]=f,ye(c|0,0,a|0)|0,e[v>>2]=f,f=e[n>>2]|0,s=e[h>>2]|0;break}l=L()|0,o=e[g>>2]|0,s=o,o&&(f=e[v>>2]|0,(f|0)!=(o|0)&&(e[v>>2]=f+(~((f+-2-s|0)>>>1)<<1)),V(o)),v=l,U(v|0)}while(0);if(l=r+20|0,s=Z(f<<1,s)|0,e[l>>2]=0,a=r+24|0,e[a>>2]=0,e[r+28>>2]=0,!s){v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(S=13),(S|0)==13&&(u=0,o=j(67,s|0)|0,S=u,u=0,!(S&1))){e[a>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[a>>2]|0)+1|0,e[a>>2]=o,s=s+-1|0;while(s|0);v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}f=L()|0,o=e[l>>2]|0,o&&((e[a>>2]|0)!=(o|0)&&(e[a>>2]=o),V(o)),o=e[g>>2]|0,o||(v=f,U(v|0)),s=e[v>>2]|0,(s|0)!=(o|0)&&(e[v>>2]=s+(~((s+-2-o|0)>>>1)<<1)),V(o),v=f,U(v|0)}function su(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;e[r>>2]=36388,e[r+4>>2]=n,g=r+8|0,f=e[n>>2]|0,h=n+16|0,s=e[h>>2]|0,l=Z(s,f)|0,e[g>>2]=0,v=r+12|0,e[v>>2]=0,e[r+16>>2]=0;do if(l){if((l|0)<0&&(u=0,I0(178,g|0),f=u,u=0,f&1)||(S=4),(S|0)==4&&(a=l<<1,u=0,c=j(67,a|0)|0,f=u,u=0,!(f&1))){e[g>>2]=c,f=c+(l<<1)|0,e[r+16>>2]=f,ye(c|0,0,a|0)|0,e[v>>2]=f,f=e[n>>2]|0,s=e[h>>2]|0;break}l=L()|0,o=e[g>>2]|0,s=o,o&&(f=e[v>>2]|0,(f|0)!=(o|0)&&(e[v>>2]=f+(~((f+-2-s|0)>>>1)<<1)),V(o)),v=l,U(v|0)}while(0);if(l=r+20|0,s=Z(f<<1,s)|0,e[l>>2]=0,a=r+24|0,e[a>>2]=0,e[r+28>>2]=0,!s){v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(S=13),(S|0)==13&&(u=0,o=j(67,s|0)|0,S=u,u=0,!(S&1))){e[a>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[a>>2]|0)+1|0,e[a>>2]=o,s=s+-1|0;while(s|0);v=r+36|0,e[v>>2]=e[t>>2],e[v+4>>2]=e[t+4>>2],e[v+8>>2]=e[t+8>>2];return}f=L()|0,o=e[l>>2]|0,o&&((e[a>>2]|0)!=(o|0)&&(e[a>>2]=o),V(o)),o=e[g>>2]|0,o||(v=f,U(v|0)),s=e[v>>2]|0,(s|0)!=(o|0)&&(e[v>>2]=s+(~((s+-2-o|0)>>>1)<<1)),V(o),v=f,U(v|0)}function ou(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;l=r+32|0,Eh(l,t)|0,f=r+44|0,e[f>>2]=0,a=r+48|0,o=e[a>>2]|0,o&8&&(t=m[l>>0]|0,t&1?(t=(e[r+40>>2]|0)+(e[r+36>>2]|0)|0,e[f>>2]=t,s=e[r+40>>2]|0,n=s):(t=((t&255)>>>1)+(l+1)|0,e[f>>2]=t,n=l+1|0,s=l+1|0),e[r+8>>2]=n,e[r+12>>2]=s,e[r+16>>2]=t),o&16&&(t=m[l>>0]|0,t&1?(o=e[r+36>>2]|0,e[f>>2]=(e[r+40>>2]|0)+o,t=(e[l>>2]&-2)+-1|0,f=o):(o=(t&255)>>>1,e[f>>2]=l+1+o,t=10,f=o),Vo(l,t,0),t=m[l>>0]|0,t&1?(n=e[r+40>>2]|0,o=n,s=e[r+36>>2]|0):(o=l+1|0,s=(t&255)>>>1,n=l+1|0),t=r+24|0,e[t>>2]=n,e[r+20>>2]=n,e[r+28>>2]=o+s,e[a>>2]&3&&(e[t>>2]=n+f))}function fu(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;v=C,C=C+32|0,l=v+16|0,g=v+8|0,a=v,u=0,e0(65,g|0,r|0),h=u,u=0;e:do if(h&1)n=L(0)|0,s=r,o=r;else{do if(m[g>>0]|0){s=e[(e[r>>2]|0)+-12>>2]|0,e[a>>2]=e[r+(s+24)>>2],c=r+s|0,h=e[r+(s+4)>>2]|0,o=t+n|0,s=r+(s+76)|0,n=e[s>>2]|0;do if((n|0)==-1)if(u=0,n=j(68,c|0)|0,k=u,u=0,k&1)S=13;else{if(e[l>>2]=n,u=0,n=p0(37,l|0,44220)|0,k=u,u=0,!(k&1)&&(u=0,f=p0(e[(e[n>>2]|0)+28>>2]|0,n|0,32)|0,k=u,u=0,!(k&1))){y2(l),n=f<<24>>24,e[s>>2]=n,S=9;break}n=L(0)|0,y2(l)}else S=9;while(0);if((S|0)==9)if(u=0,e[l>>2]=e[a>>2],n=R1(39,l|0,t|0,((h&176|0)==32?o:t)|0,o|0,c|0,n&255|0)|0,k=u,u=0,k&1)S=13;else{if(n)break;if(k=e[(e[r>>2]|0)+-12>>2]|0,u=0,e0(66,r+k|0,e[r+(k+16)>>2]|5|0),k=u,u=0,k&1)S=13;else break}(S|0)==13&&(n=L(0)|0),V1(g),s=r,o=r;break e}while(0);return V1(g),C=v,r|0}while(0);return H2(n|0)|0,u=0,I0(181,s+(e[(e[o>>2]|0)+-12>>2]|0)|0),k=u,u=0,k&1?(n=L()|0,u=0,i2(3),k=u,u=0,k&1?(k=L(0)|0,ne(k)):U(n|0),0):(K2(),C=v,r|0)}function lu(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;if(n=e[t+48>>2]|0,n&16){if(n=t+44|0,s=e[n>>2]|0,o=e[t+24>>2]|0,s>>>0>>0?e[n>>2]=o:o=s,s=e[t+20>>2]|0,f=o-s|0,f>>>0>4294967279&&t1(r),f>>>0<11?(m[r>>0]=f<<1,n=r+1|0):(t=f+16&-16,n=C0(t)|0,e[r+8>>2]=n,e[r>>2]=t|1,e[r+4>>2]=f),(s|0)!=(o|0)){for(t=n;m[t>>0]=m[s>>0]|0,s=s+1|0,(s|0)!=(o|0);)t=t+1|0;n=n+f|0}m[n>>0]=0;return}if(!(n&8)){e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0;return}if(s=e[t+8>>2]|0,t=e[t+16>>2]|0,f=t-s|0,f>>>0>4294967279&&t1(r),f>>>0<11?(m[r>>0]=f<<1,n=r+1|0):(o=f+16&-16,n=C0(o)|0,e[r+8>>2]=n,e[r>>2]=o|1,e[r+4>>2]=f),(s|0)!=(t|0)){for(o=n;m[o>>0]=m[s>>0]|0,s=s+1|0,(s|0)!=(t|0);)o=o+1|0;n=n+f|0}m[n>>0]=0}function uu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;e[r>>2]=36364,e[r+4>>2]=n,v=r+8|0,l=e[n>>2]|0,S=n+16|0,f=e[S>>2]|0,h=Z(f,l)|0,e[v>>2]=0,k=r+12|0,e[k>>2]=0,e[r+16>>2]=0;do if(h){if((h|0)<0&&(u=0,I0(178,v|0),l=u,u=0,l&1)||(g=4),(g|0)==4&&(a=h<<1,u=0,c=j(67,a|0)|0,l=u,u=0,!(l&1))){e[v>>2]=c,l=c+(h<<1)|0,e[r+16>>2]=l,ye(c|0,0,a|0)|0,e[k>>2]=l,l=e[n>>2]|0,f=e[S>>2]|0;break}a=L()|0,o=e[v>>2]|0,f=o,o&&(l=e[k>>2]|0,(l|0)!=(o|0)&&(e[k>>2]=l+(~((l+-2-f|0)>>>1)<<1)),V(o)),k=a,U(k|0)}while(0);if(a=r+20|0,f=Z(l<<1,f)|0,e[a>>2]=0,c=r+24|0,e[c>>2]=0,e[r+28>>2]=0,!f){k=r+32|0,v=s,v=e[v>>2]|0,s=s+4|0,s=e[s>>2]|0,g=k,e[g>>2]=v,k=k+4|0,e[k>>2]=s,k=r+40|0,e[k>>2]=v,k=r+48|0,e[k>>2]=e[t>>2],e[k+4>>2]=e[t+4>>2],e[k+8>>2]=e[t+8>>2];return}if((f|0)<0&&(u=0,I0(178,a|0),S=u,u=0,S&1)||(g=13),(g|0)==13&&(u=0,o=j(67,f|0)|0,g=u,u=0,!(g&1))){e[c>>2]=o,e[a>>2]=o,e[r+28>>2]=o+f;do m[o>>0]=0,o=(e[c>>2]|0)+1|0,e[c>>2]=o,f=f+-1|0;while(f|0);k=r+32|0,v=s,v=e[v>>2]|0,s=s+4|0,s=e[s>>2]|0,g=k,e[g>>2]=v,k=k+4|0,e[k>>2]=s,k=r+40|0,e[k>>2]=v,k=r+48|0,e[k>>2]=e[t>>2],e[k+4>>2]=e[t+4>>2],e[k+8>>2]=e[t+8>>2];return}l=L()|0,o=e[a>>2]|0,o&&((e[c>>2]|0)!=(o|0)&&(e[c>>2]=o),V(o)),o=e[v>>2]|0,o||(k=l,U(k|0)),f=e[k>>2]|0,(f|0)!=(o|0)&&(e[k>>2]=f+(~((f+-2-o|0)>>>1)<<1)),V(o),k=l,U(k|0)}function au(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;e[r>>2]=36340,e[r+4>>2]=n,v=r+8|0,l=e[n>>2]|0,S=n+16|0,f=e[S>>2]|0,h=Z(f,l)|0,e[v>>2]=0,k=r+12|0,e[k>>2]=0,e[r+16>>2]=0;do if(h){if((h|0)<0&&(u=0,I0(178,v|0),l=u,u=0,l&1)||(g=4),(g|0)==4&&(a=h<<1,u=0,c=j(67,a|0)|0,l=u,u=0,!(l&1))){e[v>>2]=c,l=c+(h<<1)|0,e[r+16>>2]=l,ye(c|0,0,a|0)|0,e[k>>2]=l,l=e[n>>2]|0,f=e[S>>2]|0;break}a=L()|0,o=e[v>>2]|0,f=o,o&&(l=e[k>>2]|0,(l|0)!=(o|0)&&(e[k>>2]=l+(~((l+-2-f|0)>>>1)<<1)),V(o)),k=a,U(k|0)}while(0);if(a=r+20|0,f=Z(l<<1,f)|0,e[a>>2]=0,c=r+24|0,e[c>>2]=0,e[r+28>>2]=0,!f){k=r+32|0,v=s,v=e[v>>2]|0,s=s+4|0,s=e[s>>2]|0,g=k,e[g>>2]=v,k=k+4|0,e[k>>2]=s,k=r+40|0,e[k>>2]=v,k=r+48|0,e[k>>2]=e[t>>2],e[k+4>>2]=e[t+4>>2],e[k+8>>2]=e[t+8>>2];return}if((f|0)<0&&(u=0,I0(178,a|0),S=u,u=0,S&1)||(g=13),(g|0)==13&&(u=0,o=j(67,f|0)|0,g=u,u=0,!(g&1))){e[c>>2]=o,e[a>>2]=o,e[r+28>>2]=o+f;do m[o>>0]=0,o=(e[c>>2]|0)+1|0,e[c>>2]=o,f=f+-1|0;while(f|0);k=r+32|0,v=s,v=e[v>>2]|0,s=s+4|0,s=e[s>>2]|0,g=k,e[g>>2]=v,k=k+4|0,e[k>>2]=s,k=r+40|0,e[k>>2]=v,k=r+48|0,e[k>>2]=e[t>>2],e[k+4>>2]=e[t+4>>2],e[k+8>>2]=e[t+8>>2];return}l=L()|0,o=e[a>>2]|0,o&&((e[c>>2]|0)!=(o|0)&&(e[c>>2]=o),V(o)),o=e[v>>2]|0,o||(k=l,U(k|0)),f=e[k>>2]|0,(f|0)!=(o|0)&&(e[k>>2]=f+(~((f+-2-o|0)>>>1)<<1)),V(o),k=l,U(k|0)}function cu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;e[r>>2]=36316,e[r+4>>2]=n,v=r+8|0,l=e[n>>2]|0,S=n+16|0,f=e[S>>2]|0,h=Z(f,l)|0,e[v>>2]=0,k=r+12|0,e[k>>2]=0,e[r+16>>2]=0;do if(h){if((h|0)<0&&(u=0,I0(178,v|0),l=u,u=0,l&1)||(g=4),(g|0)==4&&(a=h<<1,u=0,c=j(67,a|0)|0,l=u,u=0,!(l&1))){e[v>>2]=c,l=c+(h<<1)|0,e[r+16>>2]=l,ye(c|0,0,a|0)|0,e[k>>2]=l,l=e[n>>2]|0,f=e[S>>2]|0;break}a=L()|0,o=e[v>>2]|0,f=o,o&&(l=e[k>>2]|0,(l|0)!=(o|0)&&(e[k>>2]=l+(~((l+-2-f|0)>>>1)<<1)),V(o)),k=a,U(k|0)}while(0);if(a=r+20|0,f=Z(l<<1,f)|0,e[a>>2]=0,c=r+24|0,e[c>>2]=0,e[r+28>>2]=0,!f){k=r+32|0,v=s,v=e[v>>2]|0,s=s+4|0,s=e[s>>2]|0,g=k,e[g>>2]=v,k=k+4|0,e[k>>2]=s,k=r+40|0,e[k>>2]=v,k=r+48|0,e[k>>2]=e[t>>2],e[k+4>>2]=e[t+4>>2],e[k+8>>2]=e[t+8>>2];return}if((f|0)<0&&(u=0,I0(178,a|0),S=u,u=0,S&1)||(g=13),(g|0)==13&&(u=0,o=j(67,f|0)|0,g=u,u=0,!(g&1))){e[c>>2]=o,e[a>>2]=o,e[r+28>>2]=o+f;do m[o>>0]=0,o=(e[c>>2]|0)+1|0,e[c>>2]=o,f=f+-1|0;while(f|0);k=r+32|0,v=s,v=e[v>>2]|0,s=s+4|0,s=e[s>>2]|0,g=k,e[g>>2]=v,k=k+4|0,e[k>>2]=s,k=r+40|0,e[k>>2]=v,k=r+48|0,e[k>>2]=e[t>>2],e[k+4>>2]=e[t+4>>2],e[k+8>>2]=e[t+8>>2];return}l=L()|0,o=e[a>>2]|0,o&&((e[c>>2]|0)!=(o|0)&&(e[c>>2]=o),V(o)),o=e[v>>2]|0,o||(k=l,U(k|0)),f=e[k>>2]|0,(f|0)!=(o|0)&&(e[k>>2]=f+(~((f+-2-o|0)>>>1)<<1)),V(o),k=l,U(k|0)}function Su(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36316,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function hu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36316,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function mu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+48|0,!(e[o>>2]|0)){a=r+52|0,Xs(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,Xs(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function pu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+48>>2]|0,o){gu(r,o,t,n,s);return}else{o=r+52|0,Gt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Gt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;c=r+4|0,f=e[c>>2]|0;do if(!(m[f+32>>0]|0))h=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*6|0)|0,f=e[c>>2]|0,a=e[f+16>>2]|0,(s|0)<=0){h=e[l>>2]|0;break}for(t=e[l>>2]|0,f=t,l=0;h=f+4|0,S=R[f>>1]|0,R[f>>1]=R[h>>1]|0,R[h>>1]=S,l=l+1|0,(l|0)!=(s|0);)f=f+(a<<1)|0;h=t,f=e[c>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:if((e[f+24>>2]|0)==2){if((s|0)<=0)return;f=r+32|0,t=0;do S=e[f>>2]|0,c=b[h+(t*6|0)+2>>1]<>1]<>1]<>1]=(c+49152+((r+o|0)>>>2)&65535)>>>S,R[n+(t*6|0)+2>>1]=r>>>S,R[n+(t*6|0)+4>>1]=o>>>S,t=t+1|0;while((t|0)!=(s|0));return}else{if(l=(o|0)<(s|0)?o:s,(l|0)<=0)return;a=o<<1,f=e[r+32>>2]|0,t=0;do s=b[h+(t*6|0)+2>>1]<>1]<>1]<>1]=(s+49152+((r+S|0)>>>2)&65535)>>>f,R[n+(t+o<<1)>>1]=r>>>f,R[n+(t+a<<1)>>1]=S>>>f,t=t+1|0;while((t|0)!=(l|0));return}case 4:{if((e[f+24>>2]|0)!=1||(l=(o|0)<(s|0)?o:s,(l|0)<=0))return;a=o<<1,c=o*3|0,f=e[r+32>>2]|0,t=0;do S=R[h+(t<<3)+6>>1]|0,g=b[h+(t<<3)+2>>1]<>1]<>1]<>1]=(g+49152+((s+r|0)>>>2)&65535)>>>f,R[n+(t+o<<1)>>1]=s>>>f,R[n+(t+a<<1)>>1]=r>>>f,R[n+(t+c<<1)>>1]=S,t=t+1|0;while((t|0)!=(l|0));return}default:return}}function gu(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,Gt(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,Gt(r,D,n,s,o),C=g}function Z2(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(o=C,C=C+176|0,n=o+152|0,c=o+16|0,l=o,!(t&1)){if(n=(t|0)/4|0,(t|0)>3){s=0;do c=r+(s<<2)|0,a=e[c>>2]|0,e[c>>2]=a>>>8&16711935|a<<8&-16711936,s=s+1|0;while((s|0)<(n|0))}if(!(t&3)){C=o;return}l=r+(t+-2)|0,c=r+(t+-1)|0,a=m[l>>0]|0,m[l>>0]=m[c>>0]|0,m[c>>0]=a,C=o;return}a=c+56|0,f=c+4|0,e[c>>2]=36160,e[a>>2]=36180,u=0,e0(62,c+56|0,f|0),o=u,u=0,o&1&&(c=L()|0,y0(a),U(c|0)),e[c+128>>2]=0,e[c+132>>2]=-1,e[c>>2]=36200,e[c+56>>2]=36220,u=0,I0(180,f|0),o=u,u=0;do if(o&1)n=L()|0;else{if(e[f>>2]=36236,o=c+36|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[c+52>>2]=16,e[n>>2]=0,e[n+4>>2]=0,e[n+8>>2]=0,u=0,e0(63,f|0,n|0),r=u,u=0,r&1){c=L()|0,H(n),H(o),Q0(f),n=c;break}H(n),u=0,n=ie(28,c|0,49087,24)|0,r=u,u=0,!(r&1)&&(u=0,s=p0(36,n|0,t|0)|0,t=u,u=0,!(t&1))&&(u=0,ie(28,s|0,49112,20)|0,t=u,u=0,!(t&1))&&(r=H0(16)|0,u=0,e0(64,l|0,f|0),t=u,u=0,t&1?n=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,r|0,1,35648,l|0),t=u,u=0,t&1?s=1:(u=0,c0(6,r|0,824,96),u=0,s=0),n=L()|0,H(l),s||(l=n,e[c>>2]=36200,e[a>>2]=36220,e[f>>2]=36236,H(o),Q0(f),y0(a),U(l|0))),z0(r|0),l=n,e[c>>2]=36200,e[a>>2]=36220,e[f>>2]=36236,H(o),Q0(f),y0(a),U(l|0)),l=L()|0,e[c>>2]=36200,e[a>>2]=36220,e[f>>2]=36236,H(o),Q0(f),y0(a),U(l|0)}while(0);c=n,y0(a),U(c|0)}function Xs(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;h=r+4|0,f=e[h>>2]|0;e:do switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)<=0)break e;f=r+40|0,r=0;do o=e[f>>2]|0,a=b[t+(r*6|0)+2>>1]<>1]<>1]<>2)+16384|0,R[n+(r*6|0)>>1]=(l+32768+c&65535)>>>o,R[n+(r*6|0)+2>>1]=(c&65535)>>>o,R[n+(r*6|0)+4>>1]=(a+32768+c&65535)>>>o,r=r+1|0;while((r|0)!=(s|0))}else{if(l=(s|0)<(o|0)?s:o,(l|0)<=0)break e;a=o<<1,f=r+40|0,r=0;do c=e[f>>2]|0,g=b[t+(r+o<<1)>>1]<>1]<>1]<>2)+16384|0,R[n+(r*6|0)>>1]=(v+32768+S&65535)>>>c,R[n+(r*6|0)+2>>1]=(S&65535)>>>c,R[n+(r*6|0)+4>>1]=(g+32768+S&65535)>>>c,r=r+1|0;while((r|0)!=(l|0))}break}case 4:{if((e[f+24>>2]|0)==1&&(c=(s|0)<(o|0)?s:o,(c|0)>0)){a=o<<1,f=r+40|0,r=o*3|0,l=0;do v=e[f>>2]|0,g=b[t+(l+o<<1)>>1]<>1]<>1]<>2)+16384|0,k=R[t+(l+r<<1)>>1]|0,I=o2((S&65535)>>>v&65535|0,0,16)|0,g=(g+32768+S&65535)>>>v|o0,k=o2(k&65535|0,0,48)|0,k=I|(D+32768+S&65535)>>>v&65535|k,g=g&65535|o0,v=n+(l<<3)|0,S=v,R[S>>1]=k,R[S+2>>1]=k>>>16,v=v+4|0,R[v>>1]=g,R[v+2>>1]=g>>>16,l=l+1|0;while((l|0)!=(c|0))}break}default:}while(0);if(f=e[h>>2]|0,!!(m[f+32>>0]|0)&&(l=e[f+16>>2]|0,!((s|0)<=0)))for(f=n,r=0;I=f+4|0,D=R[f>>1]|0,R[f>>1]=R[I>>1]|0,R[I>>1]=D,r=r+1|0,(r|0)!=(s|0);)f=f+(l<<1)|0}function vu(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36340,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function Tu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36340,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function ku(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+48|0,!(e[o>>2]|0)){a=r+52|0,js(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,js(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function wu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+48>>2]|0,o){du(r,o,t,n,s);return}else{o=r+52|0,Vt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Vt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;c=r+4|0,f=e[c>>2]|0;do if(!(m[f+32>>0]|0))h=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*6|0)|0,f=e[c>>2]|0,a=e[f+16>>2]|0,(s|0)<=0){h=e[l>>2]|0;break}for(t=e[l>>2]|0,f=t,l=0;h=f+4|0,S=R[f>>1]|0,R[f>>1]=R[h>>1]|0,R[h>>1]=S,l=l+1|0,(l|0)!=(s|0);)f=f+(a<<1)|0;h=t,f=e[c>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:if((e[f+24>>2]|0)==2){if((s|0)<=0)return;f=r+32|0,t=0;do o=e[f>>2]|0,c=b[h+(t*6|0)>>1]<>1]<>1]<>>1)&65535)>>>o&65535,R[n+(t*6|0)>>1]=(c+32768-r&65535)>>>o,R[n+(t*6|0)+2>>1]=(r&65535)>>>o,R[n+(t*6|0)+4>>1]=S,t=t+1|0;while((t|0)!=(s|0));return}else{if(l=(o|0)<(s|0)?o:s,(l|0)<=0)return;a=o<<1,f=e[r+32>>2]|0,t=0;do s=b[h+(t*6|0)>>1]<>1]<>1]<>>1)&65535)>>>f&65535,R[n+(t<<1)>>1]=(s+32768-r&65535)>>>f,R[n+(t+o<<1)>>1]=(r&65535)>>>f,R[n+(t+a<<1)>>1]=S,t=t+1|0;while((t|0)!=(l|0));return}case 4:{if((e[f+24>>2]|0)!=1||(l=(o|0)<(s|0)?o:s,(l|0)<=0))return;a=o<<1,c=o*3|0,f=e[r+32>>2]|0,t=0;do S=R[h+(t<<3)+6>>1]|0,g=b[h+(t<<3)>>1]<>1]<>1]<>>1)&65535)>>>f&65535,R[n+(t<<1)>>1]=(g+32768-s&65535)>>>f,R[n+(t+o<<1)>>1]=(s&65535)>>>f,R[n+(t+a<<1)>>1]=r,R[n+(t+c<<1)>>1]=S,t=t+1|0;while((t|0)!=(l|0));return}default:return}}function du(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,Vt(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,Vt(r,D,n,s,o),C=g}function js(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;h=r+4|0,f=e[h>>2]|0;e:do switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)<=0)break e;f=r+40|0,r=0;do c=e[f>>2]|0,a=b[t+(r*6|0)+2>>1]<>1]<>1]<>>1)&65535)>>>c&65535,R[n+(r*6|0)>>1]=l>>>c,R[n+(r*6|0)+2>>1]=a>>>c,R[n+(r*6|0)+4>>1]=o,r=r+1|0;while((r|0)!=(s|0))}else{if(l=(s|0)<(o|0)?s:o,(l|0)<=0)break e;a=o<<1,f=r+40|0,r=0;do S=e[f>>2]|0,g=b[t+(r+o<<1)>>1]<>1]<>1]<>>1)&65535)>>>S&65535,R[n+(r*6|0)>>1]=v>>>S,R[n+(r*6|0)+2>>1]=g>>>S,R[n+(r*6|0)+4>>1]=c,r=r+1|0;while((r|0)!=(l|0))}break}case 4:{if((e[f+24>>2]|0)==1&&(c=(s|0)<(o|0)?s:o,(c|0)>0)){a=o<<1,f=r+40|0,r=o*3|0,l=0;do S=e[f>>2]|0,v=b[t+(l+o<<1)>>1]<>1]<>1]<>>1)&65535)>>>S,k=R[t+(l+r<<1)>>1]|0,v=o2(v>>>S&65535|0,0,16)|0,g=o0|g,k=o2(k&65535|0,0,48)|0,k=D>>>S&65535|v|k,g=g&65535|o0,v=n+(l<<3)|0,S=v,R[S>>1]=k,R[S+2>>1]=k>>>16,v=v+4|0,R[v>>1]=g,R[v+2>>1]=g>>>16,l=l+1|0;while((l|0)!=(c|0))}break}default:}while(0);if(f=e[h>>2]|0,!!(m[f+32>>0]|0)&&(l=e[f+16>>2]|0,!((s|0)<=0)))for(f=n,r=0;D=f+4|0,k=R[f>>1]|0,R[f>>1]=R[D>>1]|0,R[D>>1]=k,r=r+1|0,(r|0)!=(s|0);)f=f+(l<<1)|0}function Cu(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36364,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function yu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36364,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function Au(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+48|0,!(e[o>>2]|0)){a=r+52|0,Ws(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,Ws(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function Du(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+48>>2]|0,o){_u(r,o,t,n,s);return}else{o=r+52|0,Ht(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Ht(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;c=r+4|0,f=e[c>>2]|0;do if(!(m[f+32>>0]|0))h=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*6|0)|0,f=e[c>>2]|0,a=e[f+16>>2]|0,(s|0)<=0){h=e[l>>2]|0;break}for(t=e[l>>2]|0,f=t,l=0;h=f+4|0,S=R[f>>1]|0,R[f>>1]=R[h>>1]|0,R[h>>1]=S,l=l+1|0,(l|0)!=(s|0);)f=f+(a<<1)|0;h=t,f=e[c>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:if((e[f+24>>2]|0)==2){if((s|0)<=0)return;f=r+32|0,t=0;do o=e[f>>2]|0,r=b[h+(t*6|0)+2>>1]<>1]<>>o&65535,R[n+(t*6|0)>>1]=((b[h+(t*6|0)>>1]<>>o,R[n+(t*6|0)+2>>1]=(r&65535)>>>o,R[n+(t*6|0)+4>>1]=S,t=t+1|0;while((t|0)!=(s|0));return}else{if(l=(o|0)<(s|0)?o:s,(l|0)<=0)return;a=o<<1,f=e[r+32>>2]|0,t=0;do r=b[h+(t*6|0)+2>>1]<>1]<>>f&65535,R[n+(t<<1)>>1]=((b[h+(t*6|0)>>1]<>>f,R[n+(t+o<<1)>>1]=(r&65535)>>>f,R[n+(t+a<<1)>>1]=S,t=t+1|0;while((t|0)!=(l|0));return}case 4:{if((e[f+24>>2]|0)!=1||(a=(o|0)<(s|0)?o:s,(a|0)<=0))return;c=o<<1,l=o*3|0,f=e[r+32>>2]|0,t=0;do S=R[h+(t<<3)+6>>1]|0,s=b[h+(t<<3)+2>>1]<>1]<>>f&65535,R[n+(t<<1)>>1]=((b[h+(t<<3)>>1]<>>f,R[n+(t+o<<1)>>1]=(s&65535)>>>f,R[n+(t+c<<1)>>1]=r,R[n+(t+l<<1)>>1]=S,t=t+1|0;while((t|0)!=(a|0));return}default:return}}function _u(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,Ht(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,Ht(r,D,n,s,o),C=g}function Ws(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;h=r+4|0,f=e[h>>2]|0;e:do switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)<=0)break e;f=r+40|0,r=0;do c=e[f>>2]|0,a=b[t+(r*6|0)+2>>1]<>1]<>>c&65535,R[n+(r*6|0)>>1]=((b[t+(r*6|0)>>1]<>>c,R[n+(r*6|0)+2>>1]=(a&65535)>>>c,R[n+(r*6|0)+4>>1]=o,r=r+1|0;while((r|0)!=(s|0))}else{if(l=(s|0)<(o|0)?s:o,(l|0)<=0)break e;a=o<<1,f=r+40|0,r=0;do S=e[f>>2]|0,g=b[t+(r+o<<1)>>1]<>1]<>>S&65535,R[n+(r*6|0)>>1]=((b[t+(r<<1)>>1]<>>S,R[n+(r*6|0)+2>>1]=(g&65535)>>>S,R[n+(r*6|0)+4>>1]=c,r=r+1|0;while((r|0)!=(l|0))}break}case 4:{if((e[f+24>>2]|0)==1&&(c=(s|0)<(o|0)?s:o,(c|0)>0)){a=o<<1,f=r+40|0,r=o*3|0,l=0;do v=e[f>>2]|0,D=b[t+(l+o<<1)>>1]<>1]<>>v,S=(D+32768+(b[t+(l+a<<1)>>1]<>>v,k=R[t+(l+r<<1)>>1]|0,v=o2((D&65535)>>>v&65535|0,0,16)|0,S=S|o0,k=o2(k&65535|0,0,48)|0,k=v|g&65535|k,S=S&65535|o0,g=n+(l<<3)|0,v=g,R[v>>1]=k,R[v+2>>1]=k>>>16,g=g+4|0,R[g>>1]=S,R[g+2>>1]=S>>>16,l=l+1|0;while((l|0)!=(c|0))}break}default:}while(0);if(f=e[h>>2]|0,!!(m[f+32>>0]|0)&&(l=e[f+16>>2]|0,!((s|0)<=0)))for(f=n,r=0;D=f+4|0,k=R[f>>1]|0,R[f>>1]=R[D>>1]|0,R[D>>1]=k,r=r+1|0,(r|0)!=(s|0);)f=f+(l<<1)|0}function mi(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0;if(g=C,C=C+16|0,h=g,S=e[r>>2]|0,!S)return r=0,C=g,r|0;if(v=t,a=s-v|0,c=o+12|0,l=e[c>>2]|0,a=(l|0)>(a|0)?l-a|0:0,l=n,o=l-v|0,(o|0)>0&&(ge[e[(e[S>>2]|0)+48>>2]&63](S,t,o)|0)!=(o|0))return e[r>>2]=0,v=0,C=g,v|0;do if((a|0)>0){if(pn(h,a,f),u=0,o=ie(e[(e[S>>2]|0)+48>>2]|0,S|0,(m[h>>0]&1?e[h+8>>2]|0:h+1|0)|0,a|0)|0,v=u,u=0,v&1&&(v=L()|0,H(h),U(v|0)),(o|0)==(a|0)){H(h);break}return e[r>>2]=0,H(h),v=0,C=g,v|0}while(0);return s=s-l|0,(s|0)>0&&(ge[e[(e[S>>2]|0)+48>>2]&63](S,n,s)|0)!=(s|0)?(e[r>>2]=0,v=0,C=g,v|0):(e[c>>2]=0,v=S,C=g,v|0)}function Iu(r){r=r|0,e[r>>2]=36236,H(r+32|0),Q0(r)}function Pu(r){r=r|0,e[r>>2]=36236,H(r+32|0),Q0(r),V(r)}function Eu(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(l=t+44|0,a=e[l>>2]|0,h=t+24|0,S=e[h>>2]|0,a>>>0>>0&&(e[l>>2]=S,a=S),c=a,l=f&24,!l){t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1;return}if((o|0)==1&(l|0)==24){t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1;return}e:do switch(o|0){case 0:{l=0,o=0;break}case 1:if(f&8){o=(e[t+12>>2]|0)-(e[t+8>>2]|0)|0,l=o,o=((o|0)<0)<<31>>31;break e}else{o=S-(e[t+20>>2]|0)|0,l=o,o=((o|0)<0)<<31>>31;break e}case 2:{l=t+32|0,m[l>>0]&1?l=e[t+40>>2]|0:l=l+1|0,o=a-l|0,l=o,o=((o|0)<0)<<31>>31;break}default:{t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1;return}}while(0);if(o=L2(l|0,o|0,n|0,s|0)|0,n=o0,(n|0)>=0&&(l=t+32|0,m[l>>0]&1?l=e[t+40>>2]|0:l=l+1|0,s=a-l|0,a=((s|0)<0)<<31>>31,!((a|0)<(n|0)|(a|0)==(n|0)&s>>>0>>0))){if(l=f&8,!((o|0)==0&(n|0)==0)){if(l|0&&!(e[t+12>>2]|0)){t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1;return}if((f&16|0)!=0&(S|0)==0){t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1;return}}l&&(e[t+12>>2]=(e[t+8>>2]|0)+o,e[t+16>>2]=c),f&16&&(e[h>>2]=(e[t+20>>2]|0)+o),t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=o,e[t+4>>2]=n;return}t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function Lu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,n=n+8|0,ui[e[(e[t>>2]|0)+16>>2]&15](r,t,e[n>>2]|0,e[n+4>>2]|0,0,s)}function Fu(r){r=r|0;var t=0,n=0,s=0,o=0;return t=r+44|0,n=e[t>>2]|0,s=e[r+24>>2]|0,n>>>0>>0&&(e[t>>2]=s,n=s),!(e[r+48>>2]&8)||(o=r+16|0,t=e[o>>2]|0,s=r+12|0,t>>>0>>0?(s=e[s>>2]|0,e[o>>2]=n,t=n):s=e[s>>2]|0,s>>>0>=t>>>0)?(r=-1,r|0):(r=z[s>>0]|0,r|0)}function Ru(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(s=r+44|0,n=e[s>>2]|0,o=e[r+24>>2]|0,n>>>0>>0&&(e[s>>2]=o,n=o),a=r+8|0,s=e[a>>2]|0,c=r+12|0,f=e[c>>2]|0,l=s,s>>>0>=f>>>0)return r=-1,r|0;if((t|0)==-1)return e[a>>2]=s,e[c>>2]=f+-1,e[r+16>>2]=n,r=0,r|0;if(e[r+48>>2]&16)o=t&255,s=f+-1|0;else if(o=t&255,s=f+-1|0,o<<24>>24!=(m[s>>0]|0))return r=-1,r|0;return e[a>>2]=l,e[c>>2]=s,e[r+16>>2]=n,m[s>>0]=o,r=t,r|0}function Ou(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;if(I=C,C=C+16|0,S=I,(t|0)==-1)return r=0,C=I,r|0;g=r+12|0,v=r+8|0,k=(e[g>>2]|0)-(e[v>>2]|0)|0,D=r+24|0,n=e[D>>2]|0,h=r+28|0,s=e[h>>2]|0;do if((n|0)==(s|0)){if(a=r+48|0,!(e[a>>2]&16))return r=-1,C=I,r|0;if(c=r+20|0,l=e[c>>2]|0,o=n-l|0,f=r+44|0,l=(e[f>>2]|0)-l|0,s=r+32|0,u=0,e0(67,s|0,0),n=u,u=0,!(n&1)&&(m[s>>0]&1?n=(e[s>>2]&-2)+-1|0:n=10,u=0,c0(8,s|0,n|0,0),n=u,u=0,!(n&1))){n=m[s>>0]|0,n&1?(s=e[r+40>>2]|0,n=e[r+36>>2]|0):(s=s+1|0,n=(n&255)>>>1),E=s+n|0,e[c>>2]=s,e[h>>2]=E,c=s+o|0,e[D>>2]=c,n=s+l|0,e[f>>2]=n,s=E;break}return E=L(0)|0,H2(E|0)|0,K2(),E=-1,C=I,E|0}else E=r+44|0,a=r+48|0,f=E,c=n,n=e[E>>2]|0;while(0);return l=c+1|0,e[S>>2]=l,o=e[(l>>>0>>0?f:S)>>2]|0,e[f>>2]=o,e[a>>2]&8&&(n=r+32|0,m[n>>0]&1?n=e[r+40>>2]|0:n=n+1|0,e[v>>2]=n,e[g>>2]=n+k,e[r+16>>2]=o),(c|0)==(s|0)?(E=M2[e[(e[r>>2]|0)+52>>2]&63](r,t&255)|0,C=I,E|0):(e[D>>2]=l,m[c>>0]=t,E=t&255,C=I,E|0)}function Mu(r){r=r|0;var t=0,n=0;e[r>>2]=36200,t=r+56|0,e[t>>2]=36220,n=r+4|0,e[n>>2]=36236,H(r+36|0),Q0(n),y0(t)}function xu(r){r=r|0;var t=0,n=0;e[r>>2]=36200,t=r+56|0,e[t>>2]=36220,n=r+4|0,e[n>>2]=36236,H(r+36|0),Q0(n),y0(t),V(r)}function qu(r){r=r|0;var t=0,n=0,s=0,o=0;o=e[(e[r>>2]|0)+-12>>2]|0,t=r+o|0,e[t>>2]=36200,n=r+(o+56)|0,e[n>>2]=36220,s=r+(o+4)|0,e[s>>2]=36236,H(r+(o+36)|0),Q0(s),y0(n),V(t)}function Nu(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36388,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function Uu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36388,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function Bu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+36|0,!(e[o>>2]|0)){a=r+40|0,Js(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,Js(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function Qu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){Gu(r,o,t,n,s);return}else{o=r+40|0,zt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function zt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;a=r+4|0,f=e[a>>2]|0;do if(!(m[f+32>>0]|0))c=t;else{if(r=r+8|0,Ne(e[r>>2]|0,t|0,s*6|0)|0,f=e[a>>2]|0,l=e[f+16>>2]|0,(s|0)<=0){c=e[r>>2]|0;break}for(r=e[r>>2]|0,f=r,t=0;c=f+4|0,h=R[f>>1]|0,R[f>>1]=R[c>>1]|0,R[c>>1]=h,t=t+1|0,(t|0)!=(s|0);)f=f+(l<<1)|0;c=r,f=e[a>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do a=b[c+(f*6|0)+2>>1]|0,o=32768-a+(b[c+(f*6|0)+4>>1]|0)|0,h=(b[c+(f*6|0)>>1]|0)-a+32768|0,R[n+(f*6|0)>>1]=a+49152+(((o&65535)+(h&65535)|0)>>>2),R[n+(f*6|0)+2>>1]=o,R[n+(f*6|0)+4>>1]=h,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do a=b[c+(t*6|0)+2>>1]|0,s=32768-a+(b[c+(t*6|0)+4>>1]|0)|0,h=(b[c+(t*6|0)>>1]|0)-a+32768|0,R[n+(t<<1)>>1]=a+49152+(((s&65535)+(h&65535)|0)>>>2),R[n+(t+o<<1)>>1]=s,R[n+(t+r<<1)>>1]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do h=R[c+(l<<3)+6>>1]|0,S=b[c+(l<<3)+2>>1]|0,a=32768-S+(b[c+(l<<3)+4>>1]|0)|0,s=(b[c+(l<<3)>>1]|0)-S+32768|0,R[n+(l<<1)>>1]=S+49152+(((a&65535)+(s&65535)|0)>>>2),R[n+(l+o<<1)>>1]=a,R[n+(l+r<<1)>>1]=s,R[n+(l+t<<1)>>1]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function Gu(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,zt(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,zt(r,D,n,s,o),C=g}function Js(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(a=b[t+(r*6|0)+2>>1]|0,l=b[t+(r*6|0)+4>>1]|0,o=(b[t+(r*6|0)>>1]|0)-((l+a|0)>>>2)+16384|0,R[n+(r*6|0)>>1]=l+32768+o,R[n+(r*6|0)+2>>1]=o,R[n+(r*6|0)+4>>1]=a+32768+o,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do h=b[t+(l+o<<1)>>1]|0,S=b[t+(l+f<<1)>>1]|0,a=(b[t+(l<<1)>>1]|0)-((S+h|0)>>>2)+16384|0,R[n+(l*6|0)>>1]=S+32768+a,R[n+(l*6|0)+2>>1]=a,R[n+(l*6|0)+4>>1]=h+32768+a,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do h=b[t+(l+o<<1)>>1]|0,g=b[t+(l+r<<1)>>1]|0,S=(b[t+(l<<1)>>1]|0)-((g+h|0)>>>2)+16384|0,v=R[t+(l+f<<1)>>1]|0,k=o2(S&65535|0,0,16)|0,h=h+32768+S|o0,v=o2(v&65535|0,0,48)|0,v=k|g+32768+S&65535|v,h=h&65535|o0,S=n+(l<<3)|0,g=S,R[g>>1]=v,R[g+2>>1]=v>>>16,S=S+4|0,R[S>>1]=h,R[S+2>>1]=h>>>16,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)&&(l=e[r+16>>2]|0,!((s|0)<=0)))for(r=n,f=0;k=r+4|0,v=R[r>>1]|0,R[r>>1]=R[k>>1]|0,R[k>>1]=v,f=f+1|0,(f|0)!=(s|0);)r=r+(l<<1)|0}function Vu(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36412,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function Hu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36412,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function zu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+36|0,!(e[o>>2]|0)){a=r+40|0,Ks(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,Ks(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function Yu(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){Xu(r,o,t,n,s);return}else{o=r+40|0,Yt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Yt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;a=r+4|0,f=e[a>>2]|0;do if(!(m[f+32>>0]|0))c=t;else{if(r=r+8|0,Ne(e[r>>2]|0,t|0,s*6|0)|0,f=e[a>>2]|0,l=e[f+16>>2]|0,(s|0)<=0){c=e[r>>2]|0;break}for(r=e[r>>2]|0,f=r,t=0;c=f+4|0,h=R[f>>1]|0,R[f>>1]=R[c>>1]|0,R[c>>1]=h,t=t+1|0,(t|0)!=(s|0);)f=f+(l<<1)|0;c=r,f=e[a>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do l=b[c+(f*6|0)>>1]|0,o=R[c+(f*6|0)+2>>1]|0,a=o&65535,h=(b[c+(f*6|0)+4>>1]|0)+32768-((a+l|0)>>>1)&65535,R[n+(f*6|0)>>1]=l+32768-a,R[n+(f*6|0)+2>>1]=o,R[n+(f*6|0)+4>>1]=h,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do s=R[c+(t*6|0)+2>>1]|0,l=b[c+(t*6|0)>>1]|0,a=s&65535,h=(b[c+(t*6|0)+4>>1]|0)+32768-((a+l|0)>>>1)&65535,R[n+(t<<1)>>1]=l+32768-a,R[n+(t+o<<1)>>1]=s,R[n+(t+r<<1)>>1]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do a=R[c+(l<<3)+2>>1]|0,h=R[c+(l<<3)+6>>1]|0,g=b[c+(l<<3)>>1]|0,S=a&65535,s=(b[c+(l<<3)+4>>1]|0)+32768-((S+g|0)>>>1)&65535,R[n+(l<<1)>>1]=g+32768-S,R[n+(l+o<<1)>>1]=a,R[n+(l+r<<1)>>1]=s,R[n+(l+t<<1)>>1]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function Xu(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,Yt(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,Yt(r,D,n,s,o),C=g}function Ks(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(a=R[t+(r*6|0)+2>>1]|0,o=a&65535,l=(b[t+(r*6|0)>>1]|0)+32768+o|0,o=(b[t+(r*6|0)+4>>1]|0)+32768+(((l&65535)+o|0)>>>1)&65535,R[n+(r*6|0)>>1]=l,R[n+(r*6|0)+2>>1]=a,R[n+(r*6|0)+4>>1]=o,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do h=R[t+(l+o<<1)>>1]|0,a=h&65535,S=(b[t+(l<<1)>>1]|0)+32768+a|0,a=(b[t+(l+f<<1)>>1]|0)+32768+(((S&65535)+a|0)>>>1)&65535,R[n+(l*6|0)>>1]=S,R[n+(l*6|0)+2>>1]=h,R[n+(l*6|0)+4>>1]=a,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do S=R[t+(l+o<<1)>>1]|0,h=S&65535,g=(b[t+(l<<1)>>1]|0)+32768+h&65535,h=(b[t+(l+r<<1)>>1]|0)+32768+((g+h|0)>>>1)|0,v=R[t+(l+f<<1)>>1]|0,S=o2(S&65535|0,0,16)|0,h=o0|h,v=o2(v&65535|0,0,48)|0,v=g|S|v,h=h&65535|o0,S=n+(l<<3)|0,g=S,R[g>>1]=v,R[g+2>>1]=v>>>16,S=S+4|0,R[S>>1]=h,R[S+2>>1]=h>>>16,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)&&(l=e[r+16>>2]|0,!((s|0)<=0)))for(r=n,f=0;v=r+4|0,g=R[r>>1]|0,R[r>>1]=R[v>>1]|0,R[v>>1]=g,f=f+1|0,(f|0)!=(s|0);)r=r+(l<<1)|0}function ju(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36436,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function Wu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36436,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function Ju(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+36|0,!(e[o>>2]|0)){a=r+40|0,Zs(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,Zs(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function Ku(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){Zu(r,o,t,n,s);return}else{o=r+40|0,Xt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Xt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;a=r+4|0,f=e[a>>2]|0;do if(!(m[f+32>>0]|0))c=t;else{if(r=r+8|0,Ne(e[r>>2]|0,t|0,s*6|0)|0,f=e[a>>2]|0,l=e[f+16>>2]|0,(s|0)<=0){c=e[r>>2]|0;break}for(r=e[r>>2]|0,f=r,t=0;c=f+4|0,h=R[f>>1]|0,R[f>>1]=R[c>>1]|0,R[c>>1]=h,t=t+1|0,(t|0)!=(s|0);)f=f+(l<<1)|0;c=r,f=e[a>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do o=R[c+(f*6|0)+2>>1]|0,a=o&65535,h=32768-a+(b[c+(f*6|0)+4>>1]|0)&65535,R[n+(f*6|0)>>1]=(b[c+(f*6|0)>>1]|0)+32768-a,R[n+(f*6|0)+2>>1]=o,R[n+(f*6|0)+4>>1]=h,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do s=R[c+(t*6|0)+2>>1]|0,a=s&65535,h=32768-a+(b[c+(t*6|0)+4>>1]|0)&65535,R[n+(t<<1)>>1]=(b[c+(t*6|0)>>1]|0)+32768-a,R[n+(t+o<<1)>>1]=s,R[n+(t+r<<1)>>1]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do a=R[c+(l<<3)+2>>1]|0,h=R[c+(l<<3)+6>>1]|0,S=a&65535,s=32768-S+(b[c+(l<<3)+4>>1]|0)&65535,R[n+(l<<1)>>1]=(b[c+(l<<3)>>1]|0)+32768-S,R[n+(l+o<<1)>>1]=a,R[n+(l+r<<1)>>1]=s,R[n+(l+t<<1)>>1]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function Zu(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,Xt(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,Xt(r,D,n,s,o),C=g}function Zs(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(a=R[t+(r*6|0)+2>>1]|0,l=a&65535,o=l+32768+(b[t+(r*6|0)+4>>1]|0)&65535,R[n+(r*6|0)>>1]=(b[t+(r*6|0)>>1]|0)+32768+l,R[n+(r*6|0)+2>>1]=a,R[n+(r*6|0)+4>>1]=o,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do h=R[t+(l+o<<1)>>1]|0,S=h&65535,a=S+32768+(b[t+(l+f<<1)>>1]|0)&65535,R[n+(l*6|0)>>1]=(b[t+(l<<1)>>1]|0)+32768+S,R[n+(l*6|0)+2>>1]=h,R[n+(l*6|0)+4>>1]=a,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do S=R[t+(l+o<<1)>>1]|0,h=S&65535,g=(b[t+(l<<1)>>1]|0)+32768+h|0,h=h+32768+(b[t+(l+r<<1)>>1]|0)|0,v=R[t+(l+f<<1)>>1]|0,S=o2(S&65535|0,0,16)|0,h=o0|h,v=o2(v&65535|0,0,48)|0,v=g&65535|S|v,h=h&65535|o0,S=n+(l<<3)|0,g=S,R[g>>1]=v,R[g+2>>1]=v>>>16,S=S+4|0,R[S>>1]=h,R[S+2>>1]=h>>>16,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)&&(l=e[r+16>>2]|0,!((s|0)<=0)))for(r=n,f=0;v=r+4|0,g=R[r>>1]|0,R[r>>1]=R[v>>1]|0,R[v>>1]=g,f=f+1|0,(f|0)!=(s|0);)r=r+(l<<1)|0}function $u(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=36460,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,s&&(t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s))}function bu(r){r=r|0;var t=0,n=0,s=0;if(e[r>>2]=36460,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),s=e[r+8>>2]|0,!s){V(r);return}t=r+12|0,n=e[t>>2]|0,(n|0)!=(s|0)&&(e[t>>2]=n+(~((n+-2-s|0)>>>1)<<1)),V(s),V(r)}function e6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;if(o=r+36|0,!(e[o>>2]|0)){a=r+40|0,$s(r,t,e[a>>2]|0,n,s),e[a>>2]=(e[a>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}c=r+4|0,f=n<<1,l=Z(f,e[(e[c>>2]|0)+16>>2]|0)|0,a=r+20|0,$s(r,t,e[a>>2]|0,n,s),t=e[c>>2]|0,(e[t+28>>2]|0)==536870912&&Z2(e[a>>2]|0,Z(f,e[t+16>>2]|0)|0),c=e[o>>2]|0,(ge[e[(e[c>>2]|0)+48>>2]&63](c,e[a>>2]|0,l)|0)!=(l|0)&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,3,35648),c=u,u=0,c&1?(c=L()|0,z0(t|0),U(c|0)):me(t|0,824,96))}function i6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){r6(r,o,t,n,s);return}else{o=r+40|0,jt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function jt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0;a=r+4|0,f=e[a>>2]|0;do if(!(m[f+32>>0]|0))c=t;else{if(r=r+8|0,Ne(e[r>>2]|0,t|0,s*6|0)|0,f=e[a>>2]|0,l=e[f+16>>2]|0,(s|0)<=0){c=e[r>>2]|0;break}for(r=e[r>>2]|0,f=r,t=0;c=f+4|0,h=R[f>>1]|0,R[f>>1]=R[c>>1]|0,R[c>>1]=h,t=t+1|0,(t|0)!=(s|0);)f=f+(l<<1)|0;c=r,f=e[a>>2]|0}while(0);switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do o=R[c+(f*6|0)+2>>1]|0,h=R[c+(f*6|0)+4>>1]|0,R[n+(f*6|0)>>1]=R[c+(f*6|0)>>1]|0,R[n+(f*6|0)+2>>1]=o,R[n+(f*6|0)+4>>1]=h,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do s=R[c+(t*6|0)+2>>1]|0,h=R[c+(t*6|0)+4>>1]|0,R[n+(t<<1)>>1]=R[c+(t*6|0)>>1]|0,R[n+(t+o<<1)>>1]=s,R[n+(t+r<<1)>>1]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do a=R[c+(l<<3)+2>>1]|0,s=R[c+(l<<3)+4>>1]|0,h=R[c+(l<<3)+6>>1]|0,R[n+(l<<1)>>1]=R[c+(l<<3)>>1]|0,R[n+(l+o<<1)>>1]=a,R[n+(l+r<<1)>>1]=s,R[n+(l+t<<1)>>1]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function r6(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;g=C,C=C+176|0,v=g+152|0,D=g+16|0,k=g,c=r+4|0,f=e[c>>2]|0,S=s<<1,l=Z(S,e[f+16>>2]|0)|0;do if(l){for(a=r+20|0;f=ge[e[(e[t>>2]|0)+32>>2]&63](t,e[a>>2]|0,l)|0,!!f;)if((l|0)==(f|0)){h=26;break}else l=l-f|0;if((h|0)==26){f=e[c>>2]|0;break}h=D+56|0,c=D+4|0,e[D>>2]=36160,e[h>>2]=36180,u=0,e0(62,D+56|0,c|0),g=u,u=0,g&1&&(D=L()|0,y0(h),U(D|0)),e[D+128>>2]=0,e[D+132>>2]=-1,e[D>>2]=36200,e[D+56>>2]=36220,u=0,I0(180,c|0),g=u,u=0;do if(g&1)f=L()|0;else{if(e[c>>2]=36236,t=D+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[D+52>>2]=16,e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,u=0,e0(63,c|0,v|0),g=u,u=0,g&1){f=L()|0,H(v),H(t),Q0(c);break}H(v),u=0,f=ie(28,D|0,49029,57)|0,v=u,u=0,!(v&1)&&(u=0,p0(36,f|0,0)|0,v=u,u=0,!(v&1))&&(a=H0(16)|0,u=0,e0(64,k|0,c|0),v=u,u=0,v&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,k|0),v=u,u=0,v&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(k),l||(k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0))),z0(a|0),k=f,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)),k=L()|0,e[D>>2]=36200,e[h>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(h),U(k|0)}while(0);D=f,y0(h),U(D|0)}while(0);if(l=r+20|0,(e[f+28>>2]|0)!=536870912){D=e[l>>2]|0,jt(r,D,n,s,o),C=g;return}Z2(e[l>>2]|0,Z(S,e[f+16>>2]|0)|0),D=e[l>>2]|0,jt(r,D,n,s,o),C=g}function $s(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(a=R[t+(r*6|0)+2>>1]|0,o=R[t+(r*6|0)+4>>1]|0,R[n+(r*6|0)>>1]=R[t+(r*6|0)>>1]|0,R[n+(r*6|0)+2>>1]=a,R[n+(r*6|0)+4>>1]=o,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do h=R[t+(l+o<<1)>>1]|0,a=R[t+(l+f<<1)>>1]|0,R[n+(l*6|0)>>1]=R[t+(l<<1)>>1]|0,R[n+(l*6|0)+2>>1]=h,R[n+(l*6|0)+4>>1]=a,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do h=R[t+(l<<1)>>1]|0,v=R[t+(l+f<<1)>>1]|0,S=b[t+(l+r<<1)>>1]|0,g=o2(b[t+(l+o<<1)>>1]|0,0,16)|0,S=o0|S,v=o2(v&65535|0,0,48)|0,v=g|h&65535|v,S=S&65535|o0,h=n+(l<<3)|0,g=h,R[g>>1]=v,R[g+2>>1]=v>>>16,h=h+4|0,R[h>>1]=S,R[h+2>>1]=S>>>16,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)&&(l=e[r+16>>2]|0,!((s|0)<=0)))for(r=n,f=0;v=r+4|0,g=R[r>>1]|0,R[r>>1]=R[v>>1]|0,R[v>>1]=g,f=f+1|0,(f|0)!=(s|0);)r=r+(l<<1)|0}function t6(r){r=r|0}function n6(r){r=r|0,V(r)}function s6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,n=Z(e[r+8>>2]|0,n)|0,r=e[r+4>>2]|0,(ge[e[(e[r>>2]|0)+48>>2]&63](r,t,n)|0)!=(n|0)&&(s=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,s|0,3,35648),r=u,u=0,r&1?(r=L()|0,z0(s|0),U(r|0)):me(s|0,824,96))}function o6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;S=C,C=C+16|0,h=S,c=r+8|0,o=e[c>>2]|0,s=Z(o,n)|0;do if(s){for(l=r+4|0,f=s;o=e[l>>2]|0,o=ge[e[(e[o>>2]|0)+32>>2]&63](o,t,f)|0,!!o;)if(s=f-o|0,(f|0)==(o|0)){a=11;break}else f=s;if((a|0)==11){o=e[c>>2]|0,f=s;break}s=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,s|0,3,35648),r=u,u=0,r&1?(r=L()|0,z0(s|0),U(r|0)):me(s|0,824,96)}else f=0;while(0);if((o|0)==2&&(Z2(t,n<<1),o=e[c>>2]|0),s=e[r+12>>2]|0,(s|0)<=(Z(o,n)|0)){C=S;return}r=e[r+4>>2]|0,ui[e[(e[r>>2]|0)+16>>2]&15](h,r,s-f|0,0,1,24),C=S}function f6(r){r=r|0,V(r)}function l6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,s=r+4|0,Ne(e[s>>2]|0,t|0,Z(e[r+8>>2]|0,n)|0)|0,e[s>>2]=(e[s>>2]|0)+(e[r+12>>2]|0)}function u6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,s=r+4|0,Ne(t|0,e[s>>2]|0,Z(e[r+8>>2]|0,n)|0)|0,e[s>>2]=(e[s>>2]|0)+(e[r+12>>2]|0)}function z2(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;e[r+112>>2]=0,e[r+108>>2]=0,h=e[t>>2]|0,o=h;do if(h)if(l=r+92|0,h=r+96|0,a=e[h>>2]|0,c=e[l>>2]|0,n=c,s=a-n|0,s>>>0>=4e4?(s>>>0>4e4&&(f=c+4e4|0,(a|0)!=(f|0))&&(e[h>>2]=f),f=n):(O1(l,4e4-s|0),f=e[l>>2]|0,o=e[t>>2]|0),n=r+116|0,e[n>>2]=f,a=r+124|0,e[a>>2]=f,c=r+104|0,e[c>>2]=o,s=o,o){if((e[s+12>>2]|0)==(e[s+16>>2]|0)){if(t=(X0[e[(e[o>>2]|0)+36>>2]&127](s)|0)==-1,s=e[a>>2]|0,t)break;o=e[n>>2]|0}else s=f,o=f;if(l=s-o|0,l>>>0<=64){if(f=r+92|0,(s|0)==(o|0))s=o;else{s=o,o=0;do m[(e[f>>2]|0)+o>>0]=m[s+o>>0]|0,o=o+1|0,s=e[n>>2]|0;while(o>>>0>>0);o=e[a>>2]|0}f=e[f>>2]|0,t=f,S=t-s|0,e[n>>2]=f,s=o+S|0,e[a>>2]=s,f=r+120|0,e[f>>2]=(e[f>>2]|0)+S,c=e[c>>2]|0,s=ge[e[(e[c>>2]|0)+32>>2]&63](c,s,(e[h>>2]|0)-(t+l)|0)|0,s=(e[a>>2]|0)+s|0,e[a>>2]=s}}else s=f;else e[r+104>>2]=0,s=e[t+4>>2]|0,n=r+116|0,e[n>>2]=s,s=s+(e[t+8>>2]|0)|0,e[r+124>>2]=s;while(0);if(n=e[n>>2]|0,n>>>0>=s>>>0){h=n,S=r+120|0,e[S>>2]=h,D2(r);return}for(;;){if((m[n>>0]|0)==-1){s=20;break}if(n=n+1|0,n>>>0>=s>>>0){s=20;break}}if((s|0)==20){S=r+120|0,e[S>>2]=n,D2(r);return}}function O1(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(c=r+8|0,o=e[c>>2]|0,h=r+4|0,n=e[h>>2]|0,s=n,(o-s|0)>>>0>=t>>>0){do m[n>>0]=0,n=(e[h>>2]|0)+1|0,e[h>>2]=n,t=t+-1|0;while(t|0);return}n=e[r>>2]|0,f=s-n+t|0,(f|0)<0&&(_1(r),o=e[c>>2]|0,n=e[r>>2]|0),s=o-n|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?f:s,n=(e[h>>2]|0)-n|0,s?a=8:(o=0,l=0,f=n)):(s=2147483647,n=(e[h>>2]|0)-n|0,a=8),(a|0)==8&&(o=s,l=C0(s)|0,f=n),n=l+f|0,o=l+o|0,s=n;do m[s>>0]=0,s=n+1|0,n=s,t=t+-1|0;while(t|0);t=e[r>>2]|0,s=(e[h>>2]|0)-t|0,a=l+(f-s)|0,Ne(a|0,t|0,s|0)|0,e[r>>2]=a,e[h>>2]=n,e[c>>2]=o,t&&V(t)}function bs(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;_=C,C=C+32|0,w=_+12|0,E=_,k=r+180|0,D=(e[k>>2]|0)+4|0,(e[r+32>>2]|0)==1?I=e[r+24>>2]|0:I=1,t=Z(I<<1,D)|0,e[w>>2]=0,d=w+4|0,e[d>>2]=0,e[w+8>>2]=0;do if(t){if((t|0)<0&&(u=0,I0(178,w|0),y=u,u=0,y&1)||(l=6),(l|0)==6&&(n=t<<1,u=0,s=j(67,n|0)|0,y=u,u=0,!(y&1))){e[w>>2]=s,y=s+(t<<1)|0,e[w+8>>2]=y,ye(s|0,0,n|0)|0,e[d>>2]=y;break}s=L()|0,t=e[w>>2]|0,t||U(s|0),n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}while(0);e[E>>2]=0,y=E+4|0,e[y>>2]=0,e[E+8>>2]=0;do if(!I)l=18;else{if(I>>>0>1073741823&&(u=0,I0(178,E|0),v=u,u=0,v&1)||(l=16),(l|0)==16&&(o=I<<2,u=0,f=j(67,o|0)|0,v=u,u=0,!(v&1))){e[E>>2]=f,l=f+(I<<2)|0,e[E+8>>2]=l,ye(f|0,0,o|0)|0,e[y>>2]=l,l=18;break}s=L()|0,t=e[E>>2]|0,n=t,t&&(o=e[y>>2]|0,(o|0)!=(t|0)&&(e[y>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==18){f=r+12|0;e:do if((e[f>>2]|0)>0){l=r+4604|0,a=(Z(I,D)|0)+1|0,c=r+4608|0,h=r+92|0,S=(I|0)>0,g=r+4600|0,v=0;i:for(;;){if(n=e[w>>2]|0,t=n+2|0,e[l>>2]=t,n=n+(a<<1)|0,e[c>>2]=n,v&1?(e[l>>2]=n,e[c>>2]=t):t=n,o=e[h>>2]|0,u=0,w0(e[(e[o>>2]|0)+12>>2]|0,o|0,t|0,e[k>>2]|0,D|0),o=u,u=0,o&1){l=28;break}if(S){t=e[l>>2]|0,n=e[c>>2]|0,s=e[E>>2]|0,o=0;do{if(e[g>>2]=e[s+(o<<2)>>2],s=e[k>>2]|0,R[t+(s<<1)>>1]=R[t+(s+-1<<1)>>1]|0,R[n+-2>>1]=R[t>>1]|0,u=0,e0(68,r|0,0),s=u,u=0,s&1){l=27;break i}s=e[E>>2]|0,e[s+(o<<2)>>2]=e[g>>2],t=(e[l>>2]|0)+(D<<1)|0,e[l>>2]=t,n=(e[c>>2]|0)+(D<<1)|0,e[c>>2]=n,o=o+1|0}while((o|0)<(I|0))}if(v=v+1|0,(v|0)>=(e[f>>2]|0)){l=40;break e}}if((l|0)==27){s=L()|0;break}else if((l|0)==28){s=L()|0;break}}else l=40;while(0);do if((l|0)==40){if(u=0,I0(182,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[E>>2]|0,n=t,t&&(s=e[y>>2]|0,(s|0)!=(t|0)&&(e[y>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[w>>2]|0,!t){C=_;return}n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),C=_;return}while(0);t=e[E>>2]|0,n=t,t&&(o=e[y>>2]|0,(o|0)!=(t|0)&&(e[y>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[w>>2]|0,t||U(s|0),n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}function a6(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4604|0,t=e[g>>2]|0,D=r+180|0,!((e[D>>2]|0)<=0))for(v=r+4608|0,k=r+4612|0,o=t,f=b[t+-2>>1]|0,t=b[t>>1]|0,S=0;h=e[v>>2]|0,c=b[h+(S+-1<<1)>>1]|0,s=S+1|0,n=b[o+(s<<1)>>1]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=S6(r,a,b[h+(S<<1)>>1]|0,o,0)|0,R[(e[v>>2]|0)+(S<<1)>>1]=h):(s=(h6(r,S,0)|0)+S|0,n=e[g>>2]|0,t=b[n+(s+-1<<1)>>1]|0,n=b[n+(s<<1)>>1]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function c6(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;o=r+104|0,(e[o>>2]|0)>>>0<4&&zi(r),f=r+100|0,l=r+112|0,a=r+96|0,c=r+108|0,h=r+116|0,t=e[f>>2]|0,s=0;do{if(n=m[l>>0]|0,(t|0)>31)break;t=e[a>>2]|0,n<<24>>24?(m[e[c>>2]>>0]=t>>>25,e[a>>2]=e[a>>2]<<7,t=(e[f>>2]|0)+7|0):(m[e[c>>2]>>0]=t>>>24,e[a>>2]=e[a>>2]<<8,t=(e[f>>2]|0)+8|0),e[f>>2]=t,S=e[c>>2]|0,n=(m[S>>0]|0)==-1&1,m[l>>0]=n,e[c>>2]=S+1,e[o>>2]=(e[o>>2]|0)+-1,e[h>>2]=(e[h>>2]|0)+1,s=s+1|0}while((s|0)<4);n<<24>>24?$0(r,0,(t+-1|0)%8|0):$0(r,0,(t|0)%8|0),(e[o>>2]|0)>>>0<4&&zi(r),t=e[f>>2]|0,n=0;do{if((t|0)>31)break;t=e[a>>2]|0,m[l>>0]|0?(m[e[c>>2]>>0]=t>>>25,e[a>>2]=e[a>>2]<<7,t=(e[f>>2]|0)+7|0):(m[e[c>>2]>>0]=t>>>24,e[a>>2]=e[a>>2]<<8,t=(e[f>>2]|0)+8|0),e[f>>2]=t,S=e[c>>2]|0,m[l>>0]=(m[S>>0]|0)==-1&1,e[c>>2]=S+1,e[o>>2]=(e[o>>2]|0)+-1,e[h>>2]=(e[h>>2]|0)+1,n=n+1|0}while((n|0)<4);e[r+132>>2]|0&&zi(r)}function zi(r){r=r|0;var t=0,n=0,s=0,o=0,f=0;if(t=e[r+132>>2]|0,t||(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,4,35648),r=u,u=0,r&1||me(t|0,824,96),r=L()|0,z0(t|0),U(r|0)),n=r+108|0,s=r+120|0,f=e[s>>2]|0,o=(e[n>>2]|0)-f|0,(ge[e[(e[t>>2]|0)+48>>2]&63](t,f,o)|0)==(o|0)){f=e[s>>2]|0,e[n>>2]=f,e[r+104>>2]=(e[r+124>>2]|0)-f;return}t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,4,35648),f=u,u=0,f&1||me(t|0,824,96),f=L()|0,z0(t|0),U(f|0)}function $0(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;if(h=r+100|0,n=(e[h>>2]|0)-n|0,e[h>>2]=n,(n|0)>-1){S=r+96|0,e[S>>2]=e[S>>2]|t<>2]=e[S>>2]|t>>0-n,c=r+104|0,(e[c>>2]|0)>>>0<4&&(zi(r),n=e[h>>2]|0),f=r+112|0,l=r+108|0,a=r+116|0,s=0;!((n|0)>31);)if(n=e[S>>2]|0,m[f>>0]|0?(m[e[l>>2]>>0]=n>>>25,e[S>>2]=e[S>>2]<<7,n=(e[h>>2]|0)+7|0):(m[e[l>>2]>>0]=n>>>24,e[S>>2]=e[S>>2]<<8,n=(e[h>>2]|0)+8|0),e[h>>2]=n,g=e[l>>2]|0,m[f>>0]=(m[g>>0]|0)==-1&1,e[l>>2]=g+1,e[c>>2]=(e[c>>2]|0)+-1,e[a>>2]=(e[a>>2]|0)+1,s=s+1|0,(s|0)>=4){o=11;break}e:do if((o|0)==11&&(n|0)<0){e[S>>2]=e[S>>2]|t>>0-n,(e[c>>2]|0)>>>0<4&&(zi(r),n=e[h>>2]|0),s=0;do{if((n|0)>31)break e;n=e[S>>2]|0,m[f>>0]|0?(m[e[l>>2]>>0]=n>>>25,e[S>>2]=e[S>>2]<<7,n=(e[h>>2]|0)+7|0):(m[e[l>>2]>>0]=n>>>24,e[S>>2]=e[S>>2]<<8,n=(e[h>>2]|0)+8|0),e[h>>2]=n,g=e[l>>2]|0,m[f>>0]=(m[g>>0]|0)==-1&1,e[l>>2]=g+1,e[c>>2]=(e[c>>2]|0)+-1,e[a>>2]=(e[a>>2]|0)+1,s=s+1|0}while((s|0)<4)}while(0);e[S>>2]=e[S>>2]|t<>31,f=(I^t)-I|0,k=r+196+(f*12|0)+10|0,l=R[k>>1]|0,v=r+196+(f*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(t=5;(l<>1]^I)-I+s|0,D=r+136|0,s=e[D>>2]|0,(o&s|0)==(o|0)?h=o:h=s&~(o>>31),o=(n-h^I)-I|0,c=r+144|0,s=e[c>>2]|0,(o|0)>0?o=(o+s|0)/(s<<1|1|0)|0:o=(o-s|0)/(s<<1|1|0)|0,g=r+140|0,a=e[g>>2]|0,n=((o|0)<0?a:0)+o|0,a=n-((n|0)<((a+1|0)/2|0|0)?0:a)|0,f=r+196+(f*12|0)+4|0,s|t?o=0:o=(e[f>>2]<<1)+-1+l>>31,s=o^a,io(r,t,s>>30^s<<1,e[r+156>>2]|0),s=e[r+160>>2]|0,t=(e[v>>2]|0)+((a|0)>-1?a:0-a|0)|0,o=(e[f>>2]|0)+(Z(e[c>>2]<<1|1,a)|0)|0,n=R[k>>1]|0,(n|0)==(s|0)&&(t=t>>1,o=o>>1,n=s>>1),e[v>>2]=t,s=n+1|0,R[k>>1]=s,t=s+o|0,(t|0)>=1?(o|0)>0&&(o=o-s|0,k=R[S>>1]|0,R[S>>1]=(k<<16>>16<127&1)+(k&65535),o=(o|0)>0?0:o):(o=R[S>>1]|0,R[S>>1]=(o&65535)-(o<<16>>16>-128&1),o=(t|0)>(~n|0)?t:0-n|0),e[f>>2]=o,s=e[c>>2]|0,n=s<<1|1,t=(Z(n,(a^I)-I|0)|0)+h|0,(t|0)>=(0-s|0)?(o=e[D>>2]|0,(o+s|0)<(t|0)&&(t=t-(Z(e[g>>2]|0,n)|0)|0)):(t=(Z(e[g>>2]|0,n)|0)+t|0,o=e[D>>2]|0),(t&o|0)==(t|0)?(I=t,I=I&65535,I|0):(I=o&~(t>>31),I=I&65535,I|0)}function h6(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;for(c=(e[r+180>>2]|0)-t|0,h=e[r+4608>>2]|0,S=e[r+4604>>2]|0,o=R[h+(t+-1<<1)>>1]|0,a=o&65535,n=e[r+144>>2]|0,f=0;s=h+(f+t<<1)|0,l=(b[s>>1]|0)-a|0,!((((l|0)>-1?l:0-l|0)|0)>(n|0));)if(R[s>>1]=o,f=f+1|0,(f|0)==(c|0)){f=c;break}if(o=(f|0)==(c|0),l=r+4600|0,s=e[36476+(e[l>>2]<<2)>>2]|0,(1<(f|0))n=f;else{n=f;do $0(r,1,1),s=e[l>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[l>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>1]|0,a,b[S+(c<<1)>>1]|0)|0,R[t>>1]=r,r=e[l>>2]|0,e[l>>2]=(r|0)<1?0:r+-1|0,r=f+1|0,r|0)}function m6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;return a=n-s|0,c=r+136|0,l=r+144|0,o=e[l>>2]|0,(((a|0)>-1?a:0-a|0)|0)>(o|0)?(f=s-n>>31|1,t=Z(f,t-s|0)|0,(t|0)>0?t=(o+t|0)/(o<<1|1|0)|0:t=(t-o|0)/(o<<1|1|0)|0,a=r+140|0,o=e[a>>2]|0,n=((t|0)<0?o:0)+t|0,o=n-((n|0)<((o+1|0)/2|0|0)?0:o)|0,eo(r,r+4576|0,o),o=Z(o,f)|0,f=e[l>>2]|0,l=f<<1|1,o=(Z(o,l)|0)+s|0,(o|0)>=(0-f|0)?(t=e[c>>2]|0,(t+f|0)<(o|0)&&(o=o-(Z(e[a>>2]|0,l)|0)|0)):(o=(Z(e[a>>2]|0,l)|0)+o|0,t=e[c>>2]|0),(o&t|0)==(o|0)?(c=o,c=c&65535,c|0):(c=t&~(o>>31),c=c&65535,c|0)):(t=t-n|0,(t|0)>0?t=(o+t|0)/(o<<1|1|0)|0:t=(t-o|0)/(o<<1|1|0)|0,a=r+140|0,o=e[a>>2]|0,f=((t|0)<0?o:0)+t|0,o=f-((f|0)<((o+1|0)/2|0|0)?0:o)|0,eo(r,r+4588|0,o),f=e[l>>2]|0,l=f<<1|1,o=(Z(l,o)|0)+n|0,(o|0)>=(0-f|0)?(t=e[c>>2]|0,(t+f|0)<(o|0)&&(o=o-(Z(e[a>>2]|0,l)|0)|0)):(o=(Z(e[a>>2]|0,l)|0)+o|0,t=e[c>>2]|0),(o&t|0)==(o|0)?(c=o,c=c&65535,c|0):(c=t&~(o>>31),c=c&65535,c|0))}function eo(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,io(r,o,s,(e[r+156>>2]|0)+-1-(e[36476+(e[r+4600>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function io(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=n>>t,f=r+148|0,l=s-(e[f>>2]|0)|0,(o|0)<(l+-1|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-31-(e[f>>2]|0)|0)):$0(r,1,l),t=e[f>>2]|0,$0(r,(1<>2]|0,c=r+120|0,t>>>0<((e[c>>2]|0)+-3|0)>>>0){c=r+112|0,l=e[c>>2]|0,r=r+108|0,e[r>>2]=(z[t+1>>0]<<16|z[t>>0]<<24|z[t+2>>0]<<8|z[t+3>>0])>>>l|e[r>>2],r=32-l>>3,e[a>>2]=t+r,e[c>>2]=(r<<3)+l;return}l=r+104|0,n=e[l>>2]|0;do if(n){if((e[n+12>>2]|0)==(e[n+16>>2]|0)){if((X0[e[(e[n>>2]|0)+36>>2]&127](n)|0)==-1)break;t=e[a>>2]|0}if(o=r+124|0,n=e[o>>2]|0,f=n-t|0,f>>>0<=64){if(s=r+92|0,(n|0)==(t|0))n=t;else{n=0;do m[(e[s>>2]|0)+n>>0]=m[t+n>>0]|0,n=n+1|0,t=e[a>>2]|0;while(n>>>0>>0);n=t,t=e[o>>2]|0}S=e[s>>2]|0,s=S,h=s-n|0,e[a>>2]=S,n=t+h|0,e[o>>2]=n,e[c>>2]=(e[c>>2]|0)+h,l=e[l>>2]|0,l=ge[e[(e[l>>2]|0)+32>>2]&63](l,n,(e[r+96>>2]|0)-(s+f)|0)|0,e[o>>2]=(e[o>>2]|0)+l}}while(0);for(l=r+112|0,f=r+108|0,r=e[r+124>>2]|0,o=r+-1|0,t=e[a>>2]|0;;){if(t>>>0>=r>>>0){n=14;break}if(s=m[t>>0]|0,n=s&255,s=s<<24>>24==-1,s){if((t|0)==(o|0)){n=25;break}if(t=t+1|0,(m[t>>0]|0)<0){n=25;break}}else t=t+1|0;if(S=e[l>>2]|0,e[f>>2]=n<<24-S|e[f>>2],e[a>>2]=t,S=S+(s?7:8)|0,e[l>>2]=S,(S|0)>=24){n=33;break}}if((n|0)==14){if((e[l>>2]|0)>=1)return;t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,5,35648),S=u,u=0,S&1||me(t|0,824,96),S=L()|0,z0(t|0),U(S|0)}else if((n|0)==25){if((e[l>>2]|0)>=1)return;t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,5,35648),S=u,u=0,S&1||me(t|0,824,96),S=L()|0,z0(t|0),U(S|0)}else if((n|0)==33){e:do if(t>>>0>>0)do{if((m[t>>0]|0)==-1)break e;t=t+1|0}while(t>>>0>>0);while(0);e[c>>2]=t;return}}function p6(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+144|0;e:do if(e[g>>2]|0)t=r+152|0;else if(n=e[r+136>>2]|0,t=r+152|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+184>>2]|0))&&(e[s+8>>2]|0)==(e[r+188>>2]|0)&&(e[s+12>>2]|0)==(e[r+192>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4612>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4612>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4612>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4612>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4616|0,s=S<<1,o=r+4620|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4612|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+192|0,c=r+188|0,l=r+184|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function Y2(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(c=r+8|0,o=e[c>>2]|0,h=r+4|0,n=e[h>>2]|0,s=n,(o-s|0)>>>0>=t>>>0){do m[n>>0]=0,n=(e[h>>2]|0)+1|0,e[h>>2]=n,t=t+-1|0;while(t|0);return}n=e[r>>2]|0,f=s-n+t|0,(f|0)<0&&(_1(r),o=e[c>>2]|0,n=e[r>>2]|0),s=o-n|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?f:s,n=(e[h>>2]|0)-n|0,s?a=8:(o=0,l=0,f=n)):(s=2147483647,n=(e[h>>2]|0)-n|0,a=8),(a|0)==8&&(o=s,l=C0(s)|0,f=n),n=l+f|0,o=l+o|0,s=n;do m[s>>0]=0,s=n+1|0,n=s,t=t+-1|0;while(t|0);t=e[r>>2]|0,s=(e[h>>2]|0)-t|0,a=l+(f-s)|0,Ne(a|0,t|0,s|0)|0,e[r>>2]=a,e[h>>2]=n,e[c>>2]=o,t&&V(t)}function g6(r){r=r|0;var t=0,n=0;e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function v6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function T6(r){r=r|0;var t=0,n=0;e[r>>2]=36052,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function k6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36052,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function w6(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+136>>2]|0,e[r+144>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+184>>2]=a|0?a:e[c+4>>2]|0,e[r+188>>2]=f,e[r+192>>2]=o,_6(r),o=r+140|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+196+(f*12|0)>>2]=t,e[r+196+(f*12|0)+4>>2]=0,R[r+196+(f*12|0)+8>>1]=0,R[r+196+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4576>>2]=a,e[r+4580>>2]=0,m[r+4584>>0]=c,m[r+4585>>0]=1,m[r+4586>>0]=0,e[r+4588>>2]=a,e[r+4592>>2]=1,m[r+4596>>0]=c,m[r+4597>>0]=1,m[r+4598>>0]=0,e[r+4600>>2]=0,C=l}function d6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4624)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35828,e[t+128>>2]=e[r+136>>2],e[t+132>>2]=e[r+140>>2],e[t+136>>2]=e[r+144>>2],e[t+140>>2]=e[r+148>>2],e[t+144>>2]=e[r+152>>2],e[t+148>>2]=e[r+156>>2],e[t+152>>2]=e[r+160>>2],o=t+156|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+172>>2]=e[s>>2],e[t+176>>2]=0,e[t+180>>2]=0,e[t+184>>2]=0,o=t+4568|0,s=t+188|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4580|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4592|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,ro(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],ro(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function C6(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=6,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=6,e[s+12>>2]=r,d=s,C=_,d|0)}function ro(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;E=C,C=C+32|0,y=E+12|0,I=E,v=r+180|0,k=(e[v>>2]|0)+4|0,(e[r+32>>2]|0)==1?D=e[r+24>>2]|0:D=1,t=Z(D<<1,k)|0,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0;do if(t){if(t>>>0>715827882&&(u=0,I0(178,y|0),_=u,u=0,_&1)||(l=6),(l|0)==6&&(u=0,n=j(67,t*6|0)|0,_=u,u=0,!(_&1))){for(e[w>>2]=n,e[y>>2]=n,s=n+(t*6|0)|0,e[y+8>>2]=s;R[n>>1]=0,R[n+2>>1]=0,R[n+4>>1]=0,t=t+-1|0,t;)n=n+6|0;e[w>>2]=s;break}s=L()|0,t=e[y>>2]|0,t||U(s|0),n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-6-t|0)>>>0)/6|0)*6|0)),V(t),U(s|0)}while(0);e[I>>2]=0,_=I+4|0,e[_>>2]=0,e[I+8>>2]=0;do if(!D)l=20;else{if(D>>>0>1073741823&&(u=0,I0(178,I|0),g=u,u=0,g&1)||(l=18),(l|0)==18&&(o=D<<2,u=0,f=j(67,o|0)|0,g=u,u=0,!(g&1))){e[I>>2]=f,l=f+(D<<2)|0,e[I+8>>2]=l,ye(f|0,0,o|0)|0,e[_>>2]=l,l=20;break}s=L()|0,t=e[I>>2]|0,n=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==20){o=r+12|0;e:do if((e[o>>2]|0)>0){f=r+4604|0,l=(Z(D,k)|0)+1|0,a=r+4608|0,c=r+92|0,h=(D|0)>0,S=r+4600|0,g=0;i:for(;;){if(n=e[y>>2]|0,t=n+6|0,e[f>>2]=t,n=n+(l*6|0)|0,e[a>>2]=n,g&1?(e[f>>2]=n,e[a>>2]=t):t=n,s=e[c>>2]|0,u=0,w0(e[(e[s>>2]|0)+12>>2]|0,s|0,t|0,e[v>>2]|0,k|0),s=u,u=0,s&1){l=30;break}if(h){t=e[I>>2]|0,n=e[f>>2]|0,s=0;do{if(e[S>>2]=e[t+(s<<2)>>2],d=e[v>>2]|0,t=n+(d*6|0)|0,n=n+((d+-1|0)*6|0)|0,R[t>>1]=R[n>>1]|0,R[t+2>>1]=R[n+2>>1]|0,R[t+4>>1]=R[n+4>>1]|0,n=(e[a>>2]|0)+-6|0,t=e[f>>2]|0,R[n>>1]=R[t>>1]|0,R[n+2>>1]=R[t+2>>1]|0,R[n+4>>1]=R[t+4>>1]|0,u=0,e0(69,r|0,0),n=u,u=0,n&1){l=29;break i}t=e[I>>2]|0,e[t+(s<<2)>>2]=e[S>>2],n=(e[f>>2]|0)+(k*6|0)|0,e[f>>2]=n,e[a>>2]=(e[a>>2]|0)+(k*6|0),s=s+1|0}while((s|0)<(D|0))}if(g=g+1|0,(g|0)>=(e[o>>2]|0)){l=42;break e}}if((l|0)==29){s=L()|0;break}else if((l|0)==30){s=L()|0;break}}else l=42;while(0);do if((l|0)==42){if(u=0,I0(182,r|0),d=u,u=0,d&1){s=L()|0;break}if(t=e[I>>2]|0,n=t,t&&(s=e[_>>2]|0,(s|0)!=(t|0)&&(e[_>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[y>>2]|0,!t){C=E;return}n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-6-t|0)>>>0)/6|0)*6|0)),V(t),C=E;return}while(0);t=e[I>>2]|0,n=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[y>>2]|0,t||U(s|0),n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-6-t|0)>>>0)/6|0)*6|0)),V(t),U(s|0)}function y6(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0;if(N=r+180|0,!((e[N>>2]|0)<=0))for(q=r+4608|0,B=r+4604|0,n0=r+4612|0,x=0;w=x+-1|0,f=e[q>>2]|0,l=e[B>>2]|0,t=x+1|0,o=b[l+(x*6|0)>>1]|0,O=e[n0>>2]|0,a=b[l+(w*6|0)>>1]|0,c=o-a|0,h=b[f+(w*6|0)>>1]|0,S=a-h|0,g=((((m[O+((b[l+(t*6|0)>>1]|0)-o)>>0]|0)*9|0)+(m[O+c>>0]|0)|0)*9|0)+(m[O+S>>0]|0)|0,s=b[l+(x*6|0)+2>>1]|0,v=b[l+(w*6|0)+2>>1]|0,k=s-v|0,D=b[f+(w*6|0)+2>>1]|0,I=v-D|0,E=((((m[O+((b[l+(t*6|0)+2>>1]|0)-s)>>0]|0)*9|0)+(m[O+k>>0]|0)|0)*9|0)+(m[O+I>>0]|0)|0,n=b[l+(x*6|0)+4>>1]|0,_=b[l+(w*6|0)+4>>1]|0,y=n-_|0,w=b[f+(w*6|0)+4>>1]|0,d=_-w|0,O=((((m[O+((b[l+(t*6|0)+4>>1]|0)-n)>>0]|0)*9|0)+(m[O+y>>0]|0)|0)*9|0)+(m[O+d>>0]|0)|0,E|g|O?(l=b[f+(x*6|0)>>1]|0,f=o-h>>31,(f^S|0)>=0&&((f^c|0)<0?o=h:o=h-a+o|0),l=Wt(r,g,l,o,0)|0,f=b[(e[q>>2]|0)+(x*6|0)+2>>1]|0,o=s-D>>31,(o^I|0)>=0&&((o^k|0)<0?s=D:s=D-v+s|0),o=Wt(r,E,f,s,0)|0,f=b[(e[q>>2]|0)+(x*6|0)+4>>1]|0,s=n-w>>31,(s^d|0)>=0&&((s^y|0)<0?n=w:n=w-_+n|0),d=Wt(r,O,f,n,0)|0,O=e[q>>2]|0,R[O+(x*6|0)>>1]=l,R[O+(x*6|0)+2>>1]=o,R[O+(x*6|0)+4>>1]=d):t=(A6(r,x,0)|0)+x|0,(t|0)<(e[N>>2]|0);)x=t}function A6(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0;for(N=C,C=C+48|0,k=N+30|0,v=N+24|0,g=N+18|0,D=N+12|0,w=N+6|0,d=N,O=(e[r+180>>2]|0)-t|0,x=e[r+4608>>2]|0,I=e[r+4604>>2]|0,y=t+-1|0,E=R[x+(y*6|0)>>1]|0,_=R[x+(y*6|0)+2>>1]|0,y=R[x+(y*6|0)+4>>1]|0,n=E&65535,s=r+144|0,o=_&65535,f=y&65535,S=0;c=S+t|0,l=x+(c*6|0)|0,a=x+(c*6|0)+2|0,c=x+(c*6|0)+4|0,q=(b[l>>1]|0)-n|0,h=e[s>>2]|0,!((((q|0)>-1?q:0-q|0)|0)>(h|0)||(q=(b[a>>1]|0)-o|0,(((q|0)>-1?q:0-q|0)|0)>(h|0))||(q=(b[c>>1]|0)-f|0,(((q|0)>-1?q:0-q|0)|0)>(h|0)));)if(R[l>>1]=E,R[a>>1]=_,R[c>>1]=y,S=S+1|0,(S|0)==(O|0)){S=O;break}if(o=(S|0)==(O|0),f=r+4600|0,s=e[36476+(e[f>>2]<<2)>>2]|0,(1<(S|0))n=S;else{n=S;do $0(r,1,1),s=e[f>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[f>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>1]=R[q>>1]|0,R[w+2>>1]=R[q+2>>1]|0,R[w+4>>1]=R[q+4>>1]|0,R[d>>1]=E,R[d+2>>1]=_,R[d+4>>1]=y,t=I+(t*6|0)|0,R[g>>1]=R[w>>1]|0,R[g+2>>1]=R[w+2>>1]|0,R[g+4>>1]=R[w+4>>1]|0,R[v>>1]=R[d>>1]|0,R[v+2>>1]=R[d+2>>1]|0,R[v+4>>1]=R[d+4>>1]|0,R[k>>1]=R[t>>1]|0,R[k+2>>1]=R[t+2>>1]|0,R[k+4>>1]=R[t+4>>1]|0,D6(D,r,g,v,k),R[q>>1]=R[D>>1]|0,R[q+2>>1]=R[D+2>>1]|0,R[q+4>>1]=R[D+4>>1]|0,q=e[f>>2]|0,e[f>>2]=(q|0)<1?0:q+-1|0,q=S+1|0,C=N,q|0)}function Wt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(I=t>>31,f=(I^t)-I|0,k=r+196+(f*12|0)+10|0,l=R[k>>1]|0,v=r+196+(f*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(t=5;(l<>1]^I)-I+s|0,D=r+136|0,s=e[D>>2]|0,(o&s|0)==(o|0)?h=o:h=s&~(o>>31),o=(n-h^I)-I|0,c=r+144|0,s=e[c>>2]|0,(o|0)>0?o=(o+s|0)/(s<<1|1|0)|0:o=(o-s|0)/(s<<1|1|0)|0,g=r+140|0,a=e[g>>2]|0,n=((o|0)<0?a:0)+o|0,a=n-((n|0)<((a+1|0)/2|0|0)?0:a)|0,f=r+196+(f*12|0)+4|0,s|t?o=0:o=(e[f>>2]<<1)+-1+l>>31,s=o^a,to(r,t,s>>30^s<<1,e[r+156>>2]|0),s=e[r+160>>2]|0,t=(e[v>>2]|0)+((a|0)>-1?a:0-a|0)|0,o=(e[f>>2]|0)+(Z(e[c>>2]<<1|1,a)|0)|0,n=R[k>>1]|0,(n|0)==(s|0)&&(t=t>>1,o=o>>1,n=s>>1),e[v>>2]=t,s=n+1|0,R[k>>1]=s,t=s+o|0,(t|0)>=1?(o|0)>0&&(o=o-s|0,k=R[S>>1]|0,R[S>>1]=(k<<16>>16<127&1)+(k&65535),o=(o|0)>0?0:o):(o=R[S>>1]|0,R[S>>1]=(o&65535)-(o<<16>>16>-128&1),o=(t|0)>(~n|0)?t:0-n|0),e[f>>2]=o,s=e[c>>2]|0,n=s<<1|1,t=(Z(n,(a^I)-I|0)|0)+h|0,(t|0)>=(0-s|0)?(o=e[D>>2]|0,(o+s|0)<(t|0)&&(t=t-(Z(e[g>>2]|0,n)|0)|0)):(t=(Z(e[g>>2]|0,n)|0)+t|0,o=e[D>>2]|0),(t&o|0)==(t|0)?(I=t,I=I&65535,I|0):(I=o&~(t>>31),I=I&65535,I|0)}function to(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=n>>t,f=r+148|0,l=s-(e[f>>2]|0)|0,(o|0)<(l+-1|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-31-(e[f>>2]|0)|0)):$0(r,1,l),t=e[f>>2]|0,$0(r,(1<>1]|0,v=g-(b[s>>1]|0)>>31|1,f=Z(v,(b[n>>1]|0)-g|0)|0,h=t+144|0,l=e[h>>2]|0,(f|0)>0?f=(f+l|0)/(l<<1|1|0)|0:f=(f-l|0)/(l<<1|1|0)|0,w=t+140|0,c=e[w>>2]|0,a=((f|0)<0?c:0)+f|0,c=a-((a|0)<((c+1|0)/2|0|0)?0:c)|0,a=t+4576|0,Jt(t,a,c),E=b[o+2>>1]|0,_=E-(b[s+2>>1]|0)>>31|1,f=Z(_,(b[n+2>>1]|0)-E|0)|0,l=e[h>>2]|0,(f|0)>0?f=(f+l|0)/(l<<1|1|0)|0:f=(f-l|0)/(l<<1|1|0)|0,k=e[w>>2]|0,y=((f|0)<0?k:0)+f|0,k=y-((y|0)<((k+1|0)/2|0|0)?0:k)|0,Jt(t,a,k),y=b[o+4>>1]|0,I=y-(b[s+4>>1]|0)>>31|1,f=Z(I,(b[n+4>>1]|0)-y|0)|0,l=e[h>>2]|0,(f|0)>0?f=(f+l|0)/(l<<1|1|0)|0:f=(f-l|0)/(l<<1|1|0)|0,S=e[w>>2]|0,f=((f|0)<0?S:0)+f|0,S=f-((f|0)<((S+1|0)/2|0|0)?0:S)|0,Jt(t,a,S),a=e[h>>2]|0,h=a<<1|1,f=(Z(Z(h,c)|0,v)|0)+g|0,n=0-a|0,(f|0)>=(n|0)?(l=e[D>>2]|0,(l+a|0)<(f|0)&&(f=f-(Z(e[w>>2]|0,h)|0)|0),s=l):(f=(Z(e[w>>2]|0,h)|0)+f|0,s=e[D>>2]|0),(f&s|0)!=(f|0)&&(f=s&~(f>>31)),o=f&65535,f=(Z(Z(h,k)|0,_)|0)+E|0,(f|0)>=(n|0)?(s+a|0)<(f|0)&&(f=f-(Z(e[w>>2]|0,h)|0)|0):f=(Z(e[w>>2]|0,h)|0)+f|0,(f&s|0)!=(f|0)&&(f=s&~(f>>31)),l=f&65535,f=(Z(Z(h,S)|0,I)|0)+y|0,(f|0)>=(n|0)?(s+a|0)<(f|0)&&(f=f-(Z(e[w>>2]|0,h)|0)|0):f=(Z(e[w>>2]|0,h)|0)+f|0,(f&s|0)==(f|0)){w=f,w=w&65535,R[r>>1]=o,y=r+2|0,R[y>>1]=l,r=r+4|0,R[r>>1]=w;return}w=s&~(f>>31),w=w&65535,R[r>>1]=o,y=r+2|0,R[y>>1]=l,r=r+4|0,R[r>>1]=w}function Jt(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,to(r,o,s,(e[r+156>>2]|0)+-1-(e[36476+(e[r+4600>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function _6(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+144|0;e:do if(e[g>>2]|0)t=r+152|0;else if(n=e[r+136>>2]|0,t=r+152|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+184>>2]|0))&&(e[s+8>>2]|0)==(e[r+188>>2]|0)&&(e[s+12>>2]|0)==(e[r+192>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4612>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4612>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4612>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4612>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4616|0,s=S<<1,o=r+4620|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4612|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+192|0,c=r+188|0,l=r+184|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function I6(r){r=r|0;var t=0,n=0;e[r>>2]=36024,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function P6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36024,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function E6(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+136>>2]|0,e[r+144>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+184>>2]=a|0?a:e[c+4>>2]|0,e[r+188>>2]=f,e[r+192>>2]=o,s8(r),o=r+140|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+196+(f*12|0)>>2]=t,e[r+196+(f*12|0)+4>>2]=0,R[r+196+(f*12|0)+8>>1]=0,R[r+196+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4576>>2]=a,e[r+4580>>2]=0,m[r+4584>>0]=c,m[r+4585>>0]=1,m[r+4586>>0]=0,e[r+4588>>2]=a,e[r+4592>>2]=1,m[r+4596>>0]=c,m[r+4597>>0]=1,m[r+4598>>0]=0,e[r+4600>>2]=0,C=l}function L6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4624)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35800,e[t+128>>2]=e[r+136>>2],e[t+132>>2]=e[r+140>>2],e[t+136>>2]=e[r+144>>2],e[t+140>>2]=e[r+148>>2],e[t+144>>2]=e[r+152>>2],e[t+148>>2]=e[r+156>>2],e[t+152>>2]=e[r+160>>2],o=t+156|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+172>>2]=e[s>>2],e[t+176>>2]=0,e[t+180>>2]=0,e[t+184>>2]=0,o=t+4568|0,s=t+188|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4580|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4592|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,lo(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],lo(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function F6(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0)}function R6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;e[r>>2]=36712,e[r+4>>2]=n,S=r+8|0,s=e[n>>2]|0,c=n+16|0,l=e[c>>2]|0,f=Z(l,s)|0,e[S>>2]=0,g=r+12|0,e[g>>2]=0,e[r+16>>2]=0;do if(!f)f=l;else{if((f|0)<0&&(u=0,I0(178,S|0),l=u,u=0,l&1)||(h=4),(h|0)==4&&(u=0,a=j(67,f|0)|0,l=u,u=0,!(l&1))){e[g>>2]=a,e[S>>2]=a,e[r+16>>2]=a+f,s=a;do m[s>>0]=0,s=(e[g>>2]|0)+1|0,e[g>>2]=s,f=f+-1|0;while(f|0);f=e[c>>2]|0,s=e[n>>2]|0;break}s=L()|0,o=e[S>>2]|0,o&&((e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o)),g=s,U(g|0)}while(0);if(l=r+20|0,s=Z(f,s)|0,e[l>>2]=0,f=r+24|0,e[f>>2]=0,e[r+28>>2]=0,!s){g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(h=15),(h|0)==15&&(u=0,o=j(67,s|0)|0,h=u,u=0,!(h&1))){e[f>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[f>>2]|0)+1|0,e[f>>2]=o,s=s+-1|0;while(s|0);g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}s=L()|0,o=e[l>>2]|0,o&&((e[f>>2]|0)!=(o|0)&&(e[f>>2]=o),V(o)),o=e[S>>2]|0,o||(g=s,U(g|0)),(e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o),g=s,U(g|0)}function O6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;e[r>>2]=36688,e[r+4>>2]=n,S=r+8|0,s=e[n>>2]|0,c=n+16|0,l=e[c>>2]|0,f=Z(l,s)|0,e[S>>2]=0,g=r+12|0,e[g>>2]=0,e[r+16>>2]=0;do if(!f)f=l;else{if((f|0)<0&&(u=0,I0(178,S|0),l=u,u=0,l&1)||(h=4),(h|0)==4&&(u=0,a=j(67,f|0)|0,l=u,u=0,!(l&1))){e[g>>2]=a,e[S>>2]=a,e[r+16>>2]=a+f,s=a;do m[s>>0]=0,s=(e[g>>2]|0)+1|0,e[g>>2]=s,f=f+-1|0;while(f|0);f=e[c>>2]|0,s=e[n>>2]|0;break}s=L()|0,o=e[S>>2]|0,o&&((e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o)),g=s,U(g|0)}while(0);if(l=r+20|0,s=Z(f,s)|0,e[l>>2]=0,f=r+24|0,e[f>>2]=0,e[r+28>>2]=0,!s){g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(h=15),(h|0)==15&&(u=0,o=j(67,s|0)|0,h=u,u=0,!(h&1))){e[f>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[f>>2]|0)+1|0,e[f>>2]=o,s=s+-1|0;while(s|0);g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}s=L()|0,o=e[l>>2]|0,o&&((e[f>>2]|0)!=(o|0)&&(e[f>>2]=o),V(o)),o=e[S>>2]|0,o||(g=s,U(g|0)),(e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o),g=s,U(g|0)}function M6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;e[r>>2]=36664,e[r+4>>2]=n,S=r+8|0,s=e[n>>2]|0,c=n+16|0,l=e[c>>2]|0,f=Z(l,s)|0,e[S>>2]=0,g=r+12|0,e[g>>2]=0,e[r+16>>2]=0;do if(!f)f=l;else{if((f|0)<0&&(u=0,I0(178,S|0),l=u,u=0,l&1)||(h=4),(h|0)==4&&(u=0,a=j(67,f|0)|0,l=u,u=0,!(l&1))){e[g>>2]=a,e[S>>2]=a,e[r+16>>2]=a+f,s=a;do m[s>>0]=0,s=(e[g>>2]|0)+1|0,e[g>>2]=s,f=f+-1|0;while(f|0);f=e[c>>2]|0,s=e[n>>2]|0;break}s=L()|0,o=e[S>>2]|0,o&&((e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o)),g=s,U(g|0)}while(0);if(l=r+20|0,s=Z(f,s)|0,e[l>>2]=0,f=r+24|0,e[f>>2]=0,e[r+28>>2]=0,!s){g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(h=15),(h|0)==15&&(u=0,o=j(67,s|0)|0,h=u,u=0,!(h&1))){e[f>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[f>>2]|0)+1|0,e[f>>2]=o,s=s+-1|0;while(s|0);g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}s=L()|0,o=e[l>>2]|0,o&&((e[f>>2]|0)!=(o|0)&&(e[f>>2]=o),V(o)),o=e[S>>2]|0,o||(g=s,U(g|0)),(e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o),g=s,U(g|0)}function x6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;e[r>>2]=36640,e[r+4>>2]=n,S=r+8|0,s=e[n>>2]|0,c=n+16|0,l=e[c>>2]|0,f=Z(l,s)|0,e[S>>2]=0,g=r+12|0,e[g>>2]=0,e[r+16>>2]=0;do if(!f)f=l;else{if((f|0)<0&&(u=0,I0(178,S|0),l=u,u=0,l&1)||(h=4),(h|0)==4&&(u=0,a=j(67,f|0)|0,l=u,u=0,!(l&1))){e[g>>2]=a,e[S>>2]=a,e[r+16>>2]=a+f,s=a;do m[s>>0]=0,s=(e[g>>2]|0)+1|0,e[g>>2]=s,f=f+-1|0;while(f|0);f=e[c>>2]|0,s=e[n>>2]|0;break}s=L()|0,o=e[S>>2]|0,o&&((e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o)),g=s,U(g|0)}while(0);if(l=r+20|0,s=Z(f,s)|0,e[l>>2]=0,f=r+24|0,e[f>>2]=0,e[r+28>>2]=0,!s){g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}if((s|0)<0&&(u=0,I0(178,l|0),n=u,u=0,n&1)||(h=15),(h|0)==15&&(u=0,o=j(67,s|0)|0,h=u,u=0,!(h&1))){e[f>>2]=o,e[l>>2]=o,e[r+28>>2]=o+s;do m[o>>0]=0,o=(e[f>>2]|0)+1|0,e[f>>2]=o,s=s+-1|0;while(s|0);g=r+36|0,e[g>>2]=e[t>>2],e[g+4>>2]=e[t+4>>2],e[g+8>>2]=e[t+8>>2];return}s=L()|0,o=e[l>>2]|0,o&&((e[f>>2]|0)!=(o|0)&&(e[f>>2]=o),V(o)),o=e[S>>2]|0,o||(g=s,U(g|0)),(e[g>>2]|0)!=(o|0)&&(e[g>>2]=o),V(o),g=s,U(g|0)}function q6(r){r=r|0;var t=0,n=0;e[r>>2]=36640,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=e[r+8>>2]|0,n&&(t=r+12|0,(e[t>>2]|0)!=(n|0)&&(e[t>>2]=n),V(n))}function N6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36640,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),t=e[r+8>>2]|0,!t){V(r);return}n=r+12|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t),V(r)}function U6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=r+36|0,!(e[o>>2]|0)){o=r+40|0,no(r,t,e[o>>2]|0,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}f=Z(e[(e[r+4>>2]|0)+16>>2]|0,n)|0,l=r+20|0,no(r,t,e[l>>2]|0,n,s),r=e[o>>2]|0,(ge[e[(e[r>>2]|0)+48>>2]&63](r,e[l>>2]|0,f)|0)!=(f|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,3,35648),l=u,u=0,l&1?(l=L()|0,z0(o|0),U(l|0)):me(o|0,824,96))}function B6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){Q6(r,o,t,n,s);return}else{o=r+40|0,Kt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Kt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;if(a=r+4|0,f=e[a>>2]|0,!(m[f+32>>0]|0))a=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*3|0)|0,f=e[a>>2]|0,t=e[f+16>>2]|0,(s|0)>0){for(f=e[l>>2]|0,r=0;c=f+2|0,h=m[f>>0]|0,m[f>>0]=m[c>>0]|0,m[c>>0]=h,r=r+1|0,(r|0)!=(s|0);)f=f+t|0;f=e[a>>2]|0}a=e[l>>2]|0}switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do l=z[a+(f*3|0)+1>>0]|0,o=128-l+(z[a+(f*3|0)+2>>0]|0)|0,c=(z[a+(f*3|0)>>0]|0)-l+128|0,h=n+(f*3|0)|0,m[h>>0]=l+192+(((o&255)+(c&255)|0)>>>2),m[h+1>>0]=o,m[h+2>>0]=c,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do s=z[a+(t*3|0)+1>>0]|0,c=128-s+(z[a+(t*3|0)+2>>0]|0)|0,h=(z[a+(t*3|0)>>0]|0)-s+128|0,m[n+t>>0]=s+192+(((c&255)+(h&255)|0)>>>2),m[n+(t+o)>>0]=c,m[n+(t+r)>>0]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do h=m[a+(l<<2)+3>>0]|0,S=z[a+(l<<2)+1>>0]|0,s=128-S+(z[a+(l<<2)+2>>0]|0)|0,c=(z[a+(l<<2)>>0]|0)-S+128|0,m[n+l>>0]=S+192+(((s&255)+(c&255)|0)>>>2),m[n+(l+o)>>0]=s,m[n+(l+r)>>0]=c,m[n+(l+t)>>0]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function Q6(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+176|0,g=S+152|0,k=S+16|0,v=S,l=Z(e[(e[r+4>>2]|0)+16>>2]|0,s)|0,c=r+20|0,f=e[c>>2]|0,!l){k=f,Kt(r,k,n,s,o),C=S;return}for(;a=ge[e[(e[t>>2]|0)+32>>2]&63](t,f,l)|0,!!a;)if(f=e[c>>2]|0,(l|0)==(a|0)){h=26;break}else l=l-a|0;if((h|0)==26){Kt(r,f,n,s,o),C=S;return}n=k+56|0,c=k+4|0,e[k>>2]=36160,e[n>>2]=36180,u=0,e0(62,k+56|0,c|0),S=u,u=0,S&1&&(k=L()|0,y0(n),U(k|0)),e[k+128>>2]=0,e[k+132>>2]=-1,e[k>>2]=36200,e[k+56>>2]=36220,u=0,I0(180,c|0),S=u,u=0;do if(S&1)f=L()|0;else{if(e[c>>2]=36236,t=k+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[k+52>>2]=16,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,u=0,e0(63,c|0,g|0),S=u,u=0,S&1){f=L()|0,H(g),H(t),Q0(c);break}H(g),u=0,f=ie(28,k|0,49029,57)|0,g=u,u=0,!(g&1)&&(u=0,p0(36,f|0,0)|0,g=u,u=0,!(g&1))&&(a=H0(16)|0,u=0,e0(64,v|0,c|0),g=u,u=0,g&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,v|0),g=u,u=0,g&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(v),l||(v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0))),z0(a|0),v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)),v=L()|0,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)}while(0);k=f,y0(n),U(k|0)}function no(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(l=z[t+(r*3|0)+1>>0]|0,f=z[t+(r*3|0)+2>>0]|0,a=(z[t+(r*3|0)>>0]|0)-((f+l|0)>>>2)+64|0,o=n+(r*3|0)|0,m[o>>0]=f+128+a,m[o+1>>0]=a,m[o+2>>0]=l+128+a,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do S=z[t+(l+o)>>0]|0,g=z[t+(l+f)>>0]|0,h=(z[t+l>>0]|0)-((g+S|0)>>>2)+64|0,a=n+(l*3|0)|0,m[a>>0]=g+128+h,m[a+1>>0]=h,m[a+2>>0]=S+128+h,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do h=z[t+(l+o)>>0]|0,v=z[t+(l+r)>>0]|0,S=(z[t+l>>0]|0)-((v+h|0)>>>2)+64|0,g=n+(l<<2)|0,S=S<<8&65280|z[t+(l+f)>>0]<<24|v+128+S&255|h+128+S<<16&16711680,m[g>>0]=S,m[g+1>>0]=S>>8,m[g+2>>0]=S>>16,m[g+3>>0]=S>>24,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)){if(l=e[r+16>>2]|0,(s|0)>0)r=n,f=0;else return;for(;v=r+2|0,g=m[r>>0]|0,m[r>>0]=m[v>>0]|0,m[v>>0]=g,f=f+1|0,(f|0)!=(s|0);)r=r+l|0}}function G6(r){r=r|0;var t=0,n=0;e[r>>2]=36664,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=e[r+8>>2]|0,n&&(t=r+12|0,(e[t>>2]|0)!=(n|0)&&(e[t>>2]=n),V(n))}function V6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36664,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),t=e[r+8>>2]|0,!t){V(r);return}n=r+12|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t),V(r)}function H6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=r+36|0,!(e[o>>2]|0)){o=r+40|0,so(r,t,e[o>>2]|0,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}f=Z(e[(e[r+4>>2]|0)+16>>2]|0,n)|0,l=r+20|0,so(r,t,e[l>>2]|0,n,s),r=e[o>>2]|0,(ge[e[(e[r>>2]|0)+48>>2]&63](r,e[l>>2]|0,f)|0)!=(f|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,3,35648),l=u,u=0,l&1?(l=L()|0,z0(o|0),U(l|0)):me(o|0,824,96))}function z6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){Y6(r,o,t,n,s);return}else{o=r+40|0,Zt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function Zt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;if(a=r+4|0,f=e[a>>2]|0,!(m[f+32>>0]|0))a=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*3|0)|0,f=e[a>>2]|0,t=e[f+16>>2]|0,(s|0)>0){for(f=e[l>>2]|0,r=0;c=f+2|0,h=m[f>>0]|0,m[f>>0]=m[c>>0]|0,m[c>>0]=h,r=r+1|0,(r|0)!=(s|0);)f=f+t|0;f=e[a>>2]|0}a=e[l>>2]|0}switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do t=z[a+(f*3|0)>>0]|0,o=m[a+(f*3|0)+1>>0]|0,l=o&255,c=(z[a+(f*3|0)+2>>0]|0)+128-((l+t|0)>>>1)&255,h=n+(f*3|0)|0,m[h>>0]=t+128-l,m[h+1>>0]=o,m[h+2>>0]=c,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do c=m[a+(t*3|0)+1>>0]|0,l=z[a+(t*3|0)>>0]|0,s=c&255,h=(z[a+(t*3|0)+2>>0]|0)+128-((s+l|0)>>>1)&255,m[n+t>>0]=l+128-s,m[n+(t+o)>>0]=c,m[n+(t+r)>>0]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do s=m[a+(l<<2)+1>>0]|0,h=m[a+(l<<2)+3>>0]|0,g=z[a+(l<<2)>>0]|0,S=s&255,c=(z[a+(l<<2)+2>>0]|0)+128-((S+g|0)>>>1)&255,m[n+l>>0]=g+128-S,m[n+(l+o)>>0]=s,m[n+(l+r)>>0]=c,m[n+(l+t)>>0]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function Y6(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+176|0,g=S+152|0,k=S+16|0,v=S,l=Z(e[(e[r+4>>2]|0)+16>>2]|0,s)|0,c=r+20|0,f=e[c>>2]|0,!l){k=f,Zt(r,k,n,s,o),C=S;return}for(;a=ge[e[(e[t>>2]|0)+32>>2]&63](t,f,l)|0,!!a;)if(f=e[c>>2]|0,(l|0)==(a|0)){h=26;break}else l=l-a|0;if((h|0)==26){Zt(r,f,n,s,o),C=S;return}n=k+56|0,c=k+4|0,e[k>>2]=36160,e[n>>2]=36180,u=0,e0(62,k+56|0,c|0),S=u,u=0,S&1&&(k=L()|0,y0(n),U(k|0)),e[k+128>>2]=0,e[k+132>>2]=-1,e[k>>2]=36200,e[k+56>>2]=36220,u=0,I0(180,c|0),S=u,u=0;do if(S&1)f=L()|0;else{if(e[c>>2]=36236,t=k+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[k+52>>2]=16,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,u=0,e0(63,c|0,g|0),S=u,u=0,S&1){f=L()|0,H(g),H(t),Q0(c);break}H(g),u=0,f=ie(28,k|0,49029,57)|0,g=u,u=0,!(g&1)&&(u=0,p0(36,f|0,0)|0,g=u,u=0,!(g&1))&&(a=H0(16)|0,u=0,e0(64,v|0,c|0),g=u,u=0,g&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,v|0),g=u,u=0,g&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(v),l||(v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0))),z0(a|0),v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)),v=L()|0,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)}while(0);k=f,y0(n),U(k|0)}function so(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(l=m[t+(r*3|0)+1>>0]|0,a=l&255,f=(z[t+(r*3|0)>>0]|0)+128+a|0,a=(z[t+(r*3|0)+2>>0]|0)+128+(((f&255)+a|0)>>>1)&255,o=n+(r*3|0)|0,m[o>>0]=f,m[o+1>>0]=l,m[o+2>>0]=a,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do S=m[t+(l+o)>>0]|0,h=S&255,g=(z[t+l>>0]|0)+128+h|0,h=(z[t+(l+f)>>0]|0)+128+(((g&255)+h|0)>>>1)&255,a=n+(l*3|0)|0,m[a>>0]=g,m[a+1>>0]=S,m[a+2>>0]=h,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do S=z[t+(l+o)>>0]|0,h=(z[t+l>>0]|0)+128+S&255,g=n+(l<<2)|0,S=h|S<<8|z[t+(l+f)>>0]<<24|(z[t+(l+r)>>0]|0)+128+((h+S|0)>>>1)<<16&16711680,m[g>>0]=S,m[g+1>>0]=S>>8,m[g+2>>0]=S>>16,m[g+3>>0]=S>>24,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)){if(l=e[r+16>>2]|0,(s|0)>0)r=n,f=0;else return;for(;g=r+2|0,S=m[r>>0]|0,m[r>>0]=m[g>>0]|0,m[g>>0]=S,f=f+1|0,(f|0)!=(s|0);)r=r+l|0}}function X6(r){r=r|0;var t=0,n=0;e[r>>2]=36688,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=e[r+8>>2]|0,n&&(t=r+12|0,(e[t>>2]|0)!=(n|0)&&(e[t>>2]=n),V(n))}function j6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36688,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),t=e[r+8>>2]|0,!t){V(r);return}n=r+12|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t),V(r)}function W6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=r+36|0,!(e[o>>2]|0)){o=r+40|0,oo(r,t,e[o>>2]|0,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}f=Z(e[(e[r+4>>2]|0)+16>>2]|0,n)|0,l=r+20|0,oo(r,t,e[l>>2]|0,n,s),r=e[o>>2]|0,(ge[e[(e[r>>2]|0)+48>>2]&63](r,e[l>>2]|0,f)|0)!=(f|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,3,35648),l=u,u=0,l&1?(l=L()|0,z0(o|0),U(l|0)):me(o|0,824,96))}function J6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){K6(r,o,t,n,s);return}else{o=r+40|0,$t(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function $t(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;if(a=r+4|0,f=e[a>>2]|0,!(m[f+32>>0]|0))a=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*3|0)|0,f=e[a>>2]|0,t=e[f+16>>2]|0,(s|0)>0){for(f=e[l>>2]|0,r=0;c=f+2|0,h=m[f>>0]|0,m[f>>0]=m[c>>0]|0,m[c>>0]=h,r=r+1|0,(r|0)!=(s|0);)f=f+t|0;f=e[a>>2]|0}a=e[l>>2]|0}switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do o=m[a+(f*3|0)+1>>0]|0,l=o&255,c=128-l+(z[a+(f*3|0)+2>>0]|0)&255,h=n+(f*3|0)|0,m[h>>0]=(z[a+(f*3|0)>>0]|0)+128-l,m[h+1>>0]=o,m[h+2>>0]=c,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do c=m[a+(t*3|0)+1>>0]|0,s=c&255,h=128-s+(z[a+(t*3|0)+2>>0]|0)&255,m[n+t>>0]=(z[a+(t*3|0)>>0]|0)+128-s,m[n+(t+o)>>0]=c,m[n+(t+r)>>0]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do s=m[a+(l<<2)+1>>0]|0,h=m[a+(l<<2)+3>>0]|0,S=s&255,c=128-S+(z[a+(l<<2)+2>>0]|0)&255,m[n+l>>0]=(z[a+(l<<2)>>0]|0)+128-S,m[n+(l+o)>>0]=s,m[n+(l+r)>>0]=c,m[n+(l+t)>>0]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function K6(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+176|0,g=S+152|0,k=S+16|0,v=S,l=Z(e[(e[r+4>>2]|0)+16>>2]|0,s)|0,c=r+20|0,f=e[c>>2]|0,!l){k=f,$t(r,k,n,s,o),C=S;return}for(;a=ge[e[(e[t>>2]|0)+32>>2]&63](t,f,l)|0,!!a;)if(f=e[c>>2]|0,(l|0)==(a|0)){h=26;break}else l=l-a|0;if((h|0)==26){$t(r,f,n,s,o),C=S;return}n=k+56|0,c=k+4|0,e[k>>2]=36160,e[n>>2]=36180,u=0,e0(62,k+56|0,c|0),S=u,u=0,S&1&&(k=L()|0,y0(n),U(k|0)),e[k+128>>2]=0,e[k+132>>2]=-1,e[k>>2]=36200,e[k+56>>2]=36220,u=0,I0(180,c|0),S=u,u=0;do if(S&1)f=L()|0;else{if(e[c>>2]=36236,t=k+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[k+52>>2]=16,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,u=0,e0(63,c|0,g|0),S=u,u=0,S&1){f=L()|0,H(g),H(t),Q0(c);break}H(g),u=0,f=ie(28,k|0,49029,57)|0,g=u,u=0,!(g&1)&&(u=0,p0(36,f|0,0)|0,g=u,u=0,!(g&1))&&(a=H0(16)|0,u=0,e0(64,v|0,c|0),g=u,u=0,g&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,v|0),g=u,u=0,g&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(v),l||(v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0))),z0(a|0),v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)),v=L()|0,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)}while(0);k=f,y0(n),U(k|0)}function oo(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(l=m[t+(r*3|0)+1>>0]|0,f=l&255,a=f+128+(z[t+(r*3|0)+2>>0]|0)&255,o=n+(r*3|0)|0,m[o>>0]=(z[t+(r*3|0)>>0]|0)+128+f,m[o+1>>0]=l,m[o+2>>0]=a,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do S=m[t+(l+o)>>0]|0,g=S&255,h=g+128+(z[t+(l+f)>>0]|0)&255,a=n+(l*3|0)|0,m[a>>0]=(z[t+l>>0]|0)+128+g,m[a+1>>0]=S,m[a+2>>0]=h,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do S=z[t+(l+o)>>0]|0,g=n+(l<<2)|0,S=(z[t+l>>0]|0)+128+S&255|S<<8|z[t+(l+f)>>0]<<24|S+128+(z[t+(l+r)>>0]|0)<<16&16711680,m[g>>0]=S,m[g+1>>0]=S>>8,m[g+2>>0]=S>>16,m[g+3>>0]=S>>24,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)){if(l=e[r+16>>2]|0,(s|0)>0)r=n,f=0;else return;for(;g=r+2|0,S=m[r>>0]|0,m[r>>0]=m[g>>0]|0,m[g>>0]=S,f=f+1|0,(f|0)!=(s|0);)r=r+l|0}}function Z6(r){r=r|0;var t=0,n=0;e[r>>2]=36712,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=e[r+8>>2]|0,n&&(t=r+12|0,(e[t>>2]|0)!=(n|0)&&(e[t>>2]=n),V(n))}function $6(r){r=r|0;var t=0,n=0;if(e[r>>2]=36712,t=e[r+20>>2]|0,t&&(n=r+24|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),t=e[r+8>>2]|0,!t){V(r);return}n=r+12|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t),V(r)}function b6(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=r+36|0,!(e[o>>2]|0)){o=r+40|0,fo(r,t,e[o>>2]|0,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}f=Z(e[(e[r+4>>2]|0)+16>>2]|0,n)|0,l=r+20|0,fo(r,t,e[l>>2]|0,n,s),r=e[o>>2]|0,(ge[e[(e[r>>2]|0)+48>>2]&63](r,e[l>>2]|0,f)|0)!=(f|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,3,35648),l=u,u=0,l&1?(l=L()|0,z0(o|0),U(l|0)):me(o|0,824,96))}function e8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;if(o=e[r+36>>2]|0,o){i8(r,o,t,n,s);return}else{o=r+40|0,bt(r,e[o>>2]|0,t,n,s),e[o>>2]=(e[o>>2]|0)+(e[(e[r+4>>2]|0)+12>>2]|0);return}}function bt(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0;if(a=r+4|0,f=e[a>>2]|0,!(m[f+32>>0]|0))a=t;else{if(l=r+8|0,Ne(e[l>>2]|0,t|0,s*3|0)|0,f=e[a>>2]|0,t=e[f+16>>2]|0,(s|0)>0){for(f=e[l>>2]|0,r=0;c=f+2|0,h=m[f>>0]|0,m[f>>0]=m[c>>0]|0,m[c>>0]=h,r=r+1|0,(r|0)!=(s|0);)f=f+t|0;f=e[a>>2]|0}a=e[l>>2]|0}switch(e[f+16>>2]|0){case 3:{if((e[f+24>>2]|0)==2){if((s|0)>0)f=0;else return;do o=m[a+(f*3|0)+1>>0]|0,c=m[a+(f*3|0)+2>>0]|0,h=n+(f*3|0)|0,m[h>>0]=m[a+(f*3|0)>>0]|0,m[h+1>>0]=o,m[h+2>>0]=c,f=f+1|0;while((f|0)!=(s|0));return}if(f=(o|0)<(s|0)?o:s,(f|0)<=0)return;r=o<<1,t=0;do c=m[a+(t*3|0)+1>>0]|0,h=m[a+(t*3|0)+2>>0]|0,m[n+t>>0]=m[a+(t*3|0)>>0]|0,m[n+(t+o)>>0]=c,m[n+(t+r)>>0]=h,t=t+1|0;while((t|0)!=(f|0));return}case 4:{if((e[f+24>>2]|0)!=1||(f=(o|0)<(s|0)?o:s,(f|0)<=0))return;r=o<<1,t=o*3|0,l=0;do s=m[a+(l<<2)+1>>0]|0,c=m[a+(l<<2)+2>>0]|0,h=m[a+(l<<2)+3>>0]|0,m[n+l>>0]=m[a+(l<<2)>>0]|0,m[n+(l+o)>>0]=s,m[n+(l+r)>>0]=c,m[n+(l+t)>>0]=h,l=l+1|0;while((l|0)!=(f|0));return}default:return}}function i8(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+176|0,g=S+152|0,k=S+16|0,v=S,l=Z(e[(e[r+4>>2]|0)+16>>2]|0,s)|0,c=r+20|0,f=e[c>>2]|0,!l){k=f,bt(r,k,n,s,o),C=S;return}for(;a=ge[e[(e[t>>2]|0)+32>>2]&63](t,f,l)|0,!!a;)if(f=e[c>>2]|0,(l|0)==(a|0)){h=26;break}else l=l-a|0;if((h|0)==26){bt(r,f,n,s,o),C=S;return}n=k+56|0,c=k+4|0,e[k>>2]=36160,e[n>>2]=36180,u=0,e0(62,k+56|0,c|0),S=u,u=0,S&1&&(k=L()|0,y0(n),U(k|0)),e[k+128>>2]=0,e[k+132>>2]=-1,e[k>>2]=36200,e[k+56>>2]=36220,u=0,I0(180,c|0),S=u,u=0;do if(S&1)f=L()|0;else{if(e[c>>2]=36236,t=k+36|0,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0,e[k+52>>2]=16,e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,u=0,e0(63,c|0,g|0),S=u,u=0,S&1){f=L()|0,H(g),H(t),Q0(c);break}H(g),u=0,f=ie(28,k|0,49029,57)|0,g=u,u=0,!(g&1)&&(u=0,p0(36,f|0,0)|0,g=u,u=0,!(g&1))&&(a=H0(16)|0,u=0,e0(64,v|0,c|0),g=u,u=0,g&1?f=L()|0:(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,a|0,3,35648,v|0),g=u,u=0,g&1?l=1:(u=0,c0(6,a|0,824,96),u=0,l=0),f=L()|0,H(v),l||(v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0))),z0(a|0),v=f,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)),v=L()|0,e[k>>2]=36200,e[n>>2]=36220,e[c>>2]=36236,H(t),Q0(c),y0(n),U(v|0)}while(0);k=f,y0(n),U(k|0)}function fo(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;c=r+4|0,r=e[c>>2]|0;e:do switch(e[r+16>>2]|0){case 3:{if((e[r+24>>2]|0)==2){if((s|0)>0)r=0;else break e;for(;;)if(l=m[t+(r*3|0)+1>>0]|0,a=m[t+(r*3|0)+2>>0]|0,o=n+(r*3|0)|0,m[o>>0]=m[t+(r*3|0)>>0]|0,m[o+1>>0]=l,m[o+2>>0]=a,r=r+1|0,(r|0)==(s|0))break e}if(r=(s|0)<(o|0)?s:o,(r|0)>0){f=o<<1,l=0;do S=m[t+(l+o)>>0]|0,h=m[t+(l+f)>>0]|0,a=n+(l*3|0)|0,m[a>>0]=m[t+l>>0]|0,m[a+1>>0]=S,m[a+2>>0]=h,l=l+1|0;while((l|0)!=(r|0))}break}case 4:{if((e[r+24>>2]|0)==1&&(a=(s|0)<(o|0)?s:o,(a|0)>0)){r=o<<1,f=o*3|0,l=0;do S=n+(l<<2)|0,h=z[t+(l+o)>>0]<<8|z[t+l>>0]|z[t+(l+r)>>0]<<16|z[t+(l+f)>>0]<<24,m[S>>0]=h,m[S+1>>0]=h>>8,m[S+2>>0]=h>>16,m[S+3>>0]=h>>24,l=l+1|0;while((l|0)!=(a|0))}break}default:}while(0);if(r=e[c>>2]|0,!!(m[r+32>>0]|0)){if(l=e[r+16>>2]|0,(s|0)>0)r=n,f=0;else return;for(;S=r+2|0,h=m[r>>0]|0,m[r>>0]=m[S>>0]|0,m[S>>0]=h,f=f+1|0,(f|0)!=(s|0);)r=r+l|0}}function lo(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;E=C,C=C+32|0,y=E+12|0,I=E,v=r+180|0,k=(e[v>>2]|0)+4|0,(e[r+32>>2]|0)==1?D=e[r+24>>2]|0:D=1,t=Z(D<<1,k)|0,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0;e:do if(t){if(t>>>0>1431655765&&(u=0,I0(178,y|0),_=u,u=0,_&1)||(f=6),(f|0)==6&&(u=0,n=j(67,t*3|0)|0,_=u,u=0,!(_&1))){for(e[w>>2]=n,e[y>>2]=n,e[y+8>>2]=n+(t*3|0);;)if(m[n>>0]=0,m[n+1>>0]=0,m[n+2>>0]=0,n=(e[w>>2]|0)+3|0,e[w>>2]=n,t=t+-1|0,!t)break e}s=L()|0,t=e[y>>2]|0,t||U(s|0),n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}while(0);e[I>>2]=0,_=I+4|0,e[_>>2]=0,e[I+8>>2]=0;do if(!D)f=19;else{if(D>>>0>1073741823&&(u=0,I0(178,I|0),g=u,u=0,g&1)||(f=17),(f|0)==17&&(s=D<<2,u=0,o=j(67,s|0)|0,g=u,u=0,!(g&1))){e[I>>2]=o,f=o+(D<<2)|0,e[I+8>>2]=f,ye(o|0,0,s|0)|0,e[_>>2]=f,f=19;break}s=L()|0,t=e[I>>2]|0,n=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((f|0)==19){o=r+12|0;e:do if((e[o>>2]|0)>0){f=r+4604|0,l=(Z(D,k)|0)+1|0,a=r+4608|0,c=r+92|0,h=(D|0)>0,S=r+4600|0,g=0;i:for(;;){if(s=e[y>>2]|0,t=s+3|0,e[f>>2]=t,n=s+(l*3|0)|0,e[a>>2]=n,g&1?(e[f>>2]=n,e[a>>2]=t,t=1):t=l,n=e[c>>2]|0,u=0,w0(e[(e[n>>2]|0)+12>>2]|0,n|0,s+(t*3|0)|0,e[v>>2]|0,k|0),s=u,u=0,s&1){f=29;break}if(h){t=e[I>>2]|0,n=e[f>>2]|0,s=0;do{if(e[S>>2]=e[t+(s<<2)>>2],d=e[v>>2]|0,t=n+(d*3|0)|0,n=n+((d+-1|0)*3|0)|0,m[t>>0]=m[n>>0]|0,m[t+1>>0]=m[n+1>>0]|0,m[t+2>>0]=m[n+2>>0]|0,t=e[f>>2]|0,n=(e[a>>2]|0)+-3|0,m[n>>0]=m[t>>0]|0,m[n+1>>0]=m[t+1>>0]|0,m[n+2>>0]=m[t+2>>0]|0,u=0,e0(70,r|0,0),n=u,u=0,n&1){f=28;break i}t=e[I>>2]|0,e[t+(s<<2)>>2]=e[S>>2],n=(e[f>>2]|0)+(k*3|0)|0,e[f>>2]=n,e[a>>2]=(e[a>>2]|0)+(k*3|0),s=s+1|0}while((s|0)<(D|0))}if(g=g+1|0,(g|0)>=(e[o>>2]|0)){f=41;break e}}if((f|0)==28){s=L()|0;break}else if((f|0)==29){s=L()|0;break}}else f=41;while(0);do if((f|0)==41){if(u=0,I0(182,r|0),d=u,u=0,d&1){s=L()|0;break}if(t=e[I>>2]|0,n=t,t&&(s=e[_>>2]|0,(s|0)!=(t|0)&&(e[_>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[y>>2]|0,!t){C=E;return}n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),C=E;return}while(0);t=e[I>>2]|0,n=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[y>>2]|0,t||U(s|0),n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}function r8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0;if(N=r+180|0,!((e[N>>2]|0)<=0))for(q=r+4608|0,B=r+4604|0,n0=r+4612|0,x=0;w=x+-1|0,f=e[q>>2]|0,l=e[B>>2]|0,t=x+1|0,o=z[l+(x*3|0)>>0]|0,O=e[n0>>2]|0,a=z[l+(w*3|0)>>0]|0,c=o-a|0,h=z[f+(w*3|0)>>0]|0,S=a-h|0,g=((((m[O+((z[l+(t*3|0)>>0]|0)-o)>>0]|0)*9|0)+(m[O+c>>0]|0)|0)*9|0)+(m[O+S>>0]|0)|0,s=z[l+(x*3|0)+1>>0]|0,v=z[l+(w*3|0)+1>>0]|0,k=s-v|0,D=z[f+(w*3|0)+1>>0]|0,I=v-D|0,E=((((m[O+((z[l+(t*3|0)+1>>0]|0)-s)>>0]|0)*9|0)+(m[O+k>>0]|0)|0)*9|0)+(m[O+I>>0]|0)|0,n=z[l+(x*3|0)+2>>0]|0,_=z[l+(w*3|0)+2>>0]|0,y=n-_|0,w=z[f+(w*3|0)+2>>0]|0,d=_-w|0,O=((((m[O+((z[l+(t*3|0)+2>>0]|0)-n)>>0]|0)*9|0)+(m[O+y>>0]|0)|0)*9|0)+(m[O+d>>0]|0)|0,E|g|O?(l=z[f+(x*3|0)>>0]|0,f=o-h>>31,(f^S|0)>=0&&((f^c|0)<0?o=h:o=h-a+o|0),l=en(r,g,l,o,0)|0,f=z[(e[q>>2]|0)+(x*3|0)+1>>0]|0,o=s-D>>31,(o^I|0)>=0&&((o^k|0)<0?s=D:s=D-v+s|0),o=en(r,E,f,s,0)|0,f=z[(e[q>>2]|0)+(x*3|0)+2>>0]|0,s=n-w>>31,(s^d|0)>=0&&((s^y|0)<0?n=w:n=w-_+n|0),O=en(r,O,f,n,0)|0,x=(e[q>>2]|0)+(x*3|0)|0,m[x>>0]=l,m[x+1>>0]=o,m[x+2>>0]=O):t=(t8(r,x,0)|0)+x|0,(t|0)<(e[N>>2]|0);)x=t}function t8(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0;for(N=C,C=C+32|0,x=N+15|0,v=N+12|0,g=N+9|0,k=N+6|0,y=N+3|0,w=N,d=(e[r+180>>2]|0)-t|0,O=e[r+4608>>2]|0,D=e[r+4604>>2]|0,_=O+((t+-1|0)*3|0)|0,I=m[_>>0]|0,E=m[_+1>>0]|0,_=m[_+2>>0]|0,n=I&255,s=r+144|0,o=E&255,f=_&255,S=0;l=O+((S+t|0)*3|0)|0,a=l+1|0,c=l+2|0,q=(z[l>>0]|0)-n|0,h=e[s>>2]|0,!((((q|0)>-1?q:0-q|0)|0)>(h|0)||(q=(z[a>>0]|0)-o|0,(((q|0)>-1?q:0-q|0)|0)>(h|0))||(q=(z[c>>0]|0)-f|0,(((q|0)>-1?q:0-q|0)|0)>(h|0)));)if(m[l>>0]=I,m[a>>0]=E,m[c>>0]=_,S=S+1|0,(S|0)==(d|0)){S=d;break}if(o=(S|0)==(d|0),f=r+4600|0,s=e[36476+(e[f>>2]<<2)>>2]|0,(1<(S|0))n=S;else{n=S;do $0(r,1,1),s=e[f>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[f>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>0]=m[q>>0]|0,m[y+1>>0]=m[q+1>>0]|0,m[y+2>>0]=m[q+2>>0]|0,m[w>>0]=I,m[w+1>>0]=E,m[w+2>>0]=_,t=D+(t*3|0)|0,m[g>>0]=m[y>>0]|0,m[g+1>>0]=m[y+1>>0]|0,m[g+2>>0]=m[y+2>>0]|0,m[v>>0]=m[w>>0]|0,m[v+1>>0]=m[w+1>>0]|0,m[v+2>>0]=m[w+2>>0]|0,m[x>>0]=m[t>>0]|0,m[x+1>>0]=m[t+1>>0]|0,m[x+2>>0]=m[t+2>>0]|0,n8(k,r,g,v,x),m[q>>0]=m[k>>0]|0,m[q+1>>0]=m[k+1>>0]|0,m[q+2>>0]=m[k+2>>0]|0,q=e[f>>2]|0,e[f>>2]=(q|0)<1?0:q+-1|0,q=S+1|0,C=N,q|0)}function en(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(I=t>>31,f=(I^t)-I|0,k=r+196+(f*12|0)+10|0,l=R[k>>1]|0,v=r+196+(f*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(t=5;(l<>1]^I)-I+s|0,D=r+136|0,s=e[D>>2]|0,(o&s|0)==(o|0)?h=o:h=s&~(o>>31),o=(n-h^I)-I|0,c=r+144|0,s=e[c>>2]|0,(o|0)>0?o=(o+s|0)/(s<<1|1|0)|0:o=(o-s|0)/(s<<1|1|0)|0,g=r+140|0,a=e[g>>2]|0,n=((o|0)<0?a:0)+o|0,a=n-((n|0)<((a+1|0)/2|0|0)?0:a)|0,f=r+196+(f*12|0)+4|0,s|t?o=0:o=(e[f>>2]<<1)+-1+l>>31,s=o^a,uo(r,t,s>>30^s<<1,e[r+156>>2]|0),s=e[r+160>>2]|0,t=(e[v>>2]|0)+((a|0)>-1?a:0-a|0)|0,o=(e[f>>2]|0)+(Z(e[c>>2]<<1|1,a)|0)|0,n=R[k>>1]|0,(n|0)==(s|0)&&(t=t>>1,o=o>>1,n=s>>1),e[v>>2]=t,s=n+1|0,R[k>>1]=s,t=s+o|0,(t|0)>=1?(o|0)>0&&(o=o-s|0,k=R[S>>1]|0,R[S>>1]=(k<<16>>16<127&1)+(k&65535),o=(o|0)>0?0:o):(o=R[S>>1]|0,R[S>>1]=(o&65535)-(o<<16>>16>-128&1),o=(t|0)>(~n|0)?t:0-n|0),e[f>>2]=o,s=e[c>>2]|0,n=s<<1|1,t=(Z(n,(a^I)-I|0)|0)+h|0,(t|0)>=(0-s|0)?(o=e[D>>2]|0,(o+s|0)<(t|0)&&(t=t-(Z(e[g>>2]|0,n)|0)|0)):(t=(Z(e[g>>2]|0,n)|0)+t|0,o=e[D>>2]|0),(t&o|0)==(t|0)?(I=t,I=I&255,I|0):(I=o&~(t>>31),I=I&255,I|0)}function uo(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=n>>t,f=r+148|0,l=s-(e[f>>2]|0)|0,(o|0)<(l+-1|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-31-(e[f>>2]|0)|0)):$0(r,1,l),t=e[f>>2]|0,$0(r,(1<>0]|0,v=g-(z[s>>0]|0)>>31|1,f=Z(v,(z[n>>0]|0)-g|0)|0,h=t+144|0,l=e[h>>2]|0,(f|0)>0?f=(f+l|0)/(l<<1|1|0)|0:f=(f-l|0)/(l<<1|1|0)|0,w=t+140|0,c=e[w>>2]|0,a=((f|0)<0?c:0)+f|0,c=a-((a|0)<((c+1|0)/2|0|0)?0:c)|0,a=t+4576|0,rn(t,a,c),E=z[o+1>>0]|0,_=E-(z[s+1>>0]|0)>>31|1,f=Z(_,(z[n+1>>0]|0)-E|0)|0,l=e[h>>2]|0,(f|0)>0?f=(f+l|0)/(l<<1|1|0)|0:f=(f-l|0)/(l<<1|1|0)|0,k=e[w>>2]|0,y=((f|0)<0?k:0)+f|0,k=y-((y|0)<((k+1|0)/2|0|0)?0:k)|0,rn(t,a,k),y=z[o+2>>0]|0,I=y-(z[s+2>>0]|0)>>31|1,f=Z(I,(z[n+2>>0]|0)-y|0)|0,l=e[h>>2]|0,(f|0)>0?f=(f+l|0)/(l<<1|1|0)|0:f=(f-l|0)/(l<<1|1|0)|0,S=e[w>>2]|0,f=((f|0)<0?S:0)+f|0,S=f-((f|0)<((S+1|0)/2|0|0)?0:S)|0,rn(t,a,S),a=e[h>>2]|0,h=a<<1|1,f=(Z(Z(h,c)|0,v)|0)+g|0,n=0-a|0,(f|0)>=(n|0)?(l=e[D>>2]|0,(l+a|0)<(f|0)&&(f=f-(Z(e[w>>2]|0,h)|0)|0),s=l):(f=(Z(e[w>>2]|0,h)|0)+f|0,s=e[D>>2]|0),(f&s|0)!=(f|0)&&(f=s&~(f>>31)),o=f&255,f=(Z(Z(h,k)|0,_)|0)+E|0,(f|0)>=(n|0)?(s+a|0)<(f|0)&&(f=f-(Z(e[w>>2]|0,h)|0)|0):f=(Z(e[w>>2]|0,h)|0)+f|0,(f&s|0)!=(f|0)&&(f=s&~(f>>31)),l=f&255,f=(Z(Z(h,S)|0,I)|0)+y|0,(f|0)>=(n|0)?(s+a|0)<(f|0)&&(f=f-(Z(e[w>>2]|0,h)|0)|0):f=(Z(e[w>>2]|0,h)|0)+f|0,(f&s|0)==(f|0)){w=f,w=w&255,m[r>>0]=o,y=r+1|0,m[y>>0]=l,r=r+2|0,m[r>>0]=w;return}w=s&~(f>>31),w=w&255,m[r>>0]=o,y=r+1|0,m[y>>0]=l,r=r+2|0,m[r>>0]=w}function rn(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,uo(r,o,s,(e[r+156>>2]|0)+-1-(e[36476+(e[r+4600>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function s8(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+144|0;e:do if(e[g>>2]|0)t=r+152|0;else if(n=e[r+136>>2]|0,t=r+152|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+184>>2]|0))&&(e[s+8>>2]|0)==(e[r+188>>2]|0)&&(e[s+12>>2]|0)==(e[r+192>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4612>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4612>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4612>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4612>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4616|0,s=S<<1,o=r+4620|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4612|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+192|0,c=r+188|0,l=r+184|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function o8(r){r=r|0;var t=0,n=0;e[r>>2]=35996,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function f8(r){r=r|0;var t=0,n=0;if(e[r>>2]=35996,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function l8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,65535,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+160>>2]=l|0?l:e[a+4>>2]|0,e[r+164>>2]=f,e[r+168>>2]=s,p8(r),s=0;do e[r+172+(s*12|0)>>2]=1024,e[r+172+(s*12|0)+4>>2]=0,R[r+172+(s*12|0)+8>>1]=0,R[r+172+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4552>>2]=1024,e[r+4556>>2]=0,m[r+4560>>0]=a,m[r+4561>>0]=1,m[r+4562>>0]=0,e[r+4564>>2]=1024,e[r+4568>>2]=1,m[r+4572>>0]=a,m[r+4573>>0]=1,m[r+4574>>0]=0,e[r+4576>>2]=0,C=o}function u8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4600)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35772,o=t+132|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+148>>2]=e[s>>2],e[t+152>>2]=0,e[t+156>>2]=0,e[t+160>>2]=0,o=t+4544|0,s=t+164|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4556|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4568|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,ao(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],ao(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function a8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0)}function ao(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;_=C,C=C+32|0,w=_+12|0,E=_,k=r+156|0,D=(e[k>>2]|0)+4|0,(e[r+32>>2]|0)==1?I=e[r+24>>2]|0:I=1,t=Z(I<<1,D)|0,e[w>>2]=0,d=w+4|0,e[d>>2]=0,e[w+8>>2]=0;do if(t){if((t|0)<0&&(u=0,I0(178,w|0),y=u,u=0,y&1)||(l=6),(l|0)==6&&(n=t<<1,u=0,s=j(67,n|0)|0,y=u,u=0,!(y&1))){e[w>>2]=s,y=s+(t<<1)|0,e[w+8>>2]=y,ye(s|0,0,n|0)|0,e[d>>2]=y;break}s=L()|0,t=e[w>>2]|0,t||U(s|0),n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}while(0);e[E>>2]=0,y=E+4|0,e[y>>2]=0,e[E+8>>2]=0;do if(!I)l=18;else{if(I>>>0>1073741823&&(u=0,I0(178,E|0),v=u,u=0,v&1)||(l=16),(l|0)==16&&(o=I<<2,u=0,f=j(67,o|0)|0,v=u,u=0,!(v&1))){e[E>>2]=f,l=f+(I<<2)|0,e[E+8>>2]=l,ye(f|0,0,o|0)|0,e[y>>2]=l,l=18;break}s=L()|0,t=e[E>>2]|0,n=t,t&&(o=e[y>>2]|0,(o|0)!=(t|0)&&(e[y>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==18){f=r+12|0;e:do if((e[f>>2]|0)>0){l=r+4580|0,a=(Z(I,D)|0)+1|0,c=r+4584|0,h=r+92|0,S=(I|0)>0,g=r+4576|0,v=0;i:for(;;){if(n=e[w>>2]|0,t=n+2|0,e[l>>2]=t,n=n+(a<<1)|0,e[c>>2]=n,v&1?(e[l>>2]=n,e[c>>2]=t):t=n,o=e[h>>2]|0,u=0,w0(e[(e[o>>2]|0)+12>>2]|0,o|0,t|0,e[k>>2]|0,D|0),o=u,u=0,o&1){l=28;break}if(S){t=e[l>>2]|0,n=e[c>>2]|0,s=e[E>>2]|0,o=0;do{if(e[g>>2]=e[s+(o<<2)>>2],s=e[k>>2]|0,R[t+(s<<1)>>1]=R[t+(s+-1<<1)>>1]|0,R[n+-2>>1]=R[t>>1]|0,u=0,e0(71,r|0,0),s=u,u=0,s&1){l=27;break i}s=e[E>>2]|0,e[s+(o<<2)>>2]=e[g>>2],t=(e[l>>2]|0)+(D<<1)|0,e[l>>2]=t,n=(e[c>>2]|0)+(D<<1)|0,e[c>>2]=n,o=o+1|0}while((o|0)<(I|0))}if(v=v+1|0,(v|0)>=(e[f>>2]|0)){l=40;break e}}if((l|0)==27){s=L()|0;break}else if((l|0)==28){s=L()|0;break}}else l=40;while(0);do if((l|0)==40){if(u=0,I0(182,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[E>>2]|0,n=t,t&&(s=e[y>>2]|0,(s|0)!=(t|0)&&(e[y>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[w>>2]|0,!t){C=_;return}n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),C=_;return}while(0);t=e[E>>2]|0,n=t,t&&(o=e[y>>2]|0,(o|0)!=(t|0)&&(e[y>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[w>>2]|0,t||U(s|0),n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}function c8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4580|0,t=e[g>>2]|0,D=r+156|0,!((e[D>>2]|0)<=0))for(v=r+4584|0,k=r+4588|0,o=t,f=b[t+-2>>1]|0,t=b[t>>1]|0,S=0;h=e[v>>2]|0,c=b[h+(S+-1<<1)>>1]|0,s=S+1|0,n=b[o+(s<<1)>>1]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=S8(r,a,b[h+(S<<1)>>1]|0,o,0)|0,R[(e[v>>2]|0)+(S<<1)>>1]=h):(s=(h8(r,S,0)|0)+S|0,n=e[g>>2]|0,t=b[n+(s+-1<<1)>>1]|0,n=b[n+(s<<1)>>1]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function S8(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,k=r+172+(c*12|0)+10|0,l=R[k>>1]|0,v=r+172+(c*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(f=5;(l<>1]^D)-D+s|0,(o&65535|0)==(o|0)?S=o:S=o>>31&65535^65535,a=(n-S^D)-D<<16,h=a>>16,f?o=0:o=(e[r+172+(c*12|0)+4>>2]<<1)+-1+l>>31,s=o^h,s=s>>30^s<<1,o=s>>f,(o|0)<47?((o|0)>30&&(l=(o|0)/2|0,$0(r,0,l),o=o-l|0),$0(r,1,o+1|0),$0(r,s&(1<>1]|0,o=l<<16>>16==64,f=o&1,n=(e[s>>2]|0)+h>>f,l=o?32:l<<16>>16,e[v>>2]=(e[v>>2]|0)+((a|0)>-65536?h:0-h|0)>>f,f=l+1|0,R[k>>1]=f,o=f+n|0,(o|0)<1?(k=R[g>>1]|0,R[g>>1]=(k&65535)-(k<<16>>16>-128&1),k=(o|0)>(~l|0)?o:0-l|0,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&65535,t|0):(n|0)<=0?(k=n,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&65535,t|0):(k=n-f|0,v=R[g>>1]|0,R[g>>1]=(v<<16>>16<127&1)+(v&65535),k=(k|0)>0?0:k,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&65535,t|0)}function h8(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;for(l=(e[r+156>>2]|0)-t|0,a=e[r+4584>>2]|0,h=e[r+4580>>2]|0,o=R[a+(t+-1<<1)>>1]|0,s=0;;){if(n=a+(s+t<<1)|0,(R[n>>1]|0)!=o<<16>>16){S=s;break}if(R[n>>1]=o,s=s+1|0,(s|0)==(l|0)){S=l;break}}if(f=o&65535,o=(S|0)==(l|0),c=r+4576|0,s=e[36476+(e[c>>2]<<2)>>2]|0,(1<(S|0))n=S;else{n=S;do $0(r,1,1),s=e[c>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[c>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>1]|0,n=b[h+(n<<1)>>1]|0,h=f-n|0,(((h|0)>-1?h:0-h|0)|0)<1?(n=s-f<<16>>16,co(r,r+4564|0,n),n=n+f|0):(h=n-f>>31|1,t=(Z(s-n<<16,h)|0)>>16,co(r,r+4552|0,t),n=(Z(t,h)|0)+n|0),R[o>>1]=n,r=e[c>>2]|0,e[c>>2]=(r|0)<1?0:r+-1|0,r=S+1|0,r|0)}function co(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,m8(r,o,s,63-(e[36476+(e[r+4576>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function m8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(o=n>>t,f=s+-16|0,(o|0)<(s+-17|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-47|0)):$0(r,1,f),$0(r,n+65535&65535,16)}function p8(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,65535,0),c=r+160|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+164>>2]|0)&&(e[a+12>>2]|0)==(e[r+168>>2]|0)){c=e[8909]|0,e[r+4588>>2]=c+(((e[8910]|0)-c|0)>>>1),C=h;return}for(n=r+4592|0,s=r+4596|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=131072?f>>>0>131072&&(l=t+131072|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,131072-f|0),t=e[n>>2]|0),a=r+4588|0,e[a>>2]=t+65536,l=r+168|0,o=r+164|0,f=-65536;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==65536)break}C=h}function g8(r){r=r|0;var t=0,n=0;e[r>>2]=35968,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function v8(r){r=r|0;var t=0,n=0;if(e[r>>2]=35968,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function T8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,4095,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+160>>2]=l|0?l:e[a+4>>2]|0,e[r+164>>2]=f,e[r+168>>2]=s,D8(r),s=0;do e[r+172+(s*12|0)>>2]=64,e[r+172+(s*12|0)+4>>2]=0,R[r+172+(s*12|0)+8>>1]=0,R[r+172+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4552>>2]=64,e[r+4556>>2]=0,m[r+4560>>0]=a,m[r+4561>>0]=1,m[r+4562>>0]=0,e[r+4564>>2]=64,e[r+4568>>2]=1,m[r+4572>>0]=a,m[r+4573>>0]=1,m[r+4574>>0]=0,e[r+4576>>2]=0,C=o}function k8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4600)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35744,o=t+132|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+148>>2]=e[s>>2],e[t+152>>2]=0,e[t+156>>2]=0,e[t+160>>2]=0,o=t+4544|0,s=t+164|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4556|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4568|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,So(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],So(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function w8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0)}function So(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;_=C,C=C+32|0,w=_+12|0,E=_,k=r+156|0,D=(e[k>>2]|0)+4|0,(e[r+32>>2]|0)==1?I=e[r+24>>2]|0:I=1,t=Z(I<<1,D)|0,e[w>>2]=0,d=w+4|0,e[d>>2]=0,e[w+8>>2]=0;do if(t){if((t|0)<0&&(u=0,I0(178,w|0),y=u,u=0,y&1)||(l=6),(l|0)==6&&(n=t<<1,u=0,s=j(67,n|0)|0,y=u,u=0,!(y&1))){e[w>>2]=s,y=s+(t<<1)|0,e[w+8>>2]=y,ye(s|0,0,n|0)|0,e[d>>2]=y;break}s=L()|0,t=e[w>>2]|0,t||U(s|0),n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}while(0);e[E>>2]=0,y=E+4|0,e[y>>2]=0,e[E+8>>2]=0;do if(!I)l=18;else{if(I>>>0>1073741823&&(u=0,I0(178,E|0),v=u,u=0,v&1)||(l=16),(l|0)==16&&(o=I<<2,u=0,f=j(67,o|0)|0,v=u,u=0,!(v&1))){e[E>>2]=f,l=f+(I<<2)|0,e[E+8>>2]=l,ye(f|0,0,o|0)|0,e[y>>2]=l,l=18;break}s=L()|0,t=e[E>>2]|0,n=t,t&&(o=e[y>>2]|0,(o|0)!=(t|0)&&(e[y>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==18){f=r+12|0;e:do if((e[f>>2]|0)>0){l=r+4580|0,a=(Z(I,D)|0)+1|0,c=r+4584|0,h=r+92|0,S=(I|0)>0,g=r+4576|0,v=0;i:for(;;){if(n=e[w>>2]|0,t=n+2|0,e[l>>2]=t,n=n+(a<<1)|0,e[c>>2]=n,v&1?(e[l>>2]=n,e[c>>2]=t):t=n,o=e[h>>2]|0,u=0,w0(e[(e[o>>2]|0)+12>>2]|0,o|0,t|0,e[k>>2]|0,D|0),o=u,u=0,o&1){l=28;break}if(S){t=e[l>>2]|0,n=e[c>>2]|0,s=e[E>>2]|0,o=0;do{if(e[g>>2]=e[s+(o<<2)>>2],s=e[k>>2]|0,R[t+(s<<1)>>1]=R[t+(s+-1<<1)>>1]|0,R[n+-2>>1]=R[t>>1]|0,u=0,e0(72,r|0,0),s=u,u=0,s&1){l=27;break i}s=e[E>>2]|0,e[s+(o<<2)>>2]=e[g>>2],t=(e[l>>2]|0)+(D<<1)|0,e[l>>2]=t,n=(e[c>>2]|0)+(D<<1)|0,e[c>>2]=n,o=o+1|0}while((o|0)<(I|0))}if(v=v+1|0,(v|0)>=(e[f>>2]|0)){l=40;break e}}if((l|0)==27){s=L()|0;break}else if((l|0)==28){s=L()|0;break}}else l=40;while(0);do if((l|0)==40){if(u=0,I0(182,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[E>>2]|0,n=t,t&&(s=e[y>>2]|0,(s|0)!=(t|0)&&(e[y>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[w>>2]|0,!t){C=_;return}n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),C=_;return}while(0);t=e[E>>2]|0,n=t,t&&(o=e[y>>2]|0,(o|0)!=(t|0)&&(e[y>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[w>>2]|0,t||U(s|0),n=e[d>>2]|0,(n|0)!=(t|0)&&(e[d>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}function d8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4580|0,t=e[g>>2]|0,D=r+156|0,!((e[D>>2]|0)<=0))for(v=r+4584|0,k=r+4588|0,o=t,f=b[t+-2>>1]|0,t=b[t>>1]|0,S=0;h=e[v>>2]|0,c=b[h+(S+-1<<1)>>1]|0,s=S+1|0,n=b[o+(s<<1)>>1]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=C8(r,a,b[h+(S<<1)>>1]|0,o,0)|0,R[(e[v>>2]|0)+(S<<1)>>1]=h):(s=(y8(r,S,0)|0)+S|0,n=e[g>>2]|0,t=b[n+(s+-1<<1)>>1]|0,n=b[n+(s<<1)>>1]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function C8(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,k=r+172+(c*12|0)+10|0,l=R[k>>1]|0,v=r+172+(c*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(f=5;(l<>1]^D)-D+s|0,(o&4095|0)==(o|0)?S=o:S=o>>31&4095^4095,a=(n-S^D)-D<<20,h=a>>20,f?o=0:o=(e[r+172+(c*12|0)+4>>2]<<1)+-1+l>>31,s=o^h,s=s>>30^s<<1,o=s>>f,(o|0)<35?((o|0)>30&&(l=(o|0)/2|0,$0(r,0,l),o=o-l|0),$0(r,1,o+1|0),$0(r,s&(1<>1]|0,o=l<<16>>16==64,f=o&1,n=(e[s>>2]|0)+h>>f,l=o?32:l<<16>>16,e[v>>2]=(e[v>>2]|0)+((a|0)>-1048576?h:0-h|0)>>f,f=l+1|0,R[k>>1]=f,o=f+n|0,(o|0)<1?(k=R[g>>1]|0,R[g>>1]=(k&65535)-(k<<16>>16>-128&1),k=(o|0)>(~l|0)?o:0-l|0,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&4095,t=t&65535,t|0):(n|0)<=0?(k=n,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&4095,t=t&65535,t|0):(k=n-f|0,v=R[g>>1]|0,R[g>>1]=(v<<16>>16<127&1)+(v&65535),k=(k|0)>0?0:k,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&4095,t=t&65535,t|0)}function y8(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;for(l=(e[r+156>>2]|0)-t|0,a=e[r+4584>>2]|0,h=e[r+4580>>2]|0,o=R[a+(t+-1<<1)>>1]|0,s=0;;){if(n=a+(s+t<<1)|0,(R[n>>1]|0)!=o<<16>>16){S=s;break}if(R[n>>1]=o,s=s+1|0,(s|0)==(l|0)){S=l;break}}if(f=o&65535,o=(S|0)==(l|0),c=r+4576|0,s=e[36476+(e[c>>2]<<2)>>2]|0,(1<(S|0))n=S;else{n=S;do $0(r,1,1),s=e[c>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[c>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>1]|0,n=b[h+(n<<1)>>1]|0,h=f-n|0,(((h|0)>-1?h:0-h|0)|0)<1?(n=s-f<<20>>20,ho(r,r+4564|0,n),n=n+f|0):(h=n-f>>31|1,t=(Z(s-n<<20,h)|0)>>20,ho(r,r+4552|0,t),n=(Z(t,h)|0)+n|0),R[o>>1]=n&4095,r=e[c>>2]|0,e[c>>2]=(r|0)<1?0:r+-1|0,r=S+1|0,r|0)}function ho(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,A8(r,o,s,47-(e[36476+(e[r+4576>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function A8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(o=n>>t,f=s+-12|0,(o|0)<(s+-13|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-43|0)):$0(r,1,f),$0(r,n+4095&4095,12)}function D8(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,4095,0),c=r+160|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+164>>2]|0)&&(e[a+12>>2]|0)==(e[r+168>>2]|0)){c=e[8906]|0,e[r+4588>>2]=c+(((e[8907]|0)-c|0)>>>1),C=h;return}for(n=r+4592|0,s=r+4596|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=8192?f>>>0>8192&&(l=t+8192|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,8192-f|0),t=e[n>>2]|0),a=r+4588|0,e[a>>2]=t+4096,l=r+168|0,o=r+164|0,f=-4096;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==4096)break}C=h}function _8(r){r=r|0;var t=0,n=0;e[r>>2]=35940,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function I8(r){r=r|0;var t=0,n=0;if(e[r>>2]=35940,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function P8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,255,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+160>>2]=l|0?l:e[a+4>>2]|0,e[r+164>>2]=f,e[r+168>>2]=s,x8(r),s=0;do e[r+172+(s*12|0)>>2]=4,e[r+172+(s*12|0)+4>>2]=0,R[r+172+(s*12|0)+8>>1]=0,R[r+172+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4552>>2]=4,e[r+4556>>2]=0,m[r+4560>>0]=a,m[r+4561>>0]=1,m[r+4562>>0]=0,e[r+4564>>2]=4,e[r+4568>>2]=1,m[r+4572>>0]=a,m[r+4573>>0]=1,m[r+4574>>0]=0,e[r+4576>>2]=0,C=o}function E8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4600)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35716,o=t+132|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+148>>2]=e[s>>2],e[t+152>>2]=0,e[t+156>>2]=0,e[t+160>>2]=0,o=t+4544|0,s=t+164|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4556|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4568|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,mo(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],mo(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function L8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0)}function mo(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;E=C,C=C+32|0,y=E+12|0,I=E,v=r+156|0,k=(e[v>>2]|0)+4|0,(e[r+32>>2]|0)==1?D=e[r+24>>2]|0:D=1,t=Z(D<<1,k)|0,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0;e:do if(t){if((t|0)<0&&(u=0,I0(178,y|0),_=u,u=0,_&1)||(f=6),(f|0)==6&&(u=0,n=j(67,t|0)|0,_=u,u=0,!(_&1))){for(e[w>>2]=n,e[y>>2]=n,e[y+8>>2]=n+t;;)if(m[n>>0]=0,n=(e[w>>2]|0)+1|0,e[w>>2]=n,t=t+-1|0,!t)break e}n=L()|0,t=e[y>>2]|0,t||U(n|0),(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),U(n|0)}while(0);e[I>>2]=0,_=I+4|0,e[_>>2]=0,e[I+8>>2]=0;do if(!D)f=19;else{if(D>>>0>1073741823&&(u=0,I0(178,I|0),g=u,u=0,g&1)||(f=17),(f|0)==17&&(s=D<<2,u=0,o=j(67,s|0)|0,g=u,u=0,!(g&1))){e[I>>2]=o,f=o+(D<<2)|0,e[I+8>>2]=f,ye(o|0,0,s|0)|0,e[_>>2]=f,f=19;break}n=L()|0,t=e[I>>2]|0,s=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}while(0);if((f|0)==19){o=r+12|0;e:do if((e[o>>2]|0)>0){f=r+4580|0,l=(Z(D,k)|0)+1|0,a=r+4584|0,c=r+92|0,h=(D|0)>0,S=r+4576|0,g=0;i:for(;;){if(n=e[y>>2]|0,t=n+1|0,e[f>>2]=t,n=n+l|0,e[a>>2]=n,g&1?(e[f>>2]=n,e[a>>2]=t):t=n,s=e[c>>2]|0,u=0,w0(e[(e[s>>2]|0)+12>>2]|0,s|0,t|0,e[v>>2]|0,k|0),s=u,u=0,s&1){f=29;break}if(h){t=e[f>>2]|0,n=e[I>>2]|0,s=0;do{if(e[S>>2]=e[n+(s<<2)>>2],n=e[v>>2]|0,m[t+n>>0]=m[t+(n+-1)>>0]|0,m[(e[a>>2]|0)+-1>>0]=m[e[f>>2]>>0]|0,u=0,e0(73,r|0,0),n=u,u=0,n&1){f=28;break i}n=e[I>>2]|0,e[n+(s<<2)>>2]=e[S>>2],t=(e[f>>2]|0)+k|0,e[f>>2]=t,e[a>>2]=(e[a>>2]|0)+k,s=s+1|0}while((s|0)<(D|0))}if(g=g+1|0,(g|0)>=(e[o>>2]|0)){f=41;break e}}if((f|0)==28){n=L()|0;break}else if((f|0)==29){n=L()|0;break}}else f=41;while(0);do if((f|0)==41){if(u=0,I0(182,r|0),r=u,u=0,r&1){n=L()|0;break}if(t=e[I>>2]|0,n=t,t&&(s=e[_>>2]|0,(s|0)!=(t|0)&&(e[_>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[y>>2]|0,!t){C=E;return}(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),C=E;return}while(0);t=e[I>>2]|0,s=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}t=e[y>>2]|0,t||U(n|0),(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),U(n|0)}function F8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4580|0,t=e[g>>2]|0,D=r+156|0,!((e[D>>2]|0)<=0))for(v=r+4584|0,k=r+4588|0,o=t,f=z[t+-1>>0]|0,t=z[t>>0]|0,S=0;h=e[v>>2]|0,c=z[h+(S+-1)>>0]|0,s=S+1|0,n=z[o+s>>0]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=R8(r,a,z[h+S>>0]|0,o,0)|0,m[(e[v>>2]|0)+S>>0]=h):(s=(O8(r,S,0)|0)+S|0,n=e[g>>2]|0,t=z[n+(s+-1)>>0]|0,n=z[n+s>>0]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function R8(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,k=r+172+(c*12|0)+10|0,l=R[k>>1]|0,v=r+172+(c*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(f=5;(l<>1]^D)-D+s|0,(o&255|0)==(o|0)?S=o:S=o>>31&255^255,a=(n-S^D)-D<<24,h=a>>24,f?o=0:o=(e[r+172+(c*12|0)+4>>2]<<1)+-1+l>>31,o=o^h,o=o>>30^o<<1,s=o>>f,(s|0)<23?($0(r,1,s+1|0),$0(r,o&(1<>1]|0,o=l<<16>>16==64,f=o&1,n=(e[s>>2]|0)+h>>f,l=o?32:l<<16>>16,e[v>>2]=(e[v>>2]|0)+((a|0)>-16777216?h:0-h|0)>>f,f=l+1|0,R[k>>1]=f,o=f+n|0,(o|0)<1?(k=R[g>>1]|0,R[g>>1]=(k&65535)-(k<<16>>16>-128&1),k=(o|0)>(~l|0)?o:0-l|0,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&255,t|0):(n|0)<=0?(k=n,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&255,t|0):(k=n-f|0,v=R[g>>1]|0,R[g>>1]=(v<<16>>16<127&1)+(v&65535),k=(k|0)>0?0:k,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&255,t|0)}function O8(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;for(l=(e[r+156>>2]|0)-t|0,a=e[r+4584>>2]|0,h=e[r+4580>>2]|0,o=m[a+(t+-1)>>0]|0,s=0;;){if(n=a+(s+t)|0,(m[n>>0]|0)!=o<<24>>24){S=s;break}if(m[n>>0]=o,s=s+1|0,(s|0)==(l|0)){S=l;break}}if(f=o&255,o=(S|0)==(l|0),c=r+4576|0,s=e[36476+(e[c>>2]<<2)>>2]|0,(1<(S|0))n=S;else{n=S;do $0(r,1,1),s=e[c>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[c>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>0]|0,n=z[h+n>>0]|0,h=f-n|0,(((h|0)>-1?h:0-h|0)|0)<1?(n=s-f<<24>>24,po(r,r+4564|0,n),n=n+f|0):(h=n-f>>31|1,t=(Z(s-n<<24,h)|0)>>24,po(r,r+4552|0,t),n=(Z(t,h)|0)+n|0),m[o>>0]=n,r=e[c>>2]|0,e[c>>2]=(r|0)<1?0:r+-1|0,r=S+1|0,r|0)}function po(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,M8(r,o,s,31-(e[36476+(e[r+4576>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function M8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(o=n>>t,f=s+-8|0,(o|0)<(s+-9|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-39|0)):$0(r,1,f),$0(r,n+255&255,8)}function x8(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,255,0),c=r+160|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+164>>2]|0)&&(e[a+12>>2]|0)==(e[r+168>>2]|0)){c=e[8900]|0,e[r+4588>>2]=c+(((e[8901]|0)-c|0)>>>1),C=h;return}for(n=r+4592|0,s=r+4596|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=512?f>>>0>512&&(l=t+512|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,512-f|0),t=e[n>>2]|0),a=r+4588|0,e[a>>2]=t+256,l=r+168|0,o=r+164|0,f=-256;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==256)break}C=h}function q8(r){r=r|0;var t=0,n=0;e[r>>2]=35912,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function N8(r){r=r|0;var t=0,n=0;if(e[r>>2]=35912,t=e[r+4592>>2]|0,t&&(n=r+4596|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function U8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,255,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+160>>2]=l|0?l:e[a+4>>2]|0,e[r+164>>2]=f,e[r+168>>2]=s,z8(r),s=0;do e[r+172+(s*12|0)>>2]=4,e[r+172+(s*12|0)+4>>2]=0,R[r+172+(s*12|0)+8>>1]=0,R[r+172+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4552>>2]=4,e[r+4556>>2]=0,m[r+4560>>0]=a,m[r+4561>>0]=1,m[r+4562>>0]=0,e[r+4564>>2]=4,e[r+4568>>2]=1,m[r+4572>>0]=a,m[r+4573>>0]=1,m[r+4574>>0]=0,e[r+4576>>2]=0,C=o}function B8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4600)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35688,o=t+132|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+148>>2]=e[s>>2],e[t+152>>2]=0,e[t+156>>2]=0,e[t+160>>2]=0,o=t+4544|0,s=t+164|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4556|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4568|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,go(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],go(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function Q8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0)}function go(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;E=C,C=C+32|0,y=E+12|0,I=E,v=r+156|0,k=(e[v>>2]|0)+4|0,(e[r+32>>2]|0)==1?D=e[r+24>>2]|0:D=1,t=Z(D<<1,k)|0,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0;e:do if(t){if(t>>>0>1431655765&&(u=0,I0(178,y|0),_=u,u=0,_&1)||(f=6),(f|0)==6&&(u=0,n=j(67,t*3|0)|0,_=u,u=0,!(_&1))){for(e[w>>2]=n,e[y>>2]=n,e[y+8>>2]=n+(t*3|0);;)if(m[n>>0]=0,m[n+1>>0]=0,m[n+2>>0]=0,n=(e[w>>2]|0)+3|0,e[w>>2]=n,t=t+-1|0,!t)break e}s=L()|0,t=e[y>>2]|0,t||U(s|0),n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}while(0);e[I>>2]=0,_=I+4|0,e[_>>2]=0,e[I+8>>2]=0;do if(!D)f=19;else{if(D>>>0>1073741823&&(u=0,I0(178,I|0),g=u,u=0,g&1)||(f=17),(f|0)==17&&(s=D<<2,u=0,o=j(67,s|0)|0,g=u,u=0,!(g&1))){e[I>>2]=o,f=o+(D<<2)|0,e[I+8>>2]=f,ye(o|0,0,s|0)|0,e[_>>2]=f,f=19;break}s=L()|0,t=e[I>>2]|0,n=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((f|0)==19){o=r+12|0;e:do if((e[o>>2]|0)>0){f=r+4580|0,l=(Z(D,k)|0)+1|0,a=r+4584|0,c=r+92|0,h=(D|0)>0,S=r+4576|0,g=0;i:for(;;){if(s=e[y>>2]|0,t=s+3|0,e[f>>2]=t,n=s+(l*3|0)|0,e[a>>2]=n,g&1?(e[f>>2]=n,e[a>>2]=t,t=1):t=l,n=e[c>>2]|0,u=0,w0(e[(e[n>>2]|0)+12>>2]|0,n|0,s+(t*3|0)|0,e[v>>2]|0,k|0),s=u,u=0,s&1){f=29;break}if(h){t=e[I>>2]|0,n=e[f>>2]|0,s=0;do{if(e[S>>2]=e[t+(s<<2)>>2],d=e[v>>2]|0,t=n+(d*3|0)|0,n=n+((d+-1|0)*3|0)|0,m[t>>0]=m[n>>0]|0,m[t+1>>0]=m[n+1>>0]|0,m[t+2>>0]=m[n+2>>0]|0,t=e[f>>2]|0,n=(e[a>>2]|0)+-3|0,m[n>>0]=m[t>>0]|0,m[n+1>>0]=m[t+1>>0]|0,m[n+2>>0]=m[t+2>>0]|0,u=0,e0(74,r|0,0),n=u,u=0,n&1){f=28;break i}t=e[I>>2]|0,e[t+(s<<2)>>2]=e[S>>2],n=(e[f>>2]|0)+(k*3|0)|0,e[f>>2]=n,e[a>>2]=(e[a>>2]|0)+(k*3|0),s=s+1|0}while((s|0)<(D|0))}if(g=g+1|0,(g|0)>=(e[o>>2]|0)){f=41;break e}}if((f|0)==28){s=L()|0;break}else if((f|0)==29){s=L()|0;break}}else f=41;while(0);do if((f|0)==41){if(u=0,I0(182,r|0),d=u,u=0,d&1){s=L()|0;break}if(t=e[I>>2]|0,n=t,t&&(s=e[_>>2]|0,(s|0)!=(t|0)&&(e[_>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[y>>2]|0,!t){C=E;return}n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),C=E;return}while(0);t=e[I>>2]|0,n=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[y>>2]|0,t||U(s|0),n=e[w>>2]|0,(n|0)!=(t|0)&&(e[w>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}function G8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0;if(N=r+156|0,!((e[N>>2]|0)<=0))for(q=r+4584|0,B=r+4580|0,n0=r+4588|0,x=0;w=x+-1|0,f=e[q>>2]|0,l=e[B>>2]|0,t=x+1|0,o=z[l+(x*3|0)>>0]|0,O=e[n0>>2]|0,a=z[l+(w*3|0)>>0]|0,c=o-a|0,h=z[f+(w*3|0)>>0]|0,S=a-h|0,g=((((m[O+((z[l+(t*3|0)>>0]|0)-o)>>0]|0)*9|0)+(m[O+c>>0]|0)|0)*9|0)+(m[O+S>>0]|0)|0,s=z[l+(x*3|0)+1>>0]|0,v=z[l+(w*3|0)+1>>0]|0,k=s-v|0,D=z[f+(w*3|0)+1>>0]|0,I=v-D|0,E=((((m[O+((z[l+(t*3|0)+1>>0]|0)-s)>>0]|0)*9|0)+(m[O+k>>0]|0)|0)*9|0)+(m[O+I>>0]|0)|0,n=z[l+(x*3|0)+2>>0]|0,_=z[l+(w*3|0)+2>>0]|0,y=n-_|0,w=z[f+(w*3|0)+2>>0]|0,d=_-w|0,O=((((m[O+((z[l+(t*3|0)+2>>0]|0)-n)>>0]|0)*9|0)+(m[O+y>>0]|0)|0)*9|0)+(m[O+d>>0]|0)|0,E|g|O?(l=z[f+(x*3|0)>>0]|0,f=o-h>>31,(f^S|0)>=0&&((f^c|0)<0?o=h:o=h-a+o|0),l=tn(r,g,l,o,0)|0,f=z[(e[q>>2]|0)+(x*3|0)+1>>0]|0,o=s-D>>31,(o^I|0)>=0&&((o^k|0)<0?s=D:s=D-v+s|0),o=tn(r,E,f,s,0)|0,f=z[(e[q>>2]|0)+(x*3|0)+2>>0]|0,s=n-w>>31,(s^d|0)>=0&&((s^y|0)<0?n=w:n=w-_+n|0),O=tn(r,O,f,n,0)|0,x=(e[q>>2]|0)+(x*3|0)|0,m[x>>0]=l,m[x+1>>0]=o,m[x+2>>0]=O):t=(V8(r,x,0)|0)+x|0,(t|0)<(e[N>>2]|0);)x=t}function V8(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;for(h=(e[r+156>>2]|0)-t|0,S=e[r+4584>>2]|0,g=e[r+4580>>2]|0,c=S+((t+-1|0)*3|0)|0,v=m[c>>0]|0,a=m[c+1>>0]|0,c=m[c+2>>0]|0,f=0;n=S+((f+t|0)*3|0)|0,s=n+1|0,o=n+2|0,!!(((m[n>>0]|0)==v<<24>>24?(m[s>>0]|0)==a<<24>>24:0)&(m[o>>0]|0)==c<<24>>24);)if(m[n>>0]=v,m[s>>0]=a,m[o>>0]=c,f=f+1|0,(f|0)==(h|0)){f=h;break}if(o=(f|0)==(h|0),l=r+4576|0,s=e[36476+(e[l>>2]<<2)>>2]|0,(1<(f|0))n=f;else{n=f;do $0(r,1,1),s=e[l>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[l>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>0]|0,t=h+2|0,o=m[t>>0]|0,g=g+(s*3|0)|0,s=m[g+1>>0]|0,E=m[g+2>>0]|0,g=z[g>>0]|0,k=g-(v&255)>>31|1,D=(Z((z[h>>0]|0)-g<<24,k)|0)>>24,I=r+4552|0,nn(r,I,D),v=s&255,s=v-(a&255)>>31|1,n=(Z((n&255)-v<<24,s)|0)>>24,nn(r,I,n),a=E&255,c=a-(c&255)>>31|1,o=(Z((o&255)-a<<24,c)|0)>>24,nn(r,I,o),g=(Z(D,k)|0)+g&255,v=(Z(n,s)|0)+v&255,r=(Z(o,c)|0)+a&255,m[h>>0]=g,m[S>>0]=v,m[t>>0]=r,r=e[l>>2]|0,e[l>>2]=(r|0)<1?0:r+-1|0,r=f+1|0,r|0)}function tn(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,k=r+172+(c*12|0)+10|0,l=R[k>>1]|0,v=r+172+(c*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(f=5;(l<>1]^D)-D+s|0,(o&255|0)==(o|0)?S=o:S=o>>31&255^255,a=(n-S^D)-D<<24,h=a>>24,f?o=0:o=(e[r+172+(c*12|0)+4>>2]<<1)+-1+l>>31,o=o^h,o=o>>30^o<<1,s=o>>f,(s|0)<23?($0(r,1,s+1|0),$0(r,o&(1<>1]|0,o=l<<16>>16==64,f=o&1,n=(e[s>>2]|0)+h>>f,l=o?32:l<<16>>16,e[v>>2]=(e[v>>2]|0)+((a|0)>-16777216?h:0-h|0)>>f,f=l+1|0,R[k>>1]=f,o=f+n|0,(o|0)<1?(k=R[g>>1]|0,R[g>>1]=(k&65535)-(k<<16>>16>-128&1),k=(o|0)>(~l|0)?o:0-l|0,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&255,t|0):(n|0)<=0?(k=n,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&255,t|0):(k=n-f|0,v=R[g>>1]|0,R[g>>1]=(v<<16>>16<127&1)+(v&65535),k=(k|0)>0?0:k,e[s>>2]=k,D=h^D,t=t>>>31,t=S+t|0,t=t+D|0,t=t&255,t|0)}function nn(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,H8(r,o,s,31-(e[36476+(e[r+4576>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function H8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(o=n>>t,f=s+-8|0,(o|0)<(s+-9|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-39|0)):$0(r,1,f),$0(r,n+255&255,8)}function z8(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,255,0),c=r+160|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+164>>2]|0)&&(e[a+12>>2]|0)==(e[r+168>>2]|0)){c=e[8900]|0,e[r+4588>>2]=c+(((e[8901]|0)-c|0)>>>1),C=h;return}for(n=r+4592|0,s=r+4596|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=512?f>>>0>512&&(l=t+512|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,512-f|0),t=e[n>>2]|0),a=r+4588|0,e[a>>2]=t+256,l=r+168|0,o=r+164|0,f=-256;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==256)break}C=h}function Y8(r){r=r|0;var t=0,n=0;e[r>>2]=35884,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),r=r+4|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function X8(r){r=r|0;var t=0,n=0;if(e[r>>2]=35884,t=e[r+4616>>2]|0,t&&(n=r+4620|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36612,t=e[r+120>>2]|0,t&&(n=r+124|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+92|0,t=e[n>>2]|0,e[n>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),n=r+4|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function j8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+136>>2]|0,e[r+144>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+184>>2]=a|0?a:e[c+4>>2]|0,e[r+188>>2]=f,e[r+192>>2]=o,e3(r),o=r+140|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+196+(f*12|0)>>2]=t,e[r+196+(f*12|0)+4>>2]=0,R[r+196+(f*12|0)+8>>1]=0,R[r+196+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4576>>2]=a,e[r+4580>>2]=0,m[r+4584>>0]=c,m[r+4585>>0]=1,m[r+4586>>0]=0,e[r+4588>>2]=a,e[r+4592>>2]=1,m[r+4596>>0]=c,m[r+4597>>0]=1,m[r+4598>>0]=0,e[r+4600>>2]=0,C=l}function W8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=C,C=C+16|0,c=S,a=r+92|0,l=e[t>>2]|0,e[t>>2]=0,t=e[a>>2]|0,e[a>>2]=l,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),e[c>>2]=0,e[c+4>>2]=s,a=n+8|0,e[c+8>>2]=e[a>>2],s){t=C0(4624)|0,s=r+8|0,o=t+4|0,f=s,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));o=t+88|0,l=o+40|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));e[t>>2]=35660,e[t+128>>2]=e[r+136>>2],e[t+132>>2]=e[r+140>>2],e[t+136>>2]=e[r+144>>2],e[t+140>>2]=e[r+148>>2],e[t+144>>2]=e[r+152>>2],e[t+148>>2]=e[r+156>>2],e[t+152>>2]=e[r+160>>2],o=t+156|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[t+172>>2]=e[s>>2],e[t+176>>2]=0,e[t+180>>2]=0,e[t+184>>2]=0,o=t+4568|0,s=t+188|0;do e[s>>2]=0,e[s+4>>2]=0,R[s+8>>1]=0,R[s+10>>1]=1,s=s+12|0;while((s|0)!=(o|0));f=r+4|0,e[o>>2]=0,e[o+4>>2]=0,R[o+8>>1]=0,m[o+10>>0]=0,l=t+4580|0,e[l>>2]=0,e[l+4>>2]=0,R[l+8>>1]=0,m[l+10>>0]=0,l=t+4592|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+24>>2]=0,m[l+28>>0]=0,e[t+28>>2]|0||(e[t+20>>2]=1),s=e[f>>2]|0,e[f>>2]=t,s&&(K0[e[(e[s>>2]|0)+4>>2]&255](s),t=e[f>>2]|0),z2(t,c)}return c=r+100|0,e[c>>2]=32,e[r+96>>2]=0,t=e[n>>2]|0,t?(e[r+132>>2]=t,o=r+120|0,a=r+124|0,s=e[a>>2]|0,t=e[o>>2]|0,f=t,l=s-f|0,l>>>0>=4e3?l>>>0>4e3&&(h=t+4e3|0,(s|0)!=(h|0))&&(e[a>>2]=h,s=h):(O1(o,4e3-l|0),t=e[o>>2]|0,f=t,s=e[a>>2]|0),e[r+108>>2]=f,e[r+104>>2]=s-t,vo(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0):(e[r+108>>2]=e[n+4>>2],e[r+104>>2]=e[a>>2],vo(r),h=r+116|0,h=e[h>>2]|0,r=e[c>>2]|0,r=r+-32|0,r=(r|0)/8|0,r=h-r|0,C=S,r|0)}function J8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+32>>2]|0&&(e[r+24>>2]|0)!=1){if(k=r+8|0,I=r+36|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+16>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+20>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0)}function vo(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;E=C,C=C+32|0,y=E+12|0,I=E,k=r+180|0,D=(e[k>>2]|0)+4|0,(e[r+32>>2]|0)==1?g=e[r+24>>2]|0:g=1,t=Z(g<<1,D)|0,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0;e:do if(t){if((t|0)<0&&(u=0,I0(178,y|0),_=u,u=0,_&1)||(v=6),(v|0)==6&&(u=0,n=j(67,t|0)|0,_=u,u=0,!(_&1))){for(e[w>>2]=n,e[y>>2]=n,e[y+8>>2]=n+t;;)if(m[n>>0]=0,n=(e[w>>2]|0)+1|0,e[w>>2]=n,t=t+-1|0,!t)break e}n=L()|0,t=e[y>>2]|0,t||U(n|0),(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),U(n|0)}while(0);e[I>>2]=0,_=I+4|0,e[_>>2]=0,e[I+8>>2]=0;do if(!g)v=19;else{if(g>>>0>1073741823&&(u=0,I0(178,I|0),S=u,u=0,S&1)||(v=17),(v|0)==17&&(s=g<<2,u=0,o=j(67,s|0)|0,S=u,u=0,!(S&1))){e[I>>2]=o,v=o+(g<<2)|0,e[I+8>>2]=v,ye(o|0,0,s|0)|0,e[_>>2]=v,v=19;break}n=L()|0,t=e[I>>2]|0,s=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}while(0);if((v|0)==19){l=r+12|0;e:do if((e[l>>2]|0)>0){if(a=r+4604|0,c=(Z(g,D)|0)+1|0,h=r+4608|0,S=r+92|0,f=r+4600|0,(g|0)>0)o=0;else{for(s=0;n=e[y>>2]|0,t=n+1|0,e[a>>2]=t,n=n+c|0,e[h>>2]=n,s&1?(e[a>>2]=n,e[h>>2]=t):t=n,g=e[S>>2]|0,u=0,w0(e[(e[g>>2]|0)+12>>2]|0,g|0,t|0,e[k>>2]|0,D|0),g=u,u=0,!(g&1);)if(s=s+1|0,(s|0)>=(e[l>>2]|0)){v=45;break e}n=L()|0;break}i:for(;;){if(n=e[y>>2]|0,t=n+1|0,e[a>>2]=t,n=n+c|0,e[h>>2]=n,o&1?(e[a>>2]=n,e[h>>2]=t):t=n,v=e[S>>2]|0,u=0,w0(e[(e[v>>2]|0)+12>>2]|0,v|0,t|0,e[k>>2]|0,D|0),v=u,u=0,v&1){v=28;break}t=e[I>>2]|0,n=e[a>>2]|0,s=0;do{if(e[f>>2]=e[t+(s<<2)>>2],v=e[k>>2]|0,m[n+v>>0]=m[n+(v+-1)>>0]|0,m[(e[h>>2]|0)+-1>>0]=m[e[a>>2]>>0]|0,u=0,e0(75,r|0,0),v=u,u=0,v&1){v=36;break i}t=e[I>>2]|0,e[t+(s<<2)>>2]=e[f>>2],n=(e[a>>2]|0)+D|0,e[a>>2]=n,e[h>>2]=(e[h>>2]|0)+D,s=s+1|0}while((s|0)<(g|0));if(o=o+1|0,(o|0)>=(e[l>>2]|0)){v=45;break e}}if((v|0)==28){n=L()|0;break}else if((v|0)==36){n=L()|0;break}}else v=45;while(0);do if((v|0)==45){if(u=0,I0(182,r|0),r=u,u=0,r&1){n=L()|0;break}if(t=e[I>>2]|0,n=t,t&&(s=e[_>>2]|0,(s|0)!=(t|0)&&(e[_>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[y>>2]|0,!t){C=E;return}(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),C=E;return}while(0);t=e[I>>2]|0,s=t,t&&(o=e[_>>2]|0,(o|0)!=(t|0)&&(e[_>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}t=e[y>>2]|0,t||U(n|0),(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),U(n|0)}function K8(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4604|0,t=e[g>>2]|0,D=r+180|0,!((e[D>>2]|0)<=0))for(v=r+4608|0,k=r+4612|0,o=t,f=z[t+-1>>0]|0,t=z[t>>0]|0,S=0;h=e[v>>2]|0,c=z[h+(S+-1)>>0]|0,s=S+1|0,n=z[o+s>>0]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=Z8(r,a,z[h+S>>0]|0,o,0)|0,m[(e[v>>2]|0)+S>>0]=h):(s=($8(r,S,0)|0)+S|0,n=e[g>>2]|0,t=z[n+(s+-1)>>0]|0,n=z[n+s>>0]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function Z8(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(I=t>>31,f=(I^t)-I|0,k=r+196+(f*12|0)+10|0,l=R[k>>1]|0,v=r+196+(f*12|0)|0,o=e[v>>2]|0,(l|0)<(o|0))if((l<<1|0)<(o|0))if((l<<2|0)<(o|0))if((l<<3|0)<(o|0))if((l<<4|0)<(o|0))for(t=5;(l<>1]^I)-I+s|0,D=r+136|0,s=e[D>>2]|0,(o&s|0)==(o|0)?h=o:h=s&~(o>>31),o=(n-h^I)-I|0,c=r+144|0,s=e[c>>2]|0,(o|0)>0?o=(o+s|0)/(s<<1|1|0)|0:o=(o-s|0)/(s<<1|1|0)|0,g=r+140|0,a=e[g>>2]|0,n=((o|0)<0?a:0)+o|0,a=n-((n|0)<((a+1|0)/2|0|0)?0:a)|0,f=r+196+(f*12|0)+4|0,s|t?o=0:o=(e[f>>2]<<1)+-1+l>>31,s=o^a,ko(r,t,s>>30^s<<1,e[r+156>>2]|0),s=e[r+160>>2]|0,t=(e[v>>2]|0)+((a|0)>-1?a:0-a|0)|0,o=(e[f>>2]|0)+(Z(e[c>>2]<<1|1,a)|0)|0,n=R[k>>1]|0,(n|0)==(s|0)&&(t=t>>1,o=o>>1,n=s>>1),e[v>>2]=t,s=n+1|0,R[k>>1]=s,t=s+o|0,(t|0)>=1?(o|0)>0&&(o=o-s|0,k=R[S>>1]|0,R[S>>1]=(k<<16>>16<127&1)+(k&65535),o=(o|0)>0?0:o):(o=R[S>>1]|0,R[S>>1]=(o&65535)-(o<<16>>16>-128&1),o=(t|0)>(~n|0)?t:0-n|0),e[f>>2]=o,s=e[c>>2]|0,n=s<<1|1,t=(Z(n,(a^I)-I|0)|0)+h|0,(t|0)>=(0-s|0)?(o=e[D>>2]|0,(o+s|0)<(t|0)&&(t=t-(Z(e[g>>2]|0,n)|0)|0)):(t=(Z(e[g>>2]|0,n)|0)+t|0,o=e[D>>2]|0),(t&o|0)==(t|0)?(I=t,I=I&255,I|0):(I=o&~(t>>31),I=I&255,I|0)}function $8(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;for(c=(e[r+180>>2]|0)-t|0,h=e[r+4608>>2]|0,S=e[r+4604>>2]|0,o=m[h+(t+-1)>>0]|0,a=o&255,n=r+144|0,f=0;s=h+(f+t)|0,l=(z[s>>0]|0)-a|0,!((((l|0)>-1?l:0-l|0)|0)>(e[n>>2]|0));)if(m[s>>0]=o,f=f+1|0,(f|0)==(c|0)){f=c;break}if(o=(f|0)==(c|0),l=r+4600|0,s=e[36476+(e[l>>2]<<2)>>2]|0,(1<(f|0))n=f;else{n=f;do $0(r,1,1),s=e[l>>2]|0,n=n-(1<>2])|0,s=(s|0)>30?31:s+1|0,e[l>>2]=s,s=e[36476+(s<<2)>>2]|0;while((n|0)>=(1<>0]|0,a,z[S+c>>0]|0)|0,m[t>>0]=r,r=e[l>>2]|0,e[l>>2]=(r|0)<1?0:r+-1|0,r=f+1|0,r|0)}function b8(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;return a=n-s|0,c=r+136|0,l=r+144|0,o=e[l>>2]|0,(((a|0)>-1?a:0-a|0)|0)>(o|0)?(f=s-n>>31|1,t=Z(f,t-s|0)|0,(t|0)>0?t=(o+t|0)/(o<<1|1|0)|0:t=(t-o|0)/(o<<1|1|0)|0,a=r+140|0,o=e[a>>2]|0,n=((t|0)<0?o:0)+t|0,o=n-((n|0)<((o+1|0)/2|0|0)?0:o)|0,To(r,r+4576|0,o),o=Z(o,f)|0,f=e[l>>2]|0,l=f<<1|1,o=(Z(o,l)|0)+s|0,(o|0)>=(0-f|0)?(t=e[c>>2]|0,(t+f|0)<(o|0)&&(o=o-(Z(e[a>>2]|0,l)|0)|0)):(o=(Z(e[a>>2]|0,l)|0)+o|0,t=e[c>>2]|0),(o&t|0)==(o|0)?(c=o,c=c&255,c|0):(c=t&~(o>>31),c=c&255,c|0)):(t=t-n|0,(t|0)>0?t=(o+t|0)/(o<<1|1|0)|0:t=(t-o|0)/(o<<1|1|0)|0,a=r+140|0,o=e[a>>2]|0,f=((t|0)<0?o:0)+t|0,o=f-((f|0)<((o+1|0)/2|0|0)?0:o)|0,To(r,r+4588|0,o),f=e[l>>2]|0,l=f<<1|1,o=(Z(l,o)|0)+n|0,(o|0)>=(0-f|0)?(t=e[c>>2]|0,(t+f|0)<(o|0)&&(o=o-(Z(e[a>>2]|0,l)|0)|0)):(o=(Z(e[a>>2]|0,l)|0)+o|0,t=e[c>>2]|0),(o&t|0)==(o|0)?(c=o,c=c&255,c|0):(c=t&~(o>>31),c=c&255,c|0))}function To(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;if(S=t+9|0,l=z[S>>0]|0,h=t+4|0,c=e[h>>2]|0,o=(Z(l>>>1,c)|0)+(e[t>>2]|0)|0,(l|0)<(o|0)){f=l,s=0;do f=f<<1,s=s+1|0;while((f|0)<(o|0));o=s}else o=0;(n|0)>0&(o|0)==0&&z[t+10>>0]<<1>>>0>>0?s=1:a=5;do if((a|0)==5){if(s=(n|0)<0,s&&z[t+10>>0]<<1>>>0>=l>>>0){s=1;break}s=s&(o|0)!=0}while(0);if(s=(((n|0)>-1?n:0-n|0)<<1)-c+(s<<31>>31)|0,ko(r,o,s,(e[r+156>>2]|0)+-1-(e[36476+(e[r+4600>>2]<<2)>>2]|0)|0),(n|0)<0&&(r=t+10|0,m[r>>0]=(z[r>>0]|0)+1),s=(s+1-(e[h>>2]|0)>>1)+(e[t>>2]|0)|0,e[t>>2]=s,o=m[S>>0]|0,o<<24>>24!=(m[t+8>>0]|0)){t=o,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t;return}e[t>>2]=s>>1,r=(o&255)>>>1,m[S>>0]=r,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=r,t=t&255,t=t+1|0,t=t&255,m[S>>0]=t}function ko(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0;if(o=n>>t,f=r+148|0,l=s-(e[f>>2]|0)|0,(o|0)<(l+-1|0)){(o|0)>30&&(s=(o|0)/2|0,$0(r,0,s),o=o-s|0),$0(r,1,o+1|0),$0(r,(1<31?($0(r,0,31),$0(r,1,s+-31-(e[f>>2]|0)|0)):$0(r,1,l),t=e[f>>2]|0,$0(r,(1<>2]|0)t=r+152|0;else if(n=e[r+136>>2]|0,t=r+152|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+184>>2]|0))&&(e[s+8>>2]|0)==(e[r+188>>2]|0)&&(e[s+12>>2]|0)==(e[r+192>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4612>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4612>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4612>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4612>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4616|0,s=S<<1,o=r+4620|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4612|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+192|0,c=r+188|0,l=r+184|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function i3(r){r=r|0;var t=0,n=0;e[r>>2]=35856,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function r3(r){r=r|0;var t=0,n=0;if(e[r>>2]=35856,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function t3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0)}function n3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+128>>2]|0,e[r+136>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+176>>2]=a|0?a:e[c+4>>2]|0,e[r+180>>2]=f,e[r+184>>2]=o,S3(r),o=r+132|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+188+(f*12|0)>>2]=t,e[r+188+(f*12|0)+4>>2]=0,R[r+188+(f*12|0)+8>>1]=0,R[r+188+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4568>>2]=a,e[r+4572>>2]=0,m[r+4576>>0]=c,m[r+4577>>0]=1,m[r+4578>>0]=0,e[r+4580>>2]=a,e[r+4584>>2]=1,m[r+4588>>0]=c,m[r+4589>>0]=1,m[r+4590>>0]=0,e[r+4592>>2]=0,C=l}function s3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4620>>0]=o&1,t=r+156|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),o3(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function o3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+172|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;do if(t){if((t|0)<0&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(l=6),(l|0)==6&&(n=t<<1,u=0,s=j(67,n|0)|0,N=u,u=0,!(N&1))){e[q>>2]=s,N=s+(t<<1)|0,e[q+8>>2]=N,ye(s|0,0,n|0)|0,e[B>>2]=N;break}s=L()|0,t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)l=18;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(l=16),(l|0)==16&&(o=d<<2,u=0,f=j(67,o|0)|0,_=u,u=0,!(_&1))){e[O>>2]=f,l=f+(d<<2)|0,e[O+8>>2]=l,ye(f|0,0,o|0)|0,e[N>>2]=l,l=18;break}s=L()|0,t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==18){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4596|0,a=Z(d,w)|0,c=a+1|0,h=r+4600|0,S=(d|0)>0,g=r+160|0,v=r+168|0,k=r+164|0,D=r+156|0,I=r+88|0,E=r+4592|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+2|0,e[l>>2]=n,s=s+(c<<1)|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],o=e[y>>2]|0,R[n+(o<<1)>>1]=R[n+(o+-1<<1)>>1]|0,R[t+-2>>1]=R[n>>1]|0,u=0,e0(76,r|0,0),o=u,u=0,o&1){l=29;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+(w<<1)|0,e[l>>2]=n,t=(e[h>>2]|0)+(w<<1)|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+((e[D>>2]|0)-a<<1)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){l=30;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){l=42;break e}}if((l|0)==29){s=L()|0;break}else if((l|0)==30){s=L()|0;break}}else l=42;while(0);do if((l|0)==42){if(u=0,I0(183,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),C=x;return}while(0);t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}function f3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;if(v=r+4596|0,n=e[v>>2]|0,E=r+172|0,t=e[E>>2]|0,!((t|0)<=0))for(k=r+4600|0,D=r+4604|0,I=r+4592|0,a=n,f=b[n+-2>>1]|0,n=b[n>>1]|0,g=0;h=e[k>>2]|0,l=R[h+(g+-1<<1)>>1]|0,S=l&65535,o=g+1|0,s=b[a+(o<<1)>>1]|0,c=e[D>>2]|0,a=n-f|0,f=f-S|0,c=((((m[c+(s-n)>>0]|0)*9|0)+(m[c+a>>0]|0)|0)*9|0)+(m[c+f>>0]|0)|0,h=h+(g<<1)|0,c?(t=n-S>>31,(t^f|0)<0?t=n:t=S+((t^a|0)<0?0:a)|0,S=u3(r,c,b[h>>1]|0,t,0)|0,R[(e[k>>2]|0)+(g<<1)>>1]=S):(t=a3(r,l,h,t-g|0)|0,n=t+g|0,(n|0)!=(e[E>>2]|0)&&(S=c3(r,S,b[(e[v>>2]|0)+(n<<1)>>1]|0)|0,R[(e[k>>2]|0)+(n<<1)>>1]=S,S=e[I>>2]|0,e[I>>2]=(S|0)<1?0:S+-1|0,t=t+1|0),o=t+g|0,s=e[v>>2]|0,n=b[s+(o+-1<<1)>>1]|0,s=b[s+(o<<1)>>1]|0),t=e[E>>2]|0,!((t|0)<=(o|0));)a=e[v>>2]|0,f=n,n=s,g=o}function l3(r){r=r|0;var t=0,n=0,s=0,o=0;s=r+116|0,n=e[s>>2]|0,(m[n>>0]|0)!=-1?(o=r+112|0,t=e[o>>2]|0,(t|0)<1&&(D2(r),t=e[o>>2]|0,n=e[s>>2]|0),r=r+108|0,s=e[r>>2]|0,e[o>>2]=t+-1,t=s<<1,e[r>>2]=t,(m[n>>0]|0)!=-1&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,6,35648),r=u,u=0,r&1||me(t|0,824,96),r=L()|0,z0(t|0),U(r|0))):t=e[r+108>>2]|0,t&&(t=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,t|0,6,35648),r=u,u=0,r&1||me(t|0,824,96),r=L()|0,z0(t|0),U(r|0))}function u3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,v=r+188+(c*12|0)+10|0,n=R[v>>1]|0,g=r+188+(c*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(t=5;(n<>1]^D)-D+s|0,k=r+128|0,o=e[k>>2]|0,(n&o|0)==(n|0)?h=n:h=o&~(n>>31),n=r+112|0,(e[n>>2]|0)<8&&D2(r),o=r+108|0,s=e[o>>2]|0,f=s>>>24,l=e[2832+(t<<11)+(f<<3)+4>>2]|0,l?(e[n>>2]=(e[n>>2]|0)-l,e[o>>2]=s<>2]|0):(a=e[r+148>>2]|0,o=e[r+140>>2]|0,n=X2(r)|0,(n|0)<(a+-1-o|0)?t&&(n=(ze(r,t)|0)+(n<>31^n>>1,(((n|0)>-1?n:0-n|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),r=u,u=0,r&1?(r=L()|0,z0(n|0),U(r|0)):me(n|0,824,96))),a=r+136|0,s=e[a>>2]|0,t?l=n:(s?o=0:o=(e[r+188+(c*12|0)+4>>2]<<1)+-1+(R[v>>1]|0)>>31,l=o^n),t=e[r+152>>2]|0,o=(e[g>>2]|0)+((l|0)>-1?l:0-l|0)|0,f=r+188+(c*12|0)+4|0,n=(e[f>>2]|0)+(Z(s<<1|1,l)|0)|0,s=R[v>>1]|0,(s|0)==(t|0)&&(o=o>>1,n=n>>1,s=t>>1),e[g>>2]=o,t=s+1|0,R[v>>1]=t,o=t+n|0,(o|0)>=1?(n|0)>0&&(n=n-t|0,v=R[S>>1]|0,R[S>>1]=(v<<16>>16<127&1)+(v&65535),n=(n|0)>0?0:n):(n=R[S>>1]|0,R[S>>1]=(n&65535)-(n<<16>>16>-128&1),n=(o|0)>(~s|0)?o:0-s|0),e[f>>2]=n,t=e[a>>2]|0,s=t<<1|1,o=(Z(s,(l^D)-D|0)|0)+h|0,(o|0)>=(0-t|0)?(n=e[k>>2]|0,(n+t|0)<(o|0)&&(o=o-(Z(e[r+132>>2]|0,s)|0)|0)):(o=(Z(e[r+132>>2]|0,s)|0)+o|0,n=e[k>>2]|0),(o&n|0)==(o|0)?(r=o,r=r&65535,r|0):(r=n&~(o>>31),r=r&65535,r|0)}function a3(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4592|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}if((S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)>0)f=0;else return o|0;do R[n+(f<<1)>>1]=t,f=f+1|0;while((f|0)!=(o|0));return o|0}function c3(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;return f=t-n|0,l=r+128|0,s=r+136|0,(((f|0)>-1?f:0-f|0)|0)>(e[s>>2]|0)?(t=Z(wo(r,r+4568|0)|0,n-t>>31|1)|0,o=e[s>>2]|0,f=o<<1|1,t=(Z(t,f)|0)+n|0,(t|0)>=(0-o|0)?(s=e[l>>2]|0,(s+o|0)<(t|0)&&(t=t-(Z(e[r+132>>2]|0,f)|0)|0)):(t=(Z(e[r+132>>2]|0,f)|0)+t|0,s=e[l>>2]|0),(t&s|0)==(t|0)?(r=t,r=r&65535,r|0):(r=s&~(t>>31),r=r&65535,r|0)):(n=wo(r,r+4580|0)|0,f=e[s>>2]|0,o=f<<1|1,t=(Z(o,n)|0)+t|0,(t|0)>=(0-f|0)?(s=e[l>>2]|0,(s+f|0)<(t|0)&&(t=t-(Z(e[r+132>>2]|0,o)|0)|0)):(t=(Z(e[r+132>>2]|0,o)|0)+t|0,s=e[l>>2]|0),(t&s|0)==(t|0)?(r=t,r=r&65535,r|0):(r=s&~(t>>31),r=r&65535,r|0))}function wo(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=t+9|0,n=z[h>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;l=e[r+148>>2]|0,a=e[36476+(e[r+4592>>2]<<2)>>2]|0,n=e[r+140>>2]|0,o=X2(r)|0;do if((o|0)<(l+-2-a-n|0))if(s){a=(ze(r,s)|0)+(o<>2]|0,o=a+s|0,l=o&1,n=l,f=1,o=(l+o|0)/2|0;break}else{s=e[f>>2]|0,r=s+o|0,n=r&1,r=(n+r|0)/2|0,c=8;break}else o=(ze(r,n)|0)+1|0,l=e[f>>2]|0,r=o+l|0,n=r&1,r=(n+r|0)/2|0,s?(a=o,f=1,o=r,s=l):(s=l,c=8);while(0);return(c|0)==8&&(a=o,f=z[t+10>>0]<<1>>>0>=(z[h>>0]|0)>>>0,o=r),o=(n|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(a+1-s>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[h>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(t=s,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[h>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=c,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0)}function X2(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;if(f=r+112|0,(e[f>>2]|0)<16&&D2(r),l=r+108|0,n=e[l>>2]|0,(n|0)>=0){if(n&1073741824)t=1;else if(n&536870912)t=2;else if(n&268435456)t=3;else if(n&134217728)t=4;else if(n&67108864)t=5;else if(n&33554432)t=6;else if(n&16777216)t=7;else if(n&8388608)t=8;else if(n&4194304)t=9;else if(n&2097152)t=10;else if(n&1048576)t=11;else if(n&524288)t=12;else if(n&262144)t=13;else if(n&131072)t=14;else if(o=n>>>12&16,t=o+-1|0,!o){for(t=(e[f>>2]|0)+-15|0,e[f>>2]=t,s=n<<15,e[l>>2]=s,n=t,t=15;(n|0)<1?(D2(r),o=e[l>>2]|0,n=e[f>>2]|0):o=s,n=n+-1|0,e[f>>2]=n,s=o<<1,e[l>>2]=s,!((o|0)<0);)t=t+1|0;return t|0}}else t=0;return r=t+1|0,e[f>>2]=(e[f>>2]|0)-r,e[l>>2]=n<>2]|0,(n|0)<(t|0)&&(D2(r),n=e[s>>2]|0,(n|0)<(t|0)&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),r=u,u=0,r&1?(r=L()|0,z0(n|0),U(r|0)):me(n|0,824,96))),o=r+108|0,r=e[o>>2]|0,e[s>>2]=n-t,e[o>>2]=r<>>(32-t|0)|0}function S3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+136|0;e:do if(e[g>>2]|0)t=r+144|0;else if(n=e[r+128>>2]|0,t=r+144|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+176>>2]|0))&&(e[s+8>>2]|0)==(e[r+180>>2]|0)&&(e[s+12>>2]|0)==(e[r+184>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4604>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4604>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4604>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4604>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4608|0,s=S<<1,o=r+4612|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4604|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+184|0,c=r+180|0,l=r+176|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function h3(r){r=r|0;var t=0,n=0;e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function m3(r){r=r|0;var t=0,n=0;if(e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function p3(r){r=r|0;var t=0,n=0;e[r>>2]=35828,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function g3(r){r=r|0;var t=0,n=0;if(e[r>>2]=35828,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function v3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=6,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=6,e[s+12>>2]=r,d=s,C=_,d|0)}function T3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+128>>2]|0,e[r+136>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+176>>2]=a|0?a:e[c+4>>2]|0,e[r+180>>2]=f,e[r+184>>2]=o,A3(r),o=r+132|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+188+(f*12|0)>>2]=t,e[r+188+(f*12|0)+4>>2]=0,R[r+188+(f*12|0)+8>>1]=0,R[r+188+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4568>>2]=a,e[r+4572>>2]=0,m[r+4576>>0]=c,m[r+4577>>0]=1,m[r+4578>>0]=0,e[r+4580>>2]=a,e[r+4584>>2]=1,m[r+4588>>0]=c,m[r+4589>>0]=1,m[r+4590>>0]=0,e[r+4592>>2]=0,C=l}function k3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4620>>0]=o&1,t=r+156|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),w3(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function w3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+172|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;do if(t){if(t>>>0>715827882&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(l=6),(l|0)==6&&(u=0,n=j(67,t*6|0)|0,N=u,u=0,!(N&1))){for(e[B>>2]=n,e[q>>2]=n,s=n+(t*6|0)|0,e[q+8>>2]=s;R[n>>1]=0,R[n+2>>1]=0,R[n+4>>1]=0,t=t+-1|0,t;)n=n+6|0;e[B>>2]=s;break}s=L()|0,t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-6-t|0)>>>0)/6|0)*6|0)),V(t),U(s|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)l=20;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(l=18),(l|0)==18&&(o=d<<2,u=0,f=j(67,o|0)|0,_=u,u=0,!(_&1))){e[O>>2]=f,l=f+(d<<2)|0,e[O+8>>2]=l,ye(f|0,0,o|0)|0,e[N>>2]=l,l=20;break}s=L()|0,t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==20){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4596|0,a=Z(d,w)|0,c=a+1|0,h=r+4600|0,S=(d|0)>0,g=r+160|0,v=r+168|0,k=r+164|0,D=r+156|0,I=r+88|0,E=r+4592|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+6|0,e[l>>2]=n,s=s+(c*6|0)|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],t=e[y>>2]|0,o=n+(t*6|0)|0,n=n+((t+-1|0)*6|0)|0,R[o>>1]=R[n>>1]|0,R[o+2>>1]=R[n+2>>1]|0,R[o+4>>1]=R[n+4>>1]|0,o=(e[h>>2]|0)+-6|0,n=e[l>>2]|0,R[o>>1]=R[n>>1]|0,R[o+2>>1]=R[n+2>>1]|0,R[o+4>>1]=R[n+4>>1]|0,u=0,e0(77,r|0,0),o=u,u=0,o&1){l=31;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+(w*6|0)|0,e[l>>2]=n,t=(e[h>>2]|0)+(w*6|0)|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+(((e[D>>2]|0)-a|0)*6|0)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){l=32;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){l=44;break e}}if((l|0)==31){s=L()|0;break}else if((l|0)==32){s=L()|0;break}}else l=44;while(0);do if((l|0)==44){if(u=0,I0(183,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-6-t|0)>>>0)/6|0)*6|0)),V(t),C=x;return}while(0);t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-6-t|0)>>>0)/6|0)*6|0)),V(t),U(s|0)}function d3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0;if(fe=C,C=C+32|0,q=fe+24|0,Ie=fe+18|0,Fe=fe+12|0,B=fe+6|0,n0=fe,r0=r+172|0,t=e[r0>>2]|0,(t|0)<=0){C=fe;return}for($=r+4600|0,A0=r+4596|0,ve=r+4604|0,le=r+4592|0,N=0;s=N+-1|0,o=e[$>>2]|0,N0=e[A0>>2]|0,n=N+1|0,f=b[N0+(N*6|0)>>1]|0,x=e[ve>>2]|0,l=b[N0+(s*6|0)>>1]|0,a=f-l|0,c=b[o+(s*6|0)>>1]|0,h=l-c|0,S=((((m[x+((b[N0+(n*6|0)>>1]|0)-f)>>0]|0)*9|0)+(m[x+a>>0]|0)|0)*9|0)+(m[x+h>>0]|0)|0,g=b[N0+(N*6|0)+2>>1]|0,v=b[N0+(s*6|0)+2>>1]|0,k=g-v|0,D=b[o+(s*6|0)+2>>1]|0,I=v-D|0,E=((((m[x+((b[N0+(n*6|0)+2>>1]|0)-g)>>0]|0)*9|0)+(m[x+k>>0]|0)|0)*9|0)+(m[x+I>>0]|0)|0,_=b[N0+(N*6|0)+4>>1]|0,y=b[N0+(s*6|0)+4>>1]|0,w=_-y|0,d=b[o+(s*6|0)+4>>1]|0,O=y-d|0,x=((((m[x+((b[N0+(n*6|0)+4>>1]|0)-_)>>0]|0)*9|0)+(m[x+w>>0]|0)|0)*9|0)+(m[x+O>>0]|0)|0,E|S|x?(s=b[o+(N*6|0)>>1]|0,t=f-c>>31,(t^h|0)>=0?(t^a|0)<0?t=c:t=c-l+f|0:t=f,f=sn(r,S,s,t,0)|0,s=b[(e[$>>2]|0)+(N*6|0)+2>>1]|0,t=g-D>>31,(t^I|0)>=0?(t^k|0)<0?t=D:t=D-v+g|0:t=g,s=sn(r,E,s,t,0)|0,o=b[(e[$>>2]|0)+(N*6|0)+4>>1]|0,t=_-d>>31,(t^O|0)>=0?(t^w|0)<0?t=d:t=d-y+_|0:t=_,x=sn(r,x,o,t,0)|0,N0=e[$>>2]|0,R[N0+(N*6|0)>>1]=f,R[N0+(N*6|0)+2>>1]=s,R[N0+(N*6|0)+4>>1]=x):(n=o+(s*6|0)|0,R[Fe>>1]=R[n>>1]|0,R[Fe+2>>1]=R[n+2>>1]|0,R[Fe+4>>1]=R[n+4>>1]|0,R[q>>1]=R[n>>1]|0,R[q+2>>1]=R[n+2>>1]|0,R[q+4>>1]=R[n+4>>1]|0,t=C3(r,q,o+(N*6|0)|0,t-N|0)|0,n=t+N|0,(n|0)!=(e[r0>>2]|0)&&(N0=(e[A0>>2]|0)+(n*6|0)|0,R[n0>>1]=R[N0>>1]|0,R[n0+2>>1]=R[N0+2>>1]|0,R[n0+4>>1]=R[N0+4>>1]|0,N0=(e[$>>2]|0)+(n*6|0)|0,R[Ie>>1]=R[Fe>>1]|0,R[Ie+2>>1]=R[Fe+2>>1]|0,R[Ie+4>>1]=R[Fe+4>>1]|0,R[q>>1]=R[n0>>1]|0,R[q+2>>1]=R[n0+2>>1]|0,R[q+4>>1]=R[n0+4>>1]|0,y3(B,r,Ie,q),R[N0>>1]=R[B>>1]|0,R[N0+2>>1]=R[B+2>>1]|0,R[N0+4>>1]=R[B+4>>1]|0,N0=e[le>>2]|0,e[le>>2]=(N0|0)<1?0:N0+-1|0,t=t+1|0),n=t+N|0),t=e[r0>>2]|0,!((n|0)>=(t|0));)N=n;C=fe}function C3(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4592|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}if((S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)<=0)return o|0;f=0;do v=n+(f*6|0)|0,R[v>>1]=R[t>>1]|0,R[v+2>>1]=R[t+2>>1]|0,R[v+4>>1]=R[t+4>>1]|0,f=f+1|0;while((f|0)!=(o|0));return o|0}function y3(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;if(c=t+4568|0,g=on(t,c)|0,l=on(t,c)|0,c=on(t,c)|0,f=t+128|0,o=b[s>>1]|0,h=e[t+136>>2]|0,S=h<<1|1,o=(Z(Z(S,g)|0,o-(b[n>>1]|0)>>31|1)|0)+o|0,g=0-h|0,(o|0)>=(g|0)?(f=e[f>>2]|0,(f+h|0)<(o|0)&&(o=o-(Z(e[t+132>>2]|0,S)|0)|0)):(o=(Z(e[t+132>>2]|0,S)|0)+o|0,f=e[f>>2]|0),(o&f|0)!=(o|0)&&(o=f&~(o>>31)),a=o&65535,o=b[s+2>>1]|0,o=(Z(Z(S,l)|0,o-(b[n+2>>1]|0)>>31|1)|0)+o|0,(o|0)>=(g|0)?(f+h|0)<(o|0)&&(o=o-(Z(e[t+132>>2]|0,S)|0)|0):o=(Z(e[t+132>>2]|0,S)|0)+o|0,(o&f|0)!=(o|0)&&(o=f&~(o>>31)),l=o&65535,o=b[s+4>>1]|0,o=(Z(Z(S,c)|0,o-(b[n+4>>1]|0)>>31|1)|0)+o|0,(o|0)>=(g|0)?(f+h|0)<(o|0)&&(o=o-(Z(e[t+132>>2]|0,S)|0)|0):o=(Z(e[t+132>>2]|0,S)|0)+o|0,(o&f|0)==(o|0)){t=o,t=t&65535,R[r>>1]=a,g=r+2|0,R[g>>1]=l,r=r+4|0,R[r>>1]=t;return}t=f&~(o>>31),t=t&65535,R[r>>1]=a,g=r+2|0,R[g>>1]=l,r=r+4|0,R[r>>1]=t}function sn(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,v=r+188+(c*12|0)+10|0,n=R[v>>1]|0,g=r+188+(c*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(t=5;(n<>1]^D)-D+s|0,k=r+128|0,o=e[k>>2]|0,(n&o|0)==(n|0)?h=n:h=o&~(n>>31),n=r+112|0,(e[n>>2]|0)<8&&D2(r),o=r+108|0,s=e[o>>2]|0,f=s>>>24,l=e[2832+(t<<11)+(f<<3)+4>>2]|0,l?(e[n>>2]=(e[n>>2]|0)-l,e[o>>2]=s<>2]|0):(a=e[r+148>>2]|0,o=e[r+140>>2]|0,n=X2(r)|0,(n|0)<(a+-1-o|0)?t&&(n=(ze(r,t)|0)+(n<>31^n>>1,(((n|0)>-1?n:0-n|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),r=u,u=0,r&1?(r=L()|0,z0(n|0),U(r|0)):me(n|0,824,96))),a=r+136|0,s=e[a>>2]|0,t?l=n:(s?o=0:o=(e[r+188+(c*12|0)+4>>2]<<1)+-1+(R[v>>1]|0)>>31,l=o^n),t=e[r+152>>2]|0,o=(e[g>>2]|0)+((l|0)>-1?l:0-l|0)|0,f=r+188+(c*12|0)+4|0,n=(e[f>>2]|0)+(Z(s<<1|1,l)|0)|0,s=R[v>>1]|0,(s|0)==(t|0)&&(o=o>>1,n=n>>1,s=t>>1),e[g>>2]=o,t=s+1|0,R[v>>1]=t,o=t+n|0,(o|0)>=1?(n|0)>0&&(n=n-t|0,v=R[S>>1]|0,R[S>>1]=(v<<16>>16<127&1)+(v&65535),n=(n|0)>0?0:n):(n=R[S>>1]|0,R[S>>1]=(n&65535)-(n<<16>>16>-128&1),n=(o|0)>(~s|0)?o:0-s|0),e[f>>2]=n,t=e[a>>2]|0,s=t<<1|1,o=(Z(s,(l^D)-D|0)|0)+h|0,(o|0)>=(0-t|0)?(n=e[k>>2]|0,(n+t|0)<(o|0)&&(o=o-(Z(e[r+132>>2]|0,s)|0)|0)):(o=(Z(e[r+132>>2]|0,s)|0)+o|0,n=e[k>>2]|0),(o&n|0)==(o|0)?(r=o,r=r&65535,r|0):(r=n&~(o>>31),r=r&65535,r|0)}function on(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=t+9|0,n=z[h>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;l=e[r+148>>2]|0,a=e[36476+(e[r+4592>>2]<<2)>>2]|0,n=e[r+140>>2]|0,o=X2(r)|0;do if((o|0)<(l+-2-a-n|0))if(s){a=(ze(r,s)|0)+(o<>2]|0,o=a+s|0,l=o&1,n=l,f=1,o=(l+o|0)/2|0;break}else{s=e[f>>2]|0,r=s+o|0,n=r&1,r=(n+r|0)/2|0,c=8;break}else o=(ze(r,n)|0)+1|0,l=e[f>>2]|0,r=o+l|0,n=r&1,r=(n+r|0)/2|0,s?(a=o,f=1,o=r,s=l):(s=l,c=8);while(0);return(c|0)==8&&(a=o,f=z[t+10>>0]<<1>>>0>=(z[h>>0]|0)>>>0,o=r),o=(n|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(a+1-s>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[h>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(t=s,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[h>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=c,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0)}function A3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+136|0;e:do if(e[g>>2]|0)t=r+144|0;else if(n=e[r+128>>2]|0,t=r+144|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+176>>2]|0))&&(e[s+8>>2]|0)==(e[r+180>>2]|0)&&(e[s+12>>2]|0)==(e[r+184>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4604>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4604>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4604>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4604>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4608|0,s=S<<1,o=r+4612|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4604|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+184|0,c=r+180|0,l=r+176|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function D3(r){r=r|0;var t=0,n=0;e[r>>2]=35800,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function _3(r){r=r|0;var t=0,n=0;if(e[r>>2]=35800,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function I3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0)}function P3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+128>>2]|0,e[r+136>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+176>>2]=a|0?a:e[c+4>>2]|0,e[r+180>>2]=f,e[r+184>>2]=o,M3(r),o=r+132|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+188+(f*12|0)>>2]=t,e[r+188+(f*12|0)+4>>2]=0,R[r+188+(f*12|0)+8>>1]=0,R[r+188+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4568>>2]=a,e[r+4572>>2]=0,m[r+4576>>0]=c,m[r+4577>>0]=1,m[r+4578>>0]=0,e[r+4580>>2]=a,e[r+4584>>2]=1,m[r+4588>>0]=c,m[r+4589>>0]=1,m[r+4590>>0]=0,e[r+4592>>2]=0,C=l}function E3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4620>>0]=o&1,t=r+156|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),L3(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function L3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+172|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;e:do if(t){if(t>>>0>1431655765&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(f=6),(f|0)==6&&(u=0,n=j(67,t*3|0)|0,N=u,u=0,!(N&1))){for(e[B>>2]=n,e[q>>2]=n,e[q+8>>2]=n+(t*3|0);;)if(m[n>>0]=0,m[n+1>>0]=0,m[n+2>>0]=0,n=(e[B>>2]|0)+3|0,e[B>>2]=n,t=t+-1|0,!t)break e}s=L()|0,t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)f=19;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(f=17),(f|0)==17&&(s=d<<2,u=0,o=j(67,s|0)|0,_=u,u=0,!(_&1))){e[O>>2]=o,f=o+(d<<2)|0,e[O+8>>2]=f,ye(o|0,0,s|0)|0,e[N>>2]=f,f=19;break}s=L()|0,t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((f|0)==19){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4596|0,a=Z(d,w)|0,c=a+1|0,h=r+4600|0,S=(d|0)>0,g=r+160|0,v=r+168|0,k=r+164|0,D=r+156|0,I=r+88|0,E=r+4592|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+3|0,e[l>>2]=n,s=s+(c*3|0)|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],t=e[y>>2]|0,o=n+(t*3|0)|0,n=n+((t+-1|0)*3|0)|0,m[o>>0]=m[n>>0]|0,m[o+1>>0]=m[n+1>>0]|0,m[o+2>>0]=m[n+2>>0]|0,n=e[l>>2]|0,o=(e[h>>2]|0)+-3|0,m[o>>0]=m[n>>0]|0,m[o+1>>0]=m[n+1>>0]|0,m[o+2>>0]=m[n+2>>0]|0,u=0,e0(78,r|0,0),o=u,u=0,o&1){f=30;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+(w*3|0)|0,e[l>>2]=n,t=(e[h>>2]|0)+(w*3|0)|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+(((e[D>>2]|0)-a|0)*3|0)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){f=31;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){f=43;break e}}if((f|0)==30){s=L()|0;break}else if((f|0)==31){s=L()|0;break}}else f=43;while(0);do if((f|0)==43){if(u=0,I0(183,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),C=x;return}while(0);t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}function F3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0;if(fe=C,C=C+16|0,q=fe+12|0,Ie=fe+9|0,Fe=fe+6|0,B=fe+3|0,n0=fe,r0=r+172|0,t=e[r0>>2]|0,(t|0)<=0){C=fe;return}for($=r+4600|0,A0=r+4596|0,ve=r+4604|0,le=r+4592|0,N=0;d=N+-1|0,s=e[$>>2]|0,o=s+(d*3|0)|0,N0=e[A0>>2]|0,n=N+1|0,f=z[N0+(N*3|0)>>0]|0,x=e[ve>>2]|0,l=z[N0+(d*3|0)>>0]|0,a=f-l|0,c=z[o>>0]|0,h=l-c|0,S=((((m[x+((z[N0+(n*3|0)>>0]|0)-f)>>0]|0)*9|0)+(m[x+a>>0]|0)|0)*9|0)+(m[x+h>>0]|0)|0,g=z[N0+(N*3|0)+1>>0]|0,v=z[N0+(d*3|0)+1>>0]|0,k=g-v|0,D=z[s+(d*3|0)+1>>0]|0,I=v-D|0,E=((((m[x+((z[N0+(n*3|0)+1>>0]|0)-g)>>0]|0)*9|0)+(m[x+k>>0]|0)|0)*9|0)+(m[x+I>>0]|0)|0,_=z[N0+(N*3|0)+2>>0]|0,y=z[N0+(d*3|0)+2>>0]|0,w=_-y|0,d=z[s+(d*3|0)+2>>0]|0,O=y-d|0,x=((((m[x+((z[N0+(n*3|0)+2>>0]|0)-_)>>0]|0)*9|0)+(m[x+w>>0]|0)|0)*9|0)+(m[x+O>>0]|0)|0,E|S|x?(s=z[s+(N*3|0)>>0]|0,t=f-c>>31,(t^h|0)>=0?(t^a|0)<0?t=c:t=c-l+f|0:t=f,f=fn(r,S,s,t,0)|0,s=z[(e[$>>2]|0)+(N*3|0)+1>>0]|0,t=g-D>>31,(t^I|0)>=0?(t^k|0)<0?t=D:t=D-v+g|0:t=g,s=fn(r,E,s,t,0)|0,o=z[(e[$>>2]|0)+(N*3|0)+2>>0]|0,t=_-d>>31,(t^O|0)>=0?(t^w|0)<0?t=d:t=d-y+_|0:t=_,x=fn(r,x,o,t,0)|0,N0=(e[$>>2]|0)+(N*3|0)|0,m[N0>>0]=f,m[N0+1>>0]=s,m[N0+2>>0]=x):(m[Fe>>0]=m[o>>0]|0,m[Fe+1>>0]=m[o+1>>0]|0,m[Fe+2>>0]=m[o+2>>0]|0,m[q>>0]=m[o>>0]|0,m[q+1>>0]=m[o+1>>0]|0,m[q+2>>0]=m[o+2>>0]|0,t=R3(r,q,s+(N*3|0)|0,t-N|0)|0,n=t+N|0,(n|0)!=(e[r0>>2]|0)&&(N0=(e[A0>>2]|0)+(n*3|0)|0,m[n0>>0]=m[N0>>0]|0,m[n0+1>>0]=m[N0+1>>0]|0,m[n0+2>>0]=m[N0+2>>0]|0,N0=e[$>>2]|0,m[Ie>>0]=m[Fe>>0]|0,m[Ie+1>>0]=m[Fe+1>>0]|0,m[Ie+2>>0]=m[Fe+2>>0]|0,m[q>>0]=m[n0>>0]|0,m[q+1>>0]=m[n0+1>>0]|0,m[q+2>>0]=m[n0+2>>0]|0,O3(B,r,Ie,q),N0=N0+(n*3|0)|0,m[N0>>0]=m[B>>0]|0,m[N0+1>>0]=m[B+1>>0]|0,m[N0+2>>0]=m[B+2>>0]|0,N0=e[le>>2]|0,e[le>>2]=(N0|0)<1?0:N0+-1|0,t=t+1|0),n=t+N|0),t=e[r0>>2]|0,!((n|0)>=(t|0));)N=n;C=fe}function R3(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4592|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}if((S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)<=0)return o|0;f=0;do v=n+(f*3|0)|0,m[v>>0]=m[t>>0]|0,m[v+1>>0]=m[t+1>>0]|0,m[v+2>>0]=m[t+2>>0]|0,f=f+1|0;while((f|0)!=(o|0));return o|0}function O3(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;if(c=t+4568|0,g=ln(t,c)|0,l=ln(t,c)|0,c=ln(t,c)|0,f=t+128|0,o=z[s>>0]|0,h=e[t+136>>2]|0,S=h<<1|1,o=(Z(Z(S,g)|0,o-(z[n>>0]|0)>>31|1)|0)+o|0,g=0-h|0,(o|0)>=(g|0)?(f=e[f>>2]|0,(f+h|0)<(o|0)&&(o=o-(Z(e[t+132>>2]|0,S)|0)|0)):(o=(Z(e[t+132>>2]|0,S)|0)+o|0,f=e[f>>2]|0),(o&f|0)!=(o|0)&&(o=f&~(o>>31)),a=o&255,o=z[s+1>>0]|0,o=(Z(Z(S,l)|0,o-(z[n+1>>0]|0)>>31|1)|0)+o|0,(o|0)>=(g|0)?(f+h|0)<(o|0)&&(o=o-(Z(e[t+132>>2]|0,S)|0)|0):o=(Z(e[t+132>>2]|0,S)|0)+o|0,(o&f|0)!=(o|0)&&(o=f&~(o>>31)),l=o&255,o=z[s+2>>0]|0,o=(Z(Z(S,c)|0,o-(z[n+2>>0]|0)>>31|1)|0)+o|0,(o|0)>=(g|0)?(f+h|0)<(o|0)&&(o=o-(Z(e[t+132>>2]|0,S)|0)|0):o=(Z(e[t+132>>2]|0,S)|0)+o|0,(o&f|0)==(o|0)){t=o,t=t&255,m[r>>0]=a,g=r+1|0,m[g>>0]=l,r=r+2|0,m[r>>0]=t;return}t=f&~(o>>31),t=t&255,m[r>>0]=a,g=r+1|0,m[g>>0]=l,r=r+2|0,m[r>>0]=t}function fn(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,v=r+188+(c*12|0)+10|0,n=R[v>>1]|0,g=r+188+(c*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(t=5;(n<>1]^D)-D+s|0,k=r+128|0,o=e[k>>2]|0,(n&o|0)==(n|0)?h=n:h=o&~(n>>31),n=r+112|0,(e[n>>2]|0)<8&&D2(r),o=r+108|0,s=e[o>>2]|0,f=s>>>24,l=e[2832+(t<<11)+(f<<3)+4>>2]|0,l?(e[n>>2]=(e[n>>2]|0)-l,e[o>>2]=s<>2]|0):(a=e[r+148>>2]|0,o=e[r+140>>2]|0,n=X2(r)|0,(n|0)<(a+-1-o|0)?t&&(n=(ze(r,t)|0)+(n<>31^n>>1,(((n|0)>-1?n:0-n|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),r=u,u=0,r&1?(r=L()|0,z0(n|0),U(r|0)):me(n|0,824,96))),a=r+136|0,s=e[a>>2]|0,t?l=n:(s?o=0:o=(e[r+188+(c*12|0)+4>>2]<<1)+-1+(R[v>>1]|0)>>31,l=o^n),t=e[r+152>>2]|0,o=(e[g>>2]|0)+((l|0)>-1?l:0-l|0)|0,f=r+188+(c*12|0)+4|0,n=(e[f>>2]|0)+(Z(s<<1|1,l)|0)|0,s=R[v>>1]|0,(s|0)==(t|0)&&(o=o>>1,n=n>>1,s=t>>1),e[g>>2]=o,t=s+1|0,R[v>>1]=t,o=t+n|0,(o|0)>=1?(n|0)>0&&(n=n-t|0,v=R[S>>1]|0,R[S>>1]=(v<<16>>16<127&1)+(v&65535),n=(n|0)>0?0:n):(n=R[S>>1]|0,R[S>>1]=(n&65535)-(n<<16>>16>-128&1),n=(o|0)>(~s|0)?o:0-s|0),e[f>>2]=n,t=e[a>>2]|0,s=t<<1|1,o=(Z(s,(l^D)-D|0)|0)+h|0,(o|0)>=(0-t|0)?(n=e[k>>2]|0,(n+t|0)<(o|0)&&(o=o-(Z(e[r+132>>2]|0,s)|0)|0)):(o=(Z(e[r+132>>2]|0,s)|0)+o|0,n=e[k>>2]|0),(o&n|0)==(o|0)?(r=o,r=r&255,r|0):(r=n&~(o>>31),r=r&255,r|0)}function ln(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=t+9|0,n=z[h>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;l=e[r+148>>2]|0,a=e[36476+(e[r+4592>>2]<<2)>>2]|0,n=e[r+140>>2]|0,o=X2(r)|0;do if((o|0)<(l+-2-a-n|0))if(s){a=(ze(r,s)|0)+(o<>2]|0,o=a+s|0,l=o&1,n=l,f=1,o=(l+o|0)/2|0;break}else{s=e[f>>2]|0,r=s+o|0,n=r&1,r=(n+r|0)/2|0,c=8;break}else o=(ze(r,n)|0)+1|0,l=e[f>>2]|0,r=o+l|0,n=r&1,r=(n+r|0)/2|0,s?(a=o,f=1,o=r,s=l):(s=l,c=8);while(0);return(c|0)==8&&(a=o,f=z[t+10>>0]<<1>>>0>=(z[h>>0]|0)>>>0,o=r),o=(n|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(a+1-s>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[h>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(t=s,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[h>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=c,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0)}function M3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+136|0;e:do if(e[g>>2]|0)t=r+144|0;else if(n=e[r+128>>2]|0,t=r+144|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+176>>2]|0))&&(e[s+8>>2]|0)==(e[r+180>>2]|0)&&(e[s+12>>2]|0)==(e[r+184>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4604>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4604>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4604>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4604>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4608|0,s=S<<1,o=r+4612|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4604|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+184|0,c=r+180|0,l=r+176|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function x3(r){r=r|0;var t=0,n=0;e[r>>2]=35772,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function q3(r){r=r|0;var t=0,n=0;if(e[r>>2]=35772,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function N3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0)}function U3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,65535,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+152>>2]=l|0?l:e[a+4>>2]|0,e[r+156>>2]=f,e[r+160>>2]=s,Y3(r),s=0;do e[r+164+(s*12|0)>>2]=1024,e[r+164+(s*12|0)+4>>2]=0,R[r+164+(s*12|0)+8>>1]=0,R[r+164+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4544>>2]=1024,e[r+4548>>2]=0,m[r+4552>>0]=a,m[r+4553>>0]=1,m[r+4554>>0]=0,e[r+4556>>2]=1024,e[r+4560>>2]=1,m[r+4564>>0]=a,m[r+4565>>0]=1,m[r+4566>>0]=0,e[r+4568>>2]=0,C=o}function B3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4596>>0]=o&1,t=r+132|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),Q3(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function Q3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+148|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;do if(t){if((t|0)<0&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(l=6),(l|0)==6&&(n=t<<1,u=0,s=j(67,n|0)|0,N=u,u=0,!(N&1))){e[q>>2]=s,N=s+(t<<1)|0,e[q+8>>2]=N,ye(s|0,0,n|0)|0,e[B>>2]=N;break}s=L()|0,t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)l=18;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(l=16),(l|0)==16&&(o=d<<2,u=0,f=j(67,o|0)|0,_=u,u=0,!(_&1))){e[O>>2]=f,l=f+(d<<2)|0,e[O+8>>2]=l,ye(f|0,0,o|0)|0,e[N>>2]=l,l=18;break}s=L()|0,t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==18){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4572|0,a=Z(d,w)|0,c=a+1|0,h=r+4576|0,S=(d|0)>0,g=r+136|0,v=r+144|0,k=r+140|0,D=r+132|0,I=r+88|0,E=r+4568|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+2|0,e[l>>2]=n,s=s+(c<<1)|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],o=e[y>>2]|0,R[n+(o<<1)>>1]=R[n+(o+-1<<1)>>1]|0,R[t+-2>>1]=R[n>>1]|0,u=0,e0(79,r|0,0),o=u,u=0,o&1){l=29;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+(w<<1)|0,e[l>>2]=n,t=(e[h>>2]|0)+(w<<1)|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+((e[D>>2]|0)-a<<1)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){l=30;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){l=42;break e}}if((l|0)==29){s=L()|0;break}else if((l|0)==30){s=L()|0;break}}else l=42;while(0);do if((l|0)==42){if(u=0,I0(183,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),C=x;return}while(0);t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}function G3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4572|0,t=e[g>>2]|0,D=r+148|0,!((e[D>>2]|0)<=0))for(v=r+4576|0,k=r+4580|0,o=t,f=b[t+-2>>1]|0,t=b[t>>1]|0,S=0;h=e[v>>2]|0,c=b[h+(S+-1<<1)>>1]|0,s=S+1|0,n=b[o+(s<<1)>>1]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=V3(r,a,b[h+(S<<1)>>1]|0,o,0)|0,R[(e[v>>2]|0)+(S<<1)>>1]=h):(s=(H3(r,S,0)|0)+S|0,n=e[g>>2]|0,t=b[n+(s+-1<<1)>>1]|0,n=b[n+(s<<1)>>1]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function V3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(k=t>>31,h=(k^t)-k|0,v=r+164+(h*12|0)+10|0,n=R[v>>1]|0,g=r+164+(h*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(f=5;(n<>1]^k)-k+s|0,(n&65535|0)!=(n|0)&&(n=n>>31&65535^65535),o=r+112|0,(e[o>>2]|0)<8&&D2(r),s=r+108|0,l=e[s>>2]|0,a=l>>>24,c=e[2832+(f<<11)+(a<<3)+4>>2]|0,c?(e[o>>2]=(e[o>>2]|0)-c,e[s>>2]=l<>2]|0):(o=X2(r)|0,(o|0)<47?f&&(o=(ze(r,f)|0)+(o<>31^o>>1,(((o|0)>-1?o:0-o|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),t=u,u=0,t&1?(t=L()|0,z0(n|0),U(t|0)):me(n|0,824,96))),c=r+164+(h*12|0)+4|0,s=e[c>>2]|0,f?f=R[v>>1]|0:(r=R[v>>1]|0,f=r,o=(s<<1)+-1+(r<<16>>16)>>31^o),l=f<<16>>16==64,r=l&1,a=s+o>>r,l=l?32:f<<16>>16,e[g>>2]=((o|0)>-1?o:0-o|0)+(e[g>>2]|0)>>r,s=l+1|0,R[v>>1]=s,f=s+a|0,(f|0)<1?(v=R[S>>1]|0,R[S>>1]=(v&65535)-(v<<16>>16>-128&1),v=(f|0)>(~l|0)?f:0-l|0,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&65535,t|0):(a|0)<=0?(v=a,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&65535,t|0):(v=a-s|0,g=R[S>>1]|0,R[S>>1]=(g<<16>>16<127&1)+(g&65535),v=(v|0)>0?0:v,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&65535,t|0)}function H3(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;return f=r+4576|0,o=e[f>>2]|0,n=R[o+(t+-1<<1)>>1]|0,l=r+148|0,o=z3(r,n,o+(t<<1)|0,(e[l>>2]|0)-t|0)|0,s=o+t|0,(s|0)==(e[l>>2]|0)?(l=o,l|0):(n=n&65535,t=b[(e[r+4572>>2]|0)+(s<<1)>>1]|0,l=n-t|0,(((l|0)>-1?l:0-l|0)|0)<1?n=(Co(r,r+4556|0)|0)+n|0:n=(Z(Co(r,r+4544|0)|0,t-n>>31|1)|0)+t|0,R[(e[f>>2]|0)+(s<<1)>>1]=n,l=r+4568|0,r=e[l>>2]|0,e[l>>2]=(r|0)<1?0:r+-1|0,l=o+1|0,l|0)}function z3(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4568|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}if((S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)>0)f=0;else return o|0;do R[n+(f<<1)>>1]=t,f=f+1|0;while((f|0)!=(o|0));return o|0}function Co(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(a=t+9|0,n=z[a>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;o=e[36476+(e[r+4568>>2]<<2)>>2]|0,n=X2(r)|0;do if((n|0)<(46-o|0))if(s){n=(ze(r,s)|0)+(n<>2]|0,o=n+r|0,c=o&1,s=c,f=1,o=(c+o|0)/2|0;break}else{r=e[f>>2]|0,o=r+n|0,s=o&1,o=(s+o|0)/2|0,l=8;break}else n=(ze(r,16)|0)+1|0,r=e[f>>2]|0,o=n+r|0,f=o&1,o=(f+o|0)/2|0,s?(s=f,f=1):(s=f,l=8);while(0);return(l|0)==8&&(f=z[t+10>>0]<<1>>>0>=(z[a>>0]|0)>>>0),o=(s|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(n+1-r>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[a>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(c=s,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[a>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0)}function Y3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,65535,0),c=r+152|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+156>>2]|0)&&(e[a+12>>2]|0)==(e[r+160>>2]|0)){c=e[8909]|0,e[r+4580>>2]=c+(((e[8910]|0)-c|0)>>>1),C=h;return}for(n=r+4584|0,s=r+4588|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=131072?f>>>0>131072&&(l=t+131072|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,131072-f|0),t=e[n>>2]|0),a=r+4580|0,e[a>>2]=t+65536,l=r+160|0,o=r+156|0,f=-65536;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==65536)break}C=h}function X3(r){r=r|0;var t=0,n=0;e[r>>2]=35744,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function j3(r){r=r|0;var t=0,n=0;if(e[r>>2]=35744,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function W3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(37,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==16)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(38,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(39,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(40,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=2,e[s+12>>2]=r,d=s,C=_,d|0)}function J3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,4095,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+152>>2]=l|0?l:e[a+4>>2]|0,e[r+156>>2]=f,e[r+160>>2]=s,r5(r),s=0;do e[r+164+(s*12|0)>>2]=64,e[r+164+(s*12|0)+4>>2]=0,R[r+164+(s*12|0)+8>>1]=0,R[r+164+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4544>>2]=64,e[r+4548>>2]=0,m[r+4552>>0]=a,m[r+4553>>0]=1,m[r+4554>>0]=0,e[r+4556>>2]=64,e[r+4560>>2]=1,m[r+4564>>0]=a,m[r+4565>>0]=1,m[r+4566>>0]=0,e[r+4568>>2]=0,C=o}function K3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4596>>0]=o&1,t=r+132|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),Z3(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function Z3(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+148|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;do if(t){if((t|0)<0&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(l=6),(l|0)==6&&(n=t<<1,u=0,s=j(67,n|0)|0,N=u,u=0,!(N&1))){e[q>>2]=s,N=s+(t<<1)|0,e[q+8>>2]=N,ye(s|0,0,n|0)|0,e[B>>2]=N;break}s=L()|0,t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)l=18;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(l=16),(l|0)==16&&(o=d<<2,u=0,f=j(67,o|0)|0,_=u,u=0,!(_&1))){e[O>>2]=f,l=f+(d<<2)|0,e[O+8>>2]=l,ye(f|0,0,o|0)|0,e[N>>2]=l,l=18;break}s=L()|0,t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((l|0)==18){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4572|0,a=Z(d,w)|0,c=a+1|0,h=r+4576|0,S=(d|0)>0,g=r+136|0,v=r+144|0,k=r+140|0,D=r+132|0,I=r+88|0,E=r+4568|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+2|0,e[l>>2]=n,s=s+(c<<1)|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],o=e[y>>2]|0,R[n+(o<<1)>>1]=R[n+(o+-1<<1)>>1]|0,R[t+-2>>1]=R[n>>1]|0,u=0,e0(80,r|0,0),o=u,u=0,o&1){l=29;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+(w<<1)|0,e[l>>2]=n,t=(e[h>>2]|0)+(w<<1)|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+((e[D>>2]|0)-a<<1)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){l=30;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){l=42;break e}}if((l|0)==29){s=L()|0;break}else if((l|0)==30){s=L()|0;break}}else l=42;while(0);do if((l|0)==42){if(u=0,I0(183,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),C=x;return}while(0);t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~((n+-2-t|0)>>>1)<<1)),V(t),U(s|0)}function $3(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4572|0,t=e[g>>2]|0,D=r+148|0,!((e[D>>2]|0)<=0))for(v=r+4576|0,k=r+4580|0,o=t,f=b[t+-2>>1]|0,t=b[t>>1]|0,S=0;h=e[v>>2]|0,c=b[h+(S+-1<<1)>>1]|0,s=S+1|0,n=b[o+(s<<1)>>1]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=b3(r,a,b[h+(S<<1)>>1]|0,o,0)|0,R[(e[v>>2]|0)+(S<<1)>>1]=h):(s=(e5(r,S,0)|0)+S|0,n=e[g>>2]|0,t=b[n+(s+-1<<1)>>1]|0,n=b[n+(s<<1)>>1]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function b3(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(k=t>>31,h=(k^t)-k|0,v=r+164+(h*12|0)+10|0,n=R[v>>1]|0,g=r+164+(h*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(f=5;(n<>1]^k)-k+s|0,(n&4095|0)!=(n|0)&&(n=n>>31&4095^4095),o=r+112|0,(e[o>>2]|0)<8&&D2(r),s=r+108|0,l=e[s>>2]|0,a=l>>>24,c=e[2832+(f<<11)+(a<<3)+4>>2]|0,c?(e[o>>2]=(e[o>>2]|0)-c,e[s>>2]=l<>2]|0):(o=X2(r)|0,(o|0)<35?f&&(o=(ze(r,f)|0)+(o<>31^o>>1,(((o|0)>-1?o:0-o|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),t=u,u=0,t&1?(t=L()|0,z0(n|0),U(t|0)):me(n|0,824,96))),c=r+164+(h*12|0)+4|0,s=e[c>>2]|0,f?f=R[v>>1]|0:(r=R[v>>1]|0,f=r,o=(s<<1)+-1+(r<<16>>16)>>31^o),l=f<<16>>16==64,r=l&1,a=s+o>>r,l=l?32:f<<16>>16,e[g>>2]=((o|0)>-1?o:0-o|0)+(e[g>>2]|0)>>r,s=l+1|0,R[v>>1]=s,f=s+a|0,(f|0)<1?(v=R[S>>1]|0,R[S>>1]=(v&65535)-(v<<16>>16>-128&1),v=(f|0)>(~l|0)?f:0-l|0,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&4095,t=t&65535,t|0):(a|0)<=0?(v=a,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&4095,t=t&65535,t|0):(v=a-s|0,g=R[S>>1]|0,R[S>>1]=(g<<16>>16<127&1)+(g&65535),v=(v|0)>0?0:v,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&4095,t=t&65535,t|0)}function e5(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;return f=r+4576|0,o=e[f>>2]|0,n=R[o+(t+-1<<1)>>1]|0,l=r+148|0,o=i5(r,n,o+(t<<1)|0,(e[l>>2]|0)-t|0)|0,s=o+t|0,(s|0)==(e[l>>2]|0)?(l=o,l|0):(n=n&65535,t=b[(e[r+4572>>2]|0)+(s<<1)>>1]|0,l=n-t|0,(((l|0)>-1?l:0-l|0)|0)<1?n=(yo(r,r+4556|0)|0)+n|0:n=(Z(yo(r,r+4544|0)|0,t-n>>31|1)|0)+t|0,R[(e[f>>2]|0)+(s<<1)>>1]=n&4095,l=r+4568|0,r=e[l>>2]|0,e[l>>2]=(r|0)<1?0:r+-1|0,l=o+1|0,l|0)}function i5(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4568|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}if((S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)>0)f=0;else return o|0;do R[n+(f<<1)>>1]=t,f=f+1|0;while((f|0)!=(o|0));return o|0}function yo(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(a=t+9|0,n=z[a>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;o=e[36476+(e[r+4568>>2]<<2)>>2]|0,n=X2(r)|0;do if((n|0)<(34-o|0))if(s){n=(ze(r,s)|0)+(n<>2]|0,o=n+r|0,c=o&1,s=c,f=1,o=(c+o|0)/2|0;break}else{r=e[f>>2]|0,o=r+n|0,s=o&1,o=(s+o|0)/2|0,l=8;break}else n=(ze(r,12)|0)+1|0,r=e[f>>2]|0,o=n+r|0,f=o&1,o=(f+o|0)/2|0,s?(s=f,f=1):(s=f,l=8);while(0);return(l|0)==8&&(f=z[t+10>>0]<<1>>>0>=(z[a>>0]|0)>>>0),o=(s|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(n+1-r>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[a>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(c=s,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[a>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0)}function r5(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,4095,0),c=r+152|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+156>>2]|0)&&(e[a+12>>2]|0)==(e[r+160>>2]|0)){c=e[8906]|0,e[r+4580>>2]=c+(((e[8907]|0)-c|0)>>>1),C=h;return}for(n=r+4584|0,s=r+4588|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=8192?f>>>0>8192&&(l=t+8192|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,8192-f|0),t=e[n>>2]|0),a=r+4580|0,e[a>>2]=t+4096,l=r+160|0,o=r+156|0,f=-4096;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==4096)break}C=h}function t5(r){r=r|0;var t=0,n=0;e[r>>2]=35716,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function n5(r){r=r|0;var t=0,n=0;if(e[r>>2]=35716,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function s5(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0)}function o5(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,255,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+152>>2]=l|0?l:e[a+4>>2]|0,e[r+156>>2]=f,e[r+160>>2]=s,h5(r),s=0;do e[r+164+(s*12|0)>>2]=4,e[r+164+(s*12|0)+4>>2]=0,R[r+164+(s*12|0)+8>>1]=0,R[r+164+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4544>>2]=4,e[r+4548>>2]=0,m[r+4552>>0]=a,m[r+4553>>0]=1,m[r+4554>>0]=0,e[r+4556>>2]=4,e[r+4560>>2]=1,m[r+4564>>0]=a,m[r+4565>>0]=1,m[r+4566>>0]=0,e[r+4568>>2]=0,C=o}function f5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4596>>0]=o&1,t=r+132|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),l5(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function l5(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+148|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;e:do if(t){if((t|0)<0&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(f=6),(f|0)==6&&(u=0,n=j(67,t|0)|0,N=u,u=0,!(N&1))){for(e[B>>2]=n,e[q>>2]=n,e[q+8>>2]=n+t;;)if(m[n>>0]=0,n=(e[B>>2]|0)+1|0,e[B>>2]=n,t=t+-1|0,!t)break e}n=L()|0,t=e[q>>2]|0,t||U(n|0),(e[B>>2]|0)!=(t|0)&&(e[B>>2]=t),V(t),U(n|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)f=19;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(f=17),(f|0)==17&&(s=d<<2,u=0,o=j(67,s|0)|0,_=u,u=0,!(_&1))){e[O>>2]=o,f=o+(d<<2)|0,e[O+8>>2]=f,ye(o|0,0,s|0)|0,e[N>>2]=f,f=19;break}n=L()|0,t=e[O>>2]|0,s=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}while(0);if((f|0)==19){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4572|0,a=Z(d,w)|0,c=a+1|0,h=r+4576|0,S=(d|0)>0,g=r+136|0,v=r+144|0,k=r+140|0,D=r+132|0,I=r+88|0,E=r+4568|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+1|0,e[l>>2]=n,s=s+c|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],o=e[y>>2]|0,m[n+o>>0]=m[n+(o+-1)>>0]|0,m[(e[h>>2]|0)+-1>>0]=m[e[l>>2]>>0]|0,u=0,e0(81,r|0,0),o=u,u=0,o&1){f=30;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+w|0,e[l>>2]=n,t=(e[h>>2]|0)+w|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+((e[D>>2]|0)-a)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){f=31;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){f=43;break e}}if((f|0)==30){n=L()|0;break}else if((f|0)==31){n=L()|0;break}}else f=43;while(0);do if((f|0)==43){if(u=0,I0(183,r|0),r=u,u=0,r&1){n=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}(e[B>>2]|0)!=(t|0)&&(e[B>>2]=t),V(t),C=x;return}while(0);t=e[O>>2]|0,s=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(n|0),(e[B>>2]|0)!=(t|0)&&(e[B>>2]=t),V(t),U(n|0)}function u5(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=r+4572|0,t=e[g>>2]|0,D=r+148|0,!((e[D>>2]|0)<=0))for(v=r+4576|0,k=r+4580|0,o=t,f=z[t+-1>>0]|0,t=z[t>>0]|0,S=0;h=e[v>>2]|0,c=z[h+(S+-1)>>0]|0,s=S+1|0,n=z[o+s>>0]|0,a=e[k>>2]|0,l=t-f|0,o=f-c|0,a=((((m[a+(n-t)>>0]|0)*9|0)+(m[a+l>>0]|0)|0)*9|0)+(m[a+o>>0]|0)|0,a?(f=t-c>>31,(f^o|0)<0?o=t:o=c+((f^l|0)<0?0:l)|0,h=a5(r,a,z[h+S>>0]|0,o,0)|0,m[(e[v>>2]|0)+S>>0]=h):(s=(c5(r,S,0)|0)+S|0,n=e[g>>2]|0,t=z[n+(s+-1)>>0]|0,n=z[n+s>>0]|0),!((s|0)>=(e[D>>2]|0));)o=e[g>>2]|0,f=t,t=n,S=s}function a5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(k=t>>31,h=(k^t)-k|0,v=r+164+(h*12|0)+10|0,n=R[v>>1]|0,g=r+164+(h*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(f=5;(n<>1]^k)-k+s|0,(n&255|0)!=(n|0)&&(n=n>>31&255^255),o=r+112|0,(e[o>>2]|0)<8&&D2(r),s=r+108|0,l=e[s>>2]|0,a=l>>>24,c=e[2832+(f<<11)+(a<<3)+4>>2]|0,c?(e[o>>2]=(e[o>>2]|0)-c,e[s>>2]=l<>2]|0):(o=X2(r)|0,(o|0)<23?f&&(o=(ze(r,f)|0)+(o<>31^o>>1,(((o|0)>-1?o:0-o|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),t=u,u=0,t&1?(t=L()|0,z0(n|0),U(t|0)):me(n|0,824,96))),c=r+164+(h*12|0)+4|0,s=e[c>>2]|0,f?f=R[v>>1]|0:(r=R[v>>1]|0,f=r,o=(s<<1)+-1+(r<<16>>16)>>31^o),l=f<<16>>16==64,r=l&1,a=s+o>>r,l=l?32:f<<16>>16,e[g>>2]=((o|0)>-1?o:0-o|0)+(e[g>>2]|0)>>r,s=l+1|0,R[v>>1]=s,f=s+a|0,(f|0)<1?(v=R[S>>1]|0,R[S>>1]=(v&65535)-(v<<16>>16>-128&1),v=(f|0)>(~l|0)?f:0-l|0,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&255,t|0):(a|0)<=0?(v=a,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&255,t|0):(v=a-s|0,g=R[S>>1]|0,R[S>>1]=(g<<16>>16<127&1)+(g&65535),v=(v|0)>0?0:v,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&255,t|0)}function c5(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;return f=r+4576|0,o=e[f>>2]|0,n=m[o+(t+-1)>>0]|0,l=r+148|0,o=S5(r,n,o+t|0,(e[l>>2]|0)-t|0)|0,s=o+t|0,(s|0)==(e[l>>2]|0)?(l=o,l|0):(n=n&255,t=z[(e[r+4572>>2]|0)+s>>0]|0,l=n-t|0,(((l|0)>-1?l:0-l|0)|0)<1?n=(Ao(r,r+4556|0)|0)+n|0:n=(Z(Ao(r,r+4544|0)|0,t-n>>31|1)|0)+t|0,m[(e[f>>2]|0)+s>>0]=n,l=r+4568|0,r=e[l>>2]|0,e[l>>2]=(r|0)<1?0:r+-1|0,l=o+1|0,l|0)}function S5(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4568|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}return(S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)<=0||ye(n|0,t|0,o|0)|0,o|0}function Ao(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(a=t+9|0,n=z[a>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;o=e[36476+(e[r+4568>>2]<<2)>>2]|0,n=X2(r)|0;do if((n|0)<(22-o|0))if(s){n=(ze(r,s)|0)+(n<>2]|0,o=n+r|0,c=o&1,s=c,f=1,o=(c+o|0)/2|0;break}else{r=e[f>>2]|0,o=r+n|0,s=o&1,o=(s+o|0)/2|0,l=8;break}else n=(ze(r,8)|0)+1|0,r=e[f>>2]|0,o=n+r|0,f=o&1,o=(f+o|0)/2|0,s?(s=f,f=1):(s=f,l=8);while(0);return(l|0)==8&&(f=z[t+10>>0]<<1>>>0>=(z[a>>0]|0)>>>0),o=(s|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(n+1-r>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[a>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(c=s,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[a>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0)}function h5(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,255,0),c=r+152|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+156>>2]|0)&&(e[a+12>>2]|0)==(e[r+160>>2]|0)){c=e[8900]|0,e[r+4580>>2]=c+(((e[8901]|0)-c|0)>>>1),C=h;return}for(n=r+4584|0,s=r+4588|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=512?f>>>0>512&&(l=t+512|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,512-f|0),t=e[n>>2]|0),a=r+4580|0,e[a>>2]=t+256,l=r+160|0,o=r+156|0,f=-256;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==256)break}C=h}function m5(r){r=r|0;var t=0,n=0;e[r>>2]=35688,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function p5(r){r=r|0;var t=0,n=0;if(e[r>>2]=35688,t=e[r+4584>>2]|0,t&&(n=r+4588|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function g5(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=3,e[s+12>>2]=r,d=s,C=_,d|0)}function v5(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+32|0,a=o,r2(a,255,0),l=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[a+8>>2]|0,s=e[t+12>>2]|0,s=s|0?s:e[a+12>>2]|0,t=e[t+16>>2]|0,n=e[a+16>>2]|0,e[r+152>>2]=l|0?l:e[a+4>>2]|0,e[r+156>>2]=f,e[r+160>>2]=s,Zg(r),s=0;do e[r+164+(s*12|0)>>2]=4,e[r+164+(s*12|0)+4>>2]=0,R[r+164+(s*12|0)+8>>1]=0,R[r+164+(s*12|0)+10>>1]=1,s=s+1|0;while((s|0)!=365);a=(t|0?t:n)&255,e[r+4544>>2]=4,e[r+4548>>2]=0,m[r+4552>>0]=a,m[r+4553>>0]=1,m[r+4554>>0]=0,e[r+4556>>2]=4,e[r+4560>>2]=1,m[r+4564>>0]=a,m[r+4565>>0]=1,m[r+4566>>0]=0,e[r+4568>>2]=0,C=o}function T5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4596>>0]=o&1,t=r+132|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),k5(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function k5(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,y=r+148|0,w=(e[y>>2]|0)+4|0,(e[r+28>>2]|0)==1?d=e[r+20>>2]|0:d=1,t=Z(d<<1,w)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;e:do if(t){if(t>>>0>1431655765&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(f=6),(f|0)==6&&(u=0,n=j(67,t*3|0)|0,N=u,u=0,!(N&1))){for(e[B>>2]=n,e[q>>2]=n,e[q+8>>2]=n+(t*3|0);;)if(m[n>>0]=0,m[n+1>>0]=0,m[n+2>>0]=0,n=(e[B>>2]|0)+3|0,e[B>>2]=n,t=t+-1|0,!t)break e}s=L()|0,t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!d)f=19;else{if(d>>>0>1073741823&&(u=0,I0(178,O|0),_=u,u=0,_&1)||(f=17),(f|0)==17&&(s=d<<2,u=0,o=j(67,s|0)|0,_=u,u=0,!(_&1))){e[O>>2]=o,f=o+(d<<2)|0,e[O+8>>2]=f,ye(o|0,0,s|0)|0,e[N>>2]=f,f=19;break}s=L()|0,t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}while(0);if((f|0)==19){f=r+8|0;e:do if((e[f>>2]|0)>0){l=r+4572|0,a=Z(d,w)|0,c=a+1|0,h=r+4576|0,S=(d|0)>0,g=r+136|0,v=r+144|0,k=r+140|0,D=r+132|0,I=r+88|0,E=r+4568|0,_=0;i:for(;;){if(s=e[q>>2]|0,n=s+3|0,e[l>>2]=n,s=s+(c*3|0)|0,e[h>>2]=s,_&1?(e[l>>2]=s,e[h>>2]=n,t=n,n=s):t=s,S){o=e[O>>2]|0,s=0;do{if(e[E>>2]=e[o+(s<<2)>>2],t=e[y>>2]|0,o=n+(t*3|0)|0,n=n+((t+-1|0)*3|0)|0,m[o>>0]=m[n>>0]|0,m[o+1>>0]=m[n+1>>0]|0,m[o+2>>0]=m[n+2>>0]|0,n=e[l>>2]|0,o=(e[h>>2]|0)+-3|0,m[o>>0]=m[n>>0]|0,m[o+1>>0]=m[n+1>>0]|0,m[o+2>>0]=m[n+2>>0]|0,u=0,e0(82,r|0,0),o=u,u=0,o&1){f=30;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[E>>2],n=(e[l>>2]|0)+(w*3|0)|0,e[l>>2]=n,t=(e[h>>2]|0)+(w*3|0)|0,e[h>>2]=t,s=s+1|0}while((s|0)<(d|0))}if(o=e[g>>2]|0,(o|0)<=(_|0)&&(_|0)<((e[v>>2]|0)+o|0)&&(o=e[I>>2]|0,u=0,w0(e[(e[o>>2]|0)+8>>2]|0,o|0,t+(((e[D>>2]|0)-a|0)*3|0)|0,e[k>>2]|0,w|0),o=u,u=0,o&1)){f=31;break}if(_=_+1|0,(_|0)>=(e[f>>2]|0)){f=43;break e}}if((f|0)==30){s=L()|0;break}else if((f|0)==31){s=L()|0;break}}else f=43;while(0);do if((f|0)==43){if(u=0,I0(183,r|0),r=u,u=0,r&1){s=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),C=x;return}while(0);t=e[O>>2]|0,n=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-n|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(s|0),n=e[B>>2]|0,(n|0)!=(t|0)&&(e[B>>2]=n+(~(((n+-3-t|0)>>>0)/3|0)*3|0)),V(t),U(s|0)}function w5(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0;if(N=r+148|0,!((e[N>>2]|0)<=0))for(q=r+4576|0,B=r+4572|0,n0=r+4580|0,x=0;w=x+-1|0,f=e[q>>2]|0,l=e[B>>2]|0,t=x+1|0,o=z[l+(x*3|0)>>0]|0,O=e[n0>>2]|0,a=z[l+(w*3|0)>>0]|0,c=o-a|0,h=z[f+(w*3|0)>>0]|0,S=a-h|0,g=((((m[O+((z[l+(t*3|0)>>0]|0)-o)>>0]|0)*9|0)+(m[O+c>>0]|0)|0)*9|0)+(m[O+S>>0]|0)|0,s=z[l+(x*3|0)+1>>0]|0,v=z[l+(w*3|0)+1>>0]|0,k=s-v|0,D=z[f+(w*3|0)+1>>0]|0,I=v-D|0,E=((((m[O+((z[l+(t*3|0)+1>>0]|0)-s)>>0]|0)*9|0)+(m[O+k>>0]|0)|0)*9|0)+(m[O+I>>0]|0)|0,n=z[l+(x*3|0)+2>>0]|0,_=z[l+(w*3|0)+2>>0]|0,y=n-_|0,w=z[f+(w*3|0)+2>>0]|0,d=_-w|0,O=((((m[O+((z[l+(t*3|0)+2>>0]|0)-n)>>0]|0)*9|0)+(m[O+y>>0]|0)|0)*9|0)+(m[O+d>>0]|0)|0,E|g|O?(l=z[f+(x*3|0)>>0]|0,f=o-h>>31,(f^S|0)>=0&&((f^c|0)<0?o=h:o=h-a+o|0),l=un(r,g,l,o,0)|0,f=z[(e[q>>2]|0)+(x*3|0)+1>>0]|0,o=s-D>>31,(o^I|0)>=0&&((o^k|0)<0?s=D:s=D-v+s|0),o=un(r,E,f,s,0)|0,f=z[(e[q>>2]|0)+(x*3|0)+2>>0]|0,s=n-w>>31,(s^d|0)>=0&&((s^y|0)<0?n=w:n=w-_+n|0),O=un(r,O,f,n,0)|0,x=(e[q>>2]|0)+(x*3|0)|0,m[x>>0]=l,m[x+1>>0]=o,m[x+2>>0]=O):t=(d5(r,x,0)|0)+x|0,(t|0)<(e[N>>2]|0);)x=t}function d5(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;return c=C,C=C+16|0,S=c+3|0,g=c,f=r+4576|0,n=e[f>>2]|0,s=n+((t+-1|0)*3|0)|0,l=m[s>>0]|0,a=m[s+1>>0]|0,s=m[s+2>>0]|0,m[g>>0]=l,m[g+1>>0]=a,m[g+2>>0]=s,h=r+148|0,o=(e[h>>2]|0)-t|0,m[S>>0]=m[g>>0]|0,m[S+1>>0]=m[g+1>>0]|0,m[S+2>>0]=m[g+2>>0]|0,o=C5(r,S,n+(t*3|0)|0,o)|0,n=o+t|0,(n|0)==(e[h>>2]|0)?(g=o,C=c,g|0):(S=(e[r+4572>>2]|0)+(n*3|0)|0,t=m[S>>0]|0,h=m[S+1>>0]|0,S=m[S+2>>0]|0,g=e[f>>2]|0,f=r+4544|0,k=an(r,f)|0,v=an(r,f)|0,t=t&255,t=(Z(t-(l&255)>>31|1,k)|0)+t&255,h=h&255,h=(Z(h-(a&255)>>31|1,v)|0)+h&255,S=S&255,S=(Z(S-(s&255)>>31|1,an(r,f)|0)|0)+S&255,g=g+(n*3|0)|0,m[g>>0]=t,m[g+1>>0]=h,m[g+2>>0]=S,g=r+4568|0,S=e[g>>2]|0,e[g>>2]=(S|0)<1?0:S+-1|0,g=o+1|0,C=c,g|0)}function un(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(k=t>>31,h=(k^t)-k|0,v=r+164+(h*12|0)+10|0,n=R[v>>1]|0,g=r+164+(h*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(f=5;(n<>1]^k)-k+s|0,(n&255|0)!=(n|0)&&(n=n>>31&255^255),o=r+112|0,(e[o>>2]|0)<8&&D2(r),s=r+108|0,l=e[s>>2]|0,a=l>>>24,c=e[2832+(f<<11)+(a<<3)+4>>2]|0,c?(e[o>>2]=(e[o>>2]|0)-c,e[s>>2]=l<>2]|0):(o=X2(r)|0,(o|0)<23?f&&(o=(ze(r,f)|0)+(o<>31^o>>1,(((o|0)>-1?o:0-o|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),t=u,u=0,t&1?(t=L()|0,z0(n|0),U(t|0)):me(n|0,824,96))),c=r+164+(h*12|0)+4|0,s=e[c>>2]|0,f?f=R[v>>1]|0:(r=R[v>>1]|0,f=r,o=(s<<1)+-1+(r<<16>>16)>>31^o),l=f<<16>>16==64,r=l&1,a=s+o>>r,l=l?32:f<<16>>16,e[g>>2]=((o|0)>-1?o:0-o|0)+(e[g>>2]|0)>>r,s=l+1|0,R[v>>1]=s,f=s+a|0,(f|0)<1?(v=R[S>>1]|0,R[S>>1]=(v&65535)-(v<<16>>16>-128&1),v=(f|0)>(~l|0)?f:0-l|0,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&255,t|0):(a|0)<=0?(v=a,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&255,t|0):(v=a-s|0,g=R[S>>1]|0,R[S>>1]=(g<<16>>16<127&1)+(g&65535),v=(v|0)>0?0:v,e[c>>2]=v,k=o^k,t=t>>>31,t=n+t|0,t=t+k|0,t=t&255,t|0)}function C5(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4568|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}if((S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)<=0)return o|0;f=0;do v=n+(f*3|0)|0,m[v>>0]=m[t>>0]|0,m[v+1>>0]=m[t+1>>0]|0,m[v+2>>0]=m[t+2>>0]|0,f=f+1|0;while((f|0)!=(o|0));return o|0}function an(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(a=t+9|0,n=z[a>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;o=e[36476+(e[r+4568>>2]<<2)>>2]|0,n=X2(r)|0;do if((n|0)<(22-o|0))if(s){n=(ze(r,s)|0)+(n<>2]|0,o=n+r|0,c=o&1,s=c,f=1,o=(c+o|0)/2|0;break}else{r=e[f>>2]|0,o=r+n|0,s=o&1,o=(s+o|0)/2|0,l=8;break}else n=(ze(r,8)|0)+1|0,r=e[f>>2]|0,o=n+r|0,f=o&1,o=(f+o|0)/2|0,s?(s=f,f=1):(s=f,l=8);while(0);return(l|0)==8&&(f=z[t+10>>0]<<1>>>0>=(z[a>>0]|0)>>>0),o=(s|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(n+1-r>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[a>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(c=s,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[a>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,c=c&255,c=c+1|0,c=c&255,m[a>>0]=c,o|0)}function y5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+128|0,f=S,v=S+116|0,k=S+104|0,a=S+20|0,h=S+16|0,c=S+12|0,g=S+8|0,l=S+4|0,m[v>>0]=m[58887]|0,m[v+1>>0]=m[58888]|0,m[v+2>>0]=m[58889]|0,m[v+3>>0]=m[58890]|0,m[v+4>>0]=m[58891]|0,m[v+5>>0]=m[58892]|0,H1(v+1|0,58893,0,e[n+4>>2]|0),r=k2()|0,e[f>>2]=o,o=k+(U2(k,12,r,v,f)|0)|0,v=r1(k,o,n)|0,r=Je(n)|0,e[g>>2]=r,u=0,l1(3,k|0,v|0,o|0,a|0,h|0,c|0,g|0),o=u,u=0,o&1)k=L()|0,se(r)|0,U(k|0);else return se(r)|0,e[l>>2]=e[t>>2],v=e[h>>2]|0,k=e[c>>2]|0,e[f>>2]=e[l>>2],k=ki(f,a,v,k,n,s)|0,C=S,k|0;return 0}function A5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(g=C,C=C+240|0,l=g+8|0,r=g,k=g+204|0,c=g+32|0,S=g+28|0,h=g+24|0,v=g+20|0,a=g+16|0,D=r,e[D>>2]=37,e[D+4>>2]=0,H1(r+1|0,58895,0,e[n+4>>2]|0),D=k2()|0,I=l,e[I>>2]=o,e[I+4>>2]=f,f=k+(U2(k,23,D,r,l)|0)|0,o=r1(k,f,n)|0,r=Je(n)|0,e[v>>2]=r,u=0,l1(3,k|0,o|0,f|0,c|0,S|0,h|0,v|0),f=u,u=0,f&1)I=L()|0,se(r)|0,U(I|0);else return se(r)|0,e[a>>2]=e[t>>2],D=e[S>>2]|0,I=e[h>>2]|0,e[l>>2]=e[a>>2],I=ki(l,c,D,I,n,s)|0,C=g,I|0;return 0}function D5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=+o;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;O=C,C=C+352|0,E=O+312|0,v=O+48|0,g=O+32|0,c=O+24|0,f=O+8|0,S=O,D=O+316|0,I=O+80|0,a=O+84|0,d=O+76|0,w=O+72|0,_=O+68|0,y=O+64|0,h=S,e[h>>2]=37,e[h+4>>2]=0,h=Tr(S+1|0,58898,e[n+4>>2]|0)|0,e[I>>2]=D,r=k2()|0,h?(e[f>>2]=e[n+8>>2],t0[f+8>>3]=o,f=U2(D,30,r,S,f)|0):(t0[c>>3]=o,f=U2(D,30,r,S,c)|0);e:do if((f|0)>29){u=0,r=de(3)|0,f=u,u=0,f=f&1,h?!f&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=o,l=qe(17,I|0,r|0,S|0,g|0)|0,k=u,u=0,!(k&1))&&(x=12):!f&&(u=0,e[v>>2]=e[n+8>>2],t0[v+8>>3]=o,k=qe(17,I|0,r|0,S|0,v|0)|0,v=u,u=0,!(v&1))&&(l=k,x=12);do if((x|0)==12){if(r=e[I>>2]|0,r)f=r;else{if(u=0,i2(6),k=u,u=0,k&1)break;f=e[I>>2]|0}r=f,S=f,x=16;break e}while(0);r=L()|0}else r=e[I>>2]|0,S=0,l=f,x=16;while(0);if((x|0)==16){c=r+l|0,h=r1(r,c,n)|0;do if((r|0)==(D|0))r=D,f=0,x=22;else{if(l=g2(l<<3)|0,!l){if(u=0,i2(6),x=u,u=0,x&1){f=0,x=20;break}r=e[I>>2]|0}f=l,a=l,x=22}while(0);do if((x|0)==22)if(u=0,l=j(68,n|0)|0,I=u,u=0,I&1)x=20;else{if(e[_>>2]=l,u=0,l1(4,r|0,h|0,c|0,a|0,d|0,w|0,_|0),_=u,u=0,_&1){r=L()|0,se(l)|0;break}if(se(l)|0,e[y>>2]=e[t>>2],x=e[d>>2]|0,r=e[w>>2]|0,u=0,e[E>>2]=e[y>>2],r=R1(40,E|0,a|0,x|0,r|0,n|0,s|0)|0,x=u,u=0,x&1)x=20;else return e[t>>2]=r,f&&Pe(f),S&&Pe(S),C=O,r|0}while(0);(x|0)==20&&(r=L()|0),f&&Pe(f),S&&Pe(S)}return U(r|0),0}function _5(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;switch(d=C,C=C+16|0,O=d,w=E2(l,44212)|0,_=E2(l,44368)|0,_e[e[(e[_>>2]|0)+20>>2]&127](O,_),e[f>>2]=s,l=m[r>>0]|0,l<<24>>24){case 43:case 45:{u=0,l=p0(e[(e[w>>2]|0)+44>>2]|0,w|0,l|0)|0,y=u,u=0,y&1?E=8:(h=e[f>>2]|0,e[f>>2]=h+4,e[h>>2]=l,h=r+1|0,E=10);break}default:h=r,E=10}e:do if((E|0)==10){y=n;i:do if((y-h|0)>1&&(m[h>>0]|0)==48){switch(a=h+1|0,m[a>>0]|0){case 88:case 120:break;default:{E=11;break i}}if(u=0,l=p0(e[(e[w>>2]|0)+44>>2]|0,w|0,48)|0,I=u,u=0,I&1){E=8;break e}if(I=e[f>>2]|0,e[f>>2]=I+4,e[I>>2]=l,h=h+2|0,u=0,l=p0(e[(e[w>>2]|0)+44>>2]|0,w|0,m[a>>0]|0)|0,I=u,u=0,I&1){E=8;break e}if(I=e[f>>2]|0,e[f>>2]=I+4,e[I>>2]=l,h>>>0>>0){for(l=h;a=m[l>>0]|0,u=0,c=de(3)|0,I=u,u=0,!(I&1||(u=0,a=p0(39,a<<24>>24|0,c|0)|0,I=u,u=0,I&1));){if(!a){I=h;break i}if(l=l+1|0,l>>>0>=n>>>0){I=h;break i}}l=L()|0;break e}else I=h,l=h}else E=11;while(0);i:do if((E|0)==11)if(h>>>0>>0){for(l=h;a=m[l>>0]|0,u=0,c=de(3)|0,I=u,u=0,!(I&1||(u=0,a=p0(40,a<<24>>24|0,c|0)|0,I=u,u=0,I&1));){if(!a){I=h;break i}if(l=l+1|0,l>>>0>=n>>>0){I=h;break i}}l=L()|0;break e}else I=h,l=h;while(0);if(k=m[O>>0]|0,D=O+4|0,(k&1?e[D>>2]|0:(k&255)>>>1)|0){if((I|0)!=(l|0)&&(S=l+-1|0,I>>>0>>0)){c=I,a=S;do k=m[c>>0]|0,m[c>>0]=m[a>>0]|0,m[a>>0]=k,c=c+1|0,a=a+-1|0;while(c>>>0
>>0)}if(u=0,S=j(e[(e[_>>2]|0)+16>>2]|0,_|0)|0,k=u,u=0,k&1){E=8;break}g=O+8|0,v=O+1|0;i:do if(I>>>0>>0){for(a=0,c=0,k=I;h=m[(m[O>>0]&1?e[g>>2]|0:v)+c>>0]|0,h<<24>>24>0&(a|0)==(h<<24>>24|0)?(a=e[f>>2]|0,e[f>>2]=a+4,e[a>>2]=S,a=m[O>>0]|0,h=0,c=(c>>>0<((a&1?e[D>>2]|0:(a&255)>>>1)+-1|0)>>>0&1)+c|0):h=a,u=0,a=p0(e[(e[w>>2]|0)+44>>2]|0,w|0,m[k>>0]|0)|0,x=u,u=0,!(x&1);){if(x=e[f>>2]|0,e[f>>2]=x+4,e[x>>2]=a,k=k+1|0,k>>>0>=l>>>0)break i;a=h+1|0}l=L()|0;break e}while(0);if(a=s+(I-r<<2)|0,h=e[f>>2]|0,(a|0)!=(h|0))if(c=h+-4|0,a>>>0>>0){do x=e[a>>2]|0,e[a>>2]=e[c>>2],e[c>>2]=x,a=a+4|0,c=c+-4|0;while(a>>>0>>0);S=w,a=h}else S=w,a=h;else S=w}else{if(u=0,qe(e[(e[w>>2]|0)+48>>2]|0,w|0,I|0,l|0,e[f>>2]|0)|0,x=u,u=0,x&1){E=8;break}a=(e[f>>2]|0)+(l-I<<2)|0,e[f>>2]=a,S=w}i:do if(l>>>0>>0){for(;;){if(a=m[l>>0]|0,a<<24>>24==46){c=l;break}if(u=0,c=p0(e[(e[S>>2]|0)+44>>2]|0,w|0,a|0)|0,x=u,u=0,x&1){E=4;break}if(x=e[f>>2]|0,a=x+4|0,e[f>>2]=a,e[x>>2]=c,l=l+1|0,l>>>0>=n>>>0)break i}if((E|0)==4){l=L()|0;break e}if(u=0,l=j(e[(e[_>>2]|0)+12>>2]|0,_|0)|0,x=u,u=0,x&1){E=8;break e}x=e[f>>2]|0,a=x+4|0,e[f>>2]=a,e[x>>2]=l,l=c+1|0}while(0);if(u=0,qe(e[(e[w>>2]|0)+48>>2]|0,w|0,l|0,n|0,a|0)|0,x=u,u=0,x&1)E=8;else{x=(e[f>>2]|0)+(y-l<<2)|0,e[f>>2]=x,e[o>>2]=(t|0)==(n|0)?x:s+(t-r<<2)|0,H(O),C=d;return}}while(0);(E|0)==8&&(l=L()|0),H(O),U(l|0)}function I5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=+o;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;O=C,C=C+352|0,E=O+304|0,v=O+48|0,g=O+32|0,c=O+24|0,f=O+8|0,S=O,D=O+308|0,I=O+72|0,a=O+76|0,d=O+68|0,w=O+64|0,_=O+60|0,y=O+56|0,h=S,e[h>>2]=37,e[h+4>>2]=0,h=Tr(S+1|0,58899,e[n+4>>2]|0)|0,e[I>>2]=D,r=k2()|0,h?(e[f>>2]=e[n+8>>2],t0[f+8>>3]=o,f=U2(D,30,r,S,f)|0):(t0[c>>3]=o,f=U2(D,30,r,S,c)|0);e:do if((f|0)>29){u=0,r=de(3)|0,f=u,u=0,f=f&1,h?!f&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=o,l=qe(17,I|0,r|0,S|0,g|0)|0,k=u,u=0,!(k&1))&&(x=12):!f&&(u=0,t0[v>>3]=o,k=qe(17,I|0,r|0,S|0,v|0)|0,v=u,u=0,!(v&1))&&(l=k,x=12);do if((x|0)==12){if(r=e[I>>2]|0,r)f=r;else{if(u=0,i2(6),k=u,u=0,k&1)break;f=e[I>>2]|0}r=f,S=f,x=16;break e}while(0);r=L()|0}else r=e[I>>2]|0,S=0,l=f,x=16;while(0);if((x|0)==16){c=r+l|0,h=r1(r,c,n)|0;do if((r|0)==(D|0))r=D,f=0,x=22;else{if(l=g2(l<<3)|0,!l){if(u=0,i2(6),x=u,u=0,x&1){f=0,x=20;break}r=e[I>>2]|0}f=l,a=l,x=22}while(0);do if((x|0)==22)if(u=0,l=j(68,n|0)|0,I=u,u=0,I&1)x=20;else{if(e[_>>2]=l,u=0,l1(4,r|0,h|0,c|0,a|0,d|0,w|0,_|0),_=u,u=0,_&1){r=L()|0,se(l)|0;break}if(se(l)|0,e[y>>2]=e[t>>2],x=e[d>>2]|0,r=e[w>>2]|0,u=0,e[E>>2]=e[y>>2],r=R1(40,E|0,a|0,x|0,r|0,n|0,s|0)|0,x=u,u=0,x&1)x=20;else return e[t>>2]=r,f&&Pe(f),S&&Pe(S),C=O,r|0}while(0);(x|0)==20&&(r=L()|0),f&&Pe(f),S&&Pe(S)}return U(r|0),0}function P5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(v=C,C=C+192|0,c=v,r=v+180|0,S=v+160|0,g=v+12|0,a=v+8|0,h=v+4|0,m[r>>0]=m[58901]|0,m[r+1>>0]=m[58902]|0,m[r+2>>0]=m[58903]|0,m[r+3>>0]=m[58904]|0,m[r+4>>0]=m[58905]|0,m[r+5>>0]=m[58906]|0,f=k2()|0,e[c>>2]=o,r=U2(S,20,f,r,c)|0,o=S+r|0,f=r1(S,o,n)|0,l=Je(n)|0,e[a>>2]=l,u=0,a=p0(37,a|0,44212)|0,k=u,u=0,k&1)k=L()|0,se(l)|0,U(k|0);else return se(l)|0,qn[e[(e[a>>2]|0)+48>>2]&31](a,S,o,g)|0,k=g+(r<<2)|0,e[h>>2]=e[t>>2],e[c>>2]=e[h>>2],k=ki(c,g,(f|0)==(o|0)?k:g+(f-S<<2)|0,k,n,s)|0,C=v,k|0;return 0}function M1(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;x=C,C=C+32|0,E=x+16|0,I=x+12|0,w=x+8|0,_=x+4|0,y=x,c=Je(s)|0,e[w>>2]=c,u=0,w=p0(37,w|0,44220)|0,D=u,u=0,D&1&&(x=L()|0,se(c)|0,U(x|0)),se(c)|0,e[o>>2]=0,D=w+8|0,c=e[t>>2]|0;e:do if((l|0)!=(a|0)){i:for(;;){h=c,c?(e[c+12>>2]|0)==(e[c+16>>2]|0)&&(X0[e[(e[c>>2]|0)+36>>2]&127](c)|0)==-1&&(e[t>>2]=0,c=0,h=0):c=0,v=(c|0)==0,g=e[n>>2]|0,S=g;do if(g){if((e[g+12>>2]|0)==(e[g+16>>2]|0)&&(X0[e[(e[g>>2]|0)+36>>2]&127](g)|0)==-1){e[n>>2]=0,S=0,O=12;break}if(!v){O=13;break i}}else O=12;while(0);if((O|0)==12)if(O=0,v){O=13;break}else g=0;r:do if((ge[e[(e[w>>2]|0)+36>>2]&63](w,m[l>>0]|0,0)|0)<<24>>24==37){if(g=l+1|0,(g|0)==(a|0)){O=17;break i}switch(k=ge[e[(e[w>>2]|0)+36>>2]&63](w,m[g>>0]|0,0)|0,k<<24>>24){case 48:case 69:{if(v=l+2|0,(v|0)==(a|0)){O=20;break i}l=g,g=ge[e[(e[w>>2]|0)+36>>2]&63](w,m[v>>0]|0,0)|0,c=k;break}default:g=k,c=0}k=e[(e[r>>2]|0)+36>>2]|0,e[_>>2]=h,e[y>>2]=S,e[I>>2]=e[_>>2],e[E>>2]=e[y>>2],k=N1[k&15](r,I,E,s,o,f,g,c)|0,e[t>>2]=k,l=l+2|0}else{if(h=m[l>>0]|0,h<<24>>24>-1&&(d=e[D>>2]|0,(R[d+(h<<24>>24<<1)>>1]&8192)!=0)){do{if(l=l+1|0,(l|0)==(a|0)){l=a;break}if(h=m[l>>0]|0,h<<24>>24<=-1)break}while(R[d+(h<<24>>24<<1)>>1]&8192);for(h=g;;){c?(e[c+12>>2]|0)==(e[c+16>>2]|0)&&(X0[e[(e[c>>2]|0)+36>>2]&127](c)|0)==-1&&(e[t>>2]=0,c=0):c=0,S=(c|0)==0;do if(g){if((e[g+12>>2]|0)!=(e[g+16>>2]|0))if(S){k=h;break}else break r;if((X0[e[(e[g>>2]|0)+36>>2]&127](g)|0)!=-1)if(S^(h|0)==0){k=h,g=h;break}else break r;else{e[n>>2]=0,h=0,O=39;break}}else O=39;while(0);if((O|0)==39){if(O=0,S)break r;k=h,g=0}if(S=c+12|0,h=e[S>>2]|0,v=c+16|0,(h|0)==(e[v>>2]|0)?h=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:h=z[h>>0]|0,(h&255)<<24>>24<=-1||!(R[(e[D>>2]|0)+(h<<24>>24<<1)>>1]&8192))break r;if(h=e[S>>2]|0,(h|0)==(e[v>>2]|0)){X0[e[(e[c>>2]|0)+40>>2]&127](c)|0,h=k;continue}else{e[S>>2]=h+1,h=k;continue}}}if(S=c+12|0,h=e[S>>2]|0,g=c+16|0,(h|0)==(e[g>>2]|0)?h=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:h=z[h>>0]|0,k=M2[e[(e[w>>2]|0)+12>>2]&63](w,h&255)|0,k<<24>>24!=(M2[e[(e[w>>2]|0)+12>>2]&63](w,m[l>>0]|0)|0)<<24>>24){O=57;break i}h=e[S>>2]|0,(h|0)==(e[g>>2]|0)?X0[e[(e[c>>2]|0)+40>>2]&127](c)|0:e[S>>2]=h+1,l=l+1|0}while(0);if(c=e[t>>2]|0,!((l|0)!=(a|0)&(e[o>>2]|0)==0))break e}if((O|0)==13){e[o>>2]=4;break}else if((O|0)==17){e[o>>2]=4;break}else if((O|0)==20){e[o>>2]=4;break}else if((O|0)==57){e[o>>2]=4,c=e[t>>2]|0;break}}while(0);c?(e[c+12>>2]|0)==(e[c+16>>2]|0)&&(X0[e[(e[c>>2]|0)+36>>2]&127](c)|0)==-1&&(e[t>>2]=0,c=0):c=0,l=(c|0)==0,h=e[n>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)&&(X0[e[(e[h>>2]|0)+36>>2]&127](h)|0)==-1){e[n>>2]=0,O=67;break}l||(O=68)}else O=67;while(0);return(O|0)==67&&l&&(O=68),(O|0)==68&&(e[o>>2]=e[o>>2]|2),C=x,c|0}function E5(r){r=r|0}function L5(r){r=r|0,V(r)}function F5(r){return r=r|0,2}function R5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=M1(r,c,a,s,o,f,58907,58915)|0,C=l,r|0}function O5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,g=r+8|0,g=X0[e[(e[g>>2]|0)+20>>2]&127](g)|0,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],n=m[g>>0]|0,v=(n&1)==0,t=v?g+1|0:e[g+8>>2]|0,n=t+(v?(n&255)>>>1:e[g+4>>2]|0)|0,e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=M1(r,c,a,s,o,f,t,n)|0,C=l,r|0}function M5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(h=C,C=C+16|0,a=h+8|0,l=h+4|0,c=h,s=Je(s)|0,e[l>>2]=s,u=0,l=p0(37,l|0,44220)|0,S=u,u=0,S&1)S=L()|0,se(s)|0,U(S|0);else return se(s)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],Do(r,f+24|0,t,a,o,l),C=h,e[t>>2]|0;return 0}function Do(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=X0[e[e[r>>2]>>2]&127](r)|0,e[c>>2]=e[s>>2],e[a>>2]=e[c>>2],n=(kr(n,a,r,r+168|0,f,o,0)|0)-r|0,(n|0)<168&&(e[t>>2]=((n|0)/12|0|0)%7|0),C=l}function x5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(h=C,C=C+16|0,a=h+8|0,l=h+4|0,c=h,s=Je(s)|0,e[l>>2]=s,u=0,l=p0(37,l|0,44220)|0,S=u,u=0,S&1)S=L()|0,se(s)|0,U(S|0);else return se(s)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],_o(r,f+16|0,t,a,o,l),C=h,e[t>>2]|0;return 0}function _o(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=X0[e[(e[r>>2]|0)+4>>2]&127](r)|0,e[c>>2]=e[s>>2],e[a>>2]=e[c>>2],n=(kr(n,a,r,r+288|0,f,o,0)|0)-r|0,(n|0)<288&&(e[t>>2]=((n|0)/12|0|0)%12|0),C=l}function q5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(h=C,C=C+16|0,a=h+8|0,l=h+4|0,c=h,s=Je(s)|0,e[l>>2]=s,u=0,l=p0(37,l|0,44220)|0,S=u,u=0,S&1)S=L()|0,se(s)|0,U(S|0);else return se(s)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],Io(r,f+20|0,t,a,o,l),C=h,e[t>>2]|0;return 0}function Io(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,4)|0,e[o>>2]&4||((r|0)<69?r=r+2e3|0:r=(r+-69|0)>>>0<31?r+1900|0:r,e[t>>2]=r+-1900),C=l}function N5(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0,B0=0,S2=0,p2=0,t2=0,g0=0,G0=0,ce=0;g0=C,C=C+144|0,c=g0+132|0,a=g0+116|0,N0=g0+128|0,w=g0+124|0,ve=g0+120|0,pe=g0+112|0,x0=g0+108|0,B0=g0+104|0,S2=g0+100|0,p2=g0+96|0,t2=g0+92|0,h=g0+88|0,S=g0+84|0,g=g0+80|0,v=g0+76|0,k=g0+72|0,D=g0+68|0,I=g0+64|0,E=g0+60|0,_=g0+56|0,y=g0+52|0,d=g0+48|0,O=g0+44|0,x=g0+40|0,N=g0+36|0,q=g0+32|0,B=g0+28|0,n0=g0+24|0,r0=g0+20|0,$=g0+16|0,A0=g0+12|0,le=g0+8|0,Fe=g0+4|0,Ie=g0,e[o>>2]=0,fe=Je(s)|0,e[N0>>2]=fe,u=0,N0=p0(37,N0|0,44220)|0,ce=u,u=0,ce&1&&(ce=L()|0,se(fe)|0,U(ce|0)),se(fe)|0;do switch(l<<24>>24|0){case 65:case 97:{e[w>>2]=e[n>>2],e[c>>2]=e[w>>2],Do(r,f+24|0,t,c,o,N0),G0=28;break}case 104:case 66:case 98:{e[ve>>2]=e[n>>2],e[c>>2]=e[ve>>2],_o(r,f+16|0,t,c,o,N0),G0=28;break}case 99:{G0=r+8|0,G0=X0[e[(e[G0>>2]|0)+12>>2]&127](G0)|0,e[pe>>2]=e[t>>2],e[x0>>2]=e[n>>2],l=m[G0>>0]|0,n=(l&1)==0,ce=n?G0+1|0:e[G0+8>>2]|0,G0=ce+(n?(l&255)>>>1:e[G0+4>>2]|0)|0,e[a>>2]=e[pe>>2],e[c>>2]=e[x0>>2],G0=M1(r,a,c,s,o,f,ce,G0)|0,e[t>>2]=G0,G0=28;break}case 101:case 100:{e[B0>>2]=e[n>>2],e[c>>2]=e[B0>>2],U5(r,f+12|0,t,c,o,N0),G0=28;break}case 68:{e[S2>>2]=e[t>>2],e[p2>>2]=e[n>>2],e[a>>2]=e[S2>>2],e[c>>2]=e[p2>>2],G0=M1(r,a,c,s,o,f,58915,58923)|0,e[t>>2]=G0,G0=28;break}case 70:{e[t2>>2]=e[t>>2],e[h>>2]=e[n>>2],e[a>>2]=e[t2>>2],e[c>>2]=e[h>>2],G0=M1(r,a,c,s,o,f,58923,58931)|0,e[t>>2]=G0,G0=28;break}case 72:{e[S>>2]=e[n>>2],e[c>>2]=e[S>>2],B5(r,f+8|0,t,c,o,N0),G0=28;break}case 73:{e[g>>2]=e[n>>2],e[c>>2]=e[g>>2],Q5(r,f+8|0,t,c,o,N0),G0=28;break}case 106:{e[v>>2]=e[n>>2],e[c>>2]=e[v>>2],G5(r,f+28|0,t,c,o,N0),G0=28;break}case 109:{e[k>>2]=e[n>>2],e[c>>2]=e[k>>2],V5(r,f+16|0,t,c,o,N0),G0=28;break}case 77:{e[D>>2]=e[n>>2],e[c>>2]=e[D>>2],H5(r,f+4|0,t,c,o,N0),G0=28;break}case 116:case 110:{e[I>>2]=e[n>>2],e[c>>2]=e[I>>2],z5(r,t,c,o,N0),G0=28;break}case 112:{e[E>>2]=e[n>>2],e[c>>2]=e[E>>2],Y5(r,f+8|0,t,c,o,N0),G0=28;break}case 114:{e[_>>2]=e[t>>2],e[y>>2]=e[n>>2],e[a>>2]=e[_>>2],e[c>>2]=e[y>>2],G0=M1(r,a,c,s,o,f,58931,58942)|0,e[t>>2]=G0,G0=28;break}case 82:{e[d>>2]=e[t>>2],e[O>>2]=e[n>>2],e[a>>2]=e[d>>2],e[c>>2]=e[O>>2],G0=M1(r,a,c,s,o,f,58942,58947)|0,e[t>>2]=G0,G0=28;break}case 83:{e[x>>2]=e[n>>2],e[c>>2]=e[x>>2],X5(r,f,t,c,o,N0),G0=28;break}case 84:{e[N>>2]=e[t>>2],e[q>>2]=e[n>>2],e[a>>2]=e[N>>2],e[c>>2]=e[q>>2],G0=M1(r,a,c,s,o,f,58947,58955)|0,e[t>>2]=G0,G0=28;break}case 119:{e[B>>2]=e[n>>2],e[c>>2]=e[B>>2],j5(r,f+24|0,t,c,o,N0),G0=28;break}case 120:{ce=e[(e[r>>2]|0)+20>>2]|0,e[n0>>2]=e[t>>2],e[r0>>2]=e[n>>2],e[a>>2]=e[n0>>2],e[c>>2]=e[r0>>2],a=Ji[ce&63](r,a,c,s,o,f)|0;break}case 88:{G0=r+8|0,G0=X0[e[(e[G0>>2]|0)+24>>2]&127](G0)|0,e[$>>2]=e[t>>2],e[A0>>2]=e[n>>2],l=m[G0>>0]|0,n=(l&1)==0,ce=n?G0+1|0:e[G0+8>>2]|0,G0=ce+(n?(l&255)>>>1:e[G0+4>>2]|0)|0,e[a>>2]=e[$>>2],e[c>>2]=e[A0>>2],G0=M1(r,a,c,s,o,f,ce,G0)|0,e[t>>2]=G0,G0=28;break}case 121:{e[le>>2]=e[n>>2],e[c>>2]=e[le>>2],Io(r,f+20|0,t,c,o,N0),G0=28;break}case 89:{e[Fe>>2]=e[n>>2],e[c>>2]=e[Fe>>2],W5(r,f+20|0,t,c,o,N0),G0=28;break}case 37:{e[Ie>>2]=e[n>>2],e[c>>2]=e[Ie>>2],J5(r,t,c,o,N0),G0=28;break}default:e[o>>2]=e[o>>2]|4,G0=28}while(0);return(G0|0)==28&&(a=e[t>>2]|0),C=g0,a|0}function U5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,2)|0,n=e[o>>2]|0,(r+-1|0)>>>0<31&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function B5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<24&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function Q5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,2)|0,n=e[o>>2]|0,(r+-1|0)>>>0<12&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function G5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,3)|0,n=e[o>>2]|0,(r|0)<366&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function V5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<13&(n&4|0)==0?e[t>>2]=r+-1:e[o>>2]=n|4,C=l}function H5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<60&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function z5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0;l=o+8|0;e:for(;;){o=e[t>>2]|0;do if(o){if((e[o+12>>2]|0)==(e[o+16>>2]|0))if((X0[e[(e[o>>2]|0)+36>>2]&127](o)|0)==-1){e[t>>2]=0,o=0;break}else{o=e[t>>2]|0;break}}else o=0;while(0);o=(o|0)==0,r=e[n>>2]|0;do if(r){if((e[r+12>>2]|0)!=(e[r+16>>2]|0)){if(o)break;break e}if((X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)!=-1){if(o)break;break e}else{e[n>>2]=0,a=12;break}}else a=12;while(0);if((a|0)==12)if(a=0,o){r=0;break}else r=0;if(o=e[t>>2]|0,f=e[o+12>>2]|0,(f|0)==(e[o+16>>2]|0)?o=X0[e[(e[o>>2]|0)+36>>2]&127](o)|0:o=z[f>>0]|0,(o&255)<<24>>24<=-1||!(R[(e[l>>2]|0)+(o<<24>>24<<1)>>1]&8192))break;if(o=e[t>>2]|0,r=o+12|0,f=e[r>>2]|0,(f|0)==(e[o+16>>2]|0)){X0[e[(e[o>>2]|0)+40>>2]&127](o)|0;continue}else{e[r>>2]=f+1;continue}}o=e[t>>2]|0;do if(o){if((e[o+12>>2]|0)==(e[o+16>>2]|0))if((X0[e[(e[o>>2]|0)+36>>2]&127](o)|0)==-1){e[t>>2]=0,o=0;break}else{o=e[t>>2]|0;break}}else o=0;while(0);o=(o|0)==0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)&&(X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[n>>2]=0,a=32;break}o||(a=33)}else a=32;while(0);(a|0)==32&&o&&(a=33),(a|0)==33&&(e[s>>2]=e[s>>2]|2)}function Y5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;S=C,C=C+16|0,a=S+4|0,c=S,h=r+8|0,h=X0[e[(e[h>>2]|0)+8>>2]&127](h)|0,r=m[h>>0]|0,r&1?l=e[h+4>>2]|0:l=(r&255)>>>1,r=m[h+12>>0]|0,r&1?r=e[h+16>>2]|0:r=(r&255)>>>1;do if((l|0)!=(0-r|0)){if(e[c>>2]=e[s>>2],e[a>>2]=e[c>>2],r=kr(n,a,h,h+24|0,f,o,0)|0,l=e[t>>2]|0,(r|0)==(h|0)&(l|0)==12){e[t>>2]=0;break}(l|0)<12&(r-h|0)==12&&(e[t>>2]=l+12)}else e[o>>2]=e[o>>2]|4;while(0);C=S}function X5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<61&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function j5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,1)|0,n=e[o>>2]|0,(r|0)<7&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function W5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=y1(n,r,o,f,4)|0,e[o>>2]&4||(e[t>>2]=r+-1900),C=l}function J5(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0;r=e[t>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0))if((X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}}else r=0;while(0);f=(r|0)==0,r=e[n>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)&&(X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[n>>2]=0,a=11;break}f?(l=r,a=13):a=12}else a=11;while(0);(a|0)==11&&(f?a=12:(l=0,a=13));e:do if((a|0)==12)e[s>>2]=e[s>>2]|6;else if((a|0)==13){if(r=e[t>>2]|0,f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=z[f>>0]|0,(ge[e[(e[o>>2]|0)+36>>2]&63](o,r&255,0)|0)<<24>>24!=37){e[s>>2]=e[s>>2]|4;break}r=e[t>>2]|0,f=r+12|0,o=e[f>>2]|0,(o|0)==(e[r+16>>2]|0)?(X0[e[(e[r>>2]|0)+40>>2]&127](r)|0,r=e[t>>2]|0,r?a=21:r=0):(e[f>>2]=o+1,a=21);do if((a|0)==21&&(e[r+12>>2]|0)==(e[r+16>>2]|0))if((X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}while(0);r=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)&&(X0[e[(e[l>>2]|0)+36>>2]&127](l)|0)==-1){e[n>>2]=0,a=30;break}if(r)break e}else a=30;while(0);if((a|0)==30&&!r)break;e[s>>2]=e[s>>2]|2}while(0)}function x1(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;d=C,C=C+32|0,I=d+16|0,D=d+12|0,y=d+8|0,E=d+4|0,_=d,c=Je(s)|0,e[y>>2]=c,u=0,y=p0(37,y|0,44212)|0,k=u,u=0,k&1&&(d=L()|0,se(c)|0,U(d|0)),se(c)|0,e[o>>2]=0,c=e[t>>2]|0;e:do if((l|0)!=(a|0)){i:for(;;){S=c,c?(h=e[c+12>>2]|0,(h|0)==(e[c+16>>2]|0)?h=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:h=e[h>>2]|0,(h|0)==-1?(e[t>>2]=0,c=0,v=1,k=0):(v=0,k=S)):(c=0,v=1,k=S),g=e[n>>2]|0,h=g;do if(g)if(S=e[g+12>>2]|0,(S|0)==(e[g+16>>2]|0)?S=X0[e[(e[g>>2]|0)+36>>2]&127](g)|0:S=e[S>>2]|0,(S|0)!=-1){if(v)break;w=17;break i}else{e[n>>2]=0,h=0,w=15;break}else w=15;while(0);if((w|0)==15)if(w=0,v){w=17;break}else g=0;r:do if((ge[e[(e[y>>2]|0)+52>>2]&63](y,e[l>>2]|0,0)|0)<<24>>24==37){if(S=l+4|0,(S|0)==(a|0)){w=21;break i}switch(v=ge[e[(e[y>>2]|0)+52>>2]&63](y,e[S>>2]|0,0)|0,v<<24>>24){case 48:case 69:{if(g=l+8|0,(g|0)==(a|0)){w=24;break i}l=S,S=ge[e[(e[y>>2]|0)+52>>2]&63](y,e[g>>2]|0,0)|0,c=v;break}default:S=v,c=0}v=e[(e[r>>2]|0)+36>>2]|0,e[E>>2]=k,e[_>>2]=h,e[D>>2]=e[E>>2],e[I>>2]=e[_>>2],k=N1[v&15](r,D,I,s,o,f,S,c)|0,e[t>>2]=k,l=l+8|0}else{if(!(ge[e[(e[y>>2]|0)+12>>2]&63](y,8192,e[l>>2]|0)|0)){if(S=c+12|0,h=e[S>>2]|0,g=c+16|0,(h|0)==(e[g>>2]|0)?h=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:h=e[h>>2]|0,k=M2[e[(e[y>>2]|0)+28>>2]&63](y,h)|0,(k|0)!=(M2[e[(e[y>>2]|0)+28>>2]&63](y,e[l>>2]|0)|0)){w=61;break i}h=e[S>>2]|0,(h|0)==(e[g>>2]|0)?X0[e[(e[c>>2]|0)+40>>2]&127](c)|0:e[S>>2]=h+4,l=l+4|0;break}do if(l=l+4|0,(l|0)==(a|0)){l=a;break}while(ge[e[(e[y>>2]|0)+12>>2]&63](y,8192,e[l>>2]|0)|0);for(h=g,v=g;;){c?(S=e[c+12>>2]|0,(S|0)==(e[c+16>>2]|0)?S=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:S=e[S>>2]|0,(S|0)==-1?(e[t>>2]=0,g=1,c=0):g=0):(g=1,c=0);do if(v)if(S=e[v+12>>2]|0,(S|0)==(e[v+16>>2]|0)?S=X0[e[(e[v>>2]|0)+36>>2]&127](v)|0:S=e[S>>2]|0,(S|0)!=-1)if(g^(h|0)==0){k=h,v=h;break}else break r;else{e[n>>2]=0,h=0,w=44;break}else w=44;while(0);if((w|0)==44){if(w=0,g)break r;k=h,v=0}if(S=c+12|0,h=e[S>>2]|0,g=c+16|0,(h|0)==(e[g>>2]|0)?h=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:h=e[h>>2]|0,!(ge[e[(e[y>>2]|0)+12>>2]&63](y,8192,h)|0))break r;if(h=e[S>>2]|0,(h|0)==(e[g>>2]|0)){X0[e[(e[c>>2]|0)+40>>2]&127](c)|0,h=k;continue}else{e[S>>2]=h+4,h=k;continue}}}while(0);if(c=e[t>>2]|0,!((l|0)!=(a|0)&(e[o>>2]|0)==0))break e}if((w|0)==17){e[o>>2]=4;break}else if((w|0)==21){e[o>>2]=4;break}else if((w|0)==24){e[o>>2]=4;break}else if((w|0)==61){e[o>>2]=4,c=e[t>>2]|0;break}}while(0);c?(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)?l=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:l=e[l>>2]|0,(l|0)==-1?(e[t>>2]=0,c=0,S=1):S=0):(c=0,S=1),l=e[n>>2]|0;do if(l)if(h=e[l+12>>2]|0,(h|0)==(e[l+16>>2]|0)?l=X0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=e[h>>2]|0,(l|0)!=-1){if(S)break;w=76;break}else{e[n>>2]=0,w=74;break}else w=74;while(0);return(w|0)==74&&S&&(w=76),(w|0)==76&&(e[o>>2]=e[o>>2]|2),C=d,c|0}function K5(r){r=r|0}function Z5(r){r=r|0,V(r)}function $5(r){return r=r|0,2}function b5(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=x1(r,c,a,s,o,f,44788,44820)|0,C=l,r|0}function ea(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,k=r+8|0,k=X0[e[(e[k>>2]|0)+20>>2]&127](k)|0,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],g=m[k>>0]|0,v=(g&1)==0,n=k+4|0,t=v?n:e[k+8>>2]|0,n=t+((v?(g&255)>>>1:e[n>>2]|0)<<2)|0,e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=x1(r,c,a,s,o,f,t,n)|0,C=l,r|0}function ia(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(h=C,C=C+16|0,a=h+8|0,l=h+4|0,c=h,s=Je(s)|0,e[l>>2]=s,u=0,l=p0(37,l|0,44212)|0,S=u,u=0,S&1)S=L()|0,se(s)|0,U(S|0);else return se(s)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],Po(r,f+24|0,t,a,o,l),C=h,e[t>>2]|0;return 0}function Po(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=X0[e[e[r>>2]>>2]&127](r)|0,e[c>>2]=e[s>>2],e[a>>2]=e[c>>2],n=(wr(n,a,r,r+168|0,f,o,0)|0)-r|0,(n|0)<168&&(e[t>>2]=((n|0)/12|0|0)%7|0),C=l}function ra(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(h=C,C=C+16|0,a=h+8|0,l=h+4|0,c=h,s=Je(s)|0,e[l>>2]=s,u=0,l=p0(37,l|0,44212)|0,S=u,u=0,S&1)S=L()|0,se(s)|0,U(S|0);else return se(s)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],Eo(r,f+16|0,t,a,o,l),C=h,e[t>>2]|0;return 0}function Eo(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0;l=C,C=C+16|0,a=l+4|0,c=l,r=r+8|0,r=X0[e[(e[r>>2]|0)+4>>2]&127](r)|0,e[c>>2]=e[s>>2],e[a>>2]=e[c>>2],n=(wr(n,a,r,r+288|0,f,o,0)|0)-r|0,(n|0)<288&&(e[t>>2]=((n|0)/12|0|0)%12|0),C=l}function ta(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(h=C,C=C+16|0,a=h+8|0,l=h+4|0,c=h,s=Je(s)|0,e[l>>2]=s,u=0,l=p0(37,l|0,44212)|0,S=u,u=0,S&1)S=L()|0,se(s)|0,U(S|0);else return se(s)|0,e[c>>2]=e[n>>2],e[a>>2]=e[c>>2],Lo(r,f+20|0,t,a,o,l),C=h,e[t>>2]|0;return 0}function Lo(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,4)|0,e[o>>2]&4||((r|0)<69?r=r+2e3|0:r=(r+-69|0)>>>0<31?r+1900|0:r,e[t>>2]=r+-1900),C=l}function na(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0,B0=0,S2=0,p2=0,t2=0,g0=0,G0=0,ce=0;g0=C,C=C+144|0,c=g0+132|0,a=g0+116|0,N0=g0+128|0,w=g0+124|0,ve=g0+120|0,pe=g0+112|0,x0=g0+108|0,B0=g0+104|0,S2=g0+100|0,p2=g0+96|0,t2=g0+92|0,h=g0+88|0,S=g0+84|0,g=g0+80|0,v=g0+76|0,k=g0+72|0,D=g0+68|0,I=g0+64|0,E=g0+60|0,_=g0+56|0,y=g0+52|0,d=g0+48|0,O=g0+44|0,x=g0+40|0,N=g0+36|0,q=g0+32|0,B=g0+28|0,n0=g0+24|0,r0=g0+20|0,$=g0+16|0,A0=g0+12|0,le=g0+8|0,Fe=g0+4|0,Ie=g0,e[o>>2]=0,fe=Je(s)|0,e[N0>>2]=fe,u=0,N0=p0(37,N0|0,44212)|0,ce=u,u=0,ce&1&&(ce=L()|0,se(fe)|0,U(ce|0)),se(fe)|0;do switch(l<<24>>24|0){case 65:case 97:{e[w>>2]=e[n>>2],e[c>>2]=e[w>>2],Po(r,f+24|0,t,c,o,N0),G0=28;break}case 104:case 66:case 98:{e[ve>>2]=e[n>>2],e[c>>2]=e[ve>>2],Eo(r,f+16|0,t,c,o,N0),G0=28;break}case 99:{ce=r+8|0,ce=X0[e[(e[ce>>2]|0)+12>>2]&127](ce)|0,e[pe>>2]=e[t>>2],e[x0>>2]=e[n>>2],l=m[ce>>0]|0,n=(l&1)==0,G0=ce+4|0,ce=n?G0:e[ce+8>>2]|0,G0=ce+((n?(l&255)>>>1:e[G0>>2]|0)<<2)|0,e[a>>2]=e[pe>>2],e[c>>2]=e[x0>>2],G0=x1(r,a,c,s,o,f,ce,G0)|0,e[t>>2]=G0,G0=28;break}case 101:case 100:{e[B0>>2]=e[n>>2],e[c>>2]=e[B0>>2],sa(r,f+12|0,t,c,o,N0),G0=28;break}case 68:{e[S2>>2]=e[t>>2],e[p2>>2]=e[n>>2],e[a>>2]=e[S2>>2],e[c>>2]=e[p2>>2],G0=x1(r,a,c,s,o,f,44820,44852)|0,e[t>>2]=G0,G0=28;break}case 70:{e[t2>>2]=e[t>>2],e[h>>2]=e[n>>2],e[a>>2]=e[t2>>2],e[c>>2]=e[h>>2],G0=x1(r,a,c,s,o,f,44852,44884)|0,e[t>>2]=G0,G0=28;break}case 72:{e[S>>2]=e[n>>2],e[c>>2]=e[S>>2],oa(r,f+8|0,t,c,o,N0),G0=28;break}case 73:{e[g>>2]=e[n>>2],e[c>>2]=e[g>>2],fa(r,f+8|0,t,c,o,N0),G0=28;break}case 106:{e[v>>2]=e[n>>2],e[c>>2]=e[v>>2],la(r,f+28|0,t,c,o,N0),G0=28;break}case 109:{e[k>>2]=e[n>>2],e[c>>2]=e[k>>2],ua(r,f+16|0,t,c,o,N0),G0=28;break}case 77:{e[D>>2]=e[n>>2],e[c>>2]=e[D>>2],aa(r,f+4|0,t,c,o,N0),G0=28;break}case 116:case 110:{e[I>>2]=e[n>>2],e[c>>2]=e[I>>2],ca(r,t,c,o,N0),G0=28;break}case 112:{e[E>>2]=e[n>>2],e[c>>2]=e[E>>2],Sa(r,f+8|0,t,c,o,N0),G0=28;break}case 114:{e[_>>2]=e[t>>2],e[y>>2]=e[n>>2],e[a>>2]=e[_>>2],e[c>>2]=e[y>>2],G0=x1(r,a,c,s,o,f,44884,44928)|0,e[t>>2]=G0,G0=28;break}case 82:{e[d>>2]=e[t>>2],e[O>>2]=e[n>>2],e[a>>2]=e[d>>2],e[c>>2]=e[O>>2],G0=x1(r,a,c,s,o,f,44928,44948)|0,e[t>>2]=G0,G0=28;break}case 83:{e[x>>2]=e[n>>2],e[c>>2]=e[x>>2],ha(r,f,t,c,o,N0),G0=28;break}case 84:{e[N>>2]=e[t>>2],e[q>>2]=e[n>>2],e[a>>2]=e[N>>2],e[c>>2]=e[q>>2],G0=x1(r,a,c,s,o,f,44948,44980)|0,e[t>>2]=G0,G0=28;break}case 119:{e[B>>2]=e[n>>2],e[c>>2]=e[B>>2],ma(r,f+24|0,t,c,o,N0),G0=28;break}case 120:{ce=e[(e[r>>2]|0)+20>>2]|0,e[n0>>2]=e[t>>2],e[r0>>2]=e[n>>2],e[a>>2]=e[n0>>2],e[c>>2]=e[r0>>2],a=Ji[ce&63](r,a,c,s,o,f)|0;break}case 88:{ce=r+8|0,ce=X0[e[(e[ce>>2]|0)+24>>2]&127](ce)|0,e[$>>2]=e[t>>2],e[A0>>2]=e[n>>2],l=m[ce>>0]|0,n=(l&1)==0,G0=ce+4|0,ce=n?G0:e[ce+8>>2]|0,G0=ce+((n?(l&255)>>>1:e[G0>>2]|0)<<2)|0,e[a>>2]=e[$>>2],e[c>>2]=e[A0>>2],G0=x1(r,a,c,s,o,f,ce,G0)|0,e[t>>2]=G0,G0=28;break}case 121:{e[le>>2]=e[n>>2],e[c>>2]=e[le>>2],Lo(r,f+20|0,t,c,o,N0),G0=28;break}case 89:{e[Fe>>2]=e[n>>2],e[c>>2]=e[Fe>>2],pa(r,f+20|0,t,c,o,N0),G0=28;break}case 37:{e[Ie>>2]=e[n>>2],e[c>>2]=e[Ie>>2],ga(r,t,c,o,N0),G0=28;break}default:e[o>>2]=e[o>>2]|4,G0=28}while(0);return(G0|0)==28&&(a=e[t>>2]|0),C=g0,a|0}function sa(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,2)|0,n=e[o>>2]|0,(r+-1|0)>>>0<31&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function oa(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<24&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function fa(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,2)|0,n=e[o>>2]|0,(r+-1|0)>>>0<12&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function la(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,3)|0,n=e[o>>2]|0,(r|0)<366&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function ua(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<13&(n&4|0)==0?e[t>>2]=r+-1:e[o>>2]=n|4,C=l}function aa(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<60&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function ca(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0;e:for(;;){r=e[t>>2]|0;do if(r)if(f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[f>>2]|0,(r|0)==-1){e[t>>2]=0,l=1;break}else{l=(e[t>>2]|0)==0;break}else l=1;while(0);f=e[n>>2]|0;do if(f)if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)?r=X0[e[(e[f>>2]|0)+36>>2]&127](f)|0:r=e[r>>2]|0,(r|0)!=-1)if(l){l=f;break}else{l=f;break e}else{e[n>>2]=0,a=15;break}else a=15;while(0);if((a|0)==15)if(a=0,l){l=0;break}else l=0;if(r=e[t>>2]|0,f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[f>>2]|0,!(ge[e[(e[o>>2]|0)+12>>2]&63](o,8192,r)|0))break;if(r=e[t>>2]|0,f=r+12|0,l=e[f>>2]|0,(l|0)==(e[r+16>>2]|0)){X0[e[(e[r>>2]|0)+40>>2]&127](r)|0;continue}else{e[f>>2]=l+4;continue}}r=e[t>>2]|0;do if(r)if(f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[f>>2]|0,(r|0)==-1){e[t>>2]=0,f=1;break}else{f=(e[t>>2]|0)==0;break}else f=1;while(0);do if(l)if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)?r=X0[e[(e[l>>2]|0)+36>>2]&127](l)|0:r=e[r>>2]|0,(r|0)!=-1){if(f)break;a=39;break}else{e[n>>2]=0,a=37;break}else a=37;while(0);(a|0)==37&&f&&(a=39),(a|0)==39&&(e[s>>2]=e[s>>2]|2)}function Sa(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;S=C,C=C+16|0,a=S+4|0,c=S,h=r+8|0,h=X0[e[(e[h>>2]|0)+8>>2]&127](h)|0,r=m[h>>0]|0,r&1?l=e[h+4>>2]|0:l=(r&255)>>>1,r=m[h+12>>0]|0,r&1?r=e[h+16>>2]|0:r=(r&255)>>>1;do if((l|0)!=(0-r|0)){if(e[c>>2]=e[s>>2],e[a>>2]=e[c>>2],r=wr(n,a,h,h+24|0,f,o,0)|0,l=e[t>>2]|0,(r|0)==(h|0)&(l|0)==12){e[t>>2]=0;break}(l|0)<12&(r-h|0)==12&&(e[t>>2]=l+12)}else e[o>>2]=e[o>>2]|4;while(0);C=S}function ha(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,2)|0,n=e[o>>2]|0,(r|0)<61&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function ma(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,1)|0,n=e[o>>2]|0,(r|0)<7&(n&4|0)==0?e[t>>2]=r:e[o>>2]=n|4,C=l}function pa(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;l=C,C=C+16|0,r=l+4|0,a=l,e[a>>2]=e[s>>2],e[r>>2]=e[a>>2],r=A1(n,r,o,f,4)|0,e[o>>2]&4||(e[t>>2]=r+-1900),C=l}function ga(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0;r=e[t>>2]|0;do if(r)if(f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[f>>2]|0,(r|0)==-1){e[t>>2]=0,l=1;break}else{l=(e[t>>2]|0)==0;break}else l=1;while(0);f=e[n>>2]|0;do if(f)if(r=e[f+12>>2]|0,(r|0)==(e[f+16>>2]|0)?r=X0[e[(e[f>>2]|0)+36>>2]&127](f)|0:r=e[r>>2]|0,(r|0)!=-1)if(l){a=f,c=17;break}else{c=16;break}else{e[n>>2]=0,c=14;break}else c=14;while(0);(c|0)==14&&(l?c=16:(a=0,c=17));e:do if((c|0)==16)e[s>>2]=e[s>>2]|6;else if((c|0)==17){if(r=e[t>>2]|0,f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[f>>2]|0,(ge[e[(e[o>>2]|0)+52>>2]&63](o,r,0)|0)<<24>>24!=37){e[s>>2]=e[s>>2]|4;break}r=e[t>>2]|0,f=r+12|0,l=e[f>>2]|0,(l|0)==(e[r+16>>2]|0)?(X0[e[(e[r>>2]|0)+40>>2]&127](r)|0,r=e[t>>2]|0,r?c=25:f=1):(e[f>>2]=l+4,c=25);do if((c|0)==25)if(f=e[r+12>>2]|0,(f|0)==(e[r+16>>2]|0)?r=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0:r=e[f>>2]|0,(r|0)==-1){e[t>>2]=0,f=1;break}else{f=(e[t>>2]|0)==0;break}while(0);do if(a)if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)?r=X0[e[(e[a>>2]|0)+36>>2]&127](a)|0:r=e[r>>2]|0,(r|0)!=-1){if(f)break e;break}else{e[n>>2]=0,c=37;break}else c=37;while(0);if((c|0)==37&&!f)break;e[s>>2]=e[s>>2]|2}while(0)}function va(r){r=r|0,Sr(r+8|0)}function Sr(r){r=r|0;var t=0,n=0,s=0;t=e[r>>2]|0,u=0,n=de(3)|0,s=u,u=0;do if(!(s&1)){if((t|0)!=(n|0)&&(u=0,I0(188,e[r>>2]|0),s=u,u=0,s&1))break;return}while(0);s=L(0)|0,ne(s)}function Ta(r){r=r|0,Sr(r+8|0),V(r)}function ka(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0;if(c=C,C=C+112|0,a=c+4|0,n=c,e[n>>2]=a+100,Fo(r+8|0,a,n,o,f,l),o=e[n>>2]|0,n=e[t>>2]|0,(a|0)!=(o|0))do{l=m[a>>0]|0;do if(n)if(s=n+24|0,f=e[s>>2]|0,(f|0)==(e[n+28>>2]|0)){t=(M2[e[(e[n>>2]|0)+52>>2]&63](n,l&255)|0)==-1,n=t?0:n;break}else{e[s>>2]=f+1,m[f>>0]=l;break}else n=0;while(0);a=a+1|0}while((a|0)!=(o|0));return C=c,n|0}function Fo(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0;h=C,C=C+16|0,c=h,m[c>>0]=37,l=c+1|0,m[l>>0]=o,a=c+2|0,m[a>>0]=f,m[c+3>>0]=0,f<<24>>24&&(m[l>>0]=f,m[a>>0]=o),r=t+(p4(t|0,(e[n>>2]|0)-t|0,c|0,s|0,e[r>>2]|0)|0)|0,e[n>>2]=r,C=h}function wa(r){r=r|0,Sr(r+8|0)}function da(r){r=r|0,Sr(r+8|0),V(r)}function Ca(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0;if(a=C,C=C+416|0,s=a+8|0,n=a,e[n>>2]=s+400,ya(r+8|0,s,n,o,f,l),r=e[n>>2]|0,n=e[t>>2]|0,(s|0)!=(r|0)){o=s;do s=e[o>>2]|0,n?(f=n+24|0,l=e[f>>2]|0,(l|0)==(e[n+28>>2]|0)?s=M2[e[(e[n>>2]|0)+52>>2]&63](n,s)|0:(e[f>>2]=l+4,e[l>>2]=s),n=(s|0)==-1?0:n):n=0,o=o+4|0;while((o|0)!=(r|0))}return C=a,n|0}function ya(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;if(l=C,C=C+128|0,h=l+16|0,S=l+12|0,a=l,c=l+8|0,e[S>>2]=h+100,Fo(r,h,S,s,o,f),o=a,e[o>>2]=0,e[o+4>>2]=0,e[c>>2]=h,o=(e[n>>2]|0)-t>>2,f=o1(e[r>>2]|0)|0,u=0,o=qe(18,t|0,c|0,o|0,a|0)|0,r=u,u=0,r&1&&(o=L()|0,f|0&&(u=0,j(75,f|0)|0,S=u,u=0,S&1)&&(S=L(0)|0,ne(S)),U(o|0)),f|0&&(u=0,j(75,f|0)|0,S=u,u=0,S&1)&&(S=L(0)|0,ne(S)),(o|0)==-1)hr(58955);else{e[n>>2]=t+(o<<2),C=l;return}}function Aa(r){r=r|0}function Da(r){r=r|0,V(r)}function _a(r){return r=r|0,127}function Ia(r){return r=r|0,127}function Pa(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Ea(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function La(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Fa(r,t){r=r|0,t=t|0,pn(r,1,45)}function Ra(r){return r=r|0,0}function Oa(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function Ma(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function xa(r){r=r|0}function qa(r){r=r|0,V(r)}function Na(r){return r=r|0,127}function Ua(r){return r=r|0,127}function Ba(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Qa(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Ga(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Va(r,t){r=r|0,t=t|0,pn(r,1,45)}function Ha(r){return r=r|0,0}function za(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function Ya(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function Xa(r){r=r|0}function ja(r){r=r|0,V(r)}function Wa(r){return r=r|0,2147483647}function Ja(r){return r=r|0,2147483647}function Ka(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function Za(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function $a(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function ba(r,t){r=r|0,t=t|0,Tn(r,1,45)}function ec(r){return r=r|0,0}function ic(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function rc(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function tc(r){r=r|0}function nc(r){r=r|0,V(r)}function sc(r){return r=r|0,2147483647}function oc(r){return r=r|0,2147483647}function fc(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function lc(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function uc(r,t){r=r|0,t=t|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function ac(r,t){r=r|0,t=t|0,Tn(r,1,45)}function cc(r){return r=r|0,0}function Sc(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function hc(r,t){r=r|0,t=t|0,m[r>>0]=2,m[r+1>>0]=3,m[r+2>>0]=0,m[r+3>>0]=4}function mc(r){r=r|0}function pc(r){r=r|0,V(r)}function gc(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;if(N=C,C=C+240|0,O=N+24|0,x=N,r=N+136|0,B=N+16|0,d=N+12|0,q=N+8|0,g=N+134|0,c=N+4|0,w=N+124|0,e[B>>2]=r,n0=B+4|0,e[n0>>2]=189,h=r+100|0,u=0,a=j(68,o|0)|0,y=u,u=0,y&1)c=L()|0,e[B>>2]=0,a=189,$=45;else{e[q>>2]=a,u=0,r=p0(37,q|0,44220)|0,y=u,u=0;e:do if(!(y&1)&&(m[g>>0]=0,e[c>>2]=e[n>>2],S=e[o+4>>2]|0,u=0,e[O>>2]=e[c>>2],S=lr(1,t|0,O|0,s|0,q|0,S|0,f|0,g|0,r|0,B|0,d|0,h|0)|0,y=u,u=0,!(y&1))){i:do if(S){if(u=0,qe(e[(e[r>>2]|0)+32>>2]|0,r|0,58976,58986,w|0)|0,y=u,u=0,y&1){$=10;break e}c=e[d>>2]|0,h=e[B>>2]|0,r=c-h|0,(r|0)>98?(r=g2(r+2|0)|0,a=r,r?$=13:(u=0,i2(6),y=u,u=0,y&1||(r=0,$=13))):(a=0,r=O,$=13);do if(($|0)==13){if(m[g>>0]|0&&(m[r>>0]=45,r=r+1|0),_=w+10|0,y=w,h>>>0>>0){S=w+1|0,s=S+1|0,o=s+1|0,g=o+1|0,v=g+1|0,k=v+1|0,D=k+1|0,I=D+1|0,E=I+1|0;do{c=m[h>>0]|0;do if((m[w>>0]|0)!=c<<24>>24)if((m[S>>0]|0)!=c<<24>>24)if((m[s>>0]|0)!=c<<24>>24)if((m[o>>0]|0)!=c<<24>>24)if((m[g>>0]|0)==c<<24>>24)c=g;else{if((m[v>>0]|0)==c<<24>>24){c=v;break}if((m[k>>0]|0)==c<<24>>24){c=k;break}if((m[D>>0]|0)==c<<24>>24){c=D;break}if((m[I>>0]|0)==c<<24>>24){c=I;break}c=(m[E>>0]|0)==c<<24>>24?E:_}else c=o;else c=s;else c=S;else c=w;while(0);m[r>>0]=m[58976+(c-y)>>0]|0,h=h+1|0,r=r+1|0}while(h>>>0<(e[d>>2]|0)>>>0)}if(m[r>>0]=0,e[x>>2]=l,(Mf(O,58987,x)|0)!=1&&(u=0,I0(190,58991),l=u,u=0,l&1))break;a&&Pe(a);break i}while(0);if(r=L()|0,!a){c=r,a=B;break e}Pe(a),c=r,a=B;break e}while(0);r=e[t>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,r=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){$=10;break e}if((r|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}}}else r=0;while(0);a=(r|0)==0,r=e[n>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,r=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){$=10;break e}if((r|0)==-1){e[n>>2]=0,$=37;break}}a||($=38)}else $=37;while(0);return($|0)==37&&a&&($=38),($|0)==38&&(e[f>>2]=e[f>>2]|2),a=e[t>>2]|0,se(e[q>>2]|0)|0,r=e[B>>2]|0,e[B>>2]=0,r|0&&(u=0,I0(e[n0>>2]|0,r|0),$=u,u=0,$&1)&&($=L(0)|0,ne($)),C=N,a|0}else $=10;while(0);($|0)==10&&(c=L()|0,a=B),se(e[q>>2]|0)|0,r=e[a>>2]|0,e[a>>2]=0,r?(a=e[n0>>2]|0,$=45):r0=c}return($|0)==45&&(u=0,I0(a|0,r|0),$=u,u=0,$&1?($=L(0)|0,ne($)):r0=c),U(r0|0),0}function vc(r){r=r|0}function Tc(r,t,n,s,o,f,l,a,c,h,S){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0;var g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0,B0=0,S2=0,p2=0,t2=0,g0=0,G0=0,ce=0,We=0,Qe=0,Ze=0,v2=0,s2=0,U1=0,d2=0;s2=C,C=C+512|0,N0=s2+88|0,D=s2+96|0,d2=s2+80|0,S2=s2+72|0,B0=s2+68|0,p2=s2+500|0,pe=s2+497|0,t2=s2+496|0,ce=s2+56|0,v2=s2+44|0,Qe=s2+32|0,We=s2+20|0,Ze=s2+8|0,x0=s2+4|0,G0=s2,e[N0>>2]=S,e[d2>>2]=D,U1=d2+4|0,e[U1>>2]=189,e[S2>>2]=D,e[B0>>2]=D+400,e[ce>>2]=0,e[ce+4>>2]=0,e[ce+8>>2]=0,e[v2>>2]=0,e[v2+4>>2]=0,e[v2+8>>2]=0,e[Qe>>2]=0,e[Qe+4>>2]=0,e[Qe+8>>2]=0,e[We>>2]=0,e[We+4>>2]=0,e[We+8>>2]=0,e[Ze>>2]=0,e[Ze+4>>2]=0,e[Ze+8>>2]=0,u=0,Si(1,n|0,s|0,p2|0,pe|0,t2|0,ce|0,v2|0,Qe|0,We|0,x0|0),fe=u,u=0;e:do if(fe&1)a=L()|0;else{e[h>>2]=e[c>>2],$=a+8|0,A0=Qe+4|0,ve=We+4|0,le=We+8|0,Fe=We+1|0,Ie=Qe+8|0,fe=Qe+1|0,w=(o&512|0)!=0,d=v2+8|0,O=v2+1|0,x=v2+4|0,N=Ze+4|0,q=Ze+8|0,B=Ze+1|0,n0=p2+3|0,r0=ce+4|0,y=0,k=0;i:for(;;){S=e[r>>2]|0;do if(S){if((e[S+12>>2]|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}if((S|0)==-1){e[r>>2]=0,S=0;break}else{S=e[r>>2]|0;break}}}else S=0;while(0);S=(S|0)==0,a=e[t>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0))if(S){_=a;break}else{g0=235;break i}if(u=0,n=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,_=u,u=0,_&1){g0=24;break i}if((n|0)!=-1)if(S){_=a;break}else{g0=235;break i}else{e[t>>2]=0,g0=15;break}}else g0=15;while(0);if((g0|0)==15)if(g0=0,S){g0=235;break}else _=0;r:do switch(m[p2+y>>0]|0){case 1:{if((y|0)!=3){if(S=e[r>>2]|0,a=e[S+12>>2]|0,(a|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,g0=u,u=0,g0&1){g0=24;break i}}else S=z[a>>0]|0;if((S&255)<<24>>24<=-1){g0=40;break i}if(!(R[(e[$>>2]|0)+(S<<24>>24<<1)>>1]&8192)){g0=40;break i}if(S=e[r>>2]|0,a=S+12|0,n=e[a>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,g0=u,u=0,g0&1){g0=24;break i}}else e[a>>2]=n+1,S=z[n>>0]|0;if(u=0,e0(67,Ze|0,S&255|0),g0=u,u=0,g0&1){g0=24;break i}else S=_,s=_,g0=42}break}case 0:{(y|0)!=3&&(S=_,s=_,g0=42);break}case 3:{if(a=m[Qe>>0]|0,S=a&1?e[A0>>2]|0:(a&255)>>>1,n=m[We>>0]|0,s=n&1?e[ve>>2]|0:(n&255)>>>1,(S|0)!=(0-s|0)){if(!S){if(S=e[r>>2]|0,a=e[S+12>>2]|0,(a|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}a=m[We>>0]|0}else S=z[a>>0]|0,a=n;if((S&255)<<24>>24!=(m[(a&1?e[le>>2]|0:Fe)>>0]|0))break r;if(S=e[r>>2]|0,a=S+12|0,n=e[a>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}}else e[a>>2]=n+1;m[l>>0]=1,_=m[We>>0]|0,k=(_&1?e[ve>>2]|0:(_&255)>>>1)>>>0>1?We:k;break r}if(o=e[r>>2]|0,g=e[o+12>>2]|0,n=e[o+16>>2]|0,S=(g|0)==(n|0),!s){if(S){if(u=0,S=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,_=u,u=0,_&1){g0=24;break i}a=m[Qe>>0]|0}else S=z[g>>0]|0;if((S&255)<<24>>24!=(m[(a&1?e[Ie>>2]|0:fe)>>0]|0)){m[l>>0]=1;break r}if(S=e[r>>2]|0,a=S+12|0,n=e[a>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}}else e[a>>2]=n+1;_=m[Qe>>0]|0,k=(_&1?e[A0>>2]|0:(_&255)>>>1)>>>0>1?Qe:k;break r}if(S){if(u=0,S=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,_=u,u=0,_&1){g0=24;break i}n=e[r>>2]|0,a=m[Qe>>0]|0,o=n,g=e[n+12>>2]|0,n=e[n+16>>2]|0}else S=z[g>>0]|0;if(s=o+12|0,n=(g|0)==(n|0),(S&255)<<24>>24==(m[(a&1?e[Ie>>2]|0:fe)>>0]|0)){if(n){if(u=0,j(e[(e[o>>2]|0)+40>>2]|0,o|0)|0,_=u,u=0,_&1){g0=24;break i}}else e[s>>2]=g+1;_=m[Qe>>0]|0,k=(_&1?e[A0>>2]|0:(_&255)>>>1)>>>0>1?Qe:k;break r}if(n){if(u=0,S=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,_=u,u=0,_&1){g0=24;break i}}else S=z[g>>0]|0;if((S&255)<<24>>24!=(m[(m[We>>0]&1?e[le>>2]|0:Fe)>>0]|0)){g0=104;break i}if(S=e[r>>2]|0,a=S+12|0,n=e[a>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}}else e[a>>2]=n+1;m[l>>0]=1,_=m[We>>0]|0,k=(_&1?e[ve>>2]|0:(_&255)>>>1)>>>0>1?We:k}break}case 2:{if(!(y>>>0<2|(k|0)!=0)&&!(w|(y|0)==2&(m[n0>>0]|0)!=0)){k=0;break r}I=m[v2>>0]|0,S=(I&1)==0,E=e[d>>2]|0,n=S?O:E,v=n;t:do if(y|0&&(z[p2+(y+-1)>>0]|0)<2){g=S?(I&255)>>>1:e[x>>2]|0,s=n+g|0,o=e[$>>2]|0;n:do if(!g)a=v;else{g=n,a=v;do{if(S=m[g>>0]|0,S<<24>>24<=-1||!(R[o+(S<<24>>24<<1)>>1]&8192))break n;g=g+1|0,a=g}while((g|0)!=(s|0))}while(0);if(s=a-v|0,o=m[Ze>>0]|0,S=(o&1)==0,o=S?(o&255)>>>1:e[N>>2]|0,o>>>0>=s>>>0){if(S=S?B:e[q>>2]|0,g=S+o|0,(a|0)!=(v|0))for(S=S+(o-s)|0;;){if((m[S>>0]|0)!=(m[n>>0]|0)){a=v;break t}if(S=S+1|0,(S|0)==(g|0))break;n=n+1|0}}else a=v}else a=v;while(0);S=(I&1)==0,S=(S?O:E)+(S?(I&255)>>>1:e[x>>2]|0)|0;t:do if((a|0)!=(S|0))for(o=_,s=_,S=a;;){a=e[r>>2]|0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,a=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,_=u,u=0,_&1){g0=21;break i}if((a|0)==-1){e[r>>2]=0,a=0;break}else{a=e[r>>2]|0;break}}}else a=0;while(0);n=(a|0)==0;do if(s){if((e[s+12>>2]|0)!=(e[s+16>>2]|0))if(n){a=o,g=s;break}else break t;if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,_=u,u=0,_&1){g0=21;break i}if((a|0)!=-1)if(n^(o|0)==0){a=o,g=o;break}else break t;else{e[t>>2]=0,a=0,g0=131;break}}else a=o,g0=131;while(0);if((g0|0)==131){if(g0=0,n)break t;g=0}if(n=e[r>>2]|0,s=e[n+12>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,_=u,u=0,_&1){g0=21;break i}}else n=z[s>>0]|0;if((n&255)<<24>>24!=(m[S>>0]|0))break t;if(n=e[r>>2]|0,s=n+12|0,o=e[s>>2]|0,(o|0)==(e[n+16>>2]|0)){if(u=0,j(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,_=u,u=0,_&1){g0=21;break i}}else e[s>>2]=o+1;if(S=S+1|0,n=m[v2>>0]|0,_=(n&1)==0,n=(_?O:e[d>>2]|0)+(_?(n&255)>>>1:e[x>>2]|0)|0,(S|0)==(n|0)){S=n;break}else o=a,s=g}while(0);if(w&&(_=m[v2>>0]|0,E=(_&1)==0,(S|0)!=((E?O:e[d>>2]|0)+(E?(_&255)>>>1:e[x>>2]|0)|0))){g0=143;break i}break}case 4:{v=m[t2>>0]|0,a=_,o=_,S=0;t:for(;;){n=e[r>>2]|0;do if(n){if((e[n+12>>2]|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,_=u,u=0,_&1){g0=23;break i}if((n|0)==-1){e[r>>2]=0,n=0;break}else{n=e[r>>2]|0;break}}}else n=0;while(0);s=(n|0)==0;do if(o){if((e[o+12>>2]|0)!=(e[o+16>>2]|0))if(s){g=a;break}else{s=a;break t}if(u=0,n=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,_=u,u=0,_&1){g0=23;break i}if((n|0)!=-1)if(s^(a|0)==0){g=a,o=a;break}else{s=a;break t}else{e[t>>2]=0,a=0,g0=156;break}}else g0=156;while(0);if((g0|0)==156)if(g0=0,s){s=a;break}else g=a,o=0;if(a=e[r>>2]|0,n=e[a+12>>2]|0,(n|0)==(e[a+16>>2]|0)){if(u=0,a=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,_=u,u=0,_&1){g0=23;break i}}else a=z[n>>0]|0;if(n=a&255,n<<24>>24>-1&&R[(e[$>>2]|0)+(a<<24>>24<<1)>>1]&2048){if(a=e[h>>2]|0,(a|0)==(e[N0>>2]|0)){if(u=0,c0(12,c|0,h|0,N0|0),_=u,u=0,_&1){g0=23;break i}a=e[h>>2]|0}e[h>>2]=a+1,m[a>>0]=n,S=S+1|0}else{if(_=m[ce>>0]|0,!(n<<24>>24==v<<24>>24&(S|0?((_&1?e[r0>>2]|0:(_&255)>>>1)|0)!=0:0))){s=g;break}if((D|0)==(e[B0>>2]|0)){if(u=0,c0(13,d2|0,S2|0,B0|0),_=u,u=0,_&1){g0=23;break i}D=e[S2>>2]|0}_=D+4|0,e[S2>>2]=_,e[D>>2]=S,D=_,S=0}if(a=e[r>>2]|0,n=a+12|0,s=e[n>>2]|0,(s|0)==(e[a+16>>2]|0))if(u=0,j(e[(e[a>>2]|0)+40>>2]|0,a|0)|0,_=u,u=0,_&1){g0=23;break i}else{a=g;continue}else{e[n>>2]=s+1,a=g;continue}}if(S|0&&(e[d2>>2]|0)!=(D|0)){if((D|0)==(e[B0>>2]|0)){if(u=0,c0(13,d2|0,S2|0,B0|0),_=u,u=0,_&1){g0=24;break i}D=e[S2>>2]|0}_=D+4|0,e[S2>>2]=_,e[D>>2]=S,D=_}if(g=e[x0>>2]|0,(g|0)>0){S=e[r>>2]|0;do if(S){if((e[S+12>>2]|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}if((S|0)==-1){e[r>>2]=0,S=0;break}else{S=e[r>>2]|0;break}}}else S=0;while(0);S=(S|0)==0;do if(s){if((e[s+12>>2]|0)==(e[s+16>>2]|0)){if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,_=u,u=0,_&1){g0=24;break i}if((a|0)==-1){e[t>>2]=0,g0=193;break}}if(!S){g0=198;break i}}else g0=193;while(0);if((g0|0)==193)if(g0=0,S){g0=198;break i}else s=0;if(S=e[r>>2]|0,a=e[S+12>>2]|0,(a|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}}else S=z[a>>0]|0;if((S&255)<<24>>24!=(m[pe>>0]|0)){g0=198;break i}if(S=e[r>>2]|0,a=S+12|0,n=e[a>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,_=u,u=0,_&1){g0=24;break i}}else e[a>>2]=n+1;if((g|0)>0)for(o=s,n=s,v=g;;){S=e[r>>2]|0;do if(S){if((e[S+12>>2]|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,_=u,u=0,_&1){g0=22;break i}if((S|0)==-1){e[r>>2]=0,S=0;break}else{S=e[r>>2]|0;break}}}else S=0;while(0);a=(S|0)==0;do if(n){if((e[n+12>>2]|0)!=(e[n+16>>2]|0))if(a){S=o,g=n;break}else{g0=222;break i}if(u=0,S=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,_=u,u=0,_&1){g0=22;break i}if((S|0)!=-1)if(a^(o|0)==0){S=o,g=o;break}else{g0=222;break i}else{e[t>>2]=0,S=0,g0=215;break}}else S=o,g0=215;while(0);if((g0|0)==215)if(g0=0,a){g0=222;break i}else g=0;if(a=e[r>>2]|0,n=e[a+12>>2]|0,(n|0)==(e[a+16>>2]|0)){if(u=0,a=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,_=u,u=0,_&1){g0=22;break i}}else a=z[n>>0]|0;if((a&255)<<24>>24<=-1){g0=222;break i}if(!(R[(e[$>>2]|0)+(a<<24>>24<<1)>>1]&2048)){g0=222;break i}if((e[h>>2]|0)==(e[N0>>2]|0)&&(u=0,c0(12,c|0,h|0,N0|0),_=u,u=0,_&1)){g0=22;break i}if(a=e[r>>2]|0,n=e[a+12>>2]|0,(n|0)==(e[a+16>>2]|0)){if(u=0,a=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,_=u,u=0,_&1){g0=22;break i}}else a=z[n>>0]|0;if(n=e[h>>2]|0,e[h>>2]=n+1,m[n>>0]=a,a=v,v=v+-1|0,e[x0>>2]=v,n=e[r>>2]|0,s=n+12|0,o=e[s>>2]|0,(o|0)==(e[n+16>>2]|0)){if(u=0,j(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,_=u,u=0,_&1){g0=22;break i}}else e[s>>2]=o+1;if((a|0)<=1)break;o=S,n=g}}if((e[h>>2]|0)==(e[c>>2]|0)){g0=233;break i}break}default:}while(0);r:do if((g0|0)==42)for(;;){g0=0,a=e[r>>2]|0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,a=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,_=u,u=0,_&1){g0=20;break i}if((a|0)==-1){e[r>>2]=0,a=0;break}else{a=e[r>>2]|0;break}}}else a=0;while(0);n=(a|0)==0;do if(s){if((e[s+12>>2]|0)!=(e[s+16>>2]|0))if(n){o=S;break}else break r;if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,_=u,u=0,_&1){g0=20;break i}if((a|0)!=-1)if(n^(S|0)==0){o=S,s=S;break}else break r;else{e[t>>2]=0,S=0,g0=54;break}}else g0=54;while(0);if((g0|0)==54){if(g0=0,n)break r;o=S,s=0}if(S=e[r>>2]|0,a=e[S+12>>2]|0,(a|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,_=u,u=0,_&1){g0=20;break i}}else S=z[a>>0]|0;if((S&255)<<24>>24<=-1||!(R[(e[$>>2]|0)+(S<<24>>24<<1)>>1]&8192))break r;if(S=e[r>>2]|0,a=S+12|0,n=e[a>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,g0=u,u=0,g0&1){g0=20;break i}}else e[a>>2]=n+1,S=z[n>>0]|0;if(u=0,e0(67,Ze|0,S&255|0),g0=u,u=0,g0&1){g0=20;break i}else S=o,g0=42}while(0);if(y=y+1|0,y>>>0>=4){g0=235;break}}i:switch(g0|0){case 20:{a=L()|0;break e}case 21:{a=L()|0;break e}case 22:{a=L()|0;break e}case 23:{a=L()|0;break e}case 24:{a=L()|0;break e}case 40:{e[f>>2]=e[f>>2]|4,a=0;break}case 104:{e[f>>2]=e[f>>2]|4,a=0;break}case 143:{e[f>>2]=e[f>>2]|4,a=0;break}case 198:{e[f>>2]=e[f>>2]|4,a=0;break}case 222:{e[f>>2]=e[f>>2]|4,a=0;break}case 233:{e[f>>2]=e[f>>2]|4,a=0;break}case 235:{r:do if(k){o=k+1|0,g=k+8|0,v=k+4|0,n=1;t:for(;;){if(S=m[k>>0]|0,S&1?S=e[v>>2]|0:S=(S&255)>>>1,n>>>0>=S>>>0)break r;S=e[r>>2]|0;do if(S){if((e[S+12>>2]|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,h=u,u=0,h&1){g0=19;break t}if((S|0)==-1){e[r>>2]=0,S=0;break}else{S=e[r>>2]|0;break}}}else S=0;while(0);a=(S|0)==0,S=e[t>>2]|0;do if(S){if((e[S+12>>2]|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,h=u,u=0,h&1){g0=19;break t}if((S|0)==-1){e[t>>2]=0,g0=253;break}}if(!a){g0=260;break t}}else g0=253;while(0);if((g0|0)==253&&(g0=0,a)){g0=260;break}if(S=e[r>>2]|0,a=e[S+12>>2]|0,(a|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,h=u,u=0,h&1){g0=19;break}}else S=z[a>>0]|0;if(m[k>>0]&1?a=e[g>>2]|0:a=o,(S&255)<<24>>24!=(m[a+n>>0]|0)){g0=260;break}if(S=n+1|0,a=e[r>>2]|0,n=a+12|0,s=e[n>>2]|0,(s|0)==(e[a+16>>2]|0))if(u=0,j(e[(e[a>>2]|0)+40>>2]|0,a|0)|0,h=u,u=0,h&1){g0=19;break}else{n=S;continue}else{e[n>>2]=s+1,n=S;continue}}if((g0|0)==19){a=L()|0;break e}else if((g0|0)==260){e[f>>2]=e[f>>2]|4,a=0;break i}}while(0);S=e[d2>>2]|0,(S|0)!=(D|0)&&(e[G0>>2]=0,O2(ce,S,D,G0),(e[G0>>2]|0)!=0)?(e[f>>2]=e[f>>2]|4,a=0):a=1;break}}return H(Ze),H(We),H(Qe),H(v2),H(ce),S=e[d2>>2]|0,e[d2>>2]=0,S|0&&(u=0,I0(e[U1>>2]|0,S|0),d2=u,u=0,d2&1)&&(d2=L(0)|0,ne(d2)),C=s2,a|0}while(0);return H(Ze),H(We),H(Qe),H(v2),H(ce),S=e[d2>>2]|0,e[d2>>2]=0,S|0&&(u=0,I0(e[U1>>2]|0,S|0),d2=u,u=0,d2&1)&&(d2=L(0)|0,ne(d2)),U(a|0),0}function hr(r){r=r|0;var t=0;t=H0(8)|0,u=0,e0(90,t|0,r|0),r=u,u=0,r&1?(r=L()|0,z0(t|0),U(r|0)):me(t|0,616,80)}function kc(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;if(y=C,C=C+144|0,a=y+24|0,r=y+32|0,w=y+16|0,D=y+8|0,g=y+4|0,v=y+28|0,c=y,e[w>>2]=r,x=w+4|0,e[x>>2]=189,h=r+100|0,u=0,_=j(68,o|0)|0,S=u,u=0,S&1)a=L()|0,e[w>>2]=0,O=36;else{e[g>>2]=_,u=0,S=p0(37,g|0,44220)|0,r=u,u=0;e:do if(!(r&1)&&(m[v>>0]=0,I=e[n>>2]|0,e[c>>2]=I,k=e[o+4>>2]|0,E=I,u=0,e[a>>2]=e[c>>2],k=lr(1,t|0,a|0,s|0,g|0,k|0,f|0,v|0,S|0,w|0,D|0,h|0)|0,o=u,u=0,!(o&1))){if(k){if(m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),m[v>>0]|0&&(u=0,r=p0(e[(e[S>>2]|0)+28>>2]|0,S|0,45)|0,o=u,u=0,o&1||(u=0,e0(67,l|0,r|0),o=u,u=0,o&1))||(u=0,c=p0(e[(e[S>>2]|0)+28>>2]|0,S|0,48)|0,o=u,u=0,o&1))break;r=e[w>>2]|0,h=e[D>>2]|0,a=h+-1|0;i:do if(r>>>0>>0)do{if((m[r>>0]|0)!=c<<24>>24)break i;r=r+1|0}while(r>>>0>>0);while(0);if(u=0,ie(32,l|0,r|0,h|0)|0,l=u,u=0,l&1)break}r=e[t>>2]|0;do if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,r=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1)break e;if((r|0)==-1){e[t>>2]=0,r=0;break}else{r=e[t>>2]|0;break}}}else r=0;while(0);a=(r|0)==0;do if(I){if((e[E+12>>2]|0)==(e[E+16>>2]|0)){if(u=0,r=j(e[(e[I>>2]|0)+36>>2]|0,E|0)|0,E=u,u=0,E&1)break e;if((r|0)==-1){e[n>>2]=0,O=29;break}}a||(O=30)}else O=29;while(0);return(O|0)==29&&a&&(O=30),(O|0)==30&&(e[f>>2]=e[f>>2]|2),a=e[t>>2]|0,se(_)|0,r=e[w>>2]|0,e[w>>2]=0,r|0&&(u=0,I0(e[x>>2]|0,r|0),x=u,u=0,x&1)&&(x=L(0)|0,ne(x)),C=y,a|0}while(0);a=L()|0,se(_)|0,r=e[w>>2]|0,e[w>>2]=0,r?O=36:d=a}return(O|0)==36&&(u=0,I0(e[x>>2]|0,r|0),x=u,u=0,x&1?(x=L(0)|0,ne(x)):d=a),U(d|0),0}function wc(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0;var S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0;O=C,C=C+112|0,S=O+100|0,g=O+88|0,v=O+76|0,k=O+64|0,D=O+52|0,I=O+48|0,E=O+36|0,_=O+24|0,y=O+12|0,w=O;do if(r)if(r=E2(t,43828)|0,_e[e[(e[r>>2]|0)+44>>2]&127](S,r),w=e[S>>2]|0,m[n>>0]=w,m[n+1>>0]=w>>8,m[n+2>>0]=w>>16,m[n+3>>0]=w>>24,_e[e[(e[r>>2]|0)+32>>2]&127](g,r),m[c>>0]&1?(m[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(m[c+1>>0]=0,m[c>>0]=0),u=0,e0(91,c|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[c>>2]=e[g>>2],e[c+4>>2]=e[g+4>>2],e[c+8>>2]=e[g+8>>2],e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,H(g),_e[e[(e[r>>2]|0)+28>>2]&127](v,r),m[a>>0]&1?(m[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(m[a+1>>0]=0,m[a>>0]=0),u=0,e0(91,a|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[a>>2]=e[v>>2],e[a+4>>2]=e[v+4>>2],e[a+8>>2]=e[v+8>>2],e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,H(v),a=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,m[s>>0]=a,a=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,m[o>>0]=a,_e[e[(e[r>>2]|0)+20>>2]&127](k,r),m[f>>0]&1?(m[e[f+8>>2]>>0]=0,e[f+4>>2]=0):(m[f+1>>0]=0,m[f>>0]=0),u=0,e0(91,f|0,0),o=u,u=0,o&1&&(o=L(0)|0,ne(o)),e[f>>2]=e[k>>2],e[f+4>>2]=e[k+4>>2],e[f+8>>2]=e[k+8>>2],e[k>>2]=0,e[k+4>>2]=0,e[k+8>>2]=0,H(k),_e[e[(e[r>>2]|0)+24>>2]&127](D,r),m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),u=0,e0(91,l|0,0),o=u,u=0,o&1)o=L(0)|0,ne(o);else{e[l>>2]=e[D>>2],e[l+4>>2]=e[D+4>>2],e[l+8>>2]=e[D+8>>2],e[D>>2]=0,e[D+4>>2]=0,e[D+8>>2]=0,H(D),d=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}else if(r=E2(t,43764)|0,_e[e[(e[r>>2]|0)+44>>2]&127](I,r),I=e[I>>2]|0,m[n>>0]=I,m[n+1>>0]=I>>8,m[n+2>>0]=I>>16,m[n+3>>0]=I>>24,_e[e[(e[r>>2]|0)+32>>2]&127](E,r),m[c>>0]&1?(m[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(m[c+1>>0]=0,m[c>>0]=0),u=0,e0(91,c|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[c>>2]=e[E>>2],e[c+4>>2]=e[E+4>>2],e[c+8>>2]=e[E+8>>2],e[E>>2]=0,e[E+4>>2]=0,e[E+8>>2]=0,H(E),_e[e[(e[r>>2]|0)+28>>2]&127](_,r),m[a>>0]&1?(m[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(m[a+1>>0]=0,m[a>>0]=0),u=0,e0(91,a|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[a>>2]=e[_>>2],e[a+4>>2]=e[_+4>>2],e[a+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,H(_),a=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,m[s>>0]=a,a=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,m[o>>0]=a,_e[e[(e[r>>2]|0)+20>>2]&127](y,r),m[f>>0]&1?(m[e[f+8>>2]>>0]=0,e[f+4>>2]=0):(m[f+1>>0]=0,m[f>>0]=0),u=0,e0(91,f|0,0),o=u,u=0,o&1&&(o=L(0)|0,ne(o)),e[f>>2]=e[y>>2],e[f+4>>2]=e[y+4>>2],e[f+8>>2]=e[y+8>>2],e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,H(y),_e[e[(e[r>>2]|0)+24>>2]&127](w,r),m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),u=0,e0(91,l|0,0),o=u,u=0,o&1)o=L(0)|0,ne(o);else{e[l>>2]=e[w>>2],e[l+4>>2]=e[w+4>>2],e[l+8>>2]=e[w+8>>2],e[w>>2]=0,e[w+4>>2]=0,e[w+8>>2]=0,H(w),d=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}while(0);e[h>>2]=d,C=O}function O2(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0;o=m[r>>0]|0,l=r+4|0,f=e[l>>2]|0;e:do if((o&1?f:(o&255)>>>1)|0){if((t|0)!=(n|0)){if(o=n+-4|0,o>>>0>t>>>0){f=t;do a=e[f>>2]|0,e[f>>2]=e[o>>2],e[o>>2]=a,f=f+4|0,o=o+-4|0;while(f>>>0>>0)}o=m[r>>0]|0,f=e[l>>2]|0}a=(o&1)==0,l=a?r+1|0:e[r+8>>2]|0,n=n+-4|0,r=l+(a?(o&255)>>>1:f)|0,f=m[l>>0]|0,o=f<<24>>24<1|f<<24>>24==127;i:do if(n>>>0>t>>>0){for(;!(!o&&(f<<24>>24|0)!=(e[t>>2]|0));)if(l=(r-l|0)>1?l+1|0:l,t=t+4|0,f=m[l>>0]|0,o=f<<24>>24<1|f<<24>>24==127,t>>>0>=n>>>0)break i;e[s>>2]=4;break e}while(0);!o&&((e[n>>2]|0)+-1|0)>>>0>=f<<24>>24>>>0&&(e[s>>2]=4)}while(0)}function dc(r){r=r|0}function Cc(r){r=r|0,V(r)}function yc(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;if(N=C,C=C+576|0,w=N+424|0,x=N,r=N+24|0,B=N+16|0,d=N+12|0,q=N+8|0,g=N+464|0,c=N+4|0,O=N+468|0,e[B>>2]=r,r0=B+4|0,e[r0>>2]=189,h=r+400|0,u=0,a=j(68,o|0)|0,y=u,u=0,y&1)c=L()|0,e[B>>2]=0,a=189,$=47;else{e[q>>2]=a,u=0,r=p0(37,q|0,44212)|0,y=u,u=0;e:do if(!(y&1)&&(m[g>>0]=0,e[c>>2]=e[n>>2],S=e[o+4>>2]|0,u=0,e[w>>2]=e[c>>2],S=lr(2,t|0,w|0,s|0,q|0,S|0,f|0,g|0,r|0,B|0,d|0,h|0)|0,y=u,u=0,!(y&1))){i:do if(S){if(u=0,qe(e[(e[r>>2]|0)+48>>2]|0,r|0,59007,59017,w|0)|0,y=u,u=0,y&1){$=10;break e}c=e[d>>2]|0,h=e[B>>2]|0,r=c-h|0,(r|0)>392?(r=g2((r>>2)+2|0)|0,a=r,r?$=13:(u=0,i2(6),y=u,u=0,y&1||(r=0,$=13))):(a=0,r=O,$=13);do if(($|0)==13){if(m[g>>0]|0&&(m[r>>0]=45,r=r+1|0),_=w+40|0,y=w,h>>>0>>0){S=w+4|0,s=S+4|0,o=s+4|0,g=o+4|0,v=g+4|0,k=v+4|0,D=k+4|0,I=D+4|0,E=I+4|0;do{c=e[h>>2]|0;do if((e[w>>2]|0)!=(c|0))if((e[S>>2]|0)!=(c|0))if((e[s>>2]|0)!=(c|0))if((e[o>>2]|0)!=(c|0))if((e[g>>2]|0)==(c|0))c=g;else{if((e[v>>2]|0)==(c|0)){c=v;break}if((e[k>>2]|0)==(c|0)){c=k;break}if((e[D>>2]|0)==(c|0)){c=D;break}if((e[I>>2]|0)==(c|0)){c=I;break}c=(e[E>>2]|0)==(c|0)?E:_}else c=o;else c=s;else c=S;else c=w;while(0);m[r>>0]=m[59007+(c-y>>2)>>0]|0,h=h+4|0,r=r+1|0}while(h>>>0<(e[d>>2]|0)>>>0)}if(m[r>>0]=0,e[x>>2]=l,(Mf(O,58987,x)|0)!=1&&(u=0,I0(190,58991),l=u,u=0,l&1))break;a&&Pe(a);break i}while(0);if(r=L()|0,!a){c=r,a=B;break e}Pe(a),c=r,a=B;break e}while(0);r=e[t>>2]|0;do if(r){if(a=e[r+12>>2]|0,(a|0)==(e[r+16>>2]|0)){if(u=0,r=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){$=10;break e}}else r=e[a>>2]|0;if((r|0)==-1){e[t>>2]=0,c=1;break}else{c=(e[t>>2]|0)==0;break}}else c=1;while(0);r=e[n>>2]|0;do if(r){if(a=e[r+12>>2]|0,(a|0)==(e[r+16>>2]|0)){if(u=0,r=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1){$=10;break e}}else r=e[a>>2]|0;if((r|0)!=-1){if(c)break;$=40;break}else{e[n>>2]=0,$=38;break}}else $=38;while(0);return($|0)==38&&c&&($=40),($|0)==40&&(e[f>>2]=e[f>>2]|2),a=e[t>>2]|0,se(e[q>>2]|0)|0,r=e[B>>2]|0,e[B>>2]=0,r|0&&(u=0,I0(e[r0>>2]|0,r|0),$=u,u=0,$&1)&&($=L(0)|0,ne($)),C=N,a|0}else $=10;while(0);($|0)==10&&(c=L()|0,a=B),se(e[q>>2]|0)|0,r=e[a>>2]|0,e[a>>2]=0,r?(a=e[r0>>2]|0,$=47):n0=c}return($|0)==47&&(u=0,I0(a|0,r|0),$=u,u=0,$&1?($=L(0)|0,ne($)):n0=c),U(n0|0),0}function Ac(r,t,n,s,o,f,l,a,c,h,S){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0;var g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0,B0=0,S2=0,p2=0,t2=0,g0=0,G0=0,ce=0,We=0,Qe=0,Ze=0;We=C,C=C+512|0,le=We+96|0,g=We+104|0,Ze=We+88|0,N0=We+80|0,fe=We+76|0,pe=We+504|0,Fe=We+72|0,x0=We+68|0,p2=We+56|0,ce=We+44|0,g0=We+32|0,t2=We+20|0,G0=We+8|0,Ie=We+4|0,S2=We,e[le>>2]=S,e[Ze>>2]=g,Qe=Ze+4|0,e[Qe>>2]=189,e[N0>>2]=g,e[fe>>2]=g+400,e[p2>>2]=0,e[p2+4>>2]=0,e[p2+8>>2]=0,e[ce>>2]=0,e[ce+4>>2]=0,e[ce+8>>2]=0,e[g0>>2]=0,e[g0+4>>2]=0,e[g0+8>>2]=0,e[t2>>2]=0,e[t2+4>>2]=0,e[t2+8>>2]=0,e[G0>>2]=0,e[G0+4>>2]=0,e[G0+8>>2]=0,u=0,Si(2,n|0,s|0,pe|0,Fe|0,x0|0,p2|0,ce|0,g0|0,t2|0,Ie|0),ve=u,u=0;e:do if(ve&1)n=L()|0;else{e[h>>2]=e[c>>2],r0=g0+4|0,$=t2+4|0,A0=t2+8|0,ve=g0+8|0,d=(o&512|0)!=0,O=ce+8|0,x=ce+4|0,N=G0+4|0,q=G0+8|0,B=pe+3|0,n0=p2+4|0,w=0,k=0;i:for(;;){S=e[r>>2]|0;do if(S){if(n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,y=u,u=0,y&1){B0=26;break i}}else S=e[n>>2]|0;if((S|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);n=e[t>>2]|0;do if(n){if(S=e[n+12>>2]|0,(S|0)==(e[n+16>>2]|0)){if(u=0,S=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,y=u,u=0,y&1){B0=26;break i}}else S=e[S>>2]|0;if((S|0)!=-1)if(s){y=n;break}else{D=g,B0=244;break i}else{e[t>>2]=0,B0=16;break}}else B0=16;while(0);if((B0|0)==16)if(B0=0,s){D=g,B0=244;break}else y=0;r:do switch(m[pe+w>>0]|0){case 1:{if((w|0)!=3){if(S=e[r>>2]|0,n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,B0=u,u=0,B0&1){B0=26;break i}}else S=e[n>>2]|0;if(u=0,S=ie(e[(e[a>>2]|0)+12>>2]|0,a|0,8192,S|0)|0,B0=u,u=0,B0&1){B0=26;break i}if(!S){B0=42;break i}if(S=e[r>>2]|0,n=S+12|0,s=e[n>>2]|0,(s|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,B0=u,u=0,B0&1){B0=26;break i}}else e[n>>2]=s+4,S=e[s>>2]|0;if(u=0,e0(92,G0|0,S|0),B0=u,u=0,B0&1){B0=26;break i}else S=y,o=y,B0=44}else S=g;break}case 0:{(w|0)==3?S=g:(S=y,o=y,B0=44);break}case 3:{if(n=m[g0>>0]|0,S=n&1?e[r0>>2]|0:(n&255)>>>1,s=m[t2>>0]|0,o=s&1?e[$>>2]|0:(s&255)>>>1,(S|0)==(0-o|0))S=g;else{if(!S){if(S=e[r>>2]|0,n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,y=u,u=0,y&1){B0=26;break i}n=m[t2>>0]|0}else S=e[n>>2]|0,n=s;if((S|0)!=(e[(n&1?e[A0>>2]|0:$)>>2]|0)){S=g;break r}if(S=e[r>>2]|0,n=S+12|0,s=e[n>>2]|0,(s|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,y=u,u=0,y&1){B0=26;break i}}else e[n>>2]=s+4;m[l>>0]=1,y=m[t2>>0]|0,S=g,k=(y&1?e[$>>2]|0:(y&255)>>>1)>>>0>1?t2:k;break r}if(v=e[r>>2]|0,D=e[v+12>>2]|0,s=e[v+16>>2]|0,S=(D|0)==(s|0),!o){if(S){if(u=0,S=j(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,y=u,u=0,y&1){B0=26;break i}n=m[g0>>0]|0}else S=e[D>>2]|0;if((S|0)!=(e[(n&1?e[ve>>2]|0:r0)>>2]|0)){m[l>>0]=1,S=g;break r}if(S=e[r>>2]|0,n=S+12|0,s=e[n>>2]|0,(s|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,y=u,u=0,y&1){B0=26;break i}}else e[n>>2]=s+4;y=m[g0>>0]|0,S=g,k=(y&1?e[r0>>2]|0:(y&255)>>>1)>>>0>1?g0:k;break r}if(S){if(u=0,S=j(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,y=u,u=0,y&1){B0=26;break i}s=e[r>>2]|0,n=m[g0>>0]|0,v=s,D=e[s+12>>2]|0,s=e[s+16>>2]|0}else S=e[D>>2]|0;if(o=v+12|0,s=(D|0)==(s|0),(S|0)==(e[(n&1?e[ve>>2]|0:r0)>>2]|0)){if(s){if(u=0,j(e[(e[v>>2]|0)+40>>2]|0,v|0)|0,y=u,u=0,y&1){B0=26;break i}}else e[o>>2]=D+4;y=m[g0>>0]|0,S=g,k=(y&1?e[r0>>2]|0:(y&255)>>>1)>>>0>1?g0:k;break r}if(s){if(u=0,S=j(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,y=u,u=0,y&1){B0=26;break i}}else S=e[D>>2]|0;if((S|0)!=(e[(m[t2>>0]&1?e[A0>>2]|0:$)>>2]|0)){B0=107;break i}if(S=e[r>>2]|0,n=S+12|0,s=e[n>>2]|0,(s|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,y=u,u=0,y&1){B0=26;break i}}else e[n>>2]=s+4;m[l>>0]=1,y=m[t2>>0]|0,S=g,k=(y&1?e[$>>2]|0:(y&255)>>>1)>>>0>1?t2:k}break}case 2:{if(!(w>>>0<2|(k|0)!=0)&&!(d|(w|0)==2&(m[B>>0]|0)!=0)){S=g,k=0;break r}o=m[ce>>0]|0,s=e[O>>2]|0,n=o&1?s:x,S=n;t:do if(w|0&&(z[pe+(w+-1)>>0]|0)<2){_=(o&1)==0;n:do if((n|0)!=((_?x:s)+((_?(o&255)>>>1:e[x>>2]|0)<<2)|0)){for(o=n;;){if(u=0,n=ie(e[(e[a>>2]|0)+12>>2]|0,a|0,8192,e[o>>2]|0)|0,_=u,u=0,_&1){B0=23;break i}if(!n)break;if(o=o+4|0,S=o,n=m[ce>>0]|0,s=e[O>>2]|0,_=(n&1)==0,(o|0)==((_?x:s)+((_?(n&255)>>>1:e[x>>2]|0)<<2)|0)){o=n;break n}}o=m[ce>>0]|0,s=e[O>>2]|0}while(0);if(D=o&1?s:x,n=D,I=S-n>>2,E=m[G0>>0]|0,v=(E&1)==0,E=v?(E&255)>>>1:e[N>>2]|0,E>>>0>=I>>>0)if(v=v?N:e[q>>2]|0,_=v+(E<<2)|0,!I)n=S;else for(v=v+(E-I<<2)|0;;){if((e[v>>2]|0)!=(e[D>>2]|0))break t;if(v=v+4|0,(v|0)==(_|0)){n=S;break}else D=D+4|0}}else n=S;while(0);S=(o&1)==0,S=(S?x:s)+((S?(o&255)>>>1:e[x>>2]|0)<<2)|0;t:do if((n|0)!=(S|0))for(v=y,o=y,S=n;;){n=e[r>>2]|0;do if(n){if(s=e[n+12>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,y=u,u=0,y&1){B0=22;break i}}else n=e[s>>2]|0;if((n|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);do if(o){if(n=e[o+12>>2]|0,(n|0)==(e[o+16>>2]|0)){if(u=0,n=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,y=u,u=0,y&1){B0=22;break i}}else n=e[n>>2]|0;if((n|0)!=-1)if(s^(v|0)==0){n=v,D=v;break}else break t;else{e[t>>2]=0,n=0,B0=136;break}}else n=v,B0=136;while(0);if((B0|0)==136){if(B0=0,s)break t;D=0}if(s=e[r>>2]|0,o=e[s+12>>2]|0,(o|0)==(e[s+16>>2]|0)){if(u=0,s=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,y=u,u=0,y&1){B0=22;break i}}else s=e[o>>2]|0;if((s|0)!=(e[S>>2]|0))break t;if(s=e[r>>2]|0,o=s+12|0,v=e[o>>2]|0,(v|0)==(e[s+16>>2]|0)){if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,y=u,u=0,y&1){B0=22;break i}}else e[o>>2]=v+4;if(S=S+4|0,s=m[ce>>0]|0,y=(s&1)==0,s=(y?x:e[O>>2]|0)+((y?(s&255)>>>1:e[x>>2]|0)<<2)|0,(S|0)==(s|0)){S=s;break}else v=n,o=D}while(0);if(d&&(y=m[ce>>0]|0,_=(y&1)==0,(S|0)!=((_?x:e[O>>2]|0)+((_?(y&255)>>>1:e[x>>2]|0)<<2)|0))){B0=148;break i}else S=g;break}case 4:{E=e[x0>>2]|0,I=y,v=y,S=g,n=0;t:for(;;){s=e[r>>2]|0;do if(s){if(o=e[s+12>>2]|0,(o|0)==(e[s+16>>2]|0)){if(u=0,s=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,y=u,u=0,y&1){B0=25;break i}}else s=e[o>>2]|0;if((s|0)==-1){e[r>>2]=0,o=1;break}else{o=(e[r>>2]|0)==0;break}}else o=1;while(0);do if(v){if(s=e[v+12>>2]|0,(s|0)==(e[v+16>>2]|0)){if(u=0,s=j(e[(e[v>>2]|0)+36>>2]|0,v|0)|0,y=u,u=0,y&1){B0=25;break i}}else s=e[s>>2]|0;if((s|0)!=-1)if(o^(I|0)==0){s=I,D=I;break}else{g=I;break t}else{e[t>>2]=0,s=0,B0=162;break}}else s=I,B0=162;while(0);if((B0|0)==162)if(B0=0,o){g=s;break}else D=0;if(o=e[r>>2]|0,g=e[o+12>>2]|0,(g|0)==(e[o+16>>2]|0)){if(u=0,o=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,y=u,u=0,y&1){B0=25;break i}}else o=e[g>>2]|0;if(u=0,g=ie(e[(e[a>>2]|0)+12>>2]|0,a|0,2048,o|0)|0,y=u,u=0,y&1){B0=25;break i}if(g){if(g=e[h>>2]|0,(g|0)==(e[le>>2]|0)){if(u=0,c0(14,c|0,h|0,le|0),y=u,u=0,y&1){B0=25;break i}g=e[h>>2]|0}e[h>>2]=g+4,e[g>>2]=o,n=n+1|0}else{if(y=m[p2>>0]|0,!((o|0)==(E|0)&(n|0?((y&1?e[n0>>2]|0:(y&255)>>>1)|0)!=0:0))){g=s;break}if((S|0)==(e[fe>>2]|0)){if(u=0,c0(13,Ze|0,N0|0,fe|0),y=u,u=0,y&1){B0=25;break i}S=e[N0>>2]|0}y=S+4|0,e[N0>>2]=y,e[S>>2]=n,S=y,n=0}if(o=e[r>>2]|0,g=o+12|0,v=e[g>>2]|0,(v|0)==(e[o+16>>2]|0))if(u=0,j(e[(e[o>>2]|0)+40>>2]|0,o|0)|0,y=u,u=0,y&1){B0=25;break i}else{I=s,v=D;continue}else{e[g>>2]=v+4,I=s,v=D;continue}}if(n|0&&(e[Ze>>2]|0)!=(S|0)){if((S|0)==(e[fe>>2]|0)){if(u=0,c0(13,Ze|0,N0|0,fe|0),y=u,u=0,y&1){B0=26;break i}S=e[N0>>2]|0}y=S+4|0,e[N0>>2]=y,e[S>>2]=n,S=y}if(D=e[Ie>>2]|0,(D|0)>0){n=e[r>>2]|0;do if(n){if(s=e[n+12>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,y=u,u=0,y&1){B0=26;break i}}else n=e[s>>2]|0;if((n|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);do if(g){if(n=e[g+12>>2]|0,(n|0)==(e[g+16>>2]|0)){if(u=0,n=j(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,y=u,u=0,y&1){B0=26;break i}}else n=e[n>>2]|0;if((n|0)!=-1){if(s)break;B0=206;break i}else{e[t>>2]=0,B0=200;break}}else B0=200;while(0);if((B0|0)==200)if(B0=0,s){B0=206;break i}else g=0;if(n=e[r>>2]|0,s=e[n+12>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,y=u,u=0,y&1){B0=26;break i}}else n=e[s>>2]|0;if((n|0)!=(e[Fe>>2]|0)){B0=206;break i}if(n=e[r>>2]|0,s=n+12|0,o=e[s>>2]|0,(o|0)==(e[n+16>>2]|0)){if(u=0,j(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,y=u,u=0,y&1){B0=26;break i}}else e[s>>2]=o+4;if((D|0)>0)for(v=g,o=g,I=D;;){n=e[r>>2]|0;do if(n){if(s=e[n+12>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,y=u,u=0,y&1){B0=24;break i}}else n=e[s>>2]|0;if((n|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);do if(o){if(n=e[o+12>>2]|0,(n|0)==(e[o+16>>2]|0)){if(u=0,n=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,y=u,u=0,y&1){B0=24;break i}}else n=e[n>>2]|0;if((n|0)!=-1)if(s^(v|0)==0){n=v,D=v;break}else{B0=231;break i}else{e[t>>2]=0,n=0,B0=224;break}}else n=v,B0=224;while(0);if((B0|0)==224)if(B0=0,s){B0=231;break i}else D=0;if(s=e[r>>2]|0,o=e[s+12>>2]|0,(o|0)==(e[s+16>>2]|0)){if(u=0,s=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,y=u,u=0,y&1){B0=24;break i}}else s=e[o>>2]|0;if(u=0,s=ie(e[(e[a>>2]|0)+12>>2]|0,a|0,2048,s|0)|0,y=u,u=0,y&1){B0=24;break i}if(!s){B0=231;break i}if((e[h>>2]|0)==(e[le>>2]|0)&&(u=0,c0(14,c|0,h|0,le|0),y=u,u=0,y&1)){B0=24;break i}if(s=e[r>>2]|0,o=e[s+12>>2]|0,(o|0)==(e[s+16>>2]|0)){if(u=0,s=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,y=u,u=0,y&1){B0=24;break i}}else s=e[o>>2]|0;if(o=e[h>>2]|0,e[h>>2]=o+4,e[o>>2]=s,s=I,I=I+-1|0,e[Ie>>2]=I,o=e[r>>2]|0,g=o+12|0,v=e[g>>2]|0,(v|0)==(e[o+16>>2]|0)){if(u=0,j(e[(e[o>>2]|0)+40>>2]|0,o|0)|0,y=u,u=0,y&1){B0=24;break i}}else e[g>>2]=v+4;if((s|0)<=1)break;v=n,o=D}}if((e[h>>2]|0)==(e[c>>2]|0)){B0=242;break i}break}default:S=g}while(0);r:do if((B0|0)==44)for(;;){B0=0,n=e[r>>2]|0;do if(n){if(s=e[n+12>>2]|0,(s|0)==(e[n+16>>2]|0)){if(u=0,n=j(e[(e[n>>2]|0)+36>>2]|0,n|0)|0,y=u,u=0,y&1){B0=21;break i}}else n=e[s>>2]|0;if((n|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);do if(o){if(n=e[o+12>>2]|0,(n|0)==(e[o+16>>2]|0)){if(u=0,n=j(e[(e[o>>2]|0)+36>>2]|0,o|0)|0,y=u,u=0,y&1){B0=21;break i}}else n=e[n>>2]|0;if((n|0)!=-1)if(s^(S|0)==0){v=S,o=S;break}else{S=g;break r}else{e[t>>2]=0,S=0,B0=57;break}}else B0=57;while(0);if((B0|0)==57)if(B0=0,s){S=g;break r}else v=S,o=0;if(S=e[r>>2]|0,n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,y=u,u=0,y&1){B0=21;break i}}else S=e[n>>2]|0;if(u=0,S=ie(e[(e[a>>2]|0)+12>>2]|0,a|0,8192,S|0)|0,y=u,u=0,y&1){B0=21;break i}if(!S){S=g;break r}if(S=e[r>>2]|0,n=S+12|0,s=e[n>>2]|0,(s|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,B0=u,u=0,B0&1){B0=21;break i}}else e[n>>2]=s+4,S=e[s>>2]|0;if(u=0,e0(92,G0|0,S|0),B0=u,u=0,B0&1){B0=21;break i}else S=v,B0=44}while(0);if(w=w+1|0,w>>>0>=4){D=S,B0=244;break}else g=S}i:switch(B0|0){case 21:{n=L()|0;break e}case 22:{n=L()|0;break e}case 23:{n=L()|0;break e}case 24:{n=L()|0;break e}case 25:{n=L()|0;break e}case 26:{n=L()|0;break e}case 42:{e[f>>2]=e[f>>2]|4,n=0;break}case 107:{e[f>>2]=e[f>>2]|4,n=0;break}case 148:{e[f>>2]=e[f>>2]|4,n=0;break}case 206:{e[f>>2]=e[f>>2]|4,n=0;break}case 231:{e[f>>2]=e[f>>2]|4,n=0;break}case 242:{e[f>>2]=e[f>>2]|4,n=0;break}case 244:{r:do if(k){g=k+4|0,v=k+8|0,o=1;t:for(;;){if(S=m[k>>0]|0,S&1?S=e[g>>2]|0:S=(S&255)>>>1,o>>>0>=S>>>0)break r;S=e[r>>2]|0;do if(S){if(n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,h=u,u=0,h&1){B0=20;break t}}else S=e[n>>2]|0;if((S|0)==-1){e[r>>2]=0,s=1;break}else{s=(e[r>>2]|0)==0;break}}else s=1;while(0);S=e[t>>2]|0;do if(S){if(n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,h=u,u=0,h&1){B0=20;break t}}else S=e[n>>2]|0;if((S|0)!=-1){if(s)break;B0=271;break t}else{e[t>>2]=0,B0=263;break}}else B0=263;while(0);if((B0|0)==263&&(B0=0,s)){B0=271;break}if(S=e[r>>2]|0,n=e[S+12>>2]|0,(n|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,h=u,u=0,h&1){B0=20;break}}else S=e[n>>2]|0;if(m[k>>0]&1?n=e[v>>2]|0:n=g,(S|0)!=(e[n+(o<<2)>>2]|0)){B0=271;break}if(S=o+1|0,n=e[r>>2]|0,s=n+12|0,o=e[s>>2]|0,(o|0)==(e[n+16>>2]|0))if(u=0,j(e[(e[n>>2]|0)+40>>2]|0,n|0)|0,h=u,u=0,h&1){B0=20;break}else{o=S;continue}else{e[s>>2]=o+4,o=S;continue}}if((B0|0)==20){n=L()|0;break e}else if((B0|0)==271){e[f>>2]=e[f>>2]|4,n=0;break i}}while(0);S=e[Ze>>2]|0,(S|0)!=(D|0)&&(e[S2>>2]=0,O2(p2,S,D,S2),(e[S2>>2]|0)!=0)?(e[f>>2]=e[f>>2]|4,n=0):n=1;break}}return b0(G0),b0(t2),b0(g0),b0(ce),H(p2),S=e[Ze>>2]|0,e[Ze>>2]=0,S|0&&(u=0,I0(e[Qe>>2]|0,S|0),Ze=u,u=0,Ze&1)&&(Ze=L(0)|0,ne(Ze)),C=We,n|0}while(0);return b0(G0),b0(t2),b0(g0),b0(ce),H(p2),S=e[Ze>>2]|0,e[Ze>>2]=0,S|0&&(u=0,I0(e[Qe>>2]|0,S|0),Ze=u,u=0,Ze&1)&&(Ze=L(0)|0,ne(Ze)),U(n|0),0}function Dc(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;if(y=C,C=C+432|0,a=y+424|0,r=y+24|0,d=y+16|0,D=y+8|0,g=y+4|0,v=y+428|0,c=y,e[d>>2]=r,x=d+4|0,e[x>>2]=189,h=r+400|0,u=0,_=j(68,o|0)|0,S=u,u=0,S&1)a=L()|0,e[d>>2]=0,O=38;else{e[g>>2]=_,u=0,S=p0(37,g|0,44212)|0,r=u,u=0;e:do if(!(r&1)&&(m[v>>0]=0,I=e[n>>2]|0,e[c>>2]=I,k=e[o+4>>2]|0,E=I,u=0,e[a>>2]=e[c>>2],k=lr(2,t|0,a|0,s|0,g|0,k|0,f|0,v|0,S|0,d|0,D|0,h|0)|0,o=u,u=0,!(o&1))){if(k){if(m[l>>0]&1?e[e[l+8>>2]>>2]=0:m[l>>0]=0,e[l+4>>2]=0,m[v>>0]|0&&(u=0,r=p0(e[(e[S>>2]|0)+44>>2]|0,S|0,45)|0,o=u,u=0,o&1||(u=0,e0(92,l|0,r|0),o=u,u=0,o&1))||(u=0,c=p0(e[(e[S>>2]|0)+44>>2]|0,S|0,48)|0,o=u,u=0,o&1))break;r=e[d>>2]|0,h=e[D>>2]|0,a=h+-4|0;i:do if(r>>>0>>0)do{if((e[r>>2]|0)!=(c|0))break i;r=r+4|0}while(r>>>0>>0);while(0);if(u=0,ie(33,l|0,r|0,h|0)|0,l=u,u=0,l&1)break}r=e[t>>2]|0;do if(r){if(a=e[r+12>>2]|0,(a|0)==(e[r+16>>2]|0)){if(u=0,r=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,l=u,u=0,l&1)break e}else r=e[a>>2]|0;if((r|0)==-1){e[t>>2]=0,a=1;break}else{a=(e[t>>2]|0)==0;break}}else a=1;while(0);do if(I){if(r=e[E+12>>2]|0,(r|0)==(e[E+16>>2]|0)){if(u=0,r=j(e[(e[I>>2]|0)+36>>2]|0,E|0)|0,E=u,u=0,E&1)break e}else r=e[r>>2]|0;if((r|0)!=-1){if(a)break;O=32;break}else{e[n>>2]=0,O=30;break}}else O=30;while(0);return(O|0)==30&&a&&(O=32),(O|0)==32&&(e[f>>2]=e[f>>2]|2),a=e[t>>2]|0,se(_)|0,r=e[d>>2]|0,e[d>>2]=0,r|0&&(u=0,I0(e[x>>2]|0,r|0),x=u,u=0,x&1)&&(x=L(0)|0,ne(x)),C=y,a|0}while(0);a=L()|0,se(_)|0,r=e[d>>2]|0,e[d>>2]=0,r?O=38:w=a}return(O|0)==38&&(u=0,I0(e[x>>2]|0,r|0),x=u,u=0,x&1?(x=L(0)|0,ne(x)):w=a),U(w|0),0}function _c(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0;var S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0;O=C,C=C+112|0,S=O+100|0,g=O+88|0,v=O+76|0,k=O+64|0,D=O+52|0,I=O+48|0,E=O+36|0,_=O+24|0,y=O+12|0,w=O;do if(r)if(r=E2(t,43956)|0,_e[e[(e[r>>2]|0)+44>>2]&127](S,r),w=e[S>>2]|0,m[n>>0]=w,m[n+1>>0]=w>>8,m[n+2>>0]=w>>16,m[n+3>>0]=w>>24,_e[e[(e[r>>2]|0)+32>>2]&127](g,r),m[c>>0]&1?e[e[c+8>>2]>>2]=0:m[c>>0]=0,e[c+4>>2]=0,u=0,e0(93,c|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[c>>2]=e[g>>2],e[c+4>>2]=e[g+4>>2],e[c+8>>2]=e[g+8>>2],e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,b0(g),_e[e[(e[r>>2]|0)+28>>2]&127](v,r),m[a>>0]&1?e[e[a+8>>2]>>2]=0:m[a>>0]=0,e[a+4>>2]=0,u=0,e0(93,a|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[a>>2]=e[v>>2],e[a+4>>2]=e[v+4>>2],e[a+8>>2]=e[v+8>>2],e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,b0(v),a=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[s>>2]=a,a=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[o>>2]=a,_e[e[(e[r>>2]|0)+20>>2]&127](k,r),m[f>>0]&1?(m[e[f+8>>2]>>0]=0,e[f+4>>2]=0):(m[f+1>>0]=0,m[f>>0]=0),u=0,e0(91,f|0,0),o=u,u=0,o&1&&(o=L(0)|0,ne(o)),e[f>>2]=e[k>>2],e[f+4>>2]=e[k+4>>2],e[f+8>>2]=e[k+8>>2],e[k>>2]=0,e[k+4>>2]=0,e[k+8>>2]=0,H(k),_e[e[(e[r>>2]|0)+24>>2]&127](D,r),m[l>>0]&1?e[e[l+8>>2]>>2]=0:m[l>>0]=0,e[l+4>>2]=0,u=0,e0(93,l|0,0),o=u,u=0,o&1)o=L(0)|0,ne(o);else{e[l>>2]=e[D>>2],e[l+4>>2]=e[D+4>>2],e[l+8>>2]=e[D+8>>2],e[D>>2]=0,e[D+4>>2]=0,e[D+8>>2]=0,b0(D),d=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}else if(r=E2(t,43892)|0,_e[e[(e[r>>2]|0)+44>>2]&127](I,r),I=e[I>>2]|0,m[n>>0]=I,m[n+1>>0]=I>>8,m[n+2>>0]=I>>16,m[n+3>>0]=I>>24,_e[e[(e[r>>2]|0)+32>>2]&127](E,r),m[c>>0]&1?e[e[c+8>>2]>>2]=0:m[c>>0]=0,e[c+4>>2]=0,u=0,e0(93,c|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[c>>2]=e[E>>2],e[c+4>>2]=e[E+4>>2],e[c+8>>2]=e[E+8>>2],e[E>>2]=0,e[E+4>>2]=0,e[E+8>>2]=0,b0(E),_e[e[(e[r>>2]|0)+28>>2]&127](_,r),m[a>>0]&1?e[e[a+8>>2]>>2]=0:m[a>>0]=0,e[a+4>>2]=0,u=0,e0(93,a|0,0),n=u,u=0,n&1&&(n=L(0)|0,ne(n)),e[a>>2]=e[_>>2],e[a+4>>2]=e[_+4>>2],e[a+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,b0(_),a=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[s>>2]=a,a=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[o>>2]=a,_e[e[(e[r>>2]|0)+20>>2]&127](y,r),m[f>>0]&1?(m[e[f+8>>2]>>0]=0,e[f+4>>2]=0):(m[f+1>>0]=0,m[f>>0]=0),u=0,e0(91,f|0,0),o=u,u=0,o&1&&(o=L(0)|0,ne(o)),e[f>>2]=e[y>>2],e[f+4>>2]=e[y+4>>2],e[f+8>>2]=e[y+8>>2],e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,H(y),_e[e[(e[r>>2]|0)+24>>2]&127](w,r),m[l>>0]&1?e[e[l+8>>2]>>2]=0:m[l>>0]=0,e[l+4>>2]=0,u=0,e0(93,l|0,0),o=u,u=0,o&1)o=L(0)|0,ne(o);else{e[l>>2]=e[w>>2],e[l+4>>2]=e[w+4>>2],e[l+8>>2]=e[w+8>>2],e[w>>2]=0,e[w+4>>2]=0,e[w+8>>2]=0,b0(w),d=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}while(0);e[h>>2]=d,C=O}function Ic(r){r=r|0}function Pc(r){r=r|0,V(r)}function Ec(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=+f;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0;q=C,C=C+384|0,E=q+8|0,l=q,c=q+284|0,h=q+72|0,a=q+184|0,n0=q+68|0,O=q+80|0,y=q+77|0,x=q+76|0,r0=q+56|0,A0=q+44|0,$=q+32|0,S=q+28|0,I=q+84|0,d=q+24|0,w=q+20|0,_=q+16|0,e[h>>2]=c,t0[E>>3]=f,c=Of(c,100,59018,E)|0;do if(c>>>0>99)if(u=0,r=de(3)|0,N=u,u=0,!(N&1)&&(u=0,t0[l>>3]=f,k=qe(17,h|0,r|0,59018,l|0)|0,N=u,u=0,!(N&1))){if(r=e[h>>2]|0,!r){if(u=0,i2(6),N=u,u=0,N&1){r=0,l=0,N=7;break}r=e[h>>2]|0}a=g2(k)|0,l=a,a?(D=a,N=10):(u=0,i2(6),N=u,u=0,N&1?N=7:(D=0,N=10))}else r=0,l=0,N=7;else l=0,r=0,D=a,k=c,N=10;while(0);if((N|0)==10)if(u=0,a=j(68,s|0)|0,v=u,u=0,v&1)N=7;else{if(e[n0>>2]=a,u=0,v=p0(37,n0|0,44220)|0,g=u,u=0,!(g&1)&&(g=e[h>>2]|0,u=0,qe(e[(e[v>>2]|0)+32>>2]|0,v|0,g|0,g+k|0,D|0)|0,g=u,u=0,!(g&1))){if(k?g=(m[e[h>>2]>>0]|0)==45:g=0,e[r0>>2]=0,e[r0+4>>2]=0,e[r0+8>>2]=0,e[A0>>2]=0,e[A0+4>>2]=0,e[A0+8>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,u=0,Si(3,n|0,g|0,n0|0,O|0,y|0,x|0,r0|0,A0|0,$|0,S|0),n=u,u=0,n&1)c=L()|0;else{if(S=e[S>>2]|0,(k|0)>(S|0)?(n=m[$>>0]|0,c=m[A0>>0]|0,c=(k-S<<1|1)+S+(n&1?e[$+4>>2]|0:(n&255)>>>1)+(c&1?e[A0+4>>2]|0:(c&255)>>>1)|0):(n=m[$>>0]|0,c=m[A0>>0]|0,c=S+2+(n&1?e[$+4>>2]|0:(n&255)>>>1)+(c&1?e[A0+4>>2]|0:(c&255)>>>1)|0),c>>>0>100?(c=g2(c)|0,h=c,c?N=26:(u=0,i2(6),I=u,u=0,I&1||(c=0,N=26))):(h=0,c=I,N=26),(N|0)==26&&(u=0,ur(1,c|0,d|0,w|0,e[s+4>>2]|0,D|0,D+k|0,v|0,g|0,O|0,m[y>>0]|0,m[x>>0]|0,r0|0,A0|0,$|0,S|0),x=u,u=0,!(x&1)&&(e[_>>2]=e[t>>2],t=e[d>>2]|0,B=e[w>>2]|0,u=0,e[E>>2]=e[_>>2],B=R1(39,E|0,c|0,t|0,B|0,s|0,o|0)|0,t=u,u=0,!(t&1))))return h&&(Pe(h),a=e[n0>>2]|0),H($),H(A0),H(r0),se(a)|0,l&&Pe(l),r&&Pe(r),C=q,B|0;c=L()|0,h&&(Pe(h),a=e[n0>>2]|0)}H($),H(A0),H(r0)}else c=L()|0;se(a)|0}return(N|0)==7&&(c=L()|0),l&&Pe(l),r&&Pe(r),U(c|0),0}function Lc(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0;var S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;B=C,C=C+112|0,v=B+108|0,k=B+96|0,E=B+92|0,_=B+80|0,y=B+68|0,w=B+56|0,d=B+52|0,O=B+40|0,x=B+36|0,N=B+24|0,D=B+12|0,I=B;do if(r){r=E2(n,43828)|0,n=e[r>>2]|0;do if(t)if(_e[e[n+44>>2]&127](v,r),t=e[v>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+32>>2]&127](k,r),m[c>>0]&1?(m[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(m[c+1>>0]=0,m[c>>0]=0),u=0,e0(91,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[k>>2],e[c+4>>2]=e[k+4>>2],e[c+8>>2]=e[k+8>>2],e[k>>2]=0,e[k+4>>2]=0,e[k+8>>2]=0,H(k),g=r;break}else if(_e[e[n+40>>2]&127](E,r),t=e[E>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+28>>2]&127](_,r),m[c>>0]&1?(m[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(m[c+1>>0]=0,m[c>>0]=0),u=0,e0(91,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[_>>2],e[c+4>>2]=e[_+4>>2],e[c+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,H(_),g=r;break}while(0);if(c=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,m[o>>0]=c,c=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,m[f>>0]=c,_e[e[(e[g>>2]|0)+20>>2]&127](y,r),m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),u=0,e0(91,l|0,0),f=u,u=0,f&1&&(f=L(0)|0,ne(f)),e[l>>2]=e[y>>2],e[l+4>>2]=e[y+4>>2],e[l+8>>2]=e[y+8>>2],e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,H(y),_e[e[(e[g>>2]|0)+24>>2]&127](w,r),m[a>>0]&1?(m[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(m[a+1>>0]=0,m[a>>0]=0),u=0,e0(91,a|0,0),f=u,u=0,f&1)f=L(0)|0,ne(f);else{e[a>>2]=e[w>>2],e[a+4>>2]=e[w+4>>2],e[a+8>>2]=e[w+8>>2],e[w>>2]=0,e[w+4>>2]=0,e[w+8>>2]=0,H(w),q=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}else{r=E2(n,43764)|0,n=e[r>>2]|0;do if(t)if(_e[e[n+44>>2]&127](d,r),t=e[d>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+32>>2]&127](O,r),m[c>>0]&1?(m[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(m[c+1>>0]=0,m[c>>0]=0),u=0,e0(91,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[O>>2],e[c+4>>2]=e[O+4>>2],e[c+8>>2]=e[O+8>>2],e[O>>2]=0,e[O+4>>2]=0,e[O+8>>2]=0,H(O),S=r;break}else if(_e[e[n+40>>2]&127](x,r),t=e[x>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+28>>2]&127](N,r),m[c>>0]&1?(m[e[c+8>>2]>>0]=0,e[c+4>>2]=0):(m[c+1>>0]=0,m[c>>0]=0),u=0,e0(91,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[N>>2],e[c+4>>2]=e[N+4>>2],e[c+8>>2]=e[N+8>>2],e[N>>2]=0,e[N+4>>2]=0,e[N+8>>2]=0,H(N),S=r;break}while(0);if(c=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,m[o>>0]=c,c=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,m[f>>0]=c,_e[e[(e[S>>2]|0)+20>>2]&127](D,r),m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),u=0,e0(91,l|0,0),f=u,u=0,f&1&&(f=L(0)|0,ne(f)),e[l>>2]=e[D>>2],e[l+4>>2]=e[D+4>>2],e[l+8>>2]=e[D+8>>2],e[D>>2]=0,e[D+4>>2]=0,e[D+8>>2]=0,H(D),_e[e[(e[S>>2]|0)+24>>2]&127](I,r),m[a>>0]&1?(m[e[a+8>>2]>>0]=0,e[a+4>>2]=0):(m[a+1>>0]=0,m[a>>0]=0),u=0,e0(91,a|0,0),f=u,u=0,f&1)f=L(0)|0,ne(f);else{e[a>>2]=e[I>>2],e[a+4>>2]=e[I+4>>2],e[a+8>>2]=e[I+8>>2],e[I>>2]=0,e[I+4>>2]=0,e[I+8>>2]=0,H(I),q=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}while(0);e[h>>2]=q,C=B}function Fc(r,t,n,s,o,f,l,a,c,h,S,g,v,k,D){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0,v=v|0,k=k|0,D=D|0;var I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0,B0=0;e[n>>2]=r,pe=k+4|0,x0=k+8|0,B0=k+1|0,ve=v+4|0,le=(s&512|0)==0,Fe=v+8|0,Ie=v+1|0,fe=l+8|0,N0=(D|0)>0,N=g+4|0,q=g+8|0,B=g+1|0,n0=D+1|0,$=-2-D-((D|0)<0?~D:-1)|0,A0=(D|0)>0,x=0;do{switch(m[c+x>>0]|0){case 0:{e[t>>2]=e[n>>2];break}case 1:{e[t>>2]=e[n>>2],d=M2[e[(e[l>>2]|0)+28>>2]&63](l,32)|0,O=e[n>>2]|0,e[n>>2]=O+1,m[O>>0]=d;break}case 3:{O=m[k>>0]|0,I=(O&1)==0,(I?(O&255)>>>1:e[pe>>2]|0)|0&&(d=m[(I?B0:e[x0>>2]|0)>>0]|0,O=e[n>>2]|0,e[n>>2]=O+1,m[O>>0]=d);break}case 2:{if(_=m[v>>0]|0,I=(_&1)==0,_=I?(_&255)>>>1:e[ve>>2]|0,!(le|(_|0)==0)){if(E=I?Ie:e[Fe>>2]|0,y=E+_|0,I=e[n>>2]|0,_)do m[I>>0]=m[E>>0]|0,E=E+1|0,I=I+1|0;while((E|0)!=(y|0));e[n>>2]=I}break}case 4:{I=e[n>>2]|0,o=a?o+1|0:o,w=o,y=e[fe>>2]|0;e:do if(o>>>0>>0){E=o;do{if(_=m[E>>0]|0,_<<24>>24<=-1||!(R[y+(_<<24>>24<<1)>>1]&2048))break e;E=E+1|0}while(E>>>0>>0)}else E=o;while(0);if(_=E,N0){if(d=-2-_-~(_>>>0>w>>>0?w:_)|0,d=$>>>0>d>>>0?$:d,E>>>0>o>>>0&A0)for(_=E,w=D;_=_+-1|0,O=m[_>>0]|0,y=e[n>>2]|0,e[n>>2]=y+1,m[y>>0]=O,y=(w|0)>1,_>>>0>o>>>0&y;)w=w+-1|0;else y=A0;if(O=n0+d|0,_=E+(d+1)|0,y?w=M2[e[(e[l>>2]|0)+28>>2]&63](l,48)|0:w=0,E=e[n>>2]|0,e[n>>2]=E+1,(O|0)>0)for(y=O;m[E>>0]=w,E=e[n>>2]|0,e[n>>2]=E+1,(y|0)>1;)y=y+-1|0;m[E>>0]=h}else _=E;if((_|0)!=(o|0)){if(O=m[g>>0]|0,E=(O&1)==0,(E?(O&255)>>>1:e[N>>2]|0)|0?E=m[(E?B:e[q>>2]|0)>>0]|0:E=-1,(_|0)!=(o|0))for(y=0,w=0;(w|0)==(E|0)&&(O=e[n>>2]|0,e[n>>2]=O+1,m[O>>0]=S,y=y+1|0,O=m[g>>0]|0,E=(O&1)==0,y>>>0<(E?(O&255)>>>1:e[N>>2]|0)>>>0?(E=m[(E?B:e[q>>2]|0)+y>>0]|0,E=E<<24>>24==127?-1:E<<24>>24,w=0):(E=w,w=0)),_=_+-1|0,d=m[_>>0]|0,O=e[n>>2]|0,e[n>>2]=O+1,m[O>>0]=d,(_|0)!=(o|0);)w=w+1|0}else d=M2[e[(e[l>>2]|0)+28>>2]&63](l,48)|0,O=e[n>>2]|0,e[n>>2]=O+1,m[O>>0]=d;if(E=e[n>>2]|0,(I|0)!=(E|0)&&(r0=E+-1|0,I>>>0>>0)){E=r0;do O=m[I>>0]|0,m[I>>0]=m[E>>0]|0,m[E>>0]=O,I=I+1|0,E=E+-1|0;while(I>>>0>>0)}break}default:}x=x+1|0}while((x|0)!=4);if(E=m[k>>0]|0,o=(E&1)==0,E=o?(E&255)>>>1:e[pe>>2]|0,E>>>0>1){if(I=o?B0:e[x0>>2]|0,_=I+E|0,o=e[n>>2]|0,(E|0)!=1){I=I+1|0;do m[o>>0]=m[I>>0]|0,o=o+1|0,I=I+1|0;while((I|0)!=(_|0))}e[n>>2]=o}switch(s&176|0){case 32:{e[t>>2]=e[n>>2];break}case 16:break;default:e[t>>2]=r}}function Rc(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;O=C,C=C+176|0,k=O+56|0,N=O+52|0,w=O+64|0,E=O+61|0,d=O+60|0,q=O+40|0,n0=O+28|0,B=O+16|0,h=O+12|0,v=O+68|0,y=O+8|0,_=O+4|0,D=O,r=Je(s)|0,e[N>>2]=r,u=0,I=p0(37,N|0,44220)|0,g=u,u=0;do if(g&1)r0=13;else{if(S=m[f>>0]|0,l=(S&1)==0,g=f+4|0,!((l?(S&255)>>>1:e[g>>2]|0)|0))S=0;else{if(l=m[(l?f+1|0:e[f+8>>2]|0)>>0]|0,u=0,a=p0(e[(e[I>>2]|0)+28>>2]|0,I|0,45)|0,S=u,u=0,S&1){r0=13;break}S=l<<24>>24==a<<24>>24}if(e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,e[n0>>2]=0,e[n0+4>>2]=0,e[n0+8>>2]=0,e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,u=0,Si(3,n|0,S|0,N|0,w|0,E|0,d|0,q|0,n0|0,B|0,h|0),c=u,u=0,c&1)l=L()|0;else{if(c=m[f>>0]|0,n=e[g>>2]|0,l=c&1?n:(c&255)>>>1,h=e[h>>2]|0,(l|0)>(h|0)?($=m[B>>0]|0,a=m[n0>>0]|0,l=(l-h<<1|1)+h+($&1?e[B+4>>2]|0:($&255)>>>1)+(a&1?e[n0+4>>2]|0:(a&255)>>>1)|0):($=m[B>>0]|0,l=m[n0>>0]|0,l=h+2+($&1?e[B+4>>2]|0:($&255)>>>1)+(l&1?e[n0+4>>2]|0:(l&255)>>>1)|0),l>>>0>100?(l=g2(l)|0,a=l,l?r0=17:(u=0,i2(6),$=u,u=0,$&1||(c=m[f>>0]|0,n=e[g>>2]|0,l=0,r0=17))):(a=0,l=v,r0=17),(r0|0)==17&&($=(c&1)==0,f=$?f+1|0:e[f+8>>2]|0,u=0,ur(1,l|0,y|0,_|0,e[s+4>>2]|0,f|0,f+($?(c&255)>>>1:n)|0,I|0,S|0,w|0,m[E>>0]|0,m[d>>0]|0,q|0,n0|0,B|0,h|0),$=u,u=0,!($&1)&&(e[D>>2]=e[t>>2],$=e[y>>2]|0,x=e[_>>2]|0,u=0,e[k>>2]=e[D>>2],x=R1(39,k|0,l|0,$|0,x|0,s|0,o|0)|0,$=u,u=0,!($&1))))return a&&(Pe(a),r=e[N>>2]|0),H(B),H(n0),H(q),se(r)|0,C=O,x|0;l=L()|0,a&&(Pe(a),r=e[N>>2]|0)}H(B),H(n0),H(q)}while(0);return(r0|0)==13&&(l=L()|0),se(r)|0,U(l|0),0}function Oc(r){r=r|0}function Mc(r){r=r|0,V(r)}function xc(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=+f;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0;q=C,C=C+992|0,E=q+8|0,l=q,c=q+888|0,h=q+880|0,a=q+480|0,n0=q+76|0,O=q+884|0,y=q+72|0,x=q+68|0,r0=q+56|0,A0=q+44|0,$=q+32|0,S=q+28|0,I=q+80|0,d=q+24|0,w=q+20|0,_=q+16|0,e[h>>2]=c,t0[E>>3]=f,c=Of(c,100,59018,E)|0;do if(c>>>0>99)if(u=0,r=de(3)|0,N=u,u=0,!(N&1)&&(u=0,t0[l>>3]=f,k=qe(17,h|0,r|0,59018,l|0)|0,N=u,u=0,!(N&1))){if(r=e[h>>2]|0,!r){if(u=0,i2(6),N=u,u=0,N&1){r=0,l=0,N=7;break}r=e[h>>2]|0}a=g2(k<<2)|0,l=a,a?(D=a,N=10):(u=0,i2(6),N=u,u=0,N&1?N=7:(D=0,N=10))}else r=0,l=0,N=7;else l=0,r=0,D=a,k=c,N=10;while(0);if((N|0)==10)if(u=0,a=j(68,s|0)|0,v=u,u=0,v&1)N=7;else{if(e[n0>>2]=a,u=0,v=p0(37,n0|0,44212)|0,g=u,u=0,!(g&1)&&(g=e[h>>2]|0,u=0,qe(e[(e[v>>2]|0)+48>>2]|0,v|0,g|0,g+k|0,D|0)|0,g=u,u=0,!(g&1))){if(k?g=(m[e[h>>2]>>0]|0)==45:g=0,e[r0>>2]=0,e[r0+4>>2]=0,e[r0+8>>2]=0,e[A0>>2]=0,e[A0+4>>2]=0,e[A0+8>>2]=0,e[$>>2]=0,e[$+4>>2]=0,e[$+8>>2]=0,u=0,Si(4,n|0,g|0,n0|0,O|0,y|0,x|0,r0|0,A0|0,$|0,S|0),n=u,u=0,n&1)c=L()|0;else{if(S=e[S>>2]|0,(k|0)>(S|0)?(n=m[$>>0]|0,c=m[A0>>0]|0,c=(k-S<<1|1)+S+(n&1?e[$+4>>2]|0:(n&255)>>>1)+(c&1?e[A0+4>>2]|0:(c&255)>>>1)|0):(n=m[$>>0]|0,c=m[A0>>0]|0,c=S+2+(n&1?e[$+4>>2]|0:(n&255)>>>1)+(c&1?e[A0+4>>2]|0:(c&255)>>>1)|0),c>>>0>100?(c=g2(c<<2)|0,h=c,c?N=26:(u=0,i2(6),I=u,u=0,I&1||(c=0,N=26))):(h=0,c=I,N=26),(N|0)==26&&(u=0,ur(2,c|0,d|0,w|0,e[s+4>>2]|0,D|0,D+(k<<2)|0,v|0,g|0,O|0,e[y>>2]|0,e[x>>2]|0,r0|0,A0|0,$|0,S|0),x=u,u=0,!(x&1)&&(e[_>>2]=e[t>>2],t=e[d>>2]|0,B=e[w>>2]|0,u=0,e[E>>2]=e[_>>2],B=R1(40,E|0,c|0,t|0,B|0,s|0,o|0)|0,t=u,u=0,!(t&1))))return h&&(Pe(h),a=e[n0>>2]|0),b0($),b0(A0),H(r0),se(a)|0,l&&Pe(l),r&&Pe(r),C=q,B|0;c=L()|0,h&&(Pe(h),a=e[n0>>2]|0)}b0($),b0(A0),H(r0)}else c=L()|0;se(a)|0}return(N|0)==7&&(c=L()|0),l&&Pe(l),r&&Pe(r),U(c|0),0}function qc(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0;var S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0;N=C,C=C+112|0,S=N+108|0,g=N+96|0,D=N+92|0,I=N+80|0,E=N+68|0,_=N+56|0,y=N+52|0,w=N+40|0,d=N+36|0,O=N+24|0,v=N+12|0,k=N;do if(r){r=E2(n,43956)|0,n=e[r>>2]|0;do if(t)if(_e[e[n+44>>2]&127](S,r),t=e[S>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+32>>2]&127](g,r),m[c>>0]&1?e[e[c+8>>2]>>2]=0:m[c>>0]=0,e[c+4>>2]=0,u=0,e0(93,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[g>>2],e[c+4>>2]=e[g+4>>2],e[c+8>>2]=e[g+8>>2],e[g>>2]=0,e[g+4>>2]=0,e[g+8>>2]=0,b0(g);break}else if(_e[e[n+40>>2]&127](D,r),t=e[D>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+28>>2]&127](I,r),m[c>>0]&1?e[e[c+8>>2]>>2]=0:m[c>>0]=0,e[c+4>>2]=0,u=0,e0(93,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[I>>2],e[c+4>>2]=e[I+4>>2],e[c+8>>2]=e[I+8>>2],e[I>>2]=0,e[I+4>>2]=0,e[I+8>>2]=0,b0(I);break}while(0);if(c=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[o>>2]=c,c=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[f>>2]=c,_e[e[(e[r>>2]|0)+20>>2]&127](E,r),m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),u=0,e0(91,l|0,0),f=u,u=0,f&1&&(f=L(0)|0,ne(f)),e[l>>2]=e[E>>2],e[l+4>>2]=e[E+4>>2],e[l+8>>2]=e[E+8>>2],e[E>>2]=0,e[E+4>>2]=0,e[E+8>>2]=0,H(E),_e[e[(e[r>>2]|0)+24>>2]&127](_,r),m[a>>0]&1?e[e[a+8>>2]>>2]=0:m[a>>0]=0,e[a+4>>2]=0,u=0,e0(93,a|0,0),f=u,u=0,f&1)f=L(0)|0,ne(f);else{e[a>>2]=e[_>>2],e[a+4>>2]=e[_+4>>2],e[a+8>>2]=e[_+8>>2],e[_>>2]=0,e[_+4>>2]=0,e[_+8>>2]=0,b0(_),x=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}else{r=E2(n,43892)|0,n=e[r>>2]|0;do if(t)if(_e[e[n+44>>2]&127](y,r),t=e[y>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+32>>2]&127](w,r),m[c>>0]&1?e[e[c+8>>2]>>2]=0:m[c>>0]=0,e[c+4>>2]=0,u=0,e0(93,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[w>>2],e[c+4>>2]=e[w+4>>2],e[c+8>>2]=e[w+8>>2],e[w>>2]=0,e[w+4>>2]=0,e[w+8>>2]=0,b0(w);break}else if(_e[e[n+40>>2]&127](d,r),t=e[d>>2]|0,m[s>>0]=t,m[s+1>>0]=t>>8,m[s+2>>0]=t>>16,m[s+3>>0]=t>>24,_e[e[(e[r>>2]|0)+28>>2]&127](O,r),m[c>>0]&1?e[e[c+8>>2]>>2]=0:m[c>>0]=0,e[c+4>>2]=0,u=0,e0(93,c|0,0),s=u,u=0,s&1)c=L(0)|0,ne(c);else{e[c>>2]=e[O>>2],e[c+4>>2]=e[O+4>>2],e[c+8>>2]=e[O+8>>2],e[O>>2]=0,e[O+4>>2]=0,e[O+8>>2]=0,b0(O);break}while(0);if(c=X0[e[(e[r>>2]|0)+12>>2]&127](r)|0,e[o>>2]=c,c=X0[e[(e[r>>2]|0)+16>>2]&127](r)|0,e[f>>2]=c,_e[e[(e[r>>2]|0)+20>>2]&127](v,r),m[l>>0]&1?(m[e[l+8>>2]>>0]=0,e[l+4>>2]=0):(m[l+1>>0]=0,m[l>>0]=0),u=0,e0(91,l|0,0),f=u,u=0,f&1&&(f=L(0)|0,ne(f)),e[l>>2]=e[v>>2],e[l+4>>2]=e[v+4>>2],e[l+8>>2]=e[v+8>>2],e[v>>2]=0,e[v+4>>2]=0,e[v+8>>2]=0,H(v),_e[e[(e[r>>2]|0)+24>>2]&127](k,r),m[a>>0]&1?e[e[a+8>>2]>>2]=0:m[a>>0]=0,e[a+4>>2]=0,u=0,e0(93,a|0,0),f=u,u=0,f&1)f=L(0)|0,ne(f);else{e[a>>2]=e[k>>2],e[a+4>>2]=e[k+4>>2],e[a+8>>2]=e[k+8>>2],e[k>>2]=0,e[k+4>>2]=0,e[k+8>>2]=0,b0(k),x=X0[e[(e[r>>2]|0)+36>>2]&127](r)|0;break}}while(0);e[h>>2]=x,C=N}function Nc(r,t,n,s,o,f,l,a,c,h,S,g,v,k,D){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0,v=v|0,k=k|0,D=D|0;var I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0;e[n>>2]=r,Ie=k+4|0,fe=k+8|0,n0=v+4|0,r0=(s&512|0)==0,$=v+8|0,A0=(D|0)>0,ve=g+4|0,le=g+8|0,Fe=g+1|0,q=(D|0)>0,N=0;do{switch(m[c+N>>0]|0){case 0:{e[t>>2]=e[n>>2];break}case 1:{e[t>>2]=e[n>>2],O=M2[e[(e[l>>2]|0)+44>>2]&63](l,32)|0,x=e[n>>2]|0,e[n>>2]=x+4,e[x>>2]=O;break}case 3:{x=m[k>>0]|0,I=(x&1)==0,(I?(x&255)>>>1:e[Ie>>2]|0)|0&&(O=e[(I?Ie:e[fe>>2]|0)>>2]|0,x=e[n>>2]|0,e[n>>2]=x+4,e[x>>2]=O);break}case 2:{if(w=m[v>>0]|0,I=(w&1)==0,w=I?(w&255)>>>1:e[n0>>2]|0,!(r0|(w|0)==0)){if(I=I?n0:e[$>>2]|0,_=I+(w<<2)|0,y=e[n>>2]|0,w)for(E=y;e[E>>2]=e[I>>2],I=I+4|0,(I|0)!=(_|0);)E=E+4|0;e[n>>2]=y+(w<<2)}break}case 4:{I=e[n>>2]|0,o=a?o+4|0:o;e:do if(o>>>0>>0){E=o;do{if(!(ge[e[(e[l>>2]|0)+12>>2]&63](l,2048,e[E>>2]|0)|0))break e;E=E+4|0}while(E>>>0>>0)}else E=o;while(0);if(A0){if(E>>>0>o>>>0&q){for(w=e[n>>2]|0,y=D;;)if(E=E+-4|0,_=w+4|0,e[w>>2]=e[E>>2],d=y+-1|0,y=(y|0)>1,E>>>0>o>>>0&y)w=_,y=d;else{w=d;break}e[n>>2]=_,_=w}else y=q,_=D;if(y?d=M2[e[(e[l>>2]|0)+44>>2]&63](l,48)|0:d=0,O=e[n>>2]|0,y=_+((_|0)<0?~_:-1)|0,(_|0)>0)for(w=O;e[w>>2]=d,(_|0)>1;)w=w+4|0,_=_+-1|0;e[n>>2]=O+(y+2<<2),e[O+(y+1<<2)>>2]=h}if((E|0)==(o|0))O=M2[e[(e[l>>2]|0)+44>>2]&63](l,48)|0,x=e[n>>2]|0,E=x+4|0,e[n>>2]=E,e[x>>2]=O;else{if(O=m[g>>0]|0,_=(O&1)==0,x=e[ve>>2]|0,(_?(O&255)>>>1:x)|0?_=m[(_?Fe:e[le>>2]|0)>>0]|0:_=-1,(E|0)!=(o|0))for(d=0,O=0;y=e[n>>2]|0,(O|0)==(_|0)?(w=y+4|0,e[n>>2]=w,e[y>>2]=S,d=d+1|0,y=m[g>>0]|0,_=(y&1)==0,d>>>0<(_?(y&255)>>>1:x)>>>0?(_=m[(_?Fe:e[le>>2]|0)+d>>0]|0,y=w,_=_<<24>>24==127?-1:_<<24>>24,w=0):(y=w,_=O,w=0)):w=O,E=E+-4|0,O=e[E>>2]|0,e[n>>2]=y+4,e[y>>2]=O,(E|0)!=(o|0);)O=w+1|0;E=e[n>>2]|0}if((I|0)!=(E|0)&&(B=E+-4|0,I>>>0>>0)){E=B;do x=e[I>>2]|0,e[I>>2]=e[E>>2],e[E>>2]=x,I=I+4|0,E=E+-4|0;while(I>>>0>>0)}break}default:}N=N+1|0}while((N|0)!=4);if(I=m[k>>0]|0,o=(I&1)==0,I=o?(I&255)>>>1:e[Ie>>2]|0,I>>>0>1){if(E=o?Ie:e[fe>>2]|0,o=E+4|0,E=E+(I<<2)|0,_=e[n>>2]|0,y=E-o|0,(I|0)!=1)for(I=_;e[I>>2]=e[o>>2],o=o+4|0,(o|0)!=(E|0);)I=I+4|0;e[n>>2]=_+(y>>>2<<2)}switch(s&176|0){case 32:{e[t>>2]=e[n>>2];break}case 16:break;default:e[t>>2]=r}}function Uc(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;O=C,C=C+480|0,v=O+468|0,N=O+464|0,w=O+472|0,E=O+56|0,d=O+52|0,q=O+40|0,n0=O+28|0,B=O+16|0,h=O+12|0,g=O+64|0,y=O+8|0,_=O+4|0,k=O,r=Je(s)|0,e[N>>2]=r,u=0,D=p0(37,N|0,44212)|0,I=u,u=0;do if(I&1)r0=13;else{if(S=m[f>>0]|0,l=(S&1)==0,I=f+4|0,!((l?(S&255)>>>1:e[I>>2]|0)|0))S=0;else{if(l=e[(l?I:e[f+8>>2]|0)>>2]|0,u=0,a=p0(e[(e[D>>2]|0)+44>>2]|0,D|0,45)|0,S=u,u=0,S&1){r0=13;break}S=(l|0)==(a|0)}if(e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,e[n0>>2]=0,e[n0+4>>2]=0,e[n0+8>>2]=0,e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,u=0,Si(4,n|0,S|0,N|0,w|0,E|0,d|0,q|0,n0|0,B|0,h|0),c=u,u=0,c&1)l=L()|0;else{if(c=m[f>>0]|0,n=e[I>>2]|0,l=c&1?n:(c&255)>>>1,h=e[h>>2]|0,(l|0)>(h|0)?($=m[B>>0]|0,a=m[n0>>0]|0,l=(l-h<<1|1)+h+($&1?e[B+4>>2]|0:($&255)>>>1)+(a&1?e[n0+4>>2]|0:(a&255)>>>1)|0):($=m[B>>0]|0,l=m[n0>>0]|0,l=h+2+($&1?e[B+4>>2]|0:($&255)>>>1)+(l&1?e[n0+4>>2]|0:(l&255)>>>1)|0),l>>>0>100?(l=g2(l<<2)|0,a=l,l?r0=17:(u=0,i2(6),$=u,u=0,$&1||(c=m[f>>0]|0,n=e[I>>2]|0,l=0,r0=17))):(a=0,l=g,r0=17),(r0|0)==17&&($=(c&1)==0,f=$?I:e[f+8>>2]|0,u=0,ur(2,l|0,y|0,_|0,e[s+4>>2]|0,f|0,f+(($?(c&255)>>>1:n)<<2)|0,D|0,S|0,w|0,e[E>>2]|0,e[d>>2]|0,q|0,n0|0,B|0,h|0),$=u,u=0,!($&1)&&(e[k>>2]=e[t>>2],$=e[y>>2]|0,x=e[_>>2]|0,u=0,e[v>>2]=e[k>>2],x=R1(40,v|0,l|0,$|0,x|0,s|0,o|0)|0,$=u,u=0,!($&1))))return a&&(Pe(a),r=e[N>>2]|0),b0(B),b0(n0),H(q),se(r)|0,C=O,x|0;l=L()|0,a&&(Pe(a),r=e[N>>2]|0)}b0(B),b0(n0),H(q)}while(0);return(r0|0)==13&&(l=L()|0),se(r)|0,U(l|0),0}function Bc(r){r=r|0}function Qc(r){r=r|0,V(r)}function Gc(r,t,n){return r=r|0,t=t|0,n=n|0,r=Cf(m[t>>0]&1?e[t+8>>2]|0:t+1|0,1)|0,r>>>((r|0)!=-1&1)|0}function Vc(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0;a=C,C=C+16|0,c=a,e[c>>2]=0,e[c+4>>2]=0,e[c+8>>2]=0,l=m[f>>0]|0,h=(l&1)==0,t=h?f+1|0:e[f+8>>2]|0,l=h?(l&255)>>>1:e[f+4>>2]|0,f=t+l|0;e:do if((l|0)>0){for(;u=0,e0(67,c|0,m[t>>0]|0),h=u,u=0,!(h&1);)if(t=t+1|0,t>>>0>=f>>>0){l=4;break e}t=L()|0,l=7}else l=4;while(0);e:do if((l|0)==4){if(u=0,t=qe(19,((n|0)==-1?-1:n<<1)|0,s|0,o|0,(m[c>>0]&1?e[c+8>>2]|0:c+1|0)|0)|0,h=u,u=0,h&1){t=L()|0,l=7;break}e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,h=fi(t)|0,f=t+h|0;i:do if((h|0)>0){for(;u=0,e0(67,r|0,m[t>>0]|0),h=u,u=0,!(h&1);)if(t=t+1|0,t>>>0>=f>>>0)break i;t=L()|0,H(r);break e}while(0);H(c),C=a;return}while(0);H(c),U(t|0)}function Hc(r,t){r=r|0,t=t|0}function zc(r){r=r|0}function Yc(r){r=r|0,V(r)}function Xc(r,t,n){return r=r|0,t=t|0,n=n|0,r=Cf(m[t>>0]&1?e[t+8>>2]|0:t+1|0,1)|0,r>>>((r|0)!=-1&1)|0}function jc(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;y=C,C=C+224|0,g=y+184|0,S=y+192|0,h=y+180|0,v=y+176|0,E=y+168|0,I=y+40|0,D=y+32|0,_=y+28|0,w=y+16|0,c=y+8|0,k=y,e[w>>2]=0,e[w+4>>2]=0,e[w+8>>2]=0,e[c+4>>2]=0,e[c>>2]=44696,a=m[f>>0]|0,d=(a&1)==0,l=f+4|0,t=d?l:e[f+8>>2]|0,f=d?(a&255)>>>1:e[l>>2]|0,l=t+(f<<2)|0,a=S+32|0;e:do if((f|0)>0){i:for(;;){if(e[v>>2]=t,u=0,f=xs(e[(e[c>>2]|0)+12>>2]|0,c|0,g|0,t|0,l|0,v|0,S|0,a|0,h|0)|0,d=u,u=0,d&1){f=12;break}if((f|0)==2||(e[v>>2]|0)==(t|0)){f=5;break}if(S>>>0<(e[h>>2]|0)>>>0){t=S;do{if(u=0,e0(67,w|0,m[t>>0]|0),d=u,u=0,d&1){f=11;break i}t=t+1|0}while(t>>>0<(e[h>>2]|0)>>>0)}if(t=e[v>>2]|0,!((f|0)!=2&t>>>0>>0)){f=9;break e}}(f|0)==5?(u=0,I0(190,58955),u=0,t=L()|0):((f|0)==11||(f|0)==12)&&(t=L()|0)}else f=9;while(0);e:do if((f|0)==9){if(u=0,t=qe(19,((n|0)==-1?-1:n<<1)|0,s|0,o|0,(m[w>>0]&1?e[w+8>>2]|0:w+1|0)|0)|0,d=u,u=0,d&1){t=L()|0;break}e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[k+4>>2]=0,e[k>>2]=44744,d=fi(t)|0,l=t+d|0,a=l,c=I+128|0;i:do if((d|0)>0){r:for(;;){if(e[_>>2]=t,u=0,f=xs(e[(e[k>>2]|0)+16>>2]|0,k|0,E|0,t|0,((a-t|0)>32?t+32|0:l)|0,_|0,I|0,c|0,D|0)|0,d=u,u=0,d&1){f=24;break}if((f|0)==2||(e[_>>2]|0)==(t|0)){f=18;break}if(I>>>0<(e[D>>2]|0)>>>0){t=I;do{if(u=0,e0(92,r|0,e[t>>2]|0),d=u,u=0,d&1){f=23;break r}t=t+4|0}while(t>>>0<(e[D>>2]|0)>>>0)}if(t=e[_>>2]|0,!((f|0)!=2&t>>>0>>0))break i}(f|0)==18?(u=0,I0(190,58955),u=0,t=L()|0):((f|0)==23||(f|0)==24)&&(t=L()|0),b0(r);break e}while(0);H(w),C=y;return}while(0);H(w),U(t|0)}function Wc(r,t){r=r|0,t=t|0}function Jc(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0;if(e[r+4>>2]=t+-1,e[r>>2]=44196,f=r+8|0,u=0,e0(94,f|0,28),o=u,u=0,o&1)t=L()|0;else{if(o=r+144|0,u=0,c0(5,o|0,58885,1),s=u,u=0,s&1)t=L()|0;else{if(n=e[f>>2]|0,s=r+12|0,t=e[s>>2]|0,(t|0)!=(n|0)){do t=t+-4|0;while((t|0)!=(n|0));e[s>>2]=t}e[495]=0,e[494]=43124,u=0,e0(95,r|0,1976),s=u,u=0;do if(!(s&1)&&(e[497]=0,e[496]=43164,u=0,e0(96,r|0,1984),s=u,u=0,!(s&1))&&(e[499]=0,e[498]=44236,e[500]=0,m[2004]=0,s=Xi()|0,e[500]=s,u=0,e0(97,r|0,1992),s=u,u=0,!(s&1))&&(e[503]=0,e[502]=44484,u=0,e0(98,r|0,2008),s=u,u=0,!(s&1))&&(e[505]=0,e[504]=44552,u=0,e0(99,r|0,2016),s=u,u=0,!(s&1))&&(u=0,e0(100,2024,1),s=u,u=0,!(s&1))&&(u=0,e0(101,r|0,2024),s=u,u=0,!(s&1))&&(e[511]=0,e[510]=44600,u=0,e0(102,r|0,2040),s=u,u=0,!(s&1))&&(e[513]=0,e[512]=44648,u=0,e0(103,r|0,2048),s=u,u=0,!(s&1))&&(m7(2056,1),u=0,e0(104,r|0,2056),s=u,u=0,!(s&1))&&(p7(2080,1),u=0,e0(105,r|0,2080),s=u,u=0,!(s&1))&&(e[529]=0,e[528]=43204,u=0,e0(106,r|0,2112),s=u,u=0,!(s&1))&&(e[531]=0,e[530]=43276,u=0,e0(107,r|0,2120),s=u,u=0,!(s&1))&&(e[533]=0,e[532]=43348,u=0,e0(108,r|0,2128),s=u,u=0,!(s&1))){if(e[535]=0,e[534]=43408,u=0,e0(109,r|0,2136),s=u,u=0,s&1){l=42;break}if(e[537]=0,e[536]=43716,u=0,e0(110,r|0,2144),s=u,u=0,s&1){l=42;break}if(e[539]=0,e[538]=43780,u=0,e0(111,r|0,2152),s=u,u=0,s&1){l=42;break}if(e[541]=0,e[540]=43844,u=0,e0(112,r|0,2160),s=u,u=0,s&1){l=42;break}if(e[543]=0,e[542]=43908,u=0,e0(113,r|0,2168),s=u,u=0,s&1){l=42;break}if(e[545]=0,e[544]=43972,u=0,e0(114,r|0,2176),s=u,u=0,s&1){l=42;break}if(e[547]=0,e[546]=44008,u=0,e0(115,r|0,2184),s=u,u=0,s&1){l=42;break}if(e[549]=0,e[548]=44044,u=0,e0(116,r|0,2192),s=u,u=0,s&1){l=42;break}if(e[551]=0,e[550]=44080,u=0,e0(117,r|0,2200),s=u,u=0,s&1){l=42;break}if(e[553]=0,e[552]=43468,e[554]=43516,u=0,e0(118,r|0,2208),s=u,u=0,s&1){l=42;break}if(e[557]=0,e[556]=43560,e[558]=43608,u=0,e0(119,r|0,2224),s=u,u=0,s&1){l=42;break}if(e[561]=0,e[560]=44464,u=0,t=de(3)|0,s=u,u=0,s&1){t=L()|0;break}if(e[562]=t,e[560]=43652,u=0,e0(120,r|0,2240),s=u,u=0,s&1){l=42;break}if(e[565]=0,e[564]=44464,u=0,t=de(3)|0,s=u,u=0,s&1){t=L()|0;break}if(e[566]=t,e[564]=43684,u=0,e0(121,r|0,2256),l=u,u=0,l&1){l=42;break}if(e[569]=0,e[568]=44116,u=0,e0(122,r|0,2272),l=u,u=0,l&1){l=42;break}if(e[571]=0,e[570]=44156,u=0,e0(123,r|0,2280),l=u,u=0,l&1){l=42;break}return}else l=42;while(0);(l|0)==42&&(t=L()|0),H(o)}An(f)}U(t|0)}function Kc(){var r=0;do if(!(m[2288]|0)&&j0(2288)|0)if(u=0,de(4)|0,r=u,u=0,r&1)r=L()|0,B2(2288),U(r|0);else{e[11246]=44980,W0(2288);break}while(0);return e[11246]|0}function c2(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;gr(t),o=r+8|0,s=e[o>>2]|0;do if((e[r+12>>2]|0)-s>>2>>>0<=n>>>0){if(u=0,e0(124,o|0,n+1|0),r=u,u=0,!(r&1)){s=e[o>>2]|0;break}s=L()|0,t&&se(t)|0,U(s|0)}while(0);r=e[s+(n<<2)>>2]|0,r&&(se(r)|0,s=e[o>>2]|0),e[s+(n<<2)>>2]=t}function Ro(r){r=r|0;var t=0,n=0,s=0,o=0;if(e[r>>2]=44196,s=r+8|0,o=r+12|0,t=e[s>>2]|0,(e[o>>2]|0)!=(t|0)){n=0;do t=e[t+(n<<2)>>2]|0,t&&se(t)|0,n=n+1|0,t=e[s>>2]|0;while(n>>>0<(e[o>>2]|0)-t>>2>>>0)}H(r+144|0),An(s)}function Zc(r){r=r|0,Ro(r),V(r)}function $c(r,t){return r=r|0,t=t|0,Hp(r,t)|0?e[(e[r+8>>2]|0)+(t<<2)>>2]|0:(r=H0(4)|0,Xv(r),me(r|0,640,82),0)}function bc(){return Jc(2296,1),e[11245]=2296,44980}function eS(){var r=0;return r=Kc()|0,r=e[r>>2]|0,e[11247]=r,gr(r),44988}function iS(){var r=0;do if(!(m[2456]|0)&&j0(2456)|0)if(u=0,de(5)|0,r=u,u=0,r&1)r=L()|0,B2(2456),U(r|0);else{e[11248]=44988,W0(2456);break}while(0);return e[11248]|0}function cn(r){r=r|0;var t=0,n=0;if(u=0,t=de(6)|0,n=u,u=0,n&1)n=L(0)|0,ne(n);else{n=e[t>>2]|0,e[r>>2]=n,gr(n);return}}function Yi(r,t){r=r|0,t=t|0,t=e[t>>2]|0,e[r>>2]=t,gr(t)}function y2(r){r=r|0,se(e[r>>2]|0)|0}function u2(r){r=r|0;var t=0,n=0;return n=C,C=C+16|0,t=n,(e[r>>2]|0)!=-1&&(e[t>>2]=r,e[t+4>>2]=191,e[t+8>>2]=0,Ph(r,t,192)),C=n,(e[r+4>>2]|0)+-1|0}function E2(r,t){return r=r|0,t=t|0,r=e[r>>2]|0,$c(r,u2(t)|0)|0}function rS(r){r=r|0,V(r)}function tS(r){r=r|0,r&&K0[e[(e[r>>2]|0)+4>>2]&255](r)}function nS(r){r=r|0;var t=0;t=e[11052]|0,e[11052]=t+1,e[r+4>>2]=t+1}function sS(r){r=r|0,V(r)}function oS(r,t,n){return r=r|0,t=t|0,n=n|0,n>>>0<128?(n=(Xi()|0)+(n<<1)|0,n=(R[n>>1]&t)<<16>>16!=0):n=0,n|0}function Xi(){var r=0,t=0;if(u=0,r=de(7)|0,t=u,u=0,t&1)t=L(0)|0,ne(t);else return e[r>>2]|0;return 0}function fS(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(f=(n-t|0)>>>2,(t|0)!=(n|0))for(o=t;r=e[o>>2]|0,r>>>0<128?(r=(Xi()|0)+(r<<1)|0,r=b[r>>1]|0):r=0,R[s>>1]=r,o=o+4|0,(o|0)!=(n|0);)s=s+2|0;return t+(f<<2)|0}function lS(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;e:do if((n|0)==(s|0))n=s;else for(;;){if(r=e[n>>2]|0,r>>>0<128&&(r=(Xi()|0)+(r<<1)|0,(R[r>>1]&t)<<16>>16!=0))break e;if(n=n+4|0,(n|0)==(s|0)){n=s;break}}while(0);return n|0}function uS(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;e:do if((n|0)==(s|0))n=s;else for(;;){if(r=e[n>>2]|0,r>>>0>=128||(r=(Xi()|0)+(r<<1)|0,!((R[r>>1]&t)<<16>>16)))break e;if(n=n+4|0,(n|0)==(s|0)){n=s;break}}while(0);return n|0}function aS(r,t){return r=r|0,t=t|0,t>>>0<128&&(t=(mr()|0)+(t<<2)|0,t=e[t>>2]|0),t|0}function mr(){var r=0,t=0;if(u=0,r=de(8)|0,t=u,u=0,t&1)t=L(0)|0,ne(t);else return e[r>>2]|0;return 0}function cS(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;if(o=(n-t|0)>>>2,(t|0)!=(n|0)){s=t;do r=e[s>>2]|0,r>>>0<128&&(r=(mr()|0)+(r<<2)|0,r=e[r>>2]|0),e[s>>2]=r,s=s+4|0;while((s|0)!=(n|0))}return t+(o<<2)|0}function SS(r,t){return r=r|0,t=t|0,t>>>0<128&&(t=(pr()|0)+(t<<2)|0,t=e[t>>2]|0),t|0}function pr(){var r=0,t=0;if(u=0,r=de(9)|0,t=u,u=0,t&1)t=L(0)|0,ne(t);else return e[r>>2]|0;return 0}function hS(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;if(o=(n-t|0)>>>2,(t|0)!=(n|0)){s=t;do r=e[s>>2]|0,r>>>0<128&&(r=(pr()|0)+(r<<2)|0,r=e[r>>2]|0),e[s>>2]=r,s=s+4|0;while((s|0)!=(n|0))}return t+(o<<2)|0}function mS(r,t){return r=r|0,t=t|0,t<<24>>24|0}function pS(r,t,n,s){if(r=r|0,t=t|0,n=n|0,s=s|0,(t|0)!=(n|0))for(;e[s>>2]=m[t>>0],t=t+1|0,(t|0)!=(n|0);)s=s+4|0;return n|0}function gS(r,t,n){return r=r|0,t=t|0,n=n|0,(t>>>0<128?t&255:n)|0}function vS(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;if(l=(n-t|0)>>>2,(t|0)!=(n|0))for(f=t,r=o;o=e[f>>2]|0,m[r>>0]=o>>>0<128?o&255:s,f=f+4|0,(f|0)!=(n|0);)r=r+1|0;return t+(l<<2)|0}function Oo(r){r=r|0;var t=0;e[r>>2]=44236,t=e[r+8>>2]|0,t|0&&m[r+12>>0]|0&&Nv(t)}function TS(r){r=r|0,Oo(r),V(r)}function kS(r,t){return r=r|0,t=t|0,t<<24>>24>-1&&(t=(mr()|0)+((t&255)<<2)|0,t=e[t>>2]&255),t|0}function wS(r,t,n){if(r=r|0,t=t|0,n=n|0,(t|0)!=(n|0)){r=t;do t=m[r>>0]|0,t<<24>>24>-1&&(t=(mr()|0)+(t<<24>>24<<2)|0,t=e[t>>2]&255),m[r>>0]=t,r=r+1|0;while((r|0)!=(n|0))}return n|0}function dS(r,t){return r=r|0,t=t|0,t<<24>>24>-1&&(t=(pr()|0)+(t<<24>>24<<2)|0,t=e[t>>2]&255),t|0}function CS(r,t,n){if(r=r|0,t=t|0,n=n|0,(t|0)!=(n|0)){r=t;do t=m[r>>0]|0,t<<24>>24>-1&&(t=(pr()|0)+(t<<24>>24<<2)|0,t=e[t>>2]&255),m[r>>0]=t,r=r+1|0;while((r|0)!=(n|0))}return n|0}function yS(r,t){return r=r|0,t=t|0,t|0}function AS(r,t,n,s){if(r=r|0,t=t|0,n=n|0,s=s|0,(t|0)!=(n|0))for(;m[s>>0]=m[t>>0]|0,t=t+1|0,(t|0)!=(n|0);)s=s+1|0;return n|0}function DS(r,t,n){return r=r|0,t=t|0,n=n|0,(t<<24>>24>-1?t:n)|0}function _S(r,t,n,s,o){if(r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,(t|0)!=(n|0))for(;r=m[t>>0]|0,m[o>>0]=r<<24>>24>-1?r:s,t=t+1|0,(t|0)!=(n|0);)o=o+1|0;return n|0}function IS(r){r=r|0,V(r)}function PS(r,t,n,s,o,f,l,a){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,e[o>>2]=n,e[a>>2]=f,3}function ES(r,t,n,s,o,f,l,a){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,e[o>>2]=n,e[a>>2]=f,3}function LS(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,e[o>>2]=n,3}function RS(r){return r=r|0,1}function OS(r){return r=r|0,1}function MS(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,r=s-n|0,(r>>>0>>0?r:o)|0}function xS(r){return r=r|0,1}function qS(r,t){r=r|0,t=t|0;var n=0;if(e[r+4>>2]=t+-1,e[r>>2]=44304,u=0,t=de(3)|0,n=u,u=0,n&1)n=L()|0,U(n|0);else{e[r+8>>2]=t;return}}function NS(r){r=r|0,tf(r),V(r)}function Sn(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0,B0=0,S2=0,p2=0,t2=0,g0=0,G0=0,ce=0,We=0,Qe=0,Ze=0,v2=0,s2=0,U1=0,d2=0,E1=0;E1=C,C=C+624|0,Ze=E1+24|0,s2=E1+16|0,v2=E1+588|0,g0=E1+576|0,Qe=E1,S2=E1+536|0,d2=E1+8|0,U1=E1+528|0,ve=(r|0)!=0,le=S2+40|0,B0=le,S2=S2+39|0,p2=d2+4|0,t2=g0+12|0,g0=g0+11|0,G0=v2,ce=t2,We=ce-G0|0,Fe=-2-G0|0,Ie=ce+2|0,fe=Ze+288|0,N0=v2+9|0,pe=N0,x0=v2+8|0,f=0,I=t,l=0,t=0;e:for(;;){do if((f|0)>-1)if((l|0)>(2147483647-f|0)){f=n2()|0,e[f>>2]=75,f=-1;break}else{f=l+f|0;break}while(0);if(l=m[I>>0]|0,l<<24>>24)a=I;else{A0=245;break}i:for(;;){switch(l<<24>>24){case 37:{l=a,A0=9;break i}case 0:{l=a;break i}default:}$=a+1|0,l=m[$>>0]|0,a=$}i:do if((A0|0)==9)for(;;){if(A0=0,(m[l+1>>0]|0)!=37)break i;if(a=a+1|0,l=l+2|0,(m[l>>0]|0)==37)A0=9;else break}while(0);if(_=a-I|0,ve&&!(e[r>>2]&32|0)&&F2(I,_,r)|0,(a|0)!=(I|0)){I=l,l=_;continue}S=l+1|0,a=m[S>>0]|0,c=(a<<24>>24)+-48|0,c>>>0<10?($=(m[l+2>>0]|0)==36,S=$?l+3|0:S,a=m[S>>0]|0,k=$?c:-1,t=$?1:t):k=-1,l=a<<24>>24;i:do if((l&-32|0)==32)for(c=0;;){if(!(1<>24)+-32|c,S=S+1|0,a=m[S>>0]|0,l=a<<24>>24,(l&-32|0)!=32){g=c,l=S;break}}else g=0,l=S;while(0);do if(a<<24>>24==42){if(c=l+1|0,a=(m[c>>0]|0)+-48|0,a>>>0<10&&(m[l+2>>0]|0)==36)e[o+(a<<2)>>2]=10,t=1,l=l+3|0,a=e[s+((m[c>>0]|0)+-48<<3)>>2]|0;else{if(t){f=-1;break e}if(!ve){E=g,l=c,t=0,$=0;break}t=(e[n>>2]|0)+(4-1)&~(4-1),a=e[t>>2]|0,e[n>>2]=t+4,t=0,l=c}(a|0)<0?(E=g|8192,$=0-a|0):(E=g,$=a)}else if(c=(a<<24>>24)+-48|0,c>>>0<10){a=0;do a=(a*10|0)+c|0,l=l+1|0,c=(m[l>>0]|0)+-48|0;while(c>>>0<10);if((a|0)<0){f=-1;break e}else E=g,$=a}else E=g,$=0;while(0);i:do if((m[l>>0]|0)==46){if(c=l+1|0,a=m[c>>0]|0,a<<24>>24!=42){if(S=(a<<24>>24)+-48|0,S>>>0<10)l=c,a=0;else{l=c,S=0;break}for(;;)if(a=(a*10|0)+S|0,l=l+1|0,S=(m[l>>0]|0)+-48|0,S>>>0>=10){S=a;break i}}if(c=l+2|0,a=(m[c>>0]|0)+-48|0,a>>>0<10&&(m[l+3>>0]|0)==36){e[o+(a<<2)>>2]=10,l=l+4|0,S=e[s+((m[c>>0]|0)+-48<<3)>>2]|0;break}if(t){f=-1;break e}ve?(l=(e[n>>2]|0)+(4-1)&~(4-1),S=e[l>>2]|0,e[n>>2]=l+4,l=c):(l=c,S=0)}else S=-1;while(0);for(v=0;;){if(a=(m[l>>0]|0)+-65|0,a>>>0>57){f=-1;break e}if(c=l+1|0,a=m[56223+(v*58|0)+a>>0]|0,g=a&255,(g+-1|0)>>>0<8)l=c,v=g;else{r0=c;break}}if(!(a<<24>>24)){f=-1;break}c=(k|0)>-1;do if(a<<24>>24==19)if(c){f=-1;break e}else A0=52;else{if(c){e[o+(k<<2)>>2]=g,B=s+(k<<3)|0,n0=e[B+4>>2]|0,A0=Qe,e[A0>>2]=e[B>>2],e[A0+4>>2]=n0,A0=52;break}if(!ve){f=0;break e}xo(Qe,g,n)}while(0);if((A0|0)==52&&(A0=0,!ve)){I=r0,l=_;continue}k=m[l>>0]|0,k=(v|0)!=0&(k&15|0)==3?k&-33:k,c=E&-65537,n0=E&8192|0?c:E;i:do switch(k|0){case 110:switch(v|0){case 0:{e[e[Qe>>2]>>2]=f,I=r0,l=_;continue e}case 1:{e[e[Qe>>2]>>2]=f,I=r0,l=_;continue e}case 2:{I=e[Qe>>2]|0,e[I>>2]=f,e[I+4>>2]=((f|0)<0)<<31>>31,I=r0,l=_;continue e}case 3:{R[e[Qe>>2]>>1]=f,I=r0,l=_;continue e}case 4:{m[e[Qe>>2]>>0]=f,I=r0,l=_;continue e}case 6:{e[e[Qe>>2]>>2]=f,I=r0,l=_;continue e}case 7:{I=e[Qe>>2]|0,e[I>>2]=f,e[I+4>>2]=((f|0)<0)<<31>>31,I=r0,l=_;continue e}default:{I=r0,l=_;continue e}}case 112:{v=n0|8,S=S>>>0>8?S:8,k=120,A0=64;break}case 88:case 120:{v=n0,A0=64;break}case 111:{if(c=Qe,a=e[c>>2]|0,c=e[c+4>>2]|0,(a|0)==0&(c|0)==0)l=le;else{l=le;do l=l+-1|0,m[l>>0]=a&7|48,a=z1(a|0,c|0,3)|0,c=o0;while(!((a|0)==0&(c|0)==0))}n0&8?(v=B0-l+1|0,a=n0,S=(S|0)<(v|0)?v:S,v=0,g=56703,A0=77):(a=n0,v=0,g=56703,A0=77);break}case 105:case 100:{if(a=Qe,l=e[a>>2]|0,a=e[a+4>>2]|0,(a|0)<0){l=$2(0,0,l|0,a|0)|0,a=o0,c=Qe,e[c>>2]=l,e[c+4>>2]=a,c=1,g=56703,A0=76;break i}n0&2048?(c=1,g=56704,A0=76):(g=n0&1,c=g,g=g|0?56705:56703,A0=76);break}case 117:{a=Qe,l=e[a>>2]|0,a=e[a+4>>2]|0,c=0,g=56703,A0=76;break}case 99:{m[S2>>0]=e[Qe>>2],I=S2,a=1,v=0,k=56703,l=le;break}case 109:{l=n2()|0,l=kf(e[l>>2]|0)|0,A0=82;break}case 115:{l=e[Qe>>2]|0,l=l|0?l:56713,A0=82;break}case 67:{e[d2>>2]=e[Qe>>2],e[p2>>2]=0,e[Qe>>2]=d2,S=-1,A0=86;break}case 83:{S?A0=86:(q2(r,32,$,0,n0),l=0,A0=98);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{h=+t0[Qe>>3],e[s2>>2]=0,t0[S0>>3]=h,(e[S0+4>>2]|0)>=0?n0&2048?(q=1,B=56723):(B=n0&1,q=B,B=B|0?56726:56721):(h=-h,q=1,B=56720),t0[S0>>3]=h,N=e[S0+4>>2]&2146435072;do if(N>>>0<2146435072|(N|0)==2146435072&0<0){if(D=+ET(h,s2)*2,a=D!=0,a&&(e[s2>>2]=(e[s2>>2]|0)+-1),O=k|32,(O|0)==97){I=k&32,_=I|0?B+9|0:B,E=q|2,l=12-S|0;do if(S>>>0>11|(l|0)==0)h=D;else{h=8;do l=l+-1|0,h=h*16;while(l|0);if((m[_>>0]|0)==45){h=-(h+(-D-h));break}else{h=D+h-h;break}}while(0);for(a=e[s2>>2]|0,l=(a|0)<0?0-a|0:a,l=pi(l,((l|0)<0)<<31>>31,t2)|0,(l|0)==(t2|0)&&(m[g0>>0]=48,l=g0),m[l+-1>>0]=(a>>31&2)+43,v=l+-2|0,m[v>>0]=k+15,g=(S|0)<1,c=(n0&8|0)==0,a=v2;;){B=~~h,l=a+1|0,m[a>>0]=z[56687+B>>0]|I,h=(h-+(B|0))*16;do if((l-G0|0)==1){if(c&(g&h==0))break;m[l>>0]=46,l=a+2|0}while(0);if(h==0)break;a=l}S=(S|0)!=0&(Fe+l|0)<(S|0)?Ie+S-v|0:We-v+l|0,c=S+E|0,q2(r,32,$,c,n0),e[r>>2]&32||F2(_,E,r)|0,q2(r,48,$,c,n0^65536),l=l-G0|0,e[r>>2]&32||F2(v2,l,r)|0,a=ce-v|0,q2(r,48,S-(l+a)|0,0,0),e[r>>2]&32||F2(v,a,r)|0,q2(r,32,$,c,n0^8192),l=(c|0)<($|0)?$:c;break}l=(S|0)<0?6:S,a?(a=(e[s2>>2]|0)+-28|0,e[s2>>2]=a,h=D*268435456):(h=D,a=e[s2>>2]|0),N=(a|0)<0?Ze:fe,x=N,a=N;do d=~~h>>>0,e[a>>2]=d,a=a+4|0,h=(h-+(d>>>0))*1e9;while(h!=0);if(c=a,a=e[s2>>2]|0,(a|0)>0)for(g=N;;){v=(a|0)>29?29:a,S=c+-4|0;do if(S>>>0>>0)S=g;else{a=0;do d=o2(e[S>>2]|0,0,v|0)|0,d=L2(d|0,o0|0,a|0,0)|0,a=o0,w=Dn(d|0,a|0,1e9,0)|0,e[S>>2]=w,a=Cr(d|0,a|0,1e9,0)|0,S=S+-4|0;while(S>>>0>=g>>>0);if(!a){S=g;break}S=g+-4|0,e[S>>2]=a}while(0);for(;!(c>>>0<=S>>>0);)if(a=c+-4|0,!(e[a>>2]|0))c=a;else break;if(a=(e[s2>>2]|0)-v|0,e[s2>>2]=a,(a|0)>0)g=S;else break}else S=N;if((a|0)<0)for(_=((l+25|0)/9|0)+1|0,y=(O|0)==102,I=S;;){E=0-a|0,E=(E|0)>9?9:E;do if(I>>>0>>0){a=(1<>>E,S=0,v=I;do d=e[v>>2]|0,e[v>>2]=(d>>>E)+S,S=Z(d&a,g)|0,v=v+4|0;while(v>>>0>>0);if(a=e[I>>2]|0?I:I+4|0,!S){S=a;break}e[c>>2]=S,S=a,c=c+4|0}else S=e[I>>2]|0?I:I+4|0;while(0);if(a=y?N:S,c=(c-a>>2|0)>(_|0)?a+(_<<2)|0:c,a=(e[s2>>2]|0)+E|0,e[s2>>2]=a,(a|0)>=0){I=S;break}else I=S}else I=S;do if(I>>>0>>0){if(a=(x-I>>2)*9|0,g=e[I>>2]|0,g>>>0<10)break;S=10;do S=S*10|0,a=a+1|0;while(g>>>0>=S>>>0)}else a=0;while(0);if(w=(O|0)==103,d=(l|0)!=0,S=l-((O|0)!=102?a:0)+((d&w)<<31>>31)|0,(S|0)<(((c-x>>2)*9|0)+-9|0)){if(v=S+9216|0,y=(v|0)/9|0,S=N+(y+-1023<<2)|0,v=((v|0)%9|0)+1|0,(v|0)<9){g=10;do g=g*10|0,v=v+1|0;while((v|0)!=9)}else g=10;E=e[S>>2]|0,_=(E>>>0)%(g>>>0)|0,!(_|0)&&(N+(y+-1022<<2)|0)==(c|0)?g=I:A0=163;do if((A0|0)==163){A0=0,D=((E>>>0)/(g>>>0)|0)&1|0?9007199254740994:9007199254740992,v=(g|0)/2|0;do if(_>>>0>>0)h=.5;else{if((_|0)==(v|0)&&(N+(y+-1022<<2)|0)==(c|0)){h=1;break}h=1.5}while(0);do if(q){if((m[B>>0]|0)!=45)break;D=-D,h=-h}while(0);if(v=E-_|0,e[S>>2]=v,D+h==D){g=I;break}if(O=v+g|0,e[S>>2]=O,O>>>0>999999999)for(a=I;;)if(g=S+-4|0,e[S>>2]=0,g>>>0>>0&&(a=a+-4|0,e[a>>2]=0),O=(e[g>>2]|0)+1|0,e[g>>2]=O,O>>>0>999999999)S=g;else{I=a,S=g;break}if(a=(x-I>>2)*9|0,v=e[I>>2]|0,v>>>0<10){g=I;break}else g=10;do g=g*10|0,a=a+1|0;while(v>>>0>=g>>>0);g=I}while(0);O=S+4|0,I=g,c=c>>>0>O>>>0?O:c}for(_=0-a|0;;){if(c>>>0<=I>>>0){y=0,O=c;break}if(S=c+-4|0,!(e[S>>2]|0))c=S;else{y=1,O=c;break}}do if(w){if(l=(d&1^1)+l|0,(l|0)>(a|0)&(a|0)>-5?(k=k+-1|0,l=l+-1-a|0):(k=k+-2|0,l=l+-1|0),c=n0&8,c)break;do if(y){if(c=e[O+-4>>2]|0,!c){S=9;break}if(!((c>>>0)%10|0))g=10,S=0;else{S=0;break}do g=g*10|0,S=S+1|0;while(!((c>>>0)%(g>>>0)|0|0))}else S=9;while(0);if(c=((O-x>>2)*9|0)+-9|0,(k|32|0)==102){c=c-S|0,c=(c|0)<0?0:c,l=(l|0)<(c|0)?l:c,c=0;break}else{c=c+a-S|0,c=(c|0)<0?0:c,l=(l|0)<(c|0)?l:c,c=0;break}}else c=n0&8;while(0);if(E=l|c,g=(E|0)!=0&1,v=(k|32|0)==102,v)a=(a|0)>0?a:0,k=0;else{if(S=(a|0)<0?_:a,S=pi(S,((S|0)<0)<<31>>31,t2)|0,(ce-S|0)<2)do S=S+-1|0,m[S>>0]=48;while((ce-S|0)<2);m[S+-1>>0]=(a>>31&2)+43,x=S+-2|0,m[x>>0]=k,a=ce-x|0,k=x}_=q+1+l+g+a|0,q2(r,32,$,_,n0),e[r>>2]&32||F2(B,q,r)|0,q2(r,48,$,_,n0^65536);do if(v){S=I>>>0>N>>>0?N:I,a=S;do{c=pi(e[a>>2]|0,0,N0)|0;do if((a|0)==(S|0)){if((c|0)!=(N0|0))break;m[x0>>0]=48,c=x0}else{if(c>>>0<=v2>>>0)break;do c=c+-1|0,m[c>>0]=48;while(c>>>0>v2>>>0)}while(0);e[r>>2]&32||F2(c,pe-c|0,r)|0,a=a+4|0}while(a>>>0<=N>>>0);do if(E){if(e[r>>2]&32)break;F2(56755,1,r)|0}while(0);if((l|0)>0&a>>>0>>0)for(c=a;;){if(a=pi(e[c>>2]|0,0,N0)|0,a>>>0>v2>>>0)do a=a+-1|0,m[a>>0]=48;while(a>>>0>v2>>>0);if(e[r>>2]&32||F2(a,(l|0)>9?9:l,r)|0,c=c+4|0,a=l+-9|0,(l|0)>9&c>>>0>>0)l=a;else{l=a;break}}q2(r,48,l+9|0,9,0)}else{if(v=y?O:I+4|0,(l|0)>-1){g=(c|0)==0,S=I;do{a=pi(e[S>>2]|0,0,N0)|0,(a|0)==(N0|0)&&(m[x0>>0]=48,a=x0);do if((S|0)==(I|0)){if(c=a+1|0,e[r>>2]&32||F2(a,1,r)|0,g&(l|0)<1){a=c;break}if(e[r>>2]&32){a=c;break}F2(56755,1,r)|0,a=c}else{if(a>>>0<=v2>>>0)break;do a=a+-1|0,m[a>>0]=48;while(a>>>0>v2>>>0)}while(0);c=pe-a|0,e[r>>2]&32||F2(a,(l|0)>(c|0)?c:l,r)|0,l=l-c|0,S=S+4|0}while(S>>>0>>0&(l|0)>-1)}if(q2(r,48,l+18|0,18,0),e[r>>2]&32)break;F2(k,ce-k|0,r)|0}while(0);q2(r,32,$,_,n0^8192),l=(_|0)<($|0)?$:_}else v=(k&32|0)!=0,g=h!=h|!1,a=g?0:q,S=a+3|0,q2(r,32,$,S,c),l=e[r>>2]|0,l&32||(F2(B,a,r)|0,l=e[r>>2]|0),l&32||F2(g?v?56747:56751:v?56739:56743,3,r)|0,q2(r,32,$,S,n0^8192),l=(S|0)<($|0)?$:S;while(0);I=r0;continue e}default:c=n0,a=S,v=0,k=56703,l=le}while(0);i:do if((A0|0)==64)if(c=Qe,a=e[c>>2]|0,c=e[c+4>>2]|0,g=k&32,(a|0)==0&(c|0)==0)l=le,a=v,v=0,g=56703,A0=77;else{l=le;do l=l+-1|0,m[l>>0]=z[56687+(a&15)>>0]|g,a=z1(a|0,c|0,4)|0,c=o0;while(!((a|0)==0&(c|0)==0));A0=Qe,(v&8|0)==0|(e[A0>>2]|0)==0&(e[A0+4>>2]|0)==0?(a=v,v=0,g=56703,A0=77):(a=v,v=2,g=56703+(k>>4)|0,A0=77)}else if((A0|0)==76)l=pi(l,a,le)|0,a=n0,v=c,A0=77;else if((A0|0)==82)A0=0,n0=Nf(l,0,S)|0,B=(n0|0)==0,I=l,a=B?S:n0-l|0,v=0,k=56703,l=B?l+S|0:n0;else if((A0|0)==86){for(A0=0,a=0,l=0,g=e[Qe>>2]|0;c=e[g>>2]|0,!(!c||(l=Pf(U1,c)|0,(l|0)<0|l>>>0>(S-a|0)>>>0));)if(a=l+a|0,S>>>0>a>>>0)g=g+4|0;else break;if((l|0)<0){f=-1;break e}if(q2(r,32,$,a,n0),!a)l=0,A0=98;else for(c=0,S=e[Qe>>2]|0;;){if(l=e[S>>2]|0,!l){l=a,A0=98;break i}if(l=Pf(U1,l)|0,c=l+c|0,(c|0)>(a|0)){l=a,A0=98;break i}if(e[r>>2]&32||F2(U1,l,r)|0,c>>>0>=a>>>0){l=a,A0=98;break}else S=S+4|0}}while(0);if((A0|0)==98){A0=0,q2(r,32,$,l,n0^8192),I=r0,l=($|0)>(l|0)?$:l;continue}(A0|0)==77&&(A0=0,c=(S|0)>-1?a&-65537:a,a=Qe,a=(e[a>>2]|0)!=0|(e[a+4>>2]|0)!=0,(S|0)!=0|a?(a=(a&1^1)+(B0-l)|0,I=l,a=(S|0)>(a|0)?S:a,k=g,l=le):(I=le,a=0,k=g,l=le)),g=l-I|0,a=(a|0)<(g|0)?g:a,S=v+a|0,l=($|0)<(S|0)?S:$,q2(r,32,l,S,c),e[r>>2]&32||F2(k,v,r)|0,q2(r,48,l,S,c^65536),q2(r,48,a,g,0),e[r>>2]&32||F2(I,g,r)|0,q2(r,32,l,S,c^8192),I=r0}e:do if((A0|0)==245&&!r)if(t){for(f=1;t=e[o+(f<<2)>>2]|0,!!t;)if(xo(s+(f<<3)|0,t,n),f=f+1|0,(f|0)>=10){f=1;break e}if((f|0)<10)for(;;){if(e[o+(f<<2)>>2]|0){f=-1;break e}if(f=f+1|0,(f|0)>=10){f=1;break}}else f=1}else f=0;while(0);return C=E1,f|0}function US(r,t,n){return r=r|0,t=t|0,n=n|0,QT(r,t,n)|0}function BS(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;a=C,C=C+112|0,l=a,o=l,f=o+112|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(f|0));return o=l+4|0,e[o>>2]=r,f=l+8|0,e[f>>2]=-1,e[l+44>>2]=r,e[l+76>>2]=-1,n1(l,0),s=+wf(l,n,1),n=(e[o>>2]|0)-(e[f>>2]|0)+(e[l+108>>2]|0)|0,t&&(e[t>>2]=n|0?r+n|0:r),C=a,+s}function Mo(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0;return c=C,C=C+112|0,a=c,e[a>>2]=0,f=a+4|0,e[f>>2]=r,e[a+44>>2]=r,l=a+8|0,e[l>>2]=(r|0)<0?-1:r+2147483647|0,e[a+76>>2]=-1,n1(a,0),s=df(a,n,1,s,o)|0,t&&(e[t>>2]=r+((e[f>>2]|0)+(e[a+108>>2]|0)-(e[l>>2]|0))),C=c,s|0}function QS(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;return s=r+20|0,o=e[s>>2]|0,r=(e[r+16>>2]|0)-o|0,r=r>>>0>n>>>0?n:r,Ne(o|0,t|0,r|0)|0,e[s>>2]=(e[s>>2]|0)+r,n|0}function xo(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;e:do if(t>>>0<=20)do switch(t|0){case 9:{s=(e[n>>2]|0)+(4-1)&~(4-1),t=e[s>>2]|0,e[n>>2]=s+4,e[r>>2]=t;break e}case 10:{s=(e[n>>2]|0)+(4-1)&~(4-1),t=e[s>>2]|0,e[n>>2]=s+4,s=r,e[s>>2]=t,e[s+4>>2]=((t|0)<0)<<31>>31;break e}case 11:{s=(e[n>>2]|0)+(4-1)&~(4-1),t=e[s>>2]|0,e[n>>2]=s+4,s=r,e[s>>2]=t,e[s+4>>2]=0;break e}case 12:{s=(e[n>>2]|0)+(8-1)&~(8-1),t=s,o=e[t>>2]|0,t=e[t+4>>2]|0,e[n>>2]=s+8,s=r,e[s>>2]=o,e[s+4>>2]=t;break e}case 13:{o=(e[n>>2]|0)+(4-1)&~(4-1),s=e[o>>2]|0,e[n>>2]=o+4,s=(s&65535)<<16>>16,o=r,e[o>>2]=s,e[o+4>>2]=((s|0)<0)<<31>>31;break e}case 14:{o=(e[n>>2]|0)+(4-1)&~(4-1),s=e[o>>2]|0,e[n>>2]=o+4,o=r,e[o>>2]=s&65535,e[o+4>>2]=0;break e}case 15:{o=(e[n>>2]|0)+(4-1)&~(4-1),s=e[o>>2]|0,e[n>>2]=o+4,s=(s&255)<<24>>24,o=r,e[o>>2]=s,e[o+4>>2]=((s|0)<0)<<31>>31;break e}case 16:{o=(e[n>>2]|0)+(4-1)&~(4-1),s=e[o>>2]|0,e[n>>2]=o+4,o=r,e[o>>2]=s&255,e[o+4>>2]=0;break e}case 17:{o=(e[n>>2]|0)+(8-1)&~(8-1),f=+t0[o>>3],e[n>>2]=o+8,t0[r>>3]=f;break e}case 18:{o=(e[n>>2]|0)+(8-1)&~(8-1),f=+t0[o>>3],e[n>>2]=o+8,t0[r>>3]=f;break e}default:break e}while(0);while(0)}function pi(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if(t>>>0>0|(t|0)==0&r>>>0>4294967295)for(;;)if(s=Dn(r|0,t|0,10,0)|0,n=n+-1|0,m[n>>0]=s|48,s=Cr(r|0,t|0,10,0)|0,t>>>0>9|(t|0)==9&r>>>0>4294967295)r=s,t=o0;else{r=s;break}if(r)for(;n=n+-1|0,m[n>>0]=(r>>>0)%10|0|48,!(r>>>0<10);)r=(r>>>0)/10|0;return n|0}function q2(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0;a=C,C=C+256|0,l=a;do if((n|0)>(s|0)&(o&73728|0)==0){if(o=n-s|0,ye(l|0,t|0,(o>>>0>256?256:o)|0)|0,t=e[r>>2]|0,f=(t&32|0)==0,o>>>0>255){s=n-s|0;do f&&(F2(l,256,r)|0,t=e[r>>2]|0),o=o+-256|0,f=(t&32|0)==0;while(o>>>0>255);if(f)o=s&255;else break}else if(!f)break;F2(l,o,r)|0}while(0);C=a}function g2(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0,N0=0,pe=0,x0=0;do if(r>>>0<245){if(k=r>>>0<11?16:r+11&-8,r=k>>>3,a=e[10218]|0,n=a>>>r,n&3){r=(n&1^1)+r|0,s=r<<1,n=40912+(s<<2)|0,s=40912+(s+2<<2)|0,o=e[s>>2]|0,f=o+8|0,l=e[f>>2]|0;do if((n|0)!=(l|0))if(l>>>0<(e[10222]|0)>>>0&&Y0(),t=l+12|0,(e[t>>2]|0)==(o|0)){e[t>>2]=n,e[s>>2]=l;break}else Y0();else e[10218]=a&~(1<>2]=x0|3,x0=o+(x0|4)|0,e[x0>>2]=e[x0>>2]|1,x0=f,x0|0}if(l=e[10220]|0,k>>>0>l>>>0){if(n){s=2<>>12&16,s=s>>>c,o=s>>>5&8,s=s>>>o,f=s>>>2&4,s=s>>>f,n=s>>>1&2,s=s>>>n,r=s>>>1&1,r=(o|c|f|n|r)+(s>>>r)|0,s=r<<1,n=40912+(s<<2)|0,s=40912+(s+2<<2)|0,f=e[s>>2]|0,c=f+8|0,o=e[c>>2]|0;do if((n|0)!=(o|0))if(o>>>0<(e[10222]|0)>>>0&&Y0(),t=o+12|0,(e[t>>2]|0)==(f|0)){e[t>>2]=n,e[s>>2]=o,h=e[10220]|0;break}else Y0();else e[10218]=a&~(1<>2]=k|3,a=f+k|0,e[f+(k|4)>>2]=l|1,e[f+x0>>2]=l,h&&(o=e[10223]|0,n=h>>>3,t=n<<1,s=40912+(t<<2)|0,r=e[10218]|0,n=1<>2]|0,t>>>0<(e[10222]|0)>>>0?Y0():(S=r,g=t)):(e[10218]=r|n,S=40912+(t+2<<2)|0,g=s),e[S>>2]=o,e[g+12>>2]=o,e[o+8>>2]=g,e[o+12>>2]=s),e[10220]=l,e[10223]=a,x0=c,x0|0}if(r=e[10219]|0,r){for(n=(r&0-r)+-1|0,pe=n>>>12&16,n=n>>>pe,N0=n>>>5&8,n=n>>>N0,x0=n>>>2&4,n=n>>>x0,r=n>>>1&2,n=n>>>r,s=n>>>1&1,s=e[41176+((N0|pe|x0|r|s)+(n>>>s)<<2)>>2]|0,n=(e[s+4>>2]&-8)-k|0,r=s;;){if(t=e[r+16>>2]|0,!t&&(t=e[r+20>>2]|0,!t)){c=n;break}r=(e[t+4>>2]&-8)-k|0,x0=r>>>0>>0,n=x0?r:n,r=t,s=x0?t:s}f=e[10222]|0,s>>>0>>0&&Y0(),a=s+k|0,s>>>0>=a>>>0&&Y0(),l=e[s+24>>2]|0,n=e[s+12>>2]|0;do if((n|0)==(s|0)){if(r=s+20|0,t=e[r>>2]|0,!t&&(r=s+16|0,t=e[r>>2]|0,!t)){v=0;break}for(;;){if(n=t+20|0,o=e[n>>2]|0,o){t=o,r=n;continue}if(n=t+16|0,o=e[n>>2]|0,o)t=o,r=n;else break}if(r>>>0>>0)Y0();else{e[r>>2]=0,v=t;break}}else if(o=e[s+8>>2]|0,o>>>0>>0&&Y0(),t=o+12|0,(e[t>>2]|0)!=(s|0)&&Y0(),r=n+8|0,(e[r>>2]|0)==(s|0)){e[t>>2]=n,e[r>>2]=o,v=n;break}else Y0();while(0);do if(l){if(t=e[s+28>>2]|0,r=41176+(t<<2)|0,(s|0)==(e[r>>2]|0)){if(e[r>>2]=v,!v){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),t=l+16|0,(e[t>>2]|0)==(s|0)?e[t>>2]=v:e[l+20>>2]=v,!v)break;r=e[10222]|0,v>>>0>>0&&Y0(),e[v+24>>2]=l,t=e[s+16>>2]|0;do if(t)if(t>>>0>>0)Y0();else{e[v+16>>2]=t,e[t+24>>2]=v;break}while(0);if(t=e[s+20>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)Y0();else{e[v+20>>2]=t,e[t+24>>2]=v;break}}while(0);return c>>>0<16?(x0=c+k|0,e[s+4>>2]=x0|3,x0=s+(x0+4)|0,e[x0>>2]=e[x0>>2]|1):(e[s+4>>2]=k|3,e[s+(k|4)>>2]=c|1,e[s+(c+k)>>2]=c,t=e[10220]|0,t&&(f=e[10223]|0,n=t>>>3,t=n<<1,o=40912+(t<<2)|0,r=e[10218]|0,n=1<>2]|0,r>>>0<(e[10222]|0)>>>0?Y0():(D=t,I=r)):(e[10218]=r|n,D=40912+(t+2<<2)|0,I=o),e[D>>2]=f,e[I+12>>2]=f,e[f+8>>2]=I,e[f+12>>2]=o),e[10220]=c,e[10223]=a),x0=s+8|0,x0|0}else I=k}else I=k}else if(r>>>0<=4294967231)if(r=r+11|0,g=r&-8,S=e[10219]|0,S){n=0-g|0,r=r>>>8,r?g>>>0>16777215?h=31:(I=(r+1048320|0)>>>16&8,d=r<>>16&4,d=d<>>16&2,h=14-(D|I|h)+(d<>>15)|0,h=g>>>(h+7|0)&1|h<<1):h=0,r=e[41176+(h<<2)>>2]|0;e:do if(!r)o=0,r=0,d=86;else for(l=n,o=0,a=g<<((h|0)==31?0:25-(h>>>1)|0),c=r,r=0;;){if(f=e[c+4>>2]&-8,n=f-g|0,n>>>0>>0)if((f|0)==(g|0)){f=c,r=c,d=90;break e}else r=c;else n=l;if(d=e[c+20>>2]|0,c=e[c+16+(a>>>31<<2)>>2]|0,o=(d|0)==0|(d|0)==(c|0)?o:d,c)l=n,a=a<<1;else{d=86;break}}while(0);if((d|0)==86){if((o|0)==0&(r|0)==0){if(r=2<>>12&16,r=r>>>v,S=r>>>5&8,r=r>>>S,D=r>>>2&4,r=r>>>D,I=r>>>1&2,r=r>>>I,o=r>>>1&1,o=e[41176+((S|v|D|I|o)+(r>>>o)<<2)>>2]|0,r=0}o?(f=o,d=90):(a=n,c=r)}if((d|0)==90)for(;;){if(d=0,I=(e[f+4>>2]&-8)-g|0,o=I>>>0>>0,n=o?I:n,r=o?f:r,o=e[f+16>>2]|0,o){f=o,d=90;continue}if(f=e[f+20>>2]|0,f)d=90;else{a=n,c=r;break}}if(c|0&&a>>>0<((e[10220]|0)-g|0)>>>0){o=e[10222]|0,c>>>0>>0&&Y0(),l=c+g|0,c>>>0>=l>>>0&&Y0(),f=e[c+24>>2]|0,n=e[c+12>>2]|0;do if((n|0)==(c|0)){if(r=c+20|0,t=e[r>>2]|0,!t&&(r=c+16|0,t=e[r>>2]|0,!t)){k=0;break}for(;;){if(n=t+20|0,s=e[n>>2]|0,s){t=s,r=n;continue}if(n=t+16|0,s=e[n>>2]|0,s)t=s,r=n;else break}if(r>>>0>>0)Y0();else{e[r>>2]=0,k=t;break}}else if(s=e[c+8>>2]|0,s>>>0>>0&&Y0(),t=s+12|0,(e[t>>2]|0)!=(c|0)&&Y0(),r=n+8|0,(e[r>>2]|0)==(c|0)){e[t>>2]=n,e[r>>2]=s,k=n;break}else Y0();while(0);do if(f){if(t=e[c+28>>2]|0,r=41176+(t<<2)|0,(c|0)==(e[r>>2]|0)){if(e[r>>2]=k,!k){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),t=f+16|0,(e[t>>2]|0)==(c|0)?e[t>>2]=k:e[f+20>>2]=k,!k)break;r=e[10222]|0,k>>>0>>0&&Y0(),e[k+24>>2]=f,t=e[c+16>>2]|0;do if(t)if(t>>>0>>0)Y0();else{e[k+16>>2]=t,e[t+24>>2]=k;break}while(0);if(t=e[c+20>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)Y0();else{e[k+20>>2]=t,e[t+24>>2]=k;break}}while(0);e:do if(a>>>0>=16){if(e[c+4>>2]=g|3,e[c+(g|4)>>2]=a|1,e[c+(a+g)>>2]=a,t=a>>>3,a>>>0<256){r=t<<1,s=40912+(r<<2)|0,n=e[10218]|0,t=1<>2]|0,r>>>0<(e[10222]|0)>>>0?Y0():(_=t,y=r)):(e[10218]=n|t,_=40912+(r+2<<2)|0,y=s),e[_>>2]=l,e[y+12>>2]=l,e[c+(g+8)>>2]=y,e[c+(g+12)>>2]=s;break}if(t=a>>>8,t?a>>>0>16777215?s=31:(pe=(t+1048320|0)>>>16&8,x0=t<>>16&4,x0=x0<>>16&2,s=14-(N0|pe|s)+(x0<>>15)|0,s=a>>>(s+7|0)&1|s<<1):s=0,t=41176+(s<<2)|0,e[c+(g+28)>>2]=s,e[c+(g+20)>>2]=0,e[c+(g+16)>>2]=0,r=e[10219]|0,n=1<>2]=l,e[c+(g+24)>>2]=t,e[c+(g+12)>>2]=l,e[c+(g+8)>>2]=l;break}t=e[t>>2]|0;i:do if((e[t+4>>2]&-8|0)!=(a|0)){for(s=a<<((s|0)==31?0:25-(s>>>1)|0);r=t+16+(s>>>31<<2)|0,n=e[r>>2]|0,!!n;)if((e[n+4>>2]&-8|0)==(a|0)){N=n;break i}else s=s<<1,t=n;if(r>>>0<(e[10222]|0)>>>0)Y0();else{e[r>>2]=l,e[c+(g+24)>>2]=t,e[c+(g+12)>>2]=l,e[c+(g+8)>>2]=l;break e}}else N=t;while(0);if(t=N+8|0,r=e[t>>2]|0,x0=e[10222]|0,r>>>0>=x0>>>0&N>>>0>=x0>>>0){e[r+12>>2]=l,e[t>>2]=l,e[c+(g+8)>>2]=r,e[c+(g+12)>>2]=N,e[c+(g+24)>>2]=0;break}else Y0()}else x0=a+g|0,e[c+4>>2]=x0|3,x0=c+(x0+4)|0,e[x0>>2]=e[x0>>2]|1;while(0);return x0=c+8|0,x0|0}else I=g}else I=g;else I=-1;while(0);if(n=e[10220]|0,n>>>0>=I>>>0)return t=n-I|0,r=e[10223]|0,t>>>0>15?(e[10223]=r+I,e[10220]=t,e[r+(I+4)>>2]=t|1,e[r+n>>2]=t,e[r+4>>2]=I|3):(e[10220]=0,e[10223]=0,e[r+4>>2]=n|3,x0=r+(n+4)|0,e[x0>>2]=e[x0>>2]|1),x0=r+8|0,x0|0;if(r=e[10221]|0,r>>>0>I>>>0)return pe=r-I|0,e[10221]=pe,x0=e[10224]|0,e[10224]=x0+I,e[x0+(I+4)>>2]=pe|1,e[x0+4>>2]=I|3,x0=x0+8|0,x0|0;do if(!(e[10336]|0))if(r=v4(30)|0,r+-1&r)Y0();else{e[10338]=r,e[10337]=r,e[10339]=-1,e[10340]=-1,e[10341]=0,e[10329]=0,N=(_4(0)|0)&-16^1431655768,e[10336]=N;break}while(0);if(c=I+48|0,a=e[10338]|0,h=I+47|0,l=a+h|0,a=0-a|0,S=l&a,S>>>0<=I>>>0||(r=e[10328]|0,r|0&&(y=e[10326]|0,N=y+S|0,N>>>0<=y>>>0|N>>>0>r>>>0)))return x0=0,x0|0;e:do if(e[10329]&4)r=0,d=191;else{r=e[10224]|0;i:do if(r){for(o=41320;;){if(n=e[o>>2]|0,n>>>0<=r>>>0&&(E=o+4|0,(n+(e[E>>2]|0)|0)>>>0>r>>>0)){f=o,r=E;break}if(o=e[o+8>>2]|0,!o){d=174;break i}}if(n=l-(e[10221]|0)&a,n>>>0<2147483647)if(o=ri(n|0)|0,N=(o|0)==((e[f>>2]|0)+(e[r>>2]|0)|0),r=N?n:0,N){if((o|0)!=-1){O=o,D=r,d=194;break e}}else d=184;else r=0}else d=174;while(0);do if((d|0)==174)if(f=ri(0)|0,(f|0)!=-1)if(r=f,n=e[10337]|0,o=n+-1|0,o&r?n=S-r+(o+r&0-n)|0:n=S,r=e[10326]|0,o=r+n|0,n>>>0>I>>>0&n>>>0<2147483647){if(N=e[10328]|0,N|0&&o>>>0<=r>>>0|o>>>0>N>>>0){r=0;break}if(o=ri(n|0)|0,N=(o|0)==(f|0),r=N?n:0,N){O=f,D=r,d=194;break e}else d=184}else r=0;else r=0;while(0);i:do if((d|0)==184){f=0-n|0;do if(c>>>0>n>>>0&(n>>>0<2147483647&(o|0)!=-1)&&(w=e[10338]|0,w=h-n+w&0-w,w>>>0<2147483647))if((ri(w|0)|0)==-1){ri(f|0)|0;break i}else{n=w+n|0;break}while(0);if((o|0)!=-1){O=o,D=n,d=194;break e}}while(0);e[10329]=e[10329]|4,d=191}while(0);if((d|0)==191&&S>>>0<2147483647&&(O=ri(S|0)|0,x=ri(0)|0,O>>>0>>0&((O|0)!=-1&(x|0)!=-1))&&(q=x-O|0,B=q>>>0>(I+40|0)>>>0,B)&&(D=B?q:r,d=194),(d|0)==194){r=(e[10326]|0)+D|0,e[10326]=r,r>>>0>(e[10327]|0)>>>0&&(e[10327]=r),l=e[10224]|0;e:do if(l){f=41320;do{if(r=e[f>>2]|0,n=f+4|0,o=e[n>>2]|0,(O|0)==(r+o|0)){n0=r,r0=n,$=o,A0=f,d=204;break}f=e[f+8>>2]|0}while(f|0);if((d|0)==204&&!(e[A0+12>>2]&8|0)&&l>>>0>>0&l>>>0>=n0>>>0){e[r0>>2]=$+D,x0=(e[10221]|0)+D|0,pe=l+8|0,pe=pe&7|0?0-pe&7:0,N0=x0-pe|0,e[10224]=l+pe,e[10221]=N0,e[l+(pe+4)>>2]=N0|1,e[l+(x0+4)>>2]=40,e[10225]=e[10340];break}for(r=e[10222]|0,O>>>0>>0&&(e[10222]=O,r=O),n=O+D|0,f=41320;;){if((e[f>>2]|0)==(n|0)){o=f,n=f,d=212;break}if(f=e[f+8>>2]|0,!f){n=41320;break}}if((d|0)==212)if(e[n+12>>2]&8)n=41320;else{e[o>>2]=O,v=n+4|0,e[v>>2]=(e[v>>2]|0)+D,v=O+8|0,v=v&7|0?0-v&7:0,h=O+(D+8)|0,h=h&7|0?0-h&7:0,t=O+(h+D)|0,g=v+I|0,k=O+g|0,S=t-(O+v)-I|0,e[O+(v+4)>>2]=I|3;i:do if((t|0)!=(l|0)){if((t|0)==(e[10223]|0)){x0=(e[10220]|0)+S|0,e[10220]=x0,e[10223]=k,e[O+(g+4)>>2]=x0|1,e[O+(x0+g)>>2]=x0;break}if(a=D+4|0,n=e[O+(a+h)>>2]|0,(n&3|0)==1){c=n&-8,f=n>>>3;r:do if(n>>>0>=256){l=e[O+((h|24)+D)>>2]|0,s=e[O+(D+12+h)>>2]|0;do if((s|0)==(t|0)){if(o=h|16,s=O+(a+o)|0,n=e[s>>2]|0,!n&&(s=O+(o+D)|0,n=e[s>>2]|0,!n)){fe=0;break}for(;;){if(o=n+20|0,f=e[o>>2]|0,f){n=f,s=o;continue}if(o=n+16|0,f=e[o>>2]|0,f)n=f,s=o;else break}if(s>>>0>>0)Y0();else{e[s>>2]=0,fe=n;break}}else if(o=e[O+((h|8)+D)>>2]|0,o>>>0>>0&&Y0(),r=o+12|0,(e[r>>2]|0)!=(t|0)&&Y0(),n=s+8|0,(e[n>>2]|0)==(t|0)){e[r>>2]=s,e[n>>2]=o,fe=s;break}else Y0();while(0);if(!l)break;r=e[O+(D+28+h)>>2]|0,n=41176+(r<<2)|0;do if((t|0)!=(e[n>>2]|0)){if(l>>>0<(e[10222]|0)>>>0&&Y0(),r=l+16|0,(e[r>>2]|0)==(t|0)?e[r>>2]=fe:e[l+20>>2]=fe,!fe)break r}else{if(e[n>>2]=fe,fe)break;e[10219]=e[10219]&~(1<>>0>>0&&Y0(),e[fe+24>>2]=l,t=h|16,r=e[O+(t+D)>>2]|0;do if(r)if(r>>>0>>0)Y0();else{e[fe+16>>2]=r,e[r+24>>2]=fe;break}while(0);if(t=e[O+(a+t)>>2]|0,!t)break;if(t>>>0<(e[10222]|0)>>>0)Y0();else{e[fe+20>>2]=t,e[t+24>>2]=fe;break}}else{s=e[O+((h|8)+D)>>2]|0,o=e[O+(D+12+h)>>2]|0,n=40912+(f<<1<<2)|0;do if((s|0)!=(n|0)){if(s>>>0>>0&&Y0(),(e[s+12>>2]|0)==(t|0))break;Y0()}while(0);if((o|0)==(s|0)){e[10218]=e[10218]&~(1<>>0>>0&&Y0(),r=o+8|0,(e[r>>2]|0)==(t|0)){ve=r;break}Y0()}while(0);e[s+12>>2]=o,e[ve>>2]=s}while(0);t=O+((c|h)+D)|0,o=c+S|0}else o=S;if(t=t+4|0,e[t>>2]=e[t>>2]&-2,e[O+(g+4)>>2]=o|1,e[O+(o+g)>>2]=o,t=o>>>3,o>>>0<256){r=t<<1,s=40912+(r<<2)|0,n=e[10218]|0,t=1<>2]|0,r>>>0>=(e[10222]|0)>>>0){N0=t,pe=r;break}Y0()}while(0);e[N0>>2]=k,e[pe+12>>2]=k,e[O+(g+8)>>2]=pe,e[O+(g+12)>>2]=s;break}t=o>>>8;do if(!t)s=0;else{if(o>>>0>16777215){s=31;break}N0=(t+1048320|0)>>>16&8,pe=t<>>16&4,pe=pe<>>16&2,s=14-(fe|N0|s)+(pe<>>15)|0,s=o>>>(s+7|0)&1|s<<1}while(0);if(t=41176+(s<<2)|0,e[O+(g+28)>>2]=s,e[O+(g+20)>>2]=0,e[O+(g+16)>>2]=0,r=e[10219]|0,n=1<>2]=k,e[O+(g+24)>>2]=t,e[O+(g+12)>>2]=k,e[O+(g+8)>>2]=k;break}t=e[t>>2]|0;r:do if((e[t+4>>2]&-8|0)!=(o|0)){for(s=o<<((s|0)==31?0:25-(s>>>1)|0);r=t+16+(s>>>31<<2)|0,n=e[r>>2]|0,!!n;)if((e[n+4>>2]&-8|0)==(o|0)){x0=n;break r}else s=s<<1,t=n;if(r>>>0<(e[10222]|0)>>>0)Y0();else{e[r>>2]=k,e[O+(g+24)>>2]=t,e[O+(g+12)>>2]=k,e[O+(g+8)>>2]=k;break i}}else x0=t;while(0);if(t=x0+8|0,r=e[t>>2]|0,pe=e[10222]|0,r>>>0>=pe>>>0&x0>>>0>=pe>>>0){e[r+12>>2]=k,e[t>>2]=k,e[O+(g+8)>>2]=r,e[O+(g+12)>>2]=x0,e[O+(g+24)>>2]=0;break}else Y0()}else x0=(e[10221]|0)+S|0,e[10221]=x0,e[10224]=k,e[O+(g+4)>>2]=x0|1;while(0);return x0=O+(v|8)|0,x0|0}for(;r=e[n>>2]|0,!(r>>>0<=l>>>0&&(t=e[n+4>>2]|0,s=r+t|0,s>>>0>l>>>0));)n=e[n+8>>2]|0;if(o=r+(t+-39)|0,r=r+(t+-47+(o&7|0?0-o&7:0))|0,o=l+16|0,r=r>>>0>>0?l:r,t=r+8|0,n=O+8|0,n=n&7|0?0-n&7:0,x0=D+-40-n|0,e[10224]=O+n,e[10221]=x0,e[O+(n+4)>>2]=x0|1,e[O+(D+-36)>>2]=40,e[10225]=e[10340],n=r+4|0,e[n>>2]=27,e[t>>2]=e[10330],e[t+4>>2]=e[10331],e[t+8>>2]=e[10332],e[t+12>>2]=e[10333],e[10330]=O,e[10331]=D,e[10333]=0,e[10332]=t,t=r+28|0,e[t>>2]=7,(r+32|0)>>>0>>0)do x0=t,t=t+4|0,e[t>>2]=7;while((x0+8|0)>>>0>>0);if((r|0)!=(l|0)){if(f=r-l|0,e[n>>2]=e[n>>2]&-2,e[l+4>>2]=f|1,e[r>>2]=f,t=f>>>3,f>>>0<256){r=t<<1,s=40912+(r<<2)|0,n=e[10218]|0,t=1<>2]|0,r>>>0<(e[10222]|0)>>>0?Y0():(le=t,Fe=r)):(e[10218]=n|t,le=40912+(r+2<<2)|0,Fe=s),e[le>>2]=l,e[Fe+12>>2]=l,e[l+8>>2]=Fe,e[l+12>>2]=s;break}if(t=f>>>8,t?f>>>0>16777215?s=31:(pe=(t+1048320|0)>>>16&8,x0=t<>>16&4,x0=x0<>>16&2,s=14-(N0|pe|s)+(x0<>>15)|0,s=f>>>(s+7|0)&1|s<<1):s=0,n=41176+(s<<2)|0,e[l+28>>2]=s,e[l+20>>2]=0,e[o>>2]=0,t=e[10219]|0,r=1<>2]=l,e[l+24>>2]=n,e[l+12>>2]=l,e[l+8>>2]=l;break}t=e[n>>2]|0;i:do if((e[t+4>>2]&-8|0)!=(f|0)){for(s=f<<((s|0)==31?0:25-(s>>>1)|0);r=t+16+(s>>>31<<2)|0,n=e[r>>2]|0,!!n;)if((e[n+4>>2]&-8|0)==(f|0)){Ie=n;break i}else s=s<<1,t=n;if(r>>>0<(e[10222]|0)>>>0)Y0();else{e[r>>2]=l,e[l+24>>2]=t,e[l+12>>2]=l,e[l+8>>2]=l;break e}}else Ie=t;while(0);if(t=Ie+8|0,r=e[t>>2]|0,x0=e[10222]|0,r>>>0>=x0>>>0&Ie>>>0>=x0>>>0){e[r+12>>2]=l,e[t>>2]=l,e[l+8>>2]=r,e[l+12>>2]=Ie,e[l+24>>2]=0;break}else Y0()}}else{x0=e[10222]|0,(x0|0)==0|O>>>0>>0&&(e[10222]=O),e[10330]=O,e[10331]=D,e[10333]=0,e[10227]=e[10336],e[10226]=-1,t=0;do x0=t<<1,pe=40912+(x0<<2)|0,e[40912+(x0+3<<2)>>2]=pe,e[40912+(x0+2<<2)>>2]=pe,t=t+1|0;while((t|0)!=32);x0=O+8|0,x0=x0&7|0?0-x0&7:0,pe=D+-40-x0|0,e[10224]=O+x0,e[10221]=pe,e[O+(x0+4)>>2]=pe|1,e[O+(D+-36)>>2]=40,e[10225]=e[10340]}while(0);if(t=e[10221]|0,t>>>0>I>>>0)return pe=t-I|0,e[10221]=pe,x0=e[10224]|0,e[10224]=x0+I,e[x0+(I+4)>>2]=pe|1,e[x0+4>>2]=I|3,x0=x0+8|0,x0|0}return x0=n2()|0,e[x0>>2]=12,x0=0,x0|0}function Pe(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;if(r){t=r+-8|0,a=e[10222]|0,t>>>0>>0&&Y0(),n=e[r+-4>>2]|0,s=n&3,(s|0)==1&&Y0(),k=n&-8,I=r+(k+-8)|0;do if(n&1)w=t,f=k;else{if(t=e[t>>2]|0,!s)return;if(c=-8-t|0,S=r+c|0,g=t+k|0,S>>>0>>0&&Y0(),(S|0)==(e[10223]|0)){if(t=r+(k+-4)|0,n=e[t>>2]|0,(n&3|0)!=3){w=S,f=g;break}e[10220]=g,e[t>>2]=n&-2,e[r+(c+4)>>2]=g|1,e[I>>2]=g;return}if(o=t>>>3,t>>>0<256){if(s=e[r+(c+8)>>2]|0,n=e[r+(c+12)>>2]|0,t=40912+(o<<1<<2)|0,(s|0)!=(t|0)&&(s>>>0>>0&&Y0(),(e[s+12>>2]|0)!=(S|0)&&Y0()),(n|0)==(s|0)){e[10218]=e[10218]&~(1<>>0>>0&&Y0(),t=n+8|0,(e[t>>2]|0)==(S|0)?l=t:Y0()):l=n+8|0,e[s+12>>2]=n,e[l>>2]=s,w=S,f=g;break}l=e[r+(c+24)>>2]|0,s=e[r+(c+12)>>2]|0;do if((s|0)==(S|0)){if(n=r+(c+20)|0,t=e[n>>2]|0,!t&&(n=r+(c+16)|0,t=e[n>>2]|0,!t)){h=0;break}for(;;){if(s=t+20|0,o=e[s>>2]|0,o){t=o,n=s;continue}if(s=t+16|0,o=e[s>>2]|0,o)t=o,n=s;else break}if(n>>>0>>0)Y0();else{e[n>>2]=0,h=t;break}}else if(o=e[r+(c+8)>>2]|0,o>>>0>>0&&Y0(),t=o+12|0,(e[t>>2]|0)!=(S|0)&&Y0(),n=s+8|0,(e[n>>2]|0)==(S|0)){e[t>>2]=s,e[n>>2]=o,h=s;break}else Y0();while(0);if(l){if(t=e[r+(c+28)>>2]|0,n=41176+(t<<2)|0,(S|0)==(e[n>>2]|0)){if(e[n>>2]=h,!h){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),t=l+16|0,(e[t>>2]|0)==(S|0)?e[t>>2]=h:e[l+20>>2]=h,!h){w=S,f=g;break}n=e[10222]|0,h>>>0>>0&&Y0(),e[h+24>>2]=l,t=e[r+(c+16)>>2]|0;do if(t)if(t>>>0>>0)Y0();else{e[h+16>>2]=t,e[t+24>>2]=h;break}while(0);if(t=e[r+(c+20)>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)Y0();else{e[h+20>>2]=t,e[t+24>>2]=h,w=S,f=g;break}else w=S,f=g}else w=S,f=g}while(0);if(w>>>0>=I>>>0&&Y0(),t=r+(k+-4)|0,n=e[t>>2]|0,n&1||Y0(),n&2)e[t>>2]=n&-2,e[w+4>>2]=f|1,e[w+f>>2]=f;else{if((I|0)==(e[10224]|0)){if(y=(e[10221]|0)+f|0,e[10221]=y,e[10224]=w,e[w+4>>2]=y|1,(w|0)!=(e[10223]|0))return;e[10223]=0,e[10220]=0;return}if((I|0)==(e[10223]|0)){y=(e[10220]|0)+f|0,e[10220]=y,e[10223]=w,e[w+4>>2]=y|1,e[w+y>>2]=y;return}f=(n&-8)+f|0,o=n>>>3;do if(n>>>0>=256){l=e[r+(k+16)>>2]|0,t=e[r+(k|4)>>2]|0;do if((t|0)==(I|0)){if(n=r+(k+12)|0,t=e[n>>2]|0,!t&&(n=r+(k+8)|0,t=e[n>>2]|0,!t)){D=0;break}for(;;){if(s=t+20|0,o=e[s>>2]|0,o){t=o,n=s;continue}if(s=t+16|0,o=e[s>>2]|0,o)t=o,n=s;else break}if(n>>>0<(e[10222]|0)>>>0)Y0();else{e[n>>2]=0,D=t;break}}else if(n=e[r+k>>2]|0,n>>>0<(e[10222]|0)>>>0&&Y0(),s=n+12|0,(e[s>>2]|0)!=(I|0)&&Y0(),o=t+8|0,(e[o>>2]|0)==(I|0)){e[s>>2]=t,e[o>>2]=n,D=t;break}else Y0();while(0);if(l){if(t=e[r+(k+20)>>2]|0,n=41176+(t<<2)|0,(I|0)==(e[n>>2]|0)){if(e[n>>2]=D,!D){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),t=l+16|0,(e[t>>2]|0)==(I|0)?e[t>>2]=D:e[l+20>>2]=D,!D)break;n=e[10222]|0,D>>>0>>0&&Y0(),e[D+24>>2]=l,t=e[r+(k+8)>>2]|0;do if(t)if(t>>>0>>0)Y0();else{e[D+16>>2]=t,e[t+24>>2]=D;break}while(0);if(t=e[r+(k+12)>>2]|0,t)if(t>>>0<(e[10222]|0)>>>0)Y0();else{e[D+20>>2]=t,e[t+24>>2]=D;break}}}else{if(s=e[r+k>>2]|0,n=e[r+(k|4)>>2]|0,t=40912+(o<<1<<2)|0,(s|0)!=(t|0)&&(s>>>0<(e[10222]|0)>>>0&&Y0(),(e[s+12>>2]|0)!=(I|0)&&Y0()),(n|0)==(s|0)){e[10218]=e[10218]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),t=n+8|0,(e[t>>2]|0)==(I|0)?v=t:Y0()):v=n+8|0,e[s+12>>2]=n,e[v>>2]=s}while(0);if(e[w+4>>2]=f|1,e[w+f>>2]=f,(w|0)==(e[10223]|0)){e[10220]=f;return}}if(t=f>>>3,f>>>0<256){n=t<<1,o=40912+(n<<2)|0,s=e[10218]|0,t=1<>2]|0,n>>>0<(e[10222]|0)>>>0?Y0():(E=t,_=n)):(e[10218]=s|t,E=40912+(n+2<<2)|0,_=o),e[E>>2]=w,e[_+12>>2]=w,e[w+8>>2]=_,e[w+12>>2]=o;return}t=f>>>8,t?f>>>0>16777215?o=31:(E=(t+1048320|0)>>>16&8,_=t<>>16&4,_=_<>>16&2,o=14-(I|E|o)+(_<>>15)|0,o=f>>>(o+7|0)&1|o<<1):o=0,t=41176+(o<<2)|0,e[w+28>>2]=o,e[w+20>>2]=0,e[w+16>>2]=0,n=e[10219]|0,s=1<>2]|0;i:do if((e[t+4>>2]&-8|0)!=(f|0)){for(o=f<<((o|0)==31?0:25-(o>>>1)|0);n=t+16+(o>>>31<<2)|0,s=e[n>>2]|0,!!s;)if((e[s+4>>2]&-8|0)==(f|0)){y=s;break i}else o=o<<1,t=s;if(n>>>0<(e[10222]|0)>>>0)Y0();else{e[n>>2]=w,e[w+24>>2]=t,e[w+12>>2]=w,e[w+8>>2]=w;break e}}else y=t;while(0);if(t=y+8|0,n=e[t>>2]|0,_=e[10222]|0,n>>>0>=_>>>0&y>>>0>=_>>>0){e[n+12>>2]=w,e[t>>2]=w,e[w+8>>2]=n,e[w+12>>2]=y,e[w+24>>2]=0;break}else Y0()}else e[10219]=n|s,e[t>>2]=w,e[w+24>>2]=t,e[w+12>>2]=w,e[w+8>>2]=w;while(0);if(w=(e[10226]|0)+-1|0,e[10226]=w,!w)t=41328;else return;for(;t=e[t>>2]|0,t;)t=t+8|0;e[10226]=-1}}function GS(r,t){r=r|0,t=t|0;var n=0;return r?(n=Z(t,r)|0,(t|r)>>>0>65535&&(n=((n>>>0)/(r>>>0)|0|0)==(t|0)?n:-1)):n=0,t=g2(n)|0,!t||!(e[t+-4>>2]&3)||ye(t|0,0,n|0)|0,t|0}function gi(r,t){r=r|0,t=t|0;var n=0,s=0;return r?t>>>0>4294967231?(r=n2()|0,e[r>>2]=12,r=0,r|0):(n=VS(r+-8|0,t>>>0<11?16:t+11&-8)|0,n?(r=n+8|0,r|0):(n=g2(t)|0,n?(s=e[r+-4>>2]|0,s=(s&-8)-(s&3|0?4:8)|0,Ne(n|0,r|0,(s>>>0>>0?s:t)|0)|0,Pe(r),r=n,r|0):(r=0,r|0))):(r=g2(t)|0,r|0)}function VS(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(k=r+4|0,D=e[k>>2]|0,c=D&-8,S=r+c|0,a=e[10222]|0,n=D&3,(n|0)!=1&r>>>0>=a>>>0&r>>>0>>0||Y0(),s=r+(c|4)|0,o=e[s>>2]|0,o&1||Y0(),!n)return t>>>0<256?(r=0,r|0):(c>>>0>=(t+4|0)>>>0&&(c-t|0)>>>0<=e[10338]<<1>>>0||(r=0),r|0);if(c>>>0>=t>>>0)return n=c-t|0,n>>>0<=15||(e[k>>2]=D&1|t|2,e[r+(t+4)>>2]=n|3,e[s>>2]=e[s>>2]|1,qo(r+t|0,n)),r|0;if((S|0)==(e[10224]|0))return n=(e[10221]|0)+c|0,n>>>0<=t>>>0?(r=0,r|0):(v=n-t|0,e[k>>2]=D&1|t|2,e[r+(t+4)>>2]=v|1,e[10224]=r+t,e[10221]=v,r|0);if((S|0)==(e[10223]|0))return s=(e[10220]|0)+c|0,s>>>0>>0?(r=0,r|0):(n=s-t|0,n>>>0>15?(e[k>>2]=D&1|t|2,e[r+(t+4)>>2]=n|1,e[r+s>>2]=n,s=r+(s+4)|0,e[s>>2]=e[s>>2]&-2,s=r+t|0):(e[k>>2]=D&1|s|2,s=r+(s+4)|0,e[s>>2]=e[s>>2]|1,s=0,n=0),e[10220]=n,e[10223]=s,r|0);if(o&2||(g=(o&-8)+c|0,g>>>0>>0))return r=0,r|0;v=g-t|0,f=o>>>3;do if(o>>>0>=256){l=e[r+(c+24)>>2]|0,f=e[r+(c+12)>>2]|0;do if((f|0)==(S|0)){if(s=r+(c+20)|0,n=e[s>>2]|0,!n&&(s=r+(c+16)|0,n=e[s>>2]|0,!n)){h=0;break}for(;;){if(o=n+20|0,f=e[o>>2]|0,f){n=f,s=o;continue}if(o=n+16|0,f=e[o>>2]|0,f)n=f,s=o;else break}if(s>>>0>>0)Y0();else{e[s>>2]=0,h=n;break}}else if(o=e[r+(c+8)>>2]|0,o>>>0>>0&&Y0(),n=o+12|0,(e[n>>2]|0)!=(S|0)&&Y0(),s=f+8|0,(e[s>>2]|0)==(S|0)){e[n>>2]=f,e[s>>2]=o,h=f;break}else Y0();while(0);if(l){if(n=e[r+(c+28)>>2]|0,s=41176+(n<<2)|0,(S|0)==(e[s>>2]|0)){if(e[s>>2]=h,!h){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),n=l+16|0,(e[n>>2]|0)==(S|0)?e[n>>2]=h:e[l+20>>2]=h,!h)break;s=e[10222]|0,h>>>0>>0&&Y0(),e[h+24>>2]=l,n=e[r+(c+16)>>2]|0;do if(n)if(n>>>0>>0)Y0();else{e[h+16>>2]=n,e[n+24>>2]=h;break}while(0);if(n=e[r+(c+20)>>2]|0,n)if(n>>>0<(e[10222]|0)>>>0)Y0();else{e[h+20>>2]=n,e[n+24>>2]=h;break}}}else{if(o=e[r+(c+8)>>2]|0,s=e[r+(c+12)>>2]|0,n=40912+(f<<1<<2)|0,(o|0)!=(n|0)&&(o>>>0>>0&&Y0(),(e[o+12>>2]|0)!=(S|0)&&Y0()),(s|0)==(o|0)){e[10218]=e[10218]&~(1<>>0>>0&&Y0(),n=s+8|0,(e[n>>2]|0)==(S|0)?l=n:Y0()):l=s+8|0,e[o+12>>2]=s,e[l>>2]=o}while(0);return v>>>0<16?(e[k>>2]=g|D&1|2,t=r+(g|4)|0,e[t>>2]=e[t>>2]|1,r|0):(e[k>>2]=D&1|t|2,e[r+(t+4)>>2]=v|3,D=r+(g|4)|0,e[D>>2]=e[D>>2]|1,qo(r+t|0,v),r|0)}function qo(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0;I=r+t|0,n=e[r+4>>2]|0;do if(n&1)y=r,l=t;else{if(h=e[r>>2]|0,!(n&3))return;if(v=r+(0-h)|0,g=h+t|0,c=e[10222]|0,v>>>0>>0&&Y0(),(v|0)==(e[10223]|0)){if(s=r+(t+4)|0,n=e[s>>2]|0,(n&3|0)!=3){y=v,l=g;break}e[10220]=g,e[s>>2]=n&-2,e[r+(4-h)>>2]=g|1,e[I>>2]=g;return}if(f=h>>>3,h>>>0<256){if(o=e[r+(8-h)>>2]|0,s=e[r+(12-h)>>2]|0,n=40912+(f<<1<<2)|0,(o|0)!=(n|0)&&(o>>>0>>0&&Y0(),(e[o+12>>2]|0)!=(v|0)&&Y0()),(s|0)==(o|0)){e[10218]=e[10218]&~(1<>>0>>0&&Y0(),n=s+8|0,(e[n>>2]|0)==(v|0)?a=n:Y0()):a=s+8|0,e[o+12>>2]=s,e[a>>2]=o,y=v,l=g;break}a=e[r+(24-h)>>2]|0,o=e[r+(12-h)>>2]|0;do if((o|0)==(v|0)){if(o=16-h|0,s=r+(o+4)|0,n=e[s>>2]|0,!n&&(s=r+o|0,n=e[s>>2]|0,!n)){S=0;break}for(;;){if(o=n+20|0,f=e[o>>2]|0,f){n=f,s=o;continue}if(o=n+16|0,f=e[o>>2]|0,f)n=f,s=o;else break}if(s>>>0>>0)Y0();else{e[s>>2]=0,S=n;break}}else if(f=e[r+(8-h)>>2]|0,f>>>0>>0&&Y0(),n=f+12|0,(e[n>>2]|0)!=(v|0)&&Y0(),s=o+8|0,(e[s>>2]|0)==(v|0)){e[n>>2]=o,e[s>>2]=f,S=o;break}else Y0();while(0);if(a){if(n=e[r+(28-h)>>2]|0,s=41176+(n<<2)|0,(v|0)==(e[s>>2]|0)){if(e[s>>2]=S,!S){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),n=a+16|0,(e[n>>2]|0)==(v|0)?e[n>>2]=S:e[a+20>>2]=S,!S){y=v,l=g;break}o=e[10222]|0,S>>>0>>0&&Y0(),e[S+24>>2]=a,n=16-h|0,s=e[r+n>>2]|0;do if(s)if(s>>>0>>0)Y0();else{e[S+16>>2]=s,e[s+24>>2]=S;break}while(0);if(n=e[r+(n+4)>>2]|0,n)if(n>>>0<(e[10222]|0)>>>0)Y0();else{e[S+20>>2]=n,e[n+24>>2]=S,y=v,l=g;break}else y=v,l=g}else y=v,l=g}while(0);if(c=e[10222]|0,I>>>0>>0&&Y0(),n=r+(t+4)|0,s=e[n>>2]|0,s&2)e[n>>2]=s&-2,e[y+4>>2]=l|1,e[y+l>>2]=l;else{if((I|0)==(e[10224]|0)){if(_=(e[10221]|0)+l|0,e[10221]=_,e[10224]=y,e[y+4>>2]=_|1,(y|0)!=(e[10223]|0))return;e[10223]=0,e[10220]=0;return}if((I|0)==(e[10223]|0)){_=(e[10220]|0)+l|0,e[10220]=_,e[10223]=y,e[y+4>>2]=_|1,e[y+_>>2]=_;return}l=(s&-8)+l|0,f=s>>>3;do if(s>>>0>=256){a=e[r+(t+24)>>2]|0,o=e[r+(t+12)>>2]|0;do if((o|0)==(I|0)){if(s=r+(t+20)|0,n=e[s>>2]|0,!n&&(s=r+(t+16)|0,n=e[s>>2]|0,!n)){D=0;break}for(;;){if(o=n+20|0,f=e[o>>2]|0,f){n=f,s=o;continue}if(o=n+16|0,f=e[o>>2]|0,f)n=f,s=o;else break}if(s>>>0>>0)Y0();else{e[s>>2]=0,D=n;break}}else if(f=e[r+(t+8)>>2]|0,f>>>0>>0&&Y0(),n=f+12|0,(e[n>>2]|0)!=(I|0)&&Y0(),s=o+8|0,(e[s>>2]|0)==(I|0)){e[n>>2]=o,e[s>>2]=f,D=o;break}else Y0();while(0);if(a){if(n=e[r+(t+28)>>2]|0,s=41176+(n<<2)|0,(I|0)==(e[s>>2]|0)){if(e[s>>2]=D,!D){e[10219]=e[10219]&~(1<>>0<(e[10222]|0)>>>0&&Y0(),n=a+16|0,(e[n>>2]|0)==(I|0)?e[n>>2]=D:e[a+20>>2]=D,!D)break;s=e[10222]|0,D>>>0>>0&&Y0(),e[D+24>>2]=a,n=e[r+(t+16)>>2]|0;do if(n)if(n>>>0>>0)Y0();else{e[D+16>>2]=n,e[n+24>>2]=D;break}while(0);if(n=e[r+(t+20)>>2]|0,n)if(n>>>0<(e[10222]|0)>>>0)Y0();else{e[D+20>>2]=n,e[n+24>>2]=D;break}}}else{if(o=e[r+(t+8)>>2]|0,s=e[r+(t+12)>>2]|0,n=40912+(f<<1<<2)|0,(o|0)!=(n|0)&&(o>>>0>>0&&Y0(),(e[o+12>>2]|0)!=(I|0)&&Y0()),(s|0)==(o|0)){e[10218]=e[10218]&~(1<>>0>>0&&Y0(),n=s+8|0,(e[n>>2]|0)==(I|0)?k=n:Y0()):k=s+8|0,e[o+12>>2]=s,e[k>>2]=o}while(0);if(e[y+4>>2]=l|1,e[y+l>>2]=l,(y|0)==(e[10223]|0)){e[10220]=l;return}}if(n=l>>>3,l>>>0<256){s=n<<1,f=40912+(s<<2)|0,o=e[10218]|0,n=1<>2]|0,s>>>0<(e[10222]|0)>>>0?Y0():(E=n,_=s)):(e[10218]=o|n,E=40912+(s+2<<2)|0,_=f),e[E>>2]=y,e[_+12>>2]=y,e[y+8>>2]=_,e[y+12>>2]=f;return}if(n=l>>>8,n?l>>>0>16777215?f=31:(E=(n+1048320|0)>>>16&8,_=n<>>16&4,_=_<>>16&2,f=14-(I|E|f)+(_<>>15)|0,f=l>>>(f+7|0)&1|f<<1):f=0,n=41176+(f<<2)|0,e[y+28>>2]=f,e[y+20>>2]=0,e[y+16>>2]=0,s=e[10219]|0,o=1<>2]=y,e[y+24>>2]=n,e[y+12>>2]=y,e[y+8>>2]=y;return}n=e[n>>2]|0;e:do if((e[n+4>>2]&-8|0)!=(l|0)){for(f=l<<((f|0)==31?0:25-(f>>>1)|0);s=n+16+(f>>>31<<2)|0,o=e[s>>2]|0,!!o;)if((e[o+4>>2]&-8|0)==(l|0)){n=o;break e}else f=f<<1,n=o;s>>>0<(e[10222]|0)>>>0&&Y0(),e[s>>2]=y,e[y+24>>2]=n,e[y+12>>2]=y,e[y+8>>2]=y;return}while(0);s=n+8|0,o=e[s>>2]|0,_=e[10222]|0,o>>>0>=_>>>0&n>>>0>=_>>>0||Y0(),e[o+12>>2]=y,e[s>>2]=y,e[y+8>>2]=o,e[y+12>>2]=n,e[y+24>>2]=0}function HS(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;if(s=e[9321]|0,jS(42048,s,42104),e[10342]=42892,e[10344]=42912,e[10343]=0,r=e[10720]|0,u=0,e0(62,41368+r|0,42048),f=u,u=0,f&1&&(f=L()|0,y0(41376),U(f|0)),e[41368+(r+72)>>2]=0,e[41368+(r+76)>>2]=-1,o=e[9322]|0,No(42152,o,42112),e[10364]=42972,e[10365]=42992,n=e[10740]|0,u=0,e0(62,41456+n|0,42152),f=u,u=0,f&1&&(f=L()|0,y0(41460),U(f|0)),r=n+72|0,e[41456+r>>2]=0,t=n+76|0,e[41456+t>>2]=-1,f=e[9320]|0,No(42200,f,42120),e[10385]=42972,e[10386]=42992,u=0,e0(62,41540+n|0,42200),l=u,u=0,l&1&&(l=L()|0,y0(41544),U(l|0)),e[41540+r>>2]=0,e[41540+t>>2]=-1,l=e[41540+((e[(e[10385]|0)+-12>>2]|0)+24)>>2]|0,e[10406]=42972,e[10407]=42992,u=0,e0(62,41624+n|0,l|0),l=u,u=0,l&1&&(l=L()|0,y0(41628),U(l|0)),e[41624+r>>2]=0,e[41624+t>>2]=-1,e[41368+((e[(e[10342]|0)+-12>>2]|0)+72)>>2]=41456,r=41540+((e[(e[10385]|0)+-12>>2]|0)+4)|0,e[r>>2]=e[r>>2]|8192,e[41540+((e[(e[10385]|0)+-12>>2]|0)+72)>>2]=41456,WS(42248,s,42128),e[10427]=42932,e[10429]=42952,e[10428]=0,r=e[10730]|0,u=0,e0(62,41708+r|0,42248),l=u,u=0,l&1&&(l=L()|0,vr(41716),U(l|0)),e[41708+(r+72)>>2]=0,e[41708+(r+76)>>2]=-1,Uo(42304,o,42136),e[10449]=43012,e[10450]=43032,n=e[10750]|0,u=0,e0(62,41796+n|0,42304),l=u,u=0,l&1&&(l=L()|0,vr(41800),U(l|0)),r=n+72|0,e[41796+r>>2]=0,t=n+76|0,e[41796+t>>2]=-1,Uo(42352,f,42144),e[10470]=43012,e[10471]=43032,u=0,e0(62,41880+n|0,42352),l=u,u=0,l&1&&(l=L()|0,vr(41884),U(l|0)),e[41880+r>>2]=0,e[41880+t>>2]=-1,l=e[41880+((e[(e[10470]|0)+-12>>2]|0)+24)>>2]|0,e[10491]=43012,e[10492]=43032,u=0,e0(62,41964+n|0,l|0),l=u,u=0,l&1)l=L()|0,vr(41968),U(l|0);else{e[41964+r>>2]=0,e[41964+t>>2]=-1,e[41708+((e[(e[10427]|0)+-12>>2]|0)+72)>>2]=41796,l=41880+((e[(e[10470]|0)+-12>>2]|0)+4)|0,e[l>>2]=e[l>>2]|8192,e[41880+((e[(e[10470]|0)+-12>>2]|0)+72)>>2]=41796;return}}function zS(r){r=r|0,u=0,j(70,41456)|0,r=u,u=0,!(!(r&1)&&(u=0,j(70,41624)|0,r=u,u=0,!(r&1))&&(u=0,j(71,41796)|0,r=u,u=0,!(r&1))&&(u=0,j(71,41964)|0,r=u,u=0,!(r&1)))&&(r=L(0)|0,ne(r))}function YS(){HS(0),J0(187,56757,l0|0)|0}function XS(){}function jS(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;if(o=C,C=C+16|0,f=o+4|0,s=o,kn(r),e[r>>2]=42600,e[r+32>>2]=t,e[r+40>>2]=n,e[r+48>>2]=-1,m[r+52>>0]=0,Yi(f,r+4|0),e[s>>2]=e[f>>2],u=0,e0(23,r|0,s|0),n=u,u=0,n&1)f=L()|0,y2(s),Q0(r),U(f|0);else{y2(s),C=o;return}}function No(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;if(o=C,C=C+16|0,f=o+4|0,s=o,kn(r),e[r>>2]=42536,e[r+32>>2]=t,Yi(f,r+4|0),e[s>>2]=e[f>>2],u=0,t=p0(37,s|0,44280)|0,f=u,u=0,f&1)f=L()|0,y2(s),Q0(r),U(f|0);else{y2(s),e[r+36>>2]=t,e[r+40>>2]=n,f=(X0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,m[r+44>>0]=f,C=o;return}}function WS(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;if(o=C,C=C+16|0,f=o+4|0,s=o,Xo(r),e[r>>2]=42472,e[r+32>>2]=t,e[r+40>>2]=n,e[r+48>>2]=-1,m[r+52>>0]=0,Yi(f,r+4|0),e[s>>2]=e[f>>2],u=0,e0(21,r|0,s|0),n=u,u=0,n&1)f=L()|0,y2(s),ji(r),U(f|0);else{y2(s),C=o;return}}function Uo(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;if(o=C,C=C+16|0,f=o+4|0,s=o,Xo(r),e[r>>2]=42408,e[r+32>>2]=t,Yi(f,r+4|0),e[s>>2]=e[f>>2],u=0,t=p0(37,s|0,44288)|0,f=u,u=0,f&1)f=L()|0,y2(s),ji(r),U(f|0);else{y2(s),e[r+36>>2]=t,e[r+40>>2]=n,f=(X0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,m[r+44>>0]=f,C=o;return}}function JS(r){r=r|0,ji(r),V(r)}function KS(r,t){r=r|0,t=t|0,X0[e[(e[r>>2]|0)+24>>2]&127](r)|0,t=E2(t,44288)|0,e[r+36>>2]=t,t=(X0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,m[r+44>>0]=t}function ZS(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;h=C,C=C+16|0,a=h+8|0,l=h,n=r+36|0,s=r+40|0,o=a+8|0,f=a,t=r+32|0;e:for(;;){if(r=e[n>>2]|0,r=Ki[e[(e[r>>2]|0)+20>>2]&31](r,e[s>>2]|0,a,o,l)|0,S=(e[l>>2]|0)-f|0,(P1(a,1,S,e[t>>2]|0)|0)!=(S|0)){r=-1;break}switch(r|0){case 1:break;case 2:{r=-1;break e}default:{c=4;break e}}}return(c|0)==4&&(r=((Rn(e[t>>2]|0)|0)!=0)<<31>>31),C=h,r|0}function $S(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;e:do if(m[r+44>>0]|0)t=P1(t,4,n,e[r+32>>2]|0)|0;else if((n|0)>0)for(s=t,t=0;;){if((M2[e[(e[r>>2]|0)+52>>2]&63](r,e[s>>2]|0)|0)==-1)break e;if(t=t+1|0,(t|0)<(n|0))s=s+4|0;else break}else t=0;while(0);return t|0}function bS(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;I=C,C=C+32|0,v=I+16|0,n=I+8|0,g=I+4|0,S=I,k=(t|0)==-1;e:do if(k)D=11;else{if(e[n>>2]=t,m[r+44>>0]|0)if((P1(n,4,1,e[r+32>>2]|0)|0)==1){D=11;break}else{n=-1;break}for(e[g>>2]=v,c=n+4|0,h=r+36|0,o=r+40|0,f=v+8|0,l=v,a=r+32|0;;){if(r=e[h>>2]|0,r=N1[e[(e[r>>2]|0)+12>>2]&15](r,e[o>>2]|0,n,c,S,v,f,g)|0,(e[S>>2]|0)==(n|0)){n=-1;break e}if((r|0)==3)break;if(s=(r|0)==1,r>>>0>=2){n=-1;break e}if(r=(e[g>>2]|0)-l|0,(P1(v,1,r,e[a>>2]|0)|0)!=(r|0)){n=-1;break e}if(s)n=s?e[S>>2]|0:n;else{D=11;break e}}(P1(n,1,1,e[a>>2]|0)|0)!=1?n=-1:D=11}while(0);return(D|0)==11&&(n=k?0:t),C=I,n|0}function eh(r,t){r=r|0,t=t|0;var n=0,s=0;s=E2(t,44288)|0,n=r+36|0,e[n>>2]=s,s=X0[e[(e[s>>2]|0)+24>>2]&127](s)|0,t=r+44|0,e[t>>2]=s,n=e[n>>2]|0,n=(X0[e[(e[n>>2]|0)+28>>2]&127](n)|0)&1,m[r+53>>0]=n,(e[t>>2]|0)>8&&hr(56783)}function ih(r){r=r|0,ji(r),V(r)}function rh(r){return r=r|0,Bo(r,0)|0}function th(r){return r=r|0,Bo(r,1)|0}function nh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;h=C,C=C+32|0,c=h+16|0,a=h+8|0,s=h+4|0,o=h,f=r+52|0,n=(m[f>>0]|0)!=0;e:do if((t|0)==-1)n?t=-1:(t=e[r+48>>2]|0,m[f>>0]=(t|0)!=-1&1);else{l=r+48|0;i:do if(n){switch(e[s>>2]=e[l>>2],n=e[r+36>>2]|0,N1[e[(e[n>>2]|0)+12>>2]&15](n,e[r+40>>2]|0,s,s+4|0,o,c,c+8|0,a)|0){case 1:case 2:{t=-1;break e}case 3:{m[c>>0]=e[l>>2],e[a>>2]=c+1;break}default:}for(n=r+32|0;;){if(s=e[a>>2]|0,s>>>0<=c>>>0)break i;if(r=s+-1|0,e[a>>2]=r,(Mr(m[r>>0]|0,e[n>>2]|0)|0)==-1){t=-1;break e}}}while(0);e[l>>2]=t,m[f>>0]=1}while(0);return C=h,t|0}function Bo(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;D=C,C=C+32|0,k=D+16|0,v=D+8|0,h=D+4|0,S=D,o=r+52|0;e:do if(m[o>>0]|0)s=r+48|0,n=e[s>>2]|0,t&&(e[s>>2]=-1,m[o>>0]=0);else{if(n=e[r+44>>2]|0,n=(n|0)>1?n:1,g=r+32|0,(n|0)>0){o=0;do{if(s=Or(e[g>>2]|0)|0,(s|0)==-1){n=-1;break e}m[k+o>>0]=s,o=o+1|0}while((o|0)<(n|0))}i:do if(m[r+53>>0]|0)e[v>>2]=m[k>>0];else{l=r+40|0,a=r+36|0,c=v+4|0;r:for(;;){switch(I=e[l>>2]|0,o=I,s=e[o>>2]|0,o=e[o+4>>2]|0,E=e[a>>2]|0,f=k+n|0,N1[e[(e[E>>2]|0)+16>>2]&15](E,I,k,f,h,v,c,S)|0){case 2:{n=-1;break e}case 3:break r;case 1:break;default:break i}if(E=e[l>>2]|0,e[E>>2]=s,e[E+4>>2]=o,(n|0)==8){n=-1;break e}if(s=Or(e[g>>2]|0)|0,(s|0)==-1){n=-1;break e}m[f>>0]=s,n=n+1|0}e[v>>2]=m[k>>0]}while(0);if(t){n=e[v>>2]|0,e[r+48>>2]=n;break}for(;!((n|0)<=0);)if(n=n+-1|0,(Mr(m[k+n>>0]|0,e[g>>2]|0)|0)==-1){n=-1;break e}n=e[v>>2]|0}while(0);return C=D,n|0}function sh(r){r=r|0,Q0(r),V(r)}function oh(r,t){r=r|0,t=t|0,X0[e[(e[r>>2]|0)+24>>2]&127](r)|0,t=E2(t,44280)|0,e[r+36>>2]=t,t=(X0[e[(e[t>>2]|0)+28>>2]&127](t)|0)&1,m[r+44>>0]=t}function fh(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;h=C,C=C+16|0,a=h+8|0,l=h,n=r+36|0,s=r+40|0,o=a+8|0,f=a,t=r+32|0;e:for(;;){if(r=e[n>>2]|0,r=Ki[e[(e[r>>2]|0)+20>>2]&31](r,e[s>>2]|0,a,o,l)|0,S=(e[l>>2]|0)-f|0,(P1(a,1,S,e[t>>2]|0)|0)!=(S|0)){r=-1;break}switch(r|0){case 1:break;case 2:{r=-1;break e}default:{c=4;break e}}}return(c|0)==4&&(r=((Rn(e[t>>2]|0)|0)!=0)<<31>>31),C=h,r|0}function lh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;e:do if(m[r+44>>0]|0)t=P1(t,1,n,e[r+32>>2]|0)|0;else if((n|0)>0)for(s=t,t=0;;){if((M2[e[(e[r>>2]|0)+52>>2]&63](r,z[s>>0]|0)|0)==-1)break e;if(t=t+1|0,(t|0)<(n|0))s=s+1|0;else break}else t=0;while(0);return t|0}function uh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;I=C,C=C+32|0,v=I+16|0,n=I+8|0,g=I+4|0,S=I,k=(t|0)==-1;e:do if(k)D=11;else{if(m[n>>0]=t,m[r+44>>0]|0)if((P1(n,1,1,e[r+32>>2]|0)|0)==1){D=11;break}else{n=-1;break}for(e[g>>2]=v,h=n+1|0,o=r+36|0,f=r+40|0,l=v+8|0,a=v,c=r+32|0;;){if(r=e[o>>2]|0,r=N1[e[(e[r>>2]|0)+12>>2]&15](r,e[f>>2]|0,n,h,S,v,l,g)|0,(e[S>>2]|0)==(n|0)){n=-1;break e}if((r|0)==3)break;if(s=(r|0)==1,r>>>0>=2){n=-1;break e}if(r=(e[g>>2]|0)-a|0,(P1(v,1,r,e[c>>2]|0)|0)!=(r|0)){n=-1;break e}if(s)n=s?e[S>>2]|0:n;else{D=11;break e}}(P1(n,1,1,e[c>>2]|0)|0)!=1?n=-1:D=11}while(0);return(D|0)==11&&(n=k?0:t),C=I,n|0}function ah(r,t){r=r|0,t=t|0;var n=0,s=0;s=E2(t,44280)|0,n=r+36|0,e[n>>2]=s,s=X0[e[(e[s>>2]|0)+24>>2]&127](s)|0,t=r+44|0,e[t>>2]=s,n=e[n>>2]|0,n=(X0[e[(e[n>>2]|0)+28>>2]&127](n)|0)&1,m[r+53>>0]=n,(e[t>>2]|0)>8&&hr(56783)}function ch(r){r=r|0,Q0(r),V(r)}function Sh(r){return r=r|0,Qo(r,0)|0}function hh(r){return r=r|0,Qo(r,1)|0}function mh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;h=C,C=C+32|0,c=h+16|0,a=h+4|0,s=h+8|0,o=h,f=r+52|0,n=(m[f>>0]|0)!=0;e:do if((t|0)==-1)n?t=-1:(t=e[r+48>>2]|0,m[f>>0]=(t|0)!=-1&1);else{l=r+48|0;i:do if(n){switch(m[s>>0]=e[l>>2],n=e[r+36>>2]|0,N1[e[(e[n>>2]|0)+12>>2]&15](n,e[r+40>>2]|0,s,s+1|0,o,c,c+8|0,a)|0){case 1:case 2:{t=-1;break e}case 3:{m[c>>0]=e[l>>2],e[a>>2]=c+1;break}default:}for(n=r+32|0;;){if(s=e[a>>2]|0,s>>>0<=c>>>0)break i;if(r=s+-1|0,e[a>>2]=r,(Mr(m[r>>0]|0,e[n>>2]|0)|0)==-1){t=-1;break e}}}while(0);e[l>>2]=t,m[f>>0]=1}while(0);return C=h,t|0}function Qo(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;D=C,C=C+32|0,k=D+16|0,v=D+8|0,h=D+4|0,S=D,o=r+52|0;e:do if(m[o>>0]|0)s=r+48|0,n=e[s>>2]|0,t&&(e[s>>2]=-1,m[o>>0]=0);else{if(n=e[r+44>>2]|0,n=(n|0)>1?n:1,g=r+32|0,(n|0)>0){o=0;do{if(s=Or(e[g>>2]|0)|0,(s|0)==-1){n=-1;break e}m[k+o>>0]=s,o=o+1|0}while((o|0)<(n|0))}i:do if(m[r+53>>0]|0)m[v>>0]=m[k>>0]|0;else{l=r+40|0,a=r+36|0,c=v+1|0;r:for(;;){switch(I=e[l>>2]|0,o=I,s=e[o>>2]|0,o=e[o+4>>2]|0,E=e[a>>2]|0,f=k+n|0,N1[e[(e[E>>2]|0)+16>>2]&15](E,I,k,f,h,v,c,S)|0){case 2:{n=-1;break e}case 3:break r;case 1:break;default:break i}if(E=e[l>>2]|0,e[E>>2]=s,e[E+4>>2]=o,(n|0)==8){n=-1;break e}if(s=Or(e[g>>2]|0)|0,(s|0)==-1){n=-1;break e}m[f>>0]=s,n=n+1|0}m[v>>0]=m[k>>0]|0}while(0);if(t)n=m[v>>0]|0,e[r+48>>2]=n&255;else{for(;!((n|0)<=0);)if(n=n+-1|0,(Mr(z[k+n>>0]|0,e[g>>2]|0)|0)==-1){n=-1;break e}n=m[v>>0]|0}n=n&255}while(0);return C=D,n|0}function Ad(r){r=r|0}function gr(r){r=r|0,r=r+4|0,e[r>>2]=(e[r>>2]|0)+1}function se(r){r=r|0;var t=0,n=0;return n=r+4|0,t=e[n>>2]|0,e[n>>2]=t+-1,t?r=0:(K0[e[(e[r>>2]|0)+8>>2]&255](r),r=1),r|0}function ph(r,t){if(r=r|0,t=t|0,e[r>>2]=36868,u=0,e0(86,r+4|0,(m[t>>0]&1?e[t+8>>2]|0:t+1|0)|0),r=u,u=0,r&1)r=L()|0,U(r|0);else return}function gh(r,t){if(r=r|0,t=t|0,e[r>>2]=36868,u=0,e0(86,r+4|0,t|0),r=u,u=0,r&1)r=L()|0,U(r|0);else return}function vh(r,t){r=r|0,t=t|0;var n=0,s=0;s=fi(t)|0,n=C0(s+13|0)|0,e[n>>2]=s,e[n+4>>2]=s,e[n+8>>2]=0,n=n+12|0,Ne(n|0,t|0,s+1|0)|0,e[r>>2]=n}function Th(r,t,n){r=r|0,t=t|0,n=n|0,e[r>>2]=n,e[r+4>>2]=t}function kh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;return o=C,C=C+16|0,s=o,Ur[e[(e[r>>2]|0)+12>>2]&15](s,r,t),(e[s+4>>2]|0)==(e[n+4>>2]|0)?s=(e[s>>2]|0)==(e[n>>2]|0):s=0,C=o,s|0}function wh(r,t,n){return r=r|0,t=t|0,n=n|0,((e[t>>2]|0)==(n|0)?(e[t+4>>2]|0)==(r|0):0)|0}function dh(r,t,n){r=r|0,t=t|0,n=n|0,t=kf(n)|0,q1(r,t,fi(t)|0)}function Ch(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;l=C,C=C+16|0,f=l,s=e[t>>2]|0;do if(s)if(o=m[n>>0]|0,o&1?o=e[n+4>>2]|0:o=(o&255)>>>1,o&&(Oh(n,56990)|0,s=e[t>>2]|0),t=e[t+4>>2]|0,Ur[e[(e[t>>2]|0)+24>>2]&15](f,t,s),t=m[f>>0]|0,o=(t&1)==0,u=0,ie(30,n|0,(o?f+1|0:e[f+8>>2]|0)|0,(o?(t&255)>>>1:e[f+4>>2]|0)|0)|0,t=u,u=0,t&1)l=L()|0,H(f),U(l|0);else{H(f);break}while(0);e[r>>2]=e[n>>2],e[r+4>>2]=e[n+4>>2],e[r+8>>2]=e[n+8>>2],e[n>>2]=0,e[n+4>>2]=0,e[n+8>>2]=0,C=l}function yh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;o=C,C=C+32|0,s=o+12|0,f=o,q1(f,n,fi(n)|0),u=0,c0(10,s|0,t|0,f|0),n=u,u=0;do if(n&1)s=L()|0;else if(u=0,e0(87,r|0,s|0),n=u,u=0,n&1){o=L()|0,H(s),s=o;break}else{H(s),H(f),e[r>>2]=42664,n=e[t+4>>2]|0,f=r+8|0,e[f>>2]=e[t>>2],e[f+4>>2]=n,C=o;return}while(0);H(f),U(s|0)}function Ah(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0;f=C,C=C+48|0,o=f+24|0,a=f+16|0,l=f,e[a>>2]=t,e[a+4>>2]=n,mn(l,s),u=0,c0(10,o|0,a|0,l|0),s=u,u=0;do if(s&1)o=L()|0;else if(u=0,e0(87,r|0,o|0),a=u,u=0,a&1){a=L()|0,H(o),o=a;break}else{H(o),H(l),e[r>>2]=42664,e[r+8>>2]=t,e[r+12>>2]=n,C=f;return}while(0);H(l),U(o|0)}function Dh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;o=C,C=C+48|0,s=o+24|0,l=o+16|0,f=o,e[l>>2]=t,e[l+4>>2]=n,q1(f,58898,0),u=0,c0(10,s|0,l|0,f|0),l=u,u=0;do if(l&1)s=L()|0;else if(u=0,e0(87,r|0,s|0),l=u,u=0,l&1){l=L()|0,H(s),s=l;break}else{H(s),H(f),e[r>>2]=42664,e[r+8>>2]=t,e[r+12>>2]=n,C=o;return}while(0);H(f),U(s|0)}function hn(r){r=r|0,Ir(r)}function _h(r){r=r|0,Ir(r),V(r)}function Ih(r){r=r|0}function Ph(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if(Hs(42676)|0,(e[r>>2]|0)==1)do S4(42704,42676)|0;while((e[r>>2]|0)==1);do if(e[r>>2]|0)Bs(42676)|0;else{if(e[r>>2]=1,u=0,j(72,42676)|0,s=u,u=0,!(s&1)&&(u=0,I0(n|0,t|0),s=u,u=0,!(s&1))&&(u=0,j(73,42676)|0,s=u,u=0,!(s&1))&&(e[r>>2]=-1,u=0,j(72,42676)|0,s=u,u=0,!(s&1))&&(u=0,j(74,42704)|0,s=u,u=0,!(s&1)))break;s=L(0)|0,H2(s|0)|0,u=0,j(73,42676)|0,s=u,u=0,!(s&1)&&(e[r>>2]=0,u=0,j(72,42676)|0,s=u,u=0,!(s&1))&&(u=0,j(74,42704)|0,s=u,u=0,!(s&1))&&(u=0,i2(5),u=0),t=L()|0,u=0,i2(3),s=u,u=0,s&1?(s=L(0)|0,ne(s)):U(t|0)}while(0)}function mn(r,t){r=r|0,t=t|0,m[t>>0]&1?q1(r,e[t+8>>2]|0,e[t+4>>2]|0):(e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2])}function q1(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;n>>>0>4294967279&&t1(r),n>>>0<11?(m[r>>0]=n<<1,r=r+1|0):(o=n+16&-16,s=C0(o)|0,e[r+8>>2]=s,e[r>>2]=o|1,e[r+4>>2]=n,r=s),Ne(r|0,t|0,n|0)|0,m[r+n>>0]=0}function pn(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;t>>>0>4294967279&&t1(r),t>>>0<11?(m[r>>0]=t<<1,r=r+1|0):(o=t+16&-16,s=C0(o)|0,e[r+8>>2]=s,e[r>>2]=o|1,e[r+4>>2]=t,r=s),ye(r|0,n|0,t|0)|0,m[r+t>>0]=0}function H(r){r=r|0,m[r>>0]&1&&V(e[r+8>>2]|0)}function Eh(r,t){r=r|0,t=t|0;var n=0,s=0;return(r|0)!=(t|0)&&(n=m[t>>0]|0,s=(n&1)==0,Go(r,s?t+1|0:e[t+8>>2]|0,s?(n&255)>>>1:e[t+4>>2]|0)|0),r|0}function Lh(r,t){return r=r|0,t=t|0,Go(r,t,fi(t)|0)|0}function Go(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;s=m[r>>0]|0,s&1?(s=e[r>>2]|0,f=(s&-2)+-1|0,s=s&255):f=10,o=(s&1)==0;do if(f>>>0>=n>>>0)if(o?s=r+1|0:s=e[r+8>>2]|0,dr(s|0,t|0,n|0)|0,m[s+n>>0]=0,m[r>>0]&1){e[r+4>>2]=n;break}else{m[r>>0]=n<<1;break}else o?s=(s&255)>>>1:s=e[r+4>>2]|0,zo(r,f,n-f|0,s,0,s,n,t);while(0);return r|0}function Vo(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;s=m[r>>0]|0,o=(s&1)==0,o?s=(s&255)>>>1:s=e[r+4>>2]|0;do if(s>>>0>=t>>>0)if(o){m[r+1+t>>0]=0,m[r>>0]=t<<1;break}else{m[(e[r+8>>2]|0)+t>>0]=0,e[r+4>>2]=t;break}else Fh(r,t-s|0,n)|0;while(0)}function Fh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;return t&&(s=m[r>>0]|0,s&1?(s=e[r>>2]|0,o=(s&-2)+-1|0,s=s&255):o=10,s&1?f=e[r+4>>2]|0:f=(s&255)>>>1,(o-f|0)>>>0>>0&&(gn(r,o,t-o+f|0,f,f,0,0),s=m[r>>0]|0),s&1?o=e[r+8>>2]|0:o=r+1|0,ye(o+f|0,n|0,t|0)|0,s=f+t|0,m[r>>0]&1?e[r+4>>2]=s:m[r>>0]=s<<1,m[o+s>>0]=0),r|0}function Rh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;t>>>0>4294967279&&t1(r),n=m[r>>0]|0,n&1?(n=e[r>>2]|0,s=(n&-2)+-1|0,n=n&255):s=10,n&1?a=e[r+4>>2]|0:a=(n&255)>>>1,t=a>>>0>t>>>0?a:t,t>>>0<11?l=10:l=(t+16&-16)+-1|0;e:do if((l|0)!=(s|0)){do if((l|0)!=10){if(t=l+1|0,l>>>0<=s>>>0){if(u=0,t=j(67,t|0)|0,f=u,u=0,f&1){r=L(0)|0,H2(r|0)|0,K2();break e}}else t=C0(t)|0;if(n&1){s=1,o=e[r+8>>2]|0,f=1;break}else{s=1,o=r+1|0,f=0;break}}else t=r+1|0,s=0,o=e[r+8>>2]|0,f=1;while(0);if(n&1?n=e[r+4>>2]|0:n=(n&255)>>>1,Ne(t|0,o|0,n+1|0)|0,f&&V(o),s){e[r>>2]=l+1|1,e[r+4>>2]=a,e[r+8>>2]=t;break}else{m[r>>0]=a<<1;break}}while(0)}function Oh(r,t){return r=r|0,t=t|0,Ho(r,t,fi(t)|0)|0}function Mh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;n=m[r>>0]|0,s=(n&1)!=0,s?(o=(e[r>>2]&-2)+-1|0,f=e[r+4>>2]|0):(o=10,f=(n&255)>>>1),(f|0)==(o|0)?(gn(r,o,1,o,o,0,0),m[r>>0]&1?o=8:o=7):s?o=8:o=7,(o|0)==7?(m[r>>0]=(f<<1)+2,n=r+1|0,s=f+1|0):(o|0)==8&&(n=e[r+8>>2]|0,s=f+1|0,e[r+4>>2]=s),m[n+f>>0]=t,m[n+s>>0]=0}function Ho(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;return s=m[r>>0]|0,s&1?(s=e[r>>2]|0,o=(s&-2)+-1|0,s=s&255):o=10,s&1?f=e[r+4>>2]|0:f=(s&255)>>>1,(o-f|0)>>>0>=n>>>0?n&&(s&1?o=e[r+8>>2]|0:o=r+1|0,Ne(o+f|0,t|0,n|0)|0,s=f+n|0,m[r>>0]&1?e[r+4>>2]=s:m[r>>0]=s<<1,m[o+s>>0]=0):zo(r,o,n-o+f|0,f,f,0,n,t),r|0}function zo(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0;(-18-t|0)>>>0>>0&&t1(r),m[r>>0]&1?S=e[r+8>>2]|0:S=r+1|0,t>>>0<2147483623?(c=n+t|0,h=t<<1,c=c>>>0>>0?h:c,c=c>>>0<11?11:c+16&-16):c=-17,h=C0(c)|0,o&&Ne(h|0,S|0,o|0)|0,l&&Ne(h+o|0,a|0,l|0)|0,n=s-f|0,(n|0)!=(o|0)&&Ne(h+(l+o)|0,S+(f+o)|0,n-o|0)|0,(t|0)!=10&&V(S),e[r+8>>2]=h,e[r>>2]=c|1,t=n+l|0,e[r+4>>2]=t,m[h+t>>0]=0}function gn(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0;(-17-t|0)>>>0>>0&&t1(r),m[r>>0]&1?h=e[r+8>>2]|0:h=r+1|0,t>>>0<2147483623?(a=n+t|0,c=t<<1,a=a>>>0>>0?c:a,a=a>>>0<11?11:a+16&-16):a=-17,c=C0(a)|0,o&&Ne(c|0,h|0,o|0)|0,n=s-f|0,(n|0)!=(o|0)&&Ne(c+(l+o)|0,h+(f+o)|0,n-o|0)|0,(t|0)!=10&&V(h),e[r+8>>2]=c,e[r>>2]=a|1}function vn(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;n>>>0>1073741807&&t1(r),n>>>0<2?(m[r>>0]=n<<1,r=r+4|0):(o=n+4&-4,s=C0(o<<2)|0,e[r+8>>2]=s,e[r>>2]=o|1,e[r+4>>2]=n,r=s),li(r,t,n)|0,e[r+(n<<2)>>2]=0}function Tn(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;t>>>0>1073741807&&t1(r),t>>>0<2?(m[r>>0]=t<<1,r=r+4|0):(o=t+4&-4,s=C0(o<<2)|0,e[r+8>>2]=s,e[r>>2]=o|1,e[r+4>>2]=t,r=s),JT(r,n,t)|0,e[r+(t<<2)>>2]=0}function b0(r){r=r|0,m[r>>0]&1&&V(e[r+8>>2]|0)}function xh(r,t){return r=r|0,t=t|0,qh(r,t,qr(t)|0)|0}function qh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;s=m[r>>0]|0,s&1?(s=e[r>>2]|0,f=(s&-2)+-1|0,s=s&255):f=1,o=(s&1)==0;do if(f>>>0>=n>>>0)if(o?s=r+4|0:s=e[r+8>>2]|0,WT(s,t,n)|0,e[s+(n<<2)>>2]=0,m[r>>0]&1){e[r+4>>2]=n;break}else{m[r>>0]=n<<1;break}else o?s=(s&255)>>>1:s=e[r+4>>2]|0,Bh(r,f,n-f|0,s,0,s,n,t);while(0);return r|0}function Nh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;t>>>0>1073741807&&t1(r),n=m[r>>0]|0,n&1?(n=e[r>>2]|0,s=(n&-2)+-1|0,n=n&255):s=1,n&1?a=e[r+4>>2]|0:a=(n&255)>>>1,t=a>>>0>t>>>0?a:t,t>>>0<2?l=1:l=(t+4&-4)+-1|0;e:do if((l|0)!=(s|0)){do if((l|0)!=1){if(t=(l<<2)+4|0,l>>>0<=s>>>0){if(u=0,t=j(67,t|0)|0,f=u,u=0,f&1){r=L(0)|0,H2(r|0)|0,K2();break e}}else t=C0(t)|0;if(n&1){s=1,o=e[r+8>>2]|0,f=1;break}else{s=1,o=r+4|0,f=0;break}}else t=r+4|0,s=0,o=e[r+8>>2]|0,f=1;while(0);if(n&1?n=e[r+4>>2]|0:n=(n&255)>>>1,li(t,o,n+1|0)|0,f&&V(o),s){e[r>>2]=l+1|1,e[r+4>>2]=a,e[r+8>>2]=t;break}else{m[r>>0]=a<<1;break}}while(0)}function Uh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;n=m[r>>0]|0,s=(n&1)!=0,s?(o=(e[r>>2]&-2)+-1|0,f=e[r+4>>2]|0):(o=1,f=(n&255)>>>1),(f|0)==(o|0)?(Yo(r,o,1,o,o,0,0),m[r>>0]&1?o=8:o=7):s?o=8:o=7,(o|0)==7?(m[r>>0]=(f<<1)+2,n=r+4|0,s=f+1|0):(o|0)==8&&(n=e[r+8>>2]|0,s=f+1|0,e[r+4>>2]=s),e[n+(f<<2)>>2]=t,e[n+(s<<2)>>2]=0}function Bh(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0;(1073741806-t|0)>>>0>>0&&t1(r),m[r>>0]&1?S=e[r+8>>2]|0:S=r+4|0,t>>>0<536870887?(c=n+t|0,h=t<<1,c=c>>>0>>0?h:c,c=c>>>0<2?2:c+4&-4):c=1073741807,h=C0(c<<2)|0,o&&li(h,S,o)|0,l&&li(h+(o<<2)|0,a,l)|0,n=s-f|0,(n|0)!=(o|0)&&li(h+(l+o<<2)|0,S+(f+o<<2)|0,n-o|0)|0,(t|0)!=1&&V(S),e[r+8>>2]=h,e[r>>2]=c|1,t=n+l|0,e[r+4>>2]=t,e[h+(t<<2)>>2]=0}function Yo(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0;(1073741807-t|0)>>>0>>0&&t1(r),m[r>>0]&1?h=e[r+8>>2]|0:h=r+4|0,t>>>0<536870887?(a=n+t|0,c=t<<1,a=a>>>0>>0?c:a,a=a>>>0<2?2:a+4&-4):a=1073741807,c=C0(a<<2)|0,o&&li(c,h,o)|0,n=s-f|0,(n|0)!=(o|0)&&li(c+(l+o<<2)|0,h+(f+o<<2)|0,n-o|0)|0,(t|0)!=1&&V(h),e[r+8>>2]=c,e[r>>2]=a|1}function Qh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;if(o=t,s=n-o|0,s>>>0>4294967279&&t1(r),s>>>0<11?(m[r>>0]=s<<1,f=r+1|0):(l=s+16&-16,f=C0(l)|0,e[r+8>>2]=f,e[r>>2]=l|1,e[r+4>>2]=s),r=n-o|0,(t|0)!=(n|0))for(s=f;m[s>>0]=m[t>>0]|0,t=t+1|0,(t|0)!=(n|0);)s=s+1|0;m[f+r>>0]=0}function Gh(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;if(f=t,s=n-f|0,o=s>>2,o>>>0>1073741807&&t1(r),o>>>0<2?(m[r>>0]=s>>>1,r=r+4|0):(l=o+4&-4,s=C0(l<<2)|0,e[r+8>>2]=s,e[r>>2]=l|1,e[r+4>>2]=o,r=s),o=(n-f|0)>>>2,(t|0)!=(n|0))for(s=r;e[s>>2]=e[t>>2],t=t+4|0,(t|0)!=(n|0);)s=s+4|0;e[r+(o<<2)>>2]=0}function Vh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0;if(n=C,C=C+16|0,s=n,o=(e[r+24>>2]|0)==0,e[r+16>>2]=o&1|t,!((o&1|t)&e[r+20>>2])){C=n;return}t=H0(16)|0,q9()|0,e[s>>2]=1,e[s+4>>2]=43112,u=0,c0(11,t|0,57437,s|0),o=u,u=0,o&1?(o=L()|0,z0(t|0),U(o|0)):me(t|0,864,112)}function N2(r){r=r|0;var t=0;if(e[r>>2]=43068,u=0,e0(88,r|0,0),t=u,u=0,t&1)t=L(0)|0,ne(t);else{y2(r+28|0),Pe(e[r+32>>2]|0),Pe(e[r+36>>2]|0),Pe(e[r+48>>2]|0),Pe(e[r+60>>2]|0);return}}function y0(r){r=r|0,N2(r)}function Dd(r){r=r|0,N2(r),V(r)}function Hh(r,t){r=r|0,t=t|0;var n=0,s=0,o=0;if(n=e[r+40>>2]|0,s=r+32|0,o=r+36|0,n)do n=n+-1|0,Ur[e[(e[s>>2]|0)+(n<<2)>>2]&15](t,r,e[(e[o>>2]|0)+(n<<2)>>2]|0);while(n|0)}function Je(r){r=r|0;var t=0,n=0;return n=C,C=C+16|0,t=n,Yi(t,r+28|0),C=n,e[t>>2]|0}function zh(r,t){r=r|0,t=t|0;var n=0;e[r+24>>2]=t,e[r+16>>2]=(t|0)==0&1,e[r+20>>2]=0,e[r+4>>2]=4098,e[r+12>>2]=0,e[r+8>>2]=6,n=r+28|0,t=r+32|0,r=t+40|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(r|0));cn(n)}function vr(r){r=r|0,N2(r)}function _d(r){r=r|0,N2(r),V(r)}function Q0(r){r=r|0,e[r>>2]=42760,y2(r+4|0)}function Yh(r){r=r|0,e[r>>2]=42760,y2(r+4|0),V(r)}function kn(r){r=r|0,e[r>>2]=42760,cn(r+4|0),r=r+8|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[r+20>>2]=0}function Xh(r,t){r=r|0,t=t|0}function jh(r,t,n){return r=r|0,t=t|0,n=n|0,r|0}function Wh(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function Jh(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function Kh(r){return r=r|0,0}function Zh(r){return r=r|0,0}function $h(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;f=r+12|0,l=r+16|0;e:do if((n|0)>0)for(o=t,t=0;;){if(s=e[f>>2]|0,s>>>0<(e[l>>2]|0)>>>0)e[f>>2]=s+1,s=m[s>>0]|0;else{if(s=X0[e[(e[r>>2]|0)+40>>2]&127](r)|0,(s|0)==-1)break e;s=s&255}if(m[o>>0]=s,t=t+1|0,(t|0)<(n|0))o=o+1|0;else break}else t=0;while(0);return t|0}function bh(r){return r=r|0,-1}function e9(r){r=r|0;var t=0;return(X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1?r=-1:(t=r+12|0,r=e[t>>2]|0,e[t>>2]=r+1,r=z[r>>0]|0),r|0}function i9(r,t){return r=r|0,t=t|0,-1}function r9(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;f=r+24|0,l=r+28|0;e:do if((n|0)>0)for(o=t,t=0;;){if(s=e[f>>2]|0,s>>>0>=(e[l>>2]|0)>>>0){if((M2[e[(e[r>>2]|0)+52>>2]&63](r,z[o>>0]|0)|0)==-1)break e}else a=m[o>>0]|0,e[f>>2]=s+1,m[s>>0]=a;if(t=t+1|0,(t|0)<(n|0))o=o+1|0;else break}else t=0;while(0);return t|0}function t9(r,t){return r=r|0,t=t|0,-1}function ji(r){r=r|0,e[r>>2]=42824,y2(r+4|0)}function n9(r){r=r|0,e[r>>2]=42824,y2(r+4|0),V(r)}function Xo(r){r=r|0,e[r>>2]=42824,cn(r+4|0),r=r+8|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[r+20>>2]=0}function s9(r,t){r=r|0,t=t|0}function o9(r,t,n){return r=r|0,t=t|0,n=n|0,r|0}function f9(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function l9(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,t=r,e[t>>2]=0,e[t+4>>2]=0,t=r+8|0,e[t>>2]=-1,e[t+4>>2]=-1}function u9(r){return r=r|0,0}function a9(r){return r=r|0,0}function c9(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;f=r+12|0,l=r+16|0;e:do if((n|0)>0)for(o=t,t=0;;){if(s=e[f>>2]|0,s>>>0>=(e[l>>2]|0)>>>0){if(s=X0[e[(e[r>>2]|0)+40>>2]&127](r)|0,(s|0)==-1)break e}else e[f>>2]=s+4,s=e[s>>2]|0;if(e[o>>2]=s,t=t+1|0,(t|0)<(n|0))o=o+4|0;else break}else t=0;while(0);return t|0}function S9(r){return r=r|0,-1}function h9(r){r=r|0;var t=0;return(X0[e[(e[r>>2]|0)+36>>2]&127](r)|0)==-1?r=-1:(t=r+12|0,r=e[t>>2]|0,e[t>>2]=r+4,r=e[r>>2]|0),r|0}function m9(r,t){return r=r|0,t=t|0,-1}function p9(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;f=r+24|0,l=r+28|0;e:do if((n|0)>0)for(o=t,t=0;;){if(s=e[f>>2]|0,s>>>0>=(e[l>>2]|0)>>>0){if((M2[e[(e[r>>2]|0)+52>>2]&63](r,e[o>>2]|0)|0)==-1)break e}else a=e[o>>2]|0,e[f>>2]=s+4,e[s>>2]=a;if(t=t+1|0,(t|0)<(n|0))o=o+4|0;else break}else t=0;while(0);return t|0}function g9(r,t){return r=r|0,t=t|0,-1}function v9(r){r=r|0,N2(r+8|0)}function T9(r){r=r|0,N2(r+((e[(e[r>>2]|0)+-12>>2]|0)+8)|0)}function jo(r){r=r|0,N2(r+8|0),V(r)}function k9(r){r=r|0,jo(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function Wo(r){r=r|0;var t=0,n=0,s=0,o=0;s=C,C=C+16|0,n=s;e:do if(e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0){u=0,e0(65,n|0,r|0),t=u,u=0;i:do if(t&1)t=L(0)|0;else{do if(m[n>>0]|0){if(t=e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=j(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,o=u,u=0,!(o&1)&&((t|0)!=-1||(o=e[(e[r>>2]|0)+-12>>2]|0,u=0,e0(66,r+o|0,e[r+(o+16)>>2]|1|0),o=u,u=0,!(o&1))))break;t=L(0)|0,V1(n);break i}while(0);V1(n);break e}while(0);if(H2(t|0)|0,u=0,I0(181,r+(e[(e[r>>2]|0)+-12>>2]|0)|0),o=u,u=0,!(o&1)){K2();break}t=L()|0,u=0,i2(3),o=u,u=0,o&1?(o=L(0)|0,ne(o)):U(t|0)}while(0);return C=s,r|0}function w9(r){r=r|0;var t=0;if(t=r+16|0,e[t>>2]=e[t>>2]|1,e[r+20>>2]&1)Gs();else return}function d9(r){r=r|0,N2(r+8|0)}function C9(r){r=r|0,N2(r+((e[(e[r>>2]|0)+-12>>2]|0)+8)|0)}function Jo(r){r=r|0,N2(r+8|0),V(r)}function y9(r){r=r|0,Jo(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function Ko(r){r=r|0;var t=0,n=0,s=0,o=0;s=C,C=C+16|0,n=s;e:do if(e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0){u=0,e0(89,n|0,r|0),t=u,u=0;i:do if(t&1)t=L(0)|0;else{do if(m[n>>0]|0){if(t=e[r+((e[(e[r>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=j(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,o=u,u=0,!(o&1)&&((t|0)!=-1||(o=e[(e[r>>2]|0)+-12>>2]|0,u=0,e0(66,r+o|0,e[r+(o+16)>>2]|1|0),o=u,u=0,!(o&1))))break;t=L(0)|0,bo(n);break i}while(0);bo(n);break e}while(0);if(H2(t|0)|0,u=0,I0(181,r+(e[(e[r>>2]|0)+-12>>2]|0)|0),o=u,u=0,!(o&1)){K2();break}t=L()|0,u=0,i2(3),o=u,u=0,o&1?(o=L(0)|0,ne(o)):U(t|0)}while(0);return C=s,r|0}function Id(r,t){r=r|0,t=t|0}function A9(r){r=r|0,N2(r+4|0)}function D9(r){r=r|0,N2(r+((e[(e[r>>2]|0)+-12>>2]|0)+4)|0)}function Zo(r){r=r|0,N2(r+4|0),V(r)}function _9(r){r=r|0,Zo(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function I9(r,t){r=r|0,t=t|0;var n=0;m[r>>0]=0,e[r+4>>2]=t,n=e[(e[t>>2]|0)+-12>>2]|0,e[t+(n+16)>>2]|0||(n=e[t+(n+72)>>2]|0,n&&Wo(n)|0,m[r>>0]=1)}function V1(r){r=r|0;var t=0,n=0;r=r+4|0,n=e[r>>2]|0,t=e[(e[n>>2]|0)+-12>>2]|0;do if(e[n+(t+24)>>2]|0&&!(e[n+(t+16)>>2]|0)&&e[n+(t+4)>>2]&8192|0&&!(Ns()|0)){if(t=e[r>>2]|0,t=e[t+((e[(e[t>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=j(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,n=u,u=0,!(n&1)&&((t|0)!=-1||(t=e[r>>2]|0,n=e[(e[t>>2]|0)+-12>>2]|0,u=0,e0(66,t+n|0,e[t+(n+16)>>2]|1|0),n=u,u=0,!(n&1))))break;n=L(0)|0,H2(n|0)|0,u=0,i2(3),n=u,u=0,n&1&&(n=L(0)|0,ne(n))}while(0)}function P9(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;v=C,C=C+32|0,a=v+20|0,c=v+16|0,S=v+8|0,n=v,u=0,e0(65,S|0,r|0),h=u,u=0;e:do if(h&1)n=L(0)|0,s=r,o=r,g=19;else{do if(m[S>>0]|0){if(h=Je(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)|0,e[n>>2]=h,u=0,h=p0(37,n|0,43392)|0,l=u,u=0,l&1)g=L(0)|0,y2(n),n=g;else{y2(n),o=e[(e[r>>2]|0)+-12>>2]|0,l=e[r+(o+24)>>2]|0,s=r+o|0,o=r+(o+76)|0,n=e[o>>2]|0;do if((n|0)==-1){if(n=Je(s)|0,e[a>>2]=n,u=0,n=p0(37,a|0,44220)|0,k=u,u=0,!(k&1)&&(u=0,f=p0(e[(e[n>>2]|0)+28>>2]|0,n|0,32)|0,k=u,u=0,!(k&1))){y2(a),n=f<<24>>24,e[o>>2]=n,g=10;break}n=L(0)|0,y2(a)}else g=10;while(0);if((g|0)==10){if(k=e[(e[h>>2]|0)+16>>2]|0,e[c>>2]=l,u=0,e[a>>2]=e[c>>2],n=ar(k|0,h|0,a|0,s|0,n&255|0,t|0)|0,k=u,u=0,!(k&1)&&(n||(k=e[(e[r>>2]|0)+-12>>2]|0,u=0,e0(66,r+k|0,e[r+(k+16)>>2]|5|0),k=u,u=0,!(k&1))))break;n=L(0)|0}}V1(S),s=r,o=r,g=19;break e}while(0);V1(S)}while(0);do if((g|0)==19){if(H2(n|0)|0,u=0,I0(181,s+(e[(e[o>>2]|0)+-12>>2]|0)|0),k=u,u=0,!(k&1)){K2();break}n=L()|0,u=0,i2(3),k=u,u=0,k&1?(k=L(0)|0,ne(k)):U(n|0)}while(0);return C=v,r|0}function E9(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;v=C,C=C+32|0,a=v+20|0,c=v+16|0,S=v+8|0,n=v,u=0,e0(65,S|0,r|0),h=u,u=0;e:do if(h&1)n=L(0)|0,s=r,o=r,g=19;else{do if(m[S>>0]|0){if(h=Je(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)|0,e[n>>2]=h,u=0,h=p0(37,n|0,43392)|0,l=u,u=0,l&1)g=L(0)|0,y2(n),n=g;else{y2(n),o=e[(e[r>>2]|0)+-12>>2]|0,l=e[r+(o+24)>>2]|0,s=r+o|0,o=r+(o+76)|0,n=e[o>>2]|0;do if((n|0)==-1){if(n=Je(s)|0,e[a>>2]=n,u=0,n=p0(37,a|0,44220)|0,k=u,u=0,!(k&1)&&(u=0,f=p0(e[(e[n>>2]|0)+28>>2]|0,n|0,32)|0,k=u,u=0,!(k&1))){y2(a),n=f<<24>>24,e[o>>2]=n,g=10;break}n=L(0)|0,y2(a)}else g=10;while(0);if((g|0)==10){if(k=e[(e[h>>2]|0)+24>>2]|0,e[c>>2]=l,u=0,e[a>>2]=e[c>>2],n=ar(k|0,h|0,a|0,s|0,n&255|0,t|0)|0,k=u,u=0,!(k&1)&&(n||(k=e[(e[r>>2]|0)+-12>>2]|0,u=0,e0(66,r+k|0,e[r+(k+16)>>2]|5|0),k=u,u=0,!(k&1))))break;n=L(0)|0}}V1(S),s=r,o=r,g=19;break e}while(0);V1(S)}while(0);do if((g|0)==19){if(H2(n|0)|0,u=0,I0(181,s+(e[(e[o>>2]|0)+-12>>2]|0)|0),k=u,u=0,!(k&1)){K2();break}n=L()|0,u=0,i2(3),k=u,u=0,k&1?(k=L(0)|0,ne(k)):U(n|0)}while(0);return C=v,r|0}function L9(r){r=r|0,N2(r+4|0)}function F9(r){r=r|0,N2(r+((e[(e[r>>2]|0)+-12>>2]|0)+4)|0)}function $o(r){r=r|0,N2(r+4|0),V(r)}function R9(r){r=r|0,$o(r+(e[(e[r>>2]|0)+-12>>2]|0)|0)}function O9(r,t){r=r|0,t=t|0;var n=0;m[r>>0]=0,e[r+4>>2]=t,n=e[(e[t>>2]|0)+-12>>2]|0,e[t+(n+16)>>2]|0||(n=e[t+(n+72)>>2]|0,n&&Ko(n)|0,m[r>>0]=1)}function bo(r){r=r|0;var t=0,n=0;r=r+4|0,n=e[r>>2]|0,t=e[(e[n>>2]|0)+-12>>2]|0;do if(e[n+(t+24)>>2]|0&&!(e[n+(t+16)>>2]|0)&&e[n+(t+4)>>2]&8192|0&&!(Ns()|0)){if(t=e[r>>2]|0,t=e[t+((e[(e[t>>2]|0)+-12>>2]|0)+24)>>2]|0,u=0,t=j(e[(e[t>>2]|0)+24>>2]|0,t|0)|0,n=u,u=0,!(n&1)&&((t|0)!=-1||(t=e[r>>2]|0,n=e[(e[t>>2]|0)+-12>>2]|0,u=0,e0(66,t+n|0,e[t+(n+16)>>2]|1|0),n=u,u=0,!(n&1))))break;n=L(0)|0,H2(n|0)|0,u=0,i2(3),n=u,u=0,n&1&&(n=L(0)|0,ne(n))}while(0)}function M9(r){return r=r|0,57453}function x9(r,t,n){r=r|0,t=t|0,n=n|0,(n|0)!=1&(n|0)<257?dh(r,t,n):q1(r,57462,35)}function q9(){return!(m[1048]|0)&&j0(1048)|0&&(e[10778]=43084,J0(72,43112,l0|0)|0,W0(1048)),43112}function N9(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;s=C,C=C+16|0,o=s+8|0,f=s,a=n,l=e[a+4>>2]|0,n=f,e[n>>2]=e[a>>2],e[n+4>>2]=l,e[o>>2]=e[f>>2],e[o+4>>2]=e[f+4>>2],yh(r,o,t),e[r>>2]=43048,C=s}function U9(r){r=r|0,hn(r)}function B9(r){r=r|0,hn(r),V(r)}function Q9(r){r=r|0,N2(r),V(r)}function G9(r){r=r|0,V(r)}function V9(r){r=r|0}function H9(r){r=r|0}function z9(r){r=r|0,V(r)}function Y9(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;e:do if((s|0)==(o|0))l=6;else for(;;){if((t|0)==(n|0)){t=-1;break e}if(r=m[t>>0]|0,f=m[s>>0]|0,r<<24>>24>24){t=-1;break e}if(f<<24>>24>24){t=1;break e}if(t=t+1|0,s=s+1|0,(s|0)==(o|0)){l=6;break}}while(0);return(l|0)==6&&(t=(t|0)!=(n|0)&1),t|0}function X9(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,Qh(r,n,s)}function j9(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if((t|0)==(n|0))r=0;else{r=0;do r=(m[t>>0]|0)+(r<<4)|0,s=r&-268435456,r=(s>>>24|s)^r,t=t+1|0;while((t|0)!=(n|0))}return r|0}function W9(r){r=r|0}function J9(r){r=r|0,V(r)}function K9(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;e:do if((s|0)==(o|0))l=6;else for(;;){if((t|0)==(n|0)){t=-1;break e}if(r=e[t>>2]|0,f=e[s>>2]|0,(r|0)<(f|0)){t=-1;break e}if((f|0)<(r|0)){t=1;break e}if(t=t+4|0,s=s+4|0,(s|0)==(o|0)){l=6;break}}while(0);return(l|0)==6&&(t=(t|0)!=(n|0)&1),t|0}function Z9(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,Gh(r,n,s)}function $9(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if((t|0)==(n|0))r=0;else{r=0;do r=(e[t>>2]|0)+(r<<4)|0,s=r&-268435456,r=(s>>>24|s)^r,t=t+4|0;while((t|0)!=(n|0))}return r|0}function b9(r){r=r|0}function em(r){r=r|0,V(r)}function im(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;D=C,C=C+64|0,v=D+56|0,l=D+52|0,S=D+48|0,a=D+44|0,c=D+40|0,h=D+36|0,g=D+32|0,I=D+8|0,k=D;e:do if(e[s+4>>2]&1){l=Je(s)|0,e[h>>2]=l,u=0,r=p0(37,h|0,44220)|0,S=u,u=0;do if(S&1)I=L()|0,se(l)|0,l=I;else{if(se(l)|0,l=Je(s)|0,e[g>>2]=l,u=0,c=p0(37,g|0,44360)|0,g=u,u=0,g&1){I=L()|0,se(l)|0,l=I;break}if(se(l)|0,u=0,e0(e[(e[c>>2]|0)+24>>2]|0,I|0,c|0),g=u,u=0,g&1)a=I;else if(a=I+12|0,u=0,e0(e[(e[c>>2]|0)+28>>2]|0,a|0,c|0),g=u,u=0,!(g&1))if(e[k>>2]=e[n>>2],u=0,e[v>>2]=e[k>>2],l=k1(7,t|0,v|0,I|0,I+24|0,r|0,o|0,1)|0,o=u,u=0,o&1){l=L()|0,H(I+12|0),H(I);break}else{m[f>>0]=(l|0)==(I|0)&1,l=e[t>>2]|0,H(I+12|0),H(I);break e}if(l=L()|0,c=o0,(I|0)!=(a|0))do a=a+-12|0,H(a);while((a|0)!=(I|0))}while(0);U(l|0)}else switch(e[S>>2]=-1,I=e[(e[r>>2]|0)+16>>2]|0,e[a>>2]=e[t>>2],e[c>>2]=e[n>>2],e[l>>2]=e[a>>2],e[v>>2]=e[c>>2],l=Ji[I&63](r,l,v,s,o,S)|0,e[t>>2]=l,e[S>>2]|0){case 0:{m[f>>0]=0;break e}case 1:{m[f>>0]=1;break e}default:{m[f>>0]=1,e[o>>2]=4;break e}}while(0);return C=D,l|0}function rm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=V7(r,c,a,s,o,f)|0,C=l,r|0}function tm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=H7(r,c,a,s,o,f)|0,C=l,r|0}function nm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=z7(r,c,a,s,o,f)|0,C=l,r|0}function sm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=Y7(r,c,a,s,o,f)|0,C=l,r|0}function om(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=X7(r,c,a,s,o,f)|0,C=l,r|0}function fm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=j7(r,c,a,s,o,f)|0,C=l,r|0}function lm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=W7(r,c,a,s,o,f)|0,C=l,r|0}function um(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=J7(r,c,a,s,o,f)|0,C=l,r|0}function am(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=K7(r,c,a,s,o,f)|0,C=l,r|0}function cm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0;N=C,C=C+240|0,y=N,k=N+208|0,B=N+32|0,r=N+28|0,q=N+16|0,_=N+12|0,I=N+48|0,E=N+8|0,D=N+4|0,e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,u=0,s=j(68,s|0)|0,v=u,u=0;do if(v&1)r=L()|0;else{if(e[r>>2]=s,u=0,r=p0(37,r|0,44220)|0,v=u,u=0,!(v&1)&&(u=0,qe(e[(e[r>>2]|0)+32>>2]|0,r|0,57498,57524,k|0)|0,v=u,u=0,!(v&1))){se(s)|0,e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,m[q>>0]&1?r=(e[q>>2]&-2)+-1|0:r=10,u=0,c0(8,q|0,r|0,0),v=u,u=0;e:do if(v&1)n0=30;else{g=q+8|0,v=q+1|0,s=m[q>>0]&1?e[g>>2]|0:v,e[_>>2]=s,e[E>>2]=I,e[D>>2]=0,S=q+4|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){n0=29;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){n0=29;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,n0=19;break}}else n0=19;while(0);if((n0|0)==19)if(n0=0,a){l=0;break}else l=0;if(a=m[q>>0]|0,a=a&1?e[S>>2]|0:(a&255)>>>1,(e[_>>2]|0)==(s+a|0)){if(u=0,c0(8,q|0,a<<1|0,0),h=u,u=0,h&1){n0=29;break}if(m[q>>0]&1?s=(e[q>>2]&-2)+-1|0:s=10,u=0,c0(8,q|0,s|0,0),h=u,u=0,h&1){n0=29;break}s=m[q>>0]&1?e[g>>2]|0:v,e[_>>2]=s+a}if(c=r+12|0,a=e[c>>2]|0,h=r+16|0,(a|0)==(e[h>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,r0=u,u=0,r0&1){n0=29;break}}else a=z[a>>0]|0;if(ti(a&255,16,s,_,D,0,B,I,E,k)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,r0=u,u=0,r0&1){n0=29;break}else continue;else{e[c>>2]=l+1;continue}}if((n0|0)==29){r=L()|0;break}if(u=0,c0(8,q|0,(e[_>>2]|0)-s|0,0),r0=u,u=0,!(r0&1)&&(w=m[q>>0]|0,d=e[g>>2]|0,u=0,O=de(3)|0,r0=u,u=0,!(r0&1))&&(u=0,e[y>>2]=f,x=qe(16,(w&1?d:v)|0,O|0,58882,y|0)|0,r0=u,u=0,!(r0&1))){if((x|0)!=1&&(e[o>>2]=4),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,r0=u,u=0,r0&1){n0=30;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,r0=u,u=0,r0&1){n0=30;break e}if((r|0)==-1){e[n>>2]=0,n0=55;break}}s||(n0=56)}else n0=55;while(0);return(n0|0)==55&&s&&(n0=56),(n0|0)==56&&(e[o>>2]=e[o>>2]|2),r0=e[t>>2]|0,H(q),H(B),C=N,r0|0}else n0=30}while(0);(n0|0)==30&&(r=L()|0),H(q);break}r=L()|0,se(s)|0}while(0);return H(B),U(r|0),0}function ti(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0;var S=0,g=0,v=0,k=0;v=e[s>>2]|0,k=(v|0)==(n|0);do if(k){if(S=(m[h+24>>0]|0)==r<<24>>24,!S&&(m[h+25>>0]|0)!=r<<24>>24){g=5;break}e[s>>2]=n+1,m[n>>0]=S?43:45,e[o>>2]=0,S=0}else g=5;while(0);e:do if((g|0)==5){if(g=m[l>>0]|0,r<<24>>24==f<<24>>24&&(g&1?e[l+4>>2]|0:(g&255)>>>1)|0){if(S=e[c>>2]|0,(S-a|0)>=160){S=0;break}t=e[o>>2]|0,e[c>>2]=S+4,e[S>>2]=t,e[o>>2]=0,S=0;break}for(l=h+26|0,S=h;(m[S>>0]|0)!=r<<24>>24;)if(S=S+1|0,(S|0)==(l|0)){S=l;break}if(S=S-h|0,(S|0)>23)S=-1;else{switch(t|0){case 10:case 8:{if((S|0)>=(t|0)){S=-1;break e}break}case 16:{if((S|0)>=22){if(k){S=-1;break e}if((v-n|0)>=3){S=-1;break e}if((m[v+-1>>0]|0)!=48){S=-1;break e}e[o>>2]=0,S=m[57498+S>>0]|0,e[s>>2]=v+1,m[v>>0]=S,S=0;break e}break}default:}S=m[57498+S>>0]|0,e[s>>2]=v+1,m[v>>0]=S,e[o>>2]=(e[o>>2]|0)+1,S=0}}while(0);return S|0}function k2(){var r=0,t=0;do if(!(m[1968]|0)&&j0(1968)|0)if(u=0,r=ie(31,2147483647,58885,0)|0,t=u,u=0,t&1)t=L()|0,B2(1968),U(t|0);else{e[11196]=r,W0(1968);break}while(0);return e[11196]|0}function Sm(r){r=r|0}function hm(r){r=r|0,V(r)}function mm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;D=C,C=C+64|0,v=D+56|0,l=D+52|0,S=D+48|0,a=D+44|0,c=D+40|0,h=D+36|0,g=D+32|0,I=D+8|0,k=D;e:do if(e[s+4>>2]&1){l=Je(s)|0,e[h>>2]=l,u=0,r=p0(37,h|0,44212)|0,S=u,u=0;do if(S&1)I=L()|0,se(l)|0,l=I;else{if(se(l)|0,l=Je(s)|0,e[g>>2]=l,u=0,c=p0(37,g|0,44368)|0,g=u,u=0,g&1){I=L()|0,se(l)|0,l=I;break}if(se(l)|0,u=0,e0(e[(e[c>>2]|0)+24>>2]|0,I|0,c|0),g=u,u=0,g&1)a=I;else if(a=I+12|0,u=0,e0(e[(e[c>>2]|0)+28>>2]|0,a|0,c|0),g=u,u=0,!(g&1))if(e[k>>2]=e[n>>2],u=0,e[v>>2]=e[k>>2],l=k1(8,t|0,v|0,I|0,I+24|0,r|0,o|0,1)|0,o=u,u=0,o&1){l=L()|0,b0(I+12|0),b0(I);break}else{m[f>>0]=(l|0)==(I|0)&1,l=e[t>>2]|0,b0(I+12|0),b0(I);break e}if(l=L()|0,c=o0,(I|0)!=(a|0))do a=a+-12|0,b0(a);while((a|0)!=(I|0))}while(0);U(l|0)}else switch(e[S>>2]=-1,I=e[(e[r>>2]|0)+16>>2]|0,e[a>>2]=e[t>>2],e[c>>2]=e[n>>2],e[l>>2]=e[a>>2],e[v>>2]=e[c>>2],l=Ji[I&63](r,l,v,s,o,S)|0,e[t>>2]=l,e[S>>2]|0){case 0:{m[f>>0]=0;break e}case 1:{m[f>>0]=1;break e}default:{m[f>>0]=1,e[o>>2]=4;break e}}while(0);return C=D,l|0}function pm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=$7(r,c,a,s,o,f)|0,C=l,r|0}function gm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=b7(r,c,a,s,o,f)|0,C=l,r|0}function vm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=ep(r,c,a,s,o,f)|0,C=l,r|0}function Tm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=ip(r,c,a,s,o,f)|0,C=l,r|0}function km(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=rp(r,c,a,s,o,f)|0,C=l,r|0}function wm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=tp(r,c,a,s,o,f)|0,C=l,r|0}function dm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=np(r,c,a,s,o,f)|0,C=l,r|0}function Cm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=sp(r,c,a,s,o,f)|0,C=l,r|0}function ym(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0;return l=C,C=C+16|0,a=l+12|0,c=l+8|0,S=l+4|0,h=l,e[S>>2]=e[t>>2],e[h>>2]=e[n>>2],e[c>>2]=e[S>>2],e[a>>2]=e[h>>2],r=op(r,c,a,s,o,f)|0,C=l,r|0}function Am(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0;N=C,C=C+320|0,y=N,k=N+208|0,B=N+32|0,r=N+28|0,q=N+16|0,_=N+12|0,I=N+48|0,E=N+8|0,D=N+4|0,e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,u=0,s=j(68,s|0)|0,v=u,u=0;do if(v&1)r=L()|0;else{if(e[r>>2]=s,u=0,r=p0(37,r|0,44212)|0,v=u,u=0,!(v&1)&&(u=0,qe(e[(e[r>>2]|0)+48>>2]|0,r|0,57498,57524,k|0)|0,v=u,u=0,!(v&1))){se(s)|0,e[q>>2]=0,e[q+4>>2]=0,e[q+8>>2]=0,m[q>>0]&1?r=(e[q>>2]&-2)+-1|0:r=10,u=0,c0(8,q|0,r|0,0),v=u,u=0;e:do if(v&1)n0=31;else{g=q+8|0,v=q+1|0,r=m[q>>0]&1?e[g>>2]|0:v,e[_>>2]=r,e[E>>2]=I,e[D>>2]=0,S=q+4|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){n0=30;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,s=0,a=1):(s=l,a=0)}else s=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=j(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,h=u,u=0,h&1){n0=30;break i}}else l=e[l>>2]|0;if((l|0)!=-1)if(a){l=c;break}else{l=c;break i}else{e[n>>2]=0,n0=20;break}}else n0=20;while(0);if((n0|0)==20)if(n0=0,a){l=0;break}else l=0;if(a=m[q>>0]|0,a=a&1?e[S>>2]|0:(a&255)>>>1,(e[_>>2]|0)==(r+a|0)){if(u=0,c0(8,q|0,a<<1|0,0),h=u,u=0,h&1){n0=30;break}if(m[q>>0]&1?r=(e[q>>2]&-2)+-1|0:r=10,u=0,c0(8,q|0,r|0,0),h=u,u=0,h&1){n0=30;break}r=m[q>>0]&1?e[g>>2]|0:v,e[_>>2]=r+a}if(c=s+12|0,a=e[c>>2]|0,h=s+16|0,(a|0)==(e[h>>2]|0)){if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,r0=u,u=0,r0&1){n0=30;break}}else a=e[a>>2]|0;if(ni(a,16,r,_,D,0,B,I,E,k)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,r0=u,u=0,r0&1){n0=30;break}else{l=s;continue}else{e[c>>2]=l+4,l=s;continue}}if((n0|0)==30){r=L()|0;break}if(u=0,c0(8,q|0,(e[_>>2]|0)-r|0,0),r0=u,u=0,!(r0&1)&&(w=m[q>>0]|0,d=e[g>>2]|0,u=0,O=de(3)|0,r0=u,u=0,!(r0&1))&&(u=0,e[y>>2]=f,x=qe(16,(w&1?d:v)|0,O|0,58882,y|0)|0,r0=u,u=0,!(r0&1))){if((x|0)!=1&&(e[o>>2]=4),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,r0=u,u=0,r0&1){n0=31;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,r0=u,u=0,r0&1){n0=31;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;n0=59;break}else{e[n>>2]=0,n0=57;break}}else n0=57;while(0);return(n0|0)==57&&s&&(n0=59),(n0|0)==59&&(e[o>>2]=e[o>>2]|2),r0=e[t>>2]|0,H(q),H(B),C=N,r0|0}else n0=31}while(0);(n0|0)==31&&(r=L()|0),H(q);break}r=L()|0,se(s)|0}while(0);return H(B),U(r|0),0}function ni(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0;var S=0,g=0,v=0,k=0;v=e[s>>2]|0,k=(v|0)==(n|0);do if(k){if(S=(e[h+96>>2]|0)==(r|0),!S&&(e[h+100>>2]|0)!=(r|0)){g=5;break}e[s>>2]=n+1,m[n>>0]=S?43:45,e[o>>2]=0,S=0}else g=5;while(0);e:do if((g|0)==5){if(g=m[l>>0]|0,(r|0)==(f|0)&&(g&1?e[l+4>>2]|0:(g&255)>>>1)|0){if(S=e[c>>2]|0,(S-a|0)>=160){S=0;break}t=e[o>>2]|0,e[c>>2]=S+4,e[S>>2]=t,e[o>>2]=0,S=0;break}for(l=h+104|0,S=h;(e[S>>2]|0)!=(r|0);)if(S=S+4|0,(S|0)==(l|0)){S=l;break}if(S=S-h|0,l=S>>2,(S|0)>92)S=-1;else{switch(t|0){case 10:case 8:{if((l|0)>=(t|0)){S=-1;break e}break}case 16:{if((S|0)>=88){if(k){S=-1;break e}if((v-n|0)>=3){S=-1;break e}if((m[v+-1>>0]|0)!=48){S=-1;break e}e[o>>2]=0,S=m[57498+l>>0]|0,e[s>>2]=v+1,m[v>>0]=S,S=0;break e}break}default:}S=m[57498+l>>0]|0,e[s>>2]=v+1,m[v>>0]=S,e[o>>2]=(e[o>>2]|0)+1,S=0}}while(0);return S|0}function vi(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0;if(c=C,C=C+16|0,a=c,t=Je(t)|0,e[a>>2]=t,u=0,o=p0(37,a|0,44220)|0,h=u,u=0,!(h&1)&&(u=0,qe(e[(e[o>>2]|0)+32>>2]|0,o|0,57498,57524,n|0)|0,h=u,u=0,!(h&1))&&(u=0,l=p0(37,a|0,44360)|0,h=u,u=0,!(h&1))&&(u=0,f=j(e[(e[l>>2]|0)+16>>2]|0,l|0)|0,h=u,u=0,!(h&1))&&(m[s>>0]=f,u=0,e0(e[(e[l>>2]|0)+20>>2]|0,r|0,l|0),h=u,u=0,!(h&1))){se(t)|0,C=c;return}h=L()|0,se(t)|0,U(h|0)}function wn(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;if(S=C,C=C+16|0,h=S,t=Je(t)|0,e[h>>2]=t,u=0,f=p0(37,h|0,44220)|0,g=u,u=0,!(g&1)&&(u=0,qe(e[(e[f>>2]|0)+32>>2]|0,f|0,57498,57530,n|0)|0,g=u,u=0,!(g&1))&&(u=0,c=p0(37,h|0,44360)|0,g=u,u=0,!(g&1))&&(u=0,l=j(e[(e[c>>2]|0)+12>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(m[s>>0]=l,u=0,a=j(e[(e[c>>2]|0)+16>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(m[o>>0]=a,u=0,e0(e[(e[c>>2]|0)+20>>2]|0,r|0,c|0),g=u,u=0,!(g&1))){se(t)|0,C=S;return}g=L()|0,se(t)|0,U(g|0)}function dn(r,t,n,s,o,f,l,a,c,h,S,g){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0;var v=0,k=0;e:do if(r<<24>>24==f<<24>>24)m[t>>0]|0?(m[t>>0]=0,n=e[o>>2]|0,e[o>>2]=n+1,m[n>>0]=46,n=m[a>>0]|0,(n&1?e[a+4>>2]|0:(n&255)>>>1)|0&&(v=e[h>>2]|0,(v-c|0)<160)&&(c=e[S>>2]|0,e[h>>2]=v+4,e[v>>2]=c),v=0):v=-1;else{if(r<<24>>24==l<<24>>24&&(l=m[a>>0]|0,((l&1?e[a+4>>2]|0:(l&255)>>>1)|0)!=0)){if(!(m[t>>0]|0)){v=-1;break}if(v=e[h>>2]|0,(v-c|0)>=160){v=0;break}c=e[S>>2]|0,e[h>>2]=v+4,e[v>>2]=c,e[S>>2]=0,v=0;break}for(f=g+32|0,v=g;(m[v>>0]|0)!=r<<24>>24;)if(v=v+1|0,(v|0)==(f|0)){v=f;break}if(f=v-g|0,(f|0)>31)v=-1;else switch(l=m[57498+f>>0]|0,f|0){case 24:case 25:{if(v=e[o>>2]|0,(v|0)!=(s|0)&&(z[v+-1>>0]&95|0)!=(z[n>>0]&127|0)){v=-1;break e}e[o>>2]=v+1,m[v>>0]=l,v=0;break e}case 23:case 22:{m[n>>0]=80,v=e[o>>2]|0,e[o>>2]=v+1,m[v>>0]=l,v=0;break e}default:{if(v=l&95,(v|0)==(m[n>>0]|0)&&(m[n>>0]=v|128,(m[t>>0]|0)!=0)&&(m[t>>0]=0,n=m[a>>0]|0,((n&1?e[a+4>>2]|0:(n&255)>>>1)|0)!=0)&&(k=e[h>>2]|0,(k-c|0)<160)&&(c=e[S>>2]|0,e[h>>2]=k+4,e[k>>2]=c),h=e[o>>2]|0,e[o>>2]=h+1,m[h>>0]=l,(f|0)>21){v=0;break e}e[S>>2]=(e[S>>2]|0)+1,v=0;break e}}}while(0);return v|0}function Ti(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0;if(c=C,C=C+16|0,a=c,t=Je(t)|0,e[a>>2]=t,u=0,o=p0(37,a|0,44212)|0,h=u,u=0,!(h&1)&&(u=0,qe(e[(e[o>>2]|0)+48>>2]|0,o|0,57498,57524,n|0)|0,h=u,u=0,!(h&1))&&(u=0,l=p0(37,a|0,44368)|0,h=u,u=0,!(h&1))&&(u=0,f=j(e[(e[l>>2]|0)+16>>2]|0,l|0)|0,h=u,u=0,!(h&1))&&(e[s>>2]=f,u=0,e0(e[(e[l>>2]|0)+20>>2]|0,r|0,l|0),h=u,u=0,!(h&1))){se(t)|0,C=c;return}h=L()|0,se(t)|0,U(h|0)}function Cn(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;if(S=C,C=C+16|0,h=S,t=Je(t)|0,e[h>>2]=t,u=0,f=p0(37,h|0,44212)|0,g=u,u=0,!(g&1)&&(u=0,qe(e[(e[f>>2]|0)+48>>2]|0,f|0,57498,57530,n|0)|0,g=u,u=0,!(g&1))&&(u=0,c=p0(37,h|0,44368)|0,g=u,u=0,!(g&1))&&(u=0,l=j(e[(e[c>>2]|0)+12>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(e[s>>2]=l,u=0,a=j(e[(e[c>>2]|0)+16>>2]|0,c|0)|0,g=u,u=0,!(g&1))&&(e[o>>2]=a,u=0,e0(e[(e[c>>2]|0)+20>>2]|0,r|0,c|0),g=u,u=0,!(g&1))){se(t)|0,C=S;return}g=L()|0,se(t)|0,U(g|0)}function yn(r,t,n,s,o,f,l,a,c,h,S,g){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0;var v=0,k=0;e:do if((r|0)==(f|0))m[t>>0]|0?(m[t>>0]=0,n=e[o>>2]|0,e[o>>2]=n+1,m[n>>0]=46,n=m[a>>0]|0,(n&1?e[a+4>>2]|0:(n&255)>>>1)|0&&(v=e[h>>2]|0,(v-c|0)<160)&&(c=e[S>>2]|0,e[h>>2]=v+4,e[v>>2]=c),v=0):v=-1;else{if((r|0)==(l|0)&&(l=m[a>>0]|0,((l&1?e[a+4>>2]|0:(l&255)>>>1)|0)!=0)){if(!(m[t>>0]|0)){v=-1;break}if(v=e[h>>2]|0,(v-c|0)>=160){v=0;break}c=e[S>>2]|0,e[h>>2]=v+4,e[v>>2]=c,e[S>>2]=0,v=0;break}for(f=g+128|0,v=g;(e[v>>2]|0)!=(r|0);)if(v=v+4|0,(v|0)==(f|0)){v=f;break}if(f=v-g|0,v=f>>2,(f|0)<=124){switch(l=m[57498+v>>0]|0,v|0){case 24:case 25:{if(v=e[o>>2]|0,(v|0)!=(s|0)&&(z[v+-1>>0]&95|0)!=(z[n>>0]&127|0)){v=-1;break e}e[o>>2]=v+1,m[v>>0]=l,v=0;break e}case 23:case 22:{m[n>>0]=80;break}default:v=l&95,(v|0)==(m[n>>0]|0)&&(m[n>>0]=v|128,(m[t>>0]|0)!=0)&&(m[t>>0]=0,n=m[a>>0]|0,((n&1?e[a+4>>2]|0:(n&255)>>>1)|0)!=0)&&(k=e[h>>2]|0,(k-c|0)<160)&&(c=e[S>>2]|0,e[h>>2]=k+4,e[k>>2]=c)}h=e[o>>2]|0,e[o>>2]=h+1,m[h>>0]=l,(f|0)>84||(e[S>>2]=(e[S>>2]|0)+1),v=0}else v=-1}while(0);return v|0}function Dm(r){r=r|0}function _m(r){r=r|0,V(r)}function Im(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0;S=C,C=C+32|0,f=S+20|0,l=S+16|0,a=S+12|0,h=S;e:do if(!(e[n+4>>2]&1))h=e[(e[r>>2]|0)+24>>2]|0,e[l>>2]=e[t>>2],e[f>>2]=e[l>>2],f=Ki[h&31](r,f,n,s,o&1)|0;else{f=Je(n)|0,e[a>>2]=f,u=0,l=p0(37,a|0,44360)|0,c=u,u=0;i:do if(c&1)S=L()|0,se(f)|0,f=S;else{se(f)|0,f=e[l>>2]|0,o?_e[e[f+24>>2]&127](h,l):_e[e[f+28>>2]&127](h,l),r=m[h>>0]|0,c=(r&1)==0,f=h+1|0,o=h+8|0,a=c?f:h+1|0,f=c?f:e[h+8>>2]|0,c=h+4|0,n=(r&1)==0;r:do if((f|0)!=((n?a:e[o>>2]|0)+(n?(r&255)>>>1:e[c>>2]|0)|0)){t:for(;;){l=m[f>>0]|0,s=e[t>>2]|0;do if(s){if(n=s+24|0,r=e[n>>2]|0,(r|0)!=(e[s+28>>2]|0)){e[n>>2]=r+1,m[r>>0]=l;break}if(u=0,l=p0(e[(e[s>>2]|0)+52>>2]|0,s|0,l&255|0)|0,r=u,u=0,r&1)break t;(l|0)==-1&&(e[t>>2]=0)}while(0);if(f=f+1|0,r=m[h>>0]|0,n=(r&1)==0,(f|0)==((n?a:e[o>>2]|0)+(n?(r&255)>>>1:e[c>>2]|0)|0))break r}f=L()|0,H(h);break i}while(0);f=e[t>>2]|0,H(h);break e}while(0);U(f|0)}while(0);return C=S,f|0}function Pm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+64|0,f=S,v=S+56|0,k=S+44|0,a=S+20|0,h=S+16|0,c=S+12|0,g=S+8|0,l=S+4|0,m[v>>0]=m[58887]|0,m[v+1>>0]=m[58888]|0,m[v+2>>0]=m[58889]|0,m[v+3>>0]=m[58890]|0,m[v+4>>0]=m[58891]|0,m[v+5>>0]=m[58892]|0,H1(v+1|0,58893,1,e[n+4>>2]|0),r=k2()|0,e[f>>2]=o,o=k+(U2(k,12,r,v,f)|0)|0,v=r1(k,o,n)|0,r=Je(n)|0,e[g>>2]=r,u=0,l1(1,k|0,v|0,o|0,a|0,h|0,c|0,g|0),o=u,u=0,o&1)k=L()|0,se(r)|0,U(k|0);else return se(r)|0,e[l>>2]=e[t>>2],v=e[h>>2]|0,k=e[c>>2]|0,e[f>>2]=e[l>>2],k=mi(f,a,v,k,n,s)|0,C=S,k|0;return 0}function H1(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(s&2048&&(m[r>>0]=43,r=r+1|0),s&512&&(m[r>>0]=35,r=r+1|0),o=m[t>>0]|0,o<<24>>24)for(f=t;;)if(f=f+1|0,t=r+1|0,m[r>>0]=o,o=m[f>>0]|0,o<<24>>24)r=t;else{r=t;break}e:do switch(s&74|0){case 64:{m[r>>0]=111;break}case 8:if(s&16384){m[r>>0]=88;break e}else{m[r>>0]=120;break e}default:if(n){m[r>>0]=100;break e}else{m[r>>0]=117;break e}}while(0)}function r1(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;e:do switch(e[n+4>>2]&176|0){case 16:{switch(n=m[r>>0]|0,n<<24>>24){case 43:case 45:{r=r+1|0;break e}default:}if((t-r|0)>1&n<<24>>24==48){switch(m[r+1>>0]|0){case 88:case 120:break;default:{s=7;break e}}r=r+2|0}else s=7;break}case 32:{r=t;break}default:s=7}while(0);return r|0}function Em(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;_=C,C=C+16|0,y=_,I=E2(l,44220)|0,h=E2(l,44360)|0,_e[e[(e[h>>2]|0)+20>>2]&127](y,h),k=m[y>>0]|0,D=y+4|0;e:do if(!((k&1?e[D>>2]|0:(k&255)>>>1)|0))u=0,qe(e[(e[I>>2]|0)+32>>2]|0,I|0,r|0,n|0,s|0)|0,E=u,u=0,E&1?E=5:(l=s+(n-r)|0,e[f>>2]=l,E=29);else{switch(e[f>>2]=s,l=m[r>>0]|0,l<<24>>24){case 43:case 45:{if(u=0,l=p0(e[(e[I>>2]|0)+28>>2]|0,I|0,l|0)|0,k=u,u=0,k&1){E=5;break e}c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=l,c=r+1|0;break}default:c=r}i:do if((n-c|0)>1&&(m[c>>0]|0)==48){switch(l=c+1|0,m[l>>0]|0){case 88:case 120:break;default:break i}if(u=0,a=p0(e[(e[I>>2]|0)+28>>2]|0,I|0,48)|0,k=u,u=0,k&1){E=5;break e}if(k=e[f>>2]|0,e[f>>2]=k+1,m[k>>0]=a,u=0,l=p0(e[(e[I>>2]|0)+28>>2]|0,I|0,m[l>>0]|0)|0,k=u,u=0,k&1){E=5;break e}k=e[f>>2]|0,e[f>>2]=k+1,m[k>>0]=l,c=c+2|0}while(0);if((c|0)!=(n|0)&&(S=n+-1|0,c>>>0>>0)){a=c,l=S;do k=m[a>>0]|0,m[a>>0]=m[l>>0]|0,m[l>>0]=k,a=a+1|0,l=l+-1|0;while(a>>>0>>0)}if(u=0,S=j(e[(e[h>>2]|0)+16>>2]|0,h|0)|0,k=u,u=0,k&1)E=5;else{g=y+8|0,v=y+1|0;i:do if(c>>>0>>0){for(l=0,a=0,k=c;h=m[(m[y>>0]&1?e[g>>2]|0:v)+a>>0]|0,h<<24>>24!=0&(l|0)==(h<<24>>24|0)?(l=e[f>>2]|0,e[f>>2]=l+1,m[l>>0]=S,l=m[y>>0]|0,h=0,a=(a>>>0<((l&1?e[D>>2]|0:(l&255)>>>1)+-1|0)>>>0&1)+a|0):h=l,u=0,l=p0(e[(e[I>>2]|0)+28>>2]|0,I|0,m[k>>0]|0)|0,w=u,u=0,!(w&1);){if(w=e[f>>2]|0,e[f>>2]=w+1,m[w>>0]=l,k=k+1|0,k>>>0>=n>>>0)break i;l=h+1|0}l=L()|0;break e}while(0);if(a=r,l=s+(c-a)|0,r=e[f>>2]|0,(l|0)==(r|0))r=a,E=29;else{if(r=r+-1|0,l>>>0>>0)do w=m[l>>0]|0,m[l>>0]=m[r>>0]|0,m[r>>0]=w,l=l+1|0,r=r+-1|0;while(l>>>0>>0);r=a,l=e[f>>2]|0,E=29}}}while(0);if((E|0)==5)l=L()|0;else if((E|0)==29){e[o>>2]=(t|0)==(n|0)?l:s+(t-r)|0,H(y),C=_;return}H(y),U(l|0)}function Lm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(g=C,C=C+96|0,l=g+8|0,r=g,k=g+74|0,c=g+32|0,S=g+28|0,h=g+24|0,v=g+20|0,a=g+16|0,D=r,e[D>>2]=37,e[D+4>>2]=0,H1(r+1|0,58895,1,e[n+4>>2]|0),D=k2()|0,I=l,e[I>>2]=o,e[I+4>>2]=f,f=k+(U2(k,22,D,r,l)|0)|0,o=r1(k,f,n)|0,r=Je(n)|0,e[v>>2]=r,u=0,l1(1,k|0,o|0,f|0,c|0,S|0,h|0,v|0),f=u,u=0,f&1)I=L()|0,se(r)|0,U(I|0);else return se(r)|0,e[a>>2]=e[t>>2],D=e[S>>2]|0,I=e[h>>2]|0,e[l>>2]=e[a>>2],I=mi(l,c,D,I,n,s)|0,C=g,I|0;return 0}function Fm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+64|0,f=S,v=S+56|0,k=S+44|0,a=S+20|0,h=S+16|0,c=S+12|0,g=S+8|0,l=S+4|0,m[v>>0]=m[58887]|0,m[v+1>>0]=m[58888]|0,m[v+2>>0]=m[58889]|0,m[v+3>>0]=m[58890]|0,m[v+4>>0]=m[58891]|0,m[v+5>>0]=m[58892]|0,H1(v+1|0,58893,0,e[n+4>>2]|0),r=k2()|0,e[f>>2]=o,o=k+(U2(k,12,r,v,f)|0)|0,v=r1(k,o,n)|0,r=Je(n)|0,e[g>>2]=r,u=0,l1(1,k|0,v|0,o|0,a|0,h|0,c|0,g|0),o=u,u=0,o&1)k=L()|0,se(r)|0,U(k|0);else return se(r)|0,e[l>>2]=e[t>>2],v=e[h>>2]|0,k=e[c>>2]|0,e[f>>2]=e[l>>2],k=mi(f,a,v,k,n,s)|0,C=S,k|0;return 0}function Rm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(g=C,C=C+112|0,l=g+8|0,r=g,k=g+75|0,c=g+32|0,S=g+28|0,h=g+24|0,v=g+20|0,a=g+16|0,D=r,e[D>>2]=37,e[D+4>>2]=0,H1(r+1|0,58895,0,e[n+4>>2]|0),D=k2()|0,I=l,e[I>>2]=o,e[I+4>>2]=f,f=k+(U2(k,23,D,r,l)|0)|0,o=r1(k,f,n)|0,r=Je(n)|0,e[v>>2]=r,u=0,l1(1,k|0,o|0,f|0,c|0,S|0,h|0,v|0),f=u,u=0,f&1)I=L()|0,se(r)|0,U(I|0);else return se(r)|0,e[a>>2]=e[t>>2],D=e[S>>2]|0,I=e[h>>2]|0,e[l>>2]=e[a>>2],I=mi(l,c,D,I,n,s)|0,C=g,I|0;return 0}function Om(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=+o;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;O=C,C=C+176|0,E=O+84|0,v=O+48|0,g=O+32|0,c=O+24|0,f=O+8|0,S=O,D=O+88|0,I=O+80|0,a=O+118|0,d=O+76|0,w=O+72|0,_=O+68|0,y=O+64|0,h=S,e[h>>2]=37,e[h+4>>2]=0,h=Tr(S+1|0,58898,e[n+4>>2]|0)|0,e[I>>2]=D,r=k2()|0,h?(e[f>>2]=e[n+8>>2],t0[f+8>>3]=o,f=U2(D,30,r,S,f)|0):(t0[c>>3]=o,f=U2(D,30,r,S,c)|0);e:do if((f|0)>29){u=0,r=de(3)|0,f=u,u=0,f=f&1,h?!f&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=o,l=qe(17,I|0,r|0,S|0,g|0)|0,k=u,u=0,!(k&1))&&(x=12):!f&&(u=0,e[v>>2]=e[n+8>>2],t0[v+8>>3]=o,k=qe(17,I|0,r|0,S|0,v|0)|0,v=u,u=0,!(v&1))&&(l=k,x=12);do if((x|0)==12){if(r=e[I>>2]|0,r)f=r;else{if(u=0,i2(6),k=u,u=0,k&1)break;f=e[I>>2]|0}r=f,S=f,x=16;break e}while(0);r=L()|0}else r=e[I>>2]|0,S=0,l=f,x=16;while(0);if((x|0)==16){c=r+l|0,h=r1(r,c,n)|0;do if((r|0)==(D|0))r=D,f=0,x=22;else{if(l=g2(l<<1)|0,!l){if(u=0,i2(6),x=u,u=0,x&1){f=0,x=20;break}r=e[I>>2]|0}f=l,a=l,x=22}while(0);do if((x|0)==22)if(u=0,l=j(68,n|0)|0,I=u,u=0,I&1)x=20;else{if(e[_>>2]=l,u=0,l1(2,r|0,h|0,c|0,a|0,d|0,w|0,_|0),_=u,u=0,_&1){r=L()|0,se(l)|0;break}if(se(l)|0,e[y>>2]=e[t>>2],x=e[d>>2]|0,r=e[w>>2]|0,u=0,e[E>>2]=e[y>>2],r=R1(39,E|0,a|0,x|0,r|0,n|0,s|0)|0,x=u,u=0,x&1)x=20;else return e[t>>2]=r,f&&Pe(f),S&&Pe(S),C=O,r|0}while(0);(x|0)==20&&(r=L()|0),f&&Pe(f),S&&Pe(S)}return U(r|0),0}function Tr(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;if(n&2048&&(m[r>>0]=43,r=r+1|0),n&1024&&(m[r>>0]=35,r=r+1|0),l=n&260,o=n>>>14,a=(l|0)==260,a?f=0:(m[r>>0]=46,m[r+1>>0]=42,r=r+2|0,f=1),n=m[t>>0]|0,n<<24>>24)for(s=r;t=t+1|0,r=s+1|0,m[s>>0]=n,n=m[t>>0]|0,n<<24>>24;)s=r;e:do switch(l|0){case 4:if(o&1){m[r>>0]=70;break e}else{m[r>>0]=102;break e}case 256:if(o&1){m[r>>0]=69;break e}else{m[r>>0]=101;break e}default:if(n=(o&1|0)!=0,a)if(n){m[r>>0]=65;break e}else{m[r>>0]=97;break e}else if(n){m[r>>0]=71;break e}else{m[r>>0]=103;break e}}while(0);return f|0}function Mm(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0;switch(O=C,C=C+16|0,x=O,d=E2(l,44220)|0,y=E2(l,44360)|0,_e[e[(e[y>>2]|0)+20>>2]&127](x,y),e[f>>2]=s,l=m[r>>0]|0,l<<24>>24){case 43:case 45:{u=0,l=p0(e[(e[d>>2]|0)+28>>2]|0,d|0,l|0)|0,w=u,u=0,w&1?_=8:(S=e[f>>2]|0,e[f>>2]=S+1,m[S>>0]=l,S=r+1|0,_=10);break}default:S=r,_=10}e:do if((_|0)==10){w=n;i:do if((w-S|0)>1&&(m[S>>0]|0)==48){switch(c=S+1|0,m[c>>0]|0){case 88:case 120:break;default:{_=11;break i}}if(u=0,l=p0(e[(e[d>>2]|0)+28>>2]|0,d|0,48)|0,E=u,u=0,E&1){_=8;break e}if(E=e[f>>2]|0,e[f>>2]=E+1,m[E>>0]=l,S=S+2|0,u=0,l=p0(e[(e[d>>2]|0)+28>>2]|0,d|0,m[c>>0]|0)|0,E=u,u=0,E&1){_=8;break e}if(E=e[f>>2]|0,e[f>>2]=E+1,m[E>>0]=l,S>>>0>>0){for(l=S;c=m[l>>0]|0,u=0,h=de(3)|0,E=u,u=0,!(E&1||(u=0,c=p0(39,c<<24>>24|0,h|0)|0,E=u,u=0,E&1));){if(!c){E=S;break i}if(l=l+1|0,l>>>0>=n>>>0){E=S;break i}}l=L()|0;break e}else E=S,l=S}else _=11;while(0);i:do if((_|0)==11)if(S>>>0>>0){for(l=S;c=m[l>>0]|0,u=0,h=de(3)|0,E=u,u=0,!(E&1||(u=0,c=p0(40,c<<24>>24|0,h|0)|0,E=u,u=0,E&1));){if(!c){E=S;break i}if(l=l+1|0,l>>>0>=n>>>0){E=S;break i}}l=L()|0;break e}else E=S,l=S;while(0);if(D=m[x>>0]|0,I=x+4|0,(D&1?e[I>>2]|0:(D&255)>>>1)|0){if((E|0)!=(l|0)&&(g=l+-1|0,E>>>0>>0)){h=E,c=g;do D=m[h>>0]|0,m[h>>0]=m[c>>0]|0,m[c>>0]=D,h=h+1|0,c=c+-1|0;while(h>>>0>>0)}if(u=0,g=j(e[(e[y>>2]|0)+16>>2]|0,y|0)|0,D=u,u=0,D&1){_=8;break}v=x+8|0,k=x+1|0;i:do if(E>>>0>>0){for(c=0,h=0,D=E;S=m[(m[x>>0]&1?e[v>>2]|0:k)+h>>0]|0,S<<24>>24>0&(c|0)==(S<<24>>24|0)?(c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=g,c=m[x>>0]|0,S=0,h=(h>>>0<((c&1?e[I>>2]|0:(c&255)>>>1)+-1|0)>>>0&1)+h|0):S=c,u=0,c=p0(e[(e[d>>2]|0)+28>>2]|0,d|0,m[D>>0]|0)|0,N=u,u=0,!(N&1);){if(N=e[f>>2]|0,e[f>>2]=N+1,m[N>>0]=c,D=D+1|0,D>>>0>=l>>>0)break i;c=S+1|0}l=L()|0;break e}while(0);if(c=s+(E-r)|0,h=e[f>>2]|0,(c|0)!=(h|0)&&(a=h+-1|0,c>>>0>>0)){do N=m[c>>0]|0,m[c>>0]=m[a>>0]|0,m[a>>0]=N,c=c+1|0,a=a+-1|0;while(c>>>0>>0);c=d}else c=d}else{if(u=0,qe(e[(e[d>>2]|0)+32>>2]|0,d|0,E|0,l|0,e[f>>2]|0)|0,N=u,u=0,N&1){_=8;break}e[f>>2]=(e[f>>2]|0)+(l-E),c=d}i:do if(l>>>0>>0){for(;a=m[l>>0]|0,a<<24>>24!=46;){if(u=0,a=p0(e[(e[c>>2]|0)+28>>2]|0,d|0,a|0)|0,N=u,u=0,N&1){_=4;break}if(N=e[f>>2]|0,e[f>>2]=N+1,m[N>>0]=a,l=l+1|0,l>>>0>=n>>>0)break i}if((_|0)==4){l=L()|0;break e}if(u=0,a=j(e[(e[y>>2]|0)+12>>2]|0,y|0)|0,N=u,u=0,N&1){_=8;break e}N=e[f>>2]|0,e[f>>2]=N+1,m[N>>0]=a,l=l+1|0}while(0);if(u=0,qe(e[(e[d>>2]|0)+32>>2]|0,d|0,l|0,n|0,e[f>>2]|0)|0,N=u,u=0,N&1)_=8;else{N=(e[f>>2]|0)+(w-l)|0,e[f>>2]=N,e[o>>2]=(t|0)==(n|0)?N:s+(t-r)|0,H(x),C=O;return}}while(0);(_|0)==8&&(l=L()|0),H(x),U(l|0)}function xm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=+o;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0;O=C,C=C+176|0,E=O+76|0,v=O+48|0,g=O+32|0,c=O+24|0,f=O+8|0,S=O,D=O+80|0,I=O+72|0,a=O+110|0,d=O+68|0,w=O+64|0,_=O+60|0,y=O+56|0,h=S,e[h>>2]=37,e[h+4>>2]=0,h=Tr(S+1|0,58899,e[n+4>>2]|0)|0,e[I>>2]=D,r=k2()|0,h?(e[f>>2]=e[n+8>>2],t0[f+8>>3]=o,f=U2(D,30,r,S,f)|0):(t0[c>>3]=o,f=U2(D,30,r,S,c)|0);e:do if((f|0)>29){u=0,r=de(3)|0,f=u,u=0,f=f&1,h?!f&&(u=0,e[g>>2]=e[n+8>>2],t0[g+8>>3]=o,l=qe(17,I|0,r|0,S|0,g|0)|0,k=u,u=0,!(k&1))&&(x=12):!f&&(u=0,t0[v>>3]=o,k=qe(17,I|0,r|0,S|0,v|0)|0,v=u,u=0,!(v&1))&&(l=k,x=12);do if((x|0)==12){if(r=e[I>>2]|0,r)f=r;else{if(u=0,i2(6),k=u,u=0,k&1)break;f=e[I>>2]|0}r=f,S=f,x=16;break e}while(0);r=L()|0}else r=e[I>>2]|0,S=0,l=f,x=16;while(0);if((x|0)==16){c=r+l|0,h=r1(r,c,n)|0;do if((r|0)==(D|0))r=D,f=0,x=22;else{if(l=g2(l<<1)|0,!l){if(u=0,i2(6),x=u,u=0,x&1){f=0,x=20;break}r=e[I>>2]|0}f=l,a=l,x=22}while(0);do if((x|0)==22)if(u=0,l=j(68,n|0)|0,I=u,u=0,I&1)x=20;else{if(e[_>>2]=l,u=0,l1(2,r|0,h|0,c|0,a|0,d|0,w|0,_|0),_=u,u=0,_&1){r=L()|0,se(l)|0;break}if(se(l)|0,e[y>>2]=e[t>>2],x=e[d>>2]|0,r=e[w>>2]|0,u=0,e[E>>2]=e[y>>2],r=R1(39,E|0,a|0,x|0,r|0,n|0,s|0)|0,x=u,u=0,x&1)x=20;else return e[t>>2]=r,f&&Pe(f),S&&Pe(S),C=O,r|0}while(0);(x|0)==20&&(r=L()|0),f&&Pe(f),S&&Pe(S)}return U(r|0),0}function qm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(v=C,C=C+80|0,c=v,r=v+70|0,S=v+12|0,g=v+32|0,a=v+8|0,h=v+4|0,m[r>>0]=m[58901]|0,m[r+1>>0]=m[58902]|0,m[r+2>>0]=m[58903]|0,m[r+3>>0]=m[58904]|0,m[r+4>>0]=m[58905]|0,m[r+5>>0]=m[58906]|0,f=k2()|0,e[c>>2]=o,r=U2(S,20,f,r,c)|0,o=S+r|0,f=r1(S,o,n)|0,l=Je(n)|0,e[a>>2]=l,u=0,a=p0(37,a|0,44220)|0,k=u,u=0,k&1)k=L()|0,se(l)|0,U(k|0);else return se(l)|0,qn[e[(e[a>>2]|0)+32>>2]&31](a,S,o,g)|0,k=g+r|0,e[h>>2]=e[t>>2],e[c>>2]=e[h>>2],k=mi(c,g,(f|0)==(o|0)?k:g+(f-S)|0,k,n,s)|0,C=v,k|0;return 0}function Nm(r){r=r|0}function Um(r){r=r|0,V(r)}function Bm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0;h=C,C=C+32|0,f=h+20|0,l=h+16|0,a=h+12|0,c=h;e:do if(!(e[n+4>>2]&1))c=e[(e[r>>2]|0)+24>>2]|0,e[l>>2]=e[t>>2],e[f>>2]=e[l>>2],f=Ki[c&31](r,f,n,s,o&1)|0;else{f=Je(n)|0,e[a>>2]=f,u=0,l=p0(37,a|0,44368)|0,a=u,u=0;i:do if(a&1)h=L()|0,se(f)|0,f=h;else{se(f)|0,f=e[l>>2]|0,o?_e[e[f+24>>2]&127](c,l):_e[e[f+28>>2]&127](c,l),r=m[c>>0]|0,n=(r&1)==0,f=c+4|0,o=c+8|0,a=n?f:c+4|0,f=n?f:e[c+8>>2]|0,n=(r&1)==0;r:do if((f|0)!=((n?a:e[o>>2]|0)+((n?(r&255)>>>1:e[a>>2]|0)<<2)|0)){for(;;){if(l=e[f>>2]|0,s=e[t>>2]|0,s){if(n=s+24|0,r=e[n>>2]|0,(r|0)==(e[s+28>>2]|0)){if(u=0,l=p0(e[(e[s>>2]|0)+52>>2]|0,s|0,l|0)|0,r=u,u=0,r&1)break}else e[n>>2]=r+4,e[r>>2]=l;(l|0)==-1&&(e[t>>2]=0)}if(f=f+4|0,r=m[c>>0]|0,n=(r&1)==0,(f|0)==((n?a:e[o>>2]|0)+((n?(r&255)>>>1:e[a>>2]|0)<<2)|0))break r}f=L()|0,b0(c);break i}while(0);f=e[t>>2]|0,b0(c);break e}while(0);U(f|0)}while(0);return C=h,f|0}function Qm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if(S=C,C=C+128|0,f=S,v=S+116|0,k=S+104|0,a=S+20|0,h=S+16|0,c=S+12|0,g=S+8|0,l=S+4|0,m[v>>0]=m[58887]|0,m[v+1>>0]=m[58888]|0,m[v+2>>0]=m[58889]|0,m[v+3>>0]=m[58890]|0,m[v+4>>0]=m[58891]|0,m[v+5>>0]=m[58892]|0,H1(v+1|0,58893,1,e[n+4>>2]|0),r=k2()|0,e[f>>2]=o,o=k+(U2(k,12,r,v,f)|0)|0,v=r1(k,o,n)|0,r=Je(n)|0,e[g>>2]=r,u=0,l1(3,k|0,v|0,o|0,a|0,h|0,c|0,g|0),o=u,u=0,o&1)k=L()|0,se(r)|0,U(k|0);else return se(r)|0,e[l>>2]=e[t>>2],v=e[h>>2]|0,k=e[c>>2]|0,e[f>>2]=e[l>>2],k=ki(f,a,v,k,n,s)|0,C=S,k|0;return 0}function Gm(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;_=C,C=C+16|0,y=_,I=E2(l,44212)|0,h=E2(l,44368)|0,_e[e[(e[h>>2]|0)+20>>2]&127](y,h),k=m[y>>0]|0,D=y+4|0;e:do if(!((k&1?e[D>>2]|0:(k&255)>>>1)|0))u=0,qe(e[(e[I>>2]|0)+48>>2]|0,I|0,r|0,n|0,s|0)|0,E=u,u=0,E&1?E=5:(l=s+(n-r<<2)|0,e[f>>2]=l,E=28);else{switch(e[f>>2]=s,l=m[r>>0]|0,l<<24>>24){case 43:case 45:{if(u=0,l=p0(e[(e[I>>2]|0)+44>>2]|0,I|0,l|0)|0,k=u,u=0,k&1){E=5;break e}c=e[f>>2]|0,e[f>>2]=c+4,e[c>>2]=l,c=r+1|0;break}default:c=r}i:do if((n-c|0)>1&&(m[c>>0]|0)==48){switch(l=c+1|0,m[l>>0]|0){case 88:case 120:break;default:{k=c;break i}}if(u=0,a=p0(e[(e[I>>2]|0)+44>>2]|0,I|0,48)|0,k=u,u=0,k&1){E=5;break e}if(k=e[f>>2]|0,e[f>>2]=k+4,e[k>>2]=a,u=0,l=p0(e[(e[I>>2]|0)+44>>2]|0,I|0,m[l>>0]|0)|0,k=u,u=0,k&1){E=5;break e}k=e[f>>2]|0,e[f>>2]=k+4,e[k>>2]=l,k=c+2|0}else k=c;while(0);if((k|0)!=(n|0)&&(S=n+-1|0,k>>>0>>0)){a=k,l=S;do v=m[a>>0]|0,m[a>>0]=m[l>>0]|0,m[l>>0]=v,a=a+1|0,l=l+-1|0;while(a>>>0>>0)}if(u=0,h=j(e[(e[h>>2]|0)+16>>2]|0,h|0)|0,v=u,u=0,v&1)E=5;else{S=y+8|0,g=y+1|0;i:do if(k>>>0>>0){for(l=0,a=0,v=k;c=m[(m[y>>0]&1?e[S>>2]|0:g)+a>>0]|0,c<<24>>24!=0&(l|0)==(c<<24>>24|0)?(l=e[f>>2]|0,e[f>>2]=l+4,e[l>>2]=h,l=m[y>>0]|0,c=0,a=(a>>>0<((l&1?e[D>>2]|0:(l&255)>>>1)+-1|0)>>>0&1)+a|0):c=l,u=0,l=p0(e[(e[I>>2]|0)+44>>2]|0,I|0,m[v>>0]|0)|0,w=u,u=0,!(w&1);){if(w=e[f>>2]|0,e[f>>2]=w+4,e[w>>2]=l,v=v+1|0,v>>>0>=n>>>0)break i;l=c+1|0}l=L()|0;break e}while(0);if(c=r,l=s+(k-c<<2)|0,a=e[f>>2]|0,(l|0)!=(a|0))if(r=a+-4|0,l>>>0>>0){do w=e[l>>2]|0,e[l>>2]=e[r>>2],e[r>>2]=w,l=l+4|0,r=r+-4|0;while(l>>>0>>0);r=c,l=a,E=28}else r=c,l=a,E=28;else r=c,E=28}}while(0);if((E|0)==5)l=L()|0;else if((E|0)==28){e[o>>2]=(t|0)==(n|0)?l:s+(t-r<<2)|0,H(y),C=_;return}H(y),U(l|0)}function Vm(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(g=C,C=C+224|0,l=g+8|0,r=g,k=g+196|0,c=g+32|0,S=g+28|0,h=g+24|0,v=g+20|0,a=g+16|0,D=r,e[D>>2]=37,e[D+4>>2]=0,H1(r+1|0,58895,1,e[n+4>>2]|0),D=k2()|0,I=l,e[I>>2]=o,e[I+4>>2]=f,f=k+(U2(k,22,D,r,l)|0)|0,o=r1(k,f,n)|0,r=Je(n)|0,e[v>>2]=r,u=0,l1(3,k|0,o|0,f|0,c|0,S|0,h|0,v|0),f=u,u=0,f&1)I=L()|0,se(r)|0,U(I|0);else return se(r)|0,e[a>>2]=e[t>>2],D=e[S>>2]|0,I=e[h>>2]|0,e[l>>2]=e[a>>2],I=ki(l,c,D,I,n,s)|0,C=g,I|0;return 0}function Hm(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0;E=C,C=C+16|0,D=E,v=E+8|0;e:do if((n|0)==(s|0))c=s;else for(c=n;;){if(!(e[c>>2]|0))break e;if(c=c+4|0,(c|0)==(s|0)){c=s;break}}while(0);e[a>>2]=f,e[o>>2]=n,S=l,k=r+8|0;e:do if((f|0)==(l|0)|(n|0)==(s|0))_=47;else{r=f,h=c;i:for(;;){if(y=t,f=e[y+4>>2]|0,c=D,e[c>>2]=e[y>>2],e[c+4>>2]=f,c=o1(e[k>>2]|0)|0,u=0,f=ar(21,r|0,o|0,h-n>>2|0,S-r|0,t|0)|0,y=u,u=0,y&1){_=9;break}if(c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)){_=8;break}switch(f|0){case 0:{g=1;break e}case-1:{c=r,_=14;break i}default:}if(c=(e[a>>2]|0)+f|0,e[a>>2]=c,(c|0)==(l|0)){_=27;break}if((h|0)==(s|0))n=e[o>>2]|0,r=c,c=s;else{if(c=o1(e[k>>2]|0)|0,u=0,n=ie(34,v|0,0,t|0)|0,y=u,u=0,y&1){_=35;break}if(c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)){_=34;break}if((n|0)==-1){g=2;break e}if(n>>>0>(S-(e[a>>2]|0)|0)>>>0){g=1;break e}if(n)for(c=v;h=m[c>>0]|0,y=e[a>>2]|0,e[a>>2]=y+1,m[y>>0]=h,n=n+-1|0,n;)c=c+1|0;n=(e[o>>2]|0)+4|0,e[o>>2]=n;r:do if((n|0)==(s|0))c=s;else for(c=n;;){if(!(e[c>>2]|0))break r;if(c=c+4|0,(c|0)==(s|0)){c=s;break}}while(0);r=e[a>>2]|0}if((r|0)==(l|0)|(n|0)==(s|0)){_=47;break e}else h=c}if((_|0)==8)y=L(0)|0,ne(y);else if((_|0)==9)n=L()|0,c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)&&(y=L(0)|0,ne(y)),U(n|0);else if((_|0)==14){e[a>>2]=c;i:do if((n|0)!=(e[o>>2]|0)){for(;;){if(y=e[n>>2]|0,r=o1(e[k>>2]|0)|0,u=0,c=ie(34,c|0,y|0,D|0)|0,y=u,u=0,y&1){I=r;break}if(r|0&&(u=0,j(75,r|0)|0,y=u,u=0,y&1)){_=18;break}if((c|0)==-1||(c=(e[a>>2]|0)+c|0,e[a>>2]=c,n=n+4|0,(n|0)==(e[o>>2]|0)))break i}(_|0)==18&&(y=L(0)|0,ne(y)),n=L()|0,I|0&&(u=0,j(75,I|0)|0,y=u,u=0,y&1)&&(y=L(0)|0,ne(y)),U(n|0)}while(0);e[o>>2]=n,g=2;break}else if((_|0)==27){n=e[o>>2]|0,_=47;break}else(_|0)==34?(y=L(0)|0,ne(y)):(_|0)==35&&(n=L()|0,c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)&&(y=L(0)|0,ne(y)),U(n|0))}while(0);return(_|0)==47&&(g=(n|0)!=(s|0)&1),C=E,g|0}function zm(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0;E=C,C=C+16|0,I=E;e:do if((n|0)==(s|0))c=s;else for(c=n;;){if(!(m[c>>0]|0))break e;if(c=c+1|0,(c|0)==(s|0)){c=s;break}}while(0);e[a>>2]=f,e[o>>2]=n,g=l,k=r+8|0;e:do if((f|0)==(l|0)|(n|0)==(s|0))_=47;else{r=f,S=c;i:for(;;){if(h=t,c=e[h+4>>2]|0,f=I,e[f>>2]=e[h>>2],e[f+4>>2]=c,f=S,c=o1(e[k>>2]|0)|0,u=0,h=ar(22,r|0,o|0,f-n|0,g-r>>2|0,t|0)|0,y=u,u=0,y&1){_=9;break}if(c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)){_=8;break}switch(h|0){case 0:{v=2;break e}case-1:{c=r,_=14;break i}default:}if(r=(e[a>>2]|0)+(h<<2)|0,e[a>>2]=r,(r|0)==(l|0)){_=31;break}if(n=e[o>>2]|0,(S|0)==(s|0))c=s;else{if(c=o1(e[k>>2]|0)|0,u=0,n=qe(20,r|0,n|0,1,t|0)|0,y=u,u=0,y&1){_=38;break}if(c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)){_=37;break}if(n){v=2;break e}e[a>>2]=(e[a>>2]|0)+4,n=(e[o>>2]|0)+1|0,e[o>>2]=n;r:do if((n|0)==(s|0))c=s;else for(c=n;;){if(!(m[c>>0]|0))break r;if(c=c+1|0,(c|0)==(s|0)){c=s;break}}while(0);r=e[a>>2]|0}if((r|0)==(l|0)|(n|0)==(s|0)){_=47;break e}else S=c}if((_|0)==8)y=L(0)|0,ne(y);else if((_|0)==9)n=L()|0,c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)&&(y=L(0)|0,ne(y)),U(n|0);else if((_|0)==14){e[a>>2]=c;i:do if((n|0)!=(e[o>>2]|0)){r=c;r:for(;;){if(c=o1(e[k>>2]|0)|0,u=0,r=qe(20,r|0,n|0,f-n|0,I|0)|0,y=u,u=0,y&1){_=19;break}if(c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)){_=18;break}switch(r|0){case-1:{_=25;break r}case-2:{_=26;break r}case 0:{n=n+1|0;break}default:n=n+r|0}if(r=(e[a>>2]|0)+4|0,e[a>>2]=r,(n|0)==(e[o>>2]|0)){D=n;break i}}if((_|0)==18)y=L(0)|0,ne(y);else if((_|0)==19)n=L()|0,c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)&&(y=L(0)|0,ne(y)),U(n|0);else if((_|0)==25){e[o>>2]=n,v=2;break e}else if((_|0)==26){e[o>>2]=n,v=1;break e}}else D=n;while(0);e[o>>2]=D,v=(D|0)!=(s|0)&1;break}else if((_|0)==31){n=e[o>>2]|0,_=47;break}else(_|0)==37?(y=L(0)|0,ne(y)):(_|0)==38&&(n=L()|0,c|0&&(u=0,j(75,c|0)|0,y=u,u=0,y&1)&&(y=L(0)|0,ne(y)),U(n|0))}while(0);return(_|0)==47&&(v=(n|0)!=(s|0)&1),C=E,v|0}function Ym(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;switch(l=C,C=C+16|0,f=l,e[o>>2]=n,n=o1(e[r+8>>2]|0)|0,u=0,r=ie(34,f|0,0,t|0)|0,t=u,u=0,t&1&&(f=L()|0,n|0&&(u=0,j(75,n|0)|0,l=u,u=0,l&1)&&(l=L(0)|0,ne(l)),U(f|0)),n|0&&(u=0,j(75,n|0)|0,t=u,u=0,t&1)&&(t=L(0)|0,ne(t)),r|0){case 0:case-1:{f=2;break}default:if(r=r+-1|0,r>>>0<=(s-(e[o>>2]|0)|0)>>>0)if(!r)f=0;else for(;;)if(t=m[f>>0]|0,s=e[o>>2]|0,e[o>>2]=s+1,m[s>>0]=t,r=r+-1|0,r)f=f+1|0;else{f=0;break}else f=1}return C=l,f|0}function Xm(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;t=r+8|0,u=0,n=j(75,e[t>>2]|0)|0,s=u,u=0;do if(s&1)o=16;else{if(u=0,s=ie(35,0,0,4)|0,r=u,u=0,r&1){if(r=L(0)|0,!n||(u=0,j(75,n|0)|0,l=u,u=0,!(l&1)))break;l=L(0)|0,ne(l)}if(n|0&&(u=0,j(75,n|0)|0,l=u,u=0,l&1)&&(l=L(0)|0,ne(l)),s)f=-1;else if(r=e[t>>2]|0,r){if(u=0,r=j(75,r|0)|0,l=u,u=0,l&1){o=16;break}r|0&&(u=0,j(75,r|0)|0,l=u,u=0,l&1)?(l=L(0)|0,ne(l)):f=0}else f=1;return f|0}while(0);return(o|0)==16&&(r=L(0)|0),ne(r),0}function jm(r){return r=r|0,0}function Wm(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;h=s,c=r+8|0;e:do if((n|0)==(s|0)|(o|0)==0)r=0;else{for(r=0,a=0;;){if(l=o1(e[c>>2]|0)|0,u=0,f=ie(36,n|0,h-n|0,t|0)|0,v=u,u=0,v&1){g=l;break}if(l|0&&(u=0,j(75,l|0)|0,v=u,u=0,v&1)){S=5;break}switch(f|0){case-2:case-1:break e;case 0:{n=n+1|0,f=1;break}default:n=n+f|0}if(r=f+r|0,a=a+1|0,(n|0)==(s|0)|a>>>0>=o>>>0)break e}(S|0)==5&&(v=L(0)|0,ne(v)),r=L()|0,g|0&&(u=0,j(75,g|0)|0,v=u,u=0,v&1)&&(v=L(0)|0,ne(v)),U(r|0)}while(0);return r|0}function Jm(r){r=r|0;var t=0,n=0;return r=e[r+8>>2]|0,r?(u=0,r=j(75,r|0)|0,n=u,u=0,n&1&&(n=L(0)|0,ne(n)),r|0&&(u=0,j(75,r|0)|0,n=u,u=0,n&1)?(n=L(0)|0,ne(n)):t=4):t=1,t|0}function Km(r){r=r|0,V(r)}function Zm(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=f,l=Yp(n,s,c,f,l,t,1114111,0)|0,e[o>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function $m(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=f,l=Xp(n,s,c,f,l,t,1114111,0)|0,e[o>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function bm(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,e[o>>2]=n,3}function e7(r){return r=r|0,0}function i7(r){return r=r|0,0}function r7(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,jp(n,s,o,1114111,0)|0}function t7(r){return r=r|0,4}function n7(r){r=r|0,V(r)}function s7(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=f,l=Wp(n,s,c,f,l,t,1114111,0)|0,e[o>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function o7(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0;return r=C,C=C+16|0,c=r+4|0,t=r,e[c>>2]=n,e[t>>2]=f,l=Jp(n,s,c,f,l,t,1114111,0)|0,e[o>>2]=e[c>>2],e[a>>2]=e[t>>2],C=r,l|0}function f7(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,e[o>>2]=n,3}function l7(r){return r=r|0,0}function u7(r){return r=r|0,0}function a7(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,Kp(n,s,o,1114111,0)|0}function c7(r){return r=r|0,4}function S7(r){r=r|0,V(r)}function h7(r){r=r|0,V(r)}function m7(r,t){r=r|0,t=t|0,e[r+4>>2]=t+-1,e[r>>2]=44384,m[r+8>>0]=46,m[r+9>>0]=44,r=r+12|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function p7(r,t){r=r|0,t=t|0,e[r+4>>2]=t+-1,e[r>>2]=44424,e[r+8>>2]=46,e[r+12>>2]=44,r=r+16|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0}function ef(r){r=r|0,e[r>>2]=44384,H(r+12|0)}function g7(r){r=r|0,ef(r),V(r)}function rf(r){r=r|0,e[r>>2]=44424,H(r+16|0)}function v7(r){r=r|0,rf(r),V(r)}function T7(r){return r=r|0,m[r+8>>0]|0}function k7(r){return r=r|0,e[r+8>>2]|0}function w7(r){return r=r|0,m[r+9>>0]|0}function d7(r){return r=r|0,e[r+12>>2]|0}function C7(r,t){r=r|0,t=t|0,mn(r,t+12|0)}function y7(r,t){r=r|0,t=t|0,mn(r,t+16|0)}function A7(r,t){r=r|0,t=t|0,q1(r,59024,4)}function D7(r,t){r=r|0,t=t|0,vn(r,44996,qr(44996)|0)}function _7(r,t){r=r|0,t=t|0,q1(r,59029,5)}function I7(r,t){r=r|0,t=t|0,vn(r,45016,qr(45016)|0)}function u1(r){switch(r=r|0,e[r+4>>2]&74|0){case 64:{r=8;break}case 8:{r=16;break}case 0:{r=0;break}default:r=10}return r|0}function P7(r){r=r|0;do if(!(m[2464]|0)&&j0(2464)|0){if(!(m[2472]|0)&&j0(2472)|0){r=45040;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=45208);J0(193,0,l0|0)|0,W0(2472)}if(u=0,p0(41,45040,59035)|0,r=u,u=0,!(r&1)&&(u=0,p0(41,45052,59042)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45064,59049)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45076,59057)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45088,59067)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45100,59076)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45112,59083)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45124,59092)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45136,59096)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45148,59100)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45160,59104)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45172,59108)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45184,59112)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45196,59116)|0,r=u,u=0,!(r&1))){e[11302]=45040,W0(2464);break}r=L()|0,B2(2464),U(r|0)}while(0);return e[11302]|0}function E7(r){r=r|0;do if(!(m[2480]|0)&&j0(2480)|0){if(!(m[2488]|0)&&j0(2488)|0){r=45212;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=45380);J0(194,0,l0|0)|0,W0(2488)}if(u=0,p0(42,45212,45380)|0,r=u,u=0,!(r&1)&&(u=0,p0(42,45224,45408)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45236,45436)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45248,45468)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45260,45508)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45272,45544)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45284,45572)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45296,45608)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45308,45624)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45320,45640)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45332,45656)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45344,45672)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45356,45688)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,45368,45704)|0,r=u,u=0,!(r&1))){e[11430]=45212,W0(2480);break}r=L()|0,B2(2480),U(r|0)}while(0);return e[11430]|0}function L7(r){r=r|0;e:do if(!(m[2496]|0)&&j0(2496)|0){if(!(m[2504]|0)&&j0(2504)|0){r=45724;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=46012);J0(195,0,l0|0)|0,W0(2504)}u=0,p0(41,45724,59120)|0,r=u,u=0;do if(!(r&1)&&(u=0,p0(41,45736,59128)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45748,59137)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45760,59143)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45772,59149)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45784,59153)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45796,59158)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45808,59163)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45820,59170)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45832,59180)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45844,59188)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45856,59197)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45868,59206)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45880,59210)|0,r=u,u=0,!(r&1))&&(u=0,p0(41,45892,59214)|0,r=u,u=0,!(r&1))){if(u=0,p0(41,45904,59218)|0,r=u,u=0,r&1||(u=0,p0(41,45916,59149)|0,r=u,u=0,r&1)||(u=0,p0(41,45928,59222)|0,r=u,u=0,r&1)||(u=0,p0(41,45940,59226)|0,r=u,u=0,r&1)||(u=0,p0(41,45952,59230)|0,r=u,u=0,r&1)||(u=0,p0(41,45964,59234)|0,r=u,u=0,r&1)||(u=0,p0(41,45976,59238)|0,r=u,u=0,r&1)||(u=0,p0(41,45988,59242)|0,r=u,u=0,r&1)||(u=0,p0(41,46e3,59246)|0,r=u,u=0,r&1))break;e[11503]=45724,W0(2496);break e}while(0);r=L()|0,B2(2496),U(r|0)}while(0);return e[11503]|0}function F7(r){r=r|0;e:do if(!(m[2512]|0)&&j0(2512)|0){if(!(m[2520]|0)&&j0(2520)|0){r=46016;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=46304);J0(196,0,l0|0)|0,W0(2520)}u=0,p0(42,46016,46304)|0,r=u,u=0;do if(!(r&1)&&(u=0,p0(42,46028,46336)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46040,46372)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46052,46396)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46064,46420)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46076,46436)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46088,46456)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46100,46476)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46112,46504)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46124,46544)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46136,46576)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46148,46612)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46160,46648)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46172,46664)|0,r=u,u=0,!(r&1))&&(u=0,p0(42,46184,46680)|0,r=u,u=0,!(r&1))){if(u=0,p0(42,46196,46696)|0,r=u,u=0,r&1||(u=0,p0(42,46208,46420)|0,r=u,u=0,r&1)||(u=0,p0(42,46220,46712)|0,r=u,u=0,r&1)||(u=0,p0(42,46232,46728)|0,r=u,u=0,r&1)||(u=0,p0(42,46244,46744)|0,r=u,u=0,r&1)||(u=0,p0(42,46256,46760)|0,r=u,u=0,r&1)||(u=0,p0(42,46268,46776)|0,r=u,u=0,r&1)||(u=0,p0(42,46280,46792)|0,r=u,u=0,r&1)||(u=0,p0(42,46292,46808)|0,r=u,u=0,r&1))break;e[11706]=46016,W0(2512);break e}while(0);r=L()|0,B2(2512),U(r|0)}while(0);return e[11706]|0}function R7(r){r=r|0;do if(!(m[2528]|0)&&j0(2528)|0){if(!(m[2536]|0)&&j0(2536)|0){r=46828;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=47116);J0(197,0,l0|0)|0,W0(2536)}if(u=0,p0(41,46828,59250)|0,r=u,u=0,!(r&1)&&(u=0,p0(41,46840,59253)|0,r=u,u=0,!(r&1))){e[11779]=46828,W0(2528);break}r=L()|0,B2(2528),U(r|0)}while(0);return e[11779]|0}function O7(r){r=r|0;do if(!(m[2544]|0)&&j0(2544)|0){if(!(m[2552]|0)&&j0(2552)|0){r=47120;do e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,r=r+12|0;while((r|0)!=47408);J0(198,0,l0|0)|0,W0(2552)}if(u=0,p0(42,47120,47408)|0,r=u,u=0,!(r&1)&&(u=0,p0(42,47132,47420)|0,r=u,u=0,!(r&1))){e[11858]=47120,W0(2544);break}r=L()|0,B2(2544),U(r|0)}while(0);return e[11858]|0}function M7(r){r=r|0;do if(!(m[2560]|0)&&j0(2560)|0)if(u=0,c0(5,47436,59256,8),r=u,u=0,r&1)r=L()|0,B2(2560),U(r|0);else{J0(199,47436,l0|0)|0,W0(2560);break}while(0);return 47436}function x7(r){r=r|0;var t=0;do if(!(m[2568]|0)&&j0(2568)|0){if(u=0,r=j(76,47448)|0,t=u,u=0,!(t&1)&&(u=0,c0(15,47484,47448,r|0),t=u,u=0,!(t&1))){J0(200,47484,l0|0)|0,W0(2568);break}t=L()|0,B2(2568),U(t|0)}while(0);return 47484}function q7(r){r=r|0;do if(!(m[2576]|0)&&j0(2576)|0)if(u=0,c0(5,47496,59265,8),r=u,u=0,r&1)r=L()|0,B2(2576),U(r|0);else{J0(199,47496,l0|0)|0,W0(2576);break}while(0);return 47496}function N7(r){r=r|0;var t=0;do if(!(m[2584]|0)&&j0(2584)|0){if(u=0,r=j(76,47508)|0,t=u,u=0,!(t&1)&&(u=0,c0(15,47544,47508,r|0),t=u,u=0,!(t&1))){J0(200,47544,l0|0)|0,W0(2584);break}t=L()|0,B2(2584),U(t|0)}while(0);return 47544}function U7(r){r=r|0;do if(!(m[2592]|0)&&j0(2592)|0)if(u=0,c0(5,47556,59274,20),r=u,u=0,r&1)r=L()|0,B2(2592),U(r|0);else{J0(199,47556,l0|0)|0,W0(2592);break}while(0);return 47556}function B7(r){r=r|0;var t=0;do if(!(m[2600]|0)&&j0(2600)|0){if(u=0,r=j(76,47568)|0,t=u,u=0,!(t&1)&&(u=0,c0(15,47652,47568,r|0),t=u,u=0,!(t&1))){J0(200,47652,l0|0)|0,W0(2600);break}t=L()|0,B2(2600),U(t|0)}while(0);return 47652}function Q7(r){r=r|0;do if(!(m[2608]|0)&&j0(2608)|0)if(u=0,c0(5,47664,59295,11),r=u,u=0,r&1)r=L()|0,B2(2608),U(r|0);else{J0(199,47664,l0|0)|0,W0(2608);break}while(0);return 47664}function G7(r){r=r|0;var t=0;do if(!(m[2616]|0)&&j0(2616)|0){if(u=0,r=j(76,47676)|0,t=u,u=0,!(t&1)&&(u=0,c0(15,47724,47676,r|0),t=u,u=0,!(t&1))){J0(200,47724,l0|0)|0,W0(2616);break}t=L()|0,B2(2616),U(t|0)}while(0);return 47724}function tf(r){r=r|0;var t=0,n=0,s=0;e[r>>2]=44304,r=r+8|0,t=e[r>>2]|0,u=0,n=de(3)|0,s=u,u=0;do if(!(s&1)){if((t|0)!=(n|0)&&(u=0,I0(188,e[r>>2]|0),s=u,u=0,s&1))break;return}while(0);s=L(0)|0,ne(s)}function kr(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0;d=C,C=C+112|0,c=d,S=(s-n|0)/12|0;do if(S>>>0>100){if(c=g2(S)|0,!(c|0)&&(u=0,i2(6),w=u,u=0,w&1)){a=0,k=6;break}a=c,k=11}else a=0,k=11;while(0);e:do if((k|0)==11){if((n|0)==(s|0))h=0;else for(k=n,g=0,v=c;h=m[k>>0]|0,h&1?h=e[k+4>>2]|0:h=(h&255)>>>1,h?(m[v>>0]=1,h=g):(m[v>>0]=2,h=g+1|0,S=S+-1|0),k=k+12|0,(k|0)!=(s|0);)g=h,v=v+1|0;y=(n|0)==(s|0),w=(n|0)==(s|0),_=0,D=h;i:for(;;){h=e[r>>2]|0;do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=j(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,E=u,u=0,E&1){k=5;break i}if((h|0)==-1){e[r>>2]=0,h=0;break}else{h=e[r>>2]|0;break}}}else h=0;while(0);if(k=(h|0)==0,g=e[t>>2]|0,g){if((e[g+12>>2]|0)==(e[g+16>>2]|0)){if(u=0,h=j(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,E=u,u=0,E&1){k=5;break}(h|0)==-1&&(e[t>>2]=0,g=0)}}else g=0;if(v=(g|0)==0,h=e[r>>2]|0,!((S|0)!=0&(k^v))){k=64;break}if(g=e[h+12>>2]|0,(g|0)==(e[h+16>>2]|0)){if(u=0,h=j(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,E=u,u=0,E&1){k=5;break}}else h=z[g>>0]|0;if(h=h&255,!l&&(u=0,h=p0(e[(e[o>>2]|0)+12>>2]|0,o|0,h|0)|0,E=u,u=0,E&1)){k=5;break}if(E=_+1|0,y)h=0,k=D;else for(v=0,I=n,k=D,D=c;;){do if((m[D>>0]|0)==1){if(m[I>>0]&1?g=e[I+8>>2]|0:g=I+1|0,g=m[g+_>>0]|0,!l&&(u=0,g=p0(e[(e[o>>2]|0)+12>>2]|0,o|0,g|0)|0,O=u,u=0,O&1)){k=4;break i}if(h<<24>>24!=g<<24>>24){m[D>>0]=0,g=v,S=S+-1|0;break}g=m[I>>0]|0,g&1?g=e[I+4>>2]|0:g=(g&255)>>>1,(g|0)==(E|0)?(m[D>>0]=2,g=1,k=k+1|0,S=S+-1|0):g=1}else g=v;while(0);if(I=I+12|0,(I|0)==(s|0)){h=g;break}else v=g,D=D+1|0}if(!h){_=E,D=k;continue}if(h=e[r>>2]|0,g=h+12|0,v=e[g>>2]|0,(v|0)==(e[h+16>>2]|0)){if(u=0,j(e[(e[h>>2]|0)+40>>2]|0,h|0)|0,O=u,u=0,O&1){k=5;break}}else e[g>>2]=v+1;if((k+S|0)>>>0<2|w){_=E,D=k;continue}else h=n,v=k,k=c;for(;;)if((m[k>>0]|0)==2&&(g=m[h>>0]|0,g&1?g=e[h+4>>2]|0:g=(g&255)>>>1,(g|0)!=(E|0)&&(m[k>>0]=0,v=v+-1|0)),h=h+12|0,(h|0)==(s|0)){_=E,D=v;continue i}else k=k+1|0}if((k|0)==4){n=L()|0;break}else if((k|0)==5){n=L()|0;break}else if((k|0)==64){do if(h){if((e[h+12>>2]|0)==(e[h+16>>2]|0)){if(u=0,h=j(e[(e[h>>2]|0)+36>>2]|0,h|0)|0,O=u,u=0,O&1){k=6;break e}if((h|0)==-1){e[r>>2]=0,h=0;break}else{h=e[r>>2]|0;break}}}else h=0;while(0);S=(h|0)==0;do if(v)k=76;else{if((e[g+12>>2]|0)==(e[g+16>>2]|0)){if(u=0,h=j(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,O=u,u=0,O&1){k=6;break e}if((h|0)==-1){e[t>>2]=0,k=76;break}}S||(k=77)}while(0);(k|0)==76&&S&&(k=77),(k|0)==77&&(e[f>>2]=e[f>>2]|2);i:do if((n|0)==(s|0))k=81;else for(;;){if((m[c>>0]|0)==2)break i;if(n=n+12|0,(n|0)==(s|0)){k=81;break}else c=c+1|0}while(0);return(k|0)==81&&(e[f>>2]=e[f>>2]|4,n=s),a&&Pe(a),C=d,n|0}}while(0);return(k|0)==6&&(n=L()|0),a&&Pe(a),U(n|0),0}function V7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+240|0,D=O+202|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,vi(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=25;else{g=x+8|0,v=x+1|0,s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=m[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=m[x>>0]|0,a=a&1?e[k>>2]|0:(a&255)>>>1,(e[E>>2]|0)==(s+a|0)){if(u=0,c0(8,x|0,a<<1|0,0),h=u,u=0,h&1){q=24;break}if(m[x>>0]&1?s=(e[x>>2]&-2)+-1|0:s=10,u=0,c0(8,x|0,s|0,0),h=u,u=0,h&1){q=24;break}s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s+a}if(c=r+12|0,a=e[c>>2]|0,h=r+16|0,(a|0)==(e[h>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}}else a=z[a>>0]|0;if(ti(a&255,I,s,E,_,S,N,w,d,D)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,s=qe(21,s|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=25;else{if(e[f>>2]=s,O2(N,w,e[d>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}s||(q=50)}else q=49;while(0);return(q|0)==49&&s&&(q=50),(q|0)==50&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==25&&(r=L()|0),H(x),H(N),U(r|0),0}function H7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+240|0,D=O+202|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,vi(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=25;else{g=x+8|0,v=x+1|0,s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=m[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;l=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(l)break;break i}if(u=0,c=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){q=24;break i}if((c|0)!=-1){if(l)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,l){a=0;break}else a=0;if(l=m[x>>0]|0,l=l&1?e[k>>2]|0:(l&255)>>>1,(e[E>>2]|0)==(s+l|0)){if(u=0,c0(8,x|0,l<<1|0,0),h=u,u=0,h&1){q=24;break}if(m[x>>0]&1?s=(e[x>>2]&-2)+-1|0:s=10,u=0,c0(8,x|0,s|0,0),h=u,u=0,h&1){q=24;break}s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s+l}if(c=r+12|0,l=e[c>>2]|0,h=r+16|0,(l|0)==(e[h>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}}else l=z[l>>0]|0;if(ti(l&255,I,s,E,_,S,N,w,d,D)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,s=qe(22,s|0,e[E>>2]|0,o|0,I|0)|0,l=o0,B=u,u=0,B&1)q=25;else{if(B=f,e[B>>2]=s,e[B+4>>2]=l,O2(N,w,e[d>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,B=u,u=0,B&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}s||(q=50)}else q=49;while(0);return(q|0)==49&&s&&(q=50),(q|0)==50&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==25&&(r=L()|0),H(x),H(N),U(r|0),0}function z7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+240|0,D=O+202|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,vi(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=25;else{g=x+8|0,v=x+1|0,s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=m[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=m[x>>0]|0,a=a&1?e[k>>2]|0:(a&255)>>>1,(e[E>>2]|0)==(s+a|0)){if(u=0,c0(8,x|0,a<<1|0,0),h=u,u=0,h&1){q=24;break}if(m[x>>0]&1?s=(e[x>>2]&-2)+-1|0:s=10,u=0,c0(8,x|0,s|0,0),h=u,u=0,h&1){q=24;break}s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s+a}if(c=r+12|0,a=e[c>>2]|0,h=r+16|0,(a|0)==(e[h>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}}else a=z[a>>0]|0;if(ti(a&255,I,s,E,_,S,N,w,d,D)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,s=qe(23,s|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=25;else{if(R[f>>1]=s,O2(N,w,e[d>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}s||(q=50)}else q=49;while(0);return(q|0)==49&&s&&(q=50),(q|0)==50&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==25&&(r=L()|0),H(x),H(N),U(r|0),0}function Y7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+240|0,D=O+202|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,vi(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=25;else{g=x+8|0,v=x+1|0,s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=m[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=m[x>>0]|0,a=a&1?e[k>>2]|0:(a&255)>>>1,(e[E>>2]|0)==(s+a|0)){if(u=0,c0(8,x|0,a<<1|0,0),h=u,u=0,h&1){q=24;break}if(m[x>>0]&1?s=(e[x>>2]&-2)+-1|0:s=10,u=0,c0(8,x|0,s|0,0),h=u,u=0,h&1){q=24;break}s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s+a}if(c=r+12|0,a=e[c>>2]|0,h=r+16|0,(a|0)==(e[h>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}}else a=z[a>>0]|0;if(ti(a&255,I,s,E,_,S,N,w,d,D)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,s=qe(24,s|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=25;else{if(e[f>>2]=s,O2(N,w,e[d>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}s||(q=50)}else q=49;while(0);return(q|0)==49&&s&&(q=50),(q|0)==50&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==25&&(r=L()|0),H(x),H(N),U(r|0),0}function X7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+240|0,D=O+202|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,vi(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=25;else{g=x+8|0,v=x+1|0,s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=m[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;a=(r|0)==0,l=e[n>>2]|0;do if(l){if((e[l+12>>2]|0)!=(e[l+16>>2]|0)){if(a)break;break i}if(u=0,c=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=24;break i}if((c|0)!=-1){if(a)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,a){l=0;break}else l=0;if(a=m[x>>0]|0,a=a&1?e[k>>2]|0:(a&255)>>>1,(e[E>>2]|0)==(s+a|0)){if(u=0,c0(8,x|0,a<<1|0,0),h=u,u=0,h&1){q=24;break}if(m[x>>0]&1?s=(e[x>>2]&-2)+-1|0:s=10,u=0,c0(8,x|0,s|0,0),h=u,u=0,h&1){q=24;break}s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s+a}if(c=r+12|0,a=e[c>>2]|0,h=r+16|0,(a|0)==(e[h>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}}else a=z[a>>0]|0;if(ti(a&255,I,s,E,_,S,N,w,d,D)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,s=qe(25,s|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=25;else{if(e[f>>2]=s,O2(N,w,e[d>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}s||(q=50)}else q=49;while(0);return(q|0)==49&&s&&(q=50),(q|0)==50&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==25&&(r=L()|0),H(x),H(N),U(r|0),0}function j7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+240|0,D=O+202|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,vi(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=25;else{g=x+8|0,v=x+1|0,s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=m[l>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,h=u,u=0,h&1){q=24;break}(l|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;l=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(l)break;break i}if(u=0,c=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){q=24;break i}if((c|0)!=-1){if(l)break;break i}else{e[n>>2]=0,q=16;break}}else q=16;while(0);if((q|0)==16)if(q=0,l){a=0;break}else a=0;if(l=m[x>>0]|0,l=l&1?e[k>>2]|0:(l&255)>>>1,(e[E>>2]|0)==(s+l|0)){if(u=0,c0(8,x|0,l<<1|0,0),h=u,u=0,h&1){q=24;break}if(m[x>>0]&1?s=(e[x>>2]&-2)+-1|0:s=10,u=0,c0(8,x|0,s|0,0),h=u,u=0,h&1){q=24;break}s=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=s+l}if(c=r+12|0,l=e[c>>2]|0,h=r+16|0,(l|0)==(e[h>>2]|0)){if(u=0,l=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}}else l=z[l>>0]|0;if(ti(l&255,I,s,E,_,S,N,w,d,D)|0)break;if(l=e[c>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,B=u,u=0,B&1){q=24;break}else continue;else{e[c>>2]=l+1;continue}}if((q|0)==24){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,s=qe(26,s|0,e[E>>2]|0,o|0,I|0)|0,l=o0,B=u,u=0,B&1)q=25;else{if(B=f,e[B>>2]=s,e[B+4>>2]=l,O2(N,w,e[d>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,B=u,u=0,B&1){q=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,B=u,u=0,B&1){q=25;break e}if((r|0)==-1){e[n>>2]=0,q=49;break}}s||(q=50)}else q=49;while(0);return(q|0)==49&&s&&(q=50),(q|0)==50&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==25&&(r=L()|0),H(x),H(N),U(r|0),0}function W7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;q=C,C=C+240|0,E=q+208|0,a=q+203|0,c=q+202|0,n0=q+24|0,B=q+12|0,y=q+8|0,x=q+40|0,N=q+4|0,w=q,d=q+201|0,_=q+200|0,wn(n0,s,E,a,c),e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),I=u,u=0;e:do if(I&1)r0=25;else{k=B+8|0,D=B+1|0,s=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=s,e[N>>2]=x,e[w>>2]=0,m[d>>0]=1,m[_>>0]=69,I=B+4|0,v=m[a>>0]|0,g=m[c>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,S=u,u=0,S&1){r0=24;break}(a|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;c=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(c)break;break i}if(u=0,h=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,S=u,u=0,S&1){r0=24;break i}if((h|0)!=-1){if(c)break;break i}else{e[n>>2]=0,r0=16;break}}else r0=16;while(0);if((r0|0)==16)if(r0=0,c){a=0;break}else a=0;if(c=m[B>>0]|0,c=c&1?e[I>>2]|0:(c&255)>>>1,(e[y>>2]|0)==(s+c|0)){if(u=0,c0(8,B|0,c<<1|0,0),S=u,u=0,S&1){r0=24;break}if(m[B>>0]&1?s=(e[B>>2]&-2)+-1|0:s=10,u=0,c0(8,B|0,s|0,0),S=u,u=0,S&1){r0=24;break}s=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=s+c}if(h=r+12|0,c=e[h>>2]|0,S=r+16|0,(c|0)==(e[S>>2]|0)){if(u=0,c=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,$=u,u=0,$&1){r0=24;break}}else c=z[c>>0]|0;if(dn(c&255,d,_,s,y,v,g,n0,x,N,w,E)|0)break;if(a=e[h>>2]|0,(a|0)==(e[S>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,$=u,u=0,$&1){r0=24;break}else continue;else{e[h>>2]=a+1;continue}}if((r0|0)==24){r=L()|0;break}if($=m[n0>>0]|0,!(!(m[d>>0]|0)||!(($&1?e[n0+4>>2]|0:($&255)>>>1)|0))&&(O=e[N>>2]|0,(O-x|0)<160)&&($=e[w>>2]|0,e[N>>2]=O+4,e[O>>2]=$),u=0,l=+hi(1,s|0,e[y>>2]|0,o|0),$=u,u=0,$&1)r0=25;else{if(V0[f>>2]=l,O2(n0,x,e[N>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,$=u,u=0,$&1){r0=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,$=u,u=0,$&1){r0=25;break e}if((r|0)==-1){e[n>>2]=0,r0=49;break}}s||(r0=50)}else r0=49;while(0);return(r0|0)==49&&s&&(r0=50),(r0|0)==50&&(e[o>>2]=e[o>>2]|2),$=e[t>>2]|0,H(B),H(n0),C=q,$|0}}while(0);return(r0|0)==25&&(r=L()|0),H(B),H(n0),U(r|0),0}function J7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;q=C,C=C+240|0,E=q+208|0,a=q+203|0,c=q+202|0,n0=q+24|0,B=q+12|0,y=q+8|0,x=q+40|0,N=q+4|0,w=q,d=q+201|0,_=q+200|0,wn(n0,s,E,a,c),e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),I=u,u=0;e:do if(I&1)r0=25;else{k=B+8|0,D=B+1|0,s=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=s,e[N>>2]=x,e[w>>2]=0,m[d>>0]=1,m[_>>0]=69,I=B+4|0,v=m[a>>0]|0,g=m[c>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,S=u,u=0,S&1){r0=24;break}(a|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;c=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(c)break;break i}if(u=0,h=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,S=u,u=0,S&1){r0=24;break i}if((h|0)!=-1){if(c)break;break i}else{e[n>>2]=0,r0=16;break}}else r0=16;while(0);if((r0|0)==16)if(r0=0,c){a=0;break}else a=0;if(c=m[B>>0]|0,c=c&1?e[I>>2]|0:(c&255)>>>1,(e[y>>2]|0)==(s+c|0)){if(u=0,c0(8,B|0,c<<1|0,0),S=u,u=0,S&1){r0=24;break}if(m[B>>0]&1?s=(e[B>>2]&-2)+-1|0:s=10,u=0,c0(8,B|0,s|0,0),S=u,u=0,S&1){r0=24;break}s=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=s+c}if(h=r+12|0,c=e[h>>2]|0,S=r+16|0,(c|0)==(e[S>>2]|0)){if(u=0,c=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,$=u,u=0,$&1){r0=24;break}}else c=z[c>>0]|0;if(dn(c&255,d,_,s,y,v,g,n0,x,N,w,E)|0)break;if(a=e[h>>2]|0,(a|0)==(e[S>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,$=u,u=0,$&1){r0=24;break}else continue;else{e[h>>2]=a+1;continue}}if((r0|0)==24){r=L()|0;break}if($=m[n0>>0]|0,!(!(m[d>>0]|0)||!(($&1?e[n0+4>>2]|0:($&255)>>>1)|0))&&(O=e[N>>2]|0,(O-x|0)<160)&&($=e[w>>2]|0,e[N>>2]=O+4,e[O>>2]=$),u=0,l=+hi(2,s|0,e[y>>2]|0,o|0),$=u,u=0,$&1)r0=25;else{if(t0[f>>3]=l,O2(n0,x,e[N>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,$=u,u=0,$&1){r0=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,$=u,u=0,$&1){r0=25;break e}if((r|0)==-1){e[n>>2]=0,r0=49;break}}s||(r0=50)}else r0=49;while(0);return(r0|0)==49&&s&&(r0=50),(r0|0)==50&&(e[o>>2]=e[o>>2]|2),$=e[t>>2]|0,H(B),H(n0),C=q,$|0}}while(0);return(r0|0)==25&&(r=L()|0),H(B),H(n0),U(r|0),0}function K7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;q=C,C=C+240|0,E=q+208|0,a=q+203|0,c=q+202|0,n0=q+24|0,B=q+12|0,y=q+8|0,x=q+40|0,N=q+4|0,w=q,d=q+201|0,_=q+200|0,wn(n0,s,E,a,c),e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),I=u,u=0;e:do if(I&1)r0=25;else{k=B+8|0,D=B+1|0,s=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=s,e[N>>2]=x,e[w>>2]=0,m[d>>0]=1,m[_>>0]=69,I=B+4|0,v=m[a>>0]|0,g=m[c>>0]|0,r=e[t>>2]|0;i:for(;;){if(r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,a=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,S=u,u=0,S&1){r0=24;break}(a|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;c=(r|0)==0,a=e[n>>2]|0;do if(a){if((e[a+12>>2]|0)!=(e[a+16>>2]|0)){if(c)break;break i}if(u=0,h=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,S=u,u=0,S&1){r0=24;break i}if((h|0)!=-1){if(c)break;break i}else{e[n>>2]=0,r0=16;break}}else r0=16;while(0);if((r0|0)==16)if(r0=0,c){a=0;break}else a=0;if(c=m[B>>0]|0,c=c&1?e[I>>2]|0:(c&255)>>>1,(e[y>>2]|0)==(s+c|0)){if(u=0,c0(8,B|0,c<<1|0,0),S=u,u=0,S&1){r0=24;break}if(m[B>>0]&1?s=(e[B>>2]&-2)+-1|0:s=10,u=0,c0(8,B|0,s|0,0),S=u,u=0,S&1){r0=24;break}s=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=s+c}if(h=r+12|0,c=e[h>>2]|0,S=r+16|0,(c|0)==(e[S>>2]|0)){if(u=0,c=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,$=u,u=0,$&1){r0=24;break}}else c=z[c>>0]|0;if(dn(c&255,d,_,s,y,v,g,n0,x,N,w,E)|0)break;if(a=e[h>>2]|0,(a|0)==(e[S>>2]|0))if(u=0,j(e[(e[r>>2]|0)+40>>2]|0,r|0)|0,$=u,u=0,$&1){r0=24;break}else continue;else{e[h>>2]=a+1;continue}}if((r0|0)==24){r=L()|0;break}if($=m[n0>>0]|0,!(!(m[d>>0]|0)||!(($&1?e[n0+4>>2]|0:($&255)>>>1)|0))&&(O=e[N>>2]|0,(O-x|0)<160)&&($=e[w>>2]|0,e[N>>2]=O+4,e[O>>2]=$),u=0,l=+hi(3,s|0,e[y>>2]|0,o|0),$=u,u=0,$&1)r0=25;else{if(t0[f>>3]=l,O2(n0,x,e[N>>2]|0,o),r){if((e[r+12>>2]|0)==(e[r+16>>2]|0)){if(u=0,s=j(e[(e[r>>2]|0)+36>>2]|0,r|0)|0,$=u,u=0,$&1){r0=25;break}(s|0)==-1&&(e[t>>2]=0,r=0)}}else r=0;s=(r|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,$=u,u=0,$&1){r0=25;break e}if((r|0)==-1){e[n>>2]=0,r0=49;break}}s||(r0=50)}else r0=49;while(0);return(r0|0)==49&&s&&(r0=50),(r0|0)==50&&(e[o>>2]=e[o>>2]|2),$=e[t>>2]|0,H(B),H(n0),C=q,$|0}}while(0);return(r0|0)==25&&(r=L()|0),H(B),H(n0),U(r|0),0}function Z7(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;return o=C,C=C+16|0,f=o,e[f>>2]=s,s=o1(t)|0,t=qf(r,n,f)|0,s|0&&(u=0,j(75,s|0)|0,f=u,u=0,f&1)&&(f=L(0)|0,ne(f)),C=o,t|0}function wr(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0;var a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0;d=C,C=C+112|0,c=d,S=(s-n|0)/12|0;do if(S>>>0>100){if(c=g2(S)|0,!(c|0)&&(u=0,i2(6),w=u,u=0,w&1)){a=0,v=6;break}a=c,v=11}else a=0,v=11;while(0);e:do if((v|0)==11){if((n|0)==(s|0))h=0;else for(k=n,g=0,v=c;h=m[k>>0]|0,h&1?h=e[k+4>>2]|0:h=(h&255)>>>1,h?(m[v>>0]=1,h=g):(m[v>>0]=2,h=g+1|0,S=S+-1|0),k=k+12|0,(k|0)!=(s|0);)g=h,v=v+1|0;y=(n|0)==(s|0),w=(n|0)==(s|0),_=0,D=S;i:for(;;){S=e[r>>2]|0;do if(S){if(g=e[S+12>>2]|0,(g|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,E=u,u=0,E&1){v=5;break i}}else S=e[g>>2]|0;if((S|0)==-1){e[r>>2]=0,k=1;break}else{k=(e[r>>2]|0)==0;break}}else k=1;while(0);if(g=e[t>>2]|0,g){if(S=e[g+12>>2]|0,(S|0)==(e[g+16>>2]|0)){if(u=0,S=j(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,E=u,u=0,E&1){v=5;break}}else S=e[S>>2]|0;(S|0)==-1?(e[t>>2]=0,g=0,v=1):v=0}else g=0,v=1;if(S=e[r>>2]|0,!((D|0)!=0&(k^v))){v=66;break}if(g=e[S+12>>2]|0,(g|0)==(e[S+16>>2]|0)){if(u=0,S=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,E=u,u=0,E&1){v=5;break}}else S=e[g>>2]|0;if(!l&&(u=0,S=p0(e[(e[o>>2]|0)+28>>2]|0,o|0,S|0)|0,E=u,u=0,E&1)){v=5;break}if(E=_+1|0,y)S=0,k=D;else for(k=0,I=n,v=D,D=c;;){do if((m[D>>0]|0)==1){if(m[I>>0]&1?g=e[I+8>>2]|0:g=I+4|0,g=e[g+(_<<2)>>2]|0,!l&&(u=0,g=p0(e[(e[o>>2]|0)+28>>2]|0,o|0,g|0)|0,O=u,u=0,O&1)){v=4;break i}if((S|0)!=(g|0)){m[D>>0]=0,g=k,v=v+-1|0;break}g=m[I>>0]|0,g&1?g=e[I+4>>2]|0:g=(g&255)>>>1,(g|0)==(E|0)?(m[D>>0]=2,g=1,h=h+1|0,v=v+-1|0):g=1}else g=k;while(0);if(I=I+12|0,(I|0)==(s|0)){S=g,k=v;break}else k=g,D=D+1|0}if(!S){_=E,D=k;continue}if(S=e[r>>2]|0,g=S+12|0,v=e[g>>2]|0,(v|0)==(e[S+16>>2]|0)){if(u=0,j(e[(e[S>>2]|0)+40>>2]|0,S|0)|0,O=u,u=0,O&1){v=5;break}}else e[g>>2]=v+4;if((h+k|0)>>>0<2|w){_=E,D=k;continue}else S=n,v=c;for(;;)if((m[v>>0]|0)==2&&(g=m[S>>0]|0,g&1?g=e[S+4>>2]|0:g=(g&255)>>>1,(g|0)!=(E|0)&&(m[v>>0]=0,h=h+-1|0)),S=S+12|0,(S|0)==(s|0)){_=E,D=k;continue i}else v=v+1|0}if((v|0)==4){n=L()|0;break}else if((v|0)==5){n=L()|0;break}else if((v|0)==66){do if(S){if(h=e[S+12>>2]|0,(h|0)==(e[S+16>>2]|0)){if(u=0,h=j(e[(e[S>>2]|0)+36>>2]|0,S|0)|0,O=u,u=0,O&1){v=6;break e}}else h=e[h>>2]|0;if((h|0)==-1){e[r>>2]=0,S=1;break}else{S=(e[r>>2]|0)==0;break}}else S=1;while(0);do if(g){if(h=e[g+12>>2]|0,(h|0)==(e[g+16>>2]|0)){if(u=0,h=j(e[(e[g>>2]|0)+36>>2]|0,g|0)|0,O=u,u=0,O&1){v=6;break e}}else h=e[h>>2]|0;if((h|0)!=-1){if(S)break;v=81;break}else{e[t>>2]=0,v=79;break}}else v=79;while(0);(v|0)==79&&S&&(v=81),(v|0)==81&&(e[f>>2]=e[f>>2]|2);i:do if((n|0)==(s|0))v=85;else for(;;){if((m[c>>0]|0)==2)break i;if(n=n+12|0,(n|0)==(s|0)){v=85;break}else c=c+1|0}while(0);return(v|0)==85&&(e[f>>2]=e[f>>2]|4,n=s),a&&Pe(a),C=d,n|0}}while(0);return(v|0)==6&&(n=L()|0),a&&Pe(a),U(n|0),0}function $7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+320|0,D=O+208|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,Ti(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=26;else{g=x+8|0,v=x+1|0,r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=25;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,s=0,a=1):(s=l,a=0)}else s=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=j(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,h=u,u=0,h&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=m[x>>0]|0,l=l&1?e[k>>2]|0:(l&255)>>>1,(e[E>>2]|0)==(r+l|0)){if(u=0,c0(8,x|0,l<<1|0,0),h=u,u=0,h&1){q=25;break}if(m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),h=u,u=0,h&1){q=25;break}r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r+l}if(a=s+12|0,l=e[a>>2]|0,h=s+16|0,(l|0)==(e[h>>2]|0)){if(u=0,l=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}}else l=e[l>>2]|0;if(ni(l,I,r,E,_,S,N,w,d,D)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}else{l=s;continue}else{e[a>>2]=l+4,l=s;continue}}if((q|0)==25){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,r=qe(21,r|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=26;else{if(e[f>>2]=r,O2(N,w,e[d>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&s&&(q=53),(q|0)==53&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==26&&(r=L()|0),H(x),H(N),U(r|0),0}function b7(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+320|0,D=O+208|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,Ti(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=26;else{g=x+8|0,v=x+1|0,r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=25;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,l=0,c=1):c=0}else l=0,c=1;a=e[n>>2]|0;do if(a){if(s=e[a+12>>2]|0,(s|0)==(e[a+16>>2]|0)){if(u=0,s=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){q=25;break i}}else s=e[s>>2]|0;if((s|0)!=-1){if(c)break;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,c){a=0;break}else a=0;if(s=m[x>>0]|0,s=s&1?e[k>>2]|0:(s&255)>>>1,(e[E>>2]|0)==(r+s|0)){if(u=0,c0(8,x|0,s<<1|0,0),h=u,u=0,h&1){q=25;break}if(m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),h=u,u=0,h&1){q=25;break}r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r+s}if(c=l+12|0,s=e[c>>2]|0,h=l+16|0,(s|0)==(e[h>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break}}else s=e[s>>2]|0;if(ni(s,I,r,E,_,S,N,w,d,D)|0)break;if(s=e[c>>2]|0,(s|0)==(e[h>>2]|0))if(u=0,j(e[(e[l>>2]|0)+40>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break}else continue;else{e[c>>2]=s+4;continue}}if((q|0)==25){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,r=qe(22,r|0,e[E>>2]|0,o|0,I|0)|0,s=o0,B=u,u=0,B&1)q=26;else{if(B=f,e[B>>2]=r,e[B+4>>2]=s,O2(N,w,e[d>>2]|0,o),l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,B=u,u=0,B&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&s&&(q=53),(q|0)==53&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==26&&(r=L()|0),H(x),H(N),U(r|0),0}function ep(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+320|0,D=O+208|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,Ti(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=26;else{g=x+8|0,v=x+1|0,r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=25;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,s=0,a=1):(s=l,a=0)}else s=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=j(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,h=u,u=0,h&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=m[x>>0]|0,l=l&1?e[k>>2]|0:(l&255)>>>1,(e[E>>2]|0)==(r+l|0)){if(u=0,c0(8,x|0,l<<1|0,0),h=u,u=0,h&1){q=25;break}if(m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),h=u,u=0,h&1){q=25;break}r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r+l}if(a=s+12|0,l=e[a>>2]|0,h=s+16|0,(l|0)==(e[h>>2]|0)){if(u=0,l=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}}else l=e[l>>2]|0;if(ni(l,I,r,E,_,S,N,w,d,D)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}else{l=s;continue}else{e[a>>2]=l+4,l=s;continue}}if((q|0)==25){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,r=qe(23,r|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=26;else{if(R[f>>1]=r,O2(N,w,e[d>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&s&&(q=53),(q|0)==53&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==26&&(r=L()|0),H(x),H(N),U(r|0),0}function ip(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+320|0,D=O+208|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,Ti(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=26;else{g=x+8|0,v=x+1|0,r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=25;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,s=0,a=1):(s=l,a=0)}else s=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=j(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,h=u,u=0,h&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=m[x>>0]|0,l=l&1?e[k>>2]|0:(l&255)>>>1,(e[E>>2]|0)==(r+l|0)){if(u=0,c0(8,x|0,l<<1|0,0),h=u,u=0,h&1){q=25;break}if(m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),h=u,u=0,h&1){q=25;break}r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r+l}if(a=s+12|0,l=e[a>>2]|0,h=s+16|0,(l|0)==(e[h>>2]|0)){if(u=0,l=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}}else l=e[l>>2]|0;if(ni(l,I,r,E,_,S,N,w,d,D)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}else{l=s;continue}else{e[a>>2]=l+4,l=s;continue}}if((q|0)==25){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,r=qe(24,r|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=26;else{if(e[f>>2]=r,O2(N,w,e[d>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&s&&(q=53),(q|0)==53&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==26&&(r=L()|0),H(x),H(N),U(r|0),0}function rp(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+320|0,D=O+208|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,Ti(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=26;else{g=x+8|0,v=x+1|0,r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=25;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,s=0,a=1):(s=l,a=0)}else s=0,a=1;c=e[n>>2]|0;do if(c){if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)){if(u=0,l=j(e[(e[c>>2]|0)+36>>2]|0,c|0)|0,h=u,u=0,h&1){q=25;break i}}else l=e[l>>2]|0;if((l|0)!=-1){if(a)break;l=c;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,a){l=0;break}else c=0;if(l=m[x>>0]|0,l=l&1?e[k>>2]|0:(l&255)>>>1,(e[E>>2]|0)==(r+l|0)){if(u=0,c0(8,x|0,l<<1|0,0),h=u,u=0,h&1){q=25;break}if(m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),h=u,u=0,h&1){q=25;break}r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r+l}if(a=s+12|0,l=e[a>>2]|0,h=s+16|0,(l|0)==(e[h>>2]|0)){if(u=0,l=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}}else l=e[l>>2]|0;if(ni(l,I,r,E,_,S,N,w,d,D)|0){l=c;break}if(l=e[a>>2]|0,(l|0)==(e[h>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,B=u,u=0,B&1){q=25;break}else{l=s;continue}else{e[a>>2]=l+4,l=s;continue}}if((q|0)==25){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,r=qe(25,r|0,e[E>>2]|0,o|0,I|0)|0,B=u,u=0,B&1)q=26;else{if(e[f>>2]=r,O2(N,w,e[d>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,B=u,u=0,B&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&s&&(q=53),(q|0)==53&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==26&&(r=L()|0),H(x),H(N),U(r|0),0}function tp(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;O=C,C=C+320|0,D=O+208|0,l=O+200|0,N=O+24|0,x=O+12|0,E=O+8|0,w=O+40|0,d=O+4|0,_=O,I=u1(s)|0,Ti(N,s,D,l),e[x>>2]=0,e[x+4>>2]=0,e[x+8>>2]=0,m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),k=u,u=0;e:do if(k&1)q=26;else{g=x+8|0,v=x+1|0,r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r,e[d>>2]=w,e[_>>2]=0,k=x+4|0,S=e[l>>2]|0,l=e[t>>2]|0;i:for(;;){if(l){if(s=e[l+12>>2]|0,(s|0)==(e[l+16>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,h=u,u=0,h&1){q=25;break}}else s=e[s>>2]|0;(s|0)==-1?(e[t>>2]=0,l=0,c=1):c=0}else l=0,c=1;a=e[n>>2]|0;do if(a){if(s=e[a+12>>2]|0,(s|0)==(e[a+16>>2]|0)){if(u=0,s=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,h=u,u=0,h&1){q=25;break i}}else s=e[s>>2]|0;if((s|0)!=-1){if(c)break;break i}else{e[n>>2]=0,q=17;break}}else q=17;while(0);if((q|0)==17)if(q=0,c){a=0;break}else a=0;if(s=m[x>>0]|0,s=s&1?e[k>>2]|0:(s&255)>>>1,(e[E>>2]|0)==(r+s|0)){if(u=0,c0(8,x|0,s<<1|0,0),h=u,u=0,h&1){q=25;break}if(m[x>>0]&1?r=(e[x>>2]&-2)+-1|0:r=10,u=0,c0(8,x|0,r|0,0),h=u,u=0,h&1){q=25;break}r=m[x>>0]&1?e[g>>2]|0:v,e[E>>2]=r+s}if(c=l+12|0,s=e[c>>2]|0,h=l+16|0,(s|0)==(e[h>>2]|0)){if(u=0,s=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break}}else s=e[s>>2]|0;if(ni(s,I,r,E,_,S,N,w,d,D)|0)break;if(s=e[c>>2]|0,(s|0)==(e[h>>2]|0))if(u=0,j(e[(e[l>>2]|0)+40>>2]|0,l|0)|0,B=u,u=0,B&1){q=25;break}else continue;else{e[c>>2]=s+4;continue}}if((q|0)==25){r=L()|0;break}if(B=m[N>>0]|0,(B&1?e[N+4>>2]|0:(B&255)>>>1)|0&&(y=e[d>>2]|0,(y-w|0)<160)&&(B=e[_>>2]|0,e[d>>2]=y+4,e[y>>2]=B),u=0,r=qe(26,r|0,e[E>>2]|0,o|0,I|0)|0,s=o0,B=u,u=0,B&1)q=26;else{if(B=f,e[B>>2]=r,e[B+4>>2]=s,O2(N,w,e[d>>2]|0,o),l){if(r=e[l+12>>2]|0,(r|0)==(e[l+16>>2]|0)){if(u=0,r=j(e[(e[l>>2]|0)+36>>2]|0,l|0)|0,B=u,u=0,B&1){q=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,B=u,u=0,B&1){q=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;q=53;break}else{e[n>>2]=0,q=51;break}}else q=51;while(0);return(q|0)==51&&s&&(q=53),(q|0)==53&&(e[o>>2]=e[o>>2]|2),B=e[t>>2]|0,H(x),H(N),C=O,B|0}}while(0);return(q|0)==26&&(r=L()|0),H(x),H(N),U(r|0),0}function np(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;q=C,C=C+352|0,E=q+208|0,a=q+40|0,c=q+36|0,n0=q+24|0,B=q+12|0,y=q+8|0,x=q+48|0,N=q+4|0,w=q,d=q+337|0,_=q+336|0,Cn(n0,s,E,a,c),e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),I=u,u=0;e:do if(I&1)r0=26;else{k=B+8|0,D=B+1|0,r=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=r,e[N>>2]=x,e[w>>2]=0,m[d>>0]=1,m[_>>0]=69,I=B+4|0,v=e[a>>2]|0,g=e[c>>2]|0,s=e[t>>2]|0;i:for(;;){if(s){if(a=e[s+12>>2]|0,(a|0)==(e[s+16>>2]|0)){if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,S=u,u=0,S&1){r0=25;break}}else a=e[a>>2]|0;(a|0)==-1?(e[t>>2]=0,s=0,h=1):h=0}else s=0,h=1;a=e[n>>2]|0;do if(a){if(c=e[a+12>>2]|0,(c|0)==(e[a+16>>2]|0)){if(u=0,c=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,S=u,u=0,S&1){r0=25;break i}}else c=e[c>>2]|0;if((c|0)!=-1){if(h)break;break i}else{e[n>>2]=0,r0=17;break}}else r0=17;while(0);if((r0|0)==17)if(r0=0,h){a=0;break}else a=0;if(c=m[B>>0]|0,c=c&1?e[I>>2]|0:(c&255)>>>1,(e[y>>2]|0)==(r+c|0)){if(u=0,c0(8,B|0,c<<1|0,0),S=u,u=0,S&1){r0=25;break}if(m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),S=u,u=0,S&1){r0=25;break}r=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=r+c}if(h=s+12|0,c=e[h>>2]|0,S=s+16|0,(c|0)==(e[S>>2]|0)){if(u=0,c=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,$=u,u=0,$&1){r0=25;break}}else c=e[c>>2]|0;if(yn(c,d,_,r,y,v,g,n0,x,N,w,E)|0)break;if(a=e[h>>2]|0,(a|0)==(e[S>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,$=u,u=0,$&1){r0=25;break}else continue;else{e[h>>2]=a+4;continue}}if((r0|0)==25){r=L()|0;break}if($=m[n0>>0]|0,!(!(m[d>>0]|0)||!(($&1?e[n0+4>>2]|0:($&255)>>>1)|0))&&(O=e[N>>2]|0,(O-x|0)<160)&&($=e[w>>2]|0,e[N>>2]=O+4,e[O>>2]=$),u=0,l=+hi(1,r|0,e[y>>2]|0,o|0),$=u,u=0,$&1)r0=26;else{if(V0[f>>2]=l,O2(n0,x,e[N>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,$=u,u=0,$&1){r0=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,$=u,u=0,$&1){r0=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;r0=53;break}else{e[n>>2]=0,r0=51;break}}else r0=51;while(0);return(r0|0)==51&&s&&(r0=53),(r0|0)==53&&(e[o>>2]=e[o>>2]|2),$=e[t>>2]|0,H(B),H(n0),C=q,$|0}}while(0);return(r0|0)==26&&(r=L()|0),H(B),H(n0),U(r|0),0}function sp(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;q=C,C=C+352|0,E=q+208|0,a=q+40|0,c=q+36|0,n0=q+24|0,B=q+12|0,y=q+8|0,x=q+48|0,N=q+4|0,w=q,d=q+337|0,_=q+336|0,Cn(n0,s,E,a,c),e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),I=u,u=0;e:do if(I&1)r0=26;else{k=B+8|0,D=B+1|0,r=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=r,e[N>>2]=x,e[w>>2]=0,m[d>>0]=1,m[_>>0]=69,I=B+4|0,v=e[a>>2]|0,g=e[c>>2]|0,s=e[t>>2]|0;i:for(;;){if(s){if(a=e[s+12>>2]|0,(a|0)==(e[s+16>>2]|0)){if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,S=u,u=0,S&1){r0=25;break}}else a=e[a>>2]|0;(a|0)==-1?(e[t>>2]=0,s=0,h=1):h=0}else s=0,h=1;a=e[n>>2]|0;do if(a){if(c=e[a+12>>2]|0,(c|0)==(e[a+16>>2]|0)){if(u=0,c=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,S=u,u=0,S&1){r0=25;break i}}else c=e[c>>2]|0;if((c|0)!=-1){if(h)break;break i}else{e[n>>2]=0,r0=17;break}}else r0=17;while(0);if((r0|0)==17)if(r0=0,h){a=0;break}else a=0;if(c=m[B>>0]|0,c=c&1?e[I>>2]|0:(c&255)>>>1,(e[y>>2]|0)==(r+c|0)){if(u=0,c0(8,B|0,c<<1|0,0),S=u,u=0,S&1){r0=25;break}if(m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),S=u,u=0,S&1){r0=25;break}r=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=r+c}if(h=s+12|0,c=e[h>>2]|0,S=s+16|0,(c|0)==(e[S>>2]|0)){if(u=0,c=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,$=u,u=0,$&1){r0=25;break}}else c=e[c>>2]|0;if(yn(c,d,_,r,y,v,g,n0,x,N,w,E)|0)break;if(a=e[h>>2]|0,(a|0)==(e[S>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,$=u,u=0,$&1){r0=25;break}else continue;else{e[h>>2]=a+4;continue}}if((r0|0)==25){r=L()|0;break}if($=m[n0>>0]|0,!(!(m[d>>0]|0)||!(($&1?e[n0+4>>2]|0:($&255)>>>1)|0))&&(O=e[N>>2]|0,(O-x|0)<160)&&($=e[w>>2]|0,e[N>>2]=O+4,e[O>>2]=$),u=0,l=+hi(2,r|0,e[y>>2]|0,o|0),$=u,u=0,$&1)r0=26;else{if(t0[f>>3]=l,O2(n0,x,e[N>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,$=u,u=0,$&1){r0=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,$=u,u=0,$&1){r0=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;r0=53;break}else{e[n>>2]=0,r0=51;break}}else r0=51;while(0);return(r0|0)==51&&s&&(r0=53),(r0|0)==53&&(e[o>>2]=e[o>>2]|2),$=e[t>>2]|0,H(B),H(n0),C=q,$|0}}while(0);return(r0|0)==26&&(r=L()|0),H(B),H(n0),U(r|0),0}function op(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0;q=C,C=C+352|0,E=q+208|0,a=q+40|0,c=q+36|0,n0=q+24|0,B=q+12|0,y=q+8|0,x=q+48|0,N=q+4|0,w=q,d=q+337|0,_=q+336|0,Cn(n0,s,E,a,c),e[B>>2]=0,e[B+4>>2]=0,e[B+8>>2]=0,m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),I=u,u=0;e:do if(I&1)r0=26;else{k=B+8|0,D=B+1|0,r=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=r,e[N>>2]=x,e[w>>2]=0,m[d>>0]=1,m[_>>0]=69,I=B+4|0,v=e[a>>2]|0,g=e[c>>2]|0,s=e[t>>2]|0;i:for(;;){if(s){if(a=e[s+12>>2]|0,(a|0)==(e[s+16>>2]|0)){if(u=0,a=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,S=u,u=0,S&1){r0=25;break}}else a=e[a>>2]|0;(a|0)==-1?(e[t>>2]=0,s=0,h=1):h=0}else s=0,h=1;a=e[n>>2]|0;do if(a){if(c=e[a+12>>2]|0,(c|0)==(e[a+16>>2]|0)){if(u=0,c=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,S=u,u=0,S&1){r0=25;break i}}else c=e[c>>2]|0;if((c|0)!=-1){if(h)break;break i}else{e[n>>2]=0,r0=17;break}}else r0=17;while(0);if((r0|0)==17)if(r0=0,h){a=0;break}else a=0;if(c=m[B>>0]|0,c=c&1?e[I>>2]|0:(c&255)>>>1,(e[y>>2]|0)==(r+c|0)){if(u=0,c0(8,B|0,c<<1|0,0),S=u,u=0,S&1){r0=25;break}if(m[B>>0]&1?r=(e[B>>2]&-2)+-1|0:r=10,u=0,c0(8,B|0,r|0,0),S=u,u=0,S&1){r0=25;break}r=m[B>>0]&1?e[k>>2]|0:D,e[y>>2]=r+c}if(h=s+12|0,c=e[h>>2]|0,S=s+16|0,(c|0)==(e[S>>2]|0)){if(u=0,c=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,$=u,u=0,$&1){r0=25;break}}else c=e[c>>2]|0;if(yn(c,d,_,r,y,v,g,n0,x,N,w,E)|0)break;if(a=e[h>>2]|0,(a|0)==(e[S>>2]|0))if(u=0,j(e[(e[s>>2]|0)+40>>2]|0,s|0)|0,$=u,u=0,$&1){r0=25;break}else continue;else{e[h>>2]=a+4;continue}}if((r0|0)==25){r=L()|0;break}if($=m[n0>>0]|0,!(!(m[d>>0]|0)||!(($&1?e[n0+4>>2]|0:($&255)>>>1)|0))&&(O=e[N>>2]|0,(O-x|0)<160)&&($=e[w>>2]|0,e[N>>2]=O+4,e[O>>2]=$),u=0,l=+hi(3,r|0,e[y>>2]|0,o|0),$=u,u=0,$&1)r0=26;else{if(t0[f>>3]=l,O2(n0,x,e[N>>2]|0,o),s){if(r=e[s+12>>2]|0,(r|0)==(e[s+16>>2]|0)){if(u=0,r=j(e[(e[s>>2]|0)+36>>2]|0,s|0)|0,$=u,u=0,$&1){r0=26;break}}else r=e[r>>2]|0;(r|0)==-1?(e[t>>2]=0,s=1):s=0}else s=1;do if(a){if(r=e[a+12>>2]|0,(r|0)==(e[a+16>>2]|0)){if(u=0,r=j(e[(e[a>>2]|0)+36>>2]|0,a|0)|0,$=u,u=0,$&1){r0=26;break e}}else r=e[r>>2]|0;if((r|0)!=-1){if(s)break;r0=53;break}else{e[n>>2]=0,r0=51;break}}else r0=51;while(0);return(r0|0)==51&&s&&(r0=53),(r0|0)==53&&(e[o>>2]=e[o>>2]|2),$=e[t>>2]|0,H(B),H(n0),C=q,$|0}}while(0);return(r0|0)==26&&(r=L()|0),H(B),H(n0),U(r|0),0}function U2(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;return f=C,C=C+16|0,l=f,e[l>>2]=o,o=o1(n)|0,n=xr(r,t,s,l)|0,o|0&&(u=0,j(75,o|0)|0,l=u,u=0,l&1)&&(l=L(0)|0,ne(l)),C=f,n|0}function fp(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;if(o=C,C=C+16|0,f=o,e[f>>2]=s,s=o1(t)|0,u=0,t=ie(37,r|0,n|0,f|0)|0,r=u,u=0,r&1)t=L()|0,s|0&&(u=0,j(75,s|0)|0,f=u,u=0,f&1)&&(f=L(0)|0,ne(f)),U(t|0);else return s|0&&(u=0,j(75,s|0)|0,f=u,u=0,f&1)&&(f=L(0)|0,ne(f)),C=o,t|0;return 0}function ki(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0;g=C,C=C+16|0,S=g,l=e[r>>2]|0;e:do if(!l)l=0;else{if(v=t,c=s-v>>2,h=o+12|0,a=e[h>>2]|0,c=(a|0)>(c|0)?a-c|0:0,a=n,v=a-v|0,o=v>>2,(v|0)>0&&(ge[e[(e[l>>2]|0)+48>>2]&63](l,t,o)|0)!=(o|0)){e[r>>2]=0,l=0;break}do if((c|0)>0)if(Tn(S,c,f),u=0,o=ie(e[(e[l>>2]|0)+48>>2]|0,l|0,(m[S>>0]&1?e[S+8>>2]|0:S+4|0)|0,c|0)|0,v=u,u=0,v&1&&(v=L()|0,b0(S),U(v|0)),(o|0)==(c|0)){b0(S);break}else{e[r>>2]=0,b0(S),l=0;break e}while(0);if(v=s-a|0,s=v>>2,(v|0)>0&&(ge[e[(e[l>>2]|0)+48>>2]&63](l,n,s)|0)!=(s|0)){e[r>>2]=0,l=0;break}e[h>>2]=0}while(0);return C=g,l|0}function y1(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;f=e[r>>2]|0;do if(f){if((e[f+12>>2]|0)==(e[f+16>>2]|0))if((X0[e[(e[f>>2]|0)+36>>2]&127](f)|0)==-1){e[r>>2]=0,f=0;break}else{f=e[r>>2]|0;break}}else f=0;while(0);l=(f|0)==0,f=e[t>>2]|0;do if(f){if((e[f+12>>2]|0)==(e[f+16>>2]|0)&&(X0[e[(e[f>>2]|0)+36>>2]&127](f)|0)==-1){e[t>>2]=0,D=11;break}l?D=13:D=12}else D=11;while(0);(D|0)==11&&(l?D=12:(f=0,D=13));e:do if((D|0)==12)e[n>>2]=e[n>>2]|6,f=0;else if((D|0)==13){if(l=e[r>>2]|0,a=e[l+12>>2]|0,(a|0)==(e[l+16>>2]|0)?l=X0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=z[a>>0]|0,a=l&255,a<<24>>24>-1&&(k=s+8|0,(R[(e[k>>2]|0)+(l<<24>>24<<1)>>1]&2048)!=0)){for(h=(ge[e[(e[s>>2]|0)+36>>2]&63](s,a,0)|0)<<24>>24,l=e[r>>2]|0,a=l+12|0,c=e[a>>2]|0,(c|0)==(e[l+16>>2]|0)?(X0[e[(e[l>>2]|0)+40>>2]&127](l)|0,g=o,S=f,o=f,f=h):(e[a>>2]=c+1,g=o,S=f,o=f,f=h);;){f=f+-48|0,v=g+-1|0,l=e[r>>2]|0;do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0))if((X0[e[(e[l>>2]|0)+36>>2]&127](l)|0)==-1){e[r>>2]=0,l=0;break}else{l=e[r>>2]|0;break}}else l=0;while(0);if(c=(l|0)==0,o?(e[o+12>>2]|0)==(e[o+16>>2]|0)?(X0[e[(e[o>>2]|0)+36>>2]&127](o)|0)==-1?(e[t>>2]=0,a=0,o=0):(a=S,o=S):a=S:(a=S,o=0),l=e[r>>2]|0,!((g|0)>1&(c^(o|0)==0)))break;if(c=e[l+12>>2]|0,(c|0)==(e[l+16>>2]|0)?l=X0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=z[c>>0]|0,c=l&255,c<<24>>24<=-1||!(R[(e[k>>2]|0)+(l<<24>>24<<1)>>1]&2048))break e;if(f=((ge[e[(e[s>>2]|0)+36>>2]&63](s,c,0)|0)<<24>>24)+(f*10|0)|0,l=e[r>>2]|0,c=l+12|0,h=e[c>>2]|0,(h|0)==(e[l+16>>2]|0)){X0[e[(e[l>>2]|0)+40>>2]&127](l)|0,g=v,S=a;continue}else{e[c>>2]=h+1,g=v,S=a;continue}}do if(l){if((e[l+12>>2]|0)==(e[l+16>>2]|0))if((X0[e[(e[l>>2]|0)+36>>2]&127](l)|0)==-1){e[r>>2]=0,l=0;break}else{l=e[r>>2]|0;break}}else l=0;while(0);l=(l|0)==0;do if(a){if((e[a+12>>2]|0)==(e[a+16>>2]|0)&&(X0[e[(e[a>>2]|0)+36>>2]&127](a)|0)==-1){e[t>>2]=0,D=50;break}if(l)break e}else D=50;while(0);if((D|0)==50&&!l)break;e[n>>2]=e[n>>2]|2;break}e[n>>2]=e[n>>2]|4,f=0}while(0);return f|0}function A1(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;f=e[r>>2]|0;do if(f)if(l=e[f+12>>2]|0,(l|0)==(e[f+16>>2]|0)?f=X0[e[(e[f>>2]|0)+36>>2]&127](f)|0:f=e[l>>2]|0,(f|0)==-1){e[r>>2]=0,a=1;break}else{a=(e[r>>2]|0)==0;break}else a=1;while(0);l=e[t>>2]|0;do if(l)if(f=e[l+12>>2]|0,(f|0)==(e[l+16>>2]|0)?f=X0[e[(e[l>>2]|0)+36>>2]&127](l)|0:f=e[f>>2]|0,(f|0)!=-1)if(a){k=17;break}else{k=16;break}else{e[t>>2]=0,k=14;break}else k=14;while(0);(k|0)==14&&(a?k=16:(l=0,k=17));e:do if((k|0)==16)e[n>>2]=e[n>>2]|6,f=0;else if((k|0)==17){if(f=e[r>>2]|0,a=e[f+12>>2]|0,(a|0)==(e[f+16>>2]|0)?f=X0[e[(e[f>>2]|0)+36>>2]&127](f)|0:f=e[a>>2]|0,!(ge[e[(e[s>>2]|0)+12>>2]&63](s,2048,f)|0)){e[n>>2]=e[n>>2]|4,f=0;break}for(f=(ge[e[(e[s>>2]|0)+52>>2]&63](s,f,0)|0)<<24>>24,a=e[r>>2]|0,c=a+12|0,h=e[c>>2]|0,(h|0)==(e[a+16>>2]|0)?(X0[e[(e[a>>2]|0)+40>>2]&127](a)|0,g=o,S=l,c=l):(e[c>>2]=h+4,g=o,S=l,c=l);;){f=f+-48|0,v=g+-1|0,l=e[r>>2]|0;do if(l)if(a=e[l+12>>2]|0,(a|0)==(e[l+16>>2]|0)?l=X0[e[(e[l>>2]|0)+36>>2]&127](l)|0:l=e[a>>2]|0,(l|0)==-1){e[r>>2]=0,h=1;break}else{h=(e[r>>2]|0)==0;break}else h=1;while(0);do if(c)if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)?l=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:l=e[l>>2]|0,(l|0)==-1){e[t>>2]=0,c=0,o=0,l=1;break}else{c=S,o=S,l=(S|0)==0;break}else c=S,o=0,l=1;while(0);if(a=e[r>>2]|0,!((g|0)>1&(h^l)))break;if(l=e[a+12>>2]|0,(l|0)==(e[a+16>>2]|0)?l=X0[e[(e[a>>2]|0)+36>>2]&127](a)|0:l=e[l>>2]|0,!(ge[e[(e[s>>2]|0)+12>>2]&63](s,2048,l)|0))break e;if(f=((ge[e[(e[s>>2]|0)+52>>2]&63](s,l,0)|0)<<24>>24)+(f*10|0)|0,l=e[r>>2]|0,a=l+12|0,h=e[a>>2]|0,(h|0)==(e[l+16>>2]|0)){X0[e[(e[l>>2]|0)+40>>2]&127](l)|0,g=v,S=c,c=o;continue}else{e[a>>2]=h+4,g=v,S=c,c=o;continue}}do if(a)if(l=e[a+12>>2]|0,(l|0)==(e[a+16>>2]|0)?l=X0[e[(e[a>>2]|0)+36>>2]&127](a)|0:l=e[l>>2]|0,(l|0)==-1){e[r>>2]=0,a=1;break}else{a=(e[r>>2]|0)==0;break}else a=1;while(0);do if(c)if(l=e[c+12>>2]|0,(l|0)==(e[c+16>>2]|0)?l=X0[e[(e[c>>2]|0)+36>>2]&127](c)|0:l=e[l>>2]|0,(l|0)!=-1){if(a)break e;break}else{e[t>>2]=0,k=60;break}else k=60;while(0);if((k|0)==60&&!a)break;e[n>>2]=e[n>>2]|2}while(0);return f|0}function lp(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0;f=r+4|0,s=(e[f>>2]|0)!=189,a=e[r>>2]|0,l=a,o=(e[n>>2]|0)-l|0,o=o>>>0<2147483647?o<<1:-1,l=(e[t>>2]|0)-l|0,a=gi(s?a:0,o)|0,a||Er();do if(s)e[r>>2]=a,c=a;else if(s=e[r>>2]|0,e[r>>2]=a,s)if(u=0,I0(e[f>>2]|0,s|0),a=u,u=0,a&1)a=L(0)|0,ne(a);else{c=e[r>>2]|0;break}else c=a;while(0);e[f>>2]=201,e[t>>2]=c+l,e[n>>2]=(e[r>>2]|0)+o}function up(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0;f=r+4|0,s=(e[f>>2]|0)!=189,a=e[r>>2]|0,l=a,o=(e[n>>2]|0)-l|0,o=o>>>0<2147483647?o<<1:-1,l=(e[t>>2]|0)-l>>2,a=gi(s?a:0,o)|0,a||Er();do if(s)e[r>>2]=a,c=a;else if(s=e[r>>2]|0,e[r>>2]=a,s)if(u=0,I0(e[f>>2]|0,s|0),a=u,u=0,a&1)a=L(0)|0,ne(a);else{c=e[r>>2]|0;break}else c=a;while(0);e[f>>2]=201,e[t>>2]=c+(l<<2),e[n>>2]=(e[r>>2]|0)+(o>>>2<<2)}function ap(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0;f=t,s=m[r>>0]|0,s&1?(s=e[r>>2]|0,o=(s&-2)+-1|0,c=e[r+4>>2]|0,s=s&255):(o=10,c=(s&255)>>>1),a=n-f|0;do if((n|0)!=(t|0)){if((o-c|0)>>>0>>0&&(gn(r,o,c+a-o|0,c,c,0,0),s=m[r>>0]|0),s&1?l=e[r+8>>2]|0:l=r+1|0,f=n+(c-f)|0,(t|0)!=(n|0))for(s=t,o=l+c|0;m[o>>0]=m[s>>0]|0,s=s+1|0,(s|0)!=(n|0);)o=o+1|0;if(m[l+f>>0]=0,s=c+a|0,m[r>>0]&1){e[r+4>>2]=s;break}else{m[r>>0]=s<<1;break}}while(0);return r|0}function cp(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0;f=r+4|0,s=(e[f>>2]|0)!=189,a=e[r>>2]|0,l=a,o=(e[n>>2]|0)-l|0,o=o>>>0<2147483647?o<<1:-1,l=(e[t>>2]|0)-l>>2,a=gi(s?a:0,o)|0,a||Er();do if(s)e[r>>2]=a,c=a;else if(s=e[r>>2]|0,e[r>>2]=a,s)if(u=0,I0(e[f>>2]|0,s|0),a=u,u=0,a&1)a=L(0)|0,ne(a);else{c=e[r>>2]|0;break}else c=a;while(0);e[f>>2]=201,e[t>>2]=c+(l<<2),e[n>>2]=(e[r>>2]|0)+(o>>>2<<2)}function Sp(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0;f=t,s=m[r>>0]|0,s&1?(s=e[r>>2]|0,o=(s&-2)+-1|0,c=e[r+4>>2]|0,s=s&255):(o=1,c=(s&255)>>>1),a=n-f>>2;do if(a){if((o-c|0)>>>0>>0&&(Yo(r,o,c+a-o|0,c,c,0,0),s=m[r>>0]|0),s&1?l=e[r+8>>2]|0:l=r+4|0,f=c+((n-f|0)>>>2)|0,(t|0)!=(n|0))for(s=t,o=l+(c<<2)|0;e[o>>2]=e[s>>2],s=s+4|0,(s|0)!=(n|0);)o=o+4|0;if(e[l+(f<<2)>>2]=0,s=c+a|0,m[r>>0]&1){e[r+4>>2]=s;break}else{m[r>>0]=s<<1;break}}while(0);return r|0}function hp(r,t){r=r|0,t=t|0;var n=0;e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,m[r+128>>0]=0;do if(t)if(u=0,e0(125,r|0,t|0),n=u,u=0,n&1)n=L()|0,An(r),U(n|0);else{nf(r,t);break}while(0)}function mp(r,t){r=r|0,t=t|0,c2(r,t,u2(43148)|0)}function pp(r,t){r=r|0,t=t|0,c2(r,t,u2(43188)|0)}function gp(r,t){r=r|0,t=t|0,c2(r,t,u2(44220)|0)}function vp(r,t){r=r|0,t=t|0,c2(r,t,u2(44212)|0)}function Tp(r,t){r=r|0,t=t|0,c2(r,t,u2(44280)|0)}function kp(r,t){r=r|0,t=t|0,c2(r,t,u2(44288)|0)}function wp(r,t){r=r|0,t=t|0,c2(r,t,u2(44344)|0)}function dp(r,t){r=r|0,t=t|0,c2(r,t,u2(44352)|0)}function Cp(r,t){r=r|0,t=t|0,c2(r,t,u2(44360)|0)}function yp(r,t){r=r|0,t=t|0,c2(r,t,u2(44368)|0)}function Ap(r,t){r=r|0,t=t|0,c2(r,t,u2(43260)|0)}function Dp(r,t){r=r|0,t=t|0,c2(r,t,u2(43332)|0)}function _p(r,t){r=r|0,t=t|0,c2(r,t,u2(43392)|0)}function Ip(r,t){r=r|0,t=t|0,c2(r,t,u2(43452)|0)}function Pp(r,t){r=r|0,t=t|0,c2(r,t,u2(43764)|0)}function Ep(r,t){r=r|0,t=t|0,c2(r,t,u2(43828)|0)}function Lp(r,t){r=r|0,t=t|0,c2(r,t,u2(43892)|0)}function Fp(r,t){r=r|0,t=t|0,c2(r,t,u2(43956)|0)}function Rp(r,t){r=r|0,t=t|0,c2(r,t,u2(43992)|0)}function Op(r,t){r=r|0,t=t|0,c2(r,t,u2(44028)|0)}function Mp(r,t){r=r|0,t=t|0,c2(r,t,u2(44064)|0)}function xp(r,t){r=r|0,t=t|0,c2(r,t,u2(44100)|0)}function qp(r,t){r=r|0,t=t|0,c2(r,t,u2(43544)|0)}function Np(r,t){r=r|0,t=t|0,c2(r,t,u2(43636)|0)}function Up(r,t){r=r|0,t=t|0,c2(r,t,u2(43668)|0)}function Bp(r,t){r=r|0,t=t|0,c2(r,t,u2(43700)|0)}function Qp(r,t){r=r|0,t=t|0,c2(r,t,u2(44140)|0)}function Gp(r,t){r=r|0,t=t|0,c2(r,t,u2(44180)|0)}function An(r){r=r|0;var t=0,n=0,s=0;n=e[r>>2]|0;do if(n){if(s=r+4|0,t=e[s>>2]|0,(t|0)!=(n|0)){do t=t+-4|0;while((t|0)!=(n|0));e[s>>2]=t}if((r+16|0)==(n|0)){m[r+128>>0]=0;break}else{V(n);break}}while(0)}function Vp(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0;if(l=r+4|0,n=e[l>>2]|0,s=e[r>>2]|0,o=n-s>>2,o>>>0>=t>>>0){if(o>>>0>t>>>0&&(f=s+(t<<2)|0,(n|0)!=(f|0))){do n=n+-4|0;while((n|0)!=(f|0));e[l>>2]=n}}else tg(r,t-o|0)}function Hp(r,t){r=r|0,t=t|0;var n=0;return n=e[r+8>>2]|0,(e[r+12>>2]|0)-n>>2>>>0>t>>>0?n=(e[n+(t<<2)>>2]|0)!=0:n=0,n|0}function zp(r){r=r|0;var t=0,n=0;n=r+4|0,t=e[n>>2]|0,n=e[n+4>>2]|0,r=(e[r>>2]|0)+(n>>1)|0,n&1&&(t=e[(e[r>>2]|0)+t>>2]|0),K0[t&255](r)}function Yp(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0;e[n>>2]=r,e[f>>2]=s,a&2?(o-s|0)<3?r=1:(e[f>>2]=s+1,m[s>>0]=-17,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=-69,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=-65,c=4):c=4;e:do if((c|0)==4)if(h=t,r=e[n>>2]|0,r>>>0>>0)for(;;){if(a=R[r>>1]|0,c=a&65535,c>>>0>l>>>0){r=2;break e}do if((a&65535)<128){if(r=e[f>>2]|0,(o-r|0)<1){r=1;break e}e[f>>2]=r+1,m[r>>0]=a}else{if((a&65535)<2048){if(r=e[f>>2]|0,(o-r|0)<2){r=1;break e}e[f>>2]=r+1,m[r>>0]=c>>>6|192,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c&63|128;break}if((a&65535)<55296){if(r=e[f>>2]|0,(o-r|0)<3){r=1;break e}e[f>>2]=r+1,m[r>>0]=c>>>12|224,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c>>>6&63|128,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c&63|128;break}if((a&65535)>=56320){if((a&65535)<57344){r=2;break e}if(r=e[f>>2]|0,(o-r|0)<3){r=1;break e}e[f>>2]=r+1,m[r>>0]=c>>>12|224,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c>>>6&63|128,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c&63|128;break}if((h-r|0)<4){r=1;break e}if(r=r+2|0,a=b[r>>1]|0,(a&64512|0)!=56320){r=2;break e}if((o-(e[f>>2]|0)|0)<4){r=1;break e}if(s=c&960,((s<<10)+65536|c<<10&64512|a&1023)>>>0>l>>>0){r=2;break e}e[n>>2]=r,r=(s>>>6)+1|0,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=r>>>2|240,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c>>>2&15|r<<4&48|128,s=e[f>>2]|0,e[f>>2]=s+1,m[s>>0]=c<<4&48|a>>>6&15|128,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a&63|128}while(0);if(r=(e[n>>2]|0)+2|0,e[n>>2]=r,r>>>0>=t>>>0){r=0;break}}else r=0;while(0);return r|0}function Xp(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0;e[n>>2]=r,e[f>>2]=s,a&4?(r=e[n>>2]|0,a=t,(a-r|0)>2&&(m[r>>0]|0)==-17&&(m[r+1>>0]|0)==-69&&(m[r+2>>0]|0)==-65?(e[n>>2]=r+3,c=e[f>>2]|0):c=s):(c=s,a=t),v=o,s=e[n>>2]|0,r=s>>>0>>0;e:do if(r&c>>>0>>0)for(;;){if(r=m[s>>0]|0,S=r&255,S>>>0>l>>>0){r=2;break e}do if(r<<24>>24>-1)R[c>>1]=r&255,e[n>>2]=s+1;else{if((r&255)<194){r=2;break e}if((r&255)<224){if((a-s|0)<2){r=1;break e}if(r=z[s+1>>0]|0,(r&192|0)!=128){r=2;break e}if(r=r&63|S<<6&1984,r>>>0>l>>>0){r=2;break e}R[c>>1]=r,e[n>>2]=s+2;break}if((r&255)<240){if((a-s|0)<3){r=1;break e}switch(h=m[s+1>>0]|0,r=m[s+2>>0]|0,S|0){case 224:{if((h&-32)<<24>>24!=-96){r=2;break e}break}case 237:{if((h&-32)<<24>>24!=-128){r=2;break e}break}default:if((h&-64)<<24>>24!=-128){r=2;break e}}if(r=r&255,(r&192|0)!=128){r=2;break e}if(r=(h&255)<<6&4032|S<<12|r&63,(r&65535)>>>0>l>>>0){r=2;break e}R[c>>1]=r,e[n>>2]=s+3;break}if((r&255)>=245){r=2;break e}if((a-s|0)<4){r=1;break e}switch(h=m[s+1>>0]|0,r=m[s+2>>0]|0,s=m[s+3>>0]|0,S|0){case 240:{if((h+112&255)>=48){r=2;break e}break}case 244:{if((h&-16)<<24>>24!=-128){r=2;break e}break}default:if((h&-64)<<24>>24!=-128){r=2;break e}}if(g=r&255,(g&192|0)!=128){r=2;break e}if(r=s&255,(r&192|0)!=128){r=2;break e}if((v-c|0)<4){r=1;break e}if(S=S&7,s=h&255,h=g<<6,r=r&63,(s<<12&258048|S<<18|h&4032|r)>>>0>l>>>0){r=2;break e}R[c>>1]=s<<2&60|g>>>4&3|((s>>>4&3|S<<2)<<6)+16320|55296,g=c+2|0,e[f>>2]=g,R[g>>1]=r|h&960|56320,e[n>>2]=(e[n>>2]|0)+4}while(0);if(c=(e[f>>2]|0)+2|0,e[f>>2]=c,s=e[n>>2]|0,r=s>>>0>>0,!(r&c>>>0>>0)){k=39;break}}else k=39;while(0);return(k|0)==39&&(r=r&1),r|0}function jp(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;g=t,o&4|0&&(g-r|0)>2&&(m[r>>0]|0)==-17&&(m[r+1>>0]|0)==-69?o=(m[r+2>>0]|0)==-65?r+3|0:r:o=r;e:do if((n|0)!=0&o>>>0>>0){S=o,f=0;i:for(;;){if(o=m[S>>0]|0,h=o&255,h>>>0>s>>>0){o=S,f=42;break e}do if(o<<24>>24>-1)o=S+1|0;else{if((o&255)<194){o=S,f=42;break e}if((o&255)<224){if((g-S|0)<2){o=S,f=42;break e}if(o=z[S+1>>0]|0,(o&192|0)!=128){o=S,f=42;break e}if((o&63|h<<6&1984)>>>0>s>>>0){o=S,f=42;break e}o=S+2|0;break}if((o&255)<240){if(o=S,(g-o|0)<3){o=S,f=42;break e}switch(a=m[S+1>>0]|0,l=m[S+2>>0]|0,h|0){case 224:{if((a&-32)<<24>>24!=-96){f=20;break i}break}case 237:{if((a&-32)<<24>>24!=-128){f=22;break i}break}default:if((a&-64)<<24>>24!=-128){f=24;break i}}if(o=l&255,(o&192|0)!=128){o=S,f=42;break e}if(((a&255)<<6&4032|h<<12&61440|o&63)>>>0>s>>>0){o=S,f=42;break e}o=S+3|0;break}if((o&255)>=245){o=S,f=42;break e}if(o=S,(n-f|0)>>>0<2|(g-o|0)<4){o=S,f=42;break e}switch(c=m[S+1>>0]|0,l=m[S+2>>0]|0,a=m[S+3>>0]|0,h|0){case 240:{if((c+112&255)>=48){f=32;break i}break}case 244:{if((c&-16)<<24>>24!=-128){f=34;break i}break}default:if((c&-64)<<24>>24!=-128){f=36;break i}}if(l=l&255,(l&192|0)!=128){o=S,f=42;break e}if(o=a&255,(o&192|0)!=128){o=S,f=42;break e}if(((c&255)<<12&258048|h<<18&1835008|l<<6&4032|o&63)>>>0>s>>>0){o=S,f=42;break e}o=S+4|0,f=f+1|0}while(0);if(f=f+1|0,f>>>0>>0&o>>>0>>0)S=o;else{f=42;break e}}if((f|0)==20){o=o-r|0;break}else if((f|0)==22){o=o-r|0;break}else if((f|0)==24){o=o-r|0;break}else if((f|0)==32){o=o-r|0;break}else if((f|0)==34){o=o-r|0;break}else if((f|0)==36){o=o-r|0;break}}else f=42;while(0);return(f|0)==42&&(o=o-r|0),o|0}function Wp(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0;e[n>>2]=r,e[f>>2]=s,h=o,a&2?(h-s|0)<3?r=1:(e[f>>2]=s+1,m[s>>0]=-17,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=-69,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=-65,c=4):c=4;e:do if((c|0)==4)if(r=e[n>>2]|0,r>>>0>>0)for(;;){if(a=e[r>>2]|0,a>>>0>l>>>0|(a&-2048|0)==55296){r=2;break e}do if(a>>>0>=128){if(a>>>0<2048){if(r=e[f>>2]|0,(h-r|0)<2){r=1;break e}e[f>>2]=r+1,m[r>>0]=a>>>6|192,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a&63|128;break}if(r=e[f>>2]|0,o=h-r|0,a>>>0<65536){if((o|0)<3){r=1;break e}e[f>>2]=r+1,m[r>>0]=a>>>12|224,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a>>>6&63|128,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a&63|128;break}else{if((o|0)<4){r=1;break e}e[f>>2]=r+1,m[r>>0]=a>>>18|240,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a>>>12&63|128,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a>>>6&63|128,c=e[f>>2]|0,e[f>>2]=c+1,m[c>>0]=a&63|128;break}}else{if(r=e[f>>2]|0,(h-r|0)<1){r=1;break e}e[f>>2]=r+1,m[r>>0]=a}while(0);if(r=(e[n>>2]|0)+4|0,e[n>>2]=r,r>>>0>=t>>>0){r=0;break}}else r=0;while(0);return r|0}function Jp(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0;var c=0,h=0,S=0,g=0,v=0,k=0;e[n>>2]=r,e[f>>2]=s,a&4?(r=e[n>>2]|0,a=t,(a-r|0)>2&&(m[r>>0]|0)==-17&&(m[r+1>>0]|0)==-69&&(m[r+2>>0]|0)==-65&&(e[n>>2]=r+3,s=e[f>>2]|0),v=a):v=t,a=e[n>>2]|0,r=a>>>0>>0;e:do if(r&s>>>0>>0)for(;;){r=m[a>>0]|0,g=r&255;do if(r<<24>>24>-1){if(g>>>0>l>>>0){r=2;break e}e[s>>2]=g,e[n>>2]=a+1}else{if((r&255)<194){r=2;break e}if((r&255)<224){if((v-a|0)<2){r=1;break e}if(r=z[a+1>>0]|0,(r&192|0)!=128){r=2;break e}if(r=r&63|g<<6&1984,r>>>0>l>>>0){r=2;break e}e[s>>2]=r,e[n>>2]=a+2;break}if((r&255)<240){if((v-a|0)<3){r=1;break e}switch(c=m[a+1>>0]|0,r=m[a+2>>0]|0,g|0){case 224:{if((c&-32)<<24>>24!=-96){r=2;break e}break}case 237:{if((c&-32)<<24>>24!=-128){r=2;break e}break}default:if((c&-64)<<24>>24!=-128){r=2;break e}}if(r=r&255,(r&192|0)!=128){r=2;break e}if(r=(c&255)<<6&4032|g<<12&61440|r&63,r>>>0>l>>>0){r=2;break e}e[s>>2]=r,e[n>>2]=a+3;break}if((r&255)>=245){r=2;break e}if((v-a|0)<4){r=1;break e}switch(S=m[a+1>>0]|0,r=m[a+2>>0]|0,c=m[a+3>>0]|0,g|0){case 240:{if((S+112&255)>=48){r=2;break e}break}case 244:{if((S&-16)<<24>>24!=-128){r=2;break e}break}default:if((S&-64)<<24>>24!=-128){r=2;break e}}if(h=r&255,(h&192|0)!=128){r=2;break e}if(r=c&255,(r&192|0)!=128){r=2;break e}if(r=(S&255)<<12&258048|g<<18&1835008|h<<6&4032|r&63,r>>>0>l>>>0){r=2;break e}e[s>>2]=r,e[n>>2]=a+4}while(0);if(s=(e[f>>2]|0)+4|0,e[f>>2]=s,a=e[n>>2]|0,r=a>>>0>>0,!(r&s>>>0>>0)){k=38;break}}else k=38;while(0);return(k|0)==38&&(r=r&1),r|0}function Kp(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0;g=t,o&4|0&&(g-r|0)>2&&(m[r>>0]|0)==-17&&(m[r+1>>0]|0)==-69?o=(m[r+2>>0]|0)==-65?r+3|0:r:o=r;e:do if((n|0)!=0&o>>>0>>0){h=o,S=0;i:for(;;){o=m[h>>0]|0,c=o&255;do if(o<<24>>24>-1){if(c>>>0>s>>>0){o=h,f=42;break e}o=h+1|0}else{if((o&255)<194){o=h,f=42;break e}if((o&255)<224){if((g-h|0)<2){o=h,f=42;break e}if(o=z[h+1>>0]|0,(o&192|0)!=128){o=h,f=42;break e}if((o&63|c<<6&1984)>>>0>s>>>0){o=h,f=42;break e}o=h+2|0;break}if((o&255)<240){if(o=h,(g-o|0)<3){o=h,f=42;break e}switch(l=m[h+1>>0]|0,f=m[h+2>>0]|0,c|0){case 224:{if((l&-32)<<24>>24!=-96){f=20;break i}break}case 237:{if((l&-32)<<24>>24!=-128){f=22;break i}break}default:if((l&-64)<<24>>24!=-128){f=24;break i}}if(o=f&255,(o&192|0)!=128){o=h,f=42;break e}if(((l&255)<<6&4032|c<<12&61440|o&63)>>>0>s>>>0){o=h,f=42;break e}o=h+3|0;break}if((o&255)>=245){o=h,f=42;break e}if(o=h,(g-o|0)<4){o=h,f=42;break e}switch(a=m[h+1>>0]|0,f=m[h+2>>0]|0,l=m[h+3>>0]|0,c|0){case 240:{if((a+112&255)>=48){f=32;break i}break}case 244:{if((a&-16)<<24>>24!=-128){f=34;break i}break}default:if((a&-64)<<24>>24!=-128){f=36;break i}}if(f=f&255,(f&192|0)!=128){o=h,f=42;break e}if(o=l&255,(o&192|0)!=128){o=h,f=42;break e}if(((a&255)<<12&258048|c<<18&1835008|f<<6&4032|o&63)>>>0>s>>>0){o=h,f=42;break e}o=h+4|0}while(0);if(S=S+1|0,S>>>0>>0&o>>>0>>0)h=o;else{f=42;break e}}if((f|0)==20){o=o-r|0;break}else if((f|0)==22){o=o-r|0;break}else if((f|0)==24){o=o-r|0;break}else if((f|0)==32){o=o-r|0;break}else if((f|0)==34){o=o-r|0;break}else if((f|0)==36){o=o-r|0;break}}else f=42;while(0);return(f|0)==42&&(o=o-r|0),o|0}function Zp(r){r=r|0,H(45196),H(45184),H(45172),H(45160),H(45148),H(45136),H(45124),H(45112),H(45100),H(45088),H(45076),H(45064),H(45052),H(45040)}function $p(r){r=r|0,b0(45368),b0(45356),b0(45344),b0(45332),b0(45320),b0(45308),b0(45296),b0(45284),b0(45272),b0(45260),b0(45248),b0(45236),b0(45224),b0(45212)}function bp(r){r=r|0,H(46e3),H(45988),H(45976),H(45964),H(45952),H(45940),H(45928),H(45916),H(45904),H(45892),H(45880),H(45868),H(45856),H(45844),H(45832),H(45820),H(45808),H(45796),H(45784),H(45772),H(45760),H(45748),H(45736),H(45724)}function eg(r){r=r|0,b0(46292),b0(46280),b0(46268),b0(46256),b0(46244),b0(46232),b0(46220),b0(46208),b0(46196),b0(46184),b0(46172),b0(46160),b0(46148),b0(46136),b0(46124),b0(46112),b0(46100),b0(46088),b0(46076),b0(46064),b0(46052),b0(46040),b0(46028),b0(46016)}function ig(r){r=r|0,H(47104),H(47092),H(47080),H(47068),H(47056),H(47044),H(47032),H(47020),H(47008),H(46996),H(46984),H(46972),H(46960),H(46948),H(46936),H(46924),H(46912),H(46900),H(46888),H(46876),H(46864),H(46852),H(46840),H(46828)}function rg(r){r=r|0,b0(47396),b0(47384),b0(47372),b0(47360),b0(47348),b0(47336),b0(47324),b0(47312),b0(47300),b0(47288),b0(47276),b0(47264),b0(47252),b0(47240),b0(47228),b0(47216),b0(47204),b0(47192),b0(47180),b0(47168),b0(47156),b0(47144),b0(47132),b0(47120)}function tg(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;c=C,C=C+32|0,a=c,f=e[r+8>>2]|0,n=e[r+4>>2]|0,f-n>>2>>>0>>0?(s=e[r>>2]|0,l=n-s>>2,o=l+t|0,o>>>0>1073741823&&_1(r),n=f-s|0,n>>2>>>0<536870911?(n=n>>1,n=n>>>0>>0?o:n):n=1073741823,ng(a,n,l,r+16|0),l=a+8|0,f=e[l>>2]|0,ye(f|0,0,t<<2|0)|0,e[l>>2]=f+(t<<2),sg(r,a),og(a)):nf(r,t),C=c}function nf(r,t){r=r|0,t=t|0;var n=0;n=r+4|0,r=t,t=e[n>>2]|0;do e[t>>2]=0,t=(e[n>>2]|0)+4|0,e[n>>2]=t,r=r+-1|0;while(r|0)}function ng(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;e[r+12>>2]=0,e[r+16>>2]=s;do if(t)if(o=s+112|0,t>>>0<29&(m[o>>0]|0)==0){m[o>>0]=1;break}else{s=C0(t<<2)|0;break}else s=0;while(0);e[r>>2]=s,n=s+(n<<2)|0,e[r+8>>2]=n,e[r+4>>2]=n,e[r+12>>2]=s+(t<<2)}function sg(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0;s=e[r>>2]|0,f=r+4|0,n=t+4|0,o=(e[f>>2]|0)-s|0,l=(e[n>>2]|0)+(0-(o>>2)<<2)|0,e[n>>2]=l,Ne(l|0,s|0,o|0)|0,o=e[r>>2]|0,e[r>>2]=e[n>>2],e[n>>2]=o,o=t+8|0,s=e[f>>2]|0,e[f>>2]=e[o>>2],e[o>>2]=s,o=r+8|0,r=t+12|0,s=e[o>>2]|0,e[o>>2]=e[r>>2],e[r>>2]=s,e[t>>2]=e[n>>2]}function og(r){r=r|0;var t=0,n=0,s=0;if(n=e[r+4>>2]|0,s=r+8|0,t=e[s>>2]|0,(t|0)!=(n|0)){do t=t+-4|0;while((t|0)!=(n|0));e[s>>2]=t}n=e[r>>2]|0;do if(n)if(t=e[r+16>>2]|0,(t|0)==(n|0)){m[t+112>>0]=0;break}else{V(n);break}while(0)}function fg(r,t){r=r|0,t=t|0;var n=0;t>>>0>1073741823&&_1(r),n=r+128|0,t>>>0<29&(m[n>>0]|0)==0?(m[n>>0]=1,n=r+16|0):n=C0(t<<2)|0,e[r+4>>2]=n,e[r>>2]=n,e[r+8>>2]=n+(t<<2)}function lg(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)!=(t|0)){if(o=n2()|0,f=e[o>>2]|0,e[o>>2]=0,s=+On(r,l,k2()|0),r=e[o>>2]|0,r||(e[o>>2]=f),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,s=0;break}(r|0)==34&&(e[n>>2]=4)}else e[n>>2]=4,s=0;while(0);return C=a,+s}function ug(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)!=(t|0)){if(o=n2()|0,f=e[o>>2]|0,e[o>>2]=0,s=+On(r,l,k2()|0),r=e[o>>2]|0,r||(e[o>>2]=f),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,s=0;break}(r|0)==34&&(e[n>>2]=4)}else e[n>>2]=4,s=0;while(0);return C=a,+s}function ag(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)==(t|0))e[n>>2]=4,s=0;else{if(o=n2()|0,f=e[o>>2]|0,e[o>>2]=0,s=+On(r,l,k2()|0),r=e[o>>2]|0,r||(e[o>>2]=f),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,s=0;break}(r|0)==34&&(e[n>>2]=4)}while(0);return C=a,+s}function cg(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0;a=C,C=C+16|0,l=a;do if((r|0)!=(t|0)){if((m[r>>0]|0)==45){e[n>>2]=4,s=0,r=0;break}if(o=n2()|0,f=e[o>>2]|0,e[o>>2]=0,r=Lr(r,l,s,k2()|0)|0,s=e[o>>2]|0,s||(e[o>>2]=f),(e[l>>2]|0)!=(t|0)){e[n>>2]=4,s=0,r=0;break}(s|0)==34?(e[n>>2]=4,s=-1,r=-1):s=o0}else e[n>>2]=4,s=0,r=0;while(0);return o0=s,C=a,r|0}function Sg(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if((m[r>>0]|0)==45){e[n>>2]=4,r=0;break}if(f=n2()|0,l=e[f>>2]|0,e[f>>2]=0,r=Lr(r,a,s,k2()|0)|0,s=o0,o=e[f>>2]|0,o||(e[f>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}if(s>>>0>0|(s|0)==0&r>>>0>4294967295|(o|0)==34){e[n>>2]=4,r=-1;break}else break}else e[n>>2]=4,r=0;while(0);return C=c,r|0}function hg(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if((m[r>>0]|0)==45){e[n>>2]=4,r=0;break}if(f=n2()|0,l=e[f>>2]|0,e[f>>2]=0,r=Lr(r,a,s,k2()|0)|0,s=o0,o=e[f>>2]|0,o||(e[f>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}if(s>>>0>0|(s|0)==0&r>>>0>4294967295|(o|0)==34){e[n>>2]=4,r=-1;break}else break}else e[n>>2]=4,r=0;while(0);return C=c,r|0}function mg(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if((m[r>>0]|0)==45){e[n>>2]=4,r=0;break}if(f=n2()|0,l=e[f>>2]|0,e[f>>2]=0,r=Lr(r,a,s,k2()|0)|0,s=o0,o=e[f>>2]|0,o||(e[f>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}if(s>>>0>0|(s|0)==0&r>>>0>65535|(o|0)==34){e[n>>2]=4,r=-1;break}else{r=r&65535;break}}else e[n>>2]=4,r=0;while(0);return C=c,r|0}function pg(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;do if((r|0)!=(t|0)){if(f=n2()|0,l=e[f>>2]|0,e[f>>2]=0,r=Tf(r,a,s,k2()|0)|0,s=o0,o=e[f>>2]|0,o||(e[f>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,s=0,r=0;break}if((o|0)==34)return e[n>>2]=4,a=(s|0)>0|(s|0)==0&r>>>0>0,o0=a?2147483647:-2147483648,C=c,(a?-1:0)|0}else e[n>>2]=4,s=0,r=0;while(0);return o0=s,C=c,r|0}function gg(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c;e:do if((r|0)==(t|0))e[n>>2]=4,r=0;else{if(f=n2()|0,l=e[f>>2]|0,e[f>>2]=0,r=Tf(r,a,s,k2()|0)|0,s=o0,o=e[f>>2]|0,o||(e[f>>2]=l),(e[a>>2]|0)!=(t|0)){e[n>>2]=4,r=0;break}do if((o|0)==34){if(e[n>>2]=4,(s|0)>0|(s|0)==0&r>>>0>0){r=2147483647;break e}}else{if((s|0)<-1|(s|0)==-1&r>>>0<2147483648){e[n>>2]=4;break}if((s|0)>0|(s|0)==0&r>>>0>2147483647){e[n>>2]=4,r=2147483647;break e}else break e}while(0);r=-2147483648}while(0);return C=c,r|0}function vg(){}function $2(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,s=t-s-(n>>>0>r>>>0|0)>>>0,o0=s,r-n>>>0|0|0}function ye(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;if(s=r+n|0,(n|0)>=20){if(t=t&255,f=r&3,l=t|t<<8|t<<16|t<<24,o=s&-4,f)for(f=r+4-f|0;(r|0)<(f|0);)m[r>>0]=t,r=r+1|0;for(;(r|0)<(o|0);)e[r>>2]=l,r=r+4|0}for(;(r|0)<(s|0);)m[r>>0]=t,r=r+1|0;return r-n|0}function L2(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,n=r+n>>>0,o0=t+s+(n>>>0>>0|0)>>>0,n|0|0}function z1(r,t,n){return r=r|0,t=t|0,n=n|0,(n|0)<32?(o0=t>>>n,r>>>n|(t&(1<>>n-32|0)}function Ne(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if((n|0)>=4096)return g4(r|0,t|0,n|0)|0;if(s=r|0,(r&3)==(t&3)){for(;r&3;){if(!n)return s|0;m[r>>0]=m[t>>0]|0,r=r+1|0,t=t+1|0,n=n-1|0}for(;(n|0)>=4;)e[r>>2]=e[t>>2],r=r+4|0,t=t+4|0,n=n-4|0}for(;(n|0)>0;)m[r>>0]=m[t>>0]|0,r=r+1|0,t=t+1|0,n=n-1|0;return s|0}function o2(r,t,n){return r=r|0,t=t|0,n=n|0,(n|0)<32?(o0=t<>>32-n,r<0;)r=r-1|0,t=t-1|0,n=n-1|0,m[r>>0]=m[t>>0]|0;r=s}else Ne(r,t,n)|0;return r|0}function Pd(r,t,n){return r=r|0,t=t|0,n=n|0,(n|0)<32?(o0=t>>n,r>>>n|(t&(1<>n-32|0)}function sf(r){r=r|0;var t=0;return t=m[_0+(r&255)>>0]|0,(t|0)<8?t|0:(t=m[_0+(r>>8&255)>>0]|0,(t|0)<8?t+8|0:(t=m[_0+(r>>16&255)>>0]|0,(t|0)<8?t+16|0:(m[_0+(r>>>24)>>0]|0)+24|0))}function Tg(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;return f=r&65535,o=t&65535,n=Z(o,f)|0,s=r>>>16,r=(n>>>16)+(Z(o,s)|0)|0,o=t>>>16,t=Z(o,f)|0,o0=(r>>>16)+(Z(o,s)|0)+(((r&65535)+t|0)>>>16)|0,r+t<<16|n&65535|0|0}function Ed(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0;return h=t>>31|((t|0)<0?-1:0)<<1,c=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,f=s>>31|((s|0)<0?-1:0)<<1,o=((s|0)<0?-1:0)>>31|((s|0)<0?-1:0)<<1,a=$2(h^r,c^t,h,c)|0,l=o0,r=f^h,t=o^c,$2((yr(a,l,$2(f^n,o^s,f,o)|0,o0,0)|0)^r,o0^t,r,t)|0}function Ld(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0;return o=C,C=C+16|0,a=o|0,l=t>>31|((t|0)<0?-1:0)<<1,f=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1,h=s>>31|((s|0)<0?-1:0)<<1,c=((s|0)<0?-1:0)>>31|((s|0)<0?-1:0)<<1,r=$2(l^r,f^t,l,f)|0,t=o0,yr(r,t,$2(h^n,c^s,h,c)|0,o0,a)|0,s=$2(e[a>>2]^l,e[a+4>>2]^f,l,f)|0,n=o0,C=o,o0=n,s|0}function wi(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;return o=r,f=n,n=Tg(o,f)|0,r=o0,o0=(Z(t,f)|0)+(Z(s,o)|0)+r|r&0,n|0|0|0}function Cr(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,yr(r,t,n,s,0)|0}function Dn(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;return f=C,C=C+16|0,o=f|0,yr(r,t,n,s,o)|0,C=f,o0=e[o+4>>2]|0,e[o>>2]|0|0}function yr(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(S=r,c=t,h=c,l=n,v=s,a=v,!h)return f=(o|0)!=0,a?f?(e[o>>2]=r|0,e[o+4>>2]=t&0,v=0,o=0,o0=v,o|0):(v=0,o=0,o0=v,o|0):(f&&(e[o>>2]=(S>>>0)%(l>>>0),e[o+4>>2]=0),v=0,o=(S>>>0)/(l>>>0)>>>0,o0=v,o|0);f=(a|0)==0;do if(l){if(!f){if(f=(Be(a|0)|0)-(Be(h|0)|0)|0,f>>>0<=31){g=f+1|0,a=31-f|0,t=f-31>>31,l=g,r=S>>>(g>>>0)&t|h<>>(g>>>0)&t,f=0,a=S<>2]=r|0,e[o+4>>2]=c|t&0,v=0,o=0,o0=v,o|0):(v=0,o=0,o0=v,o|0)}if(f=l-1|0,f&l){a=(Be(l|0)|0)+33-(Be(h|0)|0)|0,D=64-a|0,g=32-a|0,c=g>>31,k=a-32|0,t=k>>31,l=a,r=g-1>>31&h>>>(k>>>0)|(h<>>(a>>>0))&t,t=t&h>>>(a>>>0),f=S<>>(k>>>0))&c|S<>31;break}return o&&(e[o>>2]=f&S,e[o+4>>2]=0),(l|0)==1?(k=c|t&0,D=r|0|0,o0=k,D|0):(D=sf(l|0)|0,k=h>>>(D>>>0)|0,D=h<<32-D|S>>>(D>>>0)|0,o0=k,D|0)}else{if(f)return o&&(e[o>>2]=(h>>>0)%(l>>>0),e[o+4>>2]=0),k=0,D=(h>>>0)/(l>>>0)>>>0,o0=k,D|0;if(!S)return o&&(e[o>>2]=0,e[o+4>>2]=(h>>>0)%(a>>>0)),k=0,D=(h>>>0)/(a>>>0)>>>0,o0=k,D|0;if(f=a-1|0,!(f&a))return o&&(e[o>>2]=r|0,e[o+4>>2]=f&h|t&0),k=0,D=h>>>((sf(a|0)|0)>>>0),o0=k,D|0;if(f=(Be(a|0)|0)-(Be(h|0)|0)|0,f>>>0<=30){t=f+1|0,a=31-f|0,l=t,r=h<>>(t>>>0),t=h>>>(t>>>0),f=0,a=S<>2]=r|0,e[o+4>>2]=c|t&0,k=0,D=0,o0=k,D|0):(k=0,D=0,o0=k,D|0)}while(0);if(!l)h=a,c=0,a=0;else{g=n|0|0,S=v|s&0,h=L2(g|0,S|0,-1,-1)|0,n=o0,c=a,a=0;do s=c,c=f>>>31|c<<1,f=a|f<<1,s=r<<1|s>>>31|0,v=r>>>31|t<<1|0,$2(h,n,s,v)|0,D=o0,k=D>>31|((D|0)<0?-1:0)<<1,a=k&1,r=$2(s,v,k&g,(((D|0)<0?-1:0)>>31|((D|0)<0?-1:0)<<1)&S)|0,t=o0,l=l-1|0;while(l|0);h=c,c=0}return l=0,o&&(e[o>>2]=r,e[o+4>>2]=t),k=(f|0)>>>31|(h|l)<<1|(l<<1|f>>>31)&0|c,D=(f<<1|0>>>31)&-2|a,o0=k,D|0}function kg(r,t,n,s,o,f,l,a){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,$T[r&15](t|0,n|0,s|0,o|0,f|0,l|0,a|0)|0}function wg(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,Nr[r&15](t|0,n|0,s|0,o|0,f|0)}function dg(r,t,n,s,o,f,l){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=+l,bT[r&3](t|0,n|0,s|0,o|0,f|0,+l)|0}function Cg(r,t){r=r|0,t=t|0,K0[r&255](t|0)}function yg(r,t,n){r=r|0,t=t|0,n=n|0,_e[r&127](t|0,n|0)}function Ag(r,t,n,s,o,f,l){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,Ji[r&63](t|0,n|0,s|0,o|0,f|0,l|0)|0}function Dg(r,t){return r=r|0,t=t|0,X0[r&127](t|0)|0}function _g(r,t,n,s,o,f,l,a,c,h,S,g){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0,ek[r&3](t|0,n|0,s|0,o|0,f|0,l|0,a|0,c|0,h|0,S|0,g|0)|0}function Ig(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,ge[r&63](t|0,n|0,s|0)|0}function Pg(r,t,n,s,o,f,l,a,c,h,S,g,v,k,D,I){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0,v=v|0,k=k|0,D=D|0,I=I|0,ik[r&3](t|0,n|0,s|0,o|0,f|0,l|0,a|0,c|0,h|0,S|0,g|0,v|0,k|0,D|0,I|0)}function Eg(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,ui[r&15](t|0,n|0,s|0,o|0,f|0,l|0)}function Lg(r,t,n,s,o,f,l,a){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,rk[r&7](t|0,n|0,s|0,o|0,f|0,l|0,a|0)}function Fg(r,t,n,s,o,f,l,a,c,h,S){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,tk[r&7](t|0,n|0,s|0,o|0,f|0,l|0,a|0,c|0,h|0,S|0)}function Rg(r,t,n){return r=r|0,t=t|0,n=n|0,M2[r&63](t|0,n|0)|0}function Og(r,t,n,s,o,f){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,Ki[r&31](t|0,n|0,s|0,o|0,f|0)|0}function Mg(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,+nk[r&3](t|0,n|0,s|0)}function xg(r){return r=r|0,sk[r&15]()|0}function qg(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,qn[r&31](t|0,n|0,s|0,o|0)|0}function Ng(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,Ur[r&15](t|0,n|0,s|0)}function Ug(r){r=r|0,Qf[r&7]()}function Bg(r,t,n,s,o,f,l,a,c){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,N1[r&15](t|0,n|0,s|0,o|0,f|0,l|0,a|0,c|0)|0}function Qg(r,t,n,s,o,f){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=+f,ok[r&7](t|0,n|0,s|0,o|0,+f)|0}function Gg(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,Br[r&63](t|0,n|0,s|0,o|0)}function Y1(r,t,n,s,o,f,l){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,Ge(0),0}function Wi(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,Ge(1)}function of(r,t,n,s,o,f){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=+f,Ge(2),0}function Ae(r){r=r|0,Ge(3)}function _n(r,t){r=r|0,t=t|0,Ge(4)}function w2(r,t,n,s,o,f){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,Ge(5),0}function Ee(r){return r=r|0,Ge(6),0}function Vg(r){return r=r|0,Bs(r|0)|0}function Hg(r){return r=r|0,Hs(r|0)|0}function zg(r){return r=r|0,C4(r|0)|0}function ff(r,t,n,s,o,f,l,a,c,h,S){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,Ge(7),0}function m2(r,t,n){return r=r|0,t=t|0,n=n|0,Ge(8),0}function lf(r,t,n,s,o,f,l,a,c,h,S,g,v,k,D){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0,g=g|0,v=v|0,k=k|0,D=D|0,Ge(9)}function X1(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,Ge(10)}function Ar(r,t,n,s,o,f,l){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,Ge(11)}function Dr(r,t,n,s,o,f,l,a,c,h){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,Ge(12)}function _2(r,t){return r=r|0,t=t|0,Ge(13),0}function D1(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,Ge(14),0}function Yg(r,t,n){return r=r|0,t=t|0,n=n|0,Ge(15),0}function si(){return Ge(16),0}function di(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,Ge(17),0}function Xg(r,t,n){r=r|0,t=t|0,n=n|0,Ge(18)}function jg(r,t,n){r=r|0,t=t|0,n=n|0,me(r|0,t|0,n|0)}function uf(){Ge(19)}function Wg(){D4()}function Jg(){K2()}function Kg(){Gs()}function Ci(r,t,n,s,o,f,l,a){return r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,Ge(20),0}function _r(r,t,n,s,o){return r=r|0,t=t|0,n=n|0,s=s|0,o=+o,Ge(21),0}function Q2(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,Ge(22)}function Zg(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=C,C=C+32|0,a=h,r2(a,255,0),c=r+152|0,(e[a+4>>2]|0)==(e[c>>2]|0)&&(e[a+8>>2]|0)==(e[r+156>>2]|0)&&(e[a+12>>2]|0)==(e[r+160>>2]|0)){c=e[8900]|0,e[r+4580>>2]=c+(((e[8901]|0)-c|0)>>>1),C=h;return}for(n=r+4584|0,s=r+4588|0,o=e[s>>2]|0,t=e[n>>2]|0,f=o-t|0,f>>>0>=512?f>>>0>512&&(l=t+512|0,(o|0)!=(l|0))&&(e[s>>2]=l):(Y2(n,512-f|0),t=e[n>>2]|0),a=r+4580|0,e[a>>2]=t+256,l=r+160|0,o=r+156|0,f=-256;;){if(t=e[l>>2]|0,(f|0)>(0-t|0))if(n=e[o>>2]|0,(f|0)>(0-n|0))if(s=e[c>>2]|0,(f|0)>(0-s|0))if((f|0)>=0){if((f|0)<1){m[(e[a>>2]|0)+f>>0]=0,f=1;continue}(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1}else t=-1;else t=-2;else t=-3;else t=-4;if(m[(e[a>>2]|0)+f>>0]=t,f=f+1|0,(f|0)==256)break}C=h}function $g(r){r=r|0;var t=0,n=0;e[r>>2]=35660,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),r=r+88|0,t=e[r>>2]|0,e[r>>2]=0,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t)}function bg(r){r=r|0;var t=0,n=0;if(e[r>>2]=35660,t=e[r+4608>>2]|0,t&&(n=r+4612|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),e[r>>2]=36736,t=e[r+92>>2]|0,t&&(n=r+96|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t)),n=r+88|0,t=e[n>>2]|0,e[n>>2]=0,!t){V(r);return}K0[e[(e[t>>2]|0)+4>>2]&255](t),V(r)}function ev(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;if(_=C,C=C+352|0,y=_+328|0,w=_+192|0,n=_+343|0,s=_+342|0,o=_+341|0,f=_+340|0,v=_+176|0,a=_+168|0,c=_+160|0,h=_+152|0,E=_,D=_+136|0,e[r+28>>2]|0&&(e[r+20>>2]|0)!=1){if(k=r+4|0,I=r+32|0,l=e[I>>2]|0,!l){if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[n>>0]|0,w0(44,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}if(r=e[r+12>>2]|0,(r|0)==8)switch(l|0){case 1:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[s>>0]|0,w0(45,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[o>>0]|0,w0(46,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(48)|0,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],m[y>>0]=m[f>>0]|0,w0(47,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=w+56|0,o=w+4|0,e[w>>2]=36160,e[l>>2]=36180,u=0,e0(62,w+56|0,o|0),_=u,u=0,_&1&&(d=L()|0,y0(l),U(d|0)),e[w+128>>2]=0,e[w+132>>2]=-1,e[w>>2]=36200,e[w+56>>2]=36220,u=0,I0(180,o|0),_=u,u=0;do if(_&1)r=L()|0;else{if(e[o>>2]=36236,f=w+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[w+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),_=u,u=0,_&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,w|0,49007,21)|0,y=u,u=0;do if(!(y&1)&&(u=0,S=p0(36,r|0,e[I>>2]|0)|0,y=u,u=0,!(y&1))&&(u=0,ie(28,S|0,50997,18)|0,y=u,u=0,!(y&1))){if(s=H0(16)|0,u=0,e0(64,v|0,o|0),y=u,u=0,y&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,v|0),y=u,u=0,y&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(v),!n)break;z0(s|0)}else d=34;while(0);(d|0)==34&&(r=L()|0),e[w>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}switch((r|0)<=8&&(r=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,r|0,8,35648),d=u,u=0,d&1||me(r|0,824,96),d=L()|0,z0(r|0),U(d|0)),n=16-r|0,l|0){case 1:{if(r=C0(60)|0,e[a>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[a>>2],e[y+4>>2]=e[a+4>>2],w0(41,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 2:{if(r=C0(60)|0,e[c>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[c>>2],e[y+4>>2]=e[c+4>>2],w0(42,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}case 3:{if(r=C0(60)|0,e[h>>2]=n,u=0,e[w>>2]=e[t>>2],e[w+4>>2]=e[t+4>>2],e[w+8>>2]=e[t+8>>2],e[y>>2]=e[h>>2],e[y+4>>2]=e[h+4>>2],w0(43,r|0,w|0,k|0,y|0),d=u,u=0,!(d&1))return d=r,C=_,d|0;d=L()|0,V(r),U(d|0)}default:{l=E+56|0,o=E+4|0,e[E>>2]=36160,e[l>>2]=36180,u=0,e0(62,E+56|0,o|0),w=u,u=0,w&1&&(d=L()|0,y0(l),U(d|0)),e[E+128>>2]=0,e[E+132>>2]=-1,e[E>>2]=36200,e[E+56>>2]=36220,u=0,I0(180,o|0),w=u,u=0;do if(w&1)r=L()|0;else{if(e[o>>2]=36236,f=E+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[E+52>>2]=16,e[y>>2]=0,e[y+4>>2]=0,e[y+8>>2]=0,u=0,e0(63,o|0,y|0),w=u,u=0,w&1){r=L()|0,H(y),H(f),Q0(o);break}H(y),u=0,r=ie(28,E|0,49007,21)|0,w=u,u=0;do if(!(w&1)&&(u=0,g=p0(36,r|0,e[I>>2]|0)|0,w=u,u=0,!(w&1))&&(u=0,ie(28,g|0,50997,18)|0,w=u,u=0,!(w&1))){if(s=H0(16)|0,u=0,e0(64,D|0,o|0),w=u,u=0,w&1)r=L()|0;else if(!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,w0(36,s|0,9,35648,D|0),w=u,u=0,w&1?n=1:(u=0,c0(6,s|0,824,96),u=0,n=0),r=L()|0,H(D),!n)break;z0(s|0)}else d=64;while(0);(d|0)==64&&(r=L()|0),e[E>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),d=r,U(d|0)}while(0);d=r,y0(l),U(d|0)}}}return n=e[t+4>>2]|0,s=C0(16)|0,r=e[r+16>>2]|0,n?(e[s>>2]=36108,e[s+4>>2]=n,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0):(d=e[t>>2]|0,e[s>>2]=36132,e[s+4>>2]=d,e[s+8>>2]=1,e[s+12>>2]=r,d=s,C=_,d|0)}function iv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;l=C,C=C+32|0,c=l,r2(c,e[r+128>>2]|0,e[r+136>>2]|0),a=e[t+4>>2]|0,f=e[t+8>>2]|0,f=f|0?f:e[c+8>>2]|0,o=e[t+12>>2]|0,o=o|0?o:e[c+12>>2]|0,n=e[t+16>>2]|0,s=e[c+16>>2]|0,e[r+176>>2]=a|0?a:e[c+4>>2]|0,e[r+180>>2]=f,e[r+184>>2]=o,lv(r),o=r+132|0,t=(e[o>>2]|0)+32|0,t=(t|0)<128?2:(t|0)/64|0,f=0;do e[r+188+(f*12|0)>>2]=t,e[r+188+(f*12|0)+4>>2]=0,R[r+188+(f*12|0)+8>>1]=0,R[r+188+(f*12|0)+10>>1]=1,f=f+1|0;while((f|0)!=365);a=(e[o>>2]|0)+32|0,a=(a|0)<128?2:(a|0)/64|0,c=(n|0?n:s)&255,e[r+4568>>2]=a,e[r+4572>>2]=0,m[r+4576>>0]=c,m[r+4577>>0]=1,m[r+4578>>0]=0,e[r+4580>>2]=a,e[r+4584>>2]=1,m[r+4588>>0]=c,m[r+4589>>0]=1,m[r+4590>>0]=0,e[r+4592>>2]=0,C=l}function rv(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;for(l=r+88|0,f=e[t>>2]|0,e[t>>2]=0,t=e[l>>2]|0,e[l>>2]=f,t&&K0[e[(e[t>>2]|0)+4>>2]&255](t),l=s+4|0,f=e[l>>2]|0,m[r+4620>>0]=o&1,t=r+156|0,e[t>>2]=e[n>>2],e[t+4>>2]=e[n+4>>2],e[t+8>>2]=e[n+8>>2],e[t+12>>2]=e[n+12>>2],z2(r,s),tv(r),t=e[r+116>>2]|0,r=e[r+112>>2]|0;o=t+-1|0,n=(m[o>>0]|0)==-1?7:8,!((r|0)<(n|0));)t=o,r=r-n|0;t=t-f|0,o=e[l>>2]|0,o&&(e[l>>2]=o+t,s=s+8|0,e[s>>2]=(e[s>>2]|0)-t)}function tv(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0;x=C,C=C+32|0,q=x+12|0,O=x,a=r+172|0,d=(e[a>>2]|0)+4|0,(e[r+28>>2]|0)==1?c=e[r+20>>2]|0:c=1,t=Z(c<<1,d)|0,e[q>>2]=0,B=q+4|0,e[B>>2]=0,e[q+8>>2]=0;e:do if(t){if((t|0)<0&&(u=0,I0(178,q|0),N=u,u=0,N&1)||(w=6),(w|0)==6&&(u=0,n=j(67,t|0)|0,N=u,u=0,!(N&1))){for(e[B>>2]=n,e[q>>2]=n,e[q+8>>2]=n+t;;)if(m[n>>0]=0,n=(e[B>>2]|0)+1|0,e[B>>2]=n,t=t+-1|0,!t)break e}n=L()|0,t=e[q>>2]|0,t||U(n|0),(e[B>>2]|0)!=(t|0)&&(e[B>>2]=t),V(t),U(n|0)}while(0);e[O>>2]=0,N=O+4|0,e[N>>2]=0,e[O+8>>2]=0;do if(!c)w=19;else{if(c>>>0>1073741823&&(u=0,I0(178,O|0),y=u,u=0,y&1)||(w=17),(w|0)==17&&(s=c<<2,u=0,o=j(67,s|0)|0,y=u,u=0,!(y&1))){e[O>>2]=o,w=o+(c<<2)|0,e[O+8>>2]=w,ye(o|0,0,s|0)|0,e[N>>2]=w,w=19;break}n=L()|0,t=e[O>>2]|0,s=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}while(0);if((w|0)==19){h=r+8|0,t=e[h>>2]|0;e:do if((t|0)>0){if(S=r+4596|0,g=Z(c,d)|0,v=g+1|0,k=r+4600|0,D=r+160|0,I=r+168|0,E=r+164|0,_=r+156|0,y=r+88|0,l=r+4592|0,(c|0)>0)f=0;else{for(f=0;;){if(o=e[q>>2]|0,n=o+1|0,e[S>>2]=n,s=o+v|0,e[k>>2]=s,f&1?(e[S>>2]=s,e[k>>2]=n,n=1):n=v,c=e[D>>2]|0,(c|0)<=(f|0)&&(f|0)<((e[I>>2]|0)+c|0)){if(c=e[y>>2]|0,u=0,w0(e[(e[c>>2]|0)+8>>2]|0,c|0,o+(n+((e[_>>2]|0)-g))|0,e[E>>2]|0,d|0),c=u,u=0,c&1)break;t=e[h>>2]|0}if(f=f+1|0,(f|0)>=(t|0)){w=50;break e}}n=L()|0;break}i:for(;;){n=e[q>>2]|0,t=n+1|0,e[S>>2]=t,n=n+v|0,e[k>>2]=n,f&1&&(e[S>>2]=n,e[k>>2]=t,t=n),o=e[O>>2]|0,n=t,s=0;do{if(e[l>>2]=e[o+(s<<2)>>2],w=e[a>>2]|0,m[n+w>>0]=m[n+(w+-1)>>0]|0,m[(e[k>>2]|0)+-1>>0]=m[e[S>>2]>>0]|0,u=0,e0(83,r|0,0),w=u,u=0,w&1){w=38;break i}o=e[O>>2]|0,e[o+(s<<2)>>2]=e[l>>2],n=(e[S>>2]|0)+d|0,e[S>>2]=n,t=e[k>>2]|0,e[k>>2]=t+d,s=s+1|0}while((s|0)<(c|0));if(w=e[D>>2]|0,(w|0)<=(f|0)&&(f|0)<((e[I>>2]|0)+w|0)&&(w=e[y>>2]|0,u=0,w0(e[(e[w>>2]|0)+8>>2]|0,w|0,t+(d+((e[_>>2]|0)-g))|0,e[E>>2]|0,d|0),w=u,u=0,w&1)){w=30;break}if(f=f+1|0,(f|0)>=(e[h>>2]|0)){w=50;break e}}if((w|0)==30){n=L()|0;break}else if((w|0)==38){n=L()|0;break}}else w=50;while(0);do if((w|0)==50){if(u=0,I0(183,r|0),r=u,u=0,r&1){n=L()|0;break}if(t=e[O>>2]|0,n=t,t&&(s=e[N>>2]|0,(s|0)!=(t|0)&&(e[N>>2]=s+(~((s+-4-n|0)>>>2)<<2)),V(t)),t=e[q>>2]|0,!t){C=x;return}(e[B>>2]|0)!=(t|0)&&(e[B>>2]=t),V(t),C=x;return}while(0);t=e[O>>2]|0,s=t,t&&(o=e[N>>2]|0,(o|0)!=(t|0)&&(e[N>>2]=o+(~((o+-4-s|0)>>>2)<<2)),V(t))}t=e[q>>2]|0,t||U(n|0),(e[B>>2]|0)!=(t|0)&&(e[B>>2]=t),V(t),U(n|0)}function nv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;if(v=r+4596|0,n=e[v>>2]|0,E=r+172|0,t=e[E>>2]|0,!((t|0)<=0))for(k=r+4600|0,D=r+4604|0,I=r+4592|0,a=n,f=z[n+-1>>0]|0,n=z[n>>0]|0,g=0;h=e[k>>2]|0,l=m[h+(g+-1)>>0]|0,S=l&255,o=g+1|0,s=z[a+o>>0]|0,c=e[D>>2]|0,a=n-f|0,f=f-S|0,c=((((m[c+(s-n)>>0]|0)*9|0)+(m[c+a>>0]|0)|0)*9|0)+(m[c+f>>0]|0)|0,h=h+g|0,c?(t=n-S>>31,(t^f|0)<0?t=n:t=S+((t^a|0)<0?0:a)|0,S=sv(r,c,z[h>>0]|0,t,0)|0,m[(e[k>>2]|0)+g>>0]=S):(t=ov(r,l,h,t-g|0)|0,n=t+g|0,(n|0)!=(e[E>>2]|0)&&(S=fv(r,S,z[(e[v>>2]|0)+n>>0]|0)|0,m[(e[k>>2]|0)+n>>0]=S,S=e[I>>2]|0,e[I>>2]=(S|0)<1?0:S+-1|0,t=t+1|0),o=t+g|0,s=e[v>>2]|0,n=z[s+(o+-1)>>0]|0,s=z[s+o>>0]|0),t=e[E>>2]|0,!((t|0)<=(o|0));)a=e[v>>2]|0,f=n,n=s,g=o}function sv(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(D=t>>31,c=(D^t)-D|0,v=r+188+(c*12|0)+10|0,n=R[v>>1]|0,g=r+188+(c*12|0)|0,o=e[g>>2]|0,(n|0)<(o|0))if((n<<1|0)<(o|0))if((n<<2|0)<(o|0))if((n<<3|0)<(o|0))if((n<<4|0)<(o|0))for(t=5;(n<>1]^D)-D+s|0,k=r+128|0,o=e[k>>2]|0,(n&o|0)==(n|0)?h=n:h=o&~(n>>31),n=r+112|0,(e[n>>2]|0)<8&&D2(r),o=r+108|0,s=e[o>>2]|0,f=s>>>24,l=e[2832+(t<<11)+(f<<3)+4>>2]|0,l?(e[n>>2]=(e[n>>2]|0)-l,e[o>>2]=s<>2]|0):(a=e[r+148>>2]|0,o=e[r+140>>2]|0,n=X2(r)|0,(n|0)<(a+-1-o|0)?t&&(n=(ze(r,t)|0)+(n<>31^n>>1,(((n|0)>-1?n:0-n|0)|0)>65535&&(n=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,n|0,5,35648),r=u,u=0,r&1?(r=L()|0,z0(n|0),U(r|0)):me(n|0,824,96))),a=r+136|0,s=e[a>>2]|0,t?l=n:(s?o=0:o=(e[r+188+(c*12|0)+4>>2]<<1)+-1+(R[v>>1]|0)>>31,l=o^n),t=e[r+152>>2]|0,o=(e[g>>2]|0)+((l|0)>-1?l:0-l|0)|0,f=r+188+(c*12|0)+4|0,n=(e[f>>2]|0)+(Z(s<<1|1,l)|0)|0,s=R[v>>1]|0,(s|0)==(t|0)&&(o=o>>1,n=n>>1,s=t>>1),e[g>>2]=o,t=s+1|0,R[v>>1]=t,o=t+n|0,(o|0)>=1?(n|0)>0&&(n=n-t|0,v=R[S>>1]|0,R[S>>1]=(v<<16>>16<127&1)+(v&65535),n=(n|0)>0?0:n):(n=R[S>>1]|0,R[S>>1]=(n&65535)-(n<<16>>16>-128&1),n=(o|0)>(~s|0)?o:0-s|0),e[f>>2]=n,t=e[a>>2]|0,s=t<<1|1,o=(Z(s,(l^D)-D|0)|0)+h|0,(o|0)>=(0-t|0)?(n=e[k>>2]|0,(n+t|0)<(o|0)&&(o=o-(Z(e[r+132>>2]|0,s)|0)|0)):(o=(Z(e[r+132>>2]|0,s)|0)+o|0,n=e[k>>2]|0),(o&n|0)==(o|0)?(r=o,r=r&255,r|0):(r=n&~(o>>31),r=r&255,r|0)}function ov(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;for(a=r+112|0,c=r+108|0,h=r+4592|0,o=e[a>>2]|0,f=0;;){if((o|0)<1&&(D2(r),o=e[a>>2]|0),l=e[c>>2]|0,o=o+-1|0,e[a>>2]=o,e[c>>2]=l<<1,(l|0)>=0){S=8;break}if(l=e[h>>2]|0,g=1<>2],v=s-f|0,v=(g|0)<(v|0)?g:v,f=v+f|0,(v|0)==(g|0)&&(e[h>>2]=(l|0)>30?31:l+1|0),(f|0)==(s|0)){o=s;break}}return(S|0)==8&&((f|0)!=(s|0)?(o=e[h>>2]|0,(o+-4|0)>>>0<28?o=ze(r,e[36476+(o<<2)>>2]|0)|0:o=0,o=o+f|0,(o|0)>(s|0)&&(o=H0(16)|0,!(m[8]|0)&&j0(8)|0&&(J0(72,35648,l0|0)|0,W0(8)),u=0,c0(7,o|0,5,35648),v=u,u=0,v&1?(v=L()|0,z0(o|0),U(v|0)):me(o|0,824,96))):o=s),(o|0)<=0||ye(n|0,t|0,o|0)|0,o|0}function fv(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;return f=t-n|0,l=r+128|0,s=r+136|0,(((f|0)>-1?f:0-f|0)|0)>(e[s>>2]|0)?(t=Z(af(r,r+4568|0)|0,n-t>>31|1)|0,o=e[s>>2]|0,f=o<<1|1,t=(Z(t,f)|0)+n|0,(t|0)>=(0-o|0)?(s=e[l>>2]|0,(s+o|0)<(t|0)&&(t=t-(Z(e[r+132>>2]|0,f)|0)|0)):(t=(Z(e[r+132>>2]|0,f)|0)+t|0,s=e[l>>2]|0),(t&s|0)==(t|0)?(r=t,r=r&255,r|0):(r=s&~(t>>31),r=r&255,r|0)):(n=af(r,r+4580|0)|0,f=e[s>>2]|0,o=f<<1|1,t=(Z(o,n)|0)+t|0,(t|0)>=(0-f|0)?(s=e[l>>2]|0,(s+f|0)<(t|0)&&(t=t-(Z(e[r+132>>2]|0,o)|0)|0)):(t=(Z(e[r+132>>2]|0,o)|0)+t|0,s=e[l>>2]|0),(t&s|0)==(t|0)?(r=t,r=r&255,r|0):(r=s&~(t>>31),r=r&255,r|0))}function af(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0;if(h=t+9|0,n=z[h>>0]|0,f=t+4|0,o=(Z(n>>>1,e[f>>2]|0)|0)+(e[t>>2]|0)|0,(n|0)<(o|0)){s=0;do n=n<<1,s=s+1|0;while((n|0)<(o|0))}else s=0;l=e[r+148>>2]|0,a=e[36476+(e[r+4592>>2]<<2)>>2]|0,n=e[r+140>>2]|0,o=X2(r)|0;do if((o|0)<(l+-2-a-n|0))if(s){a=(ze(r,s)|0)+(o<>2]|0,o=a+s|0,l=o&1,n=l,f=1,o=(l+o|0)/2|0;break}else{s=e[f>>2]|0,r=s+o|0,n=r&1,r=(n+r|0)/2|0,c=8;break}else o=(ze(r,n)|0)+1|0,l=e[f>>2]|0,r=o+l|0,n=r&1,r=(n+r|0)/2|0,s?(a=o,f=1,o=r,s=l):(s=l,c=8);while(0);return(c|0)==8&&(a=o,f=z[t+10>>0]<<1>>>0>=(z[h>>0]|0)>>>0,o=r),o=(n|0)!=0^f?o:0-o|0,(o|0)<0&&(c=t+10|0,m[c>>0]=(z[c>>0]|0)+1),n=(a+1-s>>1)+(e[t>>2]|0)|0,e[t>>2]=n,s=m[h>>0]|0,s<<24>>24!=(m[t+8>>0]|0)?(t=s,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0):(e[t>>2]=n>>1,c=(s&255)>>>1,m[h>>0]=c,t=t+10|0,m[t>>0]=(z[t>>0]|0)>>>1,t=c,t=t&255,t=t+1|0,t=t&255,m[h>>0]=t,o|0)}function lv(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;v=C,C=C+32|0,s=v,g=r+136|0;e:do if(e[g>>2]|0)t=r+144|0;else if(n=e[r+128>>2]|0,t=r+144|0,(n|0)==((1<>2])+-1|0)&&(r2(s,n,0),(e[s+4>>2]|0)==(e[r+176>>2]|0))&&(e[s+8>>2]|0)==(e[r+180>>2]|0)&&(e[s+12>>2]|0)==(e[r+184>>2]|0))switch(e[t>>2]|0){case 8:{g=e[8900]|0,e[r+4604>>2]=g+(((e[8901]|0)-g|0)>>>1),C=v;return}case 10:{g=e[8903]|0,e[r+4604>>2]=g+(((e[8904]|0)-g|0)>>>1),C=v;return}case 12:{g=e[8906]|0,e[r+4604>>2]=g+(((e[8907]|0)-g|0)>>>1),C=v;return}case 16:{g=e[8909]|0,e[r+4604>>2]=g+(((e[8910]|0)-g|0)>>>1),C=v;return}default:break e}while(0);if(S=1<>2],n=r+4608|0,s=S<<1,o=r+4612|0,f=e[o>>2]|0,t=e[n>>2]|0,l=f-t|0,s>>>0<=l>>>0?s>>>0>>0&&(a=t+s|0,(f|0)!=(a|0))&&(e[o>>2]=a):(Y2(n,s-l|0),t=e[n>>2]|0),h=r+4604|0,e[h>>2]=t+S,t=0-S|0,(S|0)<=(t|0)){C=v;return}a=r+184|0,c=r+180|0,l=r+176|0,f=t;do t=e[a>>2]|0,(f|0)>(0-t|0)?(n=e[c>>2]|0,(f|0)>(0-n|0)?(s=e[l>>2]|0,(f|0)>(0-s|0)?(o=e[g>>2]|0,(f|0)>=(0-o|0)?(o|0)<(f|0)?(s|0)<=(f|0)?(n|0)>(f|0)?t=2:t=(t|0)>(f|0)?3:4:t=1:t=0:t=-1):t=-2):t=-3):t=-4,m[(e[h>>2]|0)+f>>0]=t,f=f+1|0;while((f|0)!=(S|0));C=v}function uv(r){r=r|0,V(r)}function av(r){return r=r|0,50767}function cv(r,t,n){r=r|0,t=t|0,n=n|0,q1(r,50754,12)}function Sv(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0;D=C,C=C+16|0,I=D,e[I>>2]=0,E=I+4|0,e[E>>2]=0,e[I+8>>2]=0,v=I+8|0,u=0,o=j(67,1)|0,g=u,u=0;e:do if(!(g&1)&&(g=o+1|0,m[o>>0]=n,e[I>>2]=o,e[E>>2]=g,e[v>>2]=g,u=0,e0(84,I|0,t&65535|0),g=u,u=0,!(g&1))&&(u=0,e0(84,I|0,r&65535|0),g=u,u=0,!(g&1))){if(h=s&255,o=e[E>>2]|0,n=e[v>>2]|0,o>>>0>=n>>>0){if(t=e[I>>2]|0,r=t,l=o-r+1|0,(l|0)<0){if(u=0,I0(178,I|0),g=u,u=0,g&1){k=52;break}r=e[I>>2]|0,n=e[v>>2]|0,t=r}if(c=t,o=n-c|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?l:o,n=e[E>>2]|0,a=n-c|0,o?k=12:(o=0,l=0)):(a=e[E>>2]|0,o=2147483647,n=a,a=a-c|0,k=12),(k|0)==12&&(u=0,l=j(67,o|0)|0,g=u,u=0,g&1)){k=52;break}m[l+a>>0]=h,S=n-c|0,g=l+(a-S)|0,Ne(g|0,t|0,S|0)|0,e[I>>2]=g,e[E>>2]=l+(a+1),e[v>>2]=l+o,r&&V(r)}else m[o>>0]=h,e[E>>2]=(e[E>>2]|0)+1;i:do if((s|0)>0){for(g=0;;){if(g=g+1|0,S=g&255,o=e[E>>2]|0,t=e[v>>2]|0,o>>>0>=t>>>0){if(r=e[I>>2]|0,n=r,l=o-n+1|0,(l|0)<0){if(u=0,I0(178,I|0),h=u,u=0,h&1)break;r=e[I>>2]|0,n=r,t=e[v>>2]|0}if(h=r,o=t-h|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?l:o,t=e[E>>2]|0,a=t-h|0,o?k=25:(c=0,l=0)):(a=e[E>>2]|0,o=2147483647,t=a,a=a-h|0,k=25),(k|0)==25){if(k=0,u=0,l=j(67,o|0)|0,c=u,u=0,c&1)break;c=o}m[l+a>>0]=S,o=l+(a+1)|0,h=t-h|0,S=l+(a-h)|0,Ne(S|0,r|0,h|0)|0,e[I>>2]=S,e[E>>2]=o,e[v>>2]=l+c,n&&(V(n),o=e[E>>2]|0)}else m[o>>0]=S,o=(e[E>>2]|0)+1|0,e[E>>2]=o;if(n=e[v>>2]|0,o>>>0>=n>>>0){if(t=e[I>>2]|0,r=t,l=o-r+1|0,(l|0)<0){if(u=0,I0(178,I|0),S=u,u=0,S&1)break;r=e[I>>2]|0,n=e[v>>2]|0,t=r}if(h=t,o=n-h|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?l:o,l=e[E>>2]|0,a=l-h|0,o?k=36:(c=0,n=0)):(a=e[E>>2]|0,o=2147483647,l=a,a=a-h|0,k=36),(k|0)==36){if(k=0,u=0,n=j(67,o|0)|0,S=u,u=0,S&1)break;c=o}m[n+a>>0]=17,o=n+(a+1)|0,h=l-h|0,S=n+(a-h)|0,Ne(S|0,t|0,h|0)|0,e[I>>2]=S,e[E>>2]=o,e[v>>2]=n+c,r&&(V(r),o=e[E>>2]|0)}else m[o>>0]=17,o=(e[E>>2]|0)+1|0,e[E>>2]=o;if(n=e[v>>2]|0,o>>>0>=n>>>0){if(t=e[I>>2]|0,r=t,l=o-r+1|0,(l|0)<0){if(u=0,I0(178,I|0),S=u,u=0,S&1)break;r=e[I>>2]|0,n=e[v>>2]|0,t=r}if(c=t,o=n-c|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?l:o,n=e[E>>2]|0,a=n-c|0,o?k=48:(o=0,l=0)):(a=e[E>>2]|0,o=2147483647,n=a,a=a-c|0,k=48),(k|0)==48&&(k=0,u=0,l=j(67,o|0)|0,S=u,u=0,S&1))break;m[l+a>>0]=0,h=n-c|0,S=l+(a-h)|0,Ne(S|0,t|0,h|0)|0,e[I>>2]=S,e[E>>2]=l+(a+1),e[v>>2]=l+o,r&&V(r)}else m[o>>0]=0,e[E>>2]=(e[E>>2]|0)+1;if((g|0)>=(s|0))break i}f=L()|0;break e}while(0);if(u=0,a=j(67,20)|0,s=u,u=0,s&1)k=52;else{e[a>>2]=36800,m[a+4>>0]=-9,r=a+8|0,e[r>>2]=0,l=a+12|0,e[l>>2]=0,n=a+16|0,e[n>>2]=0,o=e[E>>2]|0,s=e[I>>2]|0,t=o-s|0;do if((o|0)!=(s|0)){if((t|0)<0&&(u=0,I0(178,r|0),s=u,u=0,s&1)||(k=62),(k|0)==62&&(u=0,f=j(67,t|0)|0,s=u,u=0,!(s&1))){if(e[l>>2]=f,e[r>>2]=f,e[n>>2]=f+t,o=e[I>>2]|0,n=e[E>>2]|0,(o|0)==(n|0))break;do m[f>>0]=m[o>>0]|0,f=(e[l>>2]|0)+1|0,e[l>>2]=f,o=o+1|0;while((o|0)!=(n|0));o=e[I>>2]|0;break}f=L()|0,o=e[r>>2]|0,o&&((e[l>>2]|0)!=(o|0)&&(e[l>>2]=o),V(o)),V(a);break e}while(0);return o?((e[E>>2]|0)!=(o|0)&&(e[E>>2]=o),V(o),C=D,a|0):(C=D,a|0)}}else k=52;while(0);return(k|0)==52&&(f=L()|0),o=e[I>>2]|0,o||U(f|0),(e[E>>2]|0)!=(o|0)&&(e[E>>2]=o),V(o),U(f|0),0}function hv(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0;E=C,C=C+32|0,k=E+28|0,y=E+16|0,I=E+4|0,D=E,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0,g=C0(5)|0,e[y>>2]=g,v=y+8|0,e[v>>2]=g+5,m[g>>0]=74,m[g+1>>0]=70,m[g+2>>0]=73,m[g+3>>0]=70,m[g+4>>0]=0,e[w>>2]=g+5,u=0,e0(84,y|0,e[r>>2]&65535|0),g=u,u=0;e:do if(g&1)_=43;else{if(h=e[r+4>>2]&255,t=e[w>>2]|0,s=e[v>>2]|0,t>>>0>=s>>>0){if(o=e[y>>2]|0,f=o,l=t-f+1|0,(l|0)<0){if(u=0,I0(178,y|0),g=u,u=0,g&1){_=43;break}f=e[y>>2]|0,s=e[v>>2]|0,o=f}if(c=o,t=s-c|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?l:t,s=e[w>>2]|0,a=s-c|0,t?_=10:(t=0,l=0)):(a=e[w>>2]|0,t=2147483647,s=a,a=a-c|0,_=10),(_|0)==10&&(u=0,l=j(67,t|0)|0,g=u,u=0,g&1)){_=43;break}m[l+a>>0]=h,S=s-c|0,g=l+(a-S)|0,Ne(g|0,o|0,S|0)|0,e[y>>2]=g,e[w>>2]=l+(a+1),e[v>>2]=l+t,f&&V(f)}else m[t>>0]=h,e[w>>2]=(e[w>>2]|0)+1;if(u=0,e0(84,y|0,e[r+8>>2]&65535|0),g=u,u=0,!(g&1)&&(u=0,e0(84,y|0,e[r+12>>2]&65535|0),g=u,u=0,!(g&1))){if(g=r+16|0,S=e[g>>2]&255,t=e[w>>2]|0,o=e[v>>2]|0,t>>>0>=o>>>0){if(f=e[y>>2]|0,s=f,l=t-s+1|0,(l|0)<0){if(u=0,I0(178,y|0),h=u,u=0,h&1){_=43;break}f=e[y>>2]|0,s=f,o=e[v>>2]|0}if(h=f,t=o-h|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?l:t,l=e[w>>2]|0,a=l-h|0,t?_=23:(c=0,o=0)):(a=e[w>>2]|0,t=2147483647,l=a,a=a-h|0,_=23),(_|0)==23)if(u=0,o=j(67,t|0)|0,c=u,u=0,c&1){_=43;break}else c=t;m[o+a>>0]=S,t=o+(a+1)|0,h=l-h|0,S=o+(a-h)|0,Ne(S|0,f|0,h|0)|0,e[y>>2]=S,e[w>>2]=t,e[v>>2]=o+c,s&&(V(s),t=e[w>>2]|0)}else m[t>>0]=S,t=(e[w>>2]|0)+1|0,e[w>>2]=t;if(S=r+20|0,h=e[S>>2]&255,s=e[v>>2]|0,t>>>0>=s>>>0){if(o=e[y>>2]|0,f=o,l=t-f+1|0,(l|0)<0){if(u=0,I0(178,y|0),c=u,u=0,c&1){_=43;break}f=e[y>>2]|0,s=e[v>>2]|0,o=f}if(c=o,t=s-c|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?l:t,s=e[w>>2]|0,a=s-c|0,t?_=34:(t=0,l=0)):(a=e[w>>2]|0,t=2147483647,s=a,a=a-c|0,_=34),(_|0)==34&&(u=0,l=j(67,t|0)|0,d=u,u=0,d&1)){_=43;break}m[l+a>>0]=h,h=s-c|0,d=l+(a-h)|0,Ne(d|0,o|0,h|0)|0,e[y>>2]=d,e[w>>2]=l+(a+1),e[v>>2]=l+t,f&&V(f)}else m[t>>0]=h,e[w>>2]=(e[w>>2]|0)+1;t=e[g>>2]|0;do if((t|0)>0){if(!(e[r+24>>2]|0))if(e[D>>2]=e[w>>2],d=0+(Z(t*3|0,e[S>>2]|0)|0)|0,u=0,e[k>>2]=e[D>>2],qe(15,y|0,k|0,0,d|0)|0,d=u,u=0,d&1){_=43;break e}else break;if(s=H0(16)|0,u=0,c0(5,I|0,50792,57),d=u,u=0,d&1)t=L()|0;else if(u=0,t=de(1)|0,d=u,u=0,!(d&1)&&(u=0,w0(36,s|0,1,t|0,I|0),d=u,u=0,!(d&1))?(u=0,c0(6,s|0,824,96),u=0,n=0):n=1,t=L()|0,H(I),!n){n=t;break e}z0(s|0),n=t;break e}while(0);if(u=0,a=j(67,20)|0,d=u,u=0,d&1)_=43;else{e[a>>2]=36800,m[a+4>>0]=-32,f=a+8|0,e[f>>2]=0,l=a+12|0,e[l>>2]=0,s=a+16|0,e[s>>2]=0,t=e[w>>2]|0,d=e[y>>2]|0,o=t-d|0;do if((t|0)!=(d|0)){if((o|0)<0&&(u=0,I0(178,f|0),d=u,u=0,d&1)||(_=53),(_|0)==53&&(u=0,n=j(67,o|0)|0,d=u,u=0,!(d&1))){if(e[l>>2]=n,e[f>>2]=n,e[s>>2]=n+o,t=e[y>>2]|0,s=e[w>>2]|0,(t|0)==(s|0))break;do m[n>>0]=m[t>>0]|0,n=(e[l>>2]|0)+1|0,e[l>>2]=n,t=t+1|0;while((t|0)!=(s|0));t=e[y>>2]|0;break}t=L()|0,n=e[f>>2]|0,n&&((e[l>>2]|0)!=(n|0)&&(e[l>>2]=n),V(n)),V(a),_=44;break e}while(0);return t?((e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),C=E,a|0):(C=E,a|0)}}else _=43}while(0);return(_|0)==43&&(t=L()|0,_=44),(_|0)==44&&(n=t),t=e[y>>2]|0,t||U(n|0),(e[w>>2]|0)!=(t|0)&&(e[w>>2]=t),V(t),U(n|0),0}function cf(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0;a=C,C=C+16|0,h=a,e[h>>2]=0,S=h+4|0,e[S>>2]=0,e[h+8>>2]=0,u=0,t=j(67,1)|0,l=u,u=0;e:do if(!(l&1)&&(l=t+1|0,m[t>>0]=1,e[h>>2]=t,e[S>>2]=l,e[h+8>>2]=l,u=0,e0(84,h|0,e[r>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,e0(84,h|0,e[r+4>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,e0(84,h|0,e[r+8>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,e0(84,h|0,e[r+12>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,e0(84,h|0,e[r+16>>2]&65535|0),l=u,u=0,!(l&1))&&(u=0,c=j(67,20)|0,l=u,u=0,!(l&1))){e[c>>2]=36800,m[c+4>>0]=-8,o=c+8|0,e[o>>2]=0,l=c+12|0,e[l>>2]=0,r=c+16|0,e[r>>2]=0,t=e[S>>2]|0,g=e[h>>2]|0,s=t-g|0;do if((t|0)!=(g|0)){if((s|0)<0&&(u=0,I0(178,o|0),g=u,u=0,g&1)||(f=11),(f|0)==11&&(u=0,n=j(67,s|0)|0,g=u,u=0,!(g&1))){if(e[l>>2]=n,e[o>>2]=n,e[r>>2]=n+s,t=e[h>>2]|0,r=e[S>>2]|0,(t|0)==(r|0))break;do m[n>>0]=m[t>>0]|0,n=(e[l>>2]|0)+1|0,e[l>>2]=n,t=t+1|0;while((t|0)!=(r|0));t=e[h>>2]|0;break}n=L()|0,t=e[o>>2]|0,t&&((e[l>>2]|0)!=(t|0)&&(e[l>>2]=t),V(t)),V(c);break e}while(0);return t?((e[S>>2]|0)!=(t|0)&&(e[S>>2]=t),V(t),C=a,c|0):(C=a,c|0)}else f=25;while(0);return(f|0)==25&&(n=L()|0),t=e[h>>2]|0,t||U(n|0),(e[S>>2]|0)!=(t|0)&&(e[S>>2]=t),V(t),U(n|0),0}function mv(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;return f=C0(5)|0,m[f>>0]=109,m[f+1>>0]=114,m[f+2>>0]=102,m[f+3>>0]=120,m[f+4>>0]=r,u=0,o=j(67,20)|0,s=u,u=0,s&1&&(o=L()|0,V(f),U(o|0)),e[o>>2]=36800,m[o+4>>0]=-24,r=o+8|0,e[r>>2]=0,t=o+12|0,e[t>>2]=0,n=o+16|0,e[n>>2]=0,u=0,s=j(67,5)|0,l=u,u=0,l&1?(l=L()|0,V(o),V(f),U(l|0),0):(e[t>>2]=s,e[r>>2]=s,e[n>>2]=s+5,m[s>>0]=109,l=(e[t>>2]|0)+1|0,e[t>>2]=l,s=f+1|0,m[l>>0]=m[s>>0]|0,l=(e[t>>2]|0)+1|0,e[t>>2]=l,s=s+1|0,m[l>>0]=m[s>>0]|0,l=(e[t>>2]|0)+1|0,e[t>>2]=l,s=s+1|0,m[l>>0]=m[s>>0]|0,l=(e[t>>2]|0)+1|0,e[t>>2]=l,m[l>>0]=m[s+1>>0]|0,e[t>>2]=(e[t>>2]|0)+1,V(f),o|0)}function pv(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;_=C,C=C+16|0,y=_,e[y>>2]=0,w=y+4|0,e[w>>2]=0,e[y+8>>2]=0,I=y+8|0,u=0,o=j(67,1)|0,D=u,u=0;e:do if(D&1)E=29;else{if(a=o+1|0,D=a,m[o>>0]=t,e[y>>2]=o,e[w>>2]=D,e[I>>2]=D,(t|0)>0){l=a,D=0;do{if(k=D+r&255,l>>>0>=a>>>0){if(o=e[y>>2]|0,c=o,l=l-c+1|0,(l|0)<0){if(u=0,I0(178,y|0),v=u,u=0,v&1){E=28;break}c=e[y>>2]|0,a=e[I>>2]|0,v=c}else v=o;if(g=v,o=a-g|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?l:o,a=e[w>>2]|0,h=a-g|0,o?E=13:(S=0,l=0)):(h=e[w>>2]|0,o=2147483647,a=h,h=h-g|0,E=13),(E|0)==13)if(E=0,u=0,l=j(67,o|0)|0,S=u,u=0,S&1){E=28;break}else S=o;m[l+h>>0]=k,o=l+(h+1)|0,g=a-g|0,k=l+(h-g)|0,Ne(k|0,v|0,g|0)|0,e[y>>2]=k,e[w>>2]=o,e[I>>2]=l+S,c&&(V(c),o=e[w>>2]|0)}else m[l>>0]=k,o=(e[w>>2]|0)+1|0,e[w>>2]=o;if(a=e[I>>2]|0,o>>>0>=a>>>0){if(c=e[y>>2]|0,l=c,h=o-l+1|0,(h|0)<0){if(u=0,I0(178,y|0),k=u,u=0,k&1){E=28;break}c=e[y>>2]|0,l=c,a=e[I>>2]|0}if(g=c,o=a-g|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?h:o,h=e[w>>2]|0,a=h-g|0,o?E=24:(o=0,S=0)):(a=e[w>>2]|0,o=2147483647,h=a,a=a-g|0,E=24),(E|0)==24&&(E=0,u=0,S=j(67,o|0)|0,k=u,u=0,k&1)){E=28;break}m[S+a>>0]=0,v=h-g|0,k=S+(a-v)|0,Ne(k|0,c|0,v|0)|0,e[y>>2]=k,e[w>>2]=S+(a+1),e[I>>2]=S+o,l&&V(l)}else m[o>>0]=0,e[w>>2]=(e[w>>2]|0)+1;D=D+1|0,l=e[w>>2]|0,a=e[I>>2]|0}while((D|0)<(t|0));if((E|0)==28){f=L()|0;break}o=n&255,l>>>0>>0?(m[l>>0]=o,l=(e[w>>2]|0)+1|0,e[w>>2]=l):E=37}else l=a,o=n&255,E=37;if((E|0)==37){if(c=e[y>>2]|0,h=c,S=l-h+1|0,(S|0)<0){if(u=0,I0(178,y|0),n=u,u=0,n&1){E=29;break}h=e[y>>2]|0,a=e[I>>2]|0,c=h}if(k=c,l=a-k|0,l>>>0<1073741823?(l=l<<1,l=l>>>0>>0?S:l,S=e[w>>2]|0,g=S-k|0,l?E=43:(v=0,a=0)):(g=e[w>>2]|0,l=2147483647,S=g,g=g-k|0,E=43),(E|0)==43)if(u=0,a=j(67,l|0)|0,n=u,u=0,n&1){E=29;break}else v=l;m[a+g>>0]=o,l=a+(g+1)|0,r=S-k|0,n=a+(g-r)|0,Ne(n|0,c|0,r|0)|0,e[y>>2]=n,e[w>>2]=l,e[I>>2]=a+v,h&&(V(h),l=e[w>>2]|0)}if(k=s&255,o=e[I>>2]|0,l>>>0>=o>>>0){if(a=e[y>>2]|0,c=a,l=l-c+1|0,(l|0)<0){if(u=0,I0(178,y|0),s=u,u=0,s&1){E=29;break}c=e[y>>2]|0,o=e[I>>2]|0,a=c}if(v=a,o=o-v|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?l:o,h=e[w>>2]|0,S=h-v|0,o?E=54:(g=0,l=0)):(S=e[w>>2]|0,o=2147483647,h=S,S=S-v|0,E=54),(E|0)==54)if(u=0,l=j(67,o|0)|0,s=u,u=0,s&1){E=29;break}else g=o;m[l+S>>0]=k,o=l+(S+1)|0,n=h-v|0,s=l+(S-n)|0,Ne(s|0,a|0,n|0)|0,e[y>>2]=s,e[w>>2]=o,e[I>>2]=l+g,c&&(V(c),o=e[w>>2]|0)}else m[l>>0]=k,o=(e[w>>2]|0)+1|0,e[w>>2]=o;if(l=e[I>>2]|0,o>>>0>=l>>>0){if(a=e[y>>2]|0,c=a,h=o-c+1|0,(h|0)<0){if(u=0,I0(178,y|0),s=u,u=0,s&1){E=29;break}c=e[y>>2]|0,l=e[I>>2]|0,a=c}if(g=a,o=l-g|0,o>>>0<1073741823?(o=o<<1,o=o>>>0>>0?h:o,l=e[w>>2]|0,S=l-g|0,o?E=65:(o=0,h=0)):(S=e[w>>2]|0,o=2147483647,l=S,S=S-g|0,E=65),(E|0)==65&&(u=0,h=j(67,o|0)|0,s=u,u=0,s&1)){E=29;break}m[h+S>>0]=0,n=l-g|0,s=h+(S-n)|0,Ne(s|0,a|0,n|0)|0,e[y>>2]=s,e[w>>2]=h+(S+1),e[I>>2]=h+o,c&&V(c)}else m[o>>0]=0,e[w>>2]=(e[w>>2]|0)+1;if(u=0,S=j(67,20)|0,I=u,u=0,I&1)E=29;else{e[S>>2]=36800,m[S+4>>0]=-38,c=S+8|0,e[c>>2]=0,h=S+12|0,e[h>>2]=0,l=S+16|0,e[l>>2]=0,o=e[w>>2]|0,I=e[y>>2]|0,a=o-I|0;do if((o|0)!=(I|0)){if((a|0)<0&&(u=0,I0(178,c|0),I=u,u=0,I&1)||(E=72),(E|0)==72&&(u=0,f=j(67,a|0)|0,I=u,u=0,!(I&1))){if(e[h>>2]=f,e[c>>2]=f,e[l>>2]=f+a,o=e[y>>2]|0,l=e[w>>2]|0,(o|0)==(l|0))break;do m[f>>0]=m[o>>0]|0,f=(e[h>>2]|0)+1|0,e[h>>2]=f,o=o+1|0;while((o|0)!=(l|0));o=e[y>>2]|0;break}f=L()|0,o=e[c>>2]|0,o&&((e[h>>2]|0)!=(o|0)&&(e[h>>2]=o),V(o)),V(S);break e}while(0);return o?((e[w>>2]|0)!=(o|0)&&(e[w>>2]=o),V(o),C=_,S|0):(C=_,S|0)}}while(0);return(E|0)==29&&(f=L()|0),o=e[y>>2]|0,o||U(f|0),(e[w>>2]|0)!=(o|0)&&(e[w>>2]=o),V(o),U(f|0),0}function gv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;if(g=(t&65535)>>>8&255,v=r+4|0,n=e[v>>2]|0,k=r+8|0,s=e[k>>2]|0,n>>>0>=s>>>0?(o=e[r>>2]|0,f=o,l=n-f+1|0,(l|0)<0&&(_1(r),f=e[r>>2]|0,s=e[k>>2]|0,o=f),S=o,n=s-S|0,n>>>0<1073741823?(n=n<<1,n=n>>>0>>0?l:n,l=e[v>>2]|0,s=l-S|0,n?D=8:(h=0,c=0,a=s,n=l)):(s=e[v>>2]|0,n=2147483647,l=s,s=s-S|0,D=8),(D|0)==8&&(h=n,c=C0(n)|0,a=s,n=l),m[c+a>>0]=g,s=c+(a+1)|0,S=n-S|0,g=c+(a-S)|0,Ne(g|0,o|0,S|0)|0,e[r>>2]=g,e[v>>2]=s,e[k>>2]=c+h,f&&(V(f),s=e[v>>2]|0)):(m[n>>0]=g,s=(e[v>>2]|0)+1|0,e[v>>2]=s),S=t&255,n=e[k>>2]|0,s>>>0>>0){m[s>>0]=S,e[v>>2]=(e[v>>2]|0)+1;return}o=e[r>>2]|0,f=o,s=s-f+1|0,(s|0)<0&&(_1(r),f=e[r>>2]|0,n=e[k>>2]|0,o=f),h=o,n=n-h|0,n>>>0<1073741823?(n=n<<1,n=n>>>0>>0?s:n,l=e[v>>2]|0,s=l-h|0,n?D=18:(c=0,a=0,n=l)):(s=e[v>>2]|0,n=2147483647,l=s,s=s-h|0,D=18),(D|0)==18&&(c=n,a=C0(n)|0,n=l),m[a+s>>0]=S,t=n-h|0,D=a+(s-t)|0,Ne(D|0,o|0,t|0)|0,e[r>>2]=D,e[v>>2]=a+(s+1),e[k>>2]=a+c,f&&V(f)}function vv(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(o=e[r>>2]|0,D=e[t>>2]|0,k=D,c=o,g=n,h=s-g|0,(h|0)<=0)return I=D,I|0;if(v=r+8|0,t=e[v>>2]|0,I=r+4|0,S=e[I>>2]|0,f=S,(h|0)<=(t-f|0)){if(a=f-k|0,(h|0)>(a|0)){if(l=n+a|0,(l|0)==(s|0))t=S;else{f=l,t=S;do m[t>>0]=m[f>>0]|0,t=(e[I>>2]|0)+1|0,e[I>>2]=t,f=f+1|0;while((f|0)!=(s|0))}if((a|0)>0)a=t;else return I=D,I|0}else a=S,l=s;if(o=a-(o+(h-c+k))|0,t=D+o|0,t>>>0>>0){f=a;do m[f>>0]=m[t>>0]|0,t=t+1|0,f=(e[I>>2]|0)+1|0,e[I>>2]=f;while((t|0)!=(S|0))}return dr(a+(0-o)|0,D|0,o|0)|0,dr(D|0,n|0,l-g|0)|0,I=D,I|0}if(f=f-c+h|0,(f|0)<0&&(_1(r),t=e[v>>2]|0,o=e[r>>2]|0),l=o,t=t-l|0,t>>>0<1073741823?(t=t<<1,t=t>>>0>>0?f:t,f=k-l|0,t?a=15:(l=0,h=0)):(t=2147483647,f=k-l|0,a=15),(a|0)==15&&(l=t,h=C0(t)|0),c=h+f|0,t=c,a=h+l|0,(n|0)!=(s|0)){o=n,l=c;do m[l>>0]=m[o>>0]|0,l=t+1|0,t=l,o=o+1|0;while((o|0)!=(s|0));o=e[r>>2]|0}return n=k-o|0,s=h+(f-n)|0,Ne(s|0,o|0,n|0)|0,k=(e[I>>2]|0)-k|0,n=t,Ne(n|0,D|0,k|0)|0,t=e[r>>2]|0,e[r>>2]=s,e[I>>2]=n+k,e[v>>2]=a,t?(V(t),I=c,I|0):(I=c,I|0)}function Tv(r){r=r|0;var t=0;e[r>>2]=36800,t=e[r+8>>2]|0,t&&(r=r+12|0,(e[r>>2]|0)!=(t|0)&&(e[r>>2]=t),V(t))}function kv(r){r=r|0;var t=0,n=0;if(e[r>>2]=36800,t=e[r+8>>2]|0,!t){V(r);return}n=r+12|0,(e[n>>2]|0)!=(t|0)&&(e[n>>2]=t),V(t),V(r)}function wv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0;if(w1(t,-1),w1(t,m[r+4>>0]|0),o=r+12|0,s=r+8|0,r=(e[o>>2]|0)-(e[s>>2]|0)+2|0,w1(t,(r&65535)>>>8&255),w1(t,r&255),r=e[s>>2]|0,(e[o>>2]|0)!=(r|0)){n=0;do w1(t,m[r+n>>0]|0),n=n+1|0,r=e[s>>2]|0;while(n>>>0<((e[o>>2]|0)-r|0)>>>0)}}function w1(r,t){r=r|0,t=t|0;var n=0,s=0,o=0;if(o=e[r+4>>2]|0,o)if(n=o+24|0,s=e[n>>2]|0,(s|0)==(e[o+28>>2]|0)){M2[e[(e[o>>2]|0)+52>>2]&63](o,t&255)|0;return}else{e[n>>2]=s+1,m[s>>0]=t;return}if(n=r+16|0,s=e[n>>2]|0,s>>>0<(e[r+12>>2]|0)>>>0){e[n>>2]=s+1,m[(e[r+8>>2]|0)+s>>0]=t;return}n=H0(16)|0,u=0,s=de(1)|0,t=u,u=0,t&1&&(t=L()|0,z0(n|0),U(t|0)),u=0,c0(7,n|0,4,s|0),t=u,u=0,t&1?(t=L()|0,z0(n|0),U(t|0)):me(n|0,824,96)}function r2(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,o=(t|0)<4095?(t+128|0)/256|0:16,f=(n*3|0)+2+o|0,s=n+1|0,f=(f|0)<(s|0)|(f|0)>(t|0)?s:f,e[r+4>>2]=f,s=(o<<2|3)+(n*5|0)|0,s=(s|0)>(t|0)|(s|0)<(f|0)?f:s,e[r+8>>2]=s,n=(n*7|0)+4+(o*17|0)|0,e[r+12>>2]=(n|0)>(t|0)|(n|0)<(s|0)?s:n,e[r>>2]=t,e[r+16>>2]=64}function dv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;h=C,C=C+128|0,a=h+100|0,s=h+16|0,n=h+112|0,c=h+4|0,S=h,o=s,f=r+20|0,l=o+84|0;do e[o>>2]=e[f>>2],o=o+4|0,f=f+4|0;while((o|0)<(l|0));e[s+16>>2]=e[r+4>>2],f=j4(n,s,r+56|0)|0,n=e[(e[f>>2]|0)+16>>2]|0,r=r+8|0,u=0,e[a>>2]=e[r>>2],e[a+4>>2]=e[r+4>>2],e[a+8>>2]=e[r+8>>2],n=p0(n|0,f|0,a|0)|0,r=u,u=0;do if(r&1)n=L()|0;else{if(o=t+4|0,e[c>>2]=e[o>>2],e[c+4>>2]=e[o+4>>2],e[c+8>>2]=e[o+8>>2],o=t+16|0,r=e[o>>2]|0,a=c+8|0,e[a>>2]=(e[a>>2]|0)-r,a=c+4|0,e[a>>2]=(e[a>>2]|0)+r,a=e[(e[f>>2]|0)+12>>2]|0,e[S>>2]=n,u=0,n=qe(a|0,f|0,S|0,c|0,(m[t>>0]|0?(e[t+8>>2]|0)+r|0:0)|0)|0,c=u,u=0,c&1){if(n=L()|0,s=e[S>>2]|0,e[S>>2]=0,!s)break;K0[e[(e[s>>2]|0)+4>>2]&255](s);break}if(s=e[S>>2]|0,e[S>>2]=0,s&&K0[e[(e[s>>2]|0)+4>>2]&255](s),e[t+4>>2]|0||(e[o>>2]=(e[o>>2]|0)+n),!f){C=h;return}K0[e[(e[f>>2]|0)+4>>2]&255](f),C=h;return}while(0);f||U(n|0),K0[e[(e[f>>2]|0)+4>>2]&255](f),U(n|0)}function Cv(r,t){r=r|0,t=t|0,e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2],m[r+12>>0]=0,t=r+16|0,r=t+100|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(r|0))}function yv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0;_=C,C=C+32|0,E=_+4|0,v=_+16|0,y=_,Sf(r),k=r+16|0,o=e[r+24>>2]|0;e:do if((o+-2|0)>>>0<=14)if(D=r+40|0,n=e[D>>2]|0,n>>>0>2)n=5;else{switch(I=r+32|0,f=e[I>>2]|0,f|0){case 0:{n=1;break e}case 4:{if((n|0)==2){n=2;break e}break}case 3:break;default:if(n){n=2;break e}}if(g=r+100|0,n=r+108|0,s=e[n>>2]|0,(s|0)<1?(s=e[k>>2]|0,e[n>>2]=s,n=e[r+20>>2]|0,e[r+112>>2]=n):n=e[r+112>>2]|0,c=wi(n|0,((n|0)<0)<<31>>31|0,s|0,((s|0)<0)<<31>>31|0)|0,a=(o+7|0)/8|0,a=wi(c|0,o0|0,a|0,((a|0)<0)<<31>>31|0)|0,c=t+4|0,n=e[c>>2]|0,l=t+8|0,n|0&&(h=e[l>>2]|0,S=wi(f|0,((f|0)<0)<<31>>31|0,a|0,o0|0)|0,o=o0,0<(o|0)|(o|0)==0&h>>>0>>0)&&(n=H0(16)|0,u=0,s=de(1)|0,y=u,u=0,!(y&1)&&(u=0,c0(7,n|0,3,s|0),y=u,u=0,!(y&1))&&me(n|0,824,96),y=L()|0,z0(n|0),U(y|0)),h=r+52|0,S=r+12|0,(f|0)>0)f=0;else{C=_;return}for(;;){if(hf(r,(f|0)==0),s=Y4(v,k,h)|0,o=e[(e[s>>2]|0)+8>>2]|0,u=0,e[E>>2]=e[t>>2],e[E+4>>2]=e[t+4>>2],e[E+8>>2]=e[t+8>>2],o=p0(o|0,s|0,E|0)|0,w=u,u=0,w&1){o=32;break}if(w=e[(e[s>>2]|0)+16>>2]|0,e[y>>2]=o,u=0,Hi(w|0,s|0,y|0,g|0,r|0,(m[S>>0]|0)!=0|0),w=u,u=0,w&1){o=30;break}if(o=e[y>>2]|0,e[y>>2]=0,o&&K0[e[(e[o>>2]|0)+4>>2]&255](o),n?(n=n+a|0,e[c>>2]=n,e[l>>2]=(e[l>>2]|0)-a):n=0,o=(e[D>>2]|0)==0,f=(o&1)+f|0,s&&K0[e[(e[s>>2]|0)+4>>2]&255](s),!o){o=34;break}if((f|0)>=(e[I>>2]|0)){o=34;break}}if((o|0)==30)n=L()|0,o=e[y>>2]|0,e[y>>2]=0,o&&K0[e[(e[o>>2]|0)+4>>2]&255](o);else if((o|0)==32)n=L()|0,s||(w=n,U(w|0));else if((o|0)==34){C=_;return}K0[e[(e[s>>2]|0)+4>>2]&255](s),w=n,U(w|0)}else n=2;while(0);s=H0(16)|0,u=0,o=de(1)|0,w=u,u=0,!(w&1)&&(u=0,c0(7,s|0,n|0,o|0),w=u,u=0,!(w&1))&&me(s|0,824,96),w=L()|0,z0(s|0),U(w|0)}function Sf(r){r=r|0;var t=0,n=0,s=0,o=0;if((In(r)|0)<<24>>24!=-40&&(t=H0(16)|0,u=0,n=de(1)|0,o=u,u=0,!(o&1)&&(u=0,c0(7,t|0,5,n|0),o=u,u=0,!(o&1))&&me(t|0,824,96),o=L()|0,z0(t|0),U(o|0)),t=In(r)|0,t<<24>>24!=-38){for(;s=((e2(r)|0)&255)<<8,s=s|(e2(r)|0)&255,t=Dv(r,t)|0,n=-2-t+s|0,!((n|0)<0);){if((n|0)>0){t=s+-2-t|0,n=0;do e2(r)|0,n=n+1|0;while((n|0)!=(t|0))}if(t=In(r)|0,t<<24>>24==-38){o=8;break}}(o|0)!=8&&(t=H0(16)|0,u=0,n=de(1)|0,o=u,u=0,!(o&1)&&(u=0,c0(7,t|0,5,n|0),o=u,u=0,!(o&1))&&me(t|0,824,96),o=L()|0,z0(t|0),U(o|0))}}function hf(r,t){r=r|0,t=t|0;var n=0,s=0,o=0;t||((e2(r)|0)<<24>>24!=-1&&(t=H0(16)|0,u=0,n=de(1)|0,r=u,u=0,!(r&1)&&(u=0,c0(7,t|0,12,n|0),r=u,u=0,!(r&1))&&me(t|0,824,96),r=L()|0,z0(t|0),U(r|0)),(e2(r)|0)<<24>>24!=-38&&(t=H0(16)|0,u=0,n=de(1)|0,r=u,u=0,!(r&1)&&(u=0,c0(7,t|0,5,n|0),r=u,u=0,!(r&1))&&me(t|0,824,96),r=L()|0,z0(t|0),U(r|0))),e2(r)|0,e2(r)|0,n=e2(r)|0,s=n&255;do if(n<<24>>24==1)e2(r)|0,n=0,o=20;else{if((s|0)==(e[r+32>>2]|0))if(t=e2(r)|0,n<<24>>24){n=0,o=20;break}else break;t=H0(16)|0,u=0,n=de(1)|0,r=u,u=0,!(r&1)&&(u=0,c0(7,t|0,2,n|0),r=u,u=0,!(r&1))&&me(t|0,824,96),r=L()|0,z0(t|0),U(r|0)}while(0);if((o|0)==20)for(;e2(r)|0,n=n+1|0,t=e2(r)|0,(n|0)!=(s|0);)o=20;e[r+36>>2]=t&255,o=e2(r)|0,n=r+40|0,e[n>>2]=o&255,(o&255)>=3&&(t=H0(16)|0,u=0,n=de(1)|0,r=u,u=0,!(r&1)&&(u=0,c0(7,t|0,5,n|0),r=u,u=0,!(r&1))&&me(t|0,824,96),r=L()|0,z0(t|0),U(r|0)),(e2(r)|0)<<24>>24&&(t=H0(16)|0,u=0,n=de(1)|0,r=u,u=0,!(r&1)&&(u=0,c0(7,t|0,5,n|0),r=u,u=0,!(r&1))&&me(t|0,824,96),r=L()|0,z0(t|0),U(r|0)),s=r+28|0,!(e[s>>2]|0)&&(t=e[r+108>>2]|0,t||(t=e[r+16>>2]|0),e[n>>2]|0?n=e[r+32>>2]|0:n=1,o=Z(n,t)|0,r=Z(o,((e[r+24>>2]|0)+7|0)/8|0)|0,e[s>>2]=r)}function Av(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;if(!((n|0)<=0)){g=t+4|0,v=t+8|0,D=0;do k=e2(r)|0,s=e[g>>2]|0,o=e[v>>2]|0,s>>>0>=o>>>0?(f=e[t>>2]|0,l=f,a=s-l+1|0,(a|0)<0&&(_1(t),l=e[t>>2]|0,o=e[v>>2]|0,f=l),S=f,s=o-S|0,s>>>0<1073741823?(s=s<<1,s=s>>>0>>0?a:s,a=e[g>>2]|0,o=a-S|0,s?I=10:(h=0,c=0,s=a)):(o=e[g>>2]|0,s=2147483647,a=o,o=o-S|0,I=10),(I|0)==10&&(I=0,h=s,c=C0(s)|0,s=a),m[c+o>>0]=k,S=s-S|0,k=c+(o-S)|0,Ne(k|0,f|0,S|0)|0,e[t>>2]=k,e[g>>2]=c+(o+1),e[v>>2]=c+h,l&&V(l)):(m[s>>0]=k,e[g>>2]=(e[g>>2]|0)+1),D=D+1|0;while((D|0)!=(n|0))}}function e2(r){r=r|0;var t=0,n=0,s=0,o=0;return n=e[r>>2]|0,n?(r=n+12|0,t=e[r>>2]|0,(t|0)==(e[n+16>>2]|0)?r=X0[e[(e[n>>2]|0)+40>>2]&127](n)|0:(e[r>>2]=t+1,r=z[t>>0]|0),o=r&255,o|0):(s=r+8|0,o=e[s>>2]|0,o?(r=r+4|0,t=e[r>>2]|0,n=m[t>>0]|0,t?(e[r>>2]=t+1,e[s>>2]=o+-1,o=n,o|0):(o=n,o|0)):(r=H0(16)|0,u=0,t=de(1)|0,o=u,u=0,o&1&&(o=L()|0,z0(r|0),U(o|0)),u=0,c0(7,r|0,4,t|0),o=u,u=0,o&1?(o=L()|0,z0(r|0),U(o|0)):me(r|0,824,96),0))}function In(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0,a=0,c=0;if(n=C,C=C+176|0,t=n+152|0,c=n+16|0,l=n,a=e2(r)|0,s=a&255,a<<24>>24==-1){do t=e2(r)|0;while(t<<24>>24==-1);return C=n,t|0}a=c+56|0,f=c+4|0,e[c>>2]=36160,e[a>>2]=36180,u=0,e0(62,c+56|0,f|0),o=u,u=0,o&1&&(c=L()|0,y0(a),U(c|0)),e[c+128>>2]=0,e[c+132>>2]=-1,e[c>>2]=36200,e[c+56>>2]=36220,u=0,I0(180,f|0),o=u,u=0;do if(o&1)t=L()|0;else{if(e[f>>2]=36236,o=c+36|0,e[o>>2]=0,e[o+4>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[c+52>>2]=16,e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,u=0,e0(63,f|0,t|0),n=u,u=0,n&1){c=L()|0,H(t),H(o),Q0(f),t=c;break}H(t),e[c+((e[(e[c>>2]|0)+-12>>2]|0)+76)>>2]=48,u=0,t=ie(28,c|0,50907,62)|0,n=u,u=0,!(n&1)&&(n=t+((e[(e[t>>2]|0)+-12>>2]|0)+4)|0,e[n>>2]=e[n>>2]&-75|8,n=t+((e[(e[t>>2]|0)+-12>>2]|0)+4)|0,e[n>>2]=e[n>>2]|16384,e[t+((e[(e[t>>2]|0)+-12>>2]|0)+12)>>2]=2,u=0,p0(38,t|0,s|0)|0,s=u,u=0,!(s&1))&&(n=H0(16)|0,u=0,e0(64,l|0,f|0),s=u,u=0,s&1?t=L()|0:(u=0,t=de(1)|0,s=u,u=0,!(s&1)&&(u=0,w0(36,n|0,12,t|0,l|0),s=u,u=0,!(s&1))?(u=0,c0(6,n|0,824,96),u=0,r=0):r=1,t=L()|0,H(l),r||(l=t,e[c>>2]=36200,e[a>>2]=36220,e[f>>2]=36236,H(o),Q0(f),y0(a),U(l|0))),z0(n|0),l=t,e[c>>2]=36200,e[a>>2]=36220,e[f>>2]=36236,H(o),Q0(f),y0(a),U(l|0)),l=L()|0,e[c>>2]=36200,e[a>>2]=36220,e[f>>2]=36236,H(o),Q0(f),y0(a),U(l|0)}while(0);return c=t,y0(a),U(c|0),0}function Dv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;switch(n=C,C=C+320|0,a=n+300|0,S=n+152|0,c=n+288|0,g=n+16|0,h=n,t<<24>>24){case-9:return v=(e2(r)|0)&255,e[r+24>>2]=v,v=((e2(r)|0)&255)<<8|(e2(r)|0)&255,g=((e2(r)|0)&255)<<8|(e2(r)|0)&255,e[r+16>>2]=g,e[r+20>>2]=v,v=(e2(r)|0)&255,e[r+32>>2]=v,v=6,C=n,v|0;case-8:return v=_v(r)|0,C=n,v|0;case-24:return v=Iv(r)|0,C=n,v|0;case-53:case-54:case-55:case-57:case-58:case-59:case-61:case-62:case-63:case-64:{l=S+56|0,o=S+4|0,e[S>>2]=36160,e[l>>2]=36180,u=0,e0(62,S+56|0,o|0),g=u,u=0,g&1&&(v=L()|0,y0(l),U(v|0)),e[S+128>>2]=0,e[S+132>>2]=-1,e[S>>2]=36200,e[S+56>>2]=36220,u=0,I0(180,o|0),g=u,u=0;do if(g&1)r=L()|0;else{if(e[o>>2]=36236,f=S+36|0,e[f>>2]=0,e[f+4>>2]=0,e[f+8>>2]=0,e[f+12>>2]=0,e[S+52>>2]=16,e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,u=0,e0(63,o|0,a|0),g=u,u=0,g&1){r=L()|0,H(a),H(f),Q0(o);break}H(a),u=0,r=ie(28,S|0,50970,26)|0,g=u,u=0;do if(!(g&1)&&(u=0,s=p0(38,r|0,t&255|0)|0,g=u,u=0,!(g&1))&&(u=0,ie(28,s|0,50997,18)|0,g=u,u=0,!(g&1))){if(s=H0(16)|0,u=0,e0(64,c|0,o|0),g=u,u=0,g&1)r=L()|0;else if(u=0,r=de(1)|0,g=u,u=0,!(g&1)&&(u=0,w0(36,s|0,10,r|0,c|0),g=u,u=0,!(g&1))?(u=0,c0(6,s|0,824,96),u=0,n=0):n=1,r=L()|0,H(c),!n)break;z0(s|0)}else v=20;while(0);(v|0)==20&&(r=L()|0),e[S>>2]=36200,e[l>>2]=36220,e[o>>2]=36236,H(f),Q0(o),y0(l),v=r,U(v|0)}while(0);v=r,y0(l),U(v|0)}case-25:case-32:case-2:return v=0,C=n,v|0;default:{c=g+56|0,f=g+4|0,e[g>>2]=36160,e[c>>2]=36180,u=0,e0(62,g+56|0,f|0),S=u,u=0,S&1&&(v=L()|0,y0(c),U(v|0)),e[g+128>>2]=0,e[g+132>>2]=-1,e[g>>2]=36200,e[g+56>>2]=36220,u=0,I0(180,f|0),S=u,u=0;do if(S&1)r=L()|0;else{if(e[f>>2]=36236,l=g+36|0,e[l>>2]=0,e[l+4>>2]=0,e[l+8>>2]=0,e[l+12>>2]=0,e[g+52>>2]=16,e[a>>2]=0,e[a+4>>2]=0,e[a+8>>2]=0,u=0,e0(63,f|0,a|0),S=u,u=0,S&1){r=L()|0,H(a),H(l),Q0(f);break}H(a),u=0,r=ie(28,g|0,51016,20)|0,S=u,u=0;do if(!(S&1)&&(u=0,o=p0(38,r|0,t&255|0)|0,S=u,u=0,!(S&1))&&(u=0,ie(28,o|0,51037,13)|0,S=u,u=0,!(S&1))){if(s=H0(16)|0,u=0,e0(64,h|0,f|0),S=u,u=0,S&1)r=L()|0;else if(u=0,r=de(1)|0,S=u,u=0,!(S&1)&&(u=0,w0(36,s|0,11,r|0,h|0),S=u,u=0,!(S&1))?(u=0,c0(6,s|0,824,96),u=0,n=0):n=1,r=L()|0,H(h),!n)break;z0(s|0)}else v=40;while(0);(v|0)==40&&(r=L()|0),e[g>>2]=36200,e[c>>2]=36220,e[f>>2]=36236,H(l),Q0(f),y0(c),v=r,U(v|0)}while(0);v=r,y0(c),U(v|0)}}return 0}function _v(r){r=r|0;var t=0;return(e2(r)|0)<<24>>24!=1?(r=1,r|0):(t=((e2(r)|0)&255)<<8,t=t|(e2(r)|0)&255,e[r+52>>2]=t,t=((e2(r)|0)&255)<<8,t=t|(e2(r)|0)&255,e[r+56>>2]=t,t=((e2(r)|0)&255)<<8,t=t|(e2(r)|0)&255,e[r+60>>2]=t,t=((e2(r)|0)&255)<<8,t=t|(e2(r)|0)&255,e[r+64>>2]=t,t=((e2(r)|0)&255)<<8,t=t|(e2(r)|0)&255,e[r+68>>2]=t,r=11,r|0)}function Iv(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;n=C,C=C+16|0,o=n,e[o>>2]=0,f=o+4|0,e[f>>2]=0,e[o+8>>2]=0,u=0,c0(9,r|0,o|0,4),t=u,u=0;e:do if(t&1)s=3;else{t=e[o>>2]|0;i:do if(jT(t,51051,4)|0)r=4;else{if(u=0,t=j(69,r|0)|0,l=u,u=0,l&1){s=3;break e}switch(t=t&255,t|0){case 3:case 2:case 1:case 0:{e[r+44>>2]=t,r=5,t=e[o>>2]|0;break i}case 5:case 4:{if(t=H0(16)|0,u=0,r=de(1)|0,l=u,u=0,!(l&1)&&(u=0,c0(7,t|0,7,r|0),l=u,u=0,!(l&1))){u=0,c0(6,t|0,824,96),u=0,s=3;break e}r=L()|0,z0(t|0);break e}default:{if(t=H0(16)|0,u=0,r=de(1)|0,l=u,u=0,!(l&1)&&(u=0,c0(7,t|0,5,r|0),l=u,u=0,!(l&1))){u=0,c0(6,t|0,824,96),u=0,s=3;break e}r=L()|0,z0(t|0);break e}}}while(0);return t?((e[f>>2]|0)!=(t|0)&&(e[f>>2]=t),V(t),C=n,r|0):(C=n,r|0)}while(0);return(s|0)==3&&(r=L()|0),t=e[o>>2]|0,t||U(r|0),(e[f>>2]|0)!=(t|0)&&(e[f>>2]=t),V(t),U(r|0),0}function Pv(r){r=r|0;var t=0,n=0,s=0;s=e[(e[r>>2]|0)+-12>>2]|0,e[r+s>>2]=36200,t=r+(s+56)|0,e[t>>2]=36220,n=r+(s+4)|0,e[n>>2]=36236,H(r+(s+36)|0),Q0(n),y0(t)}function Ev(r){r=r|0}function Lv(r){r=r|0,V(r)}function Fv(r){r=r|0,m[r>>0]=0,r=r+4|0,e[r>>2]=0,e[r+4>>2]=0,e[r+8>>2]=0,e[r+12>>2]=0,e[r+16>>2]=0,e[r+20>>2]=0,e[r+24>>2]=0,e[r+28>>2]=0}function Rv(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;if(o=C,C=C+16|0,f=o,t=mv(t)|0,e[f>>2]=t,n=r+28|0,s=e[n>>2]|0,s>>>0<(e[r+32>>2]|0)>>>0){e[s>>2]=t,e[n>>2]=s+4,e[f>>2]=0,C=o;return}if(u=0,e0(57,r+24|0,f|0),r=u,u=0,r&1)t=L()|0,n=e[f>>2]|0,e[f>>2]=0,n||U(t|0),K0[e[(e[n>>2]|0)+4>>2]&255](n),U(t|0);else{if(t=e[f>>2]|0,e[f>>2]=0,!t){C=o;return}K0[e[(e[t>>2]|0)+4>>2]&255](t),C=o;return}}function Ov(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;if(s=r+4|0,e[s>>2]=e[t>>2],e[s+4>>2]=e[t+4>>2],e[s+8>>2]=e[t+8>>2],w1(r,-1),w1(r,-40),s=r+28|0,o=r+24|0,t=e[o>>2]|0,(e[s>>2]|0)==(t|0))return w1(r,-1),w1(r,-39),r=r+16|0,r=e[r>>2]|0,r|0;n=0;do f=e[t+(n<<2)>>2]|0,_e[e[(e[f>>2]|0)+8>>2]&127](f,r),n=n+1|0,t=e[o>>2]|0;while(n>>>0<(e[s>>2]|0)-t>>2>>>0);return w1(r,-1),w1(r,-39),f=r+16|0,f=e[f>>2]|0,f|0}function Mv(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;g=C,C=C+48|0,a=g+32|0,o=g+12|0,c=g+8|0,S=g+4|0,v=g,s=n+36|0;do if(!(e[s>>2]|0)&&!(e[n+40>>2]|0)&&!(e[n+44>>2]|0)&&!(e[n+48>>2]|0)&&!(e[n+52>>2]|0)){if(s=e[n+8>>2]|0,(s|0)<=12){f=r+28|0,l=r+32|0;break}if(r2(o,(1<>2]|0),s=cf(o)|0,e[c>>2]=s,f=r+28|0,o=e[f>>2]|0,l=r+32|0,o>>>0<(e[l>>2]|0)>>>0){e[o>>2]=s,e[f>>2]=o+4,e[c>>2]=0;break}if(u=0,e0(57,r+24|0,c|0),a=u,u=0,!(a&1)){if(s=e[c>>2]|0,e[c>>2]=0,!s)break;K0[e[(e[s>>2]|0)+4>>2]&255](s);break}n=L()|0,s=e[c>>2]|0,e[c>>2]=0,s||(v=n,U(v|0)),K0[e[(e[s>>2]|0)+4>>2]&255](s),v=n,U(v|0)}else h=6;while(0);do if((h|0)==6){if(s=cf(s)|0,e[a>>2]=s,f=r+28|0,o=e[f>>2]|0,l=r+32|0,o>>>0<(e[l>>2]|0)>>>0){e[o>>2]=s,e[f>>2]=o+4,e[a>>2]=0;break}if(u=0,e0(57,r+24|0,a|0),h=u,u=0,!(h&1)){if(s=e[a>>2]|0,e[a>>2]=0,!s)break;K0[e[(e[s>>2]|0)+4>>2]&255](s);break}n=L()|0,s=e[a>>2]|0,e[a>>2]=0,s||(v=n,U(v|0)),K0[e[(e[s>>2]|0)+4>>2]&255](s),v=n,U(v|0)}while(0);s=r+20|0,o=(e[s>>2]|0)+1|0,e[s>>2]=o,s=e[n+24>>2]|0,a=s|0?e[n+16>>2]|0:1,s=pv(o,a,e[n+20>>2]|0,s)|0,e[S>>2]=s,o=e[f>>2]|0;do if(o>>>0<(e[l>>2]|0)>>>0)e[o>>2]=s,e[f>>2]=o+4,e[S>>2]=0;else{if(u=0,e0(57,r+24|0,S|0),h=u,u=0,!(h&1)){if(s=e[S>>2]|0,e[S>>2]=0,!s)break;K0[e[(e[s>>2]|0)+4>>2]&255](s);break}n=L()|0,s=e[S>>2]|0,e[S>>2]=0,s||(v=n,U(v|0)),K0[e[(e[s>>2]|0)+4>>2]&255](s),v=n,U(v|0)}while(0);c=C0(104)|0,e[c>>2]=36820,e[c+4>>2]=a,o=c+8|0,e[o>>2]=e[t>>2],e[o+4>>2]=e[t+4>>2],e[o+8>>2]=e[t+8>>2],o=c+20|0,s=o+84|0;do e[o>>2]=e[n>>2],o=o+4|0,n=n+4|0;while((o|0)<(s|0));if(e[v>>2]=c,n=e[f>>2]|0,n>>>0<(e[l>>2]|0)>>>0){e[n>>2]=c,e[f>>2]=n+4,e[v>>2]=0,C=g;return}if(u=0,e0(57,r+24|0,v|0),r=u,u=0,r&1)n=L()|0,s=e[v>>2]|0,e[v>>2]=0,s||(v=n,U(v|0)),K0[e[(e[s>>2]|0)+4>>2]&255](s),v=n,U(v|0);else{if(n=e[v>>2]|0,e[v>>2]=0,!n){C=g;return}K0[e[(e[n>>2]|0)+4>>2]&255](n),C=g;return}}function xv(r,t,n,s,o,f,l,a,c,h,S){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0,h=h|0,S=S|0;var g=0,v=0,k=0,D=0,I=0,E=0,_=0;return k=C,C=C+96|0,v=k,g=G4(r,t,v,0)|0,g?(o=g,C=k,o|0):(m[v+32>>0]=0,I=e[v+8>>2]|0,_=e[v>>2]|0,E=e[v+4>>2]|0,g=Z(E,_)|0,D=e[v+16>>2]|0,g=Z(Z(g,(I|0)<9?1:2)|0,D)|0,e[s>>2]=g,g=g2(g)|0,e[n>>2]=g,e[o>>2]=_,e[f>>2]=E,e[l>>2]=I,e[a>>2]=e[v+12>>2],e[c>>2]=D,e[h>>2]=e[v+20>>2],e[S>>2]=e[v+24>>2],o=V4(g,e[s>>2]|0,r,t,0,0)|0,C=k,o|0)}function qv(r,t,n,s,o,f,l,a,c){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,l=l|0,a=a|0,c=c|0;var h=0,S=0,g=0,v=0;g=C,C=C+96|0,h=g+4|0,l=g,S=h,v=S+84|0;do e[S>>2]=0,S=S+4|0;while((S|0)<(v|0));return e[h+16>>2]=f,e[h+8>>2]=o,e[h>>2]=n,e[h+4>>2]=s,n=g2(t)|0,e[a>>2]=n,e[l>>2]=0,n=Q4(a,t,l,r,t,h,0)|0,e[c>>2]=e[l>>2],C=g,n|0}function j1(r,t){r=r|0,t=t|0;var n=0;n=C,C=C+16|0,e[n>>2]=t,t=e[9320]|0,xf(t,r,n)|0,GT(10,t)|0,Y0()}function t1(r){r=r|0,qs(51337,51366,1164,51442)}function _1(r){r=r|0,qs(51463,51486,303,51442)}function mf(){var r=0,t=0;if(r=C,C=C+16|0,k4(37024,4)|0)j1(51562,r);else return t=T4(e[9255]|0)|0,C=r,t|0;return 0}function C0(r){r=r|0;var t=0;t=r|0?r:1,r=g2(t)|0;e:do if(!r){for(;r=Hv()|0,!!r;)if(Qf[r&7](),r=g2(t)|0,r)break e;t=H0(4)|0,e[t>>2]=36844,me(t|0,592,78)}while(0);return r|0}function V(r){r=r|0,Pe(r)}function Nv(r){r=r|0,V(r)}function Uv(r){r=r|0,e[r>>2]=36844}function Bv(r){r=r|0}function Qv(r){r=r|0,V(r)}function Gv(r){return r=r|0,51611}function pf(r){r=r|0;var t=0;t=C,C=C+16|0,u=0,i2(r|0),r=u,u=0,r&1||(u=0,e0(85,51626,t|0),u=0),r=L(0)|0,H2(r|0)|0,u=0,e0(85,51666,t+8|0),u=0,r=L(0)|0,u=0,i2(3),t=u,u=0,t&1?(t=L(0)|0,ne(t)):ne(r)}function Vv(){var r=0,t=0,n=0;u=0,r=de(2)|0,n=u,u=0,n&1&&(n=L(0)|0,ne(n)),r|0&&(t=e[r>>2]|0,(t|0)!=0)&&(n=t+48|0,(e[n>>2]&-256|0)==1126902528?(e[n+4>>2]|0)==1129074247:0)&&pf(e[t+12>>2]|0),n=e[9208]|0,e[9208]=n+0,pf(n)}function Hv(){var r=0;return r=e[9214]|0,e[9214]=r+0,r|0}function Fd(r){r=r|0}function Ir(r){r=r|0,e[r>>2]=36868,gT(r+4|0)}function zv(r){r=r|0,Ir(r),V(r)}function Yv(r){return r=r|0,e[r+4>>2]|0}function Rd(r){r=r|0}function Xv(r){r=r|0,e[r>>2]=36888}function jv(r){r=r|0}function Wv(r){r=r|0,V(r)}function Jv(r){return r=r|0,51716}function Kv(r){r=r|0}function Zv(r){r=r|0}function $v(r){r=r|0}function bv(r){r=r|0,V(r)}function eT(r){r=r|0,V(r)}function iT(r){r=r|0,V(r)}function rT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;if(l=C,C=C+64|0,f=l,(r|0)!=(t|0))if(t|0&&(o=vf(t,656,672,0)|0,(o|0)!=0)){t=f,s=t+56|0;do e[t>>2]=0,t=t+4|0;while((t|0)<(s|0));e[f>>2]=o,e[f+8>>2]=r,e[f+12>>2]=-1,e[f+48>>2]=1,Br[e[(e[o>>2]|0)+28>>2]&63](o,f,e[n>>2]|0,1),(e[f+24>>2]|0)==1?(e[n>>2]=e[f+16>>2],t=1):t=0}else t=0;else t=1;return C=l,t|0}function Pn(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0;r=t+16|0,o=e[r>>2]|0;do if(o){if((o|0)!=(n|0)){s=t+36|0,e[s>>2]=(e[s>>2]|0)+1,e[t+24>>2]=2,m[t+54>>0]=1;break}r=t+24|0,(e[r>>2]|0)==2&&(e[r>>2]=s)}else e[r>>2]=n,e[t+24>>2]=s,e[t+36>>2]=1;while(0)}function tT(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,(r|0)==(e[t+8>>2]|0)&&Pn(0,t,n,s)}function nT(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0,(r|0)==(e[t+8>>2]|0)?Pn(0,t,n,s):(r=e[r+8>>2]|0,Br[e[(e[r>>2]|0)+28>>2]&63](r,t,n,s))}function gf(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;f=e[r+4>>2]|0,o=f>>8,f&1&&(o=e[(e[n>>2]|0)+o>>2]|0),r=e[r>>2]|0,Br[e[(e[r>>2]|0)+28>>2]&63](r,t,n+o|0,f&2|0?s:2)}function sT(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;e:do if((r|0)!=(e[t+8>>2]|0)){if(f=e[r+12>>2]|0,o=r+16+(f<<3)|0,gf(r+16|0,t,n,s),(f|0)>1){f=t+54|0,r=r+24|0;do{if(gf(r,t,n,s),m[f>>0]|0)break e;r=r+8|0}while(r>>>0>>0)}}else Pn(0,t,n,s);while(0)}function vf(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;k=C,C=C+64|0,v=k,g=e[r>>2]|0,S=r+(e[g+-8>>2]|0)|0,g=e[g+-4>>2]|0,e[v>>2]=n,e[v+4>>2]=r,e[v+8>>2]=t,e[v+12>>2]=s,s=v+16|0,r=v+20|0,t=v+24|0,o=v+28|0,f=v+32|0,l=v+40|0,a=(g|0)==(n|0),c=s,h=c+36|0;do e[c>>2]=0,c=c+4|0;while((c|0)<(h|0));R[s+36>>1]=0,m[s+38>>0]=0;e:do if(a)e[v+48>>2]=1,ui[e[(e[n>>2]|0)+20>>2]&15](n,v,S,S,1,0),s=(e[t>>2]|0)==1?S:0;else{switch(Nr[e[(e[g>>2]|0)+24>>2]&15](g,v,S,1,0),e[v+36>>2]|0){case 0:{s=(e[l>>2]|0)==1&(e[o>>2]|0)==1&(e[f>>2]|0)==1?e[r>>2]|0:0;break e}case 1:break;default:{s=0;break e}}if((e[t>>2]|0)!=1&&!((e[l>>2]|0)==0&(e[o>>2]|0)==1&(e[f>>2]|0)==1)){s=0;break}s=e[s>>2]|0}while(0);return C=k,s|0}function En(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,m[t+53>>0]=1;do if((e[t+4>>2]|0)==(s|0)){if(m[t+52>>0]=1,s=t+16|0,r=e[s>>2]|0,!r){if(e[s>>2]=n,e[t+24>>2]=o,e[t+36>>2]=1,!((o|0)==1&&(e[t+48>>2]|0)==1))break;m[t+54>>0]=1;break}if((r|0)!=(n|0)){o=t+36|0,e[o>>2]=(e[o>>2]|0)+1,m[t+54>>0]=1;break}r=t+24|0,s=e[r>>2]|0,(s|0)==2&&(e[r>>2]=o,s=o),(s|0)==1&&(e[t+48>>2]|0)==1&&(m[t+54>>0]=1)}while(0)}function oT(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;e:do if((r|0)==(e[t+8>>2]|0))(e[t+4>>2]|0)==(n|0)&&(f=t+28|0,(e[f>>2]|0)!=1)&&(e[f>>2]=s);else{if((r|0)!=(e[t>>2]|0)){if(D=e[r+12>>2]|0,a=r+16+(D<<3)|0,Pr(r+16|0,t,n,s,o),f=r+24|0,(D|0)<=1)break;if(l=e[r+8>>2]|0,!(l&2|0)&&(c=t+36|0,(e[c>>2]|0)!=1)){if(!(l&1)){for(l=t+54|0;;)if(m[l>>0]|0||(e[c>>2]|0)==1||(Pr(f,t,n,s,o),f=f+8|0,f>>>0>=a>>>0))break e}for(l=t+24|0,r=t+54|0;;)if(m[r>>0]|0||(e[c>>2]|0)==1&&(e[l>>2]|0)==1||(Pr(f,t,n,s,o),f=f+8|0,f>>>0>=a>>>0))break e}for(l=t+54|0;;)if(m[l>>0]|0||(Pr(f,t,n,s,o),f=f+8|0,f>>>0>=a>>>0))break e}if((e[t+16>>2]|0)!=(n|0)&&(k=t+20|0,(e[k>>2]|0)!=(n|0))){if(e[t+32>>2]=s,S=t+44|0,(e[S>>2]|0)==4)break;l=e[r+12>>2]|0,a=r+16+(l<<3)|0,c=t+52|0,s=t+53|0,g=t+54|0,h=r+8|0,v=t+24|0;i:do if((l|0)>0)for(l=0,f=0,r=r+16|0;;){if(m[c>>0]=0,m[s>>0]=0,Ln(r,t,n,n,1,o),m[g>>0]|0){D=20;break i}do if(m[s>>0]|0){if(!(m[c>>0]|0))if(e[h>>2]&1){f=1;break}else{f=1,D=20;break i}if((e[v>>2]|0)==1)break i;if(e[h>>2]&2)l=1,f=1;else break i}while(0);if(r=r+8|0,r>>>0>=a>>>0){D=20;break}}else l=0,f=0,D=20;while(0);do if((D|0)==20){if(!l&&(e[k>>2]=n,n=t+40|0,e[n>>2]=(e[n>>2]|0)+1,(e[t+36>>2]|0)==1)&&(e[v>>2]|0)==2){if(m[g>>0]=1,f)break}else D=24;if((D|0)==24&&f)break;e[S>>2]=4;break e}while(0);e[S>>2]=3;break}(s|0)==1&&(e[t+32>>2]=1)}while(0)}function Ln(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0;a=e[r+4>>2]|0,l=a>>8,a&1&&(l=e[(e[s>>2]|0)+l>>2]|0),r=e[r>>2]|0,ui[e[(e[r>>2]|0)+20>>2]&15](r,t,n,s+l|0,a&2|0?o:2,f)}function Pr(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;l=e[r+4>>2]|0,f=l>>8,l&1&&(f=e[(e[n>>2]|0)+f>>2]|0),r=e[r>>2]|0,Nr[e[(e[r>>2]|0)+24>>2]&15](r,t,n+f|0,l&2|0?s:2,o)}function fT(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0;e:do if((r|0)==(e[t+8>>2]|0))(e[t+4>>2]|0)==(n|0)&&(f=t+28|0,(e[f>>2]|0)!=1)&&(e[f>>2]=s);else{if((r|0)!=(e[t>>2]|0)){a=e[r+8>>2]|0,Nr[e[(e[a>>2]|0)+24>>2]&15](a,t,n,s,o);break}if((e[t+16>>2]|0)!=(n|0)&&(l=t+20|0,(e[l>>2]|0)!=(n|0))){if(e[t+32>>2]=s,s=t+44|0,(e[s>>2]|0)==4)break;f=t+52|0,m[f>>0]=0,c=t+53|0,m[c>>0]=0,r=e[r+8>>2]|0,ui[e[(e[r>>2]|0)+20>>2]&15](r,t,n,n,1,o),m[c>>0]|0?m[f>>0]|0||(f=1,a=13):(f=0,a=13);do if((a|0)==13){if(e[l>>2]=n,c=t+40|0,e[c>>2]=(e[c>>2]|0)+1,(e[t+36>>2]|0)==1&&(e[t+24>>2]|0)==2){if(m[t+54>>0]=1,f)break}else a=16;if((a|0)==16&&f)break;e[s>>2]=4;break e}while(0);e[s>>2]=3;break}(s|0)==1&&(e[t+32>>2]=1)}while(0)}function lT(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0;do if((r|0)==(e[t+8>>2]|0))(e[t+4>>2]|0)==(n|0)&&(l=t+28|0,(e[l>>2]|0)!=1)&&(e[l>>2]=s);else if((r|0)==(e[t>>2]|0)){if((e[t+16>>2]|0)!=(n|0)&&(f=t+20|0,(e[f>>2]|0)!=(n|0))){e[t+32>>2]=s,e[f>>2]=n,o=t+40|0,e[o>>2]=(e[o>>2]|0)+1,(e[t+36>>2]|0)==1&&(e[t+24>>2]|0)==2&&(m[t+54>>0]=1),e[t+44>>2]=4;break}(s|0)==1&&(e[t+32>>2]=1)}while(0)}function uT(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0;var l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;if((r|0)==(e[t+8>>2]|0))En(0,t,n,s,o);else{S=t+52|0,g=m[S>>0]|0,v=t+53|0,k=m[v>>0]|0,h=e[r+12>>2]|0,l=r+16+(h<<3)|0,m[S>>0]=0,m[v>>0]=0,Ln(r+16|0,t,n,s,o,f);e:do if((h|0)>1){a=t+24|0,c=r+8|0,h=t+54|0,r=r+24|0;do{if(m[h>>0]|0)break e;if(m[S>>0]|0){if((e[a>>2]|0)==1||!(e[c>>2]&2))break e}else if(m[v>>0]|0&&!(e[c>>2]&1|0))break e;m[S>>0]=0,m[v>>0]=0,Ln(r,t,n,s,o,f),r=r+8|0}while(r>>>0>>0)}while(0);m[S>>0]=g,m[v>>0]=k}}function aT(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,(r|0)==(e[t+8>>2]|0)?En(0,t,n,s,o):(r=e[r+8>>2]|0,ui[e[(e[r>>2]|0)+20>>2]&15](r,t,n,s,o,f))}function cT(r,t,n,s,o,f){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0,f=f|0,(r|0)==(e[t+8>>2]|0)&&En(0,t,n,s,o)}function ST(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;return o=C,C=C+16|0,s=o,e[s>>2]=e[n>>2],r=ge[e[(e[r>>2]|0)+16>>2]&63](r,t,s)|0,r&&(e[n>>2]=e[s>>2]),C=o,r&1|0}function hT(r){return r=r|0,r?r=(vf(r,656,704,0)|0)!=0:r=0,r&1|0}function Er(){var r=0;r=H0(4)|0,Uv(r),me(r|0,592,78)}function mT(){var r=0,t=0,n=0,s=0,o=0,f=0,l=0,a=0;o=C,C=C+48|0,l=o+32|0,n=o+24|0,a=o+16|0,f=o,o=o+36|0,r=mf()|0,r|0&&(s=e[r>>2]|0,(s|0)!=0)&&(r=s+48|0,t=e[r>>2]|0,r=e[r+4>>2]|0,(t&-256|0)==1126902528&(r|0)==1129074247||(e[n>>2]=e[9257],j1(51919,n)),(t|0)==1126902529&(r|0)==1129074247?r=e[s+44>>2]|0:r=s+80|0,e[o>>2]=r,s=e[s>>2]|0,r=e[s+4>>2]|0,ge[e[(e[152]|0)+16>>2]&63](608,s,o)|0?(a=e[o>>2]|0,o=e[9257]|0,a=X0[e[(e[a>>2]|0)+8>>2]&127](a)|0,e[f>>2]=o,e[f+4>>2]=r,e[f+8>>2]=a,j1(51833,f)):(e[a>>2]=e[9257],e[a+4>>2]=r,j1(51878,a))),j1(51957,l)}function pT(){var r=0;if(r=C,C=C+16|0,m4(37020,184)|0)j1(51730,r);else{C=r;return}}function gT(r){r=r|0;var t=0,n=0;n=(e[r>>2]|0)+-4|0,t=e[n>>2]|0,e[n>>2]=t+-1,(t+-1|0)<0&&V((e[r>>2]|0)+-12|0)}function vT(r){r=r|0;var t=0;if(t=C,C=C+16|0,Pe(r),y4(e[9255]|0,0)|0)j1(51780,t);else{C=t;return}}function Lr(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,r=zT(r,t,n)|0,r|0}function Tf(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,r=YT(r,t,n)|0,r|0}function TT(){return 37296}function kT(){return 37300}function wT(){return 37304}function yi(r){return r=r|0,((r|0)==32|(r+-9|0)>>>0<5)&1|0}function dT(r){return r=r|0,(r+-48|0)>>>0<10?r=1:r=((r|32)+-97|0)>>>0<6,r&1|0}function n2(){var r=0;return e[9258]|0?(r=(Us()|0)+60|0,r=e[r>>2]|0):r=37308,r|0}function kf(r){r=r|0;var t=0,n=0;for(t=0;;){if((z[51978+t>>0]|0)==(r|0)){n=2;break}if(t=t+1|0,(t|0)==87){t=87,r=52066,n=5;break}}if((n|0)==2&&(t?(r=52066,n=5):r=52066),(n|0)==5)for(;;){for(n=r;r=n+1|0,m[n>>0]|0;)n=r;if(t=t+-1|0,t)n=5;else break}return r|0}function wf(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0;switch(ve=C,C=C+512|0,n0=ve,t|0){case 0:{A0=24,$=-149,d=4;break}case 1:{A0=53,$=-1074,d=4;break}case 2:{A0=53,$=-1074,d=4;break}default:s=0}e:do if((d|0)==4){N=r+4|0,x=r+100|0;do t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0;while(yi(t)|0);i:do switch(t|0){case 43:case 45:if(o=1-(((t|0)==45&1)<<1)|0,t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0){e[N>>2]=t+1,t=z[t>>0]|0,r0=o;break i}else{t=Ye(r)|0,r0=o;break i}default:r0=1}while(0);o=t,t=0;do{if((o|32|0)!=(m[53870+t>>0]|0))break;do if(t>>>0<7)if(o=e[N>>2]|0,o>>>0<(e[x>>2]|0)>>>0){e[N>>2]=o+1,o=z[o>>0]|0;break}else{o=Ye(r)|0;break}while(0);t=t+1|0}while(t>>>0<8);i:do switch(t|0){case 8:break;case 3:{d=23;break}default:{if(l=(n|0)!=0,l&t>>>0>3){if((t|0)==8)break i;d=23;break i}r:do if(!t){t=0;do{if((o|32|0)!=(m[56747+t>>0]|0))break r;do if(t>>>0<2)if(o=e[N>>2]|0,o>>>0<(e[x>>2]|0)>>>0){e[N>>2]=o+1,o=z[o>>0]|0;break}else{o=Ye(r)|0;break}while(0);t=t+1|0}while(t>>>0<3)}while(0);switch(t|0){case 3:{if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,(t|0)==40)t=1;else{if(!(e[x>>2]|0)){s=v0;break e}e[N>>2]=(e[N>>2]|0)+-1,s=v0;break e}for(;o=e[N>>2]|0,o>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=o+1,o=z[o>>0]|0):o=Ye(r)|0,!(!((o+-48|0)>>>0<10|(o+-65|0)>>>0<26)&&!((o|0)==95|(o+-97|0)>>>0<26));)t=t+1|0;if((o|0)==41){s=v0;break e}if(o=(e[x>>2]|0)==0,o||(e[N>>2]=(e[N>>2]|0)+-1),!l){A0=n2()|0,e[A0>>2]=22,n1(r,0),s=0;break e}if(!t){s=v0;break e}for(;;)if(t=t+-1|0,o||(e[N>>2]=(e[N>>2]|0)+-1),!t){s=v0;break e}}case 0:{do if((o|0)==48){if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,(t|32|0)!=120){if(!(e[x>>2]|0)){t=48;break}e[N>>2]=(e[N>>2]|0)+-1,t=48;break}t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0,l=0):(t=Ye(r)|0,l=0);r:for(;;){switch(t|0){case 46:{d=74;break r}case 48:break;default:{y=0,a=0,_=0,o=0,h=l,S=0,E=0,c=1,l=0,s=0;break r}}if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0){e[N>>2]=t+1,t=z[t>>0]|0,l=1;continue}else{t=Ye(r)|0,l=1;continue}}if((d|0)==74)if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,(t|0)==48){l=0,o=0;do t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,l=L2(l|0,o|0,-1,-1)|0,o=o0;while((t|0)==48);y=0,a=0,_=l,h=1,S=1,E=0,c=1,l=0,s=0}else y=0,a=0,_=0,o=0,h=l,S=1,E=0,c=1,l=0,s=0;for(;;){if(D=t+-48|0,g=t|32,D>>>0>=10){if(I=(t|0)==46,!(I|(g+-97|0)>>>0<6)){g=_,D=y;break}if(I)if(!S)I=a,o=y,D=y,S=1,g=E,f=c;else{g=_,D=y,t=46;break}else d=86}else d=86;if((d|0)==86){d=0,t=(t|0)>57?g+-87|0:D;do if((y|0)<0|(y|0)==0&a>>>0<8)g=E,f=c,l=t+(l<<4)|0;else{if((y|0)<0|(y|0)==0&a>>>0<14){k=c*.0625,g=E,f=k,s=s+k*+(t|0);break}(E|0)!=0|(t|0)==0?(g=E,f=c):(g=1,f=c,s=s+c*.5)}while(0);a=L2(a|0,y|0,1,0)|0,I=_,D=o0,h=1}if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0){e[N>>2]=t+1,y=D,_=I,t=z[t>>0]|0,E=g,c=f;continue}else{y=D,_=I,t=Ye(r)|0,E=g,c=f;continue}}if(!h){t=(e[x>>2]|0)==0,t||(e[N>>2]=(e[N>>2]|0)+-1),n?!t&&(w=e[N>>2]|0,e[N>>2]=w+-1,(S|0)!=0)&&(e[N>>2]=w+-2):n1(r,0),s=+(r0|0)*0;break e}if(h=(S|0)==0,S=h?a:g,h=h?D:o,(D|0)<0|(D|0)==0&a>>>0<8){o=D;do l=l<<4,a=L2(a|0,o|0,1,0)|0,o=o0;while((o|0)<0|(o|0)==0&a>>>0<8)}if((t|32|0)==112){if(o=Bf(r,n)|0,t=o0,(o|0)==0&(t|0)==-2147483648){if(!n){n1(r,0),s=0;break e}e[x>>2]|0?(e[N>>2]=(e[N>>2]|0)+-1,o=0,t=0):(o=0,t=0)}}else e[x>>2]|0?(e[N>>2]=(e[N>>2]|0)+-1,o=0,t=0):(o=0,t=0);if(n0=o2(S|0,h|0,2)|0,n0=L2(n0|0,o0|0,-32,-1)|0,t=L2(n0|0,o0|0,o|0,t|0)|0,o=o0,!l){s=+(r0|0)*0;break e}if((o|0)>0|(o|0)==0&t>>>0>(0-$|0)>>>0){A0=n2()|0,e[A0>>2]=34,s=+(r0|0)*17976931348623157e292*17976931348623157e292;break e}if(n0=$+-106|0,B=((n0|0)<0)<<31>>31,(o|0)<(B|0)|(o|0)==(B|0)&t>>>0>>0){A0=n2()|0,e[A0>>2]=34,s=+(r0|0)*22250738585072014e-324*22250738585072014e-324;break e}if((l|0)>-1){do B=!(s>=.5),n0=B&1|l<<1,l=n0^1,s=s+(B?s:s+-1),t=L2(t|0,o|0,-1,-1)|0,o=o0;while((n0|0)>-1);a=t,c=s}else a=t,c=s;t=$2(32,0,$|0,(($|0)<0)<<31>>31|0)|0,t=L2(a|0,o|0,t|0,o0|0)|0,$=o0,0>($|0)|($|0)==0&A0>>>0>t>>>0?(t|0)<0?(t=0,d=127):d=125:(t=A0,d=125),(d|0)==125&&((t|0)<53?d=127:(o=t,f=+(r0|0),s=0)),(d|0)==127&&(s=+(r0|0),o=t,f=s,s=+yf(+Fr(1,84-t|0),s)),A0=(l&1|0)==0&(c!=0&(o|0)<32),s=f*(A0?0:c)+(s+f*+(((A0&1)+l|0)>>>0))-s,s==0&&(A0=n2()|0,e[A0>>2]=34),s=+_f(s,a);break e}else t=o;while(0);q=$+A0|0,B=0-q|0,l=0;r:for(;;){switch(t|0){case 46:{d=138;break r}case 48:break;default:{o=0,g=0,S=0;break r}}if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0){e[N>>2]=t+1,t=z[t>>0]|0,l=1;continue}else{t=Ye(r)|0,l=1;continue}}if((d|0)==138)if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,(t|0)==48)for(o=0,t=0;;)if(o=L2(o|0,t|0,-1,-1)|0,l=o0,t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,(t|0)==48)t=l;else{g=l,l=1,S=1;break}else o=0,g=0,S=1;e[n0>>2]=0,h=t+-48|0,a=(t|0)==46;r:do if(a|h>>>0<10){O=n0+496|0,y=0,I=0,E=a,d=g,D=l,w=S,l=0,a=0,S=0;t:for(;;){do if(E)if(!w)o=y,g=I,w=1;else{g=d,t=y,h=I;break t}else{if(E=L2(y|0,I|0,1,0)|0,I=o0,_=(t|0)!=48,(a|0)>=125){if(!_){g=d,y=E;break}e[O>>2]=e[O>>2]|1,g=d,y=E;break}g=n0+(a<<2)|0,l&&(h=t+-48+((e[g>>2]|0)*10|0)|0),e[g>>2]=h,l=l+1|0,h=(l|0)==9,g=d,y=E,D=1,l=h?0:l,a=(h&1)+a|0,S=_?E:S}while(0);if(t=e[N>>2]|0,t>>>0<(e[x>>2]|0)>>>0?(e[N>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,h=t+-48|0,E=(t|0)==46,E|h>>>0<10)d=g;else{h=w,d=161;break r}}D=(D|0)!=0,d=169}else y=0,I=0,D=l,h=S,l=0,a=0,S=0,d=161;while(0);do if((d|0)==161){if(O=(h|0)==0,o=O?y:o,g=O?I:g,D=(D|0)!=0,!((t|32|0)==101&D))if((t|0)>-1){t=y,h=I,d=169;break}else{t=y,h=I,d=171;break}if(h=Bf(r,n)|0,t=o0,(h|0)==0&(t|0)==-2147483648){if(!n){n1(r,0),s=0;break}e[x>>2]|0?(e[N>>2]=(e[N>>2]|0)+-1,h=0,t=0):(h=0,t=0)}o=L2(h|0,t|0,o|0,g|0)|0,D=y,g=o0,h=I,d=173}while(0);(d|0)==169&&(e[x>>2]|0?(e[N>>2]=(e[N>>2]|0)+-1,D?(D=t,d=173):d=172):d=171),(d|0)==171&&(D?(D=t,d=173):d=172);do if((d|0)==172)A0=n2()|0,e[A0>>2]=22,n1(r,0),s=0;else if((d|0)==173){if(t=e[n0>>2]|0,!t){s=+(r0|0)*0;break}if(((h|0)<0|(h|0)==0&D>>>0<10)&((o|0)==(D|0)&(g|0)==(h|0))&&A0>>>0>30|(t>>>A0|0)==0){s=+(r0|0)*+(t>>>0);break}if(r=($|0)/-2|0,N=((r|0)<0)<<31>>31,(g|0)>(N|0)|(g|0)==(N|0)&o>>>0>r>>>0){A0=n2()|0,e[A0>>2]=34,s=+(r0|0)*17976931348623157e292*17976931348623157e292;break}if(r=$+-106|0,N=((r|0)<0)<<31>>31,(g|0)<(N|0)|(g|0)==(N|0)&o>>>0>>0){A0=n2()|0,e[A0>>2]=34,s=+(r0|0)*22250738585072014e-324*22250738585072014e-324;break}if(l){if((l|0)<9){h=n0+(a<<2)|0,t=e[h>>2]|0;do t=t*10|0,l=l+1|0;while((l|0)!=9);e[h>>2]=t}a=a+1|0}if((S|0)<9&&(S|0)<=(o|0)&(o|0)<18){if((o|0)==9){s=+(r0|0)*+((e[n0>>2]|0)>>>0);break}if((o|0)<9){s=+(r0|0)*+((e[n0>>2]|0)>>>0)/+(e[37312+(8-o<<2)>>2]|0);break}if(r=A0+27+(Z(o,-3)|0)|0,t=e[n0>>2]|0,(r|0)>30|(t>>>r|0)==0){s=+(r0|0)*+(t>>>0)*+(e[37312+(o+-10<<2)>>2]|0);break}}if(t=(o|0)%9|0,!t)l=0,t=0;else{if(D=(o|0)>-1?t:t+9|0,h=e[37312+(8-D<<2)>>2]|0,a){S=1e9/(h|0)|0,l=0,t=0,g=0;do x=n0+(g<<2)|0,N=e[x>>2]|0,r=((N>>>0)/(h>>>0)|0)+t|0,e[x>>2]=r,t=Z((N>>>0)%(h>>>0)|0,S)|0,r=(g|0)==(l|0)&(r|0)==0,g=g+1|0,o=r?o+-9|0:o,l=r?g&127:l;while((g|0)!=(a|0));t&&(e[n0+(a<<2)>>2]=t,a=a+1|0)}else l=0,a=0;t=0,o=9-D+o|0}r:for(;;){I=(o|0)<18,E=(o|0)==18,_=n0+(l<<2)|0;do{if(!I){if(!E)break r;if((e[_>>2]|0)>>>0>=9007199){o=18;break r}}for(h=0,S=a+127|0;D=S&127,g=n0+(D<<2)|0,S=o2(e[g>>2]|0,0,29)|0,S=L2(S|0,o0|0,h|0,0)|0,h=o0,h>>>0>0|(h|0)==0&S>>>0>1e9?(r=Cr(S|0,h|0,1e9,0)|0,S=Dn(S|0,h|0,1e9,0)|0,h=r):h=0,e[g>>2]=S,r=(D|0)==(l|0),a=(D|0)!=(a+127&127|0)|r||S|0?a:D,!r;)S=D+-1|0;t=t+-29|0}while(!(h|0));l=l+127&127,(l|0)==(a|0)&&(r=a+127&127,a=n0+((a+126&127)<<2)|0,e[a>>2]=e[a>>2]|e[n0+(r<<2)>>2],a=r),e[n0+(l<<2)>>2]=h,o=o+9|0}r:for(;;){for(y=a+1&127,_=n0+((a+127&127)<<2)|0;;){for(I=(o|0)==18,E=(o|0)>27?9:1,D=I^1;;){S=l&127,g=(S|0)==(a|0);do if(g)d=219;else{if(h=e[n0+(S<<2)>>2]|0,h>>>0<9007199){d=219;break}if(h>>>0>9007199)break;if(h=l+1&127,(h|0)==(a|0)){d=219;break}if(h=e[n0+(h<<2)>>2]|0,h>>>0<254740991){d=219;break}if(!(h>>>0>254740991|D)){o=S;break r}}while(0);if((d|0)==219&&(d=0,I)){d=220;break r}if(t=t+E|0,(l|0)==(a|0))l=a;else break}for(D=(1<>>E,S=l,h=0,g=l;N=n0+(g<<2)|0,r=e[N>>2]|0,l=(r>>>E)+h|0,e[N>>2]=l,h=Z(r&D,I)|0,l=(g|0)==(S|0)&(l|0)==0,g=g+1&127,o=l?o+-9|0:o,l=l?g:S,(g|0)!=(a|0);)S=l;if(h){if((y|0)!=(l|0))break;e[_>>2]=e[_>>2]|1}}e[n0+(a<<2)>>2]=h,a=y}(d|0)==220&&(g?(e[n0+(y+-1<<2)>>2]=0,o=a,a=y):o=S),s=+((e[n0+(o<<2)>>2]|0)>>>0),o=l+1&127,(o|0)==(a|0)&&(a=l+2&127,e[n0+(a+-1<<2)>>2]=0),k=+(r0|0),f=k*(s*1e9+ +((e[n0+(o<<2)>>2]|0)>>>0)),I=t+53|0,g=I-$|0,D=(g|0)<(A0|0),o=D&1,S=D?(g|0)<0?0:g:A0,(S|0)<53?(le=+yf(+Fr(1,105-S|0),f),c=+Af(f,+Fr(1,53-S|0)),v=le,s=c,c=le+(f-c)):(v=0,s=0,c=f),h=l+2&127;do if((h|0)==(a|0))f=s;else{h=e[n0+(h<<2)>>2]|0;do if(h>>>0>=5e8){if(h>>>0>5e8){s=k*.75+s;break}if((l+3&127|0)==(a|0)){s=k*.5+s;break}else{s=k*.75+s;break}}else{if(!(h|0)&&(l+3&127|0)==(a|0))break;s=k*.25+s}while(0);if((53-S|0)<=1){f=s;break}if(+Af(s,1)!=0){f=s;break}f=s+1}while(0);s=c+f-v;do if((I&2147483647|0)>(-2-q|0)){if(+Z0(+s)>=9007199254740992&&(o=D&(S|0)==(g|0)?0:o,t=t+1|0,s=s*.5),(t+50|0)<=(B|0)&&!(f!=0&(o|0)!=0))break;A0=n2()|0,e[A0>>2]=34}while(0);s=+_f(s,t)}while(0);break e}default:{e[x>>2]|0&&(e[N>>2]=(e[N>>2]|0)+-1),A0=n2()|0,e[A0>>2]=22,n1(r,0),s=0;break e}}}}while(0);if((d|0)==23&&(o=(e[x>>2]|0)==0,o||(e[N>>2]=(e[N>>2]|0)+-1),(n|0)!=0&t>>>0>3))do o||(e[N>>2]=(e[N>>2]|0)+-1),t=t+-1|0;while(t>>>0>3);s=+(r0|0)*K}while(0);return C=ve,+s}function df(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;e:do if(t>>>0>36)o=n2()|0,e[o>>2]=22,o=0,s=0;else{D=r+4|0,k=r+100|0;do f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0;while(yi(f)|0);i:do switch(f|0){case 43:case 45:if(l=((f|0)==45)<<31>>31,f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0){e[D>>2]=f+1,f=z[f>>0]|0,v=l;break i}else{f=Ye(r)|0,v=l;break i}default:v=0}while(0);l=(t|0)==0;do if((t&-17|0)==0&(f|0)==48){if(f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,(f|32|0)!=120)if(l){t=8,S=46;break}else{S=32;break}if(t=e[D>>2]|0,t>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=t+1,f=z[t>>0]|0):f=Ye(r)|0,(z[53879+(f+1)>>0]|0)>15){if(s=(e[k>>2]|0)==0,s||(e[D>>2]=(e[D>>2]|0)+-1),!n){n1(r,0),o=0,s=0;break e}if(s){o=0,s=0;break e}e[D>>2]=(e[D>>2]|0)+-1,o=0,s=0;break e}else t=16,S=46}else if(t=l?10:t,(z[53879+(f+1)>>0]|0)>>>0>>0)S=32;else{e[k>>2]|0&&(e[D>>2]=(e[D>>2]|0)+-1),n1(r,0),o=n2()|0,e[o>>2]=22,o=0,s=0;break e}while(0);if((S|0)==32)if((t|0)==10){if(t=f+-48|0,t>>>0<10){for(f=0;;)if(l=(f*10|0)+t|0,t=e[D>>2]|0,t>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=t+1,f=z[t>>0]|0):f=Ye(r)|0,t=f+-48|0,t>>>0<10&l>>>0<429496729)f=l;else{t=l;break}l=0}else t=0,l=0;if(n=f+-48|0,n>>>0<10){for(;;){if(a=wi(t|0,l|0,10,0)|0,c=o0,h=((n|0)<0)<<31>>31,g=~h,c>>>0>g>>>0|(c|0)==(g|0)&a>>>0>~n>>>0){a=t;break}if(t=L2(a|0,c|0,n|0,h|0)|0,l=o0,f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,n=f+-48|0,!(n>>>0<10&(l>>>0<429496729|(l|0)==429496729&t>>>0<2576980378))){a=t;break}}n>>>0>9?(f=a,t=v):(t=10,S=72)}else f=t,t=v}else S=46;i:do if((S|0)==46){if(!(t+-1&t)){if(S=m[54136+((t*23|0)>>>5&7)>>0]|0,l=m[53879+(f+1)>>0]|0,n=l&255,n>>>0>>0){for(f=0;a=n|f<>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,l=m[53879+(f+1)>>0]|0,n=l&255,a>>>0<134217728&n>>>0>>0;)f=a;n=0}else n=0,a=0;if(c=z1(-1,-1,S|0)|0,h=o0,(l&255)>>>0>=t>>>0|(n>>>0>h>>>0|(n|0)==(h|0)&a>>>0>c>>>0)){l=n,S=72;break}else f=n;for(;;)if(a=o2(a|0,f|0,S|0)|0,n=o0,a=l&255|a,f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,l=m[53879+(f+1)>>0]|0,(l&255)>>>0>=t>>>0|(n>>>0>h>>>0|(n|0)==(h|0)&a>>>0>c>>>0)){l=n,S=72;break i}else f=n}if(l=m[53879+(f+1)>>0]|0,n=l&255,n>>>0>>0){for(f=0;a=n+(Z(f,t)|0)|0,f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,l=m[53879+(f+1)>>0]|0,n=l&255,a>>>0<119304647&n>>>0>>0;)f=a;n=0}else a=0,n=0;if((l&255)>>>0>>0)for(S=Cr(-1,-1,t|0,0)|0,g=o0,h=n;;){if(h>>>0>g>>>0|(h|0)==(g|0)&a>>>0>S>>>0){l=h,S=72;break i}if(n=wi(a|0,h|0,t|0,0)|0,c=o0,l=l&255,c>>>0>4294967295|(c|0)==-1&n>>>0>~l>>>0){l=h,S=72;break i}if(a=L2(l|0,0,n|0,c|0)|0,n=o0,f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,l=m[53879+(f+1)>>0]|0,(l&255)>>>0>=t>>>0){l=n,S=72;break}else h=n}else l=n,S=72}while(0);if((S|0)==72)if((z[53879+(f+1)>>0]|0)>>>0>>0){do f=e[D>>2]|0,f>>>0<(e[k>>2]|0)>>>0?(e[D>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0;while((z[53879+(f+1)>>0]|0)>>>0>>0);l=n2()|0,e[l>>2]=34,l=o,f=s,t=(s&1|0)==0&!0?v:0}else f=a,t=v;if(e[k>>2]|0&&(e[D>>2]=(e[D>>2]|0)+-1),!(l>>>0>>0|(l|0)==(o|0)&f>>>0>>0)){if(!((s&1|0)!=0|!1|(t|0)!=0)){D=n2()|0,e[D>>2]=34,s=L2(s|0,o|0,-1,-1)|0,o=o0;break}if(l>>>0>o>>>0|(l|0)==(o|0)&f>>>0>s>>>0){D=n2()|0,e[D>>2]=34;break}}s=((t|0)<0)<<31>>31,s=$2(f^t|0,l^s|0,t|0,s|0)|0,o=o0}while(0);return o0=o,s|0}function n1(r,t){r=r|0,t=t|0;var n=0,s=0,o=0;e[r+104>>2]=t,n=e[r+4>>2]|0,s=e[r+8>>2]|0,o=s-n|0,e[r+108>>2]=o,(t|0)!=0&(o|0)>(t|0)?e[r+100>>2]=n+t:e[r+100>>2]=s}function Ye(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;return n=r+104|0,f=e[n>>2]|0,f|0&&(e[r+108>>2]|0)>=(f|0)?l=4:(t=Fn(r)|0,(t|0)>=0?(o=e[n>>2]|0,n=r+8|0,o?(s=e[n>>2]|0,f=e[r+4>>2]|0,n=s,o=o-(e[r+108>>2]|0)+-1|0,(n-f|0)>(o|0)?e[r+100>>2]=f+o:l=9):(s=e[n>>2]|0,n=s,l=9),(l|0)==9&&(e[r+100>>2]=n),n=e[r+4>>2]|0,s&&(r=r+108|0,e[r>>2]=s+1-n+(e[r>>2]|0)),n=n+-1|0,(z[n>>0]|0|0)!=(t|0)&&(m[n>>0]=t)):l=4),(l|0)==4&&(e[r+100>>2]=0,t=-1),t|0}function Ai(r){r=r|0;var t=0;return r>>>0>4294963200&&(t=n2()|0,e[t>>2]=0-r,r=-1),r|0}function Od(r){return r=r|0,0}function CT(r,t,n,s){return r=r|0,t=t|0,n=n|0,s=s|0,s|0}function Cf(r,t){return r=r|0,t=t|0,-1}function yT(r){r=r|0,Pe(r)}function AT(r,t){return r=r|0,t=t|0,(r+-48|0)>>>0<10|0}function DT(r,t){return r=r|0,t=t|0,dT(r)|0}function _T(r,t,n){return r=r|0,t=t|0,n=n|0,m[t>>0]|0&&Uf(t,58885)|0&&Uf(t,54145)|0?n=0:n||(n=GS(1,4)|0),n|0}function o1(r){r=r|0;var t=0,n=0;return t=(Us()|0)+176|0,n=e[t>>2]|0,r&&(e[t>>2]=r),n|0}function IT(r,t){r=+r,t=+t;var n=0,s=0;return t0[S0>>3]=r,s=e[S0>>2]|0,n=e[S0+4>>2]|0,t0[S0>>3]=t,n=e[S0+4>>2]&-2147483648|n&2147483647,e[S0>>2]=s,e[S0+4>>2]=n,+ +t0[S0>>3]}function yf(r,t){return r=+r,t=+t,+ +IT(r,t)}function PT(r,t){r=+r,t=+t;var n=0,s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;t0[S0>>3]=r,n=e[S0>>2]|0,h=e[S0+4>>2]|0,t0[S0>>3]=t,S=e[S0>>2]|0,g=e[S0+4>>2]|0,s=z1(n|0,h|0,52)|0,s=s&2047,a=z1(S|0,g|0,52)|0,a=a&2047,v=h&-2147483648,l=o2(S|0,g|0,1)|0,c=o0;e:do if(!((l|0)==0&(c|0)==0)&&(f=g&2147483647,!(f>>>0>2146435072|(f|0)==2146435072&S>>>0>0|(s|0)==2047))){if(o=o2(n|0,h|0,1)|0,f=o0,!(f>>>0>c>>>0|(f|0)==(c|0)&o>>>0>l>>>0))return+((o|0)==(l|0)&(f|0)==(c|0)?r*0:r);if(s)o=h&1048575|1048576;else{if(s=o2(n|0,h|0,12)|0,o=o0,(o|0)>-1|(o|0)==-1&s>>>0>4294967295){f=s,s=0;do s=s+-1|0,f=o2(f|0,o|0,1)|0,o=o0;while((o|0)>-1|(o|0)==-1&f>>>0>4294967295)}else s=0;n=o2(n|0,h|0,1-s|0)|0,o=o0}if(a)h=g&1048575|1048576;else{if(f=o2(S|0,g|0,12)|0,l=o0,(l|0)>-1|(l|0)==-1&f>>>0>4294967295){a=0;do a=a+-1|0,f=o2(f|0,l|0,1)|0,l=o0;while((l|0)>-1|(l|0)==-1&f>>>0>4294967295)}else a=0;S=o2(S|0,g|0,1-a|0)|0,h=o0}c=$2(n|0,o|0,S|0,h|0)|0,l=o0,f=(l|0)>-1|(l|0)==-1&c>>>0>4294967295;i:do if((s|0)>(a|0)){for(;;){if(f){if((n|0)==(S|0)&(o|0)==(h|0))break;n=c,o=l}if(n=o2(n|0,o|0,1)|0,o=o0,s=s+-1|0,c=$2(n|0,o|0,S|0,h|0)|0,l=o0,f=(l|0)>-1|(l|0)==-1&c>>>0>4294967295,(s|0)<=(a|0))break i}t=r*0;break e}while(0);if(f)if((n|0)==(S|0)&(o|0)==(h|0)){t=r*0;break}else o=l,n=c;if(o>>>0<1048576|(o|0)==1048576&n>>>0<0)do n=o2(n|0,o|0,1)|0,o=o0,s=s+-1|0;while(o>>>0<1048576|(o|0)==1048576&n>>>0<0);(s|0)>0?(g=L2(n|0,o|0,0,-1048576)|0,n=o0,s=o2(s|0,0,52)|0,n=n|o0,s=g|s):(s=z1(n|0,o|0,1-s|0)|0,n=o0),e[S0>>2]=s,e[S0+4>>2]=n|v,t=+t0[S0>>3]}else k=3;while(0);return(k|0)==3&&(t=r*t,t=t/t),+t}function Af(r,t){return r=+r,t=+t,+ +PT(r,t)}function Df(r,t){r=+r,t=t|0;var n=0,s=0,o=0;switch(t0[S0>>3]=r,n=e[S0>>2]|0,s=e[S0+4>>2]|0,o=z1(n|0,s|0,52)|0,o=o&2047,o|0){case 0:{r!=0?(r=+Df(r*18446744073709552e3,t),n=(e[t>>2]|0)+-64|0):n=0,e[t>>2]=n;break}case 2047:break;default:e[t>>2]=o+-1022,e[S0>>2]=n,e[S0+4>>2]=s&-2146435073|1071644672,r=+t0[S0>>3]}return+r}function ET(r,t){return r=+r,t=t|0,+ +Df(r,t)}function Fr(r,t){r=+r,t=t|0;var n=0;return(t|0)>1023?(r=r*898846567431158e293,n=t+-1023|0,(n|0)>1023&&(n=t+-2046|0,n=(n|0)>1023?1023:n,r=r*898846567431158e293)):(t|0)<-1022?(r=r*22250738585072014e-324,n=t+1022|0,(n|0)<-1022&&(n=t+2044|0,n=(n|0)<-1022?-1022:n,r=r*22250738585072014e-324)):n=t,n=o2(n+1023|0,0,52)|0,t=o0,e[S0>>2]=n,e[S0+4>>2]=t,+(r*+t0[S0>>3])}function _f(r,t){return r=+r,t=t|0,+ +Fr(r,t)}function LT(r,t,n){return r=r|0,t=t|0,n=n|0,Rr(0,r,t,n|0?n:37344)|0}function Rr(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0;c=C,C=C+16|0,o=c,l=s|0?s:37348,s=e[l>>2]|0;e:do if(!t)s?a=15:s=0;else if(f=r|0?r:o,!n)s=-2;else{if(s)o=n,a=9;else{if(s=m[t>>0]|0,o=s&255,s<<24>>24>-1){e[f>>2]=o,s=s<<24>>24!=0&1;break}if(s=o+-194|0,s>>>0>50){a=15;break}s=e[37076+(s<<2)>>2]|0,o=n+-1|0,o&&(t=t+1|0,a=9)}i:do if((a|0)==9){if(r=m[t>>0]|0,h=(r&255)>>>3,(h+-16|h+(s>>26))>>>0>7){a=15;break e}for(;t=t+1|0,s=(r&255)+-128|s<<6,o=o+-1|0,!((s|0)>=0);){if(!o)break i;if(r=m[t>>0]|0,(r&-64)<<24>>24!=-128){a=15;break e}}e[l>>2]=0,e[f>>2]=s,s=n-o|0;break e}while(0);e[l>>2]=s,s=-2}while(0);return(a|0)==15&&(e[l>>2]=0,s=n2()|0,e[s>>2]=84,s=-1),C=c,s|0}function FT(r){return r=r|0,r?r=(e[r>>2]|0)==0:r=1,r&1|0}function RT(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0;v=C,C=C+1040|0,h=v+8|0,g=v,c=e[t>>2]|0,e[g>>2]=c,S=(r|0)!=0,s=S?s:256,r=S?r:h,f=c;e:do if((s|0)!=0&(c|0)!=0){for(a=s,c=f,s=0;;){if(f=n>>>2,l=f>>>0>=a>>>0,!(n>>>0>131|l)){f=c;break e}if(f=l?a:f,n=n-f|0,f=If(r,g,f,o)|0,(f|0)==-1){s=n;break}if(k=(r|0)==(h|0),c=k?0:f,l=a-c|0,r=k?r:r+(f<<2)|0,s=f+s|0,f=e[g>>2]|0,(a|0)!=(c|0)&(f|0)!=0)a=l,c=f;else{a=l;break e}}n=s,a=0,f=e[g>>2]|0,s=-1}else a=s,s=0;while(0);e:do if(f|0&&(a|0)!=0&(n|0)!=0){for(l=f,f=r;r=Rr(f,l,n,o)|0,!((r+2|0)>>>0<3);)if(l=(e[g>>2]|0)+r|0,e[g>>2]=l,a=a+-1|0,s=s+1|0,(a|0)!=0&(n|0)!=(r|0))n=n-r|0,f=f+4|0;else break e;switch(r|0){case-1:{s=-1;break e}case 0:{e[g>>2]=0;break e}default:{e[o>>2]=0;break e}}}while(0);return S&&(e[t>>2]=e[g>>2]),C=v,s|0}function If(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0;o=e[t>>2]|0,s|0&&(f=e[s>>2]|0,(f|0)!=0)?r?(e[s>>2]=0,c=r,s=n,a=f,h=37):(s=n,l=o,h=16):r?(f=r,s=n,h=6):(s=n,h=7);e:for(;;)if((h|0)==6){if(s)r=f;else{h=26;break}for(;;){f=m[o>>0]|0;do if(((f&255)+-1|0)>>>0<127&&s>>>0>4&(o&3|0)==0){for(l=o;;){if(o=e[l>>2]|0,(o+-16843009|o)&-2139062144){f=o,o=l,h=32;break}if(e[r>>2]=o&255,e[r+4>>2]=z[l+1>>0],e[r+8>>2]=z[l+2>>0],o=l+4|0,f=r+16|0,e[r+12>>2]=z[l+3>>0],s=s+-4|0,s>>>0>4)r=f,l=o;else{h=31;break}}if((h|0)==31){r=f,f=m[o>>0]|0;break}else if((h|0)==32){f=f&255;break}}while(0);if(f=f&255,(f+-1|0)>>>0>=127)break;if(o=o+1|0,e[r>>2]=f,s=s+-1|0,s)r=r+4|0;else{h=26;break e}}if(f=f+-194|0,f>>>0>50){h=48;break}c=r,a=e[37076+(f<<2)>>2]|0,o=o+1|0,h=37;continue}else if((h|0)==7){if(f=m[o>>0]|0,((f&255)+-1|0)>>>0<127&&!(o&3|0)){if(f=e[o>>2]|0,!((f+-16843009|f)&-2139062144))do o=o+4|0,s=s+-4|0,f=e[o>>2]|0;while(!((f+-16843009|f)&-2139062144|0));f=f&255}if(f=f&255,(f+-1|0)>>>0<127){s=s+-1|0,o=o+1|0,h=7;continue}if(f=f+-194|0,f>>>0>50){h=48;break}f=e[37076+(f<<2)>>2]|0,l=o+1|0,h=16;continue}else if((h|0)==16){if(h=(z[l>>0]|0)>>>3,(h+-16|h+(f>>26))>>>0>7){h=17;break}if(o=l+1|0,f&33554432){if((m[o>>0]&-64)<<24>>24!=-128){h=20;break}if(o=l+2|0,f&524288){if((m[o>>0]&-64)<<24>>24!=-128){h=23;break}o=l+3|0}}s=s+-1|0,h=7;continue}else if((h|0)==37){if(f=z[o>>0]|0,h=f>>>3,(h+-16|h+(a>>26))>>>0>7){h=38;break}if(l=o+1|0,r=f+-128|a<<6,(r|0)<0){if(f=z[l>>0]|0,(f&192|0)!=128){h=41;break}if(l=o+2|0,r=f+-128|r<<6,(r|0)<0){if(f=z[l>>0]|0,(f&192|0)!=128){h=44;break}r=f+-128|r<<6,o=o+3|0}else o=l}else o=l;e[c>>2]=r,f=c+4|0,s=s+-1|0,h=6;continue}return(h|0)==17||(h|0)==20||(h|0)==23?(o=l+-1|0,h=47):(h|0)==26?e[t>>2]=o:(h|0)==38?(r=c,f=a,o=o+-1|0,h=47):((h|0)==41||(h|0)==44)&&(s=c,n=o+-1|0,h=52),(h|0)==47&&(f?(s=r,n=o,h=52):h=48),(h|0)==48&&(m[o>>0]|0?(s=r,n=o,h=52):(r&&(e[r>>2]=0,e[t>>2]=0),n=n-s|0)),(h|0)==52&&(h=n2()|0,e[h>>2]=84,s&&(e[t>>2]=n),n=-1),n|0}function OT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;l=C,C=C+16|0,s=l;e:do if(!t)s=0;else{do if(n){if(f=r|0?r:s,s=m[t>>0]|0,r=s&255,s<<24>>24>-1){e[f>>2]=r,s=s<<24>>24!=0&1;break e}if(s=r+-194|0,s>>>0<=50){if(r=t+1|0,o=e[37076+(s<<2)>>2]|0,n>>>0<4&&o&-2147483648>>>((n*6|0)+-6|0)|0)break;if(s=z[r>>0]|0,n=s>>>3,(n+-16|n+(o>>26))>>>0<=7){if(s=s+-128|o<<6,(s|0)>=0){e[f>>2]=s,s=2;break e}if(r=z[t+2>>0]|0,(r&192|0)==128){if(r=r+-128|s<<6,(r|0)>=0){e[f>>2]=r,s=3;break e}if(s=z[t+3>>0]|0,(s&192|0)==128){e[f>>2]=s+-128|r<<6,s=4;break e}}}}}while(0);s=n2()|0,e[s>>2]=84,s=-1}while(0);return C=l,s|0}function oi(r,t,n){r=r|0,t=t|0,n=n|0;do if(r){if(t>>>0<128){m[r>>0]=t,r=1;break}if(t>>>0<2048){m[r>>0]=t>>>6|192,m[r+1>>0]=t&63|128,r=2;break}if(t>>>0<55296|(t&-8192|0)==57344){m[r>>0]=t>>>12|224,m[r+1>>0]=t>>>6&63|128,m[r+2>>0]=t&63|128,r=3;break}if((t+-65536|0)>>>0<1048576){m[r>>0]=t>>>18|240,m[r+1>>0]=t>>>12&63|128,m[r+2>>0]=t>>>6&63|128,m[r+3>>0]=t&63|128,r=4;break}else{r=n2()|0,e[r>>2]=84,r=-1;break}}else r=1;while(0);return r|0}function MT(r,t,n,s,o){r=r|0,t=t|0,n=n|0,s=s|0,o=o|0;var f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0;S=C,C=C+272|0,a=S+8|0,h=S,l=e[t>>2]|0,e[h>>2]=l,c=(r|0)!=0,o=c?s:256,s=c?r:a,r=l;e:do if((o|0)!=0&(l|0)!=0){for(l=o,f=r,o=0;;){if(r=n>>>0>=l>>>0,!(r|n>>>0>32)){r=f;break e}if(r=r?l:n,n=n-r|0,r=xT(s,h,r,0)|0,(r|0)==-1){o=n;break}if(v=(s|0)==(a|0),g=v?0:r,f=l-g|0,s=v?s:s+r|0,o=r+o|0,r=e[h>>2]|0,(l|0)!=(g|0)&(r|0)!=0)l=f,f=r;else{l=f;break e}}n=o,l=0,r=e[h>>2]|0,o=-1}else l=o,o=0;while(0);e:do if(r|0&&(l|0)!=0&(n|0)!=0){for(f=r,r=s;s=oi(r,e[f>>2]|0,0)|0,!((s+1|0)>>>0<2);)if(f=(e[h>>2]|0)+4|0,e[h>>2]=f,n=n+-1|0,o=o+1|0,(l|0)!=(s|0)&(n|0)!=0)l=l-s|0,r=r+s|0;else break e;s?o=-1:e[h>>2]=0}while(0);return c&&(e[t>>2]=e[h>>2]),C=S,o|0}function xT(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0;a=C,C=C+16|0,l=a;e:do if(r){i:do if(n>>>0>3){for(s=n,o=e[t>>2]|0;;){if(f=e[o>>2]|0,(f+-1|0)>>>0>126){if(!f)break;if(f=oi(r,f,0)|0,(f|0)==-1){n=-1;break e}r=r+f|0,s=s-f|0}else m[r>>0]=f,r=r+1|0,s=s+-1|0,o=e[t>>2]|0;if(o=o+4|0,e[t>>2]=o,s>>>0<=3)break i}m[r>>0]=0,e[t>>2]=0,n=n-s|0;break e}else s=n;while(0);if(s){for(o=e[t>>2]|0;;){if(f=e[o>>2]|0,(f+-1|0)>>>0>126){if(!f){o=19;break}if(f=oi(l,f,0)|0,(f|0)==-1){n=-1;break e}if(s>>>0>>0){o=22;break}oi(r,e[o>>2]|0,0)|0,r=r+f|0,s=s-f|0}else m[r>>0]=f,r=r+1|0,s=s+-1|0,o=e[t>>2]|0;if(o=o+4|0,e[t>>2]=o,!s)break e}if((o|0)==19){m[r>>0]=0,e[t>>2]=0,n=n-s|0;break}else if((o|0)==22){n=n-s|0;break}}}else if(r=e[t>>2]|0,s=e[r>>2]|0,!s)n=0;else{n=0;do{if(s>>>0>127){if(s=oi(l,s,0)|0,(s|0)==-1){n=-1;break e}}else s=1;n=s+n|0,r=r+4|0,s=e[r>>2]|0}while(s|0)}while(0);return C=a,n|0}function Pf(r,t){return r=r|0,t=t|0,r?r=oi(r,t,0)|0:r=0,r|0}function W1(r){return r=r|0,0}function I1(r){r=r|0}function Ef(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0,c=0;c=C,C=C+16|0,a=c,l=t&255,m[a>>0]=l,s=r+16|0,o=e[s>>2]|0,o?f=4:Rf(r)|0?n=-1:(o=e[s>>2]|0,f=4);do if((f|0)==4){if(s=r+20|0,f=e[s>>2]|0,f>>>0>>0&&(n=t&255,(n|0)!=(m[r+75>>0]|0))){e[s>>2]=f+1,m[f>>0]=l;break}(ge[e[r+36>>2]&63](r,a,1)|0)==1?n=z[a>>0]|0:n=-1}while(0);return C=c,n|0}function qT(r){r=r|0;var t=0,n=0;return t=C,C=C+16|0,n=t,e[n>>2]=e[r+60>>2],r=Ai(A4(6,n|0)|0)|0,C=t,r|0}function NT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0;return h=C,C=C+48|0,f=h+16|0,o=h,s=h+32|0,e[s>>2]=t,l=s+4|0,c=r+48|0,S=e[c>>2]|0,e[l>>2]=n-((S|0)!=0&1),a=r+44|0,e[s+8>>2]=e[a>>2],e[s+12>>2]=S,e[9258]|0?(Vs(185,r|0),e[o>>2]=e[r+60>>2],e[o+4>>2]=s,e[o+8>>2]=2,s=Ai(zs(145,o|0)|0)|0,Qs(0)):(e[f>>2]=e[r+60>>2],e[f+4>>2]=s,e[f+8>>2]=2,s=Ai(zs(145,f|0)|0)|0),(s|0)>=1?(l=e[l>>2]|0,s>>>0>l>>>0&&(f=e[a>>2]|0,o=r+4|0,e[o>>2]=f,e[r+8>>2]=f+(s-l),e[c>>2]|0&&(e[o>>2]=f+1,m[t+(n+-1)>>0]=m[f>>0]|0),s=n)):(e[r>>2]=e[r>>2]|s&48^16,e[r+8>>2]=0,e[r+4>>2]=0),C=h,s|0}function UT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0;return o=C,C=C+32|0,f=o,s=o+20|0,e[f>>2]=e[r+60>>2],e[f+4>>2]=0,e[f+8>>2]=t,e[f+12>>2]=s,e[f+16>>2]=n,(Ai(I4(140,f|0)|0)|0)<0?(e[s>>2]=-1,r=-1):r=e[s>>2]|0,C=o,r|0}function Lf(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0;for(D=C,C=C+48|0,g=D+16|0,S=D,s=D+32|0,v=r+28|0,o=e[v>>2]|0,e[s>>2]=o,k=r+20|0,o=(e[k>>2]|0)-o|0,e[s+4>>2]=o,e[s+8>>2]=t,e[s+12>>2]=n,c=r+60|0,h=r+44|0,t=2,o=o+n|0;;){if(e[9258]|0?(Vs(186,r|0),e[S>>2]=e[c>>2],e[S+4>>2]=s,e[S+8>>2]=t,l=Ai(Ys(146,S|0)|0)|0,Qs(0)):(e[g>>2]=e[c>>2],e[g+4>>2]=s,e[g+8>>2]=t,l=Ai(Ys(146,g|0)|0)|0),(o|0)==(l|0)){o=6;break}if((l|0)<0){o=8;break}o=o-l|0,f=e[s+4>>2]|0,l>>>0<=f>>>0?(t|0)==2?(e[v>>2]=(e[v>>2]|0)+l,a=f,t=2):a=f:(a=e[h>>2]|0,e[v>>2]=a,e[k>>2]=a,a=e[s+12>>2]|0,l=l-f|0,s=s+8|0,t=t+-1|0),e[s>>2]=(e[s>>2]|0)+l,e[s+4>>2]=a-l}return(o|0)==6?(g=e[h>>2]|0,e[r+16>>2]=g+(e[r+48>>2]|0),r=g,e[v>>2]=r,e[k>>2]=r):(o|0)==8&&(e[r+16>>2]=0,e[v>>2]=0,e[k>>2]=0,e[r>>2]=e[r>>2]|32,(t|0)==2?n=0:n=n-(e[s+4>>2]|0)|0),C=D,n|0}function BT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;return o=C,C=C+80|0,s=o,e[r+36>>2]=8,!(e[r>>2]&64|0)&&(e[s>>2]=e[r+60>>2],e[s+4>>2]=21505,e[s+8>>2]=o+12,(w4(54,s|0)|0)!=0)&&(m[r+75>>0]=-1),s=Lf(r,t,n)|0,C=o,s|0}function QT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;return s=r+84|0,f=e[s>>2]|0,l=n+256|0,o=Nf(f,0,l)|0,o=o|0?o-f|0:l,n=o>>>0>>0?o:n,Ne(t|0,f|0,n|0)|0,e[r+4>>2]=f+n,t=f+o|0,e[r+8>>2]=t,e[s>>2]=t,n|0}function Ff(r){r=r|0;var t=0,n=0;return t=r+74|0,n=m[t>>0]|0,m[t>>0]=n+255|n,t=r+20|0,n=r+44|0,(e[t>>2]|0)>>>0>(e[n>>2]|0)>>>0&&ge[e[r+36>>2]&63](r,0,0)|0,e[r+16>>2]=0,e[r+28>>2]=0,e[t>>2]=0,t=e[r>>2]|0,t&20?(t&4&&(e[r>>2]=t|32),t=-1):(t=e[n>>2]|0,e[r+8>>2]=t,e[r+4>>2]=t,t=0),t|0}function Rf(r){r=r|0;var t=0,n=0;return t=r+74|0,n=m[t>>0]|0,m[t>>0]=n+255|n,t=e[r>>2]|0,t&8?(e[r>>2]=t|32,t=-1):(e[r+8>>2]=0,e[r+4>>2]=0,t=e[r+44>>2]|0,e[r+28>>2]=t,e[r+20>>2]=t,e[r+16>>2]=t+(e[r+48>>2]|0),t=0),t|0}function Fn(r){r=r|0;var t=0,n=0;return n=C,C=C+16|0,t=n,!(e[r+8>>2]|0)&&Ff(r)|0?t=-1:(ge[e[r+32>>2]&63](r,t,1)|0)==1?t=z[t>>0]|0:t=-1,C=n,t|0}function Rn(r){r=r|0;var t=0,n=0;do if(r){if((e[r+76>>2]|0)<=-1){t=xn(r)|0;break}n=(W1(r)|0)==0,t=xn(r)|0,n||I1(r)}else{if(e[9323]|0?t=Rn(e[9323]|0)|0:t=0,h4(37060),r=e[9264]|0,r)do(e[r+76>>2]|0)>-1?n=W1(r)|0:n=0,(e[r+20>>2]|0)>>>0>(e[r+28>>2]|0)>>>0&&(t=xn(r)|0|t),n&&I1(r),r=e[r+56>>2]|0;while(r|0);d4(37060)}while(0);return t|0}function GT(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0;(e[t+76>>2]|0)>=0&&W1(t)|0?((m[t+75>>0]|0)!=(r|0)&&(s=t+20|0,o=e[s>>2]|0,o>>>0<(e[t+16>>2]|0)>>>0)?(e[s>>2]=o+1,m[o>>0]=r,n=r&255):n=Ef(t,r)|0,I1(t)):l=3;do if((l|0)==3){if((m[t+75>>0]|0)!=(r|0)&&(f=t+20|0,n=e[f>>2]|0,n>>>0<(e[t+16>>2]|0)>>>0)){e[f>>2]=n+1,m[n>>0]=r,n=r&255;break}n=Ef(t,r)|0}while(0);return n|0}function F2(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;s=n+16|0,o=e[s>>2]|0,o?f=4:Rf(n)|0?s=0:(o=e[s>>2]|0,f=4);e:do if((f|0)==4){if(l=n+20|0,f=e[l>>2]|0,(o-f|0)>>>0>>0){s=ge[e[n+36>>2]&63](n,r,t)|0;break}i:do if((m[n+75>>0]|0)>-1){for(s=t;;){if(!s){o=f,s=0;break i}if(o=s+-1|0,(m[r+o>>0]|0)==10)break;s=o}if((ge[e[n+36>>2]&63](n,r,s)|0)>>>0>>0)break e;t=t-s|0,r=r+s|0,o=e[l>>2]|0}else o=f,s=0;while(0);Ne(o|0,r|0,t|0)|0,e[l>>2]=(e[l>>2]|0)+t,s=s+t|0}while(0);return s|0}function P1(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;return o=Z(n,t)|0,(e[s+76>>2]|0)>-1?(f=(W1(s)|0)==0,r=F2(r,o,s)|0,f||I1(s)):r=F2(r,o,s)|0,(r|0)!=(o|0)&&(n=(r>>>0)/(t>>>0)|0),n|0}function Or(r){r=r|0;var t=0,n=0,s=0;(e[r+76>>2]|0)>=0&&W1(r)|0?(t=r+4|0,n=e[t>>2]|0,n>>>0<(e[r+8>>2]|0)>>>0?(e[t>>2]=n+1,t=z[n>>0]|0):t=Fn(r)|0):s=3;do if((s|0)==3)if(t=r+4|0,n=e[t>>2]|0,n>>>0<(e[r+8>>2]|0)>>>0){e[t>>2]=n+1,t=z[n>>0]|0;break}else{t=Fn(r)|0;break}while(0);return t|0}function Of(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0;return o=C,C=C+16|0,f=o,e[f>>2]=s,s=xr(r,t,n,f)|0,C=o,s|0}function Mf(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;return s=C,C=C+16|0,o=s,e[o>>2]=n,n=qf(r,t,o)|0,C=s,n|0}function Mr(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0;do if((r|0)!=-1){if((e[t+76>>2]|0)>-1?o=W1(t)|0:o=0,!(e[t+8>>2]|0)&&Ff(t)|0||(f=6),(f|0)==6&&(n=t+4|0,s=e[n>>2]|0,s>>>0>((e[t+44>>2]|0)+-8|0)>>>0)){if(f=s+-1|0,e[n>>2]=f,m[f>>0]=r,e[t>>2]=e[t>>2]&-17,!o)break;I1(t);break}o&&I1(t),r=-1}else r=-1;while(0);return r|0}function VT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0;a=C,C=C+16|0,s=a,o=g2(240)|0;do if(o){if(e[s>>2]=e[n>>2],s=xr(o,240,t,s)|0,s>>>0<240){t=gi(o,s+1|0)|0,e[r>>2]=t|0?t:o;break}Pe(o),(s|0)>=0&&(l=s+1|0,f=g2(l)|0,e[r>>2]=f,(f|0)!=0)?s=xr(f,l,t,n)|0:s=-1}else s=-1;while(0);return C=a,s|0}function xf(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0;I=C,C=C+224|0,g=I+80|0,D=I+96|0,k=I,v=I+136|0,s=D,o=s+40|0;do e[s>>2]=0,s=s+4|0;while((s|0)<(o|0));return e[g>>2]=e[n>>2],(Sn(0,t,g,k,D)|0)<0?n=-1:((e[r+76>>2]|0)>-1?h=W1(r)|0:h=0,n=e[r>>2]|0,S=n&32,(m[r+74>>0]|0)<1&&(e[r>>2]=n&-33),n=r+48|0,e[n>>2]|0?s=Sn(r,t,g,k,D)|0:(o=r+44|0,f=e[o>>2]|0,e[o>>2]=v,l=r+28|0,e[l>>2]=v,a=r+20|0,e[a>>2]=v,e[n>>2]=80,c=r+16|0,e[c>>2]=v+80,s=Sn(r,t,g,k,D)|0,f&&(ge[e[r+36>>2]&63](r,0,0)|0,s=e[a>>2]|0?s:-1,e[o>>2]=f,e[n>>2]=0,e[c>>2]=0,e[l>>2]=0,e[a>>2]=0)),n=e[r>>2]|0,e[r>>2]=n|S,h&&I1(r),n=n&32|0?-1:s),C=I,n|0}function HT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0,a=0,c=0,h=0,S=0,g=0,v=0,k=0,D=0,I=0,E=0,_=0,y=0,w=0,d=0,O=0,x=0,N=0,q=0,B=0,n0=0,r0=0,$=0,A0=0,ve=0,le=0,Fe=0,Ie=0,fe=0;Ie=C,C=C+304|0,B=Ie+16|0,r0=Ie+8|0,n0=Ie+33|0,$=Ie,_=Ie+32|0,(e[r+76>>2]|0)>-1?Fe=W1(r)|0:Fe=0,s=m[t>>0]|0;e:do if(s<<24>>24){A0=r+4|0,ve=r+100|0,q=r+108|0,y=r+8|0,w=n0+10|0,d=n0+33|0,O=r0+4|0,x=n0+46|0,N=n0+94|0,f=s,s=0,l=t,g=0,o=0,t=0;i:for(;;){r:do if(yi(f&255)|0){for(;f=l+1|0,yi(z[f>>0]|0)|0;)l=f;n1(r,0);do f=e[A0>>2]|0,f>>>0<(e[ve>>2]|0)>>>0?(e[A0>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0;while(yi(f)|0);f=e[A0>>2]|0,e[ve>>2]|0&&(f=f+-1|0,e[A0>>2]=f),a=(e[q>>2]|0)+g+f-(e[y>>2]|0)|0}else{f=(m[l>>0]|0)==37;t:do if(f){h=l+1|0,a=m[h>>0]|0;n:do switch(a<<24>>24){case 37:break t;case 42:{E=0,a=l+2|0;break}default:{if(a=(a&255)+-48|0,a>>>0<10&&(m[l+2>>0]|0)==36){for(e[B>>2]=e[n>>2];E=(e[B>>2]|0)+(4-1)&~(4-1),f=e[E>>2]|0,e[B>>2]=E+4,a>>>0>1;)a=a+-1|0;E=f,a=l+3|0;break n}a=(e[n>>2]|0)+(4-1)&~(4-1),E=e[a>>2]|0,e[n>>2]=a+4,a=h}}while(0);if(f=m[a>>0]|0,l=f&255,(l+-48|0)>>>0<10)for(f=0;h=(f*10|0)+-48+l|0,a=a+1|0,f=m[a>>0]|0,l=f&255,!((l+-48|0)>>>0>=10);)f=h;else h=0;switch(f<<24>>24==109?(a=a+1|0,S=m[a>>0]|0,f=(E|0)!=0&1,o=0,t=0):(S=f,f=0),l=a+1|0,S&255|0){case 104:{I=(m[l>>0]|0)==104,l=I?a+2|0:l,a=I?-2:-1;break}case 108:{I=(m[l>>0]|0)==108,l=I?a+2|0:l,a=I?3:1;break}case 106:{a=3;break}case 116:case 122:{a=1;break}case 76:{a=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{l=a,a=0;break}default:{le=152;break i}}switch(S=z[l>>0]|0,v=(S&47|0)==3,S=v?S|32:S,v=v?1:a,S|0){case 99:{I=g,D=(h|0)<1?1:h;break}case 91:{I=g,D=h;break}case 110:{if(!E){a=g;break r}switch(v|0){case-2:{m[E>>0]=g,a=g;break r}case-1:{R[E>>1]=g,a=g;break r}case 0:{e[E>>2]=g,a=g;break r}case 1:{e[E>>2]=g,a=g;break r}case 3:{a=E,e[a>>2]=g,e[a+4>>2]=((g|0)<0)<<31>>31,a=g;break r}default:{a=g;break r}}}default:{n1(r,0);do a=e[A0>>2]|0,a>>>0<(e[ve>>2]|0)>>>0?(e[A0>>2]=a+1,a=z[a>>0]|0):a=Ye(r)|0;while(yi(a)|0);a=e[A0>>2]|0,e[ve>>2]|0&&(a=a+-1|0,e[A0>>2]=a),I=(e[q>>2]|0)+g+a-(e[y>>2]|0)|0,D=h}}if(n1(r,D),a=e[A0>>2]|0,h=e[ve>>2]|0,a>>>0>>0)e[A0>>2]=a+1;else{if((Ye(r)|0)<0){le=152;break i}h=e[ve>>2]|0}h&&(e[A0>>2]=(e[A0>>2]|0)+-1);n:do switch(S|0){case 91:case 99:case 115:{k=(S|0)==99;s:do if((S&239|0)==99)ye(n0|0,-1,257)|0,m[n0>>0]=0,(S|0)==115&&(m[d>>0]=0,m[w>>0]=0,m[w+1>>0]=0,m[w+2>>0]=0,m[w+3>>0]=0,m[w+4>>0]=0);else{switch(fe=l+1|0,g=(m[fe>>0]|0)==94,a=g&1,S=g?fe:l,l=g?l+2|0:fe,ye(n0|0,g&1|0,257)|0,m[n0>>0]=0,m[l>>0]|0){case 45:{g=(a^1)&255,m[x>>0]=g,l=S+2|0;break}case 93:{g=(a^1)&255,m[N>>0]=g,l=S+2|0;break}default:g=(a^1)&255}for(;;){a=m[l>>0]|0;o:do switch(a<<24>>24){case 0:{le=152;break i}case 93:break s;case 45:{switch(S=l+1|0,a=m[S>>0]|0,a<<24>>24){case 93:case 0:{a=45;break o}default:}if(l=m[l+-1>>0]|0,(l&255)<(a&255)){l=l&255;do l=l+1|0,m[n0+l>>0]=g,a=m[S>>0]|0;while((l|0)<(a&255|0));l=S}else l=S;break}default:}while(0);m[n0+((a&255)+1)>>0]=g,l=l+1|0}}while(0);S=k?D+1|0:31,g=(v|0)==1,v=(f|0)!=0;s:do if(g){if(v){if(t=g2(S<<2)|0,!t){o=0,le=152;break i}}else t=E;e[r0>>2]=0,e[O>>2]=0,o=0;o:for(;;){h=(t|0)==0;do{f:for(;;){if(a=e[A0>>2]|0,a>>>0<(e[ve>>2]|0)>>>0?(e[A0>>2]=a+1,a=z[a>>0]|0):a=Ye(r)|0,!(m[n0+(a+1)>>0]|0))break o;switch(m[_>>0]=a,Rr($,_,1,r0)|0){case-1:{o=0,le=152;break i}case-2:break;default:break f}}h||(e[t+(o<<2)>>2]=e[$>>2],o=o+1|0)}while(!(v&(o|0)==(S|0)));if(o=S<<1|1,a=gi(t,o<<2)|0,!a){o=0,le=152;break i}fe=S,S=o,t=a,o=fe}if(FT(r0)|0)h=o,o=0;else{o=0,le=152;break i}}else{if(v){if(o=g2(S)|0,o)a=0;else{o=0,t=0,le=152;break i}for(;;){do{if(t=e[A0>>2]|0,t>>>0<(e[ve>>2]|0)>>>0?(e[A0>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,!(m[n0+(t+1)>>0]|0)){h=a,t=0;break s}m[o+a>>0]=t,a=a+1|0}while((a|0)!=(S|0));if(t=S<<1|1,a=gi(o,t)|0,a)fe=S,S=t,o=a,a=fe;else{t=0,le=152;break i}}}if(E)for(o=0;;){if(t=e[A0>>2]|0,t>>>0>>0?(e[A0>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,!(m[n0+(t+1)>>0]|0)){h=o,o=E,t=0;break s}m[E+o>>0]=t,h=e[ve>>2]|0,o=o+1|0}else for(o=h;;){if(t=e[A0>>2]|0,t>>>0>>0?(e[A0>>2]=t+1,t=z[t>>0]|0):t=Ye(r)|0,!(m[n0+(t+1)>>0]|0)){h=0,o=0,t=0;break s}o=e[ve>>2]|0}}while(0);if(a=e[A0>>2]|0,e[ve>>2]|0&&(a=a+-1|0,e[A0>>2]=a),a=a-(e[y>>2]|0)+(e[q>>2]|0)|0,!a||!((a|0)==(D|0)|k^1))break i;do if(v)if(g){e[E>>2]=t;break}else{e[E>>2]=o;break}while(0);if(!k){if(t&&(e[t+(h<<2)>>2]=0),!o){o=0;break n}m[o+h>>0]=0}break}case 120:case 88:case 112:{a=16,le=134;break}case 111:{a=8,le=134;break}case 117:case 100:{a=10,le=134;break}case 105:{a=0,le=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{if(c=+wf(r,v,0),(e[q>>2]|0)==((e[y>>2]|0)-(e[A0>>2]|0)|0))break i;if(E)switch(v|0){case 0:{V0[E>>2]=c;break n}case 1:{t0[E>>3]=c;break n}case 2:{t0[E>>3]=c;break n}default:break n}break}default:}while(0);n:do if((le|0)==134){if(le=0,a=df(r,a,0,-1,-1)|0,(e[q>>2]|0)==((e[y>>2]|0)-(e[A0>>2]|0)|0))break i;if((E|0)!=0&(S|0)==112){e[E>>2]=a;break}if(E)switch(v|0){case-2:{m[E>>0]=a;break n}case-1:{R[E>>1]=a;break n}case 0:{e[E>>2]=a;break n}case 1:{e[E>>2]=a;break n}case 3:{fe=E,e[fe>>2]=a,e[fe+4>>2]=o0;break n}default:break n}}while(0);s=((E|0)!=0&1)+s|0,a=(e[q>>2]|0)+I+(e[A0>>2]|0)-(e[y>>2]|0)|0;break r}while(0);if(l=l+(f&1)|0,n1(r,0),f=e[A0>>2]|0,f>>>0<(e[ve>>2]|0)>>>0?(e[A0>>2]=f+1,f=z[f>>0]|0):f=Ye(r)|0,(f|0)!=(z[l>>0]|0)){le=21;break i}a=g+1|0}while(0);if(l=l+1|0,f=m[l>>0]|0,f<<24>>24)g=a;else break e}if((le|0)==21){if(e[ve>>2]|0&&(e[A0>>2]=(e[A0>>2]|0)+-1),(s|0)!=0|(f|0)>-1)break;s=0,le=153}else(le|0)==152&&(s||(s=f,le=153));(le|0)==153&&(f=s,s=-1),f&&(Pe(o),Pe(t))}else s=0;while(0);return Fe&&I1(r),C=Ie,s|0}function xr(r,t,n,s){r=r|0,t=t|0,n=n|0,s=s|0;var o=0,f=0,l=0,a=0,c=0,h=0,S=0;S=C,C=C+128|0,o=S+112|0,h=S,f=h,l=37352,a=f+112|0;do e[f>>2]=e[l>>2],f=f+4|0,l=l+4|0;while((f|0)<(a|0));return(t+-1|0)>>>0>2147483646?t?(t=n2()|0,e[t>>2]=75,t=-1):(t=1,c=4):(o=r,c=4),(c|0)==4&&(c=-2-o|0,c=t>>>0>c>>>0?c:t,e[h+48>>2]=c,r=h+20|0,e[r>>2]=o,e[h+44>>2]=o,t=o+c|0,o=h+16|0,e[o>>2]=t,e[h+28>>2]=t,t=xf(h,n,s)|0,c&&(n=e[r>>2]|0,m[n+(((n|0)==(e[o>>2]|0))<<31>>31)>>0]=0)),C=S,t|0}function qf(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;f=C,C=C+112|0,s=f,o=s,l=o+112|0;do e[o>>2]=0,o=o+4|0;while((o|0)<(l|0));return e[s+32>>2]=29,e[s+44>>2]=r,e[s+76>>2]=-1,e[s+84>>2]=r,l=HT(s,t,n)|0,C=f,l|0}function On(r,t,n){return r=r|0,t=t|0,n=n|0,+ +BS(r,t,2)}function zT(r,t,n){return r=r|0,t=t|0,n=n|0,r=Mo(r,t,n,-1,-1)|0,r|0}function YT(r,t,n){return r=r|0,t=t|0,n=n|0,r=Mo(r,t,n,0,-2147483648)|0,r|0}function Nf(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0,f=0,l=0;f=t&255,s=(n|0)!=0;e:do if(s&(r&3|0)!=0)for(o=t&255;;){if((m[r>>0]|0)==o<<24>>24){l=6;break e}if(r=r+1|0,n=n+-1|0,s=(n|0)!=0,!(s&(r&3|0)!=0)){l=5;break}}else l=5;while(0);(l|0)==5&&(s?l=6:n=0);e:do if((l|0)==6&&(o=t&255,(m[r>>0]|0)!=o<<24>>24)){s=Z(f,16843009)|0;i:do if(n>>>0>3){for(;f=e[r>>2]^s,!((f&-2139062144^-2139062144)&f+-16843009);)if(r=r+4|0,n=n+-4|0,n>>>0<=3){l=11;break i}}else l=11;while(0);if((l|0)==11&&!n){n=0;break}for(;;){if((m[r>>0]|0)==o<<24>>24)break e;if(r=r+1|0,n=n+-1|0,!n){n=0;break}}}while(0);return(n|0?r:0)|0}function XT(r,t){r=r|0,t=t|0;var n=0,s=0;n=t;e:do if((n^r)&3)s=8;else{if(n&3)do{if(n=m[t>>0]|0,m[r>>0]=n,!(n<<24>>24))break e;t=t+1|0,r=r+1|0}while(t&3|0);if(n=e[t>>2]|0,!((n&-2139062144^-2139062144)&n+-16843009))for(s=r;t=t+4|0,r=s+4|0,e[s>>2]=n,n=e[t>>2]|0,!((n&-2139062144^-2139062144)&n+-16843009);)s=r;s=8}while(0);if((s|0)==8&&(s=m[t>>0]|0,m[r>>0]=s,s<<24>>24))do t=t+1|0,r=r+1|0,s=m[t>>0]|0,m[r>>0]=s;while(s<<24>>24);return r|0}function Uf(r,t){r=r|0,t=t|0;var n=0,s=0;if(s=m[r>>0]|0,n=m[t>>0]|0,!(s<<24>>24)||s<<24>>24!=n<<24>>24)t=s;else{do r=r+1|0,t=t+1|0,s=m[r>>0]|0,n=m[t>>0]|0;while(!(!(s<<24>>24)||s<<24>>24!=n<<24>>24));t=s}return(t&255)-(n&255)|0}function Mn(r,t){return r=r|0,t=t|0,XT(r,t)|0,r|0}function fi(r){r=r|0;var t=0,n=0,s=0;s=r;e:do if(!(s&3))n=4;else for(t=r,r=s;;){if(!(m[t>>0]|0))break e;if(t=t+1|0,r=t,!(r&3)){r=t,n=4;break}}while(0);if((n|0)==4){for(;t=e[r>>2]|0,!((t&-2139062144^-2139062144)&t+-16843009);)r=r+4|0;if((t&255)<<24>>24)do r=r+1|0;while(m[r>>0]|0)}return r-s|0}function jT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0,o=0;if(!n)t=0;else{s=m[r>>0]|0;e:do if(!(s<<24>>24))s=0;else for(;;){if(n=n+-1|0,o=m[t>>0]|0,!(s<<24>>24==o<<24>>24&((n|0)!=0&o<<24>>24!=0)))break e;if(r=r+1|0,t=t+1|0,s=m[r>>0]|0,!(s<<24>>24)){s=0;break}}while(0);t=(s&255)-(z[t>>0]|0)|0}return t|0}function qr(r){r=r|0;var t=0;for(t=r;e[t>>2]|0;)t=t+4|0;return t-r>>2|0}function li(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if(n)for(s=r;n=n+-1|0,e[s>>2]=e[t>>2],n;)t=t+4|0,s=s+4|0;return r|0}function WT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if(s=(n|0)==0,r-t>>2>>>0>>0){if(!s)do n=n+-1|0,e[r+(n<<2)>>2]=e[t+(n<<2)>>2];while(n|0)}else if(!s)for(s=t,t=r;n=n+-1|0,e[t>>2]=e[s>>2],n;)s=s+4|0,t=t+4|0;return r|0}function JT(r,t,n){r=r|0,t=t|0,n=n|0;var s=0;if(n)for(s=r;n=n+-1|0,e[s>>2]=t,n;)s=s+4|0;return r|0}function Bf(r,t){r=r|0,t=t|0;var n=0,s=0,o=0,f=0,l=0,a=0;switch(l=r+4|0,n=e[l>>2]|0,a=r+100|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=Ye(r)|0,n|0){case 43:case 45:{s=(n|0)==45&1,n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=Ye(r)|0,(t|0)!=0&(n+-48|0)>>>0>9&&e[a>>2]|0&&(e[l>>2]=(e[l>>2]|0)+-1),f=s;break}default:f=0}if((n+-48|0)>>>0>9)e[a>>2]|0?(e[l>>2]=(e[l>>2]|0)+-1,s=-2147483648,n=0):(s=-2147483648,n=0);else{s=0;do s=n+-48+(s*10|0)|0,n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=Ye(r)|0;while((n+-48|0)>>>0<10&(s|0)<214748364);if(t=((s|0)<0)<<31>>31,(n+-48|0)>>>0<10){do t=wi(s|0,t|0,10,0)|0,s=o0,n=L2(n|0,((n|0)<0)<<31>>31|0,-48,-1)|0,s=L2(n|0,o0|0,t|0,s|0)|0,t=o0,n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=Ye(r)|0;while((n+-48|0)>>>0<10&((t|0)<21474836|(t|0)==21474836&s>>>0<2061584302));o=s}else o=s;if((n+-48|0)>>>0<10)do n=e[l>>2]|0,n>>>0<(e[a>>2]|0)>>>0?(e[l>>2]=n+1,n=z[n>>0]|0):n=Ye(r)|0;while((n+-48|0)>>>0<10);e[a>>2]|0&&(e[l>>2]=(e[l>>2]|0)+-1),r=(f|0)!=0,n=$2(0,0,o|0,t|0)|0,s=r?o0:t,n=r?n:o}return o0=s,n|0}function KT(r){r=r|0,e[r+68>>2]|0||I1(r)}function ZT(r){r=r|0,e[r+68>>2]|0||I1(r)}function xn(r){r=r|0;var t=0,n=0,s=0,o=0,f=0,l=0;return t=r+20|0,f=r+28|0,(e[t>>2]|0)>>>0>(e[f>>2]|0)>>>0&&(ge[e[r+36>>2]&63](r,0,0)|0,(e[t>>2]|0)==0)?t=-1:(l=r+4|0,n=e[l>>2]|0,s=r+8|0,o=e[s>>2]|0,n>>>0>>0&&ge[e[r+40>>2]&63](r,n-o|0,1)|0,e[r+16>>2]=0,e[f>>2]=0,e[t>>2]=0,e[s>>2]=0,e[l>>2]=0,t=0),t|0}var $T=[Y1,ka,Ca,gc,kc,yc,Dc,kr,wr,Y1,Y1,Y1,Y1,Y1,Y1,Y1],Nr=[Wi,rv,T5,f5,K3,B3,E3,k3,s3,lT,fT,oT,Wi,Wi,Wi,Wi],bT=[of,Ec,xc,of],K0=[Ae,$g,bg,m5,p5,t5,n5,X3,j3,x3,q3,D3,_3,p3,g3,i3,r3,Y8,X8,q8,N8,_8,I8,g8,v8,o8,f8,I6,P6,T6,k6,Z4,$4,t6,f6,n6,A9,Zo,D9,_9,Mu,xu,Pv,qu,Iu,Pu,Su,hu,vu,Tu,Cu,yu,Nu,Uu,Vu,Hu,ju,Wu,$u,bu,g6,v6,q6,N6,G6,V6,X6,j6,Z6,$6,h3,m3,Ih,uv,Tv,kv,Ev,Lv,Bv,Qv,Ir,zv,jv,Wv,Kv,bv,Zv,$v,eT,iT,ji,JS,ih,Q0,sh,ch,hn,_h,Yh,n9,v9,jo,T9,k9,d9,Jo,C9,y9,L9,$o,F9,R9,U9,B9,N2,Q9,G9,V9,z9,tS,W9,J9,b9,em,Sm,hm,Dm,_m,Nm,Um,E5,L5,K5,Z5,va,Ta,wa,da,Aa,Da,xa,qa,Xa,ja,tc,nc,mc,pc,dc,Cc,Ic,Pc,Oc,Mc,Bc,Qc,zc,Yc,Ro,Zc,Oo,TS,tf,NS,ef,g7,rf,v7,H9,rS,sS,IS,Km,n7,S7,h7,Fv,Sf,_1,K4,kn,w9,c6,l3,vT,KT,ZT,zS,yT,vc,hr,nS,zp,Zp,$p,bp,eg,ig,rg,H,b0,Pe,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae],_e=[_n,iv,v5,o5,J3,U3,P3,T3,n3,j8,U8,P8,T8,l8,E6,w6,b4,Xh,wv,dv,KS,eh,oh,ah,s9,Pa,Ea,La,Fa,Oa,Ma,Ba,Qa,Ga,Va,za,Ya,Ka,Za,$a,ba,ic,rc,fc,lc,uc,ac,Sc,hc,Hc,Wc,C7,A7,_7,y7,D7,I7,H4,Rv,Cv,yv,hf,zh,ou,lu,I9,Vh,Mh,a6,y6,r8,c8,d8,F8,G8,K8,f3,d3,F3,G3,$3,u5,w5,nv,gv,j1,vh,ph,Hh,O9,gh,Rh,Uh,Nh,hp,mp,pp,gp,vp,Tp,qS,kp,wp,dp,Cp,yp,Ap,Dp,_p,Ip,Pp,Ep,Lp,Fp,Rp,Op,Mp,xp,qp,Np,Up,Bp,Qp,Gp,Vp,fg,_n,_n],Ji=[w2,im,rm,tm,nm,sm,om,fm,lm,um,am,cm,mm,pm,gm,vm,Tm,km,wm,dm,Cm,ym,Am,Lm,Rm,Vm,A5,R5,O5,M5,x5,q5,b5,ea,ia,ra,ta,Rc,Uc,mi,ki,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2,w2],X0=[Ee,Kh,Zh,Fu,e9,av,Gv,Yv,Jv,qT,ZS,a9,S9,h9,u9,rh,th,fh,bh,Sh,hh,M9,F5,P7,L7,R7,U7,Q7,M7,q7,$5,E7,F7,O7,B7,G7,x7,N7,_a,Ia,Ra,Na,Ua,Ha,Wa,Ja,ec,sc,oc,cc,Xm,jm,Jm,T7,w7,k7,d7,RS,OS,xS,e7,i7,t7,l7,u7,c7,hv,C0,Je,e2,Wo,Ko,Vg,Hg,zg,o1,qr,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee,Ee],ek=[ff,Tc,Ac,ff],ge=[m2,jh,$h,r9,kh,wh,rT,QS,Lf,UT,NT,BT,o9,c9,$S,p9,lh,j9,$9,Gc,Xc,wS,CS,DS,oS,cS,hS,gS,fu,US,Ho,_T,ap,Sp,oi,OT,LT,VT,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2,m2],ik=[lf,Fc,Nc,lf],ui=[X1,Eu,cT,aT,uT,f9,Wh,Vc,jc,X1,X1,X1,X1,X1,X1,X1],rk=[Ar,Em,Mm,Gm,_5,Ar,Ar,Ar],tk=[Dr,wc,_c,Lc,qc,Dr,Dr,Dr],M2=[_2,ev,g5,s5,W3,N3,I3,v3,t3,J8,Q8,L8,w8,a8,F6,C6,iu,Ru,Ou,m9,bS,nh,g9,i9,uh,mh,t9,kS,dS,yS,aS,SS,mS,Ov,X4,W4,P9,E2,E9,DT,AT,Lh,xh,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2,_2],Ki=[D1,Y9,K9,Im,Pm,Fm,qm,Bm,Qm,y5,P5,_S,Ym,Wm,vS,LS,MS,bm,r7,f7,a7,MT,RT,D1,D1,D1,D1,D1,D1,D1,D1,D1],nk=[Yg,ag,ug,lg],sk=[si,z4,mf,k2,bc,eS,iS,TT,wT,kT,si,si,si,si,si,si],qn=[di,W8,B8,E8,k8,u8,L6,d6,eu,AS,fS,lS,uS,pS,Sv,vv,Z7,fp,If,CT,Rr,gg,pg,mg,hg,Sg,cg,di,di,di,di,di],Ur=[Xg,Th,cv,x9,Mv,q1,jg,Dh,Vo,Av,Ch,N9,lp,up,cp,vn],Qf=[uf,Wg,mT,Jg,pT,Kg,Er,uf],N1=[Ci,N5,na,Hm,zm,PS,ES,Zm,$m,s7,o7,Ci,Ci,Ci,Ci,Ci],ok=[_r,Om,xm,D5,I5,_r,_r,_r],Br=[Q2,l6,u6,s6,o6,Lu,mu,pu,ku,wu,Au,Du,Bu,Qu,zu,Yu,Ju,Ku,e6,i6,U6,B6,H6,z6,W6,J6,b6,e8,tT,nT,sT,l9,Jh,X9,Z9,N4,Ah,ru,tu,nu,su,uu,au,cu,R6,O6,M6,x6,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2,Q2];return{_jpegls_encode:qv,___cxa_can_catch:ST,_free:Pe,_jpegls_decode:xv,___cxa_is_pointer_type:hT,_i64Add:L2,_memmove:dr,_i64Subtract:$2,_memset:ye,_malloc:g2,_memcpy:Ne,_bitshift64Lshr:z1,_bitshift64Shl:o2,__GLOBAL__I_000101:YS,__GLOBAL__sub_I_jpegls_cpp:J4,__GLOBAL__sub_I_iostream_cpp:XS,runPostSets:vg,_emscripten_replace_memory:P4,stackAlloc:E4,stackSave:L4,stackRestore:F4,establishStackSpace:R4,setThrew:O4,setTempRet0:M4,getTempRet0:x4,dynCall_iiiiiiii:kg,dynCall_viiiii:wg,dynCall_iiiiiid:dg,dynCall_vi:Cg,dynCall_vii:yg,dynCall_iiiiiii:Ag,dynCall_ii:Dg,dynCall_iiiiiiiiiiii:_g,dynCall_iiii:Ig,dynCall_viiiiiiiiiiiiiii:Pg,dynCall_viiiiii:Eg,dynCall_viiiiiii:Lg,dynCall_viiiiiiiiii:Fg,dynCall_iii:Rg,dynCall_iiiiii:Og,dynCall_diii:Mg,dynCall_i:xg,dynCall_iiiii:qg,dynCall_viii:Ng,dynCall_v:Ug,dynCall_iiiiiiiii:Bg,dynCall_iiiiid:Qg,dynCall_viiii:Gg}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_jpegls_encode=Module._jpegls_encode=asm._jpegls_encode,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_free=Module._free=asm._free,_jpegls_decode=Module._jpegls_decode=asm._jpegls_decode,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_i64Add=Module._i64Add=asm._i64Add,_memmove=Module._memmove=asm._memmove,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_memset=Module._memset=asm._memset,_malloc=Module._malloc=asm._malloc,_memcpy=Module._memcpy=asm._memcpy,_emscripten_replace_memory=Module._emscripten_replace_memory=asm._emscripten_replace_memory,runPostSets=Module.runPostSets=asm.runPostSets,__GLOBAL__sub_I_iostream_cpp=Module.__GLOBAL__sub_I_iostream_cpp=asm.__GLOBAL__sub_I_iostream_cpp,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,__GLOBAL__sub_I_jpegls_cpp=Module.__GLOBAL__sub_I_jpegls_cpp=asm.__GLOBAL__sub_I_jpegls_cpp,__GLOBAL__I_000101=Module.__GLOBAL__I_000101=asm.__GLOBAL__I_000101,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,dynCall_iiiiiiii=Module.dynCall_iiiiiiii=asm.dynCall_iiiiiiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_iiiiiid=Module.dynCall_iiiiiid=asm.dynCall_iiiiiid,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_iiiiiii=Module.dynCall_iiiiiii=asm.dynCall_iiiiiii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_iiiiiiiiiiii=Module.dynCall_iiiiiiiiiiii=asm.dynCall_iiiiiiiiiiii,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiiiiiiiiiiiii=Module.dynCall_viiiiiiiiiiiiiii=asm.dynCall_viiiiiiiiiiiiiii,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_viiiiiii=Module.dynCall_viiiiiii=asm.dynCall_viiiiiii,dynCall_viiiiiiiiii=Module.dynCall_viiiiiiiiii=asm.dynCall_viiiiiiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiii=Module.dynCall_iiiii=asm.dynCall_iiiii,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_iiiiiiiii=Module.dynCall_iiiiiiiii=asm.dynCall_iiiiiiiii,dynCall_iiiiid=Module.dynCall_iiiiid=asm.dynCall_iiiiid,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.establishStackSpace=asm.establishStackSpace,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;function ExitStatus(p){this.name="ExitStatus",this.message="Program terminated with exit("+p+")",this.status=p}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function p(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=p)},Module.callMain=Module.callMain=function p(T){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called"),T=T||[],ensureInitRuntime();var A=T.length+1;function P(){for(var Q=0;Q<3;Q++)F.push(0)}var F=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];P();for(var M=0;M0||(preRun(),runDependencies>0)||Module.calledRun)return;function T(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(p),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),T()},1)):T()}Module.run=Module.run=run;function exit(p,T){if(!(T&&Module.noExitRuntime))throw Module.noExitRuntime||(ABORT=!0,EXITSTATUS=p,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(p)),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",function(){process.exit(p)}),console.log(" "),setTimeout(function(){process.exit(p)},500)):ENVIRONMENT_IS_SHELL&&typeof quit=="function"&&quit(p),new ExitStatus(p)}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(p){p!==void 0?(Module.print(p),Module.printErr(p),p=JSON.stringify(p)):p="",ABORT=!0,EXITSTATUS=1;var T=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,A="abort("+p+") at "+stackTrace()+T;throw abortDecorators&&abortDecorators.forEach(function(P){A=P(A,p)}),A}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),run(),Module},moduleType=typeof module;moduleType!=="undefined"&&module.exports&&(module.exports=CharLS)});var ls=Ke((pC,gt)=>{"use strict";var fs=fs||(typeof require<"u"?os():null),Fw=function(){var p;function T(){}T.prototype={decodeJPEGLS:function(M,G){return F(M,G)}};function A(M,G){var Q=p._malloc(M.length);p.writeArrayToMemory(M,Q);var Y=p._malloc(4),X=p._malloc(4),J=p._malloc(4),m=p._malloc(4),R=p._malloc(4),e=p._malloc(4),z=p._malloc(4),b=p._malloc(4),U0=p._malloc(4),V0=p.ccall("jpegls_decode","number",["number","number","number","number","number","number","number","number","number","number","number"],[Q,M.length,Y,X,J,m,R,e,b,z,U0]),t0={result:V0,width:p.getValue(J,"i32"),height:p.getValue(m,"i32"),bitsPerSample:p.getValue(R,"i32"),stride:p.getValue(e,"i32"),components:p.getValue(b,"i32"),allowedLossyError:p.getValue(z,"i32"),interleaveMode:p.getValue(U0,"i32"),pixelData:void 0},f0=p.getValue(Y,"*");return t0.bitsPerSample<=8?(t0.pixelData=new Uint8Array(t0.width*t0.height*t0.components),t0.pixelData.set(new Uint8Array(p.HEAP8.buffer,f0,t0.pixelData.length))):G?(t0.pixelData=new Int16Array(t0.width*t0.height*t0.components),t0.pixelData.set(new Int16Array(p.HEAP16.buffer,f0,t0.pixelData.length))):(t0.pixelData=new Uint16Array(t0.width*t0.height*t0.components),t0.pixelData.set(new Uint16Array(p.HEAP16.buffer,f0,t0.pixelData.length))),p._free(Q),p._free(f0),p._free(Y),p._free(X),p._free(J),p._free(m),p._free(R),p._free(e),p._free(b),p._free(U0),t0}function P(){if(typeof fs>"u")throw"No JPEG-LS decoder loaded";if(!p&&(p=fs(),!p||!p._jpegls_decode))throw"JPEG-LS failed to initialize"}function F(M,G){P();var Q=A(M,G);if(Q.result!==0&&Q.result!==6)throw"JPEG-LS decoder failed to decode frame (error code "+Q.result+")";var Y={};return Y.columns=Q.width,Y.rows=Q.height,Y.pixelData=Q.pixelData,Y}return T}(),Rw=typeof gt;Rw!=="undefined"&>.exports&&(gt.exports=Fw)});var Es=Ke(Re=>{"use strict";var Tt,Ow=";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global";try{Tt=require("worker_threads").Worker}catch{}var Il={};Il.default=Tt?function(p,T,A,P,F){var M=!1,G=new Tt(p+Ow,{eval:!0}).on("error",function(Q){return F(Q,null)}).on("message",function(Q){return F(null,Q)}).on("exit",function(Q){Q&&!M&&F(new Error("exited with code "+Q),null)});return G.postMessage(A,P),G.terminate=function(){return M=!0,Tt.prototype.terminate.call(G)},G}:function(p,T,A,P,F){setImmediate(function(){return F(new Error("async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)"),null)});var M=function(){};return{terminate:M,postMessage:M}};var be=Uint8Array,W2=Uint16Array,Oi=Uint32Array,Mi=new be([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),xi=new be([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ir=new be([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Pl=function(p,T){for(var A=new W2(31),P=0;P<31;++P)A[P]=T+=1<>>1|(f2&21845)<<1,B1=(B1&52428)>>>2|(B1&13107)<<2,B1=(B1&61680)>>>4|(B1&3855)<<4,rr[f2]=((B1&65280)>>>8|(B1&255)<<8)>>>1;var B1,f2,p1=function(p,T,A){for(var P=p.length,F=0,M=new W2(T);F>>Y]=X}else for(Q=new W2(P),F=0;F>>15-p[F]);return Q},G1=new be(288);for(f2=0;f2<144;++f2)G1[f2]=8;var f2;for(f2=144;f2<256;++f2)G1[f2]=9;var f2;for(f2=256;f2<280;++f2)G1[f2]=7;var f2;for(f2=280;f2<288;++f2)G1[f2]=8;var f2,Fi=new be(32);for(f2=0;f2<32;++f2)Fi[f2]=5;var f2,Rl=p1(G1,9,0),Ol=p1(G1,9,1),Ml=p1(Fi,5,0),xl=p1(Fi,5,1),kt=function(p){for(var T=p[0],A=1;AT&&(T=p[A]);return T},m1=function(p,T,A){var P=T/8|0;return(p[P]|p[P+1]<<8)>>(T&7)&A},wt=function(p,T){var A=T/8|0;return(p[A]|p[A+1]<<8|p[A+2]<<16)>>(T&7)},nr=function(p){return(p+7)/8|0},g1=function(p,T,A){(T==null||T<0)&&(T=0),(A==null||A>p.length)&&(A=p.length);var P=new(p.BYTES_PER_ELEMENT==2?W2:p.BYTES_PER_ELEMENT==4?Oi:be)(A-T);return P.set(p.subarray(T,A)),P};Re.FlateErrorCode={UnexpectedEOF:0,InvalidBlockType:1,InvalidLengthLiteral:2,InvalidDistance:3,StreamFinished:4,NoStreamHandler:5,InvalidHeader:6,NoCallback:7,InvalidUTF8:8,ExtraFieldTooLong:9,InvalidDate:10,FilenameTooLong:11,StreamFinishing:12,InvalidZipData:13,UnknownCompressionMethod:14};var ql=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],De=function(p,T,A){var P=new Error(T||ql[p]);if(P.code=p,Error.captureStackTrace&&Error.captureStackTrace(P,De),!A)throw P;return P},sr=function(p,T,A){var P=p.length;if(!P||A&&A.f&&!A.l)return T||new be(0);var F=!T||A,M=!A||A.i;A||(A={}),T||(T=new be(P*3));var G=function(k0){var E0=T.length;if(k0>E0){var R0=new be(Math.max(E0*2,k0));R0.set(T),T=R0}},Q=A.f||0,Y=A.p||0,X=A.b||0,J=A.l,m=A.d,R=A.m,e=A.n,z=P*8;do{if(!J){Q=m1(p,Y,1);var b=m1(p,Y+1,3);if(Y+=3,b)if(b==1)J=Ol,m=xl,R=9,e=5;else if(b==2){var f0=m1(p,Y,31)+257,C=m1(p,Y+10,15)+4,L0=f0+m1(p,Y+5,31)+1;Y+=14;for(var S0=new be(L0),O0=new be(19),_0=0;_0>>4;if(U0<16)S0[_0++]=U0;else{var i0=0,v0=0;for(U0==16?(v0=3+m1(p,Y,3),Y+=2,i0=S0[_0-1]):U0==17?(v0=3+m1(p,Y,7),Y+=3):U0==18&&(v0=11+m1(p,Y,127),Y+=7);v0--;)S0[_0++]=i0}}var K=S0.subarray(0,f0),s0=S0.subarray(f0);R=kt(K),e=kt(s0),J=p1(K,R,1),m=p1(s0,e,1)}else De(1);else{var U0=nr(Y)+4,V0=p[U0-4]|p[U0-3]<<8,t0=U0+V0;if(t0>P){M&&De(0);break}F&&G(X+V0),T.set(p.subarray(U0,t0),X),A.b=X+=V0,A.p=Y=t0*8,A.f=Q;continue}if(Y>z){M&&De(0);break}}F&&G(X+131072);for(var P0=(1<>>4;if(Y+=i0&15,Y>z){M&&De(0);break}if(i0||De(2),u0<256)T[X++]=u0;else if(u0==256){T0=Y,J=null;break}else{var a0=u0-254;if(u0>264){var _0=u0-257,D0=Mi[_0];a0=m1(p,Y,(1<>>4;F0||De(3),Y+=F0&15;var s0=Fl[M0];if(M0>3){var D0=xi[M0];s0+=wt(p,Y)&(1<z){M&&De(0);break}F&&G(X+131072);for(var o0=X+a0;X>>8},Ei=function(p,T,A){A<<=T&7;var P=T/8|0;p[P]|=A,p[P+1]|=A>>>8,p[P+2]|=A>>>16},dt=function(p,T){for(var A=[],P=0;PR&&(R=M[P].s);var e=new W2(R+1),z=yt(A[J-1],e,0);if(z>T){var P=0,b=0,U0=z-T,V0=1<T)b+=V0-(1<>>=U0;b>0;){var f0=M[P].s;e[f0]=0&&b;--P){var C=M[P].s;e[C]==T&&(--e[C],++b)}z=T}return[new be(e),z]},yt=function(p,T,A){return p.s==-1?Math.max(yt(p.l,T,A+1),yt(p.r,T,A+1)):T[p.s]=A},cs=function(p){for(var T=p.length;T&&!p[--T];);for(var A=new W2(++T),P=0,F=p[0],M=1,G=function(Y){A[P++]=Y},Q=1;Q<=T;++Q)if(p[Q]==F&&Q!=T)++M;else{if(!F&&M>2){for(;M>138;M-=138)G(32754);M>2&&(G(M>10?M-11<<5|28690:M-3<<5|12305),M=0)}else if(M>3){for(G(F),--M;M>6;M-=6)G(8304);M>2&&(G(M-3<<5|8208),M=0)}for(;M--;)G(F);M=1,F=p[Q]}return[A.subarray(0,P),T]},Li=function(p,T){for(var A=0,P=0;P>>8,p[F+2]=p[F]^255,p[F+3]=p[F+1]^255;for(var M=0;M4&&!u[ir[d0-1]];--d0);var i0=X+5<<3,v0=Li(F,G1)+Li(M,Fi)+G,K=Li(F,R)+Li(M,b)+G+14+3*d0+Li(O0,u)+(2*O0[16]+3*O0[17]+7*O0[18]);if(i0<=v0&&i0<=K)return At(T,J,p.subarray(Y,Y+X));var s0,P0,h0,T0;if(L1(T,J,1+(K15&&(L1(T,J,F0[_0]>>>5&127),J+=F0[_0]>>>12)}}else s0=Rl,P0=G1,h0=Ml,T0=Fi;for(var _0=0;_0255){var M0=P[_0]>>>18&31;Ei(T,J,s0[M0+257]),J+=P0[M0+257],M0>7&&(L1(T,J,P[_0]>>>23&31),J+=Mi[M0]);var o0=P[_0]&31;Ei(T,J,h0[o0]),J+=T0[o0],o0>3&&(Ei(T,J,P[_0]>>>5&8191),J+=xi[o0])}else Ei(T,J,s0[P[_0]]),J+=P0[P[_0]];return Ei(T,J,s0[256]),J+P0[256]},Nl=new Oi([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Q1=new be(0),Ul=function(p,T,A,P,F,M){var G=p.length,Q=new be(P+G+5*(1+Math.ceil(G/7e3))+F),Y=Q.subarray(P,Q.length-F),X=0;if(!T||G<8)for(var J=0;J<=G;J+=65535){var m=J+65535;m>=G&&(Y[X>>3]=M),X=At(Y,X+1,p.subarray(J,m))}else{for(var R=Nl[T-1],e=R>>>13,z=R&8191,b=(1<7e3||u>24576)&&s0>423){X=Ss(p,Y,0,L0,S0,O0,l0,u,d0,J-d0,X),u=_0=l0=0,d0=J;for(var P0=0;P0<286;++P0)S0[P0]=0;for(var P0=0;P0<30;++P0)O0[P0]=0}var h0=2,T0=0,u0=z,a0=v0-K&32767;if(s0>2&&i0==C(J-a0))for(var D0=Math.min(e,s0)-1,F0=Math.min(32767,J),M0=Math.min(258,s0);a0<=F0&&--u0&&v0!=K;){if(p[J+h0]==p[J+h0-a0]){for(var o0=0;o0h0){if(h0=o0,T0=a0,o0>D0)break;for(var k0=Math.min(a0,o0-2),E0=0,P0=0;P0E0&&(E0=he,K=R0)}}}v0=K,K=U0[v0],a0+=v0-K+32768&32767}if(T0){L0[u++]=268435456|Ct[h0]<<18|as[T0];var re=Ct[h0]&31,te=as[T0]&31;l0+=Mi[re]+xi[te],++S0[257+re],++O0[te],q0=J+h0,++_0}else L0[u++]=p[J],++S0[p[J]]}}X=Ss(p,Y,M,L0,S0,O0,l0,u,d0,J-d0,X),!M&&X&7&&(X=At(Y,X+1,Q1))}return g1(Q,0,P+nr(X)+F)},Bl=function(){for(var p=new Int32Array(256),T=0;T<256;++T){for(var A=T,P=9;--P;)A=(A&1&&-306674912)^A>>>1;p[T]=A}return p}(),qi=function(){var p=-1;return{p:function(T){for(var A=p,P=0;P>>8;p=A},d:function(){return~p}}},vs=function(){var p=1,T=0;return{p:function(A){for(var P=p,F=T,M=A.length|0,G=0;G!=M;){for(var Q=Math.min(G+2655,M);G>16),F=(F&65535)+15*(F>>16)}p=P,T=F},d:function(){return p%=65521,T%=65521,(p&255)<<24|p>>>8<<16|(T&255)<<8|T>>>8}}},ci=function(p,T,A,P,F){return Ul(p,T.level==null?6:T.level,T.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(p.length)))*1.5):12+T.mem,A,P,!F)},or=function(p,T){var A={};for(var P in p)A[P]=p[P];for(var P in T)A[P]=T[P];return A},Dl=function(p,T,A){for(var P=p(),F=p.toString(),M=F.slice(F.indexOf("[")+1,F.lastIndexOf("]")).replace(/\s+/g,"").split(","),G=0;G>>0},us=function(p,T){return R2(p,T)+R2(p,T+4)*4294967296},l2=function(p,T,A){for(;A;++T)p[T]=A,A>>>=8},ks=function(p,T){var A=T.filename;if(p[0]=31,p[1]=139,p[2]=8,p[8]=T.level<2?4:T.level==9?2:0,p[9]=3,T.mtime!=0&&l2(p,4,Math.floor(new Date(T.mtime||Date.now())/1e3)),A){p[3]=8;for(var P=0;P<=A.length;++P)p[P+10]=A.charCodeAt(P)}},ws=function(p){(p[0]!=31||p[1]!=139||p[2]!=8)&&De(6,"invalid gzip data");var T=p[3],A=10;T&4&&(A+=p[10]|(p[11]<<8)+2);for(var P=(T>>3&1)+(T>>4&1);P>0;P-=!p[A++]);return A+(T&2)},Yl=function(p){var T=p.length;return(p[T-4]|p[T-3]<<8|p[T-2]<<16|p[T-1]<<24)>>>0},ds=function(p){return 10+(p.filename&&p.filename.length+1||0)},Cs=function(p,T){var A=T.level,P=A==0?0:A<6?1:A==9?3:2;p[0]=120,p[1]=P<<6|(P?32-2*P:1)},Xl=function(p){((p[0]&15)!=8||p[0]>>>4>7||(p[0]<<8|p[1])%31)&&De(6,"invalid zlib data"),p[1]&32&&De(6,"invalid zlib data: preset dictionaries not supported")};function ys(p,T){return!T&&typeof p=="function"&&(T=p,p={}),this.ondata=T,p}var F1=function(){function p(T,A){!A&&typeof T=="function"&&(A=T,T={}),this.ondata=A,this.o=T||{}}return p.prototype.p=function(T,A){this.ondata(ci(T,this.o,0,0,!A),A)},p.prototype.push=function(T,A){this.ondata||De(5),this.d&&De(4),this.d=A,this.p(T,A||!1)},p}();Re.Deflate=F1;var jl=function(){function p(T,A){Qi([Ui,function(){return[v1,F1]}],this,ys.call(this,T,A),function(P){var F=new F1(P.data);onmessage=v1(F)},6)}return p}();Re.AsyncDeflate=jl;function Wl(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),Bi(p,T,[Ui],function(P){return ii(fr(P.data[0],P.data[1]))},0,A)}Re.deflate=Wl;function fr(p,T){return ci(p,T||{},0,0)}Re.deflateSync=fr;var s1=function(){function p(T){this.s={},this.p=new be(0),this.ondata=T}return p.prototype.e=function(T){this.ondata||De(5),this.d&&De(4);var A=this.p.length,P=new be(A+T.length);P.set(this.p),P.set(T,A),this.p=P},p.prototype.c=function(T){this.d=this.s.i=T||!1;var A=this.s.b,P=sr(this.p,this.o,this.s);this.ondata(g1(P,A,this.s.b),this.d),this.o=g1(P,this.s.b-32768),this.s.b=this.o.length,this.p=g1(this.p,this.s.p/8|0),this.s.p&=7},p.prototype.push=function(T,A){this.e(T),this.c(A)},p}();Re.Inflate=s1;var As=function(){function p(T){this.ondata=T,Qi([Ni,function(){return[v1,s1]}],this,0,function(){var A=new s1;onmessage=v1(A)},7)}return p}();Re.AsyncInflate=As;function Ds(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),Bi(p,T,[Ni],function(P){return ii(Gi(P.data[0],Ts(P.data[1])))},1,A)}Re.inflate=Ds;function Gi(p,T){return sr(p,T)}Re.inflateSync=Gi;var Dt=function(){function p(T,A){this.c=qi(),this.l=0,this.v=1,F1.call(this,T,A)}return p.prototype.push=function(T,A){F1.prototype.push.call(this,T,A)},p.prototype.p=function(T,A){this.c.p(T),this.l+=T.length;var P=ci(T,this.o,this.v&&ds(this.o),A&&8,!A);this.v&&(ks(P,this.o),this.v=0),A&&(l2(P,P.length-8,this.c.d()),l2(P,P.length-4,this.l)),this.ondata(P,A)},p}();Re.Gzip=Dt;Re.Compress=Dt;var Jl=function(){function p(T,A){Qi([Ui,Gl,function(){return[v1,F1,Dt]}],this,ys.call(this,T,A),function(P){var F=new Dt(P.data);onmessage=v1(F)},8)}return p}();Re.AsyncGzip=Jl;Re.AsyncCompress=Jl;function Kl(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),Bi(p,T,[Ui,Gl,function(){return[_t]}],function(P){return ii(_t(P.data[0],P.data[1]))},2,A)}Re.gzip=Kl;Re.compress=Kl;function _t(p,T){T||(T={});var A=qi(),P=p.length;A.p(p);var F=ci(p,T,ds(T),8),M=F.length;return ks(F,T),l2(F,M-8,A.d()),l2(F,M-4,P),F}Re.gzipSync=_t;Re.compressSync=_t;var It=function(){function p(T){this.v=1,s1.call(this,T)}return p.prototype.push=function(T,A){if(s1.prototype.e.call(this,T),this.v){var P=this.p.length>3?ws(this.p):4;if(P>=this.p.length&&!A)return;this.p=this.p.subarray(P),this.v=0}A&&(this.p.length<8&&De(6,"invalid gzip data"),this.p=this.p.subarray(0,-8)),s1.prototype.c.call(this,A)},p}();Re.Gunzip=It;var Zl=function(){function p(T){this.ondata=T,Qi([Ni,Vl,function(){return[v1,s1,It]}],this,0,function(){var A=new It;onmessage=v1(A)},9)}return p}();Re.AsyncGunzip=Zl;function $l(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),Bi(p,T,[Ni,Vl,function(){return[Pt]}],function(P){return ii(Pt(P.data[0]))},3,A)}Re.gunzip=$l;function Pt(p,T){return sr(p.subarray(ws(p),-8),T||new be(Yl(p)))}Re.gunzipSync=Pt;var hs=function(){function p(T,A){this.c=vs(),this.v=1,F1.call(this,T,A)}return p.prototype.push=function(T,A){F1.prototype.push.call(this,T,A)},p.prototype.p=function(T,A){this.c.p(T);var P=ci(T,this.o,this.v&&2,A&&4,!A);this.v&&(Cs(P,this.o),this.v=0),A&&l2(P,P.length-4,this.c.d()),this.ondata(P,A)},p}();Re.Zlib=hs;var xw=function(){function p(T,A){Qi([Ui,Hl,function(){return[v1,F1,hs]}],this,ys.call(this,T,A),function(P){var F=new hs(P.data);onmessage=v1(F)},10)}return p}();Re.AsyncZlib=xw;function qw(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),Bi(p,T,[Ui,Hl,function(){return[ms]}],function(P){return ii(ms(P.data[0],P.data[1]))},4,A)}Re.zlib=qw;function ms(p,T){T||(T={});var A=vs();A.p(p);var P=ci(p,T,2,4);return Cs(P,T),l2(P,P.length-4,A.d()),P}Re.zlibSync=ms;var Et=function(){function p(T){this.v=1,s1.call(this,T)}return p.prototype.push=function(T,A){if(s1.prototype.e.call(this,T),this.v){if(this.p.length<2&&!A)return;this.p=this.p.subarray(2),this.v=0}A&&(this.p.length<4&&De(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),s1.prototype.c.call(this,A)},p}();Re.Unzlib=Et;var bl=function(){function p(T){this.ondata=T,Qi([Ni,zl,function(){return[v1,s1,Et]}],this,0,function(){var A=new Et;onmessage=v1(A)},11)}return p}();Re.AsyncUnzlib=bl;function e4(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),Bi(p,T,[Ni,zl,function(){return[Lt]}],function(P){return ii(Lt(P.data[0],Ts(P.data[1])))},5,A)}Re.unzlib=e4;function Lt(p,T){return sr((Xl(p),p.subarray(2,-4)),T)}Re.unzlibSync=Lt;var i4=function(){function p(T){this.G=It,this.I=s1,this.Z=Et,this.ondata=T}return p.prototype.push=function(T,A){if(this.ondata||De(5),this.s)this.s.push(T,A);else{if(this.p&&this.p.length){var P=new be(this.p.length+T.length);P.set(this.p),P.set(T,this.p.length)}else this.p=T;if(this.p.length>2){var F=this,M=function(){F.ondata.apply(F,arguments)};this.s=this.p[0]==31&&this.p[1]==139&&this.p[2]==8?new this.G(M):(this.p[0]&15)!=8||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(M):new this.Z(M),this.s.push(this.p,A),this.p=null}}},p}();Re.Decompress=i4;var Nw=function(){function p(T){this.G=Zl,this.I=As,this.Z=bl,this.ondata=T}return p.prototype.push=function(T,A){i4.prototype.push.call(this,T,A)},p}();Re.AsyncDecompress=Nw;function Uw(p,T,A){return A||(A=T,T={}),typeof A!="function"&&De(7),p[0]==31&&p[1]==139&&p[2]==8?$l(p,T,A):(p[0]&15)!=8||p[0]>>4>7||(p[0]<<8|p[1])%31?Ds(p,T,A):e4(p,T,A)}Re.decompress=Uw;function Bw(p,T){return p[0]==31&&p[1]==139&&p[2]==8?Pt(p,T):(p[0]&15)!=8||p[0]>>4>7||(p[0]<<8|p[1])%31?Gi(p,T):Lt(p,T)}Re.decompressSync=Bw;var _s=function(p,T,A,P){for(var F in p){var M=p[F],G=T+F,Q=P;Array.isArray(M)&&(Q=or(P,M[1]),M=M[0]),M instanceof be?A[G]=[M,Q]:(A[G+="/"]=[new be(0),Q],_s(M,G,A,P))}},_l=typeof TextEncoder<"u"&&new TextEncoder,ps=typeof TextDecoder<"u"&&new TextDecoder,r4=0;try{ps.decode(Q1,{stream:!0}),r4=1}catch{}var t4=function(p){for(var T="",A=0;;){var P=p[A++],F=(P>127)+(P>223)+(P>239);if(A+F>p.length)return[T,g1(p,A-1)];F?F==3?(P=((P&15)<<18|(p[A++]&63)<<12|(p[A++]&63)<<6|p[A++]&63)-65536,T+=String.fromCharCode(55296|P>>10,56320|P&1023)):F&1?T+=String.fromCharCode((P&31)<<6|p[A++]&63):T+=String.fromCharCode((P&15)<<12|(p[A++]&63)<<6|p[A++]&63):T+=String.fromCharCode(P)}},Qw=function(){function p(T){this.ondata=T,r4?this.t=new TextDecoder:this.p=Q1}return p.prototype.push=function(T,A){if(this.ondata||De(5),A=!!A,this.t){this.ondata(this.t.decode(T,{stream:!0}),A),A&&(this.t.decode().length&&De(8),this.t=null);return}this.p||De(4);var P=new be(this.p.length+T.length);P.set(this.p),P.set(T,this.p.length);var F=t4(P),M=F[0],G=F[1];A?(G.length&&De(8),this.p=null):this.p=G,this.ondata(M,A)},p}();Re.DecodeUTF8=Qw;var Gw=function(){function p(T){this.ondata=T}return p.prototype.push=function(T,A){this.ondata||De(5),this.d&&De(4),this.ondata(ei(T),this.d=A||!1)},p}();Re.EncodeUTF8=Gw;function ei(p,T){if(T){for(var A=new be(p.length),P=0;P>1)),G=0,Q=function(J){M[G++]=J},P=0;PM.length){var Y=new be(G+8+(F-P<<1));Y.set(M),M=Y}var X=p.charCodeAt(P);X<128||T?Q(X):X<2048?(Q(192|X>>6),Q(128|X&63)):X>55295&&X<57344?(X=65536+(X&1023<<10)|p.charCodeAt(++P)&1023,Q(240|X>>18),Q(128|X>>12&63),Q(128|X>>6&63),Q(128|X&63)):(Q(224|X>>12),Q(128|X>>6&63),Q(128|X&63))}return g1(M,0,G)}Re.strToU8=ei;function Is(p,T){if(T){for(var A="",P=0;P65535&&De(9),T+=P+4}return T},Ri=function(p,T,A,P,F,M,G,Q){var Y=P.length,X=A.extra,J=Q&&Q.length,m=b1(X);l2(p,T,G!=null?33639248:67324752),T+=4,G!=null&&(p[T++]=20,p[T++]=A.os),p[T]=20,T+=2,p[T++]=A.flag<<1|(M<0&&8),p[T++]=F&&8,p[T++]=A.compression&255,p[T++]=A.compression>>8;var R=new Date(A.mtime==null?Date.now():A.mtime),e=R.getFullYear()-1980;if((e<0||e>119)&&De(10),l2(p,T,e<<25|R.getMonth()+1<<21|R.getDate()<<16|R.getHours()<<11|R.getMinutes()<<5|R.getSeconds()>>>1),T+=4,M!=-1&&(l2(p,T,A.crc),l2(p,T+4,M<0?-M-2:M),l2(p,T+8,A.size)),l2(p,T+12,Y),l2(p,T+14,m),T+=16,G!=null&&(l2(p,T,J),l2(p,T+6,A.attrs),l2(p,T+10,G),T+=14),p.set(P,T),T+=Y,m)for(var z in X){var b=X[z],U0=b.length;l2(p,T,+z),l2(p,T+2,U0),p.set(b,T+4),T+=4+U0}return J&&(p.set(Q,T),T+=J),T},Ps=function(p,T,A,P,F){l2(p,T,101010256),l2(p,T+8,A),l2(p,T+10,A),l2(p,T+12,P),l2(p,T+16,F)},tr=function(){function p(T){this.filename=T,this.c=qi(),this.size=0,this.compression=0}return p.prototype.process=function(T,A){this.ondata(null,T,A)},p.prototype.push=function(T,A){this.ondata||De(5),this.c.p(T),this.size+=T.length,A&&(this.crc=this.c.d()),this.process(T,A||!1)},p}();Re.ZipPassThrough=tr;var Vw=function(){function p(T,A){var P=this;A||(A={}),tr.call(this,T),this.d=new F1(A,function(F,M){P.ondata(null,F,M)}),this.compression=8,this.flag=n4(A.level)}return p.prototype.process=function(T,A){try{this.d.push(T,A)}catch(P){this.ondata(P,null,A)}},p.prototype.push=function(T,A){tr.prototype.push.call(this,T,A)},p}();Re.ZipDeflate=Vw;var Hw=function(){function p(T,A){var P=this;A||(A={}),tr.call(this,T),this.d=new jl(A,function(F,M,G){P.ondata(F,M,G)}),this.compression=8,this.flag=n4(A.level),this.terminate=this.d.terminate}return p.prototype.process=function(T,A){this.d.push(T,A)},p.prototype.push=function(T,A){tr.prototype.push.call(this,T,A)},p}();Re.AsyncZipDeflate=Hw;var zw=function(){function p(T){this.ondata=T,this.u=[],this.d=1}return p.prototype.add=function(T){var A=this;if(this.ondata||De(5),this.d&2)this.ondata(De(4+(this.d&1)*8,0,1),null,!1);else{var P=ei(T.filename),F=P.length,M=T.comment,G=M&&ei(M),Q=F!=T.filename.length||G&&M.length!=G.length,Y=F+b1(T.extra)+30;F>65535&&this.ondata(De(11,0,1),null,!1);var X=new be(Y);Ri(X,0,T,P,Q,-1);var J=[X],m=function(){for(var U0=0,V0=J;U065535&&v0(De(11,0,1),null),!i0)v0(null,f0);else if(S0<16e4)try{v0(null,fr(f0,C))}catch(K){v0(K,null)}else J.push(Wl(f0,C,v0))},b=0;b65535&&De(11);var V0=J?fr(Y,X):Y,t0=V0.length,f0=qi();f0.p(Y),P.push(or(X,{size:Y.length,crc:f0.d(),c:V0,f:m,m:z,u:R!=G.length||z&&e.length!=b,o:F,compression:J})),F+=30+R+U0+t0,M+=76+2*(R+U0)+(b||0)+t0}for(var C=new be(M+22),L0=F,S0=M-F,O0=0;O00){var F=Math.min(this.c,T.length),M=T.subarray(0,F);if(this.c-=F,this.d?this.d.push(M,!this.c):this.k[0].push(M),T=T.subarray(F),T.length)return this.push(T,A)}else{var G=0,Q=0,Y=void 0,X=void 0;this.p.length?T.length?(X=new be(this.p.length+T.length),X.set(this.p),X.set(T,this.p.length)):X=this.p:X=T;for(var J=X.length,m=this.c,R=m&&this.d,e=function(){var V0,t0=R2(X,Q);if(t0==67324752){G=1,Y=Q,z.d=null,z.c=0;var f0=i1(X,Q+6),C=i1(X,Q+8),L0=f0&2048,S0=f0&8,O0=i1(X,Q+26),_0=i1(X,Q+28);if(J>Q+30+O0+_0){var l0=[];z.k.unshift(l0),G=2;var u=R2(X,Q+18),q0=R2(X,Q+22),d0=Is(X.subarray(Q+30,Q+=30+O0),!L0);u==4294967295?(V0=S0?[-2]:f4(X,Q),u=V0[0],q0=V0[1]):S0&&(u=-1),Q+=_0,z.c=u;var i0,v0={name:d0,compression:C,start:function(){if(v0.ondata||De(5),!u)v0.ondata(null,Q1,!0);else{var K=P.o[C];K||v0.ondata(De(14,"unknown compression type "+C,1),null,!1),i0=u<0?new K(d0):new K(d0,u,q0),i0.ondata=function(T0,u0,a0){v0.ondata(T0,u0,a0)};for(var s0=0,P0=l0;s0=0&&(v0.size=u,v0.originalSize=q0),z.onfile(v0)}return"break"}else if(m){if(t0==134695760)return Y=Q+=12+(m==-2&&8),G=3,z.c=0,"break";if(t0==33639248)return Y=Q-=4,G=3,z.c=0,"break"}},z=this;Q65558)return G(De(13,0,1),null),F;var Y=i1(p,Q+8);if(Y){var X=Y,J=R2(p,Q+16),m=J==4294967295||X==65535;if(m){var R=R2(p,Q-12);m=R2(p,R)==101075792,m&&(X=Y=R2(p,R+32),J=R2(p,R+48))}for(var e=T&&T.filter,z=function(U0){var V0=o4(p,J,m),t0=V0[0],f0=V0[1],C=V0[2],L0=V0[3],S0=V0[4],O0=V0[5],_0=s4(p,O0);J=S0;var l0=function(q0,d0){q0?(F(),G(q0,null)):(d0&&(M[L0]=d0),--Y||G(null,M))};if(!e||e({name:L0,size:f0,originalSize:C,compression:t0}))if(!t0)l0(null,g1(p,_0,_0+f0));else if(t0==8){var u=p.subarray(_0,_0+f0);if(f0<32e4)try{l0(null,Gi(u,new be(C)))}catch(q0){l0(q0,null)}else P.push(Ds(u,{size:C},l0))}else l0(De(14,"unknown compression type "+t0,1),null);else l0(null,null)},b=0;b65558)&&De(13);var F=i1(p,P+8);if(!F)return{};var M=R2(p,P+16),G=M==4294967295||F==65535;if(G){var Q=R2(p,P-12);G=R2(p,Q)==101075792,G&&(F=R2(p,Q+32),M=R2(p,Q+48))}for(var Y=T&&T.filter,X=0;X{"use strict";var Se=Se||{};Se.Tag=Se.Tag||(typeof require<"u"?it():null);Se.Utils=Se.Utils||(typeof require<"u"?J1():null);Se.Dictionary=Se.Dictionary||(typeof require<"u"?Hr():null);Se.Image=Se.Image||(typeof require<"u"?Ot():null);var u4=u4||(typeof require<"u"?Es():null);Se.Parser=Se.Parser||function(){this.littleEndian=!0,this.explicit=!0,this.metaFound=!1,this.metaFinished=!1,this.metaFinishedOffset=-1,this.needsDeflate=!1,this.inflated=null,this.encapsulation=!1,this.level=0,this.error=null};Se.Parser.verbose=!1;Se.Parser.MAGIC_COOKIE_OFFSET=128;Se.Parser.MAGIC_COOKIE=[68,73,67,77];Se.Parser.VRS=["AE","AS","AT","CS","DA","DS","DT","FL","FD","IS","LO","LT","OB","OD","OF","OW","PN","SH","SL","SS","ST","TM","UI","UL","UN","US","UT","UC"];Se.Parser.DATA_VRS=["OB","OW","OF","SQ","UT","UN","UC"];Se.Parser.RAW_DATA_VRS=["OB","OD","OF","OW","UN"];Se.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE="1.2.840.10008.1.2";Se.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE="1.2.840.10008.1.2.1";Se.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG="1.2.840.10008.1.2.2";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG="1.2.840.10008.1.2.4";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS="1.2.840.10008.1.2.4.57";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1="1.2.840.10008.1.2.4.70";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT="1.2.840.10008.1.2.4.50";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT="1.2.840.10008.1.2.4.51";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS="1.2.840.10008.1.2.4.80";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS="1.2.840.10008.1.2.4.81";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS="1.2.840.10008.1.2.4.90";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000="1.2.840.10008.1.2.4.91";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE="1.2.840.10008.1.2.5";Se.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE="1.2.840.10008.1.2.1.99";Se.Parser.UNDEFINED_LENGTH=4294967295;Se.Parser.isMagicCookieFound=function(p){var T=Se.Parser.MAGIC_COOKIE_OFFSET,A=Se.Parser.MAGIC_COOKIE.length,P;for(P=0;P=this.metaFinishedOffset&&(this.needsDeflate=!1,F=p.buffer.slice(0,P.offsetEnd),M=p.buffer.slice(P.offsetEnd),this.inflated=Se.Utils.concatArrayBuffers(F,u4.decompressSync(new Uint8Array(M))),p=new DataView(this.inflated)),P=this.getNextTag(p,P.offsetEnd)}catch(G){this.error=G}return T!==null&&(T.littleEndian=this.littleEndian),T};Se.Parser.prototype.parseEncapsulated=function(p){var T=0,A,P=[];this.encapsulation=!0;try{for(A=this.getNextTag(p,T);A!==null;)A.isSublistItem()&&P.push(A),Se.Parser.verbose&&console.log(A.toString()),A=this.getNextTag(p,A.offsetEnd)}catch(F){this.error=F}return P};Se.Parser.prototype.testForValidTag=function(p){var T,A=null;try{T=this.findFirstTagOffset(p),A=this.getNextTag(p,T,!1)}catch(P){this.error=P}return A};Se.Parser.prototype.getNextTag=function(p,T,A){var P=0,F,M=null,G=T,Q,Y=0,X=!0,J=null,m;if(T>=p.byteLength)return null;this.metaFinished?(X=this.littleEndian,P=p.getUint16(T,X)):(P=p.getUint16(T,!0),this.metaFinishedOffset!==-1&&T>=this.metaFinishedOffset||P!==2?(this.metaFinished=!0,X=this.littleEndian,P=p.getUint16(T,X)):X=!0),!this.metaFound&&P===2&&(this.metaFound=!0),T+=2,F=p.getUint16(T,X),T+=2,this.explicit||!this.metaFinished?(J=Se.Utils.getStringAt(p,T,2),!this.metaFound&&this.metaFinished&&Se.Parser.VRS.indexOf(J)===-1?(J=Se.Dictionary.getVR(P,F),Y=p.getUint32(T,X),T+=4,this.explicit=!1):(T+=2,Se.Parser.DATA_VRS.indexOf(J)!==-1?(T+=2,Y=p.getUint32(T,X),T+=4):(Y=p.getUint16(T,X),T+=2))):(J=Se.Dictionary.getVR(P,F),Y=p.getUint32(T,X),Y===Se.Parser.UNDEFINED_LENGTH&&(J="SQ"),T+=4),Q=T;var R=P===Se.Tag.TAG_PIXEL_DATA[0]&&F===Se.Tag.TAG_PIXEL_DATA[1],e=P===40&&F>=4609&&F<4864;if(J==="SQ"||!e&&!R&&!this.encapsulation&&Se.Parser.DATA_VRS.indexOf(J)!==-1&&J!=="UC"?(M=this.parseSublist(p,T,Y,J!=="SQ"),Y===Se.Parser.UNDEFINED_LENGTH&&(Y=M[M.length-1].offsetEnd-T)):Y>0&&!A&&(Y===Se.Parser.UNDEFINED_LENGTH&&R&&(Y=p.byteLength-T),M=p.buffer.slice(T,T+Y)),T+=Y,m=new Se.Tag(P,F,J,M,G,Q,T,this.littleEndian,this.charset),m.value){if(m.isTransformSyntax())this.transformSyntaxAlreadyExist=!0,m.value[0]===Se.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE?(this.explicit=!1,this.littleEndian=!0):m.value[0]===Se.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG?(this.explicit=!0,this.littleEndian=!1):m.value[0]===Se.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE?(this.needsDeflate=!0,this.explicit=!0,this.littleEndian=!0):(this.explicit=!0,this.littleEndian=!0);else if(m.isMetaLength())this.metaFinishedOffset=m.value[0]+T;else if(m.isCharset()){var z=m.value;z.length==2?z=(z[0]||"ISO 2022 IR 6")+"\\"+z[1]:z.length==1&&(z=z[0]),this.charset=z}}return m};Se.Parser.prototype.parseSublist=function(p,T,A,P){var F,M=T+A,G=[];if(this.level++,A===Se.Parser.UNDEFINED_LENGTH){for(F=this.parseSublistItem(p,T,P);!F.isSequenceDelim();)G.push(F),T=F.offsetEnd,F=this.parseSublistItem(p,T,P);G.push(F)}else for(;T{"use strict";var W=W||{};W.Tag=W.Tag||(typeof require<"u"?it():null);W.CompressionUtils=W.CompressionUtils||(typeof require<"u"?Nn():null);W.Utils=W.Utils||(typeof require<"u"?J1():null);W.RLE=W.RLE||(typeof require<"u"?jn():null);var a4=typeof require<"u"?es():null,Ls=Ls||(typeof require<"u"?is().JpegImage:null),Fs=Fs||(typeof require<"u"?ss():null),Rs=Rs||(typeof require<"u"?ls():null);W.Image=W.Image||function(){this.tags={},this.tagsFlat={},this.littleEndian=!1,this.index=-1,this.decompressed=!1,this.privateDataAll=null,this.convertedPalette=!1};W.Image.SLICE_DIRECTION_UNKNOWN=-1;W.Image.SLICE_DIRECTION_AXIAL=2;W.Image.SLICE_DIRECTION_CORONAL=1;W.Image.SLICE_DIRECTION_SAGITTAL=0;W.Image.SLICE_DIRECTION_OBLIQUE=3;W.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE=.8;W.Image.BYTE_TYPE_UNKNOWN=0;W.Image.BYTE_TYPE_BINARY=1;W.Image.BYTE_TYPE_INTEGER=2;W.Image.BYTE_TYPE_INTEGER_UNSIGNED=3;W.Image.BYTE_TYPE_FLOAT=4;W.Image.BYTE_TYPE_COMPLEX=5;W.Image.BYTE_TYPE_RGB=6;W.Image.skipPaletteConversion=!1;W.Image.getSingleValueSafely=function(p,T){return p&&p.value?p.value[T]:null};W.Image.getValueSafely=function(p){return p?p.value:null};W.Image.getMajorAxisFromPatientRelativeDirectionCosine=function(p,T,A){var P,F,M,G,Q,Y,X;return F=p<0?"R":"L",M=T<0?"A":"P",G=A<0?"F":"H",Q=Math.abs(p),Y=Math.abs(T),X=Math.abs(A),Q>W.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&Q>Y&&Q>X?P=F:Y>W.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&Y>Q&&Y>X?P=M:X>W.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE&&X>Q&&X>Y?P=G:P=null,P};W.Image.prototype.getCols=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_COLS[0],W.Tag.TAG_COLS[1]),0)};W.Image.prototype.getRows=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_ROWS[0],W.Tag.TAG_ROWS[1]),0)};W.Image.prototype.getSeriesDescription=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_SERIES_DESCRIPTION[0],W.Tag.TAG_SERIES_DESCRIPTION[1]),0)};W.Image.prototype.getSeriesInstanceUID=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_SERIES_INSTANCE_UID[0],W.Tag.TAG_SERIES_INSTANCE_UID[1]),0)};W.Image.prototype.getSeriesNumber=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_SERIES_NUMBER[0],W.Tag.TAG_SERIES_NUMBER[1]),0)};W.Image.prototype.getEchoNumber=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_ECHO_NUMBER[0],W.Tag.TAG_ECHO_NUMBER[1]),0)};W.Image.prototype.getImagePosition=function(){return W.Image.getValueSafely(this.getTag(W.Tag.TAG_IMAGE_POSITION[0],W.Tag.TAG_IMAGE_POSITION[1]))};W.Image.prototype.getImageDirections=function(){return W.Image.getValueSafely(this.getTag(W.Tag.TAG_IMAGE_ORIENTATION[0],W.Tag.TAG_IMAGE_ORIENTATION[1]))};W.Image.prototype.getImagePositionSliceDir=function(p){var T=W.Image.getValueSafely(this.getTag(W.Tag.TAG_IMAGE_POSITION[0],W.Tag.TAG_IMAGE_POSITION[1]));return T&&p>=0?T[p]:0};W.Image.prototype.getModality=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_MODALITY[0],W.Tag.TAG_MODALITY[1]),0)};W.Image.prototype.getSliceLocation=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_SLICE_LOCATION[0],W.Tag.TAG_SLICE_LOCATION[1]),0)};W.Image.prototype.getSliceLocationVector=function(){return W.Image.getValueSafely(this.getTag(W.Tag.TAG_SLICE_LOCATION_VECTOR[0],W.Tag.TAG_SLICE_LOCATION_VECTOR[1]))};W.Image.prototype.getImageNumber=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_IMAGE_NUM[0],W.Tag.TAG_IMAGE_NUM[1]),0)};W.Image.prototype.getTemporalPosition=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_TEMPORAL_POSITION[0],W.Tag.TAG_TEMPORAL_POSITION[1]),0)};W.Image.prototype.getTemporalNumber=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0],W.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]),0)};W.Image.prototype.getSliceGap=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_SLICE_GAP[0],W.Tag.TAG_SLICE_GAP[1]),0)};W.Image.prototype.getSliceThickness=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_SLICE_THICKNESS[0],W.Tag.TAG_SLICE_THICKNESS[1]),0)};W.Image.prototype.getImageMax=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_IMAGE_MAX[0],W.Tag.TAG_IMAGE_MAX[1]),0)};W.Image.prototype.getImageMin=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_IMAGE_MIN[0],W.Tag.TAG_IMAGE_MIN[1]),0)};W.Image.prototype.getDataScaleSlope=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_DATA_SCALE_SLOPE[0],W.Tag.TAG_DATA_SCALE_SLOPE[1]),0)};W.Image.prototype.getDataScaleIntercept=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_DATA_SCALE_INTERCEPT[0],W.Tag.TAG_DATA_SCALE_INTERCEPT[1]),0)};W.Image.prototype.getDataScaleElscint=function(){var p=W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_DATA_SCALE_ELSCINT[0],W.Tag.TAG_DATA_SCALE_ELSCINT[1]),0);p||(p=1);var T=this.getPixelBandwidth();return p=Math.sqrt(T)/(10*p),p<=0&&(p=1),p};W.Image.prototype.getWindowWidth=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_WINDOW_WIDTH[0],W.Tag.TAG_WINDOW_WIDTH[1]),0)};W.Image.prototype.getWindowCenter=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_WINDOW_CENTER[0],W.Tag.TAG_WINDOW_CENTER[1]),0)};W.Image.prototype.getPixelBandwidth=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_PIXEL_BANDWIDTH[0],W.Tag.TAG_PIXEL_BANDWIDTH[1]),0)};W.Image.prototype.getSeriesId=function(){var p=this.getSeriesDescription(),T=this.getSeriesInstanceUID(),A=this.getSeriesNumber(),P=this.getEchoNumber(),F=this.getOrientation(),M=this.getCols(),G=this.getRows(),Q="";return p!==null&&(Q+=" "+p),T!==null&&(Q+=" "+T),A!==null&&(Q+=" "+A),P!==null&&(Q+=" "+P),F!==null&&(Q+=" "+F),Q+=" ("+M+" x "+G+")",Q};W.Image.prototype.getPixelSpacing=function(){return W.Image.getValueSafely(this.getTag(W.Tag.TAG_PIXEL_SPACING[0],W.Tag.TAG_PIXEL_SPACING[1]))};W.Image.prototype.getImageType=function(){return W.Image.getValueSafely(this.getTag(W.Tag.TAG_IMAGE_TYPE[0],W.Tag.TAG_IMAGE_TYPE[1]))};W.Image.prototype.getBitsStored=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_BITS_STORED[0],W.Tag.TAG_BITS_STORED[1]),0)};W.Image.prototype.getBitsAllocated=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_BITS_ALLOCATED[0],W.Tag.TAG_BITS_ALLOCATED[1]),0)};W.Image.prototype.getFrameTime=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_FRAME_TIME[0],W.Tag.TAG_FRAME_TIME[1]),0)};W.Image.prototype.getAcquisitionMatrix=function(){var p,T,A,P,F;return p=[0,0],p[0]=W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_ACQUISITION_MATRIX[0],W.Tag.TAG_ACQUISITION_MATRIX[1]),0),this.privateDataAll===null&&(this.privateDataAll=this.getAllInterpretedPrivateData()),this.privateDataAll!==null&&this.privateDataAll.length>0&&(A=this.privateDataAll.indexOf("AcquisitionMatrixText"),A!==-1&&(P=this.privateDataAll.indexOf(` +`,A),P!==-1&&(F=this.privateDataAll.substring(A,P),T=F.match(/\d+/g),T!==null&&T.length===2?(p[0]=T[0],p[1]=T[1]):T!==null&&T.length===1&&(p[0]=T[0])))),p[1]===0&&(p[1]=p[0]),p};W.Image.prototype.getTR=function(){return W.Image.getSingleValueSafely(this.getTag(W.Tag.TAG_TR,W.Tag.TAG_TR[1]),0)};W.Image.prototype.putTag=function(p){this.tags[p.id]&&this.tags[p.id].value[0]!==p.value[0]||(this.tags[p.id]=p,this.putFlattenedTag(this.tagsFlat,p))};W.Image.prototype.putFlattenedTag=function(p,T){var A;if(T.sublist)for(A=0;Ae&&(e=z,U0=_0);return T?{data:Q,min:R,minIndex:b,max:e,maxIndex:U0,numCols:this.getCols(),numRows:this.getRows()}:Q};W.Image.prototype.convertPalette=function(){var p,T,A,P,F,M,G,Q,Y,X,J,m;if(p=this.tags[W.Tag.createId(W.Tag.TAG_PIXEL_DATA[0],W.Tag.TAG_PIXEL_DATA[1])].value,T=this.getPalleteValues(W.Tag.TAG_PALETTE_RED),A=this.getPalleteValues(W.Tag.TAG_PALETTE_GREEN),P=this.getPalleteValues(W.Tag.TAG_PALETTE_BLUE),T!==null&&T.length>0&&A!==null&&A.length>0&&P!==null&&P.length>0&&!this.convertedPalette){if(F=new DataView(new ArrayBuffer(this.getRows()*this.getCols()*this.getNumberOfFrames()*3)),M=parseInt(Math.ceil(this.getBitsAllocated()/8)),G=p.byteLength/M,M===1)for(Q=0;QY&&(Y=Math.abs(T[A]),G=A);for(Y=0;A<6;A+=1)Math.abs(T[A])>Y&&(Y=Math.abs(T[A]),Q=A);switch(G){case 0:X+="X",Q===4?X+="YZ":X+="ZY";break;case 1:X+="Y",Q===3?X+="XZ":X+="ZX";break;case 2:X+="Z",Q===3?X+="XY":X+="YX";break;default:break}switch(G){case 0:T[G]>0?X+="-":X+="+",Q===4?T[Q]>0?X+="-":X+="+":T[Q]>0?X+="+":X+="-";break;case 1:T[G]>0?X+="-":X+="+",Q===3?T[Q]>0?X+="-":X+="+":T[Q]>0?X+="+":X+="-";break;case 2:T[G]>0?X+="+":X+="-",T[Q]>0?X+="-":X+="+";break;default:break}if(F===0)X+="+",p=X;else{if(M)switch(X.charAt(2)){case"X":F>0?X+="-":X+="+";break;case"Y":case"Z":F>0?X+="+":X+="-";break;default:break}else switch(X.charAt(2)){case"X":F>0?X+="+":X+="-";break;case"Y":case"Z":F>0?X+="-":X+="+";break;default:break}p=X}return p};W.Image.prototype.isMosaic=function(){var p,T=!1,A,P,F;if(p=this.getImageType(),p!==null){for(P=0;P0&&(F[0]1?M[A]=W.Utils.concatArrayBuffers2(F[A]):M[A]=F[A][0],F[A]=null;return M};W.Image.prototype.getRLE=function(){var p,T,A,P=[];if(p=this.getEncapsulatedData(),p)for(T=p.length,A=1;A");return P=P.replace(/\n\s*\n/g,` +`),P=P.replace(/(?:\r\n|\r|\n)/g,"
"),P};W.Image.prototype.getPalleteValues=function(p){var T,A,P,F,M,G,Q,Y,X,J,m;if(T=null,A=null,P=W.Image.getValueSafely(this.getTag(p[0],p[1])),P!==null){for(F=P.buffer.byteLength/2,T=[],A=[],M=0;M255||T<0)for(F=255/(A-T),M=T,P=0;P{"use strict";var Vi=Vi||{};Vi.OrderedMapIterator=Vi.OrderedMapIterator||function(p){this.orderedMap=p,this.index=0};Vi.OrderedMapIterator.prototype.hasNext=function(){return this.index{"use strict";var T1=T1||{};T1.OrderedMapIterator=T1.OrderedMapIterator||(typeof require<"u"?qt():null);T1.OrderedMap=T1.OrderedMap||function(){this.map={},this.orderedKeys=[]};T1.OrderedMap.prototype.put=function(p,T){p in this.map?this.map[p]=T:(this.orderedKeys.push(p),this.orderedKeys.sort(function(A,P){return parseFloat(A)-parseFloat(P)}),this.map[p]=T)};T1.OrderedMap.prototype.remove=function(p){var T=this.orderedKeys.indexOf(p);if(T===-1)throw new Error("key does not exist");this.orderedKeys.splice(T,1),delete this.map[p]};T1.OrderedMap.prototype.get=function(p){return p in this.map?this.map[p]:null};T1.OrderedMap.prototype.iterator=function(){return new T1.OrderedMapIterator(this)};T1.OrderedMap.prototype.getOrderedValues=function(){for(var p=[],T=this.iterator();T.hasNext();)p.push(T.next());return p};var id=typeof Nt;id!=="undefined"&&Nt.exports&&(Nt.exports=T1.OrderedMap)});var c4=Ke((dC,Ut)=>{"use strict";var we=we||{};we.Parser=we.Parser||(typeof require<"u"?C1():null);we.Image=we.Image||(typeof require<"u"?Ot():null);we.OrderedMap=we.OrderedMap||(typeof require<"u"?Os():null);we.OrderedMapIterator=we.OrderedMapIterator||(typeof require<"u"?qt():null);we.Utils=we.Utils||(typeof require<"u"?J1():null);we.Series=we.Series||function(){this.images=[],this.imagesOriginalOrder=null,this.isMosaic=!1,this.isElscint=!1,this.isCompressed=!1,this.numberOfFrames=0,this.numberOfFramesInFile=0,this.isMultiFrame=!1,this.isMultiFrameVolume=!1,this.isMultiFrameTimeseries=!1,this.isImplicitTimeseries=!1,this.sliceSense=!1,this.sliceDir=we.Image.SLICE_DIRECTION_UNKNOWN,this.error=null};we.Series.parserError=null;we.Series.useExplicitOrdering=!1;we.Series.useExplicitSpacing=0;we.Series.parseImage=function(p){var T,A;return T=new we.Parser,A=T.parse(p),T.hasError()?(we.Series.parserError=T.error,null):(T.inflated&&(A.inflated=T.inflated),A)};we.Series.getMosaicOffset=function(p,T,A,P,F,M,G){var Q,Y,X;return Q=F,Y=M,X=G,Q=X%p*T+Q,Y=(parseInt(X/p)*A+Y)*P,Q+Y};we.Series.orderDicoms=function(p,T,A){var P,F,M,G,Q,Y,X,J,m,R;for(P=p[0].getImagePosition()!==null,F=p[0].getSliceLocation()!==null,M=p[0].getImageNumber()!==null,G=we.Series.orderByTime(p,T,A,P,F),Q=G.orderedKeys,R=[],Y=0;Y1&&p[0].getTemporalPosition()!==null,Q=T>1&&p[0].getTemporalNumber()!==null&&p[0].getTemporalNumber()===T,G&&Q)for(Y=0;Y1||this.isMosaic&&this.images[0].length>1,this.isMultiFrameVolume=!1,this.isMultiFrameTimeseries=!1,this.isImplicitTimeseries=!1,this.isMultiFrame&&(p=this.images[0].getFrameTime()>0,this.isMosaic?this.isMultiFrameTimeseries=!0:p?this.isMultiFrameTimeseries=!0:this.numberOfFramesInFile>1?(this.isMultiFrameTimeseries=!0,this.numberOfFrames=this.images.length):this.isMultiFrameVolume=!0),!this.isMosaic&&this.numberOfFrames<=1){for(X=this.images[0].getImagePosition()||[],A=X.toString(),this.numberOfFrames=0,T=0;T1&&(this.isImplicitTimeseries=!0)}this.sliceDir=this.images[0].getAcquiredSliceDirection(),we.Series.useExplicitOrdering?P=this.images.slice():P=we.Series.orderDicoms(this.images,this.numberOfFrames,this.sliceDir),F=P[0].getImagePositionSliceDir(this.sliceDir),M=P[P.length-1].getImagePositionSliceDir(this.sliceDir),G=M-F,we.Series.useExplicitOrdering?this.sliceSense=!1:this.isMosaic?this.sliceSense=!0:this.isMultiFrame?(Q=P[0].getSliceLocationVector(),Q!==null?(Y=P[0].getOrientation(),Y.charAt(2)==="Z"?this.sliceSense=Q[0]-Q[Q.length-1]<0:this.sliceSense=Q[0]-Q[Q.length-1]>0):this.sliceSense=!(F<0)):this.sliceDir===we.Image.SLICE_DIRECTION_SAGITTAL||this.sliceDir===we.Image.SLICE_DIRECTION_CORONAL?G>0?this.sliceSense=!1:this.sliceSense=!0:G>0?this.sliceSense=!0:this.sliceSense=!1,this.imagesOriginalOrder=this.images,this.images=P};we.Series.prototype.concatenateImageData=function(p,T){var A,P,F;this.isMosaic?P=this.getMosaicData(this.images[0],this.images[0].getPixelDataBytes()):P=this.images[0].getPixelDataBytes(),F=this.validatePixelDataLength(this.images[0]),this.images[0].clearPixelData(),A=new Uint8Array(new ArrayBuffer(F*this.images.length)),A.set(new Uint8Array(P,0,F),0),setTimeout(we.Utils.bind(this,function(){this.concatenateNextImageData(A,F,p,1,T)}),0)};we.Series.prototype.concatenateNextImageData=function(p,T,A,P,F){var M,G;P>=this.images.length?(A&&A.drawProgress(1,"Reading DICOM Images"),F(p.buffer)):(A&&A.drawProgress(P/this.images.length,"Reading DICOM Images"),this.isMosaic?M=this.getMosaicData(this.images[P],this.images[P].getPixelDataBytes()):M=this.images[P].getPixelDataBytes(),G=this.validatePixelDataLength(this.images[P]),this.images[P].clearPixelData(),p.set(new Uint8Array(M,0,G),T*P),setTimeout(we.Utils.bind(this,function(){this.concatenateNextImageData(p,T,A,P+1,F)}),0))};we.Series.prototype.validatePixelDataLength=function(p){var T=p.getPixelDataBytes().byteLength,A=p.getCols()*p.getRows();return T%A===0?T:A*p.getNumberOfFrames()*p.getNumberOfSamplesPerPixel()*(p.getBitsAllocated()/8)};we.Series.prototype.getMosaicData=function(p,T){var A,P,F,M,G,Q,Y,X,J,m,R,e,z,b,U0,V0,t0,f0=0;for(Y=parseInt(this.images[0].getBitsAllocated()/8),R=this.images[0].getMosaicCols()*this.images[0].getMosaicRows(),e=parseInt(this.images[0].getRows()/this.images[0].getMosaicRows()),z=parseInt(this.images[0].getCols()/this.images[0].getMosaicCols()),A=this.images[0].getCols(),P=this.images[0].getRows(),F=this.images[0].getMosaicRows(),M=this.images[0].getMosaicCols(),G=parseInt(P/F),Q=parseInt(A/M),b=new Uint8Array(new ArrayBuffer(R*e*z*Y)),U0=new Uint8Array(T),X=0;X1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY=LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+59744;__ATINIT__.push({func:(function(){__GLOBAL__I_000101()})},{func:(function(){__GLOBAL__sub_I_jpegls_cpp()})},{func:(function(){__GLOBAL__sub_I_iostream_cpp()})});allocate([0,0,0,0,0,0,0,0,84,144,0,0,31,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,237,191,0,0,48,0,0,0,0,0,0,0,44,144,0,0,41,192,0,0,84,144,0,0,55,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,115,192,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,192,0,0,152,3,0,0,0,0,0,0,84,144,0,0,241,192,0,0,216,3,0,0,0,0,0,0,84,144,0,0,55,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,95,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,135,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,175,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,216,193,0,0,48,0,0,0,0,0,0,0,84,144,0,0,241,193,0,0,48,0,0,0,0,0,0,0,44,144,0,0,13,194,0,0,84,144,0,0,80,194,0,0,216,0,0,0,0,0,0,0,84,144,0,0,44,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,139,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,179,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,219,194,0,0,48,0,0,0,0,0,0,0,84,144,0,0,3,195,0,0,48,0,0,0,0,0,0,0,84,144,0,0,103,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,157,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,211,195,0,0,216,0,0,0,0,0,0,0,84,144,0,0,8,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,71,196,0,0,216,0,0,0,0,0,0,0,84,144,0,0,138,196,0,0,160,1,0,0,0,0,0,0,44,144,0,0,120,196,0,0,84,144,0,0,187,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,246,196,0,0,160,1,0,0,0,0,0,0,84,144,0,0,49,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,103,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,157,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,210,197,0,0,160,1,0,0,0,0,0,0,84,144,0,0,17,198,0,0,160,1,0,0,0,0,0,0,84,144,0,0,86,198,0,0,72,3,0,0,0,0,0,0,84,144,0,0,162,198,0,0,56,2,0,0,0,0,0,0,44,144,0,0,182,198,0,0,84,144,0,0,196,198,0,0,56,2,0,0,0,0,0,0,84,144,0,0,112,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,125,199,0,0,84,144,0,0,138,199,0,0,96,2,0,0,0,0,0,0,44,144,0,0,156,199,0,0,84,144,0,0,169,199,0,0,96,2,0,0,0,0,0,0,84,144,0,0,181,199,0,0,120,2,0,0,0,0,0,0,84,144,0,0,214,199,0,0,144,2,0,0,0,0,0,0,84,144,0,0,28,200,0,0,144,2,0,0,0,0,0,0,84,144,0,0,248,199,0,0,176,2,0,0,0,0,0,0,84,144,0,0,62,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,99,200,0,0,160,2,0,0,0,0,0,0,84,144,0,0,182,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,245,221,0,0,160,3,0,0,0,0,0,0,84,144,0,0,13,222,0,0,152,3,0,0,0,0,0,0,84,144,0,0,38,222,0,0,152,3,0,0,0,0,0,0,44,144,0,0,62,222,0,0,84,144,0,0,87,222,0,0,104,2,0,0,0,0,0,0,44,144,0,0,110,222,0,0,84,144,0,0,135,222,0,0,72,3,0,0,0,0,0,0,84,144,0,0,161,222,0,0,56,3,0,0,0,0,0,0,44,144,0,0,187,222,0,0,84,144,0,0,205,222,0,0,112,3,0,0,0,0,0,0,84,144,0,0,247,222,0,0,112,3,0,0,0,0,0,0,44,144,0,0,33,223,0,0,44,144,0,0,82,223,0,0,124,144,0,0,131,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,178,223,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,124,144,0,0,225,223,0,0,0,0,0,0,1,0,0,0,120,3,0,0,3,244,255,255,124,144,0,0,16,224,0,0,0,0,0,0,1,0,0,0,136,3,0,0,3,244,255,255,84,144,0,0,63,224,0,0,80,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,144,0,0,187,224,0,0,48,3,0,0,0,0,0,0,124,144,0,0,209,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,124,144,0,0,227,224,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,5,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,124,144,0,0,40,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,75,225,0,0,144,4,0,0,0,0,0,0,84,144,0,0,109,225,0,0,144,4,0,0,0,0,0,0,124,144,0,0,144,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,72,10,0,0,2,0,0,0,84,144,0,0,178,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,200,225,0,0,32,4,0,0,0,0,0,0,84,144,0,0,220,225,0,0,32,4,0,0,0,0,0,0,124,144,0,0,240,225,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,64,10,0,0,2,0,0,0,84,144,0,0,2,226,0,0,32,4,0,0,0,0,0,0,84,144,0,0,23,226,0,0,32,4,0,0,0,0,0,0,124,144,0,0,44,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,80,10,0,0,0,0,0,0,124,144,0,0,112,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,104,10,0,0,0,0,0,0,124,144,0,0,180,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,128,10,0,0,0,0,0,0,124,144,0,0,248,226,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,152,10,0,0,0,0,0,0,124,144,0,0,60,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,184,10,0,0,0,8,0,0,124,144,0,0,129,227,0,0,0,0,0,0,3,0,0,0,32,4,0,0,2,0,0,0,176,10,0,0,2,0,0,0,192,10,0,0,0,8,0,0,124,144,0,0,198,227,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,11,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,200,10,0,0,0,8,0,0,124,144,0,0,80,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,108,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,136,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,164,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,208,10,0,0,2,0,0,0,124,144,0,0,192,228,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,216,10,0,0,0,0,0,0,124,144,0,0,6,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,224,10,0,0,0,0,0,0,124,144,0,0,76,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,232,10,0,0,0,0,0,0,124,144,0,0,146,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,240,10,0,0,0,0,0,0,124,144,0,0,216,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,124,144,0,0,237,229,0,0,0,0,0,0,2,0,0,0,32,4,0,0,2,0,0,0,248,10,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,144,0,0,73,233,0,0,44,144,0,0,50,233,0,0,124,144,0,0,28,233,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,237,232,0,0,0,0,0,0,1,0,0,0,8,11,0,0,0,0,0,0,124,144,0,0,215,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,124,144,0,0,168,232,0,0,0,0,0,0,1,0,0,0,0,11,0,0,0,0,0,0,44,144,0,0,149,232,0,0,44,144,0,0,115,232,0,0,44,144,0,0,81,232,0,0,44,144,0,0,60,232,0,0,44,144,0,0,39,232,0,0,44,144,0,0,14,232,0,0,44,144,0,0,245,231,0,0,44,144,0,0,220,231,0,0,44,144,0,0,195,231,0,0,44,144,0,0,171,231,0,0,44,144,0,0,190,232,0,0,44,144,0,0,3,233],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([156,143,0,0,0,0,0,0,8,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,248,1,0,0,3,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,232,1,0,0,5,0,0,0,6,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,216,1,0,0,7,0,0,0,8,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,200,1,0,0,9,0,0,0,10,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,184,1,0,0,11,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,168,1,0,0,13,0,0,0,14,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,144,1,0,0,15,0,0,0,16,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,128,1,0,0,17,0,0,0,18,0,0,0,9,0,0,0,1,0,0,0,9,0,0,0,0,0,0,0,112,1,0,0,19,0,0,0,20,0,0,0,10,0,0,0,2,0,0,0,10,0,0,0,0,0,0,0,96,1,0,0,21,0,0,0,22,0,0,0,11,0,0,0,3,0,0,0,11,0,0,0,0,0,0,0,80,1,0,0,23,0,0,0,24,0,0,0,12,0,0,0,4,0,0,0,12,0,0,0,0,0,0,0,64,1,0,0,25,0,0,0,26,0,0,0,13,0,0,0,5,0,0,0,13,0,0,0,0,0,0,0,240,0,0,0,27,0,0,0,28,0,0,0,14,0,0,0,6,0,0,0,14,0,0,0,0,0,0,0,224,0,0,0,29,0,0,0,30,0,0,0,15,0,0,0,7,0,0,0,15,0,0,0,0,0,0,0,16,0,0,0,31,0,0,0,32,0,0,0,16,0,0,0,8,0,0,0,16,0,0,0,0,0,0,0,200,0,0,0,33,0,0,0,34,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,184,0,0,0,33,0,0,0,35,0,0,0,3,0,0,0,4,0,0,0,56,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,200,255,255,255,200,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,56,0,0,0,0,0,0,0,104,0,0,0,40,0,0,0,41,0,0,0,200,255,255,255,200,255,255,255,104,0,0,0,42,0,0,0,43,0,0,0,0,0,0,0,88,0,0,0,44,0,0,0,45,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,17,0,0,0,3,0,0,0,18,0,0,0,104,141,0,0,64,141,0,0,84,141,0,0,124,141,0,0,0,0,0,0,32,0,0,0,46,0,0,0,47,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,56,0,0,0,48,0,0,0,49,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,72,0,0,0,50,0,0,0,51,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,120,0,0,0,52,0,0,0,53,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,136,0,0,0,54,0,0,0,55,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,152,0,0,0,56,0,0,0,57,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,168,0,0,0,58,0,0,0,59,0,0,0,18,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,216,0,0,0,60,0,0,0,61,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,62,0,0,0,63,0,0,0,20,0,0,0,21,0,0,0,0,0,0,0,16,1,0,0,64,0,0,0,65,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,32,1,0,0,66,0,0,0,67,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,48,1,0,0,68,0,0,0,69,0,0,0,26,0,0,0,27,0,0,0,0,0,0,0,160,1,0,0,70,0,0,0,71,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,24,2,0,0,72,0,0,0,73,0,0,0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,0,0,0,0,40,2,0,0,74,0,0,0,75,0,0,0,18,0,0,0,0,0,0,0,64,2,0,0,76,0,0,0,77,0,0,0,19,0,0,0,2,0,0,0,0,0,0,0,80,2,0,0,78,0,0,0,79,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,104,2,0,0,80,0,0,0,81,0,0,0,7,0,0,0,0,0,0,0,128,2,0,0,82,0,0,0,83,0,0,0,8,0,0,0,0,0,0,0,160,2,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,2,0,0,0,9,0,0,0,28,0,0,0,0,0,0,0,208,2,0,0,84,0,0,0,88,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,3,0,0,0,10,0,0,0,29,0,0,0,0,0,0,0,224,2,0,0,84,0,0,0,89,0,0,0,86,0,0,0,87,0,0,0,6,0,0,0,4,0,0,0,11,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,1,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,88,146,0,0,200,146,0,0,56,147,0,0,56,147,0,0,120,187,0,0,168,155,0,0,168,149,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,159,219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,9,0,0,0,151,215,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,9,0,0,0,143,211,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,69,0,0,0,70,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,0,0,76,0,0,0,77,0,0,0,78,0,0,0,79,0,0,0,80,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,89,0,0,0,90,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+35640);allocate([1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,49,0,0,0,50,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,91,0,0,0,92,0,0,0,93,0,0,0,94,0,0,0,95,0,0,0,96,0,0,0,97,0,0,0,98,0,0,0,99,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,103,0,0,0,104,0,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,109,0,0,0,110,0,0,0,111,0,0,0,112,0,0,0,113,0,0,0,114,0,0,0,115,0,0,0,116,0,0,0,117,0,0,0,118,0,0,0,119,0,0,0,120,0,0,0,121,0,0,0,122,0,0,0,123,0,0,0,124,0,0,0,125,0,0,0,126,0,0,0,127],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+39844);allocate([240,2,0,0,90,0,0,0,91,0,0,0,20,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,10,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,14,0,0,0,20,0,0,0,0,0,0,0,0,3,0,0,90,0,0,0,92,0,0,0,21,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,16,0,0,0,21,0,0,0,15,0,0,0,22,0,0,0,0,0,0,0,16,3,0,0,93,0,0,0,94,0,0,0,22,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,17,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,32,3,0,0,93,0,0,0,95,0,0,0,23,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,19,0,0,0,20,0,0,0,25,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,56,3,0,0,96,0,0,0,97,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,3,0,0,93,0,0,0,98,0,0,0,17,0,0,0,1,0,0,0,6,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,23,0,0,0,3,0,0,0,26,0,0,0,0,0,0,0,160,3,0,0,90,0,0,0,99,0,0,0,24,0,0,0,12,0,0,0,5,0,0,0,31,0,0,0,14,0,0,0,11,0,0,0,13,0,0,0,12,0,0,0,13,0,0,0,19,0,0,0,15,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,168,3,0,0,100,0,0,0,101,0,0,0,248,255,255,255,248,255,255,255,168,3,0,0,102,0,0,0,103,0,0,0,8,0,0,0,0,0,0,0,192,3,0,0,104,0,0,0,105,0,0,0,248,255,255,255,248,255,255,255,192,3,0,0,106,0,0,0,107,0,0,0,4,0,0,0,0,0,0,0,216,3,0,0,36,0,0,0,37,0,0,0,252,255,255,255,252,255,255,255,216,3,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,240,3,0,0,108,0,0,0,109,0,0,0,252,255,255,255,252,255,255,255,240,3,0,0,110,0,0,0,111,0,0,0,0,0,0,0,96,3,0,0,112,0,0,0,113,0,0,0,7,0,0,0,0,0,0,0,112,3,0,0,114,0,0,0,115,0,0,0,0,0,0,0,8,4,0,0,72,0,0,0,116,0,0,0,21,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,117,0,0,0,118,0,0,0,119,0,0,0,1,0,0,0,33,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,0,0,120,0,0,0,121,0,0,0,119,0,0,0,2,0,0,0,34,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,5,0,0,122,0,0,0,123,0,0,0,119,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,5,0,0,124,0,0,0,125,0,0,0,119,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,5,0,0,126,0,0,0,127,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,5,0,0,128,0,0,0,129,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,5,0,0,130,0,0,0,131,0,0,0,119,0,0,0,22,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,224,5,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,6,0,0,132,0,0,0,133,0,0,0,119,0,0,0,30,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,8,6,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,6,0,0,134,0,0,0,135,0,0,0,119,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,6,0,0,136,0,0,0,137,0,0,0,119,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,6,0,0,138,0,0,0,139,0,0,0,119,0,0,0,38,0,0,0,39,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,40,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,6,0,0,140,0,0,0,141,0,0,0,119,0,0,0,41,0,0,0,42,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,43,0,0,0,35,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,6,0,0,142,0,0,0,143,0,0,0,119,0,0,0,44,0,0,0,45,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,46,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,6,0,0,144,0,0,0,145,0,0,0,119,0,0,0,47,0,0,0,48,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,49,0,0,0,47,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,6,0,0,146,0,0,0,147,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,7,0,0,148,0,0,0,149,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,7,0,0,150,0,0,0,151,0,0,0,119,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,7,0,0,152,0,0,0,153,0,0,0,119,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,7,0,0,154,0,0,0,155,0,0,0,119,0,0,0,19,0,0,0,7,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,7,0,0,156,0,0,0,157,0,0,0,119,0,0,0,20,0,0,0,8,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,4,0,0,158,0,0,0,159,0,0,0,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,5,0,0,160,0,0,0,161,0,0,0,119,0,0,0,27,0,0,0,21,0,0,0,28,0,0,0,22,0,0,0,29,0,0,0,9,0,0,0,23,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,4,0,0,162,0,0,0,163,0,0,0,119,0,0,0,3,0,0,0,4,0,0,0,12,0,0,0,50,0,0,0,51,0,0,0,13,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,5,0,0,164,0,0,0,165,0,0,0,119,0,0,0,53,0,0,0,54,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,0,0,0,0,80,5,0,0,166,0,0,0,167,0,0,0,119,0,0,0,55,0,0,0,56,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,0,0,0,0,32,4,0,0,168,0,0,0,169,0,0,0,119,0,0,0,0,0,0,0,48,4,0,0,168,0,0,0,170,0,0,0,119,0,0,0,24,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,30,0,0,0,25,0,0,0,31,0,0,0,26,0,0,0,32,0,0,0,13,0,0,0,27,0,0,0,14,0,0,0,0,0,0,0,80,4,0,0,168,0,0,0,171,0,0,0,119,0,0,0,5,0,0,0,6,0,0,0,15,0,0,0,57,0,0,0,58,0,0,0,16,0,0,0,59,0,0,0,0,0,0,0,112,4,0,0,168,0,0,0,172,0,0,0,119,0,0,0,7,0,0,0,8,0,0,0,17,0,0,0,60,0,0,0,61,0,0,0,18,0,0,0,62,0,0,0,0,0,0,0,144,4,0,0,168,0,0,0,173,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,176,4,0,0,168,0,0,0,174,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,192,4,0,0,168,0,0,0,175,0,0,0,119,0,0,0,9,0,0,0,10,0,0,0,19,0,0,0,63,0,0,0,64,0,0,0,20,0,0,0,65,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,32,2,32,2,32,2,32,2,32,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,96,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,8,216,4,192,4,192,4,192,4,192,4,192,4,192,4,192,8,213,8,213,8,213,8,213,8,213,8,213,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,8,197,4,192,4,192,4,192,4,192,4,192,4,192,8,214,8,214,8,214,8,214,8,214,8,214,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,8,198,4,192,4,192,4,192,4,192,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,97,119,83,116,114,101,97,109,32,111,114,32,114,97,119,68,97,116,97,32,110,101,101,100,115,32,116,111,32,114,101,102,101,114,101,110,99,101,32,116,111,32,115,111,109,101,116,104,105,110,103,0,119,105,100,116,104,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,104,101,105,103,104,116,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,54,53,53,51,53,93,0,98,105,116,115,112,101,114,115,97,109,112,108,101,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,50,44,32,49,54,93,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,110,101,101,100,115,32,116,111,32,98,101,32,115,101,116,32,116,111,32,97,32,118,97,108,117,101,32,111,102,32,123,78,111,110,101,44,32,83,97,109,112,108,101,44,32,76,105,110,101,125,0,99,111,109,112,111,110,101,110,116,115,32,110,101,101,100,115,32,116,111,32,98,101,32,105,110,32,116,104,101,32,114,97,110,103,101,32,91,49,44,32,50,53,53,93,0,117,110,99,111,109,112,114,101,115,115,101,100,32,115,105,122,101,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,119,105,116,104,32,116,104,101,32,111,116,104,101,114,32,112,97,114,97,109,101,116,101,114,115,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,110,111,116,32,98,101,32,115,101,116,32,116,111,32,83,97,109,112,108,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,52,0,105,110,116,101,114,108,101,97,118,101,77,111,100,101,32,99,97,110,32,111,110,108,121,32,98,101,32,115,101,116,32,116,111,32,78,111,110,101,32,105,110,32,99,111,109,98,105,110,97,116,105,111,110,32,119,105,116,104,32,99,111,109,112,111,110,101,110,116,115,32,61,32,49,0,67,111,108,111,114,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,0,78,111,32,109,111,114,101,32,98,121,116,101,115,32,97,118,97,105,108,97,98,108,101,32,105,110,32,105,110,112,117,116,32,98,117,102,102,101,114,44,32,115,116,105,108,108,32,110,101,101,100,101,100,105,110,103,32,0,65,110,32,111,100,100,32,110,117,109,98,101,114,32,111,102,32,98,121,116,101,115,32,40,0,41,32,99,97,110,110,111,116,32,98,101,32,115,119,97,112,112,101,100,46,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,69,0,49,49,80,114,111,99,101,115,115,76,105,110,101,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,54,84,114,97,110,115,102,111,114,109,83,104,105,102,116,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,105,110,103,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,57,98,97,115,105,99,95,111,115,116,114,105,110,103,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,78,83,95,57,97,108,108,111,99,97,116,111,114,73,99,69,69,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,116,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,116,69,69,0,50,50,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,83,116,114,101,97,109,0,50,53,80,111,115,116,80,114,111,99,101,115,83,105,110,103,108,101,67,111,109,112,111,110,101,110,116,0,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,51,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,50,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,50,84,114,97,110,115,102,111,114,109,72,112,49,73,104,69,69,0,49,56,80,114,111,99,101,115,115,84,114,97,110,115,102,111,114,109,101,100,73,49,51,84,114,97,110,115,102,111,114,109,78,111,110,101,73,104,69,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,69,110,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,116,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,116,55,84,114,105,112,108,101,116,73,116,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,55,84,114,105,112,108,101,116,73,104,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,54,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,116,76,105,49,50,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,104,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,53,76,111,115,115,108,101,115,115,84,114,97,105,116,115,84,73,55,84,114,105,112,108,101,116,73,104,69,76,105,56,69,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,56,74,108,115,67,111,100,101,99,73,49,52,68,101,102,97,117,108,116,84,114,97,105,116,115,84,73,104,104,69,49,53,68,101,99,111,100,101,114,83,116,114,97,116,101,103,121,69,0,67,104,97,114,76,83,32,101,114,114,111,114,0,99,104,97,114,108,115,0,49,53,99,104,97,114,108,115,95,99,97,116,101,103,111,114,121,0,112,97,114,97,109,115,46,88,116,104,117,109,98,110,97,105,108,32,105,115,32,62,32,48,32,98,117,116,32,112,97,114,97,109,115,46,116,104,117,109,98,110,97,105,108,32,61,61,32,110,117,108,108,95,112,116,114,0,49,55,74,112,101,103,77,97,114,107,101,114,83,101,103,109,101,110,116,0,49,49,74,112,101,103,83,101,103,109,101,110,116,0,50,48,74,112,101,103,73,109,97,103,101,68,97,116,97,83,101,103,109,101,110,116,0,69,120,112,101,99,116,101,100,32,74,80,69,71,32,77,97,114,107,101,114,32,115,116,97,114,116,32,98,121,116,101,32,48,120,70,70,32,98,117,116,32,116,104,101,32,98,121,116,101,32,118,97,108,117,101,32,119,97,115,32,48,120,0,74,80,69,71,32,101,110,99,111,100,105,110,103,32,119,105,116,104,32,109,97,114,107,101,114,32,0,32,105,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,46,0,85,110,107,110,111,119,110,32,74,80,69,71,32,109,97,114,107,101,114,32,0,32,101,110,99,111,117,110,116,101,114,101,100,46,0,109,114,102,120,0,83,116,57,98,97,100,95,97,108,108,111,99,0,83,116,57,101,120,99,101,112,116,105,111,110,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,83,116,57,116,121,112,101,95,105,110,102,111,0,83,116,56,98,97,100,95,99,97,115,116,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,33,34,98,97,115,105,99,95,115,116,114,105,110,103,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,115,116,114,105,110,103,0,95,95,116,104,114,111,119,95,108,101,110,103,116,104,95,101,114,114,111,114,0,33,34,118,101,99,116,111,114,32,108,101,110,103,116,104,95,101,114,114,111,114,34,0,47,85,115,101,114,115,47,99,104,97,102,101,121,47,101,109,115,100,107,95,112,111,114,116,97,98,108,101,47,101,109,115,99,114,105,112,116,101,110,47,49,46,51,53,46,48,47,115,121,115,116,101,109,47,105,110,99,108,117,100,101,47,108,105,98,99,120,120,47,118,101,99,116,111,114,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+42396);allocate([32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,80,79,83,73,88],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+52636);allocate([17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,46,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,58,32,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,105,111,115,116,114,101,97,109,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,37,112,0,67,0,37,0,0,0,0,0,108,0,108,108,0,0,76,0,37,112,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,37,72,58,37,77,37,72,58,37,77,58,37,83,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,48,49,50,51,52,53,54,55,56,57,0,37,76,102,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,48,49,50,51,52,53,54,55,56,57,0,37,46,48,76,102,0,116,114,117,101,0,102,97,108,115,101,0,83,117,110,100,97,121,0,77,111,110,100,97,121,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,84,104,117,114,115,100,97,121,0,70,114,105,100,97,121,0,83,97,116,117,114,100,97,121,0,83,117,110,0,77,111,110,0,84,117,101,0,87,101,100,0,84,104,117,0,70,114,105,0,83,97,116,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,77,97,114,99,104,0,65,112,114,105,108,0,77,97,121,0,74,117,110,101,0,74,117,108,121,0,65,117,103,117,115,116,0,83,101,112,116,101,109,98,101,114,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,68,101,99,101,109,98,101,114,0,74,97,110,0,70,101,98,0,77,97,114,0,65,112,114,0,74,117,110,0,74,117,108,0,65,117,103,0,83,101,112,0,79,99,116,0,78,111,118,0,68,101,99,0,65,77,0,80,77,0,37,109,47,37,100,47,37,121,0,37,72,58,37,77,58,37,83,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,37,73,58,37,77,58,37,83,32,37,112,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+56215);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}Module["_memset"]=_memset;var _BDtoILow=true;var _emscripten_resume=true;function ___gxx_personality_v0(){}var _emscripten_landingpad=true;function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){return leadingNulls(date.tm_hour<13?date.tm_hour:date.tm_hour-12,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>0&&date.tm_hour<13){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function _free(){}Module["_free"]=_free;function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){if(___cxa_end_catch.rethrown){___cxa_end_catch.rethrown=false;return}asm["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}var _fabs=Math_abs;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var PATH=undefined;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _pthread_cond_broadcast(){return 0}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){HEAP8[variable>>0]=1;return 1}return 0}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function ___cxa_guard_release(){}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _llvm_eh_typeid_for(type){return type}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_mutex_lock(){}var _emscripten_postinvoke=true;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_bitshift64Shl"]=_bitshift64Shl;function ___cxa_guard_abort(){}Module["_memmove"]=_memmove;var _emscripten_preinvoke=true;var _BItoD=true;function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){___cxa_end_catch.rethrown=true;var ptr=EXCEPTIONS.caught.pop();EXCEPTIONS.last=ptr;throw ptr}function _pthread_mutex_unlock(){}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer)___syscall146.buffer=[];var buffer=___syscall146.buffer;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j2147483648)return false;i=new a(newBuffer);j=new b(newBuffer);k=new c(newBuffer);l=new d(newBuffer);m=new e(newBuffer);n=new f(newBuffer);o=new g(newBuffer);p=new h(newBuffer);buffer=newBuffer;return true} -// EMSCRIPTEN_START_FUNCS -function dc(a){a=a|0;var b=0;b=r;r=r+a|0;r=r+15&-16;return b|0}function ec(){return r|0}function fc(a){a=a|0;r=a}function gc(a,b){a=a|0;b=b|0;r=a;s=b}function hc(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function ic(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0]}function jc(a){a=a|0;i[t>>0]=i[a>>0];i[t+1>>0]=i[a+1>>0];i[t+2>>0]=i[a+2>>0];i[t+3>>0]=i[a+3>>0];i[t+4>>0]=i[a+4>>0];i[t+5>>0]=i[a+5>>0];i[t+6>>0]=i[a+6>>0];i[t+7>>0]=i[a+7>>0]}function kc(a){a=a|0;M=a}function lc(){return M|0}function mc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;v=r;r=r+128|0;n=v+44|0;q=v+8|0;j=v+4|0;m=v;o=c+4|0;p=c+8|0;x=0;Ja(35,k[c>>2]|0,k[o>>2]|0,k[p>>2]|0,d|0);l=x;x=0;if(!(l&1)){g=n;f=g+84|0;do{k[g>>2]=k[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));d=n+12|0;if((k[d>>2]|0)==0?(h=ia(((k[n+8>>2]|0)+7|0)/8|0,k[n>>2]|0)|0,k[d>>2]=h,(k[n+24>>2]|0)!=0):0){l=ia(k[n+16>>2]|0,h)|0;k[d>>2]=l}x=0;qa(176,q|0);l=x;x=0;if(!(l&1)){d=n+56|0;do if(k[d>>2]|0){x=0;d=ta(66,d|0)|0;l=x;x=0;if(!(l&1)){k[j>>2]=d;f=q+28|0;g=k[f>>2]|0;if(g>>>0<(k[q+32>>2]|0)>>>0){k[g>>2]=d;k[f>>2]=g+4;k[j>>2]=0;s=19;break}x=0;ra(57,q+24|0,j|0);l=x;x=0;if(l&1){f=Wa(824,0)|0;d=M;g=k[j>>2]|0;k[j>>2]=0;if(!g)break;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break}else{d=k[j>>2]|0;k[j>>2]=0;if(!d){s=19;break}Lb[k[(k[d>>2]|0)+4>>2]&255](d);s=19;break}}else s=15}else s=19;while(0);a:do if((s|0)==19){g=n+4|0;h=n+8|0;j=n+16|0;x=0;d=Ea(14,k[n>>2]|0,k[g>>2]|0,k[h>>2]|0,k[j>>2]|0)|0;l=x;x=0;if(!(l&1)){k[m>>2]=d;l=q+28|0;f=k[l>>2]|0;do if(f>>>0>=(k[q+32>>2]|0)>>>0){x=0;ra(57,q+24|0,m|0);f=x;x=0;if(f&1){f=Wa(824,0)|0;d=M;g=k[m>>2]|0;k[m>>2]=0;if(!g)break a;Lb[k[(k[g>>2]|0)+4>>2]&255](g);break a}else{d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}}else{k[f>>2]=d;k[l>>2]=f+4;k[m>>2]=0}while(0);d=k[n+28>>2]|0;if((d|0)!=0?(x=0,ra(58,q|0,d|0),s=x,x=0,s&1):0){s=15;break}b:do if(!(k[n+24>>2]|0)){d=ia(k[g>>2]|0,k[n>>2]|0)|0;d=ia(d,((k[h>>2]|0)+7|0)/8|0)|0;if((k[j>>2]|0)>0){g=0;while(1){x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1)break;f=k[o>>2]|0;if(f){k[o>>2]=f+d;k[p>>2]=(k[p>>2]|0)-d}g=g+1|0;if((g|0)>=(k[j>>2]|0))break b}f=Wa(824,0)|0;d=M;s=16;break a}}else{x=0;Fa(4,q|0,c|0,n|0);s=x;x=0;if(s&1){s=15;break a}}while(0);x=0;Aa(33,q|0,a|0)|0;s=x;x=0;if(!(s&1)){k[b>>2]=k[q+16>>2];if(e)i[e>>0]=0;g=q+24|0;d=k[g>>2]|0;if(d){f=k[l>>2]|0;if((f|0)!=(d|0)){do{e=f+-4|0;k[l>>2]=e;f=k[e>>2]|0;k[e>>2]=0;if(f)Lb[k[(k[f>>2]|0)+4>>2]&255](f);f=k[l>>2]|0}while((f|0)!=(d|0));d=k[g>>2]|0}mj(d)}e=0;r=v;return e|0}else s=15}else s=15}while(0);if((s|0)==15){f=Wa(824,0)|0;d=M;s=16}l=q+24|0;g=k[l>>2]|0;if(g){j=q+28|0;h=k[j>>2]|0;if((h|0)!=(g|0)){do{q=h+-4|0;k[j>>2]=q;h=k[q>>2]|0;k[q>>2]=0;if(h)Lb[k[(k[h>>2]|0)+4>>2]&255](h);h=k[j>>2]|0}while((h|0)!=(g|0));g=k[l>>2]|0}mj(g)}}else s=5}else s=5;if((s|0)==5){f=Wa(824,0)|0;d=M}q=(d|0)==(ab(824)|0);h=cb(f|0)|0;d=(e|0)==0;if(!q){if(!d)i[e>>0]=0;eb();e=14;r=v;return e|0}g=h+12|0;do if(!d){d=k[g>>2]|0;x=0;f=Da(1)|0;q=x;x=0;if(!(q&1))if((d|0)==(f|0)){wl(e,Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0)|0;s=60;break}else{i[e>>0]=0;s=60;break}}else s=60;while(0);if((s|0)==60?(t=k[g>>2]|0,x=0,u=Da(1)|0,e=x,x=0,!(e&1)):0){e=(t|0)==(u|0)?k[h+8>>2]|0:13;eb();r=v;return e|0}d=Wa()|0;x=0;Ga(3);v=x;x=0;if(v&1){v=Wa(0)|0;oc(v)}else fb(d|0);return 0}function nc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;j=r;r=r+112|0;f=j+96|0;i=j+84|0;l=j+72|0;m=j+60|0;n=j+48|0;o=j+36|0;p=j+24|0;q=j+12|0;s=j;h=(b|0)==0;if((a|0)==0&h){e=Va(16)|0;x=0;Fa(5,f|0,48504,52);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,f|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(f);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}g=k[d>>2]|0;if((g+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,i|0,48557,41);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,i|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(i);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}f=k[d+4>>2]|0;if((f+-1|0)>>>0>65534){e=Va(16)|0;x=0;Fa(5,l|0,48599,42);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,l|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(l);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}e=k[d+8>>2]|0;if((e+-2|0)>>>0>14){e=Va(16)|0;x=0;Fa(5,m|0,48642,46);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,m|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(m);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}a=k[d+24>>2]|0;if(a>>>0>=3){e=Va(16)|0;x=0;Fa(5,n|0,48689,65);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,n|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(n);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}b=k[d+16>>2]|0;if((b+-1|0)>>>0>254){e=Va(16)|0;x=0;Fa(5,o|0,48755,44);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,o|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(o);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}if(!h?(o=ia(f,g)|0,(ia(ia(o,(e|0)>8?2:1)|0,b)|0)>>>0>c>>>0):0){e=Va(16)|0;x=0;Fa(5,p|0,48800,58);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,p|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(p);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}switch(b|0){case 4:{if((a|0)!=2){r=j;return}e=Va(16)|0;x=0;Fa(5,q|0,48859,73);s=x;x=0;if(!(s&1)){x=0;b=Da(1)|0;s=x;x=0;if(!(s&1)?(x=0,Ja(36,e|0,1,b|0,q|0),s=x,x=0,!(s&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(q);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}case 3:{r=j;return}default:{if(!a){r=j;return}e=Va(16)|0;x=0;Fa(5,s|0,48933,73);q=x;x=0;if(!(q&1)){x=0;b=Da(1)|0;q=x;x=0;if(!(q&1)?(x=0,Ja(36,e|0,1,b|0,s|0),q=x,x=0,!(q&1)):0){x=0;Fa(6,e|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(s);if(!a){s=b;fb(s|0)}}else b=Wa()|0;Ua(e|0);s=b;fb(s|0)}}}function oc(a){a=a|0;cb(a|0)|0;tj()}function pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;f=m+116|0;g=m;x=0;k[f>>2]=k[b>>2];k[f+4>>2]=k[b+4>>2];k[f+8>>2]=k[b+8>>2];ra(59,g|0,f|0);e=x;x=0;if(!(e&1)){if(c){e=g+16|0;b=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(b|0))}x=0;k[f>>2]=k[a>>2];k[f+4>>2]=k[a+4>>2];k[f+8>>2]=k[a+8>>2];ra(60,g|0,f|0);g=x;x=0;if(!(g&1)){if(d)i[d>>0]=0;l=0;r=m;return l|0}}a=Wa(824,0)|0;g=M;g=(g|0)==(ab(824)|0);a=cb(a|0)|0;b=(d|0)==0;if(!g){if(!b)i[d>>0]=0;eb();l=14;r=m;return l|0}e=a+12|0;do if(!b){b=k[e>>2]|0;x=0;c=Da(1)|0;g=x;x=0;if(!(g&1))if((b|0)==(c|0)){wl(d,Ob[k[(k[a>>2]|0)+8>>2]&127](a)|0)|0;l=10;break}else{i[d>>0]=0;l=10;break}}else l=10;while(0);if((l|0)==10?(h=k[e>>2]|0,x=0,j=Da(1)|0,l=x,x=0,!(l&1)):0){l=(h|0)==(j|0)?k[a+8>>2]|0:13;eb();r=m;return l|0}b=Wa()|0;x=0;Ga(3);m=x;x=0;if(m&1){m=Wa(0)|0;oc(m)}else fb(b|0);return 0}function qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+128|0;e=j+116|0;d=j;x=0;k[e>>2]=k[a>>2];k[e+4>>2]=k[a+4>>2];k[e+8>>2]=k[a+8>>2];ra(59,d|0,e|0);e=x;x=0;if((!(e&1)?(x=0,qa(177,d|0),e=x,x=0,!(e&1)):0)?(x=0,ra(61,d|0,1),e=x,x=0,!(e&1)):0){a=d+16|0;d=b+84|0;do{k[b>>2]=k[a>>2];b=b+4|0;a=a+4|0}while((b|0)<(d|0));if(c)i[c>>0]=0;c=0;r=j;return c|0}e=Wa(824,0)|0;b=M;b=(b|0)==(ab(824)|0);e=cb(e|0)|0;a=(c|0)==0;if(!b){if(!a)i[c>>0]=0;eb();c=14;r=j;return c|0}b=e+12|0;do if(!a){a=k[b>>2]|0;x=0;d=Da(1)|0;l=x;x=0;if(!(l&1))if((a|0)==(d|0)){wl(c,Ob[k[(k[e>>2]|0)+8>>2]&127](e)|0)|0;h=13;break}else{i[c>>0]=0;h=13;break}}else h=13;while(0);if((h|0)==13?(f=k[b>>2]|0,x=0,g=Da(1)|0,l=x,x=0,!(l&1)):0){l=(f|0)==(g|0)?k[e+8>>2]|0:13;eb();r=j;return l|0}a=Wa()|0;x=0;Ga(3);l=x;x=0;if(l&1){l=Wa(0)|0;oc(l)}else fb(a|0);return 0}function rc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,l=0,m=0;m=r;r=r+48|0;i=m+36|0;h=m+24|0;j=m+12|0;l=m;if(!((a|0)!=0&(c|0)!=0&(d|0)!=0&(f|0)!=0)){e=1;r=m;return e|0}k[j>>2]=0;k[j+4>>2]=a;k[j+8>>2]=b;k[l>>2]=0;k[l+4>>2]=d;k[l+8>>2]=e;k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];e=mc(h,c,i,f,g)|0;r=m;return e|0}function sc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=r;r=r+32|0;f=e+12|0;g=e;h=g;k[h>>2]=0;k[h+4>>2]=0;k[g+4>>2]=a;k[g+8>>2]=b;k[f>>2]=k[g>>2];k[f+4>>2]=k[g+4>>2];k[f+8>>2]=k[g+8>>2];c=qc(f,c,d)|0;r=e;return c|0}function tc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+48|0;h=g+36|0;i=g+24|0;l=g+12|0;j=g;k[l>>2]=0;k[l+4>>2]=a;k[l+8>>2]=b;k[j>>2]=0;k[j+4>>2]=c;k[j+8>>2]=d;k[i>>2]=k[l>>2];k[i+4>>2]=k[l+4>>2];k[i+8>>2]=k[l+8>>2];k[h>>2]=k[j>>2];k[h+4>>2]=k[j+4>>2];k[h+8>>2]=k[j+8>>2];d=pc(i,h,e,f)|0;r=g;return d|0}function uc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=a+4|0;c=k[a>>2]|0;e=((k[j>>2]|0)-c>>2)+1|0;if(e>>>0>1073741823){jj(a);c=k[a>>2]|0}l=a+8|0;d=(k[l>>2]|0)-c|0;if(d>>2>>>0<536870911){d=d>>1;d=d>>>0>>0?e:d;c=(k[j>>2]|0)-c>>2;if(!d){f=0;g=0}else h=6}else{d=1073741823;c=(k[j>>2]|0)-c>>2;h=6}if((h|0)==6){f=d;g=lj(d<<2)|0}e=g+(c<<2)|0;d=e;i=g+(f<<2)|0;h=k[b>>2]|0;k[b>>2]=0;k[e>>2]=h;h=g+(c+1<<2)|0;g=k[a>>2]|0;c=k[j>>2]|0;if((c|0)==(g|0)){e=a;f=j}else{do{c=c+-4|0;b=k[c>>2]|0;k[c>>2]=0;k[e+-4>>2]=b;e=d+-4|0;d=e}while((c|0)!=(g|0));c=d;e=a;f=j;d=c;g=k[a>>2]|0;c=k[j>>2]|0}k[e>>2]=d;k[f>>2]=h;k[l>>2]=i;e=g;if((c|0)!=(e|0))do{c=c+-4|0;d=k[c>>2]|0;k[c>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d)}while((c|0)!=(e|0));if(!g)return;mj(g);return}function vc(){if(i[8]|0)return 35648;if(!(Qa(8)|0))return 35648;tb(72,35648,w|0)|0;Ya(8);return 35648}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+32|0;j=m;Oi(j,(1<>2]|0;l=f+1|0;c=l<<1;k[a>>2]=0;g=a+4|0;k[g>>2]=0;k[a+8>>2]=0;a:do if(l){if(!((f|0)<-1?(x=0,qa(178,a|0),h=x,x=0,h&1):0))d=4;if((d|0)==4?(x=0,e=ta(67,c|0)|0,h=x,x=0,!(h&1)):0){k[g>>2]=e;k[a>>2]=e;k[a+8>>2]=e+c;b=e;while(1){i[b>>0]=0;b=(k[g>>2]|0)+1|0;k[g>>2]=b;c=c+-1|0;if(!c)break a}}c=Wa()|0;b=k[a>>2]|0;if(!b)fb(c|0);if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b);fb(c|0)}while(0);b=~f;if((f|0)<(b|0)){r=m;return}g=j+12|0;h=j+8|0;f=j+4|0;e=b;do{b=k[g>>2]|0;if((e|0)>(0-b|0)){c=k[h>>2]|0;if((e|0)>(0-c|0)){d=k[f>>2]|0;if((e|0)>(0-d|0))if((e|0)>=0)if((e|0)>0)if((d|0)<=(e|0))if((c|0)>(e|0))b=2;else b=(b|0)>(e|0)?3:4;else b=1;else b=0;else b=-1;else b=-2}else b=-3}else b=-4;i[(k[a>>2]|0)+(e+l)>>0]=b;e=e+1|0}while((e|0)<(l|0));r=m;return}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(34,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4624)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;h=d+4|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));h=d+88|0;m=h+40|0;do{k[h>>2]=0;h=h+4|0}while((h|0)<(m|0));k[d>>2]=35660;k[d+128>>2]=e;k[d+132>>2]=n;k[d+136>>2]=o;k[d+140>>2]=a;k[d+144>>2]=g;k[d+148>>2]=f;k[d+152>>2]=p;a=d+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+172>>2]=k[b>>2];k[d+176>>2]=0;k[d+180>>2]=0;k[d+184>>2]=0;a=d+4568|0;e=d+188|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+12>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do if(!n){if(c){if((a|0)!=8)break;d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35688;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35716;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 12:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35744;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}case 16:{d=lj(4600)|0;g=d+4|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=d+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[d>>2]=35772;a=d+132|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+148>>2]=k[b>>2];k[d+152>>2]=0;k[d+156>>2]=0;k[d+160>>2]=0;a=d+4544|0;c=d+164|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4556|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4568|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+28>>2]|0))k[d+20>>2]=1;b=d;return b|0}default:break a}}while(0);m=(1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35800;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35660;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35828;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));g=e+88|0;l=g+40|0;do{k[g>>2]=0;g=g+4|0}while((g|0)<(l|0));k[e>>2]=35856;k[e+128>>2]=m;k[e+132>>2]=f;k[e+136>>2]=n;k[e+140>>2]=a;k[e+144>>2]=c;k[e+148>>2]=d;k[e+152>>2]=64;a=e+156|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+172>>2]=k[b>>2];k[e+176>>2]=0;k[e+180>>2]=0;k[e+184>>2]=0;a=e+4568|0;c=e+188|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4580|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4592|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+28>>2]|0))k[e+20>>2]=1;b=e;return b|0}return 0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;p=k[c+16>>2]|0;switch(p|0){case 64:case 0:{x=0;a=Aa(35,a|0,b|0)|0;b=x;x=0;if(b&1)q=16;else d=a;break}default:{e=(1<>2])+-1|0;o=k[b+20>>2]|0;n=o<<1;n=((n+e|0)/(n|1|0)|0)+1|0;a=0;while(1)if((1<>2]|0;x=0;d=ta(67,4632)|0;m=x;x=0;if(m&1)q=16;else{f=((g|0)<8?8:g)+g<<1;k[d+4>>2]=0;h=d+8|0;l=b;m=h+84|0;do{k[h>>2]=k[l>>2];h=h+4|0;l=l+4|0}while((h|0)<(m|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;m=d+116|0;k[m>>2]=0;k[m+4>>2]=0;k[m+8>>2]=0;k[m+12>>2]=0;k[m+16>>2]=0;k[d>>2]=35884;k[d+136>>2]=e;k[d+140>>2]=n;k[d+144>>2]=o;k[d+148>>2]=a;k[d+152>>2]=g;k[d+156>>2]=f;k[d+160>>2]=p;a=d+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+180>>2]=k[b>>2];k[d+184>>2]=0;k[d+188>>2]=0;k[d+192>>2]=0;a=d+4576|0;e=d+196|0;do{k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;j[e+10>>1]=1;e=e+12|0}while((e|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1}}}if((q|0)==16){q=Wa()|0;fb(q|0)}if(!d)return d|0;x=0;ra(k[(k[d>>2]|0)+8>>2]|0,d|0,c|0);q=x;x=0;if(!(q&1))return d|0;a=Wa()|0;if(!d){q=a;fb(q|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);q=a;fb(q|0);return 0}function Ac(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,m=0,n=0;c=(k[b+24>>2]|0)==2;if(c?(k[b+16>>2]|0)!=3:0){b=0;return b|0}n=k[b+20>>2]|0;a=k[b+8>>2]|0;a:do if(!n){if(c){if((a|0)!=8)break;d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35912;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}switch(a|0){case 8:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35940;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 12:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35968;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}case 16:{d=lj(4608)|0;k[d+4>>2]=0;g=d+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[d+92>>2]=0;k[d+96>>2]=0;k[d+100>>2]=32;k[d+104>>2]=0;k[d+108>>2]=0;i[d+112>>0]=0;a=d+116|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[d>>2]=35996;a=d+140|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[d+156>>2]=k[b>>2];k[d+160>>2]=0;k[d+164>>2]=0;k[d+168>>2]=0;a=d+4552|0;c=d+172|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=d+4564|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=d+4576|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[d+32>>2]|0))k[d+24>>2]=1;b=d;return b|0}default:break a}}while(0);m=(1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36024;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=35884;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}}if((a|0)>=17){b=0;return b|0}f=n<<1;f=((f+m|0)/(f|1|0)|0)+1|0;if(c){a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36052;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}else{a=0;while(1)if((1<>2]=0;g=e+8|0;h=b;l=g+84|0;do{k[g>>2]=k[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(l|0));k[e+92>>2]=0;k[e+96>>2]=0;k[e+100>>2]=32;k[e+104>>2]=0;k[e+108>>2]=0;i[e+112>>0]=0;l=e+116|0;k[l>>2]=0;k[l+4>>2]=0;k[l+8>>2]=0;k[l+12>>2]=0;k[l+16>>2]=0;k[e>>2]=36080;k[e+136>>2]=m;k[e+140>>2]=f;k[e+144>>2]=n;k[e+148>>2]=a;k[e+152>>2]=c;k[e+156>>2]=d;k[e+160>>2]=64;a=e+164|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[e+180>>2]=k[b>>2];k[e+184>>2]=0;k[e+188>>2]=0;k[e+192>>2]=0;a=e+4576|0;c=e+196|0;do{k[c>>2]=0;k[c+4>>2]=0;j[c+8>>1]=0;j[c+10>>1]=1;c=c+12|0}while((c|0)!=(a|0));k[a>>2]=0;k[a+4>>2]=0;j[a+8>>1]=0;i[a+10>>0]=0;b=e+4588|0;k[b>>2]=0;k[b+4>>2]=0;j[b+8>>1]=0;i[b+10>>0]=0;b=e+4600|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[b+16>>2]=0;k[b+20>>2]=0;k[b+24>>2]=0;i[b+28>>0]=0;if(!(k[e+32>>2]|0))k[e+24>>2]=1;b=e;return b|0}return 0}function Bc(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0;a=2832;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=4880);sw(2832,0,2048)|0;a=0;do{g=2832+(a+128<<3)|0;k[g>>2]=0;k[g+4>>2]=1;a=a+1|0}while((a|0)!=128);a=3088;k[a>>2]=1;k[a+4>>2]=3;a=3096;k[a>>2]=1;k[a+4>>2]=3;a=3104;k[a>>2]=1;k[a+4>>2]=3;a=3112;k[a>>2]=1;k[a+4>>2]=3;a=3120;k[a>>2]=1;k[a+4>>2]=3;a=3128;k[a>>2]=1;k[a+4>>2]=3;a=3136;k[a>>2]=1;k[a+4>>2]=3;a=3144;k[a>>2]=1;k[a+4>>2]=3;a=3152;k[a>>2]=1;k[a+4>>2]=3;a=3160;k[a>>2]=1;k[a+4>>2]=3;a=3168;k[a>>2]=1;k[a+4>>2]=3;a=3176;k[a>>2]=1;k[a+4>>2]=3;a=3184;k[a>>2]=1;k[a+4>>2]=3;a=3192;k[a>>2]=1;k[a+4>>2]=3;a=3200;k[a>>2]=1;k[a+4>>2]=3;a=3208;k[a>>2]=1;k[a+4>>2]=3;a=3216;k[a>>2]=1;k[a+4>>2]=3;a=3224;k[a>>2]=1;k[a+4>>2]=3;a=3232;k[a>>2]=1;k[a+4>>2]=3;a=3240;k[a>>2]=1;k[a+4>>2]=3;a=3248;k[a>>2]=1;k[a+4>>2]=3;a=3256;k[a>>2]=1;k[a+4>>2]=3;a=3264;k[a>>2]=1;k[a+4>>2]=3;a=3272;k[a>>2]=1;k[a+4>>2]=3;a=3280;k[a>>2]=1;k[a+4>>2]=3;a=3288;k[a>>2]=1;k[a+4>>2]=3;a=3296;k[a>>2]=1;k[a+4>>2]=3;a=3304;k[a>>2]=1;k[a+4>>2]=3;a=3312;k[a>>2]=1;k[a+4>>2]=3;a=3320;k[a>>2]=1;k[a+4>>2]=3;a=3328;k[a>>2]=1;k[a+4>>2]=3;a=3336;k[a>>2]=1;k[a+4>>2]=3;a=2896;k[a>>2]=2;k[a+4>>2]=5;a=2904;k[a>>2]=2;k[a+4>>2]=5;a=2912;k[a>>2]=2;k[a+4>>2]=5;a=2920;k[a>>2]=2;k[a+4>>2]=5;a=2928;k[a>>2]=2;k[a+4>>2]=5;a=2936;k[a>>2]=2;k[a+4>>2]=5;a=2944;k[a>>2]=2;k[a+4>>2]=5;a=2952;k[a>>2]=2;k[a+4>>2]=5;a=2848;k[a>>2]=3;k[a+4>>2]=7;a=2856;k[a>>2]=3;k[a+4>>2]=7;a=0;do{g=2832+(a+64<<3)|0;k[g>>2]=-1;k[g+4>>2]=2;a=a+1|0}while((a|0)!=64);a=2960;k[a>>2]=-2;k[a+4>>2]=4;a=2968;k[a>>2]=-2;k[a+4>>2]=4;a=2976;k[a>>2]=-2;k[a+4>>2]=4;a=2984;k[a>>2]=-2;k[a+4>>2]=4;a=2992;k[a>>2]=-2;k[a+4>>2]=4;a=3e3;k[a>>2]=-2;k[a+4>>2]=4;a=3008;k[a>>2]=-2;k[a+4>>2]=4;a=3016;k[a>>2]=-2;k[a+4>>2]=4;a=3024;k[a>>2]=-2;k[a+4>>2]=4;a=3032;k[a>>2]=-2;k[a+4>>2]=4;a=3040;k[a>>2]=-2;k[a+4>>2]=4;a=3048;k[a>>2]=-2;k[a+4>>2]=4;a=3056;k[a>>2]=-2;k[a+4>>2]=4;a=3064;k[a>>2]=-2;k[a+4>>2]=4;a=3072;k[a>>2]=-2;k[a+4>>2]=4;a=3080;k[a>>2]=-2;k[a+4>>2]=4;a=2864;k[a>>2]=-3;k[a+4>>2]=6;a=2872;k[a>>2]=-3;k[a+4>>2]=6;a=2880;k[a>>2]=-3;k[a+4>>2]=6;a=2888;k[a>>2]=-3;k[a+4>>2]=6;a=2840;k[a>>2]=-4;k[a+4>>2]=8;a=4880;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=6928);sw(4880,0,2048)|0;c=2;a=0;e=0;f=0;while(1){c=c<<16>>16;b=8-c|0;d=1<>2]=e;k[g+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==7){b=2;e=1;f=-1;g=-1;break}else{c=(a>>1)+2|0;e=b>>16}}while(1){c=b<<16>>16;a=8-c|0;d=1<>2]=f;k[e+4>>2]=c;b=b+1|0}while((b|0)<(d|0))}a=(g<<16)+-65536|0;e=a>>31^a>>15;b=(e>>1)+2|0;if((b|0)>8){a=6928;break}else{f=a>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=8976);sw(6928,0,2048)|0;e=3;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==12){e=3;b=1;d=-1;f=-1;break}else{e=(a>>2)+3|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>2)+3|0;if((e|0)>8){a=8976;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=11024);sw(8976,0,2048)|0;e=4;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==20){e=4;b=1;d=-1;f=-1;break}else{e=(a>>3)+4|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>3)+4|0;if((e|0)>8){a=11024;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=13072);sw(11024,0,2048)|0;e=5;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==32){e=5;b=1;d=-1;f=-1;break}else{e=(a>>4)+5|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>4)+5|0;if((e|0)>8){a=13072;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=15120);sw(13072,0,2048)|0;e=6;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==48){e=6;b=1;d=-1;f=-1;break}else{e=(a>>5)+6|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>5)+6|0;if((e|0)>8){a=15120;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=17168);sw(15120,0,2048)|0;e=7;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){e=7;b=1;d=-1;f=-1;break}else{e=(a>>6)+7|0;d=b>>16}}while(1){a=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}a=(f<<16)+-65536|0;b=a>>31^a>>15;e=(b>>6)+7|0;if((e|0)>8){a=17168;break}else{d=a>>16;f=f+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=19216);sw(17168,0,2048)|0;e=8;a=0;d=0;f=0;while(1){b=8-e|0;c=1<>2]=d;k[g+4>>2]=e;b=b+1|0}while((b|0)<(c|0))}b=(f<<16)+65536|0;a=b>>31^b>>15;f=f+1|0;if((f|0)==64){f=8;d=1;e=-1;g=-1;break}else{e=(a>>7)+8|0;d=b>>16}}while(1){a=8-f|0;c=1<>2]=e;k[d+4>>2]=f;b=b+1|0}while((b|0)<(c|0))}b=(g<<16)+-65536|0;d=b>>31^b>>15;a=d>>7;if((a|0)>0){a=19216;break}else{f=a+8|0;e=b>>16;g=g+-1|0}}do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=21264);sw(19216,0,2048)|0;a=21264;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=23312);sw(21264,0,2048)|0;a=23312;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=25360);sw(23312,0,2048)|0;a=25360;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=27408);sw(25360,0,2048)|0;a=27408;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=29456);sw(27408,0,2048)|0;a=29456;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=31504);sw(29456,0,2048)|0;a=31504;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=33552);sw(31504,0,2048)|0;a=33552;do{k[a>>2]=0;k[a+4>>2]=0;a=a+8|0}while((a|0)!=35600);sw(33552,0,2048)|0;wc(35600,8);tb(179,35600,w|0)|0;wc(35612,10);tb(179,35612,w|0)|0;wc(35624,12);tb(179,35624,w|0)|0;wc(35636,16);tb(179,35636,w|0)|0;return}function Cc(a){a=a|0;var b=0;b=k[a>>2]|0;if(!b)return;a=a+4|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Dc(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ec(a){a=a|0;var b=0,c=0;k[a>>2]=36080;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;re(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Gc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35856;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ge(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Hc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ic(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36460;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Jc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36436;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Kc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36412;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Lc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;k[a>>2]=36388;k[a+4>>2]=c;n=a+8|0;f=k[c>>2]|0;l=c+16|0;d=k[l>>2]|0;g=ia(d,f)|0;k[n>>2]=0;o=a+12|0;k[o>>2]=0;k[a+16>>2]=0;do if(g){if(!((g|0)<0?(x=0,qa(178,n|0),f=x,x=0,f&1):0))m=4;if((m|0)==4?(h=g<<1,x=0,j=ta(67,h|0)|0,f=x,x=0,!(f&1)):0){k[n>>2]=j;f=j+(g<<1)|0;k[a+16>>2]=f;sw(j|0,0,h|0)|0;k[o>>2]=f;f=k[c>>2]|0;d=k[l>>2]|0;break}g=Wa()|0;e=k[n>>2]|0;d=e;if(e){f=k[o>>2]|0;if((f|0)!=(e|0))k[o>>2]=f+(~((f+-2-d|0)>>>1)<<1);mj(e)}o=g;fb(o|0)}while(0);g=a+20|0;d=ia(f<<1,d)|0;k[g>>2]=0;h=a+24|0;k[h>>2]=0;k[a+28>>2]=0;if(!d){o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))m=13;if((m|0)==13?(x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[h>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[h>>2]|0)+1|0;k[h>>2]=e;d=d+-1|0}while((d|0)!=0);o=a+36|0;k[o>>2]=k[b>>2];k[o+4>>2]=k[b+4>>2];k[o+8>>2]=k[b+8>>2];return}f=Wa()|0;e=k[g>>2]|0;if(e){if((k[h>>2]|0)!=(e|0))k[h>>2]=e;mj(e)}e=k[n>>2]|0;if(!e){o=f;fb(o|0)}d=k[o>>2]|0;if((d|0)!=(e|0))k[o>>2]=d+(~((d+-2-e|0)>>>1)<<1);mj(e);o=f;fb(o|0)}function Mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+32|0;Tm(g,b)|0;f=a+44|0;k[f>>2]=0;h=a+48|0;e=k[h>>2]|0;if(e&8){b=i[g>>0]|0;if(!(b&1)){b=((b&255)>>>1)+(g+1)|0;k[f>>2]=b;c=g+1|0;d=g+1|0}else{b=(k[a+40>>2]|0)+(k[a+36>>2]|0)|0;k[f>>2]=b;d=k[a+40>>2]|0;c=d}k[a+8>>2]=c;k[a+12>>2]=d;k[a+16>>2]=b}if(!(e&16))return;b=i[g>>0]|0;if(!(b&1)){e=(b&255)>>>1;k[f>>2]=g+1+e;b=10;f=e}else{e=k[a+36>>2]|0;k[f>>2]=(k[a+40>>2]|0)+e;b=(k[g>>2]&-2)+-1|0;f=e}Wm(g,b,0);b=i[g>>0]|0;if(!(b&1)){e=g+1|0;d=(b&255)>>>1;c=g+1|0}else{c=k[a+40>>2]|0;e=c;d=k[a+36>>2]|0}b=a+24|0;k[b>>2]=c;k[a+20>>2]=c;k[a+28>>2]=e+d;if(!(k[h>>2]&3))return;k[b>>2]=c+f;return}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;g=o+16|0;n=o+8|0;h=o;x=0;ra(65,n|0,a|0);l=x;x=0;a:do if(l&1){c=Wa(0)|0;d=a;e=a}else{do if(i[n>>0]|0){d=k[(k[a>>2]|0)+-12>>2]|0;k[h>>2]=k[a+(d+24)>>2];j=a+d|0;l=k[a+(d+4)>>2]|0;e=b+c|0;d=a+(d+76)|0;c=k[d>>2]|0;do if((c|0)==-1){x=0;c=ta(68,j|0)|0;p=x;x=0;if(p&1)m=13;else{k[g>>2]=c;x=0;c=Aa(37,g|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(g);c=f<<24>>24;k[d>>2]=c;m=9;break}c=Wa(0)|0;Qs(g)}}else m=9;while(0);if((m|0)==9){x=0;k[g>>2]=k[h>>2];c=sa(39,g|0,b|0,((l&176|0)==32?e:b)|0,e|0,j|0,c&255|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break;else m=13}else m=13}if((m|0)==13)c=Wa(0)|0;ro(n);d=a;e=a;break a}while(0);ro(n);r=o;return a|0}while(0);cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();r=o;return a|0}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0);return 0}function Oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=k[b+48>>2]|0;if(c&16){c=b+44|0;d=k[c>>2]|0;e=k[b+24>>2]|0;if(d>>>0>>0)k[c>>2]=e;else e=d;d=k[b+20>>2]|0;f=e-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{b=f+16&-16;c=lj(b)|0;k[a+8>>2]=c;k[a>>2]=b|1;k[a+4>>2]=f}if((d|0)!=(e|0)){b=c;while(1){i[b>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(e|0))break;else b=b+1|0}c=c+f|0}i[c>>0]=0;return}if(!(c&8)){k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}d=k[b+8>>2]|0;b=k[b+16>>2]|0;f=b-d|0;if(f>>>0>4294967279)ij(a);if(f>>>0<11){i[a>>0]=f<<1;c=a+1|0}else{e=f+16&-16;c=lj(e)|0;k[a+8>>2]=c;k[a>>2]=e|1;k[a+4>>2]=f}if((d|0)!=(b|0)){e=c;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(b|0))break;else e=e+1|0}c=c+f|0}i[c>>0]=0;return}function Pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36364;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36340;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Rc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;k[a>>2]=36316;k[a+4>>2]=c;o=a+8|0;g=k[c>>2]|0;m=c+16|0;f=k[m>>2]|0;l=ia(f,g)|0;k[o>>2]=0;p=a+12|0;k[p>>2]=0;k[a+16>>2]=0;do if(l){if(!((l|0)<0?(x=0,qa(178,o|0),g=x,x=0,g&1):0))n=4;if((n|0)==4?(h=l<<1,x=0,j=ta(67,h|0)|0,g=x,x=0,!(g&1)):0){k[o>>2]=j;g=j+(l<<1)|0;k[a+16>>2]=g;sw(j|0,0,h|0)|0;k[p>>2]=g;g=k[c>>2]|0;f=k[m>>2]|0;break}h=Wa()|0;e=k[o>>2]|0;f=e;if(e){g=k[p>>2]|0;if((g|0)!=(e|0))k[p>>2]=g+(~((g+-2-f|0)>>>1)<<1);mj(e)}p=h;fb(p|0)}while(0);h=a+20|0;f=ia(g<<1,f)|0;k[h>>2]=0;j=a+24|0;k[j>>2]=0;k[a+28>>2]=0;if(!f){p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}if(!((f|0)<0?(x=0,qa(178,h|0),m=x,x=0,m&1):0))n=13;if((n|0)==13?(x=0,e=ta(67,f|0)|0,n=x,x=0,!(n&1)):0){k[j>>2]=e;k[h>>2]=e;k[a+28>>2]=e+f;do{i[e>>0]=0;e=(k[j>>2]|0)+1|0;k[j>>2]=e;f=f+-1|0}while((f|0)!=0);p=a+32|0;o=d;o=k[o>>2]|0;d=d+4|0;d=k[d>>2]|0;n=p;k[n>>2]=o;p=p+4|0;k[p>>2]=d;p=a+40|0;k[p>>2]=o;p=a+48|0;k[p>>2]=k[b>>2];k[p+4>>2]=k[b+4>>2];k[p+8>>2]=k[b+8>>2];return}g=Wa()|0;e=k[h>>2]|0;if(e){if((k[j>>2]|0)!=(e|0))k[j>>2]=e;mj(e)}e=k[o>>2]|0;if(!e){p=g;fb(p|0)}f=k[p>>2]|0;if((f|0)!=(e|0))k[p>>2]=f+(~((f+-2-e|0)>>>1)<<1);mj(e);p=g;fb(p|0)}function Sc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Tc(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36316;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;Zc(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Zc(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;Wc(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xc(a,e,b,c,d);return}}function Wc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{o=k[f>>2]|0;l=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(l+49152+((a+e|0)>>>2)&65535)>>>o;j[c+(b*6|0)+2>>1]=a>>>o;j[c+(b*6|0)+4>>1]=e>>>o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)+2>>1]<>1]<>1]<>1]=(d+49152+((a+o|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=a>>>f;j[c+(b+h<<1)>>1]=o>>>f;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)+2>>1]<>1]<>1]<>1]=(p+49152+((d+a|0)>>>2)&65535)>>>f;j[c+(b+e<<1)>>1]=d>>>f;j[c+(b+h<<1)>>1]=a>>>f;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function Xc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wc(a,q,c,d,e);r=n;return}function Yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;e=r;r=r+176|0;c=e+152|0;j=e+16|0;g=e;if(!(b&1)){c=(b|0)/4|0;if((b|0)>3){d=0;do{j=a+(d<<2)|0;h=k[j>>2]|0;k[j>>2]=h>>>8&16711935|h<<8&-16711936;d=d+1|0}while((d|0)<(c|0))}if(!(b&3)){r=e;return}g=a+(b+-2)|0;j=a+(b+-1)|0;h=i[g>>0]|0;i[g>>0]=i[j>>0]|0;i[j>>0]=h;r=e;return}h=j+56|0;f=j+4|0;k[j>>2]=36160;k[h>>2]=36180;x=0;ra(62,j+56|0,f|0);e=x;x=0;if(e&1){j=Wa()|0;qn(h);fb(j|0)}k[j+128>>2]=0;k[j+132>>2]=-1;k[j>>2]=36200;k[j+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do if(e&1)c=Wa()|0;else{k[f>>2]=36236;e=j+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[j+52>>2]=16;k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;x=0;ra(63,f|0,c|0);a=x;x=0;if(a&1){j=Wa()|0;Sm(c);Sm(e);xn(f);c=j;break}Sm(c);x=0;c=va(28,j|0,49087,24)|0;a=x;x=0;if((!(a&1)?(x=0,d=Aa(36,c|0,b|0)|0,b=x,x=0,!(b&1)):0)?(x=0,va(28,d|0,49112,20)|0,b=x,x=0,!(b&1)):0){a=Va(16)|0;x=0;ra(64,g|0,f|0);b=x;x=0;if(!(b&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,a|0,1,35648,g|0);b=x;x=0;if(b&1)d=1;else{x=0;Fa(6,a|0,824,96);x=0;d=0}c=Wa()|0;Sm(g);if(!d){g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else c=Wa()|0;Ua(a|0);g=c;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[j>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}while(0);j=c;qn(h);fb(j|0)}function Zc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=a+4|0;f=k[n>>2]|0;a:do switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{e=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(g+32768+l&65535)>>>e;j[c+(a*6|0)+2>>1]=(l&65535)>>>e;j[c+(a*6|0)+4>>1]=(h+32768+l&65535)>>>e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{l=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>2)+16384|0;j[c+(a*6|0)>>1]=(q+32768+o&65535)>>>l;j[c+(a*6|0)+2>>1]=(o&65535)>>>l;j[c+(a*6|0)+4>>1]=(p+32768+o&65535)>>>l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;p=m[b+(g+e<<1)>>1]<>1]<>1]<>2)+16384|0;r=j[b+(g+a<<1)>>1]|0;t=ww((o&65535)>>>q&65535|0,0,16)|0;p=(p+32768+o&65535)>>>q|M;r=ww(r&65535|0,0,48)|0;r=t|(s+32768+o&65535)>>>q&65535|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){t=f+4|0;s=j[f>>1]|0;j[f>>1]=j[t>>1]|0;j[t>>1]=s;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function _c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function $c(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36340;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ed(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ed(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;cd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{dd(a,e,b,c,d);return}}function cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0;l=a+4|0;f=k[l>>2]|0;do if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;l=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>e&65535;j[c+(b*6|0)>>1]=(l+32768-a&65535)>>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{d=m[n+(b*6|0)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(d+32768-a&65535)>>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;l=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;p=m[n+(b<<3)>>1]<>1]<>1]<>>1)&65535)>>>f&65535;j[c+(b<<1)>>1]=(p+32768-d&65535)>>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+h<<1)>>1]=a;j[c+(b+l<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}default:return}}function dd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;cd(a,q,c,d,e);r=n;return}function ed(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>1]<>>1)&65535)>>>l&65535;j[c+(a*6|0)>>1]=g>>>l;j[c+(a*6|0)+2>>1]=h>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o&65535;j[c+(a*6|0)>>1]=q>>>o;j[c+(a*6|0)+2>>1]=p>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{o=k[f>>2]|0;q=m[b+(g+e<<1)>>1]<>1]<>1]<>>1)&65535)>>>o;r=j[b+(g+a<<1)>>1]|0;q=ww(q>>>o&65535|0,0,16)|0;p=M|p;r=ww(r&65535|0,0,48)|0;r=s>>>o&65535|q|r;p=p&65535|M;q=c+(g<<3)|0;o=q;j[o>>1]=r;j[o+2>>1]=r>>>16;q=q+4|0;j[q>>1]=p;j[q+2>>1]=p>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function gd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36364;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+48|0;if(!(k[e>>2]|0)){h=a+52|0;ld(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;ld(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+48>>2]|0;if(!e){e=a+52|0;jd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{kd(a,e,b,c,d);return}}function jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0;l=a+4|0;f=k[l>>2]|0;do if(!(i[f+32>>0]|0))n=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*6|0)|0;f=k[l>>2]|0;h=k[f+16>>2]|0;if((d|0)<=0){n=k[g>>2]|0;break}b=k[g>>2]|0;f=b;g=0;while(1){n=f+4|0;o=j[f>>1]|0;j[f>>1]=j[n>>1]|0;j[n>>1]=o;g=g+1|0;if((g|0)==(d|0))break;else f=f+(h<<1)|0}n=b;f=k[l>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:if((k[f+24>>2]|0)==2){if((d|0)<=0)return;f=a+32|0;b=0;do{e=k[f>>2]|0;a=m[n+(b*6|0)+2>>1]<>1]<>>e&65535;j[c+(b*6|0)>>1]=((m[n+(b*6|0)>>1]<>>e;j[c+(b*6|0)+2>>1]=(a&65535)>>>e;j[c+(b*6|0)+4>>1]=o;b=b+1|0}while((b|0)!=(d|0));return}else{g=(e|0)<(d|0)?e:d;if((g|0)<=0)return;h=e<<1;f=k[a+32>>2]|0;b=0;do{a=m[n+(b*6|0)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b*6|0)>>1]<>>f;j[c+(b+e<<1)>>1]=(a&65535)>>>f;j[c+(b+h<<1)>>1]=o;b=b+1|0}while((b|0)!=(g|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;h=(e|0)<(d|0)?e:d;if((h|0)<=0)return;l=e<<1;g=e*3|0;f=k[a+32>>2]|0;b=0;do{o=j[n+(b<<3)+6>>1]|0;d=m[n+(b<<3)+2>>1]<>1]<>>f&65535;j[c+(b<<1)>>1]=((m[n+(b<<3)>>1]<>>f;j[c+(b+e<<1)>>1]=(d&65535)>>>f;j[c+(b+l<<1)>>1]=a;j[c+(b+g<<1)>>1]=o;b=b+1|0}while((b|0)!=(h|0));return}default:return}}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;jd(a,q,c,d,e);r=n;return}function ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;n=a+4|0;f=k[n>>2]|0;a:do switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)<=0)break a;f=a+40|0;a=0;do{l=k[f>>2]|0;h=m[b+(a*6|0)+2>>1]<>1]<>>l&65535;j[c+(a*6|0)>>1]=((m[b+(a*6|0)>>1]<>>l;j[c+(a*6|0)+2>>1]=(h&65535)>>>l;j[c+(a*6|0)+4>>1]=e;a=a+1|0}while((a|0)!=(d|0))}else{g=(d|0)<(e|0)?d:e;if((g|0)<=0)break a;h=e<<1;f=a+40|0;a=0;do{o=k[f>>2]|0;p=m[b+(a+e<<1)>>1]<>1]<>>o&65535;j[c+(a*6|0)>>1]=((m[b+(a<<1)>>1]<>>o;j[c+(a*6|0)+2>>1]=(p&65535)>>>o;j[c+(a*6|0)+4>>1]=l;a=a+1|0}while((a|0)!=(g|0))}break}case 4:{if((k[f+24>>2]|0)==1?(l=(d|0)<(e|0)?d:e,(l|0)>0):0){h=e<<1;f=a+40|0;a=e*3|0;g=0;do{q=k[f>>2]|0;s=m[b+(g+e<<1)>>1]<>1]<>>q;o=(s+32768+(m[b+(g+h<<1)>>1]<>>q;r=j[b+(g+a<<1)>>1]|0;q=ww((s&65535)>>>q&65535|0,0,16)|0;o=o|M;r=ww(r&65535|0,0,48)|0;r=q|p&65535|r;o=o&65535|M;p=c+(g<<3)|0;q=p;j[q>>1]=r;j[q+2>>1]=r>>>16;p=p+4|0;j[p>>1]=o;j[p+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(l|0))}break}default:{}}while(0);f=k[n>>2]|0;if(!(i[f+32>>0]|0))return;g=k[f+16>>2]|0;if((d|0)<=0)return;f=c;a=0;while(1){s=f+4|0;r=j[f>>1]|0;j[f>>1]=j[s>>1]|0;j[s>>1]=r;a=a+1|0;if((a|0)==(d|0))break;else f=f+(g<<1)|0}return}function md(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;l=n;m=k[a>>2]|0;if(!m){a=0;r=n;return a|0}o=b;h=d-o|0;j=e+12|0;g=k[j>>2]|0;h=(g|0)>(h|0)?g-h|0:0;g=c;e=g-o|0;if((e|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,b,e)|0)!=(e|0):0){k[a>>2]=0;o=0;r=n;return o|0}do if((h|0)>0){Rm(l,h,f);x=0;e=va(k[(k[m>>2]|0)+48>>2]|0,m|0,((i[l>>0]&1)==0?l+1|0:k[l+8>>2]|0)|0,h|0)|0;o=x;x=0;if(o&1){o=Wa()|0;Sm(l);fb(o|0)}if((e|0)==(h|0)){Sm(l);break}k[a>>2]=0;Sm(l);o=0;r=n;return o|0}while(0);d=d-g|0;if((d|0)>0?(Qb[k[(k[m>>2]|0)+48>>2]&63](m,c,d)|0)!=(d|0):0){k[a>>2]=0;o=0;r=n;return o|0}k[j>>2]=0;o=m;r=n;return o|0}function nd(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);return}function od(a){a=a|0;k[a>>2]=36236;Sm(a+32|0);xn(a);mj(a);return}function pd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0;g=b+44|0;h=k[g>>2]|0;l=b+24|0;m=k[l>>2]|0;if(h>>>0>>0){k[g>>2]=m;h=m}j=h;g=f&24;if(!g){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((e|0)==1&(g|0)==24){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}a:do switch(e|0){case 0:{g=0;e=0;break}case 1:if(!(f&8)){e=m-(k[b+20>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}else{e=(k[b+12>>2]|0)-(k[b+8>>2]|0)|0;g=e;e=((e|0)<0)<<31>>31;break a}case 2:{g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;e=h-g|0;g=e;e=((e|0)<0)<<31>>31;break}default:{b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}while(0);e=tw(g|0,e|0,c|0,d|0)|0;c=M;if((c|0)>=0){g=b+32|0;if(!(i[g>>0]&1))g=g+1|0;else g=k[b+40>>2]|0;d=h-g|0;h=((d|0)<0)<<31>>31;if(!((h|0)<(c|0)|(h|0)==(c|0)&d>>>0>>0)){g=f&8;if(!((e|0)==0&(c|0)==0)){if((g|0)!=0?(k[b+12>>2]|0)==0:0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}if((f&16|0)!=0&(m|0)==0){b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}}if(g){k[b+12>>2]=(k[b+8>>2]|0)+e;k[b+16>>2]=j}if(f&16)k[l>>2]=(k[b+20>>2]|0)+e;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=e;k[b+4>>2]=c;return}}b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function qd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=c+8|0;Sb[k[(k[b>>2]|0)+16>>2]&15](a,b,k[c>>2]|0,k[c+4>>2]|0,0,d);return}function rd(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+44|0;c=k[b>>2]|0;d=k[a+24>>2]|0;if(c>>>0>>0){k[b>>2]=d;c=d}if(!(k[a+48>>2]&8)){a=-1;return a|0}e=a+16|0;b=k[e>>2]|0;d=a+12|0;if(b>>>0>>0){d=k[d>>2]|0;k[e>>2]=c;b=c}else d=k[d>>2]|0;if(d>>>0>=b>>>0){a=-1;return a|0}a=l[d>>0]|0;return a|0}function sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;d=a+44|0;c=k[d>>2]|0;e=k[a+24>>2]|0;if(c>>>0>>0){k[d>>2]=e;c=e}h=a+8|0;d=k[h>>2]|0;j=a+12|0;f=k[j>>2]|0;g=d;if(d>>>0>=f>>>0){a=-1;return a|0}if((b|0)==-1){k[h>>2]=d;k[j>>2]=f+-1;k[a+16>>2]=c;a=0;return a|0}if(!(k[a+48>>2]&16)){e=b&255;d=f+-1|0;if(e<<24>>24!=(i[d>>0]|0)){a=-1;return a|0}}else{e=b&255;d=f+-1|0}k[h>>2]=g;k[j>>2]=d;k[a+16>>2]=c;i[d>>0]=e;a=b;return a|0}function td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;s=r;r=r+16|0;m=s;if((b|0)==-1){a=0;r=s;return a|0}n=a+12|0;o=a+8|0;p=(k[n>>2]|0)-(k[o>>2]|0)|0;q=a+24|0;c=k[q>>2]|0;l=a+28|0;d=k[l>>2]|0;do if((c|0)==(d|0)){h=a+48|0;if(!(k[h>>2]&16)){a=-1;r=s;return a|0}j=a+20|0;g=k[j>>2]|0;e=c-g|0;f=a+44|0;g=(k[f>>2]|0)-g|0;d=a+32|0;x=0;ra(67,d|0,0);c=x;x=0;if(!(c&1)){if(!(i[d>>0]&1))c=10;else c=(k[d>>2]&-2)+-1|0;x=0;Fa(8,d|0,c|0,0);c=x;x=0;if(!(c&1)){c=i[d>>0]|0;if(!(c&1)){d=d+1|0;c=(c&255)>>>1}else{d=k[a+40>>2]|0;c=k[a+36>>2]|0}t=d+c|0;k[j>>2]=d;k[l>>2]=t;j=d+e|0;k[q>>2]=j;c=d+g|0;k[f>>2]=c;d=t;break}}t=Wa(0)|0;cb(t|0)|0;eb();t=-1;r=s;return t|0}else{t=a+44|0;h=a+48|0;f=t;j=c;c=k[t>>2]|0}while(0);g=j+1|0;k[m>>2]=g;e=k[(g>>>0>>0?f:m)>>2]|0;k[f>>2]=e;if(k[h>>2]&8){c=a+32|0;if(!(i[c>>0]&1))c=c+1|0;else c=k[a+40>>2]|0;k[o>>2]=c;k[n>>2]=c+p;k[a+16>>2]=e}if((j|0)==(d|0)){t=Vb[k[(k[a>>2]|0)+52>>2]&63](a,b&255)|0;r=s;return t|0}else{k[q>>2]=g;i[j>>0]=b;t=b&255;r=s;return t|0}return 0}function ud(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);return}function vd(a){a=a|0;var b=0,c=0;k[a>>2]=36200;b=a+56|0;k[b>>2]=36220;c=a+4|0;k[c>>2]=36236;Sm(a+36|0);xn(c);qn(b);mj(a);return}function wd(a){a=a|0;var b=0,c=0,d=0,e=0;e=k[(k[a>>2]|0)+-12>>2]|0;b=a+e|0;k[b>>2]=36200;c=a+(e+56)|0;k[c>>2]=36220;d=a+(e+4)|0;k[d>>2]=36236;Sm(a+(e+36)|0);xn(d);qn(c);mj(b);return}function xd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function yd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36388;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function zd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Dd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Dd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Bd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Cd(a,e,b,c,d);return}}function Bd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{h=m[l+(f*6|0)+2>>1]|0;e=32768-h+(m[l+(f*6|0)+4>>1]|0)|0;n=(m[l+(f*6|0)>>1]|0)-h+32768|0;j[c+(f*6|0)>>1]=h+49152+(((e&65535)+(n&65535)|0)>>>2);j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{h=m[l+(b*6|0)+2>>1]|0;d=32768-h+(m[l+(b*6|0)+4>>1]|0)|0;n=(m[l+(b*6|0)>>1]|0)-h+32768|0;j[c+(b<<1)>>1]=h+49152+(((d&65535)+(n&65535)|0)>>>2);j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{n=j[l+(g<<3)+6>>1]|0;o=m[l+(g<<3)+2>>1]|0;h=32768-o+(m[l+(g<<3)+4>>1]|0)|0;d=(m[l+(g<<3)>>1]|0)-o+32768|0;j[c+(g<<1)>>1]=o+49152+(((h&65535)+(d&65535)|0)>>>2);j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Bd(a,q,c,d,e);r=n;return}function Dd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=m[b+(a*6|0)+2>>1]|0;g=m[b+(a*6|0)+4>>1]|0;e=(m[b+(a*6|0)>>1]|0)-((g+h|0)>>>2)+16384|0;j[c+(a*6|0)>>1]=g+32768+e;j[c+(a*6|0)+2>>1]=e;j[c+(a*6|0)+4>>1]=h+32768+e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=m[b+(g+e<<1)>>1]|0;o=m[b+(g+f<<1)>>1]|0;h=(m[b+(g<<1)>>1]|0)-((o+n|0)>>>2)+16384|0;j[c+(g*6|0)>>1]=o+32768+h;j[c+(g*6|0)+2>>1]=h;j[c+(g*6|0)+4>>1]=n+32768+h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=m[b+(g+e<<1)>>1]|0;p=m[b+(g+a<<1)>>1]|0;o=(m[b+(g<<1)>>1]|0)-((p+n|0)>>>2)+16384|0;q=j[b+(g+f<<1)>>1]|0;r=ww(o&65535|0,0,16)|0;n=n+32768+o|M;q=ww(q&65535|0,0,48)|0;q=r|p+32768+o&65535|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){r=a+4|0;q=j[a>>1]|0;j[a>>1]=j[r>>1]|0;j[r>>1]=q;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ed(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Fd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36412;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Kd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Kd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Id(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Jd(a,e,b,c,d);return}}function Id(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=m[l+(f*6|0)>>1]|0;e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=(m[l+(f*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(f*6|0)>>1]=g+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;g=m[l+(b*6|0)>>1]|0;h=d&65535;n=(m[l+(b*6|0)+4>>1]|0)+32768-((h+g|0)>>>1)&65535;j[c+(b<<1)>>1]=g+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;p=m[l+(g<<3)>>1]|0;o=h&65535;d=(m[l+(g<<3)+4>>1]|0)+32768-((o+p|0)>>>1)&65535;j[c+(g<<1)>>1]=p+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Id(a,q,c,d,e);r=n;return}function Kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=h&65535;g=(m[b+(a*6|0)>>1]|0)+32768+e|0;e=(m[b+(a*6|0)+4>>1]|0)+32768+(((g&65535)+e|0)>>>1)&65535;j[c+(a*6|0)>>1]=g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=n&65535;o=(m[b+(g<<1)>>1]|0)+32768+h|0;h=(m[b+(g+f<<1)>>1]|0)+32768+(((o&65535)+h|0)>>>1)&65535;j[c+(g*6|0)>>1]=o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n&65535;n=(m[b+(g+a<<1)>>1]|0)+32768+((p+n|0)>>>1)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Ld(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Md(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36436;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Rd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Rd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Pd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Qd(a,e,b,c,d);return}}function Pd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;n=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=n;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;h=e&65535;n=32768-h+(m[l+(f*6|0)+4>>1]|0)&65535;j[c+(f*6|0)>>1]=(m[l+(f*6|0)>>1]|0)+32768-h;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=n;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;h=d&65535;n=32768-h+(m[l+(b*6|0)+4>>1]|0)&65535;j[c+(b<<1)>>1]=(m[l+(b*6|0)>>1]|0)+32768-h;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=n;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;n=j[l+(g<<3)+6>>1]|0;o=h&65535;d=32768-o+(m[l+(g<<3)+4>>1]|0)&65535;j[c+(g<<1)>>1]=(m[l+(g<<3)>>1]|0)+32768-o;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=n;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Qd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Pd(a,q,c,d,e);r=n;return}function Rd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;g=h&65535;e=g+32768+(m[b+(a*6|0)+4>>1]|0)&65535;j[c+(a*6|0)>>1]=(m[b+(a*6|0)>>1]|0)+32768+g;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;o=n&65535;h=o+32768+(m[b+(g+f<<1)>>1]|0)&65535;j[c+(g*6|0)>>1]=(m[b+(g<<1)>>1]|0)+32768+o;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{o=j[b+(g+e<<1)>>1]|0;n=o&65535;p=(m[b+(g<<1)>>1]|0)+32768+n|0;n=n+32768+(m[b+(g+a<<1)>>1]|0)|0;q=j[b+(g+f<<1)>>1]|0;o=ww(o&65535|0,0,16)|0;n=M|n;q=ww(q&65535|0,0,48)|0;q=p&65535|o|q;n=n&65535|M;o=c+(g<<3)|0;p=o;j[p>>1]=q;j[p+2>>1]=q>>>16;o=o+4|0;j[o>>1]=n;j[o+2>>1]=n>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Sd(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d)return;b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);return}function Td(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=36460;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}d=k[a+8>>2]|0;if(!d){mj(a);return}b=a+12|0;c=k[b>>2]|0;if((c|0)!=(d|0))k[b>>2]=c+(~((c+-2-d|0)>>>1)<<1);mj(d);mj(a);return}function Ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=a+36|0;if(!(k[e>>2]|0)){h=a+40|0;Yd(a,b,k[h>>2]|0,c,d);k[h>>2]=(k[h>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}j=a+4|0;f=c<<1;g=ia(f,k[(k[j>>2]|0)+16>>2]|0)|0;h=a+20|0;Yd(a,b,k[h>>2]|0,c,d);b=k[j>>2]|0;if((k[b+28>>2]|0)==536870912)Yc(k[h>>2]|0,ia(f,k[b+16>>2]|0)|0);j=k[e>>2]|0;if((Qb[k[(k[j>>2]|0)+48>>2]&63](j,k[h>>2]|0,g)|0)==(g|0))return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,3,35648);j=x;x=0;if(j&1){j=Wa()|0;Ua(b|0);fb(j|0)}else ub(b|0,824,96)}function Vd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Wd(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{Xd(a,e,b,c,d);return}}function Wd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0;h=a+4|0;f=k[h>>2]|0;do if(!(i[f+32>>0]|0))l=b;else{a=a+8|0;vw(k[a>>2]|0,b|0,d*6|0)|0;f=k[h>>2]|0;g=k[f+16>>2]|0;if((d|0)<=0){l=k[a>>2]|0;break}a=k[a>>2]|0;f=a;b=0;while(1){l=f+4|0;m=j[f>>1]|0;j[f>>1]=j[l>>1]|0;j[l>>1]=m;b=b+1|0;if((b|0)==(d|0))break;else f=f+(g<<1)|0}l=a;f=k[h>>2]|0}while(0);switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=j[l+(f*6|0)+2>>1]|0;m=j[l+(f*6|0)+4>>1]|0;j[c+(f*6|0)>>1]=j[l+(f*6|0)>>1]|0;j[c+(f*6|0)+2>>1]=e;j[c+(f*6|0)+4>>1]=m;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=j[l+(b*6|0)+2>>1]|0;m=j[l+(b*6|0)+4>>1]|0;j[c+(b<<1)>>1]=j[l+(b*6|0)>>1]|0;j[c+(b+e<<1)>>1]=d;j[c+(b+a<<1)>>1]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{h=j[l+(g<<3)+2>>1]|0;d=j[l+(g<<3)+4>>1]|0;m=j[l+(g<<3)+6>>1]|0;j[c+(g<<1)>>1]=j[l+(g<<3)>>1]|0;j[c+(g+e<<1)>>1]=h;j[c+(g+a<<1)>>1]=d;j[c+(g+b<<1)>>1]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function Xd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=r;r=r+176|0;o=n+152|0;q=n+16|0;p=n;j=a+4|0;f=k[j>>2]|0;m=d<<1;g=ia(m,k[f+16>>2]|0)|0;do if(g){h=a+20|0;while(1){f=Qb[k[(k[b>>2]|0)+32>>2]&63](b,k[h>>2]|0,g)|0;if(!f)break;if((g|0)==(f|0)){l=26;break}else g=g-f|0}if((l|0)==26){f=k[j>>2]|0;break}l=q+56|0;j=q+4|0;k[q>>2]=36160;k[l>>2]=36180;x=0;ra(62,q+56|0,j|0);n=x;x=0;if(n&1){q=Wa()|0;qn(l);fb(q|0)}k[q+128>>2]=0;k[q+132>>2]=-1;k[q>>2]=36200;k[q+56>>2]=36220;x=0;qa(180,j|0);n=x;x=0;do if(n&1)f=Wa()|0;else{k[j>>2]=36236;b=q+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[q+52>>2]=16;k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;x=0;ra(63,j|0,o|0);n=x;x=0;if(n&1){f=Wa()|0;Sm(o);Sm(b);xn(j);break}Sm(o);x=0;f=va(28,q|0,49029,57)|0;o=x;x=0;if(!(o&1)?(x=0,Aa(36,f|0,0)|0,o=x,x=0,!(o&1)):0){h=Va(16)|0;x=0;ra(64,p|0,j|0);o=x;x=0;if(!(o&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,p|0);o=x;x=0;if(o&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(p);if(!g){p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}}else f=Wa()|0;Ua(h|0);p=f;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}p=Wa()|0;k[q>>2]=36200;k[l>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(l);fb(p|0)}while(0);q=f;qn(l);fb(q|0)}while(0);g=a+20|0;if((k[f+28>>2]|0)!=536870912){q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}Yc(k[g>>2]|0,ia(m,k[f+16>>2]|0)|0);q=k[g>>2]|0;Wd(a,q,c,d,e);r=n;return}function Yd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0;l=a+4|0;a=k[l>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){h=j[b+(a*6|0)+2>>1]|0;e=j[b+(a*6|0)+4>>1]|0;j[c+(a*6|0)>>1]=j[b+(a*6|0)>>1]|0;j[c+(a*6|0)+2>>1]=h;j[c+(a*6|0)+4>>1]=e;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=j[b+(g+e<<1)>>1]|0;h=j[b+(g+f<<1)>>1]|0;j[c+(g*6|0)>>1]=j[b+(g<<1)>>1]|0;j[c+(g*6|0)+2>>1]=n;j[c+(g*6|0)+4>>1]=h;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=j[b+(g<<1)>>1]|0;q=j[b+(g+f<<1)>>1]|0;o=m[b+(g+a<<1)>>1]|0;p=ww(m[b+(g+e<<1)>>1]|0,0,16)|0;o=M|o;q=ww(q&65535|0,0,48)|0;q=p|n&65535|q;o=o&65535|M;n=c+(g<<3)|0;p=n;j[p>>1]=q;j[p+2>>1]=q>>>16;n=n+4|0;j[n>>1]=o;j[n+2>>1]=o>>>16;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[l>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)<=0)return;a=c;f=0;while(1){q=a+4|0;p=j[a>>1]|0;j[a>>1]=j[q>>1]|0;j[q>>1]=p;f=f+1|0;if((f|0)==(d|0))break;else a=a+(g<<1)|0}return}function Zd(a){a=a|0;return}function _d(a){a=a|0;mj(a);return}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=ia(k[a+8>>2]|0,c)|0;a=k[a+4>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,b,c)|0)==(c|0))return;d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+16|0;l=m;j=a+8|0;e=k[j>>2]|0;d=ia(e,c)|0;do if(d){g=a+4|0;f=d;while(1){e=k[g>>2]|0;e=Qb[k[(k[e>>2]|0)+32>>2]&63](e,b,f)|0;if(!e)break;d=f-e|0;if((f|0)==(e|0)){h=11;break}else f=d}if((h|0)==11){e=k[j>>2]|0;f=d;break}d=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,d|0,3,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(d|0);fb(a|0)}else ub(d|0,824,96)}else f=0;while(0);if((e|0)==2){Yc(b,c<<1);e=k[j>>2]|0}d=k[a+12>>2]|0;if((d|0)<=(ia(e,c)|0)){r=m;return}a=k[a+4>>2]|0;Sb[k[(k[a>>2]|0)+16>>2]&15](l,a,d-f|0,0,1,24);r=m;return}function be(a){a=a|0;mj(a);return}function ce(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(k[d>>2]|0,b|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function de(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a+4|0;vw(b|0,k[d>>2]|0,ia(k[a+8>>2]|0,c)|0)|0;k[d>>2]=(k[d>>2]|0)+(k[a+12>>2]|0);return}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;k[a+112>>2]=0;k[a+108>>2]=0;l=k[b>>2]|0;e=l;do if(l){g=a+92|0;l=a+96|0;h=k[l>>2]|0;j=k[g>>2]|0;c=j;d=h-c|0;if(d>>>0>=4e4)if(d>>>0>4e4?(f=j+4e4|0,(h|0)!=(f|0)):0){k[l>>2]=f;f=c}else f=c;else{fe(g,4e4-d|0);f=k[g>>2]|0;e=k[b>>2]|0}c=a+116|0;k[c>>2]=f;h=a+124|0;k[h>>2]=f;j=a+104|0;k[j>>2]=e;d=e;if(e){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){b=(Ob[k[(k[e>>2]|0)+36>>2]&127](d)|0)==-1;d=k[h>>2]|0;if(b)break;e=k[c>>2]|0}else{d=f;e=f}g=d-e|0;if(g>>>0<=64){f=a+92|0;if((d|0)==(e|0))d=e;else{d=e;e=0;do{i[(k[f>>2]|0)+e>>0]=i[d+e>>0]|0;e=e+1|0;d=k[c>>2]|0}while(e>>>0>>0);e=k[h>>2]|0}f=k[f>>2]|0;b=f;m=b-d|0;k[c>>2]=f;d=e+m|0;k[h>>2]=d;f=a+120|0;k[f>>2]=(k[f>>2]|0)+m;j=k[j>>2]|0;d=Qb[k[(k[j>>2]|0)+32>>2]&63](j,d,(k[l>>2]|0)-(b+g)|0)|0;d=(k[h>>2]|0)+d|0;k[h>>2]=d}}else d=f}else{k[a+104>>2]=0;d=k[b+4>>2]|0;c=a+116|0;k[c>>2]=d;d=d+(k[b+8>>2]|0)|0;k[a+124>>2]=d}while(0);c=k[c>>2]|0;if(c>>>0>=d>>>0){l=c;m=a+120|0;k[m>>2]=l;qe(a);return}while(1){if((i[c>>0]|0)==-1){d=20;break}c=c+1|0;if(c>>>0>=d>>>0){d=20;break}}if((d|0)==20){m=a+120|0;k[m>>2]=c;qe(a);return}}function fe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function ge(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+12|0;a:do if((k[f>>2]|0)>0){g=a+4604|0;h=(ia(s,q)|0)+1|0;i=a+4608|0;l=a+92|0;m=(s|0)>0;n=a+4600|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(68,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40;while(0);do if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4604|0;b=k[p>>2]|0;s=a+180|0;if((k[s>>2]|0)<=0)return;q=a+4608|0;r=a+4612|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(me(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=le(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function ie(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;e=a+104|0;if((k[e>>2]|0)>>>0<4)je(a);f=a+100|0;g=a+112|0;h=a+96|0;j=a+108|0;l=a+116|0;b=k[f>>2]|0;d=0;do{c=i[g>>0]|0;if((b|0)>31)break;b=k[h>>2]|0;if(!(c<<24>>24)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;c=(i[m>>0]|0)==-1&1;i[g>>0]=c;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;d=d+1|0}while((d|0)<4);if(!(c<<24>>24))ke(a,0,(b|0)%8|0);else ke(a,0,(b+-1|0)%8|0);if((k[e>>2]|0)>>>0<4)je(a);b=k[f>>2]|0;c=0;do{if((b|0)>31)break;b=k[h>>2]|0;if(!(i[g>>0]|0)){i[k[j>>2]>>0]=b>>>24;k[h>>2]=k[h>>2]<<8;b=(k[f>>2]|0)+8|0}else{i[k[j>>2]>>0]=b>>>25;k[h>>2]=k[h>>2]<<7;b=(k[f>>2]|0)+7|0}k[f>>2]=b;m=k[j>>2]|0;i[g>>0]=(i[m>>0]|0)==-1&1;k[j>>2]=m+1;k[e>>2]=(k[e>>2]|0)+-1;k[l>>2]=(k[l>>2]|0)+1;c=c+1|0}while((c|0)<4);if(!(k[a+132>>2]|0))return;je(a);return}function je(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=k[a+132>>2]|0;if(!b){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}c=a+108|0;d=a+120|0;f=k[d>>2]|0;e=(k[c>>2]|0)-f|0;if((Qb[k[(k[b>>2]|0)+48>>2]&63](b,f,e)|0)==(e|0)){f=k[d>>2]|0;k[c>>2]=f;k[a+104>>2]=(k[a+124>>2]|0)-f;return}b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,4,35648);f=x;x=0;if(!(f&1))ub(b|0,824,96);f=Wa()|0;Ua(b|0);fb(f|0)}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;l=a+100|0;c=(k[l>>2]|0)-c|0;k[l>>2]=c;if((c|0)>-1){m=a+96|0;k[m>>2]=k[m>>2]|b<>2]=k[m>>2]|b>>0-c;j=a+104|0;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0}f=a+112|0;g=a+108|0;h=a+116|0;d=0;while(1){if((c|0)>31)break;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0;if((d|0)>=4){e=11;break}}a:do if((e|0)==11)if((c|0)<0){k[m>>2]=k[m>>2]|b>>0-c;if((k[j>>2]|0)>>>0<4){je(a);c=k[l>>2]|0;d=0}else d=0;do{if((c|0)>31)break a;c=k[m>>2]|0;if(!(i[f>>0]|0)){i[k[g>>2]>>0]=c>>>24;k[m>>2]=k[m>>2]<<8;c=(k[l>>2]|0)+8|0}else{i[k[g>>2]>>0]=c>>>25;k[m>>2]=k[m>>2]<<7;c=(k[l>>2]|0)+7|0}k[l>>2]=c;n=k[g>>2]|0;i[f>>0]=(i[n>>0]|0)==-1&1;k[g>>2]=n+1;k[j>>2]=(k[j>>2]|0)+-1;k[h>>2]=(k[h>>2]|0)+1;d=d+1|0}while((d|0)<4)}while(0);k[m>>2]=k[m>>2]|b<>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;pe(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;i=(k[a+180>>2]|0)-b|0;l=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=j[l+(b+-1<<1)>>1]|0;h=e&65535;c=k[a+144>>2]|0;f=0;while(1){d=l+(f+b<<1)|0;g=(m[d>>1]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(c|0))break;j[d>>1]=e;f=f+1|0;if((f|0)==(i|0)){f=i;break}}e=(f|0)==(i|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0,h,m[n+(i<<1)>>1]|0)|0;j[b>>1]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=i;return a|0}ke(a,1,1);a=i;return a|0}function ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;oe(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&65535;return i|0}i=b&~(e>>31);i=i&65535;return i|0}return 0}function oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;pe(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0;j=a+120|0;if(b>>>0<((k[j>>2]|0)+-3|0)>>>0){j=a+112|0;g=k[j>>2]|0;a=a+108|0;k[a>>2]=(l[b+1>>0]<<16|l[b>>0]<<24|l[b+2>>0]<<8|l[b+3>>0])>>>g|k[a>>2];a=32-g>>3;k[h>>2]=b+a;k[j>>2]=(a<<3)+g;return}g=a+104|0;c=k[g>>2]|0;do if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){if((Ob[k[(k[c>>2]|0)+36>>2]&127](c)|0)==-1)break;b=k[h>>2]|0}e=a+124|0;c=k[e>>2]|0;f=c-b|0;if(f>>>0<=64){d=a+92|0;if((c|0)==(b|0))c=b;else{c=0;do{i[(k[d>>2]|0)+c>>0]=i[b+c>>0]|0;c=c+1|0;b=k[h>>2]|0}while(c>>>0>>0);c=b;b=k[e>>2]|0}n=k[d>>2]|0;d=n;m=d-c|0;k[h>>2]=n;c=b+m|0;k[e>>2]=c;k[j>>2]=(k[j>>2]|0)+m;g=k[g>>2]|0;g=Qb[k[(k[g>>2]|0)+32>>2]&63](g,c,(k[a+96>>2]|0)-(d+f)|0)|0;k[e>>2]=(k[e>>2]|0)+g}}while(0);g=a+112|0;f=a+108|0;a=k[a+124>>2]|0;e=a+-1|0;b=k[h>>2]|0;while(1){if(b>>>0>=a>>>0){c=14;break}d=i[b>>0]|0;c=d&255;d=d<<24>>24==-1;if(d){if((b|0)==(e|0)){c=25;break}b=b+1|0;if((i[b>>0]|0)<0){c=25;break}}else b=b+1|0;n=k[g>>2]|0;k[f>>2]=c<<24-n|k[f>>2];k[h>>2]=b;n=n+(d?7:8)|0;k[g>>2]=n;if((n|0)>=24){c=33;break}}if((c|0)==14){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==25){if((k[g>>2]|0)>=1)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,5,35648);n=x;x=0;if(!(n&1))ub(b|0,824,96);n=Wa()|0;Ua(b|0);fb(n|0)}else if((c|0)==33){a:do if(b>>>0
>>0)do{if((i[b>>0]|0)==-1)break a;b=b+1|0}while(b>>>0>>0);while(0);k[j>>2]=b;return}}function re(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;j=a+8|0;e=k[j>>2]|0;l=a+4|0;c=k[l>>2]|0;d=c;if((e-d|0)>>>0>=b>>>0){do{i[c>>0]=0;c=(k[l>>2]|0)+1|0;k[l>>2]=c;b=b+-1|0}while((b|0)!=0);return}c=k[a>>2]|0;f=d-c+b|0;if((f|0)<0){jj(a);e=k[j>>2]|0;c=k[a>>2]|0}d=e-c|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?f:d;c=(k[l>>2]|0)-c|0;if(!d){e=0;g=0;f=c}else h=8}else{d=2147483647;c=(k[l>>2]|0)-c|0;h=8}if((h|0)==8){e=d;g=lj(d)|0;f=c}c=g+f|0;e=g+e|0;d=c;do{i[d>>0]=0;d=c+1|0;c=d;b=b+-1|0}while((b|0)!=0);b=k[a>>2]|0;d=(k[l>>2]|0)-b|0;h=g+(f-d)|0;vw(h|0,b|0,d|0)|0;k[a>>2]=h;k[l>>2]=c;k[j>>2]=e;if(!b)return;mj(b);return}function te(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function ue(a){a=a|0;var b=0,c=0;k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ve(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function we(a){a=a|0;var b=0,c=0;k[a>>2]=36052;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;He(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function ye(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35828;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ae(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0} -function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;do if(b){if(!(b>>>0>715827882?(x=0,qa(178,v|0),u=x,x=0,u&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;d=c+(b*6|0)|0;k[v+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[w>>2]=d;break}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)g=20;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))g=18;if((g|0)==18?(e=q<<2,x=0,f=ta(67,e|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=f;g=f+(q<<2)|0;k[s+8>>2]=g;sw(f|0,0,e|0)|0;k[u>>2]=g;g=20;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==20){e=a+12|0;a:do if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;i=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;b:while(1){c=k[v>>2]|0;b=c+6|0;k[f>>2]=b;c=c+(g*6|0)|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[i>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){g=30;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*6|0)|0;c=c+((y+-1|0)*6|0)|0;j[b>>1]=j[c>>1]|0;j[b+2>>1]=j[c+2>>1]|0;j[b+4>>1]=j[c+4>>1]|0;c=(k[h>>2]|0)+-6|0;b=k[f>>2]|0;j[c>>1]=j[b>>1]|0;j[c+2>>1]=j[b+2>>1]|0;j[c+4>>1]=j[b+4>>1]|0;x=0;ra(69,a|0,0);c=x;x=0;if(c&1){g=29;break b}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*6|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*6|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=t;return}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function Be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;B=a+180|0;if((k[B>>2]|0)<=0)return;C=a+4608|0;D=a+4604|0;E=a+4612|0;A=0;while(1){x=A+-1|0;f=k[C>>2]|0;g=k[D>>2]|0;b=A+1|0;e=m[g+(A*6|0)>>1]|0;z=k[E>>2]|0;h=m[g+(x*6|0)>>1]|0;l=e-h|0;n=m[f+(x*6|0)>>1]|0;o=h-n|0;p=((((i[z+((m[g+(b*6|0)>>1]|0)-e)>>0]|0)*9|0)+(i[z+l>>0]|0)|0)*9|0)+(i[z+o>>0]|0)|0;d=m[g+(A*6|0)+2>>1]|0;q=m[g+(x*6|0)+2>>1]|0;r=d-q|0;s=m[f+(x*6|0)+2>>1]|0;t=q-s|0;u=((((i[z+((m[g+(b*6|0)+2>>1]|0)-d)>>0]|0)*9|0)+(i[z+r>>0]|0)|0)*9|0)+(i[z+t>>0]|0)|0;c=m[g+(A*6|0)+4>>1]|0;v=m[g+(x*6|0)+4>>1]|0;w=c-v|0;x=m[f+(x*6|0)+4>>1]|0;y=v-x|0;z=((((i[z+((m[g+(b*6|0)+4>>1]|0)-c)>>0]|0)*9|0)+(i[z+w>>0]|0)|0)*9|0)+(i[z+y>>0]|0)|0;if(!(u|p|z))b=(Ce(a,A,0)|0)+A|0;else{g=m[f+(A*6|0)>>1]|0;f=e-n>>31;if((f^o|0)>=0)if((f^l|0)<0)e=n;else e=n-h+e|0;g=De(a,p,g,e,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+2>>1]|0;e=d-s>>31;if((e^t|0)>=0)if((e^r|0)<0)d=s;else d=s-q+d|0;e=De(a,u,f,d,0)|0;f=m[(k[C>>2]|0)+(A*6|0)+4>>1]|0;d=c-x>>31;if((d^y|0)>=0)if((d^w|0)<0)c=x;else c=x-v+c|0;y=De(a,z,f,c,0)|0;z=k[C>>2]|0;j[z+(A*6|0)>>1]=g;j[z+(A*6|0)+2>>1]=e;j[z+(A*6|0)+4>>1]=y}if((b|0)<(k[B>>2]|0))A=b;else break}return}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+48|0;q=B+30|0;p=B+24|0;o=B+18|0;s=B+12|0;x=B+6|0;y=B;z=(k[a+180>>2]|0)-b|0;A=k[a+4608>>2]|0;t=k[a+4604>>2]|0;w=b+-1|0;u=j[A+(w*6|0)>>1]|0;v=j[A+(w*6|0)+2>>1]|0;w=j[A+(w*6|0)+4>>1]|0;c=u&65535;d=a+144|0;e=v&65535;f=w&65535;n=0;while(1){i=n+b|0;g=A+(i*6|0)|0;h=A+(i*6|0)+2|0;i=A+(i*6|0)+4|0;C=(m[g>>1]|0)-c|0;l=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[h>>1]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;C=(m[i>>1]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(l|0))break;j[g>>1]=u;j[h>>1]=v;j[i>>1]=w;n=n+1|0;if((n|0)==(z|0)){n=z;break}}e=(n|0)==(z|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]=j[C>>1]|0;j[x+2>>1]=j[C+2>>1]|0;j[x+4>>1]=j[C+4>>1]|0;j[y>>1]=u;j[y+2>>1]=v;j[y+4>>1]=w;b=t+(b*6|0)|0;j[o>>1]=j[x>>1]|0;j[o+2>>1]=j[x+2>>1]|0;j[o+4>>1]=j[x+4>>1]|0;j[p>>1]=j[y>>1]|0;j[p+2>>1]=j[y+2>>1]|0;j[p+4>>1]=j[y+4>>1]|0;j[q>>1]=j[b>>1]|0;j[q+2>>1]=j[b+2>>1]|0;j[q+4>>1]=j[b+4>>1]|0;Fe(s,a,o,p,q);j[C>>1]=j[s>>1]|0;j[C+2>>1]=j[s+2>>1]|0;j[C+4>>1]=j[s+4>>1]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=z;r=B;return C|0}ke(a,1,1);C=z;r=B;return C|0}function De(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Ee(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&65535;return r|0}r=e&~(b>>31);r=r&65535;return r|0}function Ee(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>1]|0;p=o-(m[d>>1]|0)>>31|1;f=ia(p,(m[c>>1]|0)-o|0)|0;l=b+144|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;i=k[w>>2]|0;h=((f|0)<0?i:0)+f|0;i=h-((h|0)<((i+1|0)/2|0|0)?0:i)|0;h=b+4576|0;Ge(b,h,i);t=m[e+2>>1]|0;u=t-(m[d+2>>1]|0)>>31|1;f=ia(u,(m[c+2>>1]|0)-t|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;Ge(b,h,q);v=m[e+4>>1]|0;s=v-(m[d+4>>1]|0)>>31|1;f=ia(s,(m[c+4>>1]|0)-v|0)|0;g=k[l>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;Ge(b,h,n);h=k[l>>2]|0;l=h<<1|1;f=(ia(ia(l,i)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,l)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,l)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&65535;f=(ia(ia(l,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&65535;f=(ia(ia(l,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,l)|0)|0}else f=(ia(k[w>>2]|0,l)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}w=d&~(f>>31);w=w&65535;j[a>>1]=e;v=a+2|0;j[v>>1]=g;a=a+4|0;j[a>>1]=w;return}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Ee(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function He(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ie(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Je(a){a=a|0;var b=0,c=0;k[a>>2]=36024;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;zf(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function Le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35800;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;sf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36712;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Oe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36688;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36664;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;k[a>>2]=36640;k[a+4>>2]=c;m=a+8|0;d=k[c>>2]|0;j=c+16|0;g=k[j>>2]|0;f=ia(g,d)|0;k[m>>2]=0;n=a+12|0;k[n>>2]=0;k[a+16>>2]=0;do if(!f)f=g;else{if(!((f|0)<0?(x=0,qa(178,m|0),g=x,x=0,g&1):0))l=4;if((l|0)==4?(x=0,h=ta(67,f|0)|0,g=x,x=0,!(g&1)):0){k[n>>2]=h;k[m>>2]=h;k[a+16>>2]=h+f;d=h;do{i[d>>0]=0;d=(k[n>>2]|0)+1|0;k[n>>2]=d;f=f+-1|0}while((f|0)!=0);f=k[j>>2]|0;d=k[c>>2]|0;break}d=Wa()|0;e=k[m>>2]|0;if(e){if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e)}n=d;fb(n|0)}while(0);g=a+20|0;d=ia(f,d)|0;k[g>>2]=0;f=a+24|0;k[f>>2]=0;k[a+28>>2]=0;if(!d){n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}if(!((d|0)<0?(x=0,qa(178,g|0),c=x,x=0,c&1):0))l=15;if((l|0)==15?(x=0,e=ta(67,d|0)|0,l=x,x=0,!(l&1)):0){k[f>>2]=e;k[g>>2]=e;k[a+28>>2]=e+d;do{i[e>>0]=0;e=(k[f>>2]|0)+1|0;k[f>>2]=e;d=d+-1|0}while((d|0)!=0);n=a+36|0;k[n>>2]=k[b>>2];k[n+4>>2]=k[b+4>>2];k[n+8>>2]=k[b+8>>2];return}d=Wa()|0;e=k[g>>2]|0;if(e){if((k[f>>2]|0)!=(e|0))k[f>>2]=e;mj(e)}e=k[m>>2]|0;if(!e){n=d;fb(n|0)}if((k[n>>2]|0)!=(e|0))k[n>>2]=e;mj(e);n=d;fb(n|0)}function Re(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Se(a){a=a|0;var b=0,c=0;k[a>>2]=36640;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;Xe(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;Xe(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function Ue(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;Ve(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{We(a,e,b,c,d);return}}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{g=l[h+(f*3|0)+1>>0]|0;e=128-g+(l[h+(f*3|0)+2>>0]|0)|0;j=(l[h+(f*3|0)>>0]|0)-g+128|0;m=c+(f*3|0)|0;i[m>>0]=g+192+(((e&255)+(j&255)|0)>>>2);i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{d=l[h+(b*3|0)+1>>0]|0;j=128-d+(l[h+(b*3|0)+2>>0]|0)|0;m=(l[h+(b*3|0)>>0]|0)-d+128|0;i[c+b>>0]=d+192+(((j&255)+(m&255)|0)>>>2);i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{m=i[h+(g<<2)+3>>0]|0;n=l[h+(g<<2)+1>>0]|0;d=128-n+(l[h+(g<<2)+2>>0]|0)|0;j=(l[h+(g<<2)>>0]|0)-n+128|0;i[c+g>>0]=n+192+(((d&255)+(j&255)|0)>>>2);i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function We(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;Ve(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){Ve(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function Xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=l[b+(a*3|0)+1>>0]|0;f=l[b+(a*3|0)+2>>0]|0;h=(l[b+(a*3|0)>>0]|0)-((f+g|0)>>>2)+64|0;e=c+(a*3|0)|0;i[e>>0]=f+128+h;i[e+1>>0]=h;i[e+2>>0]=g+128+h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=l[b+(g+e)>>0]|0;o=l[b+(g+f)>>0]|0;m=(l[b+g>>0]|0)-((o+n|0)>>>2)+64|0;h=c+(g*3|0)|0;i[h>>0]=o+128+m;i[h+1>>0]=m;i[h+2>>0]=n+128+m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{m=l[b+(g+e)>>0]|0;p=l[b+(g+a)>>0]|0;n=(l[b+g>>0]|0)-((p+m|0)>>>2)+64|0;o=c+(g<<2)|0;n=n<<8&65280|l[b+(g+f)>>0]<<24|p+128+n&255|m+128+n<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){p=a+2|0;o=i[a>>0]|0;i[a>>0]=i[p>>0]|0;i[p>>0]=o;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function Ye(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function Ze(a){a=a|0;var b=0,c=0;k[a>>2]=36664;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function _e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;cf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;cf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function $e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;af(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{bf(a,e,b,c,d);return}}function af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{b=l[h+(f*3|0)>>0]|0;e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=(l[h+(f*3|0)+2>>0]|0)+128-((g+b|0)>>>1)&255;m=c+(f*3|0)|0;i[m>>0]=b+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;g=l[h+(b*3|0)>>0]|0;d=j&255;m=(l[h+(b*3|0)+2>>0]|0)+128-((d+g|0)>>>1)&255;i[c+b>>0]=g+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;o=l[h+(g<<2)>>0]|0;n=d&255;j=(l[h+(g<<2)+2>>0]|0)+128-((n+o|0)>>>1)&255;i[c+g>>0]=o+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function bf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;af(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){af(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function cf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=g&255;f=(l[b+(a*3|0)>>0]|0)+128+h|0;h=(l[b+(a*3|0)+2>>0]|0)+128+(((f&255)+h|0)>>>1)&255;e=c+(a*3|0)|0;i[e>>0]=f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=n&255;o=(l[b+g>>0]|0)+128+m|0;m=(l[b+(g+f)>>0]|0)+128+(((o&255)+m|0)>>>1)&255;h=c+(g*3|0)|0;i[h>>0]=o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;m=(l[b+g>>0]|0)+128+n&255;o=c+(g<<2)|0;n=m|n<<8|l[b+(g+f)>>0]<<24|(l[b+(g+a)>>0]|0)+128+((m+n|0)>>>1)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function df(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function ef(a){a=a|0;var b=0,c=0;k[a>>2]=36688;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;kf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;kf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;hf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{jf(a,e,b,c,d);return}}function hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;m=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=m;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;g=e&255;j=128-g+(l[h+(f*3|0)+2>>0]|0)&255;m=c+(f*3|0)|0;i[m>>0]=(l[h+(f*3|0)>>0]|0)+128-g;i[m+1>>0]=e;i[m+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;d=j&255;m=128-d+(l[h+(b*3|0)+2>>0]|0)&255;i[c+b>>0]=(l[h+(b*3|0)>>0]|0)+128-d;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=m;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;m=i[h+(g<<2)+3>>0]|0;n=d&255;j=128-n+(l[h+(g<<2)+2>>0]|0)&255;i[c+g>>0]=(l[h+(g<<2)>>0]|0)+128-n;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=m;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;hf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){hf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function kf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;f=g&255;h=f+128+(l[b+(a*3|0)+2>>0]|0)&255;e=c+(a*3|0)|0;i[e>>0]=(l[b+(a*3|0)>>0]|0)+128+f;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;o=n&255;m=o+128+(l[b+(g+f)>>0]|0)&255;h=c+(g*3|0)|0;i[h>>0]=(l[b+g>>0]|0)+128+o;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=l[b+(g+e)>>0]|0;o=c+(g<<2)|0;n=(l[b+g>>0]|0)+128+n&255|n<<8|l[b+(g+f)>>0]<<24|n+128+(l[b+(g+a)>>0]|0)<<16&16711680;i[o>>0]=n;i[o+1>>0]=n>>8;i[o+2>>0]=n>>16;i[o+3>>0]=n>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){o=a+2|0;n=i[a>>0]|0;i[a>>0]=i[o>>0]|0;i[o>>0]=n;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function lf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=k[a+8>>2]|0;if(!c)return;b=a+12|0;if((k[b>>2]|0)!=(c|0))k[b>>2]=c;mj(c);return}function mf(a){a=a|0;var b=0,c=0;k[a>>2]=36712;b=k[a+20>>2]|0;if(b){c=a+24|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a+36|0;if(!(k[e>>2]|0)){e=a+40|0;rf(a,b,k[e>>2]|0,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}f=ia(k[(k[a+4>>2]|0)+16>>2]|0,c)|0;g=a+20|0;rf(a,b,k[g>>2]|0,c,d);a=k[e>>2]|0;if((Qb[k[(k[a>>2]|0)+48>>2]&63](a,k[g>>2]|0,f)|0)==(f|0))return;e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,3,35648);g=x;x=0;if(g&1){g=Wa()|0;Ua(e|0);fb(g|0)}else ub(e|0,824,96)}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=k[a+36>>2]|0;if(!e){e=a+40|0;pf(a,k[e>>2]|0,b,c,d);k[e>>2]=(k[e>>2]|0)+(k[(k[a+4>>2]|0)+12>>2]|0);return}else{qf(a,e,b,c,d);return}}function pf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0;h=a+4|0;f=k[h>>2]|0;if(!(i[f+32>>0]|0))h=b;else{g=a+8|0;vw(k[g>>2]|0,b|0,d*3|0)|0;f=k[h>>2]|0;b=k[f+16>>2]|0;if((d|0)>0){f=k[g>>2]|0;a=0;while(1){j=f+2|0;l=i[f>>0]|0;i[f>>0]=i[j>>0]|0;i[j>>0]=l;a=a+1|0;if((a|0)==(d|0))break;else f=f+b|0}f=k[h>>2]|0}h=k[g>>2]|0}switch(k[f+16>>2]|0){case 3:{if((k[f+24>>2]|0)==2){if((d|0)>0)f=0;else return;do{e=i[h+(f*3|0)+1>>0]|0;j=i[h+(f*3|0)+2>>0]|0;l=c+(f*3|0)|0;i[l>>0]=i[h+(f*3|0)>>0]|0;i[l+1>>0]=e;i[l+2>>0]=j;f=f+1|0}while((f|0)!=(d|0));return}f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=0;do{j=i[h+(b*3|0)+1>>0]|0;l=i[h+(b*3|0)+2>>0]|0;i[c+b>>0]=i[h+(b*3|0)>>0]|0;i[c+(b+e)>>0]=j;i[c+(b+a)>>0]=l;b=b+1|0}while((b|0)!=(f|0));return}case 4:{if((k[f+24>>2]|0)!=1)return;f=(e|0)<(d|0)?e:d;if((f|0)<=0)return;a=e<<1;b=e*3|0;g=0;do{d=i[h+(g<<2)+1>>0]|0;j=i[h+(g<<2)+2>>0]|0;l=i[h+(g<<2)+3>>0]|0;i[c+g>>0]=i[h+(g<<2)>>0]|0;i[c+(g+e)>>0]=d;i[c+(g+a)>>0]=j;i[c+(g+b)>>0]=l;g=g+1|0}while((g|0)!=(f|0));return}default:return}}function qf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+176|0;n=m+152|0;p=m+16|0;o=m;g=ia(k[(k[a+4>>2]|0)+16>>2]|0,d)|0;j=a+20|0;f=k[j>>2]|0;if(!g){p=f;pf(a,p,c,d,e);r=m;return}while(1){h=Qb[k[(k[b>>2]|0)+32>>2]&63](b,f,g)|0;if(!h)break;f=k[j>>2]|0;if((g|0)==(h|0)){l=26;break}else g=g-h|0}if((l|0)==26){pf(a,f,c,d,e);r=m;return}c=p+56|0;j=p+4|0;k[p>>2]=36160;k[c>>2]=36180;x=0;ra(62,p+56|0,j|0);m=x;x=0;if(m&1){p=Wa()|0;qn(c);fb(p|0)}k[p+128>>2]=0;k[p+132>>2]=-1;k[p>>2]=36200;k[p+56>>2]=36220;x=0;qa(180,j|0);m=x;x=0;do if(m&1)f=Wa()|0;else{k[j>>2]=36236;b=p+36|0;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;k[b+12>>2]=0;k[p+52>>2]=16;k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;x=0;ra(63,j|0,n|0);m=x;x=0;if(m&1){f=Wa()|0;Sm(n);Sm(b);xn(j);break}Sm(n);x=0;f=va(28,p|0,49029,57)|0;n=x;x=0;if(!(n&1)?(x=0,Aa(36,f|0,0)|0,n=x,x=0,!(n&1)):0){h=Va(16)|0;x=0;ra(64,o|0,j|0);n=x;x=0;if(!(n&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,h|0,3,35648,o|0);n=x;x=0;if(n&1)g=1;else{x=0;Fa(6,h|0,824,96);x=0;g=0}f=Wa()|0;Sm(o);if(!g){o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}}else f=Wa()|0;Ua(h|0);o=f;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}o=Wa()|0;k[p>>2]=36200;k[c>>2]=36220;k[j>>2]=36236;Sm(b);xn(j);qn(c);fb(o|0)}while(0);p=f;qn(c);fb(p|0)}function rf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0;j=a+4|0;a=k[j>>2]|0;a:do switch(k[a+16>>2]|0){case 3:{if((k[a+24>>2]|0)==2){if((d|0)>0)a=0;else break a;while(1){g=i[b+(a*3|0)+1>>0]|0;h=i[b+(a*3|0)+2>>0]|0;e=c+(a*3|0)|0;i[e>>0]=i[b+(a*3|0)>>0]|0;i[e+1>>0]=g;i[e+2>>0]=h;a=a+1|0;if((a|0)==(d|0))break a}}a=(d|0)<(e|0)?d:e;if((a|0)>0){f=e<<1;g=0;do{n=i[b+(g+e)>>0]|0;m=i[b+(g+f)>>0]|0;h=c+(g*3|0)|0;i[h>>0]=i[b+g>>0]|0;i[h+1>>0]=n;i[h+2>>0]=m;g=g+1|0}while((g|0)!=(a|0))}break}case 4:{if((k[a+24>>2]|0)==1?(h=(d|0)<(e|0)?d:e,(h|0)>0):0){a=e<<1;f=e*3|0;g=0;do{n=c+(g<<2)|0;m=l[b+(g+e)>>0]<<8|l[b+g>>0]|l[b+(g+a)>>0]<<16|l[b+(g+f)>>0]<<24;i[n>>0]=m;i[n+1>>0]=m>>8;i[n+2>>0]=m>>16;i[n+3>>0]=m>>24;g=g+1|0}while((g|0)!=(h|0))}break}default:{}}while(0);a=k[j>>2]|0;if(!(i[a+32>>0]|0))return;g=k[a+16>>2]|0;if((d|0)>0){a=c;f=0}else return;while(1){n=a+2|0;m=i[a>>0]|0;i[a>>0]=i[n>>0]|0;i[n>>0]=m;f=f+1|0;if((f|0)==(d|0))break;else a=a+g|0}return}function sf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+180|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){e=a+12|0;b:do if((k[e>>2]|0)>0){f=a+4604|0;g=(ia(q,p)|0)+1|0;h=a+4608|0;j=a+92|0;l=(q|0)>0;m=a+4600|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(70,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41;while(0);do if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function tf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=a+180|0;if((k[A>>2]|0)<=0)return;B=a+4608|0;C=a+4604|0;D=a+4612|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(uf(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=vf(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=vf(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=vf(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=r;r=r+32|0;A=B+15|0;p=B+12|0;o=B+9|0;q=B+6|0;w=B+3|0;x=B;y=(k[a+180>>2]|0)-b|0;z=k[a+4608>>2]|0;s=k[a+4604>>2]|0;v=z+((b+-1|0)*3|0)|0;t=i[v>>0]|0;u=i[v+1>>0]|0;v=i[v+2>>0]|0;c=t&255;d=a+144|0;e=u&255;f=v&255;n=0;while(1){g=z+((n+b|0)*3|0)|0;h=g+1|0;j=g+2|0;C=(l[g>>0]|0)-c|0;m=k[d>>2]|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[h>>0]|0)-e|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;C=(l[j>>0]|0)-f|0;if((((C|0)>-1?C:0-C|0)|0)>(m|0))break;i[g>>0]=t;i[h>>0]=u;i[j>>0]=v;n=n+1|0;if((n|0)==(y|0)){n=y;break}}e=(n|0)==(y|0);f=a+4600|0;d=k[36476+(k[f>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[f>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[f>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]=i[C>>0]|0;i[w+1>>0]=i[C+1>>0]|0;i[w+2>>0]=i[C+2>>0]|0;i[x>>0]=t;i[x+1>>0]=u;i[x+2>>0]=v;b=s+(b*3|0)|0;i[o>>0]=i[w>>0]|0;i[o+1>>0]=i[w+1>>0]|0;i[o+2>>0]=i[w+2>>0]|0;i[p>>0]=i[x>>0]|0;i[p+1>>0]=i[x+1>>0]|0;i[p+2>>0]=i[x+2>>0]|0;i[A>>0]=i[b>>0]|0;i[A+1>>0]=i[b+1>>0]|0;i[A+2>>0]=i[b+2>>0]|0;xf(q,a,o,p,A);i[C>>0]=i[q>>0]|0;i[C+1>>0]=i[q+1>>0]|0;i[C+2>>0]=i[q+2>>0]|0;C=k[f>>2]|0;k[f>>2]=(C|0)<1?0:C+-1|0;C=n+1|0;r=B;return C|0}if(!c){C=y;r=B;return C|0}ke(a,1,1);C=y;r=B;return C|0}function vf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;wf(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>0]|0;p=o-(l[d>>0]|0)>>31|1;f=ia(p,(l[c>>0]|0)-o|0)|0;m=b+144|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;w=b+140|0;j=k[w>>2]|0;h=((f|0)<0?j:0)+f|0;j=h-((h|0)<((j+1|0)/2|0|0)?0:j)|0;h=b+4576|0;yf(b,h,j);t=l[e+1>>0]|0;u=t-(l[d+1>>0]|0)>>31|1;f=ia(u,(l[c+1>>0]|0)-t|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;q=k[w>>2]|0;v=((f|0)<0?q:0)+f|0;q=v-((v|0)<((q+1|0)/2|0|0)?0:q)|0;yf(b,h,q);v=l[e+2>>0]|0;s=v-(l[d+2>>0]|0)>>31|1;f=ia(s,(l[c+2>>0]|0)-v|0)|0;g=k[m>>2]|0;if((f|0)>0)f=(f+g|0)/(g<<1|1|0)|0;else f=(f-g|0)/(g<<1|1|0)|0;n=k[w>>2]|0;f=((f|0)<0?n:0)+f|0;n=f-((f|0)<((n+1|0)/2|0|0)?0:n)|0;yf(b,h,n);h=k[m>>2]|0;m=h<<1|1;f=(ia(ia(m,j)|0,p)|0)+o|0;c=0-h|0;if((f|0)>=(c|0)){g=k[r>>2]|0;if((g+h|0)<(f|0)){f=f-(ia(k[w>>2]|0,m)|0)|0;d=g}else d=g}else{f=(ia(k[w>>2]|0,m)|0)+f|0;d=k[r>>2]|0}if((f&d|0)!=(f|0))f=d&~(f>>31);e=f&255;f=(ia(ia(m,q)|0,u)|0)+t|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)!=(f|0))f=d&~(f>>31);g=f&255;f=(ia(ia(m,n)|0,s)|0)+v|0;if((f|0)>=(c|0)){if((d+h|0)<(f|0))f=f-(ia(k[w>>2]|0,m)|0)|0}else f=(ia(k[w>>2]|0,m)|0)+f|0;if((f&d|0)==(f|0)){w=f;w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}w=d&~(f>>31);w=w&255;i[a>>0]=e;v=a+1|0;i[v>>0]=g;a=a+2|0;i[a>>0]=w;return}function yf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;wf(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+144|0;a:do if(!(k[n>>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Af(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Bf(a){a=a|0;var b=0,c=0;k[a>>2]=35996;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Cf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Lf(a);d=0;do{k[a+172+(d*12|0)>>2]=1024;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=1024;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=1024;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35772;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Ff(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Ff(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+12|0;a:do if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(71,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40;while(0);do if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Gf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(If(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Hf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&65535|0)==(e|0))m=e;else m=e>>31&65535^65535;h=(c-m^q)-q<<16;l=h>>16;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<47){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-65536?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&65535;return b|0}function If(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<16>>16;Jf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<16,l)|0)>>16;Jf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Kf(a,e,d,63-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-16|0;if((e|0)<(d+-17|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-47|0)}else ke(a,1,f);ke(a,c+65535&65535,16);return}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8909]|0;k[a+4588>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+65536;g=a+168|0;e=a+164|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Mf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Nf(a){a=a|0;var b=0,c=0;k[a>>2]=35968;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;Xf(a);d=0;do{k[a+172+(d*12|0)>>2]=64;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=64;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=64;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35744;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;Rf(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function Qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;u=r;r=r+32|0;w=u+12|0;t=u;p=a+156|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)s=k[a+24>>2]|0;else s=1;b=ia(s<<1,q)|0;k[w>>2]=0;y=w+4|0;k[y>>2]=0;k[w+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,w|0),v=x,x=0,v&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,v=x,x=0,!(v&1)):0){k[w>>2]=d;v=d+(b<<1)|0;k[w+8>>2]=v;sw(d|0,0,c|0)|0;k[y>>2]=v;break}d=Wa()|0;b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[t>>2]=0;v=t+4|0;k[v>>2]=0;k[t+8>>2]=0;do if(!s)g=18;else{if(!(s>>>0>1073741823?(x=0,qa(178,t|0),o=x,x=0,o&1):0))g=16;if((g|0)==16?(e=s<<2,x=0,f=ta(67,e|0)|0,o=x,x=0,!(o&1)):0){k[t>>2]=f;g=f+(s<<2)|0;k[t+8>>2]=g;sw(f|0,0,e|0)|0;k[v>>2]=g;g=18;break}d=Wa()|0;b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+12|0;a:do if((k[f>>2]|0)>0){g=a+4580|0;h=(ia(s,q)|0)+1|0;i=a+4584|0;l=a+92|0;m=(s|0)>0;n=a+4576|0;o=0;b:while(1){c=k[w>>2]|0;b=c+2|0;k[g>>2]=b;c=c+(h<<1)|0;k[i>>2]=c;if(!(o&1))b=c;else{k[g>>2]=c;k[i>>2]=b}e=k[l>>2]|0;x=0;Ja(k[(k[e>>2]|0)+12>>2]|0,e|0,b|0,k[p>>2]|0,q|0);e=x;x=0;if(e&1){g=28;break}if(m){b=k[g>>2]|0;c=k[i>>2]|0;d=k[t>>2]|0;e=0;do{k[n>>2]=k[d+(e<<2)>>2];d=k[p>>2]|0;j[b+(d<<1)>>1]=j[b+(d+-1<<1)>>1]|0;j[c+-2>>1]=j[b>>1]|0;x=0;ra(72,a|0,0);d=x;x=0;if(d&1){g=27;break b}d=k[t>>2]|0;k[d+(e<<2)>>2]=k[n>>2];b=(k[g>>2]|0)+(q<<1)|0;k[g>>2]=b;c=(k[i>>2]|0)+(q<<1)|0;k[i>>2]=c;e=e+1|0}while((e|0)<(s|0))}o=o+1|0;if((o|0)>=(k[f>>2]|0)){g=40;break a}}if((g|0)==27){d=Wa()|0;break}else if((g|0)==28){d=Wa()|0;break}}else g=40;while(0);do if((g|0)==40){x=0;qa(182,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[t>>2]|0;c=b;if(b){d=k[v>>2]|0;if((d|0)!=(b|0))k[v>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[w>>2]|0;if(!b){r=u;return}c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=u;return}while(0);b=k[t>>2]|0;c=b;if(b){e=k[v>>2]|0;if((e|0)!=(b|0))k[v>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[w>>2]|0;if(!b)fb(d|0);c=k[y>>2]|0;if((c|0)!=(b|0))k[y>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4580|0;b=k[p>>2]|0;s=a+156|0;if((k[s>>2]|0)<=0)return;q=a+4584|0;r=a+4588|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Uf(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Tf(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&4095|0)==(e|0))m=e;else m=e>>31&4095^4095;h=(c-m^q)-q<<20;l=h>>20;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;d=e^l;d=d>>30^d<<1;e=d>>f;if((e|0)<35){if((e|0)>30){g=(e|0)/2|0;ke(a,0,g);e=e-g|0}ke(a,1,e+1|0);ke(a,d&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-1048576?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,l=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;l=k[a+4580>>2]|0;e=j[h+(b+-1<<1)>>1]|0;d=0;while(1){c=h+(d+b<<1)|0;if((j[c>>1]|0)!=e<<16>>16){n=d;break}j[c>>1]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&65535;e=(n|0)==(g|0);i=a+4576|0;d=k[36476+(k[i>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[i>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[i>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>1]|0;c=m[l+(c<<1)>>1]|0;l=f-c|0;if((((l|0)>-1?l:0-l|0)|0)<1){c=d-f<<20>>20;Vf(a,a+4564|0,c);c=c+f|0}else{l=c-f>>31|1;b=(ia(d-c<<20,l)|0)>>20;Vf(a,a+4552|0,b);c=(ia(b,l)|0)+c|0}j[e>>1]=c&4095;a=k[i>>2]|0;k[i>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Wf(a,e,d,47-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-12|0;if((e|0)<(d+-13|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-43|0)}else ke(a,1,f);ke(a,c+4095&4095,12);return}function Xf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8906]|0;k[a+4588>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+4096;g=a+168|0;e=a+164|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Yf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zf(a){a=a|0;var b=0,c=0;k[a>>2]=35940;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;hg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function $f(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35716;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;bg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){e=a+12|0;b:do if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){c=k[v>>2]|0;b=c+1|0;k[f>>2]=b;c=c+g|0;k[h>>2]=c;if(!(n&1))b=c;else{k[f>>2]=c;k[h>>2]=b}d=k[j>>2]|0;x=0;Ja(k[(k[d>>2]|0)+12>>2]|0,d|0,b|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[f>>2]|0;c=k[s>>2]|0;d=0;do{k[m>>2]=k[c+(d<<2)>>2];c=k[o>>2]|0;i[b+c>>0]=i[b+(c+-1)>>0]|0;i[(k[h>>2]|0)+-1>>0]=i[k[f>>2]>>0]|0;x=0;ra(73,a|0,0);c=x;x=0;if(c&1){f=28;break c}c=k[s>>2]|0;k[c+(d<<2)>>2]=k[m>>2];b=(k[f>>2]|0)+p|0;k[f>>2]=b;k[h>>2]=(k[h>>2]|0)+p;d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){c=Wa()|0;break}else if((f|0)==29){c=Wa()|0;break}}else f=41;while(0);do if((f|0)==41){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4580|0;b=k[o>>2]|0;r=a+156|0;if((k[r>>2]|0)<=0)return;p=a+4584|0;q=a+4588|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(eg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=dg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function dg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;g=(k[a+156>>2]|0)-b|0;h=k[a+4584>>2]|0;m=k[a+4580>>2]|0;e=i[h+(b+-1)>>0]|0;d=0;while(1){c=h+(d+b)|0;if((i[c>>0]|0)!=e<<24>>24){n=d;break}i[c>>0]=e;d=d+1|0;if((d|0)==(g|0)){n=g;break}}f=e&255;e=(n|0)==(g|0);j=a+4576|0;d=k[36476+(k[j>>2]<<2)>>2]|0;if((1<(n|0))c=n;else{c=n;do{ke(a,1,1);d=k[j>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[j>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;c=l[m+c>>0]|0;m=f-c|0;if((((m|0)>-1?m:0-m|0)|0)<1){c=d-f<<24>>24;fg(a,a+4564|0,c);c=c+f|0}else{m=c-f>>31|1;b=(ia(d-c<<24,m)|0)>>24;fg(a,a+4552|0,b);c=(ia(b,m)|0)+c|0}i[e>>0]=c;a=k[j>>2]|0;k[j>>2]=(a|0)<1?0:a+-1|0;a=n+1|0;return a|0}function fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;gg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function hg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ig(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jg(a){a=a|0;var b=0,c=0;k[a>>2]=35912;b=k[a+4592>>2]|0;if(b){c=a+4596|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+160>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+164>>2]=f;k[a+168>>2]=d;tg(a);d=0;do{k[a+172+(d*12|0)>>2]=4;k[a+172+(d*12|0)+4>>2]=0;j[a+172+(d*12|0)+8>>1]=0;j[a+172+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4552>>2]=4;k[a+4556>>2]=0;i[a+4560>>0]=h;i[a+4561>>0]=1;i[a+4562>>0]=0;k[a+4564>>2]=4;k[a+4568>>2]=1;i[a+4572>>0]=h;i[a+4573>>0]=1;i[a+4574>>0]=0;k[a+4576>>2]=0;r=e;return}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4600)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35688;e=b+132|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+148>>2]=k[d>>2];k[b+152>>2]=0;k[b+156>>2]=0;k[b+160>>2]=0;e=b+4544|0;d=b+164|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4556|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4568|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;ng(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ng(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;v=t+12|0;s=t;o=a+156|0;p=(k[o>>2]|0)+4|0;if((k[a+32>>2]|0)==1)q=k[a+24>>2]|0;else q=1;b=ia(q<<1,p)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,v|0),u=x,x=0,u&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[w>>2]|0)+3|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!q)f=19;else{if(!(q>>>0>1073741823?(x=0,qa(178,s|0),n=x,x=0,n&1):0))f=17;if((f|0)==17?(d=q<<2,x=0,e=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[s>>2]=e;f=e+(q<<2)|0;k[s+8>>2]=f;sw(e|0,0,d|0)|0;k[u>>2]=f;f=19;break}d=Wa()|0;b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){e=a+12|0;b:do if((k[e>>2]|0)>0){f=a+4580|0;g=(ia(q,p)|0)+1|0;h=a+4584|0;j=a+92|0;l=(q|0)>0;m=a+4576|0;n=0;c:while(1){d=k[v>>2]|0;b=d+3|0;k[f>>2]=b;c=d+(g*3|0)|0;k[h>>2]=c;if(!(n&1))b=g;else{k[f>>2]=c;k[h>>2]=b;b=1}c=k[j>>2]|0;x=0;Ja(k[(k[c>>2]|0)+12>>2]|0,c|0,d+(b*3|0)|0,k[o>>2]|0,p|0);d=x;x=0;if(d&1){f=29;break}if(l){b=k[s>>2]|0;c=k[f>>2]|0;d=0;do{k[m>>2]=k[b+(d<<2)>>2];y=k[o>>2]|0;b=c+(y*3|0)|0;c=c+((y+-1|0)*3|0)|0;i[b>>0]=i[c>>0]|0;i[b+1>>0]=i[c+1>>0]|0;i[b+2>>0]=i[c+2>>0]|0;b=k[f>>2]|0;c=(k[h>>2]|0)+-3|0;i[c>>0]=i[b>>0]|0;i[c+1>>0]=i[b+1>>0]|0;i[c+2>>0]=i[b+2>>0]|0;x=0;ra(74,a|0,0);c=x;x=0;if(c&1){f=28;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[m>>2];c=(k[f>>2]|0)+(p*3|0)|0;k[f>>2]=c;k[h>>2]=(k[h>>2]|0)+(p*3|0);d=d+1|0}while((d|0)<(q|0))}n=n+1|0;if((n|0)>=(k[e>>2]|0)){f=41;break b}}if((f|0)==28){d=Wa()|0;break}else if((f|0)==29){d=Wa()|0;break}}else f=41;while(0);do if((f|0)==41){x=0;qa(182,a|0);y=x;x=0;if(y&1){d=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=t;return}while(0);b=k[s>>2]|0;c=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(d|0);c=k[w>>2]|0;if((c|0)!=(b|0))k[w>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=a+156|0;if((k[A>>2]|0)<=0)return;B=a+4584|0;C=a+4580|0;D=a+4588|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(pg(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=qg(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=qg(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=qg(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=(k[a+156>>2]|0)-b|0;n=k[a+4584>>2]|0;o=k[a+4580>>2]|0;j=n+((b+-1|0)*3|0)|0;p=i[j>>0]|0;h=i[j+1>>0]|0;j=i[j+2>>0]|0;f=0;while(1){c=n+((f+b|0)*3|0)|0;d=c+1|0;e=c+2|0;if(!(((i[c>>0]|0)==p<<24>>24?(i[d>>0]|0)==h<<24>>24:0)&(i[e>>0]|0)==j<<24>>24))break;i[c>>0]=p;i[d>>0]=h;i[e>>0]=j;f=f+1|0;if((f|0)==(m|0)){f=m;break}}e=(f|0)==(m|0);g=a+4576|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0;b=m+2|0;e=i[b>>0]|0;o=o+(d*3|0)|0;d=i[o+1>>0]|0;t=i[o+2>>0]|0;o=l[o>>0]|0;q=o-(p&255)>>31|1;r=(ia((l[m>>0]|0)-o<<24,q)|0)>>24;s=a+4552|0;rg(a,s,r);p=d&255;d=p-(h&255)>>31|1;c=(ia((c&255)-p<<24,d)|0)>>24;rg(a,s,c);h=t&255;j=h-(j&255)>>31|1;e=(ia((e&255)-h<<24,j)|0)>>24;rg(a,s,e);o=(ia(r,q)|0)+o&255;p=(ia(c,d)|0)+p&255;a=(ia(e,j)|0)+h&255;i[m>>0]=o;i[n>>0]=p;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){t=m;return t|0}ke(a,1,1);t=m;return t|0}function qg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;i=(q^b)-q|0;p=a+172+(i*12|0)+10|0;g=j[p>>1]|0;o=a+172+(i*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){f=5;while(1)if((g<>1]^q)-q+d|0;if((e&255|0)==(e|0))m=e;else m=e>>31&255^255;h=(c-m^q)-q<<24;l=h>>24;if(!f)e=(k[a+172+(i*12|0)+4>>2]<<1)+-1+g>>31;else e=0;e=e^l;e=e>>30^e<<1;d=e>>f;if((d|0)<23){ke(a,1,d+1|0);ke(a,e&(1<>1]|0;e=g<<16>>16==64;f=e&1;c=(k[d>>2]|0)+l>>f;g=e?32:g<<16>>16;k[o>>2]=(k[o>>2]|0)+((h|0)>-16777216?l:0-l|0)>>f;f=g+1|0;j[p>>1]=f;e=f+c|0;if((e|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(e|0)>(~g|0)?e:0-g|0;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}if((c|0)<=0){p=c;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}p=c-f|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[d>>2]=p;q=l^q;b=b>>>31;b=m+b|0;b=b+q|0;b=b&255;return b|0}function rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;sg(a,e,d,31-(k[36476+(k[a+4576>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=c>>b;f=d+-8|0;if((e|0)<(d+-9|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-39|0)}else ke(a,1,f);ke(a,c+255&255,8);return}function tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+160|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+164>>2]|0):0)?(k[h+12>>2]|0)==(k[a+168>>2]|0):0){j=k[8900]|0;k[a+4588>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4592|0;d=a+4596|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4588|0;k[h>>2]=b+256;g=a+168|0;e=a+164|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ug(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);a=a+4|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vg(a){a=a|0;var b=0,c=0;k[a>>2]=35884;b=k[a+4616>>2]|0;if(b){c=a+4620|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36612;b=k[a+120>>2]|0;if(b){c=a+124|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+92|0;b=k[c>>2]|0;k[c>>2]=0;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);c=a+4|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+136>>2]|0,k[a+144>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+184>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+188>>2]=f;k[a+192>>2]=e;Gg(a);e=a+140|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+196+(f*12|0)>>2]=b;k[a+196+(f*12|0)+4>>2]=0;j[a+196+(f*12|0)+8>>1]=0;j[a+196+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4576>>2]=h;k[a+4580>>2]=0;i[a+4584>>0]=l;i[a+4585>>0]=1;i[a+4586>>0]=0;k[a+4588>>2]=h;k[a+4592>>2]=1;i[a+4596>>0]=l;i[a+4597>>0]=1;i[a+4598>>0]=0;k[a+4600>>2]=0;r=g;return}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0;n=r;r=r+16|0;l=n;h=a+92|0;g=k[b>>2]|0;k[b>>2]=0;b=k[h>>2]|0;k[h>>2]=g;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);k[l>>2]=0;k[l+4>>2]=d;h=c+8|0;k[l+8>>2]=k[h>>2];if(d){b=lj(4624)|0;d=a+8|0;e=b+4|0;f=d;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));e=b+88|0;g=e+40|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[b>>2]=35660;k[b+128>>2]=k[a+136>>2];k[b+132>>2]=k[a+140>>2];k[b+136>>2]=k[a+144>>2];k[b+140>>2]=k[a+148>>2];k[b+144>>2]=k[a+152>>2];k[b+148>>2]=k[a+156>>2];k[b+152>>2]=k[a+160>>2];e=b+156|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[b+172>>2]=k[d>>2];k[b+176>>2]=0;k[b+180>>2]=0;k[b+184>>2]=0;e=b+4568|0;d=b+188|0;do{k[d>>2]=0;k[d+4>>2]=0;j[d+8>>1]=0;j[d+10>>1]=1;d=d+12|0}while((d|0)!=(e|0));f=a+4|0;k[e>>2]=0;k[e+4>>2]=0;j[e+8>>1]=0;i[e+10>>0]=0;g=b+4580|0;k[g>>2]=0;k[g+4>>2]=0;j[g+8>>1]=0;i[g+10>>0]=0;g=b+4592|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[g+16>>2]=0;k[g+20>>2]=0;k[g+24>>2]=0;i[g+28>>0]=0;if(!(k[b+28>>2]|0))k[b+20>>2]=1;d=k[f>>2]|0;k[f>>2]=b;if(d){Lb[k[(k[d>>2]|0)+4>>2]&255](d);b=k[f>>2]|0}ee(b,l)}l=a+100|0;k[l>>2]=32;k[a+96>>2]=0;b=k[c>>2]|0;if(!b){k[a+108>>2]=k[c+4>>2];k[a+104>>2]=k[h>>2];zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0}k[a+132>>2]=b;e=a+120|0;h=a+124|0;d=k[h>>2]|0;b=k[e>>2]|0;f=b;g=d-f|0;if(g>>>0>=4e3){if(g>>>0>4e3?(m=b+4e3|0,(d|0)!=(m|0)):0){k[h>>2]=m;d=m}}else{fe(e,4e3-g|0);b=k[e>>2]|0;f=b;d=k[h>>2]|0}k[a+108>>2]=f;k[a+104>>2]=d-b;zg(a);m=a+116|0;m=k[m>>2]|0;a=k[l>>2]|0;a=a+-32|0;a=(a|0)/8|0;a=m-a|0;r=n;return a|0} -function yg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+32>>2]|0)!=0?(k[a+24>>2]|0)!=1:0){p=a+8|0;s=a+36|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+16>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+20>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function zg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;t=r;r=r+32|0;v=t+12|0;s=t;p=a+180|0;q=(k[p>>2]|0)+4|0;if((k[a+32>>2]|0)==1)n=k[a+24>>2]|0;else n=1;b=ia(n<<1,q)|0;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,v|0),u=x,x=0,u&1):0))o=6;if((o|0)==6?(x=0,c=ta(67,b|0)|0,u=x,x=0,!(u&1)):0){k[w>>2]=c;k[v>>2]=c;k[v+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[w>>2]|0)+1|0;k[w>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}while(0);k[s>>2]=0;u=s+4|0;k[u>>2]=0;k[s+8>>2]=0;do if(!n)o=19;else{if(!(n>>>0>1073741823?(x=0,qa(178,s|0),m=x,x=0,m&1):0))o=17;if((o|0)==17?(d=n<<2,x=0,e=ta(67,d|0)|0,m=x,x=0,!(m&1)):0){k[s>>2]=e;o=e+(n<<2)|0;k[s+8>>2]=o;sw(e|0,0,d|0)|0;k[u>>2]=o;o=19;break}c=Wa()|0;b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((o|0)==19){g=a+12|0;b:do if((k[g>>2]|0)>0){h=a+4604|0;j=(ia(n,q)|0)+1|0;l=a+4608|0;m=a+92|0;f=a+4600|0;if((n|0)>0)e=0;else{d=0;while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(d&1))b=c;else{k[h>>2]=c;k[l>>2]=b}n=k[m>>2]|0;x=0;Ja(k[(k[n>>2]|0)+12>>2]|0,n|0,b|0,k[p>>2]|0,q|0);n=x;x=0;if(n&1)break;d=d+1|0;if((d|0)>=(k[g>>2]|0)){o=45;break b}}c=Wa()|0;break}c:while(1){c=k[v>>2]|0;b=c+1|0;k[h>>2]=b;c=c+j|0;k[l>>2]=c;if(!(e&1))b=c;else{k[h>>2]=c;k[l>>2]=b}o=k[m>>2]|0;x=0;Ja(k[(k[o>>2]|0)+12>>2]|0,o|0,b|0,k[p>>2]|0,q|0);o=x;x=0;if(o&1){o=28;break}b=k[s>>2]|0;c=k[h>>2]|0;d=0;do{k[f>>2]=k[b+(d<<2)>>2];o=k[p>>2]|0;i[c+o>>0]=i[c+(o+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[h>>2]>>0]|0;x=0;ra(75,a|0,0);o=x;x=0;if(o&1){o=36;break c}b=k[s>>2]|0;k[b+(d<<2)>>2]=k[f>>2];c=(k[h>>2]|0)+q|0;k[h>>2]=c;k[l>>2]=(k[l>>2]|0)+q;d=d+1|0}while((d|0)<(n|0));e=e+1|0;if((e|0)>=(k[g>>2]|0)){o=45;break b}}if((o|0)==28){c=Wa()|0;break}else if((o|0)==36){c=Wa()|0;break}}else o=45;while(0);do if((o|0)==45){x=0;qa(182,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[s>>2]|0;c=b;if(b){d=k[u>>2]|0;if((d|0)!=(b|0))k[u>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[v>>2]|0;if(!b){r=t;return}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return}while(0);b=k[s>>2]|0;d=b;if(b){e=k[u>>2]|0;if((e|0)!=(b|0))k[u>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0)}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4604|0;b=k[o>>2]|0;r=a+180|0;if((k[r>>2]|0)<=0)return;p=a+4608|0;q=a+4612|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Cg(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Bg(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Bg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;f=(r^b)-r|0;p=a+196+(f*12|0)+10|0;g=j[p>>1]|0;o=a+196+(f*12|0)|0;e=k[o>>2]|0;if((g|0)<(e|0))if((g<<1|0)<(e|0))if((g<<2|0)<(e|0))if((g<<3|0)<(e|0))if((g<<4|0)<(e|0)){b=5;while(1)if((g<>1]^r)-r+d|0;q=a+136|0;d=k[q>>2]|0;if((e&d|0)==(e|0))l=e;else l=d&~(e>>31);e=(c-l^r)-r|0;i=a+144|0;d=k[i>>2]|0;if((e|0)>0)e=(e+d|0)/(d<<1|1|0)|0;else e=(e-d|0)/(d<<1|1|0)|0;n=a+140|0;h=k[n>>2]|0;c=((e|0)<0?h:0)+e|0;h=c-((c|0)<((h+1|0)/2|0|0)?0:h)|0;f=a+196+(f*12|0)+4|0;if(!(d|b))e=(k[f>>2]<<1)+-1+g>>31;else e=0;d=e^h;Fg(a,b,d>>30^d<<1,k[a+156>>2]|0);d=k[a+160>>2]|0;b=(k[o>>2]|0)+((h|0)>-1?h:0-h|0)|0;e=(k[f>>2]|0)+(ia(k[i>>2]<<1|1,h)|0)|0;c=j[p>>1]|0;if((c|0)==(d|0)){b=b>>1;e=e>>1;c=d>>1}k[o>>2]=b;d=c+1|0;j[p>>1]=d;b=d+e|0;if((b|0)>=1){if((e|0)>0){e=e-d|0;p=j[m>>1]|0;j[m>>1]=(p<<16>>16<127&1)+(p&65535);e=(e|0)>0?0:e}}else{e=j[m>>1]|0;j[m>>1]=(e&65535)-(e<<16>>16>-128&1);e=(b|0)>(~c|0)?b:0-c|0}k[f>>2]=e;d=k[i>>2]|0;c=d<<1|1;b=(ia(c,(h^r)-r|0)|0)+l|0;if((b|0)>=(0-d|0)){e=k[q>>2]|0;if((e+d|0)<(b|0))b=b-(ia(k[n>>2]|0,c)|0)|0}else{b=(ia(k[n>>2]|0,c)|0)+b|0;e=k[q>>2]|0}if((b&e|0)==(b|0)){r=b;r=r&255;return r|0}r=e&~(b>>31);r=r&255;return r|0}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;j=(k[a+180>>2]|0)-b|0;m=k[a+4608>>2]|0;n=k[a+4604>>2]|0;e=i[m+(b+-1)>>0]|0;h=e&255;c=a+144|0;f=0;while(1){d=m+(f+b)|0;g=(l[d>>0]|0)-h|0;if((((g|0)>-1?g:0-g|0)|0)>(k[c>>2]|0))break;i[d>>0]=e;f=f+1|0;if((f|0)==(j|0)){f=j;break}}e=(f|0)==(j|0);g=a+4600|0;d=k[36476+(k[g>>2]<<2)>>2]|0;if((1<(f|0))c=f;else{c=f;do{ke(a,1,1);d=k[g>>2]|0;c=c-(1<>2])|0;d=(d|0)>30?31:d+1|0;k[g>>2]=d;d=k[36476+(d<<2)>>2]|0}while((c|0)>=(1<>0]|0,h,l[n+j>>0]|0)|0;i[b>>0]=a;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;a=f+1|0;return a|0}if(!c){a=j;return a|0}ke(a,1,1);a=j;return a|0}function Dg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c-d|0;i=a+136|0;g=a+144|0;e=k[g>>2]|0;if((((h|0)>-1?h:0-h|0)|0)>(e|0)){f=d-c>>31|1;b=ia(f,b-d|0)|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;c=((b|0)<0?e:0)+b|0;e=c-((c|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4576|0,e);e=ia(e,f)|0;f=k[g>>2]|0;g=f<<1|1;e=(ia(e,g)|0)+d|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}else{b=b-c|0;if((b|0)>0)b=(e+b|0)/(e<<1|1|0)|0;else b=(b-e|0)/(e<<1|1|0)|0;h=a+140|0;e=k[h>>2]|0;f=((b|0)<0?e:0)+b|0;e=f-((f|0)<((e+1|0)/2|0|0)?0:e)|0;Eg(a,a+4588|0,e);f=k[g>>2]|0;g=f<<1|1;e=(ia(g,e)|0)+c|0;if((e|0)>=(0-f|0)){b=k[i>>2]|0;if((b+f|0)<(e|0))e=e-(ia(k[h>>2]|0,g)|0)|0}else{e=(ia(k[h>>2]|0,g)|0)+e|0;b=k[i>>2]|0}if((e&b|0)==(e|0)){i=e;i=i&255;return i|0}i=b&~(e>>31);i=i&255;return i|0}return 0}function Eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0;n=b+9|0;g=l[n>>0]|0;m=b+4|0;j=k[m>>2]|0;e=(ia(g>>>1,j)|0)+(k[b>>2]|0)|0;if((g|0)<(e|0)){f=g;d=0;do{f=f<<1;d=d+1|0}while((f|0)<(e|0));e=d}else e=0;if((c|0)>0&(e|0)==0?l[b+10>>0]<<1>>>0>>0:0)d=1;else h=5;do if((h|0)==5){d=(c|0)<0;if(d?l[b+10>>0]<<1>>>0>=g>>>0:0){d=1;break}d=d&(e|0)!=0}while(0);d=(((c|0)>-1?c:0-c|0)<<1)-j+(d<<31>>31)|0;Fg(a,e,d,(k[a+156>>2]|0)+-1-(k[36476+(k[a+4600>>2]<<2)>>2]|0)|0);if((c|0)<0){a=b+10|0;i[a>>0]=(l[a>>0]|0)+1}d=(d+1-(k[m>>2]|0)>>1)+(k[b>>2]|0)|0;k[b>>2]=d;e=i[n>>0]|0;if(e<<24>>24!=(i[b+8>>0]|0)){b=e;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}k[b>>2]=d>>1;a=(e&255)>>>1;i[n>>0]=a;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=a;b=b&255;b=b+1|0;b=b&255;i[n>>0]=b;return}function Fg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=c>>b;f=a+148|0;g=d-(k[f>>2]|0)|0;if((e|0)<(g+-1|0)){if((e|0)>30){d=(e|0)/2|0;ke(a,0,d);e=e-d|0}ke(a,1,e+1|0);ke(a,(1<31){ke(a,0,31);ke(a,1,d+-31-(k[f>>2]|0)|0)}else ke(a,1,g);b=k[f>>2]|0;ke(a,(1<>2]|0)){c=k[a+136>>2]|0;b=a+152|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+184>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+188>>2]|0):0)?(k[d+12>>2]|0)==(k[a+192>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4612>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4612>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4612>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4612>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+152|0;while(0);m=1<>2];c=a+4616|0;d=m<<1;e=a+4620|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4612|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+192|0;j=a+188|0;g=a+184|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Hg(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Ig(a){a=a|0;var b=0,c=0;k[a>>2]=35856;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Jg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;Vg(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function Lg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Mg(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(76,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=a+4596|0;c=k[q>>2]|0;u=a+172|0;b=k[u>>2]|0;if((b|0)<=0)return;r=a+4600|0;s=a+4604|0;t=a+4592|0;h=c;f=m[c+-2>>1]|0;c=m[c>>1]|0;p=0;while(1){n=k[r>>2]|0;g=j[n+(p+-1<<1)>>1]|0;o=g&65535;e=p+1|0;d=m[h+(e<<1)>>1]|0;l=k[s>>2]|0;h=c-f|0;f=f-o|0;l=((((i[l+(d-c)>>0]|0)*9|0)+(i[l+h>>0]|0)|0)*9|0)+(i[l+f>>0]|0)|0;n=n+(p<<1)|0;if(!l){b=Qg(a,g,n,b-p|0)|0;c=b+p|0;if((c|0)!=(k[u>>2]|0)){o=Rg(a,o,m[(k[q>>2]|0)+(c<<1)>>1]|0)|0;j[(k[r>>2]|0)+(c<<1)>>1]=o;o=k[t>>2]|0;k[t>>2]=(o|0)<1?0:o+-1|0;b=b+1|0}e=b+p|0;d=k[q>>2]|0;c=m[d+(e+-1<<1)>>1]|0;d=m[d+(e<<1)>>1]|0}else{b=c-o>>31;if((b^f|0)<0)b=c;else b=o+((b^h|0)<0?0:h)|0;o=Pg(a,l,m[n>>1]|0,b,0)|0;j[(k[r>>2]|0)+(p<<1)>>1]=o}b=k[u>>2]|0;if((b|0)<=(e|0))break;h=k[q>>2]|0;f=c;c=d;p=e}return}function Og(a){a=a|0;var b=0,c=0,d=0,e=0;d=a+116|0;c=k[d>>2]|0;if((i[c>>0]|0)!=-1){e=a+112|0;b=k[e>>2]|0;if((b|0)<1){qe(a);b=k[e>>2]|0;c=k[d>>2]|0}a=a+108|0;d=k[a>>2]|0;k[e>>2]=b+-1;b=d<<1;k[a>>2]=b;if((i[c>>0]|0)!=-1){b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}else b=k[a+108>>2]|0;if(!b)return;b=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,b|0,6,35648);a=x;x=0;if(!(a&1))ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}function Pg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function Qg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(Sg(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}else{c=Sg(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&65535;return a|0}a=d&~(b>>31);a=a&65535;return a|0}return 0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function Tg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=a+112|0;if((k[f>>2]|0)<16)qe(a);g=a+108|0;c=k[g>>2]|0;if((c|0)>=0)if(!(c&1073741824))if(!(c&536870912))if(!(c&268435456))if(!(c&134217728))if(!(c&67108864))if(!(c&33554432))if(!(c&16777216))if(!(c&8388608))if(!(c&4194304))if(!(c&2097152))if(!(c&1048576))if(!(c&524288))if(!(c&262144))if(!(c&131072)){e=c>>>12&16;b=e+-1|0;if(!e){b=(k[f>>2]|0)+-15|0;k[f>>2]=b;d=c<<15;k[g>>2]=d;c=b;b=15;while(1){if((c|0)<1){qe(a);e=k[g>>2]|0;c=k[f>>2]|0}else e=d;c=c+-1|0;k[f>>2]=c;d=e<<1;k[g>>2]=d;if((e|0)<0)break;else b=b+1|0}return b|0}}else b=14;else b=13;else b=12;else b=11;else b=10;else b=9;else b=8;else b=7;else b=6;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;a=b+1|0;k[f>>2]=(k[f>>2]|0)-a;k[g>>2]=c<>2]|0;if((c|0)<(b|0)){qe(a);c=k[d>>2]|0;if((c|0)<(b|0)){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}e=a+108|0;a=k[e>>2]|0;k[d>>2]=c-b;k[e>>2]=a<>>(32-b|0)|0}function Vg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Wg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Xg(a){a=a|0;var b=0,c=0;k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Yg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Zg(a){a=a|0;var b=0,c=0;k[a>>2]=35828;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function _g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=6;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function $g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;hh(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function ah(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);bh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!(b>>>0>715827882?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(x=0,c=ta(67,b*6|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;d=c+(b*6|0)|0;k[C+8>>2]=d;while(1){j[c>>1]=0;j[c+2>>1]=0;j[c+4>>1]=0;b=b+-1|0;if(!b)break;else c=c+6|0}k[D>>2]=d;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=20;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=18;if((g|0)==18?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=20;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==20){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;i=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;b:while(1){d=k[C>>2]|0;c=d+6|0;k[g>>2]=c;d=d+(i*6|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*6|0)|0;c=c+((b+-1|0)*6|0)|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;e=(k[l>>2]|0)+-6|0;c=k[g>>2]|0;j[e>>1]=j[c>>1]|0;j[e+2>>1]=j[c+2>>1]|0;j[e+4>>1]=j[c+4>>1]|0;x=0;ra(77,a|0,0);e=x;x=0;if(e&1){g=31;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*6|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*6|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*6|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=32;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=44;break a}}if((g|0)==31){d=Wa()|0;break}else if((g|0)==32){d=Wa()|0;break}}else g=44;while(0);do if((g|0)==44){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-6-b|0)>>>0)/6|0)*6|0);mj(b);fb(d|0)}function ch(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;N=r;r=r+32|0;D=N+24|0;M=N+18|0;L=N+12|0;E=N+6|0;F=N;G=a+172|0;b=k[G>>2]|0;if((b|0)<=0){r=N;return}H=a+4600|0;I=a+4596|0;J=a+4604|0;K=a+4592|0;C=0;while(1){d=C+-1|0;e=k[H>>2]|0;O=k[I>>2]|0;c=C+1|0;f=m[O+(C*6|0)>>1]|0;B=k[J>>2]|0;g=m[O+(d*6|0)>>1]|0;h=f-g|0;l=m[e+(d*6|0)>>1]|0;n=g-l|0;o=((((i[B+((m[O+(c*6|0)>>1]|0)-f)>>0]|0)*9|0)+(i[B+h>>0]|0)|0)*9|0)+(i[B+n>>0]|0)|0;p=m[O+(C*6|0)+2>>1]|0;q=m[O+(d*6|0)+2>>1]|0;s=p-q|0;t=m[e+(d*6|0)+2>>1]|0;u=q-t|0;v=((((i[B+((m[O+(c*6|0)+2>>1]|0)-p)>>0]|0)*9|0)+(i[B+s>>0]|0)|0)*9|0)+(i[B+u>>0]|0)|0;w=m[O+(C*6|0)+4>>1]|0;x=m[O+(d*6|0)+4>>1]|0;y=w-x|0;z=m[e+(d*6|0)+4>>1]|0;A=x-z|0;B=((((i[B+((m[O+(c*6|0)+4>>1]|0)-w)>>0]|0)*9|0)+(i[B+y>>0]|0)|0)*9|0)+(i[B+A>>0]|0)|0;if(!(v|o|B)){c=e+(d*6|0)|0;j[L>>1]=j[c>>1]|0;j[L+2>>1]=j[c+2>>1]|0;j[L+4>>1]=j[c+4>>1]|0;j[D>>1]=j[c>>1]|0;j[D+2>>1]=j[c+2>>1]|0;j[D+4>>1]=j[c+4>>1]|0;b=dh(a,D,e+(C*6|0)|0,b-C|0)|0;c=b+C|0;if((c|0)!=(k[G>>2]|0)){O=(k[I>>2]|0)+(c*6|0)|0;j[F>>1]=j[O>>1]|0;j[F+2>>1]=j[O+2>>1]|0;j[F+4>>1]=j[O+4>>1]|0;O=(k[H>>2]|0)+(c*6|0)|0;j[M>>1]=j[L>>1]|0;j[M+2>>1]=j[L+2>>1]|0;j[M+4>>1]=j[L+4>>1]|0;j[D>>1]=j[F>>1]|0;j[D+2>>1]=j[F+2>>1]|0;j[D+4>>1]=j[F+4>>1]|0;eh(E,a,M,D);j[O>>1]=j[E>>1]|0;j[O+2>>1]=j[E+2>>1]|0;j[O+4>>1]=j[E+4>>1]|0;O=k[K>>2]|0;k[K>>2]=(O|0)<1?0:O+-1|0;b=b+1|0}c=b+C|0}else{d=m[e+(C*6|0)>>1]|0;b=f-l>>31;if((b^n|0)>=0)if((b^h|0)<0)b=l;else b=l-g+f|0;else b=f;f=fh(a,o,d,b,0)|0;d=m[(k[H>>2]|0)+(C*6|0)+2>>1]|0;b=p-t>>31;if((b^u|0)>=0)if((b^s|0)<0)b=t;else b=t-q+p|0;else b=p;d=fh(a,v,d,b,0)|0;e=m[(k[H>>2]|0)+(C*6|0)+4>>1]|0;b=w-z>>31;if((b^A|0)>=0)if((b^y|0)<0)b=z;else b=z-x+w|0;else b=w;B=fh(a,B,e,b,0)|0;O=k[H>>2]|0;j[O+(C*6|0)>>1]=f;j[O+(C*6|0)+2>>1]=d;j[O+(C*6|0)+4>>1]=B}b=k[G>>2]|0;if((c|0)>=(b|0))break;else C=c}r=N;return}function dh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{p=c+(f*6|0)|0;j[p>>1]=j[b>>1]|0;j[p+2>>1]=j[b+2>>1]|0;j[p+4>>1]=j[b+4>>1]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function eh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,l=0,n=0,o=0;i=b+4568|0;o=gh(b,i)|0;g=gh(b,i)|0;i=gh(b,i)|0;f=b+128|0;e=m[d>>1]|0;l=k[b+136>>2]|0;n=l<<1|1;e=(ia(ia(n,o)|0,e-(m[c>>1]|0)>>31|1)|0)+e|0;o=0-l|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&65535;e=m[d+2>>1]|0;e=(ia(ia(n,g)|0,e-(m[c+2>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&65535;e=m[d+4>>1]|0;e=(ia(ia(n,i)|0,e-(m[c+4>>1]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+l|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}b=f&~(e>>31);b=b&65535;j[a>>1]=h;o=a+2|0;j[o>>1]=g;a=a+4|0;j[a>>1]=b;return}function fh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&65535;return a|0}a=c&~(e>>31);a=a&65535;return a|0}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function ih(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function jh(a){a=a|0;var b=0,c=0;k[a>>2]=35800;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;th(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);nh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+172|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){f=a+8|0;b:do if((k[f>>2]|0)>0){g=a+4596|0;h=ia(y,w)|0;j=h+1|0;l=a+4600|0;m=(y|0)>0;n=a+160|0;o=a+168|0;p=a+164|0;q=a+156|0;s=a+88|0;t=a+4592|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(78,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43;while(0);do if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;M=r;r=r+16|0;C=M+12|0;L=M+9|0;K=M+6|0;D=M+3|0;E=M;F=a+172|0;b=k[F>>2]|0;if((b|0)<=0){r=M;return}G=a+4600|0;H=a+4596|0;I=a+4604|0;J=a+4592|0;B=0;while(1){y=B+-1|0;d=k[G>>2]|0;e=d+(y*3|0)|0;N=k[H>>2]|0;c=B+1|0;f=l[N+(B*3|0)>>0]|0;A=k[I>>2]|0;g=l[N+(y*3|0)>>0]|0;h=f-g|0;j=l[e>>0]|0;m=g-j|0;n=((((i[A+((l[N+(c*3|0)>>0]|0)-f)>>0]|0)*9|0)+(i[A+h>>0]|0)|0)*9|0)+(i[A+m>>0]|0)|0;o=l[N+(B*3|0)+1>>0]|0;p=l[N+(y*3|0)+1>>0]|0;q=o-p|0;s=l[d+(y*3|0)+1>>0]|0;t=p-s|0;u=((((i[A+((l[N+(c*3|0)+1>>0]|0)-o)>>0]|0)*9|0)+(i[A+q>>0]|0)|0)*9|0)+(i[A+t>>0]|0)|0;v=l[N+(B*3|0)+2>>0]|0;w=l[N+(y*3|0)+2>>0]|0;x=v-w|0;y=l[d+(y*3|0)+2>>0]|0;z=w-y|0;A=((((i[A+((l[N+(c*3|0)+2>>0]|0)-v)>>0]|0)*9|0)+(i[A+x>>0]|0)|0)*9|0)+(i[A+z>>0]|0)|0;if(!(u|n|A)){i[K>>0]=i[e>>0]|0;i[K+1>>0]=i[e+1>>0]|0;i[K+2>>0]=i[e+2>>0]|0;i[C>>0]=i[e>>0]|0;i[C+1>>0]=i[e+1>>0]|0;i[C+2>>0]=i[e+2>>0]|0;b=ph(a,C,d+(B*3|0)|0,b-B|0)|0;c=b+B|0;if((c|0)!=(k[F>>2]|0)){N=(k[H>>2]|0)+(c*3|0)|0;i[E>>0]=i[N>>0]|0;i[E+1>>0]=i[N+1>>0]|0;i[E+2>>0]=i[N+2>>0]|0;N=k[G>>2]|0;i[L>>0]=i[K>>0]|0;i[L+1>>0]=i[K+1>>0]|0;i[L+2>>0]=i[K+2>>0]|0;i[C>>0]=i[E>>0]|0;i[C+1>>0]=i[E+1>>0]|0;i[C+2>>0]=i[E+2>>0]|0;qh(D,a,L,C);N=N+(c*3|0)|0;i[N>>0]=i[D>>0]|0;i[N+1>>0]=i[D+1>>0]|0;i[N+2>>0]=i[D+2>>0]|0;N=k[J>>2]|0;k[J>>2]=(N|0)<1?0:N+-1|0;b=b+1|0}c=b+B|0}else{d=l[d+(B*3|0)>>0]|0;b=f-j>>31;if((b^m|0)>=0)if((b^h|0)<0)b=j;else b=j-g+f|0;else b=f;f=rh(a,n,d,b,0)|0;d=l[(k[G>>2]|0)+(B*3|0)+1>>0]|0;b=o-s>>31;if((b^t|0)>=0)if((b^q|0)<0)b=s;else b=s-p+o|0;else b=o;d=rh(a,u,d,b,0)|0;e=l[(k[G>>2]|0)+(B*3|0)+2>>0]|0;b=v-y>>31;if((b^z|0)>=0)if((b^x|0)<0)b=y;else b=y-w+v|0;else b=v;A=rh(a,A,e,b,0)|0;N=(k[G>>2]|0)+(B*3|0)|0;i[N>>0]=f;i[N+1>>0]=d;i[N+2>>0]=A}b=k[F>>2]|0;if((c|0)>=(b|0))break;else B=c}r=M;return}function ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0;j=b+4568|0;o=sh(b,j)|0;g=sh(b,j)|0;j=sh(b,j)|0;f=b+128|0;e=l[d>>0]|0;m=k[b+136>>2]|0;n=m<<1|1;e=(ia(ia(n,o)|0,e-(l[c>>0]|0)>>31|1)|0)+e|0;o=0-m|0;if((e|0)>=(o|0)){f=k[f>>2]|0;if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else{e=(ia(k[b+132>>2]|0,n)|0)+e|0;f=k[f>>2]|0}if((e&f|0)!=(e|0))e=f&~(e>>31);h=e&255;e=l[d+1>>0]|0;e=(ia(ia(n,g)|0,e-(l[c+1>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)!=(e|0))e=f&~(e>>31);g=e&255;e=l[d+2>>0]|0;e=(ia(ia(n,j)|0,e-(l[c+2>>0]|0)>>31|1)|0)+e|0;if((e|0)>=(o|0)){if((f+m|0)<(e|0))e=e-(ia(k[b+132>>2]|0,n)|0)|0}else e=(ia(k[b+132>>2]|0,n)|0)+e|0;if((e&f|0)==(e|0)){b=e;b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}b=f&~(e>>31);b=b&255;i[a>>0]=h;o=a+1|0;i[o>>0]=g;a=a+2|0;i[a>>0]=b;return}function rh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function th(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function uh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function vh(a){a=a|0;var b=0,c=0;k[a>>2]=35772;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,65535,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Fh(a);d=0;do{k[a+164+(d*12|0)>>2]=1024;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=1024;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=1024;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function yh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);zh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(79,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Ch(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Bh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Bh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&65535|0)!=(c|0))c=c>>31&65535^65535;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<47){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&65535;return b|0}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Dh(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Eh(a,a+4556|0)|0)+c|0;else c=(ia(Eh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Dh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Eh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(46-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,16)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Fh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,65535,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8909]|0;k[a+4580>>2]=j+(((k[8910]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=131072){if(f>>>0>131072?(g=b+131072|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,131072-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+65536;g=a+160|0;e=a+156|0;f=-65536;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==65536)break}r=l;return}function Gh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Hh(a){a=a|0;var b=0,c=0;k[a>>2]=35744;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(37,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==16)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(38,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(39,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(40,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=2;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,4095,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;Rh(a);d=0;do{k[a+164+(d*12|0)>>2]=64;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=64;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=64;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Kh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Lh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))g=6;if((g|0)==6?(c=b<<1,x=0,d=ta(67,c|0)|0,B=x,x=0,!(B&1)):0){k[C>>2]=d;B=d+(b<<1)|0;k[C+8>>2]=B;sw(d|0,0,c|0)|0;k[D>>2]=B;break}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)g=18;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))g=16;if((g|0)==16?(e=y<<2,x=0,f=ta(67,e|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=f;g=f+(y<<2)|0;k[z+8>>2]=g;sw(f|0,0,e|0)|0;k[B>>2]=g;g=18;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((g|0)==18){f=a+8|0;a:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;i=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;b:while(1){d=k[C>>2]|0;c=d+2|0;k[g>>2]=c;d=d+(i<<1)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;j[c+(e<<1)>>1]=j[c+(e+-1<<1)>>1]|0;j[b+-2>>1]=j[c>>1]|0;x=0;ra(80,a|0,0);e=x;x=0;if(e&1){g=29;break b}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w<<1)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w<<1)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h<<1)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){g=30;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){g=42;break a}}if((g|0)==29){d=Wa()|0;break}else if((g|0)==30){d=Wa()|0;break}}else g=42;while(0);do if((g|0)==42){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~((c+-2-b|0)>>>1)<<1);mj(b);fb(d|0)}function Mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0,n=0,o=0,p=0,q=0,r=0,s=0;p=a+4572|0;b=k[p>>2]|0;s=a+148|0;if((k[s>>2]|0)<=0)return;q=a+4576|0;r=a+4580|0;e=b;f=m[b+-2>>1]|0;b=m[b>>1]|0;o=0;while(1){n=k[q>>2]|0;l=m[n+(o+-1<<1)>>1]|0;d=o+1|0;c=m[e+(d<<1)>>1]|0;h=k[r>>2]|0;g=b-f|0;e=f-l|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(Oh(a,o,0)|0)+o|0;c=k[p>>2]|0;b=m[c+(d+-1<<1)>>1]|0;c=m[c+(d<<1)>>1]|0}else{f=b-l>>31;if((f^e|0)<0)e=b;else e=l+((f^g|0)<0?0:g)|0;n=Nh(a,h,m[n+(o<<1)>>1]|0,e,0)|0;j[(k[q>>2]|0)+(o<<1)>>1]=n}if((d|0)>=(k[s>>2]|0))break;e=k[p>>2]|0;f=b;b=c;o=d}return}function Nh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&4095|0)!=(c|0))c=c>>31&4095^4095;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<35){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&4095;b=b&65535;return b|0}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=j[e+(b+-1<<1)>>1]|0;g=a+148|0;e=Ph(a,c,e+(b<<1)|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&65535;b=m[(k[a+4572>>2]|0)+(d<<1)>>1]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(Qh(a,a+4556|0)|0)+c|0;else c=(ia(Qh(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;j[(k[f>>2]|0)+(d<<1)>>1]=c&4095;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function Ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0;h=a+112|0;l=a+108|0;m=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[l>>2]|0;e=e+-1|0;k[h>>2]=e;k[l>>2]=g<<1;if((g|0)>=0){n=8;break}g=k[m>>2]|0;o=1<>2];p=d-f|0;p=(o|0)<(p|0)?o:p;f=p+f|0;if((p|0)==(o|0))k[m>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((n|0)==8)if((f|0)!=(d|0)){e=k[m>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);p=x;x=0;if(p&1){p=Wa()|0;Ua(e|0);fb(p|0)}else ub(e|0,824,96)}}else e=d;if((e|0)>0)f=0;else return e|0;do{j[c+(f<<1)>>1]=b;f=f+1|0}while((f|0)!=(e|0));return e|0}function Qh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(34-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,12)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function Rh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,4095,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8906]|0;k[a+4580>>2]=j+(((k[8907]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=8192){if(f>>>0>8192?(g=b+8192|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,8192-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+4096;g=a+160|0;e=a+156|0;f=-4096;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==4096)break}r=l;return}function Sh(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function Th(a){a=a|0;var b=0,c=0;k[a>>2]=35716;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function Uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;bi(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function Wh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);Xh(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function Xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){f=a+8|0;b:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+1|0;k[g>>2]=c;d=d+j|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];e=k[v>>2]|0;i[c+e>>0]=i[c+(e+-1)>>0]|0;i[(k[l>>2]|0)+-1>>0]=i[k[g>>2]>>0]|0;x=0;ra(81,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+w|0;k[g>>2]=c;b=(k[l>>2]|0)+w|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+((k[q>>2]|0)-h)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){c=Wa()|0;break}else if((f|0)==31){c=Wa()|0;break}}else f=43;while(0);do if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function Yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+4572|0;b=k[o>>2]|0;r=a+148|0;if((k[r>>2]|0)<=0)return;p=a+4576|0;q=a+4580|0;e=b;f=l[b+-1>>0]|0;b=l[b>>0]|0;n=0;while(1){m=k[p>>2]|0;j=l[m+(n+-1)>>0]|0;d=n+1|0;c=l[e+d>>0]|0;h=k[q>>2]|0;g=b-f|0;e=f-j|0;h=((((i[h+(c-b)>>0]|0)*9|0)+(i[h+g>>0]|0)|0)*9|0)+(i[h+e>>0]|0)|0;if(!h){d=(_h(a,n,0)|0)+n|0;c=k[o>>2]|0;b=l[c+(d+-1)>>0]|0;c=l[c+d>>0]|0}else{f=b-j>>31;if((f^e|0)<0)e=b;else e=j+((f^g|0)<0?0:g)|0;m=Zh(a,h,l[m+n>>0]|0,e,0)|0;i[(k[p>>2]|0)+n>>0]=m}if((d|0)>=(k[r>>2]|0))break;e=k[o>>2]|0;f=b;b=c;n=d}return}function Zh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+4576|0;e=k[f>>2]|0;c=i[e+(b+-1)>>0]|0;g=a+148|0;e=$h(a,c,e+b|0,(k[g>>2]|0)-b|0)|0;d=e+b|0;if((d|0)==(k[g>>2]|0)){g=e;return g|0}c=c&255;b=l[(k[a+4572>>2]|0)+d>>0]|0;g=c-b|0;if((((g|0)>-1?g:0-g|0)|0)<1)c=(ai(a,a+4556|0)|0)+c|0;else c=(ia(ai(a,a+4544|0)|0,b-c>>31|1)|0)+b|0;i[(k[f>>2]|0)+d>>0]=c;g=a+4568|0;a=k[g>>2]|0;k[g>>2]=(a|0)<1?0:a+-1|0;g=e+1|0;return g|0}function $h(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function ci(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function di(a){a=a|0;var b=0,c=0;k[a>>2]=35688;b=k[a+4584>>2]|0;if(b){c=a+4588|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function ei(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=3;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function fi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+32|0;h=e;Oi(h,255,0);g=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[h+8>>2]|0:f;d=k[b+12>>2]|0;d=(d|0)==0?k[h+12>>2]|0:d;b=k[b+16>>2]|0;c=k[h+16>>2]|0;k[a+152>>2]=(g|0)==0?k[h+4>>2]|0:g;k[a+156>>2]=f;k[a+160>>2]=d;ni(a);d=0;do{k[a+164+(d*12|0)>>2]=4;k[a+164+(d*12|0)+4>>2]=0;j[a+164+(d*12|0)+8>>1]=0;j[a+164+(d*12|0)+10>>1]=1;d=d+1|0}while((d|0)!=365);h=((b|0)==0?c:b)&255;k[a+4544>>2]=4;k[a+4548>>2]=0;i[a+4552>>0]=h;i[a+4553>>0]=1;i[a+4554>>0]=0;k[a+4556>>2]=4;k[a+4560>>2]=1;i[a+4564>>0]=h;i[a+4565>>0]=1;i[a+4566>>0]=0;k[a+4568>>2]=0;r=e;return}function gi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4596>>0]=e&1;b=a+132|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);hi(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;v=a+148|0;w=(k[v>>2]|0)+4|0;if((k[a+28>>2]|0)==1)y=k[a+20>>2]|0;else y=1;b=ia(y<<1,w)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!(b>>>0>1431655765?(x=0,qa(178,C|0),B=x,x=0,B&1):0))f=6;if((f|0)==6?(x=0,c=ta(67,b*3|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+(b*3|0);while(1){i[c>>0]=0;i[c+1>>0]=0;i[c+2>>0]=0;c=(k[D>>2]|0)+3|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}d=Wa()|0;b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!y)f=19;else{if(!(y>>>0>1073741823?(x=0,qa(178,z|0),u=x,x=0,u&1):0))f=17;if((f|0)==17?(d=y<<2,x=0,e=ta(67,d|0)|0,u=x,x=0,!(u&1)):0){k[z>>2]=e;f=e+(y<<2)|0;k[z+8>>2]=f;sw(e|0,0,d|0)|0;k[B>>2]=f;f=19;break}d=Wa()|0;b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}while(0);if((f|0)==19){f=a+8|0;b:do if((k[f>>2]|0)>0){g=a+4572|0;h=ia(y,w)|0;j=h+1|0;l=a+4576|0;m=(y|0)>0;n=a+136|0;o=a+144|0;p=a+140|0;q=a+132|0;s=a+88|0;t=a+4568|0;u=0;c:while(1){d=k[C>>2]|0;c=d+3|0;k[g>>2]=c;d=d+(j*3|0)|0;k[l>>2]=d;if(!(u&1))b=d;else{k[g>>2]=d;k[l>>2]=c;b=c;c=d}if(m){e=k[z>>2]|0;d=0;do{k[t>>2]=k[e+(d<<2)>>2];b=k[v>>2]|0;e=c+(b*3|0)|0;c=c+((b+-1|0)*3|0)|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;c=k[g>>2]|0;e=(k[l>>2]|0)+-3|0;i[e>>0]=i[c>>0]|0;i[e+1>>0]=i[c+1>>0]|0;i[e+2>>0]=i[c+2>>0]|0;x=0;ra(82,a|0,0);e=x;x=0;if(e&1){f=30;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[t>>2];c=(k[g>>2]|0)+(w*3|0)|0;k[g>>2]=c;b=(k[l>>2]|0)+(w*3|0)|0;k[l>>2]=b;d=d+1|0}while((d|0)<(y|0))}e=k[n>>2]|0;if(((e|0)<=(u|0)?(u|0)<((k[o>>2]|0)+e|0):0)?(e=k[s>>2]|0,x=0,Ja(k[(k[e>>2]|0)+8>>2]|0,e|0,b+(((k[q>>2]|0)-h|0)*3|0)|0,k[p>>2]|0,w|0),e=x,x=0,e&1):0){f=31;break}u=u+1|0;if((u|0)>=(k[f>>2]|0)){f=43;break b}}if((f|0)==30){d=Wa()|0;break}else if((f|0)==31){d=Wa()|0;break}}else f=43;while(0);do if((f|0)==43){x=0;qa(183,a|0);a=x;x=0;if(a&1){d=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);r=A;return}while(0);b=k[z>>2]|0;c=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-c|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(d|0);c=k[D>>2]|0;if((c|0)!=(b|0))k[D>>2]=c+(~(((c+-3-b|0)>>>0)/3|0)*3|0);mj(b);fb(d|0)}function ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=a+148|0;if((k[A>>2]|0)<=0)return;B=a+4576|0;C=a+4572|0;D=a+4580|0;z=0;while(1){w=z+-1|0;f=k[B>>2]|0;g=k[C>>2]|0;b=z+1|0;e=l[g+(z*3|0)>>0]|0;y=k[D>>2]|0;h=l[g+(w*3|0)>>0]|0;j=e-h|0;m=l[f+(w*3|0)>>0]|0;n=h-m|0;o=((((i[y+((l[g+(b*3|0)>>0]|0)-e)>>0]|0)*9|0)+(i[y+j>>0]|0)|0)*9|0)+(i[y+n>>0]|0)|0;d=l[g+(z*3|0)+1>>0]|0;p=l[g+(w*3|0)+1>>0]|0;q=d-p|0;r=l[f+(w*3|0)+1>>0]|0;s=p-r|0;t=((((i[y+((l[g+(b*3|0)+1>>0]|0)-d)>>0]|0)*9|0)+(i[y+q>>0]|0)|0)*9|0)+(i[y+s>>0]|0)|0;c=l[g+(z*3|0)+2>>0]|0;u=l[g+(w*3|0)+2>>0]|0;v=c-u|0;w=l[f+(w*3|0)+2>>0]|0;x=u-w|0;y=((((i[y+((l[g+(b*3|0)+2>>0]|0)-c)>>0]|0)*9|0)+(i[y+v>>0]|0)|0)*9|0)+(i[y+x>>0]|0)|0;if(!(t|o|y))b=(ji(a,z,0)|0)+z|0;else{g=l[f+(z*3|0)>>0]|0;f=e-m>>31;if((f^n|0)>=0)if((f^j|0)<0)e=m;else e=m-h+e|0;g=ki(a,o,g,e,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+1>>0]|0;e=d-r>>31;if((e^s|0)>=0)if((e^q|0)<0)d=r;else d=r-p+d|0;e=ki(a,t,f,d,0)|0;f=l[(k[B>>2]|0)+(z*3|0)+2>>0]|0;d=c-w>>31;if((d^x|0)>=0)if((d^v|0)<0)c=w;else c=w-u+c|0;y=ki(a,y,f,c,0)|0;z=(k[B>>2]|0)+(z*3|0)|0;i[z>>0]=g;i[z+1>>0]=e;i[z+2>>0]=y}if((b|0)<(k[A>>2]|0))z=b;else break}return}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;j=r;r=r+16|0;m=j+3|0;n=j;f=a+4576|0;c=k[f>>2]|0;d=c+((b+-1|0)*3|0)|0;g=i[d>>0]|0;h=i[d+1>>0]|0;d=i[d+2>>0]|0;i[n>>0]=g;i[n+1>>0]=h;i[n+2>>0]=d;l=a+148|0;e=(k[l>>2]|0)-b|0;i[m>>0]=i[n>>0]|0;i[m+1>>0]=i[n+1>>0]|0;i[m+2>>0]=i[n+2>>0]|0;e=li(a,m,c+(b*3|0)|0,e)|0;c=e+b|0;if((c|0)==(k[l>>2]|0)){n=e;r=j;return n|0}m=(k[a+4572>>2]|0)+(c*3|0)|0;b=i[m>>0]|0;l=i[m+1>>0]|0;m=i[m+2>>0]|0;n=k[f>>2]|0;f=a+4544|0;p=mi(a,f)|0;o=mi(a,f)|0;b=b&255;b=(ia(b-(g&255)>>31|1,p)|0)+b&255;l=l&255;l=(ia(l-(h&255)>>31|1,o)|0)+l&255;m=m&255;m=(ia(m-(d&255)>>31|1,mi(a,f)|0)|0)+m&255;n=n+(c*3|0)|0;i[n>>0]=b;i[n+1>>0]=l;i[n+2>>0]=m;n=a+4568|0;m=k[n>>2]|0;k[n>>2]=(m|0)<1?0:m+-1|0;n=e+1|0;r=j;return n|0}function ki(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=b>>31;m=(q^b)-q|0;p=a+164+(m*12|0)+10|0;c=j[p>>1]|0;o=a+164+(m*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){f=5;while(1)if((c<>1]^q)-q+d|0;if((c&255|0)!=(c|0))c=c>>31&255^255;e=a+112|0;if((k[e>>2]|0)<8)qe(a);d=a+108|0;g=k[d>>2]|0;h=g>>>24;l=k[2832+(f<<11)+(h<<3)+4>>2]|0;if(!l){e=Tg(a)|0;if((e|0)<23){if(f)e=(Ug(a,f)|0)+(e<>31^e>>1;if((((e|0)>-1?e:0-e|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}}else{k[e>>2]=(k[e>>2]|0)-l;k[d>>2]=g<>2]|0}l=a+164+(m*12|0)+4|0;d=k[l>>2]|0;if(!f){a=j[p>>1]|0;f=a;e=(d<<1)+-1+(a<<16>>16)>>31^e}else f=j[p>>1]|0;g=f<<16>>16==64;a=g&1;h=d+e>>a;g=g?32:f<<16>>16;k[o>>2]=((e|0)>-1?e:0-e|0)+(k[o>>2]|0)>>a;d=g+1|0;j[p>>1]=d;f=d+h|0;if((f|0)<1){p=j[n>>1]|0;j[n>>1]=(p&65535)-(p<<16>>16>-128&1);p=(f|0)>(~g|0)?f:0-g|0;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}if((h|0)<=0){p=h;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}p=h-d|0;o=j[n>>1]|0;j[n>>1]=(o<<16>>16<127&1)+(o&65535);p=(p|0)>0?0:p;k[l>>2]=p;q=e^q;b=b>>>31;b=c+b|0;b=b+q|0;b=b&255;return b|0}function li(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4568|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;f=0;do{o=c+(f*3|0)|0;i[o>>0]=i[b>>0]|0;i[o+1>>0]=i[b+1>>0]|0;i[o+2>>0]=i[b+2>>0]|0;f=f+1|0}while((f|0)!=(e|0));return e|0}function mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;h=b+9|0;c=l[h>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;e=k[36476+(k[a+4568>>2]<<2)>>2]|0;c=Tg(a)|0;do if((c|0)<(22-e|0))if(!d){a=k[f>>2]|0;e=a+c|0;d=e&1;e=(d+e|0)/2|0;g=8;break}else{c=(Ug(a,d)|0)+(c<>2]|0;e=c+a|0;j=e&1;d=j;f=1;e=(j+e|0)/2|0;break}else{c=(Ug(a,8)|0)+1|0;a=k[f>>2]|0;e=c+a|0;f=e&1;e=(f+e|0)/2|0;if(!d){d=f;g=8}else{d=f;f=1}}while(0);if((g|0)==8)f=l[b+10>>0]<<1>>>0>=(l[h>>0]|0)>>>0;e=(d|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(c+1-a>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[h>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){j=d;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[h>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;j=j&255;j=j+1|0;j=j&255;i[h>>0]=j;return e|0} -function Vp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Wp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+240|0;g=m+8|0;a=m;o=m+204|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Xp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+312|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+316|0;s=z+80|0;h=z+84|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Yp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;y=r;r=r+16|0;z=y;w=Ss(g,44212)|0;u=Ss(g,44368)|0;Mb[k[(k[u>>2]|0)+20>>2]&127](z,u);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,g|0)|0;v=x;x=0;if(v&1)t=8;else{l=k[f>>2]|0;k[f>>2]=l+4;k[l>>2]=g;l=a+1|0;t=10}break}default:{l=a;t=10}}a:do if((t|0)==10){v=c;b:do if((v-l|0)>1?(i[l>>0]|0)==48:0){h=l+1|0;switch(i[h>>0]|0){case 88:case 120:break;default:{t=11;break b}}x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,48)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;l=l+2|0;x=0;g=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[h>>0]|0)|0;s=x;x=0;if(s&1){t=8;break a}s=k[f>>2]|0;k[f>>2]=s+4;k[s>>2]=g;if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(39,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break b}g=g+1|0;if(g>>>0>=c>>>0){s=l;break b}}g=Wa()|0;break a}else{s=l;g=l}}else t=11;while(0);c:do if((t|0)==11)if(l>>>0>>0){g=l;while(1){h=i[g>>0]|0;x=0;j=Da(3)|0;s=x;x=0;if(s&1)break;x=0;h=Aa(40,h<<24>>24|0,j|0)|0;s=x;x=0;if(s&1)break;if(!h){s=l;break c}g=g+1|0;if(g>>>0>=c>>>0){s=l;break c}}g=Wa()|0;break a}else{s=l;g=l}while(0);p=i[z>>0]|0;q=z+4|0;if(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0){if((s|0)!=(g|0)?(m=g+-1|0,s>>>0>>0):0){j=s;h=m;do{p=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=p;j=j+1|0;h=h+-1|0}while(j>>>0>>0)}x=0;m=ta(k[(k[u>>2]|0)+16>>2]|0,u|0)|0;p=x;x=0;if(p&1){t=8;break}n=z+8|0;o=z+1|0;d:do if(s>>>0>>0){h=0;j=0;p=s;while(1){l=i[((i[z>>0]&1)==0?o:k[n>>2]|0)+j>>0]|0;if(l<<24>>24>0&(h|0)==(l<<24>>24|0)){h=k[f>>2]|0;k[f>>2]=h+4;k[h>>2]=m;h=i[z>>0]|0;l=0;j=(j>>>0<(((h&1)==0?(h&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+j|0}else l=h;x=0;h=Aa(k[(k[w>>2]|0)+44>>2]|0,w|0,i[p>>0]|0)|0;A=x;x=0;if(A&1)break;A=k[f>>2]|0;k[f>>2]=A+4;k[A>>2]=h;p=p+1|0;if(p>>>0>=g>>>0)break d;else h=l+1|0}g=Wa()|0;break a}while(0);h=d+(s-a<<2)|0;l=k[f>>2]|0;if((h|0)!=(l|0)){j=l+-4|0;if(h>>>0>>0){do{A=k[h>>2]|0;k[h>>2]=k[j>>2];k[j>>2]=A;h=h+4|0;j=j+-4|0}while(h>>>0>>0);m=w;h=l}else{m=w;h=l}}else m=w}else{x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,s|0,g|0,k[f>>2]|0)|0;A=x;x=0;if(A&1){t=8;break}h=(k[f>>2]|0)+(g-s<<2)|0;k[f>>2]=h;m=w}e:do if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46){j=g;break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,w|0,h|0)|0;A=x;x=0;if(A&1){t=4;break}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=j;g=g+1|0;if(g>>>0>=c>>>0)break e}if((t|0)==4){g=Wa()|0;break a}x=0;g=ta(k[(k[u>>2]|0)+12>>2]|0,u|0)|0;A=x;x=0;if(A&1){t=8;break a}A=k[f>>2]|0;h=A+4|0;k[f>>2]=h;k[A>>2]=g;g=j+1|0}while(0);x=0;Ea(k[(k[w>>2]|0)+48>>2]|0,w|0,g|0,c|0,h|0)|0;A=x;x=0;if(A&1)t=8;else{A=(k[f>>2]|0)+(v-g<<2)|0;k[f>>2]=A;k[e>>2]=(b|0)==(c|0)?A:d+(b-a<<2)|0;Sm(z);r=y;return}}while(0);if((t|0)==8)g=Wa()|0;Sm(z);fb(g|0)}function Zp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+352|0;t=z+304|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+308|0;s=z+72|0;h=z+76|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<3)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(4,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(40,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function _p(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+192|0;j=o;a=o+180|0;m=o+160|0;n=o+12|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44212)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+48>>2]&31](h,m,e,n)|0;p=n+(a<<2)|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=cv(j,n,(f|0)==(e|0)?p:n+(f-m<<2)|0,p,c,d)|0;r=o;return p|0}return 0}function $p(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0;C=r;r=r+32|0;v=C+16|0;u=C+12|0;z=C+8|0;w=C+4|0;y=C;m=tn(d)|0;k[z>>2]=m;x=0;z=Aa(37,z|0,44220)|0;t=x;x=0;if(t&1){C=Wa()|0;zm(m)|0;fb(C|0)}zm(m)|0;k[e>>2]=0;t=z+8|0;m=k[b>>2]|0;a:do if((g|0)!=(h|0)){b:while(1){n=m;if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0;n=0}}else m=0;q=(m|0)==0;p=k[c>>2]|0;o=p;do if(p){if((k[p+12>>2]|0)==(k[p+16>>2]|0)?(Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)==-1:0){k[c>>2]=0;o=0;B=12;break}if(!q){B=13;break b}}else B=12;while(0);if((B|0)==12){B=0;if(q){B=13;break}else p=0}c:do if((Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[g>>0]|0,0)|0)<<24>>24==37){p=g+1|0;if((p|0)==(h|0)){B=17;break b}s=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[p>>0]|0,0)|0;switch(s<<24>>24){case 48:case 69:{q=g+2|0;if((q|0)==(h|0)){B=20;break b}g=p;p=Qb[k[(k[z>>2]|0)+36>>2]&63](z,i[q>>0]|0,0)|0;m=s;break}default:{p=s;m=0}}s=k[(k[a>>2]|0)+36>>2]|0;k[w>>2]=n;k[y>>2]=o;k[u>>2]=k[w>>2];k[v>>2]=k[y>>2];s=ac[s&15](a,u,v,d,e,f,p,m)|0;k[b>>2]=s;g=g+2|0}else{n=i[g>>0]|0;if(n<<24>>24>-1?(A=k[t>>2]|0,(j[A+(n<<24>>24<<1)>>1]&8192)!=0):0){do{g=g+1|0;if((g|0)==(h|0)){g=h;break}n=i[g>>0]|0;if(n<<24>>24<=-1)break}while((j[A+(n<<24>>24<<1)>>1]&8192)!=0);n=p;while(1){if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;o=(m|0)==0;do if(p){if((k[p+12>>2]|0)!=(k[p+16>>2]|0))if(o){s=n;break}else break c;if((Ob[k[(k[p>>2]|0)+36>>2]&127](p)|0)!=-1)if(o^(n|0)==0){s=n;p=n;break}else break c;else{k[c>>2]=0;n=0;B=39;break}}else B=39;while(0);if((B|0)==39){B=0;if(o)break c;else{s=n;p=0}}o=m+12|0;n=k[o>>2]|0;q=m+16|0;if((n|0)==(k[q>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;if((n&255)<<24>>24<=-1)break c;if(!(j[(k[t>>2]|0)+(n<<24>>24<<1)>>1]&8192))break c;n=k[o>>2]|0;if((n|0)==(k[q>>2]|0)){Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;n=s;continue}else{k[o>>2]=n+1;n=s;continue}}}o=m+12|0;n=k[o>>2]|0;p=m+16|0;if((n|0)==(k[p>>2]|0))n=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else n=l[n>>0]|0;s=Vb[k[(k[z>>2]|0)+12>>2]&63](z,n&255)|0;if(s<<24>>24!=(Vb[k[(k[z>>2]|0)+12>>2]&63](z,i[g>>0]|0)|0)<<24>>24){B=57;break b}n=k[o>>2]|0;if((n|0)==(k[p>>2]|0))Ob[k[(k[m>>2]|0)+40>>2]&127](m)|0;else k[o>>2]=n+1;g=g+1|0}while(0);m=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((B|0)==13){k[e>>2]=4;break}else if((B|0)==17){k[e>>2]=4;break}else if((B|0)==20){k[e>>2]=4;break}else if((B|0)==57){k[e>>2]=4;m=k[b>>2]|0;break}}while(0);if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)?(Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0)==-1:0){k[b>>2]=0;m=0}}else m=0;g=(m|0)==0;n=k[c>>2]|0;do if(n){if((k[n+12>>2]|0)==(k[n+16>>2]|0)?(Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0)==-1:0){k[c>>2]=0;B=67;break}if(!g)B=68}else B=67;while(0);if((B|0)==67?g:0)B=68;if((B|0)==68)k[e>>2]=k[e>>2]|2;r=C;return m|0}function aq(a){a=a|0;return}function bq(a){a=a|0;mj(a);return}function cq(a){a=a|0;return 2}function dq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$p(a,i,h,d,e,f,58907,58915)|0;r=g;return a|0}function eq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;n=a+8|0;n=Ob[k[(k[n>>2]|0)+20>>2]&127](n)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];c=i[n>>0]|0;o=(c&1)==0;b=o?n+1|0:k[n+8>>2]|0;c=b+(o?(c&255)>>>1:k[n+4>>2]|0)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=$p(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function fq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];gq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function gq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function hq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];iq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function iq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Hu(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function jq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44220)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];kq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function kq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function lq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44220)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];gq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];iq(a,f+16|0,b,j,e,N);V=28;break}case 99:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+12>>2]&127](V)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];mq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=$p(a,h,j,d,e,f,58915,58923)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=$p(a,h,j,d,e,f,58923,58931)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];nq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];oq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];pq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];qq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];rq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];sq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];tq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=$p(a,h,j,d,e,f,58931,58942)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=$p(a,h,j,d,e,f,58942,58947)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];uq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=$p(a,h,j,d,e,f,58947,58955)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];vq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{V=a+8|0;V=Ob[k[(k[V>>2]|0)+24>>2]&127](V)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[V>>0]|0;c=(g&1)==0;W=c?V+1|0:k[V+8>>2]|0;V=W+(c?(g&255)>>>1:k[V+4>>2]|0)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=$p(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];kq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];wq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];xq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function mq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function nq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function oq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function pq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function qq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function rq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function sq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=e+8|0;a:while(1){e=k[b>>2]|0;do if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0;while(0);e=(e|0)==0;a=k[c>>2]|0;do if(a){if((k[a+12>>2]|0)!=(k[a+16>>2]|0))if(e)break;else break a;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)!=-1)if(e)break;else break a;else{k[c>>2]=0;h=12;break}}else h=12;while(0);if((h|0)==12){h=0;if(e){a=0;break}else a=0}e=k[b>>2]|0;f=k[e+12>>2]|0;if((f|0)==(k[e+16>>2]|0))e=Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0;else e=l[f>>0]|0;if((e&255)<<24>>24<=-1)break;if(!(j[(k[g>>2]|0)+(e<<24>>24<<1)>>1]&8192))break;e=k[b>>2]|0;a=e+12|0;f=k[a>>2]|0;if((f|0)==(k[e+16>>2]|0)){Ob[k[(k[e>>2]|0)+40>>2]&127](e)|0;continue}else{k[a>>2]=f+1;continue}}e=k[b>>2]|0;do if(e){if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;e=0;break}else{e=k[b>>2]|0;break}}else e=0;while(0);e=(e|0)==0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=32;break}if(!e)h=33}else h=32;while(0);if((h|0)==32?e:0)h=33;if((h|0)==33)k[d>>2]=k[d>>2]|2;return}function tq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Hu(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4;while(0);r=m;return}function uq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function vq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function wq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=dv(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function xq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=k[b>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}else a=0;while(0);f=(a|0)==0;a=k[c>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)?(Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1:0){k[c>>2]=0;h=11;break}if(f){g=a;h=13}else h=12}else h=11;while(0);if((h|0)==11)if(f)h=12;else{g=0;h=13}a:do if((h|0)==12)k[d>>2]=k[d>>2]|6;else if((h|0)==13){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=l[f>>0]|0;if((Qb[k[(k[e>>2]|0)+36>>2]&63](e,a&255,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;e=k[f>>2]|0;if((e|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)a=0;else h=21}else{k[f>>2]=e+1;h=21}do if((h|0)==21)if((k[a+12>>2]|0)==(k[a+16>>2]|0))if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}while(0);a=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)?(Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1:0){k[c>>2]=0;h=30;break}if(a)break a}else h=30;while(0);if((h|0)==30?!a:0)break;k[d>>2]=k[d>>2]|2}while(0);return}function yq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;w=r;r=r+32|0;q=w+16|0;p=w+12|0;u=w+8|0;s=w+4|0;t=w;i=tn(d)|0;k[u>>2]=i;x=0;u=Aa(37,u|0,44212)|0;o=x;x=0;if(o&1){w=Wa()|0;zm(i)|0;fb(w|0)}zm(i)|0;k[e>>2]=0;i=k[b>>2]|0;a:do if((g|0)!=(h|0)){b:while(1){l=i;if(i){j=k[i+12>>2]|0;if((j|0)==(k[i+16>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if((j|0)==-1){k[b>>2]=0;i=0;n=1;o=0}else{n=0;o=l}}else{i=0;n=1;o=l}m=k[c>>2]|0;j=m;do if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0))l=Ob[k[(k[m>>2]|0)+36>>2]&127](m)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(n)break;else{v=17;break b}else{k[c>>2]=0;j=0;v=15;break}}else v=15;while(0);if((v|0)==15){v=0;if(n){v=17;break}else m=0}c:do if((Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[g>>2]|0,0)|0)<<24>>24==37){l=g+4|0;if((l|0)==(h|0)){v=21;break b}n=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[l>>2]|0,0)|0;switch(n<<24>>24){case 48:case 69:{m=g+8|0;if((m|0)==(h|0)){v=24;break b}g=l;l=Qb[k[(k[u>>2]|0)+52>>2]&63](u,k[m>>2]|0,0)|0;i=n;break}default:{l=n;i=0}}n=k[(k[a>>2]|0)+36>>2]|0;k[s>>2]=o;k[t>>2]=j;k[p>>2]=k[s>>2];k[q>>2]=k[t>>2];o=ac[n&15](a,p,q,d,e,f,l,i)|0;k[b>>2]=o;g=g+8|0}else{if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0)){l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;o=Vb[k[(k[u>>2]|0)+28>>2]&63](u,j)|0;if((o|0)!=(Vb[k[(k[u>>2]|0)+28>>2]&63](u,k[g>>2]|0)|0)){v=61;break b}j=k[l>>2]|0;if((j|0)==(k[m>>2]|0))Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;else k[l>>2]=j+4;g=g+4|0;break}do{g=g+4|0;if((g|0)==(h|0)){g=h;break}}while(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,k[g>>2]|0)|0);j=m;n=m;while(1){if(i){l=k[i+12>>2]|0;if((l|0)==(k[i+16>>2]|0))l=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else l=k[l>>2]|0;if((l|0)==-1){k[b>>2]=0;m=1;i=0}else m=0}else{m=1;i=0}do if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0))l=Ob[k[(k[n>>2]|0)+36>>2]&127](n)|0;else l=k[l>>2]|0;if((l|0)!=-1)if(m^(j|0)==0){o=j;n=j;break}else break c;else{k[c>>2]=0;j=0;v=44;break}}else v=44;while(0);if((v|0)==44){v=0;if(m)break c;else{o=j;n=0}}l=i+12|0;j=k[l>>2]|0;m=i+16|0;if((j|0)==(k[m>>2]|0))j=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else j=k[j>>2]|0;if(!(Qb[k[(k[u>>2]|0)+12>>2]&63](u,8192,j)|0))break c;j=k[l>>2]|0;if((j|0)==(k[m>>2]|0)){Ob[k[(k[i>>2]|0)+40>>2]&127](i)|0;j=o;continue}else{k[l>>2]=j+4;j=o;continue}}}while(0);i=k[b>>2]|0;if(!((g|0)!=(h|0)&(k[e>>2]|0)==0))break a}if((v|0)==17){k[e>>2]=4;break}else if((v|0)==21){k[e>>2]=4;break}else if((v|0)==24){k[e>>2]=4;break}else if((v|0)==61){k[e>>2]=4;i=k[b>>2]|0;break}}while(0);if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;l=1}else l=0}else{i=0;l=1}g=k[c>>2]|0;do if(g){j=k[g+12>>2]|0;if((j|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[j>>2]|0;if((g|0)!=-1)if(l)break;else{v=76;break}else{k[c>>2]=0;v=74;break}}else v=74;while(0);if((v|0)==74?l:0)v=76;if((v|0)==76)k[e>>2]=k[e>>2]|2;r=w;return i|0}function zq(a){a=a|0;return}function Aq(a){a=a|0;mj(a);return}function Bq(a){a=a|0;return 2}function Cq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=yq(a,i,h,d,e,f,44788,44820)|0;r=g;return a|0}function Dq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;g=r;r=r+16|0;h=g+12|0;j=g+8|0;m=g+4|0;l=g;p=a+8|0;p=Ob[k[(k[p>>2]|0)+20>>2]&127](p)|0;k[m>>2]=k[b>>2];k[l>>2]=k[c>>2];n=i[p>>0]|0;o=(n&1)==0;c=p+4|0;b=o?c:k[p+8>>2]|0;c=b+((o?(n&255)>>>1:k[c>>2]|0)<<2)|0;k[j>>2]=k[m>>2];k[h>>2]=k[l>>2];a=yq(a,j,h,d,e,f,b,c)|0;r=g;return a|0}function Eq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Fq(a,f+24|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Fq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[k[a>>2]>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+168|0,f,e,0)|0)-a|0;if((c|0)<168)k[b>>2]=((c|0)/12|0|0)%7|0;r=g;return}function Gq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Hq(a,f+16|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Hq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=r;r=r+16|0;h=g+4|0;i=g;a=a+8|0;a=Ob[k[(k[a>>2]|0)+4>>2]&127](a)|0;k[i>>2]=k[d>>2];k[h>>2]=k[i>>2];c=(Su(c,h,a,a+288|0,f,e,0)|0)-a|0;if((c|0)<288)k[b>>2]=((c|0)/12|0|0)%12|0;r=g;return}function Iq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j+4|0;i=j;d=tn(d)|0;k[g>>2]=d;x=0;g=Aa(37,g|0,44212)|0;l=x;x=0;if(l&1){l=Wa()|0;zm(d)|0;fb(l|0)}else{zm(d)|0;k[i>>2]=k[c>>2];k[h>>2]=k[i>>2];Jq(a,f+20|0,b,h,e,g);r=j;return k[b>>2]|0}return 0}function Jq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a+-69|0)>>>0<31?a+1900|0:a;k[b>>2]=a+-1900}r=g;return}function Kq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;U=r;r=r+144|0;j=U+132|0;h=U+116|0;N=U+128|0;w=U+124|0;I=U+120|0;O=U+112|0;P=U+108|0;Q=U+104|0;R=U+100|0;S=U+96|0;T=U+92|0;l=U+88|0;m=U+84|0;n=U+80|0;o=U+76|0;p=U+72|0;q=U+68|0;s=U+64|0;t=U+60|0;u=U+56|0;v=U+52|0;y=U+48|0;z=U+44|0;A=U+40|0;B=U+36|0;C=U+32|0;D=U+28|0;E=U+24|0;F=U+20|0;G=U+16|0;H=U+12|0;J=U+8|0;K=U+4|0;L=U;k[e>>2]=0;M=tn(d)|0;k[N>>2]=M;x=0;N=Aa(37,N|0,44212)|0;W=x;x=0;if(W&1){W=Wa()|0;zm(M)|0;fb(W|0)}zm(M)|0;do switch(g<<24>>24|0){case 65:case 97:{k[w>>2]=k[c>>2];k[j>>2]=k[w>>2];Fq(a,f+24|0,b,j,e,N);V=28;break}case 104:case 66:case 98:{k[I>>2]=k[c>>2];k[j>>2]=k[I>>2];Hq(a,f+16|0,b,j,e,N);V=28;break}case 99:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+12>>2]&127](W)|0;k[O>>2]=k[b>>2];k[P>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[O>>2];k[j>>2]=k[P>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 101:case 100:{k[Q>>2]=k[c>>2];k[j>>2]=k[Q>>2];Lq(a,f+12|0,b,j,e,N);V=28;break}case 68:{k[R>>2]=k[b>>2];k[S>>2]=k[c>>2];k[h>>2]=k[R>>2];k[j>>2]=k[S>>2];V=yq(a,h,j,d,e,f,44820,44852)|0;k[b>>2]=V;V=28;break}case 70:{k[T>>2]=k[b>>2];k[l>>2]=k[c>>2];k[h>>2]=k[T>>2];k[j>>2]=k[l>>2];V=yq(a,h,j,d,e,f,44852,44884)|0;k[b>>2]=V;V=28;break}case 72:{k[m>>2]=k[c>>2];k[j>>2]=k[m>>2];Mq(a,f+8|0,b,j,e,N);V=28;break}case 73:{k[n>>2]=k[c>>2];k[j>>2]=k[n>>2];Nq(a,f+8|0,b,j,e,N);V=28;break}case 106:{k[o>>2]=k[c>>2];k[j>>2]=k[o>>2];Oq(a,f+28|0,b,j,e,N);V=28;break}case 109:{k[p>>2]=k[c>>2];k[j>>2]=k[p>>2];Pq(a,f+16|0,b,j,e,N);V=28;break}case 77:{k[q>>2]=k[c>>2];k[j>>2]=k[q>>2];Qq(a,f+4|0,b,j,e,N);V=28;break}case 116:case 110:{k[s>>2]=k[c>>2];k[j>>2]=k[s>>2];Rq(a,b,j,e,N);V=28;break}case 112:{k[t>>2]=k[c>>2];k[j>>2]=k[t>>2];Sq(a,f+8|0,b,j,e,N);V=28;break}case 114:{k[u>>2]=k[b>>2];k[v>>2]=k[c>>2];k[h>>2]=k[u>>2];k[j>>2]=k[v>>2];V=yq(a,h,j,d,e,f,44884,44928)|0;k[b>>2]=V;V=28;break}case 82:{k[y>>2]=k[b>>2];k[z>>2]=k[c>>2];k[h>>2]=k[y>>2];k[j>>2]=k[z>>2];V=yq(a,h,j,d,e,f,44928,44948)|0;k[b>>2]=V;V=28;break}case 83:{k[A>>2]=k[c>>2];k[j>>2]=k[A>>2];Tq(a,f,b,j,e,N);V=28;break}case 84:{k[B>>2]=k[b>>2];k[C>>2]=k[c>>2];k[h>>2]=k[B>>2];k[j>>2]=k[C>>2];V=yq(a,h,j,d,e,f,44948,44980)|0;k[b>>2]=V;V=28;break}case 119:{k[D>>2]=k[c>>2];k[j>>2]=k[D>>2];Uq(a,f+24|0,b,j,e,N);V=28;break}case 120:{W=k[(k[a>>2]|0)+20>>2]|0;k[E>>2]=k[b>>2];k[F>>2]=k[c>>2];k[h>>2]=k[E>>2];k[j>>2]=k[F>>2];h=Nb[W&63](a,h,j,d,e,f)|0;break}case 88:{W=a+8|0;W=Ob[k[(k[W>>2]|0)+24>>2]&127](W)|0;k[G>>2]=k[b>>2];k[H>>2]=k[c>>2];g=i[W>>0]|0;c=(g&1)==0;V=W+4|0;W=c?V:k[W+8>>2]|0;V=W+((c?(g&255)>>>1:k[V>>2]|0)<<2)|0;k[h>>2]=k[G>>2];k[j>>2]=k[H>>2];V=yq(a,h,j,d,e,f,W,V)|0;k[b>>2]=V;V=28;break}case 121:{k[J>>2]=k[c>>2];k[j>>2]=k[J>>2];Jq(a,f+20|0,b,j,e,N);V=28;break}case 89:{k[K>>2]=k[c>>2];k[j>>2]=k[K>>2];Vq(a,f+20|0,b,j,e,N);V=28;break}case 37:{k[L>>2]=k[c>>2];k[j>>2]=k[L>>2];Wq(a,b,j,e,N);V=28;break}default:{k[e>>2]=k[e>>2]|4;V=28}}while(0);if((V|0)==28)h=k[b>>2]|0;r=U;return h|0}function Lq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<31&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Mq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<24&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Nq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a+-1|0)>>>0<12&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Oq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,3)|0;c=k[e>>2]|0;if((a|0)<366&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Pq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<13&(c&4|0)==0)k[b>>2]=a+-1;else k[e>>2]=c|4;r=g;return}function Qq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<60&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Rq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:while(1){a=k[b>>2]|0;do if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1;while(0);f=k[c>>2]|0;do if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){g=f;break}else{g=f;break a}else{k[c>>2]=0;h=15;break}}else h=15;while(0);if((h|0)==15){h=0;if(g){g=0;break}else g=0}a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if(!(Qb[k[(k[e>>2]|0)+12>>2]&63](e,8192,a)|0))break;a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;continue}else{k[f>>2]=g+4;continue}}a=k[b>>2]|0;do if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}else f=1;while(0);do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0))a=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break;else{h=39;break}else{k[c>>2]=0;h=37;break}}else h=37;while(0);if((h|0)==37?f:0)h=39;if((h|0)==39)k[d>>2]=k[d>>2]|2;return}function Sq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0;m=r;r=r+16|0;h=m+4|0;j=m;l=a+8|0;l=Ob[k[(k[l>>2]|0)+8>>2]&127](l)|0;a=i[l>>0]|0;if(!(a&1))g=(a&255)>>>1;else g=k[l+4>>2]|0;a=i[l+12>>0]|0;if(!(a&1))a=(a&255)>>>1;else a=k[l+16>>2]|0;do if((g|0)!=(0-a|0)){k[j>>2]=k[d>>2];k[h>>2]=k[j>>2];a=Su(c,h,l,l+24|0,f,e,0)|0;g=k[b>>2]|0;if((a|0)==(l|0)&(g|0)==12){k[b>>2]=0;break}if((g|0)<12&(a-l|0)==12)k[b>>2]=g+12}else k[e>>2]=k[e>>2]|4;while(0);r=m;return}function Tq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,2)|0;c=k[e>>2]|0;if((a|0)<61&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Uq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,1)|0;c=k[e>>2]|0;if((a|0)<7&(c&4|0)==0)k[b>>2]=a;else k[e>>2]=c|4;r=g;return}function Vq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=r;r=r+16|0;a=g+4|0;h=g;k[h>>2]=k[d>>2];k[a>>2]=k[h>>2];a=ev(c,a,e,f,4)|0;if(!(k[e>>2]&4))k[b>>2]=a+-1900;r=g;return}function Wq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;a=k[b>>2]|0;do if(a){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;g=1;break}else{g=(k[b>>2]|0)==0;break}}else g=1;while(0);f=k[c>>2]|0;do if(f){a=k[f+12>>2]|0;if((a|0)==(k[f+16>>2]|0))a=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(g){h=f;i=17;break}else{i=16;break}else{k[c>>2]=0;i=14;break}}else i=14;while(0);if((i|0)==14)if(g)i=16;else{h=0;i=17}a:do if((i|0)==16)k[d>>2]=k[d>>2]|6;else if((i|0)==17){a=k[b>>2]|0;f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((Qb[k[(k[e>>2]|0)+52>>2]&63](e,a,0)|0)<<24>>24!=37){k[d>>2]=k[d>>2]|4;break}a=k[b>>2]|0;f=a+12|0;g=k[f>>2]|0;if((g|0)==(k[a+16>>2]|0)){Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;a=k[b>>2]|0;if(!a)f=1;else i=25}else{k[f>>2]=g+4;i=25}do if((i|0)==25){f=k[a+12>>2]|0;if((f|0)==(k[a+16>>2]|0))a=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;else a=k[f>>2]|0;if((a|0)==-1){k[b>>2]=0;f=1;break}else{f=(k[b>>2]|0)==0;break}}while(0);do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0))a=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else a=k[a>>2]|0;if((a|0)!=-1)if(f)break a;else break;else{k[c>>2]=0;i=37;break}}else i=37;while(0);if((i|0)==37?!f:0)break;k[d>>2]=k[d>>2]|2}while(0);return}function Xq(a){a=a|0;Yq(a+8|0);return}function Yq(a){a=a|0;var b=0,c=0,d=0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}while(0);d=Wa(0)|0;oc(d)}function Zq(a){a=a|0;Yq(a+8|0);mj(a);return}function _q(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=r;r=r+112|0;h=j+4|0;c=j;k[c>>2]=h+100;$q(a+8|0,h,c,e,f,g);e=k[c>>2]|0;c=k[b>>2]|0;if((h|0)!=(e|0))do{g=i[h>>0]|0;do if(c){d=c+24|0;f=k[d>>2]|0;if((f|0)==(k[c+28>>2]|0)){b=(Vb[k[(k[c>>2]|0)+52>>2]&63](c,g&255)|0)==-1;c=b?0:c;break}else{k[d>>2]=f+1;i[f>>0]=g;break}}else c=0;while(0);h=h+1|0}while((h|0)!=(e|0));r=j;return c|0}function $q(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0;l=r;r=r+16|0;j=l;i[j>>0]=37;g=j+1|0;i[g>>0]=e;h=j+2|0;i[h>>0]=f;i[j+3>>0]=0;if(f<<24>>24){i[g>>0]=f;i[h>>0]=e}a=b+(_a(b|0,(k[c>>2]|0)-b|0,j|0,d|0,k[a>>2]|0)|0)|0;k[c>>2]=a;r=l;return}function ar(a){a=a|0;Yq(a+8|0);return}function br(a){a=a|0;Yq(a+8|0);mj(a);return}function cr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=r;r=r+416|0;d=h+8|0;c=h;k[c>>2]=d+400;dr(a+8|0,d,c,e,f,g);a=k[c>>2]|0;c=k[b>>2]|0;if((d|0)!=(a|0)){e=d;do{d=k[e>>2]|0;if(!c)c=0;else{f=c+24|0;g=k[f>>2]|0;if((g|0)==(k[c+28>>2]|0))d=Vb[k[(k[c>>2]|0)+52>>2]&63](c,d)|0;else{k[f>>2]=g+4;k[g>>2]=d}c=(d|0)==-1?0:c}e=e+4|0}while((e|0)!=(a|0))}r=h;return c|0}function dr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+128|0;j=g+16|0;l=g+12|0;h=g;i=g+8|0;k[l>>2]=j+100;$q(a,j,l,d,e,f);e=h;k[e>>2]=0;k[e+4>>2]=0;k[i>>2]=j;e=(k[c>>2]|0)-b>>2;f=Ak(k[a>>2]|0)|0;x=0;e=Ea(18,b|0,i|0,e|0,h|0)|0;a=x;x=0;if(a&1){e=Wa()|0;if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}fb(e|0)}if((f|0)!=0?(x=0,ta(75,f|0)|0,l=x,x=0,l&1):0){l=Wa(0)|0;oc(l)}if((e|0)==-1)$r(58955);else{k[c>>2]=b+(e<<2);r=g;return}}function er(a){a=a|0;return}function fr(a){a=a|0;mj(a);return}function gr(a){a=a|0;return 127}function hr(a){a=a|0;return 127}function ir(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function jr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function kr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function lr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function mr(a){a=a|0;return 0}function nr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function or(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function pr(a){a=a|0;return}function qr(a){a=a|0;mj(a);return}function rr(a){a=a|0;return 127}function sr(a){a=a|0;return 127}function tr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function ur(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function vr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function wr(a,b){a=a|0;b=b|0;Rm(a,1,45);return}function xr(a){a=a|0;return 0}function yr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function zr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Ar(a){a=a|0;return}function Br(a){a=a|0;mj(a);return}function Cr(a){a=a|0;return 2147483647}function Dr(a){a=a|0;return 2147483647}function Er(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Fr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Gr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Hr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Ir(a){a=a|0;return 0}function Jr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Kr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Lr(a){a=a|0;return}function Mr(a){a=a|0;mj(a);return}function Nr(a){a=a|0;return 2147483647}function Or(a){a=a|0;return 2147483647}function Pr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Qr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Rr(a,b){a=a|0;b=b|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function Sr(a,b){a=a|0;b=b|0;dn(a,1,45);return}function Tr(a){a=a|0;return 0}function Ur(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Vr(a,b){a=a|0;b=b|0;i[a>>0]=2;i[a+1>>0]=3;i[a+2>>0]=0;i[a+3>>0]=4;return}function Wr(a){a=a|0;return}function Xr(a){a=a|0;mj(a);return}function Yr(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+240|0;z=B+24|0;A=B;a=B+136|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+134|0;j=B+4|0;w=B+124|0;k[D>>2]=a;E=D+4|0;k[E>>2]=189;l=a+100|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44220)|0;v=x;x=0;a:do if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[z>>2]=k[j>>2],m=ua(1,b|0,z|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do if(m){x=0;Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,58976,58986,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>98){a=Pl(a+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+10|0;v=w;if(l>>>0>>0){m=w+1|0;d=m+1|0;e=d+1|0;n=e+1|0;o=n+1|0;p=o+1|0;q=p+1|0;s=q+1|0;t=s+1|0;do{j=i[l>>0]|0;do if((i[w>>0]|0)!=j<<24>>24)if((i[m>>0]|0)!=j<<24>>24)if((i[d>>0]|0)!=j<<24>>24)if((i[e>>0]|0)!=j<<24>>24)if((i[n>>0]|0)==j<<24>>24)j=n;else{if((i[o>>0]|0)==j<<24>>24){j=o;break}if((i[p>>0]|0)==j<<24>>24){j=p;break}if((i[q>>0]|0)==j<<24>>24){j=q;break}if((i[s>>0]|0)==j<<24>>24){j=s;break}j=(i[t>>0]|0)==j<<24>>24?t:u}else j=e;else j=d;else j=m;else j=w;while(0);i[a>>0]=i[58976+(j-v)>>0]|0;l=l+1|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}while(0);a=k[b>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0;while(0);h=(a|0)==0;a=k[c>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}if((a|0)==-1){k[c>>2]=0;G=37;break}}if(!h)G=38}else G=37;while(0);if((G|0)==37?h:0)G=38;if((G|0)==38)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[E>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10;while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)F=j;else{h=k[E>>2]|0;G=45}}else{j=Wa()|0;k[D>>2]=0;h=189;G=45}if((G|0)==45){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else F=j}fb(F|0);return 0}function Zr(a){a=a|0;return}function _r(a,b,c,d,e,f,g,h,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;ba=r;r=r+512|0;P=ba+88|0;t=ba+96|0;da=ba+80|0;T=ba+72|0;S=ba+68|0;U=ba+500|0;Q=ba+497|0;V=ba+496|0;Y=ba+56|0;aa=ba+44|0;_=ba+32|0;Z=ba+20|0;$=ba+8|0;R=ba+4|0;X=ba;k[P>>2]=o;k[da>>2]=t;ca=da+4|0;k[ca>>2]=189;k[T>>2]=t;k[S>>2]=t+400;k[Y>>2]=0;k[Y+4>>2]=0;k[Y+8>>2]=0;k[aa>>2]=0;k[aa+4>>2]=0;k[aa+8>>2]=0;k[_>>2]=0;k[_+4>>2]=0;k[_+8>>2]=0;k[Z>>2]=0;k[Z+4>>2]=0;k[Z+8>>2]=0;k[$>>2]=0;k[$+4>>2]=0;k[$+8>>2]=0;x=0;za(1,c|0,d|0,U|0,Q|0,V|0,Y|0,aa|0,_|0,Z|0,R|0);O=x;x=0;a:do if(O&1)h=Wa()|0;else{k[n>>2]=k[m>>2];I=h+8|0;J=_+4|0;K=Z+4|0;L=Z+8|0;M=Z+1|0;N=_+8|0;O=_+1|0;z=(e&512|0)!=0;A=aa+8|0;B=aa+1|0;C=aa+4|0;D=$+4|0;E=$+8|0;F=$+1|0;G=U+3|0;H=Y+4|0;y=0;s=0;b:while(1){o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);o=(o|0)==0;h=k[b>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(o){w=h;break}else{W=235;break b}x=0;c=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=24;break b}if((c|0)!=-1)if(o){w=h;break}else{W=235;break b}else{k[b>>2]=0;W=15;break}}else W=15;while(0);if((W|0)==15){W=0;if(o){W=235;break}else w=0}c:do switch(i[U+y>>0]|0){case 1:{if((y|0)!=3){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1){W=40;break b}if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192)){W=40;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=24;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=24;break b}else{o=w;d=w;W=42}}break}case 0:{if((y|0)!=3){o=w;d=w;W=42}break}case 3:{h=i[_>>0]|0;o=(h&1)==0?(h&255)>>>1:k[J>>2]|0;c=i[Z>>0]|0;d=(c&1)==0?(c&255)>>>1:k[K>>2]|0;if((o|0)!=(0-d|0)){if(!o){o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[Z>>0]|0}else{o=l[h>>0]|0;h=c}if((o&255)<<24>>24!=(i[((h&1)==0?M:k[L>>2]|0)>>0]|0))break c;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s;break c}e=k[a>>2]|0;p=k[e+12>>2]|0;c=k[e+16>>2]|0;o=(p|0)==(c|0);if(!d){if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}h=i[_>>0]|0}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){i[g>>0]=1;break c}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(o){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}c=k[a>>2]|0;h=i[_>>0]|0;e=c;p=k[c+12>>2]|0;c=k[c+16>>2]|0}else o=l[p>>0]|0;d=e+12|0;c=(p|0)==(c|0);if((o&255)<<24>>24==(i[((h&1)==0?O:k[N>>2]|0)>>0]|0)){if(c){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[d>>2]=p+1;w=i[_>>0]|0;s=((w&1)==0?(w&255)>>>1:k[J>>2]|0)>>>0>1?_:s;break c}if(c){x=0;o=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[p>>0]|0;if((o&255)<<24>>24!=(i[((i[Z>>0]&1)==0?M:k[L>>2]|0)>>0]|0)){W=104;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;i[g>>0]=1;w=i[Z>>0]|0;s=((w&1)==0?(w&255)>>>1:k[K>>2]|0)>>>0>1?Z:s}break}case 2:{if(!(y>>>0<2|(s|0)!=0)?!(z|(y|0)==2&(i[G>>0]|0)!=0):0){s=0;break c}u=i[aa>>0]|0;o=(u&1)==0;v=k[A>>2]|0;c=o?B:v;q=c;d:do if((y|0)!=0?(l[U+(y+-1)>>0]|0)<2:0){p=o?(u&255)>>>1:k[C>>2]|0;d=c+p|0;e=k[I>>2]|0;e:do if(!p)h=q;else{p=c;h=q;do{o=i[p>>0]|0;if(o<<24>>24<=-1)break e;if(!(j[e+(o<<24>>24<<1)>>1]&8192))break e;p=p+1|0;h=p}while((p|0)!=(d|0))}while(0);d=h-q|0;e=i[$>>0]|0;o=(e&1)==0;e=o?(e&255)>>>1:k[D>>2]|0;if(e>>>0>=d>>>0){o=o?F:k[E>>2]|0;p=o+e|0;if((h|0)!=(q|0)){o=o+(e-d)|0;while(1){if((i[o>>0]|0)!=(i[c>>0]|0)){h=q;break d}o=o+1|0;if((o|0)==(p|0))break;else c=c+1|0}}}else h=q}else h=q;while(0);o=(u&1)==0;o=(o?B:v)+(o?(u&255)>>>1:k[C>>2]|0)|0;f:do if((h|0)!=(o|0)){e=w;d=w;o=h;while(1){h=k[a>>2]|0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0;while(0);c=(h|0)==0;do if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){h=e;p=d;break}else break f;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=21;break b}if((h|0)!=-1)if(c^(e|0)==0){h=e;p=e;break}else break f;else{k[b>>2]=0;h=0;W=131;break}}else{h=e;W=131}while(0);if((W|0)==131){W=0;if(c)break f;else p=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else c=l[d>>0]|0;if((c&255)<<24>>24!=(i[o>>0]|0))break f;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=21;break b}}else k[d>>2]=e+1;o=o+1|0;c=i[aa>>0]|0;w=(c&1)==0;c=(w?B:k[A>>2]|0)+(w?(c&255)>>>1:k[C>>2]|0)|0;if((o|0)==(c|0)){o=c;break}else{e=h;d=p}}}while(0);if(z?(w=i[aa>>0]|0,v=(w&1)==0,(o|0)!=((v?B:k[A>>2]|0)+(v?(w&255)>>>1:k[C>>2]|0)|0)):0){W=143;break b}break}case 4:{q=i[V>>0]|0;h=w;e=w;o=0;g:while(1){c=k[a>>2]|0;do if(c){if((k[c+12>>2]|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)==-1){k[a>>2]=0;c=0;break}else{c=k[a>>2]|0;break}}}else c=0;while(0);d=(c|0)==0;do if(e){if((k[e+12>>2]|0)!=(k[e+16>>2]|0))if(d){p=h;break}else{d=h;break g}x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){W=23;break b}if((c|0)!=-1)if(d^(h|0)==0){p=h;e=h;break}else{d=h;break g}else{k[b>>2]=0;h=0;W=156;break}}else W=156;while(0);if((W|0)==156){W=0;if(d){d=h;break}else{p=h;e=0}}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}}else h=l[c>>0]|0;c=h&255;if(c<<24>>24>-1?(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)!=0:0){h=k[n>>2]|0;if((h|0)==(k[P>>2]|0)){x=0;Fa(12,m|0,n|0,P|0);w=x;x=0;if(w&1){W=23;break b}h=k[n>>2]|0}k[n>>2]=h+1;i[h>>0]=c;o=o+1|0}else{w=i[Y>>0]|0;if(!(c<<24>>24==q<<24>>24&((o|0)!=0?(((w&1)==0?(w&255)>>>1:k[H>>2]|0)|0)!=0:0))){d=p;break}if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=23;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w;o=0}h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=23;break b}else{h=p;continue}}else{k[c>>2]=d+1;h=p;continue}}if((o|0)!=0?(k[da>>2]|0)!=(t|0):0){if((t|0)==(k[S>>2]|0)){x=0;Fa(13,da|0,T|0,S|0);w=x;x=0;if(w&1){W=24;break b}t=k[T>>2]|0}w=t+4|0;k[T>>2]=w;k[t>>2]=o;t=w}p=k[R>>2]|0;if((p|0)>0){o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);o=(o|0)==0;do if(d){if((k[d+12>>2]|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=24;break b}if((h|0)==-1){k[b>>2]=0;W=193;break}}if(!o){W=198;break b}}else W=193;while(0);if((W|0)==193){W=0;if(o){W=198;break b}else d=0}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24!=(i[Q>>0]|0)){W=198;break b}o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=24;break b}}else k[h>>2]=c+1;if((p|0)>0){e=d;c=d;q=p;while(1){o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);h=(o|0)==0;do if(c){if((k[c+12>>2]|0)!=(k[c+16>>2]|0))if(h){o=e;p=c;break}else{W=222;break b}x=0;o=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}if((o|0)!=-1)if(h^(e|0)==0){o=e;p=e;break}else{W=222;break b}else{k[b>>2]=0;o=0;W=215;break}}else{o=e;W=215}while(0);if((W|0)==215){W=0;if(h){W=222;break b}else p=0}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;if((h&255)<<24>>24<=-1){W=222;break b}if(!(j[(k[I>>2]|0)+(h<<24>>24<<1)>>1]&2048)){W=222;break b}if((k[n>>2]|0)==(k[P>>2]|0)?(x=0,Fa(12,m|0,n|0,P|0),w=x,x=0,w&1):0){W=22;break b}h=k[a>>2]|0;c=k[h+12>>2]|0;if((c|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=22;break b}}else h=l[c>>0]|0;c=k[n>>2]|0;k[n>>2]=c+1;i[c>>0]=h;h=q;q=q+-1|0;k[R>>2]=q;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){W=22;break b}}else k[d>>2]=e+1;if((h|0)<=1)break;else{e=o;c=p}}}}if((k[n>>2]|0)==(k[m>>2]|0)){W=233;break b}break}default:{}}while(0);h:do if((W|0)==42)while(1){W=0;h=k[a>>2]|0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;h=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)==-1){k[a>>2]=0;h=0;break}else{h=k[a>>2]|0;break}}}else h=0;while(0);c=(h|0)==0;do if(d){if((k[d+12>>2]|0)!=(k[d+16>>2]|0))if(c){e=o;break}else break h;x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){W=20;break b}if((h|0)!=-1)if(c^(o|0)==0){e=o;d=o;break}else break h;else{k[b>>2]=0;o=0;W=54;break}}else W=54;while(0);if((W|0)==54){W=0;if(c)break h;else{e=o;d=0}}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){W=20;break b}}else o=l[h>>0]|0;if((o&255)<<24>>24<=-1)break h;if(!(j[(k[I>>2]|0)+(o<<24>>24<<1)>>1]&8192))break h;o=k[a>>2]|0;h=o+12|0;c=k[h>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+40>>2]|0,o|0)|0;W=x;x=0;if(W&1){W=20;break b}}else{k[h>>2]=c+1;o=l[c>>0]|0}x=0;ra(67,$|0,o&255|0);W=x;x=0;if(W&1){W=20;break b}else{o=e;W=42}}while(0);y=y+1|0;if(y>>>0>=4){W=235;break}}i:switch(W|0){case 20:{h=Wa()|0;break a}case 21:{h=Wa()|0;break a}case 22:{h=Wa()|0;break a}case 23:{h=Wa()|0;break a}case 24:{h=Wa()|0;break a}case 40:{k[f>>2]=k[f>>2]|4;h=0;break}case 104:{k[f>>2]=k[f>>2]|4;h=0;break}case 143:{k[f>>2]=k[f>>2]|4;h=0;break}case 198:{k[f>>2]=k[f>>2]|4;h=0;break}case 222:{k[f>>2]=k[f>>2]|4;h=0;break}case 233:{k[f>>2]=k[f>>2]|4;h=0;break}case 235:{j:do if(s){e=s+1|0;p=s+8|0;q=s+4|0;c=1;k:while(1){o=i[s>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[q>>2]|0;if(c>>>0>=o>>>0)break j;o=k[a>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[a>>2]=0;o=0;break}else{o=k[a>>2]|0;break}}}else o=0;while(0);h=(o|0)==0;o=k[b>>2]|0;do if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break k}if((o|0)==-1){k[b>>2]=0;W=253;break}}if(!h){W=260;break k}}else W=253;while(0);if((W|0)==253?(W=0,h):0){W=260;break}o=k[a>>2]|0;h=k[o+12>>2]|0;if((h|0)==(k[o+16>>2]|0)){x=0;o=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;n=x;x=0;if(n&1){W=19;break}}else o=l[h>>0]|0;if(!(i[s>>0]&1))h=e;else h=k[p>>2]|0;if((o&255)<<24>>24!=(i[h+c>>0]|0)){W=260;break}o=c+1|0;h=k[a>>2]|0;c=h+12|0;d=k[c>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;ta(k[(k[h>>2]|0)+40>>2]|0,h|0)|0;n=x;x=0;if(n&1){W=19;break}else{c=o;continue}}else{k[c>>2]=d+1;c=o;continue}}if((W|0)==19){h=Wa()|0;break a}else if((W|0)==260){k[f>>2]=k[f>>2]|4;h=0;break i}}while(0);o=k[da>>2]|0;if((o|0)!=(t|0)?(k[X>>2]=0,cs(Y,o,t,X),(k[X>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;h=0}else h=1;break}}Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}r=ba;return h|0}while(0);Sm($);Sm(Z);Sm(_);Sm(aa);Sm(Y);o=k[da>>2]|0;k[da>>2]=0;if((o|0)!=0?(x=0,qa(k[ca>>2]|0,o|0),da=x,x=0,da&1):0){da=Wa(0)|0;oc(da)}fb(h|0);return 0}function $r(a){a=a|0;var b=0;b=Va(8)|0;x=0;ra(90,b|0,a|0);a=x;x=0;if(a&1){a=Wa()|0;Ua(b|0);fb(a|0)}else ub(b|0,616,80)}function as(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+144|0;h=v+24|0;a=v+32|0;w=v+16|0;q=v+8|0;n=v+4|0;o=v+28|0;j=v;k[w>>2]=a;A=w+4|0;k[A>>2]=189;l=a+100|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44220)|0;a=x;x=0;a:do if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(1,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,w|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(67,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+28>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[w>>2]|0;l=k[q>>2]|0;h=l+-1|0;b:do if(a>>>0>>0)do{if((i[a>>0]|0)!=j<<24>>24)break b;a=a+1|0}while(a>>>0>>0);while(0);x=0;va(32,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a;if((a|0)==-1){k[b>>2]=0;a=0;break}else{a=k[b>>2]|0;break}}}else a=0;while(0);h=(a|0)==0;do if(s){if((k[t+12>>2]|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a;if((a|0)==-1){k[c>>2]=0;z=29;break}}if(!h)z=30}else z=29;while(0);if((z|0)==29?h:0)z=30;if((z|0)==30)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}while(0);h=Wa()|0;zm(u)|0;a=k[w>>2]|0;k[w>>2]=0;if(!a)y=h;else z=36}else{h=Wa()|0;k[w>>2]=0;z=36}if((z|0)==36){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else y=h}fb(y|0);return 0}function bs(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do if(a){a=Ss(b,43828)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;Sm(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43764)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[d>>0]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[e>>0]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=y;r=z;return}function cs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i[a>>0]|0;g=a+4|0;f=k[g>>2]|0;a:do if(((e&1)==0?(e&255)>>>1:f)|0){if((b|0)!=(c|0)){e=c+-4|0;if(e>>>0>b>>>0){f=b;do{h=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=h;f=f+4|0;e=e+-4|0}while(f>>>0>>0)}e=i[a>>0]|0;f=k[g>>2]|0}h=(e&1)==0;g=h?a+1|0:k[a+8>>2]|0;c=c+-4|0;a=g+(h?(e&255)>>>1:f)|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;b:do if(c>>>0>b>>>0){while(1){if(!e?(f<<24>>24|0)!=(k[b>>2]|0):0)break;g=(a-g|0)>1?g+1|0:g;b=b+4|0;f=i[g>>0]|0;e=f<<24>>24<1|f<<24>>24==127;if(b>>>0>=c>>>0)break b}k[d>>2]=4;break a}while(0);if(!e?((k[c>>2]|0)+-1|0)>>>0>=f<<24>>24>>>0:0)k[d>>2]=4}while(0);return}function ds(a){a=a|0;return}function es(a){a=a|0;mj(a);return}function fs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;B=r;r=r+576|0;w=B+424|0;A=B;a=B+24|0;D=B+16|0;y=B+12|0;C=B+8|0;n=B+464|0;j=B+4|0;z=B+468|0;k[D>>2]=a;F=D+4|0;k[F>>2]=189;l=a+400|0;x=0;h=ta(68,e|0)|0;v=x;x=0;if(!(v&1)){k[C>>2]=h;x=0;a=Aa(37,C|0,44212)|0;v=x;x=0;a:do if(!(v&1)?(i[n>>0]=0,k[j>>2]=k[c>>2],m=k[e+4>>2]|0,x=0,k[w>>2]=k[j>>2],m=ua(2,b|0,w|0,d|0,C|0,m|0,f|0,n|0,a|0,D|0,y|0,l|0)|0,v=x,x=0,!(v&1)):0){b:do if(m){x=0;Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,59007,59017,w|0)|0;v=x;x=0;if(v&1){G=10;break a}j=k[y>>2]|0;l=k[D>>2]|0;a=j-l|0;if((a|0)>392){a=Pl((a>>2)+2|0)|0;h=a;if(!a){x=0;Ga(6);v=x;x=0;if(!(v&1)){a=0;G=13}}else G=13}else{h=0;a=z;G=13}do if((G|0)==13){if(i[n>>0]|0){i[a>>0]=45;a=a+1|0}u=w+40|0;v=w;if(l>>>0>>0){m=w+4|0;d=m+4|0;e=d+4|0;n=e+4|0;o=n+4|0;p=o+4|0;q=p+4|0;s=q+4|0;t=s+4|0;do{j=k[l>>2]|0;do if((k[w>>2]|0)!=(j|0))if((k[m>>2]|0)!=(j|0))if((k[d>>2]|0)!=(j|0))if((k[e>>2]|0)!=(j|0))if((k[n>>2]|0)==(j|0))j=n;else{if((k[o>>2]|0)==(j|0)){j=o;break}if((k[p>>2]|0)==(j|0)){j=p;break}if((k[q>>2]|0)==(j|0)){j=q;break}if((k[s>>2]|0)==(j|0)){j=s;break}j=(k[t>>2]|0)==(j|0)?t:u}else j=e;else j=d;else j=m;else j=w;while(0);i[a>>0]=i[59007+(j-v>>2)>>0]|0;l=l+4|0;a=a+1|0}while(l>>>0<(k[y>>2]|0)>>>0)}i[a>>0]=0;k[A>>2]=g;if((jl(z,58987,A)|0)!=1?(x=0,qa(190,58991),g=x,x=0,g&1):0)break;if(h)Ql(h);break b}while(0);a=Wa()|0;if(!h){j=a;h=D;break a}Ql(h);j=a;h=D;break a}while(0);a=k[b>>2]|0;do if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;j=1;break}else{j=(k[b>>2]|0)==0;break}}else j=1;while(0);a=k[c>>2]|0;do if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1){G=10;break a}}else a=k[h>>2]|0;if((a|0)!=-1)if(j)break;else{G=40;break}else{k[c>>2]=0;G=38;break}}else G=38;while(0);if((G|0)==38?j:0)G=40;if((G|0)==40)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(k[C>>2]|0)|0;a=k[D>>2]|0;k[D>>2]=0;if((a|0)!=0?(x=0,qa(k[F>>2]|0,a|0),G=x,x=0,G&1):0){G=Wa(0)|0;oc(G)}r=B;return h|0}else G=10;while(0);if((G|0)==10){j=Wa()|0;h=D}zm(k[C>>2]|0)|0;a=k[h>>2]|0;k[h>>2]=0;if(!a)E=j;else{h=k[F>>2]|0;G=47}}else{j=Wa()|0;k[D>>2]=0;h=189;G=47}if((G|0)==47){x=0;qa(h|0,a|0);G=x;x=0;if(G&1){G=Wa(0)|0;oc(G)}else E=j}fb(E|0);return 0}function gs(a,b,c,d,e,f,g,h,j,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;var o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;Y=r;r=r+512|0;K=Y+96|0;o=Y+104|0;_=Y+88|0;O=Y+80|0;N=Y+76|0;P=Y+504|0;L=Y+72|0;Q=Y+68|0;T=Y+56|0;X=Y+44|0;V=Y+32|0;U=Y+20|0;W=Y+8|0;M=Y+4|0;S=Y;k[K>>2]=n;k[_>>2]=o;Z=_+4|0;k[Z>>2]=189;k[O>>2]=o;k[N>>2]=o+400;k[T>>2]=0;k[T+4>>2]=0;k[T+8>>2]=0;k[X>>2]=0;k[X+4>>2]=0;k[X+8>>2]=0;k[V>>2]=0;k[V+4>>2]=0;k[V+8>>2]=0;k[U>>2]=0;k[U+4>>2]=0;k[U+8>>2]=0;k[W>>2]=0;k[W+4>>2]=0;k[W+8>>2]=0;x=0;za(2,c|0,d|0,P|0,L|0,Q|0,T|0,X|0,V|0,U|0,M|0);J=x;x=0;a:do if(J&1)c=Wa()|0;else{k[m>>2]=k[j>>2];G=V+4|0;H=U+4|0;I=U+8|0;J=V+8|0;z=(e&512|0)!=0;A=X+8|0;B=X+4|0;C=W+4|0;D=W+8|0;E=P+3|0;F=T+4|0;y=0;q=0;b:while(1){n=k[a>>2]|0;do if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);c=k[b>>2]|0;do if(c){n=k[c+12>>2]|0;if((n|0)==(k[c+16>>2]|0)){x=0;n=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[n>>2]|0;if((n|0)!=-1)if(d){w=c;break}else{s=o;R=244;break b}else{k[b>>2]=0;R=16;break}}else R=16;while(0);if((R|0)==16){R=0;if(d){s=o;R=244;break}else w=0}c:do switch(i[P+y>>0]|0){case 1:{if((y|0)!=3){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;R=x;x=0;if(R&1){R=26;break b}if(!n){R=42;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=26;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=26;break b}else{n=w;e=w;R=44}}else n=o;break}case 0:{if((y|0)==3)n=o;else{n=w;e=w;R=44}break}case 3:{c=i[V>>0]|0;n=(c&1)==0?(c&255)>>>1:k[G>>2]|0;d=i[U>>0]|0;e=(d&1)==0?(d&255)>>>1:k[H>>2]|0;if((n|0)==(0-e|0))n=o;else{if(!n){n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[U>>0]|0}else{n=k[c>>2]|0;c=d}if((n|0)!=(k[((c&1)==0?H:k[I>>2]|0)>>2]|0)){n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q;break c}p=k[a>>2]|0;s=k[p+12>>2]|0;d=k[p+16>>2]|0;n=(s|0)==(d|0);if(!e){if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}c=i[V>>0]|0}else n=k[s>>2]|0;if((n|0)!=(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){i[g>>0]=1;n=o;break c}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(n){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}d=k[a>>2]|0;c=i[V>>0]|0;p=d;s=k[d+12>>2]|0;d=k[d+16>>2]|0}else n=k[s>>2]|0;e=p+12|0;d=(s|0)==(d|0);if((n|0)==(k[((c&1)==0?G:k[J>>2]|0)>>2]|0)){if(d){x=0;ta(k[(k[p>>2]|0)+40>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[e>>2]=s+4;w=i[V>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[G>>2]|0)>>>0>1?V:q;break c}if(d){x=0;n=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=26;break b}}else n=k[s>>2]|0;if((n|0)!=(k[((i[U>>0]&1)==0?H:k[I>>2]|0)>>2]|0)){R=107;break b}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[c>>2]=d+4;i[g>>0]=1;w=i[U>>0]|0;n=o;q=((w&1)==0?(w&255)>>>1:k[H>>2]|0)>>>0>1?U:q}break}case 2:{if(!(y>>>0<2|(q|0)!=0)?!(z|(y|0)==2&(i[E>>0]|0)!=0):0){n=o;q=0;break c}e=i[X>>0]|0;d=k[A>>2]|0;c=(e&1)==0?B:d;n=c;d:do if((y|0)!=0?(l[P+(y+-1)>>0]|0)<2:0){v=(e&1)==0;e:do if((c|0)!=((v?B:d)+((v?(e&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;while(1){x=0;c=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,k[e>>2]|0)|0;v=x;x=0;if(v&1){R=23;break b}if(!c)break;e=e+4|0;n=e;c=i[X>>0]|0;d=k[A>>2]|0;v=(c&1)==0;if((e|0)==((v?B:d)+((v?(c&255)>>>1:k[B>>2]|0)<<2)|0)){e=c;break e}}e=i[X>>0]|0;d=k[A>>2]|0}while(0);s=(e&1)==0?B:d;c=s;t=n-c>>2;u=i[W>>0]|0;p=(u&1)==0;u=p?(u&255)>>>1:k[C>>2]|0;if(u>>>0>=t>>>0){p=p?C:k[D>>2]|0;v=p+(u<<2)|0;if(!t)c=n;else{p=p+(u-t<<2)|0;while(1){if((k[p>>2]|0)!=(k[s>>2]|0))break d;p=p+4|0;if((p|0)==(v|0)){c=n;break}else s=s+4|0}}}}else c=n;while(0);n=(e&1)==0;n=(n?B:d)+((n?(e&255)>>>1:k[B>>2]|0)<<2)|0;f:do if((c|0)!=(n|0)){p=w;e=w;n=c;while(1){c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=22;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else break f;else{k[b>>2]=0;c=0;R=136;break}}else{c=p;R=136}while(0);if((R|0)==136){R=0;if(d)break f;else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else d=k[e>>2]|0;if((d|0)!=(k[n>>2]|0))break f;d=k[a>>2]|0;e=d+12|0;p=k[e>>2]|0;if((p|0)==(k[d+16>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=22;break b}}else k[e>>2]=p+4;n=n+4|0;d=i[X>>0]|0;w=(d&1)==0;d=(w?B:k[A>>2]|0)+((w?(d&255)>>>1:k[B>>2]|0)<<2)|0;if((n|0)==(d|0)){n=d;break}else{p=c;e=s}}}while(0);if(z?(w=i[X>>0]|0,v=(w&1)==0,(n|0)!=((v?B:k[A>>2]|0)+((v?(w&255)>>>1:k[B>>2]|0)<<2)|0)):0){R=148;break b}else n=o;break}case 4:{u=k[Q>>2]|0;t=w;p=w;n=o;c=0;g:while(1){d=k[a>>2]|0;do if(d){e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[e>>2]|0;if((d|0)==-1){k[a>>2]=0;e=1;break}else{e=(k[a>>2]|0)==0;break}}else e=1;while(0);do if(p){d=k[p+12>>2]|0;if((d|0)==(k[p+16>>2]|0)){x=0;d=ta(k[(k[p>>2]|0)+36>>2]|0,p|0)|0;w=x;x=0;if(w&1){R=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(e^(t|0)==0){d=t;s=t;break}else{o=t;break g}else{k[b>>2]=0;d=0;R=162;break}}else{d=t;R=162}while(0);if((R|0)==162){R=0;if(e){o=d;break}else s=0}e=k[a>>2]|0;o=k[e+12>>2]|0;if((o|0)==(k[e+16>>2]|0)){x=0;e=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}}else e=k[o>>2]|0;x=0;o=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,e|0)|0;w=x;x=0;if(w&1){R=25;break b}if(o){o=k[m>>2]|0;if((o|0)==(k[K>>2]|0)){x=0;Fa(14,j|0,m|0,K|0);w=x;x=0;if(w&1){R=25;break b}o=k[m>>2]|0}k[m>>2]=o+4;k[o>>2]=e;c=c+1|0}else{w=i[T>>0]|0;if(!((e|0)==(u|0)&((c|0)!=0?(((w&1)==0?(w&255)>>>1:k[F>>2]|0)|0)!=0:0))){o=d;break}if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=25;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w;c=0}e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=25;break b}else{t=d;p=s;continue}}else{k[o>>2]=p+4;t=d;p=s;continue}}if((c|0)!=0?(k[_>>2]|0)!=(n|0):0){if((n|0)==(k[N>>2]|0)){x=0;Fa(13,_|0,O|0,N|0);w=x;x=0;if(w&1){R=26;break b}n=k[O>>2]|0}w=n+4|0;k[O>>2]=w;k[n>>2]=c;n=w}s=k[M>>2]|0;if((s|0)>0){c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(o){c=k[o+12>>2]|0;if((c|0)==(k[o+16>>2]|0)){x=0;c=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d)break;else{R=206;break b}else{k[b>>2]=0;R=200;break}}else R=200;while(0);if((R|0)==200){R=0;if(d){R=206;break b}else o=0}c=k[a>>2]|0;d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else c=k[d>>2]|0;if((c|0)!=(k[L>>2]|0)){R=206;break b}c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=26;break b}}else k[d>>2]=e+4;if((s|0)>0){p=o;e=o;t=s;while(1){c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(p|0)==0){c=p;s=p;break}else{R=231;break b}else{k[b>>2]=0;c=0;R=224;break}}else{c=p;R=224}while(0);if((R|0)==224){R=0;if(d){R=231;break b}else s=0}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;x=0;d=va(k[(k[h>>2]|0)+12>>2]|0,h|0,2048,d|0)|0;w=x;x=0;if(w&1){R=24;break b}if(!d){R=231;break b}if((k[m>>2]|0)==(k[K>>2]|0)?(x=0,Fa(14,j|0,m|0,K|0),w=x,x=0,w&1):0){R=24;break b}d=k[a>>2]|0;e=k[d+12>>2]|0;if((e|0)==(k[d+16>>2]|0)){x=0;d=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;w=x;x=0;if(w&1){R=24;break b}}else d=k[e>>2]|0;e=k[m>>2]|0;k[m>>2]=e+4;k[e>>2]=d;d=t;t=t+-1|0;k[M>>2]=t;e=k[a>>2]|0;o=e+12|0;p=k[o>>2]|0;if((p|0)==(k[e+16>>2]|0)){x=0;ta(k[(k[e>>2]|0)+40>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=24;break b}}else k[o>>2]=p+4;if((d|0)<=1)break;else{p=c;e=s}}}}if((k[m>>2]|0)==(k[j>>2]|0)){R=242;break b}break}default:n=o}while(0);h:do if((R|0)==44)while(1){R=0;c=k[a>>2]|0;do if(c){d=k[c+12>>2]|0;if((d|0)==(k[c+16>>2]|0)){x=0;c=ta(k[(k[c>>2]|0)+36>>2]|0,c|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[d>>2]|0;if((c|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);do if(e){c=k[e+12>>2]|0;if((c|0)==(k[e+16>>2]|0)){x=0;c=ta(k[(k[e>>2]|0)+36>>2]|0,e|0)|0;w=x;x=0;if(w&1){R=21;break b}}else c=k[c>>2]|0;if((c|0)!=-1)if(d^(n|0)==0){p=n;e=n;break}else{n=o;break h}else{k[b>>2]=0;n=0;R=57;break}}else R=57;while(0);if((R|0)==57){R=0;if(d){n=o;break h}else{p=n;e=0}}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;w=x;x=0;if(w&1){R=21;break b}}else n=k[c>>2]|0;x=0;n=va(k[(k[h>>2]|0)+12>>2]|0,h|0,8192,n|0)|0;w=x;x=0;if(w&1){R=21;break b}if(!n){n=o;break h}n=k[a>>2]|0;c=n+12|0;d=k[c>>2]|0;if((d|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+40>>2]|0,n|0)|0;R=x;x=0;if(R&1){R=21;break b}}else{k[c>>2]=d+4;n=k[d>>2]|0}x=0;ra(92,W|0,n|0);R=x;x=0;if(R&1){R=21;break b}else{n=p;R=44}}while(0);y=y+1|0;if(y>>>0>=4){s=n;R=244;break}else o=n}i:switch(R|0){case 21:{c=Wa()|0;break a}case 22:{c=Wa()|0;break a}case 23:{c=Wa()|0;break a}case 24:{c=Wa()|0;break a}case 25:{c=Wa()|0;break a}case 26:{c=Wa()|0;break a}case 42:{k[f>>2]=k[f>>2]|4;c=0;break}case 107:{k[f>>2]=k[f>>2]|4;c=0;break}case 148:{k[f>>2]=k[f>>2]|4;c=0;break}case 206:{k[f>>2]=k[f>>2]|4;c=0;break}case 231:{k[f>>2]=k[f>>2]|4;c=0;break}case 242:{k[f>>2]=k[f>>2]|4;c=0;break}case 244:{j:do if(q){o=q+4|0;p=q+8|0;e=1;k:while(1){n=i[q>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[o>>2]|0;if(e>>>0>=n>>>0)break j;n=k[a>>2]|0;do if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)==-1){k[a>>2]=0;d=1;break}else{d=(k[a>>2]|0)==0;break}}else d=1;while(0);n=k[b>>2]|0;do if(n){c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break k}}else n=k[c>>2]|0;if((n|0)!=-1)if(d)break;else{R=271;break k}else{k[b>>2]=0;R=263;break}}else R=263;while(0);if((R|0)==263?(R=0,d):0){R=271;break}n=k[a>>2]|0;c=k[n+12>>2]|0;if((c|0)==(k[n+16>>2]|0)){x=0;n=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;m=x;x=0;if(m&1){R=20;break}}else n=k[c>>2]|0;if(!(i[q>>0]&1))c=o;else c=k[p>>2]|0;if((n|0)!=(k[c+(e<<2)>>2]|0)){R=271;break}n=e+1|0;c=k[a>>2]|0;d=c+12|0;e=k[d>>2]|0;if((e|0)==(k[c+16>>2]|0)){x=0;ta(k[(k[c>>2]|0)+40>>2]|0,c|0)|0;m=x;x=0;if(m&1){R=20;break}else{e=n;continue}}else{k[d>>2]=e+4;e=n;continue}}if((R|0)==20){c=Wa()|0;break a}else if((R|0)==271){k[f>>2]=k[f>>2]|4;c=0;break i}}while(0);n=k[_>>2]|0;if((n|0)!=(s|0)?(k[S>>2]=0,cs(T,n,s,S),(k[S>>2]|0)!=0):0){k[f>>2]=k[f>>2]|4;c=0}else c=1;break}}en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}r=Y;return c|0}while(0);en(W);en(U);en(V);en(X);Sm(T);n=k[_>>2]|0;k[_>>2]=0;if((n|0)!=0?(x=0,qa(k[Z>>2]|0,n|0),_=x,x=0,_&1):0){_=Wa(0)|0;oc(_)}fb(c|0);return 0}function hs(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;v=r;r=r+432|0;h=v+424|0;a=v+24|0;y=v+16|0;q=v+8|0;n=v+4|0;o=v+428|0;j=v;k[y>>2]=a;A=y+4|0;k[A>>2]=189;l=a+400|0;x=0;u=ta(68,e|0)|0;m=x;x=0;if(!(m&1)){k[n>>2]=u;x=0;m=Aa(37,n|0,44212)|0;a=x;x=0;a:do if(!(a&1)?(i[o>>0]=0,s=k[c>>2]|0,k[j>>2]=s,p=k[e+4>>2]|0,t=s,x=0,k[h>>2]=k[j>>2],p=ua(2,b|0,h|0,d|0,n|0,p|0,f|0,o|0,m|0,y|0,q|0,l|0)|0,e=x,x=0,!(e&1)):0){if(p){if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;if(i[o>>0]|0){x=0;a=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,45)|0;e=x;x=0;if(e&1)break;x=0;ra(92,g|0,a|0);e=x;x=0;if(e&1)break}x=0;j=Aa(k[(k[m>>2]|0)+44>>2]|0,m|0,48)|0;e=x;x=0;if(e&1)break;a=k[y>>2]|0;l=k[q>>2]|0;h=l+-4|0;b:do if(a>>>0>>0)do{if((k[a>>2]|0)!=(j|0))break b;a=a+4|0}while(a>>>0>>0);while(0);x=0;va(33,g|0,a|0,l|0)|0;g=x;x=0;if(g&1)break}a=k[b>>2]|0;do if(a){h=k[a+12>>2]|0;if((h|0)==(k[a+16>>2]|0)){x=0;a=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;g=x;x=0;if(g&1)break a}else a=k[h>>2]|0;if((a|0)==-1){k[b>>2]=0;h=1;break}else{h=(k[b>>2]|0)==0;break}}else h=1;while(0);do if(s){a=k[t+12>>2]|0;if((a|0)==(k[t+16>>2]|0)){x=0;a=ta(k[(k[s>>2]|0)+36>>2]|0,t|0)|0;t=x;x=0;if(t&1)break a}else a=k[a>>2]|0;if((a|0)!=-1)if(h)break;else{z=32;break}else{k[c>>2]=0;z=30;break}}else z=30;while(0);if((z|0)==30?h:0)z=32;if((z|0)==32)k[f>>2]=k[f>>2]|2;h=k[b>>2]|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if((a|0)!=0?(x=0,qa(k[A>>2]|0,a|0),A=x,x=0,A&1):0){A=Wa(0)|0;oc(A)}r=v;return h|0}while(0);h=Wa()|0;zm(u)|0;a=k[y>>2]|0;k[y>>2]=0;if(!a)w=h;else z=38}else{h=Wa()|0;k[y>>2]=0;z=38}if((z|0)==38){x=0;qa(k[A>>2]|0,a|0);A=x;x=0;if(A&1){A=Wa(0)|0;oc(A)}else w=h}fb(w|0);return 0}function is(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;z=r;r=r+112|0;m=z+100|0;n=z+88|0;o=z+76|0;p=z+64|0;q=z+52|0;s=z+48|0;t=z+36|0;u=z+24|0;v=z+12|0;w=z;do if(a){a=Ss(b,43956)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](m,a);w=k[m>>2]|0;i[c>>0]=w;i[c+1>>0]=w>>8;i[c+2>>0]=w>>16;i[c+3>>0]=w>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);Mb[k[(k[a>>2]|0)+28>>2]&127](o,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[o>>2];k[h+4>>2]=k[o+4>>2];k[h+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;en(o);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](p,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[p>>2];k[f+4>>2]=k[p+4>>2];k[f+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);Mb[k[(k[a>>2]|0)+24>>2]&127](q,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;en(q);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(b,43892)|0;Mb[k[(k[a>>2]|0)+44>>2]&127](s,a);s=k[s>>2]|0;i[c>>0]=s;i[c+1>>0]=s>>8;i[c+2>>0]=s>>16;i[c+3>>0]=s>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](t,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[j>>2]=k[t>>2];k[j+4>>2]=k[t+4>>2];k[j+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;en(t);Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)};k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);h=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[d>>2]=h;h=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[e>>2]=h;Mb[k[(k[a>>2]|0)+20>>2]&127](v,a);if(!(i[f>>0]&1)){i[f+1>>0]=0;i[f>>0]=0}else{i[k[f+8>>2]>>0]=0;k[f+4>>2]=0}x=0;ra(91,f|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)};k[f>>2]=k[v>>2];k[f+4>>2]=k[v+4>>2];k[f+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[a>>2]|0)+24>>2]&127](w,a);if(!(i[g>>0]&1))i[g>>0]=0;else k[k[g+8>>2]>>2]=0;k[g+4>>2]=0;x=0;ra(93,g|0,0);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else{k[g>>2]=k[w>>2];k[g+4>>2]=k[w+4>>2];k[g+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);y=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=y;r=z;return}function js(a){a=a|0;return}function ks(a){a=a|0;mj(a);return}function ls(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+384|0;u=D+8|0;g=D;j=D+284|0;l=D+72|0;h=D+184|0;F=D+68|0;A=D+80|0;w=D+77|0;B=D+76|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+84|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44220)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+32>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(3,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(1,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+q|0,o|0,n|0,A|0,i[w>>0]|0,i[B>>0]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(39,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}Sm(H);Sm(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;Sm(H);Sm(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ms(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;D=r;r=r+112|0;o=D+108|0;p=D+96|0;t=D+92|0;u=D+80|0;v=D+68|0;w=D+56|0;y=D+52|0;z=D+40|0;A=D+36|0;B=D+24|0;q=D+12|0;s=D;do if(a){a=Ss(c,43828)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](o,a);b=k[o>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](p,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[p>>2];k[j+4>>2]=k[p+4>>2];k[j+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;Sm(p);n=a;break}}else{Mb[k[c+40>>2]&127](t,a);b=k[t>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](u,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[u>>2];k[j+4>>2]=k[u+4>>2];k[j+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;Sm(u);n=a;break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[n>>2]|0)+20>>2]&127](v,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[v>>2];k[g+4>>2]=k[v+4>>2];k[g+8>>2]=k[v+8>>2];k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;Sm(v);Mb[k[(k[n>>2]|0)+24>>2]&127](w,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[w>>2];k[h+4>>2]=k[w+4>>2];k[h+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;Sm(w);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43764)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](z,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;Sm(z);m=a;break}}else{Mb[k[c+40>>2]&127](A,a);b=k[A>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](B,a);if(!(i[j>>0]&1)){i[j+1>>0]=0;i[j>>0]=0}else{i[k[j+8>>2]>>0]=0;k[j+4>>2]=0}x=0;ra(91,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[B>>2];k[j+4>>2]=k[B+4>>2];k[j+8>>2]=k[B+8>>2];k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;Sm(B);m=a;break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;i[e>>0]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;i[f>>0]=j;Mb[k[(k[m>>2]|0)+20>>2]&127](q,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[q>>2];k[g+4>>2]=k[q+4>>2];k[g+8>>2]=k[q+8>>2];k[q>>2]=0;k[q+4>>2]=0;k[q+8>>2]=0;Sm(q);Mb[k[(k[m>>2]|0)+24>>2]&127](s,a);if(!(i[h>>0]&1)){i[h+1>>0]=0;i[h>>0]=0}else{i[k[h+8>>2]>>0]=0;k[h+4>>2]=0}x=0;ra(91,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[s>>2];k[h+4>>2]=k[s+4>>2];k[h+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;Sm(s);C=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=C;r=D;return}function ns(a,b,c,d,e,f,g,h,l,m,n,o,p,q,r){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;k[c>>2]=a;N=q+4|0;O=q+8|0;P=q+1|0;H=p+4|0;I=(d&512|0)==0;J=p+8|0;K=p+1|0;L=g+8|0;M=(r|0)>0;A=o+4|0;B=o+8|0;C=o+1|0;D=r+1|0;F=-2-r-((r|0)<0?~r:-1)|0;G=(r|0)>0;z=0;do{switch(i[l+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;break}case 3:{y=i[q>>0]|0;s=(y&1)==0;if((s?(y&255)>>>1:k[N>>2]|0)|0){x=i[(s?P:k[O>>2]|0)>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}break}case 2:{u=i[p>>0]|0;s=(u&1)==0;u=s?(u&255)>>>1:k[H>>2]|0;if(!(I|(u|0)==0)){t=s?K:k[J>>2]|0;v=t+u|0;s=k[c>>2]|0;if(u)do{i[s>>0]=i[t>>0]|0;t=t+1|0;s=s+1|0}while((t|0)!=(v|0));k[c>>2]=s}break}case 4:{s=k[c>>2]|0;e=h?e+1|0:e;w=e;v=k[L>>2]|0;a:do if(e>>>0>>0){t=e;do{u=i[t>>0]|0;if(u<<24>>24<=-1)break a;if(!(j[v+(u<<24>>24<<1)>>1]&2048))break a;t=t+1|0}while(t>>>0>>0)}else t=e;while(0);u=t;if(M){x=-2-u-~(u>>>0>w>>>0?w:u)|0;x=F>>>0>x>>>0?F:x;if(t>>>0>e>>>0&G){u=t;w=r;while(1){u=u+-1|0;y=i[u>>0]|0;v=k[c>>2]|0;k[c>>2]=v+1;i[v>>0]=y;v=(w|0)>1;if(!(u>>>0>e>>>0&v))break;else w=w+-1|0}}else v=G;y=D+x|0;u=t+(x+1)|0;if(v)w=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;else w=0;t=k[c>>2]|0;k[c>>2]=t+1;if((y|0)>0){v=y;while(1){i[t>>0]=w;t=k[c>>2]|0;k[c>>2]=t+1;if((v|0)>1)v=v+-1|0;else break}}i[t>>0]=m}else u=t;if((u|0)!=(e|0)){y=i[o>>0]|0;t=(y&1)==0;if(!((t?(y&255)>>>1:k[A>>2]|0)|0))t=-1;else t=i[(t?C:k[B>>2]|0)>>0]|0;if((u|0)!=(e|0)){v=0;w=0;while(1){if((w|0)==(t|0)){y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=n;v=v+1|0;y=i[o>>0]|0;t=(y&1)==0;if(v>>>0<(t?(y&255)>>>1:k[A>>2]|0)>>>0){t=i[(t?C:k[B>>2]|0)+v>>0]|0;t=t<<24>>24==127?-1:t<<24>>24;w=0}else{t=w;w=0}}u=u+-1|0;x=i[u>>0]|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x;if((u|0)==(e|0))break;else w=w+1|0}}}else{x=Vb[k[(k[g>>2]|0)+28>>2]&63](g,48)|0;y=k[c>>2]|0;k[c>>2]=y+1;i[y>>0]=x}t=k[c>>2]|0;if((s|0)!=(t|0)?(E=t+-1|0,s>>>0>>0):0){t=E;do{y=i[s>>0]|0;i[s>>0]=i[t>>0]|0;i[t>>0]=y;s=s+1|0;t=t+-1|0}while(s>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);t=i[q>>0]|0;e=(t&1)==0;t=e?(t&255)>>>1:k[N>>2]|0;if(t>>>0>1){s=e?P:k[O>>2]|0;u=s+t|0;e=k[c>>2]|0;if((t|0)!=1){s=s+1|0;do{i[e>>0]=i[s>>0]|0;e=e+1|0;s=s+1|0}while((s|0)!=(u|0))}k[c>>2]=e}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function os(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+176|0;p=z+56|0;B=z+52|0;w=z+64|0;t=z+61|0;y=z+60|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;o=z+68|0;v=z+8|0;u=z+4|0;q=z;a=tn(d)|0;k[B>>2]=a;x=0;s=Aa(37,B|0,44220)|0;n=x;x=0;do if(n&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;n=f+4|0;if(!((g?(m&255)>>>1:k[n>>2]|0)|0))m=0;else{g=i[(g?f+1|0:k[f+8>>2]|0)>>0]|0;x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=g<<24>>24==h<<24>>24}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(3,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[n>>2]|0;g=0;F=17}}else F=17}else{h=0;g=o;F=17}if((F|0)==17){G=(j&1)==0;f=G?f+1|0:k[f+8>>2]|0;x=0;wa(1,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+(G?(j&255)>>>1:c)|0,s|0,m|0,w|0,i[t>>0]|0,i[y>>0]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[q>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[p>>2]=k[q>>2],A=sa(39,p|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}Sm(D);Sm(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;Sm(D);Sm(E);Sm(C)}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function ps(a){a=a|0;return}function qs(a){a=a|0;mj(a);return}function rs(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;D=r;r=r+992|0;u=D+8|0;g=D;j=D+888|0;l=D+880|0;h=D+480|0;F=D+76|0;A=D+884|0;w=D+72|0;B=D+68|0;G=D+56|0;I=D+44|0;H=D+32|0;m=D+28|0;t=D+80|0;z=D+24|0;y=D+20|0;v=D+16|0;k[l>>2]=j;p[u>>3]=f;j=il(j,100,59018,u)|0;do if(j>>>0>99){x=0;a=Da(3)|0;C=x;x=0;if(!(C&1)?(x=0,p[g>>3]=f,q=Ea(17,l|0,a|0,59018,g|0)|0,C=x,x=0,!(C&1)):0){a=k[l>>2]|0;if(!a){x=0;Ga(6);C=x;x=0;if(C&1){a=0;g=0;C=7;break}a=k[l>>2]|0}h=Pl(q<<2)|0;g=h;if(!h){x=0;Ga(6);C=x;x=0;if(C&1)C=7;else{s=0;C=10}}else{s=h;C=10}}else{a=0;g=0;C=7}}else{g=0;a=0;s=h;q=j;C=10}while(0);if((C|0)==10){x=0;h=ta(68,d|0)|0;o=x;x=0;if(o&1)C=7;else{k[F>>2]=h;x=0;o=Aa(37,F|0,44212)|0;n=x;x=0;if(!(n&1)?(n=k[l>>2]|0,x=0,Ea(k[(k[o>>2]|0)+48>>2]|0,o|0,n|0,n+q|0,s|0)|0,n=x,x=0,!(n&1)):0){if(!q)n=0;else n=(i[k[l>>2]>>0]|0)==45;k[G>>2]=0;k[G+4>>2]=0;k[G+8>>2]=0;k[I>>2]=0;k[I+4>>2]=0;k[I+8>>2]=0;k[H>>2]=0;k[H+4>>2]=0;k[H+8>>2]=0;x=0;za(4,c|0,n|0,F|0,A|0,w|0,B|0,G|0,I|0,H|0,m|0);c=x;x=0;if(!(c&1)){m=k[m>>2]|0;if((q|0)>(m|0)){c=i[H>>0]|0;j=i[I>>0]|0;j=(q-m<<1|1)+m+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}else{c=i[H>>0]|0;j=i[I>>0]|0;j=m+2+((c&1)==0?(c&255)>>>1:k[H+4>>2]|0)+((j&1)==0?(j&255)>>>1:k[I+4>>2]|0)|0}if(j>>>0>100){j=Pl(j<<2)|0;l=j;if(!j){x=0;Ga(6);t=x;x=0;if(!(t&1)){j=0;C=26}}else C=26}else{l=0;j=t;C=26}if((C|0)==26){x=0;wa(2,j|0,z|0,y|0,k[d+4>>2]|0,s|0,s+(q<<2)|0,o|0,n|0,A|0,k[w>>2]|0,k[B>>2]|0,G|0,I|0,H|0,m|0);B=x;x=0;if(!(B&1)?(k[v>>2]=k[b>>2],b=k[z>>2]|0,E=k[y>>2]|0,x=0,k[u>>2]=k[v>>2],E=sa(40,u|0,j|0,b|0,E|0,d|0,e|0)|0,b=x,x=0,!(b&1)):0){if(l){Ql(l);h=k[F>>2]|0}en(H);en(I);Sm(G);zm(h)|0;if(g)Ql(g);if(a)Ql(a);r=D;return E|0}}j=Wa()|0;if(l){Ql(l);h=k[F>>2]|0}}else j=Wa()|0;en(H);en(I);Sm(G)}else j=Wa()|0;zm(h)|0}}if((C|0)==7)j=Wa()|0;if(g)Ql(g);if(a)Ql(a);fb(j|0);return 0}function ss(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;B=r;r=r+112|0;m=B+108|0;n=B+96|0;q=B+92|0;s=B+80|0;t=B+68|0;u=B+56|0;v=B+52|0;w=B+40|0;y=B+36|0;z=B+24|0;o=B+12|0;p=B;do if(a){a=Ss(c,43956)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](m,a);b=k[m>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](n,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[n>>2];k[j+4>>2]=k[n+4>>2];k[j+8>>2]=k[n+8>>2];k[n>>2]=0;k[n+4>>2]=0;k[n+8>>2]=0;en(n);break}}else{Mb[k[c+40>>2]&127](q,a);b=k[q>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](s,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[s>>2];k[j+4>>2]=k[s+4>>2];k[j+8>>2]=k[s+8>>2];k[s>>2]=0;k[s+4>>2]=0;k[s+8>>2]=0;en(s);break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](t,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[t>>2];k[g+4>>2]=k[t+4>>2];k[g+8>>2]=k[t+8>>2];k[t>>2]=0;k[t+4>>2]=0;k[t+8>>2]=0;Sm(t);Mb[k[(k[a>>2]|0)+24>>2]&127](u,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[u>>2];k[h+4>>2]=k[u+4>>2];k[h+8>>2]=k[u+8>>2];k[u>>2]=0;k[u+4>>2]=0;k[u+8>>2]=0;en(u);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}else{a=Ss(c,43892)|0;c=k[a>>2]|0;do if(b){Mb[k[c+44>>2]&127](v,a);b=k[v>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+32>>2]&127](w,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[w>>2];k[j+4>>2]=k[w+4>>2];k[j+8>>2]=k[w+8>>2];k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;en(w);break}}else{Mb[k[c+40>>2]&127](y,a);b=k[y>>2]|0;i[d>>0]=b;i[d+1>>0]=b>>8;i[d+2>>0]=b>>16;i[d+3>>0]=b>>24;Mb[k[(k[a>>2]|0)+28>>2]&127](z,a);if(!(i[j>>0]&1))i[j>>0]=0;else k[k[j+8>>2]>>2]=0;k[j+4>>2]=0;x=0;ra(93,j|0,0);d=x;x=0;if(d&1){j=Wa(0)|0;oc(j)}else{k[j>>2]=k[z>>2];k[j+4>>2]=k[z+4>>2];k[j+8>>2]=k[z+8>>2];k[z>>2]=0;k[z+4>>2]=0;k[z+8>>2]=0;en(z);break}}while(0);j=Ob[k[(k[a>>2]|0)+12>>2]&127](a)|0;k[e>>2]=j;j=Ob[k[(k[a>>2]|0)+16>>2]&127](a)|0;k[f>>2]=j;Mb[k[(k[a>>2]|0)+20>>2]&127](o,a);if(!(i[g>>0]&1)){i[g+1>>0]=0;i[g>>0]=0}else{i[k[g+8>>2]>>0]=0;k[g+4>>2]=0}x=0;ra(91,g|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)};k[g>>2]=k[o>>2];k[g+4>>2]=k[o+4>>2];k[g+8>>2]=k[o+8>>2];k[o>>2]=0;k[o+4>>2]=0;k[o+8>>2]=0;Sm(o);Mb[k[(k[a>>2]|0)+24>>2]&127](p,a);if(!(i[h>>0]&1))i[h>>0]=0;else k[k[h+8>>2]>>2]=0;k[h+4>>2]=0;x=0;ra(93,h|0,0);f=x;x=0;if(f&1){f=Wa(0)|0;oc(f)}else{k[h>>2]=k[p>>2];k[h+4>>2]=k[p+4>>2];k[h+8>>2]=k[p+8>>2];k[p>>2]=0;k[p+4>>2]=0;k[p+8>>2]=0;en(p);A=Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0;break}}while(0);k[l>>2]=A;r=B;return}function ts(a,b,c,d,e,f,g,h,j,l,m,n,o,p,q){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;k[c>>2]=a;J=p+4|0;K=p+8|0;C=o+4|0;D=(d&512|0)==0;E=o+8|0;F=(q|0)>0;G=n+4|0;H=n+8|0;I=n+1|0;A=(q|0)>0;z=0;do{switch(i[j+z>>0]|0){case 0:{k[b>>2]=k[c>>2];break}case 1:{k[b>>2]=k[c>>2];x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,32)|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x;break}case 3:{y=i[p>>0]|0;r=(y&1)==0;if((r?(y&255)>>>1:k[J>>2]|0)|0){x=k[(r?J:k[K>>2]|0)>>2]|0;y=k[c>>2]|0;k[c>>2]=y+4;k[y>>2]=x}break}case 2:{v=i[o>>0]|0;r=(v&1)==0;v=r?(v&255)>>>1:k[C>>2]|0;if(!(D|(v|0)==0)){r=r?C:k[E>>2]|0;t=r+(v<<2)|0;u=k[c>>2]|0;if(v){s=u;while(1){k[s>>2]=k[r>>2];r=r+4|0;if((r|0)==(t|0))break;else s=s+4|0}}k[c>>2]=u+(v<<2)}break}case 4:{r=k[c>>2]|0;e=h?e+4|0:e;a:do if(e>>>0>>0){s=e;do{if(!(Qb[k[(k[g>>2]|0)+12>>2]&63](g,2048,k[s>>2]|0)|0))break a;s=s+4|0}while(s>>>0>>0)}else s=e;while(0);if(F){if(s>>>0>e>>>0&A){v=k[c>>2]|0;u=q;while(1){s=s+-4|0;t=v+4|0;k[v>>2]=k[s>>2];w=u+-1|0;u=(u|0)>1;if(s>>>0>e>>>0&u){v=t;u=w}else{v=w;break}}k[c>>2]=t;t=v}else{u=A;t=q}if(u)w=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;else w=0;x=k[c>>2]|0;u=t+((t|0)<0?~t:-1)|0;if((t|0)>0){v=x;while(1){k[v>>2]=w;if((t|0)>1){v=v+4|0;t=t+-1|0}else break}}k[c>>2]=x+(u+2<<2);k[x+(u+1<<2)>>2]=l}if((s|0)==(e|0)){x=Vb[k[(k[g>>2]|0)+44>>2]&63](g,48)|0;y=k[c>>2]|0;s=y+4|0;k[c>>2]=s;k[y>>2]=x}else{x=i[n>>0]|0;t=(x&1)==0;y=k[G>>2]|0;if(!((t?(x&255)>>>1:y)|0))t=-1;else t=i[(t?I:k[H>>2]|0)>>0]|0;if((s|0)!=(e|0)){w=0;x=0;while(1){u=k[c>>2]|0;if((x|0)==(t|0)){v=u+4|0;k[c>>2]=v;k[u>>2]=m;w=w+1|0;u=i[n>>0]|0;t=(u&1)==0;if(w>>>0<(t?(u&255)>>>1:y)>>>0){t=i[(t?I:k[H>>2]|0)+w>>0]|0;u=v;t=t<<24>>24==127?-1:t<<24>>24;v=0}else{u=v;t=x;v=0}}else v=x;s=s+-4|0;x=k[s>>2]|0;k[c>>2]=u+4;k[u>>2]=x;if((s|0)==(e|0))break;else x=v+1|0}}s=k[c>>2]|0}if((r|0)!=(s|0)?(B=s+-4|0,r>>>0>>0):0){s=B;do{y=k[r>>2]|0;k[r>>2]=k[s>>2];k[s>>2]=y;r=r+4|0;s=s+-4|0}while(r>>>0>>0)}break}default:{}}z=z+1|0}while((z|0)!=4);r=i[p>>0]|0;e=(r&1)==0;r=e?(r&255)>>>1:k[J>>2]|0;if(r>>>0>1){s=e?J:k[K>>2]|0;e=s+4|0;s=s+(r<<2)|0;t=k[c>>2]|0;u=s-e|0;if((r|0)!=1){r=t;while(1){k[r>>2]=k[e>>2];e=e+4|0;if((e|0)==(s|0))break;else r=r+4|0}}k[c>>2]=t+(u>>>2<<2)}switch(d&176|0){case 32:{k[b>>2]=k[c>>2];break}case 16:break;default:k[b>>2]=a}return}function us(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;z=r;r=r+480|0;o=z+468|0;B=z+464|0;w=z+472|0;t=z+56|0;y=z+52|0;C=z+40|0;E=z+28|0;D=z+16|0;l=z+12|0;n=z+64|0;v=z+8|0;u=z+4|0;p=z;a=tn(d)|0;k[B>>2]=a;x=0;q=Aa(37,B|0,44212)|0;s=x;x=0;do if(s&1)F=13;else{m=i[f>>0]|0;g=(m&1)==0;s=f+4|0;if(!((g?(m&255)>>>1:k[s>>2]|0)|0))m=0;else{g=k[(g?s:k[f+8>>2]|0)>>2]|0;x=0;h=Aa(k[(k[q>>2]|0)+44>>2]|0,q|0,45)|0;m=x;x=0;if(m&1){F=13;break}m=(g|0)==(h|0)}k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;za(4,c|0,m|0,B|0,w|0,t|0,y|0,C|0,E|0,D|0,l|0);j=x;x=0;if(!(j&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=(j&1)==0?(j&255)>>>1:c;l=k[l>>2]|0;if((g|0)>(l|0)){G=i[D>>0]|0;h=i[E>>0]|0;g=(g-l<<1|1)+l+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((h&1)==0?(h&255)>>>1:k[E+4>>2]|0)|0}else{G=i[D>>0]|0;g=i[E>>0]|0;g=l+2+((G&1)==0?(G&255)>>>1:k[D+4>>2]|0)+((g&1)==0?(g&255)>>>1:k[E+4>>2]|0)|0}if(g>>>0>100){g=Pl(g<<2)|0;h=g;if(!g){x=0;Ga(6);G=x;x=0;if(!(G&1)){j=i[f>>0]|0;c=k[s>>2]|0;g=0;F=17}}else F=17}else{h=0;g=n;F=17}if((F|0)==17){G=(j&1)==0;f=G?s:k[f+8>>2]|0;x=0;wa(2,g|0,v|0,u|0,k[d+4>>2]|0,f|0,f+((G?(j&255)>>>1:c)<<2)|0,q|0,m|0,w|0,k[t>>2]|0,k[y>>2]|0,C|0,E|0,D|0,l|0);G=x;x=0;if(!(G&1)?(k[p>>2]=k[b>>2],G=k[v>>2]|0,A=k[u>>2]|0,x=0,k[o>>2]=k[p>>2],A=sa(40,o|0,g|0,G|0,A|0,d|0,e|0)|0,G=x,x=0,!(G&1)):0){if(h){Ql(h);a=k[B>>2]|0}en(D);en(E);Sm(C);zm(a)|0;r=z;return A|0}}g=Wa()|0;if(h){Ql(h);a=k[B>>2]|0}}else g=Wa()|0;en(D);en(E);Sm(C)}while(0);if((F|0)==13)g=Wa()|0;zm(a)|0;fb(g|0);return 0}function vs(a){a=a|0;return}function ws(a){a=a|0;mj(a);return}function xs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function ys(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0;h=r;r=r+16|0;j=h;k[j>>2]=0;k[j+4>>2]=0;k[j+8>>2]=0;g=i[f>>0]|0;l=(g&1)==0;b=l?f+1|0:k[f+8>>2]|0;g=l?(g&255)>>>1:k[f+4>>2]|0;f=b+g|0;a:do if((g|0)>0){while(1){x=0;ra(67,j|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0){g=4;break a}}b=Wa()|0;g=7}else g=4;while(0);b:do if((g|0)==4){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[j>>0]&1)==0?j+1|0:k[j+8>>2]|0)|0)|0;l=x;x=0;if(l&1){b=Wa()|0;g=7;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;l=xl(b)|0;f=b+l|0;c:do if((l|0)>0){while(1){x=0;ra(67,a|0,i[b>>0]|0);l=x;x=0;if(l&1)break;b=b+1|0;if(b>>>0>=f>>>0)break c}b=Wa()|0;Sm(a);break b}while(0);Sm(j);r=h;return}while(0);Sm(j);fb(b|0)}function zs(a,b){a=a|0;b=b|0;return}function As(a){a=a|0;return}function Bs(a){a=a|0;mj(a);return}function Cs(a,b,c){a=a|0;b=b|0;c=c|0;a=vk((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0,1)|0;return a>>>((a|0)!=(-1|0)&1)|0}function Ds(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;v=r;r=r+224|0;n=v+184|0;m=v+192|0;l=v+180|0;o=v+176|0;t=v+168|0;s=v+40|0;q=v+32|0;u=v+28|0;w=v+16|0;j=v+8|0;p=v;k[w>>2]=0;k[w+4>>2]=0;k[w+8>>2]=0;k[j+4>>2]=0;k[j>>2]=44696;h=i[f>>0]|0;y=(h&1)==0;g=f+4|0;b=y?g:k[f+8>>2]|0;f=y?(h&255)>>>1:k[g>>2]|0;g=b+(f<<2)|0;h=m+32|0;a:do if((f|0)>0){b:while(1){k[o>>2]=b;x=0;f=Ha(k[(k[j>>2]|0)+12>>2]|0,j|0,n|0,b|0,g|0,o|0,m|0,h|0,l|0)|0;y=x;x=0;if(y&1){f=12;break}if((f|0)==2?1:(k[o>>2]|0)==(b|0)){f=5;break}if(m>>>0<(k[l>>2]|0)>>>0){b=m;do{x=0;ra(67,w|0,i[b>>0]|0);y=x;x=0;if(y&1){f=11;break b}b=b+1|0}while(b>>>0<(k[l>>2]|0)>>>0)}b=k[o>>2]|0;if(!((f|0)!=2&b>>>0>>0)){f=9;break a}}if((f|0)==5){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==11)b=Wa()|0;else if((f|0)==12)b=Wa()|0}else f=9;while(0);c:do if((f|0)==9){x=0;b=Ea(19,((c|0)==-1?-1:c<<1)|0,d|0,e|0,((i[w>>0]&1)==0?w+1|0:k[w+8>>2]|0)|0)|0;y=x;x=0;if(y&1){b=Wa()|0;break}k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[p+4>>2]=0;k[p>>2]=44744;y=xl(b)|0;g=b+y|0;h=g;j=s+128|0;d:do if((y|0)>0){e:while(1){k[u>>2]=b;x=0;f=Ha(k[(k[p>>2]|0)+16>>2]|0,p|0,t|0,b|0,((h-b|0)>32?b+32|0:g)|0,u|0,s|0,j|0,q|0)|0;y=x;x=0;if(y&1){f=24;break}if((f|0)==2?1:(k[u>>2]|0)==(b|0)){f=18;break}if(s>>>0<(k[q>>2]|0)>>>0){b=s;do{x=0;ra(92,a|0,k[b>>2]|0);y=x;x=0;if(y&1){f=23;break e}b=b+4|0}while(b>>>0<(k[q>>2]|0)>>>0)}b=k[u>>2]|0;if(!((f|0)!=2&b>>>0>>0))break d}if((f|0)==18){x=0;qa(190,58955);x=0;b=Wa()|0}else if((f|0)==23)b=Wa()|0;else if((f|0)==24)b=Wa()|0;en(a);break c}while(0);Sm(w);r=v;return}while(0);Sm(w);fb(b|0)}function Es(a,b){a=a|0;b=b|0;return}function Fs(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;k[a+4>>2]=b+-1;k[a>>2]=44196;f=a+8|0;x=0;ra(94,f|0,28);e=x;x=0;if(e&1)b=Wa()|0;else{e=a+144|0;x=0;Fa(5,e|0,58885,1);d=x;x=0;if(d&1)b=Wa()|0;else{c=k[f>>2]|0;d=a+12|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do b=b+-4|0;while((b|0)!=(c|0));k[d>>2]=b}k[495]=0;k[494]=43124;x=0;ra(95,a|0,1976);d=x;x=0;do if(((((((((((((!(d&1)?(k[497]=0,k[496]=43164,x=0,ra(96,a|0,1984),d=x,x=0,!(d&1)):0)?(k[499]=0,k[498]=44236,k[500]=0,i[2004]=0,d=Ys()|0,k[500]=d,x=0,ra(97,a|0,1992),d=x,x=0,!(d&1)):0)?(k[503]=0,k[502]=44484,x=0,ra(98,a|0,2008),d=x,x=0,!(d&1)):0)?(k[505]=0,k[504]=44552,x=0,ra(99,a|0,2016),d=x,x=0,!(d&1)):0)?(x=0,ra(100,2024,1),d=x,x=0,!(d&1)):0)?(x=0,ra(101,a|0,2024),d=x,x=0,!(d&1)):0)?(k[511]=0,k[510]=44600,x=0,ra(102,a|0,2040),d=x,x=0,!(d&1)):0)?(k[513]=0,k[512]=44648,x=0,ra(103,a|0,2048),d=x,x=0,!(d&1)):0)?(bu(2056,1),x=0,ra(104,a|0,2056),d=x,x=0,!(d&1)):0)?(cu(2080,1),x=0,ra(105,a|0,2080),d=x,x=0,!(d&1)):0)?(k[529]=0,k[528]=43204,x=0,ra(106,a|0,2112),d=x,x=0,!(d&1)):0)?(k[531]=0,k[530]=43276,x=0,ra(107,a|0,2120),d=x,x=0,!(d&1)):0)?(k[533]=0,k[532]=43348,x=0,ra(108,a|0,2128),d=x,x=0,!(d&1)):0){k[535]=0;k[534]=43408;x=0;ra(109,a|0,2136);d=x;x=0;if(d&1){g=42;break}k[537]=0;k[536]=43716;x=0;ra(110,a|0,2144);d=x;x=0;if(d&1){g=42;break}k[539]=0;k[538]=43780;x=0;ra(111,a|0,2152);d=x;x=0;if(d&1){g=42;break}k[541]=0;k[540]=43844;x=0;ra(112,a|0,2160);d=x;x=0;if(d&1){g=42;break}k[543]=0;k[542]=43908;x=0;ra(113,a|0,2168);d=x;x=0;if(d&1){g=42;break}k[545]=0;k[544]=43972;x=0;ra(114,a|0,2176);d=x;x=0;if(d&1){g=42;break}k[547]=0;k[546]=44008;x=0;ra(115,a|0,2184);d=x;x=0;if(d&1){g=42;break}k[549]=0;k[548]=44044;x=0;ra(116,a|0,2192);d=x;x=0;if(d&1){g=42;break}k[551]=0;k[550]=44080;x=0;ra(117,a|0,2200);d=x;x=0;if(d&1){g=42;break}k[553]=0;k[552]=43468;k[554]=43516;x=0;ra(118,a|0,2208);d=x;x=0;if(d&1){g=42;break}k[557]=0;k[556]=43560;k[558]=43608;x=0;ra(119,a|0,2224);d=x;x=0;if(d&1){g=42;break}k[561]=0;k[560]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[562]=b;k[560]=43652;x=0;ra(120,a|0,2240);d=x;x=0;if(d&1){g=42;break}k[565]=0;k[564]=44464;x=0;b=Da(3)|0;d=x;x=0;if(d&1){b=Wa()|0;break}k[566]=b;k[564]=43684;x=0;ra(121,a|0,2256);g=x;x=0;if(g&1){g=42;break}k[569]=0;k[568]=44116;x=0;ra(122,a|0,2272);g=x;x=0;if(g&1){g=42;break}k[571]=0;k[570]=44156;x=0;ra(123,a|0,2280);g=x;x=0;if(g&1){g=42;break}return}else g=42;while(0);if((g|0)==42)b=Wa()|0;Sm(e)}Nv(f)}fb(b|0)}function Gs(){var a=0;do if((i[2288]|0)==0?(Qa(2288)|0)!=0:0){x=0;Da(4)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2288);fb(a|0)}else{k[11246]=44980;Ya(2288);break}}while(0);return k[11246]|0}function Hs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;ym(b);e=a+8|0;d=k[e>>2]|0;do if((k[a+12>>2]|0)-d>>2>>>0<=c>>>0){x=0;ra(124,e|0,c+1|0);a=x;x=0;if(!(a&1)){d=k[e>>2]|0;break}d=Wa()|0;if(b)zm(b)|0;fb(d|0)}while(0);a=k[d+(c<<2)>>2]|0;if(a){zm(a)|0;d=k[e>>2]|0}k[d+(c<<2)>>2]=b;return}function Is(a){a=a|0;var b=0,c=0,d=0,e=0;k[a>>2]=44196;d=a+8|0;e=a+12|0;b=k[d>>2]|0;if((k[e>>2]|0)!=(b|0)){c=0;do{b=k[b+(c<<2)>>2]|0;if(b)zm(b)|0;c=c+1|0;b=k[d>>2]|0}while(c>>>0<(k[e>>2]|0)-b>>2>>>0)}Sm(a+144|0);Nv(d);return}function Js(a){a=a|0;Is(a);mj(a);return}function Ks(a,b){a=a|0;b=b|0;if(Pv(a,b)|0)return k[(k[a+8>>2]|0)+(b<<2)>>2]|0;else{a=Va(4)|0;Aj(a);ub(a|0,640,82)}return 0}function Ls(){Fs(2296,1);k[11245]=2296;return 44980}function Ms(){var a=0;a=Gs()|0;a=k[a>>2]|0;k[11247]=a;ym(a);return 44988}function Ns(){var a=0;do if((i[2456]|0)==0?(Qa(2456)|0)!=0:0){x=0;Da(5)|0;a=x;x=0;if(a&1){a=Wa()|0;Bb(2456);fb(a|0)}else{k[11248]=44988;Ya(2456);break}}while(0);return k[11248]|0}function Os(a){a=a|0;var b=0,c=0;x=0;b=Da(6)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}else{c=k[b>>2]|0;k[a>>2]=c;ym(c);return}}function Ps(a,b){a=a|0;b=b|0;b=k[b>>2]|0;k[a>>2]=b;ym(b);return}function Qs(a){a=a|0;zm(k[a>>2]|0)|0;return}function Rs(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a>>2]|0)!=-1){k[b>>2]=a;k[b+4>>2]=191;k[b+8>>2]=0;Om(a,b,192)}r=c;return (k[a+4>>2]|0)+-1|0}function Ss(a,b){a=a|0;b=b|0;a=k[a>>2]|0;return Ks(a,Rs(b)|0)|0}function Ts(a){a=a|0;mj(a);return}function Us(a){a=a|0;if(a)Lb[k[(k[a>>2]|0)+4>>2]&255](a);return}function Vs(a){a=a|0;var b=0;b=k[11052]|0;k[11052]=b+1;k[a+4>>2]=b+1;return}function Ws(a){a=a|0;mj(a);return}function Xs(a,b,c){a=a|0;b=b|0;c=c|0;if(c>>>0<128){c=(Ys()|0)+(c<<1)|0;c=(j[c>>1]&b)<<16>>16!=0}else c=0;return c|0}function Ys(){var a=0,b=0;x=0;a=Da(7)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function Zs(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=(c-b|0)>>>2;if((b|0)!=(c|0)){e=b;while(1){a=k[e>>2]|0;if(a>>>0<128){a=(Ys()|0)+(a<<1)|0;a=m[a>>1]|0}else a=0;j[d>>1]=a;e=e+4|0;if((e|0)==(c|0))break;else d=d+2|0}}return b+(f<<2)|0}function _s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0<128?(a=(Ys()|0)+(a<<1)|0,(j[a>>1]&b)<<16>>16!=0):0)break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}while(0);return c|0}function $s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:do if((c|0)==(d|0))c=d;else while(1){a=k[c>>2]|0;if(a>>>0>=128)break a;a=(Ys()|0)+(a<<1)|0;if(!((j[a>>1]&b)<<16>>16))break a;c=c+4|0;if((c|0)==(d|0)){c=d;break}}while(0);return c|0}function at(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(bt()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function bt(){var a=0,b=0;x=0;a=Da(8)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ct(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(bt()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function dt(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(et()|0)+(b<<2)|0;b=k[b>>2]|0}return b|0}function et(){var a=0,b=0;x=0;a=Da(9)|0;b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else return k[a>>2]|0;return 0}function ft(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(c-b|0)>>>2;if((b|0)!=(c|0)){d=b;do{a=k[d>>2]|0;if(a>>>0<128){a=(et()|0)+(a<<2)|0;a=k[a>>2]|0}k[d>>2]=a;d=d+4|0}while((d|0)!=(c|0))}return b+(e<<2)|0}function gt(a,b){a=a|0;b=b|0;return b<<24>>24|0}function ht(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){k[d>>2]=i[b>>0];b=b+1|0;if((b|0)==(c|0))break;else d=d+4|0}return c|0}function it(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function jt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=(c-b|0)>>>2;if((b|0)!=(c|0)){f=b;a=e;while(1){e=k[f>>2]|0;i[a>>0]=e>>>0<128?e&255:d;f=f+4|0;if((f|0)==(c|0))break;else a=a+1|0}}return b+(g<<2)|0}function kt(a){a=a|0;var b=0;k[a>>2]=44236;b=k[a+8>>2]|0;if((b|0)!=0?(i[a+12>>0]|0)!=0:0)nj(b);return}function lt(a){a=a|0;kt(a);mj(a);return}function mt(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(bt()|0)+((b&255)<<2)|0;b=k[b>>2]&255}return b|0}function nt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(bt()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function ot(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}return b|0}function pt(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=(c|0)){a=b;do{b=i[a>>0]|0;if(b<<24>>24>-1){b=(et()|0)+(b<<24>>24<<2)|0;b=k[b>>2]&255}i[a>>0]=b;a=a+1|0}while((a|0)!=(c|0))}return c|0}function qt(a,b){a=a|0;b=b|0;return b|0}function rt(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((b|0)!=(c|0))while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}return c|0}function st(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function tt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if((b|0)!=(c|0))while(1){a=i[b>>0]|0;i[e>>0]=a<<24>>24>-1?a:d;b=b+1|0;if((b|0)==(c|0))break;else e=e+1|0}return c|0}function ut(a){a=a|0;mj(a);return}function vt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k[e>>2]=c;k[h>>2]=f;return 3}function wt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;k[e>>2]=c;k[h>>2]=f;return 3}function xt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function yt(a){a=a|0;return 1}function zt(a){a=a|0;return 1}function At(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=d-c|0;return (a>>>0>>0?a:e)|0}function Bt(a){a=a|0;return 1}function Ct(a,b){a=a|0;b=b|0;var c=0;k[a+4>>2]=b+-1;k[a>>2]=44304;x=0;b=Da(3)|0;c=x;x=0;if(c&1){c=Wa()|0;fb(c|0)}else{k[a+8>>2]=b;return}}function Dt(a){a=a|0;Gu(a);mj(a);return} -function Hl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,m=0,n=0.0,o=0,q=0,s=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=r;r=r+624|0;ba=ga+24|0;da=ga+16|0;ca=ga+588|0;Y=ga+576|0;aa=ga;V=ga+536|0;fa=ga+8|0;ea=ga+528|0;L=(a|0)!=0;N=V+40|0;U=N;V=V+39|0;W=fa+4|0;X=Y+12|0;Y=Y+11|0;Z=ca;_=X;$=_-Z|0;O=-2-Z|0;P=_+2|0;Q=ba+288|0;R=ca+9|0;S=R;T=ca+8|0;f=0;w=b;g=0;b=0;a:while(1){do if((f|0)>-1)if((g|0)>(2147483647-f|0)){f=mk()|0;k[f>>2]=75;f=-1;break}else{f=g+f|0;break}while(0);g=i[w>>0]|0;if(!(g<<24>>24)){K=245;break}else h=w;b:while(1){switch(g<<24>>24){case 37:{g=h;K=9;break b}case 0:{g=h;break b}default:{}}J=h+1|0;g=i[J>>0]|0;h=J}c:do if((K|0)==9)while(1){K=0;if((i[g+1>>0]|0)!=37)break c;h=h+1|0;g=g+2|0;if((i[g>>0]|0)==37)K=9;else break}while(0);y=h-w|0;if(L?(k[a>>2]&32|0)==0:0)fl(w,y,a)|0;if((h|0)!=(w|0)){w=g;g=y;continue}o=g+1|0;h=i[o>>0]|0;m=(h<<24>>24)+-48|0;if(m>>>0<10){J=(i[g+2>>0]|0)==36;o=J?g+3|0:o;h=i[o>>0]|0;u=J?m:-1;b=J?1:b}else u=-1;g=h<<24>>24;d:do if((g&-32|0)==32){m=0;while(1){if(!(1<>24)+-32|m;o=o+1|0;h=i[o>>0]|0;g=h<<24>>24;if((g&-32|0)!=32){q=m;g=o;break}}}else{q=0;g=o}while(0);do if(h<<24>>24==42){m=g+1|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[e+(h<<2)>>2]=10;b=1;g=g+3|0;h=k[d+((i[m>>0]|0)+-48<<3)>>2]|0}else{if(b){f=-1;break a}if(!L){x=q;g=m;b=0;J=0;break}b=(k[c>>2]|0)+(4-1)&~(4-1);h=k[b>>2]|0;k[c>>2]=b+4;b=0;g=m}if((h|0)<0){x=q|8192;J=0-h|0}else{x=q;J=h}}else{m=(h<<24>>24)+-48|0;if(m>>>0<10){h=0;do{h=(h*10|0)+m|0;g=g+1|0;m=(i[g>>0]|0)+-48|0}while(m>>>0<10);if((h|0)<0){f=-1;break a}else{x=q;J=h}}else{x=q;J=0}}while(0);e:do if((i[g>>0]|0)==46){m=g+1|0;h=i[m>>0]|0;if(h<<24>>24!=42){o=(h<<24>>24)+-48|0;if(o>>>0<10){g=m;h=0}else{g=m;o=0;break}while(1){h=(h*10|0)+o|0;g=g+1|0;o=(i[g>>0]|0)+-48|0;if(o>>>0>=10){o=h;break e}}}m=g+2|0;h=(i[m>>0]|0)+-48|0;if(h>>>0<10?(i[g+3>>0]|0)==36:0){k[e+(h<<2)>>2]=10;g=g+4|0;o=k[d+((i[m>>0]|0)+-48<<3)>>2]|0;break}if(b){f=-1;break a}if(L){g=(k[c>>2]|0)+(4-1)&~(4-1);o=k[g>>2]|0;k[c>>2]=g+4;g=m}else{g=m;o=0}}else o=-1;while(0);s=0;while(1){h=(i[g>>0]|0)+-65|0;if(h>>>0>57){f=-1;break a}m=g+1|0;h=i[56223+(s*58|0)+h>>0]|0;q=h&255;if((q+-1|0)>>>0<8){g=m;s=q}else{I=m;break}}if(!(h<<24>>24)){f=-1;break}m=(u|0)>-1;do if(h<<24>>24==19)if(m){f=-1;break a}else K=52;else{if(m){k[e+(u<<2)>>2]=q;G=d+(u<<3)|0;H=k[G+4>>2]|0;K=aa;k[K>>2]=k[G>>2];k[K+4>>2]=H;K=52;break}if(!L){f=0;break a}Ml(aa,q,c)}while(0);if((K|0)==52?(K=0,!L):0){w=I;g=y;continue}u=i[g>>0]|0;u=(s|0)!=0&(u&15|0)==3?u&-33:u;m=x&-65537;H=(x&8192|0)==0?x:m;f:do switch(u|0){case 110:switch(s|0){case 0:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 1:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 2:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}case 3:{j[k[aa>>2]>>1]=f;w=I;g=y;continue a}case 4:{i[k[aa>>2]>>0]=f;w=I;g=y;continue a}case 6:{k[k[aa>>2]>>2]=f;w=I;g=y;continue a}case 7:{w=k[aa>>2]|0;k[w>>2]=f;k[w+4>>2]=((f|0)<0)<<31>>31;w=I;g=y;continue a}default:{w=I;g=y;continue a}}case 112:{s=H|8;o=o>>>0>8?o:8;u=120;K=64;break}case 88:case 120:{s=H;K=64;break}case 111:{m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;if((h|0)==0&(m|0)==0)g=N;else{g=N;do{g=g+-1|0;i[g>>0]=h&7|48;h=uw(h|0,m|0,3)|0;m=M}while(!((h|0)==0&(m|0)==0))}if(!(H&8)){h=H;s=0;q=56703;K=77}else{s=U-g+1|0;h=H;o=(o|0)<(s|0)?s:o;s=0;q=56703;K=77}break}case 105:case 100:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;if((h|0)<0){g=rw(0,0,g|0,h|0)|0;h=M;m=aa;k[m>>2]=g;k[m+4>>2]=h;m=1;q=56703;K=76;break f}if(!(H&2048)){q=H&1;m=q;q=(q|0)==0?56703:56705;K=76}else{m=1;q=56704;K=76}break}case 117:{h=aa;g=k[h>>2]|0;h=k[h+4>>2]|0;m=0;q=56703;K=76;break}case 99:{i[V>>0]=k[aa>>2];w=V;h=1;s=0;u=56703;g=N;break}case 109:{g=mk()|0;g=nk(k[g>>2]|0)|0;K=82;break}case 115:{g=k[aa>>2]|0;g=(g|0)!=0?g:56713;K=82;break}case 67:{k[fa>>2]=k[aa>>2];k[W>>2]=0;k[aa>>2]=fa;o=-1;K=86;break}case 83:{if(!o){Ol(a,32,J,0,H);g=0;K=98}else K=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{n=+p[aa>>3];k[da>>2]=0;p[t>>3]=n;if((k[t+4>>2]|0)>=0)if(!(H&2048)){G=H&1;F=G;G=(G|0)==0?56721:56726}else{F=1;G=56723}else{n=-n;F=1;G=56720}p[t>>3]=n;E=k[t+4>>2]&2146435072;do if(E>>>0<2146435072|(E|0)==2146435072&0<0){v=+Gk(n,da)*2.0;h=v!=0.0;if(h)k[da>>2]=(k[da>>2]|0)+-1;C=u|32;if((C|0)==97){w=u&32;y=(w|0)==0?G:G+9|0;x=F|2;g=12-o|0;do if(!(o>>>0>11|(g|0)==0)){n=8.0;do{g=g+-1|0;n=n*16.0}while((g|0)!=0);if((i[y>>0]|0)==45){n=-(n+(-v-n));break}else{n=v+n-n;break}}else n=v;while(0);h=k[da>>2]|0;g=(h|0)<0?0-h|0:h;g=Nl(g,((g|0)<0)<<31>>31,X)|0;if((g|0)==(X|0)){i[Y>>0]=48;g=Y}i[g+-1>>0]=(h>>31&2)+43;s=g+-2|0;i[s>>0]=u+15;q=(o|0)<1;m=(H&8|0)==0;h=ca;while(1){G=~~n;g=h+1|0;i[h>>0]=l[56687+G>>0]|w;n=(n-+(G|0))*16.0;do if((g-Z|0)==1){if(m&(q&n==0.0))break;i[g>>0]=46;g=h+2|0}while(0);if(!(n!=0.0))break;else h=g}o=(o|0)!=0&(O+g|0)<(o|0)?P+o-s|0:$-s+g|0;m=o+x|0;Ol(a,32,J,m,H);if(!(k[a>>2]&32))fl(y,x,a)|0;Ol(a,48,J,m,H^65536);g=g-Z|0;if(!(k[a>>2]&32))fl(ca,g,a)|0;h=_-s|0;Ol(a,48,o-(g+h)|0,0,0);if(!(k[a>>2]&32))fl(s,h,a)|0;Ol(a,32,J,m,H^8192);g=(m|0)<(J|0)?J:m;break}g=(o|0)<0?6:o;if(h){h=(k[da>>2]|0)+-28|0;k[da>>2]=h;n=v*268435456.0}else{n=v;h=k[da>>2]|0}E=(h|0)<0?ba:Q;D=E;h=E;do{B=~~n>>>0;k[h>>2]=B;h=h+4|0;n=(n-+(B>>>0))*1.0e9}while(n!=0.0);m=h;h=k[da>>2]|0;if((h|0)>0){q=E;while(1){s=(h|0)>29?29:h;o=m+-4|0;do if(o>>>0>>0)o=q;else{h=0;do{B=ww(k[o>>2]|0,0,s|0)|0;B=tw(B|0,M|0,h|0,0)|0;h=M;A=Fw(B|0,h|0,1e9,0)|0;k[o>>2]=A;h=Ew(B|0,h|0,1e9,0)|0;o=o+-4|0}while(o>>>0>=q>>>0);if(!h){o=q;break}o=q+-4|0;k[o>>2]=h}while(0);while(1){if(m>>>0<=o>>>0)break;h=m+-4|0;if(!(k[h>>2]|0))m=h;else break}h=(k[da>>2]|0)-s|0;k[da>>2]=h;if((h|0)>0)q=o;else break}}else o=E;if((h|0)<0){y=((g+25|0)/9|0)+1|0;z=(C|0)==102;w=o;while(1){x=0-h|0;x=(x|0)>9?9:x;do if(w>>>0>>0){h=(1<>>x;o=0;s=w;do{B=k[s>>2]|0;k[s>>2]=(B>>>x)+o;o=ia(B&h,q)|0;s=s+4|0}while(s>>>0>>0);h=(k[w>>2]|0)==0?w+4|0:w;if(!o){o=h;break}k[m>>2]=o;o=h;m=m+4|0}else o=(k[w>>2]|0)==0?w+4|0:w;while(0);h=z?E:o;m=(m-h>>2|0)>(y|0)?h+(y<<2)|0:m;h=(k[da>>2]|0)+x|0;k[da>>2]=h;if((h|0)>=0){w=o;break}else w=o}}else w=o;do if(w>>>0>>0){h=(D-w>>2)*9|0;q=k[w>>2]|0;if(q>>>0<10)break;else o=10;do{o=o*10|0;h=h+1|0}while(q>>>0>=o>>>0)}else h=0;while(0);A=(C|0)==103;B=(g|0)!=0;o=g-((C|0)!=102?h:0)+((B&A)<<31>>31)|0;if((o|0)<(((m-D>>2)*9|0)+-9|0)){s=o+9216|0;z=(s|0)/9|0;o=E+(z+-1023<<2)|0;s=((s|0)%9|0)+1|0;if((s|0)<9){q=10;do{q=q*10|0;s=s+1|0}while((s|0)!=9)}else q=10;x=k[o>>2]|0;y=(x>>>0)%(q>>>0)|0;if((y|0)==0?(E+(z+-1022<<2)|0)==(m|0):0)q=w;else K=163;do if((K|0)==163){K=0;v=(((x>>>0)/(q>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;s=(q|0)/2|0;do if(y>>>0>>0)n=.5;else{if((y|0)==(s|0)?(E+(z+-1022<<2)|0)==(m|0):0){n=1.0;break}n=1.5}while(0);do if(F){if((i[G>>0]|0)!=45)break;v=-v;n=-n}while(0);s=x-y|0;k[o>>2]=s;if(!(v+n!=v)){q=w;break}C=s+q|0;k[o>>2]=C;if(C>>>0>999999999){h=w;while(1){q=o+-4|0;k[o>>2]=0;if(q>>>0>>0){h=h+-4|0;k[h>>2]=0}C=(k[q>>2]|0)+1|0;k[q>>2]=C;if(C>>>0>999999999)o=q;else{w=h;o=q;break}}}h=(D-w>>2)*9|0;s=k[w>>2]|0;if(s>>>0<10){q=w;break}else q=10;do{q=q*10|0;h=h+1|0}while(s>>>0>=q>>>0);q=w}while(0);C=o+4|0;w=q;m=m>>>0>C>>>0?C:m}y=0-h|0;while(1){if(m>>>0<=w>>>0){z=0;C=m;break}o=m+-4|0;if(!(k[o>>2]|0))m=o;else{z=1;C=m;break}}do if(A){g=(B&1^1)+g|0;if((g|0)>(h|0)&(h|0)>-5){u=u+-1|0;g=g+-1-h|0}else{u=u+-2|0;g=g+-1|0}m=H&8;if(m)break;do if(z){m=k[C+-4>>2]|0;if(!m){o=9;break}if(!((m>>>0)%10|0)){q=10;o=0}else{o=0;break}do{q=q*10|0;o=o+1|0}while(((m>>>0)%(q>>>0)|0|0)==0)}else o=9;while(0);m=((C-D>>2)*9|0)+-9|0;if((u|32|0)==102){m=m-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}else{m=m+h-o|0;m=(m|0)<0?0:m;g=(g|0)<(m|0)?g:m;m=0;break}}else m=H&8;while(0);x=g|m;q=(x|0)!=0&1;s=(u|32|0)==102;if(s){h=(h|0)>0?h:0;u=0}else{o=(h|0)<0?y:h;o=Nl(o,((o|0)<0)<<31>>31,X)|0;if((_-o|0)<2)do{o=o+-1|0;i[o>>0]=48}while((_-o|0)<2);i[o+-1>>0]=(h>>31&2)+43;D=o+-2|0;i[D>>0]=u;h=_-D|0;u=D}y=F+1+g+q+h|0;Ol(a,32,J,y,H);if(!(k[a>>2]&32))fl(G,F,a)|0;Ol(a,48,J,y,H^65536);do if(s){o=w>>>0>E>>>0?E:w;h=o;do{m=Nl(k[h>>2]|0,0,R)|0;do if((h|0)==(o|0)){if((m|0)!=(R|0))break;i[T>>0]=48;m=T}else{if(m>>>0<=ca>>>0)break;do{m=m+-1|0;i[m>>0]=48}while(m>>>0>ca>>>0)}while(0);if(!(k[a>>2]&32))fl(m,S-m|0,a)|0;h=h+4|0}while(h>>>0<=E>>>0);do if(x){if(k[a>>2]&32)break;fl(56755,1,a)|0}while(0);if((g|0)>0&h>>>0>>0){m=h;while(1){h=Nl(k[m>>2]|0,0,R)|0;if(h>>>0>ca>>>0)do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0);if(!(k[a>>2]&32))fl(h,(g|0)>9?9:g,a)|0;m=m+4|0;h=g+-9|0;if(!((g|0)>9&m>>>0>>0)){g=h;break}else g=h}}Ol(a,48,g+9|0,9,0)}else{s=z?C:w+4|0;if((g|0)>-1){q=(m|0)==0;o=w;do{h=Nl(k[o>>2]|0,0,R)|0;if((h|0)==(R|0)){i[T>>0]=48;h=T}do if((o|0)==(w|0)){m=h+1|0;if(!(k[a>>2]&32))fl(h,1,a)|0;if(q&(g|0)<1){h=m;break}if(k[a>>2]&32){h=m;break}fl(56755,1,a)|0;h=m}else{if(h>>>0<=ca>>>0)break;do{h=h+-1|0;i[h>>0]=48}while(h>>>0>ca>>>0)}while(0);m=S-h|0;if(!(k[a>>2]&32))fl(h,(g|0)>(m|0)?m:g,a)|0;g=g-m|0;o=o+4|0}while(o>>>0>>0&(g|0)>-1)}Ol(a,48,g+18|0,18,0);if(k[a>>2]&32)break;fl(u,_-u|0,a)|0}while(0);Ol(a,32,J,y,H^8192);g=(y|0)<(J|0)?J:y}else{s=(u&32|0)!=0;q=n!=n|0.0!=0.0;h=q?0:F;o=h+3|0;Ol(a,32,J,o,m);g=k[a>>2]|0;if(!(g&32)){fl(G,h,a)|0;g=k[a>>2]|0}if(!(g&32))fl(q?(s?56747:56751):s?56739:56743,3,a)|0;Ol(a,32,J,o,H^8192);g=(o|0)<(J|0)?J:o}while(0);w=I;continue a}default:{m=H;h=o;s=0;u=56703;g=N}}while(0);g:do if((K|0)==64){m=aa;h=k[m>>2]|0;m=k[m+4>>2]|0;q=u&32;if(!((h|0)==0&(m|0)==0)){g=N;do{g=g+-1|0;i[g>>0]=l[56687+(h&15)>>0]|q;h=uw(h|0,m|0,4)|0;m=M}while(!((h|0)==0&(m|0)==0));K=aa;if((s&8|0)==0|(k[K>>2]|0)==0&(k[K+4>>2]|0)==0){h=s;s=0;q=56703;K=77}else{h=s;s=2;q=56703+(u>>4)|0;K=77}}else{g=N;h=s;s=0;q=56703;K=77}}else if((K|0)==76){g=Nl(g,h,N)|0;h=H;s=m;K=77}else if((K|0)==82){K=0;H=tl(g,0,o)|0;G=(H|0)==0;w=g;h=G?o:H-g|0;s=0;u=56703;g=G?g+o|0:H}else if((K|0)==86){K=0;h=0;g=0;q=k[aa>>2]|0;while(1){m=k[q>>2]|0;if(!m)break;g=Sk(ea,m)|0;if((g|0)<0|g>>>0>(o-h|0)>>>0)break;h=g+h|0;if(o>>>0>h>>>0)q=q+4|0;else break}if((g|0)<0){f=-1;break a}Ol(a,32,J,h,H);if(!h){g=0;K=98}else{m=0;o=k[aa>>2]|0;while(1){g=k[o>>2]|0;if(!g){g=h;K=98;break g}g=Sk(ea,g)|0;m=g+m|0;if((m|0)>(h|0)){g=h;K=98;break g}if(!(k[a>>2]&32))fl(ea,g,a)|0;if(m>>>0>=h>>>0){g=h;K=98;break}else o=o+4|0}}}while(0);if((K|0)==98){K=0;Ol(a,32,J,g,H^8192);w=I;g=(J|0)>(g|0)?J:g;continue}if((K|0)==77){K=0;m=(o|0)>-1?h&-65537:h;h=aa;h=(k[h>>2]|0)!=0|(k[h+4>>2]|0)!=0;if((o|0)!=0|h){h=(h&1^1)+(U-g)|0;w=g;h=(o|0)>(h|0)?o:h;u=q;g=N}else{w=N;h=0;u=q;g=N}}q=g-w|0;h=(h|0)<(q|0)?q:h;o=s+h|0;g=(J|0)<(o|0)?o:J;Ol(a,32,g,o,m);if(!(k[a>>2]&32))fl(u,s,a)|0;Ol(a,48,g,o,m^65536);Ol(a,48,h,q,0);if(!(k[a>>2]&32))fl(w,q,a)|0;Ol(a,32,g,o,m^8192);w=I}h:do if((K|0)==245)if(!a)if(b){f=1;while(1){b=k[e+(f<<2)>>2]|0;if(!b)break;Ml(d+(f<<3)|0,b,c);f=f+1|0;if((f|0)>=10){f=1;break h}}if((f|0)<10)while(1){if(k[e+(f<<2)>>2]|0){f=-1;break h}f=f+1|0;if((f|0)>=10){f=1;break}}else f=1}else f=0;while(0);r=ga;return f|0}function Il(a,b,c){a=a|0;b=b|0;c=c|0;return $k(a,b,c)|0}function Jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+112|0;g=h;e=g;f=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(f|0));e=g+4|0;k[e>>2]=a;f=g+8|0;k[f>>2]=-1;k[g+44>>2]=a;k[g+76>>2]=-1;qk(g,0);d=+ok(g,c,1);c=(k[e>>2]|0)-(k[f>>2]|0)+(k[g+108>>2]|0)|0;if(b)k[b>>2]=(c|0)!=0?a+c|0:a;r=h;return +d}function Kl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=r;r=r+112|0;h=i;k[h>>2]=0;f=h+4|0;k[f>>2]=a;k[h+44>>2]=a;g=h+8|0;k[g>>2]=(a|0)<0?-1:a+2147483647|0;k[h+76>>2]=-1;qk(h,0);d=pk(h,c,1,d,e)|0;if(b)k[b>>2]=a+((k[f>>2]|0)+(k[h+108>>2]|0)-(k[g>>2]|0));r=i;return d|0}function Ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a+20|0;e=k[d>>2]|0;a=(k[a+16>>2]|0)-e|0;a=a>>>0>c>>>0?c:a;vw(e|0,b|0,a|0)|0;k[d>>2]=(k[d>>2]|0)+a;return c|0}function Ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;k[a>>2]=b;break a}case 10:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{d=(k[c>>2]|0)+(4-1)&~(4-1);b=k[d>>2]|0;k[c>>2]=d+4;d=a;k[d>>2]=b;k[d+4>>2]=0;break a}case 12:{d=(k[c>>2]|0)+(8-1)&~(8-1);b=d;e=k[b>>2]|0;b=k[b+4>>2]|0;k[c>>2]=d+8;d=a;k[d>>2]=e;k[d+4>>2]=b;break a}case 13:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&65535)<<16>>16;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 14:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&65535;k[e+4>>2]=0;break a}case 15:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;d=(d&255)<<24>>24;e=a;k[e>>2]=d;k[e+4>>2]=((d|0)<0)<<31>>31;break a}case 16:{e=(k[c>>2]|0)+(4-1)&~(4-1);d=k[e>>2]|0;k[c>>2]=e+4;e=a;k[e>>2]=d&255;k[e+4>>2]=0;break a}case 17:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}case 18:{e=(k[c>>2]|0)+(8-1)&~(8-1);f=+p[e>>3];k[c>>2]=e+8;p[a>>3]=f;break a}default:break a}while(0);while(0);return}function Nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(b>>>0>0|(b|0)==0&a>>>0>4294967295)while(1){d=Fw(a|0,b|0,10,0)|0;c=c+-1|0;i[c>>0]=d|48;d=Ew(a|0,b|0,10,0)|0;if(b>>>0>9|(b|0)==9&a>>>0>4294967295){a=d;b=M}else{a=d;break}}if(a)while(1){c=c+-1|0;i[c>>0]=(a>>>0)%10|0|48;if(a>>>0<10)break;else a=(a>>>0)/10|0}return c|0}function Ol(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=r;r=r+256|0;g=h;do if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;sw(g|0,b|0,(e>>>0>256?256:e)|0)|0;b=k[a>>2]|0;f=(b&32|0)==0;if(e>>>0>255){d=c-d|0;do{if(f){fl(g,256,a)|0;b=k[a>>2]|0}e=e+-256|0;f=(b&32|0)==0}while(e>>>0>255);if(f)e=d&255;else break}else if(!f)break;fl(g,e,a)|0}while(0);r=h;return}function Pl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;h=k[10218]|0;c=h>>>a;if(c&3){a=(c&1^1)+a|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;e=k[d>>2]|0;f=e+8|0;g=k[f>>2]|0;do if((c|0)!=(g|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();b=g+12|0;if((k[b>>2]|0)==(e|0)){k[b>>2]=c;k[d>>2]=g;break}else Pa()}else k[10218]=h&~(1<>2]=M|3;M=e+(M|4)|0;k[M>>2]=k[M>>2]|1;M=f;return M|0}g=k[10220]|0;if(o>>>0>g>>>0){if(c){d=2<>>12&16;d=d>>>i;e=d>>>5&8;d=d>>>e;f=d>>>2&4;d=d>>>f;c=d>>>1&2;d=d>>>c;a=d>>>1&1;a=(e|i|f|c|a)+(d>>>a)|0;d=a<<1;c=40912+(d<<2)|0;d=40912+(d+2<<2)|0;f=k[d>>2]|0;i=f+8|0;e=k[i>>2]|0;do if((c|0)!=(e|0)){if(e>>>0<(k[10222]|0)>>>0)Pa();b=e+12|0;if((k[b>>2]|0)==(f|0)){k[b>>2]=c;k[d>>2]=e;j=k[10220]|0;break}else Pa()}else{k[10218]=h&~(1<>2]=o|3;h=f+o|0;k[f+(o|4)>>2]=g|1;k[f+M>>2]=g;if(j){e=k[10223]|0;c=j>>>3;b=c<<1;d=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(b>>>0<(k[10222]|0)>>>0)Pa();else{l=a;m=b}}else{k[10218]=a|c;l=40912+(b+2<<2)|0;m=d}k[l>>2]=e;k[m+12>>2]=e;k[e+8>>2]=m;k[e+12>>2]=d}k[10220]=g;k[10223]=h;M=i;return M|0}a=k[10219]|0;if(a){c=(a&0-a)+-1|0;L=c>>>12&16;c=c>>>L;K=c>>>5&8;c=c>>>K;M=c>>>2&4;c=c>>>M;a=c>>>1&2;c=c>>>a;d=c>>>1&1;d=k[41176+((K|L|M|a|d)+(c>>>d)<<2)>>2]|0;c=(k[d+4>>2]&-8)-o|0;a=d;while(1){b=k[a+16>>2]|0;if(!b){b=k[a+20>>2]|0;if(!b){i=c;break}}a=(k[b+4>>2]&-8)-o|0;M=a>>>0>>0;c=M?a:c;a=b;d=M?b:d}f=k[10222]|0;if(d>>>0>>0)Pa();h=d+o|0;if(d>>>0>=h>>>0)Pa();g=k[d+24>>2]|0;c=k[d+12>>2]|0;do if((c|0)==(d|0)){a=d+20|0;b=k[a>>2]|0;if(!b){a=d+16|0;b=k[a>>2]|0;if(!b){n=0;break}}while(1){c=b+20|0;e=k[c>>2]|0;if(e){b=e;a=c;continue}c=b+16|0;e=k[c>>2]|0;if(!e)break;else{b=e;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;n=b;break}}else{e=k[d+8>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(d|0))Pa();a=c+8|0;if((k[a>>2]|0)==(d|0)){k[b>>2]=c;k[a>>2]=e;n=c;break}else Pa()}while(0);do if(g){b=k[d+28>>2]|0;a=41176+(b<<2)|0;if((d|0)==(k[a>>2]|0)){k[a>>2]=n;if(!n){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(d|0))k[b>>2]=n;else k[g+20>>2]=n;if(!n)break}a=k[10222]|0;if(n>>>0>>0)Pa();k[n+24>>2]=g;b=k[d+16>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[n+16>>2]=b;k[b+24>>2]=n;break}while(0);b=k[d+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[n+20>>2]=b;k[b+24>>2]=n;break}}while(0);if(i>>>0<16){M=i+o|0;k[d+4>>2]=M|3;M=d+(M+4)|0;k[M>>2]=k[M>>2]|1}else{k[d+4>>2]=o|3;k[d+(o|4)>>2]=i|1;k[d+(i+o)>>2]=i;b=k[10220]|0;if(b){f=k[10223]|0;c=b>>>3;b=c<<1;e=40912+(b<<2)|0;a=k[10218]|0;c=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{p=b;q=a}}else{k[10218]=a|c;p=40912+(b+2<<2)|0;q=e}k[p>>2]=f;k[q+12>>2]=f;k[f+8>>2]=q;k[f+12>>2]=e}k[10220]=i;k[10223]=h}M=d+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=k[10219]|0;if(l){c=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)j=31;else{q=(a+1048320|0)>>>16&8;v=a<>>16&4;v=v<>>16&2;j=14-(p|q|j)+(v<>>15)|0;j=m>>>(j+7|0)&1|j<<1}else j=0;a=k[41176+(j<<2)>>2]|0;a:do if(!a){e=0;a=0;v=86}else{g=c;e=0;h=m<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){f=k[i+4>>2]&-8;c=f-m|0;if(c>>>0>>0)if((f|0)==(m|0)){f=i;a=i;v=90;break a}else a=i;else c=g;v=k[i+20>>2]|0;i=k[i+16+(h>>>31<<2)>>2]|0;e=(v|0)==0|(v|0)==(i|0)?e:v;if(!i){v=86;break}else{g=c;h=h<<1}}}while(0);if((v|0)==86){if((e|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;e=a>>>1&1;e=k[41176+((l|n|p|q|e)+(a>>>e)<<2)>>2]|0;a=0}if(!e){h=c;i=a}else{f=e;v=90}}if((v|0)==90)while(1){v=0;q=(k[f+4>>2]&-8)-m|0;e=q>>>0>>0;c=e?q:c;a=e?f:a;e=k[f+16>>2]|0;if(e){f=e;v=90;continue}f=k[f+20>>2]|0;if(!f){h=c;i=a;break}else v=90}if((i|0)!=0?h>>>0<((k[10220]|0)-m|0)>>>0:0){e=k[10222]|0;if(i>>>0>>0)Pa();g=i+m|0;if(i>>>0>=g>>>0)Pa();f=k[i+24>>2]|0;c=k[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;b=k[a>>2]|0;if(!b){a=i+16|0;b=k[a>>2]|0;if(!b){o=0;break}}while(1){c=b+20|0;d=k[c>>2]|0;if(d){b=d;a=c;continue}c=b+16|0;d=k[c>>2]|0;if(!d)break;else{b=d;a=c}}if(a>>>0>>0)Pa();else{k[a>>2]=0;o=b;break}}else{d=k[i+8>>2]|0;if(d>>>0>>0)Pa();b=d+12|0;if((k[b>>2]|0)!=(i|0))Pa();a=c+8|0;if((k[a>>2]|0)==(i|0)){k[b>>2]=c;k[a>>2]=d;o=c;break}else Pa()}while(0);do if(f){b=k[i+28>>2]|0;a=41176+(b<<2)|0;if((i|0)==(k[a>>2]|0)){k[a>>2]=o;if(!o){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=f+16|0;if((k[b>>2]|0)==(i|0))k[b>>2]=o;else k[f+20>>2]=o;if(!o)break}a=k[10222]|0;if(o>>>0>>0)Pa();k[o+24>>2]=f;b=k[i+16>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[o+16>>2]=b;k[b+24>>2]=o;break}while(0);b=k[i+20>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[o+20>>2]=b;k[b+24>>2]=o;break}}while(0);b:do if(h>>>0>=16){k[i+4>>2]=m|3;k[i+(m|4)>>2]=h|1;k[i+(h+m)>>2]=h;b=h>>>3;if(h>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{s=b;t=a}}else{k[10218]=c|b;s=40912+(a+2<<2)|0;t=d}k[s>>2]=g;k[t+12>>2]=g;k[i+(m+8)>>2]=t;k[i+(m+12)>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=41176+(d<<2)|0;k[i+(m+28)>>2]=d;k[i+(m+20)>>2]=0;k[i+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break}b=k[b>>2]|0;c:do if((k[b+4>>2]&-8|0)!=(h|0)){d=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(h|0)){y=c;break c}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[i+(m+24)>>2]=b;k[i+(m+12)>>2]=g;k[i+(m+8)>>2]=g;break b}}else y=b;while(0);b=y+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[i+(m+8)>>2]=a;k[i+(m+12)>>2]=y;k[i+(m+24)>>2]=0;break}else Pa()}else{M=h+m|0;k[i+4>>2]=M|3;M=i+(M+4)|0;k[M>>2]=k[M>>2]|1}while(0);M=i+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);c=k[10220]|0;if(c>>>0>=q>>>0){b=c-q|0;a=k[10223]|0;if(b>>>0>15){k[10223]=a+q;k[10220]=b;k[a+(q+4)>>2]=b|1;k[a+c>>2]=b;k[a+4>>2]=q|3}else{k[10220]=0;k[10223]=0;k[a+4>>2]=c|3;M=a+(c+4)|0;k[M>>2]=k[M>>2]|1}M=a+8|0;return M|0}a=k[10221]|0;if(a>>>0>q>>>0){L=a-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(k[10336]|0)){a=hb(30)|0;if(!(a+-1&a)){k[10338]=a;k[10337]=a;k[10339]=-1;k[10340]=-1;k[10341]=0;k[10329]=0;y=(zb(0)|0)&-16^1431655768;k[10336]=y;break}else Pa()}while(0);i=q+48|0;h=k[10338]|0;j=q+47|0;g=h+j|0;h=0-h|0;l=g&h;if(l>>>0<=q>>>0){M=0;return M|0}a=k[10328]|0;if((a|0)!=0?(t=k[10326]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(k[10329]&4)){a=k[10224]|0;e:do if(a){e=41320;while(1){c=k[e>>2]|0;if(c>>>0<=a>>>0?(r=e+4|0,(c+(k[r>>2]|0)|0)>>>0>a>>>0):0){f=e;a=r;break}e=k[e+8>>2]|0;if(!e){v=174;break e}}c=g-(k[10221]|0)&h;if(c>>>0<2147483647){e=bb(c|0)|0;y=(e|0)==((k[f>>2]|0)+(k[a>>2]|0)|0);a=y?c:0;if(y){if((e|0)!=(-1|0)){w=e;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){f=bb(0)|0;if((f|0)!=(-1|0)){a=f;c=k[10337]|0;e=c+-1|0;if(!(e&a))c=l;else c=l-a+(e+a&0-c)|0;a=k[10326]|0;e=a+c|0;if(c>>>0>q>>>0&c>>>0<2147483647){y=k[10328]|0;if((y|0)!=0?e>>>0<=a>>>0|e>>>0>y>>>0:0){a=0;break}e=bb(c|0)|0;y=(e|0)==(f|0);a=y?c:0;if(y){w=f;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){f=0-c|0;do if(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))?(u=k[10338]|0,u=j-c+u&0-u,u>>>0<2147483647):0)if((bb(u|0)|0)==(-1|0)){bb(f|0)|0;break f}else{c=u+c|0;break}while(0);if((e|0)!=(-1|0)){w=e;p=c;v=194;break d}}while(0);k[10329]=k[10329]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=bb(l|0)|0,x=bb(0)|0,w>>>0>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(k[10326]|0)+p|0;k[10326]=a;if(a>>>0>(k[10327]|0)>>>0)k[10327]=a;g=k[10224]|0;g:do if(g){f=41320;do{a=k[f>>2]|0;c=f+4|0;e=k[c>>2]|0;if((w|0)==(a+e|0)){B=a;C=c;D=e;E=f;v=204;break}f=k[f+8>>2]|0}while((f|0)!=0);if(((v|0)==204?(k[E+12>>2]&8|0)==0:0)?g>>>0>>0&g>>>0>=B>>>0:0){k[C>>2]=D+p;M=(k[10221]|0)+p|0;L=g+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;k[10224]=g+L;k[10221]=K;k[g+(L+4)>>2]=K|1;k[g+(M+4)>>2]=40;k[10225]=k[10340];break}a=k[10222]|0;if(w>>>0>>0){k[10222]=w;a=w}c=w+p|0;f=41320;while(1){if((k[f>>2]|0)==(c|0)){e=f;c=f;v=212;break}f=k[f+8>>2]|0;if(!f){c=41320;break}}if((v|0)==212)if(!(k[c+12>>2]&8)){k[e>>2]=w;n=c+4|0;k[n>>2]=(k[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;j=w+(p+8)|0;j=(j&7|0)==0?0:0-j&7;b=w+(j+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;k[w+(n+4)>>2]=q|3;h:do if((b|0)!=(g|0)){if((b|0)==(k[10223]|0)){M=(k[10220]|0)+l|0;k[10220]=M;k[10223]=o;k[w+(m+4)>>2]=M|1;k[w+(M+m)>>2]=M;break}h=p+4|0;c=k[w+(h+j)>>2]|0;if((c&3|0)==1){i=c&-8;f=c>>>3;i:do if(c>>>0>=256){g=k[w+((j|24)+p)>>2]|0;d=k[w+(p+12+j)>>2]|0;do if((d|0)==(b|0)){e=j|16;d=w+(h+e)|0;c=k[d>>2]|0;if(!c){d=w+(e+p)|0;c=k[d>>2]|0;if(!c){J=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;J=c;break}}else{e=k[w+((j|8)+p)>>2]|0;if(e>>>0>>0)Pa();a=e+12|0;if((k[a>>2]|0)!=(b|0))Pa();c=d+8|0;if((k[c>>2]|0)==(b|0)){k[a>>2]=d;k[c>>2]=e;J=d;break}else Pa()}while(0);if(!g)break;a=k[w+(p+28+j)>>2]|0;c=41176+(a<<2)|0;do if((b|0)!=(k[c>>2]|0)){if(g>>>0<(k[10222]|0)>>>0)Pa();a=g+16|0;if((k[a>>2]|0)==(b|0))k[a>>2]=J;else k[g+20>>2]=J;if(!J)break i}else{k[c>>2]=J;if(J)break;k[10219]=k[10219]&~(1<>>0>>0)Pa();k[J+24>>2]=g;b=j|16;a=k[w+(b+p)>>2]|0;do if(a)if(a>>>0>>0)Pa();else{k[J+16>>2]=a;k[a+24>>2]=J;break}while(0);b=k[w+(h+b)>>2]|0;if(!b)break;if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[J+20>>2]=b;k[b+24>>2]=J;break}}else{d=k[w+((j|8)+p)>>2]|0;e=k[w+(p+12+j)>>2]|0;c=40912+(f<<1<<2)|0;do if((d|0)!=(c|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)==(b|0))break;Pa()}while(0);if((e|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();a=e+8|0;if((k[a>>2]|0)==(b|0)){F=a;break}Pa()}while(0);k[d+12>>2]=e;k[F>>2]=d}while(0);b=w+((i|j)+p)|0;e=i+l|0}else e=l;b=b+4|0;k[b>>2]=k[b>>2]&-2;k[w+(m+4)>>2]=e|1;k[w+(e+m)>>2]=e;b=e>>>3;if(e>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0>=(k[10222]|0)>>>0){K=b;L=a;break}Pa()}while(0);k[K>>2]=o;k[L+12>>2]=o;k[w+(m+8)>>2]=L;k[w+(m+12)>>2]=d;break}b=e>>>8;do if(!b)d=0;else{if(e>>>0>16777215){d=31;break}K=(b+1048320|0)>>>16&8;L=b<>>16&4;L=L<>>16&2;d=14-(J|K|d)+(L<>>15)|0;d=e>>>(d+7|0)&1|d<<1}while(0);b=41176+(d<<2)|0;k[w+(m+28)>>2]=d;k[w+(m+20)>>2]=0;k[w+(m+16)>>2]=0;a=k[10219]|0;c=1<>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break}b=k[b>>2]|0;j:do if((k[b+4>>2]&-8|0)!=(e|0)){d=e<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(e|0)){M=c;break j}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=o;k[w+(m+24)>>2]=b;k[w+(m+12)>>2]=o;k[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=k[b>>2]|0;L=k[10222]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){k[a+12>>2]=o;k[b>>2]=o;k[w+(m+8)>>2]=a;k[w+(m+12)>>2]=M;k[w+(m+24)>>2]=0;break}else Pa()}else{M=(k[10221]|0)+l|0;k[10221]=M;k[10224]=o;k[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else c=41320;while(1){a=k[c>>2]|0;if(a>>>0<=g>>>0?(b=k[c+4>>2]|0,d=a+b|0,d>>>0>g>>>0):0)break;c=k[c+8>>2]|0}e=a+(b+-39)|0;a=a+(b+-47+((e&7|0)==0?0:0-e&7))|0;e=g+16|0;a=a>>>0>>0?g:a;b=a+8|0;c=w+8|0;c=(c&7|0)==0?0:0-c&7;M=p+-40-c|0;k[10224]=w+c;k[10221]=M;k[w+(c+4)>>2]=M|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340];c=a+4|0;k[c>>2]=27;k[b>>2]=k[10330];k[b+4>>2]=k[10331];k[b+8>>2]=k[10332];k[b+12>>2]=k[10333];k[10330]=w;k[10331]=p;k[10333]=0;k[10332]=b;b=a+28|0;k[b>>2]=7;if((a+32|0)>>>0>>0)do{M=b;b=b+4|0;k[b>>2]=7}while((M+8|0)>>>0>>0);if((a|0)!=(g|0)){f=a-g|0;k[c>>2]=k[c>>2]&-2;k[g+4>>2]=f|1;k[a>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;d=40912+(a<<2)|0;c=k[10218]|0;b=1<>2]|0;if(a>>>0<(k[10222]|0)>>>0)Pa();else{G=b;H=a}}else{k[10218]=c|b;G=40912+(a+2<<2)|0;H=d}k[G>>2]=g;k[H+12>>2]=g;k[g+8>>2]=H;k[g+12>>2]=d;break}b=f>>>8;if(b)if(f>>>0>16777215)d=31;else{L=(b+1048320|0)>>>16&8;M=b<>>16&4;M=M<>>16&2;d=14-(K|L|d)+(M<>>15)|0;d=f>>>(d+7|0)&1|d<<1}else d=0;c=41176+(d<<2)|0;k[g+28>>2]=d;k[g+20>>2]=0;k[e>>2]=0;b=k[10219]|0;a=1<>2]=g;k[g+24>>2]=c;k[g+12>>2]=g;k[g+8>>2]=g;break}b=k[c>>2]|0;k:do if((k[b+4>>2]&-8|0)!=(f|0)){d=f<<((d|0)==31?0:25-(d>>>1)|0);while(1){a=b+16+(d>>>31<<2)|0;c=k[a>>2]|0;if(!c)break;if((k[c+4>>2]&-8|0)==(f|0)){I=c;break k}else{d=d<<1;b=c}}if(a>>>0<(k[10222]|0)>>>0)Pa();else{k[a>>2]=g;k[g+24>>2]=b;k[g+12>>2]=g;k[g+8>>2]=g;break g}}else I=b;while(0);b=I+8|0;a=k[b>>2]|0;M=k[10222]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){k[a+12>>2]=g;k[b>>2]=g;k[g+8>>2]=a;k[g+12>>2]=I;k[g+24>>2]=0;break}else Pa()}}else{M=k[10222]|0;if((M|0)==0|w>>>0>>0)k[10222]=w;k[10330]=w;k[10331]=p;k[10333]=0;k[10227]=k[10336];k[10226]=-1;b=0;do{M=b<<1;L=40912+(M<<2)|0;k[40912+(M+3<<2)>>2]=L;k[40912+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;k[10224]=w+M;k[10221]=L;k[w+(M+4)>>2]=L|1;k[w+(p+-36)>>2]=40;k[10225]=k[10340]}while(0);b=k[10221]|0;if(b>>>0>q>>>0){L=b-q|0;k[10221]=L;M=k[10224]|0;k[10224]=M+q;k[M+(q+4)>>2]=L|1;k[M+4>>2]=q|3;M=M+8|0;return M|0}}M=mk()|0;k[M>>2]=12;M=0;return M|0}function Ql(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;h=k[10222]|0;if(b>>>0>>0)Pa();c=k[a+-4>>2]|0;d=c&3;if((d|0)==1)Pa();o=c&-8;q=a+(o+-8)|0;do if(!(c&1)){b=k[b>>2]|0;if(!d)return;i=-8-b|0;l=a+i|0;m=b+o|0;if(l>>>0>>0)Pa();if((l|0)==(k[10223]|0)){b=a+(o+-4)|0;c=k[b>>2]|0;if((c&3|0)!=3){u=l;f=m;break}k[10220]=m;k[b>>2]=c&-2;k[a+(i+4)>>2]=m|1;k[q>>2]=m;return}e=b>>>3;if(b>>>0<256){d=k[a+(i+8)>>2]|0;c=k[a+(i+12)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0>>0)Pa();if((k[d+12>>2]|0)!=(l|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(l|0))g=b;else Pa()}else g=c+8|0;k[d+12>>2]=c;k[g>>2]=d;u=l;f=m;break}g=k[a+(i+24)>>2]|0;d=k[a+(i+12)>>2]|0;do if((d|0)==(l|0)){c=a+(i+20)|0;b=k[c>>2]|0;if(!b){c=a+(i+16)|0;b=k[c>>2]|0;if(!b){j=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0>>0)Pa();else{k[c>>2]=0;j=b;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();b=e+12|0;if((k[b>>2]|0)!=(l|0))Pa();c=d+8|0;if((k[c>>2]|0)==(l|0)){k[b>>2]=d;k[c>>2]=e;j=d;break}else Pa()}while(0);if(g){b=k[a+(i+28)>>2]|0;c=41176+(b<<2)|0;if((l|0)==(k[c>>2]|0)){k[c>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(l|0))k[b>>2]=j;else k[g+20>>2]=j;if(!j){u=l;f=m;break}}c=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;b=k[a+(i+16)>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[j+16>>2]=b;k[b+24>>2]=j;break}while(0);b=k[a+(i+20)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=b;k[b+24>>2]=j;u=l;f=m;break}else{u=l;f=m}}else{u=l;f=m}}else{u=b;f=o}while(0);if(u>>>0>=q>>>0)Pa();b=a+(o+-4)|0;c=k[b>>2]|0;if(!(c&1))Pa();if(!(c&2)){if((q|0)==(k[10224]|0)){t=(k[10221]|0)+f|0;k[10221]=t;k[10224]=u;k[u+4>>2]=t|1;if((u|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){t=(k[10220]|0)+f|0;k[10220]=t;k[10223]=u;k[u+4>>2]=t|1;k[u+t>>2]=t;return}f=(c&-8)+f|0;e=c>>>3;do if(c>>>0>=256){g=k[a+(o+16)>>2]|0;b=k[a+(o|4)>>2]|0;do if((b|0)==(q|0)){c=a+(o+12)|0;b=k[c>>2]|0;if(!b){c=a+(o+8)|0;b=k[c>>2]|0;if(!b){p=0;break}}while(1){d=b+20|0;e=k[d>>2]|0;if(e){b=e;c=d;continue}d=b+16|0;e=k[d>>2]|0;if(!e)break;else{b=e;c=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=0;p=b;break}}else{c=k[a+o>>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();d=c+12|0;if((k[d>>2]|0)!=(q|0))Pa();e=b+8|0;if((k[e>>2]|0)==(q|0)){k[d>>2]=b;k[e>>2]=c;p=b;break}else Pa()}while(0);if(g){b=k[a+(o+20)>>2]|0;c=41176+(b<<2)|0;if((q|0)==(k[c>>2]|0)){k[c>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=g+16|0;if((k[b>>2]|0)==(q|0))k[b>>2]=p;else k[g+20>>2]=p;if(!p)break}c=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=g;b=k[a+(o+8)>>2]|0;do if(b)if(b>>>0>>0)Pa();else{k[p+16>>2]=b;k[b+24>>2]=p;break}while(0);b=k[a+(o+12)>>2]|0;if(b)if(b>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=b;k[b+24>>2]=p;break}}}else{d=k[a+o>>2]|0;c=k[a+(o|4)>>2]|0;b=40912+(e<<1<<2)|0;if((d|0)!=(b|0)){if(d>>>0<(k[10222]|0)>>>0)Pa();if((k[d+12>>2]|0)!=(q|0))Pa()}if((c|0)==(d|0)){k[10218]=k[10218]&~(1<>>0<(k[10222]|0)>>>0)Pa();b=c+8|0;if((k[b>>2]|0)==(q|0))n=b;else Pa()}else n=c+8|0;k[d+12>>2]=c;k[n>>2]=d}while(0);k[u+4>>2]=f|1;k[u+f>>2]=f;if((u|0)==(k[10223]|0)){k[10220]=f;return}}else{k[b>>2]=c&-2;k[u+4>>2]=f|1;k[u+f>>2]=f}b=f>>>3;if(f>>>0<256){c=b<<1;e=40912+(c<<2)|0;d=k[10218]|0;b=1<>2]|0;if(c>>>0<(k[10222]|0)>>>0)Pa();else{r=b;s=c}}else{k[10218]=d|b;r=40912+(c+2<<2)|0;s=e}k[r>>2]=u;k[s+12>>2]=u;k[u+8>>2]=s;k[u+12>>2]=e;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{r=(b+1048320|0)>>>16&8;s=b<>>16&4;s=s<>>16&2;e=14-(q|r|e)+(s<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=41176+(e<<2)|0;k[u+28>>2]=e;k[u+20>>2]=0;k[u+16>>2]=0;c=k[10219]|0;d=1<>2]|0;b:do if((k[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){c=b+16+(e>>>31<<2)|0;d=k[c>>2]|0;if(!d)break;if((k[d+4>>2]&-8|0)==(f|0)){t=d;break b}else{e=e<<1;b=d}}if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[c>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;c=k[b>>2]|0;s=k[10222]|0;if(c>>>0>=s>>>0&t>>>0>=s>>>0){k[c+12>>2]=u;k[b>>2]=u;k[u+8>>2]=c;k[u+12>>2]=t;k[u+24>>2]=0;break}else Pa()}else{k[10219]=c|d;k[b>>2]=u;k[u+24>>2]=b;k[u+12>>2]=u;k[u+8>>2]=u}while(0);u=(k[10226]|0)+-1|0;k[10226]=u;if(!u)b=41328;else return;while(1){b=k[b>>2]|0;if(!b)break;else b=b+8|0}k[10226]=-1;return}function Rl(a,b){a=a|0;b=b|0;var c=0;if(a){c=ia(b,a)|0;if((b|a)>>>0>65535)c=((c>>>0)/(a>>>0)|0|0)==(b|0)?c:-1}else c=0;b=Pl(c)|0;if(!b)return b|0;if(!(k[b+-4>>2]&3))return b|0;sw(b|0,0,c|0)|0;return b|0}function Sl(a,b){a=a|0;b=b|0;var c=0,d=0;if(!a){a=Pl(b)|0;return a|0}if(b>>>0>4294967231){a=mk()|0;k[a>>2]=12;a=0;return a|0}c=Tl(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(c){a=c+8|0;return a|0}c=Pl(b)|0;if(!c){a=0;return a|0}d=k[a+-4>>2]|0;d=(d&-8)-((d&3|0)==0?8:4)|0;vw(c|0,a|0,(d>>>0>>0?d:b)|0)|0;Ql(a);a=c;return a|0}function Tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=k[o>>2]|0;i=p&-8;l=a+i|0;h=k[10222]|0;c=p&3;if(!((c|0)!=1&a>>>0>=h>>>0&a>>>0>>0))Pa();d=a+(i|4)|0;e=k[d>>2]|0;if(!(e&1))Pa();if(!c){if(b>>>0<256){a=0;return a|0}if(i>>>0>=(b+4|0)>>>0?(i-b|0)>>>0<=k[10338]<<1>>>0:0)return a|0;a=0;return a|0}if(i>>>0>=b>>>0){c=i-b|0;if(c>>>0<=15)return a|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|3;k[d>>2]=k[d>>2]|1;Ul(a+b|0,c);return a|0}if((l|0)==(k[10224]|0)){c=(k[10221]|0)+i|0;if(c>>>0<=b>>>0){a=0;return a|0}n=c-b|0;k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|1;k[10224]=a+b;k[10221]=n;return a|0}if((l|0)==(k[10223]|0)){d=(k[10220]|0)+i|0;if(d>>>0>>0){a=0;return a|0}c=d-b|0;if(c>>>0>15){k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=c|1;k[a+d>>2]=c;d=a+(d+4)|0;k[d>>2]=k[d>>2]&-2;d=a+b|0}else{k[o>>2]=p&1|d|2;d=a+(d+4)|0;k[d>>2]=k[d>>2]|1;d=0;c=0}k[10220]=c;k[10223]=d;return a|0}if(e&2){a=0;return a|0}m=(e&-8)+i|0;if(m>>>0>>0){a=0;return a|0}n=m-b|0;f=e>>>3;do if(e>>>0>=256){g=k[a+(i+24)>>2]|0;f=k[a+(i+12)>>2]|0;do if((f|0)==(l|0)){d=a+(i+20)|0;c=k[d>>2]|0;if(!c){d=a+(i+16)|0;c=k[d>>2]|0;if(!c){j=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;j=c;break}}else{e=k[a+(i+8)>>2]|0;if(e>>>0>>0)Pa();c=e+12|0;if((k[c>>2]|0)!=(l|0))Pa();d=f+8|0;if((k[d>>2]|0)==(l|0)){k[c>>2]=f;k[d>>2]=e;j=f;break}else Pa()}while(0);if(g){c=k[a+(i+28)>>2]|0;d=41176+(c<<2)|0;if((l|0)==(k[d>>2]|0)){k[d>>2]=j;if(!j){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=g+16|0;if((k[c>>2]|0)==(l|0))k[c>>2]=j;else k[g+20>>2]=j;if(!j)break}d=k[10222]|0;if(j>>>0>>0)Pa();k[j+24>>2]=g;c=k[a+(i+16)>>2]|0;do if(c)if(c>>>0>>0)Pa();else{k[j+16>>2]=c;k[c+24>>2]=j;break}while(0);c=k[a+(i+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[j+20>>2]=c;k[c+24>>2]=j;break}}}else{e=k[a+(i+8)>>2]|0;d=k[a+(i+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(l|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(l|0))g=c;else Pa()}else g=d+8|0;k[e+12>>2]=d;k[g>>2]=e}while(0);if(n>>>0<16){k[o>>2]=m|p&1|2;b=a+(m|4)|0;k[b>>2]=k[b>>2]|1;return a|0}else{k[o>>2]=p&1|b|2;k[a+(b+4)>>2]=n|3;p=a+(m|4)|0;k[p>>2]=k[p>>2]|1;Ul(a+b|0,n);return a|0}return 0}function Ul(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;c=k[a+4>>2]|0;do if(!(c&1)){j=k[a>>2]|0;if(!(c&3))return;n=a+(0-j)|0;m=j+b|0;i=k[10222]|0;if(n>>>0>>0)Pa();if((n|0)==(k[10223]|0)){d=a+(b+4)|0;c=k[d>>2]|0;if((c&3|0)!=3){t=n;g=m;break}k[10220]=m;k[d>>2]=c&-2;k[a+(4-j)>>2]=m|1;k[q>>2]=m;return}f=j>>>3;if(j>>>0<256){e=k[a+(8-j)>>2]|0;d=k[a+(12-j)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(n|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(n|0))h=c;else Pa()}else h=d+8|0;k[e+12>>2]=d;k[h>>2]=e;t=n;g=m;break}h=k[a+(24-j)>>2]|0;e=k[a+(12-j)>>2]|0;do if((e|0)==(n|0)){e=16-j|0;d=a+(e+4)|0;c=k[d>>2]|0;if(!c){d=a+e|0;c=k[d>>2]|0;if(!c){l=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;l=c;break}}else{f=k[a+(8-j)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(n|0))Pa();d=e+8|0;if((k[d>>2]|0)==(n|0)){k[c>>2]=e;k[d>>2]=f;l=e;break}else Pa()}while(0);if(h){c=k[a+(28-j)>>2]|0;d=41176+(c<<2)|0;if((n|0)==(k[d>>2]|0)){k[d>>2]=l;if(!l){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(n|0))k[c>>2]=l;else k[h+20>>2]=l;if(!l){t=n;g=m;break}}e=k[10222]|0;if(l>>>0>>0)Pa();k[l+24>>2]=h;c=16-j|0;d=k[a+c>>2]|0;do if(d)if(d>>>0>>0)Pa();else{k[l+16>>2]=d;k[d+24>>2]=l;break}while(0);c=k[a+(c+4)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[l+20>>2]=c;k[c+24>>2]=l;t=n;g=m;break}else{t=n;g=m}}else{t=n;g=m}}else{t=a;g=b}while(0);i=k[10222]|0;if(q>>>0>>0)Pa();c=a+(b+4)|0;d=k[c>>2]|0;if(!(d&2)){if((q|0)==(k[10224]|0)){s=(k[10221]|0)+g|0;k[10221]=s;k[10224]=t;k[t+4>>2]=s|1;if((t|0)!=(k[10223]|0))return;k[10223]=0;k[10220]=0;return}if((q|0)==(k[10223]|0)){s=(k[10220]|0)+g|0;k[10220]=s;k[10223]=t;k[t+4>>2]=s|1;k[t+s>>2]=s;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=k[a+(b+24)>>2]|0;e=k[a+(b+12)>>2]|0;do if((e|0)==(q|0)){d=a+(b+20)|0;c=k[d>>2]|0;if(!c){d=a+(b+16)|0;c=k[d>>2]|0;if(!c){p=0;break}}while(1){e=c+20|0;f=k[e>>2]|0;if(f){c=f;d=e;continue}e=c+16|0;f=k[e>>2]|0;if(!f)break;else{c=f;d=e}}if(d>>>0>>0)Pa();else{k[d>>2]=0;p=c;break}}else{f=k[a+(b+8)>>2]|0;if(f>>>0>>0)Pa();c=f+12|0;if((k[c>>2]|0)!=(q|0))Pa();d=e+8|0;if((k[d>>2]|0)==(q|0)){k[c>>2]=e;k[d>>2]=f;p=e;break}else Pa()}while(0);if(h){c=k[a+(b+28)>>2]|0;d=41176+(c<<2)|0;if((q|0)==(k[d>>2]|0)){k[d>>2]=p;if(!p){k[10219]=k[10219]&~(1<>>0<(k[10222]|0)>>>0)Pa();c=h+16|0;if((k[c>>2]|0)==(q|0))k[c>>2]=p;else k[h+20>>2]=p;if(!p)break}d=k[10222]|0;if(p>>>0>>0)Pa();k[p+24>>2]=h;c=k[a+(b+16)>>2]|0;do if(c)if(c>>>0>>0)Pa();else{k[p+16>>2]=c;k[c+24>>2]=p;break}while(0);c=k[a+(b+20)>>2]|0;if(c)if(c>>>0<(k[10222]|0)>>>0)Pa();else{k[p+20>>2]=c;k[c+24>>2]=p;break}}}else{e=k[a+(b+8)>>2]|0;d=k[a+(b+12)>>2]|0;c=40912+(f<<1<<2)|0;if((e|0)!=(c|0)){if(e>>>0>>0)Pa();if((k[e+12>>2]|0)!=(q|0))Pa()}if((d|0)==(e|0)){k[10218]=k[10218]&~(1<>>0>>0)Pa();c=d+8|0;if((k[c>>2]|0)==(q|0))o=c;else Pa()}else o=d+8|0;k[e+12>>2]=d;k[o>>2]=e}while(0);k[t+4>>2]=g|1;k[t+g>>2]=g;if((t|0)==(k[10223]|0)){k[10220]=g;return}}else{k[c>>2]=d&-2;k[t+4>>2]=g|1;k[t+g>>2]=g}c=g>>>3;if(g>>>0<256){d=c<<1;f=40912+(d<<2)|0;e=k[10218]|0;c=1<>2]|0;if(d>>>0<(k[10222]|0)>>>0)Pa();else{r=c;s=d}}else{k[10218]=e|c;r=40912+(d+2<<2)|0;s=f}k[r>>2]=t;k[s+12>>2]=t;k[t+8>>2]=s;k[t+12>>2]=f;return}c=g>>>8;if(c)if(g>>>0>16777215)f=31;else{r=(c+1048320|0)>>>16&8;s=c<>>16&4;s=s<>>16&2;f=14-(q|r|f)+(s<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;c=41176+(f<<2)|0;k[t+28>>2]=f;k[t+20>>2]=0;k[t+16>>2]=0;d=k[10219]|0;e=1<>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}c=k[c>>2]|0;a:do if((k[c+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=c+16+(f>>>31<<2)|0;e=k[d>>2]|0;if(!e)break;if((k[e+4>>2]&-8|0)==(g|0)){c=e;break a}else{f=f<<1;c=e}}if(d>>>0<(k[10222]|0)>>>0)Pa();k[d>>2]=t;k[t+24>>2]=c;k[t+12>>2]=t;k[t+8>>2]=t;return}while(0);d=c+8|0;e=k[d>>2]|0;s=k[10222]|0;if(!(e>>>0>=s>>>0&c>>>0>=s>>>0))Pa();k[e+12>>2]=t;k[d>>2]=t;k[t+8>>2]=e;k[t+12>>2]=c;k[t+24>>2]=0;return}function Vl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;d=k[9321]|0;Zl(42048,d,42104);k[10342]=42892;k[10344]=42912;k[10343]=0;a=k[10720]|0;x=0;ra(62,41368+a|0,42048);f=x;x=0;if(f&1){f=Wa()|0;qn(41376);fb(f|0)}k[41368+(a+72)>>2]=0;k[41368+(a+76)>>2]=-1;e=k[9322]|0;_l(42152,e,42112);k[10364]=42972;k[10365]=42992;c=k[10740]|0;x=0;ra(62,41456+c|0,42152);f=x;x=0;if(f&1){f=Wa()|0;qn(41460);fb(f|0)}a=c+72|0;k[41456+a>>2]=0;b=c+76|0;k[41456+b>>2]=-1;f=k[9320]|0;_l(42200,f,42120);k[10385]=42972;k[10386]=42992;x=0;ra(62,41540+c|0,42200);g=x;x=0;if(g&1){g=Wa()|0;qn(41544);fb(g|0)}k[41540+a>>2]=0;k[41540+b>>2]=-1;g=k[41540+((k[(k[10385]|0)+-12>>2]|0)+24)>>2]|0;k[10406]=42972;k[10407]=42992;x=0;ra(62,41624+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;qn(41628);fb(g|0)}k[41624+a>>2]=0;k[41624+b>>2]=-1;k[41368+((k[(k[10342]|0)+-12>>2]|0)+72)>>2]=41456;a=41540+((k[(k[10385]|0)+-12>>2]|0)+4)|0;k[a>>2]=k[a>>2]|8192;k[41540+((k[(k[10385]|0)+-12>>2]|0)+72)>>2]=41456;$l(42248,d,42128);k[10427]=42932;k[10429]=42952;k[10428]=0;a=k[10730]|0;x=0;ra(62,41708+a|0,42248);g=x;x=0;if(g&1){g=Wa()|0;vn(41716);fb(g|0)}k[41708+(a+72)>>2]=0;k[41708+(a+76)>>2]=-1;am(42304,e,42136);k[10449]=43012;k[10450]=43032;c=k[10750]|0;x=0;ra(62,41796+c|0,42304);g=x;x=0;if(g&1){g=Wa()|0;vn(41800);fb(g|0)}a=c+72|0;k[41796+a>>2]=0;b=c+76|0;k[41796+b>>2]=-1;am(42352,f,42144);k[10470]=43012;k[10471]=43032;x=0;ra(62,41880+c|0,42352);g=x;x=0;if(g&1){g=Wa()|0;vn(41884);fb(g|0)}k[41880+a>>2]=0;k[41880+b>>2]=-1;g=k[41880+((k[(k[10470]|0)+-12>>2]|0)+24)>>2]|0;k[10491]=43012;k[10492]=43032;x=0;ra(62,41964+c|0,g|0);g=x;x=0;if(g&1){g=Wa()|0;vn(41968);fb(g|0)}else{k[41964+a>>2]=0;k[41964+b>>2]=-1;k[41708+((k[(k[10427]|0)+-12>>2]|0)+72)>>2]=41796;g=41880+((k[(k[10470]|0)+-12>>2]|0)+4)|0;k[g>>2]=k[g>>2]|8192;k[41880+((k[(k[10470]|0)+-12>>2]|0)+72)>>2]=41796;return}}function Wl(a){a=a|0;x=0;ta(70,41456)|0;a=x;x=0;if(((!(a&1)?(x=0,ta(70,41624)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41796)|0,a=x,x=0,!(a&1)):0)?(x=0,ta(71,41964)|0,a=x,x=0,!(a&1)):0)return;a=Wa(0)|0;oc(a)}function Xl(){Vl(0);tb(187,56757,w|0)|0;return}function Yl(){return}function Zl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42600;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(23,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);r=e;return}}function _l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;zn(a);k[a>>2]=42536;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44280)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);xn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function $l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42472;k[a+32>>2]=b;k[a+40>>2]=c;k[a+48>>2]=-1;i[a+52>>0]=0;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;ra(21,a|0,d|0);c=x;x=0;if(c&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);r=e;return}}function am(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+16|0;f=e+4|0;d=e;On(a);k[a>>2]=42408;k[a+32>>2]=b;Ps(f,a+4|0);k[d>>2]=k[f>>2];x=0;b=Aa(37,d|0,44288)|0;f=x;x=0;if(f&1){f=Wa()|0;Qs(d);Mn(a);fb(f|0)}else{Qs(d);k[a+36>>2]=b;k[a+40>>2]=c;f=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=f;r=e;return}}function bm(a){a=a|0;Mn(a);mj(a);return}function cm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44288)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function dm(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[d>>2]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+4|0;else break}}else b=0;else b=gl(b,4,c,k[a+32>>2]|0)|0;while(0);return b|0}function fm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do if(!p){k[c>>2]=b;if(i[a+44>>0]|0)if((gl(c,4,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;j=c+4|0;l=a+36|0;e=a+40|0;f=o+8|0;g=o;h=a+32|0;while(1){a=k[l>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[e>>2]|0,c,j,m,o,f,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-g|0;if((gl(o,1,a,k[h>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[h>>2]|0)|0)!=1)c=-1;else q=11}else q=11;while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function gm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44288)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function hm(a){a=a|0;Mn(a);mj(a);return}function im(a){a=a|0;return lm(a,0)|0}function jm(a){a=a|0;return lm(a,1)|0}function km(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+8|0;d=l+4|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do if(c){k[d>>2]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+4|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}while(0);k[g>>2]=b;i[f>>0]=1}while(0);r=l;return b|0}function lm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+32|0;p=q+16|0;o=q+8|0;l=q+4|0;m=q;e=a+52|0;a:do if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;n=a+32|0;if((c|0)>0){e=0;do{d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[p+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=o+4|0;c:while(1){s=k[g>>2]|0;e=s;d=k[e>>2]|0;e=k[e+4>>2]|0;t=k[h>>2]|0;f=p+c|0;switch(ac[k[(k[t>>2]|0)+16>>2]&15](t,s,p,f,l,o,j,m)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}t=k[g>>2]|0;k[t>>2]=d;k[t+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[n>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}k[o>>2]=i[p>>0]}else k[o>>2]=i[p>>0];while(0);if(b){c=k[o>>2]|0;k[a+48>>2]=c;break}while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(i[p+c>>0]|0,k[n>>2]|0)|0)==-1){c=-1;break a}}c=k[o>>2]|0}while(0);r=q;return c|0}function mm(a){a=a|0;xn(a);mj(a);return}function nm(a,b){a=a|0;b=b|0;Ob[k[(k[a>>2]|0)+24>>2]&127](a)|0;b=Ss(b,44280)|0;k[a+36>>2]=b;b=(Ob[k[(k[b>>2]|0)+28>>2]&127](b)|0)&1;i[a+44>>0]=b;return}function om(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0;j=r;r=r+16|0;h=j+8|0;g=j;c=a+36|0;d=a+40|0;e=h+8|0;f=h;b=a+32|0;a:while(1){a=k[c>>2]|0;a=Wb[k[(k[a>>2]|0)+20>>2]&31](a,k[d>>2]|0,h,e,g)|0;l=(k[g>>2]|0)-f|0;if((gl(h,1,l,k[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{i=4;break a}}}if((i|0)==4)a=((dl(k[b>>2]|0)|0)!=0)<<31>>31;r=j;return a|0}function pm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do if(!(i[a+44>>0]|0))if((c|0)>0){d=b;b=0;while(1){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[d>>0]|0)|0)==-1)break a;b=b+1|0;if((b|0)<(c|0))d=d+1|0;else break}}else b=0;else b=gl(b,1,c,k[a+32>>2]|0)|0;while(0);return b|0}function qm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+32|0;o=s+16|0;c=s+8|0;n=s+4|0;m=s;p=(b|0)==-1;a:do if(!p){i[c>>0]=b;if(i[a+44>>0]|0)if((gl(c,1,1,k[a+32>>2]|0)|0)==1){q=11;break}else{c=-1;break}k[n>>2]=o;l=c+1|0;e=a+36|0;f=a+40|0;g=o+8|0;h=o;j=a+32|0;while(1){a=k[e>>2]|0;a=ac[k[(k[a>>2]|0)+12>>2]&15](a,k[f>>2]|0,c,l,m,o,g,n)|0;if((k[m>>2]|0)==(c|0)){c=-1;break a}if((a|0)==3)break;d=(a|0)==1;if(a>>>0>=2){c=-1;break a}a=(k[n>>2]|0)-h|0;if((gl(o,1,a,k[j>>2]|0)|0)!=(a|0)){c=-1;break a}if(d)c=d?k[m>>2]|0:c;else{q=11;break a}}if((gl(c,1,1,k[j>>2]|0)|0)!=1)c=-1;else q=11}else q=11;while(0);if((q|0)==11)c=p?0:b;r=s;return c|0}function rm(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ss(b,44280)|0;c=a+36|0;k[c>>2]=d;d=Ob[k[(k[d>>2]|0)+24>>2]&127](d)|0;b=a+44|0;k[b>>2]=d;c=k[c>>2]|0;c=(Ob[k[(k[c>>2]|0)+28>>2]&127](c)|0)&1;i[a+53>>0]=c;if((k[b>>2]|0)>8)$r(56783);return}function sm(a){a=a|0;xn(a);mj(a);return}function tm(a){a=a|0;return wm(a,0)|0}function um(a){a=a|0;return wm(a,1)|0}function vm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;j=l+16|0;h=l+4|0;d=l+8|0;e=l;f=a+52|0;c=(i[f>>0]|0)!=0;a:do if((b|0)==-1)if(c)b=-1;else{b=k[a+48>>2]|0;i[f>>0]=(b|0)!=-1&1}else{g=a+48|0;b:do if(c){i[d>>0]=k[g>>2];c=k[a+36>>2]|0;switch(ac[k[(k[c>>2]|0)+12>>2]&15](c,k[a+40>>2]|0,d,d+1|0,e,j,j+8|0,h)|0){case 1:case 2:{b=-1;break a}case 3:{i[j>>0]=k[g>>2];k[h>>2]=j+1;break}default:{}}c=a+32|0;while(1){d=k[h>>2]|0;if(d>>>0<=j>>>0)break b;a=d+-1|0;k[h>>2]=a;if((kl(i[a>>0]|0,k[c>>2]|0)|0)==-1){b=-1;break a}}}while(0);k[g>>2]=b;i[f>>0]=1}while(0);r=l;return b|0}function wm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0;s=r;r=r+32|0;q=s+16|0;p=s+8|0;m=s+4|0;n=s;e=a+52|0;a:do if(i[e>>0]|0){d=a+48|0;c=k[d>>2]|0;if(b){k[d>>2]=-1;i[e>>0]=0}}else{c=k[a+44>>2]|0;c=(c|0)>1?c:1;o=a+32|0;if((c|0)>0){e=0;do{d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[q+e>>0]=d;e=e+1|0}while((e|0)<(c|0))}b:do if(!(i[a+53>>0]|0)){g=a+40|0;h=a+36|0;j=p+1|0;c:while(1){t=k[g>>2]|0;e=t;d=k[e>>2]|0;e=k[e+4>>2]|0;u=k[h>>2]|0;f=q+c|0;switch(ac[k[(k[u>>2]|0)+16>>2]&15](u,t,q,f,m,p,j,n)|0){case 2:{c=-1;break a}case 3:break c;case 1:break;default:break b}u=k[g>>2]|0;k[u>>2]=d;k[u+4>>2]=e;if((c|0)==8){c=-1;break a}d=hl(k[o>>2]|0)|0;if((d|0)==-1){c=-1;break a}i[f>>0]=d;c=c+1|0}i[p>>0]=i[q>>0]|0}else i[p>>0]=i[q>>0]|0;while(0);if(b){c=i[p>>0]|0;k[a+48>>2]=c&255}else{while(1){if((c|0)<=0)break;c=c+-1|0;if((kl(l[q+c>>0]|0,k[o>>2]|0)|0)==-1){c=-1;break a}}c=i[p>>0]|0}c=c&255}while(0);r=s;return c|0}function xm(a){a=a|0;return}function ym(a){a=a|0;a=a+4|0;k[a>>2]=(k[a>>2]|0)+1;return}function zm(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if(!b){Lb[k[(k[a>>2]|0)+8>>2]&255](a);a=1}else a=0;return a|0}function Am(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,((i[b>>0]&1)==0?b+1|0:k[b+8>>2]|0)|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Bm(a,b){a=a|0;b=b|0;k[a>>2]=36868;x=0;ra(86,a+4|0,b|0);a=x;x=0;if(a&1){a=Wa()|0;fb(a|0)}else return}function Cm(a,b){a=a|0;b=b|0;var c=0,d=0;d=xl(b)|0;c=lj(d+13|0)|0;k[c>>2]=d;k[c+4>>2]=d;k[c+8>>2]=0;c=c+12|0;vw(c|0,b|0,d+1|0)|0;k[a>>2]=c;return}function Dm(a,b,c){a=a|0;b=b|0;c=c|0;k[a>>2]=c;k[a+4>>2]=b;return}function Em(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;_b[k[(k[a>>2]|0)+12>>2]&15](d,a,b);if((k[d+4>>2]|0)==(k[c+4>>2]|0))d=(k[d>>2]|0)==(k[c>>2]|0);else d=0;r=e;return d|0}function Fm(a,b,c){a=a|0;b=b|0;c=c|0;return ((k[b>>2]|0)==(c|0)?(k[b+4>>2]|0)==(a|0):0)|0}function Gm(a,b,c){a=a|0;b=b|0;c=c|0;b=nk(c)|0;Qm(a,b,xl(b)|0);return}function Hm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;f=g;d=k[b>>2]|0;do if(d){e=i[c>>0]|0;if(!(e&1))e=(e&255)>>>1;else e=k[c+4>>2]|0;if(e){Zm(c,56990)|0;d=k[b>>2]|0}b=k[b+4>>2]|0;_b[k[(k[b>>2]|0)+24>>2]&15](f,b,d);b=i[f>>0]|0;e=(b&1)==0;x=0;va(30,c|0,(e?f+1|0:k[f+8>>2]|0)|0,(e?(b&255)>>>1:k[f+4>>2]|0)|0)|0;b=x;x=0;if(b&1){g=Wa()|0;Sm(f);fb(g|0)}else{Sm(f);break}}while(0);k[a>>2]=k[c>>2];k[a+4>>2]=k[c+4>>2];k[a+8>>2]=k[c+8>>2];k[c>>2]=0;k[c+4>>2]=0;k[c+8>>2]=0;r=g;return}function Im(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;d=e+12|0;f=e;Qm(f,c,xl(c)|0);x=0;Fa(10,d|0,b|0,f|0);c=x;x=0;do if(!(c&1)){x=0;ra(87,a|0,d|0);c=x;x=0;if(c&1){e=Wa()|0;Sm(d);d=e;break}else{Sm(d);Sm(f);k[a>>2]=42664;c=k[b+4>>2]|0;f=a+8|0;k[f>>2]=k[b>>2];k[f+4>>2]=c;r=e;return}}else d=Wa()|0;while(0);Sm(f);fb(d|0)}function Jm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=r;r=r+48|0;e=f+24|0;h=f+16|0;g=f;k[h>>2]=b;k[h+4>>2]=c;Pm(g,d);x=0;Fa(10,e|0,h|0,g|0);d=x;x=0;do if(!(d&1)){x=0;ra(87,a|0,e|0);h=x;x=0;if(h&1){h=Wa()|0;Sm(e);e=h;break}else{Sm(e);Sm(g);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=f;return}}else e=Wa()|0;while(0);Sm(g);fb(e|0)}function Km(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=r;r=r+48|0;d=e+24|0;g=e+16|0;f=e;k[g>>2]=b;k[g+4>>2]=c;Qm(f,58898,0);x=0;Fa(10,d|0,g|0,f|0);g=x;x=0;do if(!(g&1)){x=0;ra(87,a|0,d|0);g=x;x=0;if(g&1){g=Wa()|0;Sm(d);d=g;break}else{Sm(d);Sm(f);k[a>>2]=42664;k[a+8>>2]=b;k[a+12>>2]=c;r=e;return}}else d=Wa()|0;while(0);Sm(f);fb(d|0)}function Lm(a){a=a|0;wj(a);return}function Mm(a){a=a|0;wj(a);mj(a);return}function Nm(a){a=a|0;return}function Om(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;Ab(42676)|0;if((k[a>>2]|0)==1)do Ma(42704,42676)|0;while((k[a>>2]|0)==1);do if(!(k[a>>2]|0)){k[a>>2]=1;x=0;ta(72,42676)|0;d=x;x=0;if((((!(d&1)?(x=0,qa(c|0,b|0),d=x,x=0,!(d&1)):0)?(x=0,ta(73,42676)|0,d=x,x=0,!(d&1)):0)?(k[a>>2]=-1,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0)break;d=Wa(0)|0;cb(d|0)|0;x=0;ta(73,42676)|0;d=x;x=0;if((!(d&1)?(k[a>>2]=0,x=0,ta(72,42676)|0,d=x,x=0,!(d&1)):0)?(x=0,ta(74,42704)|0,d=x,x=0,!(d&1)):0){x=0;Ga(5);x=0}b=Wa()|0;x=0;Ga(3);d=x;x=0;if(d&1){d=Wa(0)|0;oc(d)}else fb(b|0)}else lb(42676)|0;while(0);return}function Pm(a,b){a=a|0;b=b|0;if(!(i[b>>0]&1)){k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2]}else Qm(a,k[b+8>>2]|0,k[b+4>>2]|0);return}function Qm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>4294967279)ij(a);if(c>>>0<11){i[a>>0]=c<<1;a=a+1|0}else{e=c+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}vw(a|0,b|0,c|0)|0;i[a+c>>0]=0;return}function Rm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>4294967279)ij(a);if(b>>>0<11){i[a>>0]=b<<1;a=a+1|0}else{e=b+16&-16;d=lj(e)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}sw(a|0,c|0,b|0)|0;i[a+b>>0]=0;return}function Sm(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function Tm(a,b){a=a|0;b=b|0;var c=0,d=0;if((a|0)!=(b|0)){c=i[b>>0]|0;d=(c&1)==0;Vm(a,d?b+1|0:k[b+8>>2]|0,d?(c&255)>>>1:k[b+4>>2]|0)|0}return a|0}function Um(a,b){a=a|0;b=b|0;return Vm(a,b,xl(b)|0)|0}function Vm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=10;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do if(f>>>0>=c>>>0){if(e)d=a+1|0;else d=k[a+8>>2]|0;xw(d|0,b|0,c|0)|0;i[d+c>>0]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;an(a,f,c-f|0,d,0,d,c,b)}while(0);return a|0}function Wm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i[a>>0]|0;e=(d&1)==0;if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;do if(d>>>0>=b>>>0)if(e){i[a+1+b>>0]=0;i[a>>0]=b<<1;break}else{i[(k[a+8>>2]|0)+b>>0]=0;k[a+4>>2]=b;break}else Xm(a,b-d|0,c)|0;while(0);return}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;if(b){d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>>0){bn(a,e,b-e+f|0,f,f,0,0);d=i[a>>0]|0}if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;sw(e+f|0,c|0,b|0)|0;d=f+b|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}return a|0}function Ym(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>4294967279)ij(a);c=i[a>>0]|0;if(!(c&1))d=10;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<11)g=10;else g=(b+16&-16)+-1|0;a:do if((g|0)!=(d|0)){do if((g|0)!=10){b=g+1|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+1|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+1|0;d=0;e=k[a+8>>2]|0;f=1}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;vw(b|0,e|0,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}while(0);return}function Zm(a,b){a=a|0;b=b|0;return $m(a,b,xl(b)|0)|0}function _m(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=10;f=(c&255)>>>1}if((f|0)==(e|0)){bn(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+1|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}i[c+f>>0]=b;i[c+d>>0]=0;return}function $m(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))e=10;else{d=k[a>>2]|0;e=(d&-2)+-1|0;d=d&255}if(!(d&1))f=(d&255)>>>1;else f=k[a+4>>2]|0;if((e-f|0)>>>0>=c>>>0){if(c){if(!(d&1))e=a+1|0;else e=k[a+8>>2]|0;vw(e+f|0,b|0,c|0)|0;d=f+c|0;if(!(i[a>>0]&1))i[a>>0]=d<<1;else k[a+4>>2]=d;i[e+d>>0]=0}}else an(a,e,c-e+f|0,f,f,0,c,b);return a|0}function an(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0;if((-18-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+1|0;else m=k[a+8>>2]|0;if(b>>>0<2147483623){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<11?11:j+16&-16}else j=-17;l=lj(j)|0;if(e)vw(l|0,m|0,e|0)|0;if(g)vw(l+e|0,h|0,g|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(l+(g+e)|0,m+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;i[l+b>>0]=0;return}function bn(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((-17-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+1|0;else l=k[a+8>>2]|0;if(b>>>0<2147483623){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<11?11:h+16&-16}else h=-17;j=lj(h)|0;if(e)vw(j|0,l|0,e|0)|0;c=d-f|0;if((c|0)!=(e|0))vw(j+(g+e)|0,l+(f+e)|0,c-e|0)|0;if((b|0)!=10)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function cn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(c>>>0>1073741807)ij(a);if(c>>>0<2){i[a>>0]=c<<1;a=a+4|0}else{e=c+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=c;a=d}Al(a,b,c)|0;k[a+(c<<2)>>2]=0;return}function dn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>1073741807)ij(a);if(b>>>0<2){i[a>>0]=b<<1;a=a+4|0}else{e=b+4&-4;d=lj(e<<2)|0;k[a+8>>2]=d;k[a>>2]=e|1;k[a+4>>2]=b;a=d}Cl(a,c,b)|0;k[a+(b<<2)>>2]=0;return}function en(a){a=a|0;if(i[a>>0]&1)mj(k[a+8>>2]|0);return}function fn(a,b){a=a|0;b=b|0;return gn(a,b,zl(b)|0)|0}function gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i[a>>0]|0;if(!(d&1))f=1;else{d=k[a>>2]|0;f=(d&-2)+-1|0;d=d&255}e=(d&1)==0;do if(f>>>0>=c>>>0){if(e)d=a+4|0;else d=k[a+8>>2]|0;Bl(d,b,c)|0;k[d+(c<<2)>>2]=0;if(!(i[a>>0]&1)){i[a>>0]=c<<1;break}else{k[a+4>>2]=c;break}}else{if(e)d=(d&255)>>>1;else d=k[a+4>>2]|0;kn(a,f,c-f|0,d,0,d,c,b)}while(0);return a|0}function hn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>1073741807)ij(a);c=i[a>>0]|0;if(!(c&1))d=1;else{c=k[a>>2]|0;d=(c&-2)+-1|0;c=c&255}if(!(c&1))h=(c&255)>>>1;else h=k[a+4>>2]|0;b=h>>>0>b>>>0?h:b;if(b>>>0<2)g=1;else g=(b+4&-4)+-1|0;a:do if((g|0)!=(d|0)){do if((g|0)!=1){b=(g<<2)+4|0;if(g>>>0<=d>>>0){x=0;b=ta(67,b|0)|0;f=x;x=0;if(f&1){a=Wa(0)|0;cb(a|0)|0;eb();break a}}else b=lj(b)|0;if(!(c&1)){d=1;e=a+4|0;f=0;break}else{d=1;e=k[a+8>>2]|0;f=1;break}}else{b=a+4|0;d=0;e=k[a+8>>2]|0;f=1}while(0);if(!(c&1))c=(c&255)>>>1;else c=k[a+4>>2]|0;Al(b,e,c+1|0)|0;if(f)mj(e);if(d){k[a>>2]=g+1|1;k[a+4>>2]=h;k[a+8>>2]=b;break}else{i[a>>0]=h<<1;break}}while(0);return}function jn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i[a>>0]|0;d=(c&1)!=0;if(d){e=(k[a>>2]&-2)+-1|0;f=k[a+4>>2]|0}else{e=1;f=(c&255)>>>1}if((f|0)==(e|0)){ln(a,e,1,e,e,0,0);if(!(i[a>>0]&1))e=7;else e=8}else if(d)e=8;else e=7;if((e|0)==7){i[a>>0]=(f<<1)+2;c=a+4|0;d=f+1|0}else if((e|0)==8){c=k[a+8>>2]|0;d=f+1|0;k[a+4>>2]=d}k[c+(f<<2)>>2]=b;k[c+(d<<2)>>2]=0;return}function kn(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0;if((1073741806-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))m=a+4|0;else m=k[a+8>>2]|0;if(b>>>0<536870887){j=c+b|0;l=b<<1;j=j>>>0>>0?l:j;j=j>>>0<2?2:j+4&-4}else j=1073741807;l=lj(j<<2)|0;if(e)Al(l,m,e)|0;if(g)Al(l+(e<<2)|0,h,g)|0;c=d-f|0;if((c|0)!=(e|0))Al(l+(g+e<<2)|0,m+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(m);k[a+8>>2]=l;k[a>>2]=j|1;b=c+g|0;k[a+4>>2]=b;k[l+(b<<2)>>2]=0;return}function ln(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0;if((1073741807-b|0)>>>0>>0)ij(a);if(!(i[a>>0]&1))l=a+4|0;else l=k[a+8>>2]|0;if(b>>>0<536870887){h=c+b|0;j=b<<1;h=h>>>0>>0?j:h;h=h>>>0<2?2:h+4&-4}else h=1073741807;j=lj(h<<2)|0;if(e)Al(j,l,e)|0;c=d-f|0;if((c|0)!=(e|0))Al(j+(g+e<<2)|0,l+(f+e<<2)|0,c-e|0)|0;if((b|0)!=1)mj(l);k[a+8>>2]=j;k[a>>2]=h|1;return}function mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=b;d=c-e|0;if(d>>>0>4294967279)ij(a);if(d>>>0<11){i[a>>0]=d<<1;f=a+1|0}else{g=d+16&-16;f=lj(g)|0;k[a+8>>2]=f;k[a>>2]=g|1;k[a+4>>2]=d}a=c-e|0;if((b|0)!=(c|0)){d=f;while(1){i[d>>0]=i[b>>0]|0;b=b+1|0;if((b|0)==(c|0))break;else d=d+1|0}}i[f+a>>0]=0;return}function nn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b;d=c-f|0;e=d>>2;if(e>>>0>1073741807)ij(a);if(e>>>0<2){i[a>>0]=d>>>1;a=a+4|0}else{g=e+4&-4;d=lj(g<<2)|0;k[a+8>>2]=d;k[a>>2]=g|1;k[a+4>>2]=e;a=d}e=(c-f|0)>>>2;if((b|0)!=(c|0)){d=a;while(1){k[d>>2]=k[b>>2];b=b+4|0;if((b|0)==(c|0))break;else d=d+4|0}}k[a+(e<<2)>>2]=0;return}function on(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=r;r=r+16|0;d=c;e=(k[a+24>>2]|0)==0;k[a+16>>2]=e&1|b;if(!((e&1|b)&k[a+20>>2])){r=c;return}b=Va(16)|0;Co()|0;k[d>>2]=1;k[d+4>>2]=43112;x=0;Fa(11,b|0,57437,d|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(b|0);fb(e|0)}else ub(b|0,864,112)}function pn(a){a=a|0;var b=0;k[a>>2]=43068;x=0;ra(88,a|0,0);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else{Qs(a+28|0);Ql(k[a+32>>2]|0);Ql(k[a+36>>2]|0);Ql(k[a+48>>2]|0);Ql(k[a+60>>2]|0);return}}function qn(a){a=a|0;pn(a);return}function rn(a){a=a|0;pn(a);mj(a);return}function sn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=k[a+40>>2]|0;d=a+32|0;e=a+36|0;if(c)do{c=c+-1|0;_b[k[(k[d>>2]|0)+(c<<2)>>2]&15](b,a,k[(k[e>>2]|0)+(c<<2)>>2]|0)}while((c|0)!=0);return}function tn(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;Ps(b,a+28|0);r=c;return k[b>>2]|0}function un(a,b){a=a|0;b=b|0;var c=0;k[a+24>>2]=b;k[a+16>>2]=(b|0)==0&1;k[a+20>>2]=0;k[a+4>>2]=4098;k[a+12>>2]=0;k[a+8>>2]=6;c=a+28|0;b=a+32|0;a=b+40|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));Os(c);return}function vn(a){a=a|0;pn(a);return}function wn(a){a=a|0;pn(a);mj(a);return}function xn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);return}function yn(a){a=a|0;k[a>>2]=42760;Qs(a+4|0);mj(a);return}function zn(a){a=a|0;k[a>>2]=42760;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function An(a,b){a=a|0;b=b|0;return}function Bn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Cn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Dn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function En(a){a=a|0;return 0}function Fn(a){a=a|0;return 0}function Gn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0<(k[g>>2]|0)>>>0){k[f>>2]=d+1;d=i[d>>0]|0}else{d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a;d=d&255}i[e>>0]=d;b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0;while(0);return b|0}function Hn(a){a=a|0;return -1}function In(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+1;a=l[a>>0]|0}return a|0}function Jn(a,b){a=a|0;b=b|0;return -1}function Kn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,l[e>>0]|0)|0)==-1)break a}else{h=i[e>>0]|0;k[f>>2]=d+1;i[d>>0]=h}b=b+1|0;if((b|0)<(c|0))e=e+1|0;else break}}else b=0;while(0);return b|0}function Ln(a,b){a=a|0;b=b|0;return -1}function Mn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);return}function Nn(a){a=a|0;k[a>>2]=42824;Qs(a+4|0);mj(a);return}function On(a){a=a|0;k[a>>2]=42824;Os(a+4|0);a=a+8|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;return}function Pn(a,b){a=a|0;b=b|0;return}function Qn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Rn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Sn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=a;k[b>>2]=0;k[b+4>>2]=0;b=a+8|0;k[b>>2]=-1;k[b+4>>2]=-1;return}function Tn(a){a=a|0;return 0}function Un(a){a=a|0;return 0}function Vn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=a+12|0;g=a+16|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){d=Ob[k[(k[a>>2]|0)+40>>2]&127](a)|0;if((d|0)==-1)break a}else{k[f>>2]=d+4;d=k[d>>2]|0}k[e>>2]=d;b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0;while(0);return b|0}function Wn(a){a=a|0;return -1}function Xn(a){a=a|0;var b=0;if((Ob[k[(k[a>>2]|0)+36>>2]&127](a)|0)==-1)a=-1;else{b=a+12|0;a=k[b>>2]|0;k[b>>2]=a+4;a=k[a>>2]|0}return a|0}function Yn(a,b){a=a|0;b=b|0;return -1}function Zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=a+24|0;g=a+28|0;a:do if((c|0)>0){e=b;b=0;while(1){d=k[f>>2]|0;if(d>>>0>=(k[g>>2]|0)>>>0){if((Vb[k[(k[a>>2]|0)+52>>2]&63](a,k[e>>2]|0)|0)==-1)break a}else{h=k[e>>2]|0;k[f>>2]=d+4;k[d>>2]=h}b=b+1|0;if((b|0)<(c|0))e=e+4|0;else break}}else b=0;while(0);return b|0}function _n(a,b){a=a|0;b=b|0;return -1}function $n(a){a=a|0;pn(a+8|0);return}function ao(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function bo(a){a=a|0;pn(a+8|0);mj(a);return}function co(a){a=a|0;bo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function eo(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(65,c|0,a|0);b=x;x=0;b:do if(b&1)b=Wa(0)|0;else{do if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;ro(c);break b}while(0);ro(c);break a}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}while(0);r=d;return a|0}function fo(a){a=a|0;var b=0;b=a+16|0;k[b>>2]=k[b>>2]|1;if(!(k[a+20>>2]&1))return;else vb()}function go(a){a=a|0;pn(a+8|0);return}function ho(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+8)|0);return}function io(a){a=a|0;pn(a+8|0);mj(a);return}function jo(a){a=a|0;io(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function ko(a){a=a|0;var b=0,c=0,d=0,e=0;d=r;r=r+16|0;c=d;a:do if(k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0){x=0;ra(89,c|0,a|0);b=x;x=0;b:do if(b&1)b=Wa(0)|0;else{do if(i[c>>0]|0){b=k[a+((k[(k[a>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;e=x;x=0;if(!(e&1)){if((b|0)!=-1)break;e=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+e|0,k[a+(e+16)>>2]|1|0);e=x;x=0;if(!(e&1))break}b=Wa(0)|0;zo(c);break b}while(0);zo(c);break a}while(0);cb(b|0)|0;x=0;qa(181,a+(k[(k[a>>2]|0)+-12>>2]|0)|0);e=x;x=0;if(!(e&1)){eb();break}b=Wa()|0;x=0;Ga(3);e=x;x=0;if(e&1){e=Wa(0)|0;oc(e)}else fb(b|0)}while(0);r=d;return a|0}function lo(a,b){a=a|0;b=b|0;return}function mo(a){a=a|0;pn(a+4|0);return}function no(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function oo(a){a=a|0;pn(a+4|0);mj(a);return}function po(a){a=a|0;oo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function qo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)eo(c)|0;i[a>>0]=1}return}function ro(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}while(0);return}function so(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10;while(0);if((n|0)==10){p=k[(k[l>>2]|0)+16>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}while(0);ro(m)}while(0);do if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}while(0);r=o;return a|0}function to(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+32|0;h=o+20|0;j=o+16|0;m=o+8|0;c=o;x=0;ra(65,m|0,a|0);l=x;x=0;a:do if(l&1){c=Wa(0)|0;d=a;e=a;n=19}else{do if(i[m>>0]|0){l=tn(a+(k[(k[a>>2]|0)+-12>>2]|0)|0)|0;k[c>>2]=l;x=0;l=Aa(37,c|0,43392)|0;g=x;x=0;if(g&1){n=Wa(0)|0;Qs(c);c=n}else{Qs(c);e=k[(k[a>>2]|0)+-12>>2]|0;g=k[a+(e+24)>>2]|0;d=a+e|0;e=a+(e+76)|0;c=k[e>>2]|0;do if((c|0)==-1){c=tn(d)|0;k[h>>2]=c;x=0;c=Aa(37,h|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,f=Aa(k[(k[c>>2]|0)+28>>2]|0,c|0,32)|0,p=x,x=0,!(p&1)):0){Qs(h);c=f<<24>>24;k[e>>2]=c;n=10;break}c=Wa(0)|0;Qs(h)}else n=10;while(0);if((n|0)==10){p=k[(k[l>>2]|0)+24>>2]|0;k[j>>2]=g;x=0;k[h>>2]=k[j>>2];c=Ba(p|0,l|0,h|0,d|0,c&255|0,b|0)|0;p=x;x=0;if(!(p&1)){if(c)break;p=k[(k[a>>2]|0)+-12>>2]|0;x=0;ra(66,a+p|0,k[a+(p+16)>>2]|5|0);p=x;x=0;if(!(p&1))break}c=Wa(0)|0}}ro(m);d=a;e=a;n=19;break a}while(0);ro(m)}while(0);do if((n|0)==19){cb(c|0)|0;x=0;qa(181,d+(k[(k[e>>2]|0)+-12>>2]|0)|0);p=x;x=0;if(!(p&1)){eb();break}c=Wa()|0;x=0;Ga(3);p=x;x=0;if(p&1){p=Wa(0)|0;oc(p)}else fb(c|0)}while(0);r=o;return a|0}function uo(a){a=a|0;pn(a+4|0);return}function vo(a){a=a|0;pn(a+((k[(k[a>>2]|0)+-12>>2]|0)+4)|0);return}function wo(a){a=a|0;pn(a+4|0);mj(a);return}function xo(a){a=a|0;wo(a+(k[(k[a>>2]|0)+-12>>2]|0)|0);return}function yo(a,b){a=a|0;b=b|0;var c=0;i[a>>0]=0;k[a+4>>2]=b;c=k[(k[b>>2]|0)+-12>>2]|0;if(!(k[b+(c+16)>>2]|0)){c=k[b+(c+72)>>2]|0;if(c)ko(c)|0;i[a>>0]=1}return}function zo(a){a=a|0;var b=0,c=0;a=a+4|0;c=k[a>>2]|0;b=k[(k[c>>2]|0)+-12>>2]|0;do if((((k[c+(b+24)>>2]|0)!=0?(k[c+(b+16)>>2]|0)==0:0)?(k[c+(b+4)>>2]&8192|0)!=0:0)?!(gb()|0):0){b=k[a>>2]|0;b=k[b+((k[(k[b>>2]|0)+-12>>2]|0)+24)>>2]|0;x=0;b=ta(k[(k[b>>2]|0)+24>>2]|0,b|0)|0;c=x;x=0;if(!(c&1)){if((b|0)!=-1)break;b=k[a>>2]|0;c=k[(k[b>>2]|0)+-12>>2]|0;x=0;ra(66,b+c|0,k[b+(c+16)>>2]|1|0);c=x;x=0;if(!(c&1))break}c=Wa(0)|0;cb(c|0)|0;x=0;Ga(3);c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}}while(0);return}function Ao(a){a=a|0;return 57453}function Bo(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=1&(c|0)<257)Gm(a,b,c);else Qm(a,57462,35);return}function Co(){if((i[1048]|0)==0?(Qa(1048)|0)!=0:0){k[10778]=43084;tb(72,43112,w|0)|0;Ya(1048)}return 43112}function Do(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=r;r=r+16|0;e=d+8|0;f=d;h=c;g=k[h+4>>2]|0;c=f;k[c>>2]=k[h>>2];k[c+4>>2]=g;k[e>>2]=k[f>>2];k[e+4>>2]=k[f+4>>2];Im(a,e,b);k[a>>2]=43048;r=d;return}function Eo(a){a=a|0;Lm(a);return}function Fo(a){a=a|0;Lm(a);mj(a);return}function Go(a){a=a|0;pn(a);mj(a);return}function Ho(a){a=a|0;mj(a);return}function Io(a){a=a|0;return}function Jo(a){a=a|0;return}function Ko(a){a=a|0;mj(a);return}function Lo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;a:do if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=i[b>>0]|0;f=i[d>>0]|0;if(a<<24>>24>24){b=-1;break a}if(f<<24>>24>24){b=1;break a}b=b+1|0;d=d+1|0;if((d|0)==(e|0)){g=6;break}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mn(a,c,d);return}function No(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(i[b>>0]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+1|0}while((b|0)!=(c|0))}return a|0}function Oo(a){a=a|0;return}function Po(a){a=a|0;mj(a);return}function Qo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;a:do if((d|0)==(e|0))g=6;else while(1){if((b|0)==(c|0)){b=-1;break a}a=k[b>>2]|0;f=k[d>>2]|0;if((a|0)<(f|0)){b=-1;break a}if((f|0)<(a|0)){b=1;break a}b=b+4|0;d=d+4|0;if((d|0)==(e|0)){g=6;break}}while(0);if((g|0)==6)b=(b|0)!=(c|0)&1;return b|0}function Ro(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;nn(a,c,d);return}function So(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)==(c|0))a=0;else{a=0;do{a=(k[b>>2]|0)+(a<<4)|0;d=a&-268435456;a=(d>>>24|d)^a;b=b+4|0}while((b|0)!=(c|0))}return a|0}function To(a){a=a|0;return}function Uo(a){a=a|0;mj(a);return}function Vo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44220)|0;m=x;x=0;do if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44360)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(7,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;Sm(s+12|0);Sm(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;Sm(s+12|0);Sm(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;Sm(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}while(0);fb(g|0)}while(0);r=q;return g|0}function Wo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Iu(a,i,h,d,e,f)|0;r=g;return a|0}function Xo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ju(a,i,h,d,e,f)|0;r=g;return a|0}function Yo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ku(a,i,h,d,e,f)|0;r=g;return a|0}function Zo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Lu(a,i,h,d,e,f)|0;r=g;return a|0}function _o(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Mu(a,i,h,d,e,f)|0;r=g;return a|0}function $o(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Nu(a,i,h,d,e,f)|0;r=g;return a|0}function ap(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Ou(a,i,h,d,e,f)|0;r=g;return a|0}function bp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Pu(a,i,h,d,e,f)|0;r=g;return a|0}function cp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Qu(a,i,h,d,e,f)|0;r=g;return a|0}function dp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;C=r;r=r+240|0;w=C;q=C+208|0;E=C+32|0;a=C+28|0;D=C+16|0;v=C+12|0;t=C+48|0;u=C+8|0;s=C+4|0;k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;x=0;d=ta(68,d|0)|0;p=x;x=0;do if(p&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44220)|0;p=x;x=0;if(!(p&1)?(x=0,Ea(k[(k[a>>2]|0)+32>>2]|0,a|0,57498,57524,q|0)|0,p=x,x=0,!(p&1)):0){zm(d)|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;if(!(i[D>>0]&1))a=10;else a=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,a|0,0);p=x;x=0;a:do if(!(p&1)){o=D+8|0;p=D+1|0;d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d;k[u>>2]=t;k[s>>2]=0;n=D+4|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){F=29;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){F=29;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;F=19;break}}else F=19;while(0);if((F|0)==19){F=0;if(h){g=0;break}else g=0}h=i[D>>0]|0;h=(h&1)==0?(h&255)>>>1:k[n>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,D|0,h<<1|0,0);m=x;x=0;if(m&1){F=29;break}if(!(i[D>>0]&1))d=10;else d=(k[D>>2]&-2)+-1|0;x=0;Fa(8,D|0,d|0,0);m=x;x=0;if(m&1){F=29;break}d=(i[D>>0]&1)==0?p:k[o>>2]|0;k[v>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}}else h=l[h>>0]|0;if(ep(h&255,16,d,v,s,0,E,t,u,q)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=29;break}else continue}else{k[j>>2]=g+1;continue}}if((F|0)==29){a=Wa()|0;break}x=0;Fa(8,D|0,(k[v>>2]|0)-d|0,0);G=x;x=0;if((!(G&1)?(y=i[D>>0]|0,z=k[o>>2]|0,x=0,A=Da(3)|0,G=x,x=0,!(G&1)):0)?(x=0,k[w>>2]=f,B=Ea(16,((y&1)==0?p:z)|0,A|0,58882,w|0)|0,G=x,x=0,!(G&1)):0){if((B|0)!=1)k[e>>2]=4;if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;G=x;x=0;if(G&1){F=30;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;G=x;x=0;if(G&1){F=30;break a}if((a|0)==-1){k[c>>2]=0;F=55;break}}if(!d)F=56}else F=55;while(0);if((F|0)==55?d:0)F=56;if((F|0)==56)k[e>>2]=k[e>>2]|2;G=k[b>>2]|0;Sm(D);Sm(E);r=C;return G|0}else F=30}else F=30;while(0);if((F|0)==30)a=Wa()|0;Sm(D);break}a=Wa()|0;zm(d)|0}while(0);Sm(E);fb(a|0);return 0}function ep(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do if(p){m=(i[l+24>>0]|0)==a<<24>>24;if(!m?(i[l+25>>0]|0)!=a<<24>>24:0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=i[g>>0]|0;if(a<<24>>24==f<<24>>24?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+26|0;m=l;while(1){if((i[m>>0]|0)==a<<24>>24)break;m=m+1|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;if((m|0)>23)m=-1;else{switch(b|0){case 10:case 8:{if((m|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+m>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}while(0);return m|0}function fp(){var a=0,b=0;do if((i[1968]|0)==0?(Qa(1968)|0)!=0:0){x=0;a=va(31,2147483647,58885,0)|0;b=x;x=0;if(b&1){b=Wa()|0;Bb(1968);fb(b|0)}else{k[11196]=a;Ya(1968);break}}while(0);return k[11196]|0}function gp(a){a=a|0;return}function hp(a){a=a|0;mj(a);return}function ip(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;q=r;r=r+64|0;o=q+56|0;g=q+52|0;m=q+48|0;h=q+44|0;j=q+40|0;l=q+36|0;n=q+32|0;s=q+8|0;p=q;a:do if(!(k[d+4>>2]&1)){k[m>>2]=-1;s=k[(k[a>>2]|0)+16>>2]|0;k[h>>2]=k[b>>2];k[j>>2]=k[c>>2];k[g>>2]=k[h>>2];k[o>>2]=k[j>>2];g=Nb[s&63](a,g,o,d,e,m)|0;k[b>>2]=g;switch(k[m>>2]|0){case 0:{i[f>>0]=0;break a}case 1:{i[f>>0]=1;break a}default:{i[f>>0]=1;k[e>>2]=4;break a}}}else{g=tn(d)|0;k[l>>2]=g;x=0;a=Aa(37,l|0,44212)|0;m=x;x=0;do if(!(m&1)){zm(g)|0;g=tn(d)|0;k[n>>2]=g;x=0;j=Aa(37,n|0,44368)|0;n=x;x=0;if(n&1){s=Wa()|0;zm(g)|0;g=s;break}zm(g)|0;x=0;ra(k[(k[j>>2]|0)+24>>2]|0,s|0,j|0);n=x;x=0;if(!(n&1)){h=s+12|0;x=0;ra(k[(k[j>>2]|0)+28>>2]|0,h|0,j|0);n=x;x=0;if(!(n&1)){k[p>>2]=k[c>>2];x=0;k[o>>2]=k[p>>2];g=na(8,b|0,o|0,s|0,s+24|0,a|0,e|0,1)|0;e=x;x=0;if(e&1){g=Wa()|0;en(s+12|0);en(s);break}else{i[f>>0]=(g|0)==(s|0)&1;g=k[b>>2]|0;en(s+12|0);en(s);break a}}}else h=s;g=Wa()|0;j=M;if((s|0)!=(h|0))do{h=h+-12|0;en(h)}while((h|0)!=(s|0))}else{s=Wa()|0;zm(g)|0;g=s}while(0);fb(g|0)}while(0);r=q;return g|0}function jp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Tu(a,i,h,d,e,f)|0;r=g;return a|0}function kp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Uu(a,i,h,d,e,f)|0;r=g;return a|0}function lp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Vu(a,i,h,d,e,f)|0;r=g;return a|0}function mp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Wu(a,i,h,d,e,f)|0;r=g;return a|0}function np(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Xu(a,i,h,d,e,f)|0;r=g;return a|0}function op(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Yu(a,i,h,d,e,f)|0;r=g;return a|0}function pp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=Zu(a,i,h,d,e,f)|0;r=g;return a|0}function qp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=_u(a,i,h,d,e,f)|0;r=g;return a|0}function rp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0;g=r;r=r+16|0;h=g+12|0;i=g+8|0;l=g+4|0;j=g;k[l>>2]=k[b>>2];k[j>>2]=k[c>>2];k[i>>2]=k[l>>2];k[h>>2]=k[j>>2];a=$u(a,i,h,d,e,f)|0;r=g;return a|0}function sp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+320|0;v=B;p=B+208|0;D=B+32|0;a=B+28|0;C=B+16|0;u=B+12|0;s=B+48|0;t=B+8|0;q=B+4|0;k[D>>2]=0;k[D+4>>2]=0;k[D+8>>2]=0;x=0;d=ta(68,d|0)|0;o=x;x=0;do if(o&1)a=Wa()|0;else{k[a>>2]=d;x=0;a=Aa(37,a|0,44212)|0;o=x;x=0;if(!(o&1)?(x=0,Ea(k[(k[a>>2]|0)+48>>2]|0,a|0,57498,57524,p|0)|0,o=x,x=0,!(o&1)):0){zm(d)|0;k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);o=x;x=0;a:do if(!(o&1)){n=C+8|0;o=C+1|0;a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a;k[t>>2]=s;k[q>>2]=0;m=C+4|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){E=30;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){E=30;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h){g=j;break}else{g=j;break b}else{k[c>>2]=0;E=20;break}}else E=20;while(0);if((E|0)==20){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[m>>2]|0;if((k[u>>2]|0)==(a+h|0)){x=0;Fa(8,C|0,h<<1|0,0);l=x;x=0;if(l&1){E=30;break}if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);l=x;x=0;if(l&1){E=30;break}a=(i[C>>0]&1)==0?o:k[n>>2]|0;k[u>>2]=a+h}j=d+12|0;h=k[j>>2]|0;l=d+16|0;if((h|0)==(k[l>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}}else h=k[h>>2]|0;if(tp(h,16,a,u,q,0,D,s,t,p)|0)break;g=k[j>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=30;break}else{g=d;continue}}else{k[j>>2]=g+4;g=d;continue}}if((E|0)==30){a=Wa()|0;break}x=0;Fa(8,C|0,(k[u>>2]|0)-a|0,0);F=x;x=0;if((!(F&1)?(w=i[C>>0]|0,y=k[n>>2]|0,x=0,z=Da(3)|0,F=x,x=0,!(F&1)):0)?(x=0,k[v>>2]=f,A=Ea(16,((w&1)==0?o:y)|0,z|0,58882,v|0)|0,F=x,x=0,!(F&1)):0){if((A|0)!=1)k[e>>2]=4;if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;F=x;x=0;if(F&1){E=31;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=31;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{E=59;break}else{k[c>>2]=0;E=57;break}}else E=57;while(0);if((E|0)==57?d:0)E=59;if((E|0)==59)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=31}else E=31;while(0);if((E|0)==31)a=Wa()|0;Sm(C);break}a=Wa()|0;zm(d)|0}while(0);Sm(D);fb(a|0);return 0}function tp(a,b,c,d,e,f,g,h,j,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0;o=k[d>>2]|0;p=(o|0)==(c|0);do if(p){m=(k[l+96>>2]|0)==(a|0);if(!m?(k[l+100>>2]|0)!=(a|0):0){n=5;break}k[d>>2]=c+1;i[c>>0]=m?43:45;k[e>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=i[g>>0]|0;if((a|0)==(f|0)?(((n&1)==0?(n&255)>>>1:k[g+4>>2]|0)|0)!=0:0){m=k[j>>2]|0;if((m-h|0)>=160){m=0;break}b=k[e>>2]|0;k[j>>2]=m+4;k[m>>2]=b;k[e>>2]=0;m=0;break}g=l+104|0;m=l;while(1){if((k[m>>2]|0)==(a|0))break;m=m+4|0;if((m|0)==(g|0)){m=g;break}}m=m-l|0;g=m>>2;if((m|0)>92)m=-1;else{switch(b|0){case 10:case 8:{if((g|0)>=(b|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-c|0)>=3){m=-1;break a}if((i[o+-1>>0]|0)!=48){m=-1;break a}k[e>>2]=0;m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;m=0;break a}break}default:{}}m=i[57498+g>>0]|0;k[d>>2]=o+1;i[o>>0]=m;k[e>>2]=(k[e>>2]|0)+1;m=0}}while(0);return m|0}function up(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+16|0;h=j;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44220)|0;l=x;x=0;if((((!(l&1)?(x=0,Ea(k[(k[e>>2]|0)+32>>2]|0,e|0,57498,57524,c|0)|0,l=x,x=0,!(l&1)):0)?(x=0,g=Aa(37,h|0,44360)|0,l=x,x=0,!(l&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,l=x,x=0,!(l&1)):0)?(i[d>>0]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),l=x,x=0,!(l&1)):0){zm(b)|0;r=j;return}l=Wa()|0;zm(b)|0;fb(l|0)}function vp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0;m=r;r=r+16|0;l=m;b=tn(b)|0;k[l>>2]=b;x=0;f=Aa(37,l|0,44220)|0;n=x;x=0;if(((((!(n&1)?(x=0,Ea(k[(k[f>>2]|0)+32>>2]|0,f|0,57498,57530,c|0)|0,n=x,x=0,!(n&1)):0)?(x=0,j=Aa(37,l|0,44360)|0,n=x,x=0,!(n&1)):0)?(x=0,g=ta(k[(k[j>>2]|0)+12>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[d>>0]=g,x=0,h=ta(k[(k[j>>2]|0)+16>>2]|0,j|0)|0,n=x,x=0,!(n&1)):0)?(i[e>>0]=h,x=0,ra(k[(k[j>>2]|0)+20>>2]|0,a|0,j|0),n=x,x=0,!(n&1)):0){zm(b)|0;r=m;return}n=Wa()|0;zm(b)|0;fb(n|0)}function wp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do if(a<<24>>24==f<<24>>24)if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if(a<<24>>24==g<<24>>24?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+32|0;p=o;while(1){if((i[p>>0]|0)==a<<24>>24)break;p=p+1|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;if((f|0)>31)p=-1;else{g=i[57498+f>>0]|0;switch(f|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;p=k[e>>2]|0;k[e>>2]=p+1;i[p>>0]=g;p=0;break a}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>21){p=0;break a}k[n>>2]=(k[n>>2]|0)+1;p=0;break a}}}}while(0);return p|0}function xp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=r;r=r+16|0;h=i;b=tn(b)|0;k[h>>2]=b;x=0;e=Aa(37,h|0,44212)|0;j=x;x=0;if((((!(j&1)?(x=0,Ea(k[(k[e>>2]|0)+48>>2]|0,e|0,57498,57524,c|0)|0,j=x,x=0,!(j&1)):0)?(x=0,g=Aa(37,h|0,44368)|0,j=x,x=0,!(j&1)):0)?(x=0,f=ta(k[(k[g>>2]|0)+16>>2]|0,g|0)|0,j=x,x=0,!(j&1)):0)?(k[d>>2]=f,x=0,ra(k[(k[g>>2]|0)+20>>2]|0,a|0,g|0),j=x,x=0,!(j&1)):0){zm(b)|0;r=i;return}j=Wa()|0;zm(b)|0;fb(j|0)}function yp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0;l=r;r=r+16|0;j=l;b=tn(b)|0;k[j>>2]=b;x=0;f=Aa(37,j|0,44212)|0;m=x;x=0;if(((((!(m&1)?(x=0,Ea(k[(k[f>>2]|0)+48>>2]|0,f|0,57498,57530,c|0)|0,m=x,x=0,!(m&1)):0)?(x=0,i=Aa(37,j|0,44368)|0,m=x,x=0,!(m&1)):0)?(x=0,g=ta(k[(k[i>>2]|0)+12>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[d>>2]=g,x=0,h=ta(k[(k[i>>2]|0)+16>>2]|0,i|0)|0,m=x,x=0,!(m&1)):0)?(k[e>>2]=h,x=0,ra(k[(k[i>>2]|0)+20>>2]|0,a|0,i|0),m=x,x=0,!(m&1)):0){zm(b)|0;r=l;return}m=Wa()|0;zm(b)|0;fb(m|0)}function zp(a,b,c,d,e,f,g,h,j,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;m=m|0;n=n|0;o=o|0;var p=0,q=0;a:do if((a|0)==(f|0))if(i[b>>0]|0){i[b>>0]=0;c=k[e>>2]|0;k[e>>2]=c+1;i[c>>0]=46;c=i[h>>0]|0;if((((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0?(p=k[m>>2]|0,(p-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;p=0}else p=0}else p=-1;else{if((a|0)==(g|0)?(g=i[h>>0]|0,(((g&1)==0?(g&255)>>>1:k[h+4>>2]|0)|0)!=0):0){if(!(i[b>>0]|0)){p=-1;break}p=k[m>>2]|0;if((p-j|0)>=160){p=0;break}j=k[n>>2]|0;k[m>>2]=p+4;k[p>>2]=j;k[n>>2]=0;p=0;break}f=o+128|0;p=o;while(1){if((k[p>>2]|0)==(a|0))break;p=p+4|0;if((p|0)==(f|0)){p=f;break}}f=p-o|0;p=f>>2;if((f|0)<=124){g=i[57498+p>>0]|0;switch(p|0){case 24:case 25:{p=k[e>>2]|0;if((p|0)!=(d|0)?(l[p+-1>>0]&95|0)!=(l[c>>0]&127|0):0){p=-1;break a}k[e>>2]=p+1;i[p>>0]=g;p=0;break a}case 23:case 22:{i[c>>0]=80;break}default:{p=g&95;if((((p|0)==(i[c>>0]|0)?(i[c>>0]=p|128,(i[b>>0]|0)!=0):0)?(i[b>>0]=0,c=i[h>>0]|0,(((c&1)==0?(c&255)>>>1:k[h+4>>2]|0)|0)!=0):0)?(q=k[m>>2]|0,(q-j|0)<160):0){j=k[n>>2]|0;k[m>>2]=q+4;k[q>>2]=j}}}m=k[e>>2]|0;k[e>>2]=m+1;i[m>>0]=g;if((f|0)>84)p=0;else{k[n>>2]=(k[n>>2]|0)+1;p=0}}else p=-1}while(0);return p|0}function Ap(a){a=a|0;return}function Bp(a){a=a|0;mj(a);return}function Cp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+32|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m;a:do if(!(k[c+4>>2]&1)){l=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[l&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44360)|0;j=x;x=0;b:do if(j&1){m=Wa()|0;zm(f)|0;f=m}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](l,g);else Mb[k[f+28>>2]&127](l,g);a=i[l>>0]|0;j=(a&1)==0;f=l+1|0;e=l+8|0;h=j?f:l+1|0;f=j?f:k[l+8>>2]|0;j=l+4|0;c=(a&1)==0;c:do if((f|0)!=((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0)){d:while(1){g=i[f>>0]|0;d=k[b>>2]|0;do if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)!=(k[d+28>>2]|0)){k[c>>2]=a+1;i[a>>0]=g;break}x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g&255|0)|0;a=x;x=0;if(a&1)break d;if((g|0)==-1)k[b>>2]=0}while(0);f=f+1|0;a=i[l>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+(c?(a&255)>>>1:k[j>>2]|0)|0))break c}f=Wa()|0;Sm(l);break b}while(0);f=k[b>>2]|0;Sm(l);break a}while(0);fb(f|0)}while(0);r=m;return f|0}function Dp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Ep(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(d&2048){i[a>>0]=43;a=a+1|0}if(d&512){i[a>>0]=35;a=a+1|0}e=i[b>>0]|0;if(e<<24>>24){f=b;while(1){f=f+1|0;b=a+1|0;i[a>>0]=e;e=i[f>>0]|0;if(!(e<<24>>24)){a=b;break}else a=b}}a:do switch(d&74|0){case 64:{i[a>>0]=111;break}case 8:if(!(d&16384)){i[a>>0]=120;break a}else{i[a>>0]=88;break a}default:if(c){i[a>>0]=100;break a}else{i[a>>0]=117;break a}}while(0);return}function Fp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:do switch(k[c+4>>2]&176|0){case 16:{c=i[a>>0]|0;switch(c<<24>>24){case 43:case 45:{a=a+1|0;break a}default:{}}if((b-a|0)>1&c<<24>>24==48){switch(i[a+1>>0]|0){case 88:case 120:break;default:{d=7;break a}}a=a+2|0}else d=7;break}case 32:{a=b;break}default:d=7}while(0);return a|0}function Gp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44220)|0;l=Ss(g,44360)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+32>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a)|0;k[f>>2]=g;t=29}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=g;j=a+1|0;break}default:j=a}b:do if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:break b}x=0;h=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=h;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+1;i[p>>0]=g;j=j+2|0}while(0);if((j|0)!=(c|0)?(m=c+-1|0,j>>>0>>0):0){h=j;g=m;do{p=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=p;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;m=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;p=x;x=0;if(!(p&1)){n=v+8|0;o=v+1|0;c:do if(j>>>0>>0){g=0;h=0;p=j;while(1){l=i[((i[v>>0]&1)==0?o:k[n>>2]|0)+h>>0]|0;if(l<<24>>24!=0&(g|0)==(l<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+1;i[g>>0]=m;g=i[v>>0]|0;l=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else l=g;x=0;g=Aa(k[(k[s>>2]|0)+28>>2]|0,s|0,i[p>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+1;i[w>>0]=g;p=p+1|0;if(p>>>0>=c>>>0)break c;else g=l+1|0}g=Wa()|0;break a}while(0);h=a;g=d+(j-h)|0;a=k[f>>2]|0;if((g|0)==(a|0)){a=h;t=29}else{a=a+-1|0;if(g>>>0>>0)do{w=i[g>>0]|0;i[g>>0]=i[a>>0]|0;i[a>>0]=w;g=g+1|0;a=a+-1|0}while(g>>>0>>0);a=h;g=k[f>>2]|0;t=29}}else t=5}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==29){k[e>>2]=(b|0)==(c|0)?g:d+(b-a)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Hp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+96|0;g=m+8|0;a=m;o=m+74|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Ip(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+64|0;f=m;o=m+56|0;p=m+44|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,0,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=md(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Jp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+112|0;g=m+8|0;a=m;o=m+75|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,0,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,23,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(1,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=md(g,i,p,q,c,d)|0;r=m;return q|0}return 0}function Kp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+84|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+88|0;s=z+80|0;h=z+118|0;y=z+76|0;w=z+72|0;u=z+68|0;v=z+64|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58898,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,k[n>>2]=k[c+8>>2],p[n+8>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Lp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(c&2048){i[a>>0]=43;a=a+1|0}if(c&1024){i[a>>0]=35;a=a+1|0}g=c&260;e=c>>>14;h=(g|0)==260;if(h)f=0;else{i[a>>0]=46;i[a+1>>0]=42;a=a+2|0;f=1}c=i[b>>0]|0;if(c<<24>>24){d=a;while(1){b=b+1|0;a=d+1|0;i[d>>0]=c;c=i[b>>0]|0;if(!(c<<24>>24))break;else d=a}}a:do switch(g|0){case 4:if(!(e&1)){i[a>>0]=102;break a}else{i[a>>0]=70;break a}case 256:if(!(e&1)){i[a>>0]=101;break a}else{i[a>>0]=69;break a}default:{c=(e&1|0)!=0;if(h)if(c){i[a>>0]=65;break a}else{i[a>>0]=97;break a}else if(c){i[a>>0]=71;break a}else{i[a>>0]=103;break a}}}while(0);return f|0}function Mp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0;z=r;r=r+16|0;A=z;y=Ss(g,44220)|0;v=Ss(g,44360)|0;Mb[k[(k[v>>2]|0)+20>>2]&127](A,v);k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,g|0)|0;w=x;x=0;if(w&1)u=8;else{m=k[f>>2]|0;k[f>>2]=m+1;i[m>>0]=g;m=a+1|0;u=10}break}default:{m=a;u=10}}a:do if((u|0)==10){w=c;b:do if((w-m|0)>1?(i[m>>0]|0)==48:0){j=m+1|0;switch(i[j>>0]|0){case 88:case 120:break;default:{u=11;break b}}x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,48)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;m=m+2|0;x=0;g=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[j>>0]|0)|0;t=x;x=0;if(t&1){u=8;break a}t=k[f>>2]|0;k[f>>2]=t+1;i[t>>0]=g;if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(39,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break b}g=g+1|0;if(g>>>0>=c>>>0){t=m;break b}}g=Wa()|0;break a}else{t=m;g=m}}else u=11;while(0);c:do if((u|0)==11)if(m>>>0>>0){g=m;while(1){j=i[g>>0]|0;x=0;l=Da(3)|0;t=x;x=0;if(t&1)break;x=0;j=Aa(40,j<<24>>24|0,l|0)|0;t=x;x=0;if(t&1)break;if(!j){t=m;break c}g=g+1|0;if(g>>>0>=c>>>0){t=m;break c}}g=Wa()|0;break a}else{t=m;g=m}while(0);q=i[A>>0]|0;s=A+4|0;if(((q&1)==0?(q&255)>>>1:k[s>>2]|0)|0){if((t|0)!=(g|0)?(n=g+-1|0,t>>>0>>0):0){l=t;j=n;do{q=i[l>>0]|0;i[l>>0]=i[j>>0]|0;i[j>>0]=q;l=l+1|0;j=j+-1|0}while(l>>>0>>0)}x=0;n=ta(k[(k[v>>2]|0)+16>>2]|0,v|0)|0;q=x;x=0;if(q&1){u=8;break}o=A+8|0;p=A+1|0;d:do if(t>>>0>>0){j=0;l=0;q=t;while(1){m=i[((i[A>>0]&1)==0?p:k[o>>2]|0)+l>>0]|0;if(m<<24>>24>0&(j|0)==(m<<24>>24|0)){j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=n;j=i[A>>0]|0;m=0;l=(l>>>0<(((j&1)==0?(j&255)>>>1:k[s>>2]|0)+-1|0)>>>0&1)+l|0}else m=j;x=0;j=Aa(k[(k[y>>2]|0)+28>>2]|0,y|0,i[q>>0]|0)|0;B=x;x=0;if(B&1)break;B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=j;q=q+1|0;if(q>>>0>=g>>>0)break d;else j=m+1|0}g=Wa()|0;break a}while(0);j=d+(t-a)|0;l=k[f>>2]|0;if((j|0)!=(l|0)?(h=l+-1|0,j>>>0>>0):0){do{B=i[j>>0]|0;i[j>>0]=i[h>>0]|0;i[h>>0]=B;j=j+1|0;h=h+-1|0}while(j>>>0>>0);j=y}else j=y}else{x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,t|0,g|0,k[f>>2]|0)|0;B=x;x=0;if(B&1){u=8;break}k[f>>2]=(k[f>>2]|0)+(g-t);j=y}e:do if(g>>>0>>0){while(1){h=i[g>>0]|0;if(h<<24>>24==46)break;x=0;h=Aa(k[(k[j>>2]|0)+28>>2]|0,y|0,h|0)|0;B=x;x=0;if(B&1){u=4;break}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0;if(g>>>0>=c>>>0)break e}if((u|0)==4){g=Wa()|0;break a}x=0;h=ta(k[(k[v>>2]|0)+12>>2]|0,v|0)|0;B=x;x=0;if(B&1){u=8;break a}B=k[f>>2]|0;k[f>>2]=B+1;i[B>>0]=h;g=g+1|0}while(0);x=0;Ea(k[(k[y>>2]|0)+32>>2]|0,y|0,g|0,c|0,k[f>>2]|0)|0;B=x;x=0;if(B&1)u=8;else{B=(k[f>>2]|0)+(w-g)|0;k[f>>2]=B;k[e>>2]=(b|0)==(c|0)?B:d+(b-a)|0;Sm(A);r=z;return}}while(0);if((u|0)==8)g=Wa()|0;Sm(A);fb(g|0)}function Np(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+176|0;t=z+76|0;n=z+48|0;m=z+32|0;i=z+24|0;f=z+8|0;l=z;q=z+80|0;s=z+72|0;h=z+110|0;y=z+68|0;w=z+64|0;u=z+60|0;v=z+56|0;j=l;k[j>>2]=37;k[j+4>>2]=0;j=Lp(l+1|0,58899,k[c+4>>2]|0)|0;k[s>>2]=q;a=fp()|0;if(j){k[f>>2]=k[c+8>>2];p[f+8>>3]=e;f=av(q,30,a,l,f)|0}else{p[i>>3]=e;f=av(q,30,a,l,i)|0}a:do if((f|0)>29){x=0;a=Da(3)|0;f=x;x=0;f=f&1;if(j){if(!f?(x=0,k[m>>2]=k[c+8>>2],p[m+8>>3]=e,g=Ea(17,s|0,a|0,l|0,m|0)|0,o=x,x=0,!(o&1)):0)A=12}else if(!f?(x=0,p[n>>3]=e,o=Ea(17,s|0,a|0,l|0,n|0)|0,n=x,x=0,!(n&1)):0){g=o;A=12}do if((A|0)==12){a=k[s>>2]|0;if(!a){x=0;Ga(6);o=x;x=0;if(o&1)break;f=k[s>>2]|0}else f=a;a=f;l=f;A=16;break a}while(0);a=Wa()|0}else{a=k[s>>2]|0;l=0;g=f;A=16}while(0);if((A|0)==16){i=a+g|0;j=Fp(a,i,c)|0;do if((a|0)==(q|0)){a=q;f=0;A=22}else{g=Pl(g<<1)|0;if(!g){x=0;Ga(6);A=x;x=0;if(A&1){f=0;A=20;break}a=k[s>>2]|0}f=g;h=g;A=22}while(0);do if((A|0)==22){x=0;g=ta(68,c|0)|0;s=x;x=0;if(!(s&1)){k[u>>2]=g;x=0;ya(2,a|0,j|0,i|0,h|0,y|0,w|0,u|0);u=x;x=0;if(u&1){a=Wa()|0;zm(g)|0;break}zm(g)|0;k[v>>2]=k[b>>2];A=k[y>>2]|0;a=k[w>>2]|0;x=0;k[t>>2]=k[v>>2];a=sa(39,t|0,h|0,A|0,a|0,c|0,d|0)|0;A=x;x=0;if(!(A&1)){k[b>>2]=a;if(f)Ql(f);if(l)Ql(l);r=z;return a|0}else A=20}else A=20}while(0);if((A|0)==20)a=Wa()|0;if(f)Ql(f);if(l)Ql(l)}fb(a|0);return 0}function Op(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;o=r;r=r+80|0;j=o;a=o+70|0;m=o+12|0;n=o+32|0;h=o+8|0;l=o+4|0;i[a>>0]=i[58901]|0;i[a+1>>0]=i[58902]|0;i[a+2>>0]=i[58903]|0;i[a+3>>0]=i[58904]|0;i[a+4>>0]=i[58905]|0;i[a+5>>0]=i[58906]|0;f=fp()|0;k[j>>2]=e;a=av(m,20,f,a,j)|0;e=m+a|0;f=Fp(m,e,c)|0;g=tn(c)|0;k[h>>2]=g;x=0;h=Aa(37,h|0,44220)|0;p=x;x=0;if(p&1){p=Wa()|0;zm(g)|0;fb(p|0)}else{zm(g)|0;Zb[k[(k[h>>2]|0)+32>>2]&31](h,m,e,n)|0;p=n+a|0;k[l>>2]=k[b>>2];k[j>>2]=k[l>>2];p=md(j,n,(f|0)==(e|0)?p:n+(f-m)|0,p,c,d)|0;r=o;return p|0}return 0}function Pp(a){a=a|0;return}function Qp(a){a=a|0;mj(a);return}function Rp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;f=l+20|0;g=l+16|0;h=l+12|0;j=l;a:do if(!(k[c+4>>2]&1)){j=k[(k[a>>2]|0)+24>>2]|0;k[g>>2]=k[b>>2];k[f>>2]=k[g>>2];f=Wb[j&31](a,f,c,d,e&1)|0}else{f=tn(c)|0;k[h>>2]=f;x=0;g=Aa(37,h|0,44368)|0;h=x;x=0;b:do if(h&1){l=Wa()|0;zm(f)|0;f=l}else{zm(f)|0;f=k[g>>2]|0;if(e)Mb[k[f+24>>2]&127](j,g);else Mb[k[f+28>>2]&127](j,g);a=i[j>>0]|0;c=(a&1)==0;f=j+4|0;e=j+8|0;h=c?f:j+4|0;f=c?f:k[j+8>>2]|0;c=(a&1)==0;c:do if((f|0)!=((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0)){while(1){g=k[f>>2]|0;d=k[b>>2]|0;if(d){c=d+24|0;a=k[c>>2]|0;if((a|0)==(k[d+28>>2]|0)){x=0;g=Aa(k[(k[d>>2]|0)+52>>2]|0,d|0,g|0)|0;a=x;x=0;if(a&1)break}else{k[c>>2]=a+4;k[a>>2]=g}if((g|0)==-1)k[b>>2]=0}f=f+4|0;a=i[j>>0]|0;c=(a&1)==0;if((f|0)==((c?h:k[e>>2]|0)+((c?(a&255)>>>1:k[h>>2]|0)<<2)|0))break c}f=Wa()|0;en(j);break b}while(0);f=k[b>>2]|0;en(j);break a}while(0);fb(f|0)}while(0);r=l;return f|0}function Sp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;m=r;r=r+128|0;f=m;o=m+116|0;p=m+104|0;h=m+20|0;l=m+16|0;j=m+12|0;n=m+8|0;g=m+4|0;i[o>>0]=i[58887]|0;i[o+1>>0]=i[58888]|0;i[o+2>>0]=i[58889]|0;i[o+3>>0]=i[58890]|0;i[o+4>>0]=i[58891]|0;i[o+5>>0]=i[58892]|0;Ep(o+1|0,58893,1,k[c+4>>2]|0);a=fp()|0;k[f>>2]=e;e=p+(av(p,12,a,o,f)|0)|0;o=Fp(p,e,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,p|0,o|0,e|0,h|0,l|0,j|0,n|0);e=x;x=0;if(e&1){p=Wa()|0;zm(a)|0;fb(p|0)}else{zm(a)|0;k[g>>2]=k[b>>2];o=k[l>>2]|0;p=k[j>>2]|0;k[f>>2]=k[g>>2];p=cv(f,h,o,p,c,d)|0;r=m;return p|0}return 0}function Tp(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;s=Ss(g,44212)|0;l=Ss(g,44368)|0;Mb[k[(k[l>>2]|0)+20>>2]&127](v,l);p=i[v>>0]|0;q=v+4|0;a:do if(!(((p&1)==0?(p&255)>>>1:k[q>>2]|0)|0)){x=0;Ea(k[(k[s>>2]|0)+48>>2]|0,s|0,a|0,c|0,d|0)|0;t=x;x=0;if(t&1)t=5;else{g=d+(c-a<<2)|0;k[f>>2]=g;t=28}}else{k[f>>2]=d;g=i[a>>0]|0;switch(g<<24>>24){case 43:case 45:{x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,g|0)|0;p=x;x=0;if(p&1){t=5;break a}j=k[f>>2]|0;k[f>>2]=j+4;k[j>>2]=g;j=a+1|0;break}default:j=a}b:do if((c-j|0)>1?(i[j>>0]|0)==48:0){g=j+1|0;switch(i[g>>0]|0){case 88:case 120:break;default:{p=j;break b}}x=0;h=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,48)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=h;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[g>>0]|0)|0;p=x;x=0;if(p&1){t=5;break a}p=k[f>>2]|0;k[f>>2]=p+4;k[p>>2]=g;p=j+2|0}else p=j;while(0);if((p|0)!=(c|0)?(m=c+-1|0,p>>>0>>0):0){h=p;g=m;do{o=i[h>>0]|0;i[h>>0]=i[g>>0]|0;i[g>>0]=o;h=h+1|0;g=g+-1|0}while(h>>>0>>0)}x=0;l=ta(k[(k[l>>2]|0)+16>>2]|0,l|0)|0;o=x;x=0;if(!(o&1)){m=v+8|0;n=v+1|0;c:do if(p>>>0>>0){g=0;h=0;o=p;while(1){j=i[((i[v>>0]&1)==0?n:k[m>>2]|0)+h>>0]|0;if(j<<24>>24!=0&(g|0)==(j<<24>>24|0)){g=k[f>>2]|0;k[f>>2]=g+4;k[g>>2]=l;g=i[v>>0]|0;j=0;h=(h>>>0<(((g&1)==0?(g&255)>>>1:k[q>>2]|0)+-1|0)>>>0&1)+h|0}else j=g;x=0;g=Aa(k[(k[s>>2]|0)+44>>2]|0,s|0,i[o>>0]|0)|0;w=x;x=0;if(w&1)break;w=k[f>>2]|0;k[f>>2]=w+4;k[w>>2]=g;o=o+1|0;if(o>>>0>=c>>>0)break c;else g=j+1|0}g=Wa()|0;break a}while(0);j=a;g=d+(p-j<<2)|0;h=k[f>>2]|0;if((g|0)!=(h|0)){a=h+-4|0;if(g>>>0>>0){do{w=k[g>>2]|0;k[g>>2]=k[a>>2];k[a>>2]=w;g=g+4|0;a=a+-4|0}while(g>>>0>>0);a=j;g=h;t=28}else{a=j;g=h;t=28}}else{a=j;t=28}}else t=5}while(0);if((t|0)==5)g=Wa()|0;else if((t|0)==28){k[e>>2]=(b|0)==(c|0)?g:d+(b-a<<2)|0;Sm(v);r=u;return}Sm(v);fb(g|0)}function Up(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;m=r;r=r+224|0;g=m+8|0;a=m;o=m+196|0;i=m+32|0;l=m+28|0;j=m+24|0;n=m+20|0;h=m+16|0;p=a;k[p>>2]=37;k[p+4>>2]=0;Ep(a+1|0,58895,1,k[c+4>>2]|0);p=fp()|0;q=g;k[q>>2]=e;k[q+4>>2]=f;f=o+(av(o,22,p,a,g)|0)|0;e=Fp(o,f,c)|0;a=tn(c)|0;k[n>>2]=a;x=0;ya(3,o|0,e|0,f|0,i|0,l|0,j|0,n|0);f=x;x=0;if(f&1){q=Wa()|0;zm(a)|0;fb(q|0)}else{zm(a)|0;k[h>>2]=k[b>>2];p=k[l>>2]|0;q=k[j>>2]|0;k[g>>2]=k[h>>2];q=cv(g,i,p,q,c,d)|0;r=m;return q|0}return 0} -function Et(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;q=t;o=t+8|0;a:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break a;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}while(0);k[h>>2]=f;k[e>>2]=c;m=g;p=a+8|0;b:do if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;l=j;c:while(1){v=b;f=k[v+4>>2]|0;j=q;k[j>>2]=k[v>>2];k[j+4>>2]=f;j=Ak(k[p>>2]|0)|0;x=0;f=Ba(21,a|0,e|0,l-c>>2|0,m-a|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(f|0){case 0:{n=1;break b}case -1:{j=a;u=14;break c}default:{}}j=(k[h>>2]|0)+f|0;k[h>>2]=j;if((j|0)==(g|0)){u=27;break}if((l|0)==(d|0)){c=k[e>>2]|0;a=j;j=d}else{j=Ak(k[p>>2]|0)|0;x=0;c=va(34,o|0,0,b|0)|0;v=x;x=0;if(v&1){u=35;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=34;break}if((c|0)==-1){n=2;break b}if(c>>>0>(m-(k[h>>2]|0)|0)>>>0){n=1;break b}if(c){j=o;while(1){l=i[j>>0]|0;v=k[h>>2]|0;k[h>>2]=v+1;i[v>>0]=l;c=c+-1|0;if(!c)break;else j=j+1|0}}c=(k[e>>2]|0)+4|0;k[e>>2]=c;d:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(k[j>>2]|0))break d;j=j+4|0;if((j|0)==(d|0)){j=d;break}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else l=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do if((c|0)!=(k[e>>2]|0)){while(1){v=k[c>>2]|0;a=Ak(k[p>>2]|0)|0;x=0;j=va(34,j|0,v|0,q|0)|0;v=x;x=0;if(v&1){s=a;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,v=x,x=0,v&1):0){u=18;break}if((j|0)==-1)break e;j=(k[h>>2]|0)+j|0;k[h>>2]=j;c=c+4|0;if((c|0)==(k[e>>2]|0))break e}if((u|0)==18){v=Wa(0)|0;oc(v)}c=Wa()|0;if((s|0)!=0?(x=0,ta(75,s|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}while(0);k[e>>2]=c;n=2;break}else if((u|0)==27){c=k[e>>2]|0;u=47;break}else if((u|0)==34){v=Wa(0)|0;oc(v)}else if((u|0)==35){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47;while(0);if((u|0)==47)n=(c|0)!=(d|0)&1;r=t;return n|0}function Ft(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;t=r;r=r+16|0;s=t;a:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break a;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}while(0);k[h>>2]=f;k[e>>2]=c;n=g;p=a+8|0;b:do if(!((f|0)==(g|0)|(c|0)==(d|0))){a=f;m=j;c:while(1){l=b;j=k[l+4>>2]|0;f=s;k[f>>2]=k[l>>2];k[f+4>>2]=j;f=m;j=Ak(k[p>>2]|0)|0;x=0;l=Ba(22,a|0,e|0,f-c|0,n-a>>2|0,b|0)|0;v=x;x=0;if(v&1){u=9;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=8;break}switch(l|0){case 0:{o=2;break b}case -1:{j=a;u=14;break c}default:{}}a=(k[h>>2]|0)+(l<<2)|0;k[h>>2]=a;if((a|0)==(g|0)){u=31;break}c=k[e>>2]|0;if((m|0)==(d|0))j=d;else{j=Ak(k[p>>2]|0)|0;x=0;c=Ea(20,a|0,c|0,1,b|0)|0;v=x;x=0;if(v&1){u=38;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=37;break}if(c){o=2;break b}k[h>>2]=(k[h>>2]|0)+4;c=(k[e>>2]|0)+1|0;k[e>>2]=c;d:do if((c|0)==(d|0))j=d;else{j=c;while(1){if(!(i[j>>0]|0))break d;j=j+1|0;if((j|0)==(d|0)){j=d;break}}}while(0);a=k[h>>2]|0}if((a|0)==(g|0)|(c|0)==(d|0)){u=47;break b}else m=j}if((u|0)==8){v=Wa(0)|0;oc(v)}else if((u|0)==9){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==14){k[h>>2]=j;e:do if((c|0)!=(k[e>>2]|0)){a=j;f:while(1){j=Ak(k[p>>2]|0)|0;x=0;a=Ea(20,a|0,c|0,f-c|0,s|0)|0;v=x;x=0;if(v&1){u=19;break}if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){u=18;break}switch(a|0){case -1:{u=25;break f}case -2:{u=26;break f}case 0:{c=c+1|0;break}default:c=c+a|0}a=(k[h>>2]|0)+4|0;k[h>>2]=a;if((c|0)==(k[e>>2]|0)){q=c;break e}}if((u|0)==18){v=Wa(0)|0;oc(v)}else if((u|0)==19){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}else if((u|0)==25){k[e>>2]=c;o=2;break b}else if((u|0)==26){k[e>>2]=c;o=1;break b}}else q=c;while(0);k[e>>2]=q;o=(q|0)!=(d|0)&1;break}else if((u|0)==31){c=k[e>>2]|0;u=47;break}else if((u|0)==37){v=Wa(0)|0;oc(v)}else if((u|0)==38){c=Wa()|0;if((j|0)!=0?(x=0,ta(75,j|0)|0,v=x,x=0,v&1):0){v=Wa(0)|0;oc(v)}fb(c|0)}}else u=47;while(0);if((u|0)==47)o=(c|0)!=(d|0)&1;r=t;return o|0}function Gt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=r;r=r+16|0;f=g;k[e>>2]=c;c=Ak(k[a+8>>2]|0)|0;x=0;a=va(34,f|0,0,b|0)|0;b=x;x=0;if(b&1){f=Wa()|0;if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}fb(f|0)}if((c|0)!=0?(x=0,ta(75,c|0)|0,b=x,x=0,b&1):0){b=Wa(0)|0;oc(b)}switch(a|0){case 0:case -1:{f=2;break}default:{a=a+-1|0;if(a>>>0<=(d-(k[e>>2]|0)|0)>>>0)if(!a)f=0;else while(1){b=i[f>>0]|0;d=k[e>>2]|0;k[e>>2]=d+1;i[d>>0]=b;a=a+-1|0;if(!a){f=0;break}else f=f+1|0}else f=1}}r=g;return f|0}function Ht(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+8|0;x=0;c=ta(75,k[b>>2]|0)|0;d=x;x=0;do if(d&1)e=16;else{x=0;d=va(35,0,0,4)|0;a=x;x=0;if(a&1){a=Wa(0)|0;if(!c)break;x=0;ta(75,c|0)|0;g=x;x=0;if(!(g&1))break;g=Wa(0)|0;oc(g)}if((c|0)!=0?(x=0,ta(75,c|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}if(!d){a=k[b>>2]|0;if(a){x=0;a=ta(75,a|0)|0;g=x;x=0;if(g&1){e=16;break}if((a|0)!=0?(x=0,ta(75,a|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}else f=0}else f=1}else f=-1;return f|0}while(0);if((e|0)==16)a=Wa(0)|0;oc(a);return 0}function It(a){a=a|0;return 0}function Jt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;j=d;i=a+8|0;a:do if((c|0)==(d|0)|(e|0)==0)a=0;else{a=0;h=0;while(1){g=Ak(k[i>>2]|0)|0;x=0;f=va(36,c|0,j-c|0,b|0)|0;n=x;x=0;if(n&1){m=g;break}if((g|0)!=0?(x=0,ta(75,g|0)|0,n=x,x=0,n&1):0){l=5;break}switch(f|0){case -2:case -1:break a;case 0:{c=c+1|0;f=1;break}default:c=c+f|0}a=f+a|0;h=h+1|0;if((c|0)==(d|0)|h>>>0>=e>>>0)break a}if((l|0)==5){n=Wa(0)|0;oc(n)}a=Wa()|0;if((m|0)!=0?(x=0,ta(75,m|0)|0,n=x,x=0,n&1):0){n=Wa(0)|0;oc(n)}fb(a|0)}while(0);return a|0}function Kt(a){a=a|0;var b=0,c=0;a=k[a+8>>2]|0;if(a){x=0;a=ta(75,a|0)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if((a|0)!=0?(x=0,ta(75,a|0)|0,c=x,x=0,c&1):0){c=Wa(0)|0;oc(c)}else b=4}else b=1;return b|0}function Lt(a){a=a|0;mj(a);return}function Mt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Rv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Nt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Sv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Ot(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Pt(a){a=a|0;return 0}function Qt(a){a=a|0;return 0}function Rt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Tv(c,d,e,1114111,0)|0}function St(a){a=a|0;return 4}function Tt(a){a=a|0;mj(a);return}function Ut(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Uv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Vt(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;a=r;r=r+16|0;i=a+4|0;b=a;k[i>>2]=c;k[b>>2]=f;g=Vv(c,d,i,f,g,b,1114111,0)|0;k[e>>2]=k[i>>2];k[h>>2]=k[b>>2];r=a;return g|0}function Wt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;k[e>>2]=c;return 3}function Xt(a){a=a|0;return 0}function Yt(a){a=a|0;return 0}function Zt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wv(c,d,e,1114111,0)|0}function _t(a){a=a|0;return 4}function $t(a){a=a|0;mj(a);return}function au(a){a=a|0;mj(a);return}function bu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44384;i[a+8>>0]=46;i[a+9>>0]=44;a=a+12|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function cu(a,b){a=a|0;b=b|0;k[a+4>>2]=b+-1;k[a>>2]=44424;k[a+8>>2]=46;k[a+12>>2]=44;a=a+16|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;return}function du(a){a=a|0;k[a>>2]=44384;Sm(a+12|0);return}function eu(a){a=a|0;du(a);mj(a);return}function fu(a){a=a|0;k[a>>2]=44424;Sm(a+16|0);return}function gu(a){a=a|0;fu(a);mj(a);return}function hu(a){a=a|0;return i[a+8>>0]|0}function iu(a){a=a|0;return k[a+8>>2]|0}function ju(a){a=a|0;return i[a+9>>0]|0}function ku(a){a=a|0;return k[a+12>>2]|0}function lu(a,b){a=a|0;b=b|0;Pm(a,b+12|0);return}function mu(a,b){a=a|0;b=b|0;Pm(a,b+16|0);return}function nu(a,b){a=a|0;b=b|0;Qm(a,59024,4);return}function ou(a,b){a=a|0;b=b|0;cn(a,44996,zl(44996)|0);return}function pu(a,b){a=a|0;b=b|0;Qm(a,59029,5);return}function qu(a,b){a=a|0;b=b|0;cn(a,45016,zl(45016)|0);return}function ru(a){a=a|0;switch(k[a+4>>2]&74|0){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function su(a){a=a|0;do if((i[2464]|0)==0?(Qa(2464)|0)!=0:0){if((i[2472]|0)==0?(Qa(2472)|0)!=0:0){a=45040;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45208);tb(193,0,w|0)|0;Ya(2472)}x=0;Aa(41,45040,59035)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(41,45052,59042)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45064,59049)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45076,59057)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45088,59067)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45100,59076)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45112,59083)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45124,59092)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45136,59096)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45148,59100)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45160,59104)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45172,59108)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45184,59112)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45196,59116)|0,a=x,x=0,!(a&1)):0){k[11302]=45040;Ya(2464);break}a=Wa()|0;Bb(2464);fb(a|0)}while(0);return k[11302]|0}function tu(a){a=a|0;do if((i[2480]|0)==0?(Qa(2480)|0)!=0:0){if((i[2488]|0)==0?(Qa(2488)|0)!=0:0){a=45212;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=45380);tb(194,0,w|0)|0;Ya(2488)}x=0;Aa(42,45212,45380)|0;a=x;x=0;if(((((((((((((!(a&1)?(x=0,Aa(42,45224,45408)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45236,45436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45248,45468)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45260,45508)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45272,45544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45284,45572)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45296,45608)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45308,45624)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45320,45640)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45332,45656)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45344,45672)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45356,45688)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,45368,45704)|0,a=x,x=0,!(a&1)):0){k[11430]=45212;Ya(2480);break}a=Wa()|0;Bb(2480);fb(a|0)}while(0);return k[11430]|0}function uu(a){a=a|0;a:do if((i[2496]|0)==0?(Qa(2496)|0)!=0:0){if((i[2504]|0)==0?(Qa(2504)|0)!=0:0){a=45724;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46012);tb(195,0,w|0)|0;Ya(2504)}x=0;Aa(41,45724,59120)|0;a=x;x=0;do if((((((((((((((!(a&1)?(x=0,Aa(41,45736,59128)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45748,59137)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45760,59143)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45772,59149)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45784,59153)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45796,59158)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45808,59163)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45820,59170)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45832,59180)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45844,59188)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45856,59197)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45868,59206)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45880,59210)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(41,45892,59214)|0,a=x,x=0,!(a&1)):0){x=0;Aa(41,45904,59218)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45916,59149)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45928,59222)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45940,59226)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45952,59230)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45964,59234)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45976,59238)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,45988,59242)|0;a=x;x=0;if(a&1)break;x=0;Aa(41,46e3,59246)|0;a=x;x=0;if(a&1)break;k[11503]=45724;Ya(2496);break a}while(0);a=Wa()|0;Bb(2496);fb(a|0)}while(0);return k[11503]|0}function vu(a){a=a|0;a:do if((i[2512]|0)==0?(Qa(2512)|0)!=0:0){if((i[2520]|0)==0?(Qa(2520)|0)!=0:0){a=46016;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=46304);tb(196,0,w|0)|0;Ya(2520)}x=0;Aa(42,46016,46304)|0;a=x;x=0;do if((((((((((((((!(a&1)?(x=0,Aa(42,46028,46336)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46040,46372)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46052,46396)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46064,46420)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46076,46436)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46088,46456)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46100,46476)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46112,46504)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46124,46544)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46136,46576)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46148,46612)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46160,46648)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46172,46664)|0,a=x,x=0,!(a&1)):0)?(x=0,Aa(42,46184,46680)|0,a=x,x=0,!(a&1)):0){x=0;Aa(42,46196,46696)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46208,46420)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46220,46712)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46232,46728)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46244,46744)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46256,46760)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46268,46776)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46280,46792)|0;a=x;x=0;if(a&1)break;x=0;Aa(42,46292,46808)|0;a=x;x=0;if(a&1)break;k[11706]=46016;Ya(2512);break a}while(0);a=Wa()|0;Bb(2512);fb(a|0)}while(0);return k[11706]|0}function wu(a){a=a|0;do if((i[2528]|0)==0?(Qa(2528)|0)!=0:0){if((i[2536]|0)==0?(Qa(2536)|0)!=0:0){a=46828;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47116);tb(197,0,w|0)|0;Ya(2536)}x=0;Aa(41,46828,59250)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(41,46840,59253)|0,a=x,x=0,!(a&1)):0){k[11779]=46828;Ya(2528);break}a=Wa()|0;Bb(2528);fb(a|0)}while(0);return k[11779]|0}function xu(a){a=a|0;do if((i[2544]|0)==0?(Qa(2544)|0)!=0:0){if((i[2552]|0)==0?(Qa(2552)|0)!=0:0){a=47120;do{k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;a=a+12|0}while((a|0)!=47408);tb(198,0,w|0)|0;Ya(2552)}x=0;Aa(42,47120,47408)|0;a=x;x=0;if(!(a&1)?(x=0,Aa(42,47132,47420)|0,a=x,x=0,!(a&1)):0){k[11858]=47120;Ya(2544);break}a=Wa()|0;Bb(2544);fb(a|0)}while(0);return k[11858]|0}function yu(a){a=a|0;do if((i[2560]|0)==0?(Qa(2560)|0)!=0:0){x=0;Fa(5,47436,59256,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2560);fb(a|0)}else{tb(199,47436,w|0)|0;Ya(2560);break}}while(0);return 47436}function zu(a){a=a|0;var b=0;do if((i[2568]|0)==0?(Qa(2568)|0)!=0:0){x=0;a=ta(76,47448)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47484,47448,a|0),b=x,x=0,!(b&1)):0){tb(200,47484,w|0)|0;Ya(2568);break}b=Wa()|0;Bb(2568);fb(b|0)}while(0);return 47484}function Au(a){a=a|0;do if((i[2576]|0)==0?(Qa(2576)|0)!=0:0){x=0;Fa(5,47496,59265,8);a=x;x=0;if(a&1){a=Wa()|0;Bb(2576);fb(a|0)}else{tb(199,47496,w|0)|0;Ya(2576);break}}while(0);return 47496}function Bu(a){a=a|0;var b=0;do if((i[2584]|0)==0?(Qa(2584)|0)!=0:0){x=0;a=ta(76,47508)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47544,47508,a|0),b=x,x=0,!(b&1)):0){tb(200,47544,w|0)|0;Ya(2584);break}b=Wa()|0;Bb(2584);fb(b|0)}while(0);return 47544}function Cu(a){a=a|0;do if((i[2592]|0)==0?(Qa(2592)|0)!=0:0){x=0;Fa(5,47556,59274,20);a=x;x=0;if(a&1){a=Wa()|0;Bb(2592);fb(a|0)}else{tb(199,47556,w|0)|0;Ya(2592);break}}while(0);return 47556}function Du(a){a=a|0;var b=0;do if((i[2600]|0)==0?(Qa(2600)|0)!=0:0){x=0;a=ta(76,47568)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47652,47568,a|0),b=x,x=0,!(b&1)):0){tb(200,47652,w|0)|0;Ya(2600);break}b=Wa()|0;Bb(2600);fb(b|0)}while(0);return 47652}function Eu(a){a=a|0;do if((i[2608]|0)==0?(Qa(2608)|0)!=0:0){x=0;Fa(5,47664,59295,11);a=x;x=0;if(a&1){a=Wa()|0;Bb(2608);fb(a|0)}else{tb(199,47664,w|0)|0;Ya(2608);break}}while(0);return 47664}function Fu(a){a=a|0;var b=0;do if((i[2616]|0)==0?(Qa(2616)|0)!=0:0){x=0;a=ta(76,47676)|0;b=x;x=0;if(!(b&1)?(x=0,Fa(15,47724,47676,a|0),b=x,x=0,!(b&1)):0){tb(200,47724,w|0)|0;Ya(2616);break}b=Wa()|0;Bb(2616);fb(b|0)}while(0);return 47724}function Gu(a){a=a|0;var b=0,c=0,d=0;k[a>>2]=44304;a=a+8|0;b=k[a>>2]|0;x=0;c=Da(3)|0;d=x;x=0;do if(!(d&1)){if((b|0)!=(c|0)?(x=0,qa(188,k[a>>2]|0),d=x,x=0,d&1):0)break;return}while(0);d=Wa(0)|0;oc(d)}function Hu(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0;z=r;r=r+112|0;j=z;n=(d-c|0)/12|0;do if(n>>>0>100){j=Pl(n)|0;if((j|0)==0?(x=0,Ga(6),y=x,x=0,y&1):0){h=0;q=6;break}h=j;q=11}else{h=0;q=11}while(0);a:do if((q|0)==11){if((c|0)==(d|0))m=0;else{q=c;o=0;p=j;while(1){m=i[q>>0]|0;if(!(m&1))m=(m&255)>>>1;else m=k[q+4>>2]|0;if(!m){i[p>>0]=2;m=o+1|0;n=n+-1|0}else{i[p>>0]=1;m=o}q=q+12|0;if((q|0)==(d|0))break;else{o=m;p=p+1|0}}}w=(c|0)==(d|0);y=(c|0)==(d|0);v=0;s=m;b:while(1){m=k[a>>2]|0;do if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break b}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0;while(0);q=(m|0)==0;o=k[b>>2]|0;if(o){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;u=x;x=0;if(u&1){q=5;break}if((m|0)==-1){k[b>>2]=0;o=0}}}else o=0;p=(o|0)==0;m=k[a>>2]|0;if(!((n|0)!=0&(q^p))){q=64;break}o=k[m+12>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}else m=l[o>>0]|0;m=m&255;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,m|0)|0;u=x;x=0;if(u&1){q=5;break}}u=v+1|0;if(w){m=0;q=s}else{p=0;t=c;q=s;s=j;while(1){do if((i[s>>0]|0)==1){if(!(i[t>>0]&1))o=t+1|0;else o=k[t+8>>2]|0;o=i[o+v>>0]|0;if(!g){x=0;o=Aa(k[(k[e>>2]|0)+12>>2]|0,e|0,o|0)|0;A=x;x=0;if(A&1){q=4;break b}}if(m<<24>>24!=o<<24>>24){i[s>>0]=0;o=p;n=n+-1|0;break}o=i[t>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[t+4>>2]|0;if((o|0)==(u|0)){i[s>>0]=2;o=1;q=q+1|0;n=n+-1|0}else o=1}else o=p;while(0);t=t+12|0;if((t|0)==(d|0)){m=o;break}else{p=o;s=s+1|0}}}if(!m){v=u;s=q;continue}m=k[a>>2]|0;o=m+12|0;p=k[o>>2]|0;if((p|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=5;break}}else k[o>>2]=p+1;if((q+n|0)>>>0<2|y){v=u;s=q;continue}else{m=c;p=q;q=j}while(1){if((i[q>>0]|0)==2){o=i[m>>0]|0;if(!(o&1))o=(o&255)>>>1;else o=k[m+4>>2]|0;if((o|0)!=(u|0)){i[q>>0]=0;p=p+-1|0}}m=m+12|0;if((m|0)==(d|0)){v=u;s=p;continue b}else q=q+1|0}}if((q|0)==4){c=Wa()|0;break}else if((q|0)==5){c=Wa()|0;break}else if((q|0)==64){do if(m){if((k[m+12>>2]|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[a>>2]=0;m=0;break}else{m=k[a>>2]|0;break}}}else m=0;while(0);n=(m|0)==0;do if(!p){if((k[o+12>>2]|0)==(k[o+16>>2]|0)){x=0;m=ta(k[(k[o>>2]|0)+36>>2]|0,o|0)|0;A=x;x=0;if(A&1){q=6;break a}if((m|0)==-1){k[b>>2]=0;q=76;break}}if(!n)q=77}else q=76;while(0);if((q|0)==76?n:0)q=77;if((q|0)==77)k[f>>2]=k[f>>2]|2;c:do if((c|0)==(d|0))q=81;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){q=81;break}else j=j+1|0}while(0);if((q|0)==81){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=z;return c|0}}while(0);if((q|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Iu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(21,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ju(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(22,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ku(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=r;r=r+240|0;t=B+202|0;g=B+200|0;D=B+24|0;C=B+12|0;v=B+8|0;z=B+40|0;A=B+4|0;w=B;u=ru(d)|0;up(D,d,t,g);k[C>>2]=0;k[C+4>>2]=0;k[C+8>>2]=0;if(!(i[C>>0]&1))a=10;else a=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,a|0,0);s=x;x=0;a:do if(!(s&1)){p=C+8|0;q=C+1|0;d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d;k[A>>2]=z;k[w>>2]=0;s=C+4|0;o=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){E=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;m=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;n=x;x=0;if(n&1){E=24;break b}if((m|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;E=16;break}}else E=16;while(0);if((E|0)==16){E=0;if(h){g=0;break}else g=0}h=i[C>>0]|0;h=(h&1)==0?(h&255)>>>1:k[s>>2]|0;if((k[v>>2]|0)==(d+h|0)){x=0;Fa(8,C|0,h<<1|0,0);n=x;x=0;if(n&1){E=24;break}if(!(i[C>>0]&1))d=10;else d=(k[C>>2]&-2)+-1|0;x=0;Fa(8,C|0,d|0,0);n=x;x=0;if(n&1){E=24;break}d=(i[C>>0]&1)==0?q:k[p>>2]|0;k[v>>2]=d+h}m=a+12|0;h=k[m>>2]|0;n=a+16|0;if((h|0)==(k[n>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}}else h=l[h>>0]|0;if(ep(h&255,u,d,v,w,o,D,z,A,t)|0)break;g=k[m>>2]|0;if((g|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=24;break}else continue}else{k[m>>2]=g+1;continue}}if((E|0)==24){a=Wa()|0;break}F=i[D>>0]|0;if((((F&1)==0?(F&255)>>>1:k[D+4>>2]|0)|0)!=0?(y=k[A>>2]|0,(y-z|0)<160):0){F=k[w>>2]|0;k[A>>2]=y+4;k[y>>2]=F}x=0;d=Ea(23,d|0,k[v>>2]|0,e|0,u|0)|0;F=x;x=0;if(!(F&1)){j[f>>1]=d;cs(D,z,k[A>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;F=x;x=0;if(F&1){E=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;F=x;x=0;if(F&1){E=25;break a}if((a|0)==-1){k[c>>2]=0;E=49;break}}if(!d)E=50}else E=49;while(0);if((E|0)==49?d:0)E=50;if((E|0)==50)k[e>>2]=k[e>>2]|2;F=k[b>>2]|0;Sm(C);Sm(D);r=B;return F|0}else E=25}else E=25;while(0);if((E|0)==25)a=Wa()|0;Sm(C);Sm(D);fb(a|0);return 0}function Lu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(24,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Mu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;h=(a|0)==0;g=k[c>>2]|0;do if(g){if((k[g+12>>2]|0)!=(k[g+16>>2]|0))if(h)break;else break b;x=0;j=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(h)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(h){g=0;break}else g=0}h=i[B>>0]|0;h=(h&1)==0?(h&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+h|0)){x=0;Fa(8,B|0,h<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+h}j=a+12|0;h=k[j>>2]|0;m=a+16|0;if((h|0)==(k[m>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else h=l[h>>0]|0;if(ep(h&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(25,d|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){k[f>>2]=d;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Nu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+240|0;s=A+202|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;up(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=i[g>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;m=x;x=0;if(m&1){D=24;break}if((g|0)==-1){k[b>>2]=0;a=0}}}else a=0;g=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(g)break;else break b;x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){D=24;break b}if((j|0)!=-1)if(g)break;else break b;else{k[c>>2]=0;D=16;break}}else D=16;while(0);if((D|0)==16){D=0;if(g){h=0;break}else h=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(d+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=24;break}if(!(i[B>>0]&1))d=10;else d=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,d|0,0);m=x;x=0;if(m&1){D=24;break}d=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=d+g}j=a+12|0;g=k[j>>2]|0;m=a+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}}else g=l[g>>0]|0;if(ep(g&255,t,d,u,v,n,C,y,z,s)|0)break;g=k[j>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=24;break}else continue}else{k[j>>2]=g+1;continue}}if((D|0)==24){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;d=Ea(26,d|0,k[u>>2]|0,e|0,t|0)|0;g=M;E=x;x=0;if(!(E&1)){E=f;k[E>>2]=d;k[E+4>>2]=g;cs(C,y,k[z>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;E=x;x=0;if(E&1){D=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;E=x;x=0;if(E&1){D=25;break a}if((a|0)==-1){k[c>>2]=0;D=49;break}}if(!d)D=50}else D=49;while(0);if((D|0)==49?d:0)D=50;if((D|0)==50)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=25}else D=25;while(0);if((D|0)==25)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Ou(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;p=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16;while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,p,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(1,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){o[f>>2]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49;while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25;while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Pu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16;while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(2,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49;while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25;while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Qu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;E=r;r=r+240|0;v=E+208|0;h=E+203|0;j=E+202|0;G=E+24|0;F=E+12|0;y=E+8|0;C=E+40|0;D=E+4|0;z=E;A=E+201|0;w=E+200|0;vp(G,d,v,h,j);k[F>>2]=0;k[F+4>>2]=0;k[F+8>>2]=0;if(!(i[F>>0]&1))a=10;else a=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,a|0,0);u=x;x=0;a:do if(!(u&1)){s=F+8|0;t=F+1|0;d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d;k[D>>2]=C;k[z>>2]=0;i[A>>0]=1;i[w>>0]=69;u=F+4|0;q=i[h>>0]|0;o=i[j>>0]|0;a=k[b>>2]|0;b:while(1){if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;h=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;n=x;x=0;if(n&1){H=24;break}if((h|0)==-1){k[b>>2]=0;a=0}}}else a=0;j=(a|0)==0;h=k[c>>2]|0;do if(h){if((k[h+12>>2]|0)!=(k[h+16>>2]|0))if(j)break;else break b;x=0;m=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;n=x;x=0;if(n&1){H=24;break b}if((m|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;H=16;break}}else H=16;while(0);if((H|0)==16){H=0;if(j){h=0;break}else h=0}j=i[F>>0]|0;j=(j&1)==0?(j&255)>>>1:k[u>>2]|0;if((k[y>>2]|0)==(d+j|0)){x=0;Fa(8,F|0,j<<1|0,0);n=x;x=0;if(n&1){H=24;break}if(!(i[F>>0]&1))d=10;else d=(k[F>>2]&-2)+-1|0;x=0;Fa(8,F|0,d|0,0);n=x;x=0;if(n&1){H=24;break}d=(i[F>>0]&1)==0?t:k[s>>2]|0;k[y>>2]=d+j}m=a+12|0;j=k[m>>2]|0;n=a+16|0;if((j|0)==(k[n>>2]|0)){x=0;j=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}}else j=l[j>>0]|0;if(wp(j&255,A,w,d,y,q,o,G,C,D,z,v)|0)break;h=k[m>>2]|0;if((h|0)==(k[n>>2]|0)){x=0;ta(k[(k[a>>2]|0)+40>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=24;break}else continue}else{k[m>>2]=h+1;continue}}if((H|0)==24){a=Wa()|0;break}I=i[G>>0]|0;if(!((i[A>>0]|0)==0?1:(((I&1)==0?(I&255)>>>1:k[G+4>>2]|0)|0)==0)?(B=k[D>>2]|0,(B-C|0)<160):0){I=k[z>>2]|0;k[D>>2]=B+4;k[B>>2]=I}x=0;g=+Ca(3,d|0,k[y>>2]|0,e|0);I=x;x=0;if(!(I&1)){p[f>>3]=g;cs(G,C,k[D>>2]|0,e);if(a){if((k[a+12>>2]|0)==(k[a+16>>2]|0)){x=0;d=ta(k[(k[a>>2]|0)+36>>2]|0,a|0)|0;I=x;x=0;if(I&1){H=25;break}if((d|0)==-1){k[b>>2]=0;a=0}}}else a=0;d=(a|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;I=x;x=0;if(I&1){H=25;break a}if((a|0)==-1){k[c>>2]=0;H=49;break}}if(!d)H=50}else H=49;while(0);if((H|0)==49?d:0)H=50;if((H|0)==50)k[e>>2]=k[e>>2]|2;I=k[b>>2]|0;Sm(F);Sm(G);r=E;return I|0}else H=25}else H=25;while(0);if((H|0)==25)a=Wa()|0;Sm(F);Sm(G);fb(a|0);return 0}function Ru(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;b=pl(a,c,f)|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}function Su(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0;y=r;r=r+112|0;j=y;m=(d-c|0)/12|0;do if(m>>>0>100){j=Pl(m)|0;if((j|0)==0?(x=0,Ga(6),w=x,x=0,w&1):0){h=0;o=6;break}h=j;o=11}else{h=0;o=11}while(0);a:do if((o|0)==11){if((c|0)==(d|0))l=0;else{p=c;n=0;o=j;while(1){l=i[p>>0]|0;if(!(l&1))l=(l&255)>>>1;else l=k[p+4>>2]|0;if(!l){i[o>>0]=2;l=n+1|0;m=m+-1|0}else{i[o>>0]=1;l=n}p=p+12|0;if((p|0)==(d|0))break;else{n=l;o=o+1|0}}}v=(c|0)==(d|0);w=(c|0)==(d|0);u=0;q=m;b:while(1){m=k[a>>2]|0;do if(m){n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break b}}else m=k[n>>2]|0;if((m|0)==-1){k[a>>2]=0;p=1;break}else{p=(k[a>>2]|0)==0;break}}else p=1;while(0);n=k[b>>2]|0;if(n){m=k[n+12>>2]|0;if((m|0)==(k[n+16>>2]|0)){x=0;m=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[m>>2]|0;if((m|0)==-1){k[b>>2]=0;n=0;o=1}else o=0}else{n=0;o=1}m=k[a>>2]|0;if(!((q|0)!=0&(p^o))){o=66;break}n=k[m+12>>2]|0;if((n|0)==(k[m+16>>2]|0)){x=0;m=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}else m=k[n>>2]|0;if(!g){x=0;m=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,m|0)|0;t=x;x=0;if(t&1){o=5;break}}t=u+1|0;if(v){m=0;p=q}else{p=0;s=c;o=q;q=j;while(1){do if((i[q>>0]|0)==1){if(!(i[s>>0]&1))n=s+4|0;else n=k[s+8>>2]|0;n=k[n+(u<<2)>>2]|0;if(!g){x=0;n=Aa(k[(k[e>>2]|0)+28>>2]|0,e|0,n|0)|0;z=x;x=0;if(z&1){o=4;break b}}if((m|0)!=(n|0)){i[q>>0]=0;n=p;o=o+-1|0;break}n=i[s>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[s+4>>2]|0;if((n|0)==(t|0)){i[q>>0]=2;n=1;l=l+1|0;o=o+-1|0}else n=1}else n=p;while(0);s=s+12|0;if((s|0)==(d|0)){m=n;p=o;break}else{p=n;q=q+1|0}}}if(!m){u=t;q=p;continue}m=k[a>>2]|0;n=m+12|0;o=k[n>>2]|0;if((o|0)==(k[m+16>>2]|0)){x=0;ta(k[(k[m>>2]|0)+40>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=5;break}}else k[n>>2]=o+4;if((l+p|0)>>>0<2|w){u=t;q=p;continue}else{m=c;o=j}while(1){if((i[o>>0]|0)==2){n=i[m>>0]|0;if(!(n&1))n=(n&255)>>>1;else n=k[m+4>>2]|0;if((n|0)!=(t|0)){i[o>>0]=0;l=l+-1|0}}m=m+12|0;if((m|0)==(d|0)){u=t;q=p;continue b}else o=o+1|0}}if((o|0)==4){c=Wa()|0;break}else if((o|0)==5){c=Wa()|0;break}else if((o|0)==66){do if(m){l=k[m+12>>2]|0;if((l|0)==(k[m+16>>2]|0)){x=0;l=ta(k[(k[m>>2]|0)+36>>2]|0,m|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)==-1){k[a>>2]=0;m=1;break}else{m=(k[a>>2]|0)==0;break}}else m=1;while(0);do if(n){l=k[n+12>>2]|0;if((l|0)==(k[n+16>>2]|0)){x=0;l=ta(k[(k[n>>2]|0)+36>>2]|0,n|0)|0;z=x;x=0;if(z&1){o=6;break a}}else l=k[l>>2]|0;if((l|0)!=-1)if(m)break;else{o=81;break}else{k[b>>2]=0;o=79;break}}else o=79;while(0);if((o|0)==79?m:0)o=81;if((o|0)==81)k[f>>2]=k[f>>2]|2;c:do if((c|0)==(d|0))o=85;else while(1){if((i[j>>0]|0)==2)break c;c=c+12|0;if((c|0)==(d|0)){o=85;break}else j=j+1|0}while(0);if((o|0)==85){k[f>>2]=k[f>>2]|4;c=d}if(h)Ql(h);r=y;return c|0}}while(0);if((o|0)==6)c=Wa()|0;if(h)Ql(h);fb(c|0);return 0}function Tu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(21,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Uu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(22,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Vu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;A=r;r=r+320|0;s=A+208|0;g=A+200|0;C=A+24|0;B=A+12|0;u=A+8|0;y=A+40|0;z=A+4|0;v=A;t=ru(d)|0;xp(C,d,s,g);k[B>>2]=0;k[B+4>>2]=0;k[B+8>>2]=0;if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);q=x;x=0;a:do if(!(q&1)){o=B+8|0;p=B+1|0;a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a;k[z>>2]=y;k[v>>2]=0;q=B+4|0;n=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;m=x;x=0;if(m&1){D=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}l=k[c>>2]|0;do if(l){g=k[l+12>>2]|0;if((g|0)==(k[l+16>>2]|0)){x=0;g=ta(k[(k[l>>2]|0)+36>>2]|0,l|0)|0;m=x;x=0;if(m&1){D=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=l;break b}else{k[c>>2]=0;D=17;break}}else D=17;while(0);if((D|0)==17){D=0;if(h){g=0;break}else l=0}g=i[B>>0]|0;g=(g&1)==0?(g&255)>>>1:k[q>>2]|0;if((k[u>>2]|0)==(a+g|0)){x=0;Fa(8,B|0,g<<1|0,0);m=x;x=0;if(m&1){D=25;break}if(!(i[B>>0]&1))a=10;else a=(k[B>>2]&-2)+-1|0;x=0;Fa(8,B|0,a|0,0);m=x;x=0;if(m&1){D=25;break}a=(i[B>>0]&1)==0?p:k[o>>2]|0;k[u>>2]=a+g}h=d+12|0;g=k[h>>2]|0;m=d+16|0;if((g|0)==(k[m>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}}else g=k[g>>2]|0;if(tp(g,t,a,u,v,n,C,y,z,s)|0){g=l;break}g=k[h>>2]|0;if((g|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((D|0)==25){a=Wa()|0;break}E=i[C>>0]|0;if((((E&1)==0?(E&255)>>>1:k[C+4>>2]|0)|0)!=0?(w=k[z>>2]|0,(w-y|0)<160):0){E=k[v>>2]|0;k[z>>2]=w+4;k[w>>2]=E}x=0;a=Ea(23,a|0,k[u>>2]|0,e|0,t|0)|0;E=x;x=0;if(!(E&1)){j[f>>1]=a;cs(C,y,k[z>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;E=x;x=0;if(E&1){D=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;E=x;x=0;if(E&1){D=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{D=53;break}else{k[c>>2]=0;D=51;break}}else D=51;while(0);if((D|0)==51?d:0)D=53;if((D|0)==53)k[e>>2]=k[e>>2]|2;E=k[b>>2]|0;Sm(B);Sm(C);r=A;return E|0}else D=26}else D=26;while(0);if((D|0)==26)a=Wa()|0;Sm(B);Sm(C);fb(a|0);return 0}function Wu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(24,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Xu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;d=0;h=1}else{d=g;h=0}}else{d=0;h=1}j=k[c>>2]|0;do if(j){g=k[j+12>>2]|0;if((g|0)==(k[j+16>>2]|0)){x=0;g=ta(k[(k[j>>2]|0)+36>>2]|0,j|0)|0;l=x;x=0;if(l&1){C=25;break b}}else g=k[g>>2]|0;if((g|0)!=-1)if(h)break;else{g=j;break b}else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(h){g=0;break}else j=0}g=i[A>>0]|0;g=(g&1)==0?(g&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+g|0)){x=0;Fa(8,A|0,g<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+g}h=d+12|0;g=k[h>>2]|0;l=d+16|0;if((g|0)==(k[l>>2]|0)){x=0;g=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}}else g=k[g>>2]|0;if(tp(g,s,a,t,u,m,B,w,y,q)|0){g=j;break}g=k[h>>2]|0;if((g|0)==(k[l>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=25;break}else{g=d;continue}}else{k[h>>2]=g+4;g=d;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(25,a|0,k[t>>2]|0,e|0,s|0)|0;D=x;x=0;if(!(D&1)){k[f>>2]=a;cs(B,w,k[y>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Yu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;z=r;r=r+320|0;q=z+208|0;g=z+200|0;B=z+24|0;A=z+12|0;t=z+8|0;w=z+40|0;y=z+4|0;u=z;s=ru(d)|0;xp(B,d,q,g);k[A>>2]=0;k[A+4>>2]=0;k[A+8>>2]=0;if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);p=x;x=0;a:do if(!(p&1)){n=A+8|0;o=A+1|0;a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a;k[y>>2]=w;k[u>>2]=0;p=A+4|0;m=k[g>>2]|0;g=k[b>>2]|0;b:while(1){if(g){d=k[g+12>>2]|0;if((d|0)==(k[g+16>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;l=x;x=0;if(l&1){C=25;break}}else d=k[d>>2]|0;if((d|0)==-1){k[b>>2]=0;g=0;j=1}else j=0}else{g=0;j=1}h=k[c>>2]|0;do if(h){d=k[h+12>>2]|0;if((d|0)==(k[h+16>>2]|0)){x=0;d=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;l=x;x=0;if(l&1){C=25;break b}}else d=k[d>>2]|0;if((d|0)!=-1)if(j)break;else break b;else{k[c>>2]=0;C=17;break}}else C=17;while(0);if((C|0)==17){C=0;if(j){h=0;break}else h=0}d=i[A>>0]|0;d=(d&1)==0?(d&255)>>>1:k[p>>2]|0;if((k[t>>2]|0)==(a+d|0)){x=0;Fa(8,A|0,d<<1|0,0);l=x;x=0;if(l&1){C=25;break}if(!(i[A>>0]&1))a=10;else a=(k[A>>2]&-2)+-1|0;x=0;Fa(8,A|0,a|0,0);l=x;x=0;if(l&1){C=25;break}a=(i[A>>0]&1)==0?o:k[n>>2]|0;k[t>>2]=a+d}j=g+12|0;d=k[j>>2]|0;l=g+16|0;if((d|0)==(k[l>>2]|0)){x=0;d=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}}else d=k[d>>2]|0;if(tp(d,s,a,t,u,m,B,w,y,q)|0)break;d=k[j>>2]|0;if((d|0)==(k[l>>2]|0)){x=0;ta(k[(k[g>>2]|0)+40>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=25;break}else continue}else{k[j>>2]=d+4;continue}}if((C|0)==25){a=Wa()|0;break}D=i[B>>0]|0;if((((D&1)==0?(D&255)>>>1:k[B+4>>2]|0)|0)!=0?(v=k[y>>2]|0,(v-w|0)<160):0){D=k[u>>2]|0;k[y>>2]=v+4;k[v>>2]=D}x=0;a=Ea(26,a|0,k[t>>2]|0,e|0,s|0)|0;d=M;D=x;x=0;if(!(D&1)){D=f;k[D>>2]=a;k[D+4>>2]=d;cs(B,w,k[y>>2]|0,e);if(g){a=k[g+12>>2]|0;if((a|0)==(k[g+16>>2]|0)){x=0;a=ta(k[(k[g>>2]|0)+36>>2]|0,g|0)|0;D=x;x=0;if(D&1){C=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;D=x;x=0;if(D&1){C=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{C=53;break}else{k[c>>2]=0;C=51;break}}else C=51;while(0);if((C|0)==51?d:0)C=53;if((C|0)==53)k[e>>2]=k[e>>2]|2;D=k[b>>2]|0;Sm(A);Sm(B);r=z;return D|0}else C=26}else C=26;while(0);if((C|0)==26)a=Wa()|0;Sm(A);Sm(B);fb(a|0);return 0}function Zu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,l=0,m=0,n=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;p=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,p,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(1,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){o[f>>2]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51;while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26;while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function _u(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(2,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51;while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26;while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function $u(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,j=0,l=0,m=0,n=0,o=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;D=r;r=r+352|0;u=D+208|0;h=D+40|0;j=D+36|0;F=D+24|0;E=D+12|0;w=D+8|0;B=D+48|0;C=D+4|0;y=D;z=D+337|0;v=D+336|0;yp(F,d,u,h,j);k[E>>2]=0;k[E+4>>2]=0;k[E+8>>2]=0;if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);t=x;x=0;a:do if(!(t&1)){q=E+8|0;s=E+1|0;a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a;k[C>>2]=B;k[y>>2]=0;i[z>>0]=1;i[v>>0]=69;t=E+4|0;o=k[h>>2]|0;n=k[j>>2]|0;d=k[b>>2]|0;b:while(1){if(d){h=k[d+12>>2]|0;if((h|0)==(k[d+16>>2]|0)){x=0;h=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;m=x;x=0;if(m&1){G=25;break}}else h=k[h>>2]|0;if((h|0)==-1){k[b>>2]=0;d=0;l=1}else l=0}else{d=0;l=1}h=k[c>>2]|0;do if(h){j=k[h+12>>2]|0;if((j|0)==(k[h+16>>2]|0)){x=0;j=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;m=x;x=0;if(m&1){G=25;break b}}else j=k[j>>2]|0;if((j|0)!=-1)if(l)break;else break b;else{k[c>>2]=0;G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(l){h=0;break}else h=0}j=i[E>>0]|0;j=(j&1)==0?(j&255)>>>1:k[t>>2]|0;if((k[w>>2]|0)==(a+j|0)){x=0;Fa(8,E|0,j<<1|0,0);m=x;x=0;if(m&1){G=25;break}if(!(i[E>>0]&1))a=10;else a=(k[E>>2]&-2)+-1|0;x=0;Fa(8,E|0,a|0,0);m=x;x=0;if(m&1){G=25;break}a=(i[E>>0]&1)==0?s:k[q>>2]|0;k[w>>2]=a+j}l=d+12|0;j=k[l>>2]|0;m=d+16|0;if((j|0)==(k[m>>2]|0)){x=0;j=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}}else j=k[j>>2]|0;if(zp(j,z,v,a,w,o,n,F,B,C,y,u)|0)break;h=k[l>>2]|0;if((h|0)==(k[m>>2]|0)){x=0;ta(k[(k[d>>2]|0)+40>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=25;break}else continue}else{k[l>>2]=h+4;continue}}if((G|0)==25){a=Wa()|0;break}H=i[F>>0]|0;if(!((i[z>>0]|0)==0?1:(((H&1)==0?(H&255)>>>1:k[F+4>>2]|0)|0)==0)?(A=k[C>>2]|0,(A-B|0)<160):0){H=k[y>>2]|0;k[C>>2]=A+4;k[A>>2]=H}x=0;g=+Ca(3,a|0,k[w>>2]|0,e|0);H=x;x=0;if(!(H&1)){p[f>>3]=g;cs(F,B,k[C>>2]|0,e);if(d){a=k[d+12>>2]|0;if((a|0)==(k[d+16>>2]|0)){x=0;a=ta(k[(k[d>>2]|0)+36>>2]|0,d|0)|0;H=x;x=0;if(H&1){G=26;break}}else a=k[a>>2]|0;if((a|0)==-1){k[b>>2]=0;d=1}else d=0}else d=1;do if(h){a=k[h+12>>2]|0;if((a|0)==(k[h+16>>2]|0)){x=0;a=ta(k[(k[h>>2]|0)+36>>2]|0,h|0)|0;H=x;x=0;if(H&1){G=26;break a}}else a=k[a>>2]|0;if((a|0)!=-1)if(d)break;else{G=53;break}else{k[c>>2]=0;G=51;break}}else G=51;while(0);if((G|0)==51?d:0)G=53;if((G|0)==53)k[e>>2]=k[e>>2]|2;H=k[b>>2]|0;Sm(E);Sm(F);r=D;return H|0}else G=26}else G=26;while(0);if((G|0)==26)a=Wa()|0;Sm(E);Sm(F);fb(a|0);return 0}function av(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=r;r=r+16|0;g=f;k[g>>2]=e;e=Ak(c)|0;c=ol(a,b,d,g)|0;if((e|0)!=0?(x=0,ta(75,e|0)|0,g=x,x=0,g&1):0){g=Wa(0)|0;oc(g)}r=f;return c|0}function bv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=Ak(b)|0;x=0;b=va(37,a|0,c|0,f|0)|0;a=x;x=0;if(a&1){b=Wa()|0;if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}fb(b|0)}else{if((d|0)!=0?(x=0,ta(75,d|0)|0,f=x,x=0,f&1):0){f=Wa(0)|0;oc(f)}r=e;return b|0}return 0}function cv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0;n=r;r=r+16|0;m=n;g=k[a>>2]|0;a:do if(!g)g=0;else{o=b;j=d-o>>2;l=e+12|0;h=k[l>>2]|0;j=(h|0)>(j|0)?h-j|0:0;h=c;o=h-o|0;e=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,b,e)|0)!=(e|0):0){k[a>>2]=0;g=0;break}do if((j|0)>0){dn(m,j,f);x=0;e=va(k[(k[g>>2]|0)+48>>2]|0,g|0,((i[m>>0]&1)==0?m+4|0:k[m+8>>2]|0)|0,j|0)|0;o=x;x=0;if(o&1){o=Wa()|0;en(m);fb(o|0)}if((e|0)==(j|0)){en(m);break}else{k[a>>2]=0;en(m);g=0;break a}}while(0);o=d-h|0;d=o>>2;if((o|0)>0?(Qb[k[(k[g>>2]|0)+48>>2]&63](g,c,d)|0)!=(d|0):0){k[a>>2]=0;g=0;break}k[l>>2]=0}while(0);r=n;return g|0}function dv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,m=0,n=0,o=0,p=0,q=0,r=0;f=k[a>>2]|0;do if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0))if((Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1){k[a>>2]=0;f=0;break}else{f=k[a>>2]|0;break}}else f=0;while(0);g=(f|0)==0;f=k[b>>2]|0;do if(f){if((k[f+12>>2]|0)==(k[f+16>>2]|0)?(Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0)==-1:0){k[b>>2]=0;r=11;break}if(g)r=13;else r=12}else r=11;while(0);if((r|0)==11)if(g)r=12;else{f=0;r=13}a:do if((r|0)==12){k[c>>2]=k[c>>2]|6;f=0}else if((r|0)==13){g=k[a>>2]|0;h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[h>>0]|0;h=g&255;if(h<<24>>24>-1?(q=d+8|0,(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0):0){m=(Qb[k[(k[d>>2]|0)+36>>2]&63](d,h,0)|0)<<24>>24;g=k[a>>2]|0;h=g+12|0;i=k[h>>2]|0;if((i|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=e;n=f;e=f;f=m}else{k[h>>2]=i+1;o=e;n=f;e=f;f=m}while(1){f=f+-48|0;p=o+-1|0;g=k[a>>2]|0;do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0;while(0);i=(g|0)==0;if(e)if((k[e+12>>2]|0)==(k[e+16>>2]|0))if((Ob[k[(k[e>>2]|0)+36>>2]&127](e)|0)==-1){k[b>>2]=0;h=0;e=0}else{h=n;e=n}else h=n;else{h=n;e=0}g=k[a>>2]|0;if(!((o|0)>1&(i^(e|0)==0)))break;i=k[g+12>>2]|0;if((i|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=l[i>>0]|0;i=g&255;if(i<<24>>24<=-1)break a;if(!(j[(k[q>>2]|0)+(g<<24>>24<<1)>>1]&2048))break a;f=((Qb[k[(k[d>>2]|0)+36>>2]&63](d,i,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;i=g+12|0;m=k[i>>2]|0;if((m|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;o=p;n=h;continue}else{k[i>>2]=m+1;o=p;n=h;continue}}do if(g){if((k[g+12>>2]|0)==(k[g+16>>2]|0))if((Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0)==-1){k[a>>2]=0;g=0;break}else{g=k[a>>2]|0;break}}else g=0;while(0);g=(g|0)==0;do if(h){if((k[h+12>>2]|0)==(k[h+16>>2]|0)?(Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0)==-1:0){k[b>>2]=0;r=50;break}if(g)break a}else r=50;while(0);if((r|0)==50?!g:0)break;k[c>>2]=k[c>>2]|2;break}k[c>>2]=k[c>>2]|4;f=0}while(0);return f|0}function ev(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;f=k[a>>2]|0;do if(f){g=k[f+12>>2]|0;if((g|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[g>>2]|0;if((f|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1;while(0);g=k[b>>2]|0;do if(g){f=k[g+12>>2]|0;if((f|0)==(k[g+16>>2]|0))f=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else f=k[f>>2]|0;if((f|0)!=-1)if(h){o=17;break}else{o=16;break}else{k[b>>2]=0;o=14;break}}else o=14;while(0);if((o|0)==14)if(h)o=16;else{g=0;o=17}a:do if((o|0)==16){k[c>>2]=k[c>>2]|6;f=0}else if((o|0)==17){f=k[a>>2]|0;h=k[f+12>>2]|0;if((h|0)==(k[f+16>>2]|0))f=Ob[k[(k[f>>2]|0)+36>>2]&127](f)|0;else f=k[h>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,f)|0)){k[c>>2]=k[c>>2]|4;f=0;break}f=(Qb[k[(k[d>>2]|0)+52>>2]&63](d,f,0)|0)<<24>>24;h=k[a>>2]|0;i=h+12|0;j=k[i>>2]|0;if((j|0)==(k[h+16>>2]|0)){Ob[k[(k[h>>2]|0)+40>>2]&127](h)|0;m=e;l=g;i=g}else{k[i>>2]=j+4;m=e;l=g;i=g}while(1){f=f+-48|0;n=m+-1|0;g=k[a>>2]|0;do if(g){h=k[g+12>>2]|0;if((h|0)==(k[g+16>>2]|0))g=Ob[k[(k[g>>2]|0)+36>>2]&127](g)|0;else g=k[h>>2]|0;if((g|0)==-1){k[a>>2]=0;j=1;break}else{j=(k[a>>2]|0)==0;break}}else j=1;while(0);do if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)==-1){k[b>>2]=0;i=0;e=0;g=1;break}else{i=l;e=l;g=(l|0)==0;break}}else{i=l;e=0;g=1}while(0);h=k[a>>2]|0;if(!((m|0)>1&(j^g)))break;g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if(!(Qb[k[(k[d>>2]|0)+12>>2]&63](d,2048,g)|0))break a;f=((Qb[k[(k[d>>2]|0)+52>>2]&63](d,g,0)|0)<<24>>24)+(f*10|0)|0;g=k[a>>2]|0;h=g+12|0;j=k[h>>2]|0;if((j|0)==(k[g+16>>2]|0)){Ob[k[(k[g>>2]|0)+40>>2]&127](g)|0;m=n;l=i;i=e;continue}else{k[h>>2]=j+4;m=n;l=i;i=e;continue}}do if(h){g=k[h+12>>2]|0;if((g|0)==(k[h+16>>2]|0))g=Ob[k[(k[h>>2]|0)+36>>2]&127](h)|0;else g=k[g>>2]|0;if((g|0)==-1){k[a>>2]=0;h=1;break}else{h=(k[a>>2]|0)==0;break}}else h=1;while(0);do if(i){g=k[i+12>>2]|0;if((g|0)==(k[i+16>>2]|0))g=Ob[k[(k[i>>2]|0)+36>>2]&127](i)|0;else g=k[g>>2]|0;if((g|0)!=-1)if(h)break a;else break;else{k[b>>2]=0;o=60;break}}else o=60;while(0);if((o|0)==60?!h:0)break;k[c>>2]=k[c>>2]|2}while(0);return f|0}function fv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g|0;h=Sl(d?h:0,e)|0;if(!h)ak();do if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}while(0);k[f>>2]=201;k[b>>2]=i+g;k[c>>2]=(k[a>>2]|0)+e;return}function gv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function hv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=10;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f|0;do if((c|0)!=(b|0)){if((e-j|0)>>>0>>0){bn(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+1|0;else g=k[a+8>>2]|0;f=c+(j-f)|0;if((b|0)!=(c|0)){d=b;e=g+j|0;while(1){i[e>>0]=i[d>>0]|0;d=d+1|0;if((d|0)==(c|0))break;else e=e+1|0}}i[g+f>>0]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}while(0);return a|0}function iv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=(k[f>>2]|0)!=189;h=k[a>>2]|0;g=h;e=(k[c>>2]|0)-g|0;e=e>>>0<2147483647?e<<1:-1;g=(k[b>>2]|0)-g>>2;h=Sl(d?h:0,e)|0;if(!h)ak();do if(!d){d=k[a>>2]|0;k[a>>2]=h;if(d){x=0;qa(k[f>>2]|0,d|0);h=x;x=0;if(h&1){h=Wa(0)|0;oc(h)}else{i=k[a>>2]|0;break}}else i=h}else{k[a>>2]=h;i=h}while(0);k[f>>2]=201;k[b>>2]=i+(g<<2);k[c>>2]=(k[a>>2]|0)+(e>>>2<<2);return}function jv(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=b;d=i[a>>0]|0;if(!(d&1)){e=1;j=(d&255)>>>1}else{d=k[a>>2]|0;e=(d&-2)+-1|0;j=k[a+4>>2]|0;d=d&255}h=c-f>>2;do if(h){if((e-j|0)>>>0>>0){ln(a,e,j+h-e|0,j,j,0,0);d=i[a>>0]|0}if(!(d&1))g=a+4|0;else g=k[a+8>>2]|0;f=j+((c-f|0)>>>2)|0;if((b|0)!=(c|0)){d=b;e=g+(j<<2)|0;while(1){k[e>>2]=k[d>>2];d=d+4|0;if((d|0)==(c|0))break;else e=e+4|0}}k[g+(f<<2)>>2]=0;d=j+h|0;if(!(i[a>>0]&1)){i[a>>0]=d<<1;break}else{k[a+4>>2]=d;break}}while(0);return a|0}function kv(a,b){a=a|0;b=b|0;var c=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;i[a+128>>0]=0;do if(b){x=0;ra(125,a|0,b|0);c=x;x=0;if(c&1){c=Wa()|0;Nv(a);fb(c|0)}else{cw(a,b);break}}while(0);return}function lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43148)|0);return}function mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43188)|0);return}function nv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44220)|0);return}function ov(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44212)|0);return}function pv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44280)|0);return}function qv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44288)|0);return}function rv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44344)|0);return}function sv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44352)|0);return}function tv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44360)|0);return}function uv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44368)|0);return}function vv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43260)|0);return}function wv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43332)|0);return}function xv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43392)|0);return}function yv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43452)|0);return}function zv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43764)|0);return}function Av(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43828)|0);return}function Bv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43892)|0);return}function Cv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43956)|0);return}function Dv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43992)|0);return}function Ev(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44028)|0);return}function Fv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44064)|0);return}function Gv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44100)|0);return}function Hv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43544)|0);return}function Iv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43636)|0);return}function Jv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43668)|0);return}function Kv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(43700)|0);return}function Lv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44140)|0);return}function Mv(a,b){a=a|0;b=b|0;Hs(a,b,Rs(44180)|0);return}function Nv(a){a=a|0;var b=0,c=0,d=0;c=k[a>>2]|0;do if(c){d=a+4|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do b=b+-4|0;while((b|0)!=(c|0));k[d>>2]=b}if((a+16|0)==(c|0)){i[a+128>>0]=0;break}else{mj(c);break}}while(0);return}function Ov(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;g=a+4|0;c=k[g>>2]|0;d=k[a>>2]|0;e=c-d>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0?(f=d+(b<<2)|0,(c|0)!=(f|0)):0){do c=c+-4|0;while((c|0)!=(f|0));k[g>>2]=c}}else bw(a,b-e|0);return}function Pv(a,b){a=a|0;b=b|0;var c=0;c=k[a+8>>2]|0;if((k[a+12>>2]|0)-c>>2>>>0>b>>>0)c=(k[c+(b<<2)>>2]|0)!=0;else c=0;return c|0}function Qv(a){a=a|0;var b=0,c=0;c=a+4|0;b=k[c>>2]|0;c=k[c+4>>2]|0;a=(k[a>>2]|0)+(c>>1)|0;if(c&1)b=k[(k[a>>2]|0)+b>>2]|0;Lb[b&255](a);return}function Rv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var l=0,n=0;k[c>>2]=a;k[f>>2]=d;if(h&2)if((e-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-69;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=-65;l=4}else l=4;a:do if((l|0)==4){n=b;a=k[c>>2]|0;if(a>>>0>>0)while(1){h=j[a>>1]|0;l=h&65535;if(l>>>0>g>>>0){a=2;break a}do if((h&65535)<128){a=k[f>>2]|0;if((e-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}else{if((h&65535)<2048){a=k[f>>2]|0;if((e-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>6|192;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)<55296){a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){a=2;break a}a=k[f>>2]|0;if((e-a|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=l>>>12|224;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>6&63|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l&63|128;break}if((n-a|0)<4){a=1;break a}a=a+2|0;h=m[a>>1]|0;if((h&64512|0)!=56320){a=2;break a}if((e-(k[f>>2]|0)|0)<4){a=1;break a}d=l&960;if(((d<<10)+65536|l<<10&64512|h&1023)>>>0>g>>>0){a=2;break a}k[c>>2]=a;a=(d>>>6)+1|0;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=a>>>2|240;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l>>>2&15|a<<4&48|128;d=k[f>>2]|0;k[f>>2]=d+1;i[d>>0]=l<<4&48|h>>>6&15|128;l=k[f>>2]|0;k[f>>2]=l+1;i[l>>0]=h&63|128}while(0);a=(k[c>>2]|0)+2|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}while(0);return a|0}function Sv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var m=0,n=0,o=0,p=0,q=0,r=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;m=k[f>>2]|0}else m=d}else{m=d;h=b}q=e;d=k[c>>2]|0;a=d>>>0>>0;a:do if(a&m>>>0>>0)while(1){a=i[d>>0]|0;o=a&255;if(o>>>0>g>>>0){a=2;break a}do if(a<<24>>24>-1){j[m>>1]=a&255;k[c>>2]=d+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((h-d|0)<2){a=1;break a}a=l[d+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+2;break}if((a&255)<240){if((h-d|0)<3){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;switch(o|0){case 224:{if((n&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((n&-32)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<6&4032|o<<12|a&63;if((a&65535)>>>0>g>>>0){a=2;break a}j[m>>1]=a;k[c>>2]=d+3;break}if((a&255)>=245){a=2;break a}if((h-d|0)<4){a=1;break a}n=i[d+1>>0]|0;a=i[d+2>>0]|0;d=i[d+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}p=a&255;if((p&192|0)!=128){a=2;break a}a=d&255;if((a&192|0)!=128){a=2;break a}if((q-m|0)<4){a=1;break a}o=o&7;d=n&255;n=p<<6;a=a&63;if((d<<12&258048|o<<18|n&4032|a)>>>0>g>>>0){a=2;break a}j[m>>1]=d<<2&60|p>>>4&3|((d>>>4&3|o<<2)<<6)+16320|55296;p=m+2|0;k[f>>2]=p;j[p>>1]=a|n&960|56320;k[c>>2]=(k[c>>2]|0)+4}while(0);m=(k[f>>2]|0)+2|0;k[f>>2]=m;d=k[c>>2]|0;a=d>>>0>>0;if(!(a&m>>>0>>0)){r=39;break}}else r=39;while(0);if((r|0)==39)a=a&1;return a|0}function Tv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do if((c|0)!=0&e>>>0>>0){m=e;f=0;b:while(1){e=i[m>>0]|0;k=e&255;if(k>>>0>d>>>0){e=m;f=42;break a}do if(e<<24>>24>-1)e=m+1|0;else{if((e&255)<194){e=m;f=42;break a}if((e&255)<224){if((n-m|0)<2){e=m;f=42;break a}e=l[m+1>>0]|0;if((e&192|0)!=128){e=m;f=42;break a}if((e&63|k<<6&1984)>>>0>d>>>0){e=m;f=42;break a}e=m+2|0;break}if((e&255)<240){e=m;if((n-e|0)<3){e=m;f=42;break a}h=i[m+1>>0]|0;g=i[m+2>>0]|0;switch(k|0){case 224:{if((h&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((h&-32)<<24>>24!=-128){f=22;break b}break}default:if((h&-64)<<24>>24!=-128){f=24;break b}}e=g&255;if((e&192|0)!=128){e=m;f=42;break a}if(((h&255)<<6&4032|k<<12&61440|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+3|0;break}if((e&255)>=245){e=m;f=42;break a}e=m;if((c-f|0)>>>0<2|(n-e|0)<4){e=m;f=42;break a}j=i[m+1>>0]|0;g=i[m+2>>0]|0;h=i[m+3>>0]|0;switch(k|0){case 240:{if((j+112&255)>=48){f=32;break b}break}case 244:{if((j&-16)<<24>>24!=-128){f=34;break b}break}default:if((j&-64)<<24>>24!=-128){f=36;break b}}g=g&255;if((g&192|0)!=128){e=m;f=42;break a}e=h&255;if((e&192|0)!=128){e=m;f=42;break a}if(((j&255)<<12&258048|k<<18&1835008|g<<6&4032|e&63)>>>0>d>>>0){e=m;f=42;break a}e=m+4|0;f=f+1|0}while(0);f=f+1|0;if(!(f>>>0>>0&e>>>0>>0)){f=42;break a}else m=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42;while(0);if((f|0)==42)e=e-a|0;return e|0}function Uv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,l=0;k[c>>2]=a;k[f>>2]=d;l=e;if(h&2)if((l-d|0)<3)a=1;else{k[f>>2]=d+1;i[d>>0]=-17;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-69;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=-65;j=4}else j=4;a:do if((j|0)==4){a=k[c>>2]|0;if(a>>>0>>0)while(1){h=k[a>>2]|0;if(h>>>0>g>>>0|(h&-2048|0)==55296){a=2;break a}do if(h>>>0>=128){if(h>>>0<2048){a=k[f>>2]|0;if((l-a|0)<2){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>6|192;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}a=k[f>>2]|0;e=l-a|0;if(h>>>0<65536){if((e|0)<3){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>12|224;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}else{if((e|0)<4){a=1;break a}k[f>>2]=a+1;i[a>>0]=h>>>18|240;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>12&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h>>>6&63|128;j=k[f>>2]|0;k[f>>2]=j+1;i[j>>0]=h&63|128;break}}else{a=k[f>>2]|0;if((l-a|0)<1){a=1;break a}k[f>>2]=a+1;i[a>>0]=h}while(0);a=(k[c>>2]|0)+4|0;k[c>>2]=a;if(a>>>0>=b>>>0){a=0;break}}else a=0}while(0);return a|0}function Vv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,m=0,n=0,o=0,p=0,q=0;k[c>>2]=a;k[f>>2]=d;if(h&4){a=k[c>>2]|0;h=b;if((((h-a|0)>2?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)?(i[a+2>>0]|0)==-65:0){k[c>>2]=a+3;d=k[f>>2]|0;p=h}else p=h}else p=b;h=k[c>>2]|0;a=h>>>0>>0;a:do if(a&d>>>0>>0)while(1){a=i[h>>0]|0;o=a&255;do if(a<<24>>24>-1){if(o>>>0>g>>>0){a=2;break a}k[d>>2]=o;k[c>>2]=h+1}else{if((a&255)<194){a=2;break a}if((a&255)<224){if((p-h|0)<2){a=1;break a}a=l[h+1>>0]|0;if((a&192|0)!=128){a=2;break a}a=a&63|o<<6&1984;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+2;break}if((a&255)<240){if((p-h|0)<3){a=1;break a}j=i[h+1>>0]|0;a=i[h+2>>0]|0;switch(o|0){case 224:{if((j&-32)<<24>>24!=-96){a=2;break a}break}case 237:{if((j&-32)<<24>>24!=-128){a=2;break a}break}default:if((j&-64)<<24>>24!=-128){a=2;break a}}a=a&255;if((a&192|0)!=128){a=2;break a}a=(j&255)<<6&4032|o<<12&61440|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+3;break}if((a&255)>=245){a=2;break a}if((p-h|0)<4){a=1;break a}n=i[h+1>>0]|0;a=i[h+2>>0]|0;j=i[h+3>>0]|0;switch(o|0){case 240:{if((n+112&255)>=48){a=2;break a}break}case 244:{if((n&-16)<<24>>24!=-128){a=2;break a}break}default:if((n&-64)<<24>>24!=-128){a=2;break a}}m=a&255;if((m&192|0)!=128){a=2;break a}a=j&255;if((a&192|0)!=128){a=2;break a}a=(n&255)<<12&258048|o<<18&1835008|m<<6&4032|a&63;if(a>>>0>g>>>0){a=2;break a}k[d>>2]=a;k[c>>2]=h+4}while(0);d=(k[f>>2]|0)+4|0;k[f>>2]=d;h=k[c>>2]|0;a=h>>>0>>0;if(!(a&d>>>0>>0)){q=38;break}}else q=38;while(0);if((q|0)==38)a=a&1;return a|0}function Wv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,m=0,n=0;n=b;if((((e&4|0)!=0?(n-a|0)>2:0)?(i[a>>0]|0)==-17:0)?(i[a+1>>0]|0)==-69:0)e=(i[a+2>>0]|0)==-65?a+3|0:a;else e=a;a:do if((c|0)!=0&e>>>0>>0){k=e;m=0;b:while(1){e=i[k>>0]|0;j=e&255;do if(e<<24>>24>-1){if(j>>>0>d>>>0){e=k;f=42;break a}e=k+1|0}else{if((e&255)<194){e=k;f=42;break a}if((e&255)<224){if((n-k|0)<2){e=k;f=42;break a}e=l[k+1>>0]|0;if((e&192|0)!=128){e=k;f=42;break a}if((e&63|j<<6&1984)>>>0>d>>>0){e=k;f=42;break a}e=k+2|0;break}if((e&255)<240){e=k;if((n-e|0)<3){e=k;f=42;break a}g=i[k+1>>0]|0;f=i[k+2>>0]|0;switch(j|0){case 224:{if((g&-32)<<24>>24!=-96){f=20;break b}break}case 237:{if((g&-32)<<24>>24!=-128){f=22;break b}break}default:if((g&-64)<<24>>24!=-128){f=24;break b}}e=f&255;if((e&192|0)!=128){e=k;f=42;break a}if(((g&255)<<6&4032|j<<12&61440|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+3|0;break}if((e&255)>=245){e=k;f=42;break a}e=k;if((n-e|0)<4){e=k;f=42;break a}h=i[k+1>>0]|0;f=i[k+2>>0]|0;g=i[k+3>>0]|0;switch(j|0){case 240:{if((h+112&255)>=48){f=32;break b}break}case 244:{if((h&-16)<<24>>24!=-128){f=34;break b}break}default:if((h&-64)<<24>>24!=-128){f=36;break b}}f=f&255;if((f&192|0)!=128){e=k;f=42;break a}e=g&255;if((e&192|0)!=128){e=k;f=42;break a}if(((h&255)<<12&258048|j<<18&1835008|f<<6&4032|e&63)>>>0>d>>>0){e=k;f=42;break a}e=k+4|0}while(0);m=m+1|0;if(!(m>>>0>>0&e>>>0>>0)){f=42;break a}else k=e}if((f|0)==20){e=e-a|0;break}else if((f|0)==22){e=e-a|0;break}else if((f|0)==24){e=e-a|0;break}else if((f|0)==32){e=e-a|0;break}else if((f|0)==34){e=e-a|0;break}else if((f|0)==36){e=e-a|0;break}}else f=42;while(0);if((f|0)==42)e=e-a|0;return e|0}function Xv(a){a=a|0;Sm(45196);Sm(45184);Sm(45172);Sm(45160);Sm(45148);Sm(45136);Sm(45124);Sm(45112);Sm(45100);Sm(45088);Sm(45076);Sm(45064);Sm(45052);Sm(45040);return}function Yv(a){a=a|0;en(45368);en(45356);en(45344);en(45332);en(45320);en(45308);en(45296);en(45284);en(45272);en(45260);en(45248);en(45236);en(45224);en(45212);return}function Zv(a){a=a|0;Sm(46e3);Sm(45988);Sm(45976);Sm(45964);Sm(45952);Sm(45940);Sm(45928);Sm(45916);Sm(45904);Sm(45892);Sm(45880);Sm(45868);Sm(45856);Sm(45844);Sm(45832);Sm(45820);Sm(45808);Sm(45796);Sm(45784);Sm(45772);Sm(45760);Sm(45748);Sm(45736);Sm(45724);return}function _v(a){a=a|0;en(46292);en(46280);en(46268);en(46256);en(46244);en(46232);en(46220);en(46208);en(46196);en(46184);en(46172);en(46160);en(46148);en(46136);en(46124);en(46112);en(46100);en(46088);en(46076);en(46064);en(46052);en(46040);en(46028);en(46016);return}function $v(a){a=a|0;Sm(47104);Sm(47092);Sm(47080);Sm(47068);Sm(47056);Sm(47044);Sm(47032);Sm(47020);Sm(47008);Sm(46996);Sm(46984);Sm(46972);Sm(46960);Sm(46948);Sm(46936);Sm(46924);Sm(46912);Sm(46900);Sm(46888);Sm(46876);Sm(46864);Sm(46852);Sm(46840);Sm(46828);return}function aw(a){a=a|0;en(47396);en(47384);en(47372);en(47360);en(47348);en(47336);en(47324);en(47312);en(47300);en(47288);en(47276);en(47264);en(47252);en(47240);en(47228);en(47216);en(47204);en(47192);en(47180);en(47168);en(47156);en(47144);en(47132);en(47120);return}function bw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=r;r=r+32|0;h=i;f=k[a+8>>2]|0;c=k[a+4>>2]|0;if(f-c>>2>>>0>>0){d=k[a>>2]|0;g=c-d>>2;e=g+b|0;if(e>>>0>1073741823)jj(a);c=f-d|0;if(c>>2>>>0<536870911){c=c>>1;c=c>>>0>>0?e:c}else c=1073741823;dw(h,c,g,a+16|0);g=h+8|0;f=k[g>>2]|0;sw(f|0,0,b<<2|0)|0;k[g>>2]=f+(b<<2);ew(a,h);fw(h)}else cw(a,b);r=i;return}function cw(a,b){a=a|0;b=b|0;var c=0;c=a+4|0;a=b;b=k[c>>2]|0;do{k[b>>2]=0;b=(k[c>>2]|0)+4|0;k[c>>2]=b;a=a+-1|0}while((a|0)!=0);return}function dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;k[a+12>>2]=0;k[a+16>>2]=d;do if(b){e=d+112|0;if(b>>>0<29&(i[e>>0]|0)==0){i[e>>0]=1;break}else{d=lj(b<<2)|0;break}}else d=0;while(0);k[a>>2]=d;c=d+(c<<2)|0;k[a+8>>2]=c;k[a+4>>2]=c;k[a+12>>2]=d+(b<<2);return}function ew(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=k[a>>2]|0;f=a+4|0;c=b+4|0;e=(k[f>>2]|0)-d|0;g=(k[c>>2]|0)+(0-(e>>2)<<2)|0;k[c>>2]=g;vw(g|0,d|0,e|0)|0;e=k[a>>2]|0;k[a>>2]=k[c>>2];k[c>>2]=e;e=b+8|0;d=k[f>>2]|0;k[f>>2]=k[e>>2];k[e>>2]=d;e=a+8|0;a=b+12|0;d=k[e>>2]|0;k[e>>2]=k[a>>2];k[a>>2]=d;k[b>>2]=k[c>>2];return}function fw(a){a=a|0;var b=0,c=0,d=0;c=k[a+4>>2]|0;d=a+8|0;b=k[d>>2]|0;if((b|0)!=(c|0)){do b=b+-4|0;while((b|0)!=(c|0));k[d>>2]=b}c=k[a>>2]|0;do if(c){b=k[a+16>>2]|0;if((b|0)==(c|0)){i[b+112>>0]=0;break}else{mj(c);break}}while(0);return}function gw(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>1073741823)jj(a);c=a+128|0;if(b>>>0<29&(i[c>>0]|0)==0){i[c>>0]=1;c=a+16|0}else c=lj(b<<2)|0;k[a+4>>2]=c;k[a>>2]=c;k[a+8>>2]=c+(b<<2);return}function hw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}while(0);r=h;return +d}function iw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)!=(b|0)){e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}else{k[c>>2]=4;d=0.0}while(0);r=h;return +d}function jw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)==(b|0)){k[c>>2]=4;d=0.0}else{e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;d=+ql(a,g,fp()|0);a=k[e>>2]|0;if(!a)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0.0;break}if((a|0)==34)k[c>>2]=4}while(0);r=h;return +d}function kw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;d=0;a=0;break}e=mk()|0;f=k[e>>2]|0;k[e>>2]=0;a=fk(a,g,d,fp()|0)|0;d=k[e>>2]|0;if(!d)k[e>>2]=f;if((k[g>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((d|0)==34){k[c>>2]=4;d=-1;a=-1}else d=M}else{k[c>>2]=4;d=0;a=0}while(0);M=d;r=h;return a|0}function lw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}while(0);r=j;return a|0}function mw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>4294967295|(e|0)==34){k[c>>2]=4;a=-1;break}else break}else{k[c>>2]=4;a=0}while(0);r=j;return a|0}function nw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;do if((a|0)!=(b|0)){if((i[a>>0]|0)==45){k[c>>2]=4;a=0;break}f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=fk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}if(d>>>0>0|(d|0)==0&a>>>0>65535|(e|0)==34){k[c>>2]=4;a=-1;break}else{a=a&65535;break}}else{k[c>>2]=4;a=0}while(0);r=j;return a|0}function ow(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=r;r=r+16|0;h=i;do if((a|0)!=(b|0)){f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;d=0;a=0;break}if((e|0)==34){k[c>>2]=4;h=(d|0)>0|(d|0)==0&a>>>0>0;M=h?2147483647:-2147483648;r=i;return (h?-1:0)|0}}else{k[c>>2]=4;d=0;a=0}while(0);M=d;r=i;return a|0}function pw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=r;r=r+16|0;h=i;a:do if((a|0)==(b|0)){k[c>>2]=4;a=0}else{f=mk()|0;g=k[f>>2]|0;k[f>>2]=0;a=gk(a,h,d,fp()|0)|0;d=M;e=k[f>>2]|0;if(!e)k[f>>2]=g;if((k[h>>2]|0)!=(b|0)){k[c>>2]=4;a=0;break}do if((e|0)==34){k[c>>2]=4;if((d|0)>0|(d|0)==0&a>>>0>0){a=2147483647;break a}}else{if((d|0)<-1|(d|0)==-1&a>>>0<2147483648){k[c>>2]=4;break}if((d|0)>0|(d|0)==0&a>>>0>2147483647){k[c>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}while(0);r=i;return a|0}function qw(){}function rw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (M=d,a-c>>>0|0)|0}function sw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;f=a&3;g=b|b<<8|b<<16|b<<24;e=d&~3;if(f){f=a+4-f|0;while((a|0)<(f|0)){i[a>>0]=b;a=a+1|0}}while((a|0)<(e|0)){k[a>>2]=g;a=a+4|0}}while((a|0)<(d|0)){i[a>>0]=b;a=a+1|0}return a-c|0}function tw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (M=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function uw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>>c;return a>>>c|(b&(1<>>c-32|0}function vw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)>=4096)return db(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){k[a>>2]=k[b>>2];a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){i[a>>0]=i[b>>0]|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function ww(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b<>>32-c;return a<0){a=a-1|0;b=b-1|0;c=c-1|0;i[a>>0]=i[b>>0]|0}a=d}else vw(a,b,c)|0;return a|0}function yw(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){M=b>>c;return a>>>c|(b&(1<>c-32|0}function zw(a){a=a|0;var b=0;b=i[v+(a&255)>>0]|0;if((b|0)<8)return b|0;b=i[v+(a>>8&255)>>0]|0;if((b|0)<8)return b+8|0;b=i[v+(a>>16&255)>>0]|0;if((b|0)<8)return b+16|0;return (i[v+(a>>>24)>>0]|0)+24|0}function Aw(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=ia(e,f)|0;d=a>>>16;a=(c>>>16)+(ia(e,d)|0)|0;e=b>>>16;b=ia(e,f)|0;return (M=(a>>>16)+(ia(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Bw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=rw(j^a,i^b,j,i)|0;g=M;a=f^j;b=e^i;return rw((Gw(h,g,rw(f^c,e^d,f,e)|0,M,0)|0)^a,M^b,a,b)|0}function Cw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=r;r=r+16|0;h=e|0;g=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;i=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=rw(g^a,f^b,g,f)|0;b=M;Gw(a,b,rw(j^c,i^d,j,i)|0,M,h)|0;d=rw(k[h>>2]^g,k[h+4>>2]^f,g,f)|0;c=M;r=e;return (M=c,d)|0}function Dw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Aw(e,f)|0;a=M;return (M=(ia(b,f)|0)+(ia(d,e)|0)+a|a&0,c|0|0)|0}function Ew(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gw(a,b,c,d,0)|0}function Fw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=r;r=r+16|0;e=f|0;Gw(a,b,c,d,e)|0;r=f;return (M=k[e+4>>2]|0,k[e>>2]|0)|0}function Gw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;l=a;i=b;j=i;g=c;n=d;h=n;if(!j){f=(e|0)!=0;if(!h){if(f){k[e>>2]=(l>>>0)%(g>>>0);k[e+4>>2]=0}n=0;e=(l>>>0)/(g>>>0)>>>0;return (M=n,e)|0}else{if(!f){n=0;e=0;return (M=n,e)|0}k[e>>2]=a|0;k[e+4>>2]=b&0;n=0;e=0;return (M=n,e)|0}}f=(h|0)==0;do if(g){if(!f){f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=31){m=f+1|0;h=31-f|0;b=f-31>>31;g=m;a=l>>>(m>>>0)&b|j<>>(m>>>0)&b;f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;n=0;e=0;return (M=n,e)|0}f=g-1|0;if(f&g){h=(ka(g|0)|0)+33-(ka(j|0)|0)|0;p=64-h|0;m=32-h|0;i=m>>31;o=h-32|0;b=o>>31;g=h;a=m-1>>31&j>>>(o>>>0)|(j<>>(h>>>0))&b;b=b&j>>>(h>>>0);f=l<>>(o>>>0))&i|l<>31;break}if(e){k[e>>2]=f&l;k[e+4>>2]=0}if((g|0)==1){o=i|b&0;p=a|0|0;return (M=o,p)|0}else{p=zw(g|0)|0;o=j>>>(p>>>0)|0;p=j<<32-p|l>>>(p>>>0)|0;return (M=o,p)|0}}else{if(f){if(e){k[e>>2]=(j>>>0)%(g>>>0);k[e+4>>2]=0}o=0;p=(j>>>0)/(g>>>0)>>>0;return (M=o,p)|0}if(!l){if(e){k[e>>2]=0;k[e+4>>2]=(j>>>0)%(h>>>0)}o=0;p=(j>>>0)/(h>>>0)>>>0;return (M=o,p)|0}f=h-1|0;if(!(f&h)){if(e){k[e>>2]=a|0;k[e+4>>2]=f&j|b&0}o=0;p=j>>>((zw(h|0)|0)>>>0);return (M=o,p)|0}f=(ka(h|0)|0)-(ka(j|0)|0)|0;if(f>>>0<=30){b=f+1|0;h=31-f|0;g=b;a=j<>>(b>>>0);b=j>>>(b>>>0);f=0;h=l<>2]=a|0;k[e+4>>2]=i|b&0;o=0;p=0;return (M=o,p)|0}while(0);if(!g){j=h;i=0;h=0}else{m=c|0|0;l=n|d&0;j=tw(m|0,l|0,-1,-1)|0;c=M;i=h;h=0;do{d=i;i=f>>>31|i<<1;f=h|f<<1;d=a<<1|d>>>31|0;n=a>>>31|b<<1|0;rw(j,c,d,n)|0;p=M;o=p>>31|((p|0)<0?-1:0)<<1;h=o&1;a=rw(d,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=M;g=g-1|0}while((g|0)!=0);j=i;i=0}g=0;if(e){k[e>>2]=a;k[e+4>>2]=b}o=(f|0)>>>31|(j|g)<<1|(g<<1|f>>>31)&0|i;p=(f<<1|0>>>31)&-2|h;return (M=o,p)|0}function Hw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Ib[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function Iw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Jb[a&15](b|0,c|0,d|0,e|0,f|0)}function Jw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Kb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function Kw(a,b){a=a|0;b=b|0;Lb[a&255](b|0)}function Lw(a,b,c){a=a|0;b=b|0;c=c|0;Mb[a&127](b|0,c|0)}function Mw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Nb[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Nw(a,b){a=a|0;b=b|0;return Ob[a&127](b|0)|0}function Ow(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;return Pb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)|0}function Pw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qb[a&63](b|0,c|0,d|0)|0}function Qw(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;Rb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0,n|0,o|0,p|0)}function Rw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Sb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function Sw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Tb[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Tw(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;Ub[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Uw(a,b,c){a=a|0;b=b|0;c=c|0;return Vb[a&63](b|0,c|0)|0}function Vw(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Wb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function Ww(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +Xb[a&3](b|0,c|0,d|0)}function Xw(a){a=a|0;return Yb[a&15]()|0}function Yw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zb[a&31](b|0,c|0,d|0,e|0)|0}function Zw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;_b[a&15](b|0,c|0,d|0)}function _w(a){a=a|0;$b[a&7]()}function $w(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return ac[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function ax(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return bc[a&7](b|0,c|0,d|0,e|0,+f)|0}function bx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;cc[a&63](b|0,c|0,d|0,e|0)}function cx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(0);return 0}function dx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(1)}function ex(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;la(2);return 0}function fx(a){a=a|0;la(3)}function gx(a,b){a=a|0;b=b|0;la(4)}function hx(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(5);return 0}function ix(a){a=a|0;la(6);return 0}function jx(a){a=a|0;return lb(a|0)|0}function kx(a){a=a|0;return Ab(a|0)|0}function lx(a){a=a|0;return qb(a|0)|0}function mx(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;la(7);return 0}function nx(a,b,c){a=a|0;b=b|0;c=c|0;la(8);return 0}function ox(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;la(9)}function px(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;la(10)}function qx(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;la(11)}function rx(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;la(12)}function sx(a,b){a=a|0;b=b|0;la(13);return 0}function tx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;la(14);return 0}function ux(a,b,c){a=a|0;b=b|0;c=c|0;la(15);return 0.0}function vx(){la(16);return 0}function wx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(17);return 0}function xx(a,b,c){a=a|0;b=b|0;c=c|0;la(18)}function yx(a,b,c){a=a|0;b=b|0;c=c|0;ub(a|0,b|0,c|0)}function zx(){la(19)}function Ax(){yb()}function Bx(){eb()}function Cx(){vb()}function Dx(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;la(20);return 0}function Ex(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;la(21);return 0}function Fx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;la(22)} -function ni(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0;l=r;r=r+32|0;h=l;Oi(h,255,0);j=a+152|0;if(((k[h+4>>2]|0)==(k[j>>2]|0)?(k[h+8>>2]|0)==(k[a+156>>2]|0):0)?(k[h+12>>2]|0)==(k[a+160>>2]|0):0){j=k[8900]|0;k[a+4580>>2]=j+(((k[8901]|0)-j|0)>>>1);r=l;return}c=a+4584|0;d=a+4588|0;e=k[d>>2]|0;b=k[c>>2]|0;f=e-b|0;if(f>>>0>=512){if(f>>>0>512?(g=b+512|0,(e|0)!=(g|0)):0)k[d>>2]=g}else{se(c,512-f|0);b=k[c>>2]|0}h=a+4580|0;k[h>>2]=b+256;g=a+160|0;e=a+156|0;f=-256;while(1){b=k[g>>2]|0;if((f|0)>(0-b|0)){c=k[e>>2]|0;if((f|0)>(0-c|0)){d=k[j>>2]|0;if((f|0)>(0-d|0))if((f|0)>=0){if((f|0)<1){i[(k[h>>2]|0)+f>>0]=0;f=1;continue}if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1}else b=-1;else b=-2}else b=-3}else b=-4;i[(k[h>>2]|0)+f>>0]=b;f=f+1|0;if((f|0)==256)break}r=l;return}function oi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}a=a+88|0;b=k[a>>2]|0;k[a>>2]=0;if(!b)return;Lb[k[(k[b>>2]|0)+4>>2]&255](b);return}function pi(a){a=a|0;var b=0,c=0;k[a>>2]=35660;b=k[a+4608>>2]|0;if(b){c=a+4612|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}k[a>>2]=36736;b=k[a+92>>2]|0;if(b){c=a+96|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b)}c=a+88|0;b=k[c>>2]|0;k[c>>2]=0;if(!b){mj(a);return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);mj(a);return}function qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,y=0,z=0;u=r;r=r+352|0;v=u+328|0;y=u+192|0;c=u+343|0;d=u+342|0;e=u+341|0;f=u+340|0;o=u+176|0;h=u+168|0;j=u+160|0;l=u+152|0;t=u;q=u+136|0;if((k[a+28>>2]|0)!=0?(k[a+20>>2]|0)!=1:0){p=a+4|0;s=a+32|0;g=k[s>>2]|0;if(!g){a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[c>>0]|0;Ja(44,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}a=k[a+12>>2]|0;if((a|0)==8)switch(g|0){case 1:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[d>>0]|0;Ja(45,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[e>>0]|0;Ja(46,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(48)|0;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];i[v>>0]=i[f>>0]|0;Ja(47,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=y+56|0;e=y+4|0;k[y>>2]=36160;k[g>>2]=36180;x=0;ra(62,y+56|0,e|0);u=x;x=0;if(u&1){z=Wa()|0;qn(g);fb(z|0)}k[y+128>>2]=0;k[y+132>>2]=-1;k[y>>2]=36200;k[y+56>>2]=36220;x=0;qa(180,e|0);u=x;x=0;do if(u&1)a=Wa()|0;else{k[e>>2]=36236;f=y+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[y+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);u=x;x=0;if(u&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,y|0,49007,21)|0;v=x;x=0;do if((!(v&1)?(x=0,m=Aa(36,a|0,k[s>>2]|0)|0,v=x,x=0,!(v&1)):0)?(x=0,va(28,m|0,50997,18)|0,v=x,x=0,!(v&1)):0){d=Va(16)|0;x=0;ra(64,o|0,e|0);v=x;x=0;if(!(v&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,o|0);v=x;x=0;if(v&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(o);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=34;while(0);if((z|0)==34)a=Wa()|0;k[y>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}if((a|0)<=8){a=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,a|0,8,35648);z=x;x=0;if(!(z&1))ub(a|0,824,96);z=Wa()|0;Ua(a|0);fb(z|0)}c=16-a|0;switch(g|0){case 1:{a=lj(60)|0;k[h>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[h>>2];k[v+4>>2]=k[h+4>>2];Ja(41,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 2:{a=lj(60)|0;k[j>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[j>>2];k[v+4>>2]=k[j+4>>2];Ja(42,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}case 3:{a=lj(60)|0;k[l>>2]=c;x=0;k[y>>2]=k[b>>2];k[y+4>>2]=k[b+4>>2];k[y+8>>2]=k[b+8>>2];k[v>>2]=k[l>>2];k[v+4>>2]=k[l+4>>2];Ja(43,a|0,y|0,p|0,v|0);z=x;x=0;if(!(z&1)){z=a;r=u;return z|0}z=Wa()|0;mj(a);fb(z|0)}default:{g=t+56|0;e=t+4|0;k[t>>2]=36160;k[g>>2]=36180;x=0;ra(62,t+56|0,e|0);y=x;x=0;if(y&1){z=Wa()|0;qn(g);fb(z|0)}k[t+128>>2]=0;k[t+132>>2]=-1;k[t>>2]=36200;k[t+56>>2]=36220;x=0;qa(180,e|0);y=x;x=0;do if(y&1)a=Wa()|0;else{k[e>>2]=36236;f=t+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[t+52>>2]=16;k[v>>2]=0;k[v+4>>2]=0;k[v+8>>2]=0;x=0;ra(63,e|0,v|0);y=x;x=0;if(y&1){a=Wa()|0;Sm(v);Sm(f);xn(e);break}Sm(v);x=0;a=va(28,t|0,49007,21)|0;y=x;x=0;do if((!(y&1)?(x=0,n=Aa(36,a|0,k[s>>2]|0)|0,y=x,x=0,!(y&1)):0)?(x=0,va(28,n|0,50997,18)|0,y=x,x=0,!(y&1)):0){d=Va(16)|0;x=0;ra(64,q|0,e|0);y=x;x=0;if(!(y&1)){if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Ja(36,d|0,9,35648,q|0);y=x;x=0;if(y&1)c=1;else{x=0;Fa(6,d|0,824,96);x=0;c=0}a=Wa()|0;Sm(q);if(!c)break}else a=Wa()|0;Ua(d|0)}else z=64;while(0);if((z|0)==64)a=Wa()|0;k[t>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);z=a;fb(z|0)}while(0);z=a;qn(g);fb(z|0)}}}c=k[b+4>>2]|0;d=lj(16)|0;a=k[a+16>>2]|0;if(!c){z=k[b>>2]|0;k[d>>2]=36132;k[d+4>>2]=z;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}else{k[d>>2]=36108;k[d+4>>2]=c;k[d+8>>2]=1;k[d+12>>2]=a;z=d;r=u;return z|0}return 0}function ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,l=0;g=r;r=r+32|0;l=g;Oi(l,k[a+128>>2]|0,k[a+136>>2]|0);h=k[b+4>>2]|0;f=k[b+8>>2]|0;f=(f|0)==0?k[l+8>>2]|0:f;e=k[b+12>>2]|0;e=(e|0)==0?k[l+12>>2]|0:e;c=k[b+16>>2]|0;d=k[l+16>>2]|0;k[a+176>>2]=(h|0)==0?k[l+4>>2]|0:h;k[a+180>>2]=f;k[a+184>>2]=e;zi(a);e=a+132|0;b=(k[e>>2]|0)+32|0;b=(b|0)<128?2:(b|0)/64|0;f=0;do{k[a+188+(f*12|0)>>2]=b;k[a+188+(f*12|0)+4>>2]=0;j[a+188+(f*12|0)+8>>1]=0;j[a+188+(f*12|0)+10>>1]=1;f=f+1|0}while((f|0)!=365);h=(k[e>>2]|0)+32|0;h=(h|0)<128?2:(h|0)/64|0;l=((c|0)==0?d:c)&255;k[a+4568>>2]=h;k[a+4572>>2]=0;i[a+4576>>0]=l;i[a+4577>>0]=1;i[a+4578>>0]=0;k[a+4580>>2]=h;k[a+4584>>2]=1;i[a+4588>>0]=l;i[a+4589>>0]=1;i[a+4590>>0]=0;k[a+4592>>2]=0;r=g;return}function si(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=a+88|0;f=k[b>>2]|0;k[b>>2]=0;b=k[g>>2]|0;k[g>>2]=f;if(b)Lb[k[(k[b>>2]|0)+4>>2]&255](b);g=d+4|0;f=k[g>>2]|0;i[a+4620>>0]=e&1;b=a+156|0;k[b>>2]=k[c>>2];k[b+4>>2]=k[c+4>>2];k[b+8>>2]=k[c+8>>2];k[b+12>>2]=k[c+12>>2];ee(a,d);ti(a);b=k[a+116>>2]|0;a=k[a+112>>2]|0;while(1){e=b+-1|0;c=(i[e>>0]|0)==-1?7:8;if((a|0)<(c|0))break;else{b=e;a=a-c|0}}b=b-f|0;e=k[g>>2]|0;if(!e)return;k[g>>2]=e+b;d=d+8|0;k[d>>2]=(k[d>>2]|0)-b;return}function ti(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0;A=r;r=r+32|0;C=A+12|0;z=A;h=a+172|0;y=(k[h>>2]|0)+4|0;if((k[a+28>>2]|0)==1)j=k[a+20>>2]|0;else j=1;b=ia(j<<1,y)|0;k[C>>2]=0;D=C+4|0;k[D>>2]=0;k[C+8>>2]=0;a:do if(b){if(!((b|0)<0?(x=0,qa(178,C|0),B=x,x=0,B&1):0))w=6;if((w|0)==6?(x=0,c=ta(67,b|0)|0,B=x,x=0,!(B&1)):0){k[D>>2]=c;k[C>>2]=c;k[C+8>>2]=c+b;while(1){i[c>>0]=0;c=(k[D>>2]|0)+1|0;k[D>>2]=c;b=b+-1|0;if(!b)break a}}c=Wa()|0;b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}while(0);k[z>>2]=0;B=z+4|0;k[B>>2]=0;k[z+8>>2]=0;do if(!j)w=19;else{if(!(j>>>0>1073741823?(x=0,qa(178,z|0),v=x,x=0,v&1):0))w=17;if((w|0)==17?(d=j<<2,x=0,e=ta(67,d|0)|0,v=x,x=0,!(v&1)):0){k[z>>2]=e;w=e+(j<<2)|0;k[z+8>>2]=w;sw(e|0,0,d|0)|0;k[B>>2]=w;w=19;break}c=Wa()|0;b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}while(0);if((w|0)==19){l=a+8|0;b=k[l>>2]|0;b:do if((b|0)>0){m=a+4596|0;n=ia(j,y)|0;o=n+1|0;p=a+4600|0;q=a+160|0;s=a+168|0;t=a+164|0;u=a+156|0;v=a+88|0;g=a+4592|0;if((j|0)>0)f=0;else{f=0;while(1){e=k[C>>2]|0;c=e+1|0;k[m>>2]=c;d=e+o|0;k[p>>2]=d;if(!(f&1))c=o;else{k[m>>2]=d;k[p>>2]=c;c=1}j=k[q>>2]|0;if((j|0)<=(f|0)?(f|0)<((k[s>>2]|0)+j|0):0){j=k[v>>2]|0;x=0;Ja(k[(k[j>>2]|0)+8>>2]|0,j|0,e+(c+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0);j=x;x=0;if(j&1)break;b=k[l>>2]|0}f=f+1|0;if((f|0)>=(b|0)){w=50;break b}}c=Wa()|0;break}c:while(1){c=k[C>>2]|0;b=c+1|0;k[m>>2]=b;c=c+o|0;k[p>>2]=c;if(f&1){k[m>>2]=c;k[p>>2]=b;b=c}e=k[z>>2]|0;c=b;d=0;do{k[g>>2]=k[e+(d<<2)>>2];w=k[h>>2]|0;i[c+w>>0]=i[c+(w+-1)>>0]|0;i[(k[p>>2]|0)+-1>>0]=i[k[m>>2]>>0]|0;x=0;ra(83,a|0,0);w=x;x=0;if(w&1){w=38;break c}e=k[z>>2]|0;k[e+(d<<2)>>2]=k[g>>2];c=(k[m>>2]|0)+y|0;k[m>>2]=c;b=k[p>>2]|0;k[p>>2]=b+y;d=d+1|0}while((d|0)<(j|0));w=k[q>>2]|0;if(((w|0)<=(f|0)?(f|0)<((k[s>>2]|0)+w|0):0)?(w=k[v>>2]|0,x=0,Ja(k[(k[w>>2]|0)+8>>2]|0,w|0,b+(y+((k[u>>2]|0)-n))|0,k[t>>2]|0,y|0),w=x,x=0,w&1):0){w=30;break}f=f+1|0;if((f|0)>=(k[l>>2]|0)){w=50;break b}}if((w|0)==30){c=Wa()|0;break}else if((w|0)==38){c=Wa()|0;break}}else w=50;while(0);do if((w|0)==50){x=0;qa(183,a|0);a=x;x=0;if(a&1){c=Wa()|0;break}b=k[z>>2]|0;c=b;if(b){d=k[B>>2]|0;if((d|0)!=(b|0))k[B>>2]=d+(~((d+-4-c|0)>>>2)<<2);mj(b)}b=k[C>>2]|0;if(!b){r=A;return}if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);r=A;return}while(0);b=k[z>>2]|0;d=b;if(b){e=k[B>>2]|0;if((e|0)!=(b|0))k[B>>2]=e+(~((e+-4-d|0)>>>2)<<2);mj(b)}}b=k[C>>2]|0;if(!b)fb(c|0);if((k[D>>2]|0)!=(b|0))k[D>>2]=b;mj(b);fb(c|0)}function ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=a+4596|0;c=k[p>>2]|0;t=a+172|0;b=k[t>>2]|0;if((b|0)<=0)return;q=a+4600|0;r=a+4604|0;s=a+4592|0;h=c;f=l[c+-1>>0]|0;c=l[c>>0]|0;o=0;while(1){m=k[q>>2]|0;g=i[m+(o+-1)>>0]|0;n=g&255;e=o+1|0;d=l[h+e>>0]|0;j=k[r>>2]|0;h=c-f|0;f=f-n|0;j=((((i[j+(d-c)>>0]|0)*9|0)+(i[j+h>>0]|0)|0)*9|0)+(i[j+f>>0]|0)|0;m=m+o|0;if(!j){b=wi(a,g,m,b-o|0)|0;c=b+o|0;if((c|0)!=(k[t>>2]|0)){n=xi(a,n,l[(k[p>>2]|0)+c>>0]|0)|0;i[(k[q>>2]|0)+c>>0]=n;n=k[s>>2]|0;k[s>>2]=(n|0)<1?0:n+-1|0;b=b+1|0}e=b+o|0;d=k[p>>2]|0;c=l[d+(e+-1)>>0]|0;d=l[d+e>>0]|0}else{b=c-n>>31;if((b^f|0)<0)b=c;else b=n+((b^h|0)<0?0:h)|0;n=vi(a,j,l[m>>0]|0,b,0)|0;i[(k[q>>2]|0)+o>>0]=n}b=k[t>>2]|0;if((b|0)<=(e|0))break;h=k[p>>2]|0;f=c;c=d;o=e}return}function vi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=b>>31;l=(r^b)-r|0;p=a+188+(l*12|0)+10|0;c=j[p>>1]|0;o=a+188+(l*12|0)|0;e=k[o>>2]|0;if((c|0)<(e|0))if((c<<1|0)<(e|0))if((c<<2|0)<(e|0))if((c<<3|0)<(e|0))if((c<<4|0)<(e|0)){b=5;while(1)if((c<>1]^r)-r+d|0;q=a+128|0;e=k[q>>2]|0;if((c&e|0)==(c|0))m=c;else m=e&~(c>>31);c=a+112|0;if((k[c>>2]|0)<8)qe(a);e=a+108|0;d=k[e>>2]|0;f=d>>>24;g=k[2832+(b<<11)+(f<<3)+4>>2]|0;if(!g){h=k[a+148>>2]|0;e=k[a+140>>2]|0;c=Tg(a)|0;if((c|0)<(h+-1-e|0)){if(b)c=(Ug(a,b)|0)+(c<>31^c>>1;if((((c|0)>-1?c:0-c|0)|0)>65535){c=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,c|0,5,35648);a=x;x=0;if(a&1){a=Wa()|0;Ua(c|0);fb(a|0)}else ub(c|0,824,96)}}else{k[c>>2]=(k[c>>2]|0)-g;k[e>>2]=d<>2]|0}h=a+136|0;d=k[h>>2]|0;if(!b){if(!d)e=(k[a+188+(l*12|0)+4>>2]<<1)+-1+(j[p>>1]|0)>>31;else e=0;g=e^c}else g=c;b=k[a+152>>2]|0;e=(k[o>>2]|0)+((g|0)>-1?g:0-g|0)|0;f=a+188+(l*12|0)+4|0;c=(k[f>>2]|0)+(ia(d<<1|1,g)|0)|0;d=j[p>>1]|0;if((d|0)==(b|0)){e=e>>1;c=c>>1;d=b>>1}k[o>>2]=e;b=d+1|0;j[p>>1]=b;e=b+c|0;if((e|0)>=1){if((c|0)>0){c=c-b|0;p=j[n>>1]|0;j[n>>1]=(p<<16>>16<127&1)+(p&65535);c=(c|0)>0?0:c}}else{c=j[n>>1]|0;j[n>>1]=(c&65535)-(c<<16>>16>-128&1);c=(e|0)>(~d|0)?e:0-d|0}k[f>>2]=c;b=k[h>>2]|0;d=b<<1|1;e=(ia(d,(g^r)-r|0)|0)+m|0;if((e|0)>=(0-b|0)){c=k[q>>2]|0;if((c+b|0)<(e|0))e=e-(ia(k[a+132>>2]|0,d)|0)|0}else{e=(ia(k[a+132>>2]|0,d)|0)+e|0;c=k[q>>2]|0}if((e&c|0)==(e|0)){a=e;a=a&255;return a|0}a=c&~(e>>31);a=a&255;return a|0}function wi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;h=a+112|0;j=a+108|0;l=a+4592|0;e=k[h>>2]|0;f=0;while(1){if((e|0)<1){qe(a);e=k[h>>2]|0}g=k[j>>2]|0;e=e+-1|0;k[h>>2]=e;k[j>>2]=g<<1;if((g|0)>=0){m=8;break}g=k[l>>2]|0;n=1<>2];o=d-f|0;o=(n|0)<(o|0)?n:o;f=o+f|0;if((o|0)==(n|0))k[l>>2]=(g|0)>30?31:g+1|0;if((f|0)==(d|0)){e=d;break}}if((m|0)==8)if((f|0)!=(d|0)){e=k[l>>2]|0;if((e+-4|0)>>>0<28)e=Ug(a,k[36476+(e<<2)>>2]|0)|0;else e=0;e=e+f|0;if((e|0)>(d|0)){e=Va(16)|0;if((i[8]|0)==0?(Qa(8)|0)!=0:0){tb(72,35648,w|0)|0;Ya(8)}x=0;Fa(7,e|0,5,35648);o=x;x=0;if(o&1){o=Wa()|0;Ua(e|0);fb(o|0)}else ub(e|0,824,96)}}else e=d;if((e|0)<=0)return e|0;sw(c|0,b|0,e|0)|0;return e|0}function xi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b-c|0;g=a+128|0;d=a+136|0;if((((f|0)>-1?f:0-f|0)|0)>(k[d>>2]|0)){b=ia(yi(a,a+4568|0)|0,c-b>>31|1)|0;e=k[d>>2]|0;f=e<<1|1;b=(ia(b,f)|0)+c|0;if((b|0)>=(0-e|0)){d=k[g>>2]|0;if((d+e|0)<(b|0))b=b-(ia(k[a+132>>2]|0,f)|0)|0}else{b=(ia(k[a+132>>2]|0,f)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}else{c=yi(a,a+4580|0)|0;f=k[d>>2]|0;e=f<<1|1;b=(ia(e,c)|0)+b|0;if((b|0)>=(0-f|0)){d=k[g>>2]|0;if((d+f|0)<(b|0))b=b-(ia(k[a+132>>2]|0,e)|0)|0}else{b=(ia(k[a+132>>2]|0,e)|0)+b|0;d=k[g>>2]|0}if((b&d|0)==(b|0)){a=b;a=a&255;return a|0}a=d&~(b>>31);a=a&255;return a|0}return 0}function yi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,m=0;m=b+9|0;c=l[m>>0]|0;f=b+4|0;e=(ia(c>>>1,k[f>>2]|0)|0)+(k[b>>2]|0)|0;if((c|0)<(e|0)){d=0;do{c=c<<1;d=d+1|0}while((c|0)<(e|0))}else d=0;g=k[a+148>>2]|0;h=k[36476+(k[a+4592>>2]<<2)>>2]|0;c=k[a+140>>2]|0;e=Tg(a)|0;do if((e|0)<(g+-2-h-c|0))if(!d){d=k[f>>2]|0;a=d+e|0;c=a&1;a=(c+a|0)/2|0;j=8;break}else{h=(Ug(a,d)|0)+(e<>2]|0;e=h+d|0;g=e&1;c=g;f=1;e=(g+e|0)/2|0;break}else{e=(Ug(a,c)|0)+1|0;g=k[f>>2]|0;a=e+g|0;c=a&1;a=(c+a|0)/2|0;if(!d){d=g;j=8}else{h=e;f=1;e=a;d=g}}while(0);if((j|0)==8){h=e;f=l[b+10>>0]<<1>>>0>=(l[m>>0]|0)>>>0;e=a}e=(c|0)!=0^f?e:0-e|0;if((e|0)<0){j=b+10|0;i[j>>0]=(l[j>>0]|0)+1}c=(h+1-d>>1)+(k[b>>2]|0)|0;k[b>>2]=c;d=i[m>>0]|0;if(d<<24>>24!=(i[b+8>>0]|0)){b=d;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}k[b>>2]=c>>1;j=(d&255)>>>1;i[m>>0]=j;b=b+10|0;i[b>>0]=(l[b>>0]|0)>>>1;b=j;b=b&255;b=b+1|0;b=b&255;i[m>>0]=b;return e|0}function zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0;o=r;r=r+32|0;d=o;n=a+136|0;a:do if(!(k[n>>2]|0)){c=k[a+128>>2]|0;b=a+144|0;if((((c|0)==((1<>2])+-1|0)?(Oi(d,c,0),(k[d+4>>2]|0)==(k[a+176>>2]|0)):0)?(k[d+8>>2]|0)==(k[a+180>>2]|0):0)?(k[d+12>>2]|0)==(k[a+184>>2]|0):0)switch(k[b>>2]|0){case 8:{n=k[8900]|0;k[a+4604>>2]=n+(((k[8901]|0)-n|0)>>>1);r=o;return}case 10:{n=k[8903]|0;k[a+4604>>2]=n+(((k[8904]|0)-n|0)>>>1);r=o;return}case 12:{n=k[8906]|0;k[a+4604>>2]=n+(((k[8907]|0)-n|0)>>>1);r=o;return}case 16:{n=k[8909]|0;k[a+4604>>2]=n+(((k[8910]|0)-n|0)>>>1);r=o;return}default:break a}}else b=a+144|0;while(0);m=1<>2];c=a+4608|0;d=m<<1;e=a+4612|0;f=k[e>>2]|0;b=k[c>>2]|0;g=f-b|0;if(d>>>0<=g>>>0){if(d>>>0>>0?(h=b+d|0,(f|0)!=(h|0)):0)k[e>>2]=h}else{se(c,d-g|0);b=k[c>>2]|0}l=a+4604|0;k[l>>2]=b+m;b=0-m|0;if((m|0)<=(b|0)){r=o;return}h=a+184|0;j=a+180|0;g=a+176|0;f=b;do{b=k[h>>2]|0;if((f|0)>(0-b|0)){c=k[j>>2]|0;if((f|0)>(0-c|0)){d=k[g>>2]|0;if((f|0)>(0-d|0)){e=k[n>>2]|0;if((f|0)>=(0-e|0))if((e|0)<(f|0))if((d|0)<=(f|0))if((c|0)>(f|0))b=2;else b=(b|0)>(f|0)?3:4;else b=1;else b=0;else b=-1}else b=-2}else b=-3}else b=-4;i[(k[l>>2]|0)+f>>0]=b;f=f+1|0}while((f|0)!=(m|0));r=o;return}function Ai(a){a=a|0;mj(a);return}function Bi(a){a=a|0;return 50767}function Ci(a,b,c){a=a|0;b=b|0;c=c|0;Qm(a,50754,12);return}function Di(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0;q=r;r=r+16|0;s=q;k[s>>2]=0;t=s+4|0;k[t>>2]=0;k[s+8>>2]=0;o=s+8|0;x=0;e=ta(67,1)|0;n=x;x=0;a:do if((!(n&1)?(n=e+1|0,i[e>>0]=c,k[s>>2]=e,k[t>>2]=n,k[o>>2]=n,x=0,ra(84,s|0,b&65535|0),n=x,x=0,!(n&1)):0)?(x=0,ra(84,s|0,a&65535|0),n=x,x=0,!(n&1)):0){l=d&255;e=k[t>>2]|0;c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);n=x;x=0;if(n&1){p=52;break}a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=12}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=12}if((p|0)==12){x=0;g=ta(67,e|0)|0;n=x;x=0;if(n&1){p=52;break}}i[g+h>>0]=l;m=c-j|0;n=g+(h-m)|0;vw(n|0,b|0,m|0)|0;k[s>>2]=n;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=l;k[t>>2]=(k[t>>2]|0)+1}b:do if((d|0)>0){n=0;while(1){n=n+1|0;m=n&255;e=k[t>>2]|0;b=k[o>>2]|0;if(e>>>0>=b>>>0){a=k[s>>2]|0;c=a;g=e-c+1|0;if((g|0)<0){x=0;qa(178,s|0);l=x;x=0;if(l&1)break;a=k[s>>2]|0;c=a;b=k[o>>2]|0}l=a;e=b-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;b=k[t>>2]|0;h=b-l|0;if(!e){j=0;g=0}else p=25}else{h=k[t>>2]|0;e=2147483647;b=h;h=h-l|0;p=25}if((p|0)==25){p=0;x=0;g=ta(67,e|0)|0;j=x;x=0;if(j&1)break;else j=e}i[g+h>>0]=m;e=g+(h+1)|0;l=b-l|0;m=g+(h-l)|0;vw(m|0,a|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=g+j;if(c){mj(c);e=k[t>>2]|0}}else{i[e>>0]=m;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}l=b;e=c-l|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;g=k[t>>2]|0;h=g-l|0;if(!e){j=0;c=0}else p=36}else{h=k[t>>2]|0;e=2147483647;g=h;h=h-l|0;p=36}if((p|0)==36){p=0;x=0;c=ta(67,e|0)|0;m=x;x=0;if(m&1)break;else j=e}i[c+h>>0]=17;e=c+(h+1)|0;l=g-l|0;m=c+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=e;k[o>>2]=c+j;if(a){mj(a);e=k[t>>2]|0}}else{i[e>>0]=17;e=(k[t>>2]|0)+1|0;k[t>>2]=e}c=k[o>>2]|0;if(e>>>0>=c>>>0){b=k[s>>2]|0;a=b;g=e-a+1|0;if((g|0)<0){x=0;qa(178,s|0);m=x;x=0;if(m&1)break;a=k[s>>2]|0;c=k[o>>2]|0;b=a}j=b;e=c-j|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;c=k[t>>2]|0;h=c-j|0;if(!e){e=0;g=0}else p=48}else{h=k[t>>2]|0;e=2147483647;c=h;h=h-j|0;p=48}if((p|0)==48){p=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1)break}i[g+h>>0]=0;l=c-j|0;m=g+(h-l)|0;vw(m|0,b|0,l|0)|0;k[s>>2]=m;k[t>>2]=g+(h+1);k[o>>2]=g+e;if(a)mj(a)}else{i[e>>0]=0;k[t>>2]=(k[t>>2]|0)+1}if((n|0)>=(d|0))break b}f=Wa()|0;break a}while(0);x=0;h=ta(67,20)|0;d=x;x=0;if(!(d&1)){k[h>>2]=36800;i[h+4>>0]=-9;a=h+8|0;k[a>>2]=0;g=h+12|0;k[g>>2]=0;c=h+16|0;k[c>>2]=0;e=k[t>>2]|0;d=k[s>>2]|0;b=e-d|0;do if((e|0)!=(d|0)){if(!((b|0)<0?(x=0,qa(178,a|0),d=x,x=0,d&1):0))p=62;if((p|0)==62?(x=0,f=ta(67,b|0)|0,d=x,x=0,!(d&1)):0){k[g>>2]=f;k[a>>2]=f;k[c>>2]=f+b;e=k[s>>2]|0;c=k[t>>2]|0;if((e|0)==(c|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[g>>2]|0)+1|0;k[g>>2]=f;e=e+1|0}while((e|0)!=(c|0));e=k[s>>2]|0;break}f=Wa()|0;e=k[a>>2]|0;if(e){if((k[g>>2]|0)!=(e|0))k[g>>2]=e;mj(e)}mj(h);break a}while(0);if(!e){r=q;return h|0}if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);r=q;return h|0}else p=52}else p=52;while(0);if((p|0)==52)f=Wa()|0;e=k[s>>2]|0;if(!e)fb(f|0);if((k[t>>2]|0)!=(e|0))k[t>>2]=e;mj(e);fb(f|0);return 0}function Ei(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,y=0;t=r;r=r+32|0;p=t+28|0;v=t+16|0;s=t+4|0;q=t;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;n=lj(5)|0;k[v>>2]=n;o=v+8|0;k[o>>2]=n+5;i[n>>0]=74;i[n+1>>0]=70;i[n+2>>0]=73;i[n+3>>0]=70;i[n+4>>0]=0;k[w>>2]=n+5;x=0;ra(84,v|0,k[a>>2]&65535|0);n=x;x=0;a:do if(!(n&1)){l=k[a+4>>2]&255;b=k[w>>2]|0;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);n=x;x=0;if(n&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=10}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=10}if((u|0)==10){x=0;g=ta(67,b|0)|0;n=x;x=0;if(n&1){u=43;break}}i[g+h>>0]=l;m=d-j|0;n=g+(h-m)|0;vw(n|0,e|0,m|0)|0;k[v>>2]=n;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}x=0;ra(84,v|0,k[a+8>>2]&65535|0);n=x;x=0;if(!(n&1)?(x=0,ra(84,v|0,k[a+12>>2]&65535|0),n=x,x=0,!(n&1)):0){n=a+16|0;m=k[n>>2]&255;b=k[w>>2]|0;e=k[o>>2]|0;if(b>>>0>=e>>>0){f=k[v>>2]|0;d=f;g=b-d+1|0;if((g|0)<0){x=0;qa(178,v|0);l=x;x=0;if(l&1){u=43;break}f=k[v>>2]|0;d=f;e=k[o>>2]|0}l=f;b=e-l|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;g=k[w>>2]|0;h=g-l|0;if(!b){j=0;e=0}else u=23}else{h=k[w>>2]|0;b=2147483647;g=h;h=h-l|0;u=23}if((u|0)==23){x=0;e=ta(67,b|0)|0;j=x;x=0;if(j&1){u=43;break}else j=b}i[e+h>>0]=m;b=e+(h+1)|0;l=g-l|0;m=e+(h-l)|0;vw(m|0,f|0,l|0)|0;k[v>>2]=m;k[w>>2]=b;k[o>>2]=e+j;if(d){mj(d);b=k[w>>2]|0}}else{i[b>>0]=m;b=(k[w>>2]|0)+1|0;k[w>>2]=b}m=a+20|0;l=k[m>>2]&255;d=k[o>>2]|0;if(b>>>0>=d>>>0){e=k[v>>2]|0;f=e;g=b-f+1|0;if((g|0)<0){x=0;qa(178,v|0);j=x;x=0;if(j&1){u=43;break}f=k[v>>2]|0;d=k[o>>2]|0;e=f}j=e;b=d-j|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?g:b;d=k[w>>2]|0;h=d-j|0;if(!b){b=0;g=0}else u=34}else{h=k[w>>2]|0;b=2147483647;d=h;h=h-j|0;u=34}if((u|0)==34){x=0;g=ta(67,b|0)|0;y=x;x=0;if(y&1){u=43;break}}i[g+h>>0]=l;l=d-j|0;y=g+(h-l)|0;vw(y|0,e|0,l|0)|0;k[v>>2]=y;k[w>>2]=g+(h+1);k[o>>2]=g+b;if(f)mj(f)}else{i[b>>0]=l;k[w>>2]=(k[w>>2]|0)+1}b=k[n>>2]|0;do if((b|0)>0){if(!(k[a+24>>2]|0)){k[q>>2]=k[w>>2];y=0+(ia(b*3|0,k[m>>2]|0)|0)|0;x=0;k[p>>2]=k[q>>2];Ea(15,v|0,p|0,0,y|0)|0;y=x;x=0;if(y&1){u=43;break a}else break}d=Va(16)|0;x=0;Fa(5,s|0,50792,57);y=x;x=0;if(!(y&1)){x=0;b=Da(1)|0;y=x;x=0;if(!(y&1)?(x=0,Ja(36,d|0,1,b|0,s|0),y=x,x=0,!(y&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;b=Wa()|0;Sm(s);if(!c){c=b;break a}}else b=Wa()|0;Ua(d|0);c=b;break a}while(0);x=0;h=ta(67,20)|0;y=x;x=0;if(!(y&1)){k[h>>2]=36800;i[h+4>>0]=-32;f=h+8|0;k[f>>2]=0;g=h+12|0;k[g>>2]=0;d=h+16|0;k[d>>2]=0;b=k[w>>2]|0;y=k[v>>2]|0;e=b-y|0;do if((b|0)!=(y|0)){if(!((e|0)<0?(x=0,qa(178,f|0),y=x,x=0,y&1):0))u=53;if((u|0)==53?(x=0,c=ta(67,e|0)|0,y=x,x=0,!(y&1)):0){k[g>>2]=c;k[f>>2]=c;k[d>>2]=c+e;b=k[v>>2]|0;d=k[w>>2]|0;if((b|0)==(d|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(d|0));b=k[v>>2]|0;break}b=Wa()|0;c=k[f>>2]|0;if(c){if((k[g>>2]|0)!=(c|0))k[g>>2]=c;mj(c)}mj(h);u=44;break a}while(0);if(!b){r=t;return h|0}if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);r=t;return h|0}else u=43}else u=43}else u=43;while(0);if((u|0)==43){b=Wa()|0;u=44}if((u|0)==44)c=b;b=k[v>>2]|0;if(!b)fb(c|0);if((k[w>>2]|0)!=(b|0))k[w>>2]=b;mj(b);fb(c|0);return 0}function Fi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0;h=r;r=r+16|0;l=h;k[l>>2]=0;m=l+4|0;k[m>>2]=0;k[l+8>>2]=0;x=0;b=ta(67,1)|0;g=x;x=0;a:do if((((((!(g&1)?(g=b+1|0,i[b>>0]=1,k[l>>2]=b,k[m>>2]=g,k[l+8>>2]=g,x=0,ra(84,l|0,k[a>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+4>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+8>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+12>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,ra(84,l|0,k[a+16>>2]&65535|0),g=x,x=0,!(g&1)):0)?(x=0,j=ta(67,20)|0,g=x,x=0,!(g&1)):0){k[j>>2]=36800;i[j+4>>0]=-8;e=j+8|0;k[e>>2]=0;g=j+12|0;k[g>>2]=0;a=j+16|0;k[a>>2]=0;b=k[m>>2]|0;n=k[l>>2]|0;d=b-n|0;do if((b|0)!=(n|0)){if(!((d|0)<0?(x=0,qa(178,e|0),n=x,x=0,n&1):0))f=11;if((f|0)==11?(x=0,c=ta(67,d|0)|0,n=x,x=0,!(n&1)):0){k[g>>2]=c;k[e>>2]=c;k[a>>2]=c+d;b=k[l>>2]|0;a=k[m>>2]|0;if((b|0)==(a|0))break;do{i[c>>0]=i[b>>0]|0;c=(k[g>>2]|0)+1|0;k[g>>2]=c;b=b+1|0}while((b|0)!=(a|0));b=k[l>>2]|0;break}c=Wa()|0;b=k[e>>2]|0;if(b){if((k[g>>2]|0)!=(b|0))k[g>>2]=b;mj(b)}mj(j);break a}while(0);if(!b){r=h;return j|0}if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);r=h;return j|0}else f=25;while(0);if((f|0)==25)c=Wa()|0;b=k[l>>2]|0;if(!b)fb(c|0);if((k[m>>2]|0)!=(b|0))k[m>>2]=b;mj(b);fb(c|0);return 0}function Gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;f=lj(5)|0;i[f>>0]=109;i[f+1>>0]=114;i[f+2>>0]=102;i[f+3>>0]=120;i[f+4>>0]=a;x=0;e=ta(67,20)|0;d=x;x=0;if(d&1){e=Wa()|0;mj(f);fb(e|0)}k[e>>2]=36800;i[e+4>>0]=-24;a=e+8|0;k[a>>2]=0;b=e+12|0;k[b>>2]=0;c=e+16|0;k[c>>2]=0;x=0;d=ta(67,5)|0;g=x;x=0;if(!(g&1)){k[b>>2]=d;k[a>>2]=d;k[c>>2]=d+5;i[d>>0]=109;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=f+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;d=d+1|0;i[g>>0]=i[d>>0]|0;g=(k[b>>2]|0)+1|0;k[b>>2]=g;i[g>>0]=i[d+1>>0]|0;k[b>>2]=(k[b>>2]|0)+1;mj(f);return e|0}g=Wa()|0;mj(e);mj(f);fb(g|0);return 0}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+16|0;v=u;k[v>>2]=0;w=v+4|0;k[w>>2]=0;k[v+8>>2]=0;s=v+8|0;x=0;e=ta(67,1)|0;q=x;x=0;a:do if(!(q&1)){h=e+1|0;q=h;i[e>>0]=b;k[v>>2]=e;k[w>>2]=q;k[s>>2]=q;if((b|0)>0){g=h;q=0;do{p=q+a&255;if(g>>>0>=h>>>0){e=k[v>>2]|0;j=e;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);o=x;x=0;if(o&1){t=28;break}j=k[v>>2]|0;h=k[s>>2]|0;o=j}else o=e;n=o;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;h=k[w>>2]|0;l=h-n|0;if(!e){m=0;g=0}else t=13}else{l=k[w>>2]|0;e=2147483647;h=l;l=l-n|0;t=13}if((t|0)==13){t=0;x=0;g=ta(67,e|0)|0;m=x;x=0;if(m&1){t=28;break}else m=e}i[g+l>>0]=p;e=g+(l+1)|0;n=h-n|0;p=g+(l-n)|0;vw(p|0,o|0,n|0)|0;k[v>>2]=p;k[w>>2]=e;k[s>>2]=g+m;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}h=k[s>>2]|0;if(e>>>0>=h>>>0){j=k[v>>2]|0;g=j;l=e-g+1|0;if((l|0)<0){x=0;qa(178,v|0);p=x;x=0;if(p&1){t=28;break}j=k[v>>2]|0;g=j;h=k[s>>2]|0}n=j;e=h-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;l=k[w>>2]|0;h=l-n|0;if(!e){e=0;m=0}else t=24}else{h=k[w>>2]|0;e=2147483647;l=h;h=h-n|0;t=24}if((t|0)==24){t=0;x=0;m=ta(67,e|0)|0;p=x;x=0;if(p&1){t=28;break}}i[m+h>>0]=0;o=l-n|0;p=m+(h-o)|0;vw(p|0,j|0,o|0)|0;k[v>>2]=p;k[w>>2]=m+(h+1);k[s>>2]=m+e;if(g)mj(g)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}q=q+1|0;g=k[w>>2]|0;h=k[s>>2]|0}while((q|0)<(b|0));if((t|0)==28){f=Wa()|0;break}e=c&255;if(g>>>0>>0){i[g>>0]=e;g=(k[w>>2]|0)+1|0;k[w>>2]=g}else t=37}else{g=h;e=c&255;t=37}if((t|0)==37){j=k[v>>2]|0;l=j;m=g-l+1|0;if((m|0)<0){x=0;qa(178,v|0);c=x;x=0;if(c&1){t=29;break}l=k[v>>2]|0;h=k[s>>2]|0;j=l}p=j;g=h-p|0;if(g>>>0<1073741823){g=g<<1;g=g>>>0>>0?m:g;m=k[w>>2]|0;n=m-p|0;if(!g){o=0;h=0}else t=43}else{n=k[w>>2]|0;g=2147483647;m=n;n=n-p|0;t=43}if((t|0)==43){x=0;h=ta(67,g|0)|0;c=x;x=0;if(c&1){t=29;break}else o=g}i[h+n>>0]=e;g=h+(n+1)|0;a=m-p|0;c=h+(n-a)|0;vw(c|0,j|0,a|0)|0;k[v>>2]=c;k[w>>2]=g;k[s>>2]=h+o;if(l){mj(l);g=k[w>>2]|0}}p=d&255;e=k[s>>2]|0;if(g>>>0>=e>>>0){h=k[v>>2]|0;j=h;g=g-j+1|0;if((g|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;e=k[s>>2]|0;h=j}o=h;e=e-o|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?g:e;l=k[w>>2]|0;m=l-o|0;if(!e){n=0;g=0}else t=54}else{m=k[w>>2]|0;e=2147483647;l=m;m=m-o|0;t=54}if((t|0)==54){x=0;g=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}else n=e}i[g+m>>0]=p;e=g+(m+1)|0;c=l-o|0;d=g+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=e;k[s>>2]=g+n;if(j){mj(j);e=k[w>>2]|0}}else{i[g>>0]=p;e=(k[w>>2]|0)+1|0;k[w>>2]=e}g=k[s>>2]|0;if(e>>>0>=g>>>0){h=k[v>>2]|0;j=h;l=e-j+1|0;if((l|0)<0){x=0;qa(178,v|0);d=x;x=0;if(d&1){t=29;break}j=k[v>>2]|0;g=k[s>>2]|0;h=j}n=h;e=g-n|0;if(e>>>0<1073741823){e=e<<1;e=e>>>0>>0?l:e;g=k[w>>2]|0;m=g-n|0;if(!e){e=0;l=0}else t=65}else{m=k[w>>2]|0;e=2147483647;g=m;m=m-n|0;t=65}if((t|0)==65){x=0;l=ta(67,e|0)|0;d=x;x=0;if(d&1){t=29;break}}i[l+m>>0]=0;c=g-n|0;d=l+(m-c)|0;vw(d|0,h|0,c|0)|0;k[v>>2]=d;k[w>>2]=l+(m+1);k[s>>2]=l+e;if(j)mj(j)}else{i[e>>0]=0;k[w>>2]=(k[w>>2]|0)+1}x=0;m=ta(67,20)|0;s=x;x=0;if(!(s&1)){k[m>>2]=36800;i[m+4>>0]=-38;j=m+8|0;k[j>>2]=0;l=m+12|0;k[l>>2]=0;g=m+16|0;k[g>>2]=0;e=k[w>>2]|0;s=k[v>>2]|0;h=e-s|0;do if((e|0)!=(s|0)){if(!((h|0)<0?(x=0,qa(178,j|0),s=x,x=0,s&1):0))t=72;if((t|0)==72?(x=0,f=ta(67,h|0)|0,s=x,x=0,!(s&1)):0){k[l>>2]=f;k[j>>2]=f;k[g>>2]=f+h;e=k[v>>2]|0;g=k[w>>2]|0;if((e|0)==(g|0))break;do{i[f>>0]=i[e>>0]|0;f=(k[l>>2]|0)+1|0;k[l>>2]=f;e=e+1|0}while((e|0)!=(g|0));e=k[v>>2]|0;break}f=Wa()|0;e=k[j>>2]|0;if(e){if((k[l>>2]|0)!=(e|0))k[l>>2]=e;mj(e)}mj(m);break a}while(0);if(!e){r=u;return m|0}if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);r=u;return m|0}else t=29}else t=29;while(0);if((t|0)==29)f=Wa()|0;e=k[v>>2]|0;if(!e)fb(f|0);if((k[w>>2]|0)!=(e|0))k[w>>2]=e;mj(e);fb(f|0);return 0}function Ii(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;n=(b&65535)>>>8&255;o=a+4|0;c=k[o>>2]|0;p=a+8|0;d=k[p>>2]|0;if(c>>>0>=d>>>0){e=k[a>>2]|0;f=e;g=c-f+1|0;if((g|0)<0){jj(a);f=k[a>>2]|0;d=k[p>>2]|0;e=f}m=e;c=d-m|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?g:c;g=k[o>>2]|0;d=g-m|0;if(!c){l=0;j=0;h=d;c=g}else q=8}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-m|0;q=8}if((q|0)==8){l=c;j=lj(c)|0;h=d;c=g}i[j+h>>0]=n;d=j+(h+1)|0;m=c-m|0;n=j+(h-m)|0;vw(n|0,e|0,m|0)|0;k[a>>2]=n;k[o>>2]=d;k[p>>2]=j+l;if(f){mj(f);d=k[o>>2]|0}}else{i[c>>0]=n;d=(k[o>>2]|0)+1|0;k[o>>2]=d}m=b&255;c=k[p>>2]|0;if(d>>>0>>0){i[d>>0]=m;k[o>>2]=(k[o>>2]|0)+1;return}e=k[a>>2]|0;f=e;d=d-f+1|0;if((d|0)<0){jj(a);f=k[a>>2]|0;c=k[p>>2]|0;e=f}l=e;c=c-l|0;if(c>>>0<1073741823){c=c<<1;c=c>>>0>>0?d:c;g=k[o>>2]|0;d=g-l|0;if(!c){j=0;h=0;c=g}else q=18}else{d=k[o>>2]|0;c=2147483647;g=d;d=d-l|0;q=18}if((q|0)==18){j=c;h=lj(c)|0;c=g}i[h+d>>0]=m;b=c-l|0;q=h+(d-b)|0;vw(q|0,e|0,b|0)|0;k[a>>2]=q;k[o>>2]=h+(d+1);k[p>>2]=h+j;if(!f)return;mj(f);return}function Ji(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=k[a>>2]|0;q=k[b>>2]|0;p=q;j=e;n=c;l=d-n|0;if((l|0)<=0){r=q;return r|0}o=a+8|0;b=k[o>>2]|0;r=a+4|0;m=k[r>>2]|0;f=m;if((l|0)<=(b-f|0)){h=f-p|0;if((l|0)>(h|0)){g=c+h|0;if((g|0)==(d|0))b=m;else{f=g;b=m;do{i[b>>0]=i[f>>0]|0;b=(k[r>>2]|0)+1|0;k[r>>2]=b;f=f+1|0}while((f|0)!=(d|0))}if((h|0)>0)h=b;else{r=q;return r|0}}else{h=m;g=d}e=h-(e+(l-j+p))|0;b=q+e|0;if(b>>>0>>0){f=h;do{i[f>>0]=i[b>>0]|0;b=b+1|0;f=(k[r>>2]|0)+1|0;k[r>>2]=f}while((b|0)!=(m|0))}xw(h+(0-e)|0,q|0,e|0)|0;xw(q|0,c|0,g-n|0)|0;r=q;return r|0}f=f-j+l|0;if((f|0)<0){jj(a);b=k[o>>2]|0;e=k[a>>2]|0}g=e;b=b-g|0;if(b>>>0<1073741823){b=b<<1;b=b>>>0>>0?f:b;f=p-g|0;if(!b){g=0;l=0}else h=15}else{b=2147483647;f=p-g|0;h=15}if((h|0)==15){g=b;l=lj(b)|0}j=l+f|0;b=j;h=l+g|0;if((c|0)!=(d|0)){e=c;g=j;do{i[g>>0]=i[e>>0]|0;g=b+1|0;b=g;e=e+1|0}while((e|0)!=(d|0));e=k[a>>2]|0}c=p-e|0;d=l+(f-c)|0;vw(d|0,e|0,c|0)|0;p=(k[r>>2]|0)-p|0;c=b;vw(c|0,q|0,p|0)|0;b=k[a>>2]|0;k[a>>2]=d;k[r>>2]=c+p;k[o>>2]=h;if(!b){r=j;return r|0}mj(b);r=j;return r|0}function Ki(a){a=a|0;var b=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b)return;a=a+12|0;if((k[a>>2]|0)!=(b|0))k[a>>2]=b;mj(b);return}function Li(a){a=a|0;var b=0,c=0;k[a>>2]=36800;b=k[a+8>>2]|0;if(!b){mj(a);return}c=a+12|0;if((k[c>>2]|0)!=(b|0))k[c>>2]=b;mj(b);mj(a);return}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Ni(b,-1);Ni(b,i[a+4>>0]|0);e=a+12|0;d=a+8|0;a=(k[e>>2]|0)-(k[d>>2]|0)+2|0;Ni(b,(a&65535)>>>8&255);Ni(b,a&255);a=k[d>>2]|0;if((k[e>>2]|0)==(a|0))return;else c=0;do{Ni(b,i[a+c>>0]|0);c=c+1|0;a=k[d>>2]|0}while(c>>>0<((k[e>>2]|0)-a|0)>>>0);return}function Ni(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=k[a+4>>2]|0;if(e){c=e+24|0;d=k[c>>2]|0;if((d|0)==(k[e+28>>2]|0)){Vb[k[(k[e>>2]|0)+52>>2]&63](e,b&255)|0;return}else{k[c>>2]=d+1;i[d>>0]=b;return}}c=a+16|0;d=k[c>>2]|0;if(d>>>0<(k[a+12>>2]|0)>>>0){k[c>>2]=d+1;i[(k[a+8>>2]|0)+d>>0]=b;return}c=Va(16)|0;x=0;d=Da(1)|0;b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}x=0;Fa(7,c|0,4,d|0);b=x;x=0;if(b&1){b=Wa()|0;Ua(c|0);fb(b|0)}else ub(c|0,824,96)}function Oi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;e=(b|0)<4095?(b+128|0)/256|0:16;f=(c*3|0)+2+e|0;d=c+1|0;f=(f|0)<(d|0)|(f|0)>(b|0)?d:f;k[a+4>>2]=f;d=(e<<2|3)+(c*5|0)|0;d=(d|0)>(b|0)|(d|0)<(f|0)?f:d;k[a+8>>2]=d;c=(c*7|0)+4+(e*17|0)|0;k[a+12>>2]=(c|0)>(b|0)|(c|0)<(d|0)?d:c;k[a>>2]=b;k[a+16>>2]=64;return}function Pi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+128|0;h=l+100|0;d=l+16|0;c=l+112|0;j=l+4|0;m=l;e=d;f=a+20|0;g=e+84|0;do{k[e>>2]=k[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));k[d+16>>2]=k[a+4>>2];f=zc(c,d,a+56|0)|0;c=k[(k[f>>2]|0)+16>>2]|0;a=a+8|0;x=0;k[h>>2]=k[a>>2];k[h+4>>2]=k[a+4>>2];k[h+8>>2]=k[a+8>>2];c=Aa(c|0,f|0,h|0)|0;a=x;x=0;do if(a&1)c=Wa()|0;else{e=b+4|0;k[j>>2]=k[e>>2];k[j+4>>2]=k[e+4>>2];k[j+8>>2]=k[e+8>>2];e=b+16|0;a=k[e>>2]|0;h=j+8|0;k[h>>2]=(k[h>>2]|0)-a;h=j+4|0;k[h>>2]=(k[h>>2]|0)+a;h=k[(k[f>>2]|0)+12>>2]|0;k[m>>2]=c;x=0;c=Ea(h|0,f|0,m|0,j|0,((i[b>>0]|0)==0?0:(k[b+8>>2]|0)+a|0)|0)|0;j=x;x=0;if(j&1){c=Wa()|0;d=k[m>>2]|0;k[m>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}d=k[m>>2]|0;k[m>>2]=0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!(k[b+4>>2]|0))k[e>>2]=(k[e>>2]|0)+c;if(!f){r=l;return}Lb[k[(k[f>>2]|0)+4>>2]&255](f);r=l;return}while(0);if(!f)fb(c|0);Lb[k[(k[f>>2]|0)+4>>2]&255](f);fb(c|0)}function Qi(a,b){a=a|0;b=b|0;k[a>>2]=k[b>>2];k[a+4>>2]=k[b+4>>2];k[a+8>>2]=k[b+8>>2];i[a+12>>0]=0;b=a+16|0;a=b+100|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0;u=r;r=r+32|0;t=u+4|0;o=u+16|0;v=u;Si(a);p=a+16|0;e=k[a+24>>2]|0;a:do if((e+-2|0)>>>0<=14){q=a+40|0;c=k[q>>2]|0;if(c>>>0>2)c=5;else{s=a+32|0;f=k[s>>2]|0;switch(f|0){case 0:{c=1;break a}case 4:{if((c|0)==2){c=2;break a}break}case 3:break;default:if(c){c=2;break a}}n=a+100|0;c=a+108|0;d=k[c>>2]|0;if((d|0)<1){d=k[p>>2]|0;k[c>>2]=d;c=k[a+20>>2]|0;k[a+112>>2]=c}else c=k[a+112>>2]|0;j=Dw(c|0,((c|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;h=(e+7|0)/8|0;h=Dw(j|0,M|0,h|0,((h|0)<0)<<31>>31|0)|0;j=b+4|0;c=k[j>>2]|0;g=b+8|0;if((c|0)!=0?(l=k[g>>2]|0,m=Dw(f|0,((f|0)<0)<<31>>31|0,h|0,M|0)|0,e=M,0<(e|0)|0==(e|0)&l>>>0>>0):0){c=Va(16)|0;x=0;d=Da(1)|0;v=x;x=0;if(!(v&1)?(x=0,Fa(7,c|0,3,d|0),v=x,x=0,!(v&1)):0)ub(c|0,824,96);v=Wa()|0;Ua(c|0);fb(v|0)}l=a+52|0;m=a+12|0;if((f|0)>0)f=0;else{r=u;return}while(1){Ti(a,(f|0)==0);d=xc(o,p,l)|0;e=k[(k[d>>2]|0)+8>>2]|0;x=0;k[t>>2]=k[b>>2];k[t+4>>2]=k[b+4>>2];k[t+8>>2]=k[b+8>>2];e=Aa(e|0,d|0,t|0)|0;w=x;x=0;if(w&1){e=32;break}w=k[(k[d>>2]|0)+16>>2]|0;k[v>>2]=e;x=0;oa(w|0,d|0,v|0,n|0,a|0,(i[m>>0]|0)!=0|0);w=x;x=0;if(w&1){e=30;break}e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e);if(!c)c=0;else{c=c+h|0;k[j>>2]=c;k[g>>2]=(k[g>>2]|0)-h}e=(k[q>>2]|0)==0;f=(e&1)+f|0;if(d)Lb[k[(k[d>>2]|0)+4>>2]&255](d);if(!e){e=34;break}if((f|0)>=(k[s>>2]|0)){e=34;break}}if((e|0)==30){c=Wa()|0;e=k[v>>2]|0;k[v>>2]=0;if(e)Lb[k[(k[e>>2]|0)+4>>2]&255](e)}else if((e|0)==32){c=Wa()|0;if(!d){w=c;fb(w|0)}}else if((e|0)==34){r=u;return}Lb[k[(k[d>>2]|0)+4>>2]&255](d);w=c;fb(w|0)}}else c=2;while(0);d=Va(16)|0;x=0;e=Da(1)|0;w=x;x=0;if(!(w&1)?(x=0,Fa(7,d|0,c|0,e|0),w=x,x=0,!(w&1)):0)ub(d|0,824,96);w=Wa()|0;Ua(d|0);fb(w|0)}function Si(a){a=a|0;var b=0,c=0,d=0,e=0;if((Wi(a)|0)<<24>>24!=-40){b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}b=Wi(a)|0;if(b<<24>>24==-38)return;while(1){d=((Vi(a)|0)&255)<<8;d=d|(Vi(a)|0)&255;b=Xi(a,b)|0;c=-2-b+d|0;if((c|0)<0)break;if((c|0)>0){b=d+-2-b|0;c=0;do{Vi(a)|0;c=c+1|0}while((c|0)!=(b|0))}b=Wi(a)|0;if(b<<24>>24==-38){e=8;break}}if((e|0)==8)return;b=Va(16)|0;x=0;c=Da(1)|0;e=x;x=0;if(!(e&1)?(x=0,Fa(7,b|0,5,c|0),e=x,x=0,!(e&1)):0)ub(b|0,824,96);e=Wa()|0;Ua(b|0);fb(e|0)}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;if(!b){if((Vi(a)|0)<<24>>24!=-1){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,12,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24!=-38){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}}Vi(a)|0;Vi(a)|0;c=Vi(a)|0;d=c&255;do if(c<<24>>24==1){Vi(a)|0;c=0;e=20}else{if((d|0)==(k[a+32>>2]|0)){b=Vi(a)|0;if(!(c<<24>>24))break;else{c=0;e=20;break}}b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,2,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}while(0);if((e|0)==20)while(1){Vi(a)|0;c=c+1|0;b=Vi(a)|0;if((c|0)==(d|0))break;else e=20}k[a+36>>2]=b&255;e=Vi(a)|0;c=a+40|0;k[c>>2]=e&255;if((e&255)>=3){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}if((Vi(a)|0)<<24>>24){b=Va(16)|0;x=0;c=Da(1)|0;a=x;x=0;if(!(a&1)?(x=0,Fa(7,b|0,5,c|0),a=x,x=0,!(a&1)):0)ub(b|0,824,96);a=Wa()|0;Ua(b|0);fb(a|0)}d=a+28|0;if(k[d>>2]|0)return;b=k[a+108>>2]|0;if(!b)b=k[a+16>>2]|0;if(!(k[c>>2]|0))c=1;else c=k[a+32>>2]|0;e=ia(c,b)|0;a=ia(e,((k[a+24>>2]|0)+7|0)/8|0)|0;k[d>>2]=a;return}function Ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((c|0)<=0)return;n=b+4|0;o=b+8|0;q=0;do{p=Vi(a)|0;d=k[n>>2]|0;e=k[o>>2]|0;if(d>>>0>=e>>>0){f=k[b>>2]|0;g=f;h=d-g+1|0;if((h|0)<0){jj(b);g=k[b>>2]|0;e=k[o>>2]|0;f=g}m=f;d=e-m|0;if(d>>>0<1073741823){d=d<<1;d=d>>>0>>0?h:d;h=k[n>>2]|0;e=h-m|0;if(!d){l=0;j=0;d=h}else r=10}else{e=k[n>>2]|0;d=2147483647;h=e;e=e-m|0;r=10}if((r|0)==10){r=0;l=d;j=lj(d)|0;d=h}i[j+e>>0]=p;m=d-m|0;p=j+(e-m)|0;vw(p|0,f|0,m|0)|0;k[b>>2]=p;k[n>>2]=j+(e+1);k[o>>2]=j+l;if(g)mj(g)}else{i[d>>0]=p;k[n>>2]=(k[n>>2]|0)+1}q=q+1|0}while((q|0)!=(c|0));return}function Vi(a){a=a|0;var b=0,c=0,d=0,e=0;c=k[a>>2]|0;if(c){a=c+12|0;b=k[a>>2]|0;if((b|0)==(k[c+16>>2]|0))a=Ob[k[(k[c>>2]|0)+40>>2]&127](c)|0;else{k[a>>2]=b+1;a=l[b>>0]|0}e=a&255;return e|0}d=a+8|0;e=k[d>>2]|0;if(e){a=a+4|0;b=k[a>>2]|0;c=i[b>>0]|0;if(!b){e=c;return e|0}k[a>>2]=b+1;k[d>>2]=e+-1;e=c;return e|0}a=Va(16)|0;x=0;b=Da(1)|0;e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}x=0;Fa(7,a|0,4,b|0);e=x;x=0;if(e&1){e=Wa()|0;Ua(a|0);fb(e|0)}else ub(a|0,824,96);return 0}function Wi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=r;r=r+176|0;b=c+152|0;i=c+16|0;g=c;h=Vi(a)|0;d=h&255;if(h<<24>>24==-1){do b=Vi(a)|0;while(b<<24>>24==-1);r=c;return b|0}h=i+56|0;f=i+4|0;k[i>>2]=36160;k[h>>2]=36180;x=0;ra(62,i+56|0,f|0);e=x;x=0;if(e&1){i=Wa()|0;qn(h);fb(i|0)}k[i+128>>2]=0;k[i+132>>2]=-1;k[i>>2]=36200;k[i+56>>2]=36220;x=0;qa(180,f|0);e=x;x=0;do if(e&1)b=Wa()|0;else{k[f>>2]=36236;e=i+36|0;k[e>>2]=0;k[e+4>>2]=0;k[e+8>>2]=0;k[e+12>>2]=0;k[i+52>>2]=16;k[b>>2]=0;k[b+4>>2]=0;k[b+8>>2]=0;x=0;ra(63,f|0,b|0);c=x;x=0;if(c&1){i=Wa()|0;Sm(b);Sm(e);xn(f);b=i;break}Sm(b);k[i+((k[(k[i>>2]|0)+-12>>2]|0)+76)>>2]=48;x=0;b=va(28,i|0,50907,62)|0;c=x;x=0;if(!(c&1)?(c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]&-75|8,c=b+((k[(k[b>>2]|0)+-12>>2]|0)+4)|0,k[c>>2]=k[c>>2]|16384,k[b+((k[(k[b>>2]|0)+-12>>2]|0)+12)>>2]=2,x=0,Aa(38,b|0,d|0)|0,d=x,x=0,!(d&1)):0){c=Va(16)|0;x=0;ra(64,g|0,f|0);d=x;x=0;if(!(d&1)){x=0;b=Da(1)|0;d=x;x=0;if(!(d&1)?(x=0,Ja(36,c|0,12,b|0,g|0),d=x,x=0,!(d&1)):0){x=0;Fa(6,c|0,824,96);x=0;a=0}else a=1;b=Wa()|0;Sm(g);if(!a){g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}}else b=Wa()|0;Ua(c|0);g=b;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}g=Wa()|0;k[i>>2]=36200;k[h>>2]=36220;k[f>>2]=36236;Sm(e);xn(f);qn(h);fb(g|0)}while(0);i=b;qn(h);fb(i|0);return 0}function Xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;c=r;r=r+320|0;h=c+300|0;l=c+152|0;i=c+288|0;m=c+16|0;j=c;switch(b<<24>>24){case -9:{n=(Vi(a)|0)&255;k[a+24>>2]=n;n=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;m=((Vi(a)|0)&255)<<8|(Vi(a)|0)&255;k[a+16>>2]=m;k[a+20>>2]=n;n=(Vi(a)|0)&255;k[a+32>>2]=n;n=6;r=c;return n|0}case -8:{n=Yi(a)|0;r=c;return n|0}case -24:{n=Zi(a)|0;r=c;return n|0}case -53:case -54:case -55:case -57:case -58:case -59:case -61:case -62:case -63:case -64:{g=l+56|0;e=l+4|0;k[l>>2]=36160;k[g>>2]=36180;x=0;ra(62,l+56|0,e|0);m=x;x=0;if(m&1){n=Wa()|0;qn(g);fb(n|0)}k[l+128>>2]=0;k[l+132>>2]=-1;k[l>>2]=36200;k[l+56>>2]=36220;x=0;qa(180,e|0);m=x;x=0;do if(m&1)a=Wa()|0;else{k[e>>2]=36236;f=l+36|0;k[f>>2]=0;k[f+4>>2]=0;k[f+8>>2]=0;k[f+12>>2]=0;k[l+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,e|0,h|0);m=x;x=0;if(m&1){a=Wa()|0;Sm(h);Sm(f);xn(e);break}Sm(h);x=0;a=va(28,l|0,50970,26)|0;m=x;x=0;do if((!(m&1)?(x=0,d=Aa(38,a|0,b&255|0)|0,m=x,x=0,!(m&1)):0)?(x=0,va(28,d|0,50997,18)|0,m=x,x=0,!(m&1)):0){d=Va(16)|0;x=0;ra(64,i|0,e|0);m=x;x=0;if(!(m&1)){x=0;a=Da(1)|0;m=x;x=0;if(!(m&1)?(x=0,Ja(36,d|0,10,a|0,i|0),m=x,x=0,!(m&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(i);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=20;while(0);if((n|0)==20)a=Wa()|0;k[l>>2]=36200;k[g>>2]=36220;k[e>>2]=36236;Sm(f);xn(e);qn(g);n=a;fb(n|0)}while(0);n=a;qn(g);fb(n|0)}case -25:case -32:case -2:{n=0;r=c;return n|0}default:{i=m+56|0;f=m+4|0;k[m>>2]=36160;k[i>>2]=36180;x=0;ra(62,m+56|0,f|0);l=x;x=0;if(l&1){n=Wa()|0;qn(i);fb(n|0)}k[m+128>>2]=0;k[m+132>>2]=-1;k[m>>2]=36200;k[m+56>>2]=36220;x=0;qa(180,f|0);l=x;x=0;do if(l&1)a=Wa()|0;else{k[f>>2]=36236;g=m+36|0;k[g>>2]=0;k[g+4>>2]=0;k[g+8>>2]=0;k[g+12>>2]=0;k[m+52>>2]=16;k[h>>2]=0;k[h+4>>2]=0;k[h+8>>2]=0;x=0;ra(63,f|0,h|0);l=x;x=0;if(l&1){a=Wa()|0;Sm(h);Sm(g);xn(f);break}Sm(h);x=0;a=va(28,m|0,51016,20)|0;l=x;x=0;do if((!(l&1)?(x=0,e=Aa(38,a|0,b&255|0)|0,l=x,x=0,!(l&1)):0)?(x=0,va(28,e|0,51037,13)|0,l=x,x=0,!(l&1)):0){d=Va(16)|0;x=0;ra(64,j|0,f|0);l=x;x=0;if(!(l&1)){x=0;a=Da(1)|0;l=x;x=0;if(!(l&1)?(x=0,Ja(36,d|0,11,a|0,j|0),l=x,x=0,!(l&1)):0){x=0;Fa(6,d|0,824,96);x=0;c=0}else c=1;a=Wa()|0;Sm(j);if(!c)break}else a=Wa()|0;Ua(d|0)}else n=40;while(0);if((n|0)==40)a=Wa()|0;k[m>>2]=36200;k[i>>2]=36220;k[f>>2]=36236;Sm(g);xn(f);qn(i);n=a;fb(n|0)}while(0);n=a;qn(i);fb(n|0)}}return 0}function Yi(a){a=a|0;var b=0;if((Vi(a)|0)<<24>>24!=1){a=1;return a|0}b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+52>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+56>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+60>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+64>>2]=b;b=((Vi(a)|0)&255)<<8;b=b|(Vi(a)|0)&255;k[a+68>>2]=b;a=11;return a|0}function Zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=r;r=r+16|0;e=c;k[e>>2]=0;f=e+4|0;k[f>>2]=0;k[e+8>>2]=0;x=0;Fa(9,a|0,e|0,4);b=x;x=0;a:do if(b&1)d=3;else{b=k[e>>2]|0;b:do if(!(yl(b,51051,4)|0)){x=0;b=ta(69,a|0)|0;g=x;x=0;if(g&1){d=3;break a}b=b&255;switch(b|0){case 3:case 2:case 1:case 0:{k[a+44>>2]=b;a=5;b=k[e>>2]|0;break b}case 5:case 4:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,7,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}default:{b=Va(16)|0;x=0;a=Da(1)|0;g=x;x=0;if(!(g&1)?(x=0,Fa(7,b|0,5,a|0),g=x,x=0,!(g&1)):0){x=0;Fa(6,b|0,824,96);x=0;d=3;break a}a=Wa()|0;Ua(b|0);break a}}}else a=4;while(0);if(!b){r=c;return a|0}if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);r=c;return a|0}while(0);if((d|0)==3)a=Wa()|0;b=k[e>>2]|0;if(!b)fb(a|0);if((k[f>>2]|0)!=(b|0))k[f>>2]=b;mj(b);fb(a|0);return 0}function _i(a){a=a|0;var b=0,c=0,d=0;d=k[(k[a>>2]|0)+-12>>2]|0;k[a+d>>2]=36200;b=a+(d+56)|0;k[b>>2]=36220;c=a+(d+4)|0;k[c>>2]=36236;Sm(a+(d+36)|0);xn(c);qn(b);return}function $i(a){a=a|0;return}function aj(a){a=a|0;mj(a);return}function bj(a){a=a|0;i[a>>0]=0;a=a+4|0;k[a>>2]=0;k[a+4>>2]=0;k[a+8>>2]=0;k[a+12>>2]=0;k[a+16>>2]=0;k[a+20>>2]=0;k[a+24>>2]=0;k[a+28>>2]=0;return}function cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;e=r;r=r+16|0;f=e;b=Gi(b)|0;k[f>>2]=b;c=a+28|0;d=k[c>>2]|0;if(d>>>0<(k[a+32>>2]|0)>>>0){k[d>>2]=b;k[c>>2]=d+4;k[f>>2]=0;r=e;return}x=0;ra(57,a+24|0,f|0);a=x;x=0;if(a&1){b=Wa()|0;c=k[f>>2]|0;k[f>>2]=0;if(!c)fb(b|0);Lb[k[(k[c>>2]|0)+4>>2]&255](c);fb(b|0)}else{b=k[f>>2]|0;k[f>>2]=0;if(!b){r=e;return}Lb[k[(k[b>>2]|0)+4>>2]&255](b);r=e;return}}function dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=a+4|0;k[d>>2]=k[b>>2];k[d+4>>2]=k[b+4>>2];k[d+8>>2]=k[b+8>>2];Ni(a,-1);Ni(a,-40);d=a+28|0;e=a+24|0;b=k[e>>2]|0;if((k[d>>2]|0)==(b|0)){Ni(a,-1);Ni(a,-39);a=a+16|0;a=k[a>>2]|0;return a|0}else c=0;do{f=k[b+(c<<2)>>2]|0;Mb[k[(k[f>>2]|0)+8>>2]&127](f,a);c=c+1|0;b=k[e>>2]|0}while(c>>>0<(k[d>>2]|0)-b>>2>>>0);Ni(a,-1);Ni(a,-39);f=a+16|0;f=k[f>>2]|0;return f|0}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;m=r;r=r+48|0;h=m+32|0;e=m+12|0;i=m+8|0;l=m+4|0;n=m;d=c+36|0;do if(((((k[d>>2]|0)==0?(k[c+40>>2]|0)==0:0)?(k[c+44>>2]|0)==0:0)?(k[c+48>>2]|0)==0:0)?(k[c+52>>2]|0)==0:0){d=k[c+8>>2]|0;if((d|0)<=12){f=a+28|0;g=a+32|0;break}Oi(e,(1<>2]|0);d=Fi(e)|0;k[i>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[i>>2]=0;break}x=0;ra(57,a+24|0,i|0);h=x;x=0;if(!(h&1)){d=k[i>>2]|0;k[i>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[i>>2]|0;k[i>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else j=6;while(0);do if((j|0)==6){d=Fi(d)|0;k[h>>2]=d;f=a+28|0;e=k[f>>2]|0;g=a+32|0;if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[h>>2]=0;break}x=0;ra(57,a+24|0,h|0);j=x;x=0;if(!(j&1)){d=k[h>>2]|0;k[h>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[h>>2]|0;k[h>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}while(0);d=a+20|0;e=(k[d>>2]|0)+1|0;k[d>>2]=e;d=k[c+24>>2]|0;h=(d|0)==0?1:k[c+16>>2]|0;d=Hi(e,h,k[c+20>>2]|0,d)|0;k[l>>2]=d;e=k[f>>2]|0;do if(e>>>0<(k[g>>2]|0)>>>0){k[e>>2]=d;k[f>>2]=e+4;k[l>>2]=0}else{x=0;ra(57,a+24|0,l|0);j=x;x=0;if(!(j&1)){d=k[l>>2]|0;k[l>>2]=0;if(!d)break;Lb[k[(k[d>>2]|0)+4>>2]&255](d);break}c=Wa()|0;d=k[l>>2]|0;k[l>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}while(0);i=lj(104)|0;k[i>>2]=36820;k[i+4>>2]=h;e=i+8|0;k[e>>2]=k[b>>2];k[e+4>>2]=k[b+4>>2];k[e+8>>2]=k[b+8>>2];e=i+20|0;d=e+84|0;do{k[e>>2]=k[c>>2];e=e+4|0;c=c+4|0}while((e|0)<(d|0));k[n>>2]=i;c=k[f>>2]|0;if(c>>>0<(k[g>>2]|0)>>>0){k[c>>2]=i;k[f>>2]=c+4;k[n>>2]=0;r=m;return}x=0;ra(57,a+24|0,n|0);a=x;x=0;if(a&1){c=Wa()|0;d=k[n>>2]|0;k[n>>2]=0;if(!d){n=c;fb(n|0)}Lb[k[(k[d>>2]|0)+4>>2]&255](d);n=c;fb(n|0)}else{c=k[n>>2]|0;k[n>>2]=0;if(!c){r=m;return}Lb[k[(k[c>>2]|0)+4>>2]&255](c);r=m;return}}function fj(a,b,c,d,e,f,g,h,j,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,s=0,t=0,u=0;p=r;r=r+96|0;o=p;n=sc(a,b,o,0)|0;if(n){e=n;r=p;return e|0}i[o+32>>0]=0;s=k[o+8>>2]|0;u=k[o>>2]|0;t=k[o+4>>2]|0;n=ia(t,u)|0;q=k[o+16>>2]|0;n=ia(ia(n,(s|0)<9?1:2)|0,q)|0;k[d>>2]=n;n=Pl(n)|0;k[c>>2]=n;k[e>>2]=u;k[f>>2]=t;k[g>>2]=s;k[h>>2]=k[o+12>>2];k[j>>2]=q;k[l>>2]=k[o+20>>2];k[m>>2]=k[o+24>>2];e=tc(n,k[d>>2]|0,a,b,0,0)|0;r=p;return e|0}function gj(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,l=0,m=0,n=0;m=r;r=r+96|0;j=m+4|0;g=m;l=j;n=l+84|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(n|0));k[j+16>>2]=f;k[j+8>>2]=e;k[j>>2]=c;k[j+4>>2]=d;c=Pl(b)|0;k[h>>2]=c;k[g>>2]=0;c=rc(h,b,g,a,b,j,0)|0;k[i>>2]=k[g>>2];r=m;return c|0}function hj(a,b){a=a|0;b=b|0;var c=0;c=r;r=r+16|0;k[c>>2]=b;b=k[9320]|0;ml(b,a,c)|0;el(10,b)|0;Pa()}function ij(a){a=a|0;Ta(51337,51366,1164,51442)}function jj(a){a=a|0;Ta(51463,51486,303,51442)}function kj(){var a=0,b=0;a=r;r=r+16|0;if(!(mb(37024,4)|0)){b=ib(k[9255]|0)|0;r=a;return b|0}else hj(51562,a);return 0}function lj(a){a=a|0;var b=0;b=(a|0)==0?1:a;a=Pl(b)|0;a:do if(!a){while(1){a=uj()|0;if(!a)break;$b[a&7]();a=Pl(b)|0;if(a)break a}b=Va(4)|0;k[b>>2]=36844;ub(b|0,592,78)}while(0);return a|0}function mj(a){a=a|0;Ql(a);return}function nj(a){a=a|0;mj(a);return}function oj(a){a=a|0;k[a>>2]=36844;return}function pj(a){a=a|0;return}function qj(a){a=a|0;mj(a);return}function rj(a){a=a|0;return 51611}function sj(a){a=a|0;var b=0;b=r;r=r+16|0;x=0;Ga(a|0);a=x;x=0;if(!(a&1)){x=0;ra(85,51626,b|0);x=0}a=Wa(0)|0;cb(a|0)|0;x=0;ra(85,51666,b+8|0);x=0;a=Wa(0)|0;x=0;Ga(3);b=x;x=0;if(b&1){b=Wa(0)|0;oc(b)}else oc(a)}function tj(){var a=0,b=0,c=0;x=0;a=Da(2)|0;c=x;x=0;if(c&1){c=Wa(0)|0;oc(c)}if(((a|0)!=0?(b=k[a>>2]|0,(b|0)!=0):0)?(c=b+48|0,(k[c>>2]&-256|0)==1126902528?(k[c+4>>2]|0)==1129074247:0):0)sj(k[b+12>>2]|0);c=k[9208]|0;k[9208]=c+0;sj(c)}function uj(){var a=0;a=k[9214]|0;k[9214]=a+0;return a|0}function vj(a){a=a|0;return}function wj(a){a=a|0;k[a>>2]=36868;dk(a+4|0);return}function xj(a){a=a|0;wj(a);mj(a);return}function yj(a){a=a|0;return k[a+4>>2]|0}function zj(a){a=a|0;return}function Aj(a){a=a|0;k[a>>2]=36888;return}function Bj(a){a=a|0;return}function Cj(a){a=a|0;mj(a);return}function Dj(a){a=a|0;return 51716}function Ej(a){a=a|0;return}function Fj(a){a=a|0;return}function Gj(a){a=a|0;return}function Hj(a){a=a|0;mj(a);return}function Ij(a){a=a|0;mj(a);return}function Jj(a){a=a|0;mj(a);return}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+64|0;f=g;if((a|0)!=(b|0))if((b|0)!=0?(e=Qj(b,656,672,0)|0,(e|0)!=0):0){b=f;d=b+56|0;do{k[b>>2]=0;b=b+4|0}while((b|0)<(d|0));k[f>>2]=e;k[f+8>>2]=a;k[f+12>>2]=-1;k[f+48>>2]=1;cc[k[(k[e>>2]|0)+28>>2]&63](e,f,k[c>>2]|0,1);if((k[f+24>>2]|0)==1){k[c>>2]=k[f+16>>2];b=1}else b=0}else b=0;else b=1;r=g;return b|0}function Lj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=b+16|0;e=k[a>>2]|0;do if(e){if((e|0)!=(c|0)){d=b+36|0;k[d>>2]=(k[d>>2]|0)+1;k[b+24>>2]=2;i[b+54>>0]=1;break}a=b+24|0;if((k[a>>2]|0)==2)k[a>>2]=d}else{k[a>>2]=c;k[b+24>>2]=d;k[b+36>>2]=1}while(0);return}function Mj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);return}function Nj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((a|0)==(k[b+8>>2]|0))Lj(0,b,c,d);else{a=k[a+8>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c,d)}return}function Oj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=k[a+4>>2]|0;e=f>>8;if(f&1)e=k[(k[c>>2]|0)+e>>2]|0;a=k[a>>2]|0;cc[k[(k[a>>2]|0)+28>>2]&63](a,b,c+e|0,(f&2|0)!=0?d:2);return}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if((a|0)!=(k[b+8>>2]|0)){f=k[a+12>>2]|0;e=a+16+(f<<3)|0;Oj(a+16|0,b,c,d);if((f|0)>1){f=b+54|0;a=a+24|0;do{Oj(a,b,c,d);if(i[f>>0]|0)break a;a=a+8|0}while(a>>>0>>0)}}else Lj(0,b,c,d);while(0);return}function Qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,l=0,m=0,n=0,o=0,p=0,q=0;q=r;r=r+64|0;p=q;o=k[a>>2]|0;n=a+(k[o+-8>>2]|0)|0;o=k[o+-4>>2]|0;k[p>>2]=c;k[p+4>>2]=a;k[p+8>>2]=b;k[p+12>>2]=d;d=p+16|0;a=p+20|0;b=p+24|0;e=p+28|0;f=p+32|0;g=p+40|0;h=(o|0)==(c|0);l=d;m=l+36|0;do{k[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j[d+36>>1]=0;i[d+38>>0]=0;a:do if(h){k[p+48>>2]=1;Sb[k[(k[c>>2]|0)+20>>2]&15](c,p,n,n,1,0);d=(k[b>>2]|0)==1?n:0}else{Jb[k[(k[o>>2]|0)+24>>2]&15](o,p,n,1,0);switch(k[p+36>>2]|0){case 0:{d=(k[g>>2]|0)==1&(k[e>>2]|0)==1&(k[f>>2]|0)==1?k[a>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((k[b>>2]|0)!=1?!((k[g>>2]|0)==0&(k[e>>2]|0)==1&(k[f>>2]|0)==1):0){d=0;break}d=k[d>>2]|0}while(0);r=q;return d|0}function Rj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;i[b+53>>0]=1;do if((k[b+4>>2]|0)==(d|0)){i[b+52>>0]=1;d=b+16|0;a=k[d>>2]|0;if(!a){k[d>>2]=c;k[b+24>>2]=e;k[b+36>>2]=1;if(!((e|0)==1?(k[b+48>>2]|0)==1:0))break;i[b+54>>0]=1;break}if((a|0)!=(c|0)){e=b+36|0;k[e>>2]=(k[e>>2]|0)+1;i[b+54>>0]=1;break}a=b+24|0;d=k[a>>2]|0;if((d|0)==2){k[a>>2]=e;d=e}if((d|0)==1?(k[b+48>>2]|0)==1:0)i[b+54>>0]=1}while(0);return}function Sj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){q=k[a+12>>2]|0;h=a+16+(q<<3)|0;Uj(a+16|0,b,c,d,e);f=a+24|0;if((q|0)<=1)break;g=k[a+8>>2]|0;if((g&2|0)==0?(j=b+36|0,(k[j>>2]|0)!=1):0){if(!(g&1)){g=b+54|0;while(1){if(i[g>>0]|0)break a;if((k[j>>2]|0)==1)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+24|0;a=b+54|0;while(1){if(i[a>>0]|0)break a;if((k[j>>2]|0)==1?(k[g>>2]|0)==1:0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}g=b+54|0;while(1){if(i[g>>0]|0)break a;Uj(f,b,c,d,e);f=f+8|0;if(f>>>0>=h>>>0)break a}}if((k[b+16>>2]|0)!=(c|0)?(p=b+20|0,(k[p>>2]|0)!=(c|0)):0){k[b+32>>2]=d;m=b+44|0;if((k[m>>2]|0)==4)break;g=k[a+12>>2]|0;h=a+16+(g<<3)|0;j=b+52|0;d=b+53|0;n=b+54|0;l=a+8|0;o=b+24|0;b:do if((g|0)>0){g=0;f=0;a=a+16|0;while(1){i[j>>0]=0;i[d>>0]=0;Tj(a,b,c,c,1,e);if(i[n>>0]|0){q=20;break b}do if(i[d>>0]|0){if(!(i[j>>0]|0))if(!(k[l>>2]&1)){f=1;q=20;break b}else{f=1;break}if((k[o>>2]|0)==1)break b;if(!(k[l>>2]&2))break b;else{g=1;f=1}}while(0);a=a+8|0;if(a>>>0>=h>>>0){q=20;break}}}else{g=0;f=0;q=20}while(0);do if((q|0)==20){if((!g?(k[p>>2]=c,c=b+40|0,k[c>>2]=(k[c>>2]|0)+1,(k[b+36>>2]|0)==1):0)?(k[o>>2]|0)==2:0){i[n>>0]=1;if(f)break}else q=24;if((q|0)==24?f:0)break;k[m>>2]=4;break a}while(0);k[m>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function Tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=k[a+4>>2]|0;g=h>>8;if(h&1)g=k[(k[d>>2]|0)+g>>2]|0;a=k[a>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d+g|0,(h&2|0)!=0?e:2,f);return}function Uj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=k[a+4>>2]|0;f=g>>8;if(g&1)f=k[(k[c>>2]|0)+f>>2]|0;a=k[a>>2]|0;Jb[k[(k[a>>2]|0)+24>>2]&15](a,b,c+f|0,(g&2|0)!=0?d:2,e);return}function Vj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;a:do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(f=b+28|0,(k[f>>2]|0)!=1):0)k[f>>2]=d}else{if((a|0)!=(k[b>>2]|0)){h=k[a+8>>2]|0;Jb[k[(k[h>>2]|0)+24>>2]&15](h,b,c,d,e);break}if((k[b+16>>2]|0)!=(c|0)?(g=b+20|0,(k[g>>2]|0)!=(c|0)):0){k[b+32>>2]=d;d=b+44|0;if((k[d>>2]|0)==4)break;f=b+52|0;i[f>>0]=0;j=b+53|0;i[j>>0]=0;a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,c,1,e);if(i[j>>0]|0){if(!(i[f>>0]|0)){f=1;h=13}}else{f=0;h=13}do if((h|0)==13){k[g>>2]=c;j=b+40|0;k[j>>2]=(k[j>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0){i[b+54>>0]=1;if(f)break}else h=16;if((h|0)==16?f:0)break;k[d>>2]=4;break a}while(0);k[d>>2]=3;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function Wj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;do if((a|0)==(k[b+8>>2]|0)){if((k[b+4>>2]|0)==(c|0)?(g=b+28|0,(k[g>>2]|0)!=1):0)k[g>>2]=d}else if((a|0)==(k[b>>2]|0)){if((k[b+16>>2]|0)!=(c|0)?(f=b+20|0,(k[f>>2]|0)!=(c|0)):0){k[b+32>>2]=d;k[f>>2]=c;e=b+40|0;k[e>>2]=(k[e>>2]|0)+1;if((k[b+36>>2]|0)==1?(k[b+24>>2]|0)==2:0)i[b+54>>0]=1;k[b+44>>2]=4;break}if((d|0)==1)k[b+32>>2]=1}while(0);return}function Xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{m=b+52|0;n=i[m>>0]|0;o=b+53|0;p=i[o>>0]|0;l=k[a+12>>2]|0;g=a+16+(l<<3)|0;i[m>>0]=0;i[o>>0]=0;Tj(a+16|0,b,c,d,e,f);a:do if((l|0)>1){h=b+24|0;j=a+8|0;l=b+54|0;a=a+24|0;do{if(i[l>>0]|0)break a;if(!(i[m>>0]|0)){if((i[o>>0]|0)!=0?(k[j>>2]&1|0)==0:0)break a}else{if((k[h>>2]|0)==1)break a;if(!(k[j>>2]&2))break a}i[m>>0]=0;i[o>>0]=0;Tj(a,b,c,d,e,f);a=a+8|0}while(a>>>0>>0)}while(0);i[m>>0]=n;i[o>>0]=p}return}function Yj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);else{a=k[a+8>>2]|0;Sb[k[(k[a>>2]|0)+20>>2]&15](a,b,c,d,e,f)}return}function Zj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((a|0)==(k[b+8>>2]|0))Rj(0,b,c,d,e);return}function _j(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+16|0;d=e;k[d>>2]=k[c>>2];a=Qb[k[(k[a>>2]|0)+16>>2]&63](a,b,d)|0;if(a)k[c>>2]=k[d>>2];r=e;return a&1|0}function $j(a){a=a|0;if(!a)a=0;else a=(Qj(a,656,704,0)|0)!=0;return a&1|0}function ak(){var a=0;a=Va(4)|0;oj(a);ub(a|0,592,78)}function bk(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=r;r=r+48|0;g=e+32|0;c=e+24|0;h=e+16|0;f=e;e=e+36|0;a=kj()|0;if((a|0)!=0?(d=k[a>>2]|0,(d|0)!=0):0){a=d+48|0;b=k[a>>2]|0;a=k[a+4>>2]|0;if(!((b&-256|0)==1126902528&(a|0)==1129074247)){k[c>>2]=k[9257];hj(51919,c)}if((b|0)==1126902529&(a|0)==1129074247)a=k[d+44>>2]|0;else a=d+80|0;k[e>>2]=a;d=k[d>>2]|0;a=k[d+4>>2]|0;if(Qb[k[(k[608>>2]|0)+16>>2]&63](608,d,e)|0){h=k[e>>2]|0;e=k[9257]|0;h=Ob[k[(k[h>>2]|0)+8>>2]&127](h)|0;k[f>>2]=e;k[f+4>>2]=a;k[f+8>>2]=h;hj(51833,f)}else{k[h>>2]=k[9257];k[h+4>>2]=a;hj(51878,h)}}hj(51957,g)}function ck(){var a=0;a=r;r=r+16|0;if(!(Oa(37020,184)|0)){r=a;return}else hj(51730,a)}function dk(a){a=a|0;var b=0,c=0;c=(k[a>>2]|0)+-4|0;b=k[c>>2]|0;k[c>>2]=b+-1;if((b+-1|0)<0)mj((k[a>>2]|0)+-12|0);return}function ek(a){a=a|0;var b=0;b=r;r=r+16|0;Ql(a);if(!(sb(k[9255]|0,0)|0)){r=b;return}else hj(51780,b)}function fk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=rl(a,b,c)|0;return a|0}function gk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=sl(a,b,c)|0;return a|0}function hk(){return 37296}function ik(){return 37300}function jk(){return 37304}function kk(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function lk(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function mk(){var a=0;if(!(k[9258]|0))a=37308;else{a=(kb()|0)+60|0;a=k[a>>2]|0}return a|0}function nk(a){a=a|0;var b=0,c=0;b=0;while(1){if((l[51978+b>>0]|0)==(a|0)){c=2;break}b=b+1|0;if((b|0)==87){b=87;a=52066;c=5;break}}if((c|0)==2)if(!b)a=52066;else{a=52066;c=5}if((c|0)==5)while(1){c=a;while(1){a=c+1|0;if(!(i[c>>0]|0))break;else c=a}b=b+-1|0;if(!b)break;else c=5}return a|0}function ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0.0,g=0,h=0,j=0.0,m=0,n=0,o=0,p=0.0,q=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0;K=r;r=r+512|0;G=K;switch(b|0){case 0:{J=24;I=-149;y=4;break}case 1:{J=53;I=-1074;y=4;break}case 2:{J=53;I=-1074;y=4;break}default:d=0.0}a:do if((y|0)==4){D=a+4|0;A=a+100|0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0}while((kk(b)|0)!=0);b:do switch(b|0){case 43:case 45:{e=1-(((b|0)==45&1)<<1)|0;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;H=e;break b}else{b=rk(a)|0;H=e;break b}}default:H=1}while(0);e=b;b=0;do{if((e|32|0)!=(i[53870+b>>0]|0))break;do if(b>>>0<7){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}while(0);b=b+1|0}while(b>>>0<8);c:do switch(b|0){case 8:break;case 3:{y=23;break}default:{g=(c|0)!=0;if(g&b>>>0>3)if((b|0)==8)break c;else{y=23;break c}d:do if(!b){b=0;do{if((e|32|0)!=(i[56747+b>>0]|0))break d;do if(b>>>0<2){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0;break}else{e=rk(a)|0;break}}while(0);b=b+1|0}while(b>>>0<3)}while(0);switch(b|0){case 3:{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==40)b=1;else{if(!(k[A>>2]|0)){d=B;break a}k[D>>2]=(k[D>>2]|0)+-1;d=B;break a}while(1){e=k[D>>2]|0;if(e>>>0<(k[A>>2]|0)>>>0){k[D>>2]=e+1;e=l[e>>0]|0}else e=rk(a)|0;if(!((e+-48|0)>>>0<10|(e+-65|0)>>>0<26)?!((e|0)==95|(e+-97|0)>>>0<26):0)break;b=b+1|0}if((e|0)==41){d=B;break a}e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!g){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}if(!b){d=B;break a}while(1){b=b+-1|0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if(!b){d=B;break a}}}case 0:{do if((e|0)==48){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|32|0)!=120){if(!(k[A>>2]|0)){b=48;break}k[D>>2]=(k[D>>2]|0)+-1;b=48;break}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=0}else{b=rk(a)|0;g=0}e:while(1){switch(b|0){case 46:{y=74;break e}case 48:break;default:{w=0;h=0;v=0;e=0;m=g;n=0;u=0;j=1.0;g=0;d=0.0;break e}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==74){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){g=0;e=0;do{b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;g=tw(g|0,e|0,-1,-1)|0;e=M}while((b|0)==48);w=0;h=0;v=g;m=1;n=1;u=0;j=1.0;g=0;d=0.0}else{w=0;h=0;v=0;e=0;m=g;n=1;u=0;j=1.0;g=0;d=0.0}}while(1){s=b+-48|0;o=b|32;if(s>>>0>=10){t=(b|0)==46;if(!(t|(o+-97|0)>>>0<6)){o=v;s=w;break}if(t)if(!n){t=h;e=w;s=w;n=1;o=u;f=j}else{o=v;s=w;b=46;break}else y=86}else y=86;if((y|0)==86){y=0;b=(b|0)>57?o+-87|0:s;do if(!((w|0)<0|(w|0)==0&h>>>0<8)){if((w|0)<0|(w|0)==0&h>>>0<14){q=j*.0625;o=u;f=q;d=d+q*+(b|0);break}if((u|0)!=0|(b|0)==0){o=u;f=j}else{o=1;f=j;d=d+j*.5}}else{o=u;f=j;g=b+(g<<4)|0}while(0);h=tw(h|0,w|0,1,0)|0;t=v;s=M;m=1}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;w=s;v=t;b=l[b>>0]|0;u=o;j=f;continue}else{w=s;v=t;b=rk(a)|0;u=o;j=f;continue}}if(!m){b=(k[A>>2]|0)==0;if(!b)k[D>>2]=(k[D>>2]|0)+-1;if(c){if(!b?(x=k[D>>2]|0,k[D>>2]=x+-1,(n|0)!=0):0)k[D>>2]=x+-2}else qk(a,0);d=+(H|0)*0.0;break a}m=(n|0)==0;n=m?h:o;m=m?s:e;if((s|0)<0|(s|0)==0&h>>>0<8){e=s;do{g=g<<4;h=tw(h|0,e|0,1,0)|0;e=M}while((e|0)<0|(e|0)==0&h>>>0<8)}if((b|32|0)==112){e=Dl(a,c)|0;b=M;if((e|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break a}if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}}}else if(!(k[A>>2]|0)){e=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;e=0;b=0}G=ww(n|0,m|0,2)|0;G=tw(G|0,M|0,-32,-1)|0;b=tw(G|0,M|0,e|0,b|0)|0;e=M;if(!g){d=+(H|0)*0.0;break a}if((e|0)>0|(e|0)==0&b>>>0>(0-I|0)>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}G=I+-106|0;F=((G|0)<0)<<31>>31;if((e|0)<(F|0)|(e|0)==(F|0)&b>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((g|0)>-1){do{F=!(d>=.5);G=F&1|g<<1;g=G^1;d=d+(F?d:d+-1.0);b=tw(b|0,e|0,-1,-1)|0;e=M}while((G|0)>-1);h=b;j=d}else{h=b;j=d}b=rw(32,0,I|0,((I|0)<0)<<31>>31|0)|0;b=tw(h|0,e|0,b|0,M|0)|0;I=M;if(0>(I|0)|0==(I|0)&J>>>0>b>>>0)if((b|0)<0){b=0;y=127}else y=125;else{b=J;y=125}if((y|0)==125)if((b|0)<53)y=127;else{e=b;f=+(H|0);d=0.0}if((y|0)==127){d=+(H|0);e=b;f=d;d=+Ck(+Hk(1.0,84-b|0),d)}J=(g&1|0)==0&(j!=0.0&(e|0)<32);d=f*(J?0.0:j)+(d+f*+(((J&1)+g|0)>>>0))-d;if(!(d!=0.0)){J=mk()|0;k[J>>2]=34}d=+Ik(d,h);break a}else b=e;while(0);E=I+J|0;F=0-E|0;g=0;f:while(1){switch(b|0){case 46:{y=138;break f}case 48:break;default:{e=0;o=0;n=0;break f}}b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0;g=1;continue}else{b=rk(a)|0;g=1;continue}}if((y|0)==138){b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48){e=0;b=0;while(1){e=tw(e|0,b|0,-1,-1)|0;g=M;b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if((b|0)==48)b=g;else{o=g;g=1;n=1;break}}}else{e=0;o=0;n=1}}k[G>>2]=0;m=b+-48|0;h=(b|0)==46;g:do if(h|m>>>0<10){z=G+496|0;w=0;t=0;u=h;y=o;s=g;x=n;g=0;h=0;n=0;h:while(1){do if(u)if(!x){e=w;o=t;x=1}else{o=y;b=w;m=t;break h}else{u=tw(w|0,t|0,1,0)|0;t=M;v=(b|0)!=48;if((h|0)>=125){if(!v){o=y;w=u;break}k[z>>2]=k[z>>2]|1;o=y;w=u;break}o=G+(h<<2)|0;if(g)m=b+-48+((k[o>>2]|0)*10|0)|0;k[o>>2]=m;g=g+1|0;m=(g|0)==9;o=y;w=u;s=1;g=m?0:g;h=(m&1)+h|0;n=v?u:n}while(0);b=k[D>>2]|0;if(b>>>0<(k[A>>2]|0)>>>0){k[D>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;m=b+-48|0;u=(b|0)==46;if(!(u|m>>>0<10)){m=x;y=161;break g}else y=o}s=(s|0)!=0;y=169}else{w=0;t=0;s=g;m=n;g=0;h=0;n=0;y=161}while(0);do if((y|0)==161){z=(m|0)==0;e=z?w:e;o=z?t:o;s=(s|0)!=0;if(!((b|32|0)==101&s))if((b|0)>-1){b=w;m=t;y=169;break}else{b=w;m=t;y=171;break}m=Dl(a,c)|0;b=M;if((m|0)==0&(b|0)==-2147483648){if(!c){qk(a,0);d=0.0;break}if(!(k[A>>2]|0)){m=0;b=0}else{k[D>>2]=(k[D>>2]|0)+-1;m=0;b=0}}e=tw(m|0,b|0,e|0,o|0)|0;s=w;o=M;m=t;y=173}while(0);if((y|0)==169)if(k[A>>2]|0){k[D>>2]=(k[D>>2]|0)+-1;if(s){s=b;y=173}else y=172}else y=171;if((y|0)==171)if(s){s=b;y=173}else y=172;do if((y|0)==172){J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0}else if((y|0)==173){b=k[G>>2]|0;if(!b){d=+(H|0)*0.0;break}if(((m|0)<0|(m|0)==0&s>>>0<10)&((e|0)==(s|0)&(o|0)==(m|0))?J>>>0>30|(b>>>J|0)==0:0){d=+(H|0)*+(b>>>0);break}a=(I|0)/-2|0;D=((a|0)<0)<<31>>31;if((o|0)>(D|0)|(o|0)==(D|0)&e>>>0>a>>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=I+-106|0;D=((a|0)<0)<<31>>31;if((o|0)<(D|0)|(o|0)==(D|0)&e>>>0>>0){J=mk()|0;k[J>>2]=34;d=+(H|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(g){if((g|0)<9){m=G+(h<<2)|0;b=k[m>>2]|0;do{b=b*10|0;g=g+1|0}while((g|0)!=9);k[m>>2]=b}h=h+1|0}if((n|0)<9?(n|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){d=+(H|0)*+((k[G>>2]|0)>>>0);break}if((e|0)<9){d=+(H|0)*+((k[G>>2]|0)>>>0)/+(k[37312+(8-e<<2)>>2]|0);break}a=J+27+(ia(e,-3)|0)|0;b=k[G>>2]|0;if((a|0)>30|(b>>>a|0)==0){d=+(H|0)*+(b>>>0)*+(k[37312+(e+-10<<2)>>2]|0);break}}b=(e|0)%9|0;if(!b){g=0;b=0}else{s=(e|0)>-1?b:b+9|0;m=k[37312+(8-s<<2)>>2]|0;if(h){n=1e9/(m|0)|0;g=0;b=0;o=0;do{A=G+(o<<2)|0;D=k[A>>2]|0;a=((D>>>0)/(m>>>0)|0)+b|0;k[A>>2]=a;b=ia((D>>>0)%(m>>>0)|0,n)|0;a=(o|0)==(g|0)&(a|0)==0;o=o+1|0;e=a?e+-9|0:e;g=a?o&127:g}while((o|0)!=(h|0));if(b){k[G+(h<<2)>>2]=b;h=h+1|0}}else{g=0;h=0}b=0;e=9-s+e|0}i:while(1){t=(e|0)<18;u=(e|0)==18;v=G+(g<<2)|0;do{if(!t){if(!u)break i;if((k[v>>2]|0)>>>0>=9007199){e=18;break i}}m=0;n=h+127|0;while(1){s=n&127;o=G+(s<<2)|0;n=ww(k[o>>2]|0,0,29)|0;n=tw(n|0,M|0,m|0,0)|0;m=M;if(m>>>0>0|(m|0)==0&n>>>0>1e9){a=Ew(n|0,m|0,1e9,0)|0;n=Fw(n|0,m|0,1e9,0)|0;m=a}else m=0;k[o>>2]=n;a=(s|0)==(g|0);h=(s|0)!=(h+127&127|0)|a?h:(n|0)==0?s:h;if(a)break;else n=s+-1|0}b=b+-29|0}while((m|0)==0);g=g+127&127;if((g|0)==(h|0)){a=h+127&127;h=G+((h+126&127)<<2)|0;k[h>>2]=k[h>>2]|k[G+(a<<2)>>2];h=a}k[G+(g<<2)>>2]=m;e=e+9|0}j:while(1){w=h+1&127;v=G+((h+127&127)<<2)|0;while(1){t=(e|0)==18;u=(e|0)>27?9:1;s=t^1;while(1){n=g&127;o=(n|0)==(h|0);do if(!o){m=k[G+(n<<2)>>2]|0;if(m>>>0<9007199){y=219;break}if(m>>>0>9007199)break;m=g+1&127;if((m|0)==(h|0)){y=219;break}m=k[G+(m<<2)>>2]|0;if(m>>>0<254740991){y=219;break}if(!(m>>>0>254740991|s)){e=n;break j}}else y=219;while(0);if((y|0)==219?(y=0,t):0){y=220;break j}b=b+u|0;if((g|0)==(h|0))g=h;else break}s=(1<>>u;n=g;m=0;o=g;while(1){D=G+(o<<2)|0;a=k[D>>2]|0;g=(a>>>u)+m|0;k[D>>2]=g;m=ia(a&s,t)|0;g=(o|0)==(n|0)&(g|0)==0;o=o+1&127;e=g?e+-9|0:e;g=g?o:n;if((o|0)==(h|0))break;else n=g}if(!m)continue;if((w|0)!=(g|0))break;k[v>>2]=k[v>>2]|1}k[G+(h<<2)>>2]=m;h=w}if((y|0)==220)if(o){k[G+(w+-1<<2)>>2]=0;e=h;h=w}else e=n;d=+((k[G+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(h|0)){h=g+2&127;k[G+(h+-1<<2)>>2]=0}q=+(H|0);f=q*(d*1.0e9+ +((k[G+(e<<2)>>2]|0)>>>0));t=b+53|0;o=t-I|0;s=(o|0)<(J|0);e=s&1;n=s?((o|0)<0?0:o):J;if((n|0)<53){L=+Ck(+Hk(1.0,105-n|0),f);j=+Ek(f,+Hk(1.0,53-n|0));p=L;d=j;j=L+(f-j)}else{p=0.0;d=0.0;j=f}m=g+2&127;do if((m|0)==(h|0))f=d;else{m=k[G+(m<<2)>>2]|0;do if(m>>>0>=5e8){if(m>>>0>5e8){d=q*.75+d;break}if((g+3&127|0)==(h|0)){d=q*.5+d;break}else{d=q*.75+d;break}}else{if((m|0)==0?(g+3&127|0)==(h|0):0)break;d=q*.25+d}while(0);if((53-n|0)<=1){f=d;break}if(+Ek(d,1.0)!=0.0){f=d;break}f=d+1.0}while(0);d=j+f-p;do if((t&2147483647|0)>(-2-E|0)){if(+X(+d)>=9007199254740992.0){e=s&(n|0)==(o|0)?0:e;b=b+1|0;d=d*.5}if((b+50|0)<=(F|0)?!(f!=0.0&(e|0)!=0):0)break;J=mk()|0;k[J>>2]=34}while(0);d=+Ik(d,b)}while(0);break a}default:{if(k[A>>2]|0)k[D>>2]=(k[D>>2]|0)+-1;J=mk()|0;k[J>>2]=22;qk(a,0);d=0.0;break a}}}}while(0);if((y|0)==23){e=(k[A>>2]|0)==0;if(!e)k[D>>2]=(k[D>>2]|0)+-1;if((c|0)!=0&b>>>0>3)do{if(!e)k[D>>2]=(k[D>>2]|0)+-1;b=b+-1|0}while(b>>>0>3)}d=+(H|0)*C}while(0);r=K;return +d}function pk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(b>>>0>36){e=mk()|0;k[e>>2]=22;e=0;d=0}else{r=a+4|0;q=a+100|0;do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);b:do switch(f|0){case 43:case 45:{g=((f|0)==45)<<31>>31;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0;p=g;break b}else{f=rk(a)|0;p=g;break b}}default:p=0}while(0);g=(b|0)==0;do if((b&-17|0)==0&(f|0)==48){f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|32|0)!=120)if(g){b=8;n=46;break}else{n=32;break}b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;if((l[53879+(f+1)>>0]|0)>15){d=(k[q>>2]|0)==0;if(!d)k[r>>2]=(k[r>>2]|0)+-1;if(!c){qk(a,0);e=0;d=0;break a}if(d){e=0;d=0;break a}k[r>>2]=(k[r>>2]|0)+-1;e=0;d=0;break a}else{b=16;n=46}}else{b=g?10:b;if((l[53879+(f+1)>>0]|0)>>>0>>0)n=32;else{if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;qk(a,0);e=mk()|0;k[e>>2]=22;e=0;d=0;break a}}while(0);if((n|0)==32)if((b|0)==10){b=f+-48|0;if(b>>>0<10){f=0;while(1){g=(f*10|0)+b|0;b=k[r>>2]|0;if(b>>>0<(k[q>>2]|0)>>>0){k[r>>2]=b+1;f=l[b>>0]|0}else f=rk(a)|0;b=f+-48|0;if(!(b>>>0<10&g>>>0<429496729)){b=g;break}else f=g}g=0}else{b=0;g=0}c=f+-48|0;if(c>>>0<10){while(1){h=Dw(b|0,g|0,10,0)|0;j=M;m=((c|0)<0)<<31>>31;o=~m;if(j>>>0>o>>>0|(j|0)==(o|0)&h>>>0>~c>>>0){h=b;break}b=tw(h|0,j|0,c|0,m|0)|0;g=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;c=f+-48|0;if(!(c>>>0<10&(g>>>0<429496729|(g|0)==429496729&b>>>0<2576980378))){h=b;break}}if(c>>>0>9){f=h;b=p}else{b=10;n=72}}else{f=b;b=p}}else n=46;c:do if((n|0)==46){if(!(b+-1&b)){n=i[54136+((b*23|0)>>>5&7)>>0]|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c|f<>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<134217728&c>>>0>>0))break;else f=h}c=0}else{c=0;h=0}j=uw(-1,-1,n|0)|0;m=M;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break}else f=c;while(1){h=ww(h|0,f|0,n|0)|0;c=M;h=g&255|h;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0|(c>>>0>m>>>0|(c|0)==(m|0)&h>>>0>j>>>0)){g=c;n=72;break c}else f=c}}g=i[53879+(f+1)>>0]|0;c=g&255;if(c>>>0>>0){f=0;while(1){h=c+(ia(f,b)|0)|0;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;c=g&255;if(!(h>>>0<119304647&c>>>0>>0))break;else f=h}c=0}else{h=0;c=0}if((g&255)>>>0>>0){n=Ew(-1,-1,b|0,0)|0;o=M;m=c;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&h>>>0>n>>>0){g=m;n=72;break c}c=Dw(h|0,m|0,b|0,0)|0;j=M;g=g&255;if(j>>>0>4294967295|(j|0)==-1&c>>>0>~g>>>0){g=m;n=72;break c}h=tw(g|0,0,c|0,j|0)|0;c=M;f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;g=i[53879+(f+1)>>0]|0;if((g&255)>>>0>=b>>>0){g=c;n=72;break}else m=c}}else{g=c;n=72}}while(0);if((n|0)==72)if((l[53879+(f+1)>>0]|0)>>>0>>0){do{f=k[r>>2]|0;if(f>>>0<(k[q>>2]|0)>>>0){k[r>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((l[53879+(f+1)>>0]|0)>>>0>>0);g=mk()|0;k[g>>2]=34;g=e;f=d;b=(d&1|0)==0&0==0?p:0}else{f=h;b=p}if(k[q>>2]|0)k[r>>2]=(k[r>>2]|0)+-1;if(!(g>>>0>>0|(g|0)==(e|0)&f>>>0>>0)){if(!((d&1|0)!=0|0!=0|(b|0)!=0)){r=mk()|0;k[r>>2]=34;d=tw(d|0,e|0,-1,-1)|0;e=M;break}if(g>>>0>e>>>0|(g|0)==(e|0)&f>>>0>d>>>0){r=mk()|0;k[r>>2]=34;break}}d=((b|0)<0)<<31>>31;d=rw(f^b|0,g^d|0,b|0,d|0)|0;e=M}while(0);M=e;return d|0}function qk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;k[a+104>>2]=b;c=k[a+4>>2]|0;d=k[a+8>>2]|0;e=d-c|0;k[a+108>>2]=e;if((b|0)!=0&(e|0)>(b|0))k[a+100>>2]=c+b;else k[a+100>>2]=d;return}function rk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;c=a+104|0;f=k[c>>2]|0;if((f|0)!=0?(k[a+108>>2]|0)>=(f|0):0)g=4;else{b=cl(a)|0;if((b|0)>=0){e=k[c>>2]|0;c=a+8|0;if(e){d=k[c>>2]|0;f=k[a+4>>2]|0;c=d;e=e-(k[a+108>>2]|0)+-1|0;if((c-f|0)>(e|0))k[a+100>>2]=f+e;else g=9}else{d=k[c>>2]|0;c=d;g=9}if((g|0)==9)k[a+100>>2]=c;c=k[a+4>>2]|0;if(d){a=a+108|0;k[a>>2]=d+1-c+(k[a>>2]|0)}c=c+-1|0;if((l[c>>0]|0|0)!=(b|0))i[c>>0]=b}else g=4}if((g|0)==4){k[a+100>>2]=0;b=-1}return b|0}function sk(a){a=a|0;var b=0;if(a>>>0>4294963200){b=mk()|0;k[b>>2]=0-a;a=-1}return a|0}function tk(a){a=a|0;return 0}function uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function vk(a,b){a=a|0;b=b|0;return -1|0}function wk(a){a=a|0;Ql(a);return}function xk(a,b){a=a|0;b=b|0;return (a+-48|0)>>>0<10|0}function yk(a,b){a=a|0;b=b|0;return lk(a)|0}function zk(a,b,c){a=a|0;b=b|0;c=c|0;if(((i[b>>0]|0)!=0?(vl(b,58885)|0)!=0:0)?(vl(b,54145)|0)!=0:0)c=0;else if(!c)c=Rl(1,4)|0;return c|0}function Ak(a){a=a|0;var b=0,c=0;b=(kb()|0)+176|0;c=k[b>>2]|0;if(a)k[b>>2]=a;return c|0}function Bk(a,b){a=+a;b=+b;var c=0,d=0;p[t>>3]=a;d=k[t>>2]|0;c=k[t+4>>2]|0;p[t>>3]=b;c=k[t+4>>2]&-2147483648|c&2147483647;k[t>>2]=d;k[t+4>>2]=c;return +(+p[t>>3])}function Ck(a,b){a=+a;b=+b;return +(+Bk(a,b))}function Dk(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;p[t>>3]=a;c=k[t>>2]|0;j=k[t+4>>2]|0;p[t>>3]=b;l=k[t>>2]|0;m=k[t+4>>2]|0;d=uw(c|0,j|0,52)|0;d=d&2047;h=uw(l|0,m|0,52)|0;h=h&2047;n=j&-2147483648;g=ww(l|0,m|0,1)|0;i=M;a:do if(!((g|0)==0&(i|0)==0)?(f=m&2147483647,!(f>>>0>2146435072|(f|0)==2146435072&l>>>0>0|(d|0)==2047)):0){e=ww(c|0,j|0,1)|0;f=M;if(!(f>>>0>i>>>0|(f|0)==(i|0)&e>>>0>g>>>0))return +((e|0)==(g|0)&(f|0)==(i|0)?a*0.0:a);if(!d){d=ww(c|0,j|0,12)|0;e=M;if((e|0)>-1|(e|0)==-1&d>>>0>4294967295){f=d;d=0;do{d=d+-1|0;f=ww(f|0,e|0,1)|0;e=M}while((e|0)>-1|(e|0)==-1&f>>>0>4294967295)}else d=0;c=ww(c|0,j|0,1-d|0)|0;e=M}else e=j&1048575|1048576;if(!h){f=ww(l|0,m|0,12)|0;g=M;if((g|0)>-1|(g|0)==-1&f>>>0>4294967295){h=0;do{h=h+-1|0;f=ww(f|0,g|0,1)|0;g=M}while((g|0)>-1|(g|0)==-1&f>>>0>4294967295)}else h=0;l=ww(l|0,m|0,1-h|0)|0;j=M}else j=m&1048575|1048576;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;b:do if((d|0)>(h|0)){while(1){if(f)if((c|0)==(l|0)&(e|0)==(j|0))break;else{c=i;e=g}c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0;i=rw(c|0,e|0,l|0,j|0)|0;g=M;f=(g|0)>-1|(g|0)==-1&i>>>0>4294967295;if((d|0)<=(h|0))break b}b=a*0.0;break a}while(0);if(f)if((c|0)==(l|0)&(e|0)==(j|0)){b=a*0.0;break}else{e=g;c=i}if(e>>>0<1048576|(e|0)==1048576&c>>>0<0)do{c=ww(c|0,e|0,1)|0;e=M;d=d+-1|0}while(e>>>0<1048576|(e|0)==1048576&c>>>0<0);if((d|0)>0){m=tw(c|0,e|0,0,-1048576)|0;c=M;d=ww(d|0,0,52)|0;c=c|M;d=m|d}else{d=uw(c|0,e|0,1-d|0)|0;c=M}k[t>>2]=d;k[t+4>>2]=c|n;b=+p[t>>3]}else o=3;while(0);if((o|0)==3){b=a*b;b=b/b}return +b}function Ek(a,b){a=+a;b=+b;return +(+Dk(a,b))}function Fk(a,b){a=+a;b=b|0;var c=0,d=0,e=0;p[t>>3]=a;c=k[t>>2]|0;d=k[t+4>>2]|0;e=uw(c|0,d|0,52)|0;e=e&2047;switch(e|0){case 0:{if(a!=0.0){a=+Fk(a*18446744073709551616.0,b);c=(k[b>>2]|0)+-64|0}else c=0;k[b>>2]=c;break}case 2047:break;default:{k[b>>2]=e+-1022;k[t>>2]=c;k[t+4>>2]=d&-2146435073|1071644672;a=+p[t>>3]}}return +a}function Gk(a,b){a=+a;b=b|0;return +(+Fk(a,b))}function Hk(a,b){a=+a;b=b|0;var c=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;c=b+-1023|0;if((c|0)>1023){c=b+-2046|0;c=(c|0)>1023?1023:c;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;c=b+1022|0;if((c|0)<-1022){c=b+2044|0;c=(c|0)<-1022?-1022:c;a=a*2.2250738585072014e-308}}else c=b;c=ww(c+1023|0,0,52)|0;b=M;k[t>>2]=c;k[t+4>>2]=b;return +(a*+p[t>>3])}function Ik(a,b){a=+a;b=b|0;return +(+Hk(a,b))}function Jk(a,b,c){a=a|0;b=b|0;c=c|0;return Kk(0,a,b,(c|0)!=0?c:37344)|0}function Kk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0;j=r;r=r+16|0;e=j;g=(d|0)==0?37348:d;d=k[g>>2]|0;a:do if(!b)if(!d)d=0;else h=15;else{f=(a|0)==0?e:a;if(!c)d=-2;else{if(!d){d=i[b>>0]|0;e=d&255;if(d<<24>>24>-1){k[f>>2]=e;d=d<<24>>24!=0&1;break}d=e+-194|0;if(d>>>0>50){h=15;break}d=k[37076+(d<<2)>>2]|0;e=c+-1|0;if(e){b=b+1|0;h=9}}else{e=c;h=9}b:do if((h|0)==9){a=i[b>>0]|0;l=(a&255)>>>3;if((l+-16|l+(d>>26))>>>0>7){h=15;break a}while(1){b=b+1|0;d=(a&255)+-128|d<<6;e=e+-1|0;if((d|0)>=0)break;if(!e)break b;a=i[b>>0]|0;if((a&-64)<<24>>24!=-128){h=15;break a}}k[g>>2]=0;k[f>>2]=d;d=c-e|0;break a}while(0);k[g>>2]=d;d=-2}}while(0);if((h|0)==15){k[g>>2]=0;d=mk()|0;k[d>>2]=84;d=-1}r=j;return d|0}function Lk(a){a=a|0;if(!a)a=1;else a=(k[a>>2]|0)==0;return a&1|0}function Mk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0;n=r;r=r+1040|0;j=n+8|0;m=n;i=k[b>>2]|0;k[m>>2]=i;l=(a|0)!=0;d=l?d:256;a=l?a:j;f=i;a:do if((d|0)!=0&(i|0)!=0){h=d;i=f;d=0;while(1){f=c>>>2;g=f>>>0>=h>>>0;if(!(c>>>0>131|g)){f=i;break a}f=g?h:f;c=c-f|0;f=Nk(a,m,f,e)|0;if((f|0)==-1){d=c;break}o=(a|0)==(j|0);i=o?0:f;g=h-i|0;a=o?a:a+(f<<2)|0;d=f+d|0;f=k[m>>2]|0;if((h|0)!=(i|0)&(f|0)!=0){h=g;i=f}else{h=g;break a}}c=d;h=0;f=k[m>>2]|0;d=-1}else{h=d;d=0}while(0);b:do if((f|0)!=0?(h|0)!=0&(c|0)!=0:0){g=f;f=a;while(1){a=Kk(f,g,c,e)|0;if((a+2|0)>>>0<3)break;g=(k[m>>2]|0)+a|0;k[m>>2]=g;h=h+-1|0;d=d+1|0;if(!((h|0)!=0&(c|0)!=(a|0)))break b;else{c=c-a|0;f=f+4|0}}switch(a|0){case -1:{d=-1;break b}case 0:{k[m>>2]=0;break b}default:{k[e>>2]=0;break b}}}while(0);if(l)k[b>>2]=k[m>>2];r=n;return d|0}function Nk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,m=0;e=k[b>>2]|0;if((d|0)!=0?(f=k[d>>2]|0,(f|0)!=0):0)if(!a){d=c;g=e;m=16}else{k[d>>2]=0;j=a;d=c;h=f;m=37}else if(!a){d=c;m=7}else{f=a;d=c;m=6}a:while(1)if((m|0)==6){if(!d){m=26;break}else a=f;while(1){f=i[e>>0]|0;do if(((f&255)+-1|0)>>>0<127?d>>>0>4&(e&3|0)==0:0){g=e;while(1){e=k[g>>2]|0;if((e+-16843009|e)&-2139062144){f=e;e=g;m=32;break}k[a>>2]=e&255;k[a+4>>2]=l[g+1>>0];k[a+8>>2]=l[g+2>>0];e=g+4|0;f=a+16|0;k[a+12>>2]=l[g+3>>0];d=d+-4|0;if(d>>>0>4){a=f;g=e}else{m=31;break}}if((m|0)==31){a=f;f=i[e>>0]|0;break}else if((m|0)==32){f=f&255;break}}while(0);f=f&255;if((f+-1|0)>>>0>=127)break;e=e+1|0;k[a>>2]=f;d=d+-1|0;if(!d){m=26;break a}else a=a+4|0}f=f+-194|0;if(f>>>0>50){m=48;break}j=a;h=k[37076+(f<<2)>>2]|0;e=e+1|0;m=37;continue}else if((m|0)==7){f=i[e>>0]|0;if(((f&255)+-1|0)>>>0<127?(e&3|0)==0:0){f=k[e>>2]|0;if(!((f+-16843009|f)&-2139062144))do{e=e+4|0;d=d+-4|0;f=k[e>>2]|0}while(((f+-16843009|f)&-2139062144|0)==0);f=f&255}f=f&255;if((f+-1|0)>>>0<127){d=d+-1|0;e=e+1|0;m=7;continue}f=f+-194|0;if(f>>>0>50){m=48;break}f=k[37076+(f<<2)>>2]|0;g=e+1|0;m=16;continue}else if((m|0)==16){m=(l[g>>0]|0)>>>3;if((m+-16|m+(f>>26))>>>0>7){m=17;break}e=g+1|0;if(f&33554432){if((i[e>>0]&-64)<<24>>24!=-128){m=20;break}e=g+2|0;if(f&524288){if((i[e>>0]&-64)<<24>>24!=-128){m=23;break}e=g+3|0}}d=d+-1|0;m=7;continue}else if((m|0)==37){f=l[e>>0]|0;m=f>>>3;if((m+-16|m+(h>>26))>>>0>7){m=38;break}g=e+1|0;a=f+-128|h<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=41;break}g=e+2|0;a=f+-128|a<<6;if((a|0)<0){f=l[g>>0]|0;if((f&192|0)!=128){m=44;break}a=f+-128|a<<6;e=e+3|0}else e=g}else e=g;k[j>>2]=a;f=j+4|0;d=d+-1|0;m=6;continue}if((m|0)==17){e=g+-1|0;m=47}else if((m|0)==20){e=g+-1|0;m=47}else if((m|0)==23){e=g+-1|0;m=47}else if((m|0)==26)k[b>>2]=e;else if((m|0)==38){a=j;f=h;e=e+-1|0;m=47}else if((m|0)==41){d=j;c=e+-1|0;m=52}else if((m|0)==44){d=j;c=e+-1|0;m=52}if((m|0)==47)if(!f)m=48;else{d=a;c=e;m=52}if((m|0)==48)if(!(i[e>>0]|0)){if(a){k[a>>2]=0;k[b>>2]=0}c=c-d|0}else{d=a;c=e;m=52}if((m|0)==52){m=mk()|0;k[m>>2]=84;if(!d)c=-1;else{k[b>>2]=c;c=-1}}return c|0}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;g=r;r=r+16|0;d=g;a:do if(!b)d=0;else{do if(c){f=(a|0)==0?d:a;d=i[b>>0]|0;a=d&255;if(d<<24>>24>-1){k[f>>2]=a;d=d<<24>>24!=0&1;break a}d=a+-194|0;if(d>>>0<=50){a=b+1|0;e=k[37076+(d<<2)>>2]|0;if(c>>>0<4?(e&-2147483648>>>((c*6|0)+-6|0)|0)!=0:0)break;d=l[a>>0]|0;c=d>>>3;if((c+-16|c+(e>>26))>>>0<=7){d=d+-128|e<<6;if((d|0)>=0){k[f>>2]=d;d=2;break a}a=l[b+2>>0]|0;if((a&192|0)==128){a=a+-128|d<<6;if((a|0)>=0){k[f>>2]=a;d=3;break a}d=l[b+3>>0]|0;if((d&192|0)==128){k[f>>2]=d+-128|a<<6;d=4;break a}}}}}while(0);d=mk()|0;k[d>>2]=84;d=-1}while(0);r=g;return d|0}function Pk(a,b,c){a=a|0;b=b|0;c=c|0;do if(a){if(b>>>0<128){i[a>>0]=b;a=1;break}if(b>>>0<2048){i[a>>0]=b>>>6|192;i[a+1>>0]=b&63|128;a=2;break}if(b>>>0<55296|(b&-8192|0)==57344){i[a>>0]=b>>>12|224;i[a+1>>0]=b>>>6&63|128;i[a+2>>0]=b&63|128;a=3;break}if((b+-65536|0)>>>0<1048576){i[a>>0]=b>>>18|240;i[a+1>>0]=b>>>12&63|128;i[a+2>>0]=b>>>6&63|128;i[a+3>>0]=b&63|128;a=4;break}else{a=mk()|0;k[a>>2]=84;a=-1;break}}else a=1;while(0);return a|0}function Qk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0;l=r;r=r+272|0;h=l+8|0;j=l;g=k[b>>2]|0;k[j>>2]=g;i=(a|0)!=0;e=i?d:256;d=i?a:h;a=g;a:do if((e|0)!=0&(g|0)!=0){g=e;f=a;e=0;while(1){a=c>>>0>=g>>>0;if(!(a|c>>>0>32)){a=f;break a}a=a?g:c;c=c-a|0;a=Rk(d,j,a,0)|0;if((a|0)==-1){e=c;break}n=(d|0)==(h|0);m=n?0:a;f=g-m|0;d=n?d:d+a|0;e=a+e|0;a=k[j>>2]|0;if((g|0)!=(m|0)&(a|0)!=0){g=f;f=a}else{g=f;break a}}c=e;g=0;a=k[j>>2]|0;e=-1}else{g=e;e=0}while(0);b:do if((a|0)!=0?(g|0)!=0&(c|0)!=0:0){f=a;a=d;while(1){d=Pk(a,k[f>>2]|0,0)|0;if((d+1|0)>>>0<2)break;f=(k[j>>2]|0)+4|0;k[j>>2]=f;c=c+-1|0;e=e+1|0;if(!((g|0)!=(d|0)&(c|0)!=0))break b;else{g=g-d|0;a=a+d|0}}if(!d)k[j>>2]=0;else e=-1}while(0);if(i)k[b>>2]=k[j>>2];r=l;return e|0}function Rk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=r;r=r+16|0;g=h;a:do if(!a){a=k[b>>2]|0;d=k[a>>2]|0;if(!d)c=0;else{c=0;do{if(d>>>0>127){d=Pk(g,d,0)|0;if((d|0)==-1){c=-1;break a}}else d=1;c=d+c|0;a=a+4|0;d=k[a>>2]|0}while((d|0)!=0)}}else{b:do if(c>>>0>3){d=c;e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f)break;f=Pk(a,f,0)|0;if((f|0)==-1){c=-1;break a}a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(d>>>0<=3)break b}i[a>>0]=0;k[b>>2]=0;c=c-d|0;break a}else d=c;while(0);if(d){e=k[b>>2]|0;while(1){f=k[e>>2]|0;if((f+-1|0)>>>0>126){if(!f){e=19;break}f=Pk(g,f,0)|0;if((f|0)==-1){c=-1;break a}if(d>>>0>>0){e=22;break}Pk(a,k[e>>2]|0,0)|0;a=a+f|0;d=d-f|0}else{i[a>>0]=f;a=a+1|0;d=d+-1|0;e=k[b>>2]|0}e=e+4|0;k[b>>2]=e;if(!d)break a}if((e|0)==19){i[a>>0]=0;k[b>>2]=0;c=c-d|0;break}else if((e|0)==22){c=c-d|0;break}}}while(0);r=h;return c|0}function Sk(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Pk(a,b,0)|0;return a|0}function Tk(a){a=a|0;return 0}function Uk(a){a=a|0;return}function Vk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;j=r;r=r+16|0;h=j;g=b&255;i[h>>0]=g;d=a+16|0;e=k[d>>2]|0;if(!e)if(!(bl(a)|0)){e=k[d>>2]|0;f=4}else c=-1;else f=4;do if((f|0)==4){d=a+20|0;f=k[d>>2]|0;if(f>>>0>>0?(c=b&255,(c|0)!=(i[a+75>>0]|0)):0){k[d>>2]=f+1;i[f>>0]=g;break}if((Qb[k[a+36>>2]&63](a,h,1)|0)==1)c=l[h>>0]|0;else c=-1}while(0);r=j;return c|0}function Wk(a){a=a|0;var b=0,c=0;b=r;r=r+16|0;c=b;k[c>>2]=k[a+60>>2];a=sk(wb(6,c|0)|0)|0;r=b;return a|0}function Xk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0;l=r;r=r+48|0;f=l+16|0;e=l;d=l+32|0;k[d>>2]=b;g=d+4|0;j=a+48|0;m=k[j>>2]|0;k[g>>2]=c-((m|0)!=0&1);h=a+44|0;k[d+8>>2]=k[h>>2];k[d+12>>2]=m;if(!(k[9258]|0)){k[f>>2]=k[a+60>>2];k[f+4>>2]=d;k[f+8>>2]=2;d=sk(Eb(145,f|0)|0)|0}else{xb(185,a|0);k[e>>2]=k[a+60>>2];k[e+4>>2]=d;k[e+8>>2]=2;d=sk(Eb(145,e|0)|0)|0;pb(0)}if((d|0)>=1){g=k[g>>2]|0;if(d>>>0>g>>>0){f=k[h>>2]|0;e=a+4|0;k[e>>2]=f;k[a+8>>2]=f+(d-g);if(!(k[j>>2]|0))d=c;else{k[e>>2]=f+1;i[b+(c+-1)>>0]=i[f>>0]|0;d=c}}}else{k[a>>2]=k[a>>2]|d&48^16;k[a+8>>2]=0;k[a+4>>2]=0}r=l;return d|0}function Yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=r;r=r+32|0;f=e;d=e+20|0;k[f>>2]=k[a+60>>2];k[f+4>>2]=0;k[f+8>>2]=b;k[f+12>>2]=d;k[f+16>>2]=c;if((sk(Db(140,f|0)|0)|0)<0){k[d>>2]=-1;a=-1}else a=k[d>>2]|0;r=e;return a|0}function Zk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0;p=r;r=r+48|0;m=p+16|0;l=p;d=p+32|0;n=a+28|0;e=k[n>>2]|0;k[d>>2]=e;o=a+20|0;e=(k[o>>2]|0)-e|0;k[d+4>>2]=e;k[d+8>>2]=b;k[d+12>>2]=c;i=a+60|0;j=a+44|0;b=2;e=e+c|0;while(1){if(!(k[9258]|0)){k[m>>2]=k[i>>2];k[m+4>>2]=d;k[m+8>>2]=b;g=sk(Fb(146,m|0)|0)|0}else{xb(186,a|0);k[l>>2]=k[i>>2];k[l+4>>2]=d;k[l+8>>2]=b;g=sk(Fb(146,l|0)|0)|0;pb(0)}if((e|0)==(g|0)){e=6;break}if((g|0)<0){e=8;break}e=e-g|0;f=k[d+4>>2]|0;if(g>>>0<=f>>>0)if((b|0)==2){k[n>>2]=(k[n>>2]|0)+g;h=f;b=2}else h=f;else{h=k[j>>2]|0;k[n>>2]=h;k[o>>2]=h;h=k[d+12>>2]|0;g=g-f|0;d=d+8|0;b=b+-1|0}k[d>>2]=(k[d>>2]|0)+g;k[d+4>>2]=h-g}if((e|0)==6){m=k[j>>2]|0;k[a+16>>2]=m+(k[a+48>>2]|0);a=m;k[n>>2]=a;k[o>>2]=a}else if((e|0)==8){k[a+16>>2]=0;k[n>>2]=0;k[o>>2]=0;k[a>>2]=k[a>>2]|32;if((b|0)==2)c=0;else c=c-(k[d+4>>2]|0)|0}r=p;return c|0}function _k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=r;r=r+80|0;d=e;k[a+36>>2]=8;if((k[a>>2]&64|0)==0?(k[d>>2]=k[a+60>>2],k[d+4>>2]=21505,k[d+8>>2]=e+12,(nb(54,d|0)|0)!=0):0)i[a+75>>0]=-1;d=Zk(a,b,c)|0;r=e;return d|0}function $k(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+84|0;f=k[d>>2]|0;g=c+256|0;e=tl(f,0,g)|0;e=(e|0)==0?g:e-f|0;c=e>>>0>>0?e:c;vw(b|0,f|0,c|0)|0;k[a+4>>2]=f+c;b=f+e|0;k[a+8>>2]=b;k[d>>2]=b;return c|0}function al(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=a+20|0;c=a+44|0;if((k[b>>2]|0)>>>0>(k[c>>2]|0)>>>0)Qb[k[a+36>>2]&63](a,0,0)|0;k[a+16>>2]=0;k[a+28>>2]=0;k[b>>2]=0;b=k[a>>2]|0;if(b&20)if(!(b&4))b=-1;else{k[a>>2]=b|32;b=-1}else{b=k[c>>2]|0;k[a+8>>2]=b;k[a+4>>2]=b;b=0}return b|0}function bl(a){a=a|0;var b=0,c=0;b=a+74|0;c=i[b>>0]|0;i[b>>0]=c+255|c;b=k[a>>2]|0;if(!(b&8)){k[a+8>>2]=0;k[a+4>>2]=0;b=k[a+44>>2]|0;k[a+28>>2]=b;k[a+20>>2]=b;k[a+16>>2]=b+(k[a+48>>2]|0);b=0}else{k[a>>2]=b|32;b=-1}return b|0}function cl(a){a=a|0;var b=0,c=0;c=r;r=r+16|0;b=c;if((k[a+8>>2]|0)==0?(al(a)|0)!=0:0)b=-1;else if((Qb[k[a+32>>2]&63](a,b,1)|0)==1)b=l[b>>0]|0;else b=-1;r=c;return b|0}function dl(a){a=a|0;var b=0,c=0;do if(a){if((k[a+76>>2]|0)<=-1){b=Gl(a)|0;break}c=(Tk(a)|0)==0;b=Gl(a)|0;if(!c)Uk(a)}else{if(!(k[9323]|0))b=0;else b=dl(k[9323]|0)|0;Na(37060);a=k[9264]|0;if(a)do{if((k[a+76>>2]|0)>-1)c=Tk(a)|0;else c=0;if((k[a+20>>2]|0)>>>0>(k[a+28>>2]|0)>>>0)b=Gl(a)|0|b;if(c)Uk(a);a=k[a+56>>2]|0}while((a|0)!=0);ob(37060)}while(0);return b|0}function el(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;if((k[b+76>>2]|0)>=0?(Tk(b)|0)!=0:0){if((i[b+75>>0]|0)!=(a|0)?(d=b+20|0,e=k[d>>2]|0,e>>>0<(k[b+16>>2]|0)>>>0):0){k[d>>2]=e+1;i[e>>0]=a;c=a&255}else c=Vk(b,a)|0;Uk(b)}else g=3;do if((g|0)==3){if((i[b+75>>0]|0)!=(a|0)?(f=b+20|0,c=k[f>>2]|0,c>>>0<(k[b+16>>2]|0)>>>0):0){k[f>>2]=c+1;i[c>>0]=a;c=a&255;break}c=Vk(b,a)|0}while(0);return c|0}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=c+16|0;e=k[d>>2]|0;if(!e)if(!(bl(c)|0)){e=k[d>>2]|0;f=4}else d=0;else f=4;a:do if((f|0)==4){g=c+20|0;f=k[g>>2]|0;if((e-f|0)>>>0>>0){d=Qb[k[c+36>>2]&63](c,a,b)|0;break}b:do if((i[c+75>>0]|0)>-1){d=b;while(1){if(!d){e=f;d=0;break b}e=d+-1|0;if((i[a+e>>0]|0)==10)break;else d=e}if((Qb[k[c+36>>2]&63](c,a,d)|0)>>>0>>0)break a;b=b-d|0;a=a+d|0;e=k[g>>2]|0}else{e=f;d=0}while(0);vw(e|0,a|0,b|0)|0;k[g>>2]=(k[g>>2]|0)+b;d=d+b|0}while(0);return d|0}function gl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ia(c,b)|0;if((k[d+76>>2]|0)>-1){f=(Tk(d)|0)==0;a=fl(a,e,d)|0;if(!f)Uk(d)}else a=fl(a,e,d)|0;if((a|0)!=(e|0))c=(a>>>0)/(b>>>0)|0;return c|0}function hl(a){a=a|0;var b=0,c=0,d=0;if((k[a+76>>2]|0)>=0?(Tk(a)|0)!=0:0){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0}else b=cl(a)|0}else d=3;do if((d|0)==3){b=a+4|0;c=k[b>>2]|0;if(c>>>0<(k[a+8>>2]|0)>>>0){k[b>>2]=c+1;b=l[c>>0]|0;break}else{b=cl(a)|0;break}}while(0);return b|0}function il(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=r;r=r+16|0;f=e;k[f>>2]=d;d=ol(a,b,c,f)|0;r=e;return d|0}function jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=r;r=r+16|0;e=d;k[e>>2]=c;c=pl(a,b,e)|0;r=d;return c|0}function kl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;do if((a|0)!=-1){if((k[b+76>>2]|0)>-1)e=Tk(b)|0;else e=0;if(!((k[b+8>>2]|0)==0?(al(b)|0)!=0:0))f=6;if((f|0)==6?(c=b+4|0,d=k[c>>2]|0,d>>>0>((k[b+44>>2]|0)+-8|0)>>>0):0){f=d+-1|0;k[c>>2]=f;i[f>>0]=a;k[b>>2]=k[b>>2]&-17;if(!e)break;Uk(b);break}if(e){Uk(b);a=-1}else a=-1}else a=-1;while(0);return a|0}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;h=r;r=r+16|0;d=h;e=Pl(240)|0;do if(e){k[d>>2]=k[c>>2];d=ol(e,240,b,d)|0;if(d>>>0<240){b=Sl(e,d+1|0)|0;k[a>>2]=(b|0)!=0?b:e;break}Ql(e);if((d|0)>=0?(g=d+1|0,f=Pl(g)|0,k[a>>2]=f,(f|0)!=0):0)d=ol(f,g,b,c)|0;else d=-1}else d=-1;while(0);r=h;return d|0}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0;s=r;r=r+224|0;n=s+80|0;q=s+96|0;p=s;o=s+136|0;d=q;e=d+40|0;do{k[d>>2]=0;d=d+4|0}while((d|0)<(e|0));k[n>>2]=k[c>>2];if((Hl(0,b,n,p,q)|0)<0)c=-1;else{if((k[a+76>>2]|0)>-1)l=Tk(a)|0;else l=0;c=k[a>>2]|0;m=c&32;if((i[a+74>>0]|0)<1)k[a>>2]=c&-33;c=a+48|0;if(!(k[c>>2]|0)){e=a+44|0;f=k[e>>2]|0;k[e>>2]=o;g=a+28|0;k[g>>2]=o;h=a+20|0;k[h>>2]=o;k[c>>2]=80;j=a+16|0;k[j>>2]=o+80;d=Hl(a,b,n,p,q)|0;if(f){Qb[k[a+36>>2]&63](a,0,0)|0;d=(k[h>>2]|0)==0?-1:d;k[e>>2]=f;k[c>>2]=0;k[j>>2]=0;k[g>>2]=0;k[h>>2]=0}}else d=Hl(a,b,n,p,q)|0;c=k[a>>2]|0;k[a>>2]=c|m;if(l)Uk(a);c=(c&32|0)==0?d:-1}r=s;return c|0}function nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,m=0.0,n=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,N=0,O=0,P=0,Q=0;P=r;r=r+304|0;G=P+16|0;I=P+8|0;H=P+33|0;J=P;y=P+32|0;if((k[a+76>>2]|0)>-1)O=Tk(a)|0;else O=0;d=i[b>>0]|0;a:do if(d<<24>>24){K=a+4|0;L=a+100|0;F=a+108|0;z=a+8|0;A=H+10|0;B=H+33|0;C=I+4|0;D=H+46|0;E=H+94|0;f=d;d=0;g=b;s=0;e=0;b=0;b:while(1){c:do if(!(kk(f&255)|0)){f=(i[g>>0]|0)==37;d:do if(f){n=g+1|0;h=i[n>>0]|0;e:do switch(h<<24>>24){case 37:break d;case 42:{x=0;h=g+2|0;break}default:{h=(h&255)+-48|0;if(h>>>0<10?(i[g+2>>0]|0)==36:0){k[G>>2]=k[c>>2];while(1){x=(k[G>>2]|0)+(4-1)&~(4-1);f=k[x>>2]|0;k[G>>2]=x+4;if(h>>>0>1)h=h+-1|0;else break}x=f;h=g+3|0;break e}h=(k[c>>2]|0)+(4-1)&~(4-1);x=k[h>>2]|0;k[c>>2]=h+4;h=n}}while(0);f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0<10){f=0;while(1){n=(f*10|0)+-48+g|0;h=h+1|0;f=i[h>>0]|0;g=f&255;if((g+-48|0)>>>0>=10)break;else f=n}}else n=0;if(f<<24>>24==109){h=h+1|0;q=i[h>>0]|0;f=(x|0)!=0&1;e=0;b=0}else{q=f;f=0}g=h+1|0;switch(q&255|0){case 104:{w=(i[g>>0]|0)==104;g=w?h+2|0:g;h=w?-2:-1;break}case 108:{w=(i[g>>0]|0)==108;g=w?h+2|0:g;h=w?3:1;break}case 106:{h=3;break}case 116:case 122:{h=1;break}case 76:{h=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{g=h;h=0;break}default:{N=152;break b}}q=l[g>>0]|0;t=(q&47|0)==3;q=t?q|32:q;t=t?1:h;switch(q|0){case 99:{w=s;v=(n|0)<1?1:n;break}case 91:{w=s;v=n;break}case 110:{if(!x){h=s;break c}switch(t|0){case -2:{i[x>>0]=s;h=s;break c}case -1:{j[x>>1]=s;h=s;break c}case 0:{k[x>>2]=s;h=s;break c}case 1:{k[x>>2]=s;h=s;break c}case 3:{h=x;k[h>>2]=s;k[h+4>>2]=((s|0)<0)<<31>>31;h=s;break c}default:{h=s;break c}}}default:{qk(a,0);do{h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0}while((kk(h)|0)!=0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}w=(k[F>>2]|0)+s+h-(k[z>>2]|0)|0;v=n}}qk(a,v);h=k[K>>2]|0;n=k[L>>2]|0;if(h>>>0>>0)k[K>>2]=h+1;else{if((rk(a)|0)<0){N=152;break b}n=k[L>>2]|0}if(n)k[K>>2]=(k[K>>2]|0)+-1;f:do switch(q|0){case 91:case 99:case 115:{u=(q|0)==99;g:do if((q&239|0)==99){sw(H|0,-1,257)|0;i[H>>0]=0;if((q|0)==115){i[B>>0]=0;i[A>>0]=0;i[A+1>>0]=0;i[A+2>>0]=0;i[A+3>>0]=0;i[A+4>>0]=0}}else{Q=g+1|0;s=(i[Q>>0]|0)==94;h=s&1;q=s?Q:g;g=s?g+2|0:Q;sw(H|0,s&1|0,257)|0;i[H>>0]=0;switch(i[g>>0]|0){case 45:{s=(h^1)&255;i[D>>0]=s;g=q+2|0;break}case 93:{s=(h^1)&255;i[E>>0]=s;g=q+2|0;break}default:s=(h^1)&255}while(1){h=i[g>>0]|0;h:do switch(h<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{q=g+1|0;h=i[q>>0]|0;switch(h<<24>>24){case 93:case 0:{h=45;break h}default:{}}g=i[g+-1>>0]|0;if((g&255)<(h&255)){g=g&255;do{g=g+1|0;i[H+g>>0]=s;h=i[q>>0]|0}while((g|0)<(h&255|0));g=q}else g=q;break}default:{}}while(0);i[H+((h&255)+1)>>0]=s;g=g+1|0}}while(0);q=u?v+1|0:31;s=(t|0)==1;t=(f|0)!=0;i:do if(s){if(t){b=Pl(q<<2)|0;if(!b){e=0;N=152;break b}}else b=x;k[I>>2]=0;k[C>>2]=0;e=0;j:while(1){n=(b|0)==0;do{k:while(1){h=k[K>>2]|0;if(h>>>0<(k[L>>2]|0)>>>0){k[K>>2]=h+1;h=l[h>>0]|0}else h=rk(a)|0;if(!(i[H+(h+1)>>0]|0))break j;i[y>>0]=h;switch(Kk(J,y,1,I)|0){case -1:{e=0;N=152;break b}case -2:break;default:break k}}if(!n){k[b+(e<<2)>>2]=k[J>>2];e=e+1|0}}while(!(t&(e|0)==(q|0)));e=q<<1|1;h=Sl(b,e<<2)|0;if(!h){e=0;N=152;break b}Q=q;q=e;b=h;e=Q}if(!(Lk(I)|0)){e=0;N=152;break b}else{n=e;e=0}}else{if(t){e=Pl(q)|0;if(!e){e=0;b=0;N=152;break b}else h=0;while(1){do{b=k[K>>2]|0;if(b>>>0<(k[L>>2]|0)>>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=h;b=0;break i}i[e+h>>0]=b;h=h+1|0}while((h|0)!=(q|0));b=q<<1|1;h=Sl(e,b)|0;if(!h){b=0;N=152;break b}else{Q=q;q=b;e=h;h=Q}}}if(!x){e=n;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=0;e=0;b=0;break i}e=k[L>>2]|0}}else{e=0;while(1){b=k[K>>2]|0;if(b>>>0>>0){k[K>>2]=b+1;b=l[b>>0]|0}else b=rk(a)|0;if(!(i[H+(b+1)>>0]|0)){n=e;e=x;b=0;break i}i[x+e>>0]=b;n=k[L>>2]|0;e=e+1|0}}}while(0);h=k[K>>2]|0;if(k[L>>2]|0){h=h+-1|0;k[K>>2]=h}h=h-(k[z>>2]|0)+(k[F>>2]|0)|0;if(!h)break b;if(!((h|0)==(v|0)|u^1))break b;do if(t)if(s){k[x>>2]=b;break}else{k[x>>2]=e;break}while(0);if(!u){if(b)k[b+(n<<2)>>2]=0;if(!e){e=0;break f}i[e+n>>0]=0}break}case 120:case 88:case 112:{h=16;N=134;break}case 111:{h=8;N=134;break}case 117:case 100:{h=10;N=134;break}case 105:{h=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{m=+ok(a,t,0);if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if(x)switch(t|0){case 0:{o[x>>2]=m;break f}case 1:{p[x>>3]=m;break f}case 2:{p[x>>3]=m;break f}default:break f}break}default:{}}while(0);l:do if((N|0)==134){N=0;h=pk(a,h,0,-1,-1)|0;if((k[F>>2]|0)==((k[z>>2]|0)-(k[K>>2]|0)|0))break b;if((x|0)!=0&(q|0)==112){k[x>>2]=h;break}if(x)switch(t|0){case -2:{i[x>>0]=h;break l}case -1:{j[x>>1]=h;break l}case 0:{k[x>>2]=h;break l}case 1:{k[x>>2]=h;break l}case 3:{Q=x;k[Q>>2]=h;k[Q+4>>2]=M;break l}default:break l}}while(0);d=((x|0)!=0&1)+d|0;h=(k[F>>2]|0)+w+(k[K>>2]|0)-(k[z>>2]|0)|0;break c}while(0);g=g+(f&1)|0;qk(a,0);f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0;if((f|0)!=(l[g>>0]|0)){N=21;break b}h=s+1|0}else{while(1){f=g+1|0;if(!(kk(l[f>>0]|0)|0))break;else g=f}qk(a,0);do{f=k[K>>2]|0;if(f>>>0<(k[L>>2]|0)>>>0){k[K>>2]=f+1;f=l[f>>0]|0}else f=rk(a)|0}while((kk(f)|0)!=0);f=k[K>>2]|0;if(k[L>>2]|0){f=f+-1|0;k[K>>2]=f}h=(k[F>>2]|0)+s+f-(k[z>>2]|0)|0}while(0);g=g+1|0;f=i[g>>0]|0;if(!(f<<24>>24))break a;else s=h}if((N|0)==21){if(k[L>>2]|0)k[K>>2]=(k[K>>2]|0)+-1;if((d|0)!=0|(f|0)>-1)break;else{d=0;N=153}}else if((N|0)==152)if(!d){d=f;N=153}if((N|0)==153){f=d;d=-1}if(f){Ql(e);Ql(b)}}else d=0;while(0);if(O)Uk(a);r=P;return d|0}function ol(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,l=0,m=0;m=r;r=r+128|0;e=m+112|0;l=m;f=l;g=37352;h=f+112|0;do{k[f>>2]=k[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));if((b+-1|0)>>>0>2147483646)if(!b){b=1;j=4}else{b=mk()|0;k[b>>2]=75;b=-1}else{e=a;j=4}if((j|0)==4){j=-2-e|0;j=b>>>0>j>>>0?j:b;k[l+48>>2]=j;a=l+20|0;k[a>>2]=e;k[l+44>>2]=e;b=e+j|0;e=l+16|0;k[e>>2]=b;k[l+28>>2]=b;b=ml(l,c,d)|0;if(j){c=k[a>>2]|0;i[c+(((c|0)==(k[e>>2]|0))<<31>>31)>>0]=0}}r=m;return b|0}function pl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=r;r=r+112|0;d=f;e=d;g=e+112|0;do{k[e>>2]=0;e=e+4|0}while((e|0)<(g|0));k[d+32>>2]=29;k[d+44>>2]=a;k[d+76>>2]=-1;k[d+84>>2]=a;g=nl(d,b,c)|0;r=f;return g|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Jl(a,b,2))}function rl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,-1,-1)|0;return a|0}function sl(a,b,c){a=a|0;b=b|0;c=c|0;a=Kl(a,b,c,0,-2147483648)|0;return a|0}function tl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=b&255;d=(c|0)!=0;a:do if(d&(a&3|0)!=0){e=b&255;while(1){if((i[a>>0]|0)==e<<24>>24){g=6;break a}a=a+1|0;c=c+-1|0;d=(c|0)!=0;if(!(d&(a&3|0)!=0)){g=5;break}}}else g=5;while(0);if((g|0)==5)if(d)g=6;else c=0;b:do if((g|0)==6){e=b&255;if((i[a>>0]|0)!=e<<24>>24){d=ia(f,16843009)|0;c:do if(c>>>0>3)while(1){f=k[a>>2]^d;if((f&-2139062144^-2139062144)&f+-16843009)break;a=a+4|0;c=c+-4|0;if(c>>>0<=3){g=11;break c}}else g=11;while(0);if((g|0)==11)if(!c){c=0;break}while(1){if((i[a>>0]|0)==e<<24>>24)break b;a=a+1|0;c=c+-1|0;if(!c){c=0;break}}}}while(0);return ((c|0)!=0?a:0)|0}function ul(a,b){a=a|0;b=b|0;var c=0,d=0;c=b;a:do if(!((c^a)&3)){if(c&3)do{c=i[b>>0]|0;i[a>>0]=c;if(!(c<<24>>24))break a;b=b+1|0;a=a+1|0}while((b&3|0)!=0);c=k[b>>2]|0;if(!((c&-2139062144^-2139062144)&c+-16843009)){d=a;while(1){b=b+4|0;a=d+4|0;k[d>>2]=c;c=k[b>>2]|0;if((c&-2139062144^-2139062144)&c+-16843009)break;else d=a}}d=8}else d=8;while(0);if((d|0)==8){d=i[b>>0]|0;i[a>>0]=d;if(d<<24>>24)do{b=b+1|0;a=a+1|0;d=i[b>>0]|0;i[a>>0]=d}while(d<<24>>24!=0)}return a|0}function vl(a,b){a=a|0;b=b|0;var c=0,d=0;d=i[a>>0]|0;c=i[b>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=c<<24>>24)b=d;else{do{a=a+1|0;b=b+1|0;d=i[a>>0]|0;c=i[b>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=c<<24>>24));b=d}return (b&255)-(c&255)|0}function wl(a,b){a=a|0;b=b|0;ul(a,b)|0;return a|0}function xl(a){a=a|0;var b=0,c=0,d=0;d=a;a:do if(!(d&3))c=4;else{b=a;a=d;while(1){if(!(i[b>>0]|0))break a;b=b+1|0;a=b;if(!(a&3)){a=b;c=4;break}}}while(0);if((c|0)==4){while(1){b=k[a>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))a=a+4|0;else break}if((b&255)<<24>>24)do a=a+1|0;while((i[a>>0]|0)!=0)}return a-d|0}function yl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(!c)b=0;else{d=i[a>>0]|0;a:do if(!(d<<24>>24))d=0;else while(1){c=c+-1|0;e=i[b>>0]|0;if(!(d<<24>>24==e<<24>>24&((c|0)!=0&e<<24>>24!=0)))break a;a=a+1|0;b=b+1|0;d=i[a>>0]|0;if(!(d<<24>>24)){d=0;break}}while(0);b=(d&255)-(l[b>>0]|0)|0}return b|0}function zl(a){a=a|0;var b=0;b=a;while(1)if(!(k[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=k[b>>2];if(!c)break;else{b=b+4|0;d=d+4|0}}}return a|0}function Bl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(c|0)==0;if(a-b>>2>>>0>>0){if(!d)do{c=c+-1|0;k[a+(c<<2)>>2]=k[b+(c<<2)>>2]}while((c|0)!=0)}else if(!d){d=b;b=a;while(1){c=c+-1|0;k[b>>2]=k[d>>2];if(!c)break;else{d=d+4|0;b=b+4|0}}}return a|0}function Cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(c){d=a;while(1){c=c+-1|0;k[d>>2]=b;if(!c)break;else d=d+4|0}}return a|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;g=a+4|0;c=k[g>>2]|0;h=a+100|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;switch(c|0){case 43:case 45:{d=(c|0)==45&1;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0;if((b|0)!=0&(c+-48|0)>>>0>9?(k[h>>2]|0)!=0:0){k[g>>2]=(k[g>>2]|0)+-1;f=d}else f=d;break}default:f=0}if((c+-48|0)>>>0>9)if(!(k[h>>2]|0)){d=-2147483648;c=0}else{k[g>>2]=(k[g>>2]|0)+-1;d=-2147483648;c=0}else{d=0;do{d=c+-48+(d*10|0)|0;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&(d|0)<214748364);b=((d|0)<0)<<31>>31;if((c+-48|0)>>>0<10){do{b=Dw(d|0,b|0,10,0)|0;d=M;c=tw(c|0,((c|0)<0)<<31>>31|0,-48,-1)|0;d=tw(c|0,M|0,b|0,d|0)|0;b=M;c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&d>>>0<2061584302));e=d}else e=d;if((c+-48|0)>>>0<10)do{c=k[g>>2]|0;if(c>>>0<(k[h>>2]|0)>>>0){k[g>>2]=c+1;c=l[c>>0]|0}else c=rk(a)|0}while((c+-48|0)>>>0<10);if(k[h>>2]|0)k[g>>2]=(k[g>>2]|0)+-1;a=(f|0)!=0;c=rw(0,0,e|0,b|0)|0;d=a?M:b;c=a?c:e}M=d;return c|0}function El(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Fl(a){a=a|0;if(!(k[a+68>>2]|0))Uk(a);return}function Gl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=a+20|0;f=a+28|0;if((k[b>>2]|0)>>>0>(k[f>>2]|0)>>>0?(Qb[k[a+36>>2]&63](a,0,0)|0,(k[b>>2]|0)==0):0)b=-1;else{g=a+4|0;c=k[g>>2]|0;d=a+8|0;e=k[d>>2]|0;if(c>>>0>>0)Qb[k[a+40>>2]&63](a,c-e|0,1)|0;k[a+16>>2]=0;k[f>>2]=0;k[b>>2]=0;k[d>>2]=0;k[g>>2]=0;b=0}return b|0} - -// EMSCRIPTEN_END_FUNCS -var Ib=[cx,_q,cr,Yr,as,fs,hs,Hu,Su,cx,cx,cx,cx,cx,cx,cx];var Jb=[dx,si,gi,Wh,Kh,yh,mh,ah,Lg,Wj,Vj,Sj,dx,dx,dx,dx];var Kb=[ex,ls,rs,ex];var Lb=[fx,oi,pi,ci,di,Sh,Th,Gh,Hh,uh,vh,ih,jh,Yg,Zg,Hg,Ig,ug,vg,ig,jg,Yf,Zf,Mf,Nf,Af,Bf,Ie,Je,ve,we,Dc,Ec,Zd,be,_d,mo,oo,no,po,ud,vd,_i,wd,nd,od,Sc,Tc,_c,$c,fd,gd,xd,yd,Ed,Fd,Ld,Md,Sd,Td,te,ue,Re,Se,Ye,Ze,df,ef,lf,mf,Wg,Xg,Nm,Ai,Ki,Li,$i,aj,pj,qj,wj,xj,Bj,Cj,Ej,Hj,Fj,Gj,Ij,Jj,Mn,bm,hm,xn,mm,sm,Lm,Mm,yn,Nn,$n,bo,ao,co,go,io,ho,jo,uo,wo,vo,xo,Eo,Fo,pn,Go,Ho,Io,Ko,Us,Oo,Po,To,Uo,gp,hp,Ap,Bp,Pp,Qp,aq,bq,zq,Aq,Xq,Zq,ar,br,er,fr,pr,qr,Ar,Br,Lr,Mr,Wr,Xr,ds,es,js,ks,ps,qs,vs,ws,As,Bs,Is,Js,kt,lt,Gu,Dt,du,eu,fu,gu,Jo,Ts,Ws,ut,Lt,Tt,$t,au,bj,Si,jj,Cc,zn,fo,ie,Og,ek,El,Fl,Wl,wk,Zr,$r,Vs,Qv,Xv,Yv,Zv,_v,$v,aw,Sm,en,Ql,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx,fx];var Mb=[gx,ri,fi,Vh,Jh,xh,lh,$g,Kg,wg,kg,_f,Of,Cf,Ke,xe,Fc,An,Mi,Pi,cm,gm,nm,rm,Pn,ir,jr,kr,lr,nr,or,tr,ur,vr,wr,yr,zr,Er,Fr,Gr,Hr,Jr,Kr,Pr,Qr,Rr,Sr,Ur,Vr,zs,Es,lu,nu,pu,mu,ou,qu,uc,cj,Qi,Ri,Ti,un,Mc,Oc,qo,on,_m,he,Be,tf,Gf,Sf,cg,og,Ag,Ng,ch,oh,Ah,Mh,Yh,ii,ui,Ii,hj,Cm,Am,sn,yo,Bm,Ym,jn,hn,kv,lv,mv,nv,ov,pv,Ct,qv,rv,sv,tv,uv,vv,wv,xv,yv,zv,Av,Bv,Cv,Dv,Ev,Fv,Gv,Hv,Iv,Jv,Kv,Lv,Mv,Ov,gw,gx,gx];var Nb=[hx,Vo,Wo,Xo,Yo,Zo,_o,$o,ap,bp,cp,dp,ip,jp,kp,lp,mp,np,op,pp,qp,rp,sp,Hp,Jp,Up,Wp,dq,eq,fq,hq,jq,Cq,Dq,Eq,Gq,Iq,os,us,md,cv,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx,hx];var Ob=[ix,En,Fn,rd,In,Bi,rj,yj,Dj,Wk,dm,Un,Wn,Xn,Tn,im,jm,om,Hn,tm,um,Ao,cq,su,uu,wu,Cu,Eu,yu,Au,Bq,tu,vu,xu,Du,Fu,zu,Bu,gr,hr,mr,rr,sr,xr,Cr,Dr,Ir,Nr,Or,Tr,Ht,It,Kt,hu,ju,iu,ku,yt,zt,Bt,Pt,Qt,St,Xt,Yt,_t,Ei,lj,tn,Vi,eo,ko,jx,kx,lx,Ak,zl,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix,ix];var Pb=[mx,_r,gs,mx];var Qb=[nx,Bn,Gn,Kn,Em,Fm,Kj,Ll,Zk,Yk,Xk,_k,Qn,Vn,em,Zn,pm,No,So,xs,Cs,nt,pt,st,Xs,ct,ft,it,Nc,Il,$m,zk,hv,jv,Pk,Ok,Jk,ll,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx,nx];var Rb=[ox,ns,ts,ox];var Sb=[px,pd,Zj,Yj,Xj,Rn,Cn,ys,Ds,px,px,px,px,px,px,px];var Tb=[qx,Gp,Mp,Tp,Yp,qx,qx,qx];var Ub=[rx,bs,is,ms,ss,rx,rx,rx];var Vb=[sx,qi,ei,Uh,Ih,wh,kh,_g,Jg,yg,mg,ag,Qf,Ef,Me,ze,Hc,sd,td,Yn,fm,km,_n,Jn,qm,vm,Ln,mt,ot,qt,at,dt,gt,dj,yc,Ac,so,Ss,to,yk,xk,Um,fn,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx,sx];var Wb=[tx,Lo,Qo,Cp,Dp,Ip,Op,Rp,Sp,Vp,_p,tt,Gt,Jt,jt,xt,At,Ot,Rt,Wt,Zt,Qk,Mk,tx,tx,tx,tx,tx,tx,tx,tx,tx];var Xb=[ux,jw,iw,hw];var Yb=[vx,vc,kj,fp,Ls,Ms,Ns,hk,jk,ik,vx,vx,vx,vx,vx,vx];var Zb=[wx,xg,lg,$f,Pf,Df,Le,ye,Gc,rt,Zs,_s,$s,ht,Di,Ji,Ru,bv,Nk,uk,Kk,pw,ow,nw,mw,lw,kw,wx,wx,wx,wx,wx];var _b=[xx,Dm,Ci,Bo,ej,Qm,yx,Km,Wm,Ui,Hm,Do,fv,gv,iv,cn];var $b=[zx,Ax,bk,Bx,ck,Cx,ak,zx];var ac=[Dx,lq,Kq,Et,Ft,vt,wt,Mt,Nt,Ut,Vt,Dx,Dx,Dx,Dx,Dx];var bc=[Ex,Kp,Np,Xp,Zp,Ex,Ex,Ex];var cc=[Fx,ce,de,$d,ae,qd,Uc,Vc,ad,bd,hd,id,zd,Ad,Gd,Hd,Nd,Od,Ud,Vd,Te,Ue,_e,$e,ff,gf,nf,of,Mj,Nj,Pj,Sn,Dn,Mo,Ro,nc,Jm,Ic,Jc,Kc,Lc,Pc,Qc,Rc,Ne,Oe,Pe,Qe,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx,Fx];return{_jpegls_encode:gj,___cxa_can_catch:_j,_free:Ql,_jpegls_decode:fj,___cxa_is_pointer_type:$j,_i64Add:tw,_memmove:xw,_i64Subtract:rw,_memset:sw,_malloc:Pl,_memcpy:vw,_bitshift64Lshr:uw,_bitshift64Shl:ww,__GLOBAL__I_000101:Xl,__GLOBAL__sub_I_jpegls_cpp:Bc,__GLOBAL__sub_I_iostream_cpp:Yl,runPostSets:qw,_emscripten_replace_memory:Hb,stackAlloc:dc,stackSave:ec,stackRestore:fc,establishStackSpace:gc,setThrew:hc,setTempRet0:kc,getTempRet0:lc,dynCall_iiiiiiii:Hw,dynCall_viiiii:Iw,dynCall_iiiiiid:Jw,dynCall_vi:Kw,dynCall_vii:Lw,dynCall_iiiiiii:Mw,dynCall_ii:Nw,dynCall_iiiiiiiiiiii:Ow,dynCall_iiii:Pw,dynCall_viiiiiiiiiiiiiii:Qw,dynCall_viiiiii:Rw,dynCall_viiiiiii:Sw,dynCall_viiiiiiiiii:Tw,dynCall_iii:Uw,dynCall_iiiiii:Vw,dynCall_diii:Ww,dynCall_i:Xw,dynCall_iiiii:Yw,dynCall_viii:Zw,dynCall_v:_w,dynCall_iiiiiiiii:$w,dynCall_iiiiid:ax,dynCall_viiii:bx}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _jpegls_encode=Module["_jpegls_encode"]=asm["_jpegls_encode"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var _jpegls_decode=Module["_jpegls_decode"]=asm["_jpegls_decode"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var __GLOBAL__sub_I_jpegls_cpp=Module["__GLOBAL__sub_I_jpegls_cpp"]=asm["__GLOBAL__sub_I_jpegls_cpp"];var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=asm["dynCall_iiiiiiiiiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=asm["dynCall_viiiiiiiiiiiiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_diii=Module["dynCall_diii"]=asm["dynCall_diii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() - - - - - - return Module; +"use strict"; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = CharLS; -} - -}).call(this)}).call(this,require('_process'),"/lib") -},{"_process":20,"fs":6,"path":19}],2:[function(require,module,exports){ -/* - Copyright 2011 notmasteryet - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ -// - The JPEG specification can be found in the ITU CCITT Recommendation T.81 -// (www.w3.org/Graphics/JPEG/itu-t81.pdf) -// - The JFIF specification can be found in the JPEG File Interchange Format -// (www.w3.org/Graphics/JPEG/jfif3.pdf) -// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters -// in PostScript Level 2, Technical Note #5116 -// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf) - -var ColorSpace = {Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4}; -var JpegImage = (function jpegImage() { +// src/compression-utils.js +var require_compression_utils = __commonJS({ + "src/compression-utils.js"(exports2, module2) { "use strict"; - var dctZigZag = new Int32Array([ - 0, - 1, 8, - 16, 9, 2, - 3, 10, 17, 24, - 32, 25, 18, 11, 4, - 5, 12, 19, 26, 33, 40, - 48, 41, 34, 27, 20, 13, 6, - 7, 14, 21, 28, 35, 42, 49, 56, - 57, 50, 43, 36, 29, 22, 15, - 23, 30, 37, 44, 51, 58, - 59, 52, 45, 38, 31, - 39, 46, 53, 60, - 61, 54, 47, - 55, 62, - 63 - ]); - - var dctCos1 = 4017; // cos(pi/16) - var dctSin1 = 799; // sin(pi/16) - var dctCos3 = 3406; // cos(3*pi/16) - var dctSin3 = 2276; // sin(3*pi/16) - var dctCos6 = 1567; // cos(6*pi/16) - var dctSin6 = 3784; // sin(6*pi/16) - var dctSqrt2 = 5793; // sqrt(2) - var dctSqrt1d2 = 2896; // sqrt(2) / 2 - - function constructor() { - } - - function buildHuffmanTable(codeLengths, values) { - var k = 0, code = [], i, j, length = 16; - while (length > 0 && !codeLengths[length - 1]) - length--; - code.push({children: [], index: 0}); - var p = code[0], q; - for (i = 0; i < length; i++) { - for (j = 0; j < codeLengths[i]; j++) { - p = code.pop(); - p.children[p.index] = values[k]; - while (p.index > 0) { - p = code.pop(); - } - p.index++; - code.push(p); - while (code.length <= i) { - code.push(q = {children: [], index: 0}); - p.children[p.index] = q.children; - p = q; - } - k++; - } - if (i + 1 < length) { - // p here points to last code - code.push(q = {children: [], index: 0}); - p.children[p.index] = q.children; - p = q; - } + var daikon2 = daikon2 || {}; + daikon2.CompressionUtils = daikon2.CompressionUtils || {}; + daikon2.CompressionUtils.JPEG_MAGIC_NUMBER = [255, 216]; + daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER = [255, 79, 255, 81]; + daikon2.CompressionUtils.isHeaderJPEG = function(data) { + if (data) { + if (data.getUint8(0) !== daikon2.CompressionUtils.JPEG_MAGIC_NUMBER[0]) { + return false; } - return code[0].children; - } - - function getBlockBufferOffset(component, row, col) { - return 64 * ((component.blocksPerLine + 1) * row + col); - } - - function decodeScan(data, offset, - frame, components, resetInterval, - spectralStart, spectralEnd, - successivePrev, successive) { - var precision = frame.precision; - var samplesPerLine = frame.samplesPerLine; - var scanLines = frame.scanLines; - var mcusPerLine = frame.mcusPerLine; - var progressive = frame.progressive; - var maxH = frame.maxH, maxV = frame.maxV; - - var startOffset = offset, bitsData = 0, bitsCount = 0; - - function readBit() { - if (bitsCount > 0) { - bitsCount--; - return (bitsData >> bitsCount) & 1; - } - bitsData = data[offset++]; - if (bitsData == 0xFF) { - var nextByte = data[offset++]; - if (nextByte) { - throw "unexpected marker: " + ((bitsData << 8) | nextByte).toString(16); - } - // unstuff 0 - } - bitsCount = 7; - return bitsData >>> 7; + if (data.getUint8(1) !== daikon2.CompressionUtils.JPEG_MAGIC_NUMBER[1]) { + return false; } - - function decodeHuffman(tree) { - var node = tree; - var bit; - while ((bit = readBit()) !== null) { - node = node[bit]; - if (typeof node === 'number') - return node; - if (typeof node !== 'object') - throw "invalid huffman sequence"; - } - return null; + return true; + } + return false; + }; + daikon2.CompressionUtils.isHeaderJPEG2000 = function(data) { + var ctr; + if (data) { + for (ctr = 0; ctr < daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER.length; ctr += 1) { + if (data.getUint8(ctr) !== daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER[ctr]) { + return false; + } } + return true; + } + return false; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.CompressionUtils; + } + } +}); - function receive(length) { - var n = 0; - while (length > 0) { - var bit = readBit(); - if (bit === null) - return; - n = (n << 1) | bit; - length--; - } - return n; +// node_modules/@wearemothership/dicom-character-set/dist/dicom-character-set.min.js +var require_dicom_character_set_min = __commonJS({ + "node_modules/@wearemothership/dicom-character-set/dist/dicom-character-set.min.js"(exports2, module2) { + !function(e, n) { + "object" == typeof exports2 && "object" == typeof module2 ? module2.exports = n() : "function" == typeof define && define.amd ? define([], n) : "object" == typeof exports2 ? exports2["dicom-character-set"] = n() : e["dicom-character-set"] = n(); + }(exports2, function() { + return (() => { + "use strict"; + var o = { d: (e2, n2) => { + for (var t in n2) + o.o(n2, t) && !o.o(e2, t) && Object.defineProperty(e2, t, { enumerable: true, get: n2[t] }); + }, o: (e2, n2) => Object.prototype.hasOwnProperty.call(e2, n2), r: (e2) => { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true }); + } }, e = {}; + o.r(e), o.d(e, { characterSets: () => i2, convertBytes: () => function(e2, n2, t) { + return g(y, r, e2, n2, t); + }, convertBytesPromise: () => function(e2, n2, t) { + return g(P, m, e2, n2, t); + } }); + var n = { codeElement: "G0", escapeSequence: [27, 40, 66], encoding: "windows-1252", isASCII: true, bytesPerCodePoint: 1 }, i2 = { "ISO_IR 6": { encoding: "utf-8" }, "ISO_IR 100": { encoding: "windows-1252" }, "ISO_IR 101": { encoding: "iso-8859-2" }, "ISO_IR 109": { encoding: "iso-8859-3" }, "ISO_IR 110": { encoding: "iso-8859-4" }, "ISO_IR 144": { encoding: "iso-8859-5" }, "ISO_IR 127": { encoding: "iso-8859-6" }, "ISO_IR 126": { encoding: "iso-8859-7" }, "ISO_IR 138": { encoding: "iso-8859-8" }, "ISO_IR 148": { encoding: "windows-1254" }, "ISO_IR 13": { encoding: "shift-jis" }, "ISO_IR 166": { encoding: "tis-620" }, "ISO 2022 IR 6": { extension: true, elements: [n] }, "ISO 2022 IR 100": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 65], encoding: "windows-1252", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 101": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 66], encoding: "iso-8859-2", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 109": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 67], encoding: "iso-8859-3", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 110": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 68], encoding: "iso-8859-4", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 144": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 76], encoding: "iso-8859-5", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 127": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 71], encoding: "iso-8859-6", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 126": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 70], encoding: "iso-8859-7", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 138": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 72], encoding: "iso-8859-8", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 148": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 77], encoding: "windows-1254", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 13": { extension: true, elements: [{ codeElement: "G0", escapeSequence: [27, 40, 74], encoding: "shift-jis", bytesPerCodePoint: 1 }, { codeElement: "G1", escapeSequence: [27, 41, 73], encoding: "shift-jis", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 166": { extension: true, elements: [n, { codeElement: "G1", escapeSequence: [27, 45, 84], encoding: "tis-620", bytesPerCodePoint: 1 }] }, "ISO 2022 IR 87": { extension: true, multiByte: true, elements: [{ codeElement: "G0", escapeSequence: [27, 36, 66], encoding: "euc-jp", setHighBit: true, bytesPerCodePoint: 2 }] }, "ISO 2022 IR 159": { extension: true, multiByte: true, elements: [{ codeElement: "G0", escapeSequence: [27, 36, 40, 68], encoding: "euc-jp", isJISX0212: true, bytesPerCodePoint: 2 }] }, "ISO 2022 IR 149": { extension: true, multiByte: true, elements: [{ codeElement: "G1", escapeSequence: [27, 36, 41, 67], encoding: "euc-kr", bytesPerCodePoint: 2 }] }, "ISO 2022 IR 58": { extension: true, multiByte: true, elements: [{ codeElement: "G1", escapeSequence: [27, 36, 41, 65], encoding: "gb18030", bytesPerCodePoint: 2 }] }, "ISO_IR 192": { encoding: "utf-8", multiByte: true }, GB18030: { encoding: "gb18030", multiByte: true }, GBK: { encoding: "gbk", multiByte: true } }, l = 27, c = 10, s = 12, u = 13, d = 9, a = 92, f = 61, I = 94; + function S(e2) { + return e2.replace(/~/g, "\u203E").replace(/\\/g, "\xA5"); } - - function receiveAndExtend(length) { - var n = receive(length); - if (n >= 1 << (length - 1)) - return n; - return n + (-1 << length) + 1; + function r(e2, n2, t, o2, r2) { + r2 = b(n2, t, o2, r2); + return e2 + y(n2.encoding, r2); } - - function decodeBaseline(component, offset) { - var t = decodeHuffman(component.huffmanTableDC); - var diff = t === 0 ? 0 : receiveAndExtend(t); - component.blockData[offset] = (component.pred += diff); - var k = 1; - while (k < 64) { - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15, r = rs >> 4; - if (s === 0) { - if (r < 15) - break; - k += 16; - continue; + function m(e2, t, n2, o2, r2) { + var i3 = b(t, n2, o2, r2); + return ("" === e2 ? Promise.resolve("") : e2).then(function(n3) { + return P(t.encoding, i3).then(function(e3) { + return n3 + e3; + }); + }); + } + function g(e2, n2, t, o2, r2) { + !function(e3, n3) { + if (n3 && !(n3 instanceof Uint8Array)) + throw new Error("bytes must be a Uint8Array"); + if (e3 && "string" != typeof e3) + throw new Error("specificCharacterSet must be a string"); + }(t, o2); + t = function(e3) { + e3 = e3 ? e3.split("\\").map(function(e4) { + return e4.trim().toUpperCase(); + }) : [""]; + "" === e3[0] && (e3[0] = 1 < e3.length ? "ISO 2022 IR 6" : "ISO_IR 6"); + if (e3.some(function(e4) { + return void 0 === i2[e4]; + })) + throw new Error("Invalid specific character set specified."); + return function(e4) { + for (var n3 = 1 < e4.length, t2 = [], o3 = 0; o3 < e4.length; o3++) { + var r3 = e4[o3]; + t2.includes(r3) || t2.push(n3 ? r3.replace("ISO_IR", "ISO 2022 IR") : r3); + } + return t2; + }(e3 = function(e4) { + var n3 = i2[e4[0]]; + return !n3.multiByte || n3.extension ? e4.filter(function(e5) { + return !i2[e5].multiByte || i2[e5].extension; + }) : [e4[0]]; + }(e3)); + }(t); + if (1 === t.length && !t[0].startsWith("ISO 2022")) + return e2(i2[t[0]].encoding, o2); + r2 = r2 || {}; + return function(e3, n3, t2, o3) { + var r3 = ""; + if (!n3 || 0 === n3.length) + return r3; + var i3 = { G0: e3[0].elements.find(function(e4) { + return "G0" === e4.codeElement; + }), G1: e3[0].elements.find(function(e4) { + return "G1" === e4.codeElement; + }) }, c2 = Object.assign({}, i3), s2 = 0, u2 = void 0, d2 = 0; + for (; d2 < n3.length; ) { + u2 = u2 || h(n3[s2], c2); + var a2 = function(e4, n4, t3, o4, r4, i4) { + for (var c3 = n4; c3 < e4.length; c3 += t3.bytesPerCodePoint) { + if (e4[c3] === l) + return { escapeSequence: true, index: c3 }; + 1 === t3.bytesPerCodePoint && i4.includes(e4[c3]) && Object.assign(o4, r4); + var s3 = h(e4[c3], o4); + if (t3 && s3 !== t3) + return { characterSet: s3, index: c3 }; } - k += r; - var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s); - k++; + return { index: e4.length }; + }(n3, s2, u2, c2, i3, t2); + d2 = a2.index, s2 < d2 && (r3 = o3(r3, u2, n3, s2, d2)), s2 = d2, u2 = a2.characterSet, a2.escapeSequence && (a2 = function(e4, n4, t3) { + for (var o4 = 0; o4 < t3.length; o4++) + for (var r4 = t3[o4], i4 = 0; i4 < r4.elements.length; i4++) { + var c3 = r4.elements[i4]; + if (function(e5, n5, t4) { + for (var o5 = 0; o5 < e5.length; o5++) { + if (t4 + o5 >= n5.length) + return false; + if (n5[t4 + o5] !== e5[o5]) + return false; + } + return true; + }(c3.escapeSequence, e4, n4)) + return c3; + } + throw new Error("Unknown escape sequence encountered at byte " + n4); + }(n3, d2, e3), c2[a2.codeElement] = a2, s2 += a2.escapeSequence.length); } + return r3; + }(t.map(function(e3) { + return i2[e3]; + }), o2, function(e3) { + var n3 = (e3 || "").trim().toUpperCase(), e3 = [c, s, u, d]; + ["UT", "ST", "LT"].includes(n3) || e3.push(a); + "PN" === n3 && (e3.push(f), e3.push(I)); + return e3; + }(r2.vr), n2); } - - function decodeDCFirst(component, offset) { - var t = decodeHuffman(component.huffmanTableDC); - var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive); - component.blockData[offset] = (component.pred += diff); + var p = {}; + function y(e2, n2) { + var t = p[e2]; + return t || (t = new TextDecoder(e2), p[e2] = t = "shift-jis" === e2 ? { textDecoder: t, decode: function(e3) { + return S(t.decode(e3)); + } } : t), t.decode(n2); } - - function decodeDCSuccessive(component, offset) { - component.blockData[offset] |= readBit() << successive; + function P(o2, r2) { + return new Promise(function(e2) { + var n2 = new FileReader(); + n2.onload = "shift-jis" === o2 ? function() { + return e2(S(n2.result)); + } : function() { + return e2(n2.result); + }; + var t = new Blob([r2]); + n2.readAsText(t, o2); + }); } - - var eobrun = 0; - function decodeACFirst(component, offset) { - if (eobrun > 0) { - eobrun--; - return; - } - var k = spectralStart, e = spectralEnd; - while (k <= e) { - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15, r = rs >> 4; - if (s === 0) { - if (r < 15) { - eobrun = receive(r) + (1 << r) - 1; - break; - } - k += 16; - continue; - } - k += r; - var z = dctZigZag[k]; - component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive); - k++; - } + function h(e2, n2) { + return 127 < e2 && n2.G1 ? n2.G1 : n2.G0 || (n2.G1 && 1 === n2.G1.bytesPerCodePoint ? n2.G1 : i2["ISO 2022 IR 6"].elements[0]); } - - var successiveACState = 0, successiveACNextValue; - function decodeACSuccessive(component, offset) { - var k = spectralStart, e = spectralEnd, r = 0; - while (k <= e) { - var z = dctZigZag[k]; - switch (successiveACState) { - case 0: // initial state - var rs = decodeHuffman(component.huffmanTableAC); - var s = rs & 15; - r = rs >> 4; - if (s === 0) { - if (r < 15) { - eobrun = receive(r) + (1 << r); - successiveACState = 4; - } else { - r = 16; - successiveACState = 1; - } - } else { - if (s !== 1) - throw "invalid ACn encoding"; - successiveACNextValue = receiveAndExtend(s); - successiveACState = r ? 2 : 3; - } - continue; - case 1: // skipping r zero items - case 2: - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } else { - r--; - if (r === 0) - successiveACState = successiveACState == 2 ? 3 : 0; - } - break; - case 3: // set value for a zero item - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } else { - component.blockData[offset + z] = successiveACNextValue << successive; - successiveACState = 0; - } - break; - case 4: // eob - if (component.blockData[offset + z]) { - component.blockData[offset + z] += (readBit() << successive); - } - break; - } - k++; - } - if (successiveACState === 4) { - eobrun--; - if (eobrun === 0) - successiveACState = 0; - } + function b(e2, n2, t, o2) { + var r2 = void 0; + return e2.isJISX0212 ? r2 = function(e3, n3, t2) { + var o3 = t2 - n3; + if (o3 % 2 != 0) + throw new Error("JIS X string with a character not having exactly two bytes!"); + for (var r3 = new Uint8Array(o3 + o3 / 2), i3 = 0, c2 = n3; c2 < t2; c2 += 2) + r3[i3++] = 143, r3[i3++] = 128 | e3[c2], r3[i3++] = 128 | e3[c2 + 1]; + return r3; + }(n2, t, o2) : ((r2 = new Uint8Array(o2 - t)).set(new Uint8Array(n2.buffer, n2.byteOffset + t, o2 - t)), e2.setHighBit && function(e3) { + for (var n3 = 0; n3 < e3.length; n3++) + e3[n3] |= 128; + }(r2)), r2; } + return e; + })(); + }); + } +}); - function decodeMcu(component, decode, mcu, row, col) { - var mcuRow = (mcu / mcusPerLine) | 0; - var mcuCol = mcu % mcusPerLine; - var blockRow = mcuRow * component.v + row; - var blockCol = mcuCol * component.h + col; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); +// src/utilities.js +var require_utilities = __commonJS({ + "src/utilities.js"(exports2, module2) { + "use strict"; + var convertBytes = require_dicom_character_set_min().convertBytes; + var daikon2 = daikon2 || {}; + daikon2.Utils = daikon2.Utils || {}; + daikon2.Utils.crcTable = null; + daikon2.Utils.MAX_VALUE = 9007199254740991; + daikon2.Utils.MIN_VALUE = -9007199254740991; + daikon2.Utils.dec2hex = function(i2) { + return (i2 + 65536).toString(16).substr(-4).toUpperCase(); + }; + daikon2.Utils.createArray = function(length) { + var arr = new Array(length || 0), i2 = length; + if (arguments.length > 1) { + var args = Array.prototype.slice.call(arguments, 1); + while (i2--) + arr[length - 1 - i2] = daikon2.Utils.createArray.apply(this, args); + } + return arr; + }; + daikon2.Utils.getStringAt = function(dataview, start, length, charset, vr) { + var strBuff = new Uint8Array(dataview.buffer, dataview.byteOffset + start, length); + var str = convertBytes(charset || "ISO 2022 IR 6", strBuff, { vr }); + while (str && str.charCodeAt(str.length - 1) === 0) { + str = str.slice(0, -1); + } + return str; + }; + daikon2.Utils.trim = function(str) { + return str.replace(/^\s\s*/, "").replace(/\s\s*$/, ""); + }; + daikon2.Utils.stripLeadingZeros = function(str) { + return str.replace(/^[0]+/g, ""); + }; + daikon2.Utils.safeParseInt = function(str) { + str = daikon2.Utils.stripLeadingZeros(str); + if (str.length > 0) { + return parseInt(str, 10); + } + return 0; + }; + daikon2.Utils.convertCamcelCaseToTitleCase = function(str) { + var result = str.replace(/([A-Z][a-z])/g, " $1"); + return daikon2.Utils.trim(result.charAt(0).toUpperCase() + result.slice(1)); + }; + daikon2.Utils.safeParseFloat = function(str) { + str = daikon2.Utils.stripLeadingZeros(str); + if (str.length > 0) { + return parseFloat(str); + } + return 0; + }; + daikon2.Utils.bytesToDouble = function(data) { + var sign = (data[0] & 1 << 7) >> 7; + var exponent = (data[0] & 127) << 4 | (data[1] & 15 << 4) >> 4; + if (exponent == 0) + return 0; + if (exponent == 2047) + return sign ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + var mul = Math.pow(2, exponent - 1023 - 52); + var mantissa = data[7] + data[6] * Math.pow(2, 8) + data[5] * Math.pow(2, 8 * 2) + data[4] * Math.pow(2, 8 * 3) + data[3] * Math.pow(2, 8 * 4) + data[2] * Math.pow(2, 8 * 5) + (data[1] & 15) * Math.pow(2, 8 * 6) + Math.pow(2, 52); + return Math.pow(-1, sign) * mantissa * mul; + }; + daikon2.Utils.concatArrayBuffers = function(buffer1, buffer2) { + var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); + tmp.set(new Uint8Array(buffer1), 0); + tmp.set(new Uint8Array(buffer2), buffer1.byteLength); + return tmp.buffer; + }; + daikon2.Utils.concatArrayBuffers2 = function(buffers) { + var length = 0, offset = 0, ctr; + for (ctr = 0; ctr < buffers.length; ctr += 1) { + length += buffers[ctr].byteLength; + } + var tmp = new Uint8Array(length); + for (ctr = 0; ctr < buffers.length; ctr += 1) { + tmp.set(new Uint8Array(buffers[ctr]), offset); + offset += buffers[ctr].byteLength; + } + return tmp.buffer; + }; + daikon2.Utils.fillBuffer = function(array, buffer2, offset, numBytes) { + var ctr; + if (numBytes === 1) { + for (ctr = 0; ctr < array.length; ctr += 1) { + buffer2.setUint8(offset + ctr, array[ctr]); } - - function decodeBlock(component, decode, mcu) { - var blockRow = (mcu / component.blocksPerLine) | 0; - var blockCol = mcu % component.blocksPerLine; - var offset = getBlockBufferOffset(component, blockRow, blockCol); - decode(component, offset); + } else if (numBytes === 2) { + for (ctr = 0; ctr < array.length; ctr += 1) { + buffer2.setUint16(offset + ctr * 2, array[ctr], true); } - - var componentsLength = components.length; - var component, i, j, k, n; - var decodeFn; - if (progressive) { - if (spectralStart === 0) - decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; - else - decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; - } else { - decodeFn = decodeBaseline; + } + }; + daikon2.Utils.fillBufferRGB = function(array, buffer2, offset) { + var r, g, b, ctr, numElements = parseInt(array.length / 3); + for (ctr = 0; ctr < numElements; ctr += 1) { + r = array[ctr * 3]; + g = array[ctr * 3 + 1]; + b = array[ctr * 3 + 2]; + buffer2.setUint8(offset + ctr, parseInt((r + b + g) / 3), true); + } + }; + daikon2.Utils.bind = function(scope, fn, args, appendArgs) { + if (arguments.length === 2) { + return function() { + return fn.apply(scope, arguments); + }; + } + var method = fn, slice = Array.prototype.slice; + return function() { + var callArgs = args || arguments; + if (appendArgs === true) { + callArgs = slice.call(arguments, 0); + callArgs = callArgs.concat(args); + } else if (typeof appendArgs === "number") { + callArgs = slice.call(arguments, 0); + Ext.Array.insert(callArgs, appendArgs, args); } - - var mcu = 0, marker; - var mcuExpected; - if (componentsLength == 1) { - mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + return method.apply(scope || window, callArgs); + }; + }; + daikon2.Utils.toArrayBuffer = function(buffer2) { + var ab, view, i2; + ab = new ArrayBuffer(buffer2.length); + view = new Uint8Array(ab); + for (i2 = 0; i2 < buffer2.length; i2 += 1) { + view[i2] = buffer2[i2]; + } + return ab; + }; + daikon2.Utils.isString = function(s) { + return typeof s === "string" || s instanceof String; + }; + daikon2.Utils.isValidDate = function(d) { + if (Object.prototype.toString.call(d) === "[object Date]") { + if (isNaN(d.getTime())) { + return false; } else { - mcuExpected = mcusPerLine * frame.mcusPerColumn; + return true; } - if (!resetInterval) { - resetInterval = mcuExpected; + } else { + return false; + } + }; + daikon2.Utils.swap32 = function(val) { + return (val & 255) << 24 | (val & 65280) << 8 | val >> 8 & 65280 | val >> 24 & 255; + }; + daikon2.Utils.swap16 = function(val) { + return ((val & 255) << 8 | val >> 8 & 255) << 16 >> 16; + }; + daikon2.Utils.makeCRCTable = function() { + var c; + var crcTable = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } - - var h, v; - while (mcu < mcuExpected) { - // reset interval stuff - for (i = 0; i < componentsLength; i++) { - components[i].pred = 0; - } - eobrun = 0; - - if (componentsLength == 1) { - component = components[0]; - for (n = 0; n < resetInterval; n++) { - decodeBlock(component, decodeFn, mcu); - mcu++; - } - } else { - for (n = 0; n < resetInterval; n++) { - for (i = 0; i < componentsLength; i++) { - component = components[i]; - h = component.h; - v = component.v; - for (j = 0; j < v; j++) { - for (k = 0; k < h; k++) { - decodeMcu(component, decodeFn, mcu, j, k); - } - } - } - mcu++; - } - } - - // find marker - bitsCount = 0; - marker = (data[offset] << 8) | data[offset + 1]; - if (marker <= 0xFF00) { - throw "marker was not found"; - } - - if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx - offset += 2; - } else { - break; - } + crcTable[n] = c; + } + return crcTable; + }; + daikon2.Utils.crc32 = function(dataView) { + var crcTable = daikon2.Utils.crcTable || (daikon2.Utils.crcTable = daikon2.Utils.makeCRCTable()); + var crc = 0 ^ -1; + for (var i2 = 0; i2 < dataView.byteLength; i2++) { + crc = crc >>> 8 ^ crcTable[(crc ^ dataView.getUint8(i2)) & 255]; + } + return (crc ^ -1) >>> 0; + }; + daikon2.Utils.createBitMask = function(numBytes, bitsStored, unsigned) { + var mask = 4294967295; + mask >>>= (4 - numBytes) * 8 + (numBytes * 8 - bitsStored); + if (unsigned) { + if (numBytes == 1) { + mask &= 255; + } else if (numBytes == 2) { + mask &= 65535; + } else if (numBytes == 4) { + mask &= 4294967295; + } else if (numBytes == 8) { + mask = 4294967295; } - - return offset - startOffset; + } else { + mask = 4294967295; + } + return mask; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Utils; } + } +}); - // A port of poppler's IDCT method which in turn is taken from: - // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, - // "Practical Fast 1-D DCT Algorithms with 11 Multiplications", - // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, - // 988-991. - function quantizeAndInverse(component, blockBufferOffset, p) { - var qt = component.quantizationTable; - var v0, v1, v2, v3, v4, v5, v6, v7, t; - var i; - - // dequant - for (i = 0; i < 64; i++) { - p[i] = component.blockData[blockBufferOffset + i] * qt[i]; - } - - // inverse DCT on rows - for (i = 0; i < 8; ++i) { - var row = 8 * i; - - // check for all-zero AC coefficients - if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0 && - p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0 && - p[7 + row] === 0) { - t = (dctSqrt2 * p[0 + row] + 512) >> 10; - p[0 + row] = t; - p[1 + row] = t; - p[2 + row] = t; - p[3 + row] = t; - p[4 + row] = t; - p[5 + row] = t; - p[6 + row] = t; - p[7 + row] = t; - continue; - } - - // stage 4 - v0 = (dctSqrt2 * p[0 + row] + 128) >> 8; - v1 = (dctSqrt2 * p[4 + row] + 128) >> 8; - v2 = p[2 + row]; - v3 = p[6 + row]; - v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8; - v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8; - v5 = p[3 + row] << 4; - v6 = p[5 + row] << 4; - - // stage 3 - t = (v0 - v1 + 1) >> 1; - v0 = (v0 + v1 + 1) >> 1; - v1 = t; - t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; - v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; - v3 = t; - t = (v4 - v6 + 1) >> 1; - v4 = (v4 + v6 + 1) >> 1; - v6 = t; - t = (v7 + v5 + 1) >> 1; - v5 = (v7 - v5 + 1) >> 1; - v7 = t; +// src/dictionary.js +var require_dictionary = __commonJS({ + "src/dictionary.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Dictionary = daikon2.Dictionary || {}; + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Dictionary.dictPrivate = { + "0207": { + "101F": ["FE", "ElscintDataScale"] + // uses special Elscint double type (see Tag class) + } + }; + daikon2.Dictionary.dict = { + "0002": { + "0001": ["OB", "FileMetaInformationVersion"], + "0002": ["UI", "MediaStoredSOPClassUID"], + "0003": ["UI", "MediaStoredSOPInstanceUID"], + "0010": ["UI", "TransferSyntaxUID"], + "0012": ["UI", "ImplementationClassUID"], + "0013": ["SH", "ImplementationVersionName"], + "0016": ["AE", "SourceApplicationEntityTitle"], + "0100": ["UI", "PrivateInformationCreatorUID"], + "0102": ["OB", "PrivateInformation"] + }, + "0004": { + "1130": ["CS", "FilesetID"], + "1141": ["CS", "FilesetDescriptorFileFileID"], + "1142": ["CS", "FilesetDescriptorFileFormat"], + "1200": ["UL", "RootDirectoryEntitysFirstDirectoryRecordOffset"], + "1202": ["UL", "RootDirectoryEntitysLastDirectoryRecordOffset"], + "1212": ["US", "File-setConsistenceFlag"], + "1220": ["SQ", "DirectoryRecordSequence"], + "1400": ["UL", "NextDirectoryRecordOffset"], + "1410": ["US", "RecordInuseFlag"], + "1420": ["UL", "ReferencedLowerlevelDirectoryEntityOffset"], + "1430": ["CS", "DirectoryRecordType"], + "1432": ["UI", "PrivateRecordUID"], + "1500": ["CS", "ReferencedFileID"], + "1510": ["UI", "ReferencedSOPClassUIDInFile"], + "1511": ["UI", "ReferencedSOPInstanceUIDInFile"], + "1600": ["UL", "NumberOfReferences"] + }, + "0008": { + "0001": ["UL", "LengthToEnd"], + "0005": ["CS", "SpecificCharacterSet"], + "0006": ["SQ", "LanguageCodeSequence"], + "0008": ["CS", "ImageType"], + "0010": ["SH", "RecognitionCode"], + "0012": ["DA", "InstanceCreationDate"], + "0013": ["TM", "InstanceCreationTime"], + "0014": ["UI", "InstanceCreatorUID"], + "0016": ["UI", "SOPClassUID"], + "0018": ["UI", "SOPInstanceUID"], + "001A": ["UI", "RelatedGeneralSOPClassUID"], + "001B": ["UI", "OriginalSpecializedSOPClassUID"], + "0020": ["DA", "StudyDate"], + "0021": ["DA", "SeriesDate"], + "0022": ["DA", "AcquisitionDate"], + "0023": ["DA", "ContentDate"], + "0024": ["DA", "OverlayDate"], + "0025": ["DA", "CurveDate"], + "002A": ["DT", "AcquisitionDateTime"], + "0030": ["TM", "StudyTime"], + "0031": ["TM", "SeriesTime"], + "0032": ["TM", "AcquisitionTime"], + "0033": ["TM", "ContentTime"], + "0034": ["TM", "OverlayTime"], + "0035": ["TM", "CurveTime"], + "0040": ["US", "DataSetType"], + "0041": ["LO", "DataSetSubtype"], + "0042": ["CS", "NuclearMedicineSeriesType"], + "0050": ["SH", "AccessionNumber"], + "0051": ["SQ", "IssuerOfAccessionNumberSequence"], + "0052": ["CS", "QueryRetrieveLevel"], + "0054": ["AE", "RetrieveAETitle"], + "0056": ["CS", "InstanceAvailability"], + "0058": ["UI", "FailedSOPInstanceUIDList"], + "0060": ["CS", "Modality"], + "0061": ["CS", "ModalitiesInStudy"], + "0062": ["UI", "SOPClassesInStudy"], + "0064": ["CS", "ConversionType"], + "0068": ["CS", "PresentationIntentType"], + "0070": ["LO", "Manufacturer"], + "0080": ["LO", "InstitutionName"], + "0081": ["ST", "InstitutionAddress"], + "0082": ["SQ", "InstitutionCodeSequence"], + "0090": ["PN", "ReferringPhysicianName"], + "0092": ["ST", "ReferringPhysicianAddress"], + "0094": ["SH", "ReferringPhysicianTelephoneNumbers"], + "0096": ["SQ", "ReferringPhysicianIdentificationSequence"], + "0100": ["SH", "CodeValue"], + "0102": ["SH", "CodingSchemeDesignator"], + "0103": ["SH", "CodingSchemeVersion"], + "0104": ["LO", "CodeMeaning"], + "0105": ["CS", "MappingResource"], + "0106": ["DT", "ContextGroupVersion"], + "0107": ["DT", "ContextGroupLocalVersion"], + "010B": ["CS", "ContextGroupExtensionFlag"], + "010C": ["UI", "CodingSchemeUID"], + "010D": ["UI", "ContextGroupExtensionCreatorUID"], + "010F": ["CS", "ContextIdentifier"], + "0110": ["SQ", "CodingSchemeIdentificationSequence"], + "0112": ["LO", "CodingSchemeRegistry"], + "0114": ["ST", "CodingSchemeExternalID"], + "0115": ["ST", "CodingSchemeName"], + "0116": ["ST", "CodingSchemeResponsibleOrganization"], + "0117": ["UI", "ContextUID"], + "0201": ["SH", "TimezoneOffsetFromUTC"], + "1000": ["AE", "NetworkID"], + "1010": ["SH", "StationName"], + "1030": ["LO", "StudyDescription"], + "1032": ["SQ", "ProcedureCodeSequence"], + "103E": ["LO", "SeriesDescription"], + "103F": ["SQ", "SeriesDescriptionCodeSequence"], + "1040": ["LO", "InstitutionalDepartmentName"], + "1048": ["PN", "PhysiciansOfRecord"], + "1049": ["SQ", "PhysiciansOfRecordIdentificationSequence"], + "1050": ["PN", "PerformingPhysicianName"], + "1052": ["SQ", "PerformingPhysicianIdentificationSequence"], + "1060": ["PN", "NameOfPhysiciansReadingStudy"], + "1062": ["SQ", "PhysiciansReadingStudyIdentificationSequence"], + "1070": ["PN", "OperatorsName"], + "1072": ["SQ", "OperatorIdentificationSequence"], + "1080": ["LO", "AdmittingDiagnosesDescription"], + "1084": ["SQ", "AdmittingDiagnosesCodeSequence"], + "1090": ["LO", "ManufacturerModelName"], + "1100": ["SQ", "ReferencedResultsSequence"], + "1110": ["SQ", "ReferencedStudySequence"], + "1111": ["SQ", "ReferencedPerformedProcedureStepSequence"], + "1115": ["SQ", "ReferencedSeriesSequence"], + "1120": ["SQ", "ReferencedPatientSequence"], + "1125": ["SQ", "ReferencedVisitSequence"], + "1130": ["SQ", "ReferencedOverlaySequence"], + "1134": ["SQ", "ReferencedStereometricInstanceSequence"], + "113A": ["SQ", "ReferencedWaveformSequence"], + "1140": ["SQ", "ReferencedImageSequence"], + "1145": ["SQ", "ReferencedCurveSequence"], + "114A": ["SQ", "ReferencedInstanceSequence"], + "114B": ["SQ", "ReferencedRealWorldValueMappingInstanceSequence"], + "1150": ["UI", "ReferencedSOPClassUID"], + "1155": ["UI", "ReferencedSOPInstanceUID"], + "115A": ["UI", "SOPClassesSupported"], + "1160": ["IS", "ReferencedFrameNumber"], + "1161": ["UL", "SimpleFrameList"], + "1162": ["UL", "CalculatedFrameList"], + "1163": ["FD", "TimeRange"], + "1164": ["SQ", "FrameExtractionSequence"], + "1167": ["UI", "MultiFrameSourceSOPInstanceUID"], + "1195": ["UI", "TransactionUID"], + "1197": ["US", "FailureReason"], + "1198": ["SQ", "FailedSOPSequence"], + "1199": ["SQ", "ReferencedSOPSequence"], + "1200": ["SQ", "StudiesContainingOtherReferencedInstancesSequence"], + "1250": ["SQ", "RelatedSeriesSequence"], + "2110": ["CS", "LossyImageCompressionRetired"], + "2111": ["ST", "DerivationDescription"], + "2112": ["SQ", "SourceImageSequence"], + "2120": ["SH", "StageName"], + "2122": ["IS", "StageNumber"], + "2124": ["IS", "NumberOfStages"], + "2127": ["SH", "ViewName"], + "2128": ["IS", "ViewNumber"], + "2129": ["IS", "NumberOfEventTimers"], + "212A": ["IS", "NumberOfViewsInStage"], + "2130": ["DS", "EventElapsedTimes"], + "2132": ["LO", "EventTimerNames"], + "2133": ["SQ", "EventTimerSequence"], + "2134": ["FD", "EventTimeOffset"], + "2135": ["SQ", "EventCodeSequence"], + "2142": ["IS", "StartTrim"], + "2143": ["IS", "StopTrim"], + "2144": ["IS", "RecommendedDisplayFrameRate"], + "2200": ["CS", "TransducerPosition"], + "2204": ["CS", "TransducerOrientation"], + "2208": ["CS", "AnatomicStructure"], + "2218": ["SQ", "AnatomicRegionSequence"], + "2220": ["SQ", "AnatomicRegionModifierSequence"], + "2228": ["SQ", "PrimaryAnatomicStructureSequence"], + "2229": ["SQ", "AnatomicStructureSpaceOrRegionSequence"], + "2230": ["SQ", "PrimaryAnatomicStructureModifierSequence"], + "2240": ["SQ", "TransducerPositionSequence"], + "2242": ["SQ", "TransducerPositionModifierSequence"], + "2244": ["SQ", "TransducerOrientationSequence"], + "2246": ["SQ", "TransducerOrientationModifierSequence"], + "2251": ["SQ", "AnatomicStructureSpaceOrRegionCodeSequenceTrial"], + "2253": ["SQ", "AnatomicPortalOfEntranceCodeSequenceTrial"], + "2255": ["SQ", "AnatomicApproachDirectionCodeSequenceTrial"], + "2256": ["ST", "AnatomicPerspectiveDescriptionTrial"], + "2257": ["SQ", "AnatomicPerspectiveCodeSequenceTrial"], + "2258": ["ST", "AnatomicLocationOfExaminingInstrumentDescriptionTrial"], + "2259": ["SQ", "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"], + "225A": ["SQ", "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"], + "225C": ["SQ", "OnAxisBackgroundAnatomicStructureCodeSequenceTrial"], + "3001": ["SQ", "AlternateRepresentationSequence"], + "3010": ["UI", "IrradiationEventUID"], + "4000": ["LT", "IdentifyingComments"], + "9007": ["CS", "FrameType"], + "9092": ["SQ", "ReferencedImageEvidenceSequence"], + "9121": ["SQ", "ReferencedRawDataSequence"], + "9123": ["UI", "CreatorVersionUID"], + "9124": ["SQ", "DerivationImageSequence"], + "9154": ["SQ", "SourceImageEvidenceSequence"], + "9205": ["CS", "PixelPresentation"], + "9206": ["CS", "VolumetricProperties"], + "9207": ["CS", "VolumeBasedCalculationTechnique"], + "9208": ["CS", "ComplexImageComponent"], + "9209": ["CS", "AcquisitionContrast"], + "9215": ["SQ", "DerivationCodeSequence"], + "9237": ["SQ", "ReferencedPresentationStateSequence"], + "9410": ["SQ", "ReferencedOtherPlaneSequence"], + "9458": ["SQ", "FrameDisplaySequence"], + "9459": ["FL", "RecommendedDisplayFrameRateInFloat"], + "9460": ["CS", "SkipFrameRangeFlag"] + }, + "0010": { + "0010": ["PN", "PatientName"], + "0020": ["LO", "PatientID"], + "0021": ["LO", "IssuerOfPatientID"], + "0022": ["CS", "TypeOfPatientID"], + "0024": ["SQ", "IssuerOfPatientIDQualifiersSequence"], + "0030": ["DA", "PatientBirthDate"], + "0032": ["TM", "PatientBirthTime"], + "0040": ["CS", "PatientSex"], + "0050": ["SQ", "PatientInsurancePlanCodeSequence"], + "0101": ["SQ", "PatientPrimaryLanguageCodeSequence"], + "0102": ["SQ", "PatientPrimaryLanguageModifierCodeSequence"], + "1000": ["LO", "OtherPatientIDs"], + "1001": ["PN", "OtherPatientNames"], + "1002": ["SQ", "OtherPatientIDsSequence"], + "1005": ["PN", "PatientBirthName"], + "1010": ["AS", "PatientAge"], + "1020": ["DS", "PatientSize"], + "1021": ["SQ", "PatientSizeCodeSequence"], + "1030": ["DS", "PatientWeight"], + "1040": ["LO", "PatientAddress"], + "1050": ["LO", "InsurancePlanIdentification"], + "1060": ["PN", "PatientMotherBirthName"], + "1080": ["LO", "MilitaryRank"], + "1081": ["LO", "BranchOfService"], + "1090": ["LO", "MedicalRecordLocator"], + "2000": ["LO", "MedicalAlerts"], + "2110": ["LO", "Allergies"], + "2150": ["LO", "CountryOfResidence"], + "2152": ["LO", "RegionOfResidence"], + "2154": ["SH", "PatientTelephoneNumbers"], + "2160": ["SH", "EthnicGroup"], + "2180": ["SH", "Occupation"], + "21A0": ["CS", "SmokingStatus"], + "21B0": ["LT", "AdditionalPatientHistory"], + "21C0": ["US", "PregnancyStatus"], + "21D0": ["DA", "LastMenstrualDate"], + "21F0": ["LO", "PatientReligiousPreference"], + "2201": ["LO", "PatientSpeciesDescription"], + "2202": ["SQ", "PatientSpeciesCodeSequence"], + "2203": ["CS", "PatientSexNeutered"], + "2210": ["CS", "AnatomicalOrientationType"], + "2292": ["LO", "PatientBreedDescription"], + "2293": ["SQ", "PatientBreedCodeSequence"], + "2294": ["SQ", "BreedRegistrationSequence"], + "2295": ["LO", "BreedRegistrationNumber"], + "2296": ["SQ", "BreedRegistryCodeSequence"], + "2297": ["PN", "ResponsiblePerson"], + "2298": ["CS", "ResponsiblePersonRole"], + "2299": ["LO", "ResponsibleOrganization"], + "4000": ["LT", "PatientComments"], + "9431": ["FL", "ExaminedBodyThickness"] + }, + "0012": { + "0010": ["LO", "ClinicalTrialSponsorName"], + "0020": ["LO", "ClinicalTrialProtocolID"], + "0021": ["LO", "ClinicalTrialProtocolName"], + "0030": ["LO", "ClinicalTrialSiteID"], + "0031": ["LO", "ClinicalTrialSiteName"], + "0040": ["LO", "ClinicalTrialSubjectID"], + "0042": ["LO", "ClinicalTrialSubjectReadingID"], + "0050": ["LO", "ClinicalTrialTimePointID"], + "0051": ["ST", "ClinicalTrialTimePointDescription"], + "0060": ["LO", "ClinicalTrialCoordinatingCenterName"], + "0062": ["CS", "PatientIdentityRemoved"], + "0063": ["LO", "DeidentificationMethod"], + "0064": ["SQ", "DeidentificationMethodCodeSequence"], + "0071": ["LO", "ClinicalTrialSeriesID"], + "0072": ["LO", "ClinicalTrialSeriesDescription"], + "0081": ["LO", "ClinicalTrialProtocolEthicsCommitteeName"], + "0082": ["LO", "ClinicalTrialProtocolEthicsCommitteeApprovalNumber"], + "0083": ["SQ", "ConsentForClinicalTrialUseSequence"], + "0084": ["CS", "DistributionType"], + "0085": ["CS", "ConsentForDistributionFlag"] + }, + "0014": { + "0023": ["ST", "CADFileFormat"], + "0024": ["ST", "ComponentReferenceSystem"], + "0025": ["ST", "ComponentManufacturingProcedure"], + "0028": ["ST", "ComponentManufacturer"], + "0030": ["DS", "MaterialThickness"], + "0032": ["DS", "MaterialPipeDiameter"], + "0034": ["DS", "MaterialIsolationDiameter"], + "0042": ["ST", "MaterialGrade"], + "0044": ["ST", "MaterialPropertiesFileID"], + "0045": ["ST", "MaterialPropertiesFileFormat"], + "0046": ["LT", "MaterialNotes"], + "0050": ["CS", "ComponentShape"], + "0052": ["CS", "CurvatureType"], + "0054": ["DS", "OuterDiameter"], + "0056": ["DS", "InnerDiameter"], + "1010": ["ST", "ActualEnvironmentalConditions"], + "1020": ["DA", "ExpiryDate"], + "1040": ["ST", "EnvironmentalConditions"], + "2002": ["SQ", "EvaluatorSequence"], + "2004": ["IS", "EvaluatorNumber"], + "2006": ["PN", "EvaluatorName"], + "2008": ["IS", "EvaluationAttempt"], + "2012": ["SQ", "IndicationSequence"], + "2014": ["IS", "IndicationNumber "], + "2016": ["SH", "IndicationLabel"], + "2018": ["ST", "IndicationDescription"], + "201A": ["CS", "IndicationType"], + "201C": ["CS", "IndicationDisposition"], + "201E": ["SQ", "IndicationROISequence"], + "2030": ["SQ", "IndicationPhysicalPropertySequence"], + "2032": ["SH", "PropertyLabel"], + "2202": ["IS", "CoordinateSystemNumberOfAxes "], + "2204": ["SQ", "CoordinateSystemAxesSequence"], + "2206": ["ST", "CoordinateSystemAxisDescription"], + "2208": ["CS", "CoordinateSystemDataSetMapping"], + "220A": ["IS", "CoordinateSystemAxisNumber"], + "220C": ["CS", "CoordinateSystemAxisType"], + "220E": ["CS", "CoordinateSystemAxisUnits"], + "2210": ["OB", "CoordinateSystemAxisValues"], + "2220": ["SQ", "CoordinateSystemTransformSequence"], + "2222": ["ST", "TransformDescription"], + "2224": ["IS", "TransformNumberOfAxes"], + "2226": ["IS", "TransformOrderOfAxes"], + "2228": ["CS", "TransformedAxisUnits"], + "222A": ["DS", "CoordinateSystemTransformRotationAndScaleMatrix"], + "222C": ["DS", "CoordinateSystemTransformTranslationMatrix"], + "3011": ["DS", "InternalDetectorFrameTime"], + "3012": ["DS", "NumberOfFramesIntegrated"], + "3020": ["SQ", "DetectorTemperatureSequence"], + "3022": ["DS", "SensorName"], + "3024": ["DS", "HorizontalOffsetOfSensor"], + "3026": ["DS", "VerticalOffsetOfSensor"], + "3028": ["DS", "SensorTemperature"], + "3040": ["SQ", "DarkCurrentSequence"], + "3050": ["OB", "DarkCurrentCounts"], + "3060": ["SQ", "GainCorrectionReferenceSequence"], + "3070": ["OB", "AirCounts"], + "3071": ["DS", "KVUsedInGainCalibration"], + "3072": ["DS", "MAUsedInGainCalibration"], + "3073": ["DS", "NumberOfFramesUsedForIntegration"], + "3074": ["LO", "FilterMaterialUsedInGainCalibration"], + "3075": ["DS", "FilterThicknessUsedInGainCalibration"], + "3076": ["DA", "DateOfGainCalibration"], + "3077": ["TM", "TimeOfGainCalibration"], + "3080": ["OB", "BadPixelImage"], + "3099": ["LT", "CalibrationNotes"], + "4002": ["SQ", "PulserEquipmentSequence"], + "4004": ["CS", "PulserType"], + "4006": ["LT", "PulserNotes"], + "4008": ["SQ", "ReceiverEquipmentSequence"], + "400A": ["CS", "AmplifierType"], + "400C": ["LT", "ReceiverNotes"], + "400E": ["SQ", "PreAmplifierEquipmentSequence"], + "400F": ["LT", "PreAmplifierNotes"], + "4010": ["SQ", "TransmitTransducerSequence"], + "4011": ["SQ", "ReceiveTransducerSequence"], + "4012": ["US", "NumberOfElements"], + "4013": ["CS", "ElementShape"], + "4014": ["DS", "ElementDimensionA"], + "4015": ["DS", "ElementDimensionB"], + "4016": ["DS", "ElementPitch"], + "4017": ["DS", "MeasuredBeamDimensionA"], + "4018": ["DS", "MeasuredBeamDimensionB"], + "4019": ["DS", "LocationOfMeasuredBeamDiameter"], + "401A": ["DS", "NominalFrequency"], + "401B": ["DS", "MeasuredCenterFrequency"], + "401C": ["DS", "MeasuredBandwidth"], + "4020": ["SQ", "PulserSettingsSequence"], + "4022": ["DS", "PulseWidth"], + "4024": ["DS", "ExcitationFrequency"], + "4026": ["CS", "ModulationType"], + "4028": ["DS", "Damping"], + "4030": ["SQ", "ReceiverSettingsSequence"], + "4031": ["DS", "AcquiredSoundpathLength"], + "4032": ["CS", "AcquisitionCompressionType"], + "4033": ["IS", "AcquisitionSampleSize"], + "4034": ["DS", "RectifierSmoothing"], + "4035": ["SQ", "DACSequence"], + "4036": ["CS", "DACType"], + "4038": ["DS", "DACGainPoints"], + "403A": ["DS", "DACTimePoints"], + "403C": ["DS", "DACAmplitude"], + "4040": ["SQ", "PreAmplifierSettingsSequence"], + "4050": ["SQ", "TransmitTransducerSettingsSequence"], + "4051": ["SQ", "ReceiveTransducerSettingsSequence"], + "4052": ["DS", "IncidentAngle"], + "4054": ["ST", "CouplingTechnique"], + "4056": ["ST", "CouplingMedium"], + "4057": ["DS", "CouplingVelocity"], + "4058": ["DS", "CrystalCenterLocationX"], + "4059": ["DS", "CrystalCenterLocationZ"], + "405A": ["DS", "SoundPathLength"], + "405C": ["ST", "DelayLawIdentifier"], + "4060": ["SQ", "GateSettingsSequence"], + "4062": ["DS", "GateThreshold"], + "4064": ["DS", "VelocityOfSound"], + "4070": ["SQ", "CalibrationSettingsSequence"], + "4072": ["ST", "CalibrationProcedure"], + "4074": ["SH", "ProcedureVersion"], + "4076": ["DA", "ProcedureCreationDate"], + "4078": ["DA", "ProcedureExpirationDate"], + "407A": ["DA", "ProcedureLastModifiedDate"], + "407C": ["TM", "CalibrationTime"], + "407E": ["DA", "CalibrationDate"], + "5002": ["IS", "LINACEnergy"], + "5004": ["IS", "LINACOutput"] + }, + "0018": { + "0010": ["LO", "ContrastBolusAgent"], + "0012": ["SQ", "ContrastBolusAgentSequence"], + "0014": ["SQ", "ContrastBolusAdministrationRouteSequence"], + "0015": ["CS", "BodyPartExamined"], + "0020": ["CS", "ScanningSequence"], + "0021": ["CS", "SequenceVariant"], + "0022": ["CS", "ScanOptions"], + "0023": ["CS", "MRAcquisitionType"], + "0024": ["SH", "SequenceName"], + "0025": ["CS", "AngioFlag"], + "0026": ["SQ", "InterventionDrugInformationSequence"], + "0027": ["TM", "InterventionDrugStopTime"], + "0028": ["DS", "InterventionDrugDose"], + "0029": ["SQ", "InterventionDrugCodeSequence"], + "002A": ["SQ", "AdditionalDrugSequence"], + "0030": ["LO", "Radionuclide"], + "0031": ["LO", "Radiopharmaceutical"], + "0032": ["DS", "EnergyWindowCenterline"], + "0033": ["DS", "EnergyWindowTotalWidth"], + "0034": ["LO", "InterventionDrugName"], + "0035": ["TM", "InterventionDrugStartTime"], + "0036": ["SQ", "InterventionSequence"], + "0037": ["CS", "TherapyType"], + "0038": ["CS", "InterventionStatus"], + "0039": ["CS", "TherapyDescription"], + "003A": ["ST", "InterventionDescription"], + "0040": ["IS", "CineRate"], + "0042": ["CS", "InitialCineRunState"], + "0050": ["DS", "SliceThickness"], + "0060": ["DS", "KVP"], + "0070": ["IS", "CountsAccumulated"], + "0071": ["CS", "AcquisitionTerminationCondition"], + "0072": ["DS", "EffectiveDuration"], + "0073": ["CS", "AcquisitionStartCondition"], + "0074": ["IS", "AcquisitionStartConditionData"], + "0075": ["IS", "AcquisitionTerminationConditionData"], + "0080": ["DS", "RepetitionTime"], + "0081": ["DS", "EchoTime"], + "0082": ["DS", "InversionTime"], + "0083": ["DS", "NumberOfAverages"], + "0084": ["DS", "ImagingFrequency"], + "0085": ["SH", "ImagedNucleus"], + "0086": ["IS", "EchoNumbers"], + "0087": ["DS", "MagneticFieldStrength"], + "0088": ["DS", "SpacingBetweenSlices"], + "0089": ["IS", "NumberOfPhaseEncodingSteps"], + "0090": ["DS", "DataCollectionDiameter"], + "0091": ["IS", "EchoTrainLength"], + "0093": ["DS", "PercentSampling"], + "0094": ["DS", "PercentPhaseFieldOfView"], + "0095": ["DS", "PixelBandwidth"], + "1000": ["LO", "DeviceSerialNumber"], + "1002": ["UI", "DeviceUID"], + "1003": ["LO", "DeviceID"], + "1004": ["LO", "PlateID"], + "1005": ["LO", "GeneratorID"], + "1006": ["LO", "GridID"], + "1007": ["LO", "CassetteID"], + "1008": ["LO", "GantryID"], + "1010": ["LO", "SecondaryCaptureDeviceID"], + "1011": ["LO", "HardcopyCreationDeviceID"], + "1012": ["DA", "DateOfSecondaryCapture"], + "1014": ["TM", "TimeOfSecondaryCapture"], + "1016": ["LO", "SecondaryCaptureDeviceManufacturer"], + "1017": ["LO", "HardcopyDeviceManufacturer"], + "1018": ["LO", "SecondaryCaptureDeviceManufacturerModelName"], + "1019": ["LO", "SecondaryCaptureDeviceSoftwareVersions"], + "101A": ["LO", "HardcopyDeviceSoftwareVersion"], + "101B": ["LO", "HardcopyDeviceManufacturerModelName"], + "1020": ["LO", "SoftwareVersions"], + "1022": ["SH", "VideoImageFormatAcquired"], + "1023": ["LO", "DigitalImageFormatAcquired"], + "1030": ["LO", "ProtocolName"], + "1040": ["LO", "ContrastBolusRoute"], + "1041": ["DS", "ContrastBolusVolume"], + "1042": ["TM", "ContrastBolusStartTime"], + "1043": ["TM", "ContrastBolusStopTime"], + "1044": ["DS", "ContrastBolusTotalDose"], + "1045": ["IS", "SyringeCounts"], + "1046": ["DS", "ContrastFlowRate"], + "1047": ["DS", "ContrastFlowDuration"], + "1048": ["CS", "ContrastBolusIngredient"], + "1049": ["DS", "ContrastBolusIngredientConcentration"], + "1050": ["DS", "SpatialResolution"], + "1060": ["DS", "TriggerTime"], + "1061": ["LO", "TriggerSourceOrType"], + "1062": ["IS", "NominalInterval"], + "1063": ["DS", "FrameTime"], + "1064": ["LO", "CardiacFramingType"], + "1065": ["DS", "FrameTimeVector"], + "1066": ["DS", "FrameDelay"], + "1067": ["DS", "ImageTriggerDelay"], + "1068": ["DS", "MultiplexGroupTimeOffset"], + "1069": ["DS", "TriggerTimeOffset"], + "106A": ["CS", "SynchronizationTrigger"], + "106C": ["US", "SynchronizationChannel"], + "106E": ["UL", "TriggerSamplePosition"], + "1070": ["LO", "RadiopharmaceuticalRoute"], + "1071": ["DS", "RadiopharmaceuticalVolume"], + "1072": ["TM", "RadiopharmaceuticalStartTime"], + "1073": ["TM", "RadiopharmaceuticalStopTime"], + "1074": ["DS", "RadionuclideTotalDose"], + "1075": ["DS", "RadionuclideHalfLife"], + "1076": ["DS", "RadionuclidePositronFraction"], + "1077": ["DS", "RadiopharmaceuticalSpecificActivity"], + "1078": ["DT", "RadiopharmaceuticalStartDateTime"], + "1079": ["DT", "RadiopharmaceuticalStopDateTime"], + "1080": ["CS", "BeatRejectionFlag"], + "1081": ["IS", "LowRRValue"], + "1082": ["IS", "HighRRValue"], + "1083": ["IS", "IntervalsAcquired"], + "1084": ["IS", "IntervalsRejected"], + "1085": ["LO", "PVCRejection"], + "1086": ["IS", "SkipBeats"], + "1088": ["IS", "HeartRate"], + "1090": ["IS", "CardiacNumberOfImages"], + "1094": ["IS", "TriggerWindow"], + "1100": ["DS", "ReconstructionDiameter"], + "1110": ["DS", "DistanceSourceToDetector"], + "1111": ["DS", "DistanceSourceToPatient"], + "1114": ["DS", "EstimatedRadiographicMagnificationFactor"], + "1120": ["DS", "GantryDetectorTilt"], + "1121": ["DS", "GantryDetectorSlew"], + "1130": ["DS", "TableHeight"], + "1131": ["DS", "TableTraverse"], + "1134": ["CS", "TableMotion"], + "1135": ["DS", "TableVerticalIncrement"], + "1136": ["DS", "TableLateralIncrement"], + "1137": ["DS", "TableLongitudinalIncrement"], + "1138": ["DS", "TableAngle"], + "113A": ["CS", "TableType"], + "1140": ["CS", "RotationDirection"], + "1141": ["DS", "AngularPosition"], + "1142": ["DS", "RadialPosition"], + "1143": ["DS", "ScanArc"], + "1144": ["DS", "AngularStep"], + "1145": ["DS", "CenterOfRotationOffset"], + "1146": ["DS", "RotationOffset"], + "1147": ["CS", "FieldOfViewShape"], + "1149": ["IS", "FieldOfViewDimensions"], + "1150": ["IS", "ExposureTime"], + "1151": ["IS", "XRayTubeCurrent"], + "1152": ["IS", "Exposure"], + "1153": ["IS", "ExposureInuAs"], + "1154": ["DS", "AveragePulseWidth"], + "1155": ["CS", "RadiationSetting"], + "1156": ["CS", "RectificationType"], + "115A": ["CS", "RadiationMode"], + "115E": ["DS", "ImageAndFluoroscopyAreaDoseProduct"], + "1160": ["SH", "FilterType"], + "1161": ["LO", "TypeOfFilters"], + "1162": ["DS", "IntensifierSize"], + "1164": ["DS", "ImagerPixelSpacing"], + "1166": ["CS", "Grid"], + "1170": ["IS", "GeneratorPower"], + "1180": ["SH", "CollimatorGridName"], + "1181": ["CS", "CollimatorType"], + "1182": ["IS", "FocalDistance"], + "1183": ["DS", "XFocusCenter"], + "1184": ["DS", "YFocusCenter"], + "1190": ["DS", "FocalSpots"], + "1191": ["CS", "AnodeTargetMaterial"], + "11A0": ["DS", "BodyPartThickness"], + "11A2": ["DS", "CompressionForce"], + "1200": ["DA", "DateOfLastCalibration"], + "1201": ["TM", "TimeOfLastCalibration"], + "1210": ["SH", "ConvolutionKernel"], + "1240": ["IS", "UpperLowerPixelValues"], + "1242": ["IS", "ActualFrameDuration"], + "1243": ["IS", "CountRate"], + "1244": ["US", "PreferredPlaybackSequencing"], + "1250": ["SH", "ReceiveCoilName"], + "1251": ["SH", "TransmitCoilName"], + "1260": ["SH", "PlateType"], + "1261": ["LO", "PhosphorType"], + "1300": ["DS", "ScanVelocity"], + "1301": ["CS", "WholeBodyTechnique"], + "1302": ["IS", "ScanLength"], + "1310": ["US", "AcquisitionMatrix"], + "1312": ["CS", "InPlanePhaseEncodingDirection"], + "1314": ["DS", "FlipAngle"], + "1315": ["CS", "VariableFlipAngleFlag"], + "1316": ["DS", "SAR"], + "1318": ["DS", "dBdt"], + "1400": ["LO", "AcquisitionDeviceProcessingDescription"], + "1401": ["LO", "AcquisitionDeviceProcessingCode"], + "1402": ["CS", "CassetteOrientation"], + "1403": ["CS", "CassetteSize"], + "1404": ["US", "ExposuresOnPlate"], + "1405": ["IS", "RelativeXRayExposure"], + "1411": ["DS", "ExposureIndex"], + "1412": ["DS", "TargetExposureIndex"], + "1413": ["DS", "DeviationIndex"], + "1450": ["DS", "ColumnAngulation"], + "1460": ["DS", "TomoLayerHeight"], + "1470": ["DS", "TomoAngle"], + "1480": ["DS", "TomoTime"], + "1490": ["CS", "TomoType"], + "1491": ["CS", "TomoClass"], + "1495": ["IS", "NumberOfTomosynthesisSourceImages"], + "1500": ["CS", "PositionerMotion"], + "1508": ["CS", "PositionerType"], + "1510": ["DS", "PositionerPrimaryAngle"], + "1511": ["DS", "PositionerSecondaryAngle"], + "1520": ["DS", "PositionerPrimaryAngleIncrement"], + "1521": ["DS", "PositionerSecondaryAngleIncrement"], + "1530": ["DS", "DetectorPrimaryAngle"], + "1531": ["DS", "DetectorSecondaryAngle"], + "1600": ["CS", "ShutterShape"], + "1602": ["IS", "ShutterLeftVerticalEdge"], + "1604": ["IS", "ShutterRightVerticalEdge"], + "1606": ["IS", "ShutterUpperHorizontalEdge"], + "1608": ["IS", "ShutterLowerHorizontalEdge"], + "1610": ["IS", "CenterOfCircularShutter"], + "1612": ["IS", "RadiusOfCircularShutter"], + "1620": ["IS", "VerticesOfThePolygonalShutter"], + "1622": ["US", "ShutterPresentationValue"], + "1623": ["US", "ShutterOverlayGroup"], + "1624": ["US", "ShutterPresentationColorCIELabValue"], + "1700": ["CS", "CollimatorShape"], + "1702": ["IS", "CollimatorLeftVerticalEdge"], + "1704": ["IS", "CollimatorRightVerticalEdge"], + "1706": ["IS", "CollimatorUpperHorizontalEdge"], + "1708": ["IS", "CollimatorLowerHorizontalEdge"], + "1710": ["IS", "CenterOfCircularCollimator"], + "1712": ["IS", "RadiusOfCircularCollimator"], + "1720": ["IS", "VerticesOfThePolygonalCollimator"], + "1800": ["CS", "AcquisitionTimeSynchronized"], + "1801": ["SH", "TimeSource"], + "1802": ["CS", "TimeDistributionProtocol"], + "1803": ["LO", "NTPSourceAddress"], + "2001": ["IS", "PageNumberVector"], + "2002": ["SH", "FrameLabelVector"], + "2003": ["DS", "FramePrimaryAngleVector"], + "2004": ["DS", "FrameSecondaryAngleVector"], + "2005": ["DS", "SliceLocationVector"], + "2006": ["SH", "DisplayWindowLabelVector"], + "2010": ["DS", "NominalScannedPixelSpacing"], + "2020": ["CS", "DigitizingDeviceTransportDirection"], + "2030": ["DS", "RotationOfScannedFilm"], + "3100": ["CS", "IVUSAcquisition"], + "3101": ["DS", "IVUSPullbackRate"], + "3102": ["DS", "IVUSGatedRate"], + "3103": ["IS", "IVUSPullbackStartFrameNumber"], + "3104": ["IS", "IVUSPullbackStopFrameNumber"], + "3105": ["IS", "LesionNumber"], + "4000": ["LT", "AcquisitionComments"], + "5000": ["SH", "OutputPower"], + "5010": ["LO", "TransducerData"], + "5012": ["DS", "FocusDepth"], + "5020": ["LO", "ProcessingFunction"], + "5021": ["LO", "PostprocessingFunction"], + "5022": ["DS", "MechanicalIndex"], + "5024": ["DS", "BoneThermalIndex"], + "5026": ["DS", "CranialThermalIndex"], + "5027": ["DS", "SoftTissueThermalIndex"], + "5028": ["DS", "SoftTissueFocusThermalIndex"], + "5029": ["DS", "SoftTissueSurfaceThermalIndex"], + "5030": ["DS", "DynamicRange"], + "5040": ["DS", "TotalGain"], + "5050": ["IS", "DepthOfScanField"], + "5100": ["CS", "PatientPosition"], + "5101": ["CS", "ViewPosition"], + "5104": ["SQ", "ProjectionEponymousNameCodeSequence"], + "5210": ["DS", "ImageTransformationMatrix"], + "5212": ["DS", "ImageTranslationVector"], + "6000": ["DS", "Sensitivity"], + "6011": ["SQ", "SequenceOfUltrasoundRegions"], + "6012": ["US", "RegionSpatialFormat"], + "6014": ["US", "RegionDataType"], + "6016": ["UL", "RegionFlags"], + "6018": ["UL", "RegionLocationMinX0"], + "601A": ["UL", "RegionLocationMinY0"], + "601C": ["UL", "RegionLocationMaxX1"], + "601E": ["UL", "RegionLocationMaxY1"], + "6020": ["SL", "ReferencePixelX0"], + "6022": ["SL", "ReferencePixelY0"], + "6024": ["US", "PhysicalUnitsXDirection"], + "6026": ["US", "PhysicalUnitsYDirection"], + "6028": ["FD", "ReferencePixelPhysicalValueX"], + "602A": ["FD", "ReferencePixelPhysicalValueY"], + "602C": ["FD", "PhysicalDeltaX"], + "602E": ["FD", "PhysicalDeltaY"], + "6030": ["UL", "TransducerFrequency"], + "6031": ["CS", "TransducerType"], + "6032": ["UL", "PulseRepetitionFrequency"], + "6034": ["FD", "DopplerCorrectionAngle"], + "6036": ["FD", "SteeringAngle"], + "6038": ["UL", "DopplerSampleVolumeXPositionRetired"], + "6039": ["SL", "DopplerSampleVolumeXPosition"], + "603A": ["UL", "DopplerSampleVolumeYPositionRetired"], + "603B": ["SL", "DopplerSampleVolumeYPosition"], + "603C": ["UL", "TMLinePositionX0Retired"], + "603D": ["SL", "TMLinePositionX0"], + "603E": ["UL", "TMLinePositionY0Retired"], + "603F": ["SL", "TMLinePositionY0"], + "6040": ["UL", "TMLinePositionX1Retired"], + "6041": ["SL", "TMLinePositionX1"], + "6042": ["UL", "TMLinePositionY1Retired"], + "6043": ["SL", "TMLinePositionY1"], + "6044": ["US", "PixelComponentOrganization"], + "6046": ["UL", "PixelComponentMask"], + "6048": ["UL", "PixelComponentRangeStart"], + "604A": ["UL", "PixelComponentRangeStop"], + "604C": ["US", "PixelComponentPhysicalUnits"], + "604E": ["US", "PixelComponentDataType"], + "6050": ["UL", "NumberOfTableBreakPoints"], + "6052": ["UL", "TableOfXBreakPoints"], + "6054": ["FD", "TableOfYBreakPoints"], + "6056": ["UL", "NumberOfTableEntries"], + "6058": ["UL", "TableOfPixelValues"], + "605A": ["FL", "TableOfParameterValues"], + "6060": ["FL", "RWaveTimeVector"], + "7000": ["CS", "DetectorConditionsNominalFlag"], + "7001": ["DS", "DetectorTemperature"], + "7004": ["CS", "DetectorType"], + "7005": ["CS", "DetectorConfiguration"], + "7006": ["LT", "DetectorDescription"], + "7008": ["LT", "DetectorMode"], + "700A": ["SH", "DetectorID"], + "700C": ["DA", "DateOfLastDetectorCalibration"], + "700E": ["TM", "TimeOfLastDetectorCalibration"], + "7010": ["IS", "ExposuresOnDetectorSinceLastCalibration"], + "7011": ["IS", "ExposuresOnDetectorSinceManufactured"], + "7012": ["DS", "DetectorTimeSinceLastExposure"], + "7014": ["DS", "DetectorActiveTime"], + "7016": ["DS", "DetectorActivationOffsetFromExposure"], + "701A": ["DS", "DetectorBinning"], + "7020": ["DS", "DetectorElementPhysicalSize"], + "7022": ["DS", "DetectorElementSpacing"], + "7024": ["CS", "DetectorActiveShape"], + "7026": ["DS", "DetectorActiveDimensions"], + "7028": ["DS", "DetectorActiveOrigin"], + "702A": ["LO", "DetectorManufacturerName"], + "702B": ["LO", "DetectorManufacturerModelName"], + "7030": ["DS", "FieldOfViewOrigin"], + "7032": ["DS", "FieldOfViewRotation"], + "7034": ["CS", "FieldOfViewHorizontalFlip"], + "7036": ["FL", "PixelDataAreaOriginRelativeToFOV"], + "7038": ["FL", "PixelDataAreaRotationAngleRelativeToFOV"], + "7040": ["LT", "GridAbsorbingMaterial"], + "7041": ["LT", "GridSpacingMaterial"], + "7042": ["DS", "GridThickness"], + "7044": ["DS", "GridPitch"], + "7046": ["IS", "GridAspectRatio"], + "7048": ["DS", "GridPeriod"], + "704C": ["DS", "GridFocalDistance"], + "7050": ["CS", "FilterMaterial"], + "7052": ["DS", "FilterThicknessMinimum"], + "7054": ["DS", "FilterThicknessMaximum"], + "7056": ["FL", "FilterBeamPathLengthMinimum"], + "7058": ["FL", "FilterBeamPathLengthMaximum"], + "7060": ["CS", "ExposureControlMode"], + "7062": ["LT", "ExposureControlModeDescription"], + "7064": ["CS", "ExposureStatus"], + "7065": ["DS", "PhototimerSetting"], + "8150": ["DS", "ExposureTimeInuS"], + "8151": ["DS", "XRayTubeCurrentInuA"], + "9004": ["CS", "ContentQualification"], + "9005": ["SH", "PulseSequenceName"], + "9006": ["SQ", "MRImagingModifierSequence"], + "9008": ["CS", "EchoPulseSequence"], + "9009": ["CS", "InversionRecovery"], + "9010": ["CS", "FlowCompensation"], + "9011": ["CS", "MultipleSpinEcho"], + "9012": ["CS", "MultiPlanarExcitation"], + "9014": ["CS", "PhaseContrast"], + "9015": ["CS", "TimeOfFlightContrast"], + "9016": ["CS", "Spoiling"], + "9017": ["CS", "SteadyStatePulseSequence"], + "9018": ["CS", "EchoPlanarPulseSequence"], + "9019": ["FD", "TagAngleFirstAxis"], + "9020": ["CS", "MagnetizationTransfer"], + "9021": ["CS", "T2Preparation"], + "9022": ["CS", "BloodSignalNulling"], + "9024": ["CS", "SaturationRecovery"], + "9025": ["CS", "SpectrallySelectedSuppression"], + "9026": ["CS", "SpectrallySelectedExcitation"], + "9027": ["CS", "SpatialPresaturation"], + "9028": ["CS", "Tagging"], + "9029": ["CS", "OversamplingPhase"], + "9030": ["FD", "TagSpacingFirstDimension"], + "9032": ["CS", "GeometryOfKSpaceTraversal"], + "9033": ["CS", "SegmentedKSpaceTraversal"], + "9034": ["CS", "RectilinearPhaseEncodeReordering"], + "9035": ["FD", "TagThickness"], + "9036": ["CS", "PartialFourierDirection"], + "9037": ["CS", "CardiacSynchronizationTechnique"], + "9041": ["LO", "ReceiveCoilManufacturerName"], + "9042": ["SQ", "MRReceiveCoilSequence"], + "9043": ["CS", "ReceiveCoilType"], + "9044": ["CS", "QuadratureReceiveCoil"], + "9045": ["SQ", "MultiCoilDefinitionSequence"], + "9046": ["LO", "MultiCoilConfiguration"], + "9047": ["SH", "MultiCoilElementName"], + "9048": ["CS", "MultiCoilElementUsed"], + "9049": ["SQ", "MRTransmitCoilSequence"], + "9050": ["LO", "TransmitCoilManufacturerName"], + "9051": ["CS", "TransmitCoilType"], + "9052": ["FD", "SpectralWidth"], + "9053": ["FD", "ChemicalShiftReference"], + "9054": ["CS", "VolumeLocalizationTechnique"], + "9058": ["US", "MRAcquisitionFrequencyEncodingSteps"], + "9059": ["CS", "Decoupling"], + "9060": ["CS", "DecoupledNucleus"], + "9061": ["FD", "DecouplingFrequency"], + "9062": ["CS", "DecouplingMethod"], + "9063": ["FD", "DecouplingChemicalShiftReference"], + "9064": ["CS", "KSpaceFiltering"], + "9065": ["CS", "TimeDomainFiltering"], + "9066": ["US", "NumberOfZeroFills"], + "9067": ["CS", "BaselineCorrection"], + "9069": ["FD", "ParallelReductionFactorInPlane"], + "9070": ["FD", "CardiacRRIntervalSpecified"], + "9073": ["FD", "AcquisitionDuration"], + "9074": ["DT", "FrameAcquisitionDateTime"], + "9075": ["CS", "DiffusionDirectionality"], + "9076": ["SQ", "DiffusionGradientDirectionSequence"], + "9077": ["CS", "ParallelAcquisition"], + "9078": ["CS", "ParallelAcquisitionTechnique"], + "9079": ["FD", "InversionTimes"], + "9080": ["ST", "MetaboliteMapDescription"], + "9081": ["CS", "PartialFourier"], + "9082": ["FD", "EffectiveEchoTime"], + "9083": ["SQ", "MetaboliteMapCodeSequence"], + "9084": ["SQ", "ChemicalShiftSequence"], + "9085": ["CS", "CardiacSignalSource"], + "9087": ["FD", "DiffusionBValue"], + "9089": ["FD", "DiffusionGradientOrientation"], + "9090": ["FD", "VelocityEncodingDirection"], + "9091": ["FD", "VelocityEncodingMinimumValue"], + "9092": ["SQ", "VelocityEncodingAcquisitionSequence"], + "9093": ["US", "NumberOfKSpaceTrajectories"], + "9094": ["CS", "CoverageOfKSpace"], + "9095": ["UL", "SpectroscopyAcquisitionPhaseRows"], + "9096": ["FD", "ParallelReductionFactorInPlaneRetired"], + "9098": ["FD", "TransmitterFrequency"], + "9100": ["CS", "ResonantNucleus"], + "9101": ["CS", "FrequencyCorrection"], + "9103": ["SQ", "MRSpectroscopyFOVGeometrySequence"], + "9104": ["FD", "SlabThickness"], + "9105": ["FD", "SlabOrientation"], + "9106": ["FD", "MidSlabPosition"], + "9107": ["SQ", "MRSpatialSaturationSequence"], + "9112": ["SQ", "MRTimingAndRelatedParametersSequence"], + "9114": ["SQ", "MREchoSequence"], + "9115": ["SQ", "MRModifierSequence"], + "9117": ["SQ", "MRDiffusionSequence"], + "9118": ["SQ", "CardiacSynchronizationSequence"], + "9119": ["SQ", "MRAveragesSequence"], + "9125": ["SQ", "MRFOVGeometrySequence"], + "9126": ["SQ", "VolumeLocalizationSequence"], + "9127": ["UL", "SpectroscopyAcquisitionDataColumns"], + "9147": ["CS", "DiffusionAnisotropyType"], + "9151": ["DT", "FrameReferenceDateTime"], + "9152": ["SQ", "MRMetaboliteMapSequence"], + "9155": ["FD", "ParallelReductionFactorOutOfPlane"], + "9159": ["UL", "SpectroscopyAcquisitionOutOfPlanePhaseSteps"], + "9166": ["CS", "BulkMotionStatus"], + "9168": ["FD", "ParallelReductionFactorSecondInPlane"], + "9169": ["CS", "CardiacBeatRejectionTechnique"], + "9170": ["CS", "RespiratoryMotionCompensationTechnique"], + "9171": ["CS", "RespiratorySignalSource"], + "9172": ["CS", "BulkMotionCompensationTechnique"], + "9173": ["CS", "BulkMotionSignalSource"], + "9174": ["CS", "ApplicableSafetyStandardAgency"], + "9175": ["LO", "ApplicableSafetyStandardDescription"], + "9176": ["SQ", "OperatingModeSequence"], + "9177": ["CS", "OperatingModeType"], + "9178": ["CS", "OperatingMode"], + "9179": ["CS", "SpecificAbsorptionRateDefinition"], + "9180": ["CS", "GradientOutputType"], + "9181": ["FD", "SpecificAbsorptionRateValue"], + "9182": ["FD", "GradientOutput"], + "9183": ["CS", "FlowCompensationDirection"], + "9184": ["FD", "TaggingDelay"], + "9185": ["ST", "RespiratoryMotionCompensationTechniqueDescription"], + "9186": ["SH", "RespiratorySignalSourceID"], + "9195": ["FD", "ChemicalShiftMinimumIntegrationLimitInHz"], + "9196": ["FD", "ChemicalShiftMaximumIntegrationLimitInHz"], + "9197": ["SQ", "MRVelocityEncodingSequence"], + "9198": ["CS", "FirstOrderPhaseCorrection"], + "9199": ["CS", "WaterReferencedPhaseCorrection"], + "9200": ["CS", "MRSpectroscopyAcquisitionType"], + "9214": ["CS", "RespiratoryCyclePosition"], + "9217": ["FD", "VelocityEncodingMaximumValue"], + "9218": ["FD", "TagSpacingSecondDimension"], + "9219": ["SS", "TagAngleSecondAxis"], + "9220": ["FD", "FrameAcquisitionDuration"], + "9226": ["SQ", "MRImageFrameTypeSequence"], + "9227": ["SQ", "MRSpectroscopyFrameTypeSequence"], + "9231": ["US", "MRAcquisitionPhaseEncodingStepsInPlane"], + "9232": ["US", "MRAcquisitionPhaseEncodingStepsOutOfPlane"], + "9234": ["UL", "SpectroscopyAcquisitionPhaseColumns"], + "9236": ["CS", "CardiacCyclePosition"], + "9239": ["SQ", "SpecificAbsorptionRateSequence"], + "9240": ["US", "RFEchoTrainLength"], + "9241": ["US", "GradientEchoTrainLength"], + "9250": ["CS", "ArterialSpinLabelingContrast"], + "9251": ["SQ", "MRArterialSpinLabelingSequence"], + "9252": ["LO", "ASLTechniqueDescription"], + "9253": ["US", "ASLSlabNumber"], + "9254": ["FD ", "ASLSlabThickness"], + "9255": ["FD ", "ASLSlabOrientation"], + "9256": ["FD ", "ASLMidSlabPosition"], + "9257": ["CS", "ASLContext"], + "9258": ["UL", "ASLPulseTrainDuration"], + "9259": ["CS", "ASLCrusherFlag"], + "925A": ["FD", "ASLCrusherFlow"], + "925B": ["LO", "ASLCrusherDescription"], + "925C": ["CS", "ASLBolusCutoffFlag"], + "925D": ["SQ", "ASLBolusCutoffTimingSequence"], + "925E": ["LO", "ASLBolusCutoffTechnique"], + "925F": ["UL", "ASLBolusCutoffDelayTime"], + "9260": ["SQ", "ASLSlabSequence"], + "9295": ["FD", "ChemicalShiftMinimumIntegrationLimitInppm"], + "9296": ["FD", "ChemicalShiftMaximumIntegrationLimitInppm"], + "9301": ["SQ", "CTAcquisitionTypeSequence"], + "9302": ["CS", "AcquisitionType"], + "9303": ["FD", "TubeAngle"], + "9304": ["SQ", "CTAcquisitionDetailsSequence"], + "9305": ["FD", "RevolutionTime"], + "9306": ["FD", "SingleCollimationWidth"], + "9307": ["FD", "TotalCollimationWidth"], + "9308": ["SQ", "CTTableDynamicsSequence"], + "9309": ["FD", "TableSpeed"], + "9310": ["FD", "TableFeedPerRotation"], + "9311": ["FD", "SpiralPitchFactor"], + "9312": ["SQ", "CTGeometrySequence"], + "9313": ["FD", "DataCollectionCenterPatient"], + "9314": ["SQ", "CTReconstructionSequence"], + "9315": ["CS", "ReconstructionAlgorithm"], + "9316": ["CS", "ConvolutionKernelGroup"], + "9317": ["FD", "ReconstructionFieldOfView"], + "9318": ["FD", "ReconstructionTargetCenterPatient"], + "9319": ["FD", "ReconstructionAngle"], + "9320": ["SH", "ImageFilter"], + "9321": ["SQ", "CTExposureSequence"], + "9322": ["FD", "ReconstructionPixelSpacing"], + "9323": ["CS", "ExposureModulationType"], + "9324": ["FD", "EstimatedDoseSaving"], + "9325": ["SQ", "CTXRayDetailsSequence"], + "9326": ["SQ", "CTPositionSequence"], + "9327": ["FD", "TablePosition"], + "9328": ["FD", "ExposureTimeInms"], + "9329": ["SQ", "CTImageFrameTypeSequence"], + "9330": ["FD", "XRayTubeCurrentInmA"], + "9332": ["FD", "ExposureInmAs"], + "9333": ["CS", "ConstantVolumeFlag"], + "9334": ["CS", "FluoroscopyFlag"], + "9335": ["FD", "DistanceSourceToDataCollectionCenter"], + "9337": ["US", "ContrastBolusAgentNumber"], + "9338": ["SQ", "ContrastBolusIngredientCodeSequence"], + "9340": ["SQ", "ContrastAdministrationProfileSequence"], + "9341": ["SQ", "ContrastBolusUsageSequence"], + "9342": ["CS", "ContrastBolusAgentAdministered"], + "9343": ["CS", "ContrastBolusAgentDetected"], + "9344": ["CS", "ContrastBolusAgentPhase"], + "9345": ["FD", "CTDIvol"], + "9346": ["SQ", "CTDIPhantomTypeCodeSequence"], + "9351": ["FL", "CalciumScoringMassFactorPatient"], + "9352": ["FL", "CalciumScoringMassFactorDevice"], + "9353": ["FL", "EnergyWeightingFactor"], + "9360": ["SQ", "CTAdditionalXRaySourceSequence"], + "9401": ["SQ", "ProjectionPixelCalibrationSequence"], + "9402": ["FL", "DistanceSourceToIsocenter"], + "9403": ["FL", "DistanceObjectToTableTop"], + "9404": ["FL", "ObjectPixelSpacingInCenterOfBeam"], + "9405": ["SQ", "PositionerPositionSequence"], + "9406": ["SQ", "TablePositionSequence"], + "9407": ["SQ", "CollimatorShapeSequence"], + "9410": ["CS", "PlanesInAcquisition"], + "9412": ["SQ", "XAXRFFrameCharacteristicsSequence"], + "9417": ["SQ", "FrameAcquisitionSequence"], + "9420": ["CS", "XRayReceptorType"], + "9423": ["LO", "AcquisitionProtocolName"], + "9424": ["LT", "AcquisitionProtocolDescription"], + "9425": ["CS", "ContrastBolusIngredientOpaque"], + "9426": ["FL", "DistanceReceptorPlaneToDetectorHousing"], + "9427": ["CS", "IntensifierActiveShape"], + "9428": ["FL", "IntensifierActiveDimensions"], + "9429": ["FL", "PhysicalDetectorSize"], + "9430": ["FL", "PositionOfIsocenterProjection"], + "9432": ["SQ", "FieldOfViewSequence"], + "9433": ["LO", "FieldOfViewDescription"], + "9434": ["SQ", "ExposureControlSensingRegionsSequence"], + "9435": ["CS", "ExposureControlSensingRegionShape"], + "9436": ["SS", "ExposureControlSensingRegionLeftVerticalEdge"], + "9437": ["SS", "ExposureControlSensingRegionRightVerticalEdge"], + "9438": ["SS", "ExposureControlSensingRegionUpperHorizontalEdge"], + "9439": ["SS", "ExposureControlSensingRegionLowerHorizontalEdge"], + "9440": ["SS", "CenterOfCircularExposureControlSensingRegion"], + "9441": ["US", "RadiusOfCircularExposureControlSensingRegion"], + "9442": ["SS", "VerticesOfThePolygonalExposureControlSensingRegion"], + "9447": ["FL", "ColumnAngulationPatient"], + "9449": ["FL", "BeamAngle"], + "9451": ["SQ", "FrameDetectorParametersSequence"], + "9452": ["FL", "CalculatedAnatomyThickness"], + "9455": ["SQ", "CalibrationSequence"], + "9456": ["SQ", "ObjectThicknessSequence"], + "9457": ["CS", "PlaneIdentification"], + "9461": ["FL", "FieldOfViewDimensionsInFloat"], + "9462": ["SQ", "IsocenterReferenceSystemSequence"], + "9463": ["FL", "PositionerIsocenterPrimaryAngle"], + "9464": ["FL", "PositionerIsocenterSecondaryAngle"], + "9465": ["FL", "PositionerIsocenterDetectorRotationAngle"], + "9466": ["FL", "TableXPositionToIsocenter"], + "9467": ["FL", "TableYPositionToIsocenter"], + "9468": ["FL", "TableZPositionToIsocenter"], + "9469": ["FL", "TableHorizontalRotationAngle"], + "9470": ["FL", "TableHeadTiltAngle"], + "9471": ["FL", "TableCradleTiltAngle"], + "9472": ["SQ", "FrameDisplayShutterSequence"], + "9473": ["FL", "AcquiredImageAreaDoseProduct"], + "9474": ["CS", "CArmPositionerTabletopRelationship"], + "9476": ["SQ", "XRayGeometrySequence"], + "9477": ["SQ", "IrradiationEventIdentificationSequence"], + "9504": ["SQ", "XRay3DFrameTypeSequence"], + "9506": ["SQ", "ContributingSourcesSequence"], + "9507": ["SQ", "XRay3DAcquisitionSequence"], + "9508": ["FL", "PrimaryPositionerScanArc"], + "9509": ["FL", "SecondaryPositionerScanArc"], + "9510": ["FL ", "PrimaryPositionerScanStartAngle"], + "9511": ["FL", "SecondaryPositionerScanStartAngle"], + "9514": ["FL", "PrimaryPositionerIncrement"], + "9515": ["FL", "SecondaryPositionerIncrement"], + "9516": ["DT", "StartAcquisitionDateTime"], + "9517": ["DT", "EndAcquisitionDateTime"], + "9524": ["LO", "ApplicationName"], + "9525": ["LO", "ApplicationVersion"], + "9526": ["LO", "ApplicationManufacturer"], + "9527": ["CS", "AlgorithmType"], + "9528": ["LO", "AlgorithmDescription"], + "9530": ["SQ", "XRay3DReconstructionSequence"], + "9531": ["LO", "ReconstructionDescription"], + "9538": ["SQ", "PerProjectionAcquisitionSequence"], + "9601": ["SQ", "DiffusionBMatrixSequence"], + "9602": ["FD", "DiffusionBValueXX"], + "9603": ["FD", "DiffusionBValueXY"], + "9604": ["FD", "DiffusionBValueXZ"], + "9605": ["FD", "DiffusionBValueYY"], + "9606": ["FD", "DiffusionBValueYZ"], + "9607": ["FD", "DiffusionBValueZZ"], + "9701": ["DT", "DecayCorrectionDateTime"], + "9715": ["FD", "StartDensityThreshold"], + "9716": ["FD", "StartRelativeDensityDifferenceThreshold"], + "9717": ["FD", "StartCardiacTriggerCountThreshold"], + "9718": ["FD", "StartRespiratoryTriggerCountThreshold"], + "9719": ["FD", "TerminationCountsThreshold"], + "9720": ["FD", "TerminationDensityThreshold"], + "9721": ["FD", "TerminationRelativeDensityThreshold"], + "9722": ["FD", "TerminationTimeThreshold"], + "9723": ["FD", "TerminationCardiacTriggerCountThreshold"], + "9724": ["FD", "TerminationRespiratoryTriggerCountThreshold"], + "9725": ["CS", "DetectorGeometry"], + "9726": ["FD", "TransverseDetectorSeparation"], + "9727": ["FD", "AxialDetectorDimension"], + "9729": ["US", "RadiopharmaceuticalAgentNumber"], + "9732": ["SQ", "PETFrameAcquisitionSequence"], + "9733": ["SQ", "PETDetectorMotionDetailsSequence"], + "9734": ["SQ", "PETTableDynamicsSequence"], + "9735": ["SQ", "PETPositionSequence"], + "9736": ["SQ", "PETFrameCorrectionFactorsSequence"], + "9737": ["SQ", "RadiopharmaceuticalUsageSequence"], + "9738": ["CS", "AttenuationCorrectionSource"], + "9739": ["US", "NumberOfIterations"], + "9740": ["US", "NumberOfSubsets"], + "9749": ["SQ", "PETReconstructionSequence"], + "9751": ["SQ", "PETFrameTypeSequence"], + "9755": ["CS", "TimeOfFlightInformationUsed"], + "9756": ["CS", "ReconstructionType"], + "9758": ["CS", "DecayCorrected"], + "9759": ["CS", "AttenuationCorrected"], + "9760": ["CS", "ScatterCorrected"], + "9761": ["CS", "DeadTimeCorrected"], + "9762": ["CS", "GantryMotionCorrected"], + "9763": ["CS", "PatientMotionCorrected"], + "9764": ["CS", "CountLossNormalizationCorrected"], + "9765": ["CS", "RandomsCorrected"], + "9766": ["CS", "NonUniformRadialSamplingCorrected"], + "9767": ["CS", "SensitivityCalibrated"], + "9768": ["CS", "DetectorNormalizationCorrection"], + "9769": ["CS", "IterativeReconstructionMethod"], + "9770": ["CS", "AttenuationCorrectionTemporalRelationship"], + "9771": ["SQ", "PatientPhysiologicalStateSequence"], + "9772": ["SQ", "PatientPhysiologicalStateCodeSequence"], + "9801": ["FD", "DepthsOfFocus"], + "9803": ["SQ", "ExcludedIntervalsSequence"], + "9804": ["DT", "ExclusionStartDatetime"], + "9805": ["FD", "ExclusionDuration"], + "9806": ["SQ", "USImageDescriptionSequence"], + "9807": ["SQ", "ImageDataTypeSequence"], + "9808": ["CS", "DataType"], + "9809": ["SQ", "TransducerScanPatternCodeSequence"], + "980B": ["CS", "AliasedDataType"], + "980C": ["CS", "PositionMeasuringDeviceUsed"], + "980D": ["SQ", "TransducerGeometryCodeSequence"], + "980E": ["SQ", "TransducerBeamSteeringCodeSequence"], + "980F": ["SQ", "TransducerApplicationCodeSequence"], + "A001": ["SQ", "ContributingEquipmentSequence"], + "A002": ["DT", "ContributionDateTime"], + "A003": ["ST", "ContributionDescription"] + }, + "0020": { + "000D": ["UI", "StudyInstanceUID"], + "000E": ["UI", "SeriesInstanceUID"], + "0010": ["SH", "StudyID"], + "0011": ["IS", "SeriesNumber"], + "0012": ["IS", "AcquisitionNumber"], + "0013": ["IS", "InstanceNumber"], + "0014": ["IS", "IsotopeNumber"], + "0015": ["IS", "PhaseNumber"], + "0016": ["IS", "IntervalNumber"], + "0017": ["IS", "TimeSlotNumber"], + "0018": ["IS", "AngleNumber"], + "0019": ["IS", "ItemNumber"], + "0020": ["CS", "PatientOrientation"], + "0022": ["IS", "OverlayNumber"], + "0024": ["IS", "CurveNumber"], + "0026": ["IS", "LUTNumber"], + "0030": ["DS", "ImagePosition"], + "0032": ["DS", "ImagePositionPatient"], + "0035": ["DS", "ImageOrientation"], + "0037": ["DS", "ImageOrientationPatient"], + "0050": ["DS", "Location"], + "0052": ["UI", "FrameOfReferenceUID"], + "0060": ["CS", "Laterality"], + "0062": ["CS", "ImageLaterality"], + "0070": ["LO", "ImageGeometryType"], + "0080": ["CS", "MaskingImage"], + "00AA": ["IS", "ReportNumber"], + "0100": ["IS", "TemporalPositionIdentifier"], + "0105": ["IS", "NumberOfTemporalPositions"], + "0110": ["DS", "TemporalResolution"], + "0200": ["UI", "SynchronizationFrameOfReferenceUID"], + "0242": ["UI", "SOPInstanceUIDOfConcatenationSource"], + "1000": ["IS", "SeriesInStudy"], + "1001": ["IS", "AcquisitionsInSeries"], + "1002": ["IS", "ImagesInAcquisition"], + "1003": ["IS", "ImagesInSeries"], + "1004": ["IS", "AcquisitionsInStudy"], + "1005": ["IS", "ImagesInStudy"], + "1020": ["LO", "Reference"], + "1040": ["LO", "PositionReferenceIndicator"], + "1041": ["DS", "SliceLocation"], + "1070": ["IS", "OtherStudyNumbers"], + "1200": ["IS", "NumberOfPatientRelatedStudies"], + "1202": ["IS", "NumberOfPatientRelatedSeries"], + "1204": ["IS", "NumberOfPatientRelatedInstances"], + "1206": ["IS", "NumberOfStudyRelatedSeries"], + "1208": ["IS", "NumberOfStudyRelatedInstances"], + "1209": ["IS", "NumberOfSeriesRelatedInstances"], + "3401": ["CS", "ModifyingDeviceID"], + "3402": ["CS", "ModifiedImageID"], + "3403": ["DA", "ModifiedImageDate"], + "3404": ["LO", "ModifyingDeviceManufacturer"], + "3405": ["TM", "ModifiedImageTime"], + "3406": ["LO", "ModifiedImageDescription"], + "4000": ["LT", "ImageComments"], + "5000": ["AT", "OriginalImageIdentification"], + "5002": ["LO", "OriginalImageIdentificationNomenclature"], + "9056": ["SH", "StackID"], + "9057": ["UL", "InStackPositionNumber"], + "9071": ["SQ", "FrameAnatomySequence"], + "9072": ["CS", "FrameLaterality"], + "9111": ["SQ", "FrameContentSequence"], + "9113": ["SQ", "PlanePositionSequence"], + "9116": ["SQ", "PlaneOrientationSequence"], + "9128": ["UL", "TemporalPositionIndex"], + "9153": ["FD", "NominalCardiacTriggerDelayTime"], + "9154": ["FL", "NominalCardiacTriggerTimePriorToRPeak"], + "9155": ["FL", "ActualCardiacTriggerTimePriorToRPeak"], + "9156": ["US", "FrameAcquisitionNumber"], + "9157": ["UL", "DimensionIndexValues"], + "9158": ["LT", "FrameComments"], + "9161": ["UI", "ConcatenationUID"], + "9162": ["US", "InConcatenationNumber"], + "9163": ["US", "InConcatenationTotalNumber"], + "9164": ["UI", "DimensionOrganizationUID"], + "9165": ["AT", "DimensionIndexPointer"], + "9167": ["AT", "FunctionalGroupPointer"], + "9213": ["LO", "DimensionIndexPrivateCreator"], + "9221": ["SQ", "DimensionOrganizationSequence"], + "9222": ["SQ", "DimensionIndexSequence"], + "9228": ["UL", "ConcatenationFrameOffsetNumber"], + "9238": ["LO", "FunctionalGroupPrivateCreator"], + "9241": ["FL", "NominalPercentageOfCardiacPhase"], + "9245": ["FL", "NominalPercentageOfRespiratoryPhase"], + "9246": ["FL", "StartingRespiratoryAmplitude"], + "9247": ["CS", "StartingRespiratoryPhase"], + "9248": ["FL", "EndingRespiratoryAmplitude"], + "9249": ["CS", "EndingRespiratoryPhase"], + "9250": ["CS", "RespiratoryTriggerType"], + "9251": ["FD", "RRIntervalTimeNominal"], + "9252": ["FD", "ActualCardiacTriggerDelayTime"], + "9253": ["SQ", "RespiratorySynchronizationSequence"], + "9254": ["FD", "RespiratoryIntervalTime"], + "9255": ["FD", "NominalRespiratoryTriggerDelayTime"], + "9256": ["FD", "RespiratoryTriggerDelayThreshold"], + "9257": ["FD", "ActualRespiratoryTriggerDelayTime"], + "9301": ["FD", "ImagePositionVolume"], + "9302": ["FD", "ImageOrientationVolume"], + "9307": ["CS", "UltrasoundAcquisitionGeometry"], + "9308": ["FD", "ApexPosition"], + "9309": ["FD", "VolumeToTransducerMappingMatrix"], + "930A": ["FD", "VolumeToTableMappingMatrix"], + "930C": ["CS", "PatientFrameOfReferenceSource"], + "930D": ["FD", "TemporalPositionTimeOffset"], + "930E": ["SQ", "PlanePositionVolumeSequence"], + "930F": ["SQ", "PlaneOrientationVolumeSequence"], + "9310": ["SQ", "TemporalPositionSequence"], + "9311": ["CS", "DimensionOrganizationType"], + "9312": ["UI", "VolumeFrameOfReferenceUID"], + "9313": ["UI", "TableFrameOfReferenceUID"], + "9421": ["LO", "DimensionDescriptionLabel"], + "9450": ["SQ", "PatientOrientationInFrameSequence"], + "9453": ["LO", "FrameLabel"], + "9518": ["US", "AcquisitionIndex"], + "9529": ["SQ", "ContributingSOPInstancesReferenceSequence"], + "9536": ["US", "ReconstructionIndex"] + }, + "0022": { + "0001": ["US", "LightPathFilterPassThroughWavelength"], + "0002": ["US", "LightPathFilterPassBand"], + "0003": ["US", "ImagePathFilterPassThroughWavelength"], + "0004": ["US", "ImagePathFilterPassBand"], + "0005": ["CS", "PatientEyeMovementCommanded"], + "0006": ["SQ", "PatientEyeMovementCommandCodeSequence"], + "0007": ["FL", "SphericalLensPower"], + "0008": ["FL", "CylinderLensPower"], + "0009": ["FL", "CylinderAxis"], + "000A": ["FL", "EmmetropicMagnification"], + "000B": ["FL", "IntraOcularPressure"], + "000C": ["FL", "HorizontalFieldOfView"], + "000D": ["CS", "PupilDilated"], + "000E": ["FL", "DegreeOfDilation"], + "0010": ["FL", "StereoBaselineAngle"], + "0011": ["FL", "StereoBaselineDisplacement"], + "0012": ["FL", "StereoHorizontalPixelOffset"], + "0013": ["FL", "StereoVerticalPixelOffset"], + "0014": ["FL", "StereoRotation"], + "0015": ["SQ", "AcquisitionDeviceTypeCodeSequence"], + "0016": ["SQ", "IlluminationTypeCodeSequence"], + "0017": ["SQ", "LightPathFilterTypeStackCodeSequence"], + "0018": ["SQ", "ImagePathFilterTypeStackCodeSequence"], + "0019": ["SQ", "LensesCodeSequence"], + "001A": ["SQ", "ChannelDescriptionCodeSequence"], + "001B": ["SQ", "RefractiveStateSequence"], + "001C": ["SQ", "MydriaticAgentCodeSequence"], + "001D": ["SQ", "RelativeImagePositionCodeSequence"], + "001E": ["FL", "CameraAngleOfView"], + "0020": ["SQ", "StereoPairsSequence"], + "0021": ["SQ", "LeftImageSequence"], + "0022": ["SQ", "RightImageSequence"], + "0030": ["FL", "AxialLengthOfTheEye"], + "0031": ["SQ", "OphthalmicFrameLocationSequence"], + "0032": ["FL", "ReferenceCoordinates"], + "0035": ["FL", "DepthSpatialResolution"], + "0036": ["FL", "MaximumDepthDistortion"], + "0037": ["FL", "AlongScanSpatialResolution"], + "0038": ["FL", "MaximumAlongScanDistortion"], + "0039": ["CS", "OphthalmicImageOrientation"], + "0041": ["FL", "DepthOfTransverseImage"], + "0042": ["SQ", "MydriaticAgentConcentrationUnitsSequence"], + "0048": ["FL", "AcrossScanSpatialResolution"], + "0049": ["FL", "MaximumAcrossScanDistortion"], + "004E": ["DS", "MydriaticAgentConcentration"], + "0055": ["FL", "IlluminationWaveLength"], + "0056": ["FL", "IlluminationPower"], + "0057": ["FL", "IlluminationBandwidth"], + "0058": ["SQ", "MydriaticAgentSequence"], + "1007": ["SQ", "OphthalmicAxialMeasurementsRightEyeSequence"], + "1008": ["SQ", "OphthalmicAxialMeasurementsLeftEyeSequence"], + "1010": ["CS", "OphthalmicAxialLengthMeasurementsType"], + "1019": ["FL", "OphthalmicAxialLength"], + "1024": ["SQ", "LensStatusCodeSequence"], + "1025": ["SQ", "VitreousStatusCodeSequence"], + "1028": ["SQ", "IOLFormulaCodeSequence"], + "1029": ["LO", "IOLFormulaDetail"], + "1033": ["FL", "KeratometerIndex"], + "1035": ["SQ", "SourceOfOphthalmicAxialLengthCodeSequence"], + "1037": ["FL", "TargetRefraction"], + "1039": ["CS", "RefractiveProcedureOccurred"], + "1040": ["SQ", "RefractiveSurgeryTypeCodeSequence"], + "1044": ["SQ", "OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"], + "1050": ["SQ", "OphthalmicAxialLengthMeasurementsSequence"], + "1053": ["FL", "IOLPower"], + "1054": ["FL", "PredictedRefractiveError"], + "1059": ["FL", "OphthalmicAxialLengthVelocity"], + "1065": ["LO", "LensStatusDescription"], + "1066": ["LO", "VitreousStatusDescription"], + "1090": ["SQ", "IOLPowerSequence"], + "1092": ["SQ", "LensConstantSequence"], + "1093": ["LO", "IOLManufacturer"], + "1094": ["LO", "LensConstantDescription"], + "1096": ["SQ", "KeratometryMeasurementTypeCodeSequence"], + "1100": ["SQ", "ReferencedOphthalmicAxialMeasurementsSequence"], + "1101": ["SQ", "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"], + "1103": ["SQ", "RefractiveErrorBeforeRefractiveSurgeryCodeSequence"], + "1121": ["FL", "IOLPowerForExactEmmetropia"], + "1122": ["FL", "IOLPowerForExactTargetRefraction"], + "1125": ["SQ", "AnteriorChamberDepthDefinitionCodeSequence"], + "1130": ["FL", "LensThickness"], + "1131": ["FL", "AnteriorChamberDepth"], + "1132": ["SQ", "SourceOfLensThicknessDataCodeSequence"], + "1133": ["SQ", "SourceOfAnteriorChamberDepthDataCodeSequence"], + "1135": ["SQ", "SourceOfRefractiveErrorDataCodeSequence"], + "1140": ["CS", "OphthalmicAxialLengthMeasurementModified"], + "1150": ["SQ", "OphthalmicAxialLengthDataSourceCodeSequence"], + "1153": ["SQ", "OphthalmicAxialLengthAcquisitionMethodCodeSequence"], + "1155": ["FL", "SignalToNoiseRatio"], + "1159": ["LO", "OphthalmicAxialLengthDataSourceDescription"], + "1210": ["SQ", "OphthalmicAxialLengthMeasurementsTotalLengthSequence"], + "1211": ["SQ", "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"], + "1212": ["SQ", "OphthalmicAxialLengthMeasurementsLengthSummationSequence"], + "1220": ["SQ", "UltrasoundOphthalmicAxialLengthMeasurementsSequence"], + "1225": ["SQ", "OpticalOphthalmicAxialLengthMeasurementsSequence"], + "1230": ["SQ", "UltrasoundSelectedOphthalmicAxialLengthSequence"], + "1250": ["SQ", "OphthalmicAxialLengthSelectionMethodCodeSequence"], + "1255": ["SQ", "OpticalSelectedOphthalmicAxialLengthSequence"], + "1257": ["SQ", "SelectedSegmentalOphthalmicAxialLengthSequence"], + "1260": ["SQ", "SelectedTotalOphthalmicAxialLengthSequence"], + "1262": ["SQ", "OphthalmicAxialLengthQualityMetricSequence"], + "1273": ["LO", "OphthalmicAxialLengthQualityMetricTypeDescription"], + "1300": ["SQ", "IntraocularLensCalculationsRightEyeSequence"], + "1310": ["SQ", "IntraocularLensCalculationsLeftEyeSequence"], + "1330": ["SQ", "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"] + }, + "0024": { + "0010": ["FL", "VisualFieldHorizontalExtent"], + "0011": ["FL", "VisualFieldVerticalExtent"], + "0012": ["CS", "VisualFieldShape"], + "0016": ["SQ", "ScreeningTestModeCodeSequence"], + "0018": ["FL", "MaximumStimulusLuminance"], + "0020": ["FL", "BackgroundLuminance"], + "0021": ["SQ", "StimulusColorCodeSequence"], + "0024": ["SQ", "BackgroundIlluminationColorCodeSequence"], + "0025": ["FL", "StimulusArea"], + "0028": ["FL", "StimulusPresentationTime"], + "0032": ["SQ", "FixationSequence"], + "0033": ["SQ", "FixationMonitoringCodeSequence"], + "0034": ["SQ", "VisualFieldCatchTrialSequence"], + "0035": ["US", "FixationCheckedQuantity"], + "0036": ["US", "PatientNotProperlyFixatedQuantity"], + "0037": ["CS", "PresentedVisualStimuliDataFlag"], + "0038": ["US", "NumberOfVisualStimuli"], + "0039": ["CS", "ExcessiveFixationLossesDataFlag"], + "0040": ["CS", "ExcessiveFixationLosses"], + "0042": ["US", "StimuliRetestingQuantity"], + "0044": ["LT", "CommentsOnPatientPerformanceOfVisualField"], + "0045": ["CS", "FalseNegativesEstimateFlag"], + "0046": ["FL", "FalseNegativesEstimate"], + "0048": ["US", "NegativeCatchTrialsQuantity"], + "0050": ["US", "FalseNegativesQuantity"], + "0051": ["CS", "ExcessiveFalseNegativesDataFlag"], + "0052": ["CS", "ExcessiveFalseNegatives"], + "0053": ["CS", "FalsePositivesEstimateFlag"], + "0054": ["FL", "FalsePositivesEstimate"], + "0055": ["CS", "CatchTrialsDataFlag"], + "0056": ["US", "PositiveCatchTrialsQuantity"], + "0057": ["CS", "TestPointNormalsDataFlag"], + "0058": ["SQ", "TestPointNormalsSequence"], + "0059": ["CS", "GlobalDeviationProbabilityNormalsFlag"], + "0060": ["US", "FalsePositivesQuantity"], + "0061": ["CS", "ExcessiveFalsePositivesDataFlag"], + "0062": ["CS", "ExcessiveFalsePositives"], + "0063": ["CS", "VisualFieldTestNormalsFlag"], + "0064": ["SQ", "ResultsNormalsSequence"], + "0065": ["SQ", "AgeCorrectedSensitivityDeviationAlgorithmSequence"], + "0066": ["FL", "GlobalDeviationFromNormal"], + "0067": ["SQ", "GeneralizedDefectSensitivityDeviationAlgorithmSequence"], + "0068": ["FL", "LocalizedDeviationfromNormal"], + "0069": ["LO", "PatientReliabilityIndicator"], + "0070": ["FL", "VisualFieldMeanSensitivity"], + "0071": ["FL", "GlobalDeviationProbability"], + "0072": ["CS", "LocalDeviationProbabilityNormalsFlag"], + "0073": ["FL", "LocalizedDeviationProbability"], + "0074": ["CS", "ShortTermFluctuationCalculated"], + "0075": ["FL", "ShortTermFluctuation"], + "0076": ["CS", "ShortTermFluctuationProbabilityCalculated"], + "0077": ["FL", "ShortTermFluctuationProbability"], + "0078": ["CS", "CorrectedLocalizedDeviationFromNormalCalculated"], + "0079": ["FL", "CorrectedLocalizedDeviationFromNormal"], + "0080": ["CS", "CorrectedLocalizedDeviationFromNormalProbabilityCalculated"], + "0081": ["FL", "CorrectedLocalizedDeviationFromNormalProbability"], + "0083": ["SQ", "GlobalDeviationProbabilitySequence"], + "0085": ["SQ", "LocalizedDeviationProbabilitySequence"], + "0086": ["CS", "FovealSensitivityMeasured"], + "0087": ["FL", "FovealSensitivity"], + "0088": ["FL", "VisualFieldTestDuration"], + "0089": ["SQ", "VisualFieldTestPointSequence"], + "0090": ["FL", "VisualFieldTestPointXCoordinate"], + "0091": ["FL", "VisualFieldTestPointYCoordinate"], + "0092": ["FL", "AgeCorrectedSensitivityDeviationValue"], + "0093": ["CS", "StimulusResults"], + "0094": ["FL", "SensitivityValue"], + "0095": ["CS", "RetestStimulusSeen"], + "0096": ["FL", "RetestSensitivityValue"], + "0097": ["SQ", "VisualFieldTestPointNormalsSequence"], + "0098": ["FL", "QuantifiedDefect"], + "0100": ["FL", "AgeCorrectedSensitivityDeviationProbabilityValue"], + "0102": ["CS", "GeneralizedDefectCorrectedSensitivityDeviationFlag "], + "0103": ["FL", "GeneralizedDefectCorrectedSensitivityDeviationValue "], + "0104": ["FL", "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"], + "0105": ["FL ", "MinimumSensitivityValue"], + "0106": ["CS", "BlindSpotLocalized"], + "0107": ["FL", "BlindSpotXCoordinate"], + "0108": ["FL", "BlindSpotYCoordinate "], + "0110": ["SQ", "VisualAcuityMeasurementSequence"], + "0112": ["SQ", "RefractiveParametersUsedOnPatientSequence"], + "0113": ["CS", "MeasurementLaterality"], + "0114": ["SQ", "OphthalmicPatientClinicalInformationLeftEyeSequence"], + "0115": ["SQ", "OphthalmicPatientClinicalInformationRightEyeSequence"], + "0117": ["CS", "FovealPointNormativeDataFlag"], + "0118": ["FL", "FovealPointProbabilityValue"], + "0120": ["CS", "ScreeningBaselineMeasured"], + "0122": ["SQ", "ScreeningBaselineMeasuredSequence"], + "0124": ["CS", "ScreeningBaselineType"], + "0126": ["FL", "ScreeningBaselineValue"], + "0202": ["LO", "AlgorithmSource"], + "0306": ["LO", "DataSetName"], + "0307": ["LO", "DataSetVersion"], + "0308": ["LO", "DataSetSource"], + "0309": ["LO", "DataSetDescription"], + "0317": ["SQ", "VisualFieldTestReliabilityGlobalIndexSequence"], + "0320": ["SQ", "VisualFieldGlobalResultsIndexSequence"], + "0325": ["SQ", "DataObservationSequence"], + "0338": ["CS", "IndexNormalsFlag"], + "0341": ["FL", "IndexProbability"], + "0344": ["SQ", "IndexProbabilitySequence"] + }, + "0028": { + "0002": ["US", "SamplesPerPixel"], + "0003": ["US", "SamplesPerPixelUsed"], + "0004": ["CS", "PhotometricInterpretation"], + "0005": ["US", "ImageDimensions"], + "0006": ["US", "PlanarConfiguration"], + "0008": ["IS", "NumberOfFrames"], + "0009": ["AT", "FrameIncrementPointer"], + "000A": ["AT", "FrameDimensionPointer"], + "0010": ["US", "Rows"], + "0011": ["US", "Columns"], + "0012": ["US", "Planes"], + "0014": ["US", "UltrasoundColorDataPresent"], + "0030": ["DS", "PixelSpacing"], + "0031": ["DS", "ZoomFactor"], + "0032": ["DS", "ZoomCenter"], + "0034": ["IS", "PixelAspectRatio"], + "0040": ["CS", "ImageFormat"], + "0050": ["LO", "ManipulatedImage"], + "0051": ["CS", "CorrectedImage"], + "005F": ["LO", "CompressionRecognitionCode"], + "0060": ["CS", "CompressionCode"], + "0061": ["SH", "CompressionOriginator"], + "0062": ["LO", "CompressionLabel"], + "0063": ["SH", "CompressionDescription"], + "0065": ["CS", "CompressionSequence"], + "0066": ["AT", "CompressionStepPointers"], + "0068": ["US", "RepeatInterval"], + "0069": ["US", "BitsGrouped"], + "0070": ["US", "PerimeterTable"], + "0071": ["SS", "PerimeterValue"], + "0080": ["US", "PredictorRows"], + "0081": ["US", "PredictorColumns"], + "0082": ["US", "PredictorConstants"], + "0090": ["CS", "BlockedPixels"], + "0091": ["US", "BlockRows"], + "0092": ["US", "BlockColumns"], + "0093": ["US", "RowOverlap"], + "0094": ["US", "ColumnOverlap"], + "0100": ["US", "BitsAllocated"], + "0101": ["US", "BitsStored"], + "0102": ["US", "HighBit"], + "0103": ["US", "PixelRepresentation"], + "0104": ["SS", "SmallestValidPixelValue"], + "0105": ["SS", "LargestValidPixelValue"], + "0106": ["SS", "SmallestImagePixelValue"], + "0107": ["SS", "LargestImagePixelValue"], + "0108": ["SS", "SmallestPixelValueInSeries"], + "0109": ["SS", "LargestPixelValueInSeries"], + "0110": ["SS", "SmallestImagePixelValueInPlane"], + "0111": ["SS", "LargestImagePixelValueInPlane"], + "0120": ["SS", "PixelPaddingValue"], + "0121": ["SS", "PixelPaddingRangeLimit"], + "0200": ["US", "ImageLocation"], + "0300": ["CS", "QualityControlImage"], + "0301": ["CS", "BurnedInAnnotation"], + "0302": ["CS", "RecognizableVisualFeatures"], + "0303": ["CS", "LongitudinalTemporalInformationModified"], + "0400": ["LO", "TransformLabel"], + "0401": ["LO", "TransformVersionNumber"], + "0402": ["US", "NumberOfTransformSteps"], + "0403": ["LO", "SequenceOfCompressedData"], + "0404": ["AT", "DetailsOfCoefficients"], + "0700": ["LO", "DCTLabel"], + "0701": ["CS", "DataBlockDescription"], + "0702": ["AT", "DataBlock"], + "0710": ["US", "NormalizationFactorFormat"], + "0720": ["US", "ZonalMapNumberFormat"], + "0721": ["AT", "ZonalMapLocation"], + "0722": ["US", "ZonalMapFormat"], + "0730": ["US", "AdaptiveMapFormat"], + "0740": ["US", "CodeNumberFormat"], + "0A02": ["CS", "PixelSpacingCalibrationType"], + "0A04": ["LO", "PixelSpacingCalibrationDescription"], + "1040": ["CS", "PixelIntensityRelationship"], + "1041": ["SS", "PixelIntensityRelationshipSign"], + "1050": ["DS", "WindowCenter"], + "1051": ["DS", "WindowWidth"], + "1052": ["DS", "RescaleIntercept"], + "1053": ["DS", "RescaleSlope"], + "1054": ["LO", "RescaleType"], + "1055": ["LO", "WindowCenterWidthExplanation"], + "1056": ["CS", "VOILUTFunction"], + "1080": ["CS", "GrayScale"], + "1090": ["CS", "RecommendedViewingMode"], + "1100": ["SS", "GrayLookupTableDescriptor"], + "1101": ["SS", "RedPaletteColorLookupTableDescriptor"], + "1102": ["SS", "GreenPaletteColorLookupTableDescriptor"], + "1103": ["SS", "BluePaletteColorLookupTableDescriptor"], + "1104": ["US", "AlphaPaletteColorLookupTableDescriptor"], + "1111": ["SS", "LargeRedPaletteColorLookupTableDescriptor"], + "1112": ["SS", "LargeGreenPaletteColorLookupTableDescriptor"], + "1113": ["SS", "LargeBluePaletteColorLookupTableDescriptor"], + "1199": ["UI", "PaletteColorLookupTableUID"], + "1200": ["OW", "GrayLookupTableData"], + "1201": ["OW", "RedPaletteColorLookupTableData"], + "1202": ["OW", "GreenPaletteColorLookupTableData"], + "1203": ["OW", "BluePaletteColorLookupTableData"], + "1204": ["OW", "AlphaPaletteColorLookupTableData"], + "1211": ["OW", "LargeRedPaletteColorLookupTableData"], + "1212": ["OW", "LargeGreenPaletteColorLookupTableData"], + "1213": ["OW", "LargeBluePaletteColorLookupTableData"], + "1214": ["UI", "LargePaletteColorLookupTableUID"], + "1221": ["OW", "SegmentedRedPaletteColorLookupTableData"], + "1222": ["OW", "SegmentedGreenPaletteColorLookupTableData"], + "1223": ["OW", "SegmentedBluePaletteColorLookupTableData"], + "1300": ["CS", "BreastImplantPresent"], + "1350": ["CS", "PartialView"], + "1351": ["ST", "PartialViewDescription"], + "1352": ["SQ", "PartialViewCodeSequence"], + "135A": ["CS", "SpatialLocationsPreserved"], + "1401": ["SQ", "DataFrameAssignmentSequence"], + "1402": ["CS", "DataPathAssignment"], + "1403": ["US", "BitsMappedToColorLookupTable"], + "1404": ["SQ", "BlendingLUT1Sequence"], + "1405": ["CS", "BlendingLUT1TransferFunction"], + "1406": ["FD", "BlendingWeightConstant"], + "1407": ["US", "BlendingLookupTableDescriptor"], + "1408": ["OW", "BlendingLookupTableData"], + "140B": ["SQ", "EnhancedPaletteColorLookupTableSequence"], + "140C": ["SQ", "BlendingLUT2Sequence"], + "140D": ["CS", "BlendingLUT2TransferFunction"], + "140E": ["CS", "DataPathID"], + "140F": ["CS", "RGBLUTTransferFunction"], + "1410": ["CS", "AlphaLUTTransferFunction"], + "2000": ["OB", "ICCProfile"], + "2110": ["CS", "LossyImageCompression"], + "2112": ["DS", "LossyImageCompressionRatio"], + "2114": ["CS", "LossyImageCompressionMethod"], + "3000": ["SQ", "ModalityLUTSequence"], + "3002": ["SS", "LUTDescriptor"], + "3003": ["LO", "LUTExplanation"], + "3004": ["LO", "ModalityLUTType"], + "3006": ["OW", "LUTData"], + "3010": ["SQ", "VOILUTSequence"], + "3110": ["SQ", "SoftcopyVOILUTSequence"], + "4000": ["LT", "ImagePresentationComments"], + "5000": ["SQ", "BiPlaneAcquisitionSequence"], + "6010": ["US", "RepresentativeFrameNumber"], + "6020": ["US", "FrameNumbersOfInterest"], + "6022": ["LO", "FrameOfInterestDescription"], + "6023": ["CS", "FrameOfInterestType"], + "6030": ["US", "MaskPointers"], + "6040": ["US", "RWavePointer"], + "6100": ["SQ", "MaskSubtractionSequence"], + "6101": ["CS", "MaskOperation"], + "6102": ["US", "ApplicableFrameRange"], + "6110": ["US", "MaskFrameNumbers"], + "6112": ["US", "ContrastFrameAveraging"], + "6114": ["FL", "MaskSubPixelShift"], + "6120": ["SS", "TIDOffset"], + "6190": ["ST", "MaskOperationExplanation"], + "7FE0": ["UT", "PixelDataProviderURL"], + "9001": ["UL", "DataPointRows"], + "9002": ["UL", "DataPointColumns"], + "9003": ["CS", "SignalDomainColumns"], + "9099": ["US", "LargestMonochromePixelValue"], + "9108": ["CS", "DataRepresentation"], + "9110": ["SQ", "PixelMeasuresSequence"], + "9132": ["SQ", "FrameVOILUTSequence"], + "9145": ["SQ", "PixelValueTransformationSequence"], + "9235": ["CS", "SignalDomainRows"], + "9411": ["FL", "DisplayFilterPercentage"], + "9415": ["SQ", "FramePixelShiftSequence"], + "9416": ["US", "SubtractionItemID"], + "9422": ["SQ", "PixelIntensityRelationshipLUTSequence"], + "9443": ["SQ", "FramePixelDataPropertiesSequence"], + "9444": ["CS", "GeometricalProperties"], + "9445": ["FL", "GeometricMaximumDistortion"], + "9446": ["CS", "ImageProcessingApplied"], + "9454": ["CS", "MaskSelectionMode"], + "9474": ["CS", "LUTFunction"], + "9478": ["FL", "MaskVisibilityPercentage"], + "9501": ["SQ", "PixelShiftSequence"], + "9502": ["SQ", "RegionPixelShiftSequence"], + "9503": ["SS", "VerticesOfTheRegion"], + "9505": ["SQ", "MultiFramePresentationSequence"], + "9506": ["US", "PixelShiftFrameRange"], + "9507": ["US", "LUTFrameRange"], + "9520": ["DS", "ImageToEquipmentMappingMatrix"], + "9537": ["CS", "EquipmentCoordinateSystemIdentification"] + }, + "0032": { + "000A": ["CS", "StudyStatusID"], + "000C": ["CS", "StudyPriorityID"], + "0012": ["LO", "StudyIDIssuer"], + "0032": ["DA", "StudyVerifiedDate"], + "0033": ["TM", "StudyVerifiedTime"], + "0034": ["DA", "StudyReadDate"], + "0035": ["TM", "StudyReadTime"], + "1000": ["DA", "ScheduledStudyStartDate"], + "1001": ["TM", "ScheduledStudyStartTime"], + "1010": ["DA", "ScheduledStudyStopDate"], + "1011": ["TM", "ScheduledStudyStopTime"], + "1020": ["LO", "ScheduledStudyLocation"], + "1021": ["AE", "ScheduledStudyLocationAETitle"], + "1030": ["LO", "ReasonForStudy"], + "1031": ["SQ", "RequestingPhysicianIdentificationSequence"], + "1032": ["PN", "RequestingPhysician"], + "1033": ["LO", "RequestingService"], + "1034": ["SQ", "RequestingServiceCodeSequence"], + "1040": ["DA", "StudyArrivalDate"], + "1041": ["TM", "StudyArrivalTime"], + "1050": ["DA", "StudyCompletionDate"], + "1051": ["TM", "StudyCompletionTime"], + "1055": ["CS", "StudyComponentStatusID"], + "1060": ["LO", "RequestedProcedureDescription"], + "1064": ["SQ", "RequestedProcedureCodeSequence"], + "1070": ["LO", "RequestedContrastAgent"], + "4000": ["LT", "StudyComments"] + }, + "0038": { + "0004": ["SQ", "ReferencedPatientAliasSequence"], + "0008": ["CS", "VisitStatusID"], + "0010": ["LO", "AdmissionID"], + "0011": ["LO", "IssuerOfAdmissionID"], + "0014": ["SQ", "IssuerOfAdmissionIDSequence"], + "0016": ["LO", "RouteOfAdmissions"], + "001A": ["DA", "ScheduledAdmissionDate"], + "001B": ["TM", "ScheduledAdmissionTime"], + "001C": ["DA", "ScheduledDischargeDate"], + "001D": ["TM", "ScheduledDischargeTime"], + "001E": ["LO", "ScheduledPatientInstitutionResidence"], + "0020": ["DA", "AdmittingDate"], + "0021": ["TM", "AdmittingTime"], + "0030": ["DA", "DischargeDate"], + "0032": ["TM", "DischargeTime"], + "0040": ["LO", "DischargeDiagnosisDescription"], + "0044": ["SQ", "DischargeDiagnosisCodeSequence"], + "0050": ["LO", "SpecialNeeds"], + "0060": ["LO", "ServiceEpisodeID"], + "0061": ["LO", "IssuerOfServiceEpisodeID"], + "0062": ["LO", "ServiceEpisodeDescription"], + "0064": ["SQ", "IssuerOfServiceEpisodeIDSequence"], + "0100": ["SQ", "PertinentDocumentsSequence"], + "0300": ["LO", "CurrentPatientLocation"], + "0400": ["LO", "PatientInstitutionResidence"], + "0500": ["LO", "PatientState"], + "0502": ["SQ", "PatientClinicalTrialParticipationSequence"], + "4000": ["LT", "VisitComments"] + }, + "003A": { + "0004": ["CS", "WaveformOriginality"], + "0005": ["US", "NumberOfWaveformChannels"], + "0010": ["UL", "NumberOfWaveformSamples"], + "001A": ["DS", "SamplingFrequency"], + "0020": ["SH", "MultiplexGroupLabel"], + "0200": ["SQ", "ChannelDefinitionSequence"], + "0202": ["IS", "WaveformChannelNumber"], + "0203": ["SH", "ChannelLabel"], + "0205": ["CS", "ChannelStatus"], + "0208": ["SQ", "ChannelSourceSequence"], + "0209": ["SQ", "ChannelSourceModifiersSequence"], + "020A": ["SQ", "SourceWaveformSequence"], + "020C": ["LO", "ChannelDerivationDescription"], + "0210": ["DS", "ChannelSensitivity"], + "0211": ["SQ", "ChannelSensitivityUnitsSequence"], + "0212": ["DS", "ChannelSensitivityCorrectionFactor"], + "0213": ["DS", "ChannelBaseline"], + "0214": ["DS", "ChannelTimeSkew"], + "0215": ["DS", "ChannelSampleSkew"], + "0218": ["DS", "ChannelOffset"], + "021A": ["US", "WaveformBitsStored"], + "0220": ["DS", "FilterLowFrequency"], + "0221": ["DS", "FilterHighFrequency"], + "0222": ["DS", "NotchFilterFrequency"], + "0223": ["DS", "NotchFilterBandwidth"], + "0230": ["FL", "WaveformDataDisplayScale"], + "0231": ["US", "WaveformDisplayBackgroundCIELabValue"], + "0240": ["SQ", "WaveformPresentationGroupSequence"], + "0241": ["US", "PresentationGroupNumber"], + "0242": ["SQ", "ChannelDisplaySequence"], + "0244": ["US", "ChannelRecommendedDisplayCIELabValue"], + "0245": ["FL", "ChannelPosition"], + "0246": ["CS", "DisplayShadingFlag"], + "0247": ["FL", "FractionalChannelDisplayScale"], + "0248": ["FL", "AbsoluteChannelDisplayScale"], + "0300": ["SQ", "MultiplexedAudioChannelsDescriptionCodeSequence"], + "0301": ["IS", "ChannelIdentificationCode"], + "0302": ["CS", "ChannelMode"] + }, + "0040": { + "0001": ["AE", "ScheduledStationAETitle"], + "0002": ["DA", "ScheduledProcedureStepStartDate"], + "0003": ["TM", "ScheduledProcedureStepStartTime"], + "0004": ["DA", "ScheduledProcedureStepEndDate"], + "0005": ["TM", "ScheduledProcedureStepEndTime"], + "0006": ["PN", "ScheduledPerformingPhysicianName"], + "0007": ["LO", "ScheduledProcedureStepDescription"], + "0008": ["SQ", "ScheduledProtocolCodeSequence"], + "0009": ["SH", "ScheduledProcedureStepID"], + "000A": ["SQ", "StageCodeSequence"], + "000B": ["SQ", "ScheduledPerformingPhysicianIdentificationSequence"], + "0010": ["SH", "ScheduledStationName"], + "0011": ["SH", "ScheduledProcedureStepLocation"], + "0012": ["LO", "PreMedication"], + "0020": ["CS", "ScheduledProcedureStepStatus"], + "0026": ["SQ", "OrderPlacerIdentifierSequence"], + "0027": ["SQ", "OrderFillerIdentifierSequence"], + "0031": ["UT", "LocalNamespaceEntityID"], + "0032": ["UT", "UniversalEntityID"], + "0033": ["CS", "UniversalEntityIDType"], + "0035": ["CS", "IdentifierTypeCode"], + "0036": ["SQ", "AssigningFacilitySequence"], + "0039": ["SQ", "AssigningJurisdictionCodeSequence"], + "003A": ["SQ", "AssigningAgencyOrDepartmentCodeSequence"], + "0100": ["SQ", "ScheduledProcedureStepSequence"], + "0220": ["SQ", "ReferencedNonImageCompositeSOPInstanceSequence"], + "0241": ["AE", "PerformedStationAETitle"], + "0242": ["SH", "PerformedStationName"], + "0243": ["SH", "PerformedLocation"], + "0244": ["DA", "PerformedProcedureStepStartDate"], + "0245": ["TM", "PerformedProcedureStepStartTime"], + "0250": ["DA", "PerformedProcedureStepEndDate"], + "0251": ["TM", "PerformedProcedureStepEndTime"], + "0252": ["CS", "PerformedProcedureStepStatus"], + "0253": ["SH", "PerformedProcedureStepID"], + "0254": ["LO", "PerformedProcedureStepDescription"], + "0255": ["LO", "PerformedProcedureTypeDescription"], + "0260": ["SQ", "PerformedProtocolCodeSequence"], + "0261": ["CS", "PerformedProtocolType"], + "0270": ["SQ", "ScheduledStepAttributesSequence"], + "0275": ["SQ", "RequestAttributesSequence"], + "0280": ["ST", "CommentsOnThePerformedProcedureStep"], + "0281": ["SQ", "PerformedProcedureStepDiscontinuationReasonCodeSequence"], + "0293": ["SQ", "QuantitySequence"], + "0294": ["DS", "Quantity"], + "0295": ["SQ", "MeasuringUnitsSequence"], + "0296": ["SQ", "BillingItemSequence"], + "0300": ["US", "TotalTimeOfFluoroscopy"], + "0301": ["US", "TotalNumberOfExposures"], + "0302": ["US", "EntranceDose"], + "0303": ["US", "ExposedArea"], + "0306": ["DS", "DistanceSourceToEntrance"], + "0307": ["DS", "DistanceSourceToSupport"], + "030E": ["SQ", "ExposureDoseSequence"], + "0310": ["ST", "CommentsOnRadiationDose"], + "0312": ["DS", "XRayOutput"], + "0314": ["DS", "HalfValueLayer"], + "0316": ["DS", "OrganDose"], + "0318": ["CS", "OrganExposed"], + "0320": ["SQ", "BillingProcedureStepSequence"], + "0321": ["SQ", "FilmConsumptionSequence"], + "0324": ["SQ", "BillingSuppliesAndDevicesSequence"], + "0330": ["SQ", "ReferencedProcedureStepSequence"], + "0340": ["SQ", "PerformedSeriesSequence"], + "0400": ["LT", "CommentsOnTheScheduledProcedureStep"], + "0440": ["SQ", "ProtocolContextSequence"], + "0441": ["SQ", "ContentItemModifierSequence"], + "0500": ["SQ", "ScheduledSpecimenSequence"], + "050A": ["LO", "SpecimenAccessionNumber"], + "0512": ["LO", "ContainerIdentifier"], + "0513": ["SQ", "IssuerOfTheContainerIdentifierSequence"], + "0515": ["SQ", "AlternateContainerIdentifierSequence"], + "0518": ["SQ", "ContainerTypeCodeSequence"], + "051A": ["LO", "ContainerDescription"], + "0520": ["SQ", "ContainerComponentSequence"], + "0550": ["SQ", "SpecimenSequence"], + "0551": ["LO", "SpecimenIdentifier"], + "0552": ["SQ", "SpecimenDescriptionSequenceTrial"], + "0553": ["ST", "SpecimenDescriptionTrial"], + "0554": ["UI", "SpecimenUID"], + "0555": ["SQ", "AcquisitionContextSequence"], + "0556": ["ST", "AcquisitionContextDescription"], + "059A": ["SQ", "SpecimenTypeCodeSequence"], + "0560": ["SQ", "SpecimenDescriptionSequence"], + "0562": ["SQ", "IssuerOfTheSpecimenIdentifierSequence"], + "0600": ["LO", "SpecimenShortDescription"], + "0602": ["UT", "SpecimenDetailedDescription"], + "0610": ["SQ", "SpecimenPreparationSequence"], + "0612": ["SQ", "SpecimenPreparationStepContentItemSequence"], + "0620": ["SQ", "SpecimenLocalizationContentItemSequence"], + "06FA": ["LO", "SlideIdentifier"], + "071A": ["SQ", "ImageCenterPointCoordinatesSequence"], + "072A": ["DS", "XOffsetInSlideCoordinateSystem"], + "073A": ["DS", "YOffsetInSlideCoordinateSystem"], + "074A": ["DS", "ZOffsetInSlideCoordinateSystem"], + "08D8": ["SQ", "PixelSpacingSequence"], + "08DA": ["SQ", "CoordinateSystemAxisCodeSequence"], + "08EA": ["SQ", "MeasurementUnitsCodeSequence"], + "09F8": ["SQ", "VitalStainCodeSequenceTrial"], + "1001": ["SH", "RequestedProcedureID"], + "1002": ["LO", "ReasonForTheRequestedProcedure"], + "1003": ["SH", "RequestedProcedurePriority"], + "1004": ["LO", "PatientTransportArrangements"], + "1005": ["LO", "RequestedProcedureLocation"], + "1006": ["SH", "PlacerOrderNumberProcedure"], + "1007": ["SH", "FillerOrderNumberProcedure"], + "1008": ["LO", "ConfidentialityCode"], + "1009": ["SH", "ReportingPriority"], + "100A": ["SQ", "ReasonForRequestedProcedureCodeSequence"], + "1010": ["PN", "NamesOfIntendedRecipientsOfResults"], + "1011": ["SQ", "IntendedRecipientsOfResultsIdentificationSequence"], + "1012": ["SQ", "ReasonForPerformedProcedureCodeSequence"], + "1060": ["LO", "RequestedProcedureDescriptionTrial"], + "1101": ["SQ", "PersonIdentificationCodeSequence"], + "1102": ["ST", "PersonAddress"], + "1103": ["LO", "PersonTelephoneNumbers"], + "1400": ["LT", "RequestedProcedureComments"], + "2001": ["LO", "ReasonForTheImagingServiceRequest"], + "2004": ["DA", "IssueDateOfImagingServiceRequest"], + "2005": ["TM", "IssueTimeOfImagingServiceRequest"], + "2006": ["SH", "PlacerOrderNumberImagingServiceRequestRetired"], + "2007": ["SH", "FillerOrderNumberImagingServiceRequestRetired"], + "2008": ["PN", "OrderEnteredBy"], + "2009": ["SH", "OrderEntererLocation"], + "2010": ["SH", "OrderCallbackPhoneNumber"], + "2016": ["LO", "PlacerOrderNumberImagingServiceRequest"], + "2017": ["LO", "FillerOrderNumberImagingServiceRequest"], + "2400": ["LT", "ImagingServiceRequestComments"], + "3001": ["LO", "ConfidentialityConstraintOnPatientDataDescription"], + "4001": ["CS", "GeneralPurposeScheduledProcedureStepStatus"], + "4002": ["CS", "GeneralPurposePerformedProcedureStepStatus"], + "4003": ["CS", "GeneralPurposeScheduledProcedureStepPriority"], + "4004": ["SQ", "ScheduledProcessingApplicationsCodeSequence"], + "4005": ["DT", "ScheduledProcedureStepStartDateTime"], + "4006": ["CS", "MultipleCopiesFlag"], + "4007": ["SQ", "PerformedProcessingApplicationsCodeSequence"], + "4009": ["SQ", "HumanPerformerCodeSequence"], + "4010": ["DT", "ScheduledProcedureStepModificationDateTime"], + "4011": ["DT", "ExpectedCompletionDateTime"], + "4015": ["SQ", "ResultingGeneralPurposePerformedProcedureStepsSequence"], + "4016": ["SQ", "ReferencedGeneralPurposeScheduledProcedureStepSequence"], + "4018": ["SQ", "ScheduledWorkitemCodeSequence"], + "4019": ["SQ", "PerformedWorkitemCodeSequence"], + "4020": ["CS", "InputAvailabilityFlag"], + "4021": ["SQ", "InputInformationSequence"], + "4022": ["SQ", "RelevantInformationSequence"], + "4023": ["UI", "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"], + "4025": ["SQ", "ScheduledStationNameCodeSequence"], + "4026": ["SQ", "ScheduledStationClassCodeSequence"], + "4027": ["SQ", "ScheduledStationGeographicLocationCodeSequence"], + "4028": ["SQ", "PerformedStationNameCodeSequence"], + "4029": ["SQ", "PerformedStationClassCodeSequence"], + "4030": ["SQ", "PerformedStationGeographicLocationCodeSequence"], + "4031": ["SQ", "RequestedSubsequentWorkitemCodeSequence"], + "4032": ["SQ", "NonDICOMOutputCodeSequence"], + "4033": ["SQ", "OutputInformationSequence"], + "4034": ["SQ", "ScheduledHumanPerformersSequence"], + "4035": ["SQ", "ActualHumanPerformersSequence"], + "4036": ["LO", "HumanPerformerOrganization"], + "4037": ["PN", "HumanPerformerName"], + "4040": ["CS", "RawDataHandling"], + "4041": ["CS", "InputReadinessState"], + "4050": ["DT", "PerformedProcedureStepStartDateTime"], + "4051": ["DT", "PerformedProcedureStepEndDateTime"], + "4052": ["DT", "ProcedureStepCancellationDateTime"], + "8302": ["DS", "EntranceDoseInmGy"], + "9094": ["SQ", "ReferencedImageRealWorldValueMappingSequence"], + "9096": ["SQ", "RealWorldValueMappingSequence"], + "9098": ["SQ", "PixelValueMappingCodeSequence"], + "9210": ["SH", "LUTLabel"], + "9211": ["SS", "RealWorldValueLastValueMapped"], + "9212": ["FD", "RealWorldValueLUTData"], + "9216": ["SS", "RealWorldValueFirstValueMapped"], + "9224": ["FD", "RealWorldValueIntercept"], + "9225": ["FD", "RealWorldValueSlope"], + "A007": ["CS", "FindingsFlagTrial"], + "A010": ["CS", "RelationshipType"], + "A020": ["SQ", "FindingsSequenceTrial"], + "A021": ["UI", "FindingsGroupUIDTrial"], + "A022": ["UI", "ReferencedFindingsGroupUIDTrial"], + "A023": ["DA", "FindingsGroupRecordingDateTrial"], + "A024": ["TM", "FindingsGroupRecordingTimeTrial"], + "A026": ["SQ", "FindingsSourceCategoryCodeSequenceTrial"], + "A027": ["LO", "VerifyingOrganization"], + "A028": ["SQ", "DocumentingOrganizationIdentifierCodeSequenceTrial"], + "A030": ["DT", "VerificationDateTime"], + "A032": ["DT", "ObservationDateTime"], + "A040": ["CS", "ValueType"], + "A043": ["SQ", "ConceptNameCodeSequence"], + "A047": ["LO", "MeasurementPrecisionDescriptionTrial"], + "A050": ["CS", "ContinuityOfContent"], + "A057": ["CS", "UrgencyOrPriorityAlertsTrial"], + "A060": ["LO", "SequencingIndicatorTrial"], + "A066": ["SQ", "DocumentIdentifierCodeSequenceTrial"], + "A067": ["PN", "DocumentAuthorTrial"], + "A068": ["SQ", "DocumentAuthorIdentifierCodeSequenceTrial"], + "A070": ["SQ", "IdentifierCodeSequenceTrial"], + "A073": ["SQ", "VerifyingObserverSequence"], + "A074": ["OB", "ObjectBinaryIdentifierTrial"], + "A075": ["PN", "VerifyingObserverName"], + "A076": ["SQ", "DocumentingObserverIdentifierCodeSequenceTrial"], + "A078": ["SQ", "AuthorObserverSequence"], + "A07A": ["SQ", "ParticipantSequence"], + "A07C": ["SQ", "CustodialOrganizationSequence"], + "A080": ["CS", "ParticipationType"], + "A082": ["DT", "ParticipationDateTime"], + "A084": ["CS", "ObserverType"], + "A085": ["SQ", "ProcedureIdentifierCodeSequenceTrial"], + "A088": ["SQ", "VerifyingObserverIdentificationCodeSequence"], + "A089": ["OB", "ObjectDirectoryBinaryIdentifierTrial"], + "A090": ["SQ", "EquivalentCDADocumentSequence"], + "A0B0": ["US", "ReferencedWaveformChannels"], + "A110": ["DA", "DateOfDocumentOrVerbalTransactionTrial"], + "A112": ["TM", "TimeOfDocumentCreationOrVerbalTransactionTrial"], + "A120": ["DT", "DateTime"], + "A121": ["DA", "Date"], + "A122": ["TM", "Time"], + "A123": ["PN", "PersonName"], + "A124": ["UI", "UID"], + "A125": ["CS", "ReportStatusIDTrial"], + "A130": ["CS", "TemporalRangeType"], + "A132": ["UL", "ReferencedSamplePositions"], + "A136": ["US", "ReferencedFrameNumbers"], + "A138": ["DS", "ReferencedTimeOffsets"], + "A13A": ["DT", "ReferencedDateTime"], + "A160": ["UT", "TextValue"], + "A167": ["SQ", "ObservationCategoryCodeSequenceTrial"], + "A168": ["SQ", "ConceptCodeSequence"], + "A16A": ["ST", "BibliographicCitationTrial"], + "A170": ["SQ", "PurposeOfReferenceCodeSequence"], + "A171": ["UI", "ObservationUIDTrial"], + "A172": ["UI", "ReferencedObservationUIDTrial"], + "A173": ["CS", "ReferencedObservationClassTrial"], + "A174": ["CS", "ReferencedObjectObservationClassTrial"], + "A180": ["US", "AnnotationGroupNumber"], + "A192": ["DA", "ObservationDateTrial"], + "A193": ["TM", "ObservationTimeTrial"], + "A194": ["CS", "MeasurementAutomationTrial"], + "A195": ["SQ", "ModifierCodeSequence"], + "A224": ["ST", "IdentificationDescriptionTrial"], + "A290": ["CS", "CoordinatesSetGeometricTypeTrial"], + "A296": ["SQ", "AlgorithmCodeSequenceTrial"], + "A297": ["ST", "AlgorithmDescriptionTrial"], + "A29A": ["SL", "PixelCoordinatesSetTrial"], + "A300": ["SQ", "MeasuredValueSequence"], + "A301": ["SQ", "NumericValueQualifierCodeSequence"], + "A307": ["PN", "CurrentObserverTrial"], + "A30A": ["DS", "NumericValue"], + "A313": ["SQ", "ReferencedAccessionSequenceTrial"], + "A33A": ["ST", "ReportStatusCommentTrial"], + "A340": ["SQ", "ProcedureContextSequenceTrial"], + "A352": ["PN", "VerbalSourceTrial"], + "A353": ["ST", "AddressTrial"], + "A354": ["LO", "TelephoneNumberTrial"], + "A358": ["SQ", "VerbalSourceIdentifierCodeSequenceTrial"], + "A360": ["SQ", "PredecessorDocumentsSequence"], + "A370": ["SQ", "ReferencedRequestSequence"], + "A372": ["SQ", "PerformedProcedureCodeSequence"], + "A375": ["SQ", "CurrentRequestedProcedureEvidenceSequence"], + "A380": ["SQ", "ReportDetailSequenceTrial"], + "A385": ["SQ", "PertinentOtherEvidenceSequence"], + "A390": ["SQ", "HL7StructuredDocumentReferenceSequence"], + "A402": ["UI", "ObservationSubjectUIDTrial"], + "A403": ["CS", "ObservationSubjectClassTrial"], + "A404": ["SQ", "ObservationSubjectTypeCodeSequenceTrial"], + "A491": ["CS", "CompletionFlag"], + "A492": ["LO", "CompletionFlagDescription"], + "A493": ["CS", "VerificationFlag"], + "A494": ["CS", "ArchiveRequested"], + "A496": ["CS", "PreliminaryFlag"], + "A504": ["SQ", "ContentTemplateSequence"], + "A525": ["SQ", "IdenticalDocumentsSequence"], + "A600": ["CS", "ObservationSubjectContextFlagTrial"], + "A601": ["CS", "ObserverContextFlagTrial"], + "A603": ["CS", "ProcedureContextFlagTrial"], + "A730": ["SQ", "ContentSequence"], + "A731": ["SQ", "RelationshipSequenceTrial"], + "A732": ["SQ", "RelationshipTypeCodeSequenceTrial"], + "A744": ["SQ", "LanguageCodeSequenceTrial"], + "A992": ["ST", "UniformResourceLocatorTrial"], + "B020": ["SQ", "WaveformAnnotationSequence"], + "DB00": ["CS", "TemplateIdentifier"], + "DB06": ["DT", "TemplateVersion"], + "DB07": ["DT", "TemplateLocalVersion"], + "DB0B": ["CS", "TemplateExtensionFlag"], + "DB0C": ["UI", "TemplateExtensionOrganizationUID"], + "DB0D": ["UI", "TemplateExtensionCreatorUID"], + "DB73": ["UL", "ReferencedContentItemIdentifier"], + "E001": ["ST", "HL7InstanceIdentifier"], + "E004": ["DT", "HL7DocumentEffectiveTime"], + "E006": ["SQ", "HL7DocumentTypeCodeSequence"], + "E008": ["SQ", "DocumentClassCodeSequence"], + "E010": ["UT", "RetrieveURI"], + "E011": ["UI", "RetrieveLocationUID"], + "E020": ["CS", "TypeOfInstances"], + "E021": ["SQ", "DICOMRetrievalSequence"], + "E022": ["SQ", "DICOMMediaRetrievalSequence"], + "E023": ["SQ", "WADORetrievalSequence"], + "E024": ["SQ", "XDSRetrievalSequence"], + "E030": ["UI", "RepositoryUniqueID"], + "E031": ["UI", "HomeCommunityID"] + }, + "0042": { + "0010": ["ST", "DocumentTitle"], + "0011": ["OB", "EncapsulatedDocument"], + "0012": ["LO", "MIMETypeOfEncapsulatedDocument"], + "0013": ["SQ", "SourceInstanceSequence"], + "0014": ["LO", "ListOfMIMETypes"] + }, + "0044": { + "0001": ["ST", "ProductPackageIdentifier"], + "0002": ["CS", "SubstanceAdministrationApproval"], + "0003": ["LT", "ApprovalStatusFurtherDescription"], + "0004": ["DT", "ApprovalStatusDateTime"], + "0007": ["SQ", "ProductTypeCodeSequence"], + "0008": ["LO", "ProductName"], + "0009": ["LT", "ProductDescription"], + "000A": ["LO", "ProductLotIdentifier"], + "000B": ["DT", "ProductExpirationDateTime"], + "0010": ["DT", "SubstanceAdministrationDateTime"], + "0011": ["LO", "SubstanceAdministrationNotes"], + "0012": ["LO", "SubstanceAdministrationDeviceID"], + "0013": ["SQ", "ProductParameterSequence"], + "0019": ["SQ", "SubstanceAdministrationParameterSequence"] + }, + "0046": { + "0012": ["LO", "LensDescription"], + "0014": ["SQ", "RightLensSequence"], + "0015": ["SQ", "LeftLensSequence"], + "0016": ["SQ", "UnspecifiedLateralityLensSequence"], + "0018": ["SQ", "CylinderSequence"], + "0028": ["SQ", "PrismSequence"], + "0030": ["FD", "HorizontalPrismPower"], + "0032": ["CS", "HorizontalPrismBase"], + "0034": ["FD", "VerticalPrismPower"], + "0036": ["CS", "VerticalPrismBase"], + "0038": ["CS", "LensSegmentType"], + "0040": ["FD", "OpticalTransmittance"], + "0042": ["FD", "ChannelWidth"], + "0044": ["FD", "PupilSize"], + "0046": ["FD", "CornealSize"], + "0050": ["SQ", "AutorefractionRightEyeSequence"], + "0052": ["SQ", "AutorefractionLeftEyeSequence"], + "0060": ["FD", "DistancePupillaryDistance"], + "0062": ["FD", "NearPupillaryDistance"], + "0063": ["FD", "IntermediatePupillaryDistance"], + "0064": ["FD", "OtherPupillaryDistance"], + "0070": ["SQ", "KeratometryRightEyeSequence"], + "0071": ["SQ", "KeratometryLeftEyeSequence"], + "0074": ["SQ", "SteepKeratometricAxisSequence"], + "0075": ["FD", "RadiusOfCurvature"], + "0076": ["FD", "KeratometricPower"], + "0077": ["FD", "KeratometricAxis"], + "0080": ["SQ", "FlatKeratometricAxisSequence"], + "0092": ["CS", "BackgroundColor"], + "0094": ["CS", "Optotype"], + "0095": ["CS", "OptotypePresentation"], + "0097": ["SQ", "SubjectiveRefractionRightEyeSequence"], + "0098": ["SQ", "SubjectiveRefractionLeftEyeSequence"], + "0100": ["SQ", "AddNearSequence"], + "0101": ["SQ", "AddIntermediateSequence"], + "0102": ["SQ", "AddOtherSequence"], + "0104": ["FD", "AddPower"], + "0106": ["FD", "ViewingDistance"], + "0121": ["SQ", "VisualAcuityTypeCodeSequence"], + "0122": ["SQ", "VisualAcuityRightEyeSequence"], + "0123": ["SQ", "VisualAcuityLeftEyeSequence"], + "0124": ["SQ", "VisualAcuityBothEyesOpenSequence"], + "0125": ["CS", "ViewingDistanceType"], + "0135": ["SS", "VisualAcuityModifiers"], + "0137": ["FD", "DecimalVisualAcuity"], + "0139": ["LO", "OptotypeDetailedDefinition"], + "0145": ["SQ", "ReferencedRefractiveMeasurementsSequence"], + "0146": ["FD", "SpherePower"], + "0147": ["FD", "CylinderPower"] + }, + "0048": { + "0001": ["FL", "ImagedVolumeWidth"], + "0002": ["FL", "ImagedVolumeHeight"], + "0003": ["FL", "ImagedVolumeDepth"], + "0006": ["UL", "TotalPixelMatrixColumns"], + "0007": ["UL", "TotalPixelMatrixRows"], + "0008": ["SQ", "TotalPixelMatrixOriginSequence"], + "0010": ["CS", "SpecimenLabelInImage"], + "0011": ["CS", "FocusMethod"], + "0012": ["CS", "ExtendedDepthOfField"], + "0013": ["US", "NumberOfFocalPlanes"], + "0014": ["FL", "DistanceBetweenFocalPlanes"], + "0015": ["US", "RecommendedAbsentPixelCIELabValue"], + "0100": ["SQ", "IlluminatorTypeCodeSequence"], + "0102": ["DS", "ImageOrientationSlide"], + "0105": ["SQ", "OpticalPathSequence"], + "0106": ["SH", "OpticalPathIdentifier"], + "0107": ["ST", "OpticalPathDescription"], + "0108": ["SQ", "IlluminationColorCodeSequence"], + "0110": ["SQ", "SpecimenReferenceSequence"], + "0111": ["DS", "CondenserLensPower"], + "0112": ["DS", "ObjectiveLensPower"], + "0113": ["DS", "ObjectiveLensNumericalAperture"], + "0120": ["SQ", "PaletteColorLookupTableSequence"], + "0200": ["SQ", "ReferencedImageNavigationSequence"], + "0201": ["US", "TopLeftHandCornerOfLocalizerArea"], + "0202": ["US", "BottomRightHandCornerOfLocalizerArea"], + "0207": ["SQ", "OpticalPathIdentificationSequence"], + "021A": ["SQ", "PlanePositionSlideSequence"], + "021E": ["SL", "RowPositionInTotalImagePixelMatrix"], + "021F": ["SL", "ColumnPositionInTotalImagePixelMatrix"], + "0301": ["CS", "PixelOriginInterpretation"] + }, + "0050": { + "0004": ["CS", "CalibrationImage"], + "0010": ["SQ", "DeviceSequence"], + "0012": ["SQ", "ContainerComponentTypeCodeSequence"], + "0013": ["FD", "ContainerComponentThickness"], + "0014": ["DS", "DeviceLength"], + "0015": ["FD", "ContainerComponentWidth"], + "0016": ["DS", "DeviceDiameter"], + "0017": ["CS", "DeviceDiameterUnits"], + "0018": ["DS", "DeviceVolume"], + "0019": ["DS", "InterMarkerDistance"], + "001A": ["CS", "ContainerComponentMaterial"], + "001B": ["LO", "ContainerComponentID"], + "001C": ["FD", "ContainerComponentLength"], + "001D": ["FD", "ContainerComponentDiameter"], + "001E": ["LO", "ContainerComponentDescription"], + "0020": ["LO", "DeviceDescription"] + }, + "0052": { + "0001": ["FL", "ContrastBolusIngredientPercentByVolume"], + "0002": ["FD", "OCTFocalDistance"], + "0003": ["FD", "BeamSpotSize"], + "0004": ["FD", "EffectiveRefractiveIndex"], + "0006": ["CS", "OCTAcquisitionDomain"], + "0007": ["FD", "OCTOpticalCenterWavelength"], + "0008": ["FD", "AxialResolution"], + "0009": ["FD", "RangingDepth"], + "0011": ["FD", "ALineRate"], + "0012": ["US", "ALinesPerFrame"], + "0013": ["FD", "CatheterRotationalRate"], + "0014": ["FD", "ALinePixelSpacing"], + "0016": ["SQ", "ModeOfPercutaneousAccessSequence"], + "0025": ["SQ", "IntravascularOCTFrameTypeSequence"], + "0026": ["CS", "OCTZOffsetApplied"], + "0027": ["SQ", "IntravascularFrameContentSequence"], + "0028": ["FD", "IntravascularLongitudinalDistance"], + "0029": ["SQ", "IntravascularOCTFrameContentSequence"], + "0030": ["SS", "OCTZOffsetCorrection"], + "0031": ["CS", "CatheterDirectionOfRotation"], + "0033": ["FD", "SeamLineLocation"], + "0034": ["FD", "FirstALineLocation"], + "0036": ["US", "SeamLineIndex"], + "0038": ["US", "NumberOfPaddedAlines"], + "0039": ["CS", "InterpolationType"], + "003A": ["CS", "RefractiveIndexApplied"] + }, + "0054": { + "0010": ["US", "EnergyWindowVector"], + "0011": ["US", "NumberOfEnergyWindows"], + "0012": ["SQ", "EnergyWindowInformationSequence"], + "0013": ["SQ", "EnergyWindowRangeSequence"], + "0014": ["DS", "EnergyWindowLowerLimit"], + "0015": ["DS", "EnergyWindowUpperLimit"], + "0016": ["SQ", "RadiopharmaceuticalInformationSequence"], + "0017": ["IS", "ResidualSyringeCounts"], + "0018": ["SH", "EnergyWindowName"], + "0020": ["US", "DetectorVector"], + "0021": ["US", "NumberOfDetectors"], + "0022": ["SQ", "DetectorInformationSequence"], + "0030": ["US", "PhaseVector"], + "0031": ["US", "NumberOfPhases"], + "0032": ["SQ", "PhaseInformationSequence"], + "0033": ["US", "NumberOfFramesInPhase"], + "0036": ["IS", "PhaseDelay"], + "0038": ["IS", "PauseBetweenFrames"], + "0039": ["CS", "PhaseDescription"], + "0050": ["US", "RotationVector"], + "0051": ["US", "NumberOfRotations"], + "0052": ["SQ", "RotationInformationSequence"], + "0053": ["US", "NumberOfFramesInRotation"], + "0060": ["US", "RRIntervalVector"], + "0061": ["US", "NumberOfRRIntervals"], + "0062": ["SQ", "GatedInformationSequence"], + "0063": ["SQ", "DataInformationSequence"], + "0070": ["US", "TimeSlotVector"], + "0071": ["US", "NumberOfTimeSlots"], + "0072": ["SQ", "TimeSlotInformationSequence"], + "0073": ["DS", "TimeSlotTime"], + "0080": ["US", "SliceVector"], + "0081": ["US", "NumberOfSlices"], + "0090": ["US", "AngularViewVector"], + "0100": ["US", "TimeSliceVector"], + "0101": ["US", "NumberOfTimeSlices"], + "0200": ["DS", "StartAngle"], + "0202": ["CS", "TypeOfDetectorMotion"], + "0210": ["IS", "TriggerVector"], + "0211": ["US", "NumberOfTriggersInPhase"], + "0220": ["SQ", "ViewCodeSequence"], + "0222": ["SQ", "ViewModifierCodeSequence"], + "0300": ["SQ", "RadionuclideCodeSequence"], + "0302": ["SQ", "AdministrationRouteCodeSequence"], + "0304": ["SQ", "RadiopharmaceuticalCodeSequence"], + "0306": ["SQ", "CalibrationDataSequence"], + "0308": ["US", "EnergyWindowNumber"], + "0400": ["SH", "ImageID"], + "0410": ["SQ", "PatientOrientationCodeSequence"], + "0412": ["SQ", "PatientOrientationModifierCodeSequence"], + "0414": ["SQ", "PatientGantryRelationshipCodeSequence"], + "0500": ["CS", "SliceProgressionDirection"], + "1000": ["CS", "SeriesType"], + "1001": ["CS", "Units"], + "1002": ["CS", "CountsSource"], + "1004": ["CS", "ReprojectionMethod"], + "1006": ["CS", "SUVType"], + "1100": ["CS", "RandomsCorrectionMethod"], + "1101": ["LO", "AttenuationCorrectionMethod"], + "1102": ["CS", "DecayCorrection"], + "1103": ["LO", "ReconstructionMethod"], + "1104": ["LO", "DetectorLinesOfResponseUsed"], + "1105": ["LO", "ScatterCorrectionMethod"], + "1200": ["DS", "AxialAcceptance"], + "1201": ["IS", "AxialMash"], + "1202": ["IS", "TransverseMash"], + "1203": ["DS", "DetectorElementSize"], + "1210": ["DS", "CoincidenceWindowWidth"], + "1220": ["CS", "SecondaryCountsType"], + "1300": ["DS", "FrameReferenceTime"], + "1310": ["IS", "PrimaryPromptsCountsAccumulated"], + "1311": ["IS", "SecondaryCountsAccumulated"], + "1320": ["DS", "SliceSensitivityFactor"], + "1321": ["DS", "DecayFactor"], + "1322": ["DS", "DoseCalibrationFactor"], + "1323": ["DS", "ScatterFractionFactor"], + "1324": ["DS", "DeadTimeFactor"], + "1330": ["US", "ImageIndex"], + "1400": ["CS", "CountsIncluded"], + "1401": ["CS", "DeadTimeCorrectionFlag"] + }, + "0060": { + "3000": ["SQ", "HistogramSequence"], + "3002": ["US", "HistogramNumberOfBins"], + "3004": ["SS", "HistogramFirstBinValue"], + "3006": ["SS", "HistogramLastBinValue"], + "3008": ["US", "HistogramBinWidth"], + "3010": ["LO", "HistogramExplanation"], + "3020": ["UL", "HistogramData"] + }, + "0062": { + "0001": ["CS", "SegmentationType"], + "0002": ["SQ", "SegmentSequence"], + "0003": ["SQ", "SegmentedPropertyCategoryCodeSequence"], + "0004": ["US", "SegmentNumber"], + "0005": ["LO", "SegmentLabel"], + "0006": ["ST", "SegmentDescription"], + "0008": ["CS", "SegmentAlgorithmType"], + "0009": ["LO", "SegmentAlgorithmName"], + "000A": ["SQ", "SegmentIdentificationSequence"], + "000B": ["US", "ReferencedSegmentNumber"], + "000C": ["US", "RecommendedDisplayGrayscaleValue"], + "000D": ["US", "RecommendedDisplayCIELabValue"], + "000E": ["US", "MaximumFractionalValue"], + "000F": ["SQ", "SegmentedPropertyTypeCodeSequence"], + "0010": ["CS", "SegmentationFractionalType"] + }, + "0064": { + "0002": ["SQ", "DeformableRegistrationSequence"], + "0003": ["UI", "SourceFrameOfReferenceUID"], + "0005": ["SQ", "DeformableRegistrationGridSequence"], + "0007": ["UL", "GridDimensions"], + "0008": ["FD", "GridResolution"], + "0009": ["OF", "VectorGridData"], + "000F": ["SQ", "PreDeformationMatrixRegistrationSequence"], + "0010": ["SQ", "PostDeformationMatrixRegistrationSequence"] + }, + "0066": { + "0001": ["UL", "NumberOfSurfaces"], + "0002": ["SQ", "SurfaceSequence"], + "0003": ["UL", "SurfaceNumber"], + "0004": ["LT", "SurfaceComments"], + "0009": ["CS", "SurfaceProcessing"], + "000A": ["FL", "SurfaceProcessingRatio"], + "000B": ["LO", "SurfaceProcessingDescription"], + "000C": ["FL", "RecommendedPresentationOpacity"], + "000D": ["CS", "RecommendedPresentationType"], + "000E": ["CS", "FiniteVolume"], + "0010": ["CS", "Manifold"], + "0011": ["SQ", "SurfacePointsSequence"], + "0012": ["SQ", "SurfacePointsNormalsSequence"], + "0013": ["SQ", "SurfaceMeshPrimitivesSequence"], + "0015": ["UL", "NumberOfSurfacePoints"], + "0016": ["OF", "PointCoordinatesData"], + "0017": ["FL", "PointPositionAccuracy"], + "0018": ["FL", "MeanPointDistance"], + "0019": ["FL", "MaximumPointDistance"], + "001A": ["FL", "PointsBoundingBoxCoordinates"], + "001B": ["FL", "AxisOfRotation"], + "001C": ["FL", "CenterOfRotation"], + "001E": ["UL", "NumberOfVectors"], + "001F": ["US", "VectorDimensionality"], + "0020": ["FL", "VectorAccuracy"], + "0021": ["OF", "VectorCoordinateData"], + "0023": ["OW", "TrianglePointIndexList"], + "0024": ["OW", "EdgePointIndexList"], + "0025": ["OW", "VertexPointIndexList"], + "0026": ["SQ", "TriangleStripSequence"], + "0027": ["SQ", "TriangleFanSequence"], + "0028": ["SQ", "LineSequence"], + "0029": ["OW", "PrimitivePointIndexList"], + "002A": ["UL", "SurfaceCount"], + "002B": ["SQ", "ReferencedSurfaceSequence"], + "002C": ["UL", "ReferencedSurfaceNumber"], + "002D": ["SQ", "SegmentSurfaceGenerationAlgorithmIdentificationSequence"], + "002E": ["SQ", "SegmentSurfaceSourceInstanceSequence"], + "002F": ["SQ", "AlgorithmFamilyCodeSequence"], + "0030": ["SQ", "AlgorithmNameCodeSequence"], + "0031": ["LO", "AlgorithmVersion"], + "0032": ["LT", "AlgorithmParameters"], + "0034": ["SQ", "FacetSequence"], + "0035": ["SQ", "SurfaceProcessingAlgorithmIdentificationSequence"], + "0036": ["LO", "AlgorithmName"] + }, + "0068": { + "6210": ["LO", "ImplantSize"], + "6221": ["LO", "ImplantTemplateVersion"], + "6222": ["SQ", "ReplacedImplantTemplateSequence"], + "6223": ["CS", "ImplantType"], + "6224": ["SQ", "DerivationImplantTemplateSequence"], + "6225": ["SQ", "OriginalImplantTemplateSequence"], + "6226": ["DT", "EffectiveDateTime"], + "6230": ["SQ", "ImplantTargetAnatomySequence"], + "6260": ["SQ", "InformationFromManufacturerSequence"], + "6265": ["SQ", "NotificationFromManufacturerSequence"], + "6270": ["DT", "InformationIssueDateTime"], + "6280": ["ST", "InformationSummary"], + "62A0": ["SQ", "ImplantRegulatoryDisapprovalCodeSequence"], + "62A5": ["FD", "OverallTemplateSpatialTolerance"], + "62C0": ["SQ", "HPGLDocumentSequence"], + "62D0": ["US", "HPGLDocumentID"], + "62D5": ["LO", "HPGLDocumentLabel"], + "62E0": ["SQ", "ViewOrientationCodeSequence"], + "62F0": ["FD", "ViewOrientationModifier"], + "62F2": ["FD", "HPGLDocumentScaling"], + "6300": ["OB", "HPGLDocument"], + "6310": ["US", "HPGLContourPenNumber"], + "6320": ["SQ", "HPGLPenSequence"], + "6330": ["US", "HPGLPenNumber"], + "6340": ["LO", "HPGLPenLabel"], + "6345": ["ST", "HPGLPenDescription"], + "6346": ["FD", "RecommendedRotationPoint"], + "6347": ["FD", "BoundingRectangle"], + "6350": ["US", "ImplantTemplate3DModelSurfaceNumber"], + "6360": ["SQ", "SurfaceModelDescriptionSequence"], + "6380": ["LO", "SurfaceModelLabel"], + "6390": ["FD", "SurfaceModelScalingFactor"], + "63A0": ["SQ", "MaterialsCodeSequence"], + "63A4": ["SQ", "CoatingMaterialsCodeSequence"], + "63A8": ["SQ", "ImplantTypeCodeSequence"], + "63AC": ["SQ", "FixationMethodCodeSequence"], + "63B0": ["SQ", "MatingFeatureSetsSequence"], + "63C0": ["US", "MatingFeatureSetID"], + "63D0": ["LO", "MatingFeatureSetLabel"], + "63E0": ["SQ", "MatingFeatureSequence"], + "63F0": ["US", "MatingFeatureID"], + "6400": ["SQ", "MatingFeatureDegreeOfFreedomSequence"], + "6410": ["US", "DegreeOfFreedomID"], + "6420": ["CS", "DegreeOfFreedomType"], + "6430": ["SQ", "TwoDMatingFeatureCoordinatesSequence"], + "6440": ["US", "ReferencedHPGLDocumentID"], + "6450": ["FD", "TwoDMatingPoint"], + "6460": ["FD", "TwoDMatingAxes"], + "6470": ["SQ", "TwoDDegreeOfFreedomSequence"], + "6490": ["FD", "ThreeDDegreeOfFreedomAxis"], + "64A0": ["FD", "RangeOfFreedom"], + "64C0": ["FD", "ThreeDMatingPoint"], + "64D0": ["FD", "ThreeDMatingAxes"], + "64F0": ["FD", "TwoDDegreeOfFreedomAxis"], + "6500": ["SQ", "PlanningLandmarkPointSequence"], + "6510": ["SQ", "PlanningLandmarkLineSequence"], + "6520": ["SQ", "PlanningLandmarkPlaneSequence"], + "6530": ["US", "PlanningLandmarkID"], + "6540": ["LO", "PlanningLandmarkDescription"], + "6545": ["SQ", "PlanningLandmarkIdentificationCodeSequence"], + "6550": ["SQ", "TwoDPointCoordinatesSequence"], + "6560": ["FD", "TwoDPointCoordinates"], + "6590": ["FD", "ThreeDPointCoordinates"], + "65A0": ["SQ", "TwoDLineCoordinatesSequence"], + "65B0": ["FD", "TwoDLineCoordinates"], + "65D0": ["FD", "ThreeDLineCoordinates"], + "65E0": ["SQ", "TwoDPlaneCoordinatesSequence"], + "65F0": ["FD", "TwoDPlaneIntersection"], + "6610": ["FD", "ThreeDPlaneOrigin"], + "6620": ["FD", "ThreeDPlaneNormal"] + }, + "0070": { + "0001": ["SQ", "GraphicAnnotationSequence"], + "0002": ["CS", "GraphicLayer"], + "0003": ["CS", "BoundingBoxAnnotationUnits"], + "0004": ["CS", "AnchorPointAnnotationUnits"], + "0005": ["CS", "GraphicAnnotationUnits"], + "0006": ["ST", "UnformattedTextValue"], + "0008": ["SQ", "TextObjectSequence"], + "0009": ["SQ", "GraphicObjectSequence"], + "0010": ["FL", "BoundingBoxTopLeftHandCorner"], + "0011": ["FL", "BoundingBoxBottomRightHandCorner"], + "0012": ["CS", "BoundingBoxTextHorizontalJustification"], + "0014": ["FL", "AnchorPoint"], + "0015": ["CS", "AnchorPointVisibility"], + "0020": ["US", "GraphicDimensions"], + "0021": ["US", "NumberOfGraphicPoints"], + "0022": ["FL", "GraphicData"], + "0023": ["CS", "GraphicType"], + "0024": ["CS", "GraphicFilled"], + "0040": ["IS", "ImageRotationRetired"], + "0041": ["CS", "ImageHorizontalFlip"], + "0042": ["US", "ImageRotation"], + "0050": ["US", "DisplayedAreaTopLeftHandCornerTrial"], + "0051": ["US", "DisplayedAreaBottomRightHandCornerTrial"], + "0052": ["SL", "DisplayedAreaTopLeftHandCorner"], + "0053": ["SL", "DisplayedAreaBottomRightHandCorner"], + "005A": ["SQ", "DisplayedAreaSelectionSequence"], + "0060": ["SQ", "GraphicLayerSequence"], + "0062": ["IS", "GraphicLayerOrder"], + "0066": ["US", "GraphicLayerRecommendedDisplayGrayscaleValue"], + "0067": ["US", "GraphicLayerRecommendedDisplayRGBValue"], + "0068": ["LO", "GraphicLayerDescription"], + "0080": ["CS", "ContentLabel"], + "0081": ["LO", "ContentDescription"], + "0082": ["DA", "PresentationCreationDate"], + "0083": ["TM", "PresentationCreationTime"], + "0084": ["PN", "ContentCreatorName"], + "0086": ["SQ", "ContentCreatorIdentificationCodeSequence"], + "0087": ["SQ", "AlternateContentDescriptionSequence"], + "0100": ["CS", "PresentationSizeMode"], + "0101": ["DS", "PresentationPixelSpacing"], + "0102": ["IS", "PresentationPixelAspectRatio"], + "0103": ["FL", "PresentationPixelMagnificationRatio"], + "0207": ["LO", "GraphicGroupLabel"], + "0208": ["ST", "GraphicGroupDescription"], + "0209": ["SQ", "CompoundGraphicSequence"], + "0226": ["UL", "CompoundGraphicInstanceID"], + "0227": ["LO", "FontName"], + "0228": ["CS", "FontNameType"], + "0229": ["LO", "CSSFontName"], + "0230": ["FD", "RotationAngle"], + "0231": ["SQ", "TextStyleSequence"], + "0232": ["SQ", "LineStyleSequence"], + "0233": ["SQ", "FillStyleSequence"], + "0234": ["SQ", "GraphicGroupSequence"], + "0241": ["US", "TextColorCIELabValue"], + "0242": ["CS", "HorizontalAlignment"], + "0243": ["CS", "VerticalAlignment"], + "0244": ["CS", "ShadowStyle"], + "0245": ["FL", "ShadowOffsetX"], + "0246": ["FL", "ShadowOffsetY"], + "0247": ["US", "ShadowColorCIELabValue"], + "0248": ["CS", "Underlined"], + "0249": ["CS", "Bold"], + "0250": ["CS", "Italic"], + "0251": ["US", "PatternOnColorCIELabValue"], + "0252": ["US", "PatternOffColorCIELabValue"], + "0253": ["FL", "LineThickness"], + "0254": ["CS", "LineDashingStyle"], + "0255": ["UL", "LinePattern"], + "0256": ["OB", "FillPattern"], + "0257": ["CS", "FillMode"], + "0258": ["FL", "ShadowOpacity"], + "0261": ["FL", "GapLength"], + "0262": ["FL", "DiameterOfVisibility"], + "0273": ["FL", "RotationPoint"], + "0274": ["CS", "TickAlignment"], + "0278": ["CS", "ShowTickLabel"], + "0279": ["CS", "TickLabelAlignment"], + "0282": ["CS", "CompoundGraphicUnits"], + "0284": ["FL", "PatternOnOpacity"], + "0285": ["FL", "PatternOffOpacity"], + "0287": ["SQ", "MajorTicksSequence"], + "0288": ["FL", "TickPosition"], + "0289": ["SH", "TickLabel"], + "0294": ["CS", "CompoundGraphicType"], + "0295": ["UL", "GraphicGroupID"], + "0306": ["CS", "ShapeType"], + "0308": ["SQ", "RegistrationSequence"], + "0309": ["SQ", "MatrixRegistrationSequence"], + "030A": ["SQ", "MatrixSequence"], + "030C": ["CS", "FrameOfReferenceTransformationMatrixType"], + "030D": ["SQ", "RegistrationTypeCodeSequence"], + "030F": ["ST", "FiducialDescription"], + "0310": ["SH", "FiducialIdentifier"], + "0311": ["SQ", "FiducialIdentifierCodeSequence"], + "0312": ["FD", "ContourUncertaintyRadius"], + "0314": ["SQ", "UsedFiducialsSequence"], + "0318": ["SQ", "GraphicCoordinatesDataSequence"], + "031A": ["UI", "FiducialUID"], + "031C": ["SQ", "FiducialSetSequence"], + "031E": ["SQ", "FiducialSequence"], + "0401": ["US", "GraphicLayerRecommendedDisplayCIELabValue"], + "0402": ["SQ", "BlendingSequence"], + "0403": ["FL", "RelativeOpacity"], + "0404": ["SQ", "ReferencedSpatialRegistrationSequence"], + "0405": ["CS", "BlendingPosition"] + }, + "0072": { + "0002": ["SH", "HangingProtocolName"], + "0004": ["LO", "HangingProtocolDescription"], + "0006": ["CS", "HangingProtocolLevel"], + "0008": ["LO", "HangingProtocolCreator"], + "000A": ["DT", "HangingProtocolCreationDateTime"], + "000C": ["SQ", "HangingProtocolDefinitionSequence"], + "000E": ["SQ", "HangingProtocolUserIdentificationCodeSequence"], + "0010": ["LO", "HangingProtocolUserGroupName"], + "0012": ["SQ", "SourceHangingProtocolSequence"], + "0014": ["US", "NumberOfPriorsReferenced"], + "0020": ["SQ", "ImageSetsSequence"], + "0022": ["SQ", "ImageSetSelectorSequence"], + "0024": ["CS", "ImageSetSelectorUsageFlag"], + "0026": ["AT", "SelectorAttribute"], + "0028": ["US", "SelectorValueNumber"], + "0030": ["SQ", "TimeBasedImageSetsSequence"], + "0032": ["US", "ImageSetNumber"], + "0034": ["CS", "ImageSetSelectorCategory"], + "0038": ["US", "RelativeTime"], + "003A": ["CS", "RelativeTimeUnits"], + "003C": ["SS", "AbstractPriorValue"], + "003E": ["SQ", "AbstractPriorCodeSequence"], + "0040": ["LO", "ImageSetLabel"], + "0050": ["CS", "SelectorAttributeVR"], + "0052": ["AT", "SelectorSequencePointer"], + "0054": ["LO", "SelectorSequencePointerPrivateCreator"], + "0056": ["LO", "SelectorAttributePrivateCreator"], + "0060": ["AT", "SelectorATValue"], + "0062": ["CS", "SelectorCSValue"], + "0064": ["IS", "SelectorISValue"], + "0066": ["LO", "SelectorLOValue"], + "0068": ["LT", "SelectorLTValue"], + "006A": ["PN", "SelectorPNValue"], + "006C": ["SH", "SelectorSHValue"], + "006E": ["ST", "SelectorSTValue"], + "0070": ["UT", "SelectorUTValue"], + "0072": ["DS", "SelectorDSValue"], + "0074": ["FD", "SelectorFDValue"], + "0076": ["FL", "SelectorFLValue"], + "0078": ["UL", "SelectorULValue"], + "007A": ["US", "SelectorUSValue"], + "007C": ["SL", "SelectorSLValue"], + "007E": ["SS", "SelectorSSValue"], + "0080": ["SQ", "SelectorCodeSequenceValue"], + "0100": ["US", "NumberOfScreens"], + "0102": ["SQ", "NominalScreenDefinitionSequence"], + "0104": ["US", "NumberOfVerticalPixels"], + "0106": ["US", "NumberOfHorizontalPixels"], + "0108": ["FD", "DisplayEnvironmentSpatialPosition"], + "010A": ["US", "ScreenMinimumGrayscaleBitDepth"], + "010C": ["US", "ScreenMinimumColorBitDepth"], + "010E": ["US", "ApplicationMaximumRepaintTime"], + "0200": ["SQ", "DisplaySetsSequence"], + "0202": ["US", "DisplaySetNumber"], + "0203": ["LO", "DisplaySetLabel"], + "0204": ["US", "DisplaySetPresentationGroup"], + "0206": ["LO", "DisplaySetPresentationGroupDescription"], + "0208": ["CS", "PartialDataDisplayHandling"], + "0210": ["SQ", "SynchronizedScrollingSequence"], + "0212": ["US", "DisplaySetScrollingGroup"], + "0214": ["SQ", "NavigationIndicatorSequence"], + "0216": ["US", "NavigationDisplaySet"], + "0218": ["US", "ReferenceDisplaySets"], + "0300": ["SQ", "ImageBoxesSequence"], + "0302": ["US", "ImageBoxNumber"], + "0304": ["CS", "ImageBoxLayoutType"], + "0306": ["US", "ImageBoxTileHorizontalDimension"], + "0308": ["US", "ImageBoxTileVerticalDimension"], + "0310": ["CS", "ImageBoxScrollDirection"], + "0312": ["CS", "ImageBoxSmallScrollType"], + "0314": ["US", "ImageBoxSmallScrollAmount"], + "0316": ["CS", "ImageBoxLargeScrollType"], + "0318": ["US", "ImageBoxLargeScrollAmount"], + "0320": ["US", "ImageBoxOverlapPriority"], + "0330": ["FD", "CineRelativeToRealTime"], + "0400": ["SQ", "FilterOperationsSequence"], + "0402": ["CS", "FilterByCategory"], + "0404": ["CS", "FilterByAttributePresence"], + "0406": ["CS", "FilterByOperator"], + "0420": ["US", "StructuredDisplayBackgroundCIELabValue"], + "0421": ["US", "EmptyImageBoxCIELabValue"], + "0422": ["SQ", "StructuredDisplayImageBoxSequence"], + "0424": ["SQ", "StructuredDisplayTextBoxSequence"], + "0427": ["SQ", "ReferencedFirstFrameSequence"], + "0430": ["SQ", "ImageBoxSynchronizationSequence"], + "0432": ["US", "SynchronizedImageBoxList"], + "0434": ["CS", "TypeOfSynchronization"], + "0500": ["CS", "BlendingOperationType"], + "0510": ["CS", "ReformattingOperationType"], + "0512": ["FD", "ReformattingThickness"], + "0514": ["FD", "ReformattingInterval"], + "0516": ["CS", "ReformattingOperationInitialViewDirection"], + "0520": ["CS", "ThreeDRenderingType"], + "0600": ["SQ", "SortingOperationsSequence"], + "0602": ["CS", "SortByCategory"], + "0604": ["CS", "SortingDirection"], + "0700": ["CS", "DisplaySetPatientOrientation"], + "0702": ["CS", "VOIType"], + "0704": ["CS", "PseudoColorType"], + "0705": ["SQ", "PseudoColorPaletteInstanceReferenceSequence"], + "0706": ["CS", "ShowGrayscaleInverted"], + "0710": ["CS", "ShowImageTrueSizeFlag"], + "0712": ["CS", "ShowGraphicAnnotationFlag"], + "0714": ["CS", "ShowPatientDemographicsFlag"], + "0716": ["CS", "ShowAcquisitionTechniquesFlag"], + "0717": ["CS", "DisplaySetHorizontalJustification"], + "0718": ["CS", "DisplaySetVerticalJustification"] + }, + "0074": { + "0120": ["FD", "ContinuationStartMeterset"], + "0121": ["FD", "ContinuationEndMeterset"], + "1000": ["CS", "ProcedureStepState"], + "1002": ["SQ", "ProcedureStepProgressInformationSequence"], + "1004": ["DS", "ProcedureStepProgress"], + "1006": ["ST", "ProcedureStepProgressDescription"], + "1008": ["SQ", "ProcedureStepCommunicationsURISequence"], + "100A": ["ST", "ContactURI"], + "100C": ["LO", "ContactDisplayName"], + "100E": ["SQ", "ProcedureStepDiscontinuationReasonCodeSequence"], + "1020": ["SQ", "BeamTaskSequence"], + "1022": ["CS", "BeamTaskType"], + "1024": ["IS", "BeamOrderIndexTrial"], + "1026": ["FD", "TableTopVerticalAdjustedPosition"], + "1027": ["FD", "TableTopLongitudinalAdjustedPosition"], + "1028": ["FD", "TableTopLateralAdjustedPosition"], + "102A": ["FD", "PatientSupportAdjustedAngle"], + "102B": ["FD", "TableTopEccentricAdjustedAngle"], + "102C": ["FD", "TableTopPitchAdjustedAngle"], + "102D": ["FD", "TableTopRollAdjustedAngle"], + "1030": ["SQ", "DeliveryVerificationImageSequence"], + "1032": ["CS", "VerificationImageTiming"], + "1034": ["CS", "DoubleExposureFlag"], + "1036": ["CS", "DoubleExposureOrdering"], + "1038": ["DS", "DoubleExposureMetersetTrial"], + "103A": ["DS", "DoubleExposureFieldDeltaTrial"], + "1040": ["SQ", "RelatedReferenceRTImageSequence"], + "1042": ["SQ", "GeneralMachineVerificationSequence"], + "1044": ["SQ", "ConventionalMachineVerificationSequence"], + "1046": ["SQ", "IonMachineVerificationSequence"], + "1048": ["SQ", "FailedAttributesSequence"], + "104A": ["SQ", "OverriddenAttributesSequence"], + "104C": ["SQ", "ConventionalControlPointVerificationSequence"], + "104E": ["SQ", "IonControlPointVerificationSequence"], + "1050": ["SQ", "AttributeOccurrenceSequence"], + "1052": ["AT", "AttributeOccurrencePointer"], + "1054": ["UL", "AttributeItemSelector"], + "1056": ["LO", "AttributeOccurrencePrivateCreator"], + "1057": ["IS", "SelectorSequencePointerItems"], + "1200": ["CS", "ScheduledProcedureStepPriority"], + "1202": ["LO", "WorklistLabel"], + "1204": ["LO", "ProcedureStepLabel"], + "1210": ["SQ", "ScheduledProcessingParametersSequence"], + "1212": ["SQ", "PerformedProcessingParametersSequence"], + "1216": ["SQ", "UnifiedProcedureStepPerformedProcedureSequence"], + "1220": ["SQ", "RelatedProcedureStepSequence"], + "1222": ["LO", "ProcedureStepRelationshipType"], + "1224": ["SQ", "ReplacedProcedureStepSequence"], + "1230": ["LO", "DeletionLock"], + "1234": ["AE", "ReceivingAE"], + "1236": ["AE", "RequestingAE"], + "1238": ["LT", "ReasonForCancellation"], + "1242": ["CS", "SCPStatus"], + "1244": ["CS", "SubscriptionListStatus"], + "1246": ["CS", "UnifiedProcedureStepListStatus"], + "1324": ["UL", "BeamOrderIndex"], + "1338": ["FD", "DoubleExposureMeterset"], + "133A": ["FD", "DoubleExposureFieldDelta"] + }, + "0076": { + "0001": ["LO", "ImplantAssemblyTemplateName"], + "0003": ["LO", "ImplantAssemblyTemplateIssuer"], + "0006": ["LO", "ImplantAssemblyTemplateVersion"], + "0008": ["SQ", "ReplacedImplantAssemblyTemplateSequence"], + "000A": ["CS", "ImplantAssemblyTemplateType"], + "000C": ["SQ", "OriginalImplantAssemblyTemplateSequence"], + "000E": ["SQ", "DerivationImplantAssemblyTemplateSequence"], + "0010": ["SQ", "ImplantAssemblyTemplateTargetAnatomySequence"], + "0020": ["SQ", "ProcedureTypeCodeSequence"], + "0030": ["LO", "SurgicalTechnique"], + "0032": ["SQ", "ComponentTypesSequence"], + "0034": ["CS", "ComponentTypeCodeSequence"], + "0036": ["CS", "ExclusiveComponentType"], + "0038": ["CS", "MandatoryComponentType"], + "0040": ["SQ", "ComponentSequence"], + "0055": ["US", "ComponentID"], + "0060": ["SQ", "ComponentAssemblySequence"], + "0070": ["US", "Component1ReferencedID"], + "0080": ["US", "Component1ReferencedMatingFeatureSetID"], + "0090": ["US", "Component1ReferencedMatingFeatureID"], + "00A0": ["US", "Component2ReferencedID"], + "00B0": ["US", "Component2ReferencedMatingFeatureSetID"], + "00C0": ["US", "Component2ReferencedMatingFeatureID"] + }, + "0078": { + "0001": ["LO", "ImplantTemplateGroupName"], + "0010": ["ST", "ImplantTemplateGroupDescription"], + "0020": ["LO", "ImplantTemplateGroupIssuer"], + "0024": ["LO", "ImplantTemplateGroupVersion"], + "0026": ["SQ", "ReplacedImplantTemplateGroupSequence"], + "0028": ["SQ", "ImplantTemplateGroupTargetAnatomySequence"], + "002A": ["SQ", "ImplantTemplateGroupMembersSequence"], + "002E": ["US", "ImplantTemplateGroupMemberID"], + "0050": ["FD", "ThreeDImplantTemplateGroupMemberMatchingPoint"], + "0060": ["FD", "ThreeDImplantTemplateGroupMemberMatchingAxes"], + "0070": ["SQ", "ImplantTemplateGroupMemberMatching2DCoordinatesSequence"], + "0090": ["FD", "TwoDImplantTemplateGroupMemberMatchingPoint"], + "00A0": ["FD", "TwoDImplantTemplateGroupMemberMatchingAxes"], + "00B0": ["SQ", "ImplantTemplateGroupVariationDimensionSequence"], + "00B2": ["LO", "ImplantTemplateGroupVariationDimensionName"], + "00B4": ["SQ", "ImplantTemplateGroupVariationDimensionRankSequence"], + "00B6": ["US", "ReferencedImplantTemplateGroupMemberID"], + "00B8": ["US", "ImplantTemplateGroupVariationDimensionRank"] + }, + "0088": { + "0130": ["SH", "StorageMediaFileSetID"], + "0140": ["UI", "StorageMediaFileSetUID"], + "0200": ["SQ", "IconImageSequence"], + "0904": ["LO", "TopicTitle"], + "0906": ["ST", "TopicSubject"], + "0910": ["LO", "TopicAuthor"], + "0912": ["LO", "TopicKeywords"] + }, + "0100": { + "0410": ["CS", "SOPInstanceStatus"], + "0420": ["DT", "SOPAuthorizationDateTime"], + "0424": ["LT", "SOPAuthorizationComment"], + "0426": ["LO", "AuthorizationEquipmentCertificationNumber"] + }, + "0400": { + "0005": ["US", "MACIDNumber"], + "0010": ["UI", "MACCalculationTransferSyntaxUID"], + "0015": ["CS", "MACAlgorithm"], + "0020": ["AT", "DataElementsSigned"], + "0100": ["UI", "DigitalSignatureUID"], + "0105": ["DT", "DigitalSignatureDateTime"], + "0110": ["CS", "CertificateType"], + "0115": ["OB", "CertificateOfSigner"], + "0120": ["OB", "Signature"], + "0305": ["CS", "CertifiedTimestampType"], + "0310": ["OB", "CertifiedTimestamp"], + "0401": ["SQ", "DigitalSignaturePurposeCodeSequence"], + "0402": ["SQ", "ReferencedDigitalSignatureSequence"], + "0403": ["SQ", "ReferencedSOPInstanceMACSequence"], + "0404": ["OB", "MAC"], + "0500": ["SQ", "EncryptedAttributesSequence"], + "0510": ["UI", "EncryptedContentTransferSyntaxUID"], + "0520": ["OB", "EncryptedContent"], + "0550": ["SQ", "ModifiedAttributesSequence"], + "0561": ["SQ", "OriginalAttributesSequence"], + "0562": ["DT", "AttributeModificationDateTime"], + "0563": ["LO", "ModifyingSystem"], + "0564": ["LO", "SourceOfPreviousValues"], + "0565": ["CS", "ReasonForTheAttributeModification"] + }, + "2000": { + "0010": ["IS", "NumberOfCopies"], + "001E": ["SQ", "PrinterConfigurationSequence"], + "0020": ["CS", "PrintPriority"], + "0030": ["CS", "MediumType"], + "0040": ["CS", "FilmDestination"], + "0050": ["LO", "FilmSessionLabel"], + "0060": ["IS", "MemoryAllocation"], + "0061": ["IS", "MaximumMemoryAllocation"], + "0062": ["CS", "ColorImagePrintingFlag"], + "0063": ["CS", "CollationFlag"], + "0065": ["CS", "AnnotationFlag"], + "0067": ["CS", "ImageOverlayFlag"], + "0069": ["CS", "PresentationLUTFlag"], + "006A": ["CS", "ImageBoxPresentationLUTFlag"], + "00A0": ["US", "MemoryBitDepth"], + "00A1": ["US", "PrintingBitDepth"], + "00A2": ["SQ", "MediaInstalledSequence"], + "00A4": ["SQ", "OtherMediaAvailableSequence"], + "00A8": ["SQ", "SupportedImageDisplayFormatsSequence"], + "0500": ["SQ", "ReferencedFilmBoxSequence"], + "0510": ["SQ", "ReferencedStoredPrintSequence"] + }, + "2010": { + "0010": ["ST", "ImageDisplayFormat"], + "0030": ["CS", "AnnotationDisplayFormatID"], + "0040": ["CS", "FilmOrientation"], + "0050": ["CS", "FilmSizeID"], + "0052": ["CS", "PrinterResolutionID"], + "0054": ["CS", "DefaultPrinterResolutionID"], + "0060": ["CS", "MagnificationType"], + "0080": ["CS", "SmoothingType"], + "00A6": ["CS", "DefaultMagnificationType"], + "00A7": ["CS", "OtherMagnificationTypesAvailable"], + "00A8": ["CS", "DefaultSmoothingType"], + "00A9": ["CS", "OtherSmoothingTypesAvailable"], + "0100": ["CS", "BorderDensity"], + "0110": ["CS", "EmptyImageDensity"], + "0120": ["US", "MinDensity"], + "0130": ["US", "MaxDensity"], + "0140": ["CS", "Trim"], + "0150": ["ST", "ConfigurationInformation"], + "0152": ["LT", "ConfigurationInformationDescription"], + "0154": ["IS", "MaximumCollatedFilms"], + "015E": ["US", "Illumination"], + "0160": ["US", "ReflectedAmbientLight"], + "0376": ["DS", "PrinterPixelSpacing"], + "0500": ["SQ", "ReferencedFilmSessionSequence"], + "0510": ["SQ", "ReferencedImageBoxSequence"], + "0520": ["SQ", "ReferencedBasicAnnotationBoxSequence"] + }, + "2020": { + "0010": ["US", "ImageBoxPosition"], + "0020": ["CS", "Polarity"], + "0030": ["DS", "RequestedImageSize"], + "0040": ["CS", "RequestedDecimateCropBehavior"], + "0050": ["CS", "RequestedResolutionID"], + "00A0": ["CS", "RequestedImageSizeFlag"], + "00A2": ["CS", "DecimateCropResult"], + "0110": ["SQ", "BasicGrayscaleImageSequence"], + "0111": ["SQ", "BasicColorImageSequence"], + "0130": ["SQ", "ReferencedImageOverlayBoxSequence"], + "0140": ["SQ", "ReferencedVOILUTBoxSequence"] + }, + "2030": { + "0010": ["US", "AnnotationPosition"], + "0020": ["LO", "TextString"] + }, + "2040": { + "0010": ["SQ", "ReferencedOverlayPlaneSequence"], + "0011": ["US", "ReferencedOverlayPlaneGroups"], + "0020": ["SQ", "OverlayPixelDataSequence"], + "0060": ["CS", "OverlayMagnificationType"], + "0070": ["CS", "OverlaySmoothingType"], + "0072": ["CS", "OverlayOrImageMagnification"], + "0074": ["US", "MagnifyToNumberOfColumns"], + "0080": ["CS", "OverlayForegroundDensity"], + "0082": ["CS", "OverlayBackgroundDensity"], + "0090": ["CS", "OverlayMode"], + "0100": ["CS", "ThresholdDensity"], + "0500": ["SQ", "ReferencedImageBoxSequenceRetired"] + }, + "2050": { + "0010": ["SQ", "PresentationLUTSequence"], + "0020": ["CS", "PresentationLUTShape"], + "0500": ["SQ", "ReferencedPresentationLUTSequence"] + }, + "2100": { + "0010": ["SH", "PrintJobID"], + "0020": ["CS", "ExecutionStatus"], + "0030": ["CS", "ExecutionStatusInfo"], + "0040": ["DA", "CreationDate"], + "0050": ["TM", "CreationTime"], + "0070": ["AE", "Originator"], + "0140": ["AE", "DestinationAE"], + "0160": ["SH", "OwnerID"], + "0170": ["IS", "NumberOfFilms"], + "0500": ["SQ", "ReferencedPrintJobSequencePullStoredPrint"] + }, + "2110": { + "0010": ["CS", "PrinterStatus"], + "0020": ["CS", "PrinterStatusInfo"], + "0030": ["LO", "PrinterName"], + "0099": ["SH", "PrintQueueID"] + }, + "2120": { + "0010": ["CS", "QueueStatus"], + "0050": ["SQ", "PrintJobDescriptionSequence"], + "0070": ["SQ", "ReferencedPrintJobSequence"] + }, + "2130": { + "0010": ["SQ", "PrintManagementCapabilitiesSequence"], + "0015": ["SQ", "PrinterCharacteristicsSequence"], + "0030": ["SQ", "FilmBoxContentSequence"], + "0040": ["SQ", "ImageBoxContentSequence"], + "0050": ["SQ", "AnnotationContentSequence"], + "0060": ["SQ", "ImageOverlayBoxContentSequence"], + "0080": ["SQ", "PresentationLUTContentSequence"], + "00A0": ["SQ", "ProposedStudySequence"], + "00C0": ["SQ", "OriginalImageSequence"] + }, + "2200": { + "0001": ["CS", "LabelUsingInformationExtractedFromInstances"], + "0002": ["UT", "LabelText"], + "0003": ["CS", "LabelStyleSelection"], + "0004": ["LT", "MediaDisposition"], + "0005": ["LT", "BarcodeValue"], + "0006": ["CS", "BarcodeSymbology"], + "0007": ["CS", "AllowMediaSplitting"], + "0008": ["CS", "IncludeNonDICOMObjects"], + "0009": ["CS", "IncludeDisplayApplication"], + "000A": ["CS", "PreserveCompositeInstancesAfterMediaCreation"], + "000B": ["US", "TotalNumberOfPiecesOfMediaCreated"], + "000C": ["LO", "RequestedMediaApplicationProfile"], + "000D": ["SQ", "ReferencedStorageMediaSequence"], + "000E": ["AT", "FailureAttributes"], + "000F": ["CS", "AllowLossyCompression"], + "0020": ["CS", "RequestPriority"] + }, + "3002": { + "0002": ["SH", "RTImageLabel"], + "0003": ["LO", "RTImageName"], + "0004": ["ST", "RTImageDescription"], + "000A": ["CS", "ReportedValuesOrigin"], + "000C": ["CS", "RTImagePlane"], + "000D": ["DS", "XRayImageReceptorTranslation"], + "000E": ["DS", "XRayImageReceptorAngle"], + "0010": ["DS", "RTImageOrientation"], + "0011": ["DS", "ImagePlanePixelSpacing"], + "0012": ["DS", "RTImagePosition"], + "0020": ["SH", "RadiationMachineName"], + "0022": ["DS", "RadiationMachineSAD"], + "0024": ["DS", "RadiationMachineSSD"], + "0026": ["DS", "RTImageSID"], + "0028": ["DS", "SourceToReferenceObjectDistance"], + "0029": ["IS", "FractionNumber"], + "0030": ["SQ", "ExposureSequence"], + "0032": ["DS", "MetersetExposure"], + "0034": ["DS", "DiaphragmPosition"], + "0040": ["SQ", "FluenceMapSequence"], + "0041": ["CS", "FluenceDataSource"], + "0042": ["DS", "FluenceDataScale"], + "0050": ["SQ", "PrimaryFluenceModeSequence"], + "0051": ["CS", "FluenceMode"], + "0052": ["SH", "FluenceModeID"] + }, + "3004": { + "0001": ["CS", "DVHType"], + "0002": ["CS", "DoseUnits"], + "0004": ["CS", "DoseType"], + "0006": ["LO", "DoseComment"], + "0008": ["DS", "NormalizationPoint"], + "000A": ["CS", "DoseSummationType"], + "000C": ["DS", "GridFrameOffsetVector"], + "000E": ["DS", "DoseGridScaling"], + "0010": ["SQ", "RTDoseROISequence"], + "0012": ["DS", "DoseValue"], + "0014": ["CS", "TissueHeterogeneityCorrection"], + "0040": ["DS", "DVHNormalizationPoint"], + "0042": ["DS", "DVHNormalizationDoseValue"], + "0050": ["SQ", "DVHSequence"], + "0052": ["DS", "DVHDoseScaling"], + "0054": ["CS", "DVHVolumeUnits"], + "0056": ["IS", "DVHNumberOfBins"], + "0058": ["DS", "DVHData"], + "0060": ["SQ", "DVHReferencedROISequence"], + "0062": ["CS", "DVHROIContributionType"], + "0070": ["DS", "DVHMinimumDose"], + "0072": ["DS", "DVHMaximumDose"], + "0074": ["DS", "DVHMeanDose"] + }, + "3006": { + "0002": ["SH", "StructureSetLabel"], + "0004": ["LO", "StructureSetName"], + "0006": ["ST", "StructureSetDescription"], + "0008": ["DA", "StructureSetDate"], + "0009": ["TM", "StructureSetTime"], + "0010": ["SQ", "ReferencedFrameOfReferenceSequence"], + "0012": ["SQ", "RTReferencedStudySequence"], + "0014": ["SQ", "RTReferencedSeriesSequence"], + "0016": ["SQ", "ContourImageSequence"], + "0020": ["SQ", "StructureSetROISequence"], + "0022": ["IS", "ROINumber"], + "0024": ["UI", "ReferencedFrameOfReferenceUID"], + "0026": ["LO", "ROIName"], + "0028": ["ST", "ROIDescription"], + "002A": ["IS", "ROIDisplayColor"], + "002C": ["DS", "ROIVolume"], + "0030": ["SQ", "RTRelatedROISequence"], + "0033": ["CS", "RTROIRelationship"], + "0036": ["CS", "ROIGenerationAlgorithm"], + "0038": ["LO", "ROIGenerationDescription"], + "0039": ["SQ", "ROIContourSequence"], + "0040": ["SQ", "ContourSequence"], + "0042": ["CS", "ContourGeometricType"], + "0044": ["DS", "ContourSlabThickness"], + "0045": ["DS", "ContourOffsetVector"], + "0046": ["IS", "NumberOfContourPoints"], + "0048": ["IS", "ContourNumber"], + "0049": ["IS", "AttachedContours"], + "0050": ["DS", "ContourData"], + "0080": ["SQ", "RTROIObservationsSequence"], + "0082": ["IS", "ObservationNumber"], + "0084": ["IS", "ReferencedROINumber"], + "0085": ["SH", "ROIObservationLabel"], + "0086": ["SQ", "RTROIIdentificationCodeSequence"], + "0088": ["ST", "ROIObservationDescription"], + "00A0": ["SQ", "RelatedRTROIObservationsSequence"], + "00A4": ["CS", "RTROIInterpretedType"], + "00A6": ["PN", "ROIInterpreter"], + "00B0": ["SQ", "ROIPhysicalPropertiesSequence"], + "00B2": ["CS", "ROIPhysicalProperty"], + "00B4": ["DS", "ROIPhysicalPropertyValue"], + "00B6": ["SQ", "ROIElementalCompositionSequence"], + "00B7": ["US", "ROIElementalCompositionAtomicNumber"], + "00B8": ["FL", "ROIElementalCompositionAtomicMassFraction"], + "00C0": ["SQ", "FrameOfReferenceRelationshipSequence"], + "00C2": ["UI", "RelatedFrameOfReferenceUID"], + "00C4": ["CS", "FrameOfReferenceTransformationType"], + "00C6": ["DS", "FrameOfReferenceTransformationMatrix"], + "00C8": ["LO", "FrameOfReferenceTransformationComment"] + }, + "3008": { + "0010": ["SQ", "MeasuredDoseReferenceSequence"], + "0012": ["ST", "MeasuredDoseDescription"], + "0014": ["CS", "MeasuredDoseType"], + "0016": ["DS", "MeasuredDoseValue"], + "0020": ["SQ", "TreatmentSessionBeamSequence"], + "0021": ["SQ", "TreatmentSessionIonBeamSequence"], + "0022": ["IS", "CurrentFractionNumber"], + "0024": ["DA", "TreatmentControlPointDate"], + "0025": ["TM", "TreatmentControlPointTime"], + "002A": ["CS", "TreatmentTerminationStatus"], + "002B": ["SH", "TreatmentTerminationCode"], + "002C": ["CS", "TreatmentVerificationStatus"], + "0030": ["SQ", "ReferencedTreatmentRecordSequence"], + "0032": ["DS", "SpecifiedPrimaryMeterset"], + "0033": ["DS", "SpecifiedSecondaryMeterset"], + "0036": ["DS", "DeliveredPrimaryMeterset"], + "0037": ["DS", "DeliveredSecondaryMeterset"], + "003A": ["DS", "SpecifiedTreatmentTime"], + "003B": ["DS", "DeliveredTreatmentTime"], + "0040": ["SQ", "ControlPointDeliverySequence"], + "0041": ["SQ", "IonControlPointDeliverySequence"], + "0042": ["DS", "SpecifiedMeterset"], + "0044": ["DS", "DeliveredMeterset"], + "0045": ["FL", "MetersetRateSet"], + "0046": ["FL", "MetersetRateDelivered"], + "0047": ["FL", "ScanSpotMetersetsDelivered"], + "0048": ["DS", "DoseRateDelivered"], + "0050": ["SQ", "TreatmentSummaryCalculatedDoseReferenceSequence"], + "0052": ["DS", "CumulativeDoseToDoseReference"], + "0054": ["DA", "FirstTreatmentDate"], + "0056": ["DA", "MostRecentTreatmentDate"], + "005A": ["IS", "NumberOfFractionsDelivered"], + "0060": ["SQ", "OverrideSequence"], + "0061": ["AT", "ParameterSequencePointer"], + "0062": ["AT", "OverrideParameterPointer"], + "0063": ["IS", "ParameterItemIndex"], + "0064": ["IS", "MeasuredDoseReferenceNumber"], + "0065": ["AT", "ParameterPointer"], + "0066": ["ST", "OverrideReason"], + "0068": ["SQ", "CorrectedParameterSequence"], + "006A": ["FL", "CorrectionValue"], + "0070": ["SQ", "CalculatedDoseReferenceSequence"], + "0072": ["IS", "CalculatedDoseReferenceNumber"], + "0074": ["ST", "CalculatedDoseReferenceDescription"], + "0076": ["DS", "CalculatedDoseReferenceDoseValue"], + "0078": ["DS", "StartMeterset"], + "007A": ["DS", "EndMeterset"], + "0080": ["SQ", "ReferencedMeasuredDoseReferenceSequence"], + "0082": ["IS", "ReferencedMeasuredDoseReferenceNumber"], + "0090": ["SQ", "ReferencedCalculatedDoseReferenceSequence"], + "0092": ["IS", "ReferencedCalculatedDoseReferenceNumber"], + "00A0": ["SQ", "BeamLimitingDeviceLeafPairsSequence"], + "00B0": ["SQ", "RecordedWedgeSequence"], + "00C0": ["SQ", "RecordedCompensatorSequence"], + "00D0": ["SQ", "RecordedBlockSequence"], + "00E0": ["SQ", "TreatmentSummaryMeasuredDoseReferenceSequence"], + "00F0": ["SQ", "RecordedSnoutSequence"], + "00F2": ["SQ", "RecordedRangeShifterSequence"], + "00F4": ["SQ", "RecordedLateralSpreadingDeviceSequence"], + "00F6": ["SQ", "RecordedRangeModulatorSequence"], + "0100": ["SQ", "RecordedSourceSequence"], + "0105": ["LO", "SourceSerialNumber"], + "0110": ["SQ", "TreatmentSessionApplicationSetupSequence"], + "0116": ["CS", "ApplicationSetupCheck"], + "0120": ["SQ", "RecordedBrachyAccessoryDeviceSequence"], + "0122": ["IS", "ReferencedBrachyAccessoryDeviceNumber"], + "0130": ["SQ", "RecordedChannelSequence"], + "0132": ["DS", "SpecifiedChannelTotalTime"], + "0134": ["DS", "DeliveredChannelTotalTime"], + "0136": ["IS", "SpecifiedNumberOfPulses"], + "0138": ["IS", "DeliveredNumberOfPulses"], + "013A": ["DS", "SpecifiedPulseRepetitionInterval"], + "013C": ["DS", "DeliveredPulseRepetitionInterval"], + "0140": ["SQ", "RecordedSourceApplicatorSequence"], + "0142": ["IS", "ReferencedSourceApplicatorNumber"], + "0150": ["SQ", "RecordedChannelShieldSequence"], + "0152": ["IS", "ReferencedChannelShieldNumber"], + "0160": ["SQ", "BrachyControlPointDeliveredSequence"], + "0162": ["DA", "SafePositionExitDate"], + "0164": ["TM", "SafePositionExitTime"], + "0166": ["DA", "SafePositionReturnDate"], + "0168": ["TM", "SafePositionReturnTime"], + "0200": ["CS", "CurrentTreatmentStatus"], + "0202": ["ST", "TreatmentStatusComment"], + "0220": ["SQ", "FractionGroupSummarySequence"], + "0223": ["IS", "ReferencedFractionNumber"], + "0224": ["CS", "FractionGroupType"], + "0230": ["CS", "BeamStopperPosition"], + "0240": ["SQ", "FractionStatusSummarySequence"], + "0250": ["DA", "TreatmentDate"], + "0251": ["TM", "TreatmentTime"] + }, + "300A": { + "0002": ["SH", "RTPlanLabel"], + "0003": ["LO", "RTPlanName"], + "0004": ["ST", "RTPlanDescription"], + "0006": ["DA", "RTPlanDate"], + "0007": ["TM", "RTPlanTime"], + "0009": ["LO", "TreatmentProtocols"], + "000A": ["CS", "PlanIntent"], + "000B": ["LO", "TreatmentSites"], + "000C": ["CS", "RTPlanGeometry"], + "000E": ["ST", "PrescriptionDescription"], + "0010": ["SQ", "DoseReferenceSequence"], + "0012": ["IS", "DoseReferenceNumber"], + "0013": ["UI", "DoseReferenceUID"], + "0014": ["CS", "DoseReferenceStructureType"], + "0015": ["CS", "NominalBeamEnergyUnit"], + "0016": ["LO", "DoseReferenceDescription"], + "0018": ["DS", "DoseReferencePointCoordinates"], + "001A": ["DS", "NominalPriorDose"], + "0020": ["CS", "DoseReferenceType"], + "0021": ["DS", "ConstraintWeight"], + "0022": ["DS", "DeliveryWarningDose"], + "0023": ["DS", "DeliveryMaximumDose"], + "0025": ["DS", "TargetMinimumDose"], + "0026": ["DS", "TargetPrescriptionDose"], + "0027": ["DS", "TargetMaximumDose"], + "0028": ["DS", "TargetUnderdoseVolumeFraction"], + "002A": ["DS", "OrganAtRiskFullVolumeDose"], + "002B": ["DS", "OrganAtRiskLimitDose"], + "002C": ["DS", "OrganAtRiskMaximumDose"], + "002D": ["DS", "OrganAtRiskOverdoseVolumeFraction"], + "0040": ["SQ", "ToleranceTableSequence"], + "0042": ["IS", "ToleranceTableNumber"], + "0043": ["SH", "ToleranceTableLabel"], + "0044": ["DS", "GantryAngleTolerance"], + "0046": ["DS", "BeamLimitingDeviceAngleTolerance"], + "0048": ["SQ", "BeamLimitingDeviceToleranceSequence"], + "004A": ["DS", "BeamLimitingDevicePositionTolerance"], + "004B": ["FL", "SnoutPositionTolerance"], + "004C": ["DS", "PatientSupportAngleTolerance"], + "004E": ["DS", "TableTopEccentricAngleTolerance"], + "004F": ["FL", "TableTopPitchAngleTolerance"], + "0050": ["FL", "TableTopRollAngleTolerance"], + "0051": ["DS", "TableTopVerticalPositionTolerance"], + "0052": ["DS", "TableTopLongitudinalPositionTolerance"], + "0053": ["DS", "TableTopLateralPositionTolerance"], + "0055": ["CS", "RTPlanRelationship"], + "0070": ["SQ", "FractionGroupSequence"], + "0071": ["IS", "FractionGroupNumber"], + "0072": ["LO", "FractionGroupDescription"], + "0078": ["IS", "NumberOfFractionsPlanned"], + "0079": ["IS", "NumberOfFractionPatternDigitsPerDay"], + "007A": ["IS", "RepeatFractionCycleLength"], + "007B": ["LT", "FractionPattern"], + "0080": ["IS", "NumberOfBeams"], + "0082": ["DS", "BeamDoseSpecificationPoint"], + "0084": ["DS", "BeamDose"], + "0086": ["DS", "BeamMeterset"], + "0088": ["FL", "BeamDosePointDepth"], + "0089": ["FL", "BeamDosePointEquivalentDepth"], + "008A": ["FL", "BeamDosePointSSD"], + "00A0": ["IS", "NumberOfBrachyApplicationSetups"], + "00A2": ["DS", "BrachyApplicationSetupDoseSpecificationPoint"], + "00A4": ["DS", "BrachyApplicationSetupDose"], + "00B0": ["SQ", "BeamSequence"], + "00B2": ["SH", "TreatmentMachineName"], + "00B3": ["CS", "PrimaryDosimeterUnit"], + "00B4": ["DS", "SourceAxisDistance"], + "00B6": ["SQ", "BeamLimitingDeviceSequence"], + "00B8": ["CS", "RTBeamLimitingDeviceType"], + "00BA": ["DS", "SourceToBeamLimitingDeviceDistance"], + "00BB": ["FL", "IsocenterToBeamLimitingDeviceDistance"], + "00BC": ["IS", "NumberOfLeafJawPairs"], + "00BE": ["DS", "LeafPositionBoundaries"], + "00C0": ["IS", "BeamNumber"], + "00C2": ["LO", "BeamName"], + "00C3": ["ST", "BeamDescription"], + "00C4": ["CS", "BeamType"], + "00C6": ["CS", "RadiationType"], + "00C7": ["CS", "HighDoseTechniqueType"], + "00C8": ["IS", "ReferenceImageNumber"], + "00CA": ["SQ", "PlannedVerificationImageSequence"], + "00CC": ["LO", "ImagingDeviceSpecificAcquisitionParameters"], + "00CE": ["CS", "TreatmentDeliveryType"], + "00D0": ["IS", "NumberOfWedges"], + "00D1": ["SQ", "WedgeSequence"], + "00D2": ["IS", "WedgeNumber"], + "00D3": ["CS", "WedgeType"], + "00D4": ["SH", "WedgeID"], + "00D5": ["IS", "WedgeAngle"], + "00D6": ["DS", "WedgeFactor"], + "00D7": ["FL", "TotalWedgeTrayWaterEquivalentThickness"], + "00D8": ["DS", "WedgeOrientation"], + "00D9": ["FL", "IsocenterToWedgeTrayDistance"], + "00DA": ["DS", "SourceToWedgeTrayDistance"], + "00DB": ["FL", "WedgeThinEdgePosition"], + "00DC": ["SH", "BolusID"], + "00DD": ["ST", "BolusDescription"], + "00E0": ["IS", "NumberOfCompensators"], + "00E1": ["SH", "MaterialID"], + "00E2": ["DS", "TotalCompensatorTrayFactor"], + "00E3": ["SQ", "CompensatorSequence"], + "00E4": ["IS", "CompensatorNumber"], + "00E5": ["SH", "CompensatorID"], + "00E6": ["DS", "SourceToCompensatorTrayDistance"], + "00E7": ["IS", "CompensatorRows"], + "00E8": ["IS", "CompensatorColumns"], + "00E9": ["DS", "CompensatorPixelSpacing"], + "00EA": ["DS", "CompensatorPosition"], + "00EB": ["DS", "CompensatorTransmissionData"], + "00EC": ["DS", "CompensatorThicknessData"], + "00ED": ["IS", "NumberOfBoli"], + "00EE": ["CS", "CompensatorType"], + "00F0": ["IS", "NumberOfBlocks"], + "00F2": ["DS", "TotalBlockTrayFactor"], + "00F3": ["FL", "TotalBlockTrayWaterEquivalentThickness"], + "00F4": ["SQ", "BlockSequence"], + "00F5": ["SH", "BlockTrayID"], + "00F6": ["DS", "SourceToBlockTrayDistance"], + "00F7": ["FL", "IsocenterToBlockTrayDistance"], + "00F8": ["CS", "BlockType"], + "00F9": ["LO", "AccessoryCode"], + "00FA": ["CS", "BlockDivergence"], + "00FB": ["CS", "BlockMountingPosition"], + "00FC": ["IS", "BlockNumber"], + "00FE": ["LO", "BlockName"], + "0100": ["DS", "BlockThickness"], + "0102": ["DS", "BlockTransmission"], + "0104": ["IS", "BlockNumberOfPoints"], + "0106": ["DS", "BlockData"], + "0107": ["SQ", "ApplicatorSequence"], + "0108": ["SH", "ApplicatorID"], + "0109": ["CS", "ApplicatorType"], + "010A": ["LO", "ApplicatorDescription"], + "010C": ["DS", "CumulativeDoseReferenceCoefficient"], + "010E": ["DS", "FinalCumulativeMetersetWeight"], + "0110": ["IS", "NumberOfControlPoints"], + "0111": ["SQ", "ControlPointSequence"], + "0112": ["IS", "ControlPointIndex"], + "0114": ["DS", "NominalBeamEnergy"], + "0115": ["DS", "DoseRateSet"], + "0116": ["SQ", "WedgePositionSequence"], + "0118": ["CS", "WedgePosition"], + "011A": ["SQ", "BeamLimitingDevicePositionSequence"], + "011C": ["DS", "LeafJawPositions"], + "011E": ["DS", "GantryAngle"], + "011F": ["CS", "GantryRotationDirection"], + "0120": ["DS", "BeamLimitingDeviceAngle"], + "0121": ["CS", "BeamLimitingDeviceRotationDirection"], + "0122": ["DS", "PatientSupportAngle"], + "0123": ["CS", "PatientSupportRotationDirection"], + "0124": ["DS", "TableTopEccentricAxisDistance"], + "0125": ["DS", "TableTopEccentricAngle"], + "0126": ["CS", "TableTopEccentricRotationDirection"], + "0128": ["DS", "TableTopVerticalPosition"], + "0129": ["DS", "TableTopLongitudinalPosition"], + "012A": ["DS", "TableTopLateralPosition"], + "012C": ["DS", "IsocenterPosition"], + "012E": ["DS", "SurfaceEntryPoint"], + "0130": ["DS", "SourceToSurfaceDistance"], + "0134": ["DS", "CumulativeMetersetWeight"], + "0140": ["FL", "TableTopPitchAngle"], + "0142": ["CS", "TableTopPitchRotationDirection"], + "0144": ["FL", "TableTopRollAngle"], + "0146": ["CS", "TableTopRollRotationDirection"], + "0148": ["FL", "HeadFixationAngle"], + "014A": ["FL", "GantryPitchAngle"], + "014C": ["CS", "GantryPitchRotationDirection"], + "014E": ["FL", "GantryPitchAngleTolerance"], + "0180": ["SQ", "PatientSetupSequence"], + "0182": ["IS", "PatientSetupNumber"], + "0183": ["LO", "PatientSetupLabel"], + "0184": ["LO", "PatientAdditionalPosition"], + "0190": ["SQ", "FixationDeviceSequence"], + "0192": ["CS", "FixationDeviceType"], + "0194": ["SH", "FixationDeviceLabel"], + "0196": ["ST", "FixationDeviceDescription"], + "0198": ["SH", "FixationDevicePosition"], + "0199": ["FL", "FixationDevicePitchAngle"], + "019A": ["FL", "FixationDeviceRollAngle"], + "01A0": ["SQ", "ShieldingDeviceSequence"], + "01A2": ["CS", "ShieldingDeviceType"], + "01A4": ["SH", "ShieldingDeviceLabel"], + "01A6": ["ST", "ShieldingDeviceDescription"], + "01A8": ["SH", "ShieldingDevicePosition"], + "01B0": ["CS", "SetupTechnique"], + "01B2": ["ST", "SetupTechniqueDescription"], + "01B4": ["SQ", "SetupDeviceSequence"], + "01B6": ["CS", "SetupDeviceType"], + "01B8": ["SH", "SetupDeviceLabel"], + "01BA": ["ST", "SetupDeviceDescription"], + "01BC": ["DS", "SetupDeviceParameter"], + "01D0": ["ST", "SetupReferenceDescription"], + "01D2": ["DS", "TableTopVerticalSetupDisplacement"], + "01D4": ["DS", "TableTopLongitudinalSetupDisplacement"], + "01D6": ["DS", "TableTopLateralSetupDisplacement"], + "0200": ["CS", "BrachyTreatmentTechnique"], + "0202": ["CS", "BrachyTreatmentType"], + "0206": ["SQ", "TreatmentMachineSequence"], + "0210": ["SQ", "SourceSequence"], + "0212": ["IS", "SourceNumber"], + "0214": ["CS", "SourceType"], + "0216": ["LO", "SourceManufacturer"], + "0218": ["DS", "ActiveSourceDiameter"], + "021A": ["DS", "ActiveSourceLength"], + "0222": ["DS", "SourceEncapsulationNominalThickness"], + "0224": ["DS", "SourceEncapsulationNominalTransmission"], + "0226": ["LO", "SourceIsotopeName"], + "0228": ["DS", "SourceIsotopeHalfLife"], + "0229": ["CS", "SourceStrengthUnits"], + "022A": ["DS", "ReferenceAirKermaRate"], + "022B": ["DS", "SourceStrength"], + "022C": ["DA", "SourceStrengthReferenceDate"], + "022E": ["TM", "SourceStrengthReferenceTime"], + "0230": ["SQ", "ApplicationSetupSequence"], + "0232": ["CS", "ApplicationSetupType"], + "0234": ["IS", "ApplicationSetupNumber"], + "0236": ["LO", "ApplicationSetupName"], + "0238": ["LO", "ApplicationSetupManufacturer"], + "0240": ["IS", "TemplateNumber"], + "0242": ["SH", "TemplateType"], + "0244": ["LO", "TemplateName"], + "0250": ["DS", "TotalReferenceAirKerma"], + "0260": ["SQ", "BrachyAccessoryDeviceSequence"], + "0262": ["IS", "BrachyAccessoryDeviceNumber"], + "0263": ["SH", "BrachyAccessoryDeviceID"], + "0264": ["CS", "BrachyAccessoryDeviceType"], + "0266": ["LO", "BrachyAccessoryDeviceName"], + "026A": ["DS", "BrachyAccessoryDeviceNominalThickness"], + "026C": ["DS", "BrachyAccessoryDeviceNominalTransmission"], + "0280": ["SQ", "ChannelSequence"], + "0282": ["IS", "ChannelNumber"], + "0284": ["DS", "ChannelLength"], + "0286": ["DS", "ChannelTotalTime"], + "0288": ["CS", "SourceMovementType"], + "028A": ["IS", "NumberOfPulses"], + "028C": ["DS", "PulseRepetitionInterval"], + "0290": ["IS", "SourceApplicatorNumber"], + "0291": ["SH", "SourceApplicatorID"], + "0292": ["CS", "SourceApplicatorType"], + "0294": ["LO", "SourceApplicatorName"], + "0296": ["DS", "SourceApplicatorLength"], + "0298": ["LO", "SourceApplicatorManufacturer"], + "029C": ["DS", "SourceApplicatorWallNominalThickness"], + "029E": ["DS", "SourceApplicatorWallNominalTransmission"], + "02A0": ["DS", "SourceApplicatorStepSize"], + "02A2": ["IS", "TransferTubeNumber"], + "02A4": ["DS", "TransferTubeLength"], + "02B0": ["SQ", "ChannelShieldSequence"], + "02B2": ["IS", "ChannelShieldNumber"], + "02B3": ["SH", "ChannelShieldID"], + "02B4": ["LO", "ChannelShieldName"], + "02B8": ["DS", "ChannelShieldNominalThickness"], + "02BA": ["DS", "ChannelShieldNominalTransmission"], + "02C8": ["DS", "FinalCumulativeTimeWeight"], + "02D0": ["SQ", "BrachyControlPointSequence"], + "02D2": ["DS", "ControlPointRelativePosition"], + "02D4": ["DS", "ControlPoint3DPosition"], + "02D6": ["DS", "CumulativeTimeWeight"], + "02E0": ["CS", "CompensatorDivergence"], + "02E1": ["CS", "CompensatorMountingPosition"], + "02E2": ["DS", "SourceToCompensatorDistance"], + "02E3": ["FL", "TotalCompensatorTrayWaterEquivalentThickness"], + "02E4": ["FL", "IsocenterToCompensatorTrayDistance"], + "02E5": ["FL", "CompensatorColumnOffset"], + "02E6": ["FL", "IsocenterToCompensatorDistances"], + "02E7": ["FL", "CompensatorRelativeStoppingPowerRatio"], + "02E8": ["FL", "CompensatorMillingToolDiameter"], + "02EA": ["SQ", "IonRangeCompensatorSequence"], + "02EB": ["LT", "CompensatorDescription"], + "0302": ["IS", "RadiationMassNumber"], + "0304": ["IS", "RadiationAtomicNumber"], + "0306": ["SS", "RadiationChargeState"], + "0308": ["CS", "ScanMode"], + "030A": ["FL", "VirtualSourceAxisDistances"], + "030C": ["SQ", "SnoutSequence"], + "030D": ["FL", "SnoutPosition"], + "030F": ["SH", "SnoutID"], + "0312": ["IS", "NumberOfRangeShifters"], + "0314": ["SQ", "RangeShifterSequence"], + "0316": ["IS", "RangeShifterNumber"], + "0318": ["SH", "RangeShifterID"], + "0320": ["CS", "RangeShifterType"], + "0322": ["LO", "RangeShifterDescription"], + "0330": ["IS", "NumberOfLateralSpreadingDevices"], + "0332": ["SQ", "LateralSpreadingDeviceSequence"], + "0334": ["IS", "LateralSpreadingDeviceNumber"], + "0336": ["SH", "LateralSpreadingDeviceID"], + "0338": ["CS", "LateralSpreadingDeviceType"], + "033A": ["LO", "LateralSpreadingDeviceDescription"], + "033C": ["FL", "LateralSpreadingDeviceWaterEquivalentThickness"], + "0340": ["IS", "NumberOfRangeModulators"], + "0342": ["SQ", "RangeModulatorSequence"], + "0344": ["IS", "RangeModulatorNumber"], + "0346": ["SH", "RangeModulatorID"], + "0348": ["CS", "RangeModulatorType"], + "034A": ["LO", "RangeModulatorDescription"], + "034C": ["SH", "BeamCurrentModulationID"], + "0350": ["CS", "PatientSupportType"], + "0352": ["SH", "PatientSupportID"], + "0354": ["LO", "PatientSupportAccessoryCode"], + "0356": ["FL", "FixationLightAzimuthalAngle"], + "0358": ["FL", "FixationLightPolarAngle"], + "035A": ["FL", "MetersetRate"], + "0360": ["SQ", "RangeShifterSettingsSequence"], + "0362": ["LO", "RangeShifterSetting"], + "0364": ["FL", "IsocenterToRangeShifterDistance"], + "0366": ["FL", "RangeShifterWaterEquivalentThickness"], + "0370": ["SQ", "LateralSpreadingDeviceSettingsSequence"], + "0372": ["LO", "LateralSpreadingDeviceSetting"], + "0374": ["FL", "IsocenterToLateralSpreadingDeviceDistance"], + "0380": ["SQ", "RangeModulatorSettingsSequence"], + "0382": ["FL", "RangeModulatorGatingStartValue"], + "0384": ["FL", "RangeModulatorGatingStopValue"], + "0386": ["FL", "RangeModulatorGatingStartWaterEquivalentThickness"], + "0388": ["FL", "RangeModulatorGatingStopWaterEquivalentThickness"], + "038A": ["FL", "IsocenterToRangeModulatorDistance"], + "0390": ["SH", "ScanSpotTuneID"], + "0392": ["IS", "NumberOfScanSpotPositions"], + "0394": ["FL", "ScanSpotPositionMap"], + "0396": ["FL", "ScanSpotMetersetWeights"], + "0398": ["FL", "ScanningSpotSize"], + "039A": ["IS", "NumberOfPaintings"], + "03A0": ["SQ", "IonToleranceTableSequence"], + "03A2": ["SQ", "IonBeamSequence"], + "03A4": ["SQ", "IonBeamLimitingDeviceSequence"], + "03A6": ["SQ", "IonBlockSequence"], + "03A8": ["SQ", "IonControlPointSequence"], + "03AA": ["SQ", "IonWedgeSequence"], + "03AC": ["SQ", "IonWedgePositionSequence"], + "0401": ["SQ", "ReferencedSetupImageSequence"], + "0402": ["ST", "SetupImageComment"], + "0410": ["SQ", "MotionSynchronizationSequence"], + "0412": ["FL", "ControlPointOrientation"], + "0420": ["SQ", "GeneralAccessorySequence"], + "0421": ["SH", "GeneralAccessoryID"], + "0422": ["ST", "GeneralAccessoryDescription"], + "0423": ["CS", "GeneralAccessoryType"], + "0424": ["IS", "GeneralAccessoryNumber"], + "0431": ["SQ", "ApplicatorGeometrySequence"], + "0432": ["CS", "ApplicatorApertureShape"], + "0433": ["FL", "ApplicatorOpening"], + "0434": ["FL", "ApplicatorOpeningX"], + "0435": ["FL", "ApplicatorOpeningY"], + "0436": ["FL", "SourceToApplicatorMountingPositionDistance"] + }, + "300C": { + "0002": ["SQ", "ReferencedRTPlanSequence"], + "0004": ["SQ", "ReferencedBeamSequence"], + "0006": ["IS", "ReferencedBeamNumber"], + "0007": ["IS", "ReferencedReferenceImageNumber"], + "0008": ["DS", "StartCumulativeMetersetWeight"], + "0009": ["DS", "EndCumulativeMetersetWeight"], + "000A": ["SQ", "ReferencedBrachyApplicationSetupSequence"], + "000C": ["IS", "ReferencedBrachyApplicationSetupNumber"], + "000E": ["IS", "ReferencedSourceNumber"], + "0020": ["SQ", "ReferencedFractionGroupSequence"], + "0022": ["IS", "ReferencedFractionGroupNumber"], + "0040": ["SQ", "ReferencedVerificationImageSequence"], + "0042": ["SQ", "ReferencedReferenceImageSequence"], + "0050": ["SQ", "ReferencedDoseReferenceSequence"], + "0051": ["IS", "ReferencedDoseReferenceNumber"], + "0055": ["SQ", "BrachyReferencedDoseReferenceSequence"], + "0060": ["SQ", "ReferencedStructureSetSequence"], + "006A": ["IS", "ReferencedPatientSetupNumber"], + "0080": ["SQ", "ReferencedDoseSequence"], + "00A0": ["IS", "ReferencedToleranceTableNumber"], + "00B0": ["SQ", "ReferencedBolusSequence"], + "00C0": ["IS", "ReferencedWedgeNumber"], + "00D0": ["IS", "ReferencedCompensatorNumber"], + "00E0": ["IS", "ReferencedBlockNumber"], + "00F0": ["IS", "ReferencedControlPointIndex"], + "00F2": ["SQ", "ReferencedControlPointSequence"], + "00F4": ["IS", "ReferencedStartControlPointIndex"], + "00F6": ["IS", "ReferencedStopControlPointIndex"], + "0100": ["IS", "ReferencedRangeShifterNumber"], + "0102": ["IS", "ReferencedLateralSpreadingDeviceNumber"], + "0104": ["IS", "ReferencedRangeModulatorNumber"] + }, + "300E": { + "0002": ["CS", "ApprovalStatus"], + "0004": ["DA", "ReviewDate"], + "0005": ["TM", "ReviewTime"], + "0008": ["PN", "ReviewerName"] + }, + "4000": { + "0010": ["LT", "Arbitrary"], + "4000": ["LT", "TextComments"] + }, + "4008": { + "0040": ["SH", "ResultsID"], + "0042": ["LO", "ResultsIDIssuer"], + "0050": ["SQ", "ReferencedInterpretationSequence"], + "00FF": ["CS", "ReportProductionStatusTrial"], + "0100": ["DA", "InterpretationRecordedDate"], + "0101": ["TM", "InterpretationRecordedTime"], + "0102": ["PN", "InterpretationRecorder"], + "0103": ["LO", "ReferenceToRecordedSound"], + "0108": ["DA", "InterpretationTranscriptionDate"], + "0109": ["TM", "InterpretationTranscriptionTime"], + "010A": ["PN", "InterpretationTranscriber"], + "010B": ["ST", "InterpretationText"], + "010C": ["PN", "InterpretationAuthor"], + "0111": ["SQ", "InterpretationApproverSequence"], + "0112": ["DA", "InterpretationApprovalDate"], + "0113": ["TM", "InterpretationApprovalTime"], + "0114": ["PN", "PhysicianApprovingInterpretation"], + "0115": ["LT", "InterpretationDiagnosisDescription"], + "0117": ["SQ", "InterpretationDiagnosisCodeSequence"], + "0118": ["SQ", "ResultsDistributionListSequence"], + "0119": ["PN", "DistributionName"], + "011A": ["LO", "DistributionAddress"], + "0200": ["SH", "InterpretationID"], + "0202": ["LO", "InterpretationIDIssuer"], + "0210": ["CS", "InterpretationTypeID"], + "0212": ["CS", "InterpretationStatusID"], + "0300": ["ST", "Impressions"], + "4000": ["ST", "ResultsComments"] + }, + "4010": { + "0001": ["CS", "LowEnergyDetectors"], + "0002": ["CS", "HighEnergyDetectors"], + "0004": ["SQ", "DetectorGeometrySequence"], + "1001": ["SQ", "ThreatROIVoxelSequence"], + "1004": ["FL", "ThreatROIBase"], + "1005": ["FL", "ThreatROIExtents"], + "1006": ["OB", "ThreatROIBitmap"], + "1007": ["SH", "RouteSegmentID"], + "1008": ["CS", "GantryType"], + "1009": ["CS", "OOIOwnerType"], + "100A": ["SQ", "RouteSegmentSequence"], + "1010": ["US", "PotentialThreatObjectID"], + "1011": ["SQ", "ThreatSequence"], + "1012": ["CS", "ThreatCategory"], + "1013": ["LT", "ThreatCategoryDescription"], + "1014": ["CS", "ATDAbilityAssessment"], + "1015": ["CS", "ATDAssessmentFlag"], + "1016": ["FL", "ATDAssessmentProbability"], + "1017": ["FL", "Mass"], + "1018": ["FL", "Density"], + "1019": ["FL", "ZEffective"], + "101A": ["SH", "BoardingPassID"], + "101B": ["FL", "CenterOfMass"], + "101C": ["FL", "CenterOfPTO"], + "101D": ["FL", "BoundingPolygon"], + "101E": ["SH", "RouteSegmentStartLocationID"], + "101F": ["SH", "RouteSegmentEndLocationID"], + "1020": ["CS", "RouteSegmentLocationIDType"], + "1021": ["CS", "AbortReason"], + "1023": ["FL", "VolumeOfPTO"], + "1024": ["CS", "AbortFlag"], + "1025": ["DT", "RouteSegmentStartTime"], + "1026": ["DT", "RouteSegmentEndTime"], + "1027": ["CS", "TDRType"], + "1028": ["CS", "InternationalRouteSegment"], + "1029": ["LO", "ThreatDetectionAlgorithmandVersion"], + "102A": ["SH", "AssignedLocation"], + "102B": ["DT", "AlarmDecisionTime"], + "1031": ["CS", "AlarmDecision"], + "1033": ["US", "NumberOfTotalObjects"], + "1034": ["US", "NumberOfAlarmObjects"], + "1037": ["SQ", "PTORepresentationSequence"], + "1038": ["SQ", "ATDAssessmentSequence"], + "1039": ["CS", "TIPType"], + "103A": ["CS", "DICOSVersion"], + "1041": ["DT", "OOIOwnerCreationTime"], + "1042": ["CS", "OOIType"], + "1043": ["FL", "OOISize"], + "1044": ["CS", "AcquisitionStatus"], + "1045": ["SQ", "BasisMaterialsCodeSequence"], + "1046": ["CS", "PhantomType"], + "1047": ["SQ", "OOIOwnerSequence"], + "1048": ["CS", "ScanType"], + "1051": ["LO", "ItineraryID"], + "1052": ["SH", "ItineraryIDType"], + "1053": ["LO", "ItineraryIDAssigningAuthority"], + "1054": ["SH", "RouteID"], + "1055": ["SH", "RouteIDAssigningAuthority"], + "1056": ["CS", "InboundArrivalType"], + "1058": ["SH", "CarrierID"], + "1059": ["CS", "CarrierIDAssigningAuthority"], + "1060": ["FL", "SourceOrientation"], + "1061": ["FL", "SourcePosition"], + "1062": ["FL", "BeltHeight"], + "1064": ["SQ", "AlgorithmRoutingCodeSequence"], + "1067": ["CS", "TransportClassification"], + "1068": ["LT", "OOITypeDescriptor"], + "1069": ["FL", "TotalProcessingTime"], + "106C": ["OB", "DetectorCalibrationData"] + } + }; + daikon2.Dictionary.getVR = function(group, element) { + var vr, elementData, groupData; + groupData = daikon2.Dictionary.dict[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + vr = elementData[0]; + } else if (element === 0) { + vr = "UL"; + } + } + if (!vr) { + groupData = daikon2.Dictionary.dictPrivate[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + vr = elementData[0]; + } + } + } + if (!vr) { + vr = "OB"; + } + return vr; + }; + daikon2.Dictionary.getDescription = function(group, element) { + var des, elementData, groupData; + groupData = daikon2.Dictionary.dict[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + des = elementData[1]; + } else if (element === 0) { + des = "Group " + daikon2.Utils.dec2hex(group) + " Length"; + } + } + if (!des) { + groupData = daikon2.Dictionary.dictPrivate[daikon2.Utils.dec2hex(group)]; + if (groupData) { + elementData = groupData[daikon2.Utils.dec2hex(element)]; + if (elementData) { + des = elementData[1]; + } + } + } + if (!des) { + des = "PrivateData"; + } + return des; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Dictionary; + } + } +}); - // stage 2 - t = (v0 - v3 + 1) >> 1; - v0 = (v0 + v3 + 1) >> 1; - v3 = t; - t = (v1 - v2 + 1) >> 1; - v1 = (v1 + v2 + 1) >> 1; - v2 = t; - t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; - v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; - v7 = t; - t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; - v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; - v6 = t; +// node_modules/cssfilter/lib/default.js +var require_default = __commonJS({ + "node_modules/cssfilter/lib/default.js"(exports2) { + function getDefaultWhiteList() { + var whiteList = {}; + whiteList["align-content"] = false; + whiteList["align-items"] = false; + whiteList["align-self"] = false; + whiteList["alignment-adjust"] = false; + whiteList["alignment-baseline"] = false; + whiteList["all"] = false; + whiteList["anchor-point"] = false; + whiteList["animation"] = false; + whiteList["animation-delay"] = false; + whiteList["animation-direction"] = false; + whiteList["animation-duration"] = false; + whiteList["animation-fill-mode"] = false; + whiteList["animation-iteration-count"] = false; + whiteList["animation-name"] = false; + whiteList["animation-play-state"] = false; + whiteList["animation-timing-function"] = false; + whiteList["azimuth"] = false; + whiteList["backface-visibility"] = false; + whiteList["background"] = true; + whiteList["background-attachment"] = true; + whiteList["background-clip"] = true; + whiteList["background-color"] = true; + whiteList["background-image"] = true; + whiteList["background-origin"] = true; + whiteList["background-position"] = true; + whiteList["background-repeat"] = true; + whiteList["background-size"] = true; + whiteList["baseline-shift"] = false; + whiteList["binding"] = false; + whiteList["bleed"] = false; + whiteList["bookmark-label"] = false; + whiteList["bookmark-level"] = false; + whiteList["bookmark-state"] = false; + whiteList["border"] = true; + whiteList["border-bottom"] = true; + whiteList["border-bottom-color"] = true; + whiteList["border-bottom-left-radius"] = true; + whiteList["border-bottom-right-radius"] = true; + whiteList["border-bottom-style"] = true; + whiteList["border-bottom-width"] = true; + whiteList["border-collapse"] = true; + whiteList["border-color"] = true; + whiteList["border-image"] = true; + whiteList["border-image-outset"] = true; + whiteList["border-image-repeat"] = true; + whiteList["border-image-slice"] = true; + whiteList["border-image-source"] = true; + whiteList["border-image-width"] = true; + whiteList["border-left"] = true; + whiteList["border-left-color"] = true; + whiteList["border-left-style"] = true; + whiteList["border-left-width"] = true; + whiteList["border-radius"] = true; + whiteList["border-right"] = true; + whiteList["border-right-color"] = true; + whiteList["border-right-style"] = true; + whiteList["border-right-width"] = true; + whiteList["border-spacing"] = true; + whiteList["border-style"] = true; + whiteList["border-top"] = true; + whiteList["border-top-color"] = true; + whiteList["border-top-left-radius"] = true; + whiteList["border-top-right-radius"] = true; + whiteList["border-top-style"] = true; + whiteList["border-top-width"] = true; + whiteList["border-width"] = true; + whiteList["bottom"] = false; + whiteList["box-decoration-break"] = true; + whiteList["box-shadow"] = true; + whiteList["box-sizing"] = true; + whiteList["box-snap"] = true; + whiteList["box-suppress"] = true; + whiteList["break-after"] = true; + whiteList["break-before"] = true; + whiteList["break-inside"] = true; + whiteList["caption-side"] = false; + whiteList["chains"] = false; + whiteList["clear"] = true; + whiteList["clip"] = false; + whiteList["clip-path"] = false; + whiteList["clip-rule"] = false; + whiteList["color"] = true; + whiteList["color-interpolation-filters"] = true; + whiteList["column-count"] = false; + whiteList["column-fill"] = false; + whiteList["column-gap"] = false; + whiteList["column-rule"] = false; + whiteList["column-rule-color"] = false; + whiteList["column-rule-style"] = false; + whiteList["column-rule-width"] = false; + whiteList["column-span"] = false; + whiteList["column-width"] = false; + whiteList["columns"] = false; + whiteList["contain"] = false; + whiteList["content"] = false; + whiteList["counter-increment"] = false; + whiteList["counter-reset"] = false; + whiteList["counter-set"] = false; + whiteList["crop"] = false; + whiteList["cue"] = false; + whiteList["cue-after"] = false; + whiteList["cue-before"] = false; + whiteList["cursor"] = false; + whiteList["direction"] = false; + whiteList["display"] = true; + whiteList["display-inside"] = true; + whiteList["display-list"] = true; + whiteList["display-outside"] = true; + whiteList["dominant-baseline"] = false; + whiteList["elevation"] = false; + whiteList["empty-cells"] = false; + whiteList["filter"] = false; + whiteList["flex"] = false; + whiteList["flex-basis"] = false; + whiteList["flex-direction"] = false; + whiteList["flex-flow"] = false; + whiteList["flex-grow"] = false; + whiteList["flex-shrink"] = false; + whiteList["flex-wrap"] = false; + whiteList["float"] = false; + whiteList["float-offset"] = false; + whiteList["flood-color"] = false; + whiteList["flood-opacity"] = false; + whiteList["flow-from"] = false; + whiteList["flow-into"] = false; + whiteList["font"] = true; + whiteList["font-family"] = true; + whiteList["font-feature-settings"] = true; + whiteList["font-kerning"] = true; + whiteList["font-language-override"] = true; + whiteList["font-size"] = true; + whiteList["font-size-adjust"] = true; + whiteList["font-stretch"] = true; + whiteList["font-style"] = true; + whiteList["font-synthesis"] = true; + whiteList["font-variant"] = true; + whiteList["font-variant-alternates"] = true; + whiteList["font-variant-caps"] = true; + whiteList["font-variant-east-asian"] = true; + whiteList["font-variant-ligatures"] = true; + whiteList["font-variant-numeric"] = true; + whiteList["font-variant-position"] = true; + whiteList["font-weight"] = true; + whiteList["grid"] = false; + whiteList["grid-area"] = false; + whiteList["grid-auto-columns"] = false; + whiteList["grid-auto-flow"] = false; + whiteList["grid-auto-rows"] = false; + whiteList["grid-column"] = false; + whiteList["grid-column-end"] = false; + whiteList["grid-column-start"] = false; + whiteList["grid-row"] = false; + whiteList["grid-row-end"] = false; + whiteList["grid-row-start"] = false; + whiteList["grid-template"] = false; + whiteList["grid-template-areas"] = false; + whiteList["grid-template-columns"] = false; + whiteList["grid-template-rows"] = false; + whiteList["hanging-punctuation"] = false; + whiteList["height"] = true; + whiteList["hyphens"] = false; + whiteList["icon"] = false; + whiteList["image-orientation"] = false; + whiteList["image-resolution"] = false; + whiteList["ime-mode"] = false; + whiteList["initial-letters"] = false; + whiteList["inline-box-align"] = false; + whiteList["justify-content"] = false; + whiteList["justify-items"] = false; + whiteList["justify-self"] = false; + whiteList["left"] = false; + whiteList["letter-spacing"] = true; + whiteList["lighting-color"] = true; + whiteList["line-box-contain"] = false; + whiteList["line-break"] = false; + whiteList["line-grid"] = false; + whiteList["line-height"] = false; + whiteList["line-snap"] = false; + whiteList["line-stacking"] = false; + whiteList["line-stacking-ruby"] = false; + whiteList["line-stacking-shift"] = false; + whiteList["line-stacking-strategy"] = false; + whiteList["list-style"] = true; + whiteList["list-style-image"] = true; + whiteList["list-style-position"] = true; + whiteList["list-style-type"] = true; + whiteList["margin"] = true; + whiteList["margin-bottom"] = true; + whiteList["margin-left"] = true; + whiteList["margin-right"] = true; + whiteList["margin-top"] = true; + whiteList["marker-offset"] = false; + whiteList["marker-side"] = false; + whiteList["marks"] = false; + whiteList["mask"] = false; + whiteList["mask-box"] = false; + whiteList["mask-box-outset"] = false; + whiteList["mask-box-repeat"] = false; + whiteList["mask-box-slice"] = false; + whiteList["mask-box-source"] = false; + whiteList["mask-box-width"] = false; + whiteList["mask-clip"] = false; + whiteList["mask-image"] = false; + whiteList["mask-origin"] = false; + whiteList["mask-position"] = false; + whiteList["mask-repeat"] = false; + whiteList["mask-size"] = false; + whiteList["mask-source-type"] = false; + whiteList["mask-type"] = false; + whiteList["max-height"] = true; + whiteList["max-lines"] = false; + whiteList["max-width"] = true; + whiteList["min-height"] = true; + whiteList["min-width"] = true; + whiteList["move-to"] = false; + whiteList["nav-down"] = false; + whiteList["nav-index"] = false; + whiteList["nav-left"] = false; + whiteList["nav-right"] = false; + whiteList["nav-up"] = false; + whiteList["object-fit"] = false; + whiteList["object-position"] = false; + whiteList["opacity"] = false; + whiteList["order"] = false; + whiteList["orphans"] = false; + whiteList["outline"] = false; + whiteList["outline-color"] = false; + whiteList["outline-offset"] = false; + whiteList["outline-style"] = false; + whiteList["outline-width"] = false; + whiteList["overflow"] = false; + whiteList["overflow-wrap"] = false; + whiteList["overflow-x"] = false; + whiteList["overflow-y"] = false; + whiteList["padding"] = true; + whiteList["padding-bottom"] = true; + whiteList["padding-left"] = true; + whiteList["padding-right"] = true; + whiteList["padding-top"] = true; + whiteList["page"] = false; + whiteList["page-break-after"] = false; + whiteList["page-break-before"] = false; + whiteList["page-break-inside"] = false; + whiteList["page-policy"] = false; + whiteList["pause"] = false; + whiteList["pause-after"] = false; + whiteList["pause-before"] = false; + whiteList["perspective"] = false; + whiteList["perspective-origin"] = false; + whiteList["pitch"] = false; + whiteList["pitch-range"] = false; + whiteList["play-during"] = false; + whiteList["position"] = false; + whiteList["presentation-level"] = false; + whiteList["quotes"] = false; + whiteList["region-fragment"] = false; + whiteList["resize"] = false; + whiteList["rest"] = false; + whiteList["rest-after"] = false; + whiteList["rest-before"] = false; + whiteList["richness"] = false; + whiteList["right"] = false; + whiteList["rotation"] = false; + whiteList["rotation-point"] = false; + whiteList["ruby-align"] = false; + whiteList["ruby-merge"] = false; + whiteList["ruby-position"] = false; + whiteList["shape-image-threshold"] = false; + whiteList["shape-outside"] = false; + whiteList["shape-margin"] = false; + whiteList["size"] = false; + whiteList["speak"] = false; + whiteList["speak-as"] = false; + whiteList["speak-header"] = false; + whiteList["speak-numeral"] = false; + whiteList["speak-punctuation"] = false; + whiteList["speech-rate"] = false; + whiteList["stress"] = false; + whiteList["string-set"] = false; + whiteList["tab-size"] = false; + whiteList["table-layout"] = false; + whiteList["text-align"] = true; + whiteList["text-align-last"] = true; + whiteList["text-combine-upright"] = true; + whiteList["text-decoration"] = true; + whiteList["text-decoration-color"] = true; + whiteList["text-decoration-line"] = true; + whiteList["text-decoration-skip"] = true; + whiteList["text-decoration-style"] = true; + whiteList["text-emphasis"] = true; + whiteList["text-emphasis-color"] = true; + whiteList["text-emphasis-position"] = true; + whiteList["text-emphasis-style"] = true; + whiteList["text-height"] = true; + whiteList["text-indent"] = true; + whiteList["text-justify"] = true; + whiteList["text-orientation"] = true; + whiteList["text-overflow"] = true; + whiteList["text-shadow"] = true; + whiteList["text-space-collapse"] = true; + whiteList["text-transform"] = true; + whiteList["text-underline-position"] = true; + whiteList["text-wrap"] = true; + whiteList["top"] = false; + whiteList["transform"] = false; + whiteList["transform-origin"] = false; + whiteList["transform-style"] = false; + whiteList["transition"] = false; + whiteList["transition-delay"] = false; + whiteList["transition-duration"] = false; + whiteList["transition-property"] = false; + whiteList["transition-timing-function"] = false; + whiteList["unicode-bidi"] = false; + whiteList["vertical-align"] = false; + whiteList["visibility"] = false; + whiteList["voice-balance"] = false; + whiteList["voice-duration"] = false; + whiteList["voice-family"] = false; + whiteList["voice-pitch"] = false; + whiteList["voice-range"] = false; + whiteList["voice-rate"] = false; + whiteList["voice-stress"] = false; + whiteList["voice-volume"] = false; + whiteList["volume"] = false; + whiteList["white-space"] = false; + whiteList["widows"] = false; + whiteList["width"] = true; + whiteList["will-change"] = false; + whiteList["word-break"] = true; + whiteList["word-spacing"] = true; + whiteList["word-wrap"] = true; + whiteList["wrap-flow"] = false; + whiteList["wrap-through"] = false; + whiteList["writing-mode"] = false; + whiteList["z-index"] = false; + return whiteList; + } + function onAttr(name, value, options) { + } + function onIgnoreAttr(name, value, options) { + } + var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img; + function safeAttrValue(name, value) { + if (REGEXP_URL_JAVASCRIPT.test(value)) + return ""; + return value; + } + exports2.whiteList = getDefaultWhiteList(); + exports2.getDefaultWhiteList = getDefaultWhiteList; + exports2.onAttr = onAttr; + exports2.onIgnoreAttr = onIgnoreAttr; + exports2.safeAttrValue = safeAttrValue; + } +}); - // stage 1 - p[0 + row] = v0 + v7; - p[7 + row] = v0 - v7; - p[1 + row] = v1 + v6; - p[6 + row] = v1 - v6; - p[2 + row] = v2 + v5; - p[5 + row] = v2 - v5; - p[3 + row] = v3 + v4; - p[4 + row] = v3 - v4; +// node_modules/cssfilter/lib/util.js +var require_util = __commonJS({ + "node_modules/cssfilter/lib/util.js"(exports2, module2) { + module2.exports = { + indexOf: function(arr, item) { + var i2, j; + if (Array.prototype.indexOf) { + return arr.indexOf(item); } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + if (arr[i2] === item) { + return i2; + } + } + return -1; + }, + forEach: function(arr, fn, scope) { + var i2, j; + if (Array.prototype.forEach) { + return arr.forEach(fn, scope); + } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + fn.call(scope, arr[i2], i2, arr); + } + }, + trim: function(str) { + if (String.prototype.trim) { + return str.trim(); + } + return str.replace(/(^\s*)|(\s*$)/g, ""); + }, + trimRight: function(str) { + if (String.prototype.trimRight) { + return str.trimRight(); + } + return str.replace(/(\s*$)/g, ""); + } + }; + } +}); - // inverse DCT on columns - for (i = 0; i < 8; ++i) { - var col = i; - - // check for all-zero AC coefficients - if (p[1 * 8 + col] === 0 && p[2 * 8 + col] === 0 && p[3 * 8 + col] === 0 && - p[4 * 8 + col] === 0 && p[5 * 8 + col] === 0 && p[6 * 8 + col] === 0 && - p[7 * 8 + col] === 0) { - t = (dctSqrt2 * p[i + 0] + 8192) >> 14; - p[0 * 8 + col] = t; - p[1 * 8 + col] = t; - p[2 * 8 + col] = t; - p[3 * 8 + col] = t; - p[4 * 8 + col] = t; - p[5 * 8 + col] = t; - p[6 * 8 + col] = t; - p[7 * 8 + col] = t; - continue; +// node_modules/cssfilter/lib/parser.js +var require_parser = __commonJS({ + "node_modules/cssfilter/lib/parser.js"(exports2, module2) { + var _ = require_util(); + function parseStyle(css, onAttr) { + css = _.trimRight(css); + if (css[css.length - 1] !== ";") + css += ";"; + var cssLength = css.length; + var isParenthesisOpen = false; + var lastPos = 0; + var i2 = 0; + var retCSS = ""; + function addNewAttr() { + if (!isParenthesisOpen) { + var source = _.trim(css.slice(lastPos, i2)); + var j2 = source.indexOf(":"); + if (j2 !== -1) { + var name = _.trim(source.slice(0, j2)); + var value = _.trim(source.slice(j2 + 1)); + if (name) { + var ret = onAttr(lastPos, retCSS.length, name, value, source); + if (ret) + retCSS += ret + "; "; } - - // stage 4 - v0 = (dctSqrt2 * p[0 * 8 + col] + 2048) >> 12; - v1 = (dctSqrt2 * p[4 * 8 + col] + 2048) >> 12; - v2 = p[2 * 8 + col]; - v3 = p[6 * 8 + col]; - v4 = (dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048) >> 12; - v7 = (dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048) >> 12; - v5 = p[3 * 8 + col]; - v6 = p[5 * 8 + col]; - - // stage 3 - t = (v0 - v1 + 1) >> 1; - v0 = (v0 + v1 + 1) >> 1; - v1 = t; - t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; - v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; - v3 = t; - t = (v4 - v6 + 1) >> 1; - v4 = (v4 + v6 + 1) >> 1; - v6 = t; - t = (v7 + v5 + 1) >> 1; - v5 = (v7 - v5 + 1) >> 1; - v7 = t; - - // stage 2 - t = (v0 - v3 + 1) >> 1; - v0 = (v0 + v3 + 1) >> 1; - v3 = t; - t = (v1 - v2 + 1) >> 1; - v1 = (v1 + v2 + 1) >> 1; - v2 = t; - t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; - v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; - v7 = t; - t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; - v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; - v6 = t; - - // stage 1 - p[0 * 8 + col] = v0 + v7; - p[7 * 8 + col] = v0 - v7; - p[1 * 8 + col] = v1 + v6; - p[6 * 8 + col] = v1 - v6; - p[2 * 8 + col] = v2 + v5; - p[5 * 8 + col] = v2 - v5; - p[3 * 8 + col] = v3 + v4; - p[4 * 8 + col] = v3 - v4; + } } - - // convert to 8-bit integers - for (i = 0; i < 64; ++i) { - var index = blockBufferOffset + i; - var q = p[i]; - q = (q <= -2056 / component.bitConversion) ? 0 : - (q >= 2024 / component.bitConversion) ? 255 / component.bitConversion : - (q + 2056 / component.bitConversion) >> 4; - component.blockData[index] = q; + lastPos = i2 + 1; + } + for (; i2 < cssLength; i2++) { + var c = css[i2]; + if (c === "/" && css[i2 + 1] === "*") { + var j = css.indexOf("*/", i2 + 2); + if (j === -1) + break; + i2 = j + 1; + lastPos = i2 + 1; + isParenthesisOpen = false; + } else if (c === "(") { + isParenthesisOpen = true; + } else if (c === ")") { + isParenthesisOpen = false; + } else if (c === ";") { + if (isParenthesisOpen) { + } else { + addNewAttr(); + } + } else if (c === "\n") { + addNewAttr(); } + } + return _.trim(retCSS); } + module2.exports = parseStyle; + } +}); - function buildComponentData(frame, component) { - var lines = []; - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var samplesPerLine = blocksPerLine << 3; - var computationBuffer = new Int32Array(64); - - var i, j, ll = 0; - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var offset = getBlockBufferOffset(component, blockRow, blockCol); - quantizeAndInverse(component, offset, computationBuffer); - } - } - return component.blockData; +// node_modules/cssfilter/lib/css.js +var require_css = __commonJS({ + "node_modules/cssfilter/lib/css.js"(exports2, module2) { + var DEFAULT = require_default(); + var parseStyle = require_parser(); + var _ = require_util(); + function isNull(obj) { + return obj === void 0 || obj === null; + } + function shallowCopyObject(obj) { + var ret = {}; + for (var i2 in obj) { + ret[i2] = obj[i2]; + } + return ret; } + function FilterCSS(options) { + options = shallowCopyObject(options || {}); + options.whiteList = options.whiteList || DEFAULT.whiteList; + options.onAttr = options.onAttr || DEFAULT.onAttr; + options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr; + options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; + this.options = options; + } + FilterCSS.prototype.process = function(css) { + css = css || ""; + css = css.toString(); + if (!css) + return ""; + var me = this; + var options = me.options; + var whiteList = options.whiteList; + var onAttr = options.onAttr; + var onIgnoreAttr = options.onIgnoreAttr; + var safeAttrValue = options.safeAttrValue; + var retCSS = parseStyle(css, function(sourcePosition, position, name, value, source) { + var check = whiteList[name]; + var isWhite = false; + if (check === true) + isWhite = check; + else if (typeof check === "function") + isWhite = check(value); + else if (check instanceof RegExp) + isWhite = check.test(value); + if (isWhite !== true) + isWhite = false; + value = safeAttrValue(name, value); + if (!value) + return; + var opts = { + position, + sourcePosition, + source, + isWhite + }; + if (isWhite) { + var ret = onAttr(name, value, opts); + if (isNull(ret)) { + return name + ":" + value; + } else { + return ret; + } + } else { + var ret = onIgnoreAttr(name, value, opts); + if (!isNull(ret)) { + return ret; + } + } + }); + return retCSS; + }; + module2.exports = FilterCSS; + } +}); - function clampToUint8(a) { - return a <= 0 ? 0 : a >= 255 ? 255 : a | 0; +// node_modules/cssfilter/lib/index.js +var require_lib = __commonJS({ + "node_modules/cssfilter/lib/index.js"(exports2, module2) { + var DEFAULT = require_default(); + var FilterCSS = require_css(); + function filterCSS(html, options) { + var xss = new FilterCSS(options); + return xss.process(html); + } + exports2 = module2.exports = filterCSS; + exports2.FilterCSS = FilterCSS; + for (i2 in DEFAULT) + exports2[i2] = DEFAULT[i2]; + var i2; + if (typeof window !== "undefined") { + window.filterCSS = module2.exports; } + } +}); - constructor.prototype = { - load: function load(path) { - var handleData = (function (data) { - this.parse(data); - if (this.onload) - this.onload(); - }).bind(this); +// node_modules/xss/lib/util.js +var require_util2 = __commonJS({ + "node_modules/xss/lib/util.js"(exports2, module2) { + module2.exports = { + indexOf: function(arr, item) { + var i2, j; + if (Array.prototype.indexOf) { + return arr.indexOf(item); + } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + if (arr[i2] === item) { + return i2; + } + } + return -1; + }, + forEach: function(arr, fn, scope) { + var i2, j; + if (Array.prototype.forEach) { + return arr.forEach(fn, scope); + } + for (i2 = 0, j = arr.length; i2 < j; i2++) { + fn.call(scope, arr[i2], i2, arr); + } + }, + trim: function(str) { + if (String.prototype.trim) { + return str.trim(); + } + return str.replace(/(^\s*)|(\s*$)/g, ""); + }, + spaceIndex: function(str) { + var reg = /\s|\n|\t/; + var match = reg.exec(str); + return match ? match.index : -1; + } + }; + } +}); - if (path.indexOf("data:") > -1) { - var offset = path.indexOf("base64,") + 7; - var data = atob(path.substring(offset)); - var arr = new Uint8Array(data.length); - for (var i = data.length - 1; i >= 0; i--) { - arr[i] = data.charCodeAt(i); - } - handleData(data); +// node_modules/xss/lib/default.js +var require_default2 = __commonJS({ + "node_modules/xss/lib/default.js"(exports2) { + var FilterCSS = require_lib().FilterCSS; + var getDefaultCSSWhiteList = require_lib().getDefaultWhiteList; + var _ = require_util2(); + function getDefaultWhiteList() { + return { + a: ["target", "href", "title"], + abbr: ["title"], + address: [], + area: ["shape", "coords", "href", "alt"], + article: [], + aside: [], + audio: [ + "autoplay", + "controls", + "crossorigin", + "loop", + "muted", + "preload", + "src" + ], + b: [], + bdi: ["dir"], + bdo: ["dir"], + big: [], + blockquote: ["cite"], + br: [], + caption: [], + center: [], + cite: [], + code: [], + col: ["align", "valign", "span", "width"], + colgroup: ["align", "valign", "span", "width"], + dd: [], + del: ["datetime"], + details: ["open"], + div: [], + dl: [], + dt: [], + em: [], + figcaption: [], + figure: [], + font: ["color", "size", "face"], + footer: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + header: [], + hr: [], + i: [], + img: ["src", "alt", "title", "width", "height"], + ins: ["datetime"], + li: [], + mark: [], + nav: [], + ol: [], + p: [], + pre: [], + s: [], + section: [], + small: [], + span: [], + sub: [], + summary: [], + sup: [], + strong: [], + strike: [], + table: ["width", "border", "align", "valign"], + tbody: ["align", "valign"], + td: ["width", "rowspan", "colspan", "align", "valign"], + tfoot: ["align", "valign"], + th: ["width", "rowspan", "colspan", "align", "valign"], + thead: ["align", "valign"], + tr: ["rowspan", "align", "valign"], + tt: [], + u: [], + ul: [], + video: [ + "autoplay", + "controls", + "crossorigin", + "loop", + "muted", + "playsinline", + "poster", + "preload", + "src", + "height", + "width" + ] + }; + } + var defaultCSSFilter = new FilterCSS(); + function onTag(tag, html, options) { + } + function onIgnoreTag(tag, html, options) { + } + function onTagAttr(tag, name, value) { + } + function onIgnoreTagAttr(tag, name, value) { + } + function escapeHtml(html) { + return html.replace(REGEXP_LT, "<").replace(REGEXP_GT, ">"); + } + function safeAttrValue(tag, name, value, cssFilter) { + value = friendlyAttrValue(value); + if (name === "href" || name === "src") { + value = _.trim(value); + if (value === "#") + return "#"; + if (!(value.substr(0, 7) === "http://" || value.substr(0, 8) === "https://" || value.substr(0, 7) === "mailto:" || value.substr(0, 4) === "tel:" || value.substr(0, 11) === "data:image/" || value.substr(0, 6) === "ftp://" || value.substr(0, 2) === "./" || value.substr(0, 3) === "../" || value[0] === "#" || value[0] === "/")) { + return ""; + } + } else if (name === "background") { + REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { + return ""; + } + } else if (name === "style") { + REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) { + return ""; + } + REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) { + REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; + if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { + return ""; + } + } + if (cssFilter !== false) { + cssFilter = cssFilter || defaultCSSFilter; + value = cssFilter.process(value); + } + } + value = escapeAttrValue(value); + return value; + } + var REGEXP_LT = //g; + var REGEXP_QUOTE = /"/g; + var REGEXP_QUOTE_2 = /"/g; + var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim; + var REGEXP_ATTR_VALUE_COLON = /:?/gim; + var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim; + var REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi; + var REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi; + var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi; + function escapeQuote(str) { + return str.replace(REGEXP_QUOTE, """); + } + function unescapeQuote(str) { + return str.replace(REGEXP_QUOTE_2, '"'); + } + function escapeHtmlEntities(str) { + return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str2, code) { + return code[0] === "x" || code[0] === "X" ? String.fromCharCode(parseInt(code.substr(1), 16)) : String.fromCharCode(parseInt(code, 10)); + }); + } + function escapeDangerHtml5Entities(str) { + return str.replace(REGEXP_ATTR_VALUE_COLON, ":").replace(REGEXP_ATTR_VALUE_NEWLINE, " "); + } + function clearNonPrintableCharacter(str) { + var str2 = ""; + for (var i2 = 0, len = str.length; i2 < len; i2++) { + str2 += str.charCodeAt(i2) < 32 ? " " : str.charAt(i2); + } + return _.trim(str2); + } + function friendlyAttrValue(str) { + str = unescapeQuote(str); + str = escapeHtmlEntities(str); + str = escapeDangerHtml5Entities(str); + str = clearNonPrintableCharacter(str); + return str; + } + function escapeAttrValue(str) { + str = escapeQuote(str); + str = escapeHtml(str); + return str; + } + function onIgnoreTagStripAll() { + return ""; + } + function StripTagBody(tags, next) { + if (typeof next !== "function") { + next = function() { + }; + } + var isRemoveAllTag = !Array.isArray(tags); + function isRemoveTag(tag) { + if (isRemoveAllTag) + return true; + return _.indexOf(tags, tag) !== -1; + } + var removeList = []; + var posStart = false; + return { + onIgnoreTag: function(tag, html, options) { + if (isRemoveTag(tag)) { + if (options.isClosing) { + var ret = "[/removed]"; + var end = options.position + ret.length; + removeList.push([ + posStart !== false ? posStart : options.position, + end + ]); + posStart = false; + return ret; } else { - var xhr = new XMLHttpRequest(); - xhr.open("GET", path, true); - xhr.responseType = "arraybuffer"; - xhr.onload = (function () { - // TODO catch parse error - var data = new Uint8Array(xhr.response); - handleData(data); - }).bind(this); - xhr.send(null); + if (!posStart) { + posStart = options.position; + } + return "[removed]"; } + } else { + return next(tag, html, options); + } }, - parse: function parse(data) { - - function readUint16() { - var value = (data[offset] << 8) | data[offset + 1]; - offset += 2; - return value; - } + remove: function(html) { + var rethtml = ""; + var lastPos = 0; + _.forEach(removeList, function(pos) { + rethtml += html.slice(lastPos, pos[0]); + lastPos = pos[1]; + }); + rethtml += html.slice(lastPos); + return rethtml; + } + }; + } + function stripCommentTag(html) { + var retHtml = ""; + var lastPos = 0; + while (lastPos < html.length) { + var i2 = html.indexOf("", i2); + if (j === -1) { + break; + } + lastPos = j + 3; + } + return retHtml; + } + function stripBlankChar(html) { + var chars = html.split(""); + chars = chars.filter(function(char) { + var c = char.charCodeAt(0); + if (c === 127) + return false; + if (c <= 31) { + if (c === 10 || c === 13) + return true; + return false; + } + return true; + }); + return chars.join(""); + } + exports2.whiteList = getDefaultWhiteList(); + exports2.getDefaultWhiteList = getDefaultWhiteList; + exports2.onTag = onTag; + exports2.onIgnoreTag = onIgnoreTag; + exports2.onTagAttr = onTagAttr; + exports2.onIgnoreTagAttr = onIgnoreTagAttr; + exports2.safeAttrValue = safeAttrValue; + exports2.escapeHtml = escapeHtml; + exports2.escapeQuote = escapeQuote; + exports2.unescapeQuote = unescapeQuote; + exports2.escapeHtmlEntities = escapeHtmlEntities; + exports2.escapeDangerHtml5Entities = escapeDangerHtml5Entities; + exports2.clearNonPrintableCharacter = clearNonPrintableCharacter; + exports2.friendlyAttrValue = friendlyAttrValue; + exports2.escapeAttrValue = escapeAttrValue; + exports2.onIgnoreTagStripAll = onIgnoreTagStripAll; + exports2.StripTagBody = StripTagBody; + exports2.stripCommentTag = stripCommentTag; + exports2.stripBlankChar = stripBlankChar; + exports2.cssFilter = defaultCSSFilter; + exports2.getDefaultCSSWhiteList = getDefaultCSSWhiteList; + } +}); - function readDataBlock() { - var length = readUint16(); - var array = data.subarray(offset, offset + length - 2); - offset += array.length; - return array; +// node_modules/xss/lib/parser.js +var require_parser2 = __commonJS({ + "node_modules/xss/lib/parser.js"(exports2) { + var _ = require_util2(); + function getTagName(html) { + var i2 = _.spaceIndex(html); + var tagName; + if (i2 === -1) { + tagName = html.slice(1, -1); + } else { + tagName = html.slice(1, i2 + 1); + } + tagName = _.trim(tagName).toLowerCase(); + if (tagName.slice(0, 1) === "/") + tagName = tagName.slice(1); + if (tagName.slice(-1) === "/") + tagName = tagName.slice(0, -1); + return tagName; + } + function isClosing(html) { + return html.slice(0, 2) === "" || currentPos === len - 1) { + rethtml += escapeHtml(html.slice(lastPos, tagStart)); + currentHtml = html.slice(tagStart, currentPos + 1); + currentTagName = getTagName(currentHtml); + rethtml += onTag( + tagStart, + rethtml.length, + currentTagName, + currentHtml, + isClosing(currentHtml) + ); + lastPos = currentPos + 1; + tagStart = false; + continue; + } + if (c === '"' || c === "'") { + var i2 = 1; + var ic = html.charAt(currentPos - i2); + while (ic.trim() === "" || ic === "=") { + if (ic === "=") { + quoteStart = c; + continue chariterator; + } + ic = html.charAt(currentPos - ++i2); } - frame.mcusPerLine = mcusPerLine; - frame.mcusPerColumn = mcusPerColumn; + } + } else { + if (c === quoteStart) { + quoteStart = false; + continue; + } } - - var offset = 0, length = data.length; - var jfif = null; - var adobe = null; - var pixels = null; - var frame, resetInterval; - var quantizationTables = []; - var huffmanTablesAC = [], huffmanTablesDC = []; - var fileMarker = readUint16(); - if (fileMarker != 0xFFD8) { // SOI (Start of Image) - throw "SOI not found"; + } + } + if (lastPos < len) { + rethtml += escapeHtml(html.substr(lastPos)); + } + return rethtml; + } + var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim; + function parseAttr(html, onAttr) { + "use strict"; + var lastPos = 0; + var lastMarkPos = 0; + var retAttrs = []; + var tmpName = false; + var len = html.length; + function addAttr(name, value) { + name = _.trim(name); + name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase(); + if (name.length < 1) + return; + var ret = onAttr(name, value || ""); + if (ret) + retAttrs.push(ret); + } + for (var i2 = 0; i2 < len; i2++) { + var c = html.charAt(i2); + var v, j; + if (tmpName === false && c === "=") { + tmpName = html.slice(lastPos, i2); + lastPos = i2 + 1; + lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i2 + 1); + continue; + } + if (tmpName !== false) { + if (i2 === lastMarkPos) { + j = html.indexOf(c, i2 + 1); + if (j === -1) { + break; + } else { + v = _.trim(html.slice(lastMarkPos + 1, j)); + addAttr(tmpName, v); + tmpName = false; + i2 = j; + lastPos = i2 + 1; + continue; } - - fileMarker = readUint16(); - while (fileMarker != 0xFFD9) { // EOI (End of image) - var i, j, l; - switch (fileMarker) { - case 0xFFE0: // APP0 (Application Specific) - case 0xFFE1: // APP1 - case 0xFFE2: // APP2 - case 0xFFE3: // APP3 - case 0xFFE4: // APP4 - case 0xFFE5: // APP5 - case 0xFFE6: // APP6 - case 0xFFE7: // APP7 - case 0xFFE8: // APP8 - case 0xFFE9: // APP9 - case 0xFFEA: // APP10 - case 0xFFEB: // APP11 - case 0xFFEC: // APP12 - case 0xFFED: // APP13 - case 0xFFEE: // APP14 - case 0xFFEF: // APP15 - case 0xFFFE: // COM (Comment) - var appData = readDataBlock(); - - if (fileMarker === 0xFFE0) { - if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && - appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\x00' - jfif = { - version: {major: appData[5], minor: appData[6]}, - densityUnits: appData[7], - xDensity: (appData[8] << 8) | appData[9], - yDensity: (appData[10] << 8) | appData[11], - thumbWidth: appData[12], - thumbHeight: appData[13], - thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) - }; - } - } - // TODO APP1 - Exif - if (fileMarker === 0xFFEE) { - if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && - appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\x00' - adobe = { - version: appData[6], - flags0: (appData[7] << 8) | appData[8], - flags1: (appData[9] << 8) | appData[10], - transformCode: appData[11] - }; - } - } - break; - - case 0xFFDB: // DQT (Define Quantization Tables) - var quantizationTablesLength = readUint16(); - var quantizationTablesEnd = quantizationTablesLength + offset - 2; - while (offset < quantizationTablesEnd) { - var quantizationTableSpec = data[offset++]; - var tableData = new Int32Array(64); - if ((quantizationTableSpec >> 4) === 0) { // 8 bit values - for (j = 0; j < 64; j++) { - var z = dctZigZag[j]; - tableData[z] = data[offset++]; - } - } else if ((quantizationTableSpec >> 4) === 1) { //16 bit - for (j = 0; j < 64; j++) { - var zz = dctZigZag[j]; - tableData[zz] = readUint16(); - } - } else - throw "DQT: invalid table spec"; - quantizationTables[quantizationTableSpec & 15] = tableData; - } - break; - - case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT) - case 0xFFC1: // SOF1 (Start of Frame, Extended DCT) - case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT) - if (frame) { - throw "Only single frame JPEGs supported"; - } - readUint16(); // skip data length - frame = {}; - frame.extended = (fileMarker === 0xFFC1); - frame.progressive = (fileMarker === 0xFFC2); - frame.precision = data[offset++]; - frame.scanLines = readUint16(); - frame.samplesPerLine = readUint16(); - frame.components = []; - frame.componentIds = {}; - var componentsCount = data[offset++], componentId; - var maxH = 0, maxV = 0; - for (i = 0; i < componentsCount; i++) { - componentId = data[offset]; - var h = data[offset + 1] >> 4; - var v = data[offset + 1] & 15; - if (maxH < h) - maxH = h; - if (maxV < v) - maxV = v; - var qId = data[offset + 2]; - l = frame.components.push({ - h: h, - v: v, - quantizationTable: quantizationTables[qId], - quantizationTableId: qId, - bitConversion: 255 / ((1 << frame.precision) - 1) - }); - frame.componentIds[componentId] = l - 1; - offset += 3; - } - frame.maxH = maxH; - frame.maxV = maxV; - prepareComponents(frame); - break; - - case 0xFFC4: // DHT (Define Huffman Tables) - var huffmanLength = readUint16(); - for (i = 2; i < huffmanLength; ) { - var huffmanTableSpec = data[offset++]; - var codeLengths = new Uint8Array(16); - var codeLengthSum = 0; - for (j = 0; j < 16; j++, offset++) - codeLengthSum += (codeLengths[j] = data[offset]); - var huffmanValues = new Uint8Array(codeLengthSum); - for (j = 0; j < codeLengthSum; j++, offset++) - huffmanValues[j] = data[offset]; - i += 17 + codeLengthSum; - - ((huffmanTableSpec >> 4) === 0 ? - huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = - buildHuffmanTable(codeLengths, huffmanValues); - } - break; - - case 0xFFDD: // DRI (Define Restart Interval) - readUint16(); // skip data length - resetInterval = readUint16(); - break; - - case 0xFFDA: // SOS (Start of Scan) - var scanLength = readUint16(); - var selectorsCount = data[offset++]; - var components = [], component; - for (i = 0; i < selectorsCount; i++) { - var componentIndex = frame.componentIds[data[offset++]]; - component = frame.components[componentIndex]; - var tableSpec = data[offset++]; - component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; - component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; - components.push(component); - } - var spectralStart = data[offset++]; - var spectralEnd = data[offset++]; - var successiveApproximation = data[offset++]; - var processed = decodeScan(data, offset, - frame, components, resetInterval, - spectralStart, spectralEnd, - successiveApproximation >> 4, successiveApproximation & 15); - offset += processed; - break; - default: - if (data[offset - 3] == 0xFF && - data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { - // could be incorrect encoding -- last 0xFF byte of the previous - // block was eaten by the encoder - offset -= 3; - break; - } - throw "unknown JPEG marker " + fileMarker.toString(16); - } - fileMarker = readUint16(); - } - - this.width = frame.samplesPerLine; - this.height = frame.scanLines; - this.jfif = jfif; - this.adobe = adobe; - this.components = []; - switch (frame.components.length) - { - case 1: - this.colorspace = ColorSpace.Grayscale; - break; - case 3: - if (this.adobe) - this.colorspace = ColorSpace.AdobeRGB; - else - this.colorspace = ColorSpace.RGB; - break; - case 4: - this.colorspace = ColorSpace.CYMK; - break; - default: - this.colorspace = ColorSpace.Unknown; - } - for (var i = 0; i < frame.components.length; i++) { - var component = frame.components[i]; - if (!component.quantizationTable && component.quantizationTableId !== null) - component.quantizationTable = quantizationTables[component.quantizationTableId]; - this.components.push({ - output: buildComponentData(frame, component), - scaleX: component.h / frame.maxH, - scaleY: component.v / frame.maxV, - blocksPerLine: component.blocksPerLine, - blocksPerColumn: component.blocksPerColumn, - bitConversion: component.bitConversion - }); - } - }, - getData16: function getData16(width, height) { - if (this.components.length !== 1) - throw 'Unsupported color mode'; - var scaleX = this.width / width, scaleY = this.height / height; - - var component, componentScaleX, componentScaleY; - var x, y, i; - var offset = 0; - var numComponents = this.components.length; - var dataLength = width * height * numComponents; - var data = new Uint16Array(dataLength); - var componentLine; - - // lineData is reused for all components. Assume first component is - // the biggest - var lineData = new Uint16Array((this.components[0].blocksPerLine << 3) * - this.components[0].blocksPerColumn * 8); - - // First construct image data ... - for (i = 0; i < numComponents; i++) { - component = this.components[i]; - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var samplesPerLine = blocksPerLine << 3; - - var j, k, ll = 0; - var lineOffset = 0; - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - var scanLine = blockRow << 3; - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); - var offset = 0, sample = blockCol << 3; - for (j = 0; j < 8; j++) { - var lineOffset = (scanLine + j) * samplesPerLine; - for (k = 0; k < 8; k++) { - lineData[lineOffset + sample + k] = - component.output[bufferOffset + offset++]; - } - } - } - } - - componentScaleX = component.scaleX * scaleX; - componentScaleY = component.scaleY * scaleY; - offset = i; - - var cx, cy; - var index; - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - cy = 0 | (y * componentScaleY); - cx = 0 | (x * componentScaleX); - index = cy * samplesPerLine + cx; - data[offset] = lineData[index]; - offset += numComponents; - } - } - } - return data; - }, - getData: function getData(width, height) { - var scaleX = this.width / width, scaleY = this.height / height; - - var component, componentScaleX, componentScaleY; - var x, y, i; - var offset = 0; - var Y, Cb, Cr, K, C, M, Ye, R, G, B; - var colorTransform; - var numComponents = this.components.length; - var dataLength = width * height * numComponents; - var data = new Uint8Array(dataLength); - var componentLine; - - // lineData is reused for all components. Assume first component is - // the biggest - var lineData = new Uint8Array((this.components[0].blocksPerLine << 3) * - this.components[0].blocksPerColumn * 8); - - // First construct image data ... - for (i = 0; i < numComponents; i++) { - component = this.components[i]; - var blocksPerLine = component.blocksPerLine; - var blocksPerColumn = component.blocksPerColumn; - var samplesPerLine = blocksPerLine << 3; - - var j, k, ll = 0; - var lineOffset = 0; - for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { - var scanLine = blockRow << 3; - for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); - var offset = 0, sample = blockCol << 3; - for (j = 0; j < 8; j++) { - var lineOffset = (scanLine + j) * samplesPerLine; - for (k = 0; k < 8; k++) { - lineData[lineOffset + sample + k] = - component.output[bufferOffset + offset++] * component.bitConversion; - } - } - } - } - - componentScaleX = component.scaleX * scaleX; - componentScaleY = component.scaleY * scaleY; - offset = i; - - var cx, cy; - var index; - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - cy = 0 | (y * componentScaleY); - cx = 0 | (x * componentScaleX); - index = cy * samplesPerLine + cx; - data[offset] = lineData[index]; - offset += numComponents; - } - } + } + } + if (/\s|\n|\t/.test(c)) { + html = html.replace(/\s|\n|\t/g, " "); + if (tmpName === false) { + j = findNextEqual(html, i2); + if (j === -1) { + v = _.trim(html.slice(lastPos, i2)); + addAttr(v); + tmpName = false; + lastPos = i2 + 1; + continue; + } else { + i2 = j - 1; + continue; } - - // ... then transform colors, if necessary - switch (numComponents) { - case 1: - case 2: - break; - // no color conversion for one or two compoenents - - case 3: - // The default transform for three components is true - colorTransform = true; - // The adobe transform marker overrides any previous setting - if (this.adobe && this.adobe.transformCode) - colorTransform = true; - else if (typeof this.colorTransform !== 'undefined') - colorTransform = !!this.colorTransform; - - if (colorTransform) { - for (i = 0; i < dataLength; i += numComponents) { - Y = data[i ]; - Cb = data[i + 1]; - Cr = data[i + 2]; - - R = clampToUint8(Y - 179.456 + 1.402 * Cr); - G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); - B = clampToUint8(Y - 226.816 + 1.772 * Cb); - - data[i ] = R; - data[i + 1] = G; - data[i + 2] = B; - } - } - break; - case 4: - if (!this.adobe) - throw 'Unsupported color mode (4 components)'; - // The default transform for four components is false - colorTransform = false; - // The adobe transform marker overrides any previous setting - if (this.adobe && this.adobe.transformCode) - colorTransform = true; - else if (typeof this.colorTransform !== 'undefined') - colorTransform = !!this.colorTransform; - - if (colorTransform) { - for (i = 0; i < dataLength; i += numComponents) { - Y = data[i]; - Cb = data[i + 1]; - Cr = data[i + 2]; - - C = clampToUint8(434.456 - Y - 1.402 * Cr); - M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr); - Y = clampToUint8(481.816 - Y - 1.772 * Cb); - - data[i ] = C; - data[i + 1] = M; - data[i + 2] = Y; - // K is unchanged - } - } - break; - default: - throw 'Unsupported color mode'; + } else { + j = findBeforeEqual(html, i2 - 1); + if (j === -1) { + v = _.trim(html.slice(lastPos, i2)); + v = stripQuoteWrap(v); + addAttr(tmpName, v); + tmpName = false; + lastPos = i2 + 1; + continue; + } else { + continue; } - return data; - } - }; - - return constructor; -})(); -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = { - JpegImage: JpegImage - }; -} -},{}],3:[function(require,module,exports){ -// Adapted from: https://github.com/chafey/cornerstoneWADOImageLoader/blob/73ed7c4bbbd275bb0f7f9f363ef82575c17bb5f1/src/webWorker/decodeTask/decoders/decodeJPEGLS.js -/*! - The MIT License (MIT) - - Copyright (c) 2014 Chris Hafey (chafey@gmail.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - */ - -"use strict"; - -var CharLS = CharLS || ((typeof require !== 'undefined') ? require('../lib/charLS-DynamicMemory-browser.js') : null); - -var JpegLS = (function () { - var charLS; - - function constructor() { - } - - constructor.prototype = { - decodeJPEGLS: function(pixelData, signed) { - return decodeJPEGLS(pixelData, signed); + } } - }; - - function jpegLSDecode(data, isSigned) { - // prepare input parameters - var dataPtr = charLS._malloc(data.length); - charLS.writeArrayToMemory(data, dataPtr); - - // prepare output parameters - var imagePtrPtr=charLS._malloc(4); - var imageSizePtr=charLS._malloc(4); - var widthPtr=charLS._malloc(4); - var heightPtr=charLS._malloc(4); - var bitsPerSamplePtr=charLS._malloc(4); - var stridePtr=charLS._malloc(4); - var allowedLossyErrorPtr =charLS._malloc(4); - var componentsPtr=charLS._malloc(4); - var interleaveModePtr=charLS._malloc(4); - - // Decode the image - var result = charLS.ccall( - 'jpegls_decode', - 'number', - ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number'], - [dataPtr, data.length, imagePtrPtr, imageSizePtr, widthPtr, heightPtr, bitsPerSamplePtr, stridePtr, componentsPtr, allowedLossyErrorPtr, interleaveModePtr] - ); - - // Extract result values into object - var image = { - result : result, - width : charLS.getValue(widthPtr,'i32'), - height : charLS.getValue(heightPtr,'i32'), - bitsPerSample : charLS.getValue(bitsPerSamplePtr,'i32'), - stride : charLS.getValue(stridePtr,'i32'), - components : charLS.getValue(componentsPtr, 'i32'), - allowedLossyError : charLS.getValue(allowedLossyErrorPtr, 'i32'), - interleaveMode: charLS.getValue(interleaveModePtr, 'i32'), - pixelData: undefined - }; - - // Copy image from emscripten heap into appropriate array buffer type - var imagePtr = charLS.getValue(imagePtrPtr, '*'); - if(image.bitsPerSample <= 8) { - image.pixelData = new Uint8Array(image.width * image.height * image.components); - image.pixelData.set(new Uint8Array(charLS.HEAP8.buffer, imagePtr, image.pixelData.length)); + } + if (lastPos < html.length) { + if (tmpName === false) { + addAttr(html.slice(lastPos)); } else { - // I have seen 16 bit signed images, but I don't know if 16 bit unsigned is valid, hoping to get - // answer here: - // https://github.com/team-charls/charls/issues/14 - if(isSigned) { - image.pixelData = new Int16Array(image.width * image.height * image.components); - image.pixelData.set(new Int16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); - } else { - image.pixelData = new Uint16Array(image.width * image.height * image.components); - image.pixelData.set(new Uint16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); - } + addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos)))); } - - // free memory and return image object - charLS._free(dataPtr); - charLS._free(imagePtr); - charLS._free(imagePtrPtr); - charLS._free(imageSizePtr); - charLS._free(widthPtr); - charLS._free(heightPtr); - charLS._free(bitsPerSamplePtr); - charLS._free(stridePtr); - charLS._free(componentsPtr); - charLS._free(interleaveModePtr); - - return image; + } + return _.trim(retAttrs.join(" ")); } + function findNextEqual(str, i2) { + for (; i2 < str.length; i2++) { + var c = str[i2]; + if (c === " ") + continue; + if (c === "=") + return i2; + return -1; + } + } + function findNextQuotationMark(str, i2) { + for (; i2 < str.length; i2++) { + var c = str[i2]; + if (c === " ") + continue; + if (c === "'" || c === '"') + return i2; + return -1; + } + } + function findBeforeEqual(str, i2) { + for (; i2 > 0; i2--) { + var c = str[i2]; + if (c === " ") + continue; + if (c === "=") + return i2; + return -1; + } + } + function isQuoteWrapString(text) { + if (text[0] === '"' && text[text.length - 1] === '"' || text[0] === "'" && text[text.length - 1] === "'") { + return true; + } else { + return false; + } + } + function stripQuoteWrap(text) { + if (isQuoteWrapString(text)) { + return text.substr(1, text.length - 2); + } else { + return text; + } + } + exports2.parseTag = parseTag; + exports2.parseAttr = parseAttr; + } +}); - function initializeJPEGLS() { - // check to make sure codec is loaded - if(typeof CharLS === 'undefined') { - throw 'No JPEG-LS decoder loaded'; - } - - // Try to initialize CharLS - // CharLS https://github.com/chafey/charls - if(!charLS) { - charLS = CharLS(); - if(!charLS || !charLS._jpegls_decode) { - throw 'JPEG-LS failed to initialize'; - } +// node_modules/xss/lib/xss.js +var require_xss = __commonJS({ + "node_modules/xss/lib/xss.js"(exports2, module2) { + var FilterCSS = require_lib().FilterCSS; + var DEFAULT = require_default2(); + var parser = require_parser2(); + var parseTag = parser.parseTag; + var parseAttr = parser.parseAttr; + var _ = require_util2(); + function isNull(obj) { + return obj === void 0 || obj === null; + } + function getAttrs(html) { + var i2 = _.spaceIndex(html); + if (i2 === -1) { + return { + html: "", + closing: html[html.length - 2] === "/" + }; + } + html = _.trim(html.slice(i2 + 1, -1)); + var isClosing = html[html.length - 1] === "/"; + if (isClosing) + html = _.trim(html.slice(0, -1)); + return { + html, + closing: isClosing + }; + } + function shallowCopyObject(obj) { + var ret = {}; + for (var i2 in obj) { + ret[i2] = obj[i2]; + } + return ret; + } + function keysToLowerCase(obj) { + var ret = {}; + for (var i2 in obj) { + if (Array.isArray(obj[i2])) { + ret[i2.toLowerCase()] = obj[i2].map(function(item) { + return item.toLowerCase(); + }); + } else { + ret[i2.toLowerCase()] = obj[i2]; } + } + return ret; } - - function decodeJPEGLS(pixelData, signed) { - initializeJPEGLS(); - - var image = jpegLSDecode(pixelData, signed); - // console.log(image); - - // throw error if not success or too much data - if(image.result !== 0 && image.result !== 6) { - throw 'JPEG-LS decoder failed to decode frame (error code ' + image.result + ')'; + function FilterXSS(options) { + options = shallowCopyObject(options || {}); + if (options.stripIgnoreTag) { + if (options.onIgnoreTag) { + console.error( + 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time' + ); } - - var imageFrame = {}; - imageFrame.columns = image.width; - imageFrame.rows = image.height; - imageFrame.pixelData = image.pixelData; - - return imageFrame; + options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll; + } + if (options.whiteList || options.allowList) { + options.whiteList = keysToLowerCase(options.whiteList || options.allowList); + } else { + options.whiteList = DEFAULT.whiteList; + } + options.onTag = options.onTag || DEFAULT.onTag; + options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr; + options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag; + options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr; + options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; + options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml; + this.options = options; + if (options.css === false) { + this.cssFilter = false; + } else { + options.css = options.css || {}; + this.cssFilter = new FilterCSS(options.css); + } } - - return constructor; -}()); -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = JpegLS; -} -},{"../lib/charLS-DynamicMemory-browser.js":1}],4:[function(require,module,exports){ -/*! image-JPEG2000 - v0.3.1 - 2015-08-26 | https://github.com/OHIF/image-JPEG2000 */ -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* globals ArithmeticDecoder, globalScope, log2, readUint16, readUint32, - info, warn */ - -'use strict'; - -var JpxImage = (function JpxImageClosure() { - // Table E.1 - var SubbandsGainLog2 = { - 'LL': 0, - 'LH': 1, - 'HL': 1, - 'HH': 2 - }; - function JpxImage() { - this.failOnCorruptedImage = false; - } - JpxImage.prototype = { - parse: function JpxImage_parse(data) { - - var head = readUint16(data, 0); - // No box header, immediate start of codestream (SOC) - if (head === 0xFF4F) { - this.parseCodestream(data, 0, data.length); - return; + FilterXSS.prototype.process = function(html) { + html = html || ""; + html = html.toString(); + if (!html) + return ""; + var me = this; + var options = me.options; + var whiteList = options.whiteList; + var onTag = options.onTag; + var onIgnoreTag = options.onIgnoreTag; + var onTagAttr = options.onTagAttr; + var onIgnoreTagAttr = options.onIgnoreTagAttr; + var safeAttrValue = options.safeAttrValue; + var escapeHtml = options.escapeHtml; + var cssFilter = me.cssFilter; + if (options.stripBlankChar) { + html = DEFAULT.stripBlankChar(html); } - - var position = 0, length = data.length; - while (position < length) { - var headerSize = 8; - var lbox = readUint32(data, position); - var tbox = readUint32(data, position + 4); - position += headerSize; - if (lbox === 1) { - // XLBox: read UInt64 according to spec. - // JavaScript's int precision of 53 bit should be sufficient here. - lbox = readUint32(data, position) * 4294967296 + - readUint32(data, position + 4); - position += 8; - headerSize += 8; - } - if (lbox === 0) { - lbox = length - position + headerSize; - } - if (lbox < headerSize) { - throw new Error('JPX Error: Invalid box field size'); - } - var dataLength = lbox - headerSize; - var jumpDataLength = true; - switch (tbox) { - case 0x6A703268: // 'jp2h' - jumpDataLength = false; // parsing child boxes - break; - case 0x636F6C72: // 'colr' - // Colorspaces are not used, the CS from the PDF is used. - var method = data[position]; - var precedence = data[position + 1]; - var approximation = data[position + 2]; - if (method === 1) { - // enumerated colorspace - var colorspace = readUint32(data, position + 3); - switch (colorspace) { - case 16: // this indicates a sRGB colorspace - case 17: // this indicates a grayscale colorspace - case 18: // this indicates a YUV colorspace - break; - default: - warn('Unknown colorspace ' + colorspace); - break; - } - } else if (method === 2) { - info('ICC profile not supported'); - } - break; - case 0x6A703263: // 'jp2c' - this.parseCodestream(data, position, position + dataLength); - break; - case 0x6A502020: // 'jP\024\024' - if (0x0d0a870a !== readUint32(data, position)) { - warn('Invalid JP2 signature'); + if (!options.allowCommentTag) { + html = DEFAULT.stripCommentTag(html); + } + var stripIgnoreTagBody = false; + if (options.stripIgnoreTagBody) { + stripIgnoreTagBody = DEFAULT.StripTagBody( + options.stripIgnoreTagBody, + onIgnoreTag + ); + onIgnoreTag = stripIgnoreTagBody.onIgnoreTag; + } + var retHtml = parseTag( + html, + function(sourcePosition, position, tag, html2, isClosing) { + var info = { + sourcePosition, + position, + isClosing, + isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag) + }; + var ret = onTag(tag, html2, info); + if (!isNull(ret)) + return ret; + if (info.isWhite) { + if (info.isClosing) { + return ""; } - break; - // The following header types are valid but currently not used: - case 0x6A501A1A: // 'jP\032\032' - case 0x66747970: // 'ftyp' - case 0x72726571: // 'rreq' - case 0x72657320: // 'res ' - case 0x69686472: // 'ihdr' - break; - default: - var headerType = String.fromCharCode((tbox >> 24) & 0xFF, - (tbox >> 16) & 0xFF, - (tbox >> 8) & 0xFF, - tbox & 0xFF); - warn('Unsupported header type ' + tbox + ' (' + headerType + ')'); - break; - } - if (jumpDataLength) { - position += dataLength; - } - } - }, - parseImageProperties: function JpxImage_parseImageProperties(stream) { - var newByte = stream.getByte(); - while (newByte >= 0) { - var oldByte = newByte; - newByte = stream.getByte(); - var code = (oldByte << 8) | newByte; - // Image and tile size (SIZ) - if (code === 0xFF51) { - stream.skip(4); - var Xsiz = stream.getInt32() >>> 0; // Byte 4 - var Ysiz = stream.getInt32() >>> 0; // Byte 8 - var XOsiz = stream.getInt32() >>> 0; // Byte 12 - var YOsiz = stream.getInt32() >>> 0; // Byte 16 - stream.skip(16); - var Csiz = stream.getUint16(); // Byte 36 - this.width = Xsiz - XOsiz; - this.height = Ysiz - YOsiz; - this.componentsCount = Csiz; - // Results are always returned as Uint8Arrays - this.bitsPerComponent = 8; - return; - } - } - throw new Error('JPX Error: No size marker found in JPX stream'); - }, - parseCodestream: function JpxImage_parseCodestream(data, start, end) { - var context = {}; - try { - var doNotRecover = false; - var position = start; - while (position + 1 < end) { - var code = readUint16(data, position); - position += 2; - - var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; - switch (code) { - case 0xFF4F: // Start of codestream (SOC) - context.mainHeader = true; - break; - case 0xFFD9: // End of codestream (EOC) - break; - case 0xFF51: // Image and tile size (SIZ) - length = readUint16(data, position); - var siz = {}; - siz.Xsiz = readUint32(data, position + 4); - siz.Ysiz = readUint32(data, position + 8); - siz.XOsiz = readUint32(data, position + 12); - siz.YOsiz = readUint32(data, position + 16); - siz.XTsiz = readUint32(data, position + 20); - siz.YTsiz = readUint32(data, position + 24); - siz.XTOsiz = readUint32(data, position + 28); - siz.YTOsiz = readUint32(data, position + 32); - var componentsCount = readUint16(data, position + 36); - siz.Csiz = componentsCount; - var components = []; - j = position + 38; - for (var i = 0; i < componentsCount; i++) { - var component = { - precision: (data[j] & 0x7F) + 1, - isSigned: !!(data[j] & 0x80), - XRsiz: data[j + 1], - YRsiz: data[j + 1] - }; - calculateComponentDimensions(component, siz); - components.push(component); - } - context.SIZ = siz; - context.components = components; - calculateTileGrids(context, components); - context.QCC = []; - context.COC = []; - break; - case 0xFF5C: // Quantization default (QCD) - length = readUint16(data, position); - var qcd = {}; - j = position + 2; - sqcd = data[j++]; - switch (sqcd & 0x1F) { - case 0: - spqcdSize = 8; - scalarExpounded = true; - break; - case 1: - spqcdSize = 16; - scalarExpounded = false; - break; - case 2: - spqcdSize = 16; - scalarExpounded = true; - break; - default: - throw new Error('JPX Error: Invalid SQcd value ' + sqcd); - } - qcd.noQuantization = (spqcdSize === 8); - qcd.scalarExpounded = scalarExpounded; - qcd.guardBits = sqcd >> 5; - spqcds = []; - while (j < length + position) { - var spqcd = {}; - if (spqcdSize === 8) { - spqcd.epsilon = data[j++] >> 3; - spqcd.mu = 0; + var attrs = getAttrs(html2); + var whiteAttrList = whiteList[tag]; + var attrsHtml = parseAttr(attrs.html, function(name, value) { + var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1; + var ret2 = onTagAttr(tag, name, value, isWhiteAttr); + if (!isNull(ret2)) + return ret2; + if (isWhiteAttr) { + value = safeAttrValue(tag, name, value, cssFilter); + if (value) { + return name + '="' + value + '"'; } else { - spqcd.epsilon = data[j] >> 3; - spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1]; - j += 2; + return name; } - spqcds.push(spqcd); - } - qcd.SPqcds = spqcds; - if (context.mainHeader) { - context.QCD = qcd; - } else { - context.currentTile.QCD = qcd; - context.currentTile.QCC = []; - } - break; - case 0xFF5D: // Quantization component (QCC) - length = readUint16(data, position); - var qcc = {}; - j = position + 2; - var cqcc; - if (context.SIZ.Csiz < 257) { - cqcc = data[j++]; } else { - cqcc = readUint16(data, j); - j += 2; + ret2 = onIgnoreTagAttr(tag, name, value, isWhiteAttr); + if (!isNull(ret2)) + return ret2; + return; } - sqcd = data[j++]; - switch (sqcd & 0x1F) { - case 0: - spqcdSize = 8; - scalarExpounded = true; - break; - case 1: - spqcdSize = 16; - scalarExpounded = false; - break; - case 2: - spqcdSize = 16; - scalarExpounded = true; - break; - default: - throw new Error('JPX Error: Invalid SQcd value ' + sqcd); - } - qcc.noQuantization = (spqcdSize === 8); - qcc.scalarExpounded = scalarExpounded; - qcc.guardBits = sqcd >> 5; - spqcds = []; - while (j < (length + position)) { - spqcd = {}; - if (spqcdSize === 8) { - spqcd.epsilon = data[j++] >> 3; - spqcd.mu = 0; - } else { - spqcd.epsilon = data[j] >> 3; - spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1]; - j += 2; - } - spqcds.push(spqcd); - } - qcc.SPqcds = spqcds; - if (context.mainHeader) { - context.QCC[cqcc] = qcc; - } else { - context.currentTile.QCC[cqcc] = qcc; - } - break; - case 0xFF52: // Coding style default (COD) - length = readUint16(data, position); - var cod = {}; - j = position + 2; - var scod = data[j++]; - cod.entropyCoderWithCustomPrecincts = !!(scod & 1); - cod.sopMarkerUsed = !!(scod & 2); - cod.ephMarkerUsed = !!(scod & 4); - cod.progressionOrder = data[j++]; - cod.layersCount = readUint16(data, j); - j += 2; - cod.multipleComponentTransform = data[j++]; - - cod.decompositionLevelsCount = data[j++]; - cod.xcb = (data[j++] & 0xF) + 2; - cod.ycb = (data[j++] & 0xF) + 2; - var blockStyle = data[j++]; - cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); - cod.resetContextProbabilities = !!(blockStyle & 2); - cod.terminationOnEachCodingPass = !!(blockStyle & 4); - cod.verticalyStripe = !!(blockStyle & 8); - cod.predictableTermination = !!(blockStyle & 16); - cod.segmentationSymbolUsed = !!(blockStyle & 32); - cod.reversibleTransformation = data[j++]; - if (cod.entropyCoderWithCustomPrecincts) { - var precinctsSizes = []; - while (j < length + position) { - var precinctsSize = data[j++]; - precinctsSizes.push({ - PPx: precinctsSize & 0xF, - PPy: precinctsSize >> 4 - }); - } - cod.precinctsSizes = precinctsSizes; - } - var unsupported = []; - if (cod.selectiveArithmeticCodingBypass) { - unsupported.push('selectiveArithmeticCodingBypass'); - } - if (cod.resetContextProbabilities) { - unsupported.push('resetContextProbabilities'); - } - if (cod.terminationOnEachCodingPass) { - unsupported.push('terminationOnEachCodingPass'); - } - if (cod.verticalyStripe) { - unsupported.push('verticalyStripe'); - } - if (cod.predictableTermination) { - unsupported.push('predictableTermination'); - } - if (unsupported.length > 0) { - doNotRecover = true; - throw new Error('JPX Error: Unsupported COD options (' + - unsupported.join(', ') + ')'); - } - if (context.mainHeader) { - context.COD = cod; - } else { - context.currentTile.COD = cod; - context.currentTile.COC = []; - } - break; - case 0xFF90: // Start of tile-part (SOT) - length = readUint16(data, position); - tile = {}; - tile.index = readUint16(data, position + 2); - tile.length = readUint32(data, position + 4); - tile.dataEnd = tile.length + position - 2; - tile.partIndex = data[position + 8]; - tile.partsCount = data[position + 9]; - - context.mainHeader = false; - if (tile.partIndex === 0) { - // reset component specific settings - tile.COD = context.COD; - tile.COC = context.COC.slice(0); // clone of the global COC - tile.QCD = context.QCD; - tile.QCC = context.QCC.slice(0); // clone of the global COC - } - context.currentTile = tile; - break; - case 0xFF93: // Start of data (SOD) - tile = context.currentTile; - if (tile.partIndex === 0) { - initializeTile(context, tile.index); - buildPackets(context); - } - - // moving to the end of the data - length = tile.dataEnd - position; - parseTilePackets(context, data, position, length); - break; - case 0xFF55: // Tile-part lengths, main header (TLM) - case 0xFF57: // Packet length, main header (PLM) - case 0xFF58: // Packet length, tile-part header (PLT) - case 0xFF64: // Comment (COM) - length = readUint16(data, position); - // skipping content - break; - case 0xFF53: // Coding style component (COC) - throw new Error('JPX Error: Codestream code 0xFF53 (COC) is ' + - 'not implemented'); - default: - throw new Error('JPX Error: Unknown codestream code: ' + - code.toString(16)); + }); + html2 = "<" + tag; + if (attrsHtml) + html2 += " " + attrsHtml; + if (attrs.closing) + html2 += " /"; + html2 += ">"; + return html2; + } else { + ret = onIgnoreTag(tag, html2, info); + if (!isNull(ret)) + return ret; + return escapeHtml(html2); } - position += length; - } - } catch (e) { - if (doNotRecover || this.failOnCorruptedImage) { - throw e; - } else { - warn('Trying to recover from ' + e.message); - } + }, + escapeHtml + ); + if (stripIgnoreTagBody) { + retHtml = stripIgnoreTagBody.remove(retHtml); } - this.tiles = transformComponents(context); - this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; - this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; - this.componentsCount = context.SIZ.Csiz; - } - }; - function calculateComponentDimensions(component, siz) { - // Section B.2 Component mapping - component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); - component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); - component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); - component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); - component.width = component.x1 - component.x0; - component.height = component.y1 - component.y0; + return retHtml; + }; + module2.exports = FilterXSS; } - function calculateTileGrids(context, components) { - var siz = context.SIZ; - // Section B.3 Division into tile and tile-components - var tile, tiles = []; - var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); - var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); - for (var q = 0; q < numYtiles; q++) { - for (var p = 0; p < numXtiles; p++) { - tile = {}; - tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); - tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); - tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); - tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); - tile.width = tile.tx1 - tile.tx0; - tile.height = tile.ty1 - tile.ty0; - tile.components = []; - tiles.push(tile); - } - } - context.tiles = tiles; +}); - var componentsCount = siz.Csiz; - for (var i = 0, ii = componentsCount; i < ii; i++) { - var component = components[i]; - for (var j = 0, jj = tiles.length; j < jj; j++) { - var tileComponent = {}; - tile = tiles[j]; - tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); - tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); - tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); - tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); - tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; - tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; - tile.components[i] = tileComponent; +// node_modules/xss/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/xss/lib/index.js"(exports2, module2) { + var DEFAULT = require_default2(); + var parser = require_parser2(); + var FilterXSS = require_xss(); + function filterXSS(html, options) { + var xss = new FilterXSS(options); + return xss.process(html); + } + exports2 = module2.exports = filterXSS; + exports2.filterXSS = filterXSS; + exports2.FilterXSS = FilterXSS; + (function() { + for (var i2 in DEFAULT) { + exports2[i2] = DEFAULT[i2]; } + for (var j in parser) { + exports2[j] = parser[j]; + } + })(); + if (typeof window !== "undefined") { + window.filterXSS = module2.exports; } - } - function getBlocksDimensions(context, component, r) { - var codOrCoc = component.codingStyleParameters; - var result = {}; - if (!codOrCoc.entropyCoderWithCustomPrecincts) { - result.PPx = 15; - result.PPy = 15; - } else { - result.PPx = codOrCoc.precinctsSizes[r].PPx; - result.PPy = codOrCoc.precinctsSizes[r].PPy; + function isWorkerEnv() { + return typeof self !== "undefined" && typeof DedicatedWorkerGlobalScope !== "undefined" && self instanceof DedicatedWorkerGlobalScope; + } + if (isWorkerEnv()) { + self.filterXSS = module2.exports; } - // calculate codeblock size as described in section B.7 - result.xcb_ = (r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : - Math.min(codOrCoc.xcb, result.PPx)); - result.ycb_ = (r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : - Math.min(codOrCoc.ycb, result.PPy)); - return result; } - function buildPrecincts(context, resolution, dimensions) { - // Section B.6 Division resolution to precincts - var precinctWidth = 1 << dimensions.PPx; - var precinctHeight = 1 << dimensions.PPy; - // Jasper introduces codeblock groups for mapping each subband codeblocks - // to precincts. Precinct partition divides a resolution according to width - // and height parameters. The subband that belongs to the resolution level - // has a different size than the level, unless it is the zero resolution. - - // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding: - // The precinct partitioning for a particular subband is derived from a - // partitioning of its parent LL band (i.e., the LL band at the next higher - // resolution level)... The LL band associated with each resolution level is - // divided into precincts... Each of the resulting precinct regions is then - // mapped into its child subbands (if any) at the next lower resolution - // level. This is accomplished by using the coordinate transformation - // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the - // coordinates of a point in the LL band and child subband, respectively. - var isZeroRes = resolution.resLevel === 0; - var precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1)); - var precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1)); - var numprecinctswide = (resolution.trx1 > resolution.trx0 ? - Math.ceil(resolution.trx1 / precinctWidth) - - Math.floor(resolution.trx0 / precinctWidth) : 0); - var numprecinctshigh = (resolution.try1 > resolution.try0 ? - Math.ceil(resolution.try1 / precinctHeight) - - Math.floor(resolution.try0 / precinctHeight) : 0); - var numprecincts = numprecinctswide * numprecinctshigh; +}); - resolution.precinctParameters = { - precinctWidth: precinctWidth, - precinctHeight: precinctHeight, - numprecinctswide: numprecinctswide, - numprecinctshigh: numprecinctshigh, - numprecincts: numprecincts, - precinctWidthInSubband: precinctWidthInSubband, - precinctHeightInSubband: precinctHeightInSubband +// src/siemens.js +var require_siemens = __commonJS({ + "src/siemens.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Siemens = daikon2.Siemens || function(buffer2) { + this.output = ""; + this.data = new DataView(buffer2, 0); }; - } - function buildCodeblocks(context, subband, dimensions) { - // Section B.7 Division sub-band into code-blocks - var xcb_ = dimensions.xcb_; - var ycb_ = dimensions.ycb_; - var codeblockWidth = 1 << xcb_; - var codeblockHeight = 1 << ycb_; - var cbx0 = subband.tbx0 >> xcb_; - var cby0 = subband.tby0 >> ycb_; - var cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_; - var cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_; - var precinctParameters = subband.resolution.precinctParameters; - var codeblocks = []; - var precincts = []; - var i, j, codeblock, precinctNumber; - for (j = cby0; j < cby1; j++) { - for (i = cbx0; i < cbx1; i++) { - codeblock = { - cbx: i, - cby: j, - tbx0: codeblockWidth * i, - tby0: codeblockHeight * j, - tbx1: codeblockWidth * (i + 1), - tby1: codeblockHeight * (j + 1) - }; - - codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); - codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); - codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); - codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); - - // Calculate precinct number for this codeblock, codeblock position - // should be relative to its subband, use actual dimension and position - // See comment about codeblock group width and height - var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / - precinctParameters.precinctWidthInSubband); - var pj = Math.floor((codeblock.tby0_ - subband.tby0) / - precinctParameters.precinctHeightInSubband); - precinctNumber = pi + (pj * precinctParameters.numprecinctswide); - - codeblock.precinctNumber = precinctNumber; - codeblock.subbandType = subband.type; - codeblock.Lblock = 3; - - if (codeblock.tbx1_ <= codeblock.tbx0_ || - codeblock.tby1_ <= codeblock.tby0_) { - continue; - } - codeblocks.push(codeblock); - // building precinct for the sub-band - var precinct = precincts[precinctNumber]; - if (precinct !== undefined) { - if (i < precinct.cbxMin) { - precinct.cbxMin = i; - } else if (i > precinct.cbxMax) { - precinct.cbxMax = i; + daikon2.Siemens.CSA2_MAGIC_NUMBER = [83, 86, 49, 48]; + daikon2.Siemens.NAME_LENGTH = 64; + daikon2.Siemens.ELEMENT_CSA1 = 4112; + daikon2.Siemens.ELEMENT_CSA2 = 4128; + daikon2.Siemens.GROUP_CSA = 41; + daikon2.Siemens.prototype.readHeader = function() { + var ctr, match; + try { + if (this.data.byteLength > daikon2.Siemens.CSA2_MAGIC_NUMBER.length) { + match = true; + for (ctr = 0; ctr < daikon2.Siemens.CSA2_MAGIC_NUMBER.length; ctr += 1) { + match &= this.data.getUint8(ctr) === daikon2.Siemens.CSA2_MAGIC_NUMBER[ctr]; } - if (j < precinct.cbyMin) { - precinct.cbxMin = j; - } else if (j > precinct.cbyMax) { - precinct.cbyMax = j; + if (match) { + this.readHeaderAtOffset(daikon2.Siemens.CSA2_MAGIC_NUMBER.length + 4); + } else { + this.readHeaderAtOffset(0); } - } else { - precincts[precinctNumber] = precinct = { - cbxMin: i, - cbyMin: j, - cbxMax: i, - cbyMax: j - }; } - codeblock.precinct = precinct; + } catch (error) { + console.log(error); } - } - subband.codeblockParameters = { - codeblockWidth: xcb_, - codeblockHeight: ycb_, - numcodeblockwide: cbx1 - cbx0 + 1, - numcodeblockhigh: cby1 - cby0 + 1 - }; - subband.codeblocks = codeblocks; - subband.precincts = precincts; - } - function createPacket(resolution, precinctNumber, layerNumber) { - var precinctCodeblocks = []; - // Section B.10.8 Order of info in packet - var subbands = resolution.subbands; - // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence - for (var i = 0, ii = subbands.length; i < ii; i++) { - var subband = subbands[i]; - var codeblocks = subband.codeblocks; - for (var j = 0, jj = codeblocks.length; j < jj; j++) { - var codeblock = codeblocks[j]; - if (codeblock.precinctNumber !== precinctNumber) { - continue; + return this.output; + }; + daikon2.Siemens.prototype.readHeaderAtOffset = function(offset) { + var numTags, ctr; + this.output += "\n"; + numTags = daikon2.Utils.swap32(this.data.getUint32(offset)); + if (numTags < 1 || numTags > 128) { + return this.output; + } + offset += 4; + offset += 4; + for (ctr = 0; ctr < numTags; ctr += 1) { + offset = this.readTag(offset); + if (offset === -1) { + break; } - precinctCodeblocks.push(codeblock); } - } - return { - layerNumber: layerNumber, - codeblocks: precinctCodeblocks + return this.output; }; - } - function LayerResolutionComponentPositionIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var maxDecompositionLevelsCount = 0; - for (var q = 0; q < componentsCount; q++) { - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - tile.components[q].codingStyleParameters.decompositionLevelsCount); - } - - var l = 0, r = 0, i = 0, k = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.1 Layer-resolution-component-position - for (; l < layersCount; l++) { - for (; r <= maxDecompositionLevelsCount; r++) { - for (; i < componentsCount; i++) { - var component = tile.components[i]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - for (; k < numprecincts;) { - var packet = createPacket(resolution, k, l); - k++; - return packet; - } - k = 0; - } - i = 0; + daikon2.Siemens.prototype.readTag = function(offset) { + var name, ctr, numItems; + name = this.readString(offset, daikon2.Siemens.NAME_LENGTH); + offset += daikon2.Siemens.NAME_LENGTH; + offset += 4; + offset += 4; + offset += 4; + numItems = daikon2.Utils.swap32(this.data.getUint32(offset)); + offset += 4; + offset += 4; + this.output += " " + name + "="; + for (ctr = 0; ctr < numItems; ctr += 1) { + offset = this.readItem(offset); + if (offset === -1) { + break; + } else if (offset % 4 !== 0) { + offset += 4 - offset % 4; } - r = 0; } + this.output += "\n"; + return offset; }; - } - function ResolutionLayerComponentPositionIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var maxDecompositionLevelsCount = 0; - for (var q = 0; q < componentsCount; q++) { - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - tile.components[q].codingStyleParameters.decompositionLevelsCount); - } - - var r = 0, l = 0, i = 0, k = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.2 Resolution-layer-component-position - for (; r <= maxDecompositionLevelsCount; r++) { - for (; l < layersCount; l++) { - for (; i < componentsCount; i++) { - var component = tile.components[i]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - for (; k < numprecincts;) { - var packet = createPacket(resolution, k, l); - k++; - return packet; - } - k = 0; - } - i = 0; + daikon2.Siemens.prototype.readString = function(offset, length) { + var char2, ctr, str = ""; + for (ctr = 0; ctr < length; ctr += 1) { + char2 = this.data.getUint8(offset + ctr); + if (char2 === 0) { + break; } - l = 0; + str += String.fromCharCode(char2); } + return str; }; - } - function ResolutionPositionComponentLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var l, r, c, p; - var maxDecompositionLevelsCount = 0; - for (c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, - component.codingStyleParameters.decompositionLevelsCount); - } - var maxNumPrecinctsInLevel = new Int32Array( - maxDecompositionLevelsCount + 1); - for (r = 0; r <= maxDecompositionLevelsCount; ++r) { - var maxNumPrecincts = 0; - for (c = 0; c < componentsCount; ++c) { - var resolutions = tile.components[c].resolutions; - if (r < resolutions.length) { - maxNumPrecincts = Math.max(maxNumPrecincts, - resolutions[r].precinctParameters.numprecincts); - } - } - maxNumPrecinctsInLevel[r] = maxNumPrecincts; - } - l = 0; - r = 0; - c = 0; - p = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.3 Resolution-position-component-layer - for (; r <= maxDecompositionLevelsCount; r++) { - for (; p < maxNumPrecinctsInLevel[r]; p++) { - for (; c < componentsCount; c++) { - var component = tile.components[c]; - if (r > component.codingStyleParameters.decompositionLevelsCount) { - continue; - } - var resolution = component.resolutions[r]; - var numprecincts = resolution.precinctParameters.numprecincts; - if (p >= numprecincts) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, p, l); - l++; - return packet; - } - l = 0; - } - c = 0; - } - p = 0; + daikon2.Siemens.prototype.readItem = function(offset) { + var itemLength; + itemLength = daikon2.Utils.swap32(this.data.getUint32(offset)); + if (offset + itemLength > this.data.buffer.length) { + return -1; + } + offset += 16; + if (itemLength > 0) { + this.output += this.readString(offset, itemLength) + " "; } + return offset + itemLength; }; + daikon2.Siemens.prototype.canRead = function(group, element) { + return group === daikon2.Siemens.GROUP_CSA && (element === daikon2.Siemens.ELEMENT_CSA1 || element === daikon2.Siemens.ELEMENT_CSA2); + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Siemens; + } } - function PositionComponentResolutionLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var precinctsSizes = getPrecinctSizesInImageScale(tile); - var precinctsIterationSizes = precinctsSizes; - var l = 0, r = 0, c = 0, px = 0, py = 0; +}); - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.4 Position-component-resolution-layer - for (; py < precinctsIterationSizes.maxNumHigh; py++) { - for (; px < precinctsIterationSizes.maxNumWide; px++) { - for (; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - for (; r <= decompositionLevelsCount; r++) { - var resolution = component.resolutions[r]; - var sizeInImageScale = - precinctsSizes.components[c].resolutions[r]; - var k = getPrecinctIndexIfExist( - px, - py, - sizeInImageScale, - precinctsIterationSizes, - resolution); - if (k === null) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, k, l); - l++; - return packet; - } - l = 0; - } - r = 0; - } - c = 0; +// src/tag.js +var require_tag = __commonJS({ + "src/tag.js"(exports2, module2) { + "use strict"; + var xss = require_lib2(); + var daikon2 = daikon2 || {}; + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Dictionary = daikon2.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); + daikon2.Siemens = daikon2.Siemens || (typeof require !== "undefined" ? require_siemens() : null); + daikon2.Tag = daikon2.Tag || function(group, element, vr, value, offsetStart, offsetValue, offsetEnd, littleEndian, charset) { + this.group = group; + this.element = element; + this.vr = vr; + this.offsetStart = offsetStart; + this.offsetValue = offsetValue; + this.offsetEnd = offsetEnd; + this.sublist = false; + this.preformatted = false; + this.id = daikon2.Tag.createId(group, element); + if (value instanceof Array) { + this.value = value; + this.sublist = true; + } else if (value !== null) { + var dv = new DataView(value); + this.value = daikon2.Tag.convertValue(vr, dv, littleEndian, charset); + if (this.value === dv && this.isPrivateData()) { + this.value = daikon2.Tag.convertPrivateValue(group, element, dv); + this.preformatted = this.value !== dv; } - px = 0; + } else { + this.value = null; } }; - } - function ComponentPositionResolutionLayerIterator(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var layersCount = tile.codingStyleDefaultParameters.layersCount; - var componentsCount = siz.Csiz; - var precinctsSizes = getPrecinctSizesInImageScale(tile); - var l = 0, r = 0, c = 0, px = 0, py = 0; - - this.nextPacket = function JpxImage_nextPacket() { - // Section B.12.1.5 Component-position-resolution-layer - for (; c < componentsCount; ++c) { - var component = tile.components[c]; - var precinctsIterationSizes = precinctsSizes.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - for (; py < precinctsIterationSizes.maxNumHigh; py++) { - for (; px < precinctsIterationSizes.maxNumWide; px++) { - for (; r <= decompositionLevelsCount; r++) { - var resolution = component.resolutions[r]; - var sizeInImageScale = precinctsIterationSizes.resolutions[r]; - var k = getPrecinctIndexIfExist( - px, - py, - sizeInImageScale, - precinctsIterationSizes, - resolution); - if (k === null) { - continue; - } - for (; l < layersCount;) { - var packet = createPacket(resolution, k, l); - l++; - return packet; - } - l = 0; - } - r = 0; - } - px = 0; - } - py = 0; + daikon2.Tag.PRIVATE_DATA_READERS = [daikon2.Siemens]; + daikon2.Tag.VR_AE_MAX_LENGTH = 16; + daikon2.Tag.VR_AS_MAX_LENGTH = 4; + daikon2.Tag.VR_AT_MAX_LENGTH = 4; + daikon2.Tag.VR_CS_MAX_LENGTH = 16; + daikon2.Tag.VR_DA_MAX_LENGTH = 8; + daikon2.Tag.VR_DS_MAX_LENGTH = 16; + daikon2.Tag.VR_DT_MAX_LENGTH = 26; + daikon2.Tag.VR_FL_MAX_LENGTH = 4; + daikon2.Tag.VR_FD_MAX_LENGTH = 8; + daikon2.Tag.VR_IS_MAX_LENGTH = 12; + daikon2.Tag.VR_LO_MAX_LENGTH = 64; + daikon2.Tag.VR_LT_MAX_LENGTH = 10240; + daikon2.Tag.VR_OB_MAX_LENGTH = -1; + daikon2.Tag.VR_OD_MAX_LENGTH = -1; + daikon2.Tag.VR_OF_MAX_LENGTH = -1; + daikon2.Tag.VR_OW_MAX_LENGTH = -1; + daikon2.Tag.VR_PN_MAX_LENGTH = 64 * 5; + daikon2.Tag.VR_SH_MAX_LENGTH = 16; + daikon2.Tag.VR_SL_MAX_LENGTH = 4; + daikon2.Tag.VR_SS_MAX_LENGTH = 2; + daikon2.Tag.VR_ST_MAX_LENGTH = 1024; + daikon2.Tag.VR_TM_MAX_LENGTH = 16; + daikon2.Tag.VR_UI_MAX_LENGTH = 64; + daikon2.Tag.VR_UL_MAX_LENGTH = 4; + daikon2.Tag.VR_UN_MAX_LENGTH = -1; + daikon2.Tag.VR_US_MAX_LENGTH = 2; + daikon2.Tag.VR_UT_MAX_LENGTH = -1; + daikon2.Tag.VR_UC_MAX_LENGTH = -1; + daikon2.Tag.TAG_TRANSFER_SYNTAX = [2, 16]; + daikon2.Tag.TAG_META_LENGTH = [2, 0]; + daikon2.Tag.TAG_SUBLIST_ITEM = [65534, 57344]; + daikon2.Tag.TAG_SUBLIST_ITEM_DELIM = [65534, 57357]; + daikon2.Tag.TAG_SUBLIST_SEQ_DELIM = [65534, 57565]; + daikon2.Tag.TAG_ROWS = [40, 16]; + daikon2.Tag.TAG_COLS = [40, 17]; + daikon2.Tag.TAG_ACQUISITION_MATRIX = [24, 4880]; + daikon2.Tag.TAG_NUMBER_OF_FRAMES = [40, 8]; + daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS = [32, 261]; + daikon2.Tag.TAG_PIXEL_SPACING = [40, 48]; + daikon2.Tag.TAG_SLICE_THICKNESS = [24, 80]; + daikon2.Tag.TAG_SLICE_GAP = [24, 136]; + daikon2.Tag.TAG_TR = [24, 128]; + daikon2.Tag.TAG_FRAME_TIME = [24, 4195]; + daikon2.Tag.TAG_BITS_ALLOCATED = [40, 256]; + daikon2.Tag.TAG_BITS_STORED = [40, 257]; + daikon2.Tag.TAG_PIXEL_REPRESENTATION = [40, 259]; + daikon2.Tag.TAG_HIGH_BIT = [40, 258]; + daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION = [40, 4]; + daikon2.Tag.TAG_SAMPLES_PER_PIXEL = [40, 2]; + daikon2.Tag.TAG_PLANAR_CONFIG = [40, 6]; + daikon2.Tag.TAG_PALETTE_RED = [40, 4609]; + daikon2.Tag.TAG_PALETTE_GREEN = [40, 4610]; + daikon2.Tag.TAG_PALETTE_BLUE = [40, 4611]; + daikon2.Tag.TAG_DATA_SCALE_SLOPE = [40, 4179]; + daikon2.Tag.TAG_DATA_SCALE_INTERCEPT = [40, 4178]; + daikon2.Tag.TAG_DATA_SCALE_ELSCINT = [519, 4127]; + daikon2.Tag.TAG_PIXEL_BANDWIDTH = [24, 149]; + daikon2.Tag.TAG_IMAGE_MIN = [40, 262]; + daikon2.Tag.TAG_IMAGE_MAX = [40, 263]; + daikon2.Tag.TAG_WINDOW_CENTER = [40, 4176]; + daikon2.Tag.TAG_WINDOW_WIDTH = [40, 4177]; + daikon2.Tag.TAG_SPECIFIC_CHAR_SET = [8, 5]; + daikon2.Tag.TAG_PATIENT_NAME = [16, 16]; + daikon2.Tag.TAG_PATIENT_ID = [16, 32]; + daikon2.Tag.TAG_STUDY_DATE = [8, 32]; + daikon2.Tag.TAG_STUDY_TIME = [8, 48]; + daikon2.Tag.TAG_STUDY_DES = [8, 4144]; + daikon2.Tag.TAG_IMAGE_TYPE = [8, 8]; + daikon2.Tag.TAG_IMAGE_COMMENTS = [32, 16384]; + daikon2.Tag.TAG_SEQUENCE_NAME = [24, 36]; + daikon2.Tag.TAG_MODALITY = [8, 96]; + daikon2.Tag.TAG_FRAME_OF_REF_UID = [32, 82]; + daikon2.Tag.TAG_STUDY_UID = [32, 13]; + daikon2.Tag.TAG_SERIES_DESCRIPTION = [8, 4158]; + daikon2.Tag.TAG_SERIES_INSTANCE_UID = [32, 14]; + daikon2.Tag.TAG_SERIES_NUMBER = [32, 17]; + daikon2.Tag.TAG_ECHO_NUMBER = [24, 134]; + daikon2.Tag.TAG_TEMPORAL_POSITION = [32, 256]; + daikon2.Tag.TAG_IMAGE_NUM = [32, 19]; + daikon2.Tag.TAG_SLICE_LOCATION = [32, 4161]; + daikon2.Tag.TAG_IMAGE_ORIENTATION = [32, 55]; + daikon2.Tag.TAG_IMAGE_POSITION = [32, 50]; + daikon2.Tag.TAG_SLICE_LOCATION_VECTOR = [24, 8197]; + daikon2.Tag.TAG_LUT_SHAPE = [8272, 32]; + daikon2.Tag.TAG_PIXEL_DATA = [32736, 16]; + daikon2.Tag.createId = function(group, element) { + var groupStr = daikon2.Utils.dec2hex(group), elemStr = daikon2.Utils.dec2hex(element); + return groupStr + elemStr; + }; + daikon2.Tag.getUnsignedInteger16 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 2; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getUint16(ctr * 2, littleEndian); } + return data; }; - } - function getPrecinctIndexIfExist( - pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { - var posX = pxIndex * precinctIterationSizes.minWidth; - var posY = pyIndex * precinctIterationSizes.minHeight; - if (posX % sizeInImageScale.width !== 0 || - posY % sizeInImageScale.height !== 0) { - return null; - } - var startPrecinctRowIndex = - (posY / sizeInImageScale.width) * - resolution.precinctParameters.numprecinctswide; - return (posX / sizeInImageScale.height) + startPrecinctRowIndex; - } - function getPrecinctSizesInImageScale(tile) { - var componentsCount = tile.components.length; - var minWidth = Number.MAX_VALUE; - var minHeight = Number.MAX_VALUE; - var maxNumWide = 0; - var maxNumHigh = 0; - var sizePerComponent = new Array(componentsCount); - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - var sizePerResolution = new Array(decompositionLevelsCount + 1); - var minWidthCurrentComponent = Number.MAX_VALUE; - var minHeightCurrentComponent = Number.MAX_VALUE; - var maxNumWideCurrentComponent = 0; - var maxNumHighCurrentComponent = 0; - var scale = 1; - for (var r = decompositionLevelsCount; r >= 0; --r) { - var resolution = component.resolutions[r]; - var widthCurrentResolution = - scale * resolution.precinctParameters.precinctWidth; - var heightCurrentResolution = - scale * resolution.precinctParameters.precinctHeight; - minWidthCurrentComponent = Math.min( - minWidthCurrentComponent, - widthCurrentResolution); - minHeightCurrentComponent = Math.min( - minHeightCurrentComponent, - heightCurrentResolution); - maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, - resolution.precinctParameters.numprecinctswide); - maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, - resolution.precinctParameters.numprecinctshigh); - sizePerResolution[r] = { - width: widthCurrentResolution, - height: heightCurrentResolution - }; - scale <<= 1; - } - minWidth = Math.min(minWidth, minWidthCurrentComponent); - minHeight = Math.min(minHeight, minHeightCurrentComponent); - maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); - maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); - sizePerComponent[c] = { - resolutions: sizePerResolution, - minWidth: minWidthCurrentComponent, - minHeight: minHeightCurrentComponent, - maxNumWide: maxNumWideCurrentComponent, - maxNumHigh: maxNumHighCurrentComponent - }; - } - return { - components: sizePerComponent, - minWidth: minWidth, - minHeight: minHeight, - maxNumWide: maxNumWide, - maxNumHigh: maxNumHigh + daikon2.Tag.getSignedInteger16 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 2; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getInt16(ctr * 2, littleEndian); + } + return data; }; - } - function buildPackets(context) { - var siz = context.SIZ; - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var componentsCount = siz.Csiz; - // Creating resolutions and sub-bands for each component - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var decompositionLevelsCount = - component.codingStyleParameters.decompositionLevelsCount; - // Section B.5 Resolution levels and sub-bands - var resolutions = []; - var subbands = []; - for (var r = 0; r <= decompositionLevelsCount; r++) { - var blocksDimensions = getBlocksDimensions(context, component, r); - var resolution = {}; - var scale = 1 << (decompositionLevelsCount - r); - resolution.trx0 = Math.ceil(component.tcx0 / scale); - resolution.try0 = Math.ceil(component.tcy0 / scale); - resolution.trx1 = Math.ceil(component.tcx1 / scale); - resolution.try1 = Math.ceil(component.tcy1 / scale); - resolution.resLevel = r; - buildPrecincts(context, resolution, blocksDimensions); - resolutions.push(resolution); - - var subband; - if (r === 0) { - // one sub-band (LL) with last decomposition - subband = {}; - subband.type = 'LL'; - subband.tbx0 = Math.ceil(component.tcx0 / scale); - subband.tby0 = Math.ceil(component.tcy0 / scale); - subband.tbx1 = Math.ceil(component.tcx1 / scale); - subband.tby1 = Math.ceil(component.tcy1 / scale); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolution.subbands = [subband]; - } else { - var bscale = 1 << (decompositionLevelsCount - r + 1); - var resolutionSubbands = []; - // three sub-bands (HL, LH and HH) with rest of decompositions - subband = {}; - subband.type = 'HL'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); - subband.tby0 = Math.ceil(component.tcy0 / bscale); - subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); - subband.tby1 = Math.ceil(component.tcy1 / bscale); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - subband = {}; - subband.type = 'LH'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale); - subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); - subband.tbx1 = Math.ceil(component.tcx1 / bscale); - subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - subband = {}; - subband.type = 'HH'; - subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); - subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); - subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); - subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); - subband.resolution = resolution; - buildCodeblocks(context, subband, blocksDimensions); - subbands.push(subband); - resolutionSubbands.push(subband); - - resolution.subbands = resolutionSubbands; - } + daikon2.Tag.getFloat32 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 4; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getFloat32(ctr * 4, littleEndian); } - component.resolutions = resolutions; - component.subbands = subbands; - } - // Generate the packets sequence - var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; - switch (progressionOrder) { - case 0: - tile.packetsIterator = - new LayerResolutionComponentPositionIterator(context); - break; - case 1: - tile.packetsIterator = - new ResolutionLayerComponentPositionIterator(context); - break; - case 2: - tile.packetsIterator = - new ResolutionPositionComponentLayerIterator(context); - break; - case 3: - tile.packetsIterator = - new PositionComponentResolutionLayerIterator(context); - break; - case 4: - tile.packetsIterator = - new ComponentPositionResolutionLayerIterator(context); - break; - default: - throw new Error('JPX Error: Unsupported progression order ' + - progressionOrder); - } - } - function parseTilePackets(context, data, offset, dataLength) { - var position = 0; - var buffer, bufferSize = 0, skipNextBit = false; - function readBits(count) { - while (bufferSize < count) { - if(offset + position >= data.length){ - throw new Error("Unexpected EOF"); - } - var b = data[offset + position]; - position++; - if (skipNextBit) { - buffer = (buffer << 7) | b; - bufferSize += 7; - skipNextBit = false; - } else { - buffer = (buffer << 8) | b; - bufferSize += 8; - } - if (b === 0xFF) { - skipNextBit = true; - } + return data; + }; + daikon2.Tag.getSignedInteger32 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 4; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getInt32(ctr * 4, littleEndian); } - bufferSize -= count; - return (buffer >>> bufferSize) & ((1 << count) - 1); - } - function skipMarkerIfEqual(value) { - if (data[offset + position - 1] === 0xFF && - data[offset + position] === value) { - skipBytes(1); - return true; - } else if (data[offset + position] === 0xFF && - data[offset + position + 1] === value) { - skipBytes(2); - return true; + return data; + }; + daikon2.Tag.getUnsignedInteger32 = function(rawData, littleEndian) { + var data, mul, ctr; + mul = rawData.byteLength / 4; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getUint32(ctr * 4, littleEndian); } - return false; - } - function skipBytes(count) { - position += count; - } - function alignToByte() { - bufferSize = 0; - if (skipNextBit) { - position++; - skipNextBit = false; + return data; + }; + daikon2.Tag.getFloat64 = function(rawData, littleEndian) { + var data, mul, ctr; + if (rawData.byteLength < 8) { + return 0; } - } - function readCodingpasses() { - if (readBits(1) === 0) { - return 1; + mul = rawData.byteLength / 8; + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = rawData.getFloat64(ctr * 8, littleEndian); } - if (readBits(1) === 0) { - return 2; + return data; + }; + daikon2.Tag.getDoubleElscint = function(rawData) { + var data = [], reordered = [], ctr; + for (ctr = 0; ctr < 8; ctr += 1) { + data[ctr] = rawData.getUint8(ctr); } - var value = readBits(2); - if (value < 3) { - return value + 3; + reordered[0] = data[3]; + reordered[1] = data[2]; + reordered[2] = data[1]; + reordered[3] = data[0]; + reordered[4] = data[7]; + reordered[5] = data[6]; + reordered[6] = data[5]; + reordered[7] = data[4]; + data = [daikon2.Utils.bytesToDouble(reordered)]; + return data; + }; + daikon2.Tag.getFixedLengthStringValue = function(rawData, maxLength, charset, vr) { + var data, mul, ctr; + mul = Math.floor(rawData.byteLength / maxLength); + data = []; + for (ctr = 0; ctr < mul; ctr += 1) { + data[ctr] = daikon2.Utils.getStringAt(rawData, ctr * maxLength, maxLength, charset, vr); } - value = readBits(5); - if (value < 31) { - return value + 6; + return data; + }; + daikon2.Tag.getStringValue = function(rawData, charset, vr) { + var data = daikon2.Utils.getStringAt(rawData, 0, rawData.byteLength, charset, vr).split("\\"), ctr; + for (ctr = 0; ctr < data.length; ctr += 1) { + data[ctr] = daikon2.Utils.trim(data[ctr]); } - value = readBits(7); - return value + 37; - } - var tileIndex = context.currentTile.index; - var tile = context.tiles[tileIndex]; - var sopMarkerUsed = context.COD.sopMarkerUsed; - var ephMarkerUsed = context.COD.ephMarkerUsed; - var packetsIterator = tile.packetsIterator; - while (position < dataLength) { - try{ - alignToByte(); - if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { - // Skip also marker segment length and packet sequence ID - skipBytes(4); - } - var packet = packetsIterator.nextPacket(); - if (packet === undefined) { - //No more packets. Stream is probably truncated. - return; - } - if (!readBits(1)) { - continue; - } - var layerNumber = packet.layerNumber; - var queue = [], codeblock; - for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { - codeblock = packet.codeblocks[i]; - var precinct = codeblock.precinct; - var codeblockColumn = codeblock.cbx - precinct.cbxMin; - var codeblockRow = codeblock.cby - precinct.cbyMin; - var codeblockIncluded = false; - var firstTimeInclusion = false; - var valueReady; - if (codeblock['included'] !== undefined) { - codeblockIncluded = !!readBits(1); + return data; + }; + daikon2.Tag.getDateStringValue = function(rawData) { + var dotFormat = daikon2.Tag.getSingleStringValue(rawData)[0].indexOf(".") !== -1, stringData = daikon2.Tag.getFixedLengthStringValue(rawData, dotFormat ? 10 : daikon2.Tag.VR_DA_MAX_LENGTH), parts = null, data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + if (dotFormat) { + parts = stringData[ctr].split("."); + if (parts.length === 3) { + data[ctr] = new Date( + daikon2.Utils.safeParseInt(parts[0]), + daikon2.Utils.safeParseInt(parts[1]) - 1, + daikon2.Utils.safeParseInt(parts[2]) + ); } else { - // reading inclusion tree - precinct = codeblock.precinct; - var inclusionTree, zeroBitPlanesTree; - if (precinct['inclusionTree'] !== undefined) { - inclusionTree = precinct.inclusionTree; - } else { - // building inclusion and zero bit-planes trees - var width = precinct.cbxMax - precinct.cbxMin + 1; - var height = precinct.cbyMax - precinct.cbyMin + 1; - inclusionTree = new InclusionTree(width, height); - zeroBitPlanesTree = new TagTree(width, height); - precinct.inclusionTree = inclusionTree; - precinct.zeroBitPlanesTree = zeroBitPlanesTree; - } - - inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber); - while (true) { - if (position >= data.length) { - return; - } - if (inclusionTree.isAboveThreshold()){ - break; - } - if (inclusionTree.isKnown()) { - inclusionTree.nextLevel(); - continue; - } - if (readBits(1)) { - inclusionTree.setKnown(); - if (inclusionTree.isLeaf()) { - codeblock.included = true; - codeblockIncluded = firstTimeInclusion = true; - break; - } else { - inclusionTree.nextLevel(); - } - } else { - inclusionTree.incrementValue(); - } - } + data[ctr] = /* @__PURE__ */ new Date(); } - if (!codeblockIncluded) { - continue; + } else if (stringData[ctr].length === 8) { + data[ctr] = new Date( + daikon2.Utils.safeParseInt(stringData[ctr].substring(0, 4)), + daikon2.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1, + daikon2.Utils.safeParseInt(stringData[ctr].substring(6, 8)) + ); + } else { + data[ctr] = Date.parse(stringData[ctr]); + } + if (!daikon2.Utils.isValidDate(data[ctr])) { + data[ctr] = stringData[ctr]; + } + } + return data; + }; + daikon2.Tag.getDateTimeStringValue = function(rawData) { + var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr, year = null, month = null, date = null, hours = null, minutes = null, seconds = null; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + if (stringData[ctr].length >= 4) { + year = parseInt(stringData[ctr].substring(0, 4), 10); + if (stringData[ctr].length >= 6) { + month = daikon2.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1; } - if (firstTimeInclusion) { - zeroBitPlanesTree = precinct.zeroBitPlanesTree; - zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); - while (true) { - if (position >= data.length) { - return; - } - if (readBits(1)) { - valueReady = !zeroBitPlanesTree.nextLevel(); - if (valueReady) { - break; - } - } else { - zeroBitPlanesTree.incrementValue(); - } - } - codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + if (stringData[ctr].length >= 8) { + date = daikon2.Utils.safeParseInt(stringData[ctr].substring(6, 8)); } - var codingpasses = readCodingpasses(); - while (readBits(1)) { - codeblock.Lblock++; + if (stringData[ctr].length >= 10) { + hours = daikon2.Utils.safeParseInt(stringData[ctr].substring(8, 10)); } - var codingpassesLog2 = log2(codingpasses); - // rounding down log2 - var bits = ((codingpasses < (1 << codingpassesLog2)) ? - codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; - var codedDataLength = readBits(bits); - queue.push({ - codeblock: codeblock, - codingpasses: codingpasses, - dataLength: codedDataLength - }); + if (stringData[ctr].length >= 12) { + minutes = daikon2.Utils.safeParseInt(stringData[ctr].substring(10, 12)); + } + if (stringData[ctr].length >= 14) { + seconds = daikon2.Utils.safeParseInt(stringData[ctr].substring(12, 14)); + } + data[ctr] = new Date(year, month, date, hours, minutes, seconds); + } else { + data[ctr] = Date.parse(stringData[ctr]); } - alignToByte(); - if (ephMarkerUsed) { - skipMarkerIfEqual(0x92); - } - while (queue.length > 0) { - var packetItem = queue.shift(); - codeblock = packetItem.codeblock; - if (codeblock['data'] === undefined) { - codeblock.data = []; - } - codeblock.data.push({ - data: data, - start: offset + position, - end: offset + position + packetItem.dataLength, - codingpasses: packetItem.codingpasses - }); - position += packetItem.dataLength; + if (!daikon2.Utils.isValidDate(data[ctr])) { + data[ctr] = stringData[ctr]; } - } catch (e) { - return; } - } - return position; - } - function copyCoefficients(coefficients, levelWidth, levelHeight, subband, - delta, mb, reversible, segmentationSymbolUsed) { - var x0 = subband.tbx0; - var y0 = subband.tby0; - var width = subband.tbx1 - subband.tbx0; - var codeblocks = subband.codeblocks; - var right = subband.type.charAt(0) === 'H' ? 1 : 0; - var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; - - for (var i = 0, ii = codeblocks.length; i < ii; ++i) { - var codeblock = codeblocks[i]; - var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; - var blockHeight = codeblock.tby1_ - codeblock.tby0_; - if (blockWidth === 0 || blockHeight === 0) { - continue; - } - if (codeblock['data'] === undefined) { - continue; - } - - var bitModel, currentCodingpassType; - bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, - codeblock.zeroBitPlanes, mb); - currentCodingpassType = 2; // first bit plane starts from cleanup - - // collect data - var data = codeblock.data, totalLength = 0, codingpasses = 0; - var j, jj, dataItem; - for (j = 0, jj = data.length; j < jj; j++) { - dataItem = data[j]; - totalLength += dataItem.end - dataItem.start; - codingpasses += dataItem.codingpasses; - } - var encodedData = new Int16Array(totalLength); - var position = 0; - for (j = 0, jj = data.length; j < jj; j++) { - dataItem = data[j]; - var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); - encodedData.set(chunk, position); - position += chunk.length; - } - // decoding the item - var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); - bitModel.setDecoder(decoder); - - for (j = 0; j < codingpasses; j++) { - switch (currentCodingpassType) { - case 0: - bitModel.runSignificancePropogationPass(); - break; - case 1: - bitModel.runMagnitudeRefinementPass(); - break; - case 2: - bitModel.runCleanupPass(); - if (segmentationSymbolUsed) { - bitModel.checkSegmentationSymbol(); + return data; + }; + daikon2.Tag.getTimeStringValue = function(rawData, ms) { + var stringData = daikon2.Tag.getStringValue(rawData), data = []; + if (ms) { + var parts = null, ctr, hours = 0, minutes = 0, seconds = 0; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + if (stringData[ctr].indexOf(":") !== -1) { + parts = stringData[ctr].split(":"); + hours = daikon2.Utils.safeParseInt(parts[0]); + if (parts.length > 1) { + minutes = daikon2.Utils.safeParseInt(parts[1]); } - break; + if (parts.length > 2) { + seconds = daikon2.Utils.safeParseFloat(parts[2]); + } + } else { + if (stringData[ctr].length >= 2) { + hours = daikon2.Utils.safeParseInt(stringData[ctr].substring(0, 2)); + } + if (stringData[ctr].length >= 4) { + minutes = daikon2.Utils.safeParseInt(stringData[ctr].substring(2, 4)); + } + if (stringData[ctr].length >= 6) { + seconds = daikon2.Utils.safeParseFloat(stringData[ctr].substring(4)); + } + } + data[ctr] = Math.round(hours * 60 * 60 * 1e3 + minutes * 60 * 1e3 + seconds * 1e3); } - currentCodingpassType = (currentCodingpassType + 1) % 3; + return data; } - - var offset = (codeblock.tbx0_ - x0) + (codeblock.tby0_ - y0) * width; - var sign = bitModel.coefficentsSign; - var magnitude = bitModel.coefficentsMagnitude; - var bitsDecoded = bitModel.bitsDecoded; - var magnitudeCorrection = reversible ? 0 : 0.5; - var k, n, nb; - position = 0; - // Do the interleaving of Section F.3.3 here, so we do not need - // to copy later. LL level is not interleaved, just copied. - var interleave = (subband.type !== 'LL'); - for (j = 0; j < blockHeight; j++) { - var row = (offset / width) | 0; // row in the non-interleaved subband - var levelOffset = 2 * row * (levelWidth - width) + right + bottom; - for (k = 0; k < blockWidth; k++) { - n = magnitude[position]; - if (n !== 0) { - n = (n + magnitudeCorrection) * delta; - if (sign[position] !== 0) { - n = -n; - } - nb = bitsDecoded[position]; - var pos = interleave ? (levelOffset + (offset << 1)) : offset; - if (reversible && (nb >= mb)) { - coefficients[pos] = n; - } else { - coefficients[pos] = n * (1 << (mb - nb)); - } - } - offset++; - position++; + return stringData; + }; + daikon2.Tag.getDoubleStringValue = function(rawData) { + var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + data[ctr] = parseFloat(stringData[ctr]); + } + return data; + }; + daikon2.Tag.getIntegerStringValue = function(rawData) { + var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + data[ctr] = parseInt(stringData[ctr], 10); + } + return data; + }; + daikon2.Tag.getSingleStringValue = function(rawData, maxLength, charset, vr) { + var len = rawData.byteLength; + if (maxLength) { + len = Math.min(rawData.byteLength, maxLength); + } + return [daikon2.Utils.trim(daikon2.Utils.getStringAt(rawData, 0, len, charset, vr))]; + }; + daikon2.Tag.getPersonNameStringValue = function(rawData, charset, vr) { + var stringData = daikon2.Tag.getStringValue(rawData, charset, vr), data = [], ctr; + for (ctr = 0; ctr < stringData.length; ctr += 1) { + data[ctr] = stringData[ctr].replace("^", " "); + } + return data; + }; + daikon2.Tag.convertPrivateValue = function(group, element, rawData) { + var ctr, privReader; + for (ctr = 0; ctr < daikon2.Tag.PRIVATE_DATA_READERS.length; ctr += 1) { + privReader = new daikon2.Tag.PRIVATE_DATA_READERS[ctr](rawData.buffer); + if (privReader.canRead(group, element)) { + return privReader.readHeader(); } - offset += width - blockWidth; } - } - } - function transformTile(context, tile, c) { - var component = tile.components[c]; - var codingStyleParameters = component.codingStyleParameters; - var quantizationParameters = component.quantizationParameters; - var decompositionLevelsCount = - codingStyleParameters.decompositionLevelsCount; - var spqcds = quantizationParameters.SPqcds; - var scalarExpounded = quantizationParameters.scalarExpounded; - var guardBits = quantizationParameters.guardBits; - var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; - var precision = context.components[c].precision; - - var reversible = codingStyleParameters.reversibleTransformation; - var transform = (reversible ? new ReversibleTransform() : - new IrreversibleTransform()); - - var subbandCoefficients = []; - var b = 0; - for (var i = 0; i <= decompositionLevelsCount; i++) { - var resolution = component.resolutions[i]; - - var width = resolution.trx1 - resolution.trx0; - var height = resolution.try1 - resolution.try0; - // Allocate space for the whole sublevel. - var coefficients = new Float32Array(width * height); - - for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { - var mu, epsilon; - if (!scalarExpounded) { - // formula E-5 - mu = spqcds[0].mu; - epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); + return rawData; + }; + daikon2.Tag.convertValue = function(vr, rawData, littleEndian, charset) { + var data = null; + if (vr === "AE") { + data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_AE_MAX_LENGTH); + } else if (vr === "AS") { + data = daikon2.Tag.getFixedLengthStringValue(rawData, daikon2.Tag.VR_AS_MAX_LENGTH); + } else if (vr === "AT") { + data = daikon2.Tag.getUnsignedInteger16(rawData, littleEndian); + } else if (vr === "CS") { + data = daikon2.Tag.getStringValue(rawData); + } else if (vr === "DA") { + data = daikon2.Tag.getDateStringValue(rawData); + } else if (vr === "DS") { + data = daikon2.Tag.getDoubleStringValue(rawData); + } else if (vr === "DT") { + data = daikon2.Tag.getDateTimeStringValue(rawData); + } else if (vr === "FL") { + data = daikon2.Tag.getFloat32(rawData, littleEndian); + } else if (vr === "FD") { + data = daikon2.Tag.getFloat64(rawData, littleEndian); + } else if (vr === "FE") { + data = daikon2.Tag.getDoubleElscint(rawData, littleEndian); + } else if (vr === "IS") { + data = daikon2.Tag.getIntegerStringValue(rawData); + } else if (vr === "LO") { + data = daikon2.Tag.getStringValue(rawData, charset, vr); + } else if (vr === "LT") { + data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_AT_MAX_LENGTH, charset, vr); + } else if (vr === "OB") { + data = rawData; + } else if (vr === "OD") { + data = rawData; + } else if (vr === "OF") { + data = rawData; + } else if (vr === "OW") { + data = rawData; + } else if (vr === "PN") { + data = daikon2.Tag.getPersonNameStringValue(rawData, charset, vr); + } else if (vr === "SH") { + data = daikon2.Tag.getStringValue(rawData, charset, vr); + } else if (vr === "SL") { + data = daikon2.Tag.getSignedInteger32(rawData, littleEndian); + } else if (vr === "SQ") { + data = null; + } else if (vr === "SS") { + data = daikon2.Tag.getSignedInteger16(rawData, littleEndian); + } else if (vr === "ST") { + data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_ST_MAX_LENGTH, charset, vr); + } else if (vr === "TM") { + data = daikon2.Tag.getTimeStringValue(rawData); + } else if (vr === "UI") { + data = daikon2.Tag.getStringValue(rawData); + } else if (vr === "UL") { + data = daikon2.Tag.getUnsignedInteger32(rawData, littleEndian); + } else if (vr === "UN") { + data = rawData; + } else if (vr === "US") { + data = daikon2.Tag.getUnsignedInteger16(rawData, littleEndian); + } else if (vr === "UT") { + data = daikon2.Tag.getSingleStringValue(rawData, Number.MAX_SAFE_INTEGER, charset, vr); + } else if (vr === "UC") { + data = daikon2.Tag.getStringValue(rawData); + } + return data; + }; + daikon2.Tag.prototype.toString = function(level, html) { + var valueStr = "", ctr, groupStr = daikon2.Utils.dec2hex(this.group), elemStr = daikon2.Utils.dec2hex(this.element), tagStr = "(" + groupStr + "," + elemStr + ")", des = "", padding; + if (level === void 0) { + level = 0; + } + padding = ""; + for (ctr = 0; ctr < level; ctr += 1) { + if (html) { + padding += "  "; } else { - mu = spqcds[b].mu; - epsilon = spqcds[b].epsilon; - b++; + padding += " "; } - - var subband = resolution.subbands[j]; - var gainLog2 = SubbandsGainLog2[subband.type]; - - // calulate quantization coefficient (Section E.1.1.1) - var delta = (reversible ? 1 : - Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048)); - var mb = (guardBits + epsilon - 1); - - // In the first resolution level, copyCoefficients will fill the - // whole array with coefficients. In the succeding passes, - // copyCoefficients will consecutively fill in the values that belong - // to the interleaved positions of the HL, LH, and HH coefficients. - // The LL coefficients will then be interleaved in Transform.iterate(). - copyCoefficients(coefficients, width, height, subband, delta, mb, - reversible, segmentationSymbolUsed); - } - subbandCoefficients.push({ - width: width, - height: height, - items: coefficients - }); - } - - var result = transform.calculate(subbandCoefficients, - component.tcx0, component.tcy0); - return { - left: component.tcx0, - top: component.tcy0, - width: result.width, - height: result.height, - items: result.items - }; - } - function transformComponents(context) { - var siz = context.SIZ; - var components = context.components; - var componentsCount = siz.Csiz; - var resultImages = []; - for (var i = 0, ii = context.tiles.length; i < ii; i++) { - var tile = context.tiles[i]; - var transformedTiles = []; - var c; - for (c = 0; c < componentsCount; c++) { - transformedTiles[c] = transformTile(context, tile, c); } - var tile0 = transformedTiles[0]; - var isSigned = components[0].isSigned; - if (isSigned) { - var out = new Int16Array(tile0.items.length * componentsCount); + if (this.sublist) { + for (ctr = 0; ctr < this.value.length; ctr += 1) { + valueStr += "\n" + this.value[ctr].toString(level + 1, html); + } + } else if (this.vr === "SQ") { + valueStr = ""; + } else if (this.isPixelData()) { + valueStr = ""; + } else if (!this.value) { + valueStr = ""; } else { - var out = new Uint16Array(tile0.items.length * componentsCount); - } - var result = { - left: tile0.left, - top: tile0.top, - width: tile0.width, - height: tile0.height, - items: out - }; - - // Section G.2.2 Inverse multi component transform - var shift, offset, max, min, maxK; - var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; - if (tile.codingStyleDefaultParameters.multipleComponentTransform) { - var fourComponents = componentsCount === 4; - var y0items = transformedTiles[0].items; - var y1items = transformedTiles[1].items; - var y2items = transformedTiles[2].items; - var y3items = fourComponents ? transformedTiles[3].items : null; - - // HACK: The multiple component transform formulas below assume that - // all components have the same precision. With this in mind, we - // compute shift and offset only once. - shift = components[0].precision - 8; - offset = (128 << shift) + 0.5; - max = 255 * (1 << shift); - maxK = max * 0.5; - min = -maxK; - - var component0 = tile.components[0]; - var alpha01 = componentsCount - 3; - jj = y0items.length; - if (!component0.codingStyleParameters.reversibleTransformation) { - // inverse irreversible multiple component transform - for (j = 0; j < jj; j++, pos += alpha01) { - y0 = y0items[j] + offset; - y1 = y1items[j]; - y2 = y2items[j]; - r = y0 + 1.402 * y2; - g = y0 - 0.34413 * y1 - 0.71414 * y2; - b = y0 + 1.772 * y1; - out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; - out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; - out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; - } + if (html && this.preformatted) { + valueStr = "[
" + this.value + "
]"; } else { - // inverse reversible multiple component transform - for (j = 0; j < jj; j++, pos += alpha01) { - y0 = y0items[j] + offset; - y1 = y1items[j]; - y2 = y2items[j]; - g = y0 - ((y2 + y1) >> 2); - r = g + y2; - b = g + y1; - out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; - out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; - out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; - } - } - if (fourComponents) { - for (j = 0, pos = 3; j < jj; j++, pos += 4) { - k = y3items[j]; - out[pos] = k <= min ? 0 : k >= maxK ? 255 : (k + offset) >> shift; - } - } - } else { // no multi-component transform - for (c = 0; c < componentsCount; c++) { - if (components[c].precision === 8){ - var items = transformedTiles[c].items; - shift = components[c].precision - 8; - offset = (128 << shift) + 0.5; - max = (127.5 * (1 << shift)); - min = -max; - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - val = items[j]; - out[pos] = val <= min ? 0 : - val >= max ? 255 : (val + offset) >> shift; - pos += componentsCount; - } - }else{ - var isSigned = components[c].isSigned; - var items = transformedTiles[c].items; - - if(isSigned){ - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - out[pos] = items[j]; - pos += componentsCount; - } - }else{ - shift = components[c].precision - 8; - offset = (128 << shift) + 0.5; - var precisionMax = Math.pow(2,components[c].precision)-1; - for (pos = c, j = 0, jj = items.length; j < jj; j++) { - val = items[j]; - out[pos] = Math.max(Math.min((val + offset),precisionMax),0); - pos += componentsCount; - } - } - } + valueStr = "[" + this.value + "]"; } } - resultImages.push(result); - } - return resultImages; - } - function initializeTile(context, tileIndex) { - var siz = context.SIZ; - var componentsCount = siz.Csiz; - var tile = context.tiles[tileIndex]; - for (var c = 0; c < componentsCount; c++) { - var component = tile.components[c]; - var qcdOrQcc = (context.currentTile.QCC[c] !== undefined ? - context.currentTile.QCC[c] : context.currentTile.QCD); - component.quantizationParameters = qcdOrQcc; - var codOrCoc = (context.currentTile.COC[c] !== undefined ? - context.currentTile.COC[c] : context.currentTile.COD); - component.codingStyleParameters = codOrCoc; + if (this.isSublistItem()) { + tagStr = "Sequence Item"; + } else if (this.isSublistItemDelim()) { + tagStr = "Sequence Item Delimiter"; + } else if (this.isSequenceDelim()) { + tagStr = "Sequence Delimiter"; + } else if (this.isPixelData()) { + tagStr = "Pixel Data"; + } else { + des = daikon2.Utils.convertCamcelCaseToTitleCase(daikon2.Dictionary.getDescription(this.group, this.element)); + } + valueStr = xss(valueStr); + if (html) { + return padding + "" + tagStr + "   " + des + "   " + valueStr; + } else { + return padding + " " + tagStr + " " + des + " " + valueStr; + } + }; + daikon2.Tag.prototype.toHTMLString = function(level) { + return this.toString(level, true); + }; + daikon2.Tag.prototype.isTransformSyntax = function() { + return this.group === daikon2.Tag.TAG_TRANSFER_SYNTAX[0] && this.element === daikon2.Tag.TAG_TRANSFER_SYNTAX[1]; + }; + daikon2.Tag.prototype.isCharset = function() { + return this.group === daikon2.Tag.TAG_SPECIFIC_CHAR_SET[0] && this.element === daikon2.Tag.TAG_SPECIFIC_CHAR_SET[1]; + }; + daikon2.Tag.prototype.isPixelData = function() { + return this.group === daikon2.Tag.TAG_PIXEL_DATA[0] && this.element === daikon2.Tag.TAG_PIXEL_DATA[1]; + }; + daikon2.Tag.prototype.isPrivateData = function() { + return (this.group & 1) === 1; + }; + daikon2.Tag.prototype.hasInterpretedPrivateData = function() { + return this.isPrivateData() && daikon2.Utils.isString(this.value); + }; + daikon2.Tag.prototype.isSublistItem = function() { + return this.group === daikon2.Tag.TAG_SUBLIST_ITEM[0] && this.element === daikon2.Tag.TAG_SUBLIST_ITEM[1]; + }; + daikon2.Tag.prototype.isSublistItemDelim = function() { + return this.group === daikon2.Tag.TAG_SUBLIST_ITEM_DELIM[0] && this.element === daikon2.Tag.TAG_SUBLIST_ITEM_DELIM[1]; + }; + daikon2.Tag.prototype.isSequenceDelim = function() { + return this.group === daikon2.Tag.TAG_SUBLIST_SEQ_DELIM[0] && this.element === daikon2.Tag.TAG_SUBLIST_SEQ_DELIM[1]; + }; + daikon2.Tag.prototype.isMetaLength = function() { + return this.group === daikon2.Tag.TAG_META_LENGTH[0] && this.element === daikon2.Tag.TAG_META_LENGTH[1]; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Tag; } - tile.codingStyleDefaultParameters = context.currentTile.COD; } +}); - // Section B.10.2 Tag trees - var TagTree = (function TagTreeClosure() { - function TagTree(width, height) { - var levelsLength = log2(Math.max(width, height)) + 1; - this.levels = []; - for (var i = 0; i < levelsLength; i++) { - var level = { - width: width, - height: height, - items: [] - }; - this.levels.push(level); - width = Math.ceil(width / 2); - height = Math.ceil(height / 2); +// src/rle.js +var require_rle = __commonJS({ + "src/rle.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.RLE = daikon2.RLE || function() { + this.rawData = null; + this.bytesRead = 0; + this.bytesPut = 0; + this.segElemPut = 0; + this.numSegments = 0; + this.segmentOffsets = []; + this.littleEndian = true; + this.segmentIndex = 0; + this.numElements = 0; + this.size = 0; + this.output = null; + }; + daikon2.RLE.HEADER_SIZE = 64; + daikon2.RLE.prototype.decode = function(data, littleEndian, numElements) { + var ctr; + this.rawData = new DataView(data); + this.littleEndian = littleEndian; + this.numElements = numElements; + this.readHeader(); + this.output = new DataView(new ArrayBuffer(this.size)); + for (ctr = 0; ctr < this.numSegments; ctr += 1) { + this.readNextSegment(); } - } - TagTree.prototype = { - reset: function TagTree_reset(i, j) { - var currentLevel = 0, value = 0, level; - while (currentLevel < this.levels.length) { - level = this.levels[currentLevel]; - var index = i + j * level.width; - if (level.items[index] !== undefined) { - value = level.items[index]; - break; - } - level.index = index; - i >>= 1; - j >>= 1; - currentLevel++; + return this.processData(); + }; + daikon2.RLE.prototype.processData = function() { + var ctr, temp1, temp2, temp3, value, outputProcessed, offset; + if (this.numSegments === 1) { + return this.output; + } else if (this.numSegments === 2) { + outputProcessed = new DataView(new ArrayBuffer(this.size)); + for (ctr = 0; ctr < this.numElements; ctr += 1) { + temp1 = this.output.getInt8(ctr); + temp2 = this.output.getInt8(ctr + this.numElements); + value = (temp1 & 255) << 8 | temp2 & 255; + outputProcessed.setInt16(ctr * 2, value, this.littleEndian); } - currentLevel--; - level = this.levels[currentLevel]; - level.items[level.index] = value; - this.currentLevel = currentLevel; - delete this.value; - }, - incrementValue: function TagTree_incrementValue() { - var level = this.levels[this.currentLevel]; - level.items[level.index]++; - }, - nextLevel: function TagTree_nextLevel() { - var currentLevel = this.currentLevel; - var level = this.levels[currentLevel]; - var value = level.items[level.index]; - currentLevel--; - if (currentLevel < 0) { - this.value = value; - return false; + return outputProcessed; + } else if (this.numSegments === 3) { + outputProcessed = new DataView(new ArrayBuffer(this.size)); + offset = 2 * this.numElements; + for (ctr = 0; ctr < this.numElements; ctr += 1) { + outputProcessed.setInt8(ctr * 3, this.output.getInt8(ctr)); + outputProcessed.setInt8(ctr * 3 + 1, this.output.getInt8(ctr + this.numElements)); + outputProcessed.setInt8(ctr * 3 + 2, this.output.getInt8(ctr + offset)); } - - this.currentLevel = currentLevel; - level = this.levels[currentLevel]; - level.items[level.index] = value; - return true; + return outputProcessed; + } else { + throw new Error("RLE data with " + this.numSegments + " segments is not supported!"); } }; - return TagTree; - })(); - - var InclusionTree = (function InclusionTreeClosure() { - function InclusionTree(width, height) { - var levelsLength = log2(Math.max(width, height)) + 1; - this.levels = []; - for (var i = 0; i < levelsLength; i++) { - var items = new Uint8Array(width * height); - var status = new Uint8Array(width * height); - for (var j = 0, jj = items.length; j < jj; j++) { - items[j] = 0; - status[j] = 0; - } - - var level = { - width: width, - height: height, - items: items, - status: status - }; - this.levels.push(level); - - width = Math.ceil(width / 2); - height = Math.ceil(height / 2); + daikon2.RLE.prototype.readHeader = function() { + var ctr; + this.numSegments = this.getInt32(); + this.size = this.numElements * this.numSegments; + for (ctr = 0; ctr < this.numSegments; ctr += 1) { + this.segmentOffsets[ctr] = this.getInt32(); } - } - InclusionTree.prototype = { - reset: function InclusionTree_reset(i, j, stopValue) { - this.currentStopValue = stopValue; - var currentLevel = 0; - while (currentLevel < this.levels.length) { - var level = this.levels[currentLevel]; - var index = i + j * level.width; - level.index = index; - - i >>= 1; - j >>= 1; - currentLevel++; - } - - this.currentLevel = this.levels.length - 1; - this.minValue =this.levels[this.currentLevel].items[0]; - return; - }, - incrementValue: function InclusionTree_incrementValue() { - var level = this.levels[this.currentLevel]; - level.items[level.index] = level.items[level.index] + 1; - if(level.items[level.index] > this.minValue) { - this.minValue = level.items[level.index]; + this.bytesRead = daikon2.RLE.HEADER_SIZE; + }; + daikon2.RLE.prototype.hasValidInput = function() { + return this.bytesRead < this.rawData.buffer.byteLength && this.bytesPut < this.size && this.segElemPut < this.numElements; + }; + daikon2.RLE.prototype.readNextSegment = function() { + var code; + this.bytesRead = this.segmentOffsets[this.segmentIndex]; + this.segElemPut = 0; + while (this.hasValidInput()) { + code = this.get(); + if (code >= 0 && code < 128) { + this.readLiteral(code); + } else if (code <= -1 && code > -128) { + this.readEncoded(code); + } else if (code === -128) { + console.warn("RLE: unsupported code!"); } - }, - nextLevel: function InclusionTree_nextLevel() { - var currentLevel = this.currentLevel; - currentLevel--; - if (currentLevel < 0) { - return false; - } else { - this.currentLevel = currentLevel; - var level = this.levels[currentLevel]; - if(level.items[level.index] < this.minValue) { - level.items[level.index] = this.minValue; - }else if (level.items[level.index] > this.minValue) { - this.minValue = level.items[level.index]; - } - return true; + } + this.segmentIndex += 1; + }; + daikon2.RLE.prototype.readLiteral = function(code) { + var ctr, length = code + 1; + if (this.hasValidInput()) { + for (ctr = 0; ctr < length; ctr += 1) { + this.put(this.get()); } - }, - isLeaf: function InclusionTree_isLeaf(){ - return (this.currentLevel === 0); - }, - isAboveThreshold: function InclusionTree_isAboveThreshold(){ - var levelindex = this.currentLevel; - var level = this.levels[levelindex]; - return (level.items[level.index] > this.currentStopValue); - }, - isKnown: function InclusionTree_isKnown(){ - var levelindex = this.currentLevel; - var level = this.levels[levelindex]; - return (level.status[level.index] > 0); - }, - setKnown: function InclusionTree_setKnown(){ - var levelindex = this.currentLevel; - var level = this.levels[levelindex]; - level.status[level.index] = 1; - return; + } else { + console.warn("RLE: insufficient data!"); + } + }; + daikon2.RLE.prototype.readEncoded = function(code) { + var ctr, runLength = 1 - code, encoded = this.get(); + for (ctr = 0; ctr < runLength; ctr += 1) { + this.put(encoded); + } + }; + daikon2.RLE.prototype.getInt32 = function() { + var value = this.rawData.getInt32(this.bytesRead, this.littleEndian); + this.bytesRead += 4; + return value; + }; + daikon2.RLE.prototype.getInt16 = function() { + var value = this.rawData.getInt16(this.bytesRead, this.littleEndian); + this.bytesRead += 2; + return value; + }; + daikon2.RLE.prototype.get = function() { + var value = this.rawData.getInt8(this.bytesRead); + this.bytesRead += 1; + return value; + }; + daikon2.RLE.prototype.put = function(val) { + this.output.setInt8(this.bytesPut, val); + this.bytesPut += 1; + this.segElemPut += 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.RLE; } + } +}); +// node_modules/jpeg-lossless-decoder-js/src/component-spec.js +var require_component_spec = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/component-spec.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || function() { + this.hSamp = 0; + this.quantTableSel = 0; + this.vSamp = 0; }; - return InclusionTree; - })(); - - // Section D. Coefficient bit modeling - var BitModel = (function BitModelClosure() { - var UNIFORM_CONTEXT = 17; - var RUNLENGTH_CONTEXT = 18; - // Table D-1 - // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4), - // vv - sum of Vi (0..2), and hh - sum of Hi (0..2) - var LLAndLHContextsLabel = new Uint8Array([ - 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, - 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, - 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8 - ]); - var HLContextLabel = new Uint8Array([ - 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, - 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, - 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8 - ]); - var HHContextLabel = new Uint8Array([ - 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, - 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, - 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8 - ]); - - function BitModel(width, height, subband, zeroBitPlanes, mb) { - this.width = width; - this.height = height; - - this.contextLabelTable = (subband === 'HH' ? HHContextLabel : - (subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel)); - - var coefficientCount = width * height; - - // coefficients outside the encoding region treated as insignificant - // add border state cells for significanceState - this.neighborsSignificance = new Uint8Array(coefficientCount); - this.coefficentsSign = new Uint8Array(coefficientCount); - this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : - mb > 6 ? new Uint16Array(coefficientCount) : - new Uint8Array(coefficientCount); - this.processingFlags = new Uint8Array(coefficientCount); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.ComponentSpec; + } + } +}); - var bitsDecoded = new Uint8Array(coefficientCount); - if (zeroBitPlanes !== 0) { - for (var i = 0; i < coefficientCount; i++) { - bitsDecoded[i] = zeroBitPlanes; - } +// node_modules/jpeg-lossless-decoder-js/src/data-stream.js +var require_data_stream = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/data-stream.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || function(data, offset, length) { + if (offset === void 0 && length === void 0) { + this.buffer = new Uint8Array(data); + } else { + this.buffer = new Uint8Array(data, offset, length); } - this.bitsDecoded = bitsDecoded; - - this.reset(); + this.index = 0; + }; + jpeg2.lossless.DataStream.prototype.get16 = function() { + var value = (this.buffer[this.index] << 8) + this.buffer[this.index + 1]; + this.index += 2; + return value; + }; + jpeg2.lossless.DataStream.prototype.get8 = function() { + var value = this.buffer[this.index]; + this.index += 1; + return value; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.DataStream; } + } +}); - BitModel.prototype = { - setDecoder: function BitModel_setDecoder(decoder) { - this.decoder = decoder; - }, - reset: function BitModel_reset() { - // We have 17 contexts that are accessed via context labels, - // plus the uniform and runlength context. - this.contexts = new Int8Array(19); - - // Contexts are packed into 1 byte: - // highest 7 bits carry the index, lowest bit carries mps - this.contexts[0] = (4 << 1) | 0; - this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0; - this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0; - }, - setNeighborsSignificance: - function BitModel_setNeighborsSignificance(row, column, index) { - var neighborsSignificance = this.neighborsSignificance; - var width = this.width, height = this.height; - var left = (column > 0); - var right = (column + 1 < width); - var i; - - if (row > 0) { - i = index - width; - if (left) { - neighborsSignificance[i - 1] += 0x10; - } - if (right) { - neighborsSignificance[i + 1] += 0x10; - } - neighborsSignificance[i] += 0x04; +// node_modules/jpeg-lossless-decoder-js/src/utils.js +var require_utils = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/utils.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.Utils = jpeg2.lossless.Utils || {}; + jpeg2.lossless.Utils.createArray = function(length) { + var arr = new Array(length || 0), i2 = length; + if (arguments.length > 1) { + var args = Array.prototype.slice.call(arguments, 1); + while (i2--) + arr[length - 1 - i2] = jpeg2.lossless.Utils.createArray.apply(this, args); + } + return arr; + }; + jpeg2.lossless.Utils.makeCRCTable = function() { + var c; + var crcTable = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } + crcTable[n] = c; + } + return crcTable; + }; + jpeg2.lossless.Utils.crc32 = function(dataView) { + var uint8view = new Uint8Array(dataView.buffer); + var crcTable = jpeg2.lossless.Utils.crcTable || (jpeg2.lossless.Utils.crcTable = jpeg2.lossless.Utils.makeCRCTable()); + var crc = 0 ^ -1; + for (var i2 = 0; i2 < uint8view.length; i2++) { + crc = crc >>> 8 ^ crcTable[(crc ^ uint8view[i2]) & 255]; + } + return (crc ^ -1) >>> 0; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.Utils; + } + } +}); - if (row + 1 < height) { - i = index + width; - if (left) { - neighborsSignificance[i - 1] += 0x10; - } - if (right) { - neighborsSignificance[i + 1] += 0x10; - } - neighborsSignificance[i] += 0x04; +// node_modules/jpeg-lossless-decoder-js/src/huffman-table.js +var require_huffman_table = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/huffman-table.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || function() { + this.l = jpeg2.lossless.Utils.createArray(4, 2, 16); + this.th = []; + this.v = jpeg2.lossless.Utils.createArray(4, 2, 16, 200); + this.tc = jpeg2.lossless.Utils.createArray(4, 2); + this.tc[0][0] = 0; + this.tc[1][0] = 0; + this.tc[2][0] = 0; + this.tc[3][0] = 0; + this.tc[0][1] = 0; + this.tc[1][1] = 0; + this.tc[2][1] = 0; + this.tc[3][1] = 0; + this.th[0] = 0; + this.th[1] = 0; + this.th[2] = 0; + this.th[3] = 0; + }; + jpeg2.lossless.HuffmanTable.MSB = 2147483648; + jpeg2.lossless.HuffmanTable.prototype.read = function(data, HuffTab) { + var count = 0, length, temp, t, c, i2, j; + length = data.get16(); + count += 2; + while (count < length) { + temp = data.get8(); + count += 1; + t = temp & 15; + if (t > 3) { + throw new Error("ERROR: Huffman table ID > 3"); } - - if (left) { - neighborsSignificance[index - 1] += 0x01; + c = temp >> 4; + if (c > 2) { + throw new Error("ERROR: Huffman table [Table class > 2 ]"); } - if (right) { - neighborsSignificance[index + 1] += 0x01; + this.th[t] = 1; + this.tc[t][c] = 1; + for (i2 = 0; i2 < 16; i2 += 1) { + this.l[t][c][i2] = data.get8(); + count += 1; } - neighborsSignificance[index] |= 0x80; - }, - runSignificancePropogationPass: - function BitModel_runSignificancePropogationPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var neighborsSignificance = this.neighborsSignificance; - var processingFlags = this.processingFlags; - var contexts = this.contexts; - var labels = this.contextLabelTable; - var bitsDecoded = this.bitsDecoded; - var processedInverseMask = ~1; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - - for (var i0 = 0; i0 < height; i0 += 4) { - for (var j = 0; j < width; j++) { - var index = i0 * width + j; - for (var i1 = 0; i1 < 4; i1++, index += width) { - var i = i0 + i1; - if (i >= height) { - break; - } - // clear processed flag first - processingFlags[index] &= processedInverseMask; - - if (coefficentsMagnitude[index] || - !neighborsSignificance[index]) { - continue; - } - - var contextLabel = labels[neighborsSignificance[index]]; - var decision = decoder.readBit(contexts, contextLabel); - if (decision) { - var sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - } - bitsDecoded[index]++; - processingFlags[index] |= processedMask; + for (i2 = 0; i2 < 16; i2 += 1) { + for (j = 0; j < this.l[t][c][i2]; j += 1) { + if (count > length) { + throw new Error("ERROR: Huffman table format error [count>Lh]"); } + this.v[t][c][i2][j] = data.get8(); + count += 1; } } - }, - decodeSignBit: function BitModel_decodeSignBit(row, column, index) { - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var contribution, sign0, sign1, significance1; - var contextLabel, decoded; - - // calculate horizontal contribution - significance1 = (column > 0 && coefficentsMagnitude[index - 1] !== 0); - if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { - sign1 = coefficentsSign[index + 1]; - if (significance1) { - sign0 = coefficentsSign[index - 1]; - contribution = 1 - sign1 - sign0; - } else { - contribution = 1 - sign1 - sign1; + } + if (count !== length) { + throw new Error("ERROR: Huffman table format error [count!=Lf]"); + } + for (i2 = 0; i2 < 4; i2 += 1) { + for (j = 0; j < 2; j += 1) { + if (this.tc[i2][j] !== 0) { + this.buildHuffTable(HuffTab[i2][j], this.l[i2][j], this.v[i2][j]); } - } else if (significance1) { - sign0 = coefficentsSign[index - 1]; - contribution = 1 - sign0 - sign0; - } else { - contribution = 0; } - var horizontalContribution = 3 * contribution; - - // calculate vertical contribution and combine with the horizontal - significance1 = (row > 0 && coefficentsMagnitude[index - width] !== 0); - if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { - sign1 = coefficentsSign[index + width]; - if (significance1) { - sign0 = coefficentsSign[index - width]; - contribution = 1 - sign1 - sign0 + horizontalContribution; - } else { - contribution = 1 - sign1 - sign1 + horizontalContribution; + } + return 1; + }; + jpeg2.lossless.HuffmanTable.prototype.buildHuffTable = function(tab, L, V) { + var currentTable, temp, k, i2, j, n; + temp = 256; + k = 0; + for (i2 = 0; i2 < 8; i2 += 1) { + for (j = 0; j < L[i2]; j += 1) { + for (n = 0; n < temp >> i2 + 1; n += 1) { + tab[k] = V[i2][j] | i2 + 1 << 8; + k += 1; } - } else if (significance1) { - sign0 = coefficentsSign[index - width]; - contribution = 1 - sign0 - sign0 + horizontalContribution; - } else { - contribution = horizontalContribution; - } - - if (contribution >= 0) { - contextLabel = 9 + contribution; - decoded = this.decoder.readBit(this.contexts, contextLabel); - } else { - contextLabel = 9 - contribution; - decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; } - return decoded; - }, - runMagnitudeRefinementPass: - function BitModel_runMagnitudeRefinementPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var coefficentsMagnitude = this.coefficentsMagnitude; - var neighborsSignificance = this.neighborsSignificance; - var contexts = this.contexts; - var bitsDecoded = this.bitsDecoded; - var processingFlags = this.processingFlags; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - var length = width * height; - var width4 = width * 4; - - for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { - indexNext = Math.min(length, index0 + width4); - for (var j = 0; j < width; j++) { - for (var index = index0 + j; index < indexNext; index += width) { - - // significant but not those that have just become - if (!coefficentsMagnitude[index] || - (processingFlags[index] & processedMask) !== 0) { - continue; - } - - var contextLabel = 16; - if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { - processingFlags[index] ^= firstMagnitudeBitMask; - // first refinement - var significance = neighborsSignificance[index] & 127; - contextLabel = significance === 0 ? 15 : 14; - } - - var bit = decoder.readBit(contexts, contextLabel); - coefficentsMagnitude[index] = - (coefficentsMagnitude[index] << 1) | bit; - bitsDecoded[index]++; - processingFlags[index] |= processedMask; - } + } + for (i2 = 1; k < 256; i2 += 1, k += 1) { + tab[k] = i2 | jpeg2.lossless.HuffmanTable.MSB; + } + currentTable = 1; + k = 0; + for (i2 = 8; i2 < 16; i2 += 1) { + for (j = 0; j < L[i2]; j += 1) { + for (n = 0; n < temp >> i2 - 7; n += 1) { + tab[currentTable * 256 + k] = V[i2][j] | i2 + 1 << 8; + k += 1; } - } - }, - runCleanupPass: function BitModel_runCleanupPass() { - var decoder = this.decoder; - var width = this.width, height = this.height; - var neighborsSignificance = this.neighborsSignificance; - var coefficentsMagnitude = this.coefficentsMagnitude; - var coefficentsSign = this.coefficentsSign; - var contexts = this.contexts; - var labels = this.contextLabelTable; - var bitsDecoded = this.bitsDecoded; - var processingFlags = this.processingFlags; - var processedMask = 1; - var firstMagnitudeBitMask = 2; - var oneRowDown = width; - var twoRowsDown = width * 2; - var threeRowsDown = width * 3; - var iNext; - for (var i0 = 0; i0 < height; i0 = iNext) { - iNext = Math.min(i0 + 4, height); - var indexBase = i0 * width; - var checkAllEmpty = i0 + 3 < height; - for (var j = 0; j < width; j++) { - var index0 = indexBase + j; - // using the property: labels[neighborsSignificance[index]] === 0 - // when neighborsSignificance[index] === 0 - var allEmpty = (checkAllEmpty && - processingFlags[index0] === 0 && - processingFlags[index0 + oneRowDown] === 0 && - processingFlags[index0 + twoRowsDown] === 0 && - processingFlags[index0 + threeRowsDown] === 0 && - neighborsSignificance[index0] === 0 && - neighborsSignificance[index0 + oneRowDown] === 0 && - neighborsSignificance[index0 + twoRowsDown] === 0 && - neighborsSignificance[index0 + threeRowsDown] === 0); - var i1 = 0, index = index0; - var i = i0, sign; - if (allEmpty) { - var hasSignificantCoefficent = - decoder.readBit(contexts, RUNLENGTH_CONTEXT); - if (!hasSignificantCoefficent) { - bitsDecoded[index0]++; - bitsDecoded[index0 + oneRowDown]++; - bitsDecoded[index0 + twoRowsDown]++; - bitsDecoded[index0 + threeRowsDown]++; - continue; // next column - } - i1 = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) | - decoder.readBit(contexts, UNIFORM_CONTEXT); - if (i1 !== 0) { - i = i0 + i1; - index += i1 * width; - } - - sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - - index = index0; - for (var i2 = i0; i2 <= i; i2++, index += width) { - bitsDecoded[index]++; - } - - i1++; - } - for (i = i0 + i1; i < iNext; i++, index += width) { - if (coefficentsMagnitude[index] || - (processingFlags[index] & processedMask) !== 0) { - continue; - } - - var contextLabel = labels[neighborsSignificance[index]]; - var decision = decoder.readBit(contexts, contextLabel); - if (decision === 1) { - sign = this.decodeSignBit(i, j, index); - coefficentsSign[index] = sign; - coefficentsMagnitude[index] = 1; - this.setNeighborsSignificance(i, j, index); - processingFlags[index] |= firstMagnitudeBitMask; - } - bitsDecoded[index]++; + if (k >= 256) { + if (k > 256) { + throw new Error("ERROR: Huffman table error(1)!"); } + k = 0; + currentTable += 1; } } - }, - checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { - var decoder = this.decoder; - var contexts = this.contexts; - var symbol = (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) | - (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) | - (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) | - decoder.readBit(contexts, UNIFORM_CONTEXT); - if (symbol !== 0xA) { - throw new Error('JPX Error: Invalid segmentation symbol'); - } } }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.HuffmanTable; + } + } +}); - return BitModel; - })(); - - // Section F, Discrete wavelet transformation - var Transform = (function TransformClosure() { - function Transform() {} - - Transform.prototype.calculate = - function transformCalculate(subbands, u0, v0) { - var ll = subbands[0]; - for (var i = 1, ii = subbands.length; i < ii; i++) { - ll = this.iterate(ll, subbands[i], u0, v0); - } - return ll; - }; - Transform.prototype.extend = function extend(buffer, offset, size) { - // Section F.3.7 extending... using max extension of 4 - var i1 = offset - 1, j1 = offset + 1; - var i2 = offset + size - 2, j2 = offset + size; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1--] = buffer[j1++]; - buffer[j2++] = buffer[i2--]; - buffer[i1] = buffer[j1]; - buffer[j2] = buffer[i2]; - }; - Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, - u0, v0) { - var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; - var width = hl_lh_hh.width; - var height = hl_lh_hh.height; - var items = hl_lh_hh.items; - var i, j, k, l, u, v; - - // Interleave LL according to Section F.3.3 - for (k = 0, i = 0; i < llHeight; i++) { - l = i * 2 * width; - for (j = 0; j < llWidth; j++, k++, l += 2) { - items[l] = llItems[k]; - } +// node_modules/jpeg-lossless-decoder-js/src/quantization-table.js +var require_quantization_table = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/quantization-table.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || function() { + this.precision = []; + this.tq = []; + this.quantTables = jpeg2.lossless.Utils.createArray(4, 64); + this.tq[0] = 0; + this.tq[1] = 0; + this.tq[2] = 0; + this.tq[3] = 0; + }; + jpeg2.lossless.QuantizationTable.enhanceQuantizationTable = function(qtab, table) { + var i2; + for (i2 = 0; i2 < 8; i2 += 1) { + qtab[table[0 * 8 + i2]] *= 90; + qtab[table[4 * 8 + i2]] *= 90; + qtab[table[2 * 8 + i2]] *= 118; + qtab[table[6 * 8 + i2]] *= 49; + qtab[table[5 * 8 + i2]] *= 71; + qtab[table[1 * 8 + i2]] *= 126; + qtab[table[7 * 8 + i2]] *= 25; + qtab[table[3 * 8 + i2]] *= 106; } - // The LL band is not needed anymore. - llItems = ll.items = null; - - var bufferPadding = 4; - var rowBuffer = new Float32Array(width + 2 * bufferPadding); - - // Section F.3.4 HOR_SR - if (width === 1) { - // if width = 1, when u0 even keep items as is, when odd divide by 2 - if ((u0 & 1) !== 0) { - for (v = 0, k = 0; v < height; v++, k += width) { - items[k] *= 0.5; - } - } - } else { - for (v = 0, k = 0; v < height; v++, k += width) { - rowBuffer.set(items.subarray(k, k + width), bufferPadding); - - this.extend(rowBuffer, bufferPadding, width); - this.filter(rowBuffer, bufferPadding, width); - - items.set( - rowBuffer.subarray(bufferPadding, bufferPadding + width), - k); - } + for (i2 = 0; i2 < 8; i2 += 1) { + qtab[table[0 + 8 * i2]] *= 90; + qtab[table[4 + 8 * i2]] *= 90; + qtab[table[2 + 8 * i2]] *= 118; + qtab[table[6 + 8 * i2]] *= 49; + qtab[table[5 + 8 * i2]] *= 71; + qtab[table[1 + 8 * i2]] *= 126; + qtab[table[7 + 8 * i2]] *= 25; + qtab[table[3 + 8 * i2]] *= 106; } - - // Accesses to the items array can take long, because it may not fit into - // CPU cache and has to be fetched from main memory. Since subsequent - // accesses to the items array are not local when reading columns, we - // have a cache miss every time. To reduce cache misses, get up to - // 'numBuffers' items at a time and store them into the individual - // buffers. The colBuffers should be small enough to fit into CPU cache. - var numBuffers = 16; - var colBuffers = []; - for (i = 0; i < numBuffers; i++) { - colBuffers.push(new Float32Array(height + 2 * bufferPadding)); - } - var b, currentBuffer = 0; - ll = bufferPadding + height; - - // Section F.3.5 VER_SR - if (height === 1) { - // if height = 1, when v0 even keep items as is, when odd divide by 2 - if ((v0 & 1) !== 0) { - for (u = 0; u < width; u++) { - items[u] *= 0.5; - } + for (i2 = 0; i2 < 64; i2 += 1) { + qtab[i2] >>= 6; + } + }; + jpeg2.lossless.QuantizationTable.prototype.read = function(data, table) { + var count = 0, length, temp, t, i2; + length = data.get16(); + count += 2; + while (count < length) { + temp = data.get8(); + count += 1; + t = temp & 15; + if (t > 3) { + throw new Error("ERROR: Quantization table ID > 3"); } - } else { - for (u = 0; u < width; u++) { - // if we ran out of buffers, copy several image columns at once - if (currentBuffer === 0) { - numBuffers = Math.min(width - u, numBuffers); - for (k = u, l = bufferPadding; l < ll; k += width, l++) { - for (b = 0; b < numBuffers; b++) { - colBuffers[b][l] = items[k + b]; - } + this.precision[t] = temp >> 4; + if (this.precision[t] === 0) { + this.precision[t] = 8; + } else if (this.precision[t] === 1) { + this.precision[t] = 16; + } else { + throw new Error("ERROR: Quantization table precision error"); + } + this.tq[t] = 1; + if (this.precision[t] === 8) { + for (i2 = 0; i2 < 64; i2 += 1) { + if (count > length) { + throw new Error("ERROR: Quantization table format error"); } - currentBuffer = numBuffers; + this.quantTables[t][i2] = data.get8(); + count += 1; } - - currentBuffer--; - var buffer = colBuffers[currentBuffer]; - this.extend(buffer, bufferPadding, height); - this.filter(buffer, bufferPadding, height); - - // If this is last buffer in this group of buffers, flush all buffers. - if (currentBuffer === 0) { - k = u - numBuffers + 1; - for (l = bufferPadding; l < ll; k += width, l++) { - for (b = 0; b < numBuffers; b++) { - items[k + b] = colBuffers[b][l]; - } + jpeg2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); + } else { + for (i2 = 0; i2 < 64; i2 += 1) { + if (count > length) { + throw new Error("ERROR: Quantization table format error"); } + this.quantTables[t][i2] = data.get16(); + count += 2; } + jpeg2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); } } - - return { - width: width, - height: height, - items: items - }; + if (count !== length) { + throw new Error("ERROR: Quantization table error [count!=Lq]"); + } + return 1; }; - return Transform; - })(); - - // Section 3.8.2 Irreversible 9-7 filter - var IrreversibleTransform = (function IrreversibleTransformClosure() { - function IrreversibleTransform() { - Transform.call(this); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.QuantizationTable; } + } +}); - IrreversibleTransform.prototype = Object.create(Transform.prototype); - IrreversibleTransform.prototype.filter = - function irreversibleTransformFilter(x, offset, length) { - var len = length >> 1; - offset = offset | 0; - var j, n, current, next; - - var alpha = -1.586134342059924; - var beta = -0.052980118572961; - var gamma = 0.882911075530934; - var delta = 0.443506852043971; - var K = 1.230174104914001; - var K_ = 1 / K; - - // step 1 is combined with step 3 +// node_modules/jpeg-lossless-decoder-js/src/scan-component.js +var require_scan_component = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/scan-component.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || function() { + this.acTabSel = 0; + this.dcTabSel = 0; + this.scanCompSel = 0; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.ScanComponent; + } + } +}); - // step 2 - j = offset - 3; - for (n = len + 4; n--; j += 2) { - x[j] *= K_; +// node_modules/jpeg-lossless-decoder-js/src/scan-header.js +var require_scan_header = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/scan-header.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || (typeof require !== "undefined" ? require_scan_component() : null); + jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || function() { + this.ah = 0; + this.al = 0; + this.numComp = 0; + this.selection = 0; + this.spectralEnd = 0; + this.components = []; + }; + jpeg2.lossless.ScanHeader.prototype.read = function(data) { + var count = 0, length, i2, temp; + length = data.get16(); + count += 2; + this.numComp = data.get8(); + count += 1; + for (i2 = 0; i2 < this.numComp; i2 += 1) { + this.components[i2] = new jpeg2.lossless.ScanComponent(); + if (count > length) { + throw new Error("ERROR: scan header format error"); + } + this.components[i2].scanCompSel = data.get8(); + count += 1; + temp = data.get8(); + count += 1; + this.components[i2].dcTabSel = temp >> 4; + this.components[i2].acTabSel = temp & 15; } + this.selection = data.get8(); + count += 1; + this.spectralEnd = data.get8(); + count += 1; + temp = data.get8(); + this.ah = temp >> 4; + this.al = temp & 15; + count += 1; + if (count !== length) { + throw new Error("ERROR: scan header format error [count!=Ns]"); + } + return 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.ScanHeader; + } + } +}); - // step 1 & 3 - j = offset - 2; - current = delta * x[j -1]; - for (n = len + 3; n--; j += 2) { - next = delta * x[j + 1]; - x[j] = K * x[j] - current - next; - if (n--) { - j += 2; - current = delta * x[j + 1]; - x[j] = K * x[j] - current - next; - } else { - break; +// node_modules/jpeg-lossless-decoder-js/src/frame-header.js +var require_frame_header = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/frame-header.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || (typeof require !== "undefined" ? require_component_spec() : null); + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || function() { + this.components = []; + this.dimX = 0; + this.dimY = 0; + this.numComp = 0; + this.precision = 0; + }; + jpeg2.lossless.FrameHeader.prototype.read = function(data) { + var count = 0, length, i2, c, temp; + length = data.get16(); + count += 2; + this.precision = data.get8(); + count += 1; + this.dimY = data.get16(); + count += 2; + this.dimX = data.get16(); + count += 2; + this.numComp = data.get8(); + count += 1; + for (i2 = 1; i2 <= this.numComp; i2 += 1) { + if (count > length) { + throw new Error("ERROR: frame format error"); + } + c = data.get8(); + count += 1; + if (count >= length) { + throw new Error("ERROR: frame format error [c>=Lf]"); + } + temp = data.get8(); + count += 1; + if (!this.components[c]) { + this.components[c] = new jpeg2.lossless.ComponentSpec(); } + this.components[c].hSamp = temp >> 4; + this.components[c].vSamp = temp & 15; + this.components[c].quantTableSel = data.get8(); + count += 1; + } + if (count !== length) { + throw new Error("ERROR: frame format error [Lf!=count]"); } + return 1; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.FrameHeader; + } + } +}); - // step 4 - j = offset - 1; - current = gamma * x[j - 1]; - for (n = len + 2; n--; j += 2) { - next = gamma * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = gamma * x[j + 1]; - x[j] -= current + next; - } else { - break; +// node_modules/jpeg-lossless-decoder-js/src/decoder.js +var require_decoder = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/decoder.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || (typeof require !== "undefined" ? require_huffman_table() : null); + jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || (typeof require !== "undefined" ? require_quantization_table() : null); + jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || (typeof require !== "undefined" ? require_scan_header() : null); + jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || (typeof require !== "undefined" ? require_frame_header() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + jpeg2.lossless.Decoder = jpeg2.lossless.Decoder || function(buffer2, numBytes) { + this.buffer = buffer2; + this.frame = new jpeg2.lossless.FrameHeader(); + this.huffTable = new jpeg2.lossless.HuffmanTable(); + this.quantTable = new jpeg2.lossless.QuantizationTable(); + this.scan = new jpeg2.lossless.ScanHeader(); + this.DU = jpeg2.lossless.Utils.createArray(10, 4, 64); + this.HuffTab = jpeg2.lossless.Utils.createArray(4, 2, 50 * 256); + this.IDCT_Source = []; + this.nBlock = []; + this.acTab = jpeg2.lossless.Utils.createArray(10, 1); + this.dcTab = jpeg2.lossless.Utils.createArray(10, 1); + this.qTab = jpeg2.lossless.Utils.createArray(10, 1); + this.marker = 0; + this.markerIndex = 0; + this.numComp = 0; + this.restartInterval = 0; + this.selection = 0; + this.xDim = 0; + this.yDim = 0; + this.xLoc = 0; + this.yLoc = 0; + this.numBytes = 0; + this.outputData = null; + this.restarting = false; + this.mask = 0; + if (typeof numBytes !== "undefined") { + this.numBytes = numBytes; + } + }; + jpeg2.lossless.Decoder.IDCT_P = [ + 0, + 5, + 40, + 16, + 45, + 2, + 7, + 42, + 21, + 56, + 8, + 61, + 18, + 47, + 1, + 4, + 41, + 23, + 58, + 13, + 32, + 24, + 37, + 10, + 63, + 17, + 44, + 3, + 6, + 43, + 20, + 57, + 15, + 34, + 29, + 48, + 53, + 26, + 39, + 9, + 60, + 19, + 46, + 22, + 59, + 12, + 33, + 31, + 50, + 55, + 25, + 36, + 11, + 62, + 14, + 35, + 28, + 49, + 52, + 27, + 38, + 30, + 51, + 54 + ]; + jpeg2.lossless.Decoder.TABLE = [ + 0, + 1, + 5, + 6, + 14, + 15, + 27, + 28, + 2, + 4, + 7, + 13, + 16, + 26, + 29, + 42, + 3, + 8, + 12, + 17, + 25, + 30, + 41, + 43, + 9, + 11, + 18, + 24, + 31, + 40, + 44, + 53, + 10, + 19, + 23, + 32, + 39, + 45, + 52, + 54, + 20, + 22, + 33, + 38, + 46, + 51, + 55, + 60, + 21, + 34, + 37, + 47, + 50, + 56, + 59, + 61, + 35, + 36, + 48, + 49, + 57, + 58, + 62, + 63 + ]; + jpeg2.lossless.Decoder.MAX_HUFFMAN_SUBTREE = 50; + jpeg2.lossless.Decoder.MSB = 2147483648; + jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN = 65488; + jpeg2.lossless.Decoder.RESTART_MARKER_END = 65495; + jpeg2.lossless.Decoder.prototype.decompress = function(buffer2, offset, length) { + return this.decode(buffer2, offset, length).buffer; + }; + jpeg2.lossless.Decoder.prototype.decode = function(buffer2, offset, length, numBytes) { + var current, scanNum = 0, pred = [], i2, compN, temp = [], index = [], mcuNum; + if (typeof buffer2 !== "undefined") { + this.buffer = buffer2; + } + if (typeof numBytes !== "undefined") { + this.numBytes = numBytes; + } + this.stream = new jpeg2.lossless.DataStream(this.buffer, offset, length); + this.buffer = null; + this.xLoc = 0; + this.yLoc = 0; + current = this.stream.get16(); + if (current !== 65496) { + throw new Error("Not a JPEG file"); + } + current = this.stream.get16(); + while (current >> 4 !== 4092 || current === 65476) { + switch (current) { + case 65476: + this.huffTable.read(this.stream, this.HuffTab); + break; + case 65484: + throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); + case 65499: + this.quantTable.read(this.stream, jpeg2.lossless.Decoder.TABLE); + break; + case 65501: + this.restartInterval = this.readNumber(); + break; + case 65504: + case 65505: + case 65506: + case 65507: + case 65508: + case 65509: + case 65510: + case 65511: + case 65512: + case 65513: + case 65514: + case 65515: + case 65516: + case 65517: + case 65518: + case 65519: + this.readApp(); + break; + case 65534: + this.readComment(); + break; + default: + if (current >> 8 !== 255) { + throw new Error("ERROR: format throw new IOException! (decode)"); + } } + current = this.stream.get16(); } - - // step 5 - j = offset; - current = beta * x[j - 1]; - for (n = len + 1; n--; j += 2) { - next = beta * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = beta * x[j + 1]; - x[j] -= current + next; + if (current < 65472 || current > 65479) { + throw new Error("ERROR: could not handle arithmetic code!"); + } + this.frame.read(this.stream); + current = this.stream.get16(); + do { + while (current !== 65498) { + switch (current) { + case 65476: + this.huffTable.read(this.stream, this.HuffTab); + break; + case 65484: + throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); + case 65499: + this.quantTable.read(this.stream, jpeg2.lossless.Decoder.TABLE); + break; + case 65501: + this.restartInterval = this.readNumber(); + break; + case 65504: + case 65505: + case 65506: + case 65507: + case 65508: + case 65509: + case 65510: + case 65511: + case 65512: + case 65513: + case 65514: + case 65515: + case 65516: + case 65517: + case 65518: + case 65519: + this.readApp(); + break; + case 65534: + this.readComment(); + break; + default: + if (current >> 8 !== 255) { + throw new Error("ERROR: format throw new IOException! (Parser.decode)"); + } + } + current = this.stream.get16(); + } + this.precision = this.frame.precision; + this.components = this.frame.components; + if (!this.numBytes) { + this.numBytes = parseInt(Math.ceil(this.precision / 8)); + } + if (this.numBytes == 1) { + this.mask = 255; } else { - break; + this.mask = 65535; } - } - - // step 6 - if (len !== 0) { - j = offset + 1; - current = alpha * x[j - 1]; - for (n = len; n--; j += 2) { - next = alpha * x[j + 1]; - x[j] -= current + next; - if (n--) { - j += 2; - current = alpha * x[j + 1]; - x[j] -= current + next; + this.scan.read(this.stream); + this.numComp = this.scan.numComp; + this.selection = this.scan.selection; + if (this.numBytes === 1) { + if (this.numComp === 3) { + this.getter = this.getValueRGB; + this.setter = this.setValueRGB; + this.output = this.outputRGB; } else { + this.getter = this.getValue8; + this.setter = this.setValue8; + this.output = this.outputSingle; + } + } else { + this.getter = this.getValue16; + this.setter = this.setValue16; + this.output = this.outputSingle; + } + switch (this.selection) { + case 2: + this.selector = this.select2; + break; + case 3: + this.selector = this.select3; + break; + case 4: + this.selector = this.select4; + break; + case 5: + this.selector = this.select5; + break; + case 6: + this.selector = this.select6; + break; + case 7: + this.selector = this.select7; + break; + default: + this.selector = this.select1; + break; + } + this.scanComps = this.scan.components; + this.quantTables = this.quantTable.quantTables; + for (i2 = 0; i2 < this.numComp; i2 += 1) { + compN = this.scanComps[i2].scanCompSel; + this.qTab[i2] = this.quantTables[this.components[compN].quantTableSel]; + this.nBlock[i2] = this.components[compN].vSamp * this.components[compN].hSamp; + this.dcTab[i2] = this.HuffTab[this.scanComps[i2].dcTabSel][0]; + this.acTab[i2] = this.HuffTab[this.scanComps[i2].acTabSel][1]; + } + this.xDim = this.frame.dimX; + this.yDim = this.frame.dimY; + if (this.numBytes == 1) { + this.outputData = new Uint8Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); + } else { + this.outputData = new Uint16Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); + } + scanNum += 1; + while (true) { + temp[0] = 0; + index[0] = 0; + for (i2 = 0; i2 < 10; i2 += 1) { + pred[i2] = 1 << this.precision - 1; + } + if (this.restartInterval === 0) { + current = this.decodeUnit(pred, temp, index); + while (current === 0 && (this.xLoc < this.xDim && this.yLoc < this.yDim)) { + this.output(pred); + current = this.decodeUnit(pred, temp, index); + } + break; + } + for (mcuNum = 0; mcuNum < this.restartInterval; mcuNum += 1) { + this.restarting = mcuNum == 0; + current = this.decodeUnit(pred, temp, index); + this.output(pred); + if (current !== 0) { + break; + } + } + if (current === 0) { + if (this.markerIndex !== 0) { + current = 65280 | this.marker; + this.markerIndex = 0; + } else { + current = this.stream.get16(); + } + } + if (!(current >= jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN && current <= jpeg2.lossless.Decoder.RESTART_MARKER_END)) { break; } } - } + if (current === 65500 && scanNum === 1) { + this.readNumber(); + current = this.stream.get16(); + } + } while (current !== 65497 && (this.xLoc < this.xDim && this.yLoc < this.yDim) && scanNum === 0); + return this.outputData; }; - - return IrreversibleTransform; - })(); - - // Section 3.8.1 Reversible 5-3 filter - var ReversibleTransform = (function ReversibleTransformClosure() { - function ReversibleTransform() { - Transform.call(this); - } - - ReversibleTransform.prototype = Object.create(Transform.prototype); - ReversibleTransform.prototype.filter = - function reversibleTransformFilter(x, offset, length) { - var len = length >> 1; - offset = offset | 0; - var j, n; - - for (j = offset, n = len + 1; n--; j += 2) { - x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2; - } - - for (j = offset + 1, n = len; n--; j += 2) { - x[j] += (x[j - 1] + x[j + 1]) >> 1; + jpeg2.lossless.Decoder.prototype.decodeUnit = function(prev, temp, index) { + if (this.numComp == 1) { + return this.decodeSingle(prev, temp, index); + } else if (this.numComp == 3) { + return this.decodeRGB(prev, temp, index); + } else { + return -1; } }; - - return ReversibleTransform; - })(); - - return JpxImage; -})(); - - -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -/* This class implements the QM Coder decoding as defined in - * JPEG 2000 Part I Final Committee Draft Version 1.0 - * Annex C.3 Arithmetic decoding procedure - * available at http://www.jpeg.org/public/fcd15444-1.pdf - * - * The arithmetic decoder is used in conjunction with context models to decode - * JPEG2000 and JBIG2 streams. - */ -var ArithmeticDecoder = (function ArithmeticDecoderClosure() { - // Table C-2 - var QeTable = [ - {qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1}, - {qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0}, - {qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0}, - {qe: 0x0AC1, nmps: 4, nlps: 12, switchFlag: 0}, - {qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0}, - {qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0}, - {qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1}, - {qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0}, - {qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0}, - {qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0}, - {qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0}, - {qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0}, - {qe: 0x1C01, nmps: 13, nlps: 20, switchFlag: 0}, - {qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0}, - {qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1}, - {qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0}, - {qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0}, - {qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0}, - {qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0}, - {qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0}, - {qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0}, - {qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0}, - {qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0}, - {qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0}, - {qe: 0x1C01, nmps: 25, nlps: 22, switchFlag: 0}, - {qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0}, - {qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0}, - {qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0}, - {qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0}, - {qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0}, - {qe: 0x0AC1, nmps: 31, nlps: 28, switchFlag: 0}, - {qe: 0x09C1, nmps: 32, nlps: 29, switchFlag: 0}, - {qe: 0x08A1, nmps: 33, nlps: 30, switchFlag: 0}, - {qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0}, - {qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0}, - {qe: 0x02A1, nmps: 36, nlps: 33, switchFlag: 0}, - {qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0}, - {qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0}, - {qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0}, - {qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0}, - {qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0}, - {qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0}, - {qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0}, - {qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0}, - {qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0}, - {qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0}, - {qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0} - ]; - - // C.3.5 Initialisation of the decoder (INITDEC) - function ArithmeticDecoder(data, start, end) { - this.data = data; - this.bp = start; - this.dataEnd = end; - - this.chigh = data[start]; - this.clow = 0; - - this.byteIn(); - - this.chigh = ((this.chigh << 7) & 0xFFFF) | ((this.clow >> 9) & 0x7F); - this.clow = (this.clow << 7) & 0xFFFF; - this.ct -= 7; - this.a = 0x8000; - } - - ArithmeticDecoder.prototype = { - // C.3.4 Compressed data input (BYTEIN) - byteIn: function ArithmeticDecoder_byteIn() { - var data = this.data; - var bp = this.bp; - if (data[bp] === 0xFF) { - var b1 = data[bp + 1]; - if (b1 > 0x8F) { - this.clow += 0xFF00; - this.ct = 8; - } else { - bp++; - this.clow += (data[bp] << 9); - this.ct = 7; - this.bp = bp; + jpeg2.lossless.Decoder.prototype.select1 = function(compOffset) { + return this.getPreviousX(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select2 = function(compOffset) { + return this.getPreviousY(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select3 = function(compOffset) { + return this.getPreviousXY(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select4 = function(compOffset) { + return this.getPreviousX(compOffset) + this.getPreviousY(compOffset) - this.getPreviousXY(compOffset); + }; + jpeg2.lossless.Decoder.prototype.select5 = function(compOffset) { + return this.getPreviousX(compOffset) + (this.getPreviousY(compOffset) - this.getPreviousXY(compOffset) >> 1); + }; + jpeg2.lossless.Decoder.prototype.select6 = function(compOffset) { + return this.getPreviousY(compOffset) + (this.getPreviousX(compOffset) - this.getPreviousXY(compOffset) >> 1); + }; + jpeg2.lossless.Decoder.prototype.select7 = function(compOffset) { + return (this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) / 2; + }; + jpeg2.lossless.Decoder.prototype.decodeRGB = function(prev, temp, index) { + var value, actab, dctab, qtab, ctrC, i2, k, j; + prev[0] = this.selector(0); + prev[1] = this.selector(1); + prev[2] = this.selector(2); + for (ctrC = 0; ctrC < this.numComp; ctrC += 1) { + qtab = this.qTab[ctrC]; + actab = this.acTab[ctrC]; + dctab = this.dcTab[ctrC]; + for (i2 = 0; i2 < this.nBlock[ctrC]; i2 += 1) { + for (k = 0; k < this.IDCT_Source.length; k += 1) { + this.IDCT_Source[k] = 0; + } + value = this.getHuffmanValue(dctab, temp, index); + if (value >= 65280) { + return value; + } + prev[ctrC] = this.IDCT_Source[0] = prev[ctrC] + this.getn(index, value, temp, index); + this.IDCT_Source[0] *= qtab[0]; + for (j = 1; j < 64; j += 1) { + value = this.getHuffmanValue(actab, temp, index); + if (value >= 65280) { + return value; + } + j += value >> 4; + if ((value & 15) === 0) { + if (value >> 4 === 0) { + break; + } + } else { + this.IDCT_Source[jpeg2.lossless.Decoder.IDCT_P[j]] = this.getn(index, value & 15, temp, index) * qtab[j]; + } + } } + } + return 0; + }; + jpeg2.lossless.Decoder.prototype.decodeSingle = function(prev, temp, index) { + var value, i2, n, nRestart; + if (this.restarting) { + this.restarting = false; + prev[0] = 1 << this.frame.precision - 1; } else { - bp++; - this.clow += bp < this.dataEnd ? (data[bp] << 8) : 0xFF00; - this.ct = 8; - this.bp = bp; - } - if (this.clow > 0xFFFF) { - this.chigh += (this.clow >> 16); - this.clow &= 0xFFFF; - } - }, - // C.3.2 Decoding a decision (DECODE) - readBit: function ArithmeticDecoder_readBit(contexts, pos) { - // contexts are packed into 1 byte: - // highest 7 bits carry cx.index, lowest bit carries cx.mps - var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; - var qeTableIcx = QeTable[cx_index]; - var qeIcx = qeTableIcx.qe; - var d; - var a = this.a - qeIcx; - - if (this.chigh < qeIcx) { - // exchangeLps - if (a < qeIcx) { - a = qeIcx; - d = cx_mps; - cx_index = qeTableIcx.nmps; - } else { - a = qeIcx; - d = 1 ^ cx_mps; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; + prev[0] = this.selector(); + } + for (i2 = 0; i2 < this.nBlock[0]; i2 += 1) { + value = this.getHuffmanValue(this.dcTab[0], temp, index); + if (value >= 65280) { + return value; + } + n = this.getn(prev, value, temp, index); + nRestart = n >> 8; + if (nRestart >= jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN && nRestart <= jpeg2.lossless.Decoder.RESTART_MARKER_END) { + return nRestart; + } + prev[0] += n; + } + return 0; + }; + jpeg2.lossless.Decoder.prototype.getHuffmanValue = function(table, temp, index) { + var code, input, mask; + mask = 65535; + if (index[0] < 8) { + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; } - cx_index = qeTableIcx.nlps; } + temp[0] |= input; } else { - this.chigh -= qeIcx; - if ((a & 0x8000) !== 0) { - this.a = a; - return cx_mps; + index[0] -= 8; + } + code = table[temp[0] >> index[0]]; + if ((code & jpeg2.lossless.Decoder.MSB) !== 0) { + if (this.markerIndex !== 0) { + this.markerIndex = 0; + return 65280 | this.marker; } - // exchangeMps - if (a < qeIcx) { - d = 1 ^ cx_mps; - if (qeTableIcx.switchFlag === 1) { - cx_mps = d; + temp[0] &= mask >> 16 - index[0]; + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; } - cx_index = qeTableIcx.nlps; + } + temp[0] |= input; + code = table[(code & 255) * 256 + (temp[0] >> index[0])]; + index[0] += 8; + } + index[0] += 8 - (code >> 8); + if (index[0] < 0) { + throw new Error("index=" + index[0] + " temp=" + temp[0] + " code=" + code + " in HuffmanValue()"); + } + if (index[0] < this.markerIndex) { + this.markerIndex = 0; + return 65280 | this.marker; + } + temp[0] &= mask >> 16 - index[0]; + return code & 255; + }; + jpeg2.lossless.Decoder.prototype.getn = function(PRED, n, temp, index) { + var result, one, n_one, mask, input; + one = 1; + n_one = -1; + mask = 65535; + if (n === 0) { + return 0; + } + if (n === 16) { + if (PRED[0] >= 0) { + return -32768; } else { - d = cx_mps; - cx_index = qeTableIcx.nmps; + return 32768; } } - // C.3.3 renormD; - do { - if (this.ct === 0) { - this.byteIn(); + index[0] -= n; + if (index[0] >= 0) { + if (index[0] < this.markerIndex && !this.isLastPixel()) { + this.markerIndex = 0; + return (65280 | this.marker) << 8; } - - a <<= 1; - this.chigh = ((this.chigh << 1) & 0xFFFF) | ((this.clow >> 15) & 1); - this.clow = (this.clow << 1) & 0xFFFF; - this.ct--; - } while ((a & 0x8000) === 0); - this.a = a; - - contexts[pos] = cx_index << 1 | cx_mps; - return d; - } - }; - - return ArithmeticDecoder; -})(); - -/* Copyright 2012 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* globals Cmd, ColorSpace, Dict, MozBlobBuilder, Name, PDFJS, Ref, URL, - Promise */ - -'use strict'; - -var globalScope = (typeof window === 'undefined') ? this : window; - -var isWorker = (typeof window === 'undefined'); - -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; - -var TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7, - FILL_STROKE_MASK: 3, - ADD_TO_PATH_FLAG: 4 -}; - -var ImageKind = { - GRAYSCALE_1BPP: 1, - RGB_24BPP: 2, - RGBA_32BPP: 3 -}; - -var AnnotationType = { - WIDGET: 1, - TEXT: 2, - LINK: 3 -}; - -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 -}; - -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 -}; - -// The global PDFJS object exposes the API -// In production, it will be declared outside a global wrapper -// In development, it will be declared here -if (!globalScope.PDFJS) { - globalScope.PDFJS = {}; -} - -//globalScope.PDFJS.pdfBug = false; - -var PDFJS = PDFJS || {}; - -PDFJS.VERBOSITY_LEVELS = { - errors: 0, - warnings: 1, - infos: 5 -}; - -// All the possible operations for an operator list. -var OPS = PDFJS.OPS = { - // Intentionally start from 1 so it is easy to spot bad operators that will be - // 0's. - dependency: 1, - setLineWidth: 2, - setLineCap: 3, - setLineJoin: 4, - setMiterLimit: 5, - setDash: 6, - setRenderingIntent: 7, - setFlatness: 8, - setGState: 9, - save: 10, - restore: 11, - transform: 12, - moveTo: 13, - lineTo: 14, - curveTo: 15, - curveTo2: 16, - curveTo3: 17, - closePath: 18, - rectangle: 19, - stroke: 20, - closeStroke: 21, - fill: 22, - eoFill: 23, - fillStroke: 24, - eoFillStroke: 25, - closeFillStroke: 26, - closeEOFillStroke: 27, - endPath: 28, - clip: 29, - eoClip: 30, - beginText: 31, - endText: 32, - setCharSpacing: 33, - setWordSpacing: 34, - setHScale: 35, - setLeading: 36, - setFont: 37, - setTextRenderingMode: 38, - setTextRise: 39, - moveText: 40, - setLeadingMoveText: 41, - setTextMatrix: 42, - nextLine: 43, - showText: 44, - showSpacedText: 45, - nextLineShowText: 46, - nextLineSetSpacingShowText: 47, - setCharWidth: 48, - setCharWidthAndBounds: 49, - setStrokeColorSpace: 50, - setFillColorSpace: 51, - setStrokeColor: 52, - setStrokeColorN: 53, - setFillColor: 54, - setFillColorN: 55, - setStrokeGray: 56, - setFillGray: 57, - setStrokeRGBColor: 58, - setFillRGBColor: 59, - setStrokeCMYKColor: 60, - setFillCMYKColor: 61, - shadingFill: 62, - beginInlineImage: 63, - beginImageData: 64, - endInlineImage: 65, - paintXObject: 66, - markPoint: 67, - markPointProps: 68, - beginMarkedContent: 69, - beginMarkedContentProps: 70, - endMarkedContent: 71, - beginCompat: 72, - endCompat: 73, - paintFormXObjectBegin: 74, - paintFormXObjectEnd: 75, - beginGroup: 76, - endGroup: 77, - beginAnnotations: 78, - endAnnotations: 79, - beginAnnotation: 80, - endAnnotation: 81, - paintJpegXObject: 82, - paintImageMaskXObject: 83, - paintImageMaskXObjectGroup: 84, - paintImageXObject: 85, - paintInlineImageXObject: 86, - paintInlineImageXObjectGroup: 87, - paintImageXObjectRepeat: 88, - paintImageMaskXObjectRepeat: 89, - paintSolidColorImageMask: 90, - constructPath: 91 -}; - -// A notice for devs. These are good for things that are helpful to devs, such -// as warning that Workers were disabled, which is important to devs but not -// end users. -function info(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { - console.log('Info: ' + msg); - } -} - -// Non-fatal warnings. -function warn(msg) { - if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { - console.log('Warning: ' + msg); - } -} - -// Fatal errors that should trigger the fallback UI and halt execution by -// throwing an exception. -function error(msg) { - // If multiple arguments were passed, pass them all to the log function. - if (arguments.length > 1) { - var logArguments = ['Error:']; - logArguments.push.apply(logArguments, arguments); - console.log.apply(console, logArguments); - // Join the arguments into a single string for the lines below. - msg = [].join.call(arguments, ' '); - } else { - console.log('Error: ' + msg); - } - console.log(backtrace()); - UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); - throw new Error(msg); -} - -function backtrace() { - try { - throw new Error(); - } catch (e) { - return e.stack ? e.stack.split('\n').slice(2).join('\n') : ''; - } -} - -function assert(cond, msg) { - if (!cond) { - error(msg); - } -} - -var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' -}; - -var UnsupportedManager = PDFJS.UnsupportedManager = - (function UnsupportedManagerClosure() { - var listeners = []; - return { - listen: function (cb) { - listeners.push(cb); - }, - notify: function (featureId) { - warn('Unsupported feature "' + featureId + '"'); - for (var i = 0, ii = listeners.length; i < ii; i++) { - listeners[i](featureId); + result = temp[0] >> index[0]; + temp[0] &= mask >> 16 - index[0]; + } else { + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; + } + } + temp[0] |= input; + index[0] += 8; + if (index[0] < 0) { + if (this.markerIndex !== 0) { + this.markerIndex = 0; + return (65280 | this.marker) << 8; + } + temp[0] <<= 8; + input = this.stream.get8(); + if (input === 255) { + this.marker = this.stream.get8(); + if (this.marker !== 0) { + this.markerIndex = 9; + } + } + temp[0] |= input; + index[0] += 8; + } + if (index[0] < 0) { + throw new Error("index=" + index[0] + " in getn()"); + } + if (index[0] < this.markerIndex) { + this.markerIndex = 0; + return (65280 | this.marker) << 8; + } + result = temp[0] >> index[0]; + temp[0] &= mask >> 16 - index[0]; } - } - }; -})(); - -// Combines two URLs. The baseUrl shall be absolute URL. If the url is an -// absolute URL, it will be returned as is. -function combineUrl(baseUrl, url) { - if (!url) { - return baseUrl; - } - if (/^[a-z][a-z0-9+\-.]*:/i.test(url)) { - return url; - } - var i; - if (url.charAt(0) === '/') { - // absolute path - i = baseUrl.indexOf('://'); - if (url.charAt(1) === '/') { - ++i; - } else { - i = baseUrl.indexOf('/', i + 3); - } - return baseUrl.substring(0, i) + url; - } else { - // relative path - var pathLength = baseUrl.length; - i = baseUrl.lastIndexOf('#'); - pathLength = i >= 0 ? i : pathLength; - i = baseUrl.lastIndexOf('?', pathLength); - pathLength = i >= 0 ? i : pathLength; - var prefixLength = baseUrl.lastIndexOf('/', pathLength); - return baseUrl.substring(0, prefixLength + 1) + url; - } -} - -// Validates if URL is safe and allowed, e.g. to avoid XSS. -function isValidUrl(url, allowRelative) { - if (!url) { - return false; - } - // RFC 3986 (http://tools.ietf.org/html/rfc3986#section-3.1) - // scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); - if (!protocol) { - return allowRelative; - } - protocol = protocol[0].toLowerCase(); - switch (protocol) { - case 'http': - case 'https': - case 'ftp': - case 'mailto': - case 'tel': - return true; - default: - return false; - } -} -PDFJS.isValidUrl = isValidUrl; - -function shadow(obj, prop, value) { - Object.defineProperty(obj, prop, { value: value, - enumerable: true, - configurable: true, - writable: false }); - return value; -} -PDFJS.shadow = shadow; - -var PasswordResponses = PDFJS.PasswordResponses = { - NEED_PASSWORD: 1, - INCORRECT_PASSWORD: 2 -}; - -var PasswordException = (function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; - this.code = code; - } - - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - - return PasswordException; -})(); -PDFJS.PasswordException = PasswordException; - -var UnknownErrorException = (function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; - this.details = details; - } - - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - - return UnknownErrorException; -})(); -PDFJS.UnknownErrorException = UnknownErrorException; - -var InvalidPDFException = (function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - - return InvalidPDFException; -})(); -PDFJS.InvalidPDFException = InvalidPDFException; - -var MissingPDFException = (function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - - return MissingPDFException; -})(); -PDFJS.MissingPDFException = MissingPDFException; - -var UnexpectedResponseException = - (function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; - this.status = status; - } - - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - - return UnexpectedResponseException; -})(); -PDFJS.UnexpectedResponseException = UnexpectedResponseException; - -var NotImplementedException = (function NotImplementedExceptionClosure() { - function NotImplementedException(msg) { - this.message = msg; - } - - NotImplementedException.prototype = new Error(); - NotImplementedException.prototype.name = 'NotImplementedException'; - NotImplementedException.constructor = NotImplementedException; - - return NotImplementedException; -})(); - -var MissingDataException = (function MissingDataExceptionClosure() { - function MissingDataException(begin, end) { - this.begin = begin; - this.end = end; - this.message = 'Missing data [' + begin + ', ' + end + ')'; - } - - MissingDataException.prototype = new Error(); - MissingDataException.prototype.name = 'MissingDataException'; - MissingDataException.constructor = MissingDataException; - - return MissingDataException; -})(); - -var XRefParseException = (function XRefParseExceptionClosure() { - function XRefParseException(msg) { - this.message = msg; - } - - XRefParseException.prototype = new Error(); - XRefParseException.prototype.name = 'XRefParseException'; - XRefParseException.constructor = XRefParseException; - - return XRefParseException; -})(); - - -function bytesToString(bytes) { - assert(bytes !== null && typeof bytes === 'object' && - bytes.length !== undefined, 'Invalid argument for bytesToString'); - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; - if (length < MAX_ARGUMENT_COUNT) { - return String.fromCharCode.apply(null, bytes); - } - var strBuf = []; - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); - strBuf.push(String.fromCharCode.apply(null, chunk)); - } - return strBuf.join(''); -} - -function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; - } - return bytes; -} - -function string32(value) { - return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff, - (value >> 8) & 0xff, value & 0xff); -} - -function log2(x) { - var n = 1, i = 0; - while (x > n) { - n <<= 1; - i++; - } - return i; -} - -function readInt8(data, start) { - return (data[start] << 24) >> 24; -} - -function readUint16(data, offset) { - return (data[offset] << 8) | data[offset + 1]; -} - -function readUint32(data, offset) { - return ((data[offset] << 24) | (data[offset + 1] << 16) | - (data[offset + 2] << 8) | data[offset + 3]) >>> 0; -} - -// Lazy test the endianness of the platform -// NOTE: This will be 'true' for simulated TypedArrays -function isLittleEndian() { - var buffer8 = new Uint8Array(2); - buffer8[0] = 1; - var buffer16 = new Uint16Array(buffer8.buffer); - return (buffer16[0] === 1); -} - -Object.defineProperty(PDFJS, 'isLittleEndian', { - configurable: true, - get: function PDFJS_isLittleEndian() { - return shadow(PDFJS, 'isLittleEndian', isLittleEndian()); - } -}); - -//#if !(FIREFOX || MOZCENTRAL || B2G || CHROME) -//// Lazy test if the userAgant support CanvasTypedArrays -function hasCanvasTypedArrays() { - var canvas = document.createElement('canvas'); - canvas.width = canvas.height = 1; - var ctx = canvas.getContext('2d'); - var imageData = ctx.createImageData(1, 1); - return (typeof imageData.data.buffer !== 'undefined'); -} - -Object.defineProperty(PDFJS, 'hasCanvasTypedArrays', { - configurable: true, - get: function PDFJS_hasCanvasTypedArrays() { - return shadow(PDFJS, 'hasCanvasTypedArrays', hasCanvasTypedArrays()); - } -}); - -var Uint32ArrayView = (function Uint32ArrayViewClosure() { - - function Uint32ArrayView(buffer, length) { - this.buffer = buffer; - this.byteLength = buffer.length; - this.length = length === undefined ? (this.byteLength >> 2) : length; - ensureUint32ArrayViewProps(this.length); - } - Uint32ArrayView.prototype = Object.create(null); - - var uint32ArrayViewSetters = 0; - function createUint32ArrayProp(index) { - return { - get: function () { - var buffer = this.buffer, offset = index << 2; - return (buffer[offset] | (buffer[offset + 1] << 8) | - (buffer[offset + 2] << 16) | (buffer[offset + 3] << 24)) >>> 0; - }, - set: function (value) { - var buffer = this.buffer, offset = index << 2; - buffer[offset] = value & 255; - buffer[offset + 1] = (value >> 8) & 255; - buffer[offset + 2] = (value >> 16) & 255; - buffer[offset + 3] = (value >>> 24) & 255; + if (result < one << n - 1) { + result += (n_one << n) + 1; } + return result; }; - } - - function ensureUint32ArrayViewProps(length) { - while (uint32ArrayViewSetters < length) { - Object.defineProperty(Uint32ArrayView.prototype, - uint32ArrayViewSetters, - createUint32ArrayProp(uint32ArrayViewSetters)); - uint32ArrayViewSetters++; - } - } - - return Uint32ArrayView; -})(); -//#else -//PDFJS.hasCanvasTypedArrays = true; -//#endif - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; - -var Util = PDFJS.Util = (function UtilClosure() { - function Util() {} - - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; - - // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids - // creating many intermediate strings. - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { - rgbBuf[1] = r; - rgbBuf[3] = g; - rgbBuf[5] = b; - return rgbBuf.join(''); - }; - - // Concatenates two transformation matrices together and returns the result. - Util.transform = function Util_transform(m1, m2) { - return [ - m1[0] * m2[0] + m1[2] * m2[1], - m1[1] * m2[0] + m1[3] * m2[1], - m1[0] * m2[2] + m1[2] * m2[3], - m1[1] * m2[2] + m1[3] * m2[3], - m1[0] * m2[4] + m1[2] * m2[5] + m1[4], - m1[1] * m2[4] + m1[3] * m2[5] + m1[5] - ]; - }; - - // For 2d affine transforms - Util.applyTransform = function Util_applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - }; - - Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - }; - - // Applies the transform to the rectangle and finds the minimum axially - // aligned bounding box. - Util.getAxialAlignedBoundingBox = - function Util_getAxialAlignedBoundingBox(r, m) { - - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); - return [ - Math.min(p1[0], p2[0], p3[0], p4[0]), - Math.min(p1[1], p2[1], p3[1], p4[1]), - Math.max(p1[0], p2[0], p3[0], p4[0]), - Math.max(p1[1], p2[1], p3[1], p4[1]) - ]; - }; - - Util.inverseTransform = function Util_inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, - (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - }; - - // Apply a generic 3d matrix M on a 3-vector v: - // | a b c | | X | - // | d e f | x | Y | - // | g h i | | Z | - // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i], - // with v as [X,Y,Z] - Util.apply3dTransform = function Util_apply3dTransform(m, v) { - return [ - m[0] * v[0] + m[1] * v[1] + m[2] * v[2], - m[3] * v[0] + m[4] * v[1] + m[5] * v[2], - m[6] * v[0] + m[7] * v[1] + m[8] * v[2] - ]; - }; - - // This calculation uses Singular Value Decomposition. - // The SVD can be represented with formula A = USV. We are interested in the - // matrix S here because it represents the scale values. - Util.singularValueDecompose2dScale = - function Util_singularValueDecompose2dScale(m) { - - var transpose = [m[0], m[2], m[1], m[3]]; - - // Multiply matrix m with its transpose. - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - - // Solve the second degree polynomial to get roots. - var first = (a + d) / 2; - var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; - - // Scale values are the square roots of the eigenvalues. - return [Math.sqrt(sx), Math.sqrt(sy)]; - }; - - // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2) - // For coordinate systems whose origin lies in the bottom-left, this - // means normalization to (BL,TR) ordering. For systems with origin in the - // top-left, this means (TL,BR) ordering. - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); // clone rect - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - return r; - }; - - // Returns a rectangle [x1, y1, x2, y2] corresponding to the - // intersection of rect1 and rect2. If no intersection, returns 'false' - // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2] - Util.intersect = function Util_intersect(rect1, rect2) { - function compare(a, b) { - return a - b; - } - - // Order points along the axes - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), - orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), - result = []; - - rect1 = Util.normalizeRect(rect1); - rect2 = Util.normalizeRect(rect2); - - // X: first and second points belong to different rectangles? - if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) || - (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) { - // Intersection must be between second and third points - result[0] = orderedX[1]; - result[2] = orderedX[2]; - } else { - return false; - } - - // Y: first and second points belong to different rectangles? - if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) || - (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) { - // Intersection must be between second and third points - result[1] = orderedY[1]; - result[3] = orderedY[2]; + jpeg2.lossless.Decoder.prototype.getPreviousX = function(compOffset) { + if (this.xLoc > 0) { + return this.getter(this.yLoc * this.xDim + this.xLoc - 1, compOffset); + } else if (this.yLoc > 0) { + return this.getPreviousY(compOffset); + } else { + return 1 << this.frame.precision - 1; + } + }; + jpeg2.lossless.Decoder.prototype.getPreviousXY = function(compOffset) { + if (this.xLoc > 0 && this.yLoc > 0) { + return this.getter((this.yLoc - 1) * this.xDim + this.xLoc - 1, compOffset); + } else { + return this.getPreviousY(compOffset); + } + }; + jpeg2.lossless.Decoder.prototype.getPreviousY = function(compOffset) { + if (this.yLoc > 0) { + return this.getter((this.yLoc - 1) * this.xDim + this.xLoc, compOffset); + } else { + return this.getPreviousX(compOffset); + } + }; + jpeg2.lossless.Decoder.prototype.isLastPixel = function() { + return this.xLoc === this.xDim - 1 && this.yLoc === this.yDim - 1; + }; + jpeg2.lossless.Decoder.prototype.outputSingle = function(PRED) { + if (this.xLoc < this.xDim && this.yLoc < this.yDim) { + this.setter(this.yLoc * this.xDim + this.xLoc, this.mask & PRED[0]); + this.xLoc += 1; + if (this.xLoc >= this.xDim) { + this.yLoc += 1; + this.xLoc = 0; + } + } + }; + jpeg2.lossless.Decoder.prototype.outputRGB = function(PRED) { + var offset = this.yLoc * this.xDim + this.xLoc; + if (this.xLoc < this.xDim && this.yLoc < this.yDim) { + this.setter(offset, PRED[0], 0); + this.setter(offset, PRED[1], 1); + this.setter(offset, PRED[2], 2); + this.xLoc += 1; + if (this.xLoc >= this.xDim) { + this.yLoc += 1; + this.xLoc = 0; + } + } + }; + jpeg2.lossless.Decoder.prototype.setValue8 = function(index, val) { + this.outputData[index] = val; + }; + jpeg2.lossless.Decoder.prototype.getValue8 = function(index) { + return this.outputData[index]; + }; + var littleEndian = function() { + var buffer2 = new ArrayBuffer(2); + new DataView(buffer2).setInt16( + 0, + 256, + true + /* littleEndian */ + ); + return new Int16Array(buffer2)[0] === 256; + }(); + if (littleEndian) { + jpeg2.lossless.Decoder.prototype.setValue16 = jpeg2.lossless.Decoder.prototype.setValue8; + jpeg2.lossless.Decoder.prototype.getValue16 = jpeg2.lossless.Decoder.prototype.getValue8; } else { - return false; - } - - return result; - }; - - Util.sign = function Util_sign(num) { - return num < 0 ? -1 : 1; - }; - - Util.appendToArray = function Util_appendToArray(arr1, arr2) { - Array.prototype.push.apply(arr1, arr2); - }; - - Util.prependToArray = function Util_prependToArray(arr1, arr2) { - Array.prototype.unshift.apply(arr1, arr2); - }; - - Util.extendObj = function extendObj(obj1, obj2) { - for (var key in obj2) { - obj1[key] = obj2[key]; - } - }; - - Util.getInheritableProperty = function Util_getInheritableProperty(dict, - name) { - while (dict && !dict.has(name)) { - dict = dict.get('Parent'); - } - if (!dict) { - return null; - } - return dict.get(name); - }; - - Util.inherit = function Util_inherit(sub, base, prototype) { - sub.prototype = Object.create(base.prototype); - sub.prototype.constructor = sub; - for (var prop in prototype) { - sub.prototype[prop] = prototype[prop]; - } - }; - - Util.loadScript = function Util_loadScript(src, callback) { - var script = document.createElement('script'); - var loaded = false; - script.setAttribute('src', src); - if (callback) { - script.onload = function() { - if (!loaded) { - callback(); - } - loaded = true; + jpeg2.lossless.Decoder.prototype.setValue16 = function(index, val) { + this.outputData[index] = (val & 255) << 8 | val >> 8 & 255; + }; + jpeg2.lossless.Decoder.prototype.getValue16 = function(index) { + var val = this.outputData[index]; + return (val & 255) << 8 | val >> 8 & 255; }; } - document.getElementsByTagName('head')[0].appendChild(script); - }; - - return Util; -})(); - -/** - * PDF page viewport created based on scale, rotation and offset. - * @class - * @alias PDFJS.PageViewport - */ -var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() { - /** - * @constructor - * @private - * @param viewBox {Array} xMin, yMin, xMax and yMax coordinates. - * @param scale {number} scale of the viewport. - * @param rotation {number} rotations of the viewport in degrees. - * @param offsetX {number} offset X - * @param offsetY {number} offset Y - * @param dontFlip {boolean} if true, axis Y will not be flipped. - */ - function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - - // creating transform to convert pdf coordinate system to the normal - // canvas like coordinates taking in account scale and rotation - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation = rotation % 360; - rotation = rotation < 0 ? rotation + 360 : rotation; - switch (rotation) { - case 180: - rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; - break; - case 90: - rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; - break; - case 270: - rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; - break; - //case 0: - default: - rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; - break; - } - - if (dontFlip) { - rotateC = -rotateC; rotateD = -rotateD; - } - - var offsetCanvasX, offsetCanvasY; - var width, height; - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; + jpeg2.lossless.Decoder.prototype.setValueRGB = function(index, val, compOffset) { + this.outputData[index * 3 + compOffset] = val; + }; + jpeg2.lossless.Decoder.prototype.getValueRGB = function(index, compOffset) { + return this.outputData[index * 3 + compOffset]; + }; + jpeg2.lossless.Decoder.prototype.readApp = function() { + var count = 0, length = this.stream.get16(); + count += 2; + while (count < length) { + this.stream.get8(); + count += 1; + } + return length; + }; + jpeg2.lossless.Decoder.prototype.readComment = function() { + var sb = "", count = 0, length; + length = this.stream.get16(); + count += 2; + while (count < length) { + sb += this.stream.get8(); + count += 1; + } + return sb; + }; + jpeg2.lossless.Decoder.prototype.readNumber = function() { + var Ld = this.stream.get16(); + if (Ld !== 4) { + throw new Error("ERROR: Define number format throw new IOException [Ld!=4]"); + } + return this.stream.get16(); + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2.lossless.Decoder; } - // creating transform for the following operations: - // translate(-centerX, -centerY), rotate and flip vertically, - // scale, and translate(offsetCanvasX, offsetCanvasY) - this.transform = [ - rotateA * scale, - rotateB * scale, - rotateC * scale, - rotateD * scale, - offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, - offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY - ]; - - this.width = width; - this.height = height; - this.fontScale = scale; } - PageViewport.prototype = /** @lends PDFJS.PageViewport.prototype */ { - /** - * Clones viewport with additional properties. - * @param args {Object} (optional) If specified, may contain the 'scale' or - * 'rotation' properties to override the corresponding properties in - * the cloned viewport. - * @returns {PDFJS.PageViewport} Cloned viewport. - */ - clone: function PageViewPort_clone(args) { - args = args || {}; - var scale = 'scale' in args ? args.scale : this.scale; - var rotation = 'rotation' in args ? args.rotation : this.rotation; - return new PageViewport(this.viewBox.slice(), scale, rotation, - this.offsetX, this.offsetY, args.dontFlip); - }, - /** - * Converts PDF point to the viewport coordinates. For examples, useful for - * converting PDF location into canvas pixel coordinates. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the viewport coordinate space. - * @see {@link convertToPdfPoint} - * @see {@link convertToViewportRectangle} - */ - convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { - return Util.applyTransform([x, y], this.transform); - }, - /** - * Converts PDF rectangle to the viewport coordinates. - * @param rect {Array} xMin, yMin, xMax and yMax coordinates. - * @returns {Array} Contains corresponding coordinates of the rectangle - * in the viewport coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToViewportRectangle: - function PageViewport_convertToViewportRectangle(rect) { - var tl = Util.applyTransform([rect[0], rect[1]], this.transform); - var br = Util.applyTransform([rect[2], rect[3]], this.transform); - return [tl[0], tl[1], br[0], br[1]]; - }, - /** - * Converts viewport coordinates to the PDF location. For examples, useful - * for converting canvas pixel location into PDF one. - * @param x {number} X coordinate. - * @param y {number} Y coordinate. - * @returns {Object} Object that contains 'x' and 'y' properties of the - * point in the PDF coordinate space. - * @see {@link convertToViewportPoint} - */ - convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { - return Util.applyInverseTransform([x, y], this.transform); - } - }; - return PageViewport; -})(); - -var PDFStringTranslateTable = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, - 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, - 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, - 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC -]; +}); -function stringToPDFString(str) { - var i, n = str.length, strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - // UTF16BE BOM - for (i = 2; i < n; i += 2) { - strBuf.push(String.fromCharCode( - (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))); - } - } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; - strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); +// node_modules/jpeg-lossless-decoder-js/src/main.js +var require_main = __commonJS({ + "node_modules/jpeg-lossless-decoder-js/src/main.js"(exports2, module2) { + "use strict"; + var jpeg2 = jpeg2 || {}; + jpeg2.lossless = jpeg2.lossless || {}; + jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || (typeof require !== "undefined" ? require_component_spec() : null); + jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); + jpeg2.lossless.Decoder = jpeg2.lossless.Decoder || (typeof require !== "undefined" ? require_decoder() : null); + jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || (typeof require !== "undefined" ? require_frame_header() : null); + jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || (typeof require !== "undefined" ? require_huffman_table() : null); + jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || (typeof require !== "undefined" ? require_quantization_table() : null); + jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || (typeof require !== "undefined" ? require_scan_component() : null); + jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || (typeof require !== "undefined" ? require_scan_header() : null); + jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = jpeg2; } } - return strBuf.join(''); -} - -function stringToUTF8String(str) { - return decodeURIComponent(escape(str)); -} - -function isEmptyObj(obj) { - for (var key in obj) { - return false; - } - return true; -} - -function isBool(v) { - return typeof v === 'boolean'; -} - -function isInt(v) { - return typeof v === 'number' && ((v | 0) === v); -} - -function isNum(v) { - return typeof v === 'number'; -} - -function isString(v) { - return typeof v === 'string'; -} - -function isNull(v) { - return v === null; -} +}); -function isName(v) { - return v instanceof Name; -} - -function isCmd(v, cmd) { - return v instanceof Cmd && (cmd === undefined || v.cmd === cmd); -} - -function isDict(v, type) { - if (!(v instanceof Dict)) { - return false; - } - if (!type) { - return true; - } - var dictType = v.get('Type'); - return isName(dictType) && dictType.name === type; -} - -function isArray(v) { - return v instanceof Array; -} - -function isStream(v) { - return typeof v === 'object' && v !== null && v.getBytes !== undefined; -} - -function isArrayBuffer(v) { - return typeof v === 'object' && v !== null && v.byteLength !== undefined; -} - -function isRef(v) { - return v instanceof Ref; -} - -/** - * Promise Capability object. - * - * @typedef {Object} PromiseCapability - * @property {Promise} promise - A promise object. - * @property {function} resolve - Fullfills the promise. - * @property {function} reject - Rejects the promise. - */ - -/** - * Creates a promise capability object. - * @alias PDFJS.createPromiseCapability - * - * @return {PromiseCapability} A capability object contains: - * - a Promise, resolve and reject methods. - */ -function createPromiseCapability() { - var capability = {}; - capability.promise = new Promise(function (resolve, reject) { - capability.resolve = resolve; - capability.reject = reject; - }); - return capability; -} - -PDFJS.createPromiseCapability = createPromiseCapability; - -/** - * Polyfill for Promises: - * The following promise implementation tries to generally implement the - * Promise/A+ spec. Some notable differences from other promise libaries are: - * - There currently isn't a seperate deferred and promise object. - * - Unhandled rejections eventually show an error if they aren't handled. - * - * Based off of the work in: - * https://bugzilla.mozilla.org/show_bug.cgi?id=810490 - */ -(function PromiseClosure() { - if (globalScope.Promise) { - // Promises existing in the DOM/Worker, checking presence of all/resolve - if (typeof globalScope.Promise.all !== 'function') { - globalScope.Promise.all = function (iterable) { - var count = 0, results = [], resolve, reject; - var promise = new globalScope.Promise(function (resolve_, reject_) { - resolve = resolve_; - reject = reject_; - }); - iterable.forEach(function (p, i) { - count++; - p.then(function (result) { - results[i] = result; - count--; - if (count === 0) { - resolve(results); - } - }, reject); - }); - if (count === 0) { - resolve(results); - } - return promise; - }; - } - if (typeof globalScope.Promise.resolve !== 'function') { - globalScope.Promise.resolve = function (value) { - return new globalScope.Promise(function (resolve) { resolve(value); }); - }; - } - if (typeof globalScope.Promise.reject !== 'function') { - globalScope.Promise.reject = function (reason) { - return new globalScope.Promise(function (resolve, reject) { - reject(reason); - }); - }; - } - if (typeof globalScope.Promise.prototype.catch2 !== 'function') { - globalScope.Promise.prototype.catch2 = function (onReject) { - return globalScope.Promise.prototype.then(undefined, onReject); - }; - } - return; - } -//#if !MOZCENTRAL - var STATUS_PENDING = 0; - var STATUS_RESOLVED = 1; - var STATUS_REJECTED = 2; - - // In an attempt to avoid silent exceptions, unhandled rejections are - // tracked and if they aren't handled in a certain amount of time an - // error is logged. - var REJECTION_TIMEOUT = 500; - - var HandlerManager = { - handlers: [], - running: false, - unhandledRejections: [], - pendingRejectionCheck: false, - - scheduleHandlers: function scheduleHandlers(promise) { - if (promise._status === STATUS_PENDING) { - return; - } - - this.handlers = this.handlers.concat(promise._handlers); - promise._handlers = []; - - if (this.running) { - return; +// lib/jpeg-baseline.js +var require_jpeg_baseline = __commonJS({ + "lib/jpeg-baseline.js"(exports2, module2) { + var ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 }; + var JpegImage = function jpegImage() { + "use strict"; + var dctZigZag = new Int32Array([ + 0, + 1, + 8, + 16, + 9, + 2, + 3, + 10, + 17, + 24, + 32, + 25, + 18, + 11, + 4, + 5, + 12, + 19, + 26, + 33, + 40, + 48, + 41, + 34, + 27, + 20, + 13, + 6, + 7, + 14, + 21, + 28, + 35, + 42, + 49, + 56, + 57, + 50, + 43, + 36, + 29, + 22, + 15, + 23, + 30, + 37, + 44, + 51, + 58, + 59, + 52, + 45, + 38, + 31, + 39, + 46, + 53, + 60, + 61, + 54, + 47, + 55, + 62, + 63 + ]); + var dctCos1 = 4017; + var dctSin1 = 799; + var dctCos3 = 3406; + var dctSin3 = 2276; + var dctCos6 = 1567; + var dctSin6 = 3784; + var dctSqrt2 = 5793; + var dctSqrt1d2 = 2896; + function constructor() { } - this.running = true; - - setTimeout(this.runHandlers.bind(this), 0); - }, - - runHandlers: function runHandlers() { - var RUN_TIMEOUT = 1; // ms - var timeoutAt = Date.now() + RUN_TIMEOUT; - while (this.handlers.length > 0) { - var handler = this.handlers.shift(); - - var nextStatus = handler.thisPromise._status; - var nextValue = handler.thisPromise._value; - - try { - if (nextStatus === STATUS_RESOLVED) { - if (typeof handler.onResolve === 'function') { - nextValue = handler.onResolve(nextValue); + function buildHuffmanTable(codeLengths, values) { + var k = 0, code = [], i2, j, length = 16; + while (length > 0 && !codeLengths[length - 1]) + length--; + code.push({ children: [], index: 0 }); + var p = code[0], q; + for (i2 = 0; i2 < length; i2++) { + for (j = 0; j < codeLengths[i2]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); } - } else if (typeof handler.onReject === 'function') { - nextValue = handler.onReject(nextValue); - nextStatus = STATUS_RESOLVED; - - if (handler.thisPromise._unhandledRejection) { - this.removeUnhandeledRejection(handler.thisPromise); - } + p.index++; + code.push(p); + while (code.length <= i2) { + code.push(q = { children: [], index: 0 }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i2 + 1 < length) { + code.push(q = { children: [], index: 0 }); + p.children[p.index] = q.children; + p = q; } - } catch (ex) { - nextStatus = STATUS_REJECTED; - nextValue = ex; - } - - handler.nextPromise._updateStatus(nextStatus, nextValue); - if (Date.now() >= timeoutAt) { - break; - } - } - - if (this.handlers.length > 0) { - setTimeout(this.runHandlers.bind(this), 0); - return; - } - - this.running = false; - }, - - addUnhandledRejection: function addUnhandledRejection(promise) { - this.unhandledRejections.push({ - promise: promise, - time: Date.now() - }); - this.scheduleRejectionCheck(); - }, - - removeUnhandeledRejection: function removeUnhandeledRejection(promise) { - promise._unhandledRejection = false; - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (this.unhandledRejections[i].promise === promise) { - this.unhandledRejections.splice(i); - i--; } + return code[0].children; } - }, - - scheduleRejectionCheck: function scheduleRejectionCheck() { - if (this.pendingRejectionCheck) { - return; + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); } - this.pendingRejectionCheck = true; - setTimeout(function rejectionCheck() { - this.pendingRejectionCheck = false; - var now = Date.now(); - for (var i = 0; i < this.unhandledRejections.length; i++) { - if (now - this.unhandledRejections[i].time > REJECTION_TIMEOUT) { - var unhandled = this.unhandledRejections[i].promise._value; - var msg = 'Unhandled rejection: ' + unhandled; - if (unhandled.stack) { - msg += '\n' + unhandled.stack; + function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) { + var precision = frame.precision; + var samplesPerLine = frame.samplesPerLine; + var scanLines = frame.scanLines; + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + var maxH = frame.maxH, maxV = frame.maxV; + var startOffset = offset, bitsData = 0, bitsCount = 0; + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return bitsData >> bitsCount & 1; + } + bitsData = data[offset++]; + if (bitsData == 255) { + var nextByte = data[offset++]; + if (nextByte) { + throw "unexpected marker: " + (bitsData << 8 | nextByte).toString(16); } - warn(msg); - this.unhandledRejections.splice(i); - i--; } + bitsCount = 7; + return bitsData >>> 7; } - if (this.unhandledRejections.length) { - this.scheduleRejectionCheck(); - } - }.bind(this), REJECTION_TIMEOUT); - } - }; - - function Promise(resolver) { - this._status = STATUS_PENDING; - this._handlers = []; - try { - resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); - } catch (e) { - this._reject(e); - } - } - /** - * Builds a promise that is resolved when all the passed in promises are - * resolved. - * @param {array} array of data and/or promises to wait for. - * @return {Promise} New dependant promise. - */ - Promise.all = function Promise_all(promises) { - var resolveAll, rejectAll; - var deferred = new Promise(function (resolve, reject) { - resolveAll = resolve; - rejectAll = reject; - }); - var unresolved = promises.length; - var results = []; - if (unresolved === 0) { - resolveAll(results); - return deferred; - } - function reject(reason) { - if (deferred._status === STATUS_REJECTED) { - return; - } - results = []; - rejectAll(reason); - } - for (var i = 0, ii = promises.length; i < ii; ++i) { - var promise = promises[i]; - var resolve = (function(i) { - return function(value) { - if (deferred._status === STATUS_REJECTED) { - return; + function decodeHuffman(tree) { + var node = tree; + var bit; + while ((bit = readBit()) !== null) { + node = node[bit]; + if (typeof node === "number") + return node; + if (typeof node !== "object") + throw "invalid huffman sequence"; } - results[i] = value; - unresolved--; - if (unresolved === 0) { - resolveAll(results); + return null; + } + function receive(length) { + var n2 = 0; + while (length > 0) { + var bit = readBit(); + if (bit === null) + return; + n2 = n2 << 1 | bit; + length--; } - }; - })(i); - if (Promise.isPromise(promise)) { - promise.then(resolve, reject); - } else { - resolve(promise); - } - } - return deferred; - }; - - /** - * Checks if the value is likely a promise (has a 'then' function). - * @return {boolean} true if value is thenable - */ - Promise.isPromise = function Promise_isPromise(value) { - return value && typeof value.then === 'function'; - }; - - /** - * Creates resolved promise - * @param value resolve value - * @returns {Promise} - */ - Promise.resolve = function Promise_resolve(value) { - return new Promise(function (resolve) { resolve(value); }); - }; - - /** - * Creates rejected promise - * @param reason rejection value - * @returns {Promise} - */ - Promise.reject = function Promise_reject(reason) { - return new Promise(function (resolve, reject) { reject(reason); }); - }; - - Promise.prototype = { - _status: null, - _value: null, - _handlers: null, - _unhandledRejection: null, - - _updateStatus: function Promise__updateStatus(status, value) { - if (this._status === STATUS_RESOLVED || - this._status === STATUS_REJECTED) { - return; - } - - if (status === STATUS_RESOLVED && - Promise.isPromise(value)) { - value.then(this._updateStatus.bind(this, STATUS_RESOLVED), - this._updateStatus.bind(this, STATUS_REJECTED)); - return; - } - - this._status = status; - this._value = value; - - if (status === STATUS_REJECTED && this._handlers.length === 0) { - this._unhandledRejection = true; - HandlerManager.addUnhandledRejection(this); - } - - HandlerManager.scheduleHandlers(this); - }, - - _resolve: function Promise_resolve(value) { - this._updateStatus(STATUS_RESOLVED, value); - }, - - _reject: function Promise_reject(reason) { - this._updateStatus(STATUS_REJECTED, reason); - }, - - then: function Promise_then(onResolve, onReject) { - var nextPromise = new Promise(function (resolve, reject) { - this.resolve = resolve; - this.reject = reject; - }); - this._handlers.push({ - thisPromise: this, - onResolve: onResolve, - onReject: onReject, - nextPromise: nextPromise - }); - HandlerManager.scheduleHandlers(this); - return nextPromise; - }, - - catch2: function Promise_catch(onReject) { - return this.then(undefined, onReject); - } - }; - - globalScope.Promise = Promise; -//#else -//throw new Error('DOM Promise is not present'); -//#endif -})(); - -var StatTimer = (function StatTimerClosure() { - function rpad(str, pad, length) { - while (str.length < length) { - str += pad; - } - return str; - } - function StatTimer() { - this.started = {}; - this.times = []; - this.enabled = true; - } - StatTimer.prototype = { - time: function StatTimer_time(name) { - if (!this.enabled) { - return; - } - if (name in this.started) { - warn('Timer is already running for ' + name); - } - this.started[name] = Date.now(); - }, - timeEnd: function StatTimer_timeEnd(name) { - if (!this.enabled) { - return; - } - if (!(name in this.started)) { - warn('Timer has not been started for ' + name); - } - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - // Remove timer from started so it can be called again. - delete this.started[name]; - }, - toString: function StatTimer_toString() { - var i, ii; - var times = this.times; - var out = ''; - // Find the longest name for padding purposes. - var longest = 0; - for (i = 0, ii = times.length; i < ii; ++i) { - var name = times[i]['name']; - if (name.length > longest) { - longest = name.length; - } - } - for (i = 0, ii = times.length; i < ii; ++i) { - var span = times[i]; - var duration = span.end - span.start; - out += rpad(span['name'], ' ', longest) + ' ' + duration + 'ms\n'; - } - return out; - } - }; - return StatTimer; -})(); - -PDFJS.createBlob = function createBlob(data, contentType) { - if (typeof Blob !== 'undefined') { - return new Blob([data], { type: contentType }); - } - // Blob builder is deprecated in FF14 and removed in FF18. - var bb = new MozBlobBuilder(); - bb.append(data); - return bb.getBlob(contentType); -}; - -PDFJS.createObjectURL = (function createObjectURLClosure() { - // Blob/createObjectURL is not available, falling back to data schema. - var digits = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - - return function createObjectURL(data, contentType) { - if (!PDFJS.disableCreateObjectURL && - typeof URL !== 'undefined' && URL.createObjectURL) { - var blob = PDFJS.createBlob(data, contentType); - return URL.createObjectURL(blob); - } - - var buffer = 'data:' + contentType + ';base64,'; - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xFF; - var b2 = data[i + 1] & 0xFF; - var b3 = data[i + 2] & 0xFF; - var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4); - var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64; - var d4 = i + 2 < ii ? (b3 & 0x3F) : 64; - buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; - } - return buffer; - }; -})(); - -function MessageHandler(name, comObj) { - this.name = name; - this.comObj = comObj; - this.callbackIndex = 1; - this.postMessageTransfers = true; - var callbacksCapabilities = this.callbacksCapabilities = {}; - var ah = this.actionHandler = {}; - - ah['console_log'] = [function ahConsoleLog(data) { - console.log.apply(console, data); - }]; - ah['console_error'] = [function ahConsoleError(data) { - console.error.apply(console, data); - }]; - ah['_unsupported_feature'] = [function ah_unsupportedFeature(data) { - UnsupportedManager.notify(data); - }]; - - comObj.onmessage = function messageHandlerComObjOnMessage(event) { - var data = event.data; - if (data.isReply) { - var callbackId = data.callbackId; - if (data.callbackId in callbacksCapabilities) { - var callback = callbacksCapabilities[callbackId]; - delete callbacksCapabilities[callbackId]; - if ('error' in data) { - callback.reject(data.error); - } else { - callback.resolve(data.data); + return n2; } - } else { - error('Cannot resolve callback ' + callbackId); - } - } else if (data.action in ah) { - var action = ah[data.action]; - if (data.callbackId) { - Promise.resolve().then(function () { - return action[0].call(action[1], data.data); - }).then(function (result) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - data: result - }); - }, function (reason) { - comObj.postMessage({ - isReply: true, - callbackId: data.callbackId, - error: reason - }); - }); - } else { - action[0].call(action[1], data.data); - } - } else { - error('Unknown action from worker: ' + data.action); - } - }; -} - -MessageHandler.prototype = { - on: function messageHandlerOn(actionName, handler, scope) { - var ah = this.actionHandler; - if (ah[actionName]) { - error('There is already an actionName called "' + actionName + '"'); - } - ah[actionName] = [handler, scope]; - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers - */ - send: function messageHandlerSend(actionName, data, transfers) { - var message = { - action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - /** - * Sends a message to the comObj to invoke the action with the supplied data. - * Expects that other side will callback with the response. - * @param {String} actionName Action to call. - * @param {JSON} data JSON data to send. - * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. - * @returns {Promise} Promise to be resolved with response data. - */ - sendWithPromise: - function messageHandlerSendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackIndex++; - var message = { - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = createPromiseCapability(); - this.callbacksCapabilities[callbackId] = capability; - try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); - } - return capability.promise; - }, - /** - * Sends raw message to the comObj. - * @private - * @param message {Object} Raw message. - * @param transfers List of transfers/ArrayBuffers, or undefined. - */ - postMessage: function (message, transfers) { - if (transfers && this.postMessageTransfers) { - this.comObj.postMessage(message, transfers); - } else { - this.comObj.postMessage(message); - } - } -}; - -function loadJpegStream(id, imageUrl, objs) { - var img = new Image(); - img.onload = (function loadJpegStream_onloadClosure() { - objs.resolve(id, img); - }); - img.onerror = (function loadJpegStream_onerrorClosure() { - objs.resolve(id, null); - warn('Error during JPEG image loading'); - }); - img.src = imageUrl; -} - - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = JpxImage; -} -},{}],5:[function(require,module,exports){ -/*! @wearemothership/dicom-character-set - 1.0.4-opt.1 - 2021-03-22 | (c) 2018 Radialogica, LLC | https://github.com/radialogica/dicom-character-set */ -!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports["dicom-character-set"]=n():e["dicom-character-set"]=n()}(this,function(){return(()=>{"use strict";var o={d:(e,n)=>{for(var t in n)o.o(n,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},e={};o.r(e),o.d(e,{characterSets:()=>i,convertBytes:()=>function(e,n,t){return g(y,r,e,n,t)},convertBytesPromise:()=>function(e,n,t){return g(P,m,e,n,t)}});var n={codeElement:"G0",escapeSequence:[27,40,66],encoding:"windows-1252",isASCII:!0,bytesPerCodePoint:1},i={"ISO_IR 6":{encoding:"utf-8"},"ISO_IR 100":{encoding:"windows-1252"},"ISO_IR 101":{encoding:"iso-8859-2"},"ISO_IR 109":{encoding:"iso-8859-3"},"ISO_IR 110":{encoding:"iso-8859-4"},"ISO_IR 144":{encoding:"iso-8859-5"},"ISO_IR 127":{encoding:"iso-8859-6"},"ISO_IR 126":{encoding:"iso-8859-7"},"ISO_IR 138":{encoding:"iso-8859-8"},"ISO_IR 148":{encoding:"windows-1254"},"ISO_IR 13":{encoding:"shift-jis"},"ISO_IR 166":{encoding:"tis-620"},"ISO 2022 IR 6":{extension:!0,elements:[n]},"ISO 2022 IR 100":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,65],encoding:"windows-1252",bytesPerCodePoint:1}]},"ISO 2022 IR 101":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,66],encoding:"iso-8859-2",bytesPerCodePoint:1}]},"ISO 2022 IR 109":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,67],encoding:"iso-8859-3",bytesPerCodePoint:1}]},"ISO 2022 IR 110":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,68],encoding:"iso-8859-4",bytesPerCodePoint:1}]},"ISO 2022 IR 144":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,76],encoding:"iso-8859-5",bytesPerCodePoint:1}]},"ISO 2022 IR 127":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,71],encoding:"iso-8859-6",bytesPerCodePoint:1}]},"ISO 2022 IR 126":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,70],encoding:"iso-8859-7",bytesPerCodePoint:1}]},"ISO 2022 IR 138":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,72],encoding:"iso-8859-8",bytesPerCodePoint:1}]},"ISO 2022 IR 148":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,77],encoding:"windows-1254",bytesPerCodePoint:1}]},"ISO 2022 IR 13":{extension:!0,elements:[{codeElement:"G0",escapeSequence:[27,40,74],encoding:"shift-jis",bytesPerCodePoint:1},{codeElement:"G1",escapeSequence:[27,41,73],encoding:"shift-jis",bytesPerCodePoint:1}]},"ISO 2022 IR 166":{extension:!0,elements:[n,{codeElement:"G1",escapeSequence:[27,45,84],encoding:"tis-620",bytesPerCodePoint:1}]},"ISO 2022 IR 87":{extension:!0,multiByte:!0,elements:[{codeElement:"G0",escapeSequence:[27,36,66],encoding:"euc-jp",setHighBit:!0,bytesPerCodePoint:2}]},"ISO 2022 IR 159":{extension:!0,multiByte:!0,elements:[{codeElement:"G0",escapeSequence:[27,36,40,68],encoding:"euc-jp",isJISX0212:!0,bytesPerCodePoint:2}]},"ISO 2022 IR 149":{extension:!0,multiByte:!0,elements:[{codeElement:"G1",escapeSequence:[27,36,41,67],encoding:"euc-kr",bytesPerCodePoint:2}]},"ISO 2022 IR 58":{extension:!0,multiByte:!0,elements:[{codeElement:"G1",escapeSequence:[27,36,41,65],encoding:"gb18030",bytesPerCodePoint:2}]},"ISO_IR 192":{encoding:"utf-8",multiByte:!0},GB18030:{encoding:"gb18030",multiByte:!0},GBK:{encoding:"gbk",multiByte:!0}},l=27,c=10,s=12,u=13,d=9,a=92,f=61,I=94;function S(e){return e.replace(/~/g,"‾").replace(/\\/g,"Â¥")}function r(e,n,t,o,r){r=b(n,t,o,r);return e+y(n.encoding,r)}function m(e,t,n,o,r){var i=b(t,n,o,r);return(""===e?Promise.resolve(""):e).then(function(n){return P(t.encoding,i).then(function(e){return n+e})})}function g(e,n,t,o,r){!function(e,n){if(n&&!(n instanceof Uint8Array))throw new Error("bytes must be a Uint8Array");if(e&&"string"!=typeof e)throw new Error("specificCharacterSet must be a string")}(t,o);t=function(e){e=e?e.split("\\").map(function(e){return e.trim().toUpperCase()}):[""];""===e[0]&&(e[0]=1=n.length)return!1;if(n[t+o]!==e[o])return!1}return!0}(c.escapeSequence,e,n))return c}throw new Error("Unknown escape sequence encountered at byte "+n)}(n,d,e),c[a.codeElement]=a,s+=a.escapeSequence.length)}return r}(t.map(function(e){return i[e]}),o,function(e){var n=(e||"").trim().toUpperCase(),e=[c,s,u,d];["UT","ST","LT"].includes(n)||e.push(a);"PN"===n&&(e.push(f),e.push(I));return e}(r.vr),n)}var p={};function y(e,n){var t=p[e];return t||(t=new TextDecoder(e),p[e]=t="shift-jis"===e?{textDecoder:t,decode:function(e){return S(t.decode(e))}}:t),t.decode(n)}function P(o,r){return new Promise(function(e){var n=new FileReader;n.onload="shift-jis"===o?function(){return e(S(n.result))}:function(){return e(n.result)};var t=new Blob([r]);n.readAsText(t,o)})}function h(e,n){return 127= 1 << length - 1) + return n2; + return n2 + (-1 << length) + 1; } - } - return [b, r]; -}; -var _a = freb(fleb, 2), fl = _a[0], revfl = _a[1]; -// we can ignore the fact that the other numbers are wrong; they never happen anyway -fl[28] = 258, revfl[258] = 28; -var _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1]; -// map of value to reverse (assuming 16 bits) -var rev = new u16(32768); -for (var i = 0; i < 32768; ++i) { - // reverse table algorithm from SO - var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1); - x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2); - x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4); - rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1; -} -// create huffman tree from u8 "map": index -> code length for code index -// mb (max bits) must be at most 15 -// TODO: optimize/split up? -var hMap = (function (cd, mb, r) { - var s = cd.length; - // index - var i = 0; - // u16 "map": index -> # of codes with bit length = index - var l = new u16(mb); - // length of cd must be 288 (total # of codes) - for (; i < s; ++i) { - if (cd[i]) - ++l[cd[i] - 1]; - } - // u16 "map": index -> minimum code for bit length = index - var le = new u16(mb); - for (i = 0; i < mb; ++i) { - le[i] = (le[i - 1] + l[i - 1]) << 1; - } - var co; - if (r) { - // u16 "map": index -> number of actual bits, symbol for code - co = new u16(1 << mb); - // bits to remove for reverser - var rvb = 15 - mb; - for (i = 0; i < s; ++i) { - // ignore 0 lengths - if (cd[i]) { - // num encoding both symbol and bits read - var sv = (i << 4) | cd[i]; - // free bits - var r_1 = mb - cd[i]; - // start value - var v = le[cd[i] - 1]++ << r_1; - // m is end value - for (var m = v | ((1 << r_1) - 1); v <= m; ++v) { - // every 16 bit value starting with the code yields the same result - co[rev[v] >>> rvb] = sv; - } + function decodeBaseline(component2, offset2) { + var t = decodeHuffman(component2.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component2.blockData[offset2] = component2.pred += diff; + var k2 = 1; + while (k2 < 64) { + var rs = decodeHuffman(component2.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) + break; + k2 += 16; + continue; } + k2 += r; + var z = dctZigZag[k2]; + component2.blockData[offset2 + z] = receiveAndExtend(s); + k2++; + } } - } - else { - co = new u16(s); - for (i = 0; i < s; ++i) { - if (cd[i]) { - co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]); - } + function decodeDCFirst(component2, offset2) { + var t = decodeHuffman(component2.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component2.blockData[offset2] = component2.pred += diff; } - } - return co; -}); -// fixed length tree -var flt = new u8(288); -for (var i = 0; i < 144; ++i) - flt[i] = 8; -for (var i = 144; i < 256; ++i) - flt[i] = 9; -for (var i = 256; i < 280; ++i) - flt[i] = 7; -for (var i = 280; i < 288; ++i) - flt[i] = 8; -// fixed distance tree -var fdt = new u8(32); -for (var i = 0; i < 32; ++i) - fdt[i] = 5; -// fixed length map -var flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1); -// fixed distance map -var fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1); -// find max of array -var max = function (a) { - var m = a[0]; - for (var i = 1; i < a.length; ++i) { - if (a[i] > m) - m = a[i]; - } - return m; -}; -// read d, starting at bit p and mask with m -var bits = function (d, p, m) { - var o = (p / 8) | 0; - return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m; -}; -// read d, starting at bit p continuing for at least 16 bits -var bits16 = function (d, p) { - var o = (p / 8) | 0; - return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7)); -}; -// get end of byte -var shft = function (p) { return ((p + 7) / 8) | 0; }; -// typed array slice - allows garbage collector to free original reference, -// while being more compatible than .slice -var slc = function (v, s, e) { - if (s == null || s < 0) - s = 0; - if (e == null || e > v.length) - e = v.length; - // can't use .constructor in case user-supplied - var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s); - n.set(v.subarray(s, e)); - return n; -}; -/** - * Codes for errors generated within this library - */ -exports.FlateErrorCode = { - UnexpectedEOF: 0, - InvalidBlockType: 1, - InvalidLengthLiteral: 2, - InvalidDistance: 3, - StreamFinished: 4, - NoStreamHandler: 5, - InvalidHeader: 6, - NoCallback: 7, - InvalidUTF8: 8, - ExtraFieldTooLong: 9, - InvalidDate: 10, - FilenameTooLong: 11, - StreamFinishing: 12, - InvalidZipData: 13, - UnknownCompressionMethod: 14 -}; -// error codes -var ec = [ - 'unexpected EOF', - 'invalid block type', - 'invalid length/literal', - 'invalid distance', - 'stream finished', - 'no stream handler', - , - 'no callback', - 'invalid UTF-8 data', - 'extra field too long', - 'date not in range 1980-2099', - 'filename too long', - 'stream finishing', - 'invalid zip data' - // determined by unknown compression method -]; -; -var err = function (ind, msg, nt) { - var e = new Error(msg || ec[ind]); - e.code = ind; - if (Error.captureStackTrace) - Error.captureStackTrace(e, err); - if (!nt) - throw e; - return e; -}; -// expands raw DEFLATE data -var inflt = function (dat, buf, st) { - // source length - var sl = dat.length; - if (!sl || (st && st.f && !st.l)) - return buf || new u8(0); - // have to estimate size - var noBuf = !buf || st; - // no state - var noSt = !st || st.i; - if (!st) - st = {}; - // Assumes roughly 33% compression ratio average - if (!buf) - buf = new u8(sl * 3); - // ensure buffer can fit at least l elements - var cbuf = function (l) { - var bl = buf.length; - // need to increase size to fit - if (l > bl) { - // Double or set to necessary, whichever is greater - var nbuf = new u8(Math.max(bl * 2, l)); - nbuf.set(buf); - buf = nbuf; - } - }; - // last chunk bitpos bytes - var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; - // total bits - var tbts = sl * 8; - do { - if (!lm) { - // BFINAL - this is only 1 when last chunk is next - final = bits(dat, pos, 1); - // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman - var type = bits(dat, pos + 1, 3); - pos += 3; - if (!type) { - // go to end of byte boundary - var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l; - if (t > sl) { - if (noSt) - err(0); - break; - } - // ensure size - if (noBuf) - cbuf(bt + l); - // Copy over uncompressed data - buf.set(dat.subarray(s, t), bt); - // Get new bitpos, update byte count - st.b = bt += l, st.p = pos = t * 8, st.f = final; - continue; - } - else if (type == 1) - lm = flrm, dm = fdrm, lbt = 9, dbt = 5; - else if (type == 2) { - // literal lengths - var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; - var tl = hLit + bits(dat, pos + 5, 31) + 1; - pos += 14; - // length+distance tree - var ldt = new u8(tl); - // code length tree - var clt = new u8(19); - for (var i = 0; i < hcLen; ++i) { - // use index map to get real code - clt[clim[i]] = bits(dat, pos + i * 3, 7); - } - pos += hcLen * 3; - // code lengths bits - var clb = max(clt), clbmsk = (1 << clb) - 1; - // code lengths map - var clm = hMap(clt, clb, 1); - for (var i = 0; i < tl;) { - var r = clm[bits(dat, pos, clbmsk)]; - // bits read - pos += r & 15; - // symbol - var s = r >>> 4; - // code length to copy - if (s < 16) { - ldt[i++] = s; - } - else { - // copy count - var c = 0, n = 0; - if (s == 16) - n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1]; - else if (s == 17) - n = 3 + bits(dat, pos, 7), pos += 3; - else if (s == 18) - n = 11 + bits(dat, pos, 127), pos += 7; - while (n--) - ldt[i++] = c; - } - } - // length tree distance tree - var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); - // max length bits - lbt = max(lt); - // max dist bits - dbt = max(dt); - lm = hMap(lt, lbt, 1); - dm = hMap(dt, dbt, 1); - } - else - err(1); - if (pos > tbts) { - if (noSt) - err(0); - break; - } + function decodeDCSuccessive(component2, offset2) { + component2.blockData[offset2] |= readBit() << successive; } - // Make sure the buffer can hold this + the largest possible addition - // Maximum chunk size (practically, theoretically infinite) is 2^17; - if (noBuf) - cbuf(bt + 131072); - var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; - var lpos = pos; - for (;; lpos = pos) { - // bits read, code - var c = lm[bits16(dat, pos) & lms], sym = c >>> 4; - pos += c & 15; - if (pos > tbts) { - if (noSt) - err(0); + var eobrun = 0; + function decodeACFirst(component2, offset2) { + if (eobrun > 0) { + eobrun--; + return; + } + var k2 = spectralStart, e = spectralEnd; + while (k2 <= e) { + var rs = decodeHuffman(component2.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; break; + } + k2 += 16; + continue; } - if (!c) - err(2); - if (sym < 256) - buf[bt++] = sym; - else if (sym == 256) { - lpos = pos, lm = null; + k2 += r; + var z = dctZigZag[k2]; + component2.blockData[offset2 + z] = receiveAndExtend(s) * (1 << successive); + k2++; + } + } + var successiveACState = 0, successiveACNextValue; + function decodeACSuccessive(component2, offset2) { + var k2 = spectralStart, e = spectralEnd, r = 0; + while (k2 <= e) { + var z = dctZigZag[k2]; + switch (successiveACState) { + case 0: + var rs = decodeHuffman(component2.huffmanTableAC); + var s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) + throw "invalid ACn encoding"; + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: + case 2: + if (component2.blockData[offset2 + z]) { + component2.blockData[offset2 + z] += readBit() << successive; + } else { + r--; + if (r === 0) + successiveACState = successiveACState == 2 ? 3 : 0; + } break; - } - else { - var add = sym - 254; - // no extra bits needed if less - if (sym > 264) { - // index - var i = sym - 257, b = fleb[i]; - add = bits(dat, pos, (1 << b) - 1) + fl[i]; - pos += b; - } - // dist - var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4; - if (!d) - err(3); - pos += d & 15; - var dt = fd[dsym]; - if (dsym > 3) { - var b = fdeb[dsym]; - dt += bits16(dat, pos) & ((1 << b) - 1), pos += b; - } - if (pos > tbts) { - if (noSt) - err(0); - break; + case 3: + if (component2.blockData[offset2 + z]) { + component2.blockData[offset2 + z] += readBit() << successive; + } else { + component2.blockData[offset2 + z] = successiveACNextValue << successive; + successiveACState = 0; } - if (noBuf) - cbuf(bt + 131072); - var end = bt + add; - for (; bt < end; bt += 4) { - buf[bt] = buf[bt - dt]; - buf[bt + 1] = buf[bt + 1 - dt]; - buf[bt + 2] = buf[bt + 2 - dt]; - buf[bt + 3] = buf[bt + 3 - dt]; + break; + case 4: + if (component2.blockData[offset2 + z]) { + component2.blockData[offset2 + z] += readBit() << successive; } - bt = end; + break; } + k2++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) + successiveACState = 0; + } } - st.l = lm, st.p = lpos, st.b = bt, st.f = final; - if (lm) - final = 1, st.m = lbt, st.d = dm, st.n = dbt; - } while (!final); - return bt == buf.length ? buf : slc(buf, 0, bt); -}; -// starting at p, write the minimum number of bits that can hold v to d -var wbits = function (d, p, v) { - v <<= p & 7; - var o = (p / 8) | 0; - d[o] |= v; - d[o + 1] |= v >>> 8; -}; -// starting at p, write the minimum number of bits (>8) that can hold v to d -var wbits16 = function (d, p, v) { - v <<= p & 7; - var o = (p / 8) | 0; - d[o] |= v; - d[o + 1] |= v >>> 8; - d[o + 2] |= v >>> 16; -}; -// creates code lengths from a frequency table -var hTree = function (d, mb) { - // Need extra info to make a tree - var t = []; - for (var i = 0; i < d.length; ++i) { - if (d[i]) - t.push({ s: i, f: d[i] }); - } - var s = t.length; - var t2 = t.slice(); - if (!s) - return [et, 0]; - if (s == 1) { - var v = new u8(t[0].s + 1); - v[t[0].s] = 1; - return [v, 1]; - } - t.sort(function (a, b) { return a.f - b.f; }); - // after i2 reaches last ind, will be stopped - // freq must be greater than largest possible number of symbols - t.push({ s: -1, f: 25001 }); - var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2; - t[0] = { s: -1, f: l.f + r.f, l: l, r: r }; - // efficient algorithm from UZIP.js - // i0 is lookbehind, i2 is lookahead - after processing two low-freq - // symbols that combined have high freq, will start processing i2 (high-freq, - // non-composite) symbols instead - // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/ - while (i1 != s - 1) { - l = t[t[i0].f < t[i2].f ? i0++ : i2++]; - r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++]; - t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r }; - } - var maxSym = t2[0].s; - for (var i = 1; i < s; ++i) { - if (t2[i].s > maxSym) - maxSym = t2[i].s; - } - // code lengths - var tr = new u16(maxSym + 1); - // max bits in tree - var mbt = ln(t[i1 - 1], tr, 0); - if (mbt > mb) { - // more algorithms from UZIP.js - // TODO: find out how this code works (debt) - // ind debt - var i = 0, dt = 0; - // left cost - var lft = mbt - mb, cst = 1 << lft; - t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; }); - for (; i < s; ++i) { - var i2_1 = t2[i].s; - if (tr[i2_1] > mb) { - dt += cst - (1 << (mbt - tr[i2_1])); - tr[i2_1] = mb; - } - else - break; + function decodeMcu(component2, decode, mcu2, row, col) { + var mcuRow = mcu2 / mcusPerLine | 0; + var mcuCol = mcu2 % mcusPerLine; + var blockRow = mcuRow * component2.v + row; + var blockCol = mcuCol * component2.h + col; + var offset2 = getBlockBufferOffset(component2, blockRow, blockCol); + decode(component2, offset2); } - dt >>>= lft; - while (dt > 0) { - var i2_2 = t2[i].s; - if (tr[i2_2] < mb) - dt -= 1 << (mb - tr[i2_2]++ - 1); - else - ++i; + function decodeBlock(component2, decode, mcu2) { + var blockRow = mcu2 / component2.blocksPerLine | 0; + var blockCol = mcu2 % component2.blocksPerLine; + var offset2 = getBlockBufferOffset(component2, blockRow, blockCol); + decode(component2, offset2); } - for (; i >= 0 && dt; --i) { - var i2_3 = t2[i].s; - if (tr[i2_3] == mb) { - --tr[i2_3]; - ++dt; - } + var componentsLength = components.length; + var component, i2, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + else + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } else { + decodeFn = decodeBaseline; } - mbt = mb; - } - return [new u8(tr), mbt]; -}; -// get the max length and assign length codes -var ln = function (n, l, d) { - return n.s == -1 - ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) - : (l[n.s] = d); -}; -// length codes generation -var lc = function (c) { - var s = c.length; - // Note that the semicolon was intentional - while (s && !c[--s]) - ; - var cl = new u16(++s); - // ind num streak - var cli = 0, cln = c[0], cls = 1; - var w = function (v) { cl[cli++] = v; }; - for (var i = 1; i <= s; ++i) { - if (c[i] == cln && i != s) - ++cls; - else { - if (!cln && cls > 2) { - for (; cls > 138; cls -= 138) - w(32754); - if (cls > 2) { - w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305); - cls = 0; - } - } - else if (cls > 3) { - w(cln), --cls; - for (; cls > 6; cls -= 6) - w(8304); - if (cls > 2) - w(((cls - 3) << 5) | 8208), cls = 0; - } - while (cls--) - w(cln); - cls = 1; - cln = c[i]; + var mcu = 0, marker; + var mcuExpected; + if (componentsLength == 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; } - } - return [cl.subarray(0, cli), s]; -}; -// calculate the length of output from tree, code lengths -var clen = function (cf, cl) { - var l = 0; - for (var i = 0; i < cl.length; ++i) - l += cf[i] * cl[i]; - return l; -}; -// writes a fixed block -// returns the new bit pos -var wfblk = function (out, pos, dat) { - // no need to write 00 as type: TypedArray defaults to 0 - var s = dat.length; - var o = shft(pos + 2); - out[o] = s & 255; - out[o + 1] = s >>> 8; - out[o + 2] = out[o] ^ 255; - out[o + 3] = out[o + 1] ^ 255; - for (var i = 0; i < s; ++i) - out[o + i + 4] = dat[i]; - return (o + 4 + s) * 8; -}; -// writes a block -var wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) { - wbits(out, p++, final); - ++lf[256]; - var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1]; - var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1]; - var _c = lc(dlt), lclt = _c[0], nlc = _c[1]; - var _d = lc(ddt), lcdt = _d[0], ndc = _d[1]; - var lcfreq = new u16(19); - for (var i = 0; i < lclt.length; ++i) - lcfreq[lclt[i] & 31]++; - for (var i = 0; i < lcdt.length; ++i) - lcfreq[lcdt[i] & 31]++; - var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1]; - var nlcc = 19; - for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc) - ; - var flen = (bl + 5) << 3; - var ftlen = clen(lf, flt) + clen(df, fdt) + eb; - var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]); - if (flen <= ftlen && flen <= dtlen) - return wfblk(out, p, dat.subarray(bs, bs + bl)); - var lm, ll, dm, dl; - wbits(out, p, 1 + (dtlen < ftlen)), p += 2; - if (dtlen < ftlen) { - lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt; - var llm = hMap(lct, mlcb, 0); - wbits(out, p, nlc - 257); - wbits(out, p + 5, ndc - 1); - wbits(out, p + 10, nlcc - 4); - p += 14; - for (var i = 0; i < nlcc; ++i) - wbits(out, p + 3 * i, lct[clim[i]]); - p += 3 * nlcc; - var lcts = [lclt, lcdt]; - for (var it = 0; it < 2; ++it) { - var clct = lcts[it]; - for (var i = 0; i < clct.length; ++i) { - var len = clct[i] & 31; - wbits(out, p, llm[len]), p += lct[len]; - if (len > 15) - wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12; + if (!resetInterval) { + resetInterval = mcuExpected; + } + var h, v; + while (mcu < mcuExpected) { + for (i2 = 0; i2 < componentsLength; i2++) { + components[i2].pred = 0; + } + eobrun = 0; + if (componentsLength == 1) { + component = components[0]; + for (n = 0; n < resetInterval; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < resetInterval; n++) { + for (i2 = 0; i2 < componentsLength; i2++) { + component = components[i2]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; } + } + bitsCount = 0; + marker = data[offset] << 8 | data[offset + 1]; + if (marker <= 65280) { + throw "marker was not found"; + } + if (marker >= 65488 && marker <= 65495) { + offset += 2; + } else { + break; + } } - } - else { - lm = flm, ll = flt, dm = fdm, dl = fdt; - } - for (var i = 0; i < li; ++i) { - if (syms[i] > 255) { - var len = (syms[i] >>> 18) & 31; - wbits16(out, p, lm[len + 257]), p += ll[len + 257]; - if (len > 7) - wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len]; - var dst = syms[i] & 31; - wbits16(out, p, dm[dst]), p += dl[dst]; - if (dst > 3) - wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst]; + return offset - startOffset; + } + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable; + var v0, v1, v2, v3, v4, v5, v6, v7, t; + var i2; + for (i2 = 0; i2 < 64; i2++) { + p[i2] = component.blockData[blockBufferOffset + i2] * qt[i2]; } - else { - wbits16(out, p, lm[syms[i]]), p += ll[syms[i]]; + for (i2 = 0; i2 < 8; ++i2) { + var row = 8 * i2; + if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0 && p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0 && p[7 + row] === 0) { + t = dctSqrt2 * p[0 + row] + 512 >> 10; + p[0 + row] = t; + p[1 + row] = t; + p[2 + row] = t; + p[3 + row] = t; + p[4 + row] = t; + p[5 + row] = t; + p[6 + row] = t; + p[7 + row] = t; + continue; + } + v0 = dctSqrt2 * p[0 + row] + 128 >> 8; + v1 = dctSqrt2 * p[4 + row] + 128 >> 8; + v2 = p[2 + row]; + v3 = p[6 + row]; + v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8; + v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8; + v5 = p[3 + row] << 4; + v6 = p[5 + row] << 4; + t = v0 - v1 + 1 >> 1; + v0 = v0 + v1 + 1 >> 1; + v1 = t; + t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; + v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; + v3 = t; + t = v4 - v6 + 1 >> 1; + v4 = v4 + v6 + 1 >> 1; + v6 = t; + t = v7 + v5 + 1 >> 1; + v5 = v7 - v5 + 1 >> 1; + v7 = t; + t = v0 - v3 + 1 >> 1; + v0 = v0 + v3 + 1 >> 1; + v3 = t; + t = v1 - v2 + 1 >> 1; + v1 = v1 + v2 + 1 >> 1; + v2 = t; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[0 + row] = v0 + v7; + p[7 + row] = v0 - v7; + p[1 + row] = v1 + v6; + p[6 + row] = v1 - v6; + p[2 + row] = v2 + v5; + p[5 + row] = v2 - v5; + p[3 + row] = v3 + v4; + p[4 + row] = v3 - v4; } - } - wbits16(out, p, lm[256]); - return p + ll[256]; -}; -// deflate options (nice << 13) | chain -var deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]); -// empty -var et = /*#__PURE__*/ new u8(0); -// compresses data into a raw DEFLATE buffer -var dflt = function (dat, lvl, plvl, pre, post, lst) { - var s = dat.length; - var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post); - // writing to this writes to the output buffer - var w = o.subarray(pre, o.length - post); - var pos = 0; - if (!lvl || s < 8) { - for (var i = 0; i <= s; i += 65535) { - // end - var e = i + 65535; - if (e >= s) { - // write final block - w[pos >> 3] = lst; - } - pos = wfblk(w, pos + 1, dat.subarray(i, e)); + for (i2 = 0; i2 < 8; ++i2) { + var col = i2; + if (p[1 * 8 + col] === 0 && p[2 * 8 + col] === 0 && p[3 * 8 + col] === 0 && p[4 * 8 + col] === 0 && p[5 * 8 + col] === 0 && p[6 * 8 + col] === 0 && p[7 * 8 + col] === 0) { + t = dctSqrt2 * p[i2 + 0] + 8192 >> 14; + p[0 * 8 + col] = t; + p[1 * 8 + col] = t; + p[2 * 8 + col] = t; + p[3 * 8 + col] = t; + p[4 * 8 + col] = t; + p[5 * 8 + col] = t; + p[6 * 8 + col] = t; + p[7 * 8 + col] = t; + continue; + } + v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12; + v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12; + v2 = p[2 * 8 + col]; + v3 = p[6 * 8 + col]; + v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12; + v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12; + v5 = p[3 * 8 + col]; + v6 = p[5 * 8 + col]; + t = v0 - v1 + 1 >> 1; + v0 = v0 + v1 + 1 >> 1; + v1 = t; + t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; + v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; + v3 = t; + t = v4 - v6 + 1 >> 1; + v4 = v4 + v6 + 1 >> 1; + v6 = t; + t = v7 + v5 + 1 >> 1; + v5 = v7 - v5 + 1 >> 1; + v7 = t; + t = v0 - v3 + 1 >> 1; + v0 = v0 + v3 + 1 >> 1; + v3 = t; + t = v1 - v2 + 1 >> 1; + v1 = v1 + v2 + 1 >> 1; + v2 = t; + t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; + v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; + v7 = t; + t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; + v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; + v6 = t; + p[0 * 8 + col] = v0 + v7; + p[7 * 8 + col] = v0 - v7; + p[1 * 8 + col] = v1 + v6; + p[6 * 8 + col] = v1 - v6; + p[2 * 8 + col] = v2 + v5; + p[5 * 8 + col] = v2 - v5; + p[3 * 8 + col] = v3 + v4; + p[4 * 8 + col] = v3 - v4; } - } - else { - var opt = deo[lvl - 1]; - var n = opt >>> 13, c = opt & 8191; - var msk_1 = (1 << plvl) - 1; - // prev 2-byte val map curr 2-byte val map - var prev = new u16(32768), head = new u16(msk_1 + 1); - var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1; - var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; }; - // 24576 is an arbitrary number of maximum symbols per block - // 424 buffer for last block - var syms = new u32(25000); - // length/literal freq distance freq - var lf = new u16(288), df = new u16(32); - // l/lcnt exbits index l/lind waitdx bitpos - var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0; - for (; i < s; ++i) { - // hash value - // deopt when i > s - 3 - at end, deopt acceptable - var hv = hsh(i); - // index mod 32768 previous index mod - var imod = i & 32767, pimod = head[hv]; - prev[imod] = pimod; - head[hv] = imod; - // We always should modify head and prev, but only add symbols if - // this data is not yet processed ("wait" for wait index) - if (wi <= i) { - // bytes remaining - var rem = s - i; - if ((lc_1 > 7000 || li > 24576) && rem > 423) { - pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos); - li = lc_1 = eb = 0, bs = i; - for (var j = 0; j < 286; ++j) - lf[j] = 0; - for (var j = 0; j < 30; ++j) - df[j] = 0; - } - // len dist chain - var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767; - if (rem > 2 && hv == hsh(i - dif)) { - var maxn = Math.min(n, rem) - 1; - var maxd = Math.min(32767, i); - // max possible length - // not capped at dif because decompressors implement "rolling" index population - var ml = Math.min(258, rem); - while (dif <= maxd && --ch_1 && imod != pimod) { - if (dat[i + l] == dat[i + l - dif]) { - var nl = 0; - for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl) - ; - if (nl > l) { - l = nl, d = dif; - // break out early when we reach "nice" (we are satisfied enough) - if (nl > maxn) - break; - // now, find the rarest 2-byte sequence within this - // length of literals and search for that instead. - // Much faster than just using the start - var mmd = Math.min(dif, nl - 2); - var md = 0; - for (var j = 0; j < mmd; ++j) { - var ti = (i - dif + j + 32768) & 32767; - var pti = prev[ti]; - var cd = (ti - pti + 32768) & 32767; - if (cd > md) - md = cd, pimod = ti; - } - } - } - // check the previous match - imod = pimod, pimod = prev[imod]; - dif += (imod - pimod + 32768) & 32767; + for (i2 = 0; i2 < 64; ++i2) { + var index = blockBufferOffset + i2; + var q = p[i2]; + q = q <= -2056 / component.bitConversion ? 0 : q >= 2024 / component.bitConversion ? 255 / component.bitConversion : q + 2056 / component.bitConversion >> 4; + component.blockData[index] = q; + } + } + function buildComponentData(frame, component) { + var lines = []; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + var computationBuffer = new Int32Array(64); + var i2, j, ll = 0; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + return component.blockData; + } + function clampToUint8(a) { + return a <= 0 ? 0 : a >= 255 ? 255 : a | 0; + } + constructor.prototype = { + load: function load(path2) { + var handleData = function(data2) { + this.parse(data2); + if (this.onload) + this.onload(); + }.bind(this); + if (path2.indexOf("data:") > -1) { + var offset = path2.indexOf("base64,") + 7; + var data = atob(path2.substring(offset)); + var arr = new Uint8Array(data.length); + for (var i2 = data.length - 1; i2 >= 0; i2--) { + arr[i2] = data.charCodeAt(i2); + } + handleData(data); + } else { + var xhr = new XMLHttpRequest(); + xhr.open("GET", path2, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function() { + var data2 = new Uint8Array(xhr.response); + handleData(data2); + }.bind(this); + xhr.send(null); + } + }, + parse: function parse(data) { + function readUint16() { + var value = data[offset] << 8 | data[offset + 1]; + offset += 2; + return value; + } + function readDataBlock() { + var length2 = readUint16(); + var array = data.subarray(offset, offset + length2 - 2); + offset += array.length; + return array; + } + function prepareComponents(frame2) { + var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / frame2.maxH); + var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / frame2.maxV); + for (var i3 = 0; i3 < frame2.components.length; i3++) { + component = frame2.components[i3]; + var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component.h / frame2.maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component.v / frame2.maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame2.mcusPerLine = mcusPerLine; + frame2.mcusPerColumn = mcusPerColumn; + } + var offset = 0, length = data.length; + var jfif = null; + var adobe = null; + var pixels = null; + var frame, resetInterval; + var quantizationTables = []; + var huffmanTablesAC = [], huffmanTablesDC = []; + var fileMarker = readUint16(); + if (fileMarker != 65496) { + throw "SOI not found"; + } + fileMarker = readUint16(); + while (fileMarker != 65497) { + var i2, j, l; + switch (fileMarker) { + case 65504: + case 65505: + case 65506: + case 65507: + case 65508: + case 65509: + case 65510: + case 65511: + case 65512: + case 65513: + case 65514: + case 65515: + case 65516: + case 65517: + case 65518: + case 65519: + case 65534: + var appData = readDataBlock(); + if (fileMarker === 65504) { + if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) { + jfif = { + version: { major: appData[5], minor: appData[6] }, + densityUnits: appData[7], + xDensity: appData[8] << 8 | appData[9], + yDensity: appData[10] << 8 | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + if (fileMarker === 65518) { + if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) { + adobe = { + version: appData[6], + flags0: appData[7] << 8 | appData[8], + flags1: appData[9] << 8 | appData[10], + transformCode: appData[11] + }; + } + } + break; + case 65499: + var quantizationTablesLength = readUint16(); + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Int32Array(64); + if (quantizationTableSpec >> 4 === 0) { + for (j = 0; j < 64; j++) { + var z = dctZigZag[j]; + tableData[z] = data[offset++]; } + } else if (quantizationTableSpec >> 4 === 1) { + for (j = 0; j < 64; j++) { + var zz = dctZigZag[j]; + tableData[zz] = readUint16(); + } + } else + throw "DQT: invalid table spec"; + quantizationTables[quantizationTableSpec & 15] = tableData; } - // d will be nonzero only when a match was found - if (d) { - // store both dist and len data in one Uint32 - // Make sure this is recognized as a len/dist with 28th bit (2^28) - syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d]; - var lin = revfl[l] & 31, din = revfd[d] & 31; - eb += fleb[lin] + fdeb[din]; - ++lf[257 + lin]; - ++df[din]; - wi = i + l; - ++lc_1; + break; + case 65472: + case 65473: + case 65474: + if (frame) { + throw "Only single frame JPEGs supported"; } - else { - syms[li++] = dat[i]; - ++lf[dat[i]]; + readUint16(); + frame = {}; + frame.extended = fileMarker === 65473; + frame.progressive = fileMarker === 65474; + frame.precision = data[offset++]; + frame.scanLines = readUint16(); + frame.samplesPerLine = readUint16(); + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], componentId; + var maxH = 0, maxV = 0; + for (i2 = 0; i2 < componentsCount; i2++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + if (maxH < h) + maxH = h; + if (maxV < v) + maxV = v; + var qId = data[offset + 2]; + l = frame.components.push({ + h, + v, + quantizationTable: quantizationTables[qId], + quantizationTableId: qId, + bitConversion: 255 / ((1 << frame.precision) - 1) + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + case 65476: + var huffmanLength = readUint16(); + for (i2 = 2; i2 < huffmanLength; ) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) + codeLengthSum += codeLengths[j] = data[offset]; + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) + huffmanValues[j] = data[offset]; + i2 += 17 + codeLengthSum; + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); + } + break; + case 65501: + readUint16(); + resetInterval = readUint16(); + break; + case 65498: + var scanLength = readUint16(); + var selectorsCount = data[offset++]; + var components = [], component; + for (i2 = 0; i2 < selectorsCount; i2++) { + var componentIndex = frame.componentIds[data[offset++]]; + component = frame.components[componentIndex]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + var processed = decodeScan( + data, + offset, + frame, + components, + resetInterval, + spectralStart, + spectralEnd, + successiveApproximation >> 4, + successiveApproximation & 15 + ); + offset += processed; + break; + default: + if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) { + offset -= 3; + break; } + throw "unknown JPEG marker " + fileMarker.toString(16); } - } - pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos); - // this is the easiest way to avoid needing to maintain state - if (!lst && pos & 7) - pos = wfblk(w, pos + 1, et); - } - return slc(o, 0, pre + shft(pos) + post); -}; -// CRC32 table -var crct = /*#__PURE__*/ (function () { - var t = new Int32Array(256); - for (var i = 0; i < 256; ++i) { - var c = i, k = 9; - while (--k) - c = ((c & 1) && -306674912) ^ (c >>> 1); - t[i] = c; - } - return t; -})(); -// CRC32 -var crc = function () { - var c = -1; - return { - p: function (d) { - // closures have awful performance - var cr = c; - for (var i = 0; i < d.length; ++i) - cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8); - c = cr; + fileMarker = readUint16(); + } + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + switch (frame.components.length) { + case 1: + this.colorspace = ColorSpace.Grayscale; + break; + case 3: + if (this.adobe) + this.colorspace = ColorSpace.AdobeRGB; + else + this.colorspace = ColorSpace.RGB; + break; + case 4: + this.colorspace = ColorSpace.CYMK; + break; + default: + this.colorspace = ColorSpace.Unknown; + } + for (var i2 = 0; i2 < frame.components.length; i2++) { + var component = frame.components[i2]; + if (!component.quantizationTable && component.quantizationTableId !== null) + component.quantizationTable = quantizationTables[component.quantizationTableId]; + this.components.push({ + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn, + bitConversion: component.bitConversion + }); + } }, - d: function () { return ~c; } - }; -}; -// Alder32 -var adler = function () { - var a = 1, b = 0; - return { - p: function (d) { - // closures have awful performance - var n = a, m = b; - var l = d.length | 0; - for (var i = 0; i != l;) { - var e = Math.min(i + 2655, l); - for (; i < e; ++i) - m += n += d[i]; - n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16); - } - a = n, b = m; + getData16: function getData16(width, height) { + if (this.components.length !== 1) + throw "Unsupported color mode"; + var scaleX = this.width / width, scaleY = this.height / height; + var component, componentScaleX, componentScaleY; + var x, y, i2; + var offset = 0; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint16Array(dataLength); + var componentLine; + var lineData = new Uint16Array((this.components[0].blocksPerLine << 3) * this.components[0].blocksPerColumn * 8); + for (i2 = 0; i2 < numComponents; i2++) { + component = this.components[i2]; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + var j, k, ll = 0; + var lineOffset = 0; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + var scanLine = blockRow << 3; + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); + var offset = 0, sample = blockCol << 3; + for (j = 0; j < 8; j++) { + var lineOffset = (scanLine + j) * samplesPerLine; + for (k = 0; k < 8; k++) { + lineData[lineOffset + sample + k] = component.output[bufferOffset + offset++]; + } + } + } + } + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i2; + var cx, cy; + var index; + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + cy = 0 | y * componentScaleY; + cx = 0 | x * componentScaleX; + index = cy * samplesPerLine + cx; + data[offset] = lineData[index]; + offset += numComponents; + } + } + } + return data; }, - d: function () { - a %= 65521, b %= 65521; - return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8); + getData: function getData(width, height) { + var scaleX = this.width / width, scaleY = this.height / height; + var component, componentScaleX, componentScaleY; + var x, y, i2; + var offset = 0; + var Y, Cb, Cr, K, C, M, Ye, R, G, B; + var colorTransform; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8Array(dataLength); + var componentLine; + var lineData = new Uint8Array((this.components[0].blocksPerLine << 3) * this.components[0].blocksPerColumn * 8); + for (i2 = 0; i2 < numComponents; i2++) { + component = this.components[i2]; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + var j, k, ll = 0; + var lineOffset = 0; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + var scanLine = blockRow << 3; + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); + var offset = 0, sample = blockCol << 3; + for (j = 0; j < 8; j++) { + var lineOffset = (scanLine + j) * samplesPerLine; + for (k = 0; k < 8; k++) { + lineData[lineOffset + sample + k] = component.output[bufferOffset + offset++] * component.bitConversion; + } + } + } + } + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i2; + var cx, cy; + var index; + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + cy = 0 | y * componentScaleY; + cx = 0 | x * componentScaleX; + index = cy * samplesPerLine + cx; + data[offset] = lineData[index]; + offset += numComponents; + } + } + } + switch (numComponents) { + case 1: + case 2: + break; + case 3: + colorTransform = true; + if (this.adobe && this.adobe.transformCode) + colorTransform = true; + else if (typeof this.colorTransform !== "undefined") + colorTransform = !!this.colorTransform; + if (colorTransform) { + for (i2 = 0; i2 < dataLength; i2 += numComponents) { + Y = data[i2]; + Cb = data[i2 + 1]; + Cr = data[i2 + 2]; + R = clampToUint8(Y - 179.456 + 1.402 * Cr); + G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); + B = clampToUint8(Y - 226.816 + 1.772 * Cb); + data[i2] = R; + data[i2 + 1] = G; + data[i2 + 2] = B; + } + } + break; + case 4: + if (!this.adobe) + throw "Unsupported color mode (4 components)"; + colorTransform = false; + if (this.adobe && this.adobe.transformCode) + colorTransform = true; + else if (typeof this.colorTransform !== "undefined") + colorTransform = !!this.colorTransform; + if (colorTransform) { + for (i2 = 0; i2 < dataLength; i2 += numComponents) { + Y = data[i2]; + Cb = data[i2 + 1]; + Cr = data[i2 + 2]; + C = clampToUint8(434.456 - Y - 1.402 * Cr); + M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr); + Y = clampToUint8(481.816 - Y - 1.772 * Cb); + data[i2] = C; + data[i2 + 1] = M; + data[i2 + 2] = Y; + } + } + break; + default: + throw "Unsupported color mode"; + } + return data; } - }; -}; -; -// deflate with opts -var dopt = function (dat, opt, pre, post, st) { - return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st); -}; -// Walmart object spread -var mrg = function (a, b) { - var o = {}; - for (var k in a) - o[k] = a[k]; - for (var k in b) - o[k] = b[k]; - return o; -}; -// worker clone -// This is possibly the craziest part of the entire codebase, despite how simple it may seem. -// The only parameter to this function is a closure that returns an array of variables outside of the function scope. -// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization. -// We will return an object mapping of true variable name to value (basically, the current scope as a JS object). -// The reason we can't just use the original variable names is minifiers mangling the toplevel scope. -// This took me three weeks to figure out how to do. -var wcln = function (fn, fnStr, td) { - var dt = fn(); - var st = fn.toString(); - var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\s+/g, '').split(','); - for (var i = 0; i < dt.length; ++i) { - var v = dt[i], k = ks[i]; - if (typeof v == 'function') { - fnStr += ';' + k + '='; - var st_1 = v.toString(); - if (v.prototype) { - // for global objects - if (st_1.indexOf('[native code]') != -1) { - var spInd = st_1.indexOf(' ', 8) + 1; - fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd)); + }; + return constructor; + }(); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = { + JpegImage + }; + } + } +}); + +// lib/jpx.js +var require_jpx = __commonJS({ + "lib/jpx.js"(exports2, module2) { + "use strict"; + var JpxImage2 = function JpxImageClosure() { + var SubbandsGainLog2 = { + "LL": 0, + "LH": 1, + "HL": 1, + "HH": 2 + }; + function JpxImage3() { + this.failOnCorruptedImage = false; + } + JpxImage3.prototype = { + parse: function JpxImage_parse(data) { + var head = readUint16(data, 0); + if (head === 65359) { + this.parseCodestream(data, 0, data.length); + return; + } + var position = 0, length = data.length; + while (position < length) { + var headerSize = 8; + var lbox = readUint32(data, position); + var tbox = readUint32(data, position + 4); + position += headerSize; + if (lbox === 1) { + lbox = readUint32(data, position) * 4294967296 + readUint32(data, position + 4); + position += 8; + headerSize += 8; + } + if (lbox === 0) { + lbox = length - position + headerSize; + } + if (lbox < headerSize) { + throw new Error("JPX Error: Invalid box field size"); + } + var dataLength = lbox - headerSize; + var jumpDataLength = true; + switch (tbox) { + case 1785737832: + jumpDataLength = false; + break; + case 1668246642: + var method = data[position]; + var precedence = data[position + 1]; + var approximation = data[position + 2]; + if (method === 1) { + var colorspace = readUint32(data, position + 3); + switch (colorspace) { + case 16: + case 17: + case 18: + break; + default: + warn("Unknown colorspace " + colorspace); + break; + } + } else if (method === 2) { + info("ICC profile not supported"); } - else { - fnStr += st_1; - for (var t in v.prototype) - fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString(); + break; + case 1785737827: + this.parseCodestream(data, position, position + dataLength); + break; + case 1783636e3: + if (218793738 !== readUint32(data, position)) { + warn("Invalid JP2 signature"); } + break; + case 1783634458: + case 1718909296: + case 1920099697: + case 1919251232: + case 1768449138: + break; + default: + var headerType = String.fromCharCode( + tbox >> 24 & 255, + tbox >> 16 & 255, + tbox >> 8 & 255, + tbox & 255 + ); + warn("Unsupported header type " + tbox + " (" + headerType + ")"); + break; } - else - fnStr += st_1; + if (jumpDataLength) { + position += dataLength; + } + } + }, + parseImageProperties: function JpxImage_parseImageProperties(stream) { + var newByte = stream.getByte(); + while (newByte >= 0) { + var oldByte = newByte; + newByte = stream.getByte(); + var code = oldByte << 8 | newByte; + if (code === 65361) { + stream.skip(4); + var Xsiz = stream.getInt32() >>> 0; + var Ysiz = stream.getInt32() >>> 0; + var XOsiz = stream.getInt32() >>> 0; + var YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + var Csiz = stream.getUint16(); + this.width = Xsiz - XOsiz; + this.height = Ysiz - YOsiz; + this.componentsCount = Csiz; + this.bitsPerComponent = 8; + return; + } + } + throw new Error("JPX Error: No size marker found in JPX stream"); + }, + parseCodestream: function JpxImage_parseCodestream(data, start, end) { + var context = {}; + try { + var doNotRecover = false; + var position = start; + while (position + 1 < end) { + var code = readUint16(data, position); + position += 2; + var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; + switch (code) { + case 65359: + context.mainHeader = true; + break; + case 65497: + break; + case 65361: + length = readUint16(data, position); + var siz = {}; + siz.Xsiz = readUint32(data, position + 4); + siz.Ysiz = readUint32(data, position + 8); + siz.XOsiz = readUint32(data, position + 12); + siz.YOsiz = readUint32(data, position + 16); + siz.XTsiz = readUint32(data, position + 20); + siz.YTsiz = readUint32(data, position + 24); + siz.XTOsiz = readUint32(data, position + 28); + siz.YTOsiz = readUint32(data, position + 32); + var componentsCount = readUint16(data, position + 36); + siz.Csiz = componentsCount; + var components = []; + j = position + 38; + for (var i2 = 0; i2 < componentsCount; i2++) { + var component = { + precision: (data[j] & 127) + 1, + isSigned: !!(data[j] & 128), + XRsiz: data[j + 1], + YRsiz: data[j + 1] + }; + calculateComponentDimensions(component, siz); + components.push(component); + } + context.SIZ = siz; + context.components = components; + calculateTileGrids(context, components); + context.QCC = []; + context.COC = []; + break; + case 65372: + length = readUint16(data, position); + var qcd = {}; + j = position + 2; + sqcd = data[j++]; + switch (sqcd & 31) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error("JPX Error: Invalid SQcd value " + sqcd); + } + qcd.noQuantization = spqcdSize === 8; + qcd.scalarExpounded = scalarExpounded; + qcd.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + var spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcd.SPqcds = spqcds; + if (context.mainHeader) { + context.QCD = qcd; + } else { + context.currentTile.QCD = qcd; + context.currentTile.QCC = []; + } + break; + case 65373: + length = readUint16(data, position); + var qcc = {}; + j = position + 2; + var cqcc; + if (context.SIZ.Csiz < 257) { + cqcc = data[j++]; + } else { + cqcc = readUint16(data, j); + j += 2; + } + sqcd = data[j++]; + switch (sqcd & 31) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error("JPX Error: Invalid SQcd value " + sqcd); + } + qcc.noQuantization = spqcdSize === 8; + qcc.scalarExpounded = scalarExpounded; + qcc.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcc.SPqcds = spqcds; + if (context.mainHeader) { + context.QCC[cqcc] = qcc; + } else { + context.currentTile.QCC[cqcc] = qcc; + } + break; + case 65362: + length = readUint16(data, position); + var cod = {}; + j = position + 2; + var scod = data[j++]; + cod.entropyCoderWithCustomPrecincts = !!(scod & 1); + cod.sopMarkerUsed = !!(scod & 2); + cod.ephMarkerUsed = !!(scod & 4); + cod.progressionOrder = data[j++]; + cod.layersCount = readUint16(data, j); + j += 2; + cod.multipleComponentTransform = data[j++]; + cod.decompositionLevelsCount = data[j++]; + cod.xcb = (data[j++] & 15) + 2; + cod.ycb = (data[j++] & 15) + 2; + var blockStyle = data[j++]; + cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); + cod.resetContextProbabilities = !!(blockStyle & 2); + cod.terminationOnEachCodingPass = !!(blockStyle & 4); + cod.verticalyStripe = !!(blockStyle & 8); + cod.predictableTermination = !!(blockStyle & 16); + cod.segmentationSymbolUsed = !!(blockStyle & 32); + cod.reversibleTransformation = data[j++]; + if (cod.entropyCoderWithCustomPrecincts) { + var precinctsSizes = []; + while (j < length + position) { + var precinctsSize = data[j++]; + precinctsSizes.push({ + PPx: precinctsSize & 15, + PPy: precinctsSize >> 4 + }); + } + cod.precinctsSizes = precinctsSizes; + } + var unsupported = []; + if (cod.selectiveArithmeticCodingBypass) { + unsupported.push("selectiveArithmeticCodingBypass"); + } + if (cod.resetContextProbabilities) { + unsupported.push("resetContextProbabilities"); + } + if (cod.terminationOnEachCodingPass) { + unsupported.push("terminationOnEachCodingPass"); + } + if (cod.verticalyStripe) { + unsupported.push("verticalyStripe"); + } + if (cod.predictableTermination) { + unsupported.push("predictableTermination"); + } + if (unsupported.length > 0) { + doNotRecover = true; + throw new Error("JPX Error: Unsupported COD options (" + unsupported.join(", ") + ")"); + } + if (context.mainHeader) { + context.COD = cod; + } else { + context.currentTile.COD = cod; + context.currentTile.COC = []; + } + break; + case 65424: + length = readUint16(data, position); + tile = {}; + tile.index = readUint16(data, position + 2); + tile.length = readUint32(data, position + 4); + tile.dataEnd = tile.length + position - 2; + tile.partIndex = data[position + 8]; + tile.partsCount = data[position + 9]; + context.mainHeader = false; + if (tile.partIndex === 0) { + tile.COD = context.COD; + tile.COC = context.COC.slice(0); + tile.QCD = context.QCD; + tile.QCC = context.QCC.slice(0); + } + context.currentTile = tile; + break; + case 65427: + tile = context.currentTile; + if (tile.partIndex === 0) { + initializeTile(context, tile.index); + buildPackets(context); + } + length = tile.dataEnd - position; + parseTilePackets(context, data, position, length); + break; + case 65365: + case 65367: + case 65368: + case 65380: + length = readUint16(data, position); + break; + case 65363: + throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented"); + default: + throw new Error("JPX Error: Unknown codestream code: " + code.toString(16)); + } + position += length; + } + } catch (e) { + if (doNotRecover || this.failOnCorruptedImage) { + throw e; + } else { + warn("Trying to recover from " + e.message); + } + } + this.tiles = transformComponents(context); + this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; + this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; + this.componentsCount = context.SIZ.Csiz; } - else - td[k] = v; - } - return [fnStr, td]; -}; -var ch = []; -// clone bufs -var cbfs = function (v) { - var tl = []; - for (var k in v) { - if (v[k].buffer) { - tl.push((v[k] = new v[k].constructor(v[k])).buffer); + }; + function calculateComponentDimensions(component, siz) { + component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); + component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); + component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); + component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); + component.width = component.x1 - component.x0; + component.height = component.y1 - component.y0; + } + function calculateTileGrids(context, components) { + var siz = context.SIZ; + var tile, tiles = []; + var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); + var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); + for (var q = 0; q < numYtiles; q++) { + for (var p = 0; p < numXtiles; p++) { + tile = {}; + tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); + tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); + tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); + tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); + tile.width = tile.tx1 - tile.tx0; + tile.height = tile.ty1 - tile.ty0; + tile.components = []; + tiles.push(tile); + } } - } - return tl; -}; -// use a worker to execute code -var wrkr = function (fns, init, id, cb) { - var _a; - if (!ch[id]) { - var fnStr = '', td_1 = {}, m = fns.length - 1; - for (var i = 0; i < m; ++i) - _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1]; - ch[id] = wcln(fns[m], fnStr, td_1); - } - var td = mrg({}, ch[id][1]); - return node_worker_1["default"](ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb); -}; -// base async inflate fn -var bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; }; -var bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; }; -// gzip extra -var gze = function () { return [gzh, gzhl, wbytes, crc, crct]; }; -// gunzip extra -var guze = function () { return [gzs, gzl]; }; -// zlib extra -var zle = function () { return [zlh, wbytes, adler]; }; -// unzlib extra -var zule = function () { return [zlv]; }; -// post buf -var pbf = function (msg) { return postMessage(msg, [msg.buffer]); }; -// get u8 -var gu8 = function (o) { return o && o.size && new u8(o.size); }; -// async helper -var cbify = function (dat, opts, fns, init, id, cb) { - var w = wrkr(fns, init, id, function (err, dat) { - w.terminate(); - cb(err, dat); - }); - w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []); - return function () { w.terminate(); }; -}; -// auto stream -var astrm = function (strm) { - strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); }; - return function (ev) { return strm.push(ev.data[0], ev.data[1]); }; -}; -// async stream attach -var astrmify = function (fns, strm, opts, init, id) { - var t; - var w = wrkr(fns, init, id, function (err, dat) { - if (err) - w.terminate(), strm.ondata.call(strm, err); - else { - if (dat[1]) - w.terminate(); - strm.ondata.call(strm, err, dat[0], dat[1]); + context.tiles = tiles; + var componentsCount = siz.Csiz; + for (var i2 = 0, ii = componentsCount; i2 < ii; i2++) { + var component = components[i2]; + for (var j = 0, jj = tiles.length; j < jj; j++) { + var tileComponent = {}; + tile = tiles[j]; + tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); + tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); + tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); + tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); + tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; + tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; + tile.components[i2] = tileComponent; + } } - }); - w.postMessage(opts); - strm.push = function (d, f) { - if (!strm.ondata) - err(5); - if (t) - strm.ondata(err(4, 0, 1), null, !!f); - w.postMessage([d, t = f], [d.buffer]); - }; - strm.terminate = function () { w.terminate(); }; -}; -// read 2 bytes -var b2 = function (d, b) { return d[b] | (d[b + 1] << 8); }; -// read 4 bytes -var b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; }; -var b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); }; -// write bytes -var wbytes = function (d, b, v) { - for (; v; ++b) - d[b] = v, v >>>= 8; -}; -// gzip header -var gzh = function (c, o) { - var fn = o.filename; - c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix - if (o.mtime != 0) - wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000)); - if (fn) { - c[3] = 8; - for (var i = 0; i <= fn.length; ++i) - c[i + 10] = fn.charCodeAt(i); - } -}; -// gzip footer: -8 to -4 = CRC, -4 to -0 is length -// gzip start -var gzs = function (d) { - if (d[0] != 31 || d[1] != 139 || d[2] != 8) - err(6, 'invalid gzip data'); - var flg = d[3]; - var st = 10; - if (flg & 4) - st += d[10] | (d[11] << 8) + 2; - for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) - ; - return st + (flg & 2); -}; -// gzip length -var gzl = function (d) { - var l = d.length; - return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0; -}; -// gzip header length -var gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); }; -// zlib header -var zlh = function (c, o) { - var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2; - c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1); -}; -// zlib valid -var zlv = function (d) { - if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31)) - err(6, 'invalid zlib data'); - if (d[1] & 32) - err(6, 'invalid zlib data: preset dictionaries not supported'); -}; -function AsyncCmpStrm(opts, cb) { - if (!cb && typeof opts == 'function') - cb = opts, opts = {}; - this.ondata = cb; - return opts; -} -// zlib footer: -4 to -0 is Adler32 -/** - * Streaming DEFLATE compression - */ -var Deflate = /*#__PURE__*/ (function () { - function Deflate(opts, cb) { - if (!cb && typeof opts == 'function') - cb = opts, opts = {}; - this.ondata = cb; - this.o = opts || {}; - } - Deflate.prototype.p = function (c, f) { - this.ondata(dopt(c, this.o, 0, 0, !f), f); - }; - /** - * Pushes a chunk to be deflated - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Deflate.prototype.push = function (chunk, final) { - if (!this.ondata) - err(5); - if (this.d) - err(4); - this.d = final; - this.p(chunk, final || false); - }; - return Deflate; -}()); -exports.Deflate = Deflate; -/** - * Asynchronous streaming DEFLATE compression - */ -var AsyncDeflate = /*#__PURE__*/ (function () { - function AsyncDeflate(opts, cb) { - astrmify([ - bDflt, - function () { return [astrm, Deflate]; } - ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) { - var strm = new Deflate(ev.data); - onmessage = astrm(strm); - }, 6); - } - return AsyncDeflate; -}()); -exports.AsyncDeflate = AsyncDeflate; -function deflate(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return cbify(data, opts, [ - bDflt, - ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb); -} -exports.deflate = deflate; -/** - * Compresses data with DEFLATE without any wrapper - * @param data The data to compress - * @param opts The compression options - * @returns The deflated version of the data - */ -function deflateSync(data, opts) { - return dopt(data, opts || {}, 0, 0); -} -exports.deflateSync = deflateSync; -/** - * Streaming DEFLATE decompression - */ -var Inflate = /*#__PURE__*/ (function () { - /** - * Creates an inflation stream - * @param cb The callback to call whenever data is inflated - */ - function Inflate(cb) { - this.s = {}; - this.p = new u8(0); - this.ondata = cb; - } - Inflate.prototype.e = function (c) { - if (!this.ondata) - err(5); - if (this.d) - err(4); - var l = this.p.length; - var n = new u8(l + c.length); - n.set(this.p), n.set(c, l), this.p = n; - }; - Inflate.prototype.c = function (final) { - this.d = this.s.i = final || false; - var bts = this.s.b; - var dt = inflt(this.p, this.o, this.s); - this.ondata(slc(dt, bts, this.s.b), this.d); - this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; - this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7; - }; - /** - * Pushes a chunk to be inflated - * @param chunk The chunk to push - * @param final Whether this is the final chunk - */ - Inflate.prototype.push = function (chunk, final) { - this.e(chunk), this.c(final); - }; - return Inflate; -}()); -exports.Inflate = Inflate; -/** - * Asynchronous streaming DEFLATE decompression - */ -var AsyncInflate = /*#__PURE__*/ (function () { - /** - * Creates an asynchronous inflation stream - * @param cb The callback to call whenever data is deflated - */ - function AsyncInflate(cb) { - this.ondata = cb; - astrmify([ - bInflt, - function () { return [astrm, Inflate]; } - ], this, 0, function () { - var strm = new Inflate(); - onmessage = astrm(strm); - }, 7); - } - return AsyncInflate; -}()); -exports.AsyncInflate = AsyncInflate; -function inflate(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return cbify(data, opts, [ - bInflt - ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb); -} -exports.inflate = inflate; -/** - * Expands DEFLATE data with no wrapper - * @param data The data to decompress - * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length. - * @returns The decompressed version of the data - */ -function inflateSync(data, out) { - return inflt(data, out); -} -exports.inflateSync = inflateSync; -// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize. -/** - * Streaming GZIP compression - */ -var Gzip = /*#__PURE__*/ (function () { - function Gzip(opts, cb) { - this.c = crc(); - this.l = 0; - this.v = 1; - Deflate.call(this, opts, cb); - } - /** - * Pushes a chunk to be GZIPped - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Gzip.prototype.push = function (chunk, final) { - Deflate.prototype.push.call(this, chunk, final); - }; - Gzip.prototype.p = function (c, f) { - this.c.p(c); - this.l += c.length; - var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f); - if (this.v) - gzh(raw, this.o), this.v = 0; - if (f) - wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l); - this.ondata(raw, f); - }; - return Gzip; -}()); -exports.Gzip = Gzip; -exports.Compress = Gzip; -/** - * Asynchronous streaming GZIP compression - */ -var AsyncGzip = /*#__PURE__*/ (function () { - function AsyncGzip(opts, cb) { - astrmify([ - bDflt, - gze, - function () { return [astrm, Deflate, Gzip]; } - ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) { - var strm = new Gzip(ev.data); - onmessage = astrm(strm); - }, 8); - } - return AsyncGzip; -}()); -exports.AsyncGzip = AsyncGzip; -exports.AsyncCompress = AsyncGzip; -function gzip(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return cbify(data, opts, [ - bDflt, - gze, - function () { return [gzipSync]; } - ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb); -} -exports.gzip = gzip; -exports.compress = gzip; -/** - * Compresses data with GZIP - * @param data The data to compress - * @param opts The compression options - * @returns The gzipped version of the data - */ -function gzipSync(data, opts) { - if (!opts) - opts = {}; - var c = crc(), l = data.length; - c.p(data); - var d = dopt(data, opts, gzhl(opts), 8), s = d.length; - return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d; -} -exports.gzipSync = gzipSync; -exports.compressSync = gzipSync; -/** - * Streaming GZIP decompression - */ -var Gunzip = /*#__PURE__*/ (function () { - /** - * Creates a GUNZIP stream - * @param cb The callback to call whenever data is inflated - */ - function Gunzip(cb) { - this.v = 1; - Inflate.call(this, cb); - } - /** - * Pushes a chunk to be GUNZIPped - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Gunzip.prototype.push = function (chunk, final) { - Inflate.prototype.e.call(this, chunk); - if (this.v) { - var s = this.p.length > 3 ? gzs(this.p) : 4; - if (s >= this.p.length && !final) - return; - this.p = this.p.subarray(s), this.v = 0; - } - if (final) { - if (this.p.length < 8) - err(6, 'invalid gzip data'); - this.p = this.p.subarray(0, -8); - } - // necessary to prevent TS from using the closure value - // This allows for workerization to function correctly - Inflate.prototype.c.call(this, final); - }; - return Gunzip; -}()); -exports.Gunzip = Gunzip; -/** - * Asynchronous streaming GZIP decompression - */ -var AsyncGunzip = /*#__PURE__*/ (function () { - /** - * Creates an asynchronous GUNZIP stream - * @param cb The callback to call whenever data is deflated - */ - function AsyncGunzip(cb) { - this.ondata = cb; - astrmify([ - bInflt, - guze, - function () { return [astrm, Inflate, Gunzip]; } - ], this, 0, function () { - var strm = new Gunzip(); - onmessage = astrm(strm); - }, 9); - } - return AsyncGunzip; -}()); -exports.AsyncGunzip = AsyncGunzip; -function gunzip(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return cbify(data, opts, [ - bInflt, - guze, - function () { return [gunzipSync]; } - ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb); -} -exports.gunzip = gunzip; -/** - * Expands GZIP data - * @param data The data to decompress - * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory. - * @returns The decompressed version of the data - */ -function gunzipSync(data, out) { - return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data))); -} -exports.gunzipSync = gunzipSync; -/** - * Streaming Zlib compression - */ -var Zlib = /*#__PURE__*/ (function () { - function Zlib(opts, cb) { - this.c = adler(); - this.v = 1; - Deflate.call(this, opts, cb); - } - /** - * Pushes a chunk to be zlibbed - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Zlib.prototype.push = function (chunk, final) { - Deflate.prototype.push.call(this, chunk, final); - }; - Zlib.prototype.p = function (c, f) { - this.c.p(c); - var raw = dopt(c, this.o, this.v && 2, f && 4, !f); - if (this.v) - zlh(raw, this.o), this.v = 0; - if (f) - wbytes(raw, raw.length - 4, this.c.d()); - this.ondata(raw, f); - }; - return Zlib; -}()); -exports.Zlib = Zlib; -/** - * Asynchronous streaming Zlib compression - */ -var AsyncZlib = /*#__PURE__*/ (function () { - function AsyncZlib(opts, cb) { - astrmify([ - bDflt, - zle, - function () { return [astrm, Deflate, Zlib]; } - ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) { - var strm = new Zlib(ev.data); - onmessage = astrm(strm); - }, 10); - } - return AsyncZlib; -}()); -exports.AsyncZlib = AsyncZlib; -function zlib(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return cbify(data, opts, [ - bDflt, - zle, - function () { return [zlibSync]; } - ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb); -} -exports.zlib = zlib; -/** - * Compress data with Zlib - * @param data The data to compress - * @param opts The compression options - * @returns The zlib-compressed version of the data - */ -function zlibSync(data, opts) { - if (!opts) - opts = {}; - var a = adler(); - a.p(data); - var d = dopt(data, opts, 2, 4); - return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d; -} -exports.zlibSync = zlibSync; -/** - * Streaming Zlib decompression - */ -var Unzlib = /*#__PURE__*/ (function () { - /** - * Creates a Zlib decompression stream - * @param cb The callback to call whenever data is inflated - */ - function Unzlib(cb) { - this.v = 1; - Inflate.call(this, cb); - } - /** - * Pushes a chunk to be unzlibbed - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Unzlib.prototype.push = function (chunk, final) { - Inflate.prototype.e.call(this, chunk); - if (this.v) { - if (this.p.length < 2 && !final) - return; - this.p = this.p.subarray(2), this.v = 0; - } - if (final) { - if (this.p.length < 4) - err(6, 'invalid zlib data'); - this.p = this.p.subarray(0, -4); + } + function getBlocksDimensions(context, component, r) { + var codOrCoc = component.codingStyleParameters; + var result = {}; + if (!codOrCoc.entropyCoderWithCustomPrecincts) { + result.PPx = 15; + result.PPy = 15; + } else { + result.PPx = codOrCoc.precinctsSizes[r].PPx; + result.PPy = codOrCoc.precinctsSizes[r].PPy; } - // necessary to prevent TS from using the closure value - // This allows for workerization to function correctly - Inflate.prototype.c.call(this, final); - }; - return Unzlib; -}()); -exports.Unzlib = Unzlib; -/** - * Asynchronous streaming Zlib decompression - */ -var AsyncUnzlib = /*#__PURE__*/ (function () { - /** - * Creates an asynchronous Zlib decompression stream - * @param cb The callback to call whenever data is deflated - */ - function AsyncUnzlib(cb) { - this.ondata = cb; - astrmify([ - bInflt, - zule, - function () { return [astrm, Inflate, Unzlib]; } - ], this, 0, function () { - var strm = new Unzlib(); - onmessage = astrm(strm); - }, 11); - } - return AsyncUnzlib; -}()); -exports.AsyncUnzlib = AsyncUnzlib; -function unzlib(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return cbify(data, opts, [ - bInflt, - zule, - function () { return [unzlibSync]; } - ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb); -} -exports.unzlib = unzlib; -/** - * Expands Zlib data - * @param data The data to decompress - * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length. - * @returns The decompressed version of the data - */ -function unzlibSync(data, out) { - return inflt((zlv(data), data.subarray(2, -4)), out); -} -exports.unzlibSync = unzlibSync; -/** - * Streaming GZIP, Zlib, or raw DEFLATE decompression - */ -var Decompress = /*#__PURE__*/ (function () { - /** - * Creates a decompression stream - * @param cb The callback to call whenever data is decompressed - */ - function Decompress(cb) { - this.G = Gunzip; - this.I = Inflate; - this.Z = Unzlib; - this.ondata = cb; - } - /** - * Pushes a chunk to be decompressed - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Decompress.prototype.push = function (chunk, final) { - if (!this.ondata) - err(5); - if (!this.s) { - if (this.p && this.p.length) { - var n = new u8(this.p.length + chunk.length); - n.set(this.p), n.set(chunk, this.p.length); + result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); + result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); + return result; + } + function buildPrecincts(context, resolution, dimensions) { + var precinctWidth = 1 << dimensions.PPx; + var precinctHeight = 1 << dimensions.PPy; + var isZeroRes = resolution.resLevel === 0; + var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); + var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); + var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; + var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; + var numprecincts = numprecinctswide * numprecinctshigh; + resolution.precinctParameters = { + precinctWidth, + precinctHeight, + numprecinctswide, + numprecinctshigh, + numprecincts, + precinctWidthInSubband, + precinctHeightInSubband + }; + } + function buildCodeblocks(context, subband, dimensions) { + var xcb_ = dimensions.xcb_; + var ycb_ = dimensions.ycb_; + var codeblockWidth = 1 << xcb_; + var codeblockHeight = 1 << ycb_; + var cbx0 = subband.tbx0 >> xcb_; + var cby0 = subband.tby0 >> ycb_; + var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; + var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; + var precinctParameters = subband.resolution.precinctParameters; + var codeblocks = []; + var precincts = []; + var i2, j, codeblock, precinctNumber; + for (j = cby0; j < cby1; j++) { + for (i2 = cbx0; i2 < cbx1; i2++) { + codeblock = { + cbx: i2, + cby: j, + tbx0: codeblockWidth * i2, + tby0: codeblockHeight * j, + tbx1: codeblockWidth * (i2 + 1), + tby1: codeblockHeight * (j + 1) + }; + codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); + codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); + codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); + codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); + var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); + var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); + precinctNumber = pi + pj * precinctParameters.numprecinctswide; + codeblock.precinctNumber = precinctNumber; + codeblock.subbandType = subband.type; + codeblock.Lblock = 3; + if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { + continue; } - else - this.p = chunk; - if (this.p.length > 2) { - var _this_1 = this; - var cb = function () { _this_1.ondata.apply(_this_1, arguments); }; - this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8) - ? new this.G(cb) - : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31)) - ? new this.I(cb) - : new this.Z(cb); - this.s.push(this.p, final); - this.p = null; + codeblocks.push(codeblock); + var precinct = precincts[precinctNumber]; + if (precinct !== void 0) { + if (i2 < precinct.cbxMin) { + precinct.cbxMin = i2; + } else if (i2 > precinct.cbxMax) { + precinct.cbxMax = i2; + } + if (j < precinct.cbyMin) { + precinct.cbxMin = j; + } else if (j > precinct.cbyMax) { + precinct.cbyMax = j; + } + } else { + precincts[precinctNumber] = precinct = { + cbxMin: i2, + cbyMin: j, + cbxMax: i2, + cbyMax: j + }; } + codeblock.precinct = precinct; + } } - else - this.s.push(chunk, final); - }; - return Decompress; -}()); -exports.Decompress = Decompress; -/** - * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression - */ -var AsyncDecompress = /*#__PURE__*/ (function () { - /** - * Creates an asynchronous decompression stream - * @param cb The callback to call whenever data is decompressed - */ - function AsyncDecompress(cb) { - this.G = AsyncGunzip; - this.I = AsyncInflate; - this.Z = AsyncUnzlib; - this.ondata = cb; - } - /** - * Pushes a chunk to be decompressed - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - AsyncDecompress.prototype.push = function (chunk, final) { - Decompress.prototype.push.call(this, chunk, final); - }; - return AsyncDecompress; -}()); -exports.AsyncDecompress = AsyncDecompress; -function decompress(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - return (data[0] == 31 && data[1] == 139 && data[2] == 8) - ? gunzip(data, opts, cb) - : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31)) - ? inflate(data, opts, cb) - : unzlib(data, opts, cb); -} -exports.decompress = decompress; -/** - * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format - * @param data The data to decompress - * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length. - * @returns The decompressed version of the data - */ -function decompressSync(data, out) { - return (data[0] == 31 && data[1] == 139 && data[2] == 8) - ? gunzipSync(data, out) - : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31)) - ? inflateSync(data, out) - : unzlibSync(data, out); -} -exports.decompressSync = decompressSync; -// flatten a directory structure -var fltn = function (d, p, t, o) { - for (var k in d) { - var val = d[k], n = p + k, op = o; - if (Array.isArray(val)) - op = mrg(o, val[1]), val = val[0]; - if (val instanceof u8) - t[n] = [val, op]; - else { - t[n += '/'] = [new u8(0), op]; - fltn(val, n, t, o); + subband.codeblockParameters = { + codeblockWidth: xcb_, + codeblockHeight: ycb_, + numcodeblockwide: cbx1 - cbx0 + 1, + numcodeblockhigh: cby1 - cby0 + 1 + }; + subband.codeblocks = codeblocks; + subband.precincts = precincts; + } + function createPacket(resolution, precinctNumber, layerNumber) { + var precinctCodeblocks = []; + var subbands = resolution.subbands; + for (var i2 = 0, ii = subbands.length; i2 < ii; i2++) { + var subband = subbands[i2]; + var codeblocks = subband.codeblocks; + for (var j = 0, jj = codeblocks.length; j < jj; j++) { + var codeblock = codeblocks[j]; + if (codeblock.precinctNumber !== precinctNumber) { + continue; + } + precinctCodeblocks.push(codeblock); + } } - } -}; -// text encoder -var te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder(); -// text decoder -var td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder(); -// text decoder stream -var tds = 0; -try { - td.decode(et, { stream: true }); - tds = 1; -} -catch (e) { } -// decode UTF8 -var dutf8 = function (d) { - for (var r = '', i = 0;;) { - var c = d[i++]; - var eb = (c > 127) + (c > 223) + (c > 239); - if (i + eb > d.length) - return [r, slc(d, i - 1)]; - if (!eb) - r += String.fromCharCode(c); - else if (eb == 3) { - c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536, - r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023)); + return { + layerNumber, + codeblocks: precinctCodeblocks + }; + } + function LayerResolutionComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max( + maxDecompositionLevelsCount, + tile.components[q].codingStyleParameters.decompositionLevelsCount + ); } - else if (eb & 1) - r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63)); - else - r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)); - } -}; -/** - * Streaming UTF-8 decoding - */ -var DecodeUTF8 = /*#__PURE__*/ (function () { - /** - * Creates a UTF-8 decoding stream - * @param cb The callback to call whenever data is decoded - */ - function DecodeUTF8(cb) { - this.ondata = cb; - if (tds) - this.t = new TextDecoder(); - else - this.p = et; - } - /** - * Pushes a chunk to be decoded from UTF-8 binary - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - DecodeUTF8.prototype.push = function (chunk, final) { - if (!this.ondata) - err(5); - final = !!final; - if (this.t) { - this.ondata(this.t.decode(chunk, { stream: true }), final); - if (final) { - if (this.t.decode().length) - err(8); - this.t = null; + var l = 0, r = 0, i2 = 0, k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < layersCount; l++) { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; i2 < componentsCount; i2++) { + var component = tile.components[i2]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts; ) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i2 = 0; } - return; + r = 0; + } + }; + } + function ResolutionLayerComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max( + maxDecompositionLevelsCount, + tile.components[q].codingStyleParameters.decompositionLevelsCount + ); } - if (!this.p) - err(4); - var dat = new u8(this.p.length + chunk.length); - dat.set(this.p); - dat.set(chunk, this.p.length); - var _a = dutf8(dat), ch = _a[0], np = _a[1]; - if (final) { - if (np.length) - err(8); - this.p = null; + var r = 0, l = 0, i2 = 0, k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; l < layersCount; l++) { + for (; i2 < componentsCount; i2++) { + var component = tile.components[i2]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts; ) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i2 = 0; + } + l = 0; + } + }; + } + function ResolutionPositionComponentLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var l, r, c, p; + var maxDecompositionLevelsCount = 0; + for (c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + maxDecompositionLevelsCount = Math.max( + maxDecompositionLevelsCount, + component.codingStyleParameters.decompositionLevelsCount + ); } - else - this.p = np; - this.ondata(ch, final); - }; - return DecodeUTF8; -}()); -exports.DecodeUTF8 = DecodeUTF8; -/** - * Streaming UTF-8 encoding - */ -var EncodeUTF8 = /*#__PURE__*/ (function () { - /** - * Creates a UTF-8 decoding stream - * @param cb The callback to call whenever data is encoded - */ - function EncodeUTF8(cb) { - this.ondata = cb; - } - /** - * Pushes a chunk to be encoded to UTF-8 - * @param chunk The string data to push - * @param final Whether this is the last chunk - */ - EncodeUTF8.prototype.push = function (chunk, final) { - if (!this.ondata) - err(5); - if (this.d) - err(4); - this.ondata(strToU8(chunk), this.d = final || false); - }; - return EncodeUTF8; -}()); -exports.EncodeUTF8 = EncodeUTF8; -/** - * Converts a string into a Uint8Array for use with compression/decompression methods - * @param str The string to encode - * @param latin1 Whether or not to interpret the data as Latin-1. This should - * not need to be true unless decoding a binary string. - * @returns The string encoded in UTF-8/Latin-1 binary - */ -function strToU8(str, latin1) { - if (latin1) { - var ar_1 = new u8(str.length); - for (var i = 0; i < str.length; ++i) - ar_1[i] = str.charCodeAt(i); - return ar_1; - } - if (te) - return te.encode(str); - var l = str.length; - var ar = new u8(str.length + (str.length >> 1)); - var ai = 0; - var w = function (v) { ar[ai++] = v; }; - for (var i = 0; i < l; ++i) { - if (ai + 5 > ar.length) { - var n = new u8(ai + 8 + ((l - i) << 1)); - n.set(ar); - ar = n; - } - var c = str.charCodeAt(i); - if (c < 128 || latin1) - w(c); - else if (c < 2048) - w(192 | (c >> 6)), w(128 | (c & 63)); - else if (c > 55295 && c < 57344) - c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023), - w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63)); - else - w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63)); - } - return slc(ar, 0, ai); -} -exports.strToU8 = strToU8; -/** - * Converts a Uint8Array to a string - * @param dat The data to decode to string - * @param latin1 Whether or not to interpret the data as Latin-1. This should - * not need to be true unless encoding to binary string. - * @returns The original UTF-8/Latin-1 string - */ -function strFromU8(dat, latin1) { - if (latin1) { - var r = ''; - for (var i = 0; i < dat.length; i += 16384) - r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384)); - return r; - } - else if (td) - return td.decode(dat); - else { - var _a = dutf8(dat), out = _a[0], ext = _a[1]; - if (ext.length) - err(8); - return out; - } -} -exports.strFromU8 = strFromU8; -; -// deflate bit flag -var dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; }; -// skip local zip header -var slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); }; -// read zip header -var zh = function (d, b, z) { - var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); - var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2]; - return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; -}; -// read zip64 extra field -var z64e = function (d, b) { - for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) - ; - return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; -}; -// extra field length -var exfl = function (ex) { - var le = 0; - if (ex) { - for (var k in ex) { - var l = ex[k].length; - if (l > 65535) - err(9); - le += l + 4; - } - } - return le; -}; -// write zip header -var wzh = function (d, b, f, fn, u, c, ce, co) { - var fl = fn.length, ex = f.extra, col = co && co.length; - var exl = exfl(ex); - wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4; - if (ce != null) - d[b++] = 20, d[b++] = f.os; - d[b] = 20, b += 2; // spec compliance? what's that? - d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8; - d[b++] = f.compression & 255, d[b++] = f.compression >> 8; - var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980; - if (y < 0 || y > 119) - err(10); - wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4; - if (c != -1) { - wbytes(d, b, f.crc); - wbytes(d, b + 4, c < 0 ? -c - 2 : c); - wbytes(d, b + 8, f.size); - } - wbytes(d, b + 12, fl); - wbytes(d, b + 14, exl), b += 16; - if (ce != null) { - wbytes(d, b, col); - wbytes(d, b + 6, f.attrs); - wbytes(d, b + 10, ce), b += 14; - } - d.set(fn, b); - b += fl; - if (exl) { - for (var k in ex) { - var exf = ex[k], l = exf.length; - wbytes(d, b, +k); - wbytes(d, b + 2, l); - d.set(exf, b + 4), b += 4 + l; - } - } - if (col) - d.set(co, b), b += col; - return b; -}; -// write zip footer (end of central directory) -var wzf = function (o, b, c, d, e) { - wbytes(o, b, 0x6054B50); // skip disk - wbytes(o, b + 8, c); - wbytes(o, b + 10, c); - wbytes(o, b + 12, d); - wbytes(o, b + 16, e); -}; -/** - * A pass-through stream to keep data uncompressed in a ZIP archive. - */ -var ZipPassThrough = /*#__PURE__*/ (function () { - /** - * Creates a pass-through stream that can be added to ZIP archives - * @param filename The filename to associate with this data stream - */ - function ZipPassThrough(filename) { - this.filename = filename; - this.c = crc(); - this.size = 0; - this.compression = 0; - } - /** - * Processes a chunk and pushes to the output stream. You can override this - * method in a subclass for custom behavior, but by default this passes - * the data through. You must call this.ondata(err, chunk, final) at some - * point in this method. - * @param chunk The chunk to process - * @param final Whether this is the last chunk - */ - ZipPassThrough.prototype.process = function (chunk, final) { - this.ondata(null, chunk, final); - }; - /** - * Pushes a chunk to be added. If you are subclassing this with a custom - * compression algorithm, note that you must push data from the source - * file only, pre-compression. - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - ZipPassThrough.prototype.push = function (chunk, final) { - if (!this.ondata) - err(5); - this.c.p(chunk); - this.size += chunk.length; - if (final) - this.crc = this.c.d(); - this.process(chunk, final || false); - }; - return ZipPassThrough; -}()); -exports.ZipPassThrough = ZipPassThrough; -// I don't extend because TypeScript extension adds 1kB of runtime bloat -/** - * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate - * for better performance - */ -var ZipDeflate = /*#__PURE__*/ (function () { - /** - * Creates a DEFLATE stream that can be added to ZIP archives - * @param filename The filename to associate with this data stream - * @param opts The compression options - */ - function ZipDeflate(filename, opts) { - var _this_1 = this; - if (!opts) - opts = {}; - ZipPassThrough.call(this, filename); - this.d = new Deflate(opts, function (dat, final) { - _this_1.ondata(null, dat, final); - }); - this.compression = 8; - this.flag = dbf(opts.level); - } - ZipDeflate.prototype.process = function (chunk, final) { - try { - this.d.push(chunk, final); - } - catch (e) { - this.ondata(e, null, final); + var maxNumPrecinctsInLevel = new Int32Array( + maxDecompositionLevelsCount + 1 + ); + for (r = 0; r <= maxDecompositionLevelsCount; ++r) { + var maxNumPrecincts = 0; + for (c = 0; c < componentsCount; ++c) { + var resolutions = tile.components[c].resolutions; + if (r < resolutions.length) { + maxNumPrecincts = Math.max( + maxNumPrecincts, + resolutions[r].precinctParameters.numprecincts + ); + } + } + maxNumPrecinctsInLevel[r] = maxNumPrecincts; } - }; - /** - * Pushes a chunk to be deflated - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - ZipDeflate.prototype.push = function (chunk, final) { - ZipPassThrough.prototype.push.call(this, chunk, final); - }; - return ZipDeflate; -}()); -exports.ZipDeflate = ZipDeflate; -/** - * Asynchronous streaming DEFLATE compression for ZIP archives - */ -var AsyncZipDeflate = /*#__PURE__*/ (function () { - /** - * Creates a DEFLATE stream that can be added to ZIP archives - * @param filename The filename to associate with this data stream - * @param opts The compression options - */ - function AsyncZipDeflate(filename, opts) { - var _this_1 = this; - if (!opts) - opts = {}; - ZipPassThrough.call(this, filename); - this.d = new AsyncDeflate(opts, function (err, dat, final) { - _this_1.ondata(err, dat, final); - }); - this.compression = 8; - this.flag = dbf(opts.level); - this.terminate = this.d.terminate; - } - AsyncZipDeflate.prototype.process = function (chunk, final) { - this.d.push(chunk, final); - }; - /** - * Pushes a chunk to be deflated - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - AsyncZipDeflate.prototype.push = function (chunk, final) { - ZipPassThrough.prototype.push.call(this, chunk, final); - }; - return AsyncZipDeflate; -}()); -exports.AsyncZipDeflate = AsyncZipDeflate; -// TODO: Better tree shaking -/** - * A zippable archive to which files can incrementally be added - */ -var Zip = /*#__PURE__*/ (function () { - /** - * Creates an empty ZIP archive to which files can be added - * @param cb The callback to call whenever data for the generated ZIP archive - * is available - */ - function Zip(cb) { - this.ondata = cb; - this.u = []; - this.d = 1; - } - /** - * Adds a file to the ZIP archive - * @param file The file stream to add - */ - Zip.prototype.add = function (file) { - var _this_1 = this; - if (!this.ondata) - err(5); - // finishing or finished - if (this.d & 2) - this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false); - else { - var f = strToU8(file.filename), fl_1 = f.length; - var com = file.comment, o = com && strToU8(com); - var u = fl_1 != file.filename.length || (o && (com.length != o.length)); - var hl_1 = fl_1 + exfl(file.extra) + 30; - if (fl_1 > 65535) - this.ondata(err(11, 0, 1), null, false); - var header = new u8(hl_1); - wzh(header, 0, file, f, u, -1); - var chks_1 = [header]; - var pAll_1 = function () { - for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) { - var chk = chks_2[_i]; - _this_1.ondata(null, chk, false); - } - chks_1 = []; - }; - var tr_1 = this.d; - this.d = 0; - var ind_1 = this.u.length; - var uf_1 = mrg(file, { - f: f, - u: u, - o: o, - t: function () { - if (file.terminate) - file.terminate(); - }, - r: function () { - pAll_1(); - if (tr_1) { - var nxt = _this_1.u[ind_1 + 1]; - if (nxt) - nxt.r(); - else - _this_1.d = 1; - } - tr_1 = 1; + l = 0; + r = 0; + c = 0; + p = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; p < maxNumPrecinctsInLevel[r]; p++) { + for (; c < componentsCount; c++) { + var component2 = tile.components[c]; + if (r > component2.codingStyleParameters.decompositionLevelsCount) { + continue; } - }); - var cl_1 = 0; - file.ondata = function (err, dat, final) { - if (err) { - _this_1.ondata(err, dat, final); - _this_1.terminate(); + var resolution = component2.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + if (p >= numprecincts) { + continue; } - else { - cl_1 += dat.length; - chks_1.push(dat); - if (final) { - var dd = new u8(16); - wbytes(dd, 0, 0x8074B50); - wbytes(dd, 4, file.crc); - wbytes(dd, 8, cl_1); - wbytes(dd, 12, file.size); - chks_1.push(dd); - uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size; - if (tr_1) - uf_1.r(); - tr_1 = 1; - } - else if (tr_1) - pAll_1(); + for (; l < layersCount; ) { + var packet = createPacket(resolution, p, l); + l++; + return packet; + } + l = 0; + } + c = 0; + } + p = 0; + } + }; + } + function PositionComponentResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var precinctsIterationSizes = precinctsSizes; + var l = 0, r = 0, c = 0, px = 0, py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; + var k = getPrecinctIndexIfExist( + px, + py, + sizeInImageScale, + precinctsIterationSizes, + resolution + ); + if (k === null) { + continue; + } + for (; l < layersCount; ) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + c = 0; + } + px = 0; + } + }; + } + function ComponentPositionResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var l = 0, r = 0, c = 0, px = 0, py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; c < componentsCount; ++c) { + var component = tile.components[c]; + var precinctsIterationSizes = precinctsSizes.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsIterationSizes.resolutions[r]; + var k = getPrecinctIndexIfExist( + px, + py, + sizeInImageScale, + precinctsIterationSizes, + resolution + ); + if (k === null) { + continue; + } + for (; l < layersCount; ) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; } + r = 0; + } + px = 0; + } + py = 0; + } + }; + } + function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { + var posX = pxIndex * precinctIterationSizes.minWidth; + var posY = pyIndex * precinctIterationSizes.minHeight; + if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { + return null; + } + var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; + return posX / sizeInImageScale.height + startPrecinctRowIndex; + } + function getPrecinctSizesInImageScale(tile) { + var componentsCount = tile.components.length; + var minWidth = Number.MAX_VALUE; + var minHeight = Number.MAX_VALUE; + var maxNumWide = 0; + var maxNumHigh = 0; + var sizePerComponent = new Array(componentsCount); + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var sizePerResolution = new Array(decompositionLevelsCount + 1); + var minWidthCurrentComponent = Number.MAX_VALUE; + var minHeightCurrentComponent = Number.MAX_VALUE; + var maxNumWideCurrentComponent = 0; + var maxNumHighCurrentComponent = 0; + var scale = 1; + for (var r = decompositionLevelsCount; r >= 0; --r) { + var resolution = component.resolutions[r]; + var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; + var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; + minWidthCurrentComponent = Math.min( + minWidthCurrentComponent, + widthCurrentResolution + ); + minHeightCurrentComponent = Math.min( + minHeightCurrentComponent, + heightCurrentResolution + ); + maxNumWideCurrentComponent = Math.max( + maxNumWideCurrentComponent, + resolution.precinctParameters.numprecinctswide + ); + maxNumHighCurrentComponent = Math.max( + maxNumHighCurrentComponent, + resolution.precinctParameters.numprecinctshigh + ); + sizePerResolution[r] = { + width: widthCurrentResolution, + height: heightCurrentResolution }; - this.u.push(uf_1); + scale <<= 1; + } + minWidth = Math.min(minWidth, minWidthCurrentComponent); + minHeight = Math.min(minHeight, minHeightCurrentComponent); + maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); + maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); + sizePerComponent[c] = { + resolutions: sizePerResolution, + minWidth: minWidthCurrentComponent, + minHeight: minHeightCurrentComponent, + maxNumWide: maxNumWideCurrentComponent, + maxNumHigh: maxNumHighCurrentComponent + }; } - }; - /** - * Ends the process of adding files and prepares to emit the final chunks. - * This *must* be called after adding all desired files for the resulting - * ZIP file to work properly. - */ - Zip.prototype.end = function () { - var _this_1 = this; - if (this.d & 2) { - this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true); - return; + return { + components: sizePerComponent, + minWidth, + minHeight, + maxNumWide, + maxNumHigh + }; + } + function buildPackets(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var componentsCount = siz.Csiz; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var resolutions = []; + var subbands = []; + for (var r = 0; r <= decompositionLevelsCount; r++) { + var blocksDimensions = getBlocksDimensions(context, component, r); + var resolution = {}; + var scale = 1 << decompositionLevelsCount - r; + resolution.trx0 = Math.ceil(component.tcx0 / scale); + resolution.try0 = Math.ceil(component.tcy0 / scale); + resolution.trx1 = Math.ceil(component.tcx1 / scale); + resolution.try1 = Math.ceil(component.tcy1 / scale); + resolution.resLevel = r; + buildPrecincts(context, resolution, blocksDimensions); + resolutions.push(resolution); + var subband; + if (r === 0) { + subband = {}; + subband.type = "LL"; + subband.tbx0 = Math.ceil(component.tcx0 / scale); + subband.tby0 = Math.ceil(component.tcy0 / scale); + subband.tbx1 = Math.ceil(component.tcx1 / scale); + subband.tby1 = Math.ceil(component.tcy1 / scale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolution.subbands = [subband]; + } else { + var bscale = 1 << decompositionLevelsCount - r + 1; + var resolutionSubbands = []; + subband = {}; + subband.type = "HL"; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = "LH"; + subband.tbx0 = Math.ceil(component.tcx0 / bscale); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = "HH"; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + resolution.subbands = resolutionSubbands; + } + } + component.resolutions = resolutions; + component.subbands = subbands; } - if (this.d) - this.e(); - else - this.u.push({ - r: function () { - if (!(_this_1.d & 1)) - return; - _this_1.u.splice(-1, 1); - _this_1.e(); - }, - t: function () { } - }); - this.d = 3; - }; - Zip.prototype.e = function () { - var bt = 0, l = 0, tl = 0; - for (var _i = 0, _a = this.u; _i < _a.length; _i++) { - var f = _a[_i]; - tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0); + var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; + switch (progressionOrder) { + case 0: + tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); + break; + case 1: + tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); + break; + case 2: + tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); + break; + case 3: + tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); + break; + case 4: + tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); + break; + default: + throw new Error("JPX Error: Unsupported progression order " + progressionOrder); } - var out = new u8(tl + 22); - for (var _b = 0, _c = this.u; _b < _c.length; _b++) { - var f = _c[_b]; - wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o); - bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b; + } + function parseTilePackets(context, data, offset, dataLength) { + var position = 0; + var buffer2, bufferSize = 0, skipNextBit = false; + function readBits(count) { + while (bufferSize < count) { + if (offset + position >= data.length) { + throw new Error("Unexpected EOF"); + } + var b = data[offset + position]; + position++; + if (skipNextBit) { + buffer2 = buffer2 << 7 | b; + bufferSize += 7; + skipNextBit = false; + } else { + buffer2 = buffer2 << 8 | b; + bufferSize += 8; + } + if (b === 255) { + skipNextBit = true; + } + } + bufferSize -= count; + return buffer2 >>> bufferSize & (1 << count) - 1; } - wzf(out, bt, this.u.length, tl, l); - this.ondata(null, out, true); - this.d = 2; - }; - /** - * A method to terminate any internal workers used by the stream. Subsequent - * calls to add() will fail. - */ - Zip.prototype.terminate = function () { - for (var _i = 0, _a = this.u; _i < _a.length; _i++) { - var f = _a[_i]; - f.t(); + function skipMarkerIfEqual(value) { + if (data[offset + position - 1] === 255 && data[offset + position] === value) { + skipBytes(1); + return true; + } else if (data[offset + position] === 255 && data[offset + position + 1] === value) { + skipBytes(2); + return true; + } + return false; } - this.d = 2; - }; - return Zip; -}()); -exports.Zip = Zip; -function zip(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - var r = {}; - fltn(data, '', r, opts); - var k = Object.keys(r); - var lft = k.length, o = 0, tot = 0; - var slft = lft, files = new Array(lft); - var term = []; - var tAll = function () { - for (var i = 0; i < term.length; ++i) - term[i](); - }; - var cbd = function (a, b) { - mt(function () { cb(a, b); }); - }; - mt(function () { cbd = cb; }); - var cbf = function () { - var out = new u8(tot + 22), oe = o, cdl = tot - o; - tot = 0; - for (var i = 0; i < slft; ++i) { - var f = files[i]; - try { - var l = f.c.length; - wzh(out, tot, f, f.f, f.u, l); - var badd = 30 + f.f.length + exfl(f.extra); - var loc = tot + badd; - out.set(f.c, loc); - wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l; + function skipBytes(count) { + position += count; + } + function alignToByte() { + bufferSize = 0; + if (skipNextBit) { + position++; + skipNextBit = false; + } + } + function readCodingpasses() { + if (readBits(1) === 0) { + return 1; + } + if (readBits(1) === 0) { + return 2; + } + var value = readBits(2); + if (value < 3) { + return value + 3; + } + value = readBits(5); + if (value < 31) { + return value + 6; + } + value = readBits(7); + return value + 37; + } + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var sopMarkerUsed = context.COD.sopMarkerUsed; + var ephMarkerUsed = context.COD.ephMarkerUsed; + var packetsIterator = tile.packetsIterator; + while (position < dataLength) { + try { + alignToByte(); + if (sopMarkerUsed && skipMarkerIfEqual(145)) { + skipBytes(4); } - catch (e) { - return cbd(e, null); + var packet = packetsIterator.nextPacket(); + if (packet === void 0) { + return; } - } - wzf(out, o, files.length, cdl, oe); - cbd(null, out); - }; - if (!lft) - cbf(); - var _loop_1 = function (i) { - var fn = k[i]; - var _a = r[fn], file = _a[0], p = _a[1]; - var c = crc(), size = file.length; - c.p(file); - var f = strToU8(fn), s = f.length; - var com = p.comment, m = com && strToU8(com), ms = m && m.length; - var exl = exfl(p.extra); - var compression = p.level == 0 ? 0 : 8; - var cbl = function (e, d) { - if (e) { - tAll(); - cbd(e, null); + if (!readBits(1)) { + continue; } - else { - var l = d.length; - files[i] = mrg(p, { - size: size, - crc: c.d(), - c: d, - f: f, - m: m, - u: s != fn.length || (m && (com.length != ms)), - compression: compression - }); - o += 30 + s + exl + l; - tot += 76 + 2 * (s + exl) + (ms || 0) + l; - if (!--lft) - cbf(); + var layerNumber = packet.layerNumber; + var queue = [], codeblock; + for (var i2 = 0, ii = packet.codeblocks.length; i2 < ii; i2++) { + codeblock = packet.codeblocks[i2]; + var precinct = codeblock.precinct; + var codeblockColumn = codeblock.cbx - precinct.cbxMin; + var codeblockRow = codeblock.cby - precinct.cbyMin; + var codeblockIncluded = false; + var firstTimeInclusion = false; + var valueReady; + if (codeblock["included"] !== void 0) { + codeblockIncluded = !!readBits(1); + } else { + precinct = codeblock.precinct; + var inclusionTree, zeroBitPlanesTree; + if (precinct["inclusionTree"] !== void 0) { + inclusionTree = precinct.inclusionTree; + } else { + var width = precinct.cbxMax - precinct.cbxMin + 1; + var height = precinct.cbyMax - precinct.cbyMin + 1; + inclusionTree = new InclusionTree(width, height); + zeroBitPlanesTree = new TagTree(width, height); + precinct.inclusionTree = inclusionTree; + precinct.zeroBitPlanesTree = zeroBitPlanesTree; + } + inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber); + while (true) { + if (position >= data.length) { + return; + } + if (inclusionTree.isAboveThreshold()) { + break; + } + if (inclusionTree.isKnown()) { + inclusionTree.nextLevel(); + continue; + } + if (readBits(1)) { + inclusionTree.setKnown(); + if (inclusionTree.isLeaf()) { + codeblock.included = true; + codeblockIncluded = firstTimeInclusion = true; + break; + } else { + inclusionTree.nextLevel(); + } + } else { + inclusionTree.incrementValue(); + } + } + } + if (!codeblockIncluded) { + continue; + } + if (firstTimeInclusion) { + zeroBitPlanesTree = precinct.zeroBitPlanesTree; + zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); + while (true) { + if (position >= data.length) { + return; + } + if (readBits(1)) { + valueReady = !zeroBitPlanesTree.nextLevel(); + if (valueReady) { + break; + } + } else { + zeroBitPlanesTree.incrementValue(); + } + } + codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + } + var codingpasses = readCodingpasses(); + while (readBits(1)) { + codeblock.Lblock++; + } + var codingpassesLog2 = log2(codingpasses); + var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; + var codedDataLength = readBits(bits); + queue.push({ + codeblock, + codingpasses, + dataLength: codedDataLength + }); } - }; - if (s > 65535) - cbl(err(11, 0, 1), null); - if (!compression) - cbl(null, file); - else if (size < 160000) { - try { - cbl(null, deflateSync(file, p)); + alignToByte(); + if (ephMarkerUsed) { + skipMarkerIfEqual(146); } - catch (e) { - cbl(e, null); + while (queue.length > 0) { + var packetItem = queue.shift(); + codeblock = packetItem.codeblock; + if (codeblock["data"] === void 0) { + codeblock.data = []; + } + codeblock.data.push({ + data, + start: offset + position, + end: offset + position + packetItem.dataLength, + codingpasses: packetItem.codingpasses + }); + position += packetItem.dataLength; } + } catch (e) { + return; + } } - else - term.push(deflate(file, p, cbl)); - }; - // Cannot use lft because it can decrease - for (var i = 0; i < slft; ++i) { - _loop_1(i); - } - return tAll; -} -exports.zip = zip; -/** - * Synchronously creates a ZIP file. Prefer using `zip` for better performance - * with more than one file. - * @param data The directory structure for the ZIP archive - * @param opts The main options, merged with per-file options - * @returns The generated ZIP archive - */ -function zipSync(data, opts) { - if (!opts) - opts = {}; - var r = {}; - var files = []; - fltn(data, '', r, opts); - var o = 0; - var tot = 0; - for (var fn in r) { - var _a = r[fn], file = _a[0], p = _a[1]; - var compression = p.level == 0 ? 0 : 8; - var f = strToU8(fn), s = f.length; - var com = p.comment, m = com && strToU8(com), ms = m && m.length; - var exl = exfl(p.extra); - if (s > 65535) - err(11); - var d = compression ? deflateSync(file, p) : file, l = d.length; - var c = crc(); - c.p(file); - files.push(mrg(p, { - size: file.length, - crc: c.d(), - c: d, - f: f, - m: m, - u: s != fn.length || (m && (com.length != ms)), - o: o, - compression: compression - })); - o += 30 + s + exl + l; - tot += 76 + 2 * (s + exl) + (ms || 0) + l; - } - var out = new u8(tot + 22), oe = o, cdl = tot - o; - for (var i = 0; i < files.length; ++i) { - var f = files[i]; - wzh(out, f.o, f, f.f, f.u, f.c.length); - var badd = 30 + f.f.length + exfl(f.extra); - out.set(f.c, f.o + badd); - wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0); - } - wzf(out, o, files.length, cdl, oe); - return out; -} -exports.zipSync = zipSync; -/** - * Streaming pass-through decompression for ZIP archives - */ -var UnzipPassThrough = /*#__PURE__*/ (function () { - function UnzipPassThrough() { - } - UnzipPassThrough.prototype.push = function (data, final) { - this.ondata(null, data, final); - }; - UnzipPassThrough.compression = 0; - return UnzipPassThrough; -}()); -exports.UnzipPassThrough = UnzipPassThrough; -/** - * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for - * better performance. - */ -var UnzipInflate = /*#__PURE__*/ (function () { - /** - * Creates a DEFLATE decompression that can be used in ZIP archives - */ - function UnzipInflate() { - var _this_1 = this; - this.i = new Inflate(function (dat, final) { - _this_1.ondata(null, dat, final); - }); - } - UnzipInflate.prototype.push = function (data, final) { - try { - this.i.push(data, final); - } - catch (e) { - this.ondata(e, null, final); - } - }; - UnzipInflate.compression = 8; - return UnzipInflate; -}()); -exports.UnzipInflate = UnzipInflate; -/** - * Asynchronous streaming DEFLATE decompression for ZIP archives - */ -var AsyncUnzipInflate = /*#__PURE__*/ (function () { - /** - * Creates a DEFLATE decompression that can be used in ZIP archives - */ - function AsyncUnzipInflate(_, sz) { - var _this_1 = this; - if (sz < 320000) { - this.i = new Inflate(function (dat, final) { - _this_1.ondata(null, dat, final); - }); + return position; + } + function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { + var x0 = subband.tbx0; + var y0 = subband.tby0; + var width = subband.tbx1 - subband.tbx0; + var codeblocks = subband.codeblocks; + var right = subband.type.charAt(0) === "H" ? 1 : 0; + var bottom = subband.type.charAt(1) === "H" ? levelWidth : 0; + for (var i2 = 0, ii = codeblocks.length; i2 < ii; ++i2) { + var codeblock = codeblocks[i2]; + var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; + var blockHeight = codeblock.tby1_ - codeblock.tby0_; + if (blockWidth === 0 || blockHeight === 0) { + continue; + } + if (codeblock["data"] === void 0) { + continue; + } + var bitModel, currentCodingpassType; + bitModel = new BitModel( + blockWidth, + blockHeight, + codeblock.subbandType, + codeblock.zeroBitPlanes, + mb + ); + currentCodingpassType = 2; + var data = codeblock.data, totalLength = 0, codingpasses = 0; + var j, jj, dataItem; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + totalLength += dataItem.end - dataItem.start; + codingpasses += dataItem.codingpasses; + } + var encodedData = new Int16Array(totalLength); + var position = 0; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); + encodedData.set(chunk, position); + position += chunk.length; + } + var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); + bitModel.setDecoder(decoder); + for (j = 0; j < codingpasses; j++) { + switch (currentCodingpassType) { + case 0: + bitModel.runSignificancePropogationPass(); + break; + case 1: + bitModel.runMagnitudeRefinementPass(); + break; + case 2: + bitModel.runCleanupPass(); + if (segmentationSymbolUsed) { + bitModel.checkSegmentationSymbol(); + } + break; + } + currentCodingpassType = (currentCodingpassType + 1) % 3; + } + var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; + var sign = bitModel.coefficentsSign; + var magnitude = bitModel.coefficentsMagnitude; + var bitsDecoded = bitModel.bitsDecoded; + var magnitudeCorrection = reversible ? 0 : 0.5; + var k, n, nb; + position = 0; + var interleave = subband.type !== "LL"; + for (j = 0; j < blockHeight; j++) { + var row = offset / width | 0; + var levelOffset = 2 * row * (levelWidth - width) + right + bottom; + for (k = 0; k < blockWidth; k++) { + n = magnitude[position]; + if (n !== 0) { + n = (n + magnitudeCorrection) * delta; + if (sign[position] !== 0) { + n = -n; + } + nb = bitsDecoded[position]; + var pos = interleave ? levelOffset + (offset << 1) : offset; + if (reversible && nb >= mb) { + coefficients[pos] = n; + } else { + coefficients[pos] = n * (1 << mb - nb); + } + } + offset++; + position++; + } + offset += width - blockWidth; + } } - else { - this.i = new AsyncInflate(function (err, dat, final) { - _this_1.ondata(err, dat, final); - }); - this.terminate = this.i.terminate; + } + function transformTile(context, tile, c) { + var component = tile.components[c]; + var codingStyleParameters = component.codingStyleParameters; + var quantizationParameters = component.quantizationParameters; + var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; + var spqcds = quantizationParameters.SPqcds; + var scalarExpounded = quantizationParameters.scalarExpounded; + var guardBits = quantizationParameters.guardBits; + var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; + var precision = context.components[c].precision; + var reversible = codingStyleParameters.reversibleTransformation; + var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); + var subbandCoefficients = []; + var b = 0; + for (var i2 = 0; i2 <= decompositionLevelsCount; i2++) { + var resolution = component.resolutions[i2]; + var width = resolution.trx1 - resolution.trx0; + var height = resolution.try1 - resolution.try0; + var coefficients = new Float32Array(width * height); + for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { + var mu, epsilon; + if (!scalarExpounded) { + mu = spqcds[0].mu; + epsilon = spqcds[0].epsilon + (i2 > 0 ? 1 - i2 : 0); + } else { + mu = spqcds[b].mu; + epsilon = spqcds[b].epsilon; + b++; + } + var subband = resolution.subbands[j]; + var gainLog2 = SubbandsGainLog2[subband.type]; + var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var mb = guardBits + epsilon - 1; + copyCoefficients( + coefficients, + width, + height, + subband, + delta, + mb, + reversible, + segmentationSymbolUsed + ); + } + subbandCoefficients.push({ + width, + height, + items: coefficients + }); } - } - AsyncUnzipInflate.prototype.push = function (data, final) { - if (this.i.terminate) - data = slc(data, 0); - this.i.push(data, final); - }; - AsyncUnzipInflate.compression = 8; - return AsyncUnzipInflate; -}()); -exports.AsyncUnzipInflate = AsyncUnzipInflate; -/** - * A ZIP archive decompression stream that emits files as they are discovered - */ -var Unzip = /*#__PURE__*/ (function () { - /** - * Creates a ZIP decompression stream - * @param cb The callback to call whenever a file in the ZIP archive is found - */ - function Unzip(cb) { - this.onfile = cb; - this.k = []; - this.o = { - 0: UnzipPassThrough + var result = transform.calculate( + subbandCoefficients, + component.tcx0, + component.tcy0 + ); + return { + left: component.tcx0, + top: component.tcy0, + width: result.width, + height: result.height, + items: result.items }; - this.p = et; - } - /** - * Pushes a chunk to be unzipped - * @param chunk The chunk to push - * @param final Whether this is the last chunk - */ - Unzip.prototype.push = function (chunk, final) { - var _this_1 = this; - if (!this.onfile) - err(5); - if (!this.p) - err(4); - if (this.c > 0) { - var len = Math.min(this.c, chunk.length); - var toAdd = chunk.subarray(0, len); - this.c -= len; - if (this.d) - this.d.push(toAdd, !this.c); - else - this.k[0].push(toAdd); - chunk = chunk.subarray(len); - if (chunk.length) - return this.push(chunk, final); - } - else { - var f = 0, i = 0, is = void 0, buf = void 0; - if (!this.p.length) - buf = chunk; - else if (!chunk.length) - buf = this.p; - else { - buf = new u8(this.p.length + chunk.length); - buf.set(this.p), buf.set(chunk, this.p.length); - } - var l = buf.length, oc = this.c, add = oc && this.d; - var _loop_2 = function () { - var _a; - var sig = b4(buf, i); - if (sig == 0x4034B50) { - f = 1, is = i; - this_1.d = null; - this_1.c = 0; - var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28); - if (l > i + 30 + fnl + es) { - var chks_3 = []; - this_1.k.unshift(chks_3); - f = 2; - var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22); - var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u); - if (sc_1 == 4294967295) { - _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1]; - } - else if (dd) - sc_1 = -1; - i += es; - this_1.c = sc_1; - var d_1; - var file_1 = { - name: fn_1, - compression: cmp_1, - start: function () { - if (!file_1.ondata) - err(5); - if (!sc_1) - file_1.ondata(null, et, true); - else { - var ctr = _this_1.o[cmp_1]; - if (!ctr) - file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false); - d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1); - d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); }; - for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) { - var dat = chks_4[_i]; - d_1.push(dat, false); - } - if (_this_1.k[0] == chks_3 && _this_1.c) - _this_1.d = d_1; - else - d_1.push(et, true); - } - }, - terminate: function () { - if (d_1 && d_1.terminate) - d_1.terminate(); - } - }; - if (sc_1 >= 0) - file_1.size = sc_1, file_1.originalSize = su_1; - this_1.onfile(file_1); - } - return "break"; + } + function transformComponents(context) { + var siz = context.SIZ; + var components = context.components; + var componentsCount = siz.Csiz; + var resultImages = []; + for (var i2 = 0, ii = context.tiles.length; i2 < ii; i2++) { + var tile = context.tiles[i2]; + var transformedTiles = []; + var c; + for (c = 0; c < componentsCount; c++) { + transformedTiles[c] = transformTile(context, tile, c); + } + var tile0 = transformedTiles[0]; + var isSigned = components[0].isSigned; + if (isSigned) { + var out = new Int16Array(tile0.items.length * componentsCount); + } else { + var out = new Uint16Array(tile0.items.length * componentsCount); + } + var result = { + left: tile0.left, + top: tile0.top, + width: tile0.width, + height: tile0.height, + items: out + }; + var shift, offset, max, min, maxK; + var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; + if (tile.codingStyleDefaultParameters.multipleComponentTransform) { + var fourComponents = componentsCount === 4; + var y0items = transformedTiles[0].items; + var y1items = transformedTiles[1].items; + var y2items = transformedTiles[2].items; + var y3items = fourComponents ? transformedTiles[3].items : null; + shift = components[0].precision - 8; + offset = (128 << shift) + 0.5; + max = 255 * (1 << shift); + maxK = max * 0.5; + min = -maxK; + var component0 = tile.components[0]; + var alpha01 = componentsCount - 3; + jj = y0items.length; + if (!component0.codingStyleParameters.reversibleTransformation) { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + r = y0 + 1.402 * y2; + g = y0 - 0.34413 * y1 - 0.71414 * y2; + b = y0 + 1.772 * y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } else { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + g = y0 - (y2 + y1 >> 2); + r = g + y2; + b = g + y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } + if (fourComponents) { + for (j = 0, pos = 3; j < jj; j++, pos += 4) { + k = y3items[j]; + out[pos] = k <= min ? 0 : k >= maxK ? 255 : k + offset >> shift; + } + } + } else { + for (c = 0; c < componentsCount; c++) { + if (components[c].precision === 8) { + var items = transformedTiles[c].items; + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + max = 127.5 * (1 << shift); + min = -max; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = val <= min ? 0 : val >= max ? 255 : val + offset >> shift; + pos += componentsCount; } - else if (oc) { - if (sig == 0x8074B50) { - is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0; - return "break"; - } - else if (sig == 0x2014B50) { - is = i -= 4, f = 3, this_1.c = 0; - return "break"; - } + } else { + var isSigned = components[c].isSigned; + var items = transformedTiles[c].items; + if (isSigned) { + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + out[pos] = items[j]; + pos += componentsCount; + } + } else { + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + var precisionMax = Math.pow(2, components[c].precision) - 1; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = Math.max(Math.min(val + offset, precisionMax), 0); + pos += componentsCount; + } } - }; - var this_1 = this; - for (; i < l - 4; ++i) { - var state_1 = _loop_2(); - if (state_1 === "break") - break; - } - this.p = et; - if (oc < 0) { - var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i); - if (add) - add.push(dat, !!f); - else - this.k[+(f == 2)].push(dat); + } } - if (f & 2) - return this.push(buf.subarray(i), final); - this.p = buf.subarray(i); + } + resultImages.push(result); } - if (final) { - if (this.c) - err(13); - this.p = null; + return resultImages; + } + function initializeTile(context, tileIndex) { + var siz = context.SIZ; + var componentsCount = siz.Csiz; + var tile = context.tiles[tileIndex]; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var qcdOrQcc = context.currentTile.QCC[c] !== void 0 ? context.currentTile.QCC[c] : context.currentTile.QCD; + component.quantizationParameters = qcdOrQcc; + var codOrCoc = context.currentTile.COC[c] !== void 0 ? context.currentTile.COC[c] : context.currentTile.COD; + component.codingStyleParameters = codOrCoc; } - }; - /** - * Registers a decoder with the stream, allowing for files compressed with - * the compression type provided to be expanded correctly - * @param decoder The decoder constructor - */ - Unzip.prototype.register = function (decoder) { - this.o[decoder.compression] = decoder; - }; - return Unzip; -}()); -exports.Unzip = Unzip; -var mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); }; -function unzip(data, opts, cb) { - if (!cb) - cb = opts, opts = {}; - if (typeof cb != 'function') - err(7); - var term = []; - var tAll = function () { - for (var i = 0; i < term.length; ++i) - term[i](); - }; - var files = {}; - var cbd = function (a, b) { - mt(function () { cb(a, b); }); - }; - mt(function () { cbd = cb; }); - var e = data.length - 22; - for (; b4(data, e) != 0x6054B50; --e) { - if (!e || data.length - e > 65558) { - cbd(err(13, 0, 1), null); - return tAll; + tile.codingStyleDefaultParameters = context.currentTile.COD; + } + var TagTree = function TagTreeClosure() { + function TagTree2(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i2 = 0; i2 < levelsLength; i2++) { + var level = { + width, + height, + items: [] + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } } - } - ; - var lft = b2(data, e + 8); - if (lft) { - var c = lft; - var o = b4(data, e + 16); - var z = o == 4294967295 || c == 65535; - if (z) { - var ze = b4(data, e - 12); - z = b4(data, ze) == 0x6064B50; - if (z) { - c = lft = b4(data, ze + 32); - o = b4(data, ze + 48); + TagTree2.prototype = { + reset: function TagTree_reset(i2, j) { + var currentLevel = 0, value = 0, level; + while (currentLevel < this.levels.length) { + level = this.levels[currentLevel]; + var index = i2 + j * level.width; + if (level.items[index] !== void 0) { + value = level.items[index]; + break; + } + level.index = index; + i2 >>= 1; + j >>= 1; + currentLevel++; + } + currentLevel--; + level = this.levels[currentLevel]; + level.items[level.index] = value; + this.currentLevel = currentLevel; + delete this.value; + }, + incrementValue: function TagTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index]++; + }, + nextLevel: function TagTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + currentLevel--; + if (currentLevel < 0) { + this.value = value; + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return TagTree2; + }(); + var InclusionTree = function InclusionTreeClosure() { + function InclusionTree2(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i2 = 0; i2 < levelsLength; i2++) { + var items = new Uint8Array(width * height); + var status = new Uint8Array(width * height); + for (var j = 0, jj = items.length; j < jj; j++) { + items[j] = 0; + status[j] = 0; } + var level = { + width, + height, + items, + status + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } } - var fltr = opts && opts.filter; - var _loop_3 = function (i) { - var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off); - o = no; - var cbl = function (e, d) { - if (e) { - tAll(); - cbd(e, null); + InclusionTree2.prototype = { + reset: function InclusionTree_reset(i2, j, stopValue) { + this.currentStopValue = stopValue; + var currentLevel = 0; + while (currentLevel < this.levels.length) { + var level = this.levels[currentLevel]; + var index = i2 + j * level.width; + level.index = index; + i2 >>= 1; + j >>= 1; + currentLevel++; + } + this.currentLevel = this.levels.length - 1; + this.minValue = this.levels[this.currentLevel].items[0]; + return; + }, + incrementValue: function InclusionTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index] = level.items[level.index] + 1; + if (level.items[level.index] > this.minValue) { + this.minValue = level.items[level.index]; + } + }, + nextLevel: function InclusionTree_nextLevel() { + var currentLevel = this.currentLevel; + currentLevel--; + if (currentLevel < 0) { + return false; + } else { + this.currentLevel = currentLevel; + var level = this.levels[currentLevel]; + if (level.items[level.index] < this.minValue) { + level.items[level.index] = this.minValue; + } else if (level.items[level.index] > this.minValue) { + this.minValue = level.items[level.index]; + } + return true; + } + }, + isLeaf: function InclusionTree_isLeaf() { + return this.currentLevel === 0; + }, + isAboveThreshold: function InclusionTree_isAboveThreshold() { + var levelindex = this.currentLevel; + var level = this.levels[levelindex]; + return level.items[level.index] > this.currentStopValue; + }, + isKnown: function InclusionTree_isKnown() { + var levelindex = this.currentLevel; + var level = this.levels[levelindex]; + return level.status[level.index] > 0; + }, + setKnown: function InclusionTree_setKnown() { + var levelindex = this.currentLevel; + var level = this.levels[levelindex]; + level.status[level.index] = 1; + return; + } + }; + return InclusionTree2; + }(); + var BitModel = function BitModelClosure() { + var UNIFORM_CONTEXT = 17; + var RUNLENGTH_CONTEXT = 18; + var LLAndLHContextsLabel = new Uint8Array([ + 0, + 5, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 6, + 8, + 0, + 3, + 7, + 8, + 0, + 4, + 7, + 8 + ]); + var HLContextLabel = new Uint8Array([ + 0, + 3, + 4, + 0, + 5, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 2, + 3, + 4, + 0, + 6, + 7, + 7, + 0, + 8, + 8, + 8 + ]); + var HHContextLabel = new Uint8Array([ + 0, + 1, + 2, + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 3, + 4, + 5, + 0, + 4, + 5, + 5, + 0, + 5, + 5, + 5, + 0, + 0, + 0, + 0, + 0, + 6, + 7, + 7, + 0, + 7, + 7, + 7, + 0, + 7, + 7, + 7, + 0, + 0, + 0, + 0, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8, + 0, + 8, + 8, + 8 + ]); + function BitModel2(width, height, subband, zeroBitPlanes, mb) { + this.width = width; + this.height = height; + this.contextLabelTable = subband === "HH" ? HHContextLabel : subband === "HL" ? HLContextLabel : LLAndLHContextsLabel; + var coefficientCount = width * height; + this.neighborsSignificance = new Uint8Array(coefficientCount); + this.coefficentsSign = new Uint8Array(coefficientCount); + this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); + this.processingFlags = new Uint8Array(coefficientCount); + var bitsDecoded = new Uint8Array(coefficientCount); + if (zeroBitPlanes !== 0) { + for (var i2 = 0; i2 < coefficientCount; i2++) { + bitsDecoded[i2] = zeroBitPlanes; + } + } + this.bitsDecoded = bitsDecoded; + this.reset(); + } + BitModel2.prototype = { + setDecoder: function BitModel_setDecoder(decoder) { + this.decoder = decoder; + }, + reset: function BitModel_reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 4 << 1 | 0; + this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; + this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; + }, + setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { + var neighborsSignificance = this.neighborsSignificance; + var width = this.width, height = this.height; + var left = column > 0; + var right = column + 1 < width; + var i2; + if (row > 0) { + i2 = index - width; + if (left) { + neighborsSignificance[i2 - 1] += 16; + } + if (right) { + neighborsSignificance[i2 + 1] += 16; + } + neighborsSignificance[i2] += 4; + } + if (row + 1 < height) { + i2 = index + width; + if (left) { + neighborsSignificance[i2 - 1] += 16; + } + if (right) { + neighborsSignificance[i2 + 1] += 16; + } + neighborsSignificance[i2] += 4; + } + if (left) { + neighborsSignificance[index - 1] += 1; + } + if (right) { + neighborsSignificance[index + 1] += 1; + } + neighborsSignificance[index] |= 128; + }, + runSignificancePropogationPass: function BitModel_runSignificancePropogationPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var neighborsSignificance = this.neighborsSignificance; + var processingFlags = this.processingFlags; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processedInverseMask = ~1; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + for (var i0 = 0; i0 < height; i0 += 4) { + for (var j = 0; j < width; j++) { + var index = i0 * width + j; + for (var i1 = 0; i1 < 4; i1++, index += width) { + var i2 = i0 + i1; + if (i2 >= height) { + break; + } + processingFlags[index] &= processedInverseMask; + if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision) { + var sign = this.decodeSignBit(i2, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i2, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + processingFlags[index] |= processedMask; } - else { - if (d) - files[fn] = d; - if (!--lft) - cbd(null, files); + } + } + }, + decodeSignBit: function BitModel_decodeSignBit(row, column, index) { + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contribution, sign0, sign1, significance1; + var contextLabel, decoded; + significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; + if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { + sign1 = coefficentsSign[index + 1]; + if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign1 - sign0; + } else { + contribution = 1 - sign1 - sign1; + } + } else if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign0 - sign0; + } else { + contribution = 0; + } + var horizontalContribution = 3 * contribution; + significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; + if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { + sign1 = coefficentsSign[index + width]; + if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign1 - sign0 + horizontalContribution; + } else { + contribution = 1 - sign1 - sign1 + horizontalContribution; + } + } else if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign0 - sign0 + horizontalContribution; + } else { + contribution = horizontalContribution; + } + if (contribution >= 0) { + contextLabel = 9 + contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel); + } else { + contextLabel = 9 - contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + } + return decoded; + }, + runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var neighborsSignificance = this.neighborsSignificance; + var contexts = this.contexts; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var length = width * height; + var width4 = width * 4; + for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { + indexNext = Math.min(length, index0 + width4); + for (var j = 0; j < width; j++) { + for (var index = index0 + j; index < indexNext; index += width) { + if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = 16; + if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { + processingFlags[index] ^= firstMagnitudeBitMask; + var significance = neighborsSignificance[index] & 127; + contextLabel = significance === 0 ? 15 : 14; + } + var bit = decoder.readBit(contexts, contextLabel); + coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; + bitsDecoded[index]++; + processingFlags[index] |= processedMask; } - }; - if (!fltr || fltr({ - name: fn, - size: sc, - originalSize: su, - compression: c_1 - })) { - if (!c_1) - cbl(null, slc(data, b, b + sc)); - else if (c_1 == 8) { - var infl = data.subarray(b, b + sc); - if (sc < 320000) { - try { - cbl(null, inflateSync(infl, new u8(su))); - } - catch (e) { - cbl(e, null); - } - } - else - term.push(inflate(infl, { size: su }, cbl)); + } + } + }, + runCleanupPass: function BitModel_runCleanupPass() { + var decoder = this.decoder; + var width = this.width, height = this.height; + var neighborsSignificance = this.neighborsSignificance; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var oneRowDown = width; + var twoRowsDown = width * 2; + var threeRowsDown = width * 3; + var iNext; + for (var i0 = 0; i0 < height; i0 = iNext) { + iNext = Math.min(i0 + 4, height); + var indexBase = i0 * width; + var checkAllEmpty = i0 + 3 < height; + for (var j = 0; j < width; j++) { + var index0 = indexBase + j; + var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; + var i1 = 0, index = index0; + var i2 = i0, sign; + if (allEmpty) { + var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); + if (!hasSignificantCoefficent) { + bitsDecoded[index0]++; + bitsDecoded[index0 + oneRowDown]++; + bitsDecoded[index0 + twoRowsDown]++; + bitsDecoded[index0 + threeRowsDown]++; + continue; + } + i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (i1 !== 0) { + i2 = i0 + i1; + index += i1 * width; + } + sign = this.decodeSignBit(i2, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i2, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + index = index0; + for (var i22 = i0; i22 <= i2; i22++, index += width) { + bitsDecoded[index]++; + } + i1++; } - else - cbl(err(14, 'unknown compression type ' + c_1, 1), null); + for (i2 = i0 + i1; i2 < iNext; i2++, index += width) { + if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision === 1) { + sign = this.decodeSignBit(i2, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i2, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + } + } } - else - cbl(null, null); + }, + checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { + var decoder = this.decoder; + var contexts = this.contexts; + var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (symbol !== 10) { + throw new Error("JPX Error: Invalid segmentation symbol"); + } + } }; - for (var i = 0; i < c; ++i) { - _loop_3(i); + return BitModel2; + }(); + var Transform = function TransformClosure() { + function Transform2() { } - } - else - cbd(null, {}); - return tAll; -} -exports.unzip = unzip; -/** - * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better - * performance with more than one file. - * @param data The raw compressed ZIP file - * @param opts The ZIP extraction options - * @returns The decompressed files - */ -function unzipSync(data, opts) { - var files = {}; - var e = data.length - 22; - for (; b4(data, e) != 0x6054B50; --e) { - if (!e || data.length - e > 65558) - err(13); - } - ; - var c = b2(data, e + 8); - if (!c) - return {}; - var o = b4(data, e + 16); - var z = o == 4294967295 || c == 65535; - if (z) { - var ze = b4(data, e - 12); - z = b4(data, ze) == 0x6064B50; - if (z) { - c = b4(data, ze + 32); - o = b4(data, ze + 48); + Transform2.prototype.calculate = function transformCalculate(subbands, u0, v0) { + var ll = subbands[0]; + for (var i2 = 1, ii = subbands.length; i2 < ii; i2++) { + ll = this.iterate(ll, subbands[i2], u0, v0); + } + return ll; + }; + Transform2.prototype.extend = function extend(buffer2, offset, size) { + var i1 = offset - 1, j1 = offset + 1; + var i2 = offset + size - 2, j2 = offset + size; + buffer2[i1--] = buffer2[j1++]; + buffer2[j2++] = buffer2[i2--]; + buffer2[i1--] = buffer2[j1++]; + buffer2[j2++] = buffer2[i2--]; + buffer2[i1--] = buffer2[j1++]; + buffer2[j2++] = buffer2[i2--]; + buffer2[i1] = buffer2[j1]; + buffer2[j2] = buffer2[i2]; + }; + Transform2.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { + var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; + var width = hl_lh_hh.width; + var height = hl_lh_hh.height; + var items = hl_lh_hh.items; + var i2, j, k, l, u, v; + for (k = 0, i2 = 0; i2 < llHeight; i2++) { + l = i2 * 2 * width; + for (j = 0; j < llWidth; j++, k++, l += 2) { + items[l] = llItems[k]; + } + } + llItems = ll.items = null; + var bufferPadding = 4; + var rowBuffer = new Float32Array(width + 2 * bufferPadding); + if (width === 1) { + if ((u0 & 1) !== 0) { + for (v = 0, k = 0; v < height; v++, k += width) { + items[k] *= 0.5; + } + } + } else { + for (v = 0, k = 0; v < height; v++, k += width) { + rowBuffer.set(items.subarray(k, k + width), bufferPadding); + this.extend(rowBuffer, bufferPadding, width); + this.filter(rowBuffer, bufferPadding, width); + items.set( + rowBuffer.subarray(bufferPadding, bufferPadding + width), + k + ); + } + } + var numBuffers = 16; + var colBuffers = []; + for (i2 = 0; i2 < numBuffers; i2++) { + colBuffers.push(new Float32Array(height + 2 * bufferPadding)); + } + var b, currentBuffer = 0; + ll = bufferPadding + height; + if (height === 1) { + if ((v0 & 1) !== 0) { + for (u = 0; u < width; u++) { + items[u] *= 0.5; + } + } + } else { + for (u = 0; u < width; u++) { + if (currentBuffer === 0) { + numBuffers = Math.min(width - u, numBuffers); + for (k = u, l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + colBuffers[b][l] = items[k + b]; + } + } + currentBuffer = numBuffers; + } + currentBuffer--; + var buffer2 = colBuffers[currentBuffer]; + this.extend(buffer2, bufferPadding, height); + this.filter(buffer2, bufferPadding, height); + if (currentBuffer === 0) { + k = u - numBuffers + 1; + for (l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + items[k + b] = colBuffers[b][l]; + } + } + } + } + } + return { + width, + height, + items + }; + }; + return Transform2; + }(); + var IrreversibleTransform = function IrreversibleTransformClosure() { + function IrreversibleTransform2() { + Transform.call(this); } - } - var fltr = opts && opts.filter; - for (var i = 0; i < c; ++i) { - var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off); - o = no; - if (!fltr || fltr({ - name: fn, - size: sc, - originalSize: su, - compression: c_2 - })) { - if (!c_2) - files[fn] = slc(data, b, b + sc); - else if (c_2 == 8) - files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su)); - else - err(14, 'unknown compression type ' + c_2); + IrreversibleTransform2.prototype = Object.create(Transform.prototype); + IrreversibleTransform2.prototype.filter = function irreversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n, current, next; + var alpha = -1.586134342059924; + var beta = -0.052980118572961; + var gamma = 0.882911075530934; + var delta = 0.443506852043971; + var K = 1.230174104914001; + var K_ = 1 / K; + j = offset - 3; + for (n = len + 4; n--; j += 2) { + x[j] *= K_; + } + j = offset - 2; + current = delta * x[j - 1]; + for (n = len + 3; n--; j += 2) { + next = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + if (n--) { + j += 2; + current = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + } else { + break; + } + } + j = offset - 1; + current = gamma * x[j - 1]; + for (n = len + 2; n--; j += 2) { + next = gamma * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = gamma * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + j = offset; + current = beta * x[j - 1]; + for (n = len + 1; n--; j += 2) { + next = beta * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = beta * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + if (len !== 0) { + j = offset + 1; + current = alpha * x[j - 1]; + for (n = len; n--; j += 2) { + next = alpha * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = alpha * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + } + }; + return IrreversibleTransform2; + }(); + var ReversibleTransform = function ReversibleTransformClosure() { + function ReversibleTransform2() { + Transform.call(this); + } + ReversibleTransform2.prototype = Object.create(Transform.prototype); + ReversibleTransform2.prototype.filter = function reversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n; + for (j = offset, n = len + 1; n--; j += 2) { + x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; + } + for (j = offset + 1, n = len; n--; j += 2) { + x[j] += x[j - 1] + x[j + 1] >> 1; + } + }; + return ReversibleTransform2; + }(); + return JpxImage3; + }(); + var ArithmeticDecoder = function ArithmeticDecoderClosure() { + var QeTable = [ + { qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 }, + { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 }, + { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 }, + { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 }, + { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 }, + { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 }, + { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 }, + { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 }, + { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 }, + { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 }, + { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 }, + { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 }, + { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 }, + { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 }, + { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 }, + { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 }, + { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 }, + { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 }, + { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 }, + { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 }, + { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 }, + { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 }, + { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 }, + { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 }, + { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 }, + { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 }, + { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 }, + { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 }, + { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 }, + { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 }, + { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 }, + { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 }, + { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 }, + { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 }, + { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 }, + { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 }, + { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 }, + { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 }, + { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 }, + { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 }, + { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 }, + { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 }, + { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 }, + { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 }, + { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 }, + { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 }, + { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 } + ]; + function ArithmeticDecoder2(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 65535 | this.clow >> 9 & 127; + this.clow = this.clow << 7 & 65535; + this.ct -= 7; + this.a = 32768; + } + ArithmeticDecoder2.prototype = { + // C.3.4 Compressed data input (BYTEIN) + byteIn: function ArithmeticDecoder_byteIn() { + var data = this.data; + var bp = this.bp; + if (data[bp] === 255) { + var b1 = data[bp + 1]; + if (b1 > 143) { + this.clow += 65280; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 65280; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 65535) { + this.chigh += this.clow >> 16; + this.clow &= 65535; + } + }, + // C.3.2 Decoding a decision (DECODE) + readBit: function ArithmeticDecoder_readBit(contexts, pos) { + var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; + var qeTableIcx = QeTable[cx_index]; + var qeIcx = qeTableIcx.qe; + var d; + var a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 32768) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 65535 | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 65535; + this.ct--; + } while ((a & 32768) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; } + }; + return ArithmeticDecoder2; + }(); + var globalScope2 = typeof window === "undefined" ? exports2 : window; + if (!globalScope2.PDFJS) { + globalScope2.PDFJS = {}; } - return files; -} -exports.unzipSync = unzipSync; - -},{"./node-worker.cjs":8}],8:[function(require,module,exports){ -"use strict"; -var ch2 = {}; -exports["default"] = (function (c, id, msg, transfer, cb) { - var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([ - c + ';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})' - ], { type: 'text/javascript' })))); - w.onmessage = function (e) { - var d = e.data, ed = d.$e$; - if (ed) { - var err = new Error(ed[0]); - err['code'] = ed[1]; - err.stack = ed[2]; - cb(err, null); - } - else - cb(null, d); + var PDFJS = PDFJS || {}; + PDFJS.VERBOSITY_LEVELS = { + errors: 0, + warnings: 1, + infos: 5 }; - w.postMessage(msg, transfer); - return w; -}); - -},{}],9:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.ComponentSpec = jpeg.lossless.ComponentSpec || function () { - this.hSamp = 0; // Horizontal sampling factor - this.quantTableSel = 0; // Quantization table destination selector - this.vSamp = 0; // Vertical -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.ComponentSpec; -} - -},{}],10:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.DataStream = jpeg.lossless.DataStream || function (data, offset, length) { - if (offset === undefined && length === undefined) { // Old api - this.buffer = new Uint8Array(data); - } else { - this.buffer = new Uint8Array(data, offset, length); - } - this.index = 0; -}; - - - -jpeg.lossless.DataStream.prototype.get16 = function () { - // var value = this.buffer.getUint16(this.index, false); - var value = (this.buffer[this.index] << 8) + this.buffer[this.index + 1]; // DataView is big-endian by default - this.index += 2; - return value; -}; - - - -jpeg.lossless.DataStream.prototype.get8 = function () { - // var value = this.buffer.getUint8(this.index); - var value = this.buffer[this.index]; - this.index += 1; - return value; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.DataStream; -} - -},{}],11:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.HuffmanTable = jpeg.lossless.HuffmanTable || ((typeof require !== 'undefined') ? require('./huffman-table.js') : null); -jpeg.lossless.QuantizationTable = jpeg.lossless.QuantizationTable || ((typeof require !== 'undefined') ? require('./quantization-table.js') : null); -jpeg.lossless.ScanHeader = jpeg.lossless.ScanHeader || ((typeof require !== 'undefined') ? require('./scan-header.js') : null); -jpeg.lossless.FrameHeader = jpeg.lossless.FrameHeader || ((typeof require !== 'undefined') ? require('./frame-header.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Constructor ***/ - -/** - * The Decoder constructor. - * @property {number} xDim - size of x dimension - * @property {number} yDim - size of y dimension - * @property {number} numComp - number of components - * @property {number} numBytes - number of bytes per component - * @type {Function} - */ -jpeg.lossless.Decoder = jpeg.lossless.Decoder || function (buffer, numBytes) { - this.buffer = buffer; - this.frame = new jpeg.lossless.FrameHeader(); - this.huffTable = new jpeg.lossless.HuffmanTable(); - this.quantTable = new jpeg.lossless.QuantizationTable(); - this.scan = new jpeg.lossless.ScanHeader(); - this.DU = jpeg.lossless.Utils.createArray(10, 4, 64); // at most 10 data units in a MCU, at most 4 data units in one component - this.HuffTab = jpeg.lossless.Utils.createArray(4, 2, 50 * 256); - this.IDCT_Source = []; - this.nBlock = []; // number of blocks in the i-th Comp in a scan - this.acTab = jpeg.lossless.Utils.createArray(10, 1); // ac HuffTab for the i-th Comp in a scan - this.dcTab = jpeg.lossless.Utils.createArray(10, 1); // dc HuffTab for the i-th Comp in a scan - this.qTab = jpeg.lossless.Utils.createArray(10, 1); // quantization table for the i-th Comp in a scan - this.marker = 0; - this.markerIndex = 0; - this.numComp = 0; - this.restartInterval = 0; - this.selection = 0; - this.xDim = 0; - this.yDim = 0; - this.xLoc = 0; - this.yLoc = 0; - this.numBytes = 0; - this.outputData = null; - this.restarting = false; - this.mask = 0; - - if (typeof numBytes !== "undefined") { - this.numBytes = numBytes; + var OPS = PDFJS.OPS = { + // Intentionally start from 1 so it is easy to spot bad operators that will be + // 0's. + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotations: 78, + endAnnotations: 79, + beginAnnotation: 80, + endAnnotation: 81, + paintJpegXObject: 82, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 + }; + function info(msg) { + if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { + console.log("Info: " + msg); + } } -}; - - -/*** Static Pseudo-constants ***/ - -jpeg.lossless.Decoder.IDCT_P = [0, 5, 40, 16, 45, 2, 7, 42, 21, 56, 8, 61, 18, 47, 1, 4, 41, 23, 58, 13, 32, 24, 37, 10, 63, 17, 44, 3, 6, 43, 20, - 57, 15, 34, 29, 48, 53, 26, 39, 9, 60, 19, 46, 22, 59, 12, 33, 31, 50, 55, 25, 36, 11, 62, 14, 35, 28, 49, 52, 27, 38, 30, 51, 54]; -jpeg.lossless.Decoder.TABLE = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]; -jpeg.lossless.Decoder.MAX_HUFFMAN_SUBTREE = 50; -jpeg.lossless.Decoder.MSB = 0x80000000; -jpeg.lossless.Decoder.RESTART_MARKER_BEGIN = 0xFFD0; -jpeg.lossless.Decoder.RESTART_MARKER_END = 0xFFD7; - -/*** Prototype Methods ***/ - -/** - * Returns decompressed data. - * @param {ArrayBuffer} buffer - * @param {number} [offset] - * @param {number} [length] - * @returns {ArrayBufer} - */ -jpeg.lossless.Decoder.prototype.decompress = function (buffer, offset, length) { - return this.decode(buffer, offset, length).buffer; -}; - - - -jpeg.lossless.Decoder.prototype.decode = function (buffer, offset, length, numBytes) { - /*jslint bitwise: true */ - - var current, scanNum = 0, pred = [], i, compN, temp = [], index = [], mcuNum; - - if (typeof buffer !== "undefined") { - this.buffer = buffer; + function warn(msg) { + if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { + console.log("Warning: " + msg); + } } - - if (typeof numBytes !== "undefined") { - this.numBytes = numBytes; + function error(msg) { + if (arguments.length > 1) { + var logArguments = ["Error:"]; + logArguments.push.apply(logArguments, arguments); + console.log.apply(console, logArguments); + msg = [].join.call(arguments, " "); + } else { + console.log("Error: " + msg); + } + console.log(backtrace()); + UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); + throw new Error(msg); } - - this.stream = new jpeg.lossless.DataStream(this.buffer, offset, length); - this.buffer = null; - - this.xLoc = 0; - this.yLoc = 0; - current = this.stream.get16(); - - if (current !== 0xFFD8) { // SOI - throw new Error("Not a JPEG file"); + function backtrace() { + try { + throw new Error(); + } catch (e) { + return e.stack ? e.stack.split("\n").slice(2).join("\n") : ""; + } } - - current = this.stream.get16(); - - while ((((current >> 4) !== 0x0FFC) || (current === 0xFFC4))) { // SOF 0~15 - switch (current) { - case 0xFFC4: // DHT - this.huffTable.read(this.stream, this.HuffTab); - break; - case 0xFFCC: // DAC - throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); - case 0xFFDB: - this.quantTable.read(this.stream, jpeg.lossless.Decoder.TABLE); - break; - case 0xFFDD: - this.restartInterval = this.readNumber(); - break; - case 0xFFE0: - case 0xFFE1: - case 0xFFE2: - case 0xFFE3: - case 0xFFE4: - case 0xFFE5: - case 0xFFE6: - case 0xFFE7: - case 0xFFE8: - case 0xFFE9: - case 0xFFEA: - case 0xFFEB: - case 0xFFEC: - case 0xFFED: - case 0xFFEE: - case 0xFFEF: - this.readApp(); - break; - case 0xFFFE: - this.readComment(); - break; - default: - if ((current >> 8) !== 0xFF) { - throw new Error("ERROR: format throw new IOException! (decode)"); - } + var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { + unknown: "unknown", + forms: "forms", + javaScript: "javaScript", + smask: "smask", + shadingPattern: "shadingPattern", + font: "font" + }; + var UnsupportedManager = PDFJS.UnsupportedManager = function UnsupportedManagerClosure() { + var listeners = []; + return { + listen: function(cb) { + listeners.push(cb); + }, + notify: function(featureId) { + warn('Unsupported feature "' + featureId + '"'); + for (var i2 = 0, ii = listeners.length; i2 < ii; i2++) { + listeners[i2](featureId); + } } - - current = this.stream.get16(); + }; + }(); + function isValidUrl(url, allowRelative) { + if (!url) { + return false; + } + var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); + if (!protocol) { + return allowRelative; + } + protocol = protocol[0].toLowerCase(); + switch (protocol) { + case "http": + case "https": + case "ftp": + case "mailto": + case "tel": + return true; + default: + return false; + } } - - if ((current < 0xFFC0) || (current > 0xFFC7)) { - throw new Error("ERROR: could not handle arithmetic code!"); + PDFJS.isValidUrl = isValidUrl; + function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value, + enumerable: true, + configurable: true, + writable: false + }); + return value; } - - this.frame.read(this.stream); - current = this.stream.get16(); - - do { - while (current !== 0x0FFDA) { // SOS - switch (current) { - case 0xFFC4: // DHT - this.huffTable.read(this.stream, this.HuffTab); - break; - case 0xFFCC: // DAC - throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); - case 0xFFDB: - this.quantTable.read(this.stream, jpeg.lossless.Decoder.TABLE); - break; - case 0xFFDD: - this.restartInterval = this.readNumber(); - break; - case 0xFFE0: - case 0xFFE1: - case 0xFFE2: - case 0xFFE3: - case 0xFFE4: - case 0xFFE5: - case 0xFFE6: - case 0xFFE7: - case 0xFFE8: - case 0xFFE9: - case 0xFFEA: - case 0xFFEB: - case 0xFFEC: - case 0xFFED: - case 0xFFEE: - case 0xFFEF: - this.readApp(); - break; - case 0xFFFE: - this.readComment(); - break; - default: - if ((current >> 8) !== 0xFF) { - throw new Error("ERROR: format throw new IOException! (Parser.decode)"); - } - } - - current = this.stream.get16(); + PDFJS.shadow = shadow; + var PasswordResponses = PDFJS.PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 + }; + var PasswordException = function PasswordExceptionClosure() { + function PasswordException2(msg, code) { + this.name = "PasswordException"; + this.message = msg; + this.code = code; + } + PasswordException2.prototype = new Error(); + PasswordException2.constructor = PasswordException2; + return PasswordException2; + }(); + PDFJS.PasswordException = PasswordException; + var UnknownErrorException = function UnknownErrorExceptionClosure() { + function UnknownErrorException2(msg, details) { + this.name = "UnknownErrorException"; + this.message = msg; + this.details = details; + } + UnknownErrorException2.prototype = new Error(); + UnknownErrorException2.constructor = UnknownErrorException2; + return UnknownErrorException2; + }(); + PDFJS.UnknownErrorException = UnknownErrorException; + var InvalidPDFException = function InvalidPDFExceptionClosure() { + function InvalidPDFException2(msg) { + this.name = "InvalidPDFException"; + this.message = msg; + } + InvalidPDFException2.prototype = new Error(); + InvalidPDFException2.constructor = InvalidPDFException2; + return InvalidPDFException2; + }(); + PDFJS.InvalidPDFException = InvalidPDFException; + var MissingPDFException = function MissingPDFExceptionClosure() { + function MissingPDFException2(msg) { + this.name = "MissingPDFException"; + this.message = msg; + } + MissingPDFException2.prototype = new Error(); + MissingPDFException2.constructor = MissingPDFException2; + return MissingPDFException2; + }(); + PDFJS.MissingPDFException = MissingPDFException; + var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { + function UnexpectedResponseException2(msg, status) { + this.name = "UnexpectedResponseException"; + this.message = msg; + this.status = status; + } + UnexpectedResponseException2.prototype = new Error(); + UnexpectedResponseException2.constructor = UnexpectedResponseException2; + return UnexpectedResponseException2; + }(); + PDFJS.UnexpectedResponseException = UnexpectedResponseException; + var NotImplementedException = function NotImplementedExceptionClosure() { + function NotImplementedException2(msg) { + this.message = msg; + } + NotImplementedException2.prototype = new Error(); + NotImplementedException2.prototype.name = "NotImplementedException"; + NotImplementedException2.constructor = NotImplementedException2; + return NotImplementedException2; + }(); + var MissingDataException = function MissingDataExceptionClosure() { + function MissingDataException2(begin, end) { + this.begin = begin; + this.end = end; + this.message = "Missing data [" + begin + ", " + end + ")"; + } + MissingDataException2.prototype = new Error(); + MissingDataException2.prototype.name = "MissingDataException"; + MissingDataException2.constructor = MissingDataException2; + return MissingDataException2; + }(); + var XRefParseException = function XRefParseExceptionClosure() { + function XRefParseException2(msg) { + this.message = msg; + } + XRefParseException2.prototype = new Error(); + XRefParseException2.prototype.name = "XRefParseException"; + XRefParseException2.constructor = XRefParseException2; + return XRefParseException2; + }(); + function log2(x) { + var n = 1, i2 = 0; + while (x > n) { + n <<= 1; + i2++; + } + return i2; + } + function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; + } + function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; + } + function isLittleEndian() { + var buffer8 = new Uint8Array(2); + buffer8[0] = 1; + var buffer16 = new Uint16Array(buffer8.buffer); + return buffer16[0] === 1; + } + Object.defineProperty(PDFJS, "isLittleEndian", { + configurable: true, + get: function PDFJS_isLittleEndian() { + return shadow(PDFJS, "isLittleEndian", isLittleEndian()); + } + }); + function hasCanvasTypedArrays() { + var canvas = document.createElement("canvas"); + canvas.width = canvas.height = 1; + var ctx = canvas.getContext("2d"); + var imageData = ctx.createImageData(1, 1); + return typeof imageData.data.buffer !== "undefined"; + } + Object.defineProperty(PDFJS, "hasCanvasTypedArrays", { + configurable: true, + get: function PDFJS_hasCanvasTypedArrays() { + return shadow(PDFJS, "hasCanvasTypedArrays", hasCanvasTypedArrays()); + } + }); + var Uint32ArrayView = function Uint32ArrayViewClosure() { + function Uint32ArrayView2(buffer2, length) { + this.buffer = buffer2; + this.byteLength = buffer2.length; + this.length = length === void 0 ? this.byteLength >> 2 : length; + ensureUint32ArrayViewProps(this.length); + } + Uint32ArrayView2.prototype = /* @__PURE__ */ Object.create(null); + var uint32ArrayViewSetters = 0; + function createUint32ArrayProp(index) { + return { + get: function() { + var buffer2 = this.buffer, offset = index << 2; + return (buffer2[offset] | buffer2[offset + 1] << 8 | buffer2[offset + 2] << 16 | buffer2[offset + 3] << 24) >>> 0; + }, + set: function(value) { + var buffer2 = this.buffer, offset = index << 2; + buffer2[offset] = value & 255; + buffer2[offset + 1] = value >> 8 & 255; + buffer2[offset + 2] = value >> 16 & 255; + buffer2[offset + 3] = value >>> 24 & 255; + } + }; + } + function ensureUint32ArrayViewProps(length) { + while (uint32ArrayViewSetters < length) { + Object.defineProperty( + Uint32ArrayView2.prototype, + uint32ArrayViewSetters, + createUint32ArrayProp(uint32ArrayViewSetters) + ); + uint32ArrayViewSetters++; } - - this.precision = this.frame.precision; - this.components = this.frame.components; - - if (!this.numBytes) { - this.numBytes = parseInt(Math.ceil(this.precision / 8)); + } + return Uint32ArrayView2; + }(); + var Util = PDFJS.Util = function UtilClosure() { + function Util2() { + } + var rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"]; + Util2.makeCssRgb = function Util_makeCssRgb(r, g, b) { + rgbBuf[1] = r; + rgbBuf[3] = g; + rgbBuf[5] = b; + return rgbBuf.join(""); + }; + Util2.transform = function Util_transform(m1, m2) { + return [ + m1[0] * m2[0] + m1[2] * m2[1], + m1[1] * m2[0] + m1[3] * m2[1], + m1[0] * m2[2] + m1[2] * m2[3], + m1[1] * m2[2] + m1[3] * m2[3], + m1[0] * m2[4] + m1[2] * m2[5] + m1[4], + m1[1] * m2[4] + m1[3] * m2[5] + m1[5] + ]; + }; + Util2.applyTransform = function Util_applyTransform(p, m) { + var xt = p[0] * m[0] + p[1] * m[2] + m[4]; + var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + }; + Util2.applyInverseTransform = function Util_applyInverseTransform(p, m) { + var d = m[0] * m[3] - m[1] * m[2]; + var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + }; + Util2.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { + var p1 = Util2.applyTransform(r, m); + var p2 = Util2.applyTransform(r.slice(2, 4), m); + var p3 = Util2.applyTransform([r[0], r[3]], m); + var p4 = Util2.applyTransform([r[2], r[1]], m); + return [ + Math.min(p1[0], p2[0], p3[0], p4[0]), + Math.min(p1[1], p2[1], p3[1], p4[1]), + Math.max(p1[0], p2[0], p3[0], p4[0]), + Math.max(p1[1], p2[1], p3[1], p4[1]) + ]; + }; + Util2.inverseTransform = function Util_inverseTransform(m) { + var d = m[0] * m[3] - m[1] * m[2]; + return [ + m[3] / d, + -m[1] / d, + -m[2] / d, + m[0] / d, + (m[2] * m[5] - m[4] * m[3]) / d, + (m[4] * m[1] - m[5] * m[0]) / d + ]; + }; + Util2.apply3dTransform = function Util_apply3dTransform(m, v) { + return [ + m[0] * v[0] + m[1] * v[1] + m[2] * v[2], + m[3] * v[0] + m[4] * v[1] + m[5] * v[2], + m[6] * v[0] + m[7] * v[1] + m[8] * v[2] + ]; + }; + Util2.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { + var transpose = [m[0], m[2], m[1], m[3]]; + var a = m[0] * transpose[0] + m[1] * transpose[2]; + var b = m[0] * transpose[1] + m[1] * transpose[3]; + var c = m[2] * transpose[0] + m[3] * transpose[2]; + var d = m[2] * transpose[1] + m[3] * transpose[3]; + var first = (a + d) / 2; + var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; + var sx = first + second || 1; + var sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + }; + Util2.normalizeRect = function Util_normalizeRect(rect) { + var r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; } - - if (this.numBytes == 1) { - this.mask = 0xFF; + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + }; + Util2.intersect = function Util_intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), result = []; + rect1 = Util2.normalizeRect(rect1); + rect2 = Util2.normalizeRect(rect2); + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; } else { - this.mask = 0xFFFF; + return false; } - - this.scan.read(this.stream); - this.numComp = this.scan.numComp; - this.selection = this.scan.selection; - - if (this.numBytes === 1) { - if (this.numComp === 3) { - this.getter = this.getValueRGB; - this.setter = this.setValueRGB; - this.output = this.outputRGB; - } else { - this.getter = this.getValue8; - this.setter = this.setValue8; - this.output = this.outputSingle; - } + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; } else { - this.getter = this.getValue16; - this.setter = this.setValue16; - this.output = this.outputSingle; + return false; } - - switch (this.selection) { - case 2: - this.selector = this.select2; - break; - case 3: - this.selector = this.select3; - break; - case 4: - this.selector = this.select4; - break; - case 5: - this.selector = this.select5; - break; - case 6: - this.selector = this.select6; - break; - case 7: - this.selector = this.select7; - break; - default: - this.selector = this.select1; - break; + return result; + }; + Util2.sign = function Util_sign(num) { + return num < 0 ? -1 : 1; + }; + Util2.appendToArray = function Util_appendToArray(arr1, arr2) { + Array.prototype.push.apply(arr1, arr2); + }; + Util2.prependToArray = function Util_prependToArray(arr1, arr2) { + Array.prototype.unshift.apply(arr1, arr2); + }; + Util2.extendObj = function extendObj(obj1, obj2) { + for (var key2 in obj2) { + obj1[key2] = obj2[key2]; } - - this.scanComps = this.scan.components; - this.quantTables = this.quantTable.quantTables; - - for (i = 0; i < this.numComp; i+=1) { - compN = this.scanComps[i].scanCompSel; - this.qTab[i] = this.quantTables[this.components[compN].quantTableSel]; - this.nBlock[i] = this.components[compN].vSamp * this.components[compN].hSamp; - this.dcTab[i] = this.HuffTab[this.scanComps[i].dcTabSel][0]; - this.acTab[i] = this.HuffTab[this.scanComps[i].acTabSel][1]; + }; + Util2.getInheritableProperty = function Util_getInheritableProperty(dict, name) { + while (dict && !dict.has(name)) { + dict = dict.get("Parent"); } - - this.xDim = this.frame.dimX; - this.yDim = this.frame.dimY; - if (this.numBytes == 1) { - this.outputData = new Uint8Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); - } else { - this.outputData = new Uint16Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); + if (!dict) { + return null; } - - scanNum+=1; - - while (true) { // Decode one scan - temp[0] = 0; - index[0] = 0; - - for (i = 0; i < 10; i+=1) { - pred[i] = (1 << (this.precision - 1)); - } - - if (this.restartInterval === 0) { - current = this.decodeUnit(pred, temp, index); - - while ((current === 0) && ((this.xLoc < this.xDim) && (this.yLoc < this.yDim))) { - this.output(pred); - current = this.decodeUnit(pred, temp, index); - } - - break; //current=MARKER - } - - for (mcuNum = 0; mcuNum < this.restartInterval; mcuNum+=1) { - this.restarting = (mcuNum == 0); - current = this.decodeUnit(pred, temp, index); - this.output(pred); - - if (current !== 0) { - break; - } - } - - if (current === 0) { - if (this.markerIndex !== 0) { - current = (0xFF00 | this.marker); - this.markerIndex = 0; - } else { - current = this.stream.get16(); - } - } - - if (!((current >= jpeg.lossless.Decoder.RESTART_MARKER_BEGIN) && - (current <= jpeg.lossless.Decoder.RESTART_MARKER_END))) { - break; //current=MARKER + return dict.get(name); + }; + Util2.inherit = function Util_inherit(sub, base, prototype) { + sub.prototype = Object.create(base.prototype); + sub.prototype.constructor = sub; + for (var prop in prototype) { + sub.prototype[prop] = prototype[prop]; + } + }; + Util2.loadScript = function Util_loadScript(src, callback) { + var script = document.createElement("script"); + var loaded = false; + script.setAttribute("src", src); + if (callback) { + script.onload = function() { + if (!loaded) { + callback(); } + loaded = true; + }; } - - if ((current === 0xFFDC) && (scanNum === 1)) { //DNL - this.readNumber(); - current = this.stream.get16(); + document.getElementsByTagName("head")[0].appendChild(script); + }; + return Util2; + }(); + var PageViewport = PDFJS.PageViewport = function PageViewportClosure() { + function PageViewport2(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + var centerX = (viewBox[2] + viewBox[0]) / 2; + var centerY = (viewBox[3] + viewBox[1]) / 2; + var rotateA, rotateB, rotateC, rotateD; + rotation = rotation % 360; + rotation = rotation < 0 ? rotation + 360 : rotation; + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + default: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; } - } while ((current !== 0xFFD9) && ((this.xLoc < this.xDim) && (this.yLoc < this.yDim)) && (scanNum === 0)); - - return this.outputData; -}; - - - -jpeg.lossless.Decoder.prototype.decodeUnit = function (prev, temp, index) { - if (this.numComp == 1) { - return this.decodeSingle(prev, temp, index); - } else if (this.numComp == 3) { - return this.decodeRGB(prev, temp, index); - } else { - return -1; + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + var offsetCanvasX, offsetCanvasY; + var width, height; + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + this.transform = [ + rotateA * scale, + rotateB * scale, + rotateC * scale, + rotateD * scale, + offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, + offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY + ]; + this.width = width; + this.height = height; + this.fontScale = scale; + } + PageViewport2.prototype = /** @lends PDFJS.PageViewport.prototype */ + { + /** + * Clones viewport with additional properties. + * @param args {Object} (optional) If specified, may contain the 'scale' or + * 'rotation' properties to override the corresponding properties in + * the cloned viewport. + * @returns {PDFJS.PageViewport} Cloned viewport. + */ + clone: function PageViewPort_clone(args) { + args = args || {}; + var scale = "scale" in args ? args.scale : this.scale; + var rotation = "rotation" in args ? args.rotation : this.rotation; + return new PageViewport2( + this.viewBox.slice(), + scale, + rotation, + this.offsetX, + this.offsetY, + args.dontFlip + ); + }, + /** + * Converts PDF point to the viewport coordinates. For examples, useful for + * converting PDF location into canvas pixel coordinates. + * @param x {number} X coordinate. + * @param y {number} Y coordinate. + * @returns {Object} Object that contains 'x' and 'y' properties of the + * point in the viewport coordinate space. + * @see {@link convertToPdfPoint} + * @see {@link convertToViewportRectangle} + */ + convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { + return Util.applyTransform([x, y], this.transform); + }, + /** + * Converts PDF rectangle to the viewport coordinates. + * @param rect {Array} xMin, yMin, xMax and yMax coordinates. + * @returns {Array} Contains corresponding coordinates of the rectangle + * in the viewport coordinate space. + * @see {@link convertToViewportPoint} + */ + convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) { + var tl = Util.applyTransform([rect[0], rect[1]], this.transform); + var br = Util.applyTransform([rect[2], rect[3]], this.transform); + return [tl[0], tl[1], br[0], br[1]]; + }, + /** + * Converts viewport coordinates to the PDF location. For examples, useful + * for converting canvas pixel location into PDF one. + * @param x {number} X coordinate. + * @param y {number} Y coordinate. + * @returns {Object} Object that contains 'x' and 'y' properties of the + * point in the PDF coordinate space. + * @see {@link convertToViewportPoint} + */ + convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { + return Util.applyInverseTransform([x, y], this.transform); + } + }; + return PageViewport2; + }(); + function createPromiseCapability() { + var capability = {}; + capability.promise = new Promise(function(resolve, reject) { + capability.resolve = resolve; + capability.reject = reject; + }); + return capability; } -}; - - - -jpeg.lossless.Decoder.prototype.select1 = function (compOffset) { - return this.getPreviousX(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select2 = function (compOffset) { - return this.getPreviousY(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select3 = function (compOffset) { - return this.getPreviousXY(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select4 = function (compOffset) { - return (this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) - this.getPreviousXY(compOffset); -}; - - - -jpeg.lossless.Decoder.prototype.select5 = function (compOffset) { - return this.getPreviousX(compOffset) + ((this.getPreviousY(compOffset) - this.getPreviousXY(compOffset)) >> 1); -}; - - - -jpeg.lossless.Decoder.prototype.select6 = function (compOffset) { - return this.getPreviousY(compOffset) + ((this.getPreviousX(compOffset) - this.getPreviousXY(compOffset)) >> 1); -}; - - - -jpeg.lossless.Decoder.prototype.select7 = function (compOffset) { - return ((this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) / 2); -}; - - - -jpeg.lossless.Decoder.prototype.decodeRGB = function (prev, temp, index) { - /*jslint bitwise: true */ - - var value, actab, dctab, qtab, ctrC, i, k, j; - - prev[0] = this.selector(0); - prev[1] = this.selector(1); - prev[2] = this.selector(2); - - for (ctrC = 0; ctrC < this.numComp; ctrC+=1) { - qtab = this.qTab[ctrC]; - actab = this.acTab[ctrC]; - dctab = this.dcTab[ctrC]; - for (i = 0; i < this.nBlock[ctrC]; i+=1) { - for (k = 0; k < this.IDCT_Source.length; k+=1) { - this.IDCT_Source[k] = 0; - } - - value = this.getHuffmanValue(dctab, temp, index); - - if (value >= 0xFF00) { - return value; + PDFJS.createPromiseCapability = createPromiseCapability; + (function PromiseClosure() { + if (globalScope2.Promise) { + if (typeof globalScope2.Promise.all !== "function") { + globalScope2.Promise.all = function(iterable) { + var count = 0, results = [], resolve, reject; + var promise = new globalScope2.Promise(function(resolve_, reject_) { + resolve = resolve_; + reject = reject_; + }); + iterable.forEach(function(p, i2) { + count++; + p.then(function(result) { + results[i2] = result; + count--; + if (count === 0) { + resolve(results); + } + }, reject); + }); + if (count === 0) { + resolve(results); } - - prev[ctrC] = this.IDCT_Source[0] = prev[ctrC] + this.getn(index, value, temp, index); - this.IDCT_Source[0] *= qtab[0]; - - for (j = 1; j < 64; j+=1) { - value = this.getHuffmanValue(actab, temp, index); - - if (value >= 0xFF00) { - return value; + return promise; + }; + } + if (typeof globalScope2.Promise.resolve !== "function") { + globalScope2.Promise.resolve = function(value) { + return new globalScope2.Promise(function(resolve) { + resolve(value); + }); + }; + } + if (typeof globalScope2.Promise.reject !== "function") { + globalScope2.Promise.reject = function(reason) { + return new globalScope2.Promise(function(resolve, reject) { + reject(reason); + }); + }; + } + if (typeof globalScope2.Promise.prototype.catch2 !== "function") { + globalScope2.Promise.prototype.catch2 = function(onReject) { + return globalScope2.Promise.prototype.then(void 0, onReject); + }; + } + return; + } + var STATUS_PENDING = 0; + var STATUS_RESOLVED = 1; + var STATUS_REJECTED = 2; + var REJECTION_TIMEOUT = 500; + var HandlerManager = { + handlers: [], + running: false, + unhandledRejections: [], + pendingRejectionCheck: false, + scheduleHandlers: function scheduleHandlers(promise) { + if (promise._status === STATUS_PENDING) { + return; + } + this.handlers = this.handlers.concat(promise._handlers); + promise._handlers = []; + if (this.running) { + return; + } + this.running = true; + setTimeout(this.runHandlers.bind(this), 0); + }, + runHandlers: function runHandlers() { + var RUN_TIMEOUT = 1; + var timeoutAt = Date.now() + RUN_TIMEOUT; + while (this.handlers.length > 0) { + var handler = this.handlers.shift(); + var nextStatus = handler.thisPromise._status; + var nextValue = handler.thisPromise._value; + try { + if (nextStatus === STATUS_RESOLVED) { + if (typeof handler.onResolve === "function") { + nextValue = handler.onResolve(nextValue); } - - j += (value >> 4); - - if ((value & 0x0F) === 0) { - if ((value >> 4) === 0) { - break; - } - } else { - this.IDCT_Source[jpeg.lossless.Decoder.IDCT_P[j]] = this.getn(index, value & 0x0F, temp, index) * qtab[j]; + } else if (typeof handler.onReject === "function") { + nextValue = handler.onReject(nextValue); + nextStatus = STATUS_RESOLVED; + if (handler.thisPromise._unhandledRejection) { + this.removeUnhandeledRejection(handler.thisPromise); + } + } + } catch (ex) { + nextStatus = STATUS_REJECTED; + nextValue = ex; + } + handler.nextPromise._updateStatus(nextStatus, nextValue); + if (Date.now() >= timeoutAt) { + break; + } + } + if (this.handlers.length > 0) { + setTimeout(this.runHandlers.bind(this), 0); + return; + } + this.running = false; + }, + addUnhandledRejection: function addUnhandledRejection(promise) { + this.unhandledRejections.push({ + promise, + time: Date.now() + }); + this.scheduleRejectionCheck(); + }, + removeUnhandeledRejection: function removeUnhandeledRejection(promise) { + promise._unhandledRejection = false; + for (var i2 = 0; i2 < this.unhandledRejections.length; i2++) { + if (this.unhandledRejections[i2].promise === promise) { + this.unhandledRejections.splice(i2); + i2--; + } + } + }, + scheduleRejectionCheck: function scheduleRejectionCheck() { + if (this.pendingRejectionCheck) { + return; + } + this.pendingRejectionCheck = true; + setTimeout(function rejectionCheck() { + this.pendingRejectionCheck = false; + var now = Date.now(); + for (var i2 = 0; i2 < this.unhandledRejections.length; i2++) { + if (now - this.unhandledRejections[i2].time > REJECTION_TIMEOUT) { + var unhandled = this.unhandledRejections[i2].promise._value; + var msg = "Unhandled rejection: " + unhandled; + if (unhandled.stack) { + msg += "\n" + unhandled.stack; } + warn(msg); + this.unhandledRejections.splice(i2); + i2--; + } + } + if (this.unhandledRejections.length) { + this.scheduleRejectionCheck(); } + }.bind(this), REJECTION_TIMEOUT); } - } - - return 0; -}; - - - -jpeg.lossless.Decoder.prototype.decodeSingle = function (prev, temp, index) { - /*jslint bitwise: true */ - - var value, i, n, nRestart; - - if (this.restarting) { - this.restarting = false; - prev[0] = (1 << (this.frame.precision - 1)); - } else { - prev[0] = this.selector(); - } - - for (i = 0; i < this.nBlock[0]; i+=1) { - value = this.getHuffmanValue(this.dcTab[0], temp, index); - if (value >= 0xFF00) { - return value; + }; + function Promise2(resolver) { + this._status = STATUS_PENDING; + this._handlers = []; + try { + resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); + } catch (e) { + this._reject(e); } - - n = this.getn(prev, value, temp, index); - nRestart = (n >> 8); - - if ((nRestart >= jpeg.lossless.Decoder.RESTART_MARKER_BEGIN) && (nRestart <= jpeg.lossless.Decoder.RESTART_MARKER_END)) { - return nRestart; + } + Promise2.all = function Promise_all(promises) { + var resolveAll, rejectAll; + var deferred = new Promise2(function(resolve2, reject2) { + resolveAll = resolve2; + rejectAll = reject2; + }); + var unresolved = promises.length; + var results = []; + if (unresolved === 0) { + resolveAll(results); + return deferred; } - - prev[0] += n; - } - - return 0; -}; - - - -// Huffman table for fast search: (HuffTab) 8-bit Look up table 2-layer search architecture, 1st-layer represent 256 node (8 bits) if codeword-length > 8 -// bits, then the entry of 1st-layer = (# of 2nd-layer table) | MSB and it is stored in the 2nd-layer Size of tables in each layer are 256. -// HuffTab[*][*][0-256] is always the only 1st-layer table. -// -// An entry can be: (1) (# of 2nd-layer table) | MSB , for code length > 8 in 1st-layer (2) (Code length) << 8 | HuffVal -// -// HuffmanValue(table HuffTab[x][y] (ex) HuffmanValue(HuffTab[1][0],...) -// ): -// return: Huffman Value of table -// 0xFF?? if it receives a MARKER -// Parameter: table HuffTab[x][y] (ex) HuffmanValue(HuffTab[1][0],...) -// temp temp storage for remainded bits -// index index to bit of temp -// in FILE pointer -// Effect: -// temp store new remainded bits -// index change to new index -// in change to new position -// NOTE: -// Initial by temp=0; index=0; -// NOTE: (explain temp and index) -// temp: is always in the form at calling time or returning time -// | byte 4 | byte 3 | byte 2 | byte 1 | -// | 0 | 0 | 00000000 | 00000??? | if not a MARKER -// ^index=3 (from 0 to 15) -// 321 -// NOTE (marker and marker_index): -// If get a MARKER from 'in', marker=the low-byte of the MARKER -// and marker_index=9 -// If marker_index=9 then index is always > 8, or HuffmanValue() -// will not be called -jpeg.lossless.Decoder.prototype.getHuffmanValue = function (table, temp, index) { - /*jslint bitwise: true */ - - var code, input, mask; - mask = 0xFFFF; - - if (index[0] < 8) { - temp[0] <<= 8; - input = this.stream.get8(); - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; + function reject(reason) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results = []; + rejectAll(reason); + } + for (var i2 = 0, ii = promises.length; i2 < ii; ++i2) { + var promise = promises[i2]; + var resolve = function(i3) { + return function(value) { + if (deferred._status === STATUS_REJECTED) { + return; + } + results[i3] = value; + unresolved--; + if (unresolved === 0) { + resolveAll(results); + } + }; + }(i2); + if (Promise2.isPromise(promise)) { + promise.then(resolve, reject); + } else { + resolve(promise); + } + } + return deferred; + }; + Promise2.isPromise = function Promise_isPromise(value) { + return value && typeof value.then === "function"; + }; + Promise2.resolve = function Promise_resolve(value) { + return new Promise2(function(resolve) { + resolve(value); + }); + }; + Promise2.reject = function Promise_reject(reason) { + return new Promise2(function(resolve, reject) { + reject(reason); + }); + }; + Promise2.prototype = { + _status: null, + _value: null, + _handlers: null, + _unhandledRejection: null, + _updateStatus: function Promise__updateStatus(status, value) { + if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) { + return; + } + if (status === STATUS_RESOLVED && Promise2.isPromise(value)) { + value.then( + this._updateStatus.bind(this, STATUS_RESOLVED), + this._updateStatus.bind(this, STATUS_REJECTED) + ); + return; + } + this._status = status; + this._value = value; + if (status === STATUS_REJECTED && this._handlers.length === 0) { + this._unhandledRejection = true; + HandlerManager.addUnhandledRejection(this); + } + HandlerManager.scheduleHandlers(this); + }, + _resolve: function Promise_resolve(value) { + this._updateStatus(STATUS_RESOLVED, value); + }, + _reject: function Promise_reject(reason) { + this._updateStatus(STATUS_REJECTED, reason); + }, + then: function Promise_then(onResolve, onReject) { + var nextPromise = new Promise2(function(resolve, reject) { + this.resolve = resolve; + this.reject = reject; + }); + this._handlers.push({ + thisPromise: this, + onResolve, + onReject, + nextPromise + }); + HandlerManager.scheduleHandlers(this); + return nextPromise; + }, + catch2: function Promise_catch(onReject) { + return this.then(void 0, onReject); + } + }; + globalScope2.Promise = Promise2; + })(); + var StatTimer = function StatTimerClosure() { + function rpad(str, pad, length) { + while (str.length < length) { + str += pad; + } + return str; + } + function StatTimer2() { + this.started = {}; + this.times = []; + this.enabled = true; + } + StatTimer2.prototype = { + time: function StatTimer_time(name) { + if (!this.enabled) { + return; + } + if (name in this.started) { + warn("Timer is already running for " + name); + } + this.started[name] = Date.now(); + }, + timeEnd: function StatTimer_timeEnd(name) { + if (!this.enabled) { + return; + } + if (!(name in this.started)) { + warn("Timer has not been started for " + name); + } + this.times.push({ + "name": name, + "start": this.started[name], + "end": Date.now() + }); + delete this.started[name]; + }, + toString: function StatTimer_toString() { + var i2, ii; + var times = this.times; + var out = ""; + var longest = 0; + for (i2 = 0, ii = times.length; i2 < ii; ++i2) { + var name = times[i2]["name"]; + if (name.length > longest) { + longest = name.length; } + } + for (i2 = 0, ii = times.length; i2 < ii; ++i2) { + var span = times[i2]; + var duration = span.end - span.start; + out += rpad(span["name"], " ", longest) + " " + duration + "ms\n"; + } + return out; } - temp[0] |= input; - } else { - index[0] -= 8; - } - - code = table[temp[0] >> index[0]]; - - if ((code & jpeg.lossless.Decoder.MSB) !== 0) { - if (this.markerIndex !== 0) { - this.markerIndex = 0; - return 0xFF00 | this.marker; + }; + return StatTimer2; + }(); + PDFJS.createBlob = function createBlob(data, contentType) { + if (typeof Blob !== "undefined") { + return new Blob([data], { type: contentType }); + } + var bb = new MozBlobBuilder(); + bb.append(data); + return bb.getBlob(contentType); + }; + PDFJS.createObjectURL = function createObjectURLClosure() { + var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return function createObjectURL(data, contentType) { + if (!PDFJS.disableCreateObjectURL && typeof URL !== "undefined" && URL.createObjectURL) { + var blob = PDFJS.createBlob(data, contentType); + return URL.createObjectURL(blob); } - - temp[0] &= (mask >> (16 - index[0])); - temp[0] <<= 8; - input = this.stream.get8(); - - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; + var buffer2 = "data:" + contentType + ";base64,"; + for (var i2 = 0, ii = data.length; i2 < ii; i2 += 3) { + var b1 = data[i2] & 255; + var b2 = data[i2 + 1] & 255; + var b3 = data[i2 + 2] & 255; + var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; + var d3 = i2 + 1 < ii ? (b2 & 15) << 2 | b3 >> 6 : 64; + var d4 = i2 + 2 < ii ? b3 & 63 : 64; + buffer2 += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + return buffer2; + }; + }(); + function MessageHandler(name, comObj) { + this.name = name; + this.comObj = comObj; + this.callbackIndex = 1; + this.postMessageTransfers = true; + var callbacksCapabilities = this.callbacksCapabilities = {}; + var ah = this.actionHandler = {}; + ah["console_log"] = [function ahConsoleLog(data) { + console.log.apply(console, data); + }]; + ah["console_error"] = [function ahConsoleError(data) { + console.error.apply(console, data); + }]; + ah["_unsupported_feature"] = [function ah_unsupportedFeature(data) { + UnsupportedManager.notify(data); + }]; + comObj.onmessage = function messageHandlerComObjOnMessage(event) { + var data = event.data; + if (data.isReply) { + var callbackId = data.callbackId; + if (data.callbackId in callbacksCapabilities) { + var callback = callbacksCapabilities[callbackId]; + delete callbacksCapabilities[callbackId]; + if ("error" in data) { + callback.reject(data.error); + } else { + callback.resolve(data.data); } + } else { + error("Cannot resolve callback " + callbackId); + } + } else if (data.action in ah) { + var action = ah[data.action]; + if (data.callbackId) { + Promise.resolve().then(function() { + return action[0].call(action[1], data.data); + }).then(function(result) { + comObj.postMessage({ + isReply: true, + callbackId: data.callbackId, + data: result + }); + }, function(reason) { + comObj.postMessage({ + isReply: true, + callbackId: data.callbackId, + error: reason + }); + }); + } else { + action[0].call(action[1], data.data); + } + } else { + error("Unknown action from worker: " + data.action); } - - temp[0] |= input; - code = table[((code & 0xFF) * 256) + (temp[0] >> index[0])]; - index[0] += 8; - } - - index[0] += 8 - (code >> 8); - - if (index[0] < 0) { - throw new Error("index=" + index[0] + " temp=" + temp[0] + " code=" + code + " in HuffmanValue()"); - } - - if (index[0] < this.markerIndex) { - this.markerIndex = 0; - return 0xFF00 | this.marker; - } - - temp[0] &= (mask >> (16 - index[0])); - return code & 0xFF; -}; - - - -jpeg.lossless.Decoder.prototype.getn = function (PRED, n, temp, index) { - /*jslint bitwise: true */ - - var result, one, n_one, mask, input; - one = 1; - n_one = -1; - mask = 0xFFFF; - - if (n === 0) { - return 0; + }; } - - if (n === 16) { - if (PRED[0] >= 0) { - return -32768; + MessageHandler.prototype = { + on: function messageHandlerOn(actionName, handler, scope) { + var ah = this.actionHandler; + if (ah[actionName]) { + error('There is already an actionName called "' + actionName + '"'); + } + ah[actionName] = [handler, scope]; + }, + /** + * Sends a message to the comObj to invoke the action with the supplied data. + * @param {String} actionName Action to call. + * @param {JSON} data JSON data to send. + * @param {Array} [transfers] Optional list of transfers/ArrayBuffers + */ + send: function messageHandlerSend(actionName, data, transfers) { + var message = { + action: actionName, + data + }; + this.postMessage(message, transfers); + }, + /** + * Sends a message to the comObj to invoke the action with the supplied data. + * Expects that other side will callback with the response. + * @param {String} actionName Action to call. + * @param {JSON} data JSON data to send. + * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. + * @returns {Promise} Promise to be resolved with response data. + */ + sendWithPromise: function messageHandlerSendWithPromise(actionName, data, transfers) { + var callbackId = this.callbackIndex++; + var message = { + action: actionName, + data, + callbackId + }; + var capability = createPromiseCapability(); + this.callbacksCapabilities[callbackId] = capability; + try { + this.postMessage(message, transfers); + } catch (e) { + capability.reject(e); + } + return capability.promise; + }, + /** + * Sends raw message to the comObj. + * @private + * @param message {Object} Raw message. + * @param transfers List of transfers/ArrayBuffers, or undefined. + */ + postMessage: function(message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); } else { - return 32768; + this.comObj.postMessage(message); } + } + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = JpxImage2; } + } +}); - index[0] -= n; - - if (index[0] >= 0) { - if ((index[0] < this.markerIndex) && !this.isLastPixel()) { // this was corrupting the last pixel in some cases - this.markerIndex = 0; - return (0xFF00 | this.marker) << 8; +// lib/charLS-DynamicMemory-browser.js +var require_charLS_DynamicMemory_browser = __commonJS({ + "lib/charLS-DynamicMemory-browser.js"(exports, module) { + var CharLS = function(Module) { + Module = Module || {}; + var Module; + if (!Module) + Module = (typeof CharLS !== "undefined" ? CharLS : null) || {}; + var moduleOverrides = {}; + for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; } - - result = temp[0] >> index[0]; - temp[0] &= (mask >> (16 - index[0])); - } else { - temp[0] <<= 8; - input = this.stream.get8(); - - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; - } + } + var ENVIRONMENT_IS_WEB = typeof window === "object"; + var ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; + var ENVIRONMENT_IS_NODE = typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + if (ENVIRONMENT_IS_NODE) { + if (!Module["print"]) + Module["print"] = function print2(x) { + process["stdout"].write(x + "\n"); + }; + if (!Module["printErr"]) + Module["printErr"] = function printErr2(x) { + process["stderr"].write(x + "\n"); + }; + var nodeFS = require("fs"); + var nodePath = require("path"); + Module["read"] = function read2(filename, binary) { + filename = nodePath["normalize"](filename); + var ret = nodeFS["readFileSync"](filename); + if (!ret && filename != nodePath["resolve"](filename)) { + filename = path.join(__dirname, "..", "src", filename); + ret = nodeFS["readFileSync"](filename); + } + if (ret && !binary) + ret = ret.toString(); + return ret; + }; + Module["readBinary"] = function readBinary(filename) { + var ret = Module["read"](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + Module["load"] = function load(f) { + globalEval(read(f)); + }; + if (!Module["thisProgram"]) { + if (process["argv"].length > 1) { + Module["thisProgram"] = process["argv"][1].replace(/\\/g, "/"); + } else { + Module["thisProgram"] = "unknown-program"; + } } - - temp[0] |= input; - index[0] += 8; - - if (index[0] < 0) { - if (this.markerIndex !== 0) { - this.markerIndex = 0; - return (0xFF00 | this.marker) << 8; - } - - temp[0] <<= 8; - input = this.stream.get8(); - - if (input === 0xFF) { - this.marker = this.stream.get8(); - if (this.marker !== 0) { - this.markerIndex = 9; - } - } - - temp[0] |= input; - index[0] += 8; + Module["arguments"] = process["argv"].slice(2); + if (typeof module !== "undefined") { + module["exports"] = Module; } - - if (index[0] < 0) { - throw new Error("index=" + index[0] + " in getn()"); + process["on"]("uncaughtException", function(ex) { + if (!(ex instanceof ExitStatus)) { + throw ex; + } + }); + Module["inspect"] = function() { + return "[Emscripten Module object]"; + }; + } else if (ENVIRONMENT_IS_SHELL) { + if (!Module["print"]) + Module["print"] = print; + if (typeof printErr != "undefined") + Module["printErr"] = printErr; + if (typeof read != "undefined") { + Module["read"] = read; + } else { + Module["read"] = function read2() { + throw "no read() available (jsc?)"; + }; } - - if (index[0] < this.markerIndex) { - this.markerIndex = 0; - return (0xFF00 | this.marker) << 8; + Module["readBinary"] = function readBinary(f) { + if (typeof readbuffer === "function") { + return new Uint8Array(readbuffer(f)); + } + var data = read(f, "binary"); + assert(typeof data === "object"); + return data; + }; + if (typeof scriptArgs != "undefined") { + Module["arguments"] = scriptArgs; + } else if (typeof arguments != "undefined") { + Module["arguments"] = arguments; } - - result = temp[0] >> index[0]; - temp[0] &= (mask >> (16 - index[0])); - } - - if (result < (one << (n - 1))) { - result += (n_one << n) + 1; - } - - return result; -}; - - - -jpeg.lossless.Decoder.prototype.getPreviousX = function (compOffset) { - /*jslint bitwise: true */ - - if (this.xLoc > 0) { - return this.getter((((this.yLoc * this.xDim) + this.xLoc) - 1), compOffset); - } else if (this.yLoc > 0) { - return this.getPreviousY(compOffset); - } else { - return (1 << (this.frame.precision - 1)); - } -}; - - - -jpeg.lossless.Decoder.prototype.getPreviousXY = function (compOffset) { - /*jslint bitwise: true */ - - if ((this.xLoc > 0) && (this.yLoc > 0)) { - return this.getter(((((this.yLoc - 1) * this.xDim) + this.xLoc) - 1), compOffset); - } else { - return this.getPreviousY(compOffset); - } -}; - - - -jpeg.lossless.Decoder.prototype.getPreviousY = function (compOffset) { - /*jslint bitwise: true */ - - if (this.yLoc > 0) { - return this.getter((((this.yLoc - 1) * this.xDim) + this.xLoc), compOffset); - } else { - return this.getPreviousX(compOffset); - } -}; - - - -jpeg.lossless.Decoder.prototype.isLastPixel = function () { - return (this.xLoc === (this.xDim - 1)) && (this.yLoc === (this.yDim - 1)); -}; - - - -jpeg.lossless.Decoder.prototype.outputSingle = function (PRED) { - if ((this.xLoc < this.xDim) && (this.yLoc < this.yDim)) { - this.setter((((this.yLoc * this.xDim) + this.xLoc)), this.mask & PRED[0]); - - this.xLoc+=1; - - if (this.xLoc >= this.xDim) { - this.yLoc+=1; - this.xLoc = 0; + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module["read"] = function read2(url) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText; + }; + if (typeof arguments != "undefined") { + Module["arguments"] = arguments; } - } -}; - - - -jpeg.lossless.Decoder.prototype.outputRGB = function (PRED) { - var offset = ((this.yLoc * this.xDim) + this.xLoc); - - if ((this.xLoc < this.xDim) && (this.yLoc < this.yDim)) { - this.setter(offset, PRED[0], 0); - this.setter(offset, PRED[1], 1); - this.setter(offset, PRED[2], 2); - - this.xLoc+=1; - - if (this.xLoc >= this.xDim) { - this.yLoc+=1; - this.xLoc = 0; + if (typeof console !== "undefined") { + if (!Module["print"]) + Module["print"] = function print2(x) { + console.log(x); + }; + if (!Module["printErr"]) + Module["printErr"] = function printErr2(x) { + console.log(x); + }; + } else { + var TRY_USE_DUMP = false; + if (!Module["print"]) + Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? function(x) { + dump(x); + } : function(x) { + }; } - } -}; - -jpeg.lossless.Decoder.prototype.setValue8 = function (index, val) { - this.outputData[index] = val; -}; - -jpeg.lossless.Decoder.prototype.getValue8 = function (index) { - return this.outputData[index]; // mask should not be necessary because outputData is either Int8Array or Int16Array -}; - -var littleEndian = (function() { - var buffer = new ArrayBuffer(2); - new DataView(buffer).setInt16(0, 256, true /* littleEndian */); - // Int16Array uses the platform's endianness. - return new Int16Array(buffer)[0] === 256; -})(); - -if (littleEndian) { - // just reading from an array is fine then. Int16Array will use platform endianness. - jpeg.lossless.Decoder.prototype.setValue16 = jpeg.lossless.Decoder.prototype.setValue8; - jpeg.lossless.Decoder.prototype.getValue16 = jpeg.lossless.Decoder.prototype.getValue8; -} -else { - // If platform is big-endian, we will need to convert to little-endian - jpeg.lossless.Decoder.prototype.setValue16 = function (index, val) { - this.outputData[index] = ((val & 0xFF) << 8) | ((val >> 8) & 0xFF); - }; - - jpeg.lossless.Decoder.prototype.getValue16 = function (index) { - var val = this.outputData[index]; - return ((val & 0xFF) << 8) | ((val >> 8) & 0xFF); - }; -} - -jpeg.lossless.Decoder.prototype.setValueRGB = function (index, val, compOffset) { - // this.outputData.setUint8(index * 3 + compOffset, val); - this.outputData[index * 3 + compOffset] = val; -}; - -jpeg.lossless.Decoder.prototype.getValueRGB = function (index, compOffset) { - // return this.outputData.getUint8(index * 3 + compOffset); - return this.outputData[index * 3 + compOffset]; -}; - - - -jpeg.lossless.Decoder.prototype.readApp = function() { - var count = 0, length = this.stream.get16(); - count += 2; - - while (count < length) { - this.stream.get8(); - count+=1; - } - - return length; -}; - - - -jpeg.lossless.Decoder.prototype.readComment = function () { - var sb = "", count = 0, length; - - length = this.stream.get16(); - count += 2; - - while (count < length) { - sb += this.stream.get8(); - count+=1; - } - - return sb; -}; - - - -jpeg.lossless.Decoder.prototype.readNumber = function() { - var Ld = this.stream.get16(); - - if (Ld !== 4) { - throw new Error("ERROR: Define number format throw new IOException [Ld!=4]"); - } - - return this.stream.get16(); -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.Decoder; -} - -},{"./data-stream.js":10,"./frame-header.js":12,"./huffman-table.js":13,"./quantization-table.js":15,"./scan-header.js":17,"./utils.js":18}],12:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.ComponentSpec = jpeg.lossless.ComponentSpec || ((typeof require !== 'undefined') ? require('./component-spec.js') : null); -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.FrameHeader = jpeg.lossless.FrameHeader || function () { - this.components = []; // Components - this.dimX = 0; // Number of samples per line - this.dimY = 0; // Number of lines - this.numComp = 0; // Number of component in the frame - this.precision = 0; // Sample Precision (from the original image) -}; - - - -/*** Prototype Methods ***/ - -jpeg.lossless.FrameHeader.prototype.read = function (data) { - /*jslint bitwise: true */ - - var count = 0, length, i, c, temp; - - length = data.get16(); - count += 2; - - this.precision = data.get8(); - count+=1; - - this.dimY = data.get16(); - count += 2; - - this.dimX = data.get16(); - count += 2; - - this.numComp = data.get8(); - count+=1; - for (i = 1; i <= this.numComp; i+=1) { - if (count > length) { - throw new Error("ERROR: frame format error"); + if (ENVIRONMENT_IS_WORKER) { + Module["load"] = importScripts; } - - c = data.get8(); - count+=1; - - if (count >= length) { - throw new Error("ERROR: frame format error [c>=Lf]"); + if (typeof Module["setWindowTitle"] === "undefined") { + Module["setWindowTitle"] = function(title) { + document.title = title; + }; } - - temp = data.get8(); - count+=1; - - if (!this.components[c]) { - this.components[c] = new jpeg.lossless.ComponentSpec(); + } else { + throw "Unknown runtime environment. Where are we?"; + } + function globalEval(x) { + eval.call(null, x); + } + if (!Module["load"] && Module["read"]) { + Module["load"] = function load(f) { + globalEval(Module["read"](f)); + }; + } + if (!Module["print"]) { + Module["print"] = function() { + }; + } + if (!Module["printErr"]) { + Module["printErr"] = Module["print"]; + } + if (!Module["arguments"]) { + Module["arguments"] = []; + } + if (!Module["thisProgram"]) { + Module["thisProgram"] = "./this.program"; + } + Module.print = Module["print"]; + Module.printErr = Module["printErr"]; + Module["preRun"] = []; + Module["postRun"] = []; + for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; } - - this.components[c].hSamp = temp >> 4; - this.components[c].vSamp = temp & 0x0F; - this.components[c].quantTableSel = data.get8(); - count+=1; - } - - if (count !== length) { - throw new Error("ERROR: frame format error [Lf!=count]"); - } - - return 1; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.FrameHeader; -} - -},{"./component-spec.js":9,"./data-stream.js":10}],13:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.HuffmanTable = jpeg.lossless.HuffmanTable || function () { - this.l = jpeg.lossless.Utils.createArray(4, 2, 16); - this.th = []; - this.v = jpeg.lossless.Utils.createArray(4, 2, 16, 200); - this.tc = jpeg.lossless.Utils.createArray(4, 2); - - this.tc[0][0] = 0; - this.tc[1][0] = 0; - this.tc[2][0] = 0; - this.tc[3][0] = 0; - this.tc[0][1] = 0; - this.tc[1][1] = 0; - this.tc[2][1] = 0; - this.tc[3][1] = 0; - this.th[0] = 0; - this.th[1] = 0; - this.th[2] = 0; - this.th[3] = 0; -}; - - - -/*** Static Pseudo-constants ***/ - -jpeg.lossless.HuffmanTable.MSB = 0x80000000; - - -/*** Prototype Methods ***/ - -jpeg.lossless.HuffmanTable.prototype.read = function(data, HuffTab) { - /*jslint bitwise: true */ - - var count = 0, length, temp, t, c, i, j; - - length = data.get16(); - count += 2; - - while (count < length) { - temp = data.get8(); - count+=1; - t = temp & 0x0F; - if (t > 3) { - throw new Error("ERROR: Huffman table ID > 3"); + } + var Runtime = { setTempRet0: function(value) { + tempRet0 = value; + }, getTempRet0: function() { + return tempRet0; + }, stackSave: function() { + return STACKTOP; + }, stackRestore: function(stackTop) { + STACKTOP = stackTop; + }, getNativeTypeSize: function(type2) { + switch (type2) { + case "i1": + case "i8": + return 1; + case "i16": + return 2; + case "i32": + return 4; + case "i64": + return 8; + case "float": + return 4; + case "double": + return 8; + default: { + if (type2[type2.length - 1] === "*") { + return Runtime.QUANTUM_SIZE; + } else if (type2[0] === "i") { + var bits = parseInt(type2.substr(1)); + assert(bits % 8 === 0); + return bits / 8; + } else { + return 0; + } + } } - - c = temp >> 4; - if (c > 2) { - throw new Error("ERROR: Huffman table [Table class > 2 ]"); + }, getNativeFieldSize: function(type2) { + return Math.max(Runtime.getNativeTypeSize(type2), Runtime.QUANTUM_SIZE); + }, STACK_ALIGN: 16, prepVararg: function(ptr, type2) { + if (type2 === "double" || type2 === "i64") { + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4; + } + } else { + assert((ptr & 3) === 0); } - - this.th[t] = 1; - this.tc[t][c] = 1; - - for (i = 0; i < 16; i+=1) { - this.l[t][c][i] = data.get8(); - count+=1; + return ptr; + }, getAlignSize: function(type2, size, vararg) { + if (!vararg && (type2 == "i64" || type2 == "double")) + return 8; + if (!type2) + return Math.min(size, 8); + return Math.min(size || (type2 ? Runtime.getNativeFieldSize(type2) : 0), Runtime.QUANTUM_SIZE); + }, dynCall: function(sig, ptr, args) { + if (args && args.length) { + if (!args.splice) + args = Array.prototype.slice.call(args); + args.splice(0, 0, ptr); + return Module["dynCall_" + sig].apply(null, args); + } else { + return Module["dynCall_" + sig].call(null, ptr); } - - for (i = 0; i < 16; i+=1) { - for (j = 0; j < this.l[t][c][i]; j+=1) { - if (count > length) { - throw new Error("ERROR: Huffman table format error [count>Lh]"); - } - - this.v[t][c][i][j] = data.get8(); - count+=1; - } + }, functionPointers: [], addFunction: function(func2) { + for (var i2 = 0; i2 < Runtime.functionPointers.length; i2++) { + if (!Runtime.functionPointers[i2]) { + Runtime.functionPointers[i2] = func2; + return 2 * (1 + i2); + } } - } - - if (count !== length) { - throw new Error("ERROR: Huffman table format error [count!=Lf]"); - } - - for (i = 0; i < 4; i+=1) { - for (j = 0; j < 2; j+=1) { - if (this.tc[i][j] !== 0) { - this.buildHuffTable(HuffTab[i][j], this.l[i][j], this.v[i][j]); - } + throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."; + }, removeFunction: function(index) { + Runtime.functionPointers[(index - 2) / 2] = null; + }, warnOnce: function(text) { + if (!Runtime.warnOnce.shown) + Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text); } - } - - return 1; -}; - - - -// Build_HuffTab() -// Parameter: t table ID -// c table class ( 0 for DC, 1 for AC ) -// L[i] # of codewords which length is i -// V[i][j] Huffman Value (length=i) -// Effect: -// build up HuffTab[t][c] using L and V. -jpeg.lossless.HuffmanTable.prototype.buildHuffTable = function(tab, L, V) { - /*jslint bitwise: true */ - - var currentTable, temp, k, i, j, n; - temp = 256; - k = 0; - - for (i = 0; i < 8; i+=1) { // i+1 is Code length - for (j = 0; j < L[i]; j+=1) { - for (n = 0; n < (temp >> (i + 1)); n+=1) { - tab[k] = V[i][j] | ((i + 1) << 8); - k+=1; - } + }, funcWrappers: {}, getFuncWrapper: function(func2, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {}; } - } - - for (i = 1; k < 256; i+=1, k+=1) { - tab[k] = i | jpeg.lossless.HuffmanTable.MSB; - } - - currentTable = 1; - k = 0; - - for (i = 8; i < 16; i+=1) { // i+1 is Code length - for (j = 0; j < L[i]; j+=1) { - for (n = 0; n < (temp >> (i - 7)); n+=1) { - tab[(currentTable * 256) + k] = V[i][j] | ((i + 1) << 8); - k+=1; + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func2]) { + sigCache[func2] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func2, arguments); + }; + } + return sigCache[func2]; + }, getCompilerSetting: function(name) { + throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"; + }, stackAlloc: function(size) { + var ret = STACKTOP; + STACKTOP = STACKTOP + size | 0; + STACKTOP = STACKTOP + 15 & -16; + return ret; + }, staticAlloc: function(size) { + var ret = STATICTOP; + STATICTOP = STATICTOP + size | 0; + STATICTOP = STATICTOP + 15 & -16; + return ret; + }, dynamicAlloc: function(size) { + var ret = DYNAMICTOP; + DYNAMICTOP = DYNAMICTOP + size | 0; + DYNAMICTOP = DYNAMICTOP + 15 & -16; + if (DYNAMICTOP >= TOTAL_MEMORY) { + var success = enlargeMemory(); + if (!success) { + DYNAMICTOP = ret; + return 0; + } + } + return ret; + }, alignMemory: function(size, quantum) { + var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16); + return ret; + }, makeBigInt: function(low, high, unsigned) { + var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * 4294967296 : +(low >>> 0) + +(high | 0) * 4294967296; + return ret; + }, GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0 }; + Module["Runtime"] = Runtime; + var __THREW__ = 0; + var ABORT = false; + var EXITSTATUS = 0; + var undef = 0; + var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; + var tempI64, tempI64b; + var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; + function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text); + } + } + var globalScope = this; + function getCFunc(ident) { + var func = Module["_" + ident]; + if (!func) { + try { + func = eval("_" + ident); + } catch (e) { + } + } + assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)"); + return func; + } + var cwrap, ccall; + (function() { + var JSfuncs = { "stackSave": function() { + Runtime.stackSave(); + }, "stackRestore": function() { + Runtime.stackRestore(); + }, "arrayToC": function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + }, "stringToC": function(str) { + var ret = 0; + if (str !== null && str !== void 0 && str !== 0) { + ret = Runtime.stackAlloc((str.length << 2) + 1); + writeStringToMemory(str, ret); + } + return ret; + } }; + var toC = { "string": JSfuncs["stringToC"], "array": JSfuncs["arrayToC"] }; + ccall = function ccallFunc(ident2, returnType2, argTypes2, args, opts) { + var func2 = getCFunc(ident2); + var cArgs = []; + var stack = 0; + if (args) { + for (var i2 = 0; i2 < args.length; i2++) { + var converter = toC[argTypes2[i2]]; + if (converter) { + if (stack === 0) + stack = Runtime.stackSave(); + cArgs[i2] = converter(args[i2]); + } else { + cArgs[i2] = args[i2]; + } } - - if (k >= 256) { - if (k > 256) { - throw new Error("ERROR: Huffman table error(1)!"); - } - - k = 0; - currentTable+=1; + } + var ret = func2.apply(null, cArgs); + if (returnType2 === "string") + ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push(function() { + Runtime.stackRestore(stack); + }); + return; } + Runtime.stackRestore(stack); + } + return ret; + }; + var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + function parseJSFunc(jsfunc) { + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return { arguments: parsed[0], body: parsed[1], returnValue: parsed[2] }; } - } -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.HuffmanTable; -} - -},{"./data-stream.js":10,"./utils.js":18}],14:[function(require,module,exports){ -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ****/ - -/** - * jpeg - * @type {*|{}} - */ -var jpeg = jpeg || {}; - -/** - * jpeg.lossless - * @type {*|{}} - */ -jpeg.lossless = jpeg.lossless || {}; - - -jpeg.lossless.ComponentSpec = jpeg.lossless.ComponentSpec || ((typeof require !== 'undefined') ? require('./component-spec.js') : null); -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.Decoder = jpeg.lossless.Decoder || ((typeof require !== 'undefined') ? require('./decoder.js') : null); -jpeg.lossless.FrameHeader = jpeg.lossless.FrameHeader || ((typeof require !== 'undefined') ? require('./frame-header.js') : null); -jpeg.lossless.HuffmanTable = jpeg.lossless.HuffmanTable || ((typeof require !== 'undefined') ? require('./huffman-table.js') : null); -jpeg.lossless.QuantizationTable = jpeg.lossless.QuantizationTable || ((typeof require !== 'undefined') ? require('./quantization-table.js') : null); -jpeg.lossless.ScanComponent = jpeg.lossless.ScanComponent || ((typeof require !== 'undefined') ? require('./scan-component.js') : null); -jpeg.lossless.ScanHeader = jpeg.lossless.ScanHeader || ((typeof require !== 'undefined') ? require('./scan-header.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Exports ***/ -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg; -} - -},{"./component-spec.js":9,"./data-stream.js":10,"./decoder.js":11,"./frame-header.js":12,"./huffman-table.js":13,"./quantization-table.js":15,"./scan-component.js":16,"./scan-header.js":17,"./utils.js":18}],15:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.Utils = jpeg.lossless.Utils || ((typeof require !== 'undefined') ? require('./utils.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.QuantizationTable = jpeg.lossless.QuantizationTable || function () { - this.precision = []; // Quantization precision 8 or 16 - this.tq = []; // 1: this table is presented - this.quantTables = jpeg.lossless.Utils.createArray(4, 64); // Tables - - this.tq[0] = 0; - this.tq[1] = 0; - this.tq[2] = 0; - this.tq[3] = 0; -}; - - - -/*** Static Methods ***/ - -jpeg.lossless.QuantizationTable.enhanceQuantizationTable = function(qtab, table) { - /*jslint bitwise: true */ - - var i; - - for (i = 0; i < 8; i+=1) { - qtab[table[(0 * 8) + i]] *= 90; - qtab[table[(4 * 8) + i]] *= 90; - qtab[table[(2 * 8) + i]] *= 118; - qtab[table[(6 * 8) + i]] *= 49; - qtab[table[(5 * 8) + i]] *= 71; - qtab[table[(1 * 8) + i]] *= 126; - qtab[table[(7 * 8) + i]] *= 25; - qtab[table[(3 * 8) + i]] *= 106; - } - - for (i = 0; i < 8; i+=1) { - qtab[table[0 + (8 * i)]] *= 90; - qtab[table[4 + (8 * i)]] *= 90; - qtab[table[2 + (8 * i)]] *= 118; - qtab[table[6 + (8 * i)]] *= 49; - qtab[table[5 + (8 * i)]] *= 71; - qtab[table[1 + (8 * i)]] *= 126; - qtab[table[7 + (8 * i)]] *= 25; - qtab[table[3 + (8 * i)]] *= 106; - } - - for (i = 0; i < 64; i+=1) { - qtab[i] >>= 6; - } -}; - - -/*** Prototype Methods ***/ - -jpeg.lossless.QuantizationTable.prototype.read = function (data, table) { - /*jslint bitwise: true */ - - var count = 0, length, temp, t, i; - - length = data.get16(); - count += 2; - - while (count < length) { - temp = data.get8(); - count+=1; - t = temp & 0x0F; - - if (t > 3) { - throw new Error("ERROR: Quantization table ID > 3"); + var JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + JSsource[fun] = parseJSFunc(JSfuncs[fun]); + } } - - this.precision[t] = temp >> 4; - - if (this.precision[t] === 0) { - this.precision[t] = 8; - } else if (this.precision[t] === 1) { - this.precision[t] = 16; + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + var numericArgs = argTypes.every(function(type2) { + return type2 === "number"; + }); + var numericRet = returnType !== "string"; + if (numericRet && numericArgs) { + return cfunc; + } + var argNames = argTypes.map(function(x, i2) { + return "$" + i2; + }); + var funcstr = "(function(" + argNames.join(",") + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + funcstr += "var stack = " + JSsource["stackSave"].body + ";"; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], type = argTypes[i]; + if (type === "number") + continue; + var convertCode = JSsource[type + "ToC"]; + funcstr += "var " + convertCode.arguments + " = " + arg + ";"; + funcstr += convertCode.body + ";"; + funcstr += arg + "=" + convertCode.returnValue + ";"; + } + } + var cfuncname = parseJSFunc(function() { + return cfunc; + }).returnValue; + funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");"; + if (!numericRet) { + var strgfy = parseJSFunc(function() { + return Pointer_stringify; + }).returnValue; + funcstr += "ret = " + strgfy + "(ret);"; + } + if (!numericArgs) { + funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";"; + } + funcstr += "return ret})"; + return eval(funcstr); + }; + })(); + Module["ccall"] = ccall; + Module["cwrap"] = cwrap; + function setValue(ptr, value, type2, noSafe) { + type2 = type2 || "i8"; + if (type2.charAt(type2.length - 1) === "*") + type2 = "i32"; + switch (type2) { + case "i1": + HEAP8[ptr >> 0] = value; + break; + case "i8": + HEAP8[ptr >> 0] = value; + break; + case "i16": + HEAP16[ptr >> 1] = value; + break; + case "i32": + HEAP32[ptr >> 2] = value; + break; + case "i64": + tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; + break; + case "float": + HEAPF32[ptr >> 2] = value; + break; + case "double": + HEAPF64[ptr >> 3] = value; + break; + default: + abort("invalid type for setValue: " + type2); + } + } + Module["setValue"] = setValue; + function getValue(ptr, type2, noSafe) { + type2 = type2 || "i8"; + if (type2.charAt(type2.length - 1) === "*") + type2 = "i32"; + switch (type2) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + default: + abort("invalid type for setValue: " + type2); + } + return null; + } + Module["getValue"] = getValue; + var ALLOC_NORMAL = 0; + var ALLOC_STACK = 1; + var ALLOC_STATIC = 2; + var ALLOC_DYNAMIC = 3; + var ALLOC_NONE = 4; + Module["ALLOC_NORMAL"] = ALLOC_NORMAL; + Module["ALLOC_STACK"] = ALLOC_STACK; + Module["ALLOC_STATIC"] = ALLOC_STATIC; + Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; + Module["ALLOC_NONE"] = ALLOC_NONE; + function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === "number") { + zeroinit = true; + size = slab; } else { - throw new Error("ERROR: Quantization table precision error"); + zeroinit = false; + size = slab.length; } - - this.tq[t] = 1; - - if (this.precision[t] === 8) { - for (i = 0; i < 64; i+=1) { - if (count > length) { - throw new Error("ERROR: Quantization table format error"); - } - - this.quantTables[t][i] = data.get8(); - count+=1; - } - - jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); + var singleType = typeof types === "string" ? types : null; + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr; } else { - for (i = 0; i < 64; i+=1) { - if (count > length) { - throw new Error("ERROR: Quantization table format error"); - } - - this.quantTables[t][i] = data.get16(); - count += 2; - } - - jpeg.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); + ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === void 0 ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); } - } - - if (count !== length) { - throw new Error("ERROR: Quantization table error [count!=Lq]"); - } - - return 1; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.QuantizationTable; -} - -},{"./data-stream.js":10,"./utils.js":18}],16:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.ScanComponent = jpeg.lossless.ScanComponent || function () { - this.acTabSel = 0; // AC table selector - this.dcTabSel = 0; // DC table selector - this.scanCompSel = 0; // Scan component selector -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.ScanComponent; -} - -},{}],17:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.DataStream = jpeg.lossless.DataStream || ((typeof require !== 'undefined') ? require('./data-stream.js') : null); -jpeg.lossless.ScanComponent = jpeg.lossless.ScanComponent || ((typeof require !== 'undefined') ? require('./scan-component.js') : null); - - -/*** Constructor ***/ -jpeg.lossless.ScanHeader = jpeg.lossless.ScanHeader || function () { - this.ah = 0; - this.al = 0; - this.numComp = 0; // Number of components in the scan - this.selection = 0; // Start of spectral or predictor selection - this.spectralEnd = 0; // End of spectral selection - this.components = []; -}; - - -/*** Prototype Methods ***/ - -jpeg.lossless.ScanHeader.prototype.read = function(data) { - /*jslint bitwise: true */ - - var count = 0, length, i, temp; - - length = data.get16(); - count += 2; - - this.numComp = data.get8(); - count+=1; - - for (i = 0; i < this.numComp; i+=1) { - this.components[i] = new jpeg.lossless.ScanComponent(); - - if (count > length) { - throw new Error("ERROR: scan header format error"); + if (zeroinit) { + var ptr = ret, stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[ptr >> 2] = 0; + } + stop = ret + size; + while (ptr < stop) { + HEAP8[ptr++ >> 0] = 0; + } + return ret; } - - this.components[i].scanCompSel = data.get8(); - count+=1; - - temp = data.get8(); - count+=1; - - this.components[i].dcTabSel = (temp >> 4); - this.components[i].acTabSel = (temp & 0x0F); - } - - this.selection = data.get8(); - count+=1; - - this.spectralEnd = data.get8(); - count+=1; - - temp = data.get8(); - this.ah = (temp >> 4); - this.al = (temp & 0x0F); - count+=1; - - if (count !== length) { - throw new Error("ERROR: scan header format error [count!=Ns]"); - } - - return 1; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.ScanHeader; -} - -},{"./data-stream.js":10,"./scan-component.js":16}],18:[function(require,module,exports){ -/* - * Copyright (C) 2015 Michael Martinez - * Changes: Added support for selection values 2-7, fixed minor bugs & - * warnings, split into multiple class files, and general clean up. - * - * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT. - */ - -/* - * Copyright (C) Helmut Dersch - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; - - -/*** Constructor ***/ -jpeg.lossless.Utils = jpeg.lossless.Utils || {}; - - -/*** Static methods ***/ - -// http://stackoverflow.com/questions/966225/how-can-i-create-a-two-dimensional-array-in-javascript -jpeg.lossless.Utils.createArray = function (length) { - var arr = new Array(length || 0), - i = length; - - if (arguments.length > 1) { - var args = Array.prototype.slice.call(arguments, 1); - while(i--) arr[length-1 - i] = jpeg.lossless.Utils.createArray.apply(this, args); - } - - return arr; -}; - - -// http://stackoverflow.com/questions/18638900/javascript-crc32 -jpeg.lossless.Utils.makeCRCTable = function(){ - var c; - var crcTable = []; - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + if (singleType === "i8") { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret); + } else { + HEAPU8.set(new Uint8Array(slab), ret); + } + return ret; } - crcTable[n] = c; - } - return crcTable; -}; - -jpeg.lossless.Utils.crc32 = function(dataView) { - var uint8view = new Uint8Array(dataView.buffer); - var crcTable = jpeg.lossless.Utils.crcTable || (jpeg.lossless.Utils.crcTable = jpeg.lossless.Utils.makeCRCTable()); - var crc = 0 ^ (-1); - - for (var i = 0; i < uint8view.length; i++ ) { - crc = (crc >>> 8) ^ crcTable[(crc ^ uint8view[i]) & 0xFF]; - } - - return (crc ^ (-1)) >>> 0; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = jpeg.lossless.Utils; -} - -},{}],19:[function(require,module,exports){ -(function (process){(function (){ -// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1, -// backported and transplited with Babel, with backwards-compat fixes - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function (path) { - if (typeof path !== 'string') path = path + ''; - if (path.length === 0) return '.'; - var code = path.charCodeAt(0); - var hasRoot = code === 47 /*/*/; - var end = -1; - var matchedSlash = true; - for (var i = path.length - 1; i >= 1; --i) { - code = path.charCodeAt(i); - if (code === 47 /*/*/) { - if (!matchedSlash) { - end = i; - break; + var i2 = 0, type2, typeSize, previousType; + while (i2 < size) { + var curr = slab[i2]; + if (typeof curr === "function") { + curr = Runtime.getFunctionIndex(curr); + } + type2 = singleType || types[i2]; + if (type2 === 0) { + i2++; + continue; + } + if (type2 == "i64") + type2 = "i32"; + setValue(ret + i2, curr, type2); + if (previousType !== type2) { + typeSize = Runtime.getNativeTypeSize(type2); + previousType = type2; + } + i2 += typeSize; } - } else { - // We saw the first non-path separator - matchedSlash = false; - } - } - - if (end === -1) return hasRoot ? '/' : '.'; - if (hasRoot && end === 1) { - // return '//'; - // Backwards-compat fix: - return '/'; - } - return path.slice(0, end); -}; - -function basename(path) { - if (typeof path !== 'string') path = path + ''; - - var start = 0; - var end = -1; - var matchedSlash = true; - var i; - - for (i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - start = i + 1; - break; + return ret; + } + Module["allocate"] = allocate; + function getMemory(size) { + if (!staticSealed) + return Runtime.staticAlloc(size); + if (typeof _sbrk !== "undefined" && !_sbrk.called || !runtimeInitialized) + return Runtime.dynamicAlloc(size); + return _malloc(size); + } + Module["getMemory"] = getMemory; + function Pointer_stringify(ptr, length) { + if (length === 0 || !ptr) + return ""; + var hasUtf = 0; + var t; + var i2 = 0; + while (1) { + t = HEAPU8[ptr + i2 >> 0]; + hasUtf |= t; + if (t == 0 && !length) + break; + i2++; + if (length && i2 == length) + break; } - } else if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // path component - matchedSlash = false; - end = i + 1; - } - } - - if (end === -1) return ''; - return path.slice(start, end); -} - -// Uses a mixed approach for backwards-compatibility, as ext behavior changed -// in new Node.js versions, so only basename() above is backported here -exports.basename = function (path, ext) { - var f = basename(path); - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - -exports.extname = function (path) { - if (typeof path !== 'string') path = path + ''; - var startDot = -1; - var startPart = 0; - var end = -1; - var matchedSlash = true; - // Track the state of characters (if any) we see before our first dot and - // after any path separator we find - var preDotState = 0; - for (var i = path.length - 1; i >= 0; --i) { - var code = path.charCodeAt(i); - if (code === 47 /*/*/) { - // If we reached a path separator that was not part of a set of path - // separators at the end of the string, stop now - if (!matchedSlash) { - startPart = i + 1; - break; + if (!length) + length = i2; + var ret = ""; + if (hasUtf < 128) { + var MAX_CHUNK = 1024; + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK; + } + return ret; } - continue; + return Module["UTF8ToString"](ptr); } - if (end === -1) { - // We saw the first non-path separator, mark this as the end of our - // extension - matchedSlash = false; - end = i + 1; - } - if (code === 46 /*.*/) { - // If this is our first dot, mark it as the start of our extension - if (startDot === -1) - startDot = i; - else if (preDotState !== 1) - preDotState = 1; - } else if (startDot !== -1) { - // We saw a non-dot and non-path separator before our dot, so we should - // have a good chance at having a non-empty extension - preDotState = -1; - } - } - - if (startDot === -1 || end === -1 || - // We saw a non-dot character immediately before the dot - preDotState === 0 || - // The (right-most) trimmed path component is exactly '..' - preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { - return ''; - } - return path.slice(startDot, end); -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -}).call(this)}).call(this,require('_process')) -},{"_process":20}],20:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; + Module["Pointer_stringify"] = Pointer_stringify; + function AsciiToString(ptr) { + var str = ""; + while (1) { + var ch = HEAP8[ptr++ >> 0]; + if (!ch) + return str; + str += String.fromCharCode(ch); } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; + } + Module["AsciiToString"] = AsciiToString; + function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false); + } + Module["stringToAscii"] = stringToAscii; + function UTF8ArrayToString(u8Array, idx) { + var u0, u1, u2, u3, u4, u5; + var str = ""; + while (1) { + u0 = u8Array[idx++]; + if (!u0) + return str; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + u1 = u8Array[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue; + } + u2 = u8Array[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2; + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 248) == 240) { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3; + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 252) == 248) { + u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4; + } else { + u5 = u8Array[idx++] & 63; + u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5; + } + } + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); + } + Module["UTF8ArrayToString"] = UTF8ArrayToString; + function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8, ptr); + } + Module["UTF8ToString"] = UTF8ToString; + function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) + return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i2 = 0; i2 < str.length; ++i2) { + var u = str.charCodeAt(i2); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i2) & 1023; + if (u <= 127) { + if (outIdx >= endIdx) + break; + outU8Array[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) + break; + outU8Array[outIdx++] = 192 | u >> 6; + outU8Array[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) + break; + outU8Array[outIdx++] = 224 | u >> 12; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } else if (u <= 2097151) { + if (outIdx + 3 >= endIdx) + break; + outU8Array[outIdx++] = 240 | u >> 18; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } else if (u <= 67108863) { + if (outIdx + 4 >= endIdx) + break; + outU8Array[outIdx++] = 248 | u >> 24; + outU8Array[outIdx++] = 128 | u >> 18 & 63; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 5 >= endIdx) + break; + outU8Array[outIdx++] = 252 | u >> 30; + outU8Array[outIdx++] = 128 | u >> 24 & 63; + outU8Array[outIdx++] = 128 | u >> 18 & 63; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63; + } } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); + outU8Array[outIdx] = 0; + return outIdx - startIdx; + } + Module["stringToUTF8Array"] = stringToUTF8Array; + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + Module["stringToUTF8"] = stringToUTF8; + function lengthBytesUTF8(str) { + var len = 0; + for (var i2 = 0; i2 < str.length; ++i2) { + var u = str.charCodeAt(i2); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i2) & 1023; + if (u <= 127) { + ++len; + } else if (u <= 2047) { + len += 2; + } else if (u <= 65535) { + len += 3; + } else if (u <= 2097151) { + len += 4; + } else if (u <= 67108863) { + len += 5; + } else { + len += 6; + } } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } + return len; + } + Module["lengthBytesUTF8"] = lengthBytesUTF8; + function UTF16ToString(ptr) { + var i2 = 0; + var str = ""; + while (1) { + var codeUnit = HEAP16[ptr + i2 * 2 >> 1]; + if (codeUnit == 0) + return str; + ++i2; + str += String.fromCharCode(codeUnit); } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; + } + Module["UTF16ToString"] = UTF16ToString; + function stringToUTF16(str, outPtr, maxBytesToWrite) { + if (maxBytesToWrite === void 0) { + maxBytesToWrite = 2147483647; } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],21:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.CompressionUtils = daikon.CompressionUtils || {}; - - -/*** Static Pseudo-constants ***/ - -daikon.CompressionUtils.JPEG_MAGIC_NUMBER = [0xFF, 0xD8]; -daikon.CompressionUtils.JPEG2000_MAGIC_NUMBER = [0xFF, 0x4F, 0xFF, 0x51]; - - -/*** Static methods ***/ - -daikon.CompressionUtils.isHeaderJPEG = function (data) { - if (data) { - if (data.getUint8(0) !== daikon.CompressionUtils.JPEG_MAGIC_NUMBER[0]) { - return false; + if (maxBytesToWrite < 2) + return 0; + maxBytesToWrite -= 2; + var startPtr = outPtr; + var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; + for (var i2 = 0; i2 < numCharsToWrite; ++i2) { + var codeUnit = str.charCodeAt(i2); + HEAP16[outPtr >> 1] = codeUnit; + outPtr += 2; } - - if (data.getUint8(1) !== daikon.CompressionUtils.JPEG_MAGIC_NUMBER[1]) { - return false; + HEAP16[outPtr >> 1] = 0; + return outPtr - startPtr; + } + Module["stringToUTF16"] = stringToUTF16; + function lengthBytesUTF16(str) { + return str.length * 2; + } + Module["lengthBytesUTF16"] = lengthBytesUTF16; + function UTF32ToString(ptr) { + var i2 = 0; + var str = ""; + while (1) { + var utf32 = HEAP32[ptr + i2 * 4 >> 2]; + if (utf32 == 0) + return str; + ++i2; + if (utf32 >= 65536) { + var ch = utf32 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); + } else { + str += String.fromCharCode(utf32); + } } - - return true; - } - - return false; -}; - - -daikon.CompressionUtils.isHeaderJPEG2000 = function (data) { - var ctr; - - if (data) { - for (ctr = 0; ctr < daikon.CompressionUtils.JPEG2000_MAGIC_NUMBER.length; ctr+=1) { - if (data.getUint8(ctr) !== daikon.CompressionUtils.JPEG2000_MAGIC_NUMBER[ctr]) { - return false; - } + } + Module["UTF32ToString"] = UTF32ToString; + function stringToUTF32(str, outPtr, maxBytesToWrite) { + if (maxBytesToWrite === void 0) { + maxBytesToWrite = 2147483647; } - - return true; - } - - return false; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.CompressionUtils; -} -},{}],22:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; - -/** - * daikon.Dictionary - * @type {{}|*} - */ -daikon.Dictionary = daikon.Dictionary || {}; -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); - - -/*** Static Pseudo-constants ***/ - -daikon.Dictionary.dictPrivate = { - "0207" : { - "101F" : ["FE", "ElscintDataScale"] // uses special Elscint double type (see Tag class) - } -}; - - -daikon.Dictionary.dict = { - "0002" : { - "0001" : ["OB", "FileMetaInformationVersion"], - "0002" : ["UI", "MediaStoredSOPClassUID"], - "0003" : ["UI", "MediaStoredSOPInstanceUID"], - "0010" : ["UI", "TransferSyntaxUID"], - "0012" : ["UI", "ImplementationClassUID"], - "0013" : ["SH", "ImplementationVersionName"], - "0016" : ["AE", "SourceApplicationEntityTitle"], - "0100" : ["UI", "PrivateInformationCreatorUID"], - "0102" : ["OB", "PrivateInformation"] - }, - "0004" : { - "1130" : ["CS", "FilesetID"], - "1141" : ["CS", "FilesetDescriptorFileFileID"], - "1142" : ["CS", "FilesetDescriptorFileFormat"], - "1200" : ["UL", "RootDirectoryEntitysFirstDirectoryRecordOffset"], - "1202" : ["UL", "RootDirectoryEntitysLastDirectoryRecordOffset"], - "1212" : ["US", "File-setConsistenceFlag"], - "1220" : ["SQ", "DirectoryRecordSequence"], - "1400" : ["UL", "NextDirectoryRecordOffset"], - "1410" : ["US", "RecordInuseFlag"], - "1420" : ["UL", "ReferencedLowerlevelDirectoryEntityOffset"], - "1430" : ["CS", "DirectoryRecordType"], - "1432" : ["UI", "PrivateRecordUID"], - "1500" : ["CS", "ReferencedFileID"], - "1510" : ["UI", "ReferencedSOPClassUIDInFile"], - "1511" : ["UI", "ReferencedSOPInstanceUIDInFile"], - "1600" : ["UL", "NumberOfReferences"] - }, - "0008" : { - "0001" : ["UL", "LengthToEnd"], - "0005" : ["CS", "SpecificCharacterSet"], - "0006" : ["SQ", "LanguageCodeSequence"], - "0008" : ["CS", "ImageType"], - "0010" : ["SH", "RecognitionCode"], - "0012" : ["DA", "InstanceCreationDate"], - "0013" : ["TM", "InstanceCreationTime"], - "0014" : ["UI", "InstanceCreatorUID"], - "0016" : ["UI", "SOPClassUID"], - "0018" : ["UI", "SOPInstanceUID"], - "001A" : ["UI", "RelatedGeneralSOPClassUID"], - "001B" : ["UI", "OriginalSpecializedSOPClassUID"], - "0020" : ["DA", "StudyDate"], - "0021" : ["DA", "SeriesDate"], - "0022" : ["DA", "AcquisitionDate"], - "0023" : ["DA", "ContentDate"], - "0024" : ["DA", "OverlayDate"], - "0025" : ["DA", "CurveDate"], - "002A" : ["DT", "AcquisitionDateTime"], - "0030" : ["TM", "StudyTime"], - "0031" : ["TM", "SeriesTime"], - "0032" : ["TM", "AcquisitionTime"], - "0033" : ["TM", "ContentTime"], - "0034" : ["TM", "OverlayTime"], - "0035" : ["TM", "CurveTime"], - "0040" : ["US", "DataSetType"], - "0041" : ["LO", "DataSetSubtype"], - "0042" : ["CS", "NuclearMedicineSeriesType"], - "0050" : ["SH", "AccessionNumber"], - "0051" : ["SQ", "IssuerOfAccessionNumberSequence"], - "0052" : ["CS", "QueryRetrieveLevel"], - "0054" : ["AE", "RetrieveAETitle"], - "0056" : ["CS", "InstanceAvailability"], - "0058" : ["UI", "FailedSOPInstanceUIDList"], - "0060" : ["CS", "Modality"], - "0061" : ["CS", "ModalitiesInStudy"], - "0062" : ["UI", "SOPClassesInStudy"], - "0064" : ["CS", "ConversionType"], - "0068" : ["CS", "PresentationIntentType"], - "0070" : ["LO", "Manufacturer"], - "0080" : ["LO", "InstitutionName"], - "0081" : ["ST", "InstitutionAddress"], - "0082" : ["SQ", "InstitutionCodeSequence"], - "0090" : ["PN", "ReferringPhysicianName"], - "0092" : ["ST", "ReferringPhysicianAddress"], - "0094" : ["SH", "ReferringPhysicianTelephoneNumbers"], - "0096" : ["SQ", "ReferringPhysicianIdentificationSequence"], - "0100" : ["SH", "CodeValue"], - "0102" : ["SH", "CodingSchemeDesignator"], - "0103" : ["SH", "CodingSchemeVersion"], - "0104" : ["LO", "CodeMeaning"], - "0105" : ["CS", "MappingResource"], - "0106" : ["DT", "ContextGroupVersion"], - "0107" : ["DT", "ContextGroupLocalVersion"], - "010B" : ["CS", "ContextGroupExtensionFlag"], - "010C" : ["UI", "CodingSchemeUID"], - "010D" : ["UI", "ContextGroupExtensionCreatorUID"], - "010F" : ["CS", "ContextIdentifier"], - "0110" : ["SQ", "CodingSchemeIdentificationSequence"], - "0112" : ["LO", "CodingSchemeRegistry"], - "0114" : ["ST", "CodingSchemeExternalID"], - "0115" : ["ST", "CodingSchemeName"], - "0116" : ["ST", "CodingSchemeResponsibleOrganization"], - "0117" : ["UI", "ContextUID"], - "0201" : ["SH", "TimezoneOffsetFromUTC"], - "1000" : ["AE", "NetworkID"], - "1010" : ["SH", "StationName"], - "1030" : ["LO", "StudyDescription"], - "1032" : ["SQ", "ProcedureCodeSequence"], - "103E" : ["LO", "SeriesDescription"], - "103F" : ["SQ", "SeriesDescriptionCodeSequence"], - "1040" : ["LO", "InstitutionalDepartmentName"], - "1048" : ["PN", "PhysiciansOfRecord"], - "1049" : ["SQ", "PhysiciansOfRecordIdentificationSequence"], - "1050" : ["PN", "PerformingPhysicianName"], - "1052" : ["SQ", "PerformingPhysicianIdentificationSequence"], - "1060" : ["PN", "NameOfPhysiciansReadingStudy"], - "1062" : ["SQ", "PhysiciansReadingStudyIdentificationSequence"], - "1070" : ["PN", "OperatorsName"], - "1072" : ["SQ", "OperatorIdentificationSequence"], - "1080" : ["LO", "AdmittingDiagnosesDescription"], - "1084" : ["SQ", "AdmittingDiagnosesCodeSequence"], - "1090" : ["LO", "ManufacturerModelName"], - "1100" : ["SQ", "ReferencedResultsSequence"], - "1110" : ["SQ", "ReferencedStudySequence"], - "1111" : ["SQ", "ReferencedPerformedProcedureStepSequence"], - "1115" : ["SQ", "ReferencedSeriesSequence"], - "1120" : ["SQ", "ReferencedPatientSequence"], - "1125" : ["SQ", "ReferencedVisitSequence"], - "1130" : ["SQ", "ReferencedOverlaySequence"], - "1134" : ["SQ", "ReferencedStereometricInstanceSequence"], - "113A" : ["SQ", "ReferencedWaveformSequence"], - "1140" : ["SQ", "ReferencedImageSequence"], - "1145" : ["SQ", "ReferencedCurveSequence"], - "114A" : ["SQ", "ReferencedInstanceSequence"], - "114B" : ["SQ", "ReferencedRealWorldValueMappingInstanceSequence"], - "1150" : ["UI", "ReferencedSOPClassUID"], - "1155" : ["UI", "ReferencedSOPInstanceUID"], - "115A" : ["UI", "SOPClassesSupported"], - "1160" : ["IS", "ReferencedFrameNumber"], - "1161" : ["UL", "SimpleFrameList"], - "1162" : ["UL", "CalculatedFrameList"], - "1163" : ["FD", "TimeRange"], - "1164" : ["SQ", "FrameExtractionSequence"], - "1167" : ["UI", "MultiFrameSourceSOPInstanceUID"], - "1195" : ["UI", "TransactionUID"], - "1197" : ["US", "FailureReason"], - "1198" : ["SQ", "FailedSOPSequence"], - "1199" : ["SQ", "ReferencedSOPSequence"], - "1200" : ["SQ", "StudiesContainingOtherReferencedInstancesSequence"], - "1250" : ["SQ", "RelatedSeriesSequence"], - "2110" : ["CS", "LossyImageCompressionRetired"], - "2111" : ["ST", "DerivationDescription"], - "2112" : ["SQ", "SourceImageSequence"], - "2120" : ["SH", "StageName"], - "2122" : ["IS", "StageNumber"], - "2124" : ["IS", "NumberOfStages"], - "2127" : ["SH", "ViewName"], - "2128" : ["IS", "ViewNumber"], - "2129" : ["IS", "NumberOfEventTimers"], - "212A" : ["IS", "NumberOfViewsInStage"], - "2130" : ["DS", "EventElapsedTimes"], - "2132" : ["LO", "EventTimerNames"], - "2133" : ["SQ", "EventTimerSequence"], - "2134" : ["FD", "EventTimeOffset"], - "2135" : ["SQ", "EventCodeSequence"], - "2142" : ["IS", "StartTrim"], - "2143" : ["IS", "StopTrim"], - "2144" : ["IS", "RecommendedDisplayFrameRate"], - "2200" : ["CS", "TransducerPosition"], - "2204" : ["CS", "TransducerOrientation"], - "2208" : ["CS", "AnatomicStructure"], - "2218" : ["SQ", "AnatomicRegionSequence"], - "2220" : ["SQ", "AnatomicRegionModifierSequence"], - "2228" : ["SQ", "PrimaryAnatomicStructureSequence"], - "2229" : ["SQ", "AnatomicStructureSpaceOrRegionSequence"], - "2230" : ["SQ", "PrimaryAnatomicStructureModifierSequence"], - "2240" : ["SQ", "TransducerPositionSequence"], - "2242" : ["SQ", "TransducerPositionModifierSequence"], - "2244" : ["SQ", "TransducerOrientationSequence"], - "2246" : ["SQ", "TransducerOrientationModifierSequence"], - "2251" : ["SQ", "AnatomicStructureSpaceOrRegionCodeSequenceTrial"], - "2253" : ["SQ", "AnatomicPortalOfEntranceCodeSequenceTrial"], - "2255" : ["SQ", "AnatomicApproachDirectionCodeSequenceTrial"], - "2256" : ["ST", "AnatomicPerspectiveDescriptionTrial"], - "2257" : ["SQ", "AnatomicPerspectiveCodeSequenceTrial"], - "2258" : ["ST", "AnatomicLocationOfExaminingInstrumentDescriptionTrial"], - "2259" : ["SQ", "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"], - "225A" : ["SQ", "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"], - "225C" : ["SQ", "OnAxisBackgroundAnatomicStructureCodeSequenceTrial"], - "3001" : ["SQ", "AlternateRepresentationSequence"], - "3010" : ["UI", "IrradiationEventUID"], - "4000" : ["LT", "IdentifyingComments"], - "9007" : ["CS", "FrameType"], - "9092" : ["SQ", "ReferencedImageEvidenceSequence"], - "9121" : ["SQ", "ReferencedRawDataSequence"], - "9123" : ["UI", "CreatorVersionUID"], - "9124" : ["SQ", "DerivationImageSequence"], - "9154" : ["SQ", "SourceImageEvidenceSequence"], - "9205" : ["CS", "PixelPresentation"], - "9206" : ["CS", "VolumetricProperties"], - "9207" : ["CS", "VolumeBasedCalculationTechnique"], - "9208" : ["CS", "ComplexImageComponent"], - "9209" : ["CS", "AcquisitionContrast"], - "9215" : ["SQ", "DerivationCodeSequence"], - "9237" : ["SQ", "ReferencedPresentationStateSequence"], - "9410" : ["SQ", "ReferencedOtherPlaneSequence"], - "9458" : ["SQ", "FrameDisplaySequence"], - "9459" : ["FL", "RecommendedDisplayFrameRateInFloat"], - "9460" : ["CS", "SkipFrameRangeFlag"] - }, - "0010" : { - "0010" : ["PN", "PatientName"], - "0020" : ["LO", "PatientID"], - "0021" : ["LO", "IssuerOfPatientID"], - "0022" : ["CS", "TypeOfPatientID"], - "0024" : ["SQ", "IssuerOfPatientIDQualifiersSequence"], - "0030" : ["DA", "PatientBirthDate"], - "0032" : ["TM", "PatientBirthTime"], - "0040" : ["CS", "PatientSex"], - "0050" : ["SQ", "PatientInsurancePlanCodeSequence"], - "0101" : ["SQ", "PatientPrimaryLanguageCodeSequence"], - "0102" : ["SQ", "PatientPrimaryLanguageModifierCodeSequence"], - "1000" : ["LO", "OtherPatientIDs"], - "1001" : ["PN", "OtherPatientNames"], - "1002" : ["SQ", "OtherPatientIDsSequence"], - "1005" : ["PN", "PatientBirthName"], - "1010" : ["AS", "PatientAge"], - "1020" : ["DS", "PatientSize"], - "1021" : ["SQ", "PatientSizeCodeSequence"], - "1030" : ["DS", "PatientWeight"], - "1040" : ["LO", "PatientAddress"], - "1050" : ["LO", "InsurancePlanIdentification"], - "1060" : ["PN", "PatientMotherBirthName"], - "1080" : ["LO", "MilitaryRank"], - "1081" : ["LO", "BranchOfService"], - "1090" : ["LO", "MedicalRecordLocator"], - "2000" : ["LO", "MedicalAlerts"], - "2110" : ["LO", "Allergies"], - "2150" : ["LO", "CountryOfResidence"], - "2152" : ["LO", "RegionOfResidence"], - "2154" : ["SH", "PatientTelephoneNumbers"], - "2160" : ["SH", "EthnicGroup"], - "2180" : ["SH", "Occupation"], - "21A0" : ["CS", "SmokingStatus"], - "21B0" : ["LT", "AdditionalPatientHistory"], - "21C0" : ["US", "PregnancyStatus"], - "21D0" : ["DA", "LastMenstrualDate"], - "21F0" : ["LO", "PatientReligiousPreference"], - "2201" : ["LO", "PatientSpeciesDescription"], - "2202" : ["SQ", "PatientSpeciesCodeSequence"], - "2203" : ["CS", "PatientSexNeutered"], - "2210" : ["CS", "AnatomicalOrientationType"], - "2292" : ["LO", "PatientBreedDescription"], - "2293" : ["SQ", "PatientBreedCodeSequence"], - "2294" : ["SQ", "BreedRegistrationSequence"], - "2295" : ["LO", "BreedRegistrationNumber"], - "2296" : ["SQ", "BreedRegistryCodeSequence"], - "2297" : ["PN", "ResponsiblePerson"], - "2298" : ["CS", "ResponsiblePersonRole"], - "2299" : ["LO", "ResponsibleOrganization"], - "4000" : ["LT", "PatientComments"], - "9431" : ["FL", "ExaminedBodyThickness"] - }, - "0012" : { - "0010" : ["LO", "ClinicalTrialSponsorName"], - "0020" : ["LO", "ClinicalTrialProtocolID"], - "0021" : ["LO", "ClinicalTrialProtocolName"], - "0030" : ["LO", "ClinicalTrialSiteID"], - "0031" : ["LO", "ClinicalTrialSiteName"], - "0040" : ["LO", "ClinicalTrialSubjectID"], - "0042" : ["LO", "ClinicalTrialSubjectReadingID"], - "0050" : ["LO", "ClinicalTrialTimePointID"], - "0051" : ["ST", "ClinicalTrialTimePointDescription"], - "0060" : ["LO", "ClinicalTrialCoordinatingCenterName"], - "0062" : ["CS", "PatientIdentityRemoved"], - "0063" : ["LO", "DeidentificationMethod"], - "0064" : ["SQ", "DeidentificationMethodCodeSequence"], - "0071" : ["LO", "ClinicalTrialSeriesID"], - "0072" : ["LO", "ClinicalTrialSeriesDescription"], - "0081" : ["LO", "ClinicalTrialProtocolEthicsCommitteeName"], - "0082" : ["LO", "ClinicalTrialProtocolEthicsCommitteeApprovalNumber"], - "0083" : ["SQ", "ConsentForClinicalTrialUseSequence"], - "0084" : ["CS", "DistributionType"], - "0085" : ["CS", "ConsentForDistributionFlag"] - }, - "0014" : { - "0023" : ["ST", "CADFileFormat"], - "0024" : ["ST", "ComponentReferenceSystem"], - "0025" : ["ST", "ComponentManufacturingProcedure"], - "0028" : ["ST", "ComponentManufacturer"], - "0030" : ["DS", "MaterialThickness"], - "0032" : ["DS", "MaterialPipeDiameter"], - "0034" : ["DS", "MaterialIsolationDiameter"], - "0042" : ["ST", "MaterialGrade"], - "0044" : ["ST", "MaterialPropertiesFileID"], - "0045" : ["ST", "MaterialPropertiesFileFormat"], - "0046" : ["LT", "MaterialNotes"], - "0050" : ["CS", "ComponentShape"], - "0052" : ["CS", "CurvatureType"], - "0054" : ["DS", "OuterDiameter"], - "0056" : ["DS", "InnerDiameter"], - "1010" : ["ST", "ActualEnvironmentalConditions"], - "1020" : ["DA", "ExpiryDate"], - "1040" : ["ST", "EnvironmentalConditions"], - "2002" : ["SQ", "EvaluatorSequence"], - "2004" : ["IS", "EvaluatorNumber"], - "2006" : ["PN", "EvaluatorName"], - "2008" : ["IS", "EvaluationAttempt"], - "2012" : ["SQ", "IndicationSequence"], - "2014" : ["IS", "IndicationNumber "], - "2016" : ["SH", "IndicationLabel"], - "2018" : ["ST", "IndicationDescription"], - "201A" : ["CS", "IndicationType"], - "201C" : ["CS", "IndicationDisposition"], - "201E" : ["SQ", "IndicationROISequence"], - "2030" : ["SQ", "IndicationPhysicalPropertySequence"], - "2032" : ["SH", "PropertyLabel"], - "2202" : ["IS", "CoordinateSystemNumberOfAxes "], - "2204" : ["SQ", "CoordinateSystemAxesSequence"], - "2206" : ["ST", "CoordinateSystemAxisDescription"], - "2208" : ["CS", "CoordinateSystemDataSetMapping"], - "220A" : ["IS", "CoordinateSystemAxisNumber"], - "220C" : ["CS", "CoordinateSystemAxisType"], - "220E" : ["CS", "CoordinateSystemAxisUnits"], - "2210" : ["OB", "CoordinateSystemAxisValues"], - "2220" : ["SQ", "CoordinateSystemTransformSequence"], - "2222" : ["ST", "TransformDescription"], - "2224" : ["IS", "TransformNumberOfAxes"], - "2226" : ["IS", "TransformOrderOfAxes"], - "2228" : ["CS", "TransformedAxisUnits"], - "222A" : ["DS", "CoordinateSystemTransformRotationAndScaleMatrix"], - "222C" : ["DS", "CoordinateSystemTransformTranslationMatrix"], - "3011" : ["DS", "InternalDetectorFrameTime"], - "3012" : ["DS", "NumberOfFramesIntegrated"], - "3020" : ["SQ", "DetectorTemperatureSequence"], - "3022" : ["DS", "SensorName"], - "3024" : ["DS", "HorizontalOffsetOfSensor"], - "3026" : ["DS", "VerticalOffsetOfSensor"], - "3028" : ["DS", "SensorTemperature"], - "3040" : ["SQ", "DarkCurrentSequence"], - "3050" : ["OB", "DarkCurrentCounts"], - "3060" : ["SQ", "GainCorrectionReferenceSequence"], - "3070" : ["OB", "AirCounts"], - "3071" : ["DS", "KVUsedInGainCalibration"], - "3072" : ["DS", "MAUsedInGainCalibration"], - "3073" : ["DS", "NumberOfFramesUsedForIntegration"], - "3074" : ["LO", "FilterMaterialUsedInGainCalibration"], - "3075" : ["DS", "FilterThicknessUsedInGainCalibration"], - "3076" : ["DA", "DateOfGainCalibration"], - "3077" : ["TM", "TimeOfGainCalibration"], - "3080" : ["OB", "BadPixelImage"], - "3099" : ["LT", "CalibrationNotes"], - "4002" : ["SQ", "PulserEquipmentSequence"], - "4004" : ["CS", "PulserType"], - "4006" : ["LT", "PulserNotes"], - "4008" : ["SQ", "ReceiverEquipmentSequence"], - "400A" : ["CS", "AmplifierType"], - "400C" : ["LT", "ReceiverNotes"], - "400E" : ["SQ", "PreAmplifierEquipmentSequence"], - "400F" : ["LT", "PreAmplifierNotes"], - "4010" : ["SQ", "TransmitTransducerSequence"], - "4011" : ["SQ", "ReceiveTransducerSequence"], - "4012" : ["US", "NumberOfElements"], - "4013" : ["CS", "ElementShape"], - "4014" : ["DS", "ElementDimensionA"], - "4015" : ["DS", "ElementDimensionB"], - "4016" : ["DS", "ElementPitch"], - "4017" : ["DS", "MeasuredBeamDimensionA"], - "4018" : ["DS", "MeasuredBeamDimensionB"], - "4019" : ["DS", "LocationOfMeasuredBeamDiameter"], - "401A" : ["DS", "NominalFrequency"], - "401B" : ["DS", "MeasuredCenterFrequency"], - "401C" : ["DS", "MeasuredBandwidth"], - "4020" : ["SQ", "PulserSettingsSequence"], - "4022" : ["DS", "PulseWidth"], - "4024" : ["DS", "ExcitationFrequency"], - "4026" : ["CS", "ModulationType"], - "4028" : ["DS", "Damping"], - "4030" : ["SQ", "ReceiverSettingsSequence"], - "4031" : ["DS", "AcquiredSoundpathLength"], - "4032" : ["CS", "AcquisitionCompressionType"], - "4033" : ["IS", "AcquisitionSampleSize"], - "4034" : ["DS", "RectifierSmoothing"], - "4035" : ["SQ", "DACSequence"], - "4036" : ["CS", "DACType"], - "4038" : ["DS", "DACGainPoints"], - "403A" : ["DS", "DACTimePoints"], - "403C" : ["DS", "DACAmplitude"], - "4040" : ["SQ", "PreAmplifierSettingsSequence"], - "4050" : ["SQ", "TransmitTransducerSettingsSequence"], - "4051" : ["SQ", "ReceiveTransducerSettingsSequence"], - "4052" : ["DS", "IncidentAngle"], - "4054" : ["ST", "CouplingTechnique"], - "4056" : ["ST", "CouplingMedium"], - "4057" : ["DS", "CouplingVelocity"], - "4058" : ["DS", "CrystalCenterLocationX"], - "4059" : ["DS", "CrystalCenterLocationZ"], - "405A" : ["DS", "SoundPathLength"], - "405C" : ["ST", "DelayLawIdentifier"], - "4060" : ["SQ", "GateSettingsSequence"], - "4062" : ["DS", "GateThreshold"], - "4064" : ["DS", "VelocityOfSound"], - "4070" : ["SQ", "CalibrationSettingsSequence"], - "4072" : ["ST", "CalibrationProcedure"], - "4074" : ["SH", "ProcedureVersion"], - "4076" : ["DA", "ProcedureCreationDate"], - "4078" : ["DA", "ProcedureExpirationDate"], - "407A" : ["DA", "ProcedureLastModifiedDate"], - "407C" : ["TM", "CalibrationTime"], - "407E" : ["DA", "CalibrationDate"], - "5002" : ["IS", "LINACEnergy"], - "5004" : ["IS", "LINACOutput"] - }, - "0018" : { - "0010" : ["LO", "ContrastBolusAgent"], - "0012" : ["SQ", "ContrastBolusAgentSequence"], - "0014" : ["SQ", "ContrastBolusAdministrationRouteSequence"], - "0015" : ["CS", "BodyPartExamined"], - "0020" : ["CS", "ScanningSequence"], - "0021" : ["CS", "SequenceVariant"], - "0022" : ["CS", "ScanOptions"], - "0023" : ["CS", "MRAcquisitionType"], - "0024" : ["SH", "SequenceName"], - "0025" : ["CS", "AngioFlag"], - "0026" : ["SQ", "InterventionDrugInformationSequence"], - "0027" : ["TM", "InterventionDrugStopTime"], - "0028" : ["DS", "InterventionDrugDose"], - "0029" : ["SQ", "InterventionDrugCodeSequence"], - "002A" : ["SQ", "AdditionalDrugSequence"], - "0030" : ["LO", "Radionuclide"], - "0031" : ["LO", "Radiopharmaceutical"], - "0032" : ["DS", "EnergyWindowCenterline"], - "0033" : ["DS", "EnergyWindowTotalWidth"], - "0034" : ["LO", "InterventionDrugName"], - "0035" : ["TM", "InterventionDrugStartTime"], - "0036" : ["SQ", "InterventionSequence"], - "0037" : ["CS", "TherapyType"], - "0038" : ["CS", "InterventionStatus"], - "0039" : ["CS", "TherapyDescription"], - "003A" : ["ST", "InterventionDescription"], - "0040" : ["IS", "CineRate"], - "0042" : ["CS", "InitialCineRunState"], - "0050" : ["DS", "SliceThickness"], - "0060" : ["DS", "KVP"], - "0070" : ["IS", "CountsAccumulated"], - "0071" : ["CS", "AcquisitionTerminationCondition"], - "0072" : ["DS", "EffectiveDuration"], - "0073" : ["CS", "AcquisitionStartCondition"], - "0074" : ["IS", "AcquisitionStartConditionData"], - "0075" : ["IS", "AcquisitionTerminationConditionData"], - "0080" : ["DS", "RepetitionTime"], - "0081" : ["DS", "EchoTime"], - "0082" : ["DS", "InversionTime"], - "0083" : ["DS", "NumberOfAverages"], - "0084" : ["DS", "ImagingFrequency"], - "0085" : ["SH", "ImagedNucleus"], - "0086" : ["IS", "EchoNumbers"], - "0087" : ["DS", "MagneticFieldStrength"], - "0088" : ["DS", "SpacingBetweenSlices"], - "0089" : ["IS", "NumberOfPhaseEncodingSteps"], - "0090" : ["DS", "DataCollectionDiameter"], - "0091" : ["IS", "EchoTrainLength"], - "0093" : ["DS", "PercentSampling"], - "0094" : ["DS", "PercentPhaseFieldOfView"], - "0095" : ["DS", "PixelBandwidth"], - "1000" : ["LO", "DeviceSerialNumber"], - "1002" : ["UI", "DeviceUID"], - "1003" : ["LO", "DeviceID"], - "1004" : ["LO", "PlateID"], - "1005" : ["LO", "GeneratorID"], - "1006" : ["LO", "GridID"], - "1007" : ["LO", "CassetteID"], - "1008" : ["LO", "GantryID"], - "1010" : ["LO", "SecondaryCaptureDeviceID"], - "1011" : ["LO", "HardcopyCreationDeviceID"], - "1012" : ["DA", "DateOfSecondaryCapture"], - "1014" : ["TM", "TimeOfSecondaryCapture"], - "1016" : ["LO", "SecondaryCaptureDeviceManufacturer"], - "1017" : ["LO", "HardcopyDeviceManufacturer"], - "1018" : ["LO", "SecondaryCaptureDeviceManufacturerModelName"], - "1019" : ["LO", "SecondaryCaptureDeviceSoftwareVersions"], - "101A" : ["LO", "HardcopyDeviceSoftwareVersion"], - "101B" : ["LO", "HardcopyDeviceManufacturerModelName"], - "1020" : ["LO", "SoftwareVersions"], - "1022" : ["SH", "VideoImageFormatAcquired"], - "1023" : ["LO", "DigitalImageFormatAcquired"], - "1030" : ["LO", "ProtocolName"], - "1040" : ["LO", "ContrastBolusRoute"], - "1041" : ["DS", "ContrastBolusVolume"], - "1042" : ["TM", "ContrastBolusStartTime"], - "1043" : ["TM", "ContrastBolusStopTime"], - "1044" : ["DS", "ContrastBolusTotalDose"], - "1045" : ["IS", "SyringeCounts"], - "1046" : ["DS", "ContrastFlowRate"], - "1047" : ["DS", "ContrastFlowDuration"], - "1048" : ["CS", "ContrastBolusIngredient"], - "1049" : ["DS", "ContrastBolusIngredientConcentration"], - "1050" : ["DS", "SpatialResolution"], - "1060" : ["DS", "TriggerTime"], - "1061" : ["LO", "TriggerSourceOrType"], - "1062" : ["IS", "NominalInterval"], - "1063" : ["DS", "FrameTime"], - "1064" : ["LO", "CardiacFramingType"], - "1065" : ["DS", "FrameTimeVector"], - "1066" : ["DS", "FrameDelay"], - "1067" : ["DS", "ImageTriggerDelay"], - "1068" : ["DS", "MultiplexGroupTimeOffset"], - "1069" : ["DS", "TriggerTimeOffset"], - "106A" : ["CS", "SynchronizationTrigger"], - "106C" : ["US", "SynchronizationChannel"], - "106E" : ["UL", "TriggerSamplePosition"], - "1070" : ["LO", "RadiopharmaceuticalRoute"], - "1071" : ["DS", "RadiopharmaceuticalVolume"], - "1072" : ["TM", "RadiopharmaceuticalStartTime"], - "1073" : ["TM", "RadiopharmaceuticalStopTime"], - "1074" : ["DS", "RadionuclideTotalDose"], - "1075" : ["DS", "RadionuclideHalfLife"], - "1076" : ["DS", "RadionuclidePositronFraction"], - "1077" : ["DS", "RadiopharmaceuticalSpecificActivity"], - "1078" : ["DT", "RadiopharmaceuticalStartDateTime"], - "1079" : ["DT", "RadiopharmaceuticalStopDateTime"], - "1080" : ["CS", "BeatRejectionFlag"], - "1081" : ["IS", "LowRRValue"], - "1082" : ["IS", "HighRRValue"], - "1083" : ["IS", "IntervalsAcquired"], - "1084" : ["IS", "IntervalsRejected"], - "1085" : ["LO", "PVCRejection"], - "1086" : ["IS", "SkipBeats"], - "1088" : ["IS", "HeartRate"], - "1090" : ["IS", "CardiacNumberOfImages"], - "1094" : ["IS", "TriggerWindow"], - "1100" : ["DS", "ReconstructionDiameter"], - "1110" : ["DS", "DistanceSourceToDetector"], - "1111" : ["DS", "DistanceSourceToPatient"], - "1114" : ["DS", "EstimatedRadiographicMagnificationFactor"], - "1120" : ["DS", "GantryDetectorTilt"], - "1121" : ["DS", "GantryDetectorSlew"], - "1130" : ["DS", "TableHeight"], - "1131" : ["DS", "TableTraverse"], - "1134" : ["CS", "TableMotion"], - "1135" : ["DS", "TableVerticalIncrement"], - "1136" : ["DS", "TableLateralIncrement"], - "1137" : ["DS", "TableLongitudinalIncrement"], - "1138" : ["DS", "TableAngle"], - "113A" : ["CS", "TableType"], - "1140" : ["CS", "RotationDirection"], - "1141" : ["DS", "AngularPosition"], - "1142" : ["DS", "RadialPosition"], - "1143" : ["DS", "ScanArc"], - "1144" : ["DS", "AngularStep"], - "1145" : ["DS", "CenterOfRotationOffset"], - "1146" : ["DS", "RotationOffset"], - "1147" : ["CS", "FieldOfViewShape"], - "1149" : ["IS", "FieldOfViewDimensions"], - "1150" : ["IS", "ExposureTime"], - "1151" : ["IS", "XRayTubeCurrent"], - "1152" : ["IS", "Exposure"], - "1153" : ["IS", "ExposureInuAs"], - "1154" : ["DS", "AveragePulseWidth"], - "1155" : ["CS", "RadiationSetting"], - "1156" : ["CS", "RectificationType"], - "115A" : ["CS", "RadiationMode"], - "115E" : ["DS", "ImageAndFluoroscopyAreaDoseProduct"], - "1160" : ["SH", "FilterType"], - "1161" : ["LO", "TypeOfFilters"], - "1162" : ["DS", "IntensifierSize"], - "1164" : ["DS", "ImagerPixelSpacing"], - "1166" : ["CS", "Grid"], - "1170" : ["IS", "GeneratorPower"], - "1180" : ["SH", "CollimatorGridName"], - "1181" : ["CS", "CollimatorType"], - "1182" : ["IS", "FocalDistance"], - "1183" : ["DS", "XFocusCenter"], - "1184" : ["DS", "YFocusCenter"], - "1190" : ["DS", "FocalSpots"], - "1191" : ["CS", "AnodeTargetMaterial"], - "11A0" : ["DS", "BodyPartThickness"], - "11A2" : ["DS", "CompressionForce"], - "1200" : ["DA", "DateOfLastCalibration"], - "1201" : ["TM", "TimeOfLastCalibration"], - "1210" : ["SH", "ConvolutionKernel"], - "1240" : ["IS", "UpperLowerPixelValues"], - "1242" : ["IS", "ActualFrameDuration"], - "1243" : ["IS", "CountRate"], - "1244" : ["US", "PreferredPlaybackSequencing"], - "1250" : ["SH", "ReceiveCoilName"], - "1251" : ["SH", "TransmitCoilName"], - "1260" : ["SH", "PlateType"], - "1261" : ["LO", "PhosphorType"], - "1300" : ["DS", "ScanVelocity"], - "1301" : ["CS", "WholeBodyTechnique"], - "1302" : ["IS", "ScanLength"], - "1310" : ["US", "AcquisitionMatrix"], - "1312" : ["CS", "InPlanePhaseEncodingDirection"], - "1314" : ["DS", "FlipAngle"], - "1315" : ["CS", "VariableFlipAngleFlag"], - "1316" : ["DS", "SAR"], - "1318" : ["DS", "dBdt"], - "1400" : ["LO", "AcquisitionDeviceProcessingDescription"], - "1401" : ["LO", "AcquisitionDeviceProcessingCode"], - "1402" : ["CS", "CassetteOrientation"], - "1403" : ["CS", "CassetteSize"], - "1404" : ["US", "ExposuresOnPlate"], - "1405" : ["IS", "RelativeXRayExposure"], - "1411" : ["DS", "ExposureIndex"], - "1412" : ["DS", "TargetExposureIndex"], - "1413" : ["DS", "DeviationIndex"], - "1450" : ["DS", "ColumnAngulation"], - "1460" : ["DS", "TomoLayerHeight"], - "1470" : ["DS", "TomoAngle"], - "1480" : ["DS", "TomoTime"], - "1490" : ["CS", "TomoType"], - "1491" : ["CS", "TomoClass"], - "1495" : ["IS", "NumberOfTomosynthesisSourceImages"], - "1500" : ["CS", "PositionerMotion"], - "1508" : ["CS", "PositionerType"], - "1510" : ["DS", "PositionerPrimaryAngle"], - "1511" : ["DS", "PositionerSecondaryAngle"], - "1520" : ["DS", "PositionerPrimaryAngleIncrement"], - "1521" : ["DS", "PositionerSecondaryAngleIncrement"], - "1530" : ["DS", "DetectorPrimaryAngle"], - "1531" : ["DS", "DetectorSecondaryAngle"], - "1600" : ["CS", "ShutterShape"], - "1602" : ["IS", "ShutterLeftVerticalEdge"], - "1604" : ["IS", "ShutterRightVerticalEdge"], - "1606" : ["IS", "ShutterUpperHorizontalEdge"], - "1608" : ["IS", "ShutterLowerHorizontalEdge"], - "1610" : ["IS", "CenterOfCircularShutter"], - "1612" : ["IS", "RadiusOfCircularShutter"], - "1620" : ["IS", "VerticesOfThePolygonalShutter"], - "1622" : ["US", "ShutterPresentationValue"], - "1623" : ["US", "ShutterOverlayGroup"], - "1624" : ["US", "ShutterPresentationColorCIELabValue"], - "1700" : ["CS", "CollimatorShape"], - "1702" : ["IS", "CollimatorLeftVerticalEdge"], - "1704" : ["IS", "CollimatorRightVerticalEdge"], - "1706" : ["IS", "CollimatorUpperHorizontalEdge"], - "1708" : ["IS", "CollimatorLowerHorizontalEdge"], - "1710" : ["IS", "CenterOfCircularCollimator"], - "1712" : ["IS", "RadiusOfCircularCollimator"], - "1720" : ["IS", "VerticesOfThePolygonalCollimator"], - "1800" : ["CS", "AcquisitionTimeSynchronized"], - "1801" : ["SH", "TimeSource"], - "1802" : ["CS", "TimeDistributionProtocol"], - "1803" : ["LO", "NTPSourceAddress"], - "2001" : ["IS", "PageNumberVector"], - "2002" : ["SH", "FrameLabelVector"], - "2003" : ["DS", "FramePrimaryAngleVector"], - "2004" : ["DS", "FrameSecondaryAngleVector"], - "2005" : ["DS", "SliceLocationVector"], - "2006" : ["SH", "DisplayWindowLabelVector"], - "2010" : ["DS", "NominalScannedPixelSpacing"], - "2020" : ["CS", "DigitizingDeviceTransportDirection"], - "2030" : ["DS", "RotationOfScannedFilm"], - "3100" : ["CS", "IVUSAcquisition"], - "3101" : ["DS", "IVUSPullbackRate"], - "3102" : ["DS", "IVUSGatedRate"], - "3103" : ["IS", "IVUSPullbackStartFrameNumber"], - "3104" : ["IS", "IVUSPullbackStopFrameNumber"], - "3105" : ["IS", "LesionNumber"], - "4000" : ["LT", "AcquisitionComments"], - "5000" : ["SH", "OutputPower"], - "5010" : ["LO", "TransducerData"], - "5012" : ["DS", "FocusDepth"], - "5020" : ["LO", "ProcessingFunction"], - "5021" : ["LO", "PostprocessingFunction"], - "5022" : ["DS", "MechanicalIndex"], - "5024" : ["DS", "BoneThermalIndex"], - "5026" : ["DS", "CranialThermalIndex"], - "5027" : ["DS", "SoftTissueThermalIndex"], - "5028" : ["DS", "SoftTissueFocusThermalIndex"], - "5029" : ["DS", "SoftTissueSurfaceThermalIndex"], - "5030" : ["DS", "DynamicRange"], - "5040" : ["DS", "TotalGain"], - "5050" : ["IS", "DepthOfScanField"], - "5100" : ["CS", "PatientPosition"], - "5101" : ["CS", "ViewPosition"], - "5104" : ["SQ", "ProjectionEponymousNameCodeSequence"], - "5210" : ["DS", "ImageTransformationMatrix"], - "5212" : ["DS", "ImageTranslationVector"], - "6000" : ["DS", "Sensitivity"], - "6011" : ["SQ", "SequenceOfUltrasoundRegions"], - "6012" : ["US", "RegionSpatialFormat"], - "6014" : ["US", "RegionDataType"], - "6016" : ["UL", "RegionFlags"], - "6018" : ["UL", "RegionLocationMinX0"], - "601A" : ["UL", "RegionLocationMinY0"], - "601C" : ["UL", "RegionLocationMaxX1"], - "601E" : ["UL", "RegionLocationMaxY1"], - "6020" : ["SL", "ReferencePixelX0"], - "6022" : ["SL", "ReferencePixelY0"], - "6024" : ["US", "PhysicalUnitsXDirection"], - "6026" : ["US", "PhysicalUnitsYDirection"], - "6028" : ["FD", "ReferencePixelPhysicalValueX"], - "602A" : ["FD", "ReferencePixelPhysicalValueY"], - "602C" : ["FD", "PhysicalDeltaX"], - "602E" : ["FD", "PhysicalDeltaY"], - "6030" : ["UL", "TransducerFrequency"], - "6031" : ["CS", "TransducerType"], - "6032" : ["UL", "PulseRepetitionFrequency"], - "6034" : ["FD", "DopplerCorrectionAngle"], - "6036" : ["FD", "SteeringAngle"], - "6038" : ["UL", "DopplerSampleVolumeXPositionRetired"], - "6039" : ["SL", "DopplerSampleVolumeXPosition"], - "603A" : ["UL", "DopplerSampleVolumeYPositionRetired"], - "603B" : ["SL", "DopplerSampleVolumeYPosition"], - "603C" : ["UL", "TMLinePositionX0Retired"], - "603D" : ["SL", "TMLinePositionX0"], - "603E" : ["UL", "TMLinePositionY0Retired"], - "603F" : ["SL", "TMLinePositionY0"], - "6040" : ["UL", "TMLinePositionX1Retired"], - "6041" : ["SL", "TMLinePositionX1"], - "6042" : ["UL", "TMLinePositionY1Retired"], - "6043" : ["SL", "TMLinePositionY1"], - "6044" : ["US", "PixelComponentOrganization"], - "6046" : ["UL", "PixelComponentMask"], - "6048" : ["UL", "PixelComponentRangeStart"], - "604A" : ["UL", "PixelComponentRangeStop"], - "604C" : ["US", "PixelComponentPhysicalUnits"], - "604E" : ["US", "PixelComponentDataType"], - "6050" : ["UL", "NumberOfTableBreakPoints"], - "6052" : ["UL", "TableOfXBreakPoints"], - "6054" : ["FD", "TableOfYBreakPoints"], - "6056" : ["UL", "NumberOfTableEntries"], - "6058" : ["UL", "TableOfPixelValues"], - "605A" : ["FL", "TableOfParameterValues"], - "6060" : ["FL", "RWaveTimeVector"], - "7000" : ["CS", "DetectorConditionsNominalFlag"], - "7001" : ["DS", "DetectorTemperature"], - "7004" : ["CS", "DetectorType"], - "7005" : ["CS", "DetectorConfiguration"], - "7006" : ["LT", "DetectorDescription"], - "7008" : ["LT", "DetectorMode"], - "700A" : ["SH", "DetectorID"], - "700C" : ["DA", "DateOfLastDetectorCalibration"], - "700E" : ["TM", "TimeOfLastDetectorCalibration"], - "7010" : ["IS", "ExposuresOnDetectorSinceLastCalibration"], - "7011" : ["IS", "ExposuresOnDetectorSinceManufactured"], - "7012" : ["DS", "DetectorTimeSinceLastExposure"], - "7014" : ["DS", "DetectorActiveTime"], - "7016" : ["DS", "DetectorActivationOffsetFromExposure"], - "701A" : ["DS", "DetectorBinning"], - "7020" : ["DS", "DetectorElementPhysicalSize"], - "7022" : ["DS", "DetectorElementSpacing"], - "7024" : ["CS", "DetectorActiveShape"], - "7026" : ["DS", "DetectorActiveDimensions"], - "7028" : ["DS", "DetectorActiveOrigin"], - "702A" : ["LO", "DetectorManufacturerName"], - "702B" : ["LO", "DetectorManufacturerModelName"], - "7030" : ["DS", "FieldOfViewOrigin"], - "7032" : ["DS", "FieldOfViewRotation"], - "7034" : ["CS", "FieldOfViewHorizontalFlip"], - "7036" : ["FL", "PixelDataAreaOriginRelativeToFOV"], - "7038" : ["FL", "PixelDataAreaRotationAngleRelativeToFOV"], - "7040" : ["LT", "GridAbsorbingMaterial"], - "7041" : ["LT", "GridSpacingMaterial"], - "7042" : ["DS", "GridThickness"], - "7044" : ["DS", "GridPitch"], - "7046" : ["IS", "GridAspectRatio"], - "7048" : ["DS", "GridPeriod"], - "704C" : ["DS", "GridFocalDistance"], - "7050" : ["CS", "FilterMaterial"], - "7052" : ["DS", "FilterThicknessMinimum"], - "7054" : ["DS", "FilterThicknessMaximum"], - "7056" : ["FL", "FilterBeamPathLengthMinimum"], - "7058" : ["FL", "FilterBeamPathLengthMaximum"], - "7060" : ["CS", "ExposureControlMode"], - "7062" : ["LT", "ExposureControlModeDescription"], - "7064" : ["CS", "ExposureStatus"], - "7065" : ["DS", "PhototimerSetting"], - "8150" : ["DS", "ExposureTimeInuS"], - "8151" : ["DS", "XRayTubeCurrentInuA"], - "9004" : ["CS", "ContentQualification"], - "9005" : ["SH", "PulseSequenceName"], - "9006" : ["SQ", "MRImagingModifierSequence"], - "9008" : ["CS", "EchoPulseSequence"], - "9009" : ["CS", "InversionRecovery"], - "9010" : ["CS", "FlowCompensation"], - "9011" : ["CS", "MultipleSpinEcho"], - "9012" : ["CS", "MultiPlanarExcitation"], - "9014" : ["CS", "PhaseContrast"], - "9015" : ["CS", "TimeOfFlightContrast"], - "9016" : ["CS", "Spoiling"], - "9017" : ["CS", "SteadyStatePulseSequence"], - "9018" : ["CS", "EchoPlanarPulseSequence"], - "9019" : ["FD", "TagAngleFirstAxis"], - "9020" : ["CS", "MagnetizationTransfer"], - "9021" : ["CS", "T2Preparation"], - "9022" : ["CS", "BloodSignalNulling"], - "9024" : ["CS", "SaturationRecovery"], - "9025" : ["CS", "SpectrallySelectedSuppression"], - "9026" : ["CS", "SpectrallySelectedExcitation"], - "9027" : ["CS", "SpatialPresaturation"], - "9028" : ["CS", "Tagging"], - "9029" : ["CS", "OversamplingPhase"], - "9030" : ["FD", "TagSpacingFirstDimension"], - "9032" : ["CS", "GeometryOfKSpaceTraversal"], - "9033" : ["CS", "SegmentedKSpaceTraversal"], - "9034" : ["CS", "RectilinearPhaseEncodeReordering"], - "9035" : ["FD", "TagThickness"], - "9036" : ["CS", "PartialFourierDirection"], - "9037" : ["CS", "CardiacSynchronizationTechnique"], - "9041" : ["LO", "ReceiveCoilManufacturerName"], - "9042" : ["SQ", "MRReceiveCoilSequence"], - "9043" : ["CS", "ReceiveCoilType"], - "9044" : ["CS", "QuadratureReceiveCoil"], - "9045" : ["SQ", "MultiCoilDefinitionSequence"], - "9046" : ["LO", "MultiCoilConfiguration"], - "9047" : ["SH", "MultiCoilElementName"], - "9048" : ["CS", "MultiCoilElementUsed"], - "9049" : ["SQ", "MRTransmitCoilSequence"], - "9050" : ["LO", "TransmitCoilManufacturerName"], - "9051" : ["CS", "TransmitCoilType"], - "9052" : ["FD", "SpectralWidth"], - "9053" : ["FD", "ChemicalShiftReference"], - "9054" : ["CS", "VolumeLocalizationTechnique"], - "9058" : ["US", "MRAcquisitionFrequencyEncodingSteps"], - "9059" : ["CS", "Decoupling"], - "9060" : ["CS", "DecoupledNucleus"], - "9061" : ["FD", "DecouplingFrequency"], - "9062" : ["CS", "DecouplingMethod"], - "9063" : ["FD", "DecouplingChemicalShiftReference"], - "9064" : ["CS", "KSpaceFiltering"], - "9065" : ["CS", "TimeDomainFiltering"], - "9066" : ["US", "NumberOfZeroFills"], - "9067" : ["CS", "BaselineCorrection"], - "9069" : ["FD", "ParallelReductionFactorInPlane"], - "9070" : ["FD", "CardiacRRIntervalSpecified"], - "9073" : ["FD", "AcquisitionDuration"], - "9074" : ["DT", "FrameAcquisitionDateTime"], - "9075" : ["CS", "DiffusionDirectionality"], - "9076" : ["SQ", "DiffusionGradientDirectionSequence"], - "9077" : ["CS", "ParallelAcquisition"], - "9078" : ["CS", "ParallelAcquisitionTechnique"], - "9079" : ["FD", "InversionTimes"], - "9080" : ["ST", "MetaboliteMapDescription"], - "9081" : ["CS", "PartialFourier"], - "9082" : ["FD", "EffectiveEchoTime"], - "9083" : ["SQ", "MetaboliteMapCodeSequence"], - "9084" : ["SQ", "ChemicalShiftSequence"], - "9085" : ["CS", "CardiacSignalSource"], - "9087" : ["FD", "DiffusionBValue"], - "9089" : ["FD", "DiffusionGradientOrientation"], - "9090" : ["FD", "VelocityEncodingDirection"], - "9091" : ["FD", "VelocityEncodingMinimumValue"], - "9092" : ["SQ", "VelocityEncodingAcquisitionSequence"], - "9093" : ["US", "NumberOfKSpaceTrajectories"], - "9094" : ["CS", "CoverageOfKSpace"], - "9095" : ["UL", "SpectroscopyAcquisitionPhaseRows"], - "9096" : ["FD", "ParallelReductionFactorInPlaneRetired"], - "9098" : ["FD", "TransmitterFrequency"], - "9100" : ["CS", "ResonantNucleus"], - "9101" : ["CS", "FrequencyCorrection"], - "9103" : ["SQ", "MRSpectroscopyFOVGeometrySequence"], - "9104" : ["FD", "SlabThickness"], - "9105" : ["FD", "SlabOrientation"], - "9106" : ["FD", "MidSlabPosition"], - "9107" : ["SQ", "MRSpatialSaturationSequence"], - "9112" : ["SQ", "MRTimingAndRelatedParametersSequence"], - "9114" : ["SQ", "MREchoSequence"], - "9115" : ["SQ", "MRModifierSequence"], - "9117" : ["SQ", "MRDiffusionSequence"], - "9118" : ["SQ", "CardiacSynchronizationSequence"], - "9119" : ["SQ", "MRAveragesSequence"], - "9125" : ["SQ", "MRFOVGeometrySequence"], - "9126" : ["SQ", "VolumeLocalizationSequence"], - "9127" : ["UL", "SpectroscopyAcquisitionDataColumns"], - "9147" : ["CS", "DiffusionAnisotropyType"], - "9151" : ["DT", "FrameReferenceDateTime"], - "9152" : ["SQ", "MRMetaboliteMapSequence"], - "9155" : ["FD", "ParallelReductionFactorOutOfPlane"], - "9159" : ["UL", "SpectroscopyAcquisitionOutOfPlanePhaseSteps"], - "9166" : ["CS", "BulkMotionStatus"], - "9168" : ["FD", "ParallelReductionFactorSecondInPlane"], - "9169" : ["CS", "CardiacBeatRejectionTechnique"], - "9170" : ["CS", "RespiratoryMotionCompensationTechnique"], - "9171" : ["CS", "RespiratorySignalSource"], - "9172" : ["CS", "BulkMotionCompensationTechnique"], - "9173" : ["CS", "BulkMotionSignalSource"], - "9174" : ["CS", "ApplicableSafetyStandardAgency"], - "9175" : ["LO", "ApplicableSafetyStandardDescription"], - "9176" : ["SQ", "OperatingModeSequence"], - "9177" : ["CS", "OperatingModeType"], - "9178" : ["CS", "OperatingMode"], - "9179" : ["CS", "SpecificAbsorptionRateDefinition"], - "9180" : ["CS", "GradientOutputType"], - "9181" : ["FD", "SpecificAbsorptionRateValue"], - "9182" : ["FD", "GradientOutput"], - "9183" : ["CS", "FlowCompensationDirection"], - "9184" : ["FD", "TaggingDelay"], - "9185" : ["ST", "RespiratoryMotionCompensationTechniqueDescription"], - "9186" : ["SH", "RespiratorySignalSourceID"], - "9195" : ["FD", "ChemicalShiftMinimumIntegrationLimitInHz"], - "9196" : ["FD", "ChemicalShiftMaximumIntegrationLimitInHz"], - "9197" : ["SQ", "MRVelocityEncodingSequence"], - "9198" : ["CS", "FirstOrderPhaseCorrection"], - "9199" : ["CS", "WaterReferencedPhaseCorrection"], - "9200" : ["CS", "MRSpectroscopyAcquisitionType"], - "9214" : ["CS", "RespiratoryCyclePosition"], - "9217" : ["FD", "VelocityEncodingMaximumValue"], - "9218" : ["FD", "TagSpacingSecondDimension"], - "9219" : ["SS", "TagAngleSecondAxis"], - "9220" : ["FD", "FrameAcquisitionDuration"], - "9226" : ["SQ", "MRImageFrameTypeSequence"], - "9227" : ["SQ", "MRSpectroscopyFrameTypeSequence"], - "9231" : ["US", "MRAcquisitionPhaseEncodingStepsInPlane"], - "9232" : ["US", "MRAcquisitionPhaseEncodingStepsOutOfPlane"], - "9234" : ["UL", "SpectroscopyAcquisitionPhaseColumns"], - "9236" : ["CS", "CardiacCyclePosition"], - "9239" : ["SQ", "SpecificAbsorptionRateSequence"], - "9240" : ["US", "RFEchoTrainLength"], - "9241" : ["US", "GradientEchoTrainLength"], - "9250" : ["CS", "ArterialSpinLabelingContrast"], - "9251" : ["SQ", "MRArterialSpinLabelingSequence"], - "9252" : ["LO", "ASLTechniqueDescription"], - "9253" : ["US", "ASLSlabNumber"], - "9254" : ["FD ", "ASLSlabThickness"], - "9255" : ["FD ", "ASLSlabOrientation"], - "9256" : ["FD ", "ASLMidSlabPosition"], - "9257" : ["CS", "ASLContext"], - "9258" : ["UL", "ASLPulseTrainDuration"], - "9259" : ["CS", "ASLCrusherFlag"], - "925A" : ["FD", "ASLCrusherFlow"], - "925B" : ["LO", "ASLCrusherDescription"], - "925C" : ["CS", "ASLBolusCutoffFlag"], - "925D" : ["SQ", "ASLBolusCutoffTimingSequence"], - "925E" : ["LO", "ASLBolusCutoffTechnique"], - "925F" : ["UL", "ASLBolusCutoffDelayTime"], - "9260" : ["SQ", "ASLSlabSequence"], - "9295" : ["FD", "ChemicalShiftMinimumIntegrationLimitInppm"], - "9296" : ["FD", "ChemicalShiftMaximumIntegrationLimitInppm"], - "9301" : ["SQ", "CTAcquisitionTypeSequence"], - "9302" : ["CS", "AcquisitionType"], - "9303" : ["FD", "TubeAngle"], - "9304" : ["SQ", "CTAcquisitionDetailsSequence"], - "9305" : ["FD", "RevolutionTime"], - "9306" : ["FD", "SingleCollimationWidth"], - "9307" : ["FD", "TotalCollimationWidth"], - "9308" : ["SQ", "CTTableDynamicsSequence"], - "9309" : ["FD", "TableSpeed"], - "9310" : ["FD", "TableFeedPerRotation"], - "9311" : ["FD", "SpiralPitchFactor"], - "9312" : ["SQ", "CTGeometrySequence"], - "9313" : ["FD", "DataCollectionCenterPatient"], - "9314" : ["SQ", "CTReconstructionSequence"], - "9315" : ["CS", "ReconstructionAlgorithm"], - "9316" : ["CS", "ConvolutionKernelGroup"], - "9317" : ["FD", "ReconstructionFieldOfView"], - "9318" : ["FD", "ReconstructionTargetCenterPatient"], - "9319" : ["FD", "ReconstructionAngle"], - "9320" : ["SH", "ImageFilter"], - "9321" : ["SQ", "CTExposureSequence"], - "9322" : ["FD", "ReconstructionPixelSpacing"], - "9323" : ["CS", "ExposureModulationType"], - "9324" : ["FD", "EstimatedDoseSaving"], - "9325" : ["SQ", "CTXRayDetailsSequence"], - "9326" : ["SQ", "CTPositionSequence"], - "9327" : ["FD", "TablePosition"], - "9328" : ["FD", "ExposureTimeInms"], - "9329" : ["SQ", "CTImageFrameTypeSequence"], - "9330" : ["FD", "XRayTubeCurrentInmA"], - "9332" : ["FD", "ExposureInmAs"], - "9333" : ["CS", "ConstantVolumeFlag"], - "9334" : ["CS", "FluoroscopyFlag"], - "9335" : ["FD", "DistanceSourceToDataCollectionCenter"], - "9337" : ["US", "ContrastBolusAgentNumber"], - "9338" : ["SQ", "ContrastBolusIngredientCodeSequence"], - "9340" : ["SQ", "ContrastAdministrationProfileSequence"], - "9341" : ["SQ", "ContrastBolusUsageSequence"], - "9342" : ["CS", "ContrastBolusAgentAdministered"], - "9343" : ["CS", "ContrastBolusAgentDetected"], - "9344" : ["CS", "ContrastBolusAgentPhase"], - "9345" : ["FD", "CTDIvol"], - "9346" : ["SQ", "CTDIPhantomTypeCodeSequence"], - "9351" : ["FL", "CalciumScoringMassFactorPatient"], - "9352" : ["FL", "CalciumScoringMassFactorDevice"], - "9353" : ["FL", "EnergyWeightingFactor"], - "9360" : ["SQ", "CTAdditionalXRaySourceSequence"], - "9401" : ["SQ", "ProjectionPixelCalibrationSequence"], - "9402" : ["FL", "DistanceSourceToIsocenter"], - "9403" : ["FL", "DistanceObjectToTableTop"], - "9404" : ["FL", "ObjectPixelSpacingInCenterOfBeam"], - "9405" : ["SQ", "PositionerPositionSequence"], - "9406" : ["SQ", "TablePositionSequence"], - "9407" : ["SQ", "CollimatorShapeSequence"], - "9410" : ["CS", "PlanesInAcquisition"], - "9412" : ["SQ", "XAXRFFrameCharacteristicsSequence"], - "9417" : ["SQ", "FrameAcquisitionSequence"], - "9420" : ["CS", "XRayReceptorType"], - "9423" : ["LO", "AcquisitionProtocolName"], - "9424" : ["LT", "AcquisitionProtocolDescription"], - "9425" : ["CS", "ContrastBolusIngredientOpaque"], - "9426" : ["FL", "DistanceReceptorPlaneToDetectorHousing"], - "9427" : ["CS", "IntensifierActiveShape"], - "9428" : ["FL", "IntensifierActiveDimensions"], - "9429" : ["FL", "PhysicalDetectorSize"], - "9430" : ["FL", "PositionOfIsocenterProjection"], - "9432" : ["SQ", "FieldOfViewSequence"], - "9433" : ["LO", "FieldOfViewDescription"], - "9434" : ["SQ", "ExposureControlSensingRegionsSequence"], - "9435" : ["CS", "ExposureControlSensingRegionShape"], - "9436" : ["SS", "ExposureControlSensingRegionLeftVerticalEdge"], - "9437" : ["SS", "ExposureControlSensingRegionRightVerticalEdge"], - "9438" : ["SS", "ExposureControlSensingRegionUpperHorizontalEdge"], - "9439" : ["SS", "ExposureControlSensingRegionLowerHorizontalEdge"], - "9440" : ["SS", "CenterOfCircularExposureControlSensingRegion"], - "9441" : ["US", "RadiusOfCircularExposureControlSensingRegion"], - "9442" : ["SS", "VerticesOfThePolygonalExposureControlSensingRegion"], - "9447" : ["FL", "ColumnAngulationPatient"], - "9449" : ["FL", "BeamAngle"], - "9451" : ["SQ", "FrameDetectorParametersSequence"], - "9452" : ["FL", "CalculatedAnatomyThickness"], - "9455" : ["SQ", "CalibrationSequence"], - "9456" : ["SQ", "ObjectThicknessSequence"], - "9457" : ["CS", "PlaneIdentification"], - "9461" : ["FL", "FieldOfViewDimensionsInFloat"], - "9462" : ["SQ", "IsocenterReferenceSystemSequence"], - "9463" : ["FL", "PositionerIsocenterPrimaryAngle"], - "9464" : ["FL", "PositionerIsocenterSecondaryAngle"], - "9465" : ["FL", "PositionerIsocenterDetectorRotationAngle"], - "9466" : ["FL", "TableXPositionToIsocenter"], - "9467" : ["FL", "TableYPositionToIsocenter"], - "9468" : ["FL", "TableZPositionToIsocenter"], - "9469" : ["FL", "TableHorizontalRotationAngle"], - "9470" : ["FL", "TableHeadTiltAngle"], - "9471" : ["FL", "TableCradleTiltAngle"], - "9472" : ["SQ", "FrameDisplayShutterSequence"], - "9473" : ["FL", "AcquiredImageAreaDoseProduct"], - "9474" : ["CS", "CArmPositionerTabletopRelationship"], - "9476" : ["SQ", "XRayGeometrySequence"], - "9477" : ["SQ", "IrradiationEventIdentificationSequence"], - "9504" : ["SQ", "XRay3DFrameTypeSequence"], - "9506" : ["SQ", "ContributingSourcesSequence"], - "9507" : ["SQ", "XRay3DAcquisitionSequence"], - "9508" : ["FL", "PrimaryPositionerScanArc"], - "9509" : ["FL", "SecondaryPositionerScanArc"], - "9510" : ["FL ", "PrimaryPositionerScanStartAngle"], - "9511" : ["FL", "SecondaryPositionerScanStartAngle"], - "9514" : ["FL", "PrimaryPositionerIncrement"], - "9515" : ["FL", "SecondaryPositionerIncrement"], - "9516" : ["DT", "StartAcquisitionDateTime"], - "9517" : ["DT", "EndAcquisitionDateTime"], - "9524" : ["LO", "ApplicationName"], - "9525" : ["LO", "ApplicationVersion"], - "9526" : ["LO", "ApplicationManufacturer"], - "9527" : ["CS", "AlgorithmType"], - "9528" : ["LO", "AlgorithmDescription"], - "9530" : ["SQ", "XRay3DReconstructionSequence"], - "9531" : ["LO", "ReconstructionDescription"], - "9538" : ["SQ", "PerProjectionAcquisitionSequence"], - "9601" : ["SQ", "DiffusionBMatrixSequence"], - "9602" : ["FD", "DiffusionBValueXX"], - "9603" : ["FD", "DiffusionBValueXY"], - "9604" : ["FD", "DiffusionBValueXZ"], - "9605" : ["FD", "DiffusionBValueYY"], - "9606" : ["FD", "DiffusionBValueYZ"], - "9607" : ["FD", "DiffusionBValueZZ"], - "9701" : ["DT", "DecayCorrectionDateTime"], - "9715" : ["FD", "StartDensityThreshold"], - "9716" : ["FD", "StartRelativeDensityDifferenceThreshold"], - "9717" : ["FD", "StartCardiacTriggerCountThreshold"], - "9718" : ["FD", "StartRespiratoryTriggerCountThreshold"], - "9719" : ["FD", "TerminationCountsThreshold"], - "9720" : ["FD", "TerminationDensityThreshold"], - "9721" : ["FD", "TerminationRelativeDensityThreshold"], - "9722" : ["FD", "TerminationTimeThreshold"], - "9723" : ["FD", "TerminationCardiacTriggerCountThreshold"], - "9724" : ["FD", "TerminationRespiratoryTriggerCountThreshold"], - "9725" : ["CS", "DetectorGeometry"], - "9726" : ["FD", "TransverseDetectorSeparation"], - "9727" : ["FD", "AxialDetectorDimension"], - "9729" : ["US", "RadiopharmaceuticalAgentNumber"], - "9732" : ["SQ", "PETFrameAcquisitionSequence"], - "9733" : ["SQ", "PETDetectorMotionDetailsSequence"], - "9734" : ["SQ", "PETTableDynamicsSequence"], - "9735" : ["SQ", "PETPositionSequence"], - "9736" : ["SQ", "PETFrameCorrectionFactorsSequence"], - "9737" : ["SQ", "RadiopharmaceuticalUsageSequence"], - "9738" : ["CS", "AttenuationCorrectionSource"], - "9739" : ["US", "NumberOfIterations"], - "9740" : ["US", "NumberOfSubsets"], - "9749" : ["SQ", "PETReconstructionSequence"], - "9751" : ["SQ", "PETFrameTypeSequence"], - "9755" : ["CS", "TimeOfFlightInformationUsed"], - "9756" : ["CS", "ReconstructionType"], - "9758" : ["CS", "DecayCorrected"], - "9759" : ["CS", "AttenuationCorrected"], - "9760" : ["CS", "ScatterCorrected"], - "9761" : ["CS", "DeadTimeCorrected"], - "9762" : ["CS", "GantryMotionCorrected"], - "9763" : ["CS", "PatientMotionCorrected"], - "9764" : ["CS", "CountLossNormalizationCorrected"], - "9765" : ["CS", "RandomsCorrected"], - "9766" : ["CS", "NonUniformRadialSamplingCorrected"], - "9767" : ["CS", "SensitivityCalibrated"], - "9768" : ["CS", "DetectorNormalizationCorrection"], - "9769" : ["CS", "IterativeReconstructionMethod"], - "9770" : ["CS", "AttenuationCorrectionTemporalRelationship"], - "9771" : ["SQ", "PatientPhysiologicalStateSequence"], - "9772" : ["SQ", "PatientPhysiologicalStateCodeSequence"], - "9801" : ["FD", "DepthsOfFocus"], - "9803" : ["SQ", "ExcludedIntervalsSequence"], - "9804" : ["DT", "ExclusionStartDatetime"], - "9805" : ["FD", "ExclusionDuration"], - "9806" : ["SQ", "USImageDescriptionSequence"], - "9807" : ["SQ", "ImageDataTypeSequence"], - "9808" : ["CS", "DataType"], - "9809" : ["SQ", "TransducerScanPatternCodeSequence"], - "980B" : ["CS", "AliasedDataType"], - "980C" : ["CS", "PositionMeasuringDeviceUsed"], - "980D" : ["SQ", "TransducerGeometryCodeSequence"], - "980E" : ["SQ", "TransducerBeamSteeringCodeSequence"], - "980F" : ["SQ", "TransducerApplicationCodeSequence"], - "A001" : ["SQ", "ContributingEquipmentSequence"], - "A002" : ["DT", "ContributionDateTime"], - "A003" : ["ST", "ContributionDescription"] - }, - "0020" : { - "000D" : ["UI", "StudyInstanceUID"], - "000E" : ["UI", "SeriesInstanceUID"], - "0010" : ["SH", "StudyID"], - "0011" : ["IS", "SeriesNumber"], - "0012" : ["IS", "AcquisitionNumber"], - "0013" : ["IS", "InstanceNumber"], - "0014" : ["IS", "IsotopeNumber"], - "0015" : ["IS", "PhaseNumber"], - "0016" : ["IS", "IntervalNumber"], - "0017" : ["IS", "TimeSlotNumber"], - "0018" : ["IS", "AngleNumber"], - "0019" : ["IS", "ItemNumber"], - "0020" : ["CS", "PatientOrientation"], - "0022" : ["IS", "OverlayNumber"], - "0024" : ["IS", "CurveNumber"], - "0026" : ["IS", "LUTNumber"], - "0030" : ["DS", "ImagePosition"], - "0032" : ["DS", "ImagePositionPatient"], - "0035" : ["DS", "ImageOrientation"], - "0037" : ["DS", "ImageOrientationPatient"], - "0050" : ["DS", "Location"], - "0052" : ["UI", "FrameOfReferenceUID"], - "0060" : ["CS", "Laterality"], - "0062" : ["CS", "ImageLaterality"], - "0070" : ["LO", "ImageGeometryType"], - "0080" : ["CS", "MaskingImage"], - "00AA" : ["IS", "ReportNumber"], - "0100" : ["IS", "TemporalPositionIdentifier"], - "0105" : ["IS", "NumberOfTemporalPositions"], - "0110" : ["DS", "TemporalResolution"], - "0200" : ["UI", "SynchronizationFrameOfReferenceUID"], - "0242" : ["UI", "SOPInstanceUIDOfConcatenationSource"], - "1000" : ["IS", "SeriesInStudy"], - "1001" : ["IS", "AcquisitionsInSeries"], - "1002" : ["IS", "ImagesInAcquisition"], - "1003" : ["IS", "ImagesInSeries"], - "1004" : ["IS", "AcquisitionsInStudy"], - "1005" : ["IS", "ImagesInStudy"], - "1020" : ["LO", "Reference"], - "1040" : ["LO", "PositionReferenceIndicator"], - "1041" : ["DS", "SliceLocation"], - "1070" : ["IS", "OtherStudyNumbers"], - "1200" : ["IS", "NumberOfPatientRelatedStudies"], - "1202" : ["IS", "NumberOfPatientRelatedSeries"], - "1204" : ["IS", "NumberOfPatientRelatedInstances"], - "1206" : ["IS", "NumberOfStudyRelatedSeries"], - "1208" : ["IS", "NumberOfStudyRelatedInstances"], - "1209" : ["IS", "NumberOfSeriesRelatedInstances"], - "3401" : ["CS", "ModifyingDeviceID"], - "3402" : ["CS", "ModifiedImageID"], - "3403" : ["DA", "ModifiedImageDate"], - "3404" : ["LO", "ModifyingDeviceManufacturer"], - "3405" : ["TM", "ModifiedImageTime"], - "3406" : ["LO", "ModifiedImageDescription"], - "4000" : ["LT", "ImageComments"], - "5000" : ["AT", "OriginalImageIdentification"], - "5002" : ["LO", "OriginalImageIdentificationNomenclature"], - "9056" : ["SH", "StackID"], - "9057" : ["UL", "InStackPositionNumber"], - "9071" : ["SQ", "FrameAnatomySequence"], - "9072" : ["CS", "FrameLaterality"], - "9111" : ["SQ", "FrameContentSequence"], - "9113" : ["SQ", "PlanePositionSequence"], - "9116" : ["SQ", "PlaneOrientationSequence"], - "9128" : ["UL", "TemporalPositionIndex"], - "9153" : ["FD", "NominalCardiacTriggerDelayTime"], - "9154" : ["FL", "NominalCardiacTriggerTimePriorToRPeak"], - "9155" : ["FL", "ActualCardiacTriggerTimePriorToRPeak"], - "9156" : ["US", "FrameAcquisitionNumber"], - "9157" : ["UL", "DimensionIndexValues"], - "9158" : ["LT", "FrameComments"], - "9161" : ["UI", "ConcatenationUID"], - "9162" : ["US", "InConcatenationNumber"], - "9163" : ["US", "InConcatenationTotalNumber"], - "9164" : ["UI", "DimensionOrganizationUID"], - "9165" : ["AT", "DimensionIndexPointer"], - "9167" : ["AT", "FunctionalGroupPointer"], - "9213" : ["LO", "DimensionIndexPrivateCreator"], - "9221" : ["SQ", "DimensionOrganizationSequence"], - "9222" : ["SQ", "DimensionIndexSequence"], - "9228" : ["UL", "ConcatenationFrameOffsetNumber"], - "9238" : ["LO", "FunctionalGroupPrivateCreator"], - "9241" : ["FL", "NominalPercentageOfCardiacPhase"], - "9245" : ["FL", "NominalPercentageOfRespiratoryPhase"], - "9246" : ["FL", "StartingRespiratoryAmplitude"], - "9247" : ["CS", "StartingRespiratoryPhase"], - "9248" : ["FL", "EndingRespiratoryAmplitude"], - "9249" : ["CS", "EndingRespiratoryPhase"], - "9250" : ["CS", "RespiratoryTriggerType"], - "9251" : ["FD", "RRIntervalTimeNominal"], - "9252" : ["FD", "ActualCardiacTriggerDelayTime"], - "9253" : ["SQ", "RespiratorySynchronizationSequence"], - "9254" : ["FD", "RespiratoryIntervalTime"], - "9255" : ["FD", "NominalRespiratoryTriggerDelayTime"], - "9256" : ["FD", "RespiratoryTriggerDelayThreshold"], - "9257" : ["FD", "ActualRespiratoryTriggerDelayTime"], - "9301" : ["FD", "ImagePositionVolume"], - "9302" : ["FD", "ImageOrientationVolume"], - "9307" : ["CS", "UltrasoundAcquisitionGeometry"], - "9308" : ["FD", "ApexPosition"], - "9309" : ["FD", "VolumeToTransducerMappingMatrix"], - "930A" : ["FD", "VolumeToTableMappingMatrix"], - "930C" : ["CS", "PatientFrameOfReferenceSource"], - "930D" : ["FD", "TemporalPositionTimeOffset"], - "930E" : ["SQ", "PlanePositionVolumeSequence"], - "930F" : ["SQ", "PlaneOrientationVolumeSequence"], - "9310" : ["SQ", "TemporalPositionSequence"], - "9311" : ["CS", "DimensionOrganizationType"], - "9312" : ["UI", "VolumeFrameOfReferenceUID"], - "9313" : ["UI", "TableFrameOfReferenceUID"], - "9421" : ["LO", "DimensionDescriptionLabel"], - "9450" : ["SQ", "PatientOrientationInFrameSequence"], - "9453" : ["LO", "FrameLabel"], - "9518" : ["US", "AcquisitionIndex"], - "9529" : ["SQ", "ContributingSOPInstancesReferenceSequence"], - "9536" : ["US", "ReconstructionIndex"] - }, - "0022" : { - "0001" : ["US", "LightPathFilterPassThroughWavelength"], - "0002" : ["US", "LightPathFilterPassBand"], - "0003" : ["US", "ImagePathFilterPassThroughWavelength"], - "0004" : ["US", "ImagePathFilterPassBand"], - "0005" : ["CS", "PatientEyeMovementCommanded"], - "0006" : ["SQ", "PatientEyeMovementCommandCodeSequence"], - "0007" : ["FL", "SphericalLensPower"], - "0008" : ["FL", "CylinderLensPower"], - "0009" : ["FL", "CylinderAxis"], - "000A" : ["FL", "EmmetropicMagnification"], - "000B" : ["FL", "IntraOcularPressure"], - "000C" : ["FL", "HorizontalFieldOfView"], - "000D" : ["CS", "PupilDilated"], - "000E" : ["FL", "DegreeOfDilation"], - "0010" : ["FL", "StereoBaselineAngle"], - "0011" : ["FL", "StereoBaselineDisplacement"], - "0012" : ["FL", "StereoHorizontalPixelOffset"], - "0013" : ["FL", "StereoVerticalPixelOffset"], - "0014" : ["FL", "StereoRotation"], - "0015" : ["SQ", "AcquisitionDeviceTypeCodeSequence"], - "0016" : ["SQ", "IlluminationTypeCodeSequence"], - "0017" : ["SQ", "LightPathFilterTypeStackCodeSequence"], - "0018" : ["SQ", "ImagePathFilterTypeStackCodeSequence"], - "0019" : ["SQ", "LensesCodeSequence"], - "001A" : ["SQ", "ChannelDescriptionCodeSequence"], - "001B" : ["SQ", "RefractiveStateSequence"], - "001C" : ["SQ", "MydriaticAgentCodeSequence"], - "001D" : ["SQ", "RelativeImagePositionCodeSequence"], - "001E" : ["FL", "CameraAngleOfView"], - "0020" : ["SQ", "StereoPairsSequence"], - "0021" : ["SQ", "LeftImageSequence"], - "0022" : ["SQ", "RightImageSequence"], - "0030" : ["FL", "AxialLengthOfTheEye"], - "0031" : ["SQ", "OphthalmicFrameLocationSequence"], - "0032" : ["FL", "ReferenceCoordinates"], - "0035" : ["FL", "DepthSpatialResolution"], - "0036" : ["FL", "MaximumDepthDistortion"], - "0037" : ["FL", "AlongScanSpatialResolution"], - "0038" : ["FL", "MaximumAlongScanDistortion"], - "0039" : ["CS", "OphthalmicImageOrientation"], - "0041" : ["FL", "DepthOfTransverseImage"], - "0042" : ["SQ", "MydriaticAgentConcentrationUnitsSequence"], - "0048" : ["FL", "AcrossScanSpatialResolution"], - "0049" : ["FL", "MaximumAcrossScanDistortion"], - "004E" : ["DS", "MydriaticAgentConcentration"], - "0055" : ["FL", "IlluminationWaveLength"], - "0056" : ["FL", "IlluminationPower"], - "0057" : ["FL", "IlluminationBandwidth"], - "0058" : ["SQ", "MydriaticAgentSequence"], - "1007" : ["SQ", "OphthalmicAxialMeasurementsRightEyeSequence"], - "1008" : ["SQ", "OphthalmicAxialMeasurementsLeftEyeSequence"], - "1010" : ["CS", "OphthalmicAxialLengthMeasurementsType"], - "1019" : ["FL", "OphthalmicAxialLength"], - "1024" : ["SQ", "LensStatusCodeSequence"], - "1025" : ["SQ", "VitreousStatusCodeSequence"], - "1028" : ["SQ", "IOLFormulaCodeSequence"], - "1029" : ["LO", "IOLFormulaDetail"], - "1033" : ["FL", "KeratometerIndex"], - "1035" : ["SQ", "SourceOfOphthalmicAxialLengthCodeSequence"], - "1037" : ["FL", "TargetRefraction"], - "1039" : ["CS", "RefractiveProcedureOccurred"], - "1040" : ["SQ", "RefractiveSurgeryTypeCodeSequence"], - "1044" : ["SQ", "OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"], - "1050" : ["SQ", "OphthalmicAxialLengthMeasurementsSequence"], - "1053" : ["FL", "IOLPower"], - "1054" : ["FL", "PredictedRefractiveError"], - "1059" : ["FL", "OphthalmicAxialLengthVelocity"], - "1065" : ["LO", "LensStatusDescription"], - "1066" : ["LO", "VitreousStatusDescription"], - "1090" : ["SQ", "IOLPowerSequence"], - "1092" : ["SQ", "LensConstantSequence"], - "1093" : ["LO", "IOLManufacturer"], - "1094" : ["LO", "LensConstantDescription"], - "1096" : ["SQ", "KeratometryMeasurementTypeCodeSequence"], - "1100" : ["SQ", "ReferencedOphthalmicAxialMeasurementsSequence"], - "1101" : ["SQ", "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"], - "1103" : ["SQ", "RefractiveErrorBeforeRefractiveSurgeryCodeSequence"], - "1121" : ["FL", "IOLPowerForExactEmmetropia"], - "1122" : ["FL", "IOLPowerForExactTargetRefraction"], - "1125" : ["SQ", "AnteriorChamberDepthDefinitionCodeSequence"], - "1130" : ["FL", "LensThickness"], - "1131" : ["FL", "AnteriorChamberDepth"], - "1132" : ["SQ", "SourceOfLensThicknessDataCodeSequence"], - "1133" : ["SQ", "SourceOfAnteriorChamberDepthDataCodeSequence"], - "1135" : ["SQ", "SourceOfRefractiveErrorDataCodeSequence"], - "1140" : ["CS", "OphthalmicAxialLengthMeasurementModified"], - "1150" : ["SQ", "OphthalmicAxialLengthDataSourceCodeSequence"], - "1153" : ["SQ", "OphthalmicAxialLengthAcquisitionMethodCodeSequence"], - "1155" : ["FL", "SignalToNoiseRatio"], - "1159" : ["LO", "OphthalmicAxialLengthDataSourceDescription"], - "1210" : ["SQ", "OphthalmicAxialLengthMeasurementsTotalLengthSequence"], - "1211" : ["SQ", "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"], - "1212" : ["SQ", "OphthalmicAxialLengthMeasurementsLengthSummationSequence"], - "1220" : ["SQ", "UltrasoundOphthalmicAxialLengthMeasurementsSequence"], - "1225" : ["SQ", "OpticalOphthalmicAxialLengthMeasurementsSequence"], - "1230" : ["SQ", "UltrasoundSelectedOphthalmicAxialLengthSequence"], - "1250" : ["SQ", "OphthalmicAxialLengthSelectionMethodCodeSequence"], - "1255" : ["SQ", "OpticalSelectedOphthalmicAxialLengthSequence"], - "1257" : ["SQ", "SelectedSegmentalOphthalmicAxialLengthSequence"], - "1260" : ["SQ", "SelectedTotalOphthalmicAxialLengthSequence"], - "1262" : ["SQ", "OphthalmicAxialLengthQualityMetricSequence"], - "1273" : ["LO", "OphthalmicAxialLengthQualityMetricTypeDescription"], - "1300" : ["SQ", "IntraocularLensCalculationsRightEyeSequence"], - "1310" : ["SQ", "IntraocularLensCalculationsLeftEyeSequence"], - "1330" : ["SQ", "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"] - }, - "0024" : { - "0010" : ["FL", "VisualFieldHorizontalExtent"], - "0011" : ["FL", "VisualFieldVerticalExtent"], - "0012" : ["CS", "VisualFieldShape"], - "0016" : ["SQ", "ScreeningTestModeCodeSequence"], - "0018" : ["FL", "MaximumStimulusLuminance"], - "0020" : ["FL", "BackgroundLuminance"], - "0021" : ["SQ", "StimulusColorCodeSequence"], - "0024" : ["SQ", "BackgroundIlluminationColorCodeSequence"], - "0025" : ["FL", "StimulusArea"], - "0028" : ["FL", "StimulusPresentationTime"], - "0032" : ["SQ", "FixationSequence"], - "0033" : ["SQ", "FixationMonitoringCodeSequence"], - "0034" : ["SQ", "VisualFieldCatchTrialSequence"], - "0035" : ["US", "FixationCheckedQuantity"], - "0036" : ["US", "PatientNotProperlyFixatedQuantity"], - "0037" : ["CS", "PresentedVisualStimuliDataFlag"], - "0038" : ["US", "NumberOfVisualStimuli"], - "0039" : ["CS", "ExcessiveFixationLossesDataFlag"], - "0040" : ["CS", "ExcessiveFixationLosses"], - "0042" : ["US", "StimuliRetestingQuantity"], - "0044" : ["LT", "CommentsOnPatientPerformanceOfVisualField"], - "0045" : ["CS", "FalseNegativesEstimateFlag"], - "0046" : ["FL", "FalseNegativesEstimate"], - "0048" : ["US", "NegativeCatchTrialsQuantity"], - "0050" : ["US", "FalseNegativesQuantity"], - "0051" : ["CS", "ExcessiveFalseNegativesDataFlag"], - "0052" : ["CS", "ExcessiveFalseNegatives"], - "0053" : ["CS", "FalsePositivesEstimateFlag"], - "0054" : ["FL", "FalsePositivesEstimate"], - "0055" : ["CS", "CatchTrialsDataFlag"], - "0056" : ["US", "PositiveCatchTrialsQuantity"], - "0057" : ["CS", "TestPointNormalsDataFlag"], - "0058" : ["SQ", "TestPointNormalsSequence"], - "0059" : ["CS", "GlobalDeviationProbabilityNormalsFlag"], - "0060" : ["US", "FalsePositivesQuantity"], - "0061" : ["CS", "ExcessiveFalsePositivesDataFlag"], - "0062" : ["CS", "ExcessiveFalsePositives"], - "0063" : ["CS", "VisualFieldTestNormalsFlag"], - "0064" : ["SQ", "ResultsNormalsSequence"], - "0065" : ["SQ", "AgeCorrectedSensitivityDeviationAlgorithmSequence"], - "0066" : ["FL", "GlobalDeviationFromNormal"], - "0067" : ["SQ", "GeneralizedDefectSensitivityDeviationAlgorithmSequence"], - "0068" : ["FL", "LocalizedDeviationfromNormal"], - "0069" : ["LO", "PatientReliabilityIndicator"], - "0070" : ["FL", "VisualFieldMeanSensitivity"], - "0071" : ["FL", "GlobalDeviationProbability"], - "0072" : ["CS", "LocalDeviationProbabilityNormalsFlag"], - "0073" : ["FL", "LocalizedDeviationProbability"], - "0074" : ["CS", "ShortTermFluctuationCalculated"], - "0075" : ["FL", "ShortTermFluctuation"], - "0076" : ["CS", "ShortTermFluctuationProbabilityCalculated"], - "0077" : ["FL", "ShortTermFluctuationProbability"], - "0078" : ["CS", "CorrectedLocalizedDeviationFromNormalCalculated"], - "0079" : ["FL", "CorrectedLocalizedDeviationFromNormal"], - "0080" : ["CS", "CorrectedLocalizedDeviationFromNormalProbabilityCalculated"], - "0081" : ["FL", "CorrectedLocalizedDeviationFromNormalProbability"], - "0083" : ["SQ", "GlobalDeviationProbabilitySequence"], - "0085" : ["SQ", "LocalizedDeviationProbabilitySequence"], - "0086" : ["CS", "FovealSensitivityMeasured"], - "0087" : ["FL", "FovealSensitivity"], - "0088" : ["FL", "VisualFieldTestDuration"], - "0089" : ["SQ", "VisualFieldTestPointSequence"], - "0090" : ["FL", "VisualFieldTestPointXCoordinate"], - "0091" : ["FL", "VisualFieldTestPointYCoordinate"], - "0092" : ["FL", "AgeCorrectedSensitivityDeviationValue"], - "0093" : ["CS", "StimulusResults"], - "0094" : ["FL", "SensitivityValue"], - "0095" : ["CS", "RetestStimulusSeen"], - "0096" : ["FL", "RetestSensitivityValue"], - "0097" : ["SQ", "VisualFieldTestPointNormalsSequence"], - "0098" : ["FL", "QuantifiedDefect"], - "0100" : ["FL", "AgeCorrectedSensitivityDeviationProbabilityValue"], - "0102" : ["CS", "GeneralizedDefectCorrectedSensitivityDeviationFlag "], - "0103" : ["FL", "GeneralizedDefectCorrectedSensitivityDeviationValue "], - "0104" : ["FL", "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"], - "0105" : ["FL ", "MinimumSensitivityValue"], - "0106" : ["CS", "BlindSpotLocalized"], - "0107" : ["FL", "BlindSpotXCoordinate"], - "0108" : ["FL", "BlindSpotYCoordinate "], - "0110" : ["SQ", "VisualAcuityMeasurementSequence"], - "0112" : ["SQ", "RefractiveParametersUsedOnPatientSequence"], - "0113" : ["CS", "MeasurementLaterality"], - "0114" : ["SQ", "OphthalmicPatientClinicalInformationLeftEyeSequence"], - "0115" : ["SQ", "OphthalmicPatientClinicalInformationRightEyeSequence"], - "0117" : ["CS", "FovealPointNormativeDataFlag"], - "0118" : ["FL", "FovealPointProbabilityValue"], - "0120" : ["CS", "ScreeningBaselineMeasured"], - "0122" : ["SQ", "ScreeningBaselineMeasuredSequence"], - "0124" : ["CS", "ScreeningBaselineType"], - "0126" : ["FL", "ScreeningBaselineValue"], - "0202" : ["LO", "AlgorithmSource"], - "0306" : ["LO", "DataSetName"], - "0307" : ["LO", "DataSetVersion"], - "0308" : ["LO", "DataSetSource"], - "0309" : ["LO", "DataSetDescription"], - "0317" : ["SQ", "VisualFieldTestReliabilityGlobalIndexSequence"], - "0320" : ["SQ", "VisualFieldGlobalResultsIndexSequence"], - "0325" : ["SQ", "DataObservationSequence"], - "0338" : ["CS", "IndexNormalsFlag"], - "0341" : ["FL", "IndexProbability"], - "0344" : ["SQ", "IndexProbabilitySequence"] - }, - "0028" : { - "0002" : ["US", "SamplesPerPixel"], - "0003" : ["US", "SamplesPerPixelUsed"], - "0004" : ["CS", "PhotometricInterpretation"], - "0005" : ["US", "ImageDimensions"], - "0006" : ["US", "PlanarConfiguration"], - "0008" : ["IS", "NumberOfFrames"], - "0009" : ["AT", "FrameIncrementPointer"], - "000A" : ["AT", "FrameDimensionPointer"], - "0010" : ["US", "Rows"], - "0011" : ["US", "Columns"], - "0012" : ["US", "Planes"], - "0014" : ["US", "UltrasoundColorDataPresent"], - "0030" : ["DS", "PixelSpacing"], - "0031" : ["DS", "ZoomFactor"], - "0032" : ["DS", "ZoomCenter"], - "0034" : ["IS", "PixelAspectRatio"], - "0040" : ["CS", "ImageFormat"], - "0050" : ["LO", "ManipulatedImage"], - "0051" : ["CS", "CorrectedImage"], - "005F" : ["LO", "CompressionRecognitionCode"], - "0060" : ["CS", "CompressionCode"], - "0061" : ["SH", "CompressionOriginator"], - "0062" : ["LO", "CompressionLabel"], - "0063" : ["SH", "CompressionDescription"], - "0065" : ["CS", "CompressionSequence"], - "0066" : ["AT", "CompressionStepPointers"], - "0068" : ["US", "RepeatInterval"], - "0069" : ["US", "BitsGrouped"], - "0070" : ["US", "PerimeterTable"], - "0071" : ["SS", "PerimeterValue"], - "0080" : ["US", "PredictorRows"], - "0081" : ["US", "PredictorColumns"], - "0082" : ["US", "PredictorConstants"], - "0090" : ["CS", "BlockedPixels"], - "0091" : ["US", "BlockRows"], - "0092" : ["US", "BlockColumns"], - "0093" : ["US", "RowOverlap"], - "0094" : ["US", "ColumnOverlap"], - "0100" : ["US", "BitsAllocated"], - "0101" : ["US", "BitsStored"], - "0102" : ["US", "HighBit"], - "0103" : ["US", "PixelRepresentation"], - "0104" : ["SS", "SmallestValidPixelValue"], - "0105" : ["SS", "LargestValidPixelValue"], - "0106" : ["SS", "SmallestImagePixelValue"], - "0107" : ["SS", "LargestImagePixelValue"], - "0108" : ["SS", "SmallestPixelValueInSeries"], - "0109" : ["SS", "LargestPixelValueInSeries"], - "0110" : ["SS", "SmallestImagePixelValueInPlane"], - "0111" : ["SS", "LargestImagePixelValueInPlane"], - "0120" : ["SS", "PixelPaddingValue"], - "0121" : ["SS", "PixelPaddingRangeLimit"], - "0200" : ["US", "ImageLocation"], - "0300" : ["CS", "QualityControlImage"], - "0301" : ["CS", "BurnedInAnnotation"], - "0302" : ["CS", "RecognizableVisualFeatures"], - "0303" : ["CS", "LongitudinalTemporalInformationModified"], - "0400" : ["LO", "TransformLabel"], - "0401" : ["LO", "TransformVersionNumber"], - "0402" : ["US", "NumberOfTransformSteps"], - "0403" : ["LO", "SequenceOfCompressedData"], - "0404" : ["AT", "DetailsOfCoefficients"], - "0700" : ["LO", "DCTLabel"], - "0701" : ["CS", "DataBlockDescription"], - "0702" : ["AT", "DataBlock"], - "0710" : ["US", "NormalizationFactorFormat"], - "0720" : ["US", "ZonalMapNumberFormat"], - "0721" : ["AT", "ZonalMapLocation"], - "0722" : ["US", "ZonalMapFormat"], - "0730" : ["US", "AdaptiveMapFormat"], - "0740" : ["US", "CodeNumberFormat"], - "0A02" : ["CS", "PixelSpacingCalibrationType"], - "0A04" : ["LO", "PixelSpacingCalibrationDescription"], - "1040" : ["CS", "PixelIntensityRelationship"], - "1041" : ["SS", "PixelIntensityRelationshipSign"], - "1050" : ["DS", "WindowCenter"], - "1051" : ["DS", "WindowWidth"], - "1052" : ["DS", "RescaleIntercept"], - "1053" : ["DS", "RescaleSlope"], - "1054" : ["LO", "RescaleType"], - "1055" : ["LO", "WindowCenterWidthExplanation"], - "1056" : ["CS", "VOILUTFunction"], - "1080" : ["CS", "GrayScale"], - "1090" : ["CS", "RecommendedViewingMode"], - "1100" : ["SS", "GrayLookupTableDescriptor"], - "1101" : ["SS", "RedPaletteColorLookupTableDescriptor"], - "1102" : ["SS", "GreenPaletteColorLookupTableDescriptor"], - "1103" : ["SS", "BluePaletteColorLookupTableDescriptor"], - "1104" : ["US", "AlphaPaletteColorLookupTableDescriptor"], - "1111" : ["SS", "LargeRedPaletteColorLookupTableDescriptor"], - "1112" : ["SS", "LargeGreenPaletteColorLookupTableDescriptor"], - "1113" : ["SS", "LargeBluePaletteColorLookupTableDescriptor"], - "1199" : ["UI", "PaletteColorLookupTableUID"], - "1200" : ["OW", "GrayLookupTableData"], - "1201" : ["OW", "RedPaletteColorLookupTableData"], - "1202" : ["OW", "GreenPaletteColorLookupTableData"], - "1203" : ["OW", "BluePaletteColorLookupTableData"], - "1204" : ["OW", "AlphaPaletteColorLookupTableData"], - "1211" : ["OW", "LargeRedPaletteColorLookupTableData"], - "1212" : ["OW", "LargeGreenPaletteColorLookupTableData"], - "1213" : ["OW", "LargeBluePaletteColorLookupTableData"], - "1214" : ["UI", "LargePaletteColorLookupTableUID"], - "1221" : ["OW", "SegmentedRedPaletteColorLookupTableData"], - "1222" : ["OW", "SegmentedGreenPaletteColorLookupTableData"], - "1223" : ["OW", "SegmentedBluePaletteColorLookupTableData"], - "1300" : ["CS", "BreastImplantPresent"], - "1350" : ["CS", "PartialView"], - "1351" : ["ST", "PartialViewDescription"], - "1352" : ["SQ", "PartialViewCodeSequence"], - "135A" : ["CS", "SpatialLocationsPreserved"], - "1401" : ["SQ", "DataFrameAssignmentSequence"], - "1402" : ["CS", "DataPathAssignment"], - "1403" : ["US", "BitsMappedToColorLookupTable"], - "1404" : ["SQ", "BlendingLUT1Sequence"], - "1405" : ["CS", "BlendingLUT1TransferFunction"], - "1406" : ["FD", "BlendingWeightConstant"], - "1407" : ["US", "BlendingLookupTableDescriptor"], - "1408" : ["OW", "BlendingLookupTableData"], - "140B" : ["SQ", "EnhancedPaletteColorLookupTableSequence"], - "140C" : ["SQ", "BlendingLUT2Sequence"], - "140D" : ["CS", "BlendingLUT2TransferFunction"], - "140E" : ["CS", "DataPathID"], - "140F" : ["CS", "RGBLUTTransferFunction"], - "1410" : ["CS", "AlphaLUTTransferFunction"], - "2000" : ["OB", "ICCProfile"], - "2110" : ["CS", "LossyImageCompression"], - "2112" : ["DS", "LossyImageCompressionRatio"], - "2114" : ["CS", "LossyImageCompressionMethod"], - "3000" : ["SQ", "ModalityLUTSequence"], - "3002" : ["SS", "LUTDescriptor"], - "3003" : ["LO", "LUTExplanation"], - "3004" : ["LO", "ModalityLUTType"], - "3006" : ["OW", "LUTData"], - "3010" : ["SQ", "VOILUTSequence"], - "3110" : ["SQ", "SoftcopyVOILUTSequence"], - "4000" : ["LT", "ImagePresentationComments"], - "5000" : ["SQ", "BiPlaneAcquisitionSequence"], - "6010" : ["US", "RepresentativeFrameNumber"], - "6020" : ["US", "FrameNumbersOfInterest"], - "6022" : ["LO", "FrameOfInterestDescription"], - "6023" : ["CS", "FrameOfInterestType"], - "6030" : ["US", "MaskPointers"], - "6040" : ["US", "RWavePointer"], - "6100" : ["SQ", "MaskSubtractionSequence"], - "6101" : ["CS", "MaskOperation"], - "6102" : ["US", "ApplicableFrameRange"], - "6110" : ["US", "MaskFrameNumbers"], - "6112" : ["US", "ContrastFrameAveraging"], - "6114" : ["FL", "MaskSubPixelShift"], - "6120" : ["SS", "TIDOffset"], - "6190" : ["ST", "MaskOperationExplanation"], - "7FE0" : ["UT", "PixelDataProviderURL"], - "9001" : ["UL", "DataPointRows"], - "9002" : ["UL", "DataPointColumns"], - "9003" : ["CS", "SignalDomainColumns"], - "9099" : ["US", "LargestMonochromePixelValue"], - "9108" : ["CS", "DataRepresentation"], - "9110" : ["SQ", "PixelMeasuresSequence"], - "9132" : ["SQ", "FrameVOILUTSequence"], - "9145" : ["SQ", "PixelValueTransformationSequence"], - "9235" : ["CS", "SignalDomainRows"], - "9411" : ["FL", "DisplayFilterPercentage"], - "9415" : ["SQ", "FramePixelShiftSequence"], - "9416" : ["US", "SubtractionItemID"], - "9422" : ["SQ", "PixelIntensityRelationshipLUTSequence"], - "9443" : ["SQ", "FramePixelDataPropertiesSequence"], - "9444" : ["CS", "GeometricalProperties"], - "9445" : ["FL", "GeometricMaximumDistortion"], - "9446" : ["CS", "ImageProcessingApplied"], - "9454" : ["CS", "MaskSelectionMode"], - "9474" : ["CS", "LUTFunction"], - "9478" : ["FL", "MaskVisibilityPercentage"], - "9501" : ["SQ", "PixelShiftSequence"], - "9502" : ["SQ", "RegionPixelShiftSequence"], - "9503" : ["SS", "VerticesOfTheRegion"], - "9505" : ["SQ", "MultiFramePresentationSequence"], - "9506" : ["US", "PixelShiftFrameRange"], - "9507" : ["US", "LUTFrameRange"], - "9520" : ["DS", "ImageToEquipmentMappingMatrix"], - "9537" : ["CS", "EquipmentCoordinateSystemIdentification"] - }, - "0032" : { - "000A" : ["CS", "StudyStatusID"], - "000C" : ["CS", "StudyPriorityID"], - "0012" : ["LO", "StudyIDIssuer"], - "0032" : ["DA", "StudyVerifiedDate"], - "0033" : ["TM", "StudyVerifiedTime"], - "0034" : ["DA", "StudyReadDate"], - "0035" : ["TM", "StudyReadTime"], - "1000" : ["DA", "ScheduledStudyStartDate"], - "1001" : ["TM", "ScheduledStudyStartTime"], - "1010" : ["DA", "ScheduledStudyStopDate"], - "1011" : ["TM", "ScheduledStudyStopTime"], - "1020" : ["LO", "ScheduledStudyLocation"], - "1021" : ["AE", "ScheduledStudyLocationAETitle"], - "1030" : ["LO", "ReasonForStudy"], - "1031" : ["SQ", "RequestingPhysicianIdentificationSequence"], - "1032" : ["PN", "RequestingPhysician"], - "1033" : ["LO", "RequestingService"], - "1034" : ["SQ", "RequestingServiceCodeSequence"], - "1040" : ["DA", "StudyArrivalDate"], - "1041" : ["TM", "StudyArrivalTime"], - "1050" : ["DA", "StudyCompletionDate"], - "1051" : ["TM", "StudyCompletionTime"], - "1055" : ["CS", "StudyComponentStatusID"], - "1060" : ["LO", "RequestedProcedureDescription"], - "1064" : ["SQ", "RequestedProcedureCodeSequence"], - "1070" : ["LO", "RequestedContrastAgent"], - "4000" : ["LT", "StudyComments"] - }, - "0038" : { - "0004" : ["SQ", "ReferencedPatientAliasSequence"], - "0008" : ["CS", "VisitStatusID"], - "0010" : ["LO", "AdmissionID"], - "0011" : ["LO", "IssuerOfAdmissionID"], - "0014" : ["SQ", "IssuerOfAdmissionIDSequence"], - "0016" : ["LO", "RouteOfAdmissions"], - "001A" : ["DA", "ScheduledAdmissionDate"], - "001B" : ["TM", "ScheduledAdmissionTime"], - "001C" : ["DA", "ScheduledDischargeDate"], - "001D" : ["TM", "ScheduledDischargeTime"], - "001E" : ["LO", "ScheduledPatientInstitutionResidence"], - "0020" : ["DA", "AdmittingDate"], - "0021" : ["TM", "AdmittingTime"], - "0030" : ["DA", "DischargeDate"], - "0032" : ["TM", "DischargeTime"], - "0040" : ["LO", "DischargeDiagnosisDescription"], - "0044" : ["SQ", "DischargeDiagnosisCodeSequence"], - "0050" : ["LO", "SpecialNeeds"], - "0060" : ["LO", "ServiceEpisodeID"], - "0061" : ["LO", "IssuerOfServiceEpisodeID"], - "0062" : ["LO", "ServiceEpisodeDescription"], - "0064" : ["SQ", "IssuerOfServiceEpisodeIDSequence"], - "0100" : ["SQ", "PertinentDocumentsSequence"], - "0300" : ["LO", "CurrentPatientLocation"], - "0400" : ["LO", "PatientInstitutionResidence"], - "0500" : ["LO", "PatientState"], - "0502" : ["SQ", "PatientClinicalTrialParticipationSequence"], - "4000" : ["LT", "VisitComments"] - }, - "003A" : { - "0004" : ["CS", "WaveformOriginality"], - "0005" : ["US", "NumberOfWaveformChannels"], - "0010" : ["UL", "NumberOfWaveformSamples"], - "001A" : ["DS", "SamplingFrequency"], - "0020" : ["SH", "MultiplexGroupLabel"], - "0200" : ["SQ", "ChannelDefinitionSequence"], - "0202" : ["IS", "WaveformChannelNumber"], - "0203" : ["SH", "ChannelLabel"], - "0205" : ["CS", "ChannelStatus"], - "0208" : ["SQ", "ChannelSourceSequence"], - "0209" : ["SQ", "ChannelSourceModifiersSequence"], - "020A" : ["SQ", "SourceWaveformSequence"], - "020C" : ["LO", "ChannelDerivationDescription"], - "0210" : ["DS", "ChannelSensitivity"], - "0211" : ["SQ", "ChannelSensitivityUnitsSequence"], - "0212" : ["DS", "ChannelSensitivityCorrectionFactor"], - "0213" : ["DS", "ChannelBaseline"], - "0214" : ["DS", "ChannelTimeSkew"], - "0215" : ["DS", "ChannelSampleSkew"], - "0218" : ["DS", "ChannelOffset"], - "021A" : ["US", "WaveformBitsStored"], - "0220" : ["DS", "FilterLowFrequency"], - "0221" : ["DS", "FilterHighFrequency"], - "0222" : ["DS", "NotchFilterFrequency"], - "0223" : ["DS", "NotchFilterBandwidth"], - "0230" : ["FL", "WaveformDataDisplayScale"], - "0231" : ["US", "WaveformDisplayBackgroundCIELabValue"], - "0240" : ["SQ", "WaveformPresentationGroupSequence"], - "0241" : ["US", "PresentationGroupNumber"], - "0242" : ["SQ", "ChannelDisplaySequence"], - "0244" : ["US", "ChannelRecommendedDisplayCIELabValue"], - "0245" : ["FL", "ChannelPosition"], - "0246" : ["CS", "DisplayShadingFlag"], - "0247" : ["FL", "FractionalChannelDisplayScale"], - "0248" : ["FL", "AbsoluteChannelDisplayScale"], - "0300" : ["SQ", "MultiplexedAudioChannelsDescriptionCodeSequence"], - "0301" : ["IS", "ChannelIdentificationCode"], - "0302" : ["CS", "ChannelMode"] - }, - "0040" : { - "0001" : ["AE", "ScheduledStationAETitle"], - "0002" : ["DA", "ScheduledProcedureStepStartDate"], - "0003" : ["TM", "ScheduledProcedureStepStartTime"], - "0004" : ["DA", "ScheduledProcedureStepEndDate"], - "0005" : ["TM", "ScheduledProcedureStepEndTime"], - "0006" : ["PN", "ScheduledPerformingPhysicianName"], - "0007" : ["LO", "ScheduledProcedureStepDescription"], - "0008" : ["SQ", "ScheduledProtocolCodeSequence"], - "0009" : ["SH", "ScheduledProcedureStepID"], - "000A" : ["SQ", "StageCodeSequence"], - "000B" : ["SQ", "ScheduledPerformingPhysicianIdentificationSequence"], - "0010" : ["SH", "ScheduledStationName"], - "0011" : ["SH", "ScheduledProcedureStepLocation"], - "0012" : ["LO", "PreMedication"], - "0020" : ["CS", "ScheduledProcedureStepStatus"], - "0026" : ["SQ", "OrderPlacerIdentifierSequence"], - "0027" : ["SQ", "OrderFillerIdentifierSequence"], - "0031" : ["UT", "LocalNamespaceEntityID"], - "0032" : ["UT", "UniversalEntityID"], - "0033" : ["CS", "UniversalEntityIDType"], - "0035" : ["CS", "IdentifierTypeCode"], - "0036" : ["SQ", "AssigningFacilitySequence"], - "0039" : ["SQ", "AssigningJurisdictionCodeSequence"], - "003A" : ["SQ", "AssigningAgencyOrDepartmentCodeSequence"], - "0100" : ["SQ", "ScheduledProcedureStepSequence"], - "0220" : ["SQ", "ReferencedNonImageCompositeSOPInstanceSequence"], - "0241" : ["AE", "PerformedStationAETitle"], - "0242" : ["SH", "PerformedStationName"], - "0243" : ["SH", "PerformedLocation"], - "0244" : ["DA", "PerformedProcedureStepStartDate"], - "0245" : ["TM", "PerformedProcedureStepStartTime"], - "0250" : ["DA", "PerformedProcedureStepEndDate"], - "0251" : ["TM", "PerformedProcedureStepEndTime"], - "0252" : ["CS", "PerformedProcedureStepStatus"], - "0253" : ["SH", "PerformedProcedureStepID"], - "0254" : ["LO", "PerformedProcedureStepDescription"], - "0255" : ["LO", "PerformedProcedureTypeDescription"], - "0260" : ["SQ", "PerformedProtocolCodeSequence"], - "0261" : ["CS", "PerformedProtocolType"], - "0270" : ["SQ", "ScheduledStepAttributesSequence"], - "0275" : ["SQ", "RequestAttributesSequence"], - "0280" : ["ST", "CommentsOnThePerformedProcedureStep"], - "0281" : ["SQ", "PerformedProcedureStepDiscontinuationReasonCodeSequence"], - "0293" : ["SQ", "QuantitySequence"], - "0294" : ["DS", "Quantity"], - "0295" : ["SQ", "MeasuringUnitsSequence"], - "0296" : ["SQ", "BillingItemSequence"], - "0300" : ["US", "TotalTimeOfFluoroscopy"], - "0301" : ["US", "TotalNumberOfExposures"], - "0302" : ["US", "EntranceDose"], - "0303" : ["US", "ExposedArea"], - "0306" : ["DS", "DistanceSourceToEntrance"], - "0307" : ["DS", "DistanceSourceToSupport"], - "030E" : ["SQ", "ExposureDoseSequence"], - "0310" : ["ST", "CommentsOnRadiationDose"], - "0312" : ["DS", "XRayOutput"], - "0314" : ["DS", "HalfValueLayer"], - "0316" : ["DS", "OrganDose"], - "0318" : ["CS", "OrganExposed"], - "0320" : ["SQ", "BillingProcedureStepSequence"], - "0321" : ["SQ", "FilmConsumptionSequence"], - "0324" : ["SQ", "BillingSuppliesAndDevicesSequence"], - "0330" : ["SQ", "ReferencedProcedureStepSequence"], - "0340" : ["SQ", "PerformedSeriesSequence"], - "0400" : ["LT", "CommentsOnTheScheduledProcedureStep"], - "0440" : ["SQ", "ProtocolContextSequence"], - "0441" : ["SQ", "ContentItemModifierSequence"], - "0500" : ["SQ", "ScheduledSpecimenSequence"], - "050A" : ["LO", "SpecimenAccessionNumber"], - "0512" : ["LO", "ContainerIdentifier"], - "0513" : ["SQ", "IssuerOfTheContainerIdentifierSequence"], - "0515" : ["SQ", "AlternateContainerIdentifierSequence"], - "0518" : ["SQ", "ContainerTypeCodeSequence"], - "051A" : ["LO", "ContainerDescription"], - "0520" : ["SQ", "ContainerComponentSequence"], - "0550" : ["SQ", "SpecimenSequence"], - "0551" : ["LO", "SpecimenIdentifier"], - "0552" : ["SQ", "SpecimenDescriptionSequenceTrial"], - "0553" : ["ST", "SpecimenDescriptionTrial"], - "0554" : ["UI", "SpecimenUID"], - "0555" : ["SQ", "AcquisitionContextSequence"], - "0556" : ["ST", "AcquisitionContextDescription"], - "059A" : ["SQ", "SpecimenTypeCodeSequence"], - "0560" : ["SQ", "SpecimenDescriptionSequence"], - "0562" : ["SQ", "IssuerOfTheSpecimenIdentifierSequence"], - "0600" : ["LO", "SpecimenShortDescription"], - "0602" : ["UT", "SpecimenDetailedDescription"], - "0610" : ["SQ", "SpecimenPreparationSequence"], - "0612" : ["SQ", "SpecimenPreparationStepContentItemSequence"], - "0620" : ["SQ", "SpecimenLocalizationContentItemSequence"], - "06FA" : ["LO", "SlideIdentifier"], - "071A" : ["SQ", "ImageCenterPointCoordinatesSequence"], - "072A" : ["DS", "XOffsetInSlideCoordinateSystem"], - "073A" : ["DS", "YOffsetInSlideCoordinateSystem"], - "074A" : ["DS", "ZOffsetInSlideCoordinateSystem"], - "08D8" : ["SQ", "PixelSpacingSequence"], - "08DA" : ["SQ", "CoordinateSystemAxisCodeSequence"], - "08EA" : ["SQ", "MeasurementUnitsCodeSequence"], - "09F8" : ["SQ", "VitalStainCodeSequenceTrial"], - "1001" : ["SH", "RequestedProcedureID"], - "1002" : ["LO", "ReasonForTheRequestedProcedure"], - "1003" : ["SH", "RequestedProcedurePriority"], - "1004" : ["LO", "PatientTransportArrangements"], - "1005" : ["LO", "RequestedProcedureLocation"], - "1006" : ["SH", "PlacerOrderNumberProcedure"], - "1007" : ["SH", "FillerOrderNumberProcedure"], - "1008" : ["LO", "ConfidentialityCode"], - "1009" : ["SH", "ReportingPriority"], - "100A" : ["SQ", "ReasonForRequestedProcedureCodeSequence"], - "1010" : ["PN", "NamesOfIntendedRecipientsOfResults"], - "1011" : ["SQ", "IntendedRecipientsOfResultsIdentificationSequence"], - "1012" : ["SQ", "ReasonForPerformedProcedureCodeSequence"], - "1060" : ["LO", "RequestedProcedureDescriptionTrial"], - "1101" : ["SQ", "PersonIdentificationCodeSequence"], - "1102" : ["ST", "PersonAddress"], - "1103" : ["LO", "PersonTelephoneNumbers"], - "1400" : ["LT", "RequestedProcedureComments"], - "2001" : ["LO", "ReasonForTheImagingServiceRequest"], - "2004" : ["DA", "IssueDateOfImagingServiceRequest"], - "2005" : ["TM", "IssueTimeOfImagingServiceRequest"], - "2006" : ["SH", "PlacerOrderNumberImagingServiceRequestRetired"], - "2007" : ["SH", "FillerOrderNumberImagingServiceRequestRetired"], - "2008" : ["PN", "OrderEnteredBy"], - "2009" : ["SH", "OrderEntererLocation"], - "2010" : ["SH", "OrderCallbackPhoneNumber"], - "2016" : ["LO", "PlacerOrderNumberImagingServiceRequest"], - "2017" : ["LO", "FillerOrderNumberImagingServiceRequest"], - "2400" : ["LT", "ImagingServiceRequestComments"], - "3001" : ["LO", "ConfidentialityConstraintOnPatientDataDescription"], - "4001" : ["CS", "GeneralPurposeScheduledProcedureStepStatus"], - "4002" : ["CS", "GeneralPurposePerformedProcedureStepStatus"], - "4003" : ["CS", "GeneralPurposeScheduledProcedureStepPriority"], - "4004" : ["SQ", "ScheduledProcessingApplicationsCodeSequence"], - "4005" : ["DT", "ScheduledProcedureStepStartDateTime"], - "4006" : ["CS", "MultipleCopiesFlag"], - "4007" : ["SQ", "PerformedProcessingApplicationsCodeSequence"], - "4009" : ["SQ", "HumanPerformerCodeSequence"], - "4010" : ["DT", "ScheduledProcedureStepModificationDateTime"], - "4011" : ["DT", "ExpectedCompletionDateTime"], - "4015" : ["SQ", "ResultingGeneralPurposePerformedProcedureStepsSequence"], - "4016" : ["SQ", "ReferencedGeneralPurposeScheduledProcedureStepSequence"], - "4018" : ["SQ", "ScheduledWorkitemCodeSequence"], - "4019" : ["SQ", "PerformedWorkitemCodeSequence"], - "4020" : ["CS", "InputAvailabilityFlag"], - "4021" : ["SQ", "InputInformationSequence"], - "4022" : ["SQ", "RelevantInformationSequence"], - "4023" : ["UI", "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"], - "4025" : ["SQ", "ScheduledStationNameCodeSequence"], - "4026" : ["SQ", "ScheduledStationClassCodeSequence"], - "4027" : ["SQ", "ScheduledStationGeographicLocationCodeSequence"], - "4028" : ["SQ", "PerformedStationNameCodeSequence"], - "4029" : ["SQ", "PerformedStationClassCodeSequence"], - "4030" : ["SQ", "PerformedStationGeographicLocationCodeSequence"], - "4031" : ["SQ", "RequestedSubsequentWorkitemCodeSequence"], - "4032" : ["SQ", "NonDICOMOutputCodeSequence"], - "4033" : ["SQ", "OutputInformationSequence"], - "4034" : ["SQ", "ScheduledHumanPerformersSequence"], - "4035" : ["SQ", "ActualHumanPerformersSequence"], - "4036" : ["LO", "HumanPerformerOrganization"], - "4037" : ["PN", "HumanPerformerName"], - "4040" : ["CS", "RawDataHandling"], - "4041" : ["CS", "InputReadinessState"], - "4050" : ["DT", "PerformedProcedureStepStartDateTime"], - "4051" : ["DT", "PerformedProcedureStepEndDateTime"], - "4052" : ["DT", "ProcedureStepCancellationDateTime"], - "8302" : ["DS", "EntranceDoseInmGy"], - "9094" : ["SQ", "ReferencedImageRealWorldValueMappingSequence"], - "9096" : ["SQ", "RealWorldValueMappingSequence"], - "9098" : ["SQ", "PixelValueMappingCodeSequence"], - "9210" : ["SH", "LUTLabel"], - "9211" : ["SS", "RealWorldValueLastValueMapped"], - "9212" : ["FD", "RealWorldValueLUTData"], - "9216" : ["SS", "RealWorldValueFirstValueMapped"], - "9224" : ["FD", "RealWorldValueIntercept"], - "9225" : ["FD", "RealWorldValueSlope"], - "A007" : ["CS", "FindingsFlagTrial"], - "A010" : ["CS", "RelationshipType"], - "A020" : ["SQ", "FindingsSequenceTrial"], - "A021" : ["UI", "FindingsGroupUIDTrial"], - "A022" : ["UI", "ReferencedFindingsGroupUIDTrial"], - "A023" : ["DA", "FindingsGroupRecordingDateTrial"], - "A024" : ["TM", "FindingsGroupRecordingTimeTrial"], - "A026" : ["SQ", "FindingsSourceCategoryCodeSequenceTrial"], - "A027" : ["LO", "VerifyingOrganization"], - "A028" : ["SQ", "DocumentingOrganizationIdentifierCodeSequenceTrial"], - "A030" : ["DT", "VerificationDateTime"], - "A032" : ["DT", "ObservationDateTime"], - "A040" : ["CS", "ValueType"], - "A043" : ["SQ", "ConceptNameCodeSequence"], - "A047" : ["LO", "MeasurementPrecisionDescriptionTrial"], - "A050" : ["CS", "ContinuityOfContent"], - "A057" : ["CS", "UrgencyOrPriorityAlertsTrial"], - "A060" : ["LO", "SequencingIndicatorTrial"], - "A066" : ["SQ", "DocumentIdentifierCodeSequenceTrial"], - "A067" : ["PN", "DocumentAuthorTrial"], - "A068" : ["SQ", "DocumentAuthorIdentifierCodeSequenceTrial"], - "A070" : ["SQ", "IdentifierCodeSequenceTrial"], - "A073" : ["SQ", "VerifyingObserverSequence"], - "A074" : ["OB", "ObjectBinaryIdentifierTrial"], - "A075" : ["PN", "VerifyingObserverName"], - "A076" : ["SQ", "DocumentingObserverIdentifierCodeSequenceTrial"], - "A078" : ["SQ", "AuthorObserverSequence"], - "A07A" : ["SQ", "ParticipantSequence"], - "A07C" : ["SQ", "CustodialOrganizationSequence"], - "A080" : ["CS", "ParticipationType"], - "A082" : ["DT", "ParticipationDateTime"], - "A084" : ["CS", "ObserverType"], - "A085" : ["SQ", "ProcedureIdentifierCodeSequenceTrial"], - "A088" : ["SQ", "VerifyingObserverIdentificationCodeSequence"], - "A089" : ["OB", "ObjectDirectoryBinaryIdentifierTrial"], - "A090" : ["SQ", "EquivalentCDADocumentSequence"], - "A0B0" : ["US", "ReferencedWaveformChannels"], - "A110" : ["DA", "DateOfDocumentOrVerbalTransactionTrial"], - "A112" : ["TM", "TimeOfDocumentCreationOrVerbalTransactionTrial"], - "A120" : ["DT", "DateTime"], - "A121" : ["DA", "Date"], - "A122" : ["TM", "Time"], - "A123" : ["PN", "PersonName"], - "A124" : ["UI", "UID"], - "A125" : ["CS", "ReportStatusIDTrial"], - "A130" : ["CS", "TemporalRangeType"], - "A132" : ["UL", "ReferencedSamplePositions"], - "A136" : ["US", "ReferencedFrameNumbers"], - "A138" : ["DS", "ReferencedTimeOffsets"], - "A13A" : ["DT", "ReferencedDateTime"], - "A160" : ["UT", "TextValue"], - "A167" : ["SQ", "ObservationCategoryCodeSequenceTrial"], - "A168" : ["SQ", "ConceptCodeSequence"], - "A16A" : ["ST", "BibliographicCitationTrial"], - "A170" : ["SQ", "PurposeOfReferenceCodeSequence"], - "A171" : ["UI", "ObservationUIDTrial"], - "A172" : ["UI", "ReferencedObservationUIDTrial"], - "A173" : ["CS", "ReferencedObservationClassTrial"], - "A174" : ["CS", "ReferencedObjectObservationClassTrial"], - "A180" : ["US", "AnnotationGroupNumber"], - "A192" : ["DA", "ObservationDateTrial"], - "A193" : ["TM", "ObservationTimeTrial"], - "A194" : ["CS", "MeasurementAutomationTrial"], - "A195" : ["SQ", "ModifierCodeSequence"], - "A224" : ["ST", "IdentificationDescriptionTrial"], - "A290" : ["CS", "CoordinatesSetGeometricTypeTrial"], - "A296" : ["SQ", "AlgorithmCodeSequenceTrial"], - "A297" : ["ST", "AlgorithmDescriptionTrial"], - "A29A" : ["SL", "PixelCoordinatesSetTrial"], - "A300" : ["SQ", "MeasuredValueSequence"], - "A301" : ["SQ", "NumericValueQualifierCodeSequence"], - "A307" : ["PN", "CurrentObserverTrial"], - "A30A" : ["DS", "NumericValue"], - "A313" : ["SQ", "ReferencedAccessionSequenceTrial"], - "A33A" : ["ST", "ReportStatusCommentTrial"], - "A340" : ["SQ", "ProcedureContextSequenceTrial"], - "A352" : ["PN", "VerbalSourceTrial"], - "A353" : ["ST", "AddressTrial"], - "A354" : ["LO", "TelephoneNumberTrial"], - "A358" : ["SQ", "VerbalSourceIdentifierCodeSequenceTrial"], - "A360" : ["SQ", "PredecessorDocumentsSequence"], - "A370" : ["SQ", "ReferencedRequestSequence"], - "A372" : ["SQ", "PerformedProcedureCodeSequence"], - "A375" : ["SQ", "CurrentRequestedProcedureEvidenceSequence"], - "A380" : ["SQ", "ReportDetailSequenceTrial"], - "A385" : ["SQ", "PertinentOtherEvidenceSequence"], - "A390" : ["SQ", "HL7StructuredDocumentReferenceSequence"], - "A402" : ["UI", "ObservationSubjectUIDTrial"], - "A403" : ["CS", "ObservationSubjectClassTrial"], - "A404" : ["SQ", "ObservationSubjectTypeCodeSequenceTrial"], - "A491" : ["CS", "CompletionFlag"], - "A492" : ["LO", "CompletionFlagDescription"], - "A493" : ["CS", "VerificationFlag"], - "A494" : ["CS", "ArchiveRequested"], - "A496" : ["CS", "PreliminaryFlag"], - "A504" : ["SQ", "ContentTemplateSequence"], - "A525" : ["SQ", "IdenticalDocumentsSequence"], - "A600" : ["CS", "ObservationSubjectContextFlagTrial"], - "A601" : ["CS", "ObserverContextFlagTrial"], - "A603" : ["CS", "ProcedureContextFlagTrial"], - "A730" : ["SQ", "ContentSequence"], - "A731" : ["SQ", "RelationshipSequenceTrial"], - "A732" : ["SQ", "RelationshipTypeCodeSequenceTrial"], - "A744" : ["SQ", "LanguageCodeSequenceTrial"], - "A992" : ["ST", "UniformResourceLocatorTrial"], - "B020" : ["SQ", "WaveformAnnotationSequence"], - "DB00" : ["CS", "TemplateIdentifier"], - "DB06" : ["DT", "TemplateVersion"], - "DB07" : ["DT", "TemplateLocalVersion"], - "DB0B" : ["CS", "TemplateExtensionFlag"], - "DB0C" : ["UI", "TemplateExtensionOrganizationUID"], - "DB0D" : ["UI", "TemplateExtensionCreatorUID"], - "DB73" : ["UL", "ReferencedContentItemIdentifier"], - "E001" : ["ST", "HL7InstanceIdentifier"], - "E004" : ["DT", "HL7DocumentEffectiveTime"], - "E006" : ["SQ", "HL7DocumentTypeCodeSequence"], - "E008" : ["SQ", "DocumentClassCodeSequence"], - "E010" : ["UT", "RetrieveURI"], - "E011" : ["UI", "RetrieveLocationUID"], - "E020" : ["CS", "TypeOfInstances"], - "E021" : ["SQ", "DICOMRetrievalSequence"], - "E022" : ["SQ", "DICOMMediaRetrievalSequence"], - "E023" : ["SQ", "WADORetrievalSequence"], - "E024" : ["SQ", "XDSRetrievalSequence"], - "E030" : ["UI", "RepositoryUniqueID"], - "E031" : ["UI", "HomeCommunityID"] - }, - "0042" : { - "0010" : ["ST", "DocumentTitle"], - "0011" : ["OB", "EncapsulatedDocument"], - "0012" : ["LO", "MIMETypeOfEncapsulatedDocument"], - "0013" : ["SQ", "SourceInstanceSequence"], - "0014" : ["LO", "ListOfMIMETypes"] - }, - "0044" : { - "0001" : ["ST", "ProductPackageIdentifier"], - "0002" : ["CS", "SubstanceAdministrationApproval"], - "0003" : ["LT", "ApprovalStatusFurtherDescription"], - "0004" : ["DT", "ApprovalStatusDateTime"], - "0007" : ["SQ", "ProductTypeCodeSequence"], - "0008" : ["LO", "ProductName"], - "0009" : ["LT", "ProductDescription"], - "000A" : ["LO", "ProductLotIdentifier"], - "000B" : ["DT", "ProductExpirationDateTime"], - "0010" : ["DT", "SubstanceAdministrationDateTime"], - "0011" : ["LO", "SubstanceAdministrationNotes"], - "0012" : ["LO", "SubstanceAdministrationDeviceID"], - "0013" : ["SQ", "ProductParameterSequence"], - "0019" : ["SQ", "SubstanceAdministrationParameterSequence"] - }, - "0046" : { - "0012" : ["LO", "LensDescription"], - "0014" : ["SQ", "RightLensSequence"], - "0015" : ["SQ", "LeftLensSequence"], - "0016" : ["SQ", "UnspecifiedLateralityLensSequence"], - "0018" : ["SQ", "CylinderSequence"], - "0028" : ["SQ", "PrismSequence"], - "0030" : ["FD", "HorizontalPrismPower"], - "0032" : ["CS", "HorizontalPrismBase"], - "0034" : ["FD", "VerticalPrismPower"], - "0036" : ["CS", "VerticalPrismBase"], - "0038" : ["CS", "LensSegmentType"], - "0040" : ["FD", "OpticalTransmittance"], - "0042" : ["FD", "ChannelWidth"], - "0044" : ["FD", "PupilSize"], - "0046" : ["FD", "CornealSize"], - "0050" : ["SQ", "AutorefractionRightEyeSequence"], - "0052" : ["SQ", "AutorefractionLeftEyeSequence"], - "0060" : ["FD", "DistancePupillaryDistance"], - "0062" : ["FD", "NearPupillaryDistance"], - "0063" : ["FD", "IntermediatePupillaryDistance"], - "0064" : ["FD", "OtherPupillaryDistance"], - "0070" : ["SQ", "KeratometryRightEyeSequence"], - "0071" : ["SQ", "KeratometryLeftEyeSequence"], - "0074" : ["SQ", "SteepKeratometricAxisSequence"], - "0075" : ["FD", "RadiusOfCurvature"], - "0076" : ["FD", "KeratometricPower"], - "0077" : ["FD", "KeratometricAxis"], - "0080" : ["SQ", "FlatKeratometricAxisSequence"], - "0092" : ["CS", "BackgroundColor"], - "0094" : ["CS", "Optotype"], - "0095" : ["CS", "OptotypePresentation"], - "0097" : ["SQ", "SubjectiveRefractionRightEyeSequence"], - "0098" : ["SQ", "SubjectiveRefractionLeftEyeSequence"], - "0100" : ["SQ", "AddNearSequence"], - "0101" : ["SQ", "AddIntermediateSequence"], - "0102" : ["SQ", "AddOtherSequence"], - "0104" : ["FD", "AddPower"], - "0106" : ["FD", "ViewingDistance"], - "0121" : ["SQ", "VisualAcuityTypeCodeSequence"], - "0122" : ["SQ", "VisualAcuityRightEyeSequence"], - "0123" : ["SQ", "VisualAcuityLeftEyeSequence"], - "0124" : ["SQ", "VisualAcuityBothEyesOpenSequence"], - "0125" : ["CS", "ViewingDistanceType"], - "0135" : ["SS", "VisualAcuityModifiers"], - "0137" : ["FD", "DecimalVisualAcuity"], - "0139" : ["LO", "OptotypeDetailedDefinition"], - "0145" : ["SQ", "ReferencedRefractiveMeasurementsSequence"], - "0146" : ["FD", "SpherePower"], - "0147" : ["FD", "CylinderPower"] - }, - "0048" : { - "0001" : ["FL", "ImagedVolumeWidth"], - "0002" : ["FL", "ImagedVolumeHeight"], - "0003" : ["FL", "ImagedVolumeDepth"], - "0006" : ["UL", "TotalPixelMatrixColumns"], - "0007" : ["UL", "TotalPixelMatrixRows"], - "0008" : ["SQ", "TotalPixelMatrixOriginSequence"], - "0010" : ["CS", "SpecimenLabelInImage"], - "0011" : ["CS", "FocusMethod"], - "0012" : ["CS", "ExtendedDepthOfField"], - "0013" : ["US", "NumberOfFocalPlanes"], - "0014" : ["FL", "DistanceBetweenFocalPlanes"], - "0015" : ["US", "RecommendedAbsentPixelCIELabValue"], - "0100" : ["SQ", "IlluminatorTypeCodeSequence"], - "0102" : ["DS", "ImageOrientationSlide"], - "0105" : ["SQ", "OpticalPathSequence"], - "0106" : ["SH", "OpticalPathIdentifier"], - "0107" : ["ST", "OpticalPathDescription"], - "0108" : ["SQ", "IlluminationColorCodeSequence"], - "0110" : ["SQ", "SpecimenReferenceSequence"], - "0111" : ["DS", "CondenserLensPower"], - "0112" : ["DS", "ObjectiveLensPower"], - "0113" : ["DS", "ObjectiveLensNumericalAperture"], - "0120" : ["SQ", "PaletteColorLookupTableSequence"], - "0200" : ["SQ", "ReferencedImageNavigationSequence"], - "0201" : ["US", "TopLeftHandCornerOfLocalizerArea"], - "0202" : ["US", "BottomRightHandCornerOfLocalizerArea"], - "0207" : ["SQ", "OpticalPathIdentificationSequence"], - "021A" : ["SQ", "PlanePositionSlideSequence"], - "021E" : ["SL", "RowPositionInTotalImagePixelMatrix"], - "021F" : ["SL", "ColumnPositionInTotalImagePixelMatrix"], - "0301" : ["CS", "PixelOriginInterpretation"] - }, - "0050" : { - "0004" : ["CS", "CalibrationImage"], - "0010" : ["SQ", "DeviceSequence"], - "0012" : ["SQ", "ContainerComponentTypeCodeSequence"], - "0013" : ["FD", "ContainerComponentThickness"], - "0014" : ["DS", "DeviceLength"], - "0015" : ["FD", "ContainerComponentWidth"], - "0016" : ["DS", "DeviceDiameter"], - "0017" : ["CS", "DeviceDiameterUnits"], - "0018" : ["DS", "DeviceVolume"], - "0019" : ["DS", "InterMarkerDistance"], - "001A" : ["CS", "ContainerComponentMaterial"], - "001B" : ["LO", "ContainerComponentID"], - "001C" : ["FD", "ContainerComponentLength"], - "001D" : ["FD", "ContainerComponentDiameter"], - "001E" : ["LO", "ContainerComponentDescription"], - "0020" : ["LO", "DeviceDescription"] - }, - "0052" : { - "0001" : ["FL", "ContrastBolusIngredientPercentByVolume"], - "0002" : ["FD", "OCTFocalDistance"], - "0003" : ["FD", "BeamSpotSize"], - "0004" : ["FD", "EffectiveRefractiveIndex"], - "0006" : ["CS", "OCTAcquisitionDomain"], - "0007" : ["FD", "OCTOpticalCenterWavelength"], - "0008" : ["FD", "AxialResolution"], - "0009" : ["FD", "RangingDepth"], - "0011" : ["FD", "ALineRate"], - "0012" : ["US", "ALinesPerFrame"], - "0013" : ["FD", "CatheterRotationalRate"], - "0014" : ["FD", "ALinePixelSpacing"], - "0016" : ["SQ", "ModeOfPercutaneousAccessSequence"], - "0025" : ["SQ", "IntravascularOCTFrameTypeSequence"], - "0026" : ["CS", "OCTZOffsetApplied"], - "0027" : ["SQ", "IntravascularFrameContentSequence"], - "0028" : ["FD", "IntravascularLongitudinalDistance"], - "0029" : ["SQ", "IntravascularOCTFrameContentSequence"], - "0030" : ["SS", "OCTZOffsetCorrection"], - "0031" : ["CS", "CatheterDirectionOfRotation"], - "0033" : ["FD", "SeamLineLocation"], - "0034" : ["FD", "FirstALineLocation"], - "0036" : ["US", "SeamLineIndex"], - "0038" : ["US", "NumberOfPaddedAlines"], - "0039" : ["CS", "InterpolationType"], - "003A" : ["CS", "RefractiveIndexApplied"] - }, - "0054" : { - "0010" : ["US", "EnergyWindowVector"], - "0011" : ["US", "NumberOfEnergyWindows"], - "0012" : ["SQ", "EnergyWindowInformationSequence"], - "0013" : ["SQ", "EnergyWindowRangeSequence"], - "0014" : ["DS", "EnergyWindowLowerLimit"], - "0015" : ["DS", "EnergyWindowUpperLimit"], - "0016" : ["SQ", "RadiopharmaceuticalInformationSequence"], - "0017" : ["IS", "ResidualSyringeCounts"], - "0018" : ["SH", "EnergyWindowName"], - "0020" : ["US", "DetectorVector"], - "0021" : ["US", "NumberOfDetectors"], - "0022" : ["SQ", "DetectorInformationSequence"], - "0030" : ["US", "PhaseVector"], - "0031" : ["US", "NumberOfPhases"], - "0032" : ["SQ", "PhaseInformationSequence"], - "0033" : ["US", "NumberOfFramesInPhase"], - "0036" : ["IS", "PhaseDelay"], - "0038" : ["IS", "PauseBetweenFrames"], - "0039" : ["CS", "PhaseDescription"], - "0050" : ["US", "RotationVector"], - "0051" : ["US", "NumberOfRotations"], - "0052" : ["SQ", "RotationInformationSequence"], - "0053" : ["US", "NumberOfFramesInRotation"], - "0060" : ["US", "RRIntervalVector"], - "0061" : ["US", "NumberOfRRIntervals"], - "0062" : ["SQ", "GatedInformationSequence"], - "0063" : ["SQ", "DataInformationSequence"], - "0070" : ["US", "TimeSlotVector"], - "0071" : ["US", "NumberOfTimeSlots"], - "0072" : ["SQ", "TimeSlotInformationSequence"], - "0073" : ["DS", "TimeSlotTime"], - "0080" : ["US", "SliceVector"], - "0081" : ["US", "NumberOfSlices"], - "0090" : ["US", "AngularViewVector"], - "0100" : ["US", "TimeSliceVector"], - "0101" : ["US", "NumberOfTimeSlices"], - "0200" : ["DS", "StartAngle"], - "0202" : ["CS", "TypeOfDetectorMotion"], - "0210" : ["IS", "TriggerVector"], - "0211" : ["US", "NumberOfTriggersInPhase"], - "0220" : ["SQ", "ViewCodeSequence"], - "0222" : ["SQ", "ViewModifierCodeSequence"], - "0300" : ["SQ", "RadionuclideCodeSequence"], - "0302" : ["SQ", "AdministrationRouteCodeSequence"], - "0304" : ["SQ", "RadiopharmaceuticalCodeSequence"], - "0306" : ["SQ", "CalibrationDataSequence"], - "0308" : ["US", "EnergyWindowNumber"], - "0400" : ["SH", "ImageID"], - "0410" : ["SQ", "PatientOrientationCodeSequence"], - "0412" : ["SQ", "PatientOrientationModifierCodeSequence"], - "0414" : ["SQ", "PatientGantryRelationshipCodeSequence"], - "0500" : ["CS", "SliceProgressionDirection"], - "1000" : ["CS", "SeriesType"], - "1001" : ["CS", "Units"], - "1002" : ["CS", "CountsSource"], - "1004" : ["CS", "ReprojectionMethod"], - "1006" : ["CS", "SUVType"], - "1100" : ["CS", "RandomsCorrectionMethod"], - "1101" : ["LO", "AttenuationCorrectionMethod"], - "1102" : ["CS", "DecayCorrection"], - "1103" : ["LO", "ReconstructionMethod"], - "1104" : ["LO", "DetectorLinesOfResponseUsed"], - "1105" : ["LO", "ScatterCorrectionMethod"], - "1200" : ["DS", "AxialAcceptance"], - "1201" : ["IS", "AxialMash"], - "1202" : ["IS", "TransverseMash"], - "1203" : ["DS", "DetectorElementSize"], - "1210" : ["DS", "CoincidenceWindowWidth"], - "1220" : ["CS", "SecondaryCountsType"], - "1300" : ["DS", "FrameReferenceTime"], - "1310" : ["IS", "PrimaryPromptsCountsAccumulated"], - "1311" : ["IS", "SecondaryCountsAccumulated"], - "1320" : ["DS", "SliceSensitivityFactor"], - "1321" : ["DS", "DecayFactor"], - "1322" : ["DS", "DoseCalibrationFactor"], - "1323" : ["DS", "ScatterFractionFactor"], - "1324" : ["DS", "DeadTimeFactor"], - "1330" : ["US", "ImageIndex"], - "1400" : ["CS", "CountsIncluded"], - "1401" : ["CS", "DeadTimeCorrectionFlag"] - }, - "0060" : { - "3000" : ["SQ", "HistogramSequence"], - "3002" : ["US", "HistogramNumberOfBins"], - "3004" : ["SS", "HistogramFirstBinValue"], - "3006" : ["SS", "HistogramLastBinValue"], - "3008" : ["US", "HistogramBinWidth"], - "3010" : ["LO", "HistogramExplanation"], - "3020" : ["UL", "HistogramData"] - }, - "0062" : { - "0001" : ["CS", "SegmentationType"], - "0002" : ["SQ", "SegmentSequence"], - "0003" : ["SQ", "SegmentedPropertyCategoryCodeSequence"], - "0004" : ["US", "SegmentNumber"], - "0005" : ["LO", "SegmentLabel"], - "0006" : ["ST", "SegmentDescription"], - "0008" : ["CS", "SegmentAlgorithmType"], - "0009" : ["LO", "SegmentAlgorithmName"], - "000A" : ["SQ", "SegmentIdentificationSequence"], - "000B" : ["US", "ReferencedSegmentNumber"], - "000C" : ["US", "RecommendedDisplayGrayscaleValue"], - "000D" : ["US", "RecommendedDisplayCIELabValue"], - "000E" : ["US", "MaximumFractionalValue"], - "000F" : ["SQ", "SegmentedPropertyTypeCodeSequence"], - "0010" : ["CS", "SegmentationFractionalType"] - }, - "0064" : { - "0002" : ["SQ", "DeformableRegistrationSequence"], - "0003" : ["UI", "SourceFrameOfReferenceUID"], - "0005" : ["SQ", "DeformableRegistrationGridSequence"], - "0007" : ["UL", "GridDimensions"], - "0008" : ["FD", "GridResolution"], - "0009" : ["OF", "VectorGridData"], - "000F" : ["SQ", "PreDeformationMatrixRegistrationSequence"], - "0010" : ["SQ", "PostDeformationMatrixRegistrationSequence"] - }, - "0066" : { - "0001" : ["UL", "NumberOfSurfaces"], - "0002" : ["SQ", "SurfaceSequence"], - "0003" : ["UL", "SurfaceNumber"], - "0004" : ["LT", "SurfaceComments"], - "0009" : ["CS", "SurfaceProcessing"], - "000A" : ["FL", "SurfaceProcessingRatio"], - "000B" : ["LO", "SurfaceProcessingDescription"], - "000C" : ["FL", "RecommendedPresentationOpacity"], - "000D" : ["CS", "RecommendedPresentationType"], - "000E" : ["CS", "FiniteVolume"], - "0010" : ["CS", "Manifold"], - "0011" : ["SQ", "SurfacePointsSequence"], - "0012" : ["SQ", "SurfacePointsNormalsSequence"], - "0013" : ["SQ", "SurfaceMeshPrimitivesSequence"], - "0015" : ["UL", "NumberOfSurfacePoints"], - "0016" : ["OF", "PointCoordinatesData"], - "0017" : ["FL", "PointPositionAccuracy"], - "0018" : ["FL", "MeanPointDistance"], - "0019" : ["FL", "MaximumPointDistance"], - "001A" : ["FL", "PointsBoundingBoxCoordinates"], - "001B" : ["FL", "AxisOfRotation"], - "001C" : ["FL", "CenterOfRotation"], - "001E" : ["UL", "NumberOfVectors"], - "001F" : ["US", "VectorDimensionality"], - "0020" : ["FL", "VectorAccuracy"], - "0021" : ["OF", "VectorCoordinateData"], - "0023" : ["OW", "TrianglePointIndexList"], - "0024" : ["OW", "EdgePointIndexList"], - "0025" : ["OW", "VertexPointIndexList"], - "0026" : ["SQ", "TriangleStripSequence"], - "0027" : ["SQ", "TriangleFanSequence"], - "0028" : ["SQ", "LineSequence"], - "0029" : ["OW", "PrimitivePointIndexList"], - "002A" : ["UL", "SurfaceCount"], - "002B" : ["SQ", "ReferencedSurfaceSequence"], - "002C" : ["UL", "ReferencedSurfaceNumber"], - "002D" : ["SQ", "SegmentSurfaceGenerationAlgorithmIdentificationSequence"], - "002E" : ["SQ", "SegmentSurfaceSourceInstanceSequence"], - "002F" : ["SQ", "AlgorithmFamilyCodeSequence"], - "0030" : ["SQ", "AlgorithmNameCodeSequence"], - "0031" : ["LO", "AlgorithmVersion"], - "0032" : ["LT", "AlgorithmParameters"], - "0034" : ["SQ", "FacetSequence"], - "0035" : ["SQ", "SurfaceProcessingAlgorithmIdentificationSequence"], - "0036" : ["LO", "AlgorithmName"] - }, - "0068" : { - "6210" : ["LO", "ImplantSize"], - "6221" : ["LO", "ImplantTemplateVersion"], - "6222" : ["SQ", "ReplacedImplantTemplateSequence"], - "6223" : ["CS", "ImplantType"], - "6224" : ["SQ", "DerivationImplantTemplateSequence"], - "6225" : ["SQ", "OriginalImplantTemplateSequence"], - "6226" : ["DT", "EffectiveDateTime"], - "6230" : ["SQ", "ImplantTargetAnatomySequence"], - "6260" : ["SQ", "InformationFromManufacturerSequence"], - "6265" : ["SQ", "NotificationFromManufacturerSequence"], - "6270" : ["DT", "InformationIssueDateTime"], - "6280" : ["ST", "InformationSummary"], - "62A0" : ["SQ", "ImplantRegulatoryDisapprovalCodeSequence"], - "62A5" : ["FD", "OverallTemplateSpatialTolerance"], - "62C0" : ["SQ", "HPGLDocumentSequence"], - "62D0" : ["US", "HPGLDocumentID"], - "62D5" : ["LO", "HPGLDocumentLabel"], - "62E0" : ["SQ", "ViewOrientationCodeSequence"], - "62F0" : ["FD", "ViewOrientationModifier"], - "62F2" : ["FD", "HPGLDocumentScaling"], - "6300" : ["OB", "HPGLDocument"], - "6310" : ["US", "HPGLContourPenNumber"], - "6320" : ["SQ", "HPGLPenSequence"], - "6330" : ["US", "HPGLPenNumber"], - "6340" : ["LO", "HPGLPenLabel"], - "6345" : ["ST", "HPGLPenDescription"], - "6346" : ["FD", "RecommendedRotationPoint"], - "6347" : ["FD", "BoundingRectangle"], - "6350" : ["US", "ImplantTemplate3DModelSurfaceNumber"], - "6360" : ["SQ", "SurfaceModelDescriptionSequence"], - "6380" : ["LO", "SurfaceModelLabel"], - "6390" : ["FD", "SurfaceModelScalingFactor"], - "63A0" : ["SQ", "MaterialsCodeSequence"], - "63A4" : ["SQ", "CoatingMaterialsCodeSequence"], - "63A8" : ["SQ", "ImplantTypeCodeSequence"], - "63AC" : ["SQ", "FixationMethodCodeSequence"], - "63B0" : ["SQ", "MatingFeatureSetsSequence"], - "63C0" : ["US", "MatingFeatureSetID"], - "63D0" : ["LO", "MatingFeatureSetLabel"], - "63E0" : ["SQ", "MatingFeatureSequence"], - "63F0" : ["US", "MatingFeatureID"], - "6400" : ["SQ", "MatingFeatureDegreeOfFreedomSequence"], - "6410" : ["US", "DegreeOfFreedomID"], - "6420" : ["CS", "DegreeOfFreedomType"], - "6430" : ["SQ", "TwoDMatingFeatureCoordinatesSequence"], - "6440" : ["US", "ReferencedHPGLDocumentID"], - "6450" : ["FD", "TwoDMatingPoint"], - "6460" : ["FD", "TwoDMatingAxes"], - "6470" : ["SQ", "TwoDDegreeOfFreedomSequence"], - "6490" : ["FD", "ThreeDDegreeOfFreedomAxis"], - "64A0" : ["FD", "RangeOfFreedom"], - "64C0" : ["FD", "ThreeDMatingPoint"], - "64D0" : ["FD", "ThreeDMatingAxes"], - "64F0" : ["FD", "TwoDDegreeOfFreedomAxis"], - "6500" : ["SQ", "PlanningLandmarkPointSequence"], - "6510" : ["SQ", "PlanningLandmarkLineSequence"], - "6520" : ["SQ", "PlanningLandmarkPlaneSequence"], - "6530" : ["US", "PlanningLandmarkID"], - "6540" : ["LO", "PlanningLandmarkDescription"], - "6545" : ["SQ", "PlanningLandmarkIdentificationCodeSequence"], - "6550" : ["SQ", "TwoDPointCoordinatesSequence"], - "6560" : ["FD", "TwoDPointCoordinates"], - "6590" : ["FD", "ThreeDPointCoordinates"], - "65A0" : ["SQ", "TwoDLineCoordinatesSequence"], - "65B0" : ["FD", "TwoDLineCoordinates"], - "65D0" : ["FD", "ThreeDLineCoordinates"], - "65E0" : ["SQ", "TwoDPlaneCoordinatesSequence"], - "65F0" : ["FD", "TwoDPlaneIntersection"], - "6610" : ["FD", "ThreeDPlaneOrigin"], - "6620" : ["FD", "ThreeDPlaneNormal"] - }, - "0070" : { - "0001" : ["SQ", "GraphicAnnotationSequence"], - "0002" : ["CS", "GraphicLayer"], - "0003" : ["CS", "BoundingBoxAnnotationUnits"], - "0004" : ["CS", "AnchorPointAnnotationUnits"], - "0005" : ["CS", "GraphicAnnotationUnits"], - "0006" : ["ST", "UnformattedTextValue"], - "0008" : ["SQ", "TextObjectSequence"], - "0009" : ["SQ", "GraphicObjectSequence"], - "0010" : ["FL", "BoundingBoxTopLeftHandCorner"], - "0011" : ["FL", "BoundingBoxBottomRightHandCorner"], - "0012" : ["CS", "BoundingBoxTextHorizontalJustification"], - "0014" : ["FL", "AnchorPoint"], - "0015" : ["CS", "AnchorPointVisibility"], - "0020" : ["US", "GraphicDimensions"], - "0021" : ["US", "NumberOfGraphicPoints"], - "0022" : ["FL", "GraphicData"], - "0023" : ["CS", "GraphicType"], - "0024" : ["CS", "GraphicFilled"], - "0040" : ["IS", "ImageRotationRetired"], - "0041" : ["CS", "ImageHorizontalFlip"], - "0042" : ["US", "ImageRotation"], - "0050" : ["US", "DisplayedAreaTopLeftHandCornerTrial"], - "0051" : ["US", "DisplayedAreaBottomRightHandCornerTrial"], - "0052" : ["SL", "DisplayedAreaTopLeftHandCorner"], - "0053" : ["SL", "DisplayedAreaBottomRightHandCorner"], - "005A" : ["SQ", "DisplayedAreaSelectionSequence"], - "0060" : ["SQ", "GraphicLayerSequence"], - "0062" : ["IS", "GraphicLayerOrder"], - "0066" : ["US", "GraphicLayerRecommendedDisplayGrayscaleValue"], - "0067" : ["US", "GraphicLayerRecommendedDisplayRGBValue"], - "0068" : ["LO", "GraphicLayerDescription"], - "0080" : ["CS", "ContentLabel"], - "0081" : ["LO", "ContentDescription"], - "0082" : ["DA", "PresentationCreationDate"], - "0083" : ["TM", "PresentationCreationTime"], - "0084" : ["PN", "ContentCreatorName"], - "0086" : ["SQ", "ContentCreatorIdentificationCodeSequence"], - "0087" : ["SQ", "AlternateContentDescriptionSequence"], - "0100" : ["CS", "PresentationSizeMode"], - "0101" : ["DS", "PresentationPixelSpacing"], - "0102" : ["IS", "PresentationPixelAspectRatio"], - "0103" : ["FL", "PresentationPixelMagnificationRatio"], - "0207" : ["LO", "GraphicGroupLabel"], - "0208" : ["ST", "GraphicGroupDescription"], - "0209" : ["SQ", "CompoundGraphicSequence"], - "0226" : ["UL", "CompoundGraphicInstanceID"], - "0227" : ["LO", "FontName"], - "0228" : ["CS", "FontNameType"], - "0229" : ["LO", "CSSFontName"], - "0230" : ["FD", "RotationAngle"], - "0231" : ["SQ", "TextStyleSequence"], - "0232" : ["SQ", "LineStyleSequence"], - "0233" : ["SQ", "FillStyleSequence"], - "0234" : ["SQ", "GraphicGroupSequence"], - "0241" : ["US", "TextColorCIELabValue"], - "0242" : ["CS", "HorizontalAlignment"], - "0243" : ["CS", "VerticalAlignment"], - "0244" : ["CS", "ShadowStyle"], - "0245" : ["FL", "ShadowOffsetX"], - "0246" : ["FL", "ShadowOffsetY"], - "0247" : ["US", "ShadowColorCIELabValue"], - "0248" : ["CS", "Underlined"], - "0249" : ["CS", "Bold"], - "0250" : ["CS", "Italic"], - "0251" : ["US", "PatternOnColorCIELabValue"], - "0252" : ["US", "PatternOffColorCIELabValue"], - "0253" : ["FL", "LineThickness"], - "0254" : ["CS", "LineDashingStyle"], - "0255" : ["UL", "LinePattern"], - "0256" : ["OB", "FillPattern"], - "0257" : ["CS", "FillMode"], - "0258" : ["FL", "ShadowOpacity"], - "0261" : ["FL", "GapLength"], - "0262" : ["FL", "DiameterOfVisibility"], - "0273" : ["FL", "RotationPoint"], - "0274" : ["CS", "TickAlignment"], - "0278" : ["CS", "ShowTickLabel"], - "0279" : ["CS", "TickLabelAlignment"], - "0282" : ["CS", "CompoundGraphicUnits"], - "0284" : ["FL", "PatternOnOpacity"], - "0285" : ["FL", "PatternOffOpacity"], - "0287" : ["SQ", "MajorTicksSequence"], - "0288" : ["FL", "TickPosition"], - "0289" : ["SH", "TickLabel"], - "0294" : ["CS", "CompoundGraphicType"], - "0295" : ["UL", "GraphicGroupID"], - "0306" : ["CS", "ShapeType"], - "0308" : ["SQ", "RegistrationSequence"], - "0309" : ["SQ", "MatrixRegistrationSequence"], - "030A" : ["SQ", "MatrixSequence"], - "030C" : ["CS", "FrameOfReferenceTransformationMatrixType"], - "030D" : ["SQ", "RegistrationTypeCodeSequence"], - "030F" : ["ST", "FiducialDescription"], - "0310" : ["SH", "FiducialIdentifier"], - "0311" : ["SQ", "FiducialIdentifierCodeSequence"], - "0312" : ["FD", "ContourUncertaintyRadius"], - "0314" : ["SQ", "UsedFiducialsSequence"], - "0318" : ["SQ", "GraphicCoordinatesDataSequence"], - "031A" : ["UI", "FiducialUID"], - "031C" : ["SQ", "FiducialSetSequence"], - "031E" : ["SQ", "FiducialSequence"], - "0401" : ["US", "GraphicLayerRecommendedDisplayCIELabValue"], - "0402" : ["SQ", "BlendingSequence"], - "0403" : ["FL", "RelativeOpacity"], - "0404" : ["SQ", "ReferencedSpatialRegistrationSequence"], - "0405" : ["CS", "BlendingPosition"] - }, - "0072" : { - "0002" : ["SH", "HangingProtocolName"], - "0004" : ["LO", "HangingProtocolDescription"], - "0006" : ["CS", "HangingProtocolLevel"], - "0008" : ["LO", "HangingProtocolCreator"], - "000A" : ["DT", "HangingProtocolCreationDateTime"], - "000C" : ["SQ", "HangingProtocolDefinitionSequence"], - "000E" : ["SQ", "HangingProtocolUserIdentificationCodeSequence"], - "0010" : ["LO", "HangingProtocolUserGroupName"], - "0012" : ["SQ", "SourceHangingProtocolSequence"], - "0014" : ["US", "NumberOfPriorsReferenced"], - "0020" : ["SQ", "ImageSetsSequence"], - "0022" : ["SQ", "ImageSetSelectorSequence"], - "0024" : ["CS", "ImageSetSelectorUsageFlag"], - "0026" : ["AT", "SelectorAttribute"], - "0028" : ["US", "SelectorValueNumber"], - "0030" : ["SQ", "TimeBasedImageSetsSequence"], - "0032" : ["US", "ImageSetNumber"], - "0034" : ["CS", "ImageSetSelectorCategory"], - "0038" : ["US", "RelativeTime"], - "003A" : ["CS", "RelativeTimeUnits"], - "003C" : ["SS", "AbstractPriorValue"], - "003E" : ["SQ", "AbstractPriorCodeSequence"], - "0040" : ["LO", "ImageSetLabel"], - "0050" : ["CS", "SelectorAttributeVR"], - "0052" : ["AT", "SelectorSequencePointer"], - "0054" : ["LO", "SelectorSequencePointerPrivateCreator"], - "0056" : ["LO", "SelectorAttributePrivateCreator"], - "0060" : ["AT", "SelectorATValue"], - "0062" : ["CS", "SelectorCSValue"], - "0064" : ["IS", "SelectorISValue"], - "0066" : ["LO", "SelectorLOValue"], - "0068" : ["LT", "SelectorLTValue"], - "006A" : ["PN", "SelectorPNValue"], - "006C" : ["SH", "SelectorSHValue"], - "006E" : ["ST", "SelectorSTValue"], - "0070" : ["UT", "SelectorUTValue"], - "0072" : ["DS", "SelectorDSValue"], - "0074" : ["FD", "SelectorFDValue"], - "0076" : ["FL", "SelectorFLValue"], - "0078" : ["UL", "SelectorULValue"], - "007A" : ["US", "SelectorUSValue"], - "007C" : ["SL", "SelectorSLValue"], - "007E" : ["SS", "SelectorSSValue"], - "0080" : ["SQ", "SelectorCodeSequenceValue"], - "0100" : ["US", "NumberOfScreens"], - "0102" : ["SQ", "NominalScreenDefinitionSequence"], - "0104" : ["US", "NumberOfVerticalPixels"], - "0106" : ["US", "NumberOfHorizontalPixels"], - "0108" : ["FD", "DisplayEnvironmentSpatialPosition"], - "010A" : ["US", "ScreenMinimumGrayscaleBitDepth"], - "010C" : ["US", "ScreenMinimumColorBitDepth"], - "010E" : ["US", "ApplicationMaximumRepaintTime"], - "0200" : ["SQ", "DisplaySetsSequence"], - "0202" : ["US", "DisplaySetNumber"], - "0203" : ["LO", "DisplaySetLabel"], - "0204" : ["US", "DisplaySetPresentationGroup"], - "0206" : ["LO", "DisplaySetPresentationGroupDescription"], - "0208" : ["CS", "PartialDataDisplayHandling"], - "0210" : ["SQ", "SynchronizedScrollingSequence"], - "0212" : ["US", "DisplaySetScrollingGroup"], - "0214" : ["SQ", "NavigationIndicatorSequence"], - "0216" : ["US", "NavigationDisplaySet"], - "0218" : ["US", "ReferenceDisplaySets"], - "0300" : ["SQ", "ImageBoxesSequence"], - "0302" : ["US", "ImageBoxNumber"], - "0304" : ["CS", "ImageBoxLayoutType"], - "0306" : ["US", "ImageBoxTileHorizontalDimension"], - "0308" : ["US", "ImageBoxTileVerticalDimension"], - "0310" : ["CS", "ImageBoxScrollDirection"], - "0312" : ["CS", "ImageBoxSmallScrollType"], - "0314" : ["US", "ImageBoxSmallScrollAmount"], - "0316" : ["CS", "ImageBoxLargeScrollType"], - "0318" : ["US", "ImageBoxLargeScrollAmount"], - "0320" : ["US", "ImageBoxOverlapPriority"], - "0330" : ["FD", "CineRelativeToRealTime"], - "0400" : ["SQ", "FilterOperationsSequence"], - "0402" : ["CS", "FilterByCategory"], - "0404" : ["CS", "FilterByAttributePresence"], - "0406" : ["CS", "FilterByOperator"], - "0420" : ["US", "StructuredDisplayBackgroundCIELabValue"], - "0421" : ["US", "EmptyImageBoxCIELabValue"], - "0422" : ["SQ", "StructuredDisplayImageBoxSequence"], - "0424" : ["SQ", "StructuredDisplayTextBoxSequence"], - "0427" : ["SQ", "ReferencedFirstFrameSequence"], - "0430" : ["SQ", "ImageBoxSynchronizationSequence"], - "0432" : ["US", "SynchronizedImageBoxList"], - "0434" : ["CS", "TypeOfSynchronization"], - "0500" : ["CS", "BlendingOperationType"], - "0510" : ["CS", "ReformattingOperationType"], - "0512" : ["FD", "ReformattingThickness"], - "0514" : ["FD", "ReformattingInterval"], - "0516" : ["CS", "ReformattingOperationInitialViewDirection"], - "0520" : ["CS", "ThreeDRenderingType"], - "0600" : ["SQ", "SortingOperationsSequence"], - "0602" : ["CS", "SortByCategory"], - "0604" : ["CS", "SortingDirection"], - "0700" : ["CS", "DisplaySetPatientOrientation"], - "0702" : ["CS", "VOIType"], - "0704" : ["CS", "PseudoColorType"], - "0705" : ["SQ", "PseudoColorPaletteInstanceReferenceSequence"], - "0706" : ["CS", "ShowGrayscaleInverted"], - "0710" : ["CS", "ShowImageTrueSizeFlag"], - "0712" : ["CS", "ShowGraphicAnnotationFlag"], - "0714" : ["CS", "ShowPatientDemographicsFlag"], - "0716" : ["CS", "ShowAcquisitionTechniquesFlag"], - "0717" : ["CS", "DisplaySetHorizontalJustification"], - "0718" : ["CS", "DisplaySetVerticalJustification"] - }, - "0074" : { - "0120" : ["FD", "ContinuationStartMeterset"], - "0121" : ["FD", "ContinuationEndMeterset"], - "1000" : ["CS", "ProcedureStepState"], - "1002" : ["SQ", "ProcedureStepProgressInformationSequence"], - "1004" : ["DS", "ProcedureStepProgress"], - "1006" : ["ST", "ProcedureStepProgressDescription"], - "1008" : ["SQ", "ProcedureStepCommunicationsURISequence"], - "100A" : ["ST", "ContactURI"], - "100C" : ["LO", "ContactDisplayName"], - "100E" : ["SQ", "ProcedureStepDiscontinuationReasonCodeSequence"], - "1020" : ["SQ", "BeamTaskSequence"], - "1022" : ["CS", "BeamTaskType"], - "1024" : ["IS", "BeamOrderIndexTrial"], - "1026" : ["FD", "TableTopVerticalAdjustedPosition"], - "1027" : ["FD", "TableTopLongitudinalAdjustedPosition"], - "1028" : ["FD", "TableTopLateralAdjustedPosition"], - "102A" : ["FD", "PatientSupportAdjustedAngle"], - "102B" : ["FD", "TableTopEccentricAdjustedAngle"], - "102C" : ["FD", "TableTopPitchAdjustedAngle"], - "102D" : ["FD", "TableTopRollAdjustedAngle"], - "1030" : ["SQ", "DeliveryVerificationImageSequence"], - "1032" : ["CS", "VerificationImageTiming"], - "1034" : ["CS", "DoubleExposureFlag"], - "1036" : ["CS", "DoubleExposureOrdering"], - "1038" : ["DS", "DoubleExposureMetersetTrial"], - "103A" : ["DS", "DoubleExposureFieldDeltaTrial"], - "1040" : ["SQ", "RelatedReferenceRTImageSequence"], - "1042" : ["SQ", "GeneralMachineVerificationSequence"], - "1044" : ["SQ", "ConventionalMachineVerificationSequence"], - "1046" : ["SQ", "IonMachineVerificationSequence"], - "1048" : ["SQ", "FailedAttributesSequence"], - "104A" : ["SQ", "OverriddenAttributesSequence"], - "104C" : ["SQ", "ConventionalControlPointVerificationSequence"], - "104E" : ["SQ", "IonControlPointVerificationSequence"], - "1050" : ["SQ", "AttributeOccurrenceSequence"], - "1052" : ["AT", "AttributeOccurrencePointer"], - "1054" : ["UL", "AttributeItemSelector"], - "1056" : ["LO", "AttributeOccurrencePrivateCreator"], - "1057" : ["IS", "SelectorSequencePointerItems"], - "1200" : ["CS", "ScheduledProcedureStepPriority"], - "1202" : ["LO", "WorklistLabel"], - "1204" : ["LO", "ProcedureStepLabel"], - "1210" : ["SQ", "ScheduledProcessingParametersSequence"], - "1212" : ["SQ", "PerformedProcessingParametersSequence"], - "1216" : ["SQ", "UnifiedProcedureStepPerformedProcedureSequence"], - "1220" : ["SQ", "RelatedProcedureStepSequence"], - "1222" : ["LO", "ProcedureStepRelationshipType"], - "1224" : ["SQ", "ReplacedProcedureStepSequence"], - "1230" : ["LO", "DeletionLock"], - "1234" : ["AE", "ReceivingAE"], - "1236" : ["AE", "RequestingAE"], - "1238" : ["LT", "ReasonForCancellation"], - "1242" : ["CS", "SCPStatus"], - "1244" : ["CS", "SubscriptionListStatus"], - "1246" : ["CS", "UnifiedProcedureStepListStatus"], - "1324" : ["UL", "BeamOrderIndex"], - "1338" : ["FD", "DoubleExposureMeterset"], - "133A" : ["FD", "DoubleExposureFieldDelta"] - }, - "0076" : { - "0001" : ["LO", "ImplantAssemblyTemplateName"], - "0003" : ["LO", "ImplantAssemblyTemplateIssuer"], - "0006" : ["LO", "ImplantAssemblyTemplateVersion"], - "0008" : ["SQ", "ReplacedImplantAssemblyTemplateSequence"], - "000A" : ["CS", "ImplantAssemblyTemplateType"], - "000C" : ["SQ", "OriginalImplantAssemblyTemplateSequence"], - "000E" : ["SQ", "DerivationImplantAssemblyTemplateSequence"], - "0010" : ["SQ", "ImplantAssemblyTemplateTargetAnatomySequence"], - "0020" : ["SQ", "ProcedureTypeCodeSequence"], - "0030" : ["LO", "SurgicalTechnique"], - "0032" : ["SQ", "ComponentTypesSequence"], - "0034" : ["CS", "ComponentTypeCodeSequence"], - "0036" : ["CS", "ExclusiveComponentType"], - "0038" : ["CS", "MandatoryComponentType"], - "0040" : ["SQ", "ComponentSequence"], - "0055" : ["US", "ComponentID"], - "0060" : ["SQ", "ComponentAssemblySequence"], - "0070" : ["US", "Component1ReferencedID"], - "0080" : ["US", "Component1ReferencedMatingFeatureSetID"], - "0090" : ["US", "Component1ReferencedMatingFeatureID"], - "00A0" : ["US", "Component2ReferencedID"], - "00B0" : ["US", "Component2ReferencedMatingFeatureSetID"], - "00C0" : ["US", "Component2ReferencedMatingFeatureID"] - }, - "0078" : { - "0001" : ["LO", "ImplantTemplateGroupName"], - "0010" : ["ST", "ImplantTemplateGroupDescription"], - "0020" : ["LO", "ImplantTemplateGroupIssuer"], - "0024" : ["LO", "ImplantTemplateGroupVersion"], - "0026" : ["SQ", "ReplacedImplantTemplateGroupSequence"], - "0028" : ["SQ", "ImplantTemplateGroupTargetAnatomySequence"], - "002A" : ["SQ", "ImplantTemplateGroupMembersSequence"], - "002E" : ["US", "ImplantTemplateGroupMemberID"], - "0050" : ["FD", "ThreeDImplantTemplateGroupMemberMatchingPoint"], - "0060" : ["FD", "ThreeDImplantTemplateGroupMemberMatchingAxes"], - "0070" : ["SQ", "ImplantTemplateGroupMemberMatching2DCoordinatesSequence"], - "0090" : ["FD", "TwoDImplantTemplateGroupMemberMatchingPoint"], - "00A0" : ["FD", "TwoDImplantTemplateGroupMemberMatchingAxes"], - "00B0" : ["SQ", "ImplantTemplateGroupVariationDimensionSequence"], - "00B2" : ["LO", "ImplantTemplateGroupVariationDimensionName"], - "00B4" : ["SQ", "ImplantTemplateGroupVariationDimensionRankSequence"], - "00B6" : ["US", "ReferencedImplantTemplateGroupMemberID"], - "00B8" : ["US", "ImplantTemplateGroupVariationDimensionRank"] - }, - "0088" : { - "0130" : ["SH", "StorageMediaFileSetID"], - "0140" : ["UI", "StorageMediaFileSetUID"], - "0200" : ["SQ", "IconImageSequence"], - "0904" : ["LO", "TopicTitle"], - "0906" : ["ST", "TopicSubject"], - "0910" : ["LO", "TopicAuthor"], - "0912" : ["LO", "TopicKeywords"] - }, - "0100" : { - "0410" : ["CS", "SOPInstanceStatus"], - "0420" : ["DT", "SOPAuthorizationDateTime"], - "0424" : ["LT", "SOPAuthorizationComment"], - "0426" : ["LO", "AuthorizationEquipmentCertificationNumber"] - }, - "0400" : { - "0005" : ["US", "MACIDNumber"], - "0010" : ["UI", "MACCalculationTransferSyntaxUID"], - "0015" : ["CS", "MACAlgorithm"], - "0020" : ["AT", "DataElementsSigned"], - "0100" : ["UI", "DigitalSignatureUID"], - "0105" : ["DT", "DigitalSignatureDateTime"], - "0110" : ["CS", "CertificateType"], - "0115" : ["OB", "CertificateOfSigner"], - "0120" : ["OB", "Signature"], - "0305" : ["CS", "CertifiedTimestampType"], - "0310" : ["OB", "CertifiedTimestamp"], - "0401" : ["SQ", "DigitalSignaturePurposeCodeSequence"], - "0402" : ["SQ", "ReferencedDigitalSignatureSequence"], - "0403" : ["SQ", "ReferencedSOPInstanceMACSequence"], - "0404" : ["OB", "MAC"], - "0500" : ["SQ", "EncryptedAttributesSequence"], - "0510" : ["UI", "EncryptedContentTransferSyntaxUID"], - "0520" : ["OB", "EncryptedContent"], - "0550" : ["SQ", "ModifiedAttributesSequence"], - "0561" : ["SQ", "OriginalAttributesSequence"], - "0562" : ["DT", "AttributeModificationDateTime"], - "0563" : ["LO", "ModifyingSystem"], - "0564" : ["LO", "SourceOfPreviousValues"], - "0565" : ["CS", "ReasonForTheAttributeModification"] - }, - "2000" : { - "0010" : ["IS", "NumberOfCopies"], - "001E" : ["SQ", "PrinterConfigurationSequence"], - "0020" : ["CS", "PrintPriority"], - "0030" : ["CS", "MediumType"], - "0040" : ["CS", "FilmDestination"], - "0050" : ["LO", "FilmSessionLabel"], - "0060" : ["IS", "MemoryAllocation"], - "0061" : ["IS", "MaximumMemoryAllocation"], - "0062" : ["CS", "ColorImagePrintingFlag"], - "0063" : ["CS", "CollationFlag"], - "0065" : ["CS", "AnnotationFlag"], - "0067" : ["CS", "ImageOverlayFlag"], - "0069" : ["CS", "PresentationLUTFlag"], - "006A" : ["CS", "ImageBoxPresentationLUTFlag"], - "00A0" : ["US", "MemoryBitDepth"], - "00A1" : ["US", "PrintingBitDepth"], - "00A2" : ["SQ", "MediaInstalledSequence"], - "00A4" : ["SQ", "OtherMediaAvailableSequence"], - "00A8" : ["SQ", "SupportedImageDisplayFormatsSequence"], - "0500" : ["SQ", "ReferencedFilmBoxSequence"], - "0510" : ["SQ", "ReferencedStoredPrintSequence"] - }, - "2010" : { - "0010" : ["ST", "ImageDisplayFormat"], - "0030" : ["CS", "AnnotationDisplayFormatID"], - "0040" : ["CS", "FilmOrientation"], - "0050" : ["CS", "FilmSizeID"], - "0052" : ["CS", "PrinterResolutionID"], - "0054" : ["CS", "DefaultPrinterResolutionID"], - "0060" : ["CS", "MagnificationType"], - "0080" : ["CS", "SmoothingType"], - "00A6" : ["CS", "DefaultMagnificationType"], - "00A7" : ["CS", "OtherMagnificationTypesAvailable"], - "00A8" : ["CS", "DefaultSmoothingType"], - "00A9" : ["CS", "OtherSmoothingTypesAvailable"], - "0100" : ["CS", "BorderDensity"], - "0110" : ["CS", "EmptyImageDensity"], - "0120" : ["US", "MinDensity"], - "0130" : ["US", "MaxDensity"], - "0140" : ["CS", "Trim"], - "0150" : ["ST", "ConfigurationInformation"], - "0152" : ["LT", "ConfigurationInformationDescription"], - "0154" : ["IS", "MaximumCollatedFilms"], - "015E" : ["US", "Illumination"], - "0160" : ["US", "ReflectedAmbientLight"], - "0376" : ["DS", "PrinterPixelSpacing"], - "0500" : ["SQ", "ReferencedFilmSessionSequence"], - "0510" : ["SQ", "ReferencedImageBoxSequence"], - "0520" : ["SQ", "ReferencedBasicAnnotationBoxSequence"] - }, - "2020" : { - "0010" : ["US", "ImageBoxPosition"], - "0020" : ["CS", "Polarity"], - "0030" : ["DS", "RequestedImageSize"], - "0040" : ["CS", "RequestedDecimateCropBehavior"], - "0050" : ["CS", "RequestedResolutionID"], - "00A0" : ["CS", "RequestedImageSizeFlag"], - "00A2" : ["CS", "DecimateCropResult"], - "0110" : ["SQ", "BasicGrayscaleImageSequence"], - "0111" : ["SQ", "BasicColorImageSequence"], - "0130" : ["SQ", "ReferencedImageOverlayBoxSequence"], - "0140" : ["SQ", "ReferencedVOILUTBoxSequence"] - }, - "2030" : { - "0010" : ["US", "AnnotationPosition"], - "0020" : ["LO", "TextString"] - }, - "2040" : { - "0010" : ["SQ", "ReferencedOverlayPlaneSequence"], - "0011" : ["US", "ReferencedOverlayPlaneGroups"], - "0020" : ["SQ", "OverlayPixelDataSequence"], - "0060" : ["CS", "OverlayMagnificationType"], - "0070" : ["CS", "OverlaySmoothingType"], - "0072" : ["CS", "OverlayOrImageMagnification"], - "0074" : ["US", "MagnifyToNumberOfColumns"], - "0080" : ["CS", "OverlayForegroundDensity"], - "0082" : ["CS", "OverlayBackgroundDensity"], - "0090" : ["CS", "OverlayMode"], - "0100" : ["CS", "ThresholdDensity"], - "0500" : ["SQ", "ReferencedImageBoxSequenceRetired"] - }, - "2050" : { - "0010" : ["SQ", "PresentationLUTSequence"], - "0020" : ["CS", "PresentationLUTShape"], - "0500" : ["SQ", "ReferencedPresentationLUTSequence"] - }, - "2100" : { - "0010" : ["SH", "PrintJobID"], - "0020" : ["CS", "ExecutionStatus"], - "0030" : ["CS", "ExecutionStatusInfo"], - "0040" : ["DA", "CreationDate"], - "0050" : ["TM", "CreationTime"], - "0070" : ["AE", "Originator"], - "0140" : ["AE", "DestinationAE"], - "0160" : ["SH", "OwnerID"], - "0170" : ["IS", "NumberOfFilms"], - "0500" : ["SQ", "ReferencedPrintJobSequencePullStoredPrint"] - }, - "2110" : { - "0010" : ["CS", "PrinterStatus"], - "0020" : ["CS", "PrinterStatusInfo"], - "0030" : ["LO", "PrinterName"], - "0099" : ["SH", "PrintQueueID"] - }, - "2120" : { - "0010" : ["CS", "QueueStatus"], - "0050" : ["SQ", "PrintJobDescriptionSequence"], - "0070" : ["SQ", "ReferencedPrintJobSequence"] - }, - "2130" : { - "0010" : ["SQ", "PrintManagementCapabilitiesSequence"], - "0015" : ["SQ", "PrinterCharacteristicsSequence"], - "0030" : ["SQ", "FilmBoxContentSequence"], - "0040" : ["SQ", "ImageBoxContentSequence"], - "0050" : ["SQ", "AnnotationContentSequence"], - "0060" : ["SQ", "ImageOverlayBoxContentSequence"], - "0080" : ["SQ", "PresentationLUTContentSequence"], - "00A0" : ["SQ", "ProposedStudySequence"], - "00C0" : ["SQ", "OriginalImageSequence"] - }, - "2200" : { - "0001" : ["CS", "LabelUsingInformationExtractedFromInstances"], - "0002" : ["UT", "LabelText"], - "0003" : ["CS", "LabelStyleSelection"], - "0004" : ["LT", "MediaDisposition"], - "0005" : ["LT", "BarcodeValue"], - "0006" : ["CS", "BarcodeSymbology"], - "0007" : ["CS", "AllowMediaSplitting"], - "0008" : ["CS", "IncludeNonDICOMObjects"], - "0009" : ["CS", "IncludeDisplayApplication"], - "000A" : ["CS", "PreserveCompositeInstancesAfterMediaCreation"], - "000B" : ["US", "TotalNumberOfPiecesOfMediaCreated"], - "000C" : ["LO", "RequestedMediaApplicationProfile"], - "000D" : ["SQ", "ReferencedStorageMediaSequence"], - "000E" : ["AT", "FailureAttributes"], - "000F" : ["CS", "AllowLossyCompression"], - "0020" : ["CS", "RequestPriority"] - }, - "3002" : { - "0002" : ["SH", "RTImageLabel"], - "0003" : ["LO", "RTImageName"], - "0004" : ["ST", "RTImageDescription"], - "000A" : ["CS", "ReportedValuesOrigin"], - "000C" : ["CS", "RTImagePlane"], - "000D" : ["DS", "XRayImageReceptorTranslation"], - "000E" : ["DS", "XRayImageReceptorAngle"], - "0010" : ["DS", "RTImageOrientation"], - "0011" : ["DS", "ImagePlanePixelSpacing"], - "0012" : ["DS", "RTImagePosition"], - "0020" : ["SH", "RadiationMachineName"], - "0022" : ["DS", "RadiationMachineSAD"], - "0024" : ["DS", "RadiationMachineSSD"], - "0026" : ["DS", "RTImageSID"], - "0028" : ["DS", "SourceToReferenceObjectDistance"], - "0029" : ["IS", "FractionNumber"], - "0030" : ["SQ", "ExposureSequence"], - "0032" : ["DS", "MetersetExposure"], - "0034" : ["DS", "DiaphragmPosition"], - "0040" : ["SQ", "FluenceMapSequence"], - "0041" : ["CS", "FluenceDataSource"], - "0042" : ["DS", "FluenceDataScale"], - "0050" : ["SQ", "PrimaryFluenceModeSequence"], - "0051" : ["CS", "FluenceMode"], - "0052" : ["SH", "FluenceModeID"] - }, - "3004" : { - "0001" : ["CS", "DVHType"], - "0002" : ["CS", "DoseUnits"], - "0004" : ["CS", "DoseType"], - "0006" : ["LO", "DoseComment"], - "0008" : ["DS", "NormalizationPoint"], - "000A" : ["CS", "DoseSummationType"], - "000C" : ["DS", "GridFrameOffsetVector"], - "000E" : ["DS", "DoseGridScaling"], - "0010" : ["SQ", "RTDoseROISequence"], - "0012" : ["DS", "DoseValue"], - "0014" : ["CS", "TissueHeterogeneityCorrection"], - "0040" : ["DS", "DVHNormalizationPoint"], - "0042" : ["DS", "DVHNormalizationDoseValue"], - "0050" : ["SQ", "DVHSequence"], - "0052" : ["DS", "DVHDoseScaling"], - "0054" : ["CS", "DVHVolumeUnits"], - "0056" : ["IS", "DVHNumberOfBins"], - "0058" : ["DS", "DVHData"], - "0060" : ["SQ", "DVHReferencedROISequence"], - "0062" : ["CS", "DVHROIContributionType"], - "0070" : ["DS", "DVHMinimumDose"], - "0072" : ["DS", "DVHMaximumDose"], - "0074" : ["DS", "DVHMeanDose"] - }, - "3006" : { - "0002" : ["SH", "StructureSetLabel"], - "0004" : ["LO", "StructureSetName"], - "0006" : ["ST", "StructureSetDescription"], - "0008" : ["DA", "StructureSetDate"], - "0009" : ["TM", "StructureSetTime"], - "0010" : ["SQ", "ReferencedFrameOfReferenceSequence"], - "0012" : ["SQ", "RTReferencedStudySequence"], - "0014" : ["SQ", "RTReferencedSeriesSequence"], - "0016" : ["SQ", "ContourImageSequence"], - "0020" : ["SQ", "StructureSetROISequence"], - "0022" : ["IS", "ROINumber"], - "0024" : ["UI", "ReferencedFrameOfReferenceUID"], - "0026" : ["LO", "ROIName"], - "0028" : ["ST", "ROIDescription"], - "002A" : ["IS", "ROIDisplayColor"], - "002C" : ["DS", "ROIVolume"], - "0030" : ["SQ", "RTRelatedROISequence"], - "0033" : ["CS", "RTROIRelationship"], - "0036" : ["CS", "ROIGenerationAlgorithm"], - "0038" : ["LO", "ROIGenerationDescription"], - "0039" : ["SQ", "ROIContourSequence"], - "0040" : ["SQ", "ContourSequence"], - "0042" : ["CS", "ContourGeometricType"], - "0044" : ["DS", "ContourSlabThickness"], - "0045" : ["DS", "ContourOffsetVector"], - "0046" : ["IS", "NumberOfContourPoints"], - "0048" : ["IS", "ContourNumber"], - "0049" : ["IS", "AttachedContours"], - "0050" : ["DS", "ContourData"], - "0080" : ["SQ", "RTROIObservationsSequence"], - "0082" : ["IS", "ObservationNumber"], - "0084" : ["IS", "ReferencedROINumber"], - "0085" : ["SH", "ROIObservationLabel"], - "0086" : ["SQ", "RTROIIdentificationCodeSequence"], - "0088" : ["ST", "ROIObservationDescription"], - "00A0" : ["SQ", "RelatedRTROIObservationsSequence"], - "00A4" : ["CS", "RTROIInterpretedType"], - "00A6" : ["PN", "ROIInterpreter"], - "00B0" : ["SQ", "ROIPhysicalPropertiesSequence"], - "00B2" : ["CS", "ROIPhysicalProperty"], - "00B4" : ["DS", "ROIPhysicalPropertyValue"], - "00B6" : ["SQ", "ROIElementalCompositionSequence"], - "00B7" : ["US", "ROIElementalCompositionAtomicNumber"], - "00B8" : ["FL", "ROIElementalCompositionAtomicMassFraction"], - "00C0" : ["SQ", "FrameOfReferenceRelationshipSequence"], - "00C2" : ["UI", "RelatedFrameOfReferenceUID"], - "00C4" : ["CS", "FrameOfReferenceTransformationType"], - "00C6" : ["DS", "FrameOfReferenceTransformationMatrix"], - "00C8" : ["LO", "FrameOfReferenceTransformationComment"] - }, - "3008" : { - "0010" : ["SQ", "MeasuredDoseReferenceSequence"], - "0012" : ["ST", "MeasuredDoseDescription"], - "0014" : ["CS", "MeasuredDoseType"], - "0016" : ["DS", "MeasuredDoseValue"], - "0020" : ["SQ", "TreatmentSessionBeamSequence"], - "0021" : ["SQ", "TreatmentSessionIonBeamSequence"], - "0022" : ["IS", "CurrentFractionNumber"], - "0024" : ["DA", "TreatmentControlPointDate"], - "0025" : ["TM", "TreatmentControlPointTime"], - "002A" : ["CS", "TreatmentTerminationStatus"], - "002B" : ["SH", "TreatmentTerminationCode"], - "002C" : ["CS", "TreatmentVerificationStatus"], - "0030" : ["SQ", "ReferencedTreatmentRecordSequence"], - "0032" : ["DS", "SpecifiedPrimaryMeterset"], - "0033" : ["DS", "SpecifiedSecondaryMeterset"], - "0036" : ["DS", "DeliveredPrimaryMeterset"], - "0037" : ["DS", "DeliveredSecondaryMeterset"], - "003A" : ["DS", "SpecifiedTreatmentTime"], - "003B" : ["DS", "DeliveredTreatmentTime"], - "0040" : ["SQ", "ControlPointDeliverySequence"], - "0041" : ["SQ", "IonControlPointDeliverySequence"], - "0042" : ["DS", "SpecifiedMeterset"], - "0044" : ["DS", "DeliveredMeterset"], - "0045" : ["FL", "MetersetRateSet"], - "0046" : ["FL", "MetersetRateDelivered"], - "0047" : ["FL", "ScanSpotMetersetsDelivered"], - "0048" : ["DS", "DoseRateDelivered"], - "0050" : ["SQ", "TreatmentSummaryCalculatedDoseReferenceSequence"], - "0052" : ["DS", "CumulativeDoseToDoseReference"], - "0054" : ["DA", "FirstTreatmentDate"], - "0056" : ["DA", "MostRecentTreatmentDate"], - "005A" : ["IS", "NumberOfFractionsDelivered"], - "0060" : ["SQ", "OverrideSequence"], - "0061" : ["AT", "ParameterSequencePointer"], - "0062" : ["AT", "OverrideParameterPointer"], - "0063" : ["IS", "ParameterItemIndex"], - "0064" : ["IS", "MeasuredDoseReferenceNumber"], - "0065" : ["AT", "ParameterPointer"], - "0066" : ["ST", "OverrideReason"], - "0068" : ["SQ", "CorrectedParameterSequence"], - "006A" : ["FL", "CorrectionValue"], - "0070" : ["SQ", "CalculatedDoseReferenceSequence"], - "0072" : ["IS", "CalculatedDoseReferenceNumber"], - "0074" : ["ST", "CalculatedDoseReferenceDescription"], - "0076" : ["DS", "CalculatedDoseReferenceDoseValue"], - "0078" : ["DS", "StartMeterset"], - "007A" : ["DS", "EndMeterset"], - "0080" : ["SQ", "ReferencedMeasuredDoseReferenceSequence"], - "0082" : ["IS", "ReferencedMeasuredDoseReferenceNumber"], - "0090" : ["SQ", "ReferencedCalculatedDoseReferenceSequence"], - "0092" : ["IS", "ReferencedCalculatedDoseReferenceNumber"], - "00A0" : ["SQ", "BeamLimitingDeviceLeafPairsSequence"], - "00B0" : ["SQ", "RecordedWedgeSequence"], - "00C0" : ["SQ", "RecordedCompensatorSequence"], - "00D0" : ["SQ", "RecordedBlockSequence"], - "00E0" : ["SQ", "TreatmentSummaryMeasuredDoseReferenceSequence"], - "00F0" : ["SQ", "RecordedSnoutSequence"], - "00F2" : ["SQ", "RecordedRangeShifterSequence"], - "00F4" : ["SQ", "RecordedLateralSpreadingDeviceSequence"], - "00F6" : ["SQ", "RecordedRangeModulatorSequence"], - "0100" : ["SQ", "RecordedSourceSequence"], - "0105" : ["LO", "SourceSerialNumber"], - "0110" : ["SQ", "TreatmentSessionApplicationSetupSequence"], - "0116" : ["CS", "ApplicationSetupCheck"], - "0120" : ["SQ", "RecordedBrachyAccessoryDeviceSequence"], - "0122" : ["IS", "ReferencedBrachyAccessoryDeviceNumber"], - "0130" : ["SQ", "RecordedChannelSequence"], - "0132" : ["DS", "SpecifiedChannelTotalTime"], - "0134" : ["DS", "DeliveredChannelTotalTime"], - "0136" : ["IS", "SpecifiedNumberOfPulses"], - "0138" : ["IS", "DeliveredNumberOfPulses"], - "013A" : ["DS", "SpecifiedPulseRepetitionInterval"], - "013C" : ["DS", "DeliveredPulseRepetitionInterval"], - "0140" : ["SQ", "RecordedSourceApplicatorSequence"], - "0142" : ["IS", "ReferencedSourceApplicatorNumber"], - "0150" : ["SQ", "RecordedChannelShieldSequence"], - "0152" : ["IS", "ReferencedChannelShieldNumber"], - "0160" : ["SQ", "BrachyControlPointDeliveredSequence"], - "0162" : ["DA", "SafePositionExitDate"], - "0164" : ["TM", "SafePositionExitTime"], - "0166" : ["DA", "SafePositionReturnDate"], - "0168" : ["TM", "SafePositionReturnTime"], - "0200" : ["CS", "CurrentTreatmentStatus"], - "0202" : ["ST", "TreatmentStatusComment"], - "0220" : ["SQ", "FractionGroupSummarySequence"], - "0223" : ["IS", "ReferencedFractionNumber"], - "0224" : ["CS", "FractionGroupType"], - "0230" : ["CS", "BeamStopperPosition"], - "0240" : ["SQ", "FractionStatusSummarySequence"], - "0250" : ["DA", "TreatmentDate"], - "0251" : ["TM", "TreatmentTime"] - }, - "300A" : { - "0002" : ["SH", "RTPlanLabel"], - "0003" : ["LO", "RTPlanName"], - "0004" : ["ST", "RTPlanDescription"], - "0006" : ["DA", "RTPlanDate"], - "0007" : ["TM", "RTPlanTime"], - "0009" : ["LO", "TreatmentProtocols"], - "000A" : ["CS", "PlanIntent"], - "000B" : ["LO", "TreatmentSites"], - "000C" : ["CS", "RTPlanGeometry"], - "000E" : ["ST", "PrescriptionDescription"], - "0010" : ["SQ", "DoseReferenceSequence"], - "0012" : ["IS", "DoseReferenceNumber"], - "0013" : ["UI", "DoseReferenceUID"], - "0014" : ["CS", "DoseReferenceStructureType"], - "0015" : ["CS", "NominalBeamEnergyUnit"], - "0016" : ["LO", "DoseReferenceDescription"], - "0018" : ["DS", "DoseReferencePointCoordinates"], - "001A" : ["DS", "NominalPriorDose"], - "0020" : ["CS", "DoseReferenceType"], - "0021" : ["DS", "ConstraintWeight"], - "0022" : ["DS", "DeliveryWarningDose"], - "0023" : ["DS", "DeliveryMaximumDose"], - "0025" : ["DS", "TargetMinimumDose"], - "0026" : ["DS", "TargetPrescriptionDose"], - "0027" : ["DS", "TargetMaximumDose"], - "0028" : ["DS", "TargetUnderdoseVolumeFraction"], - "002A" : ["DS", "OrganAtRiskFullVolumeDose"], - "002B" : ["DS", "OrganAtRiskLimitDose"], - "002C" : ["DS", "OrganAtRiskMaximumDose"], - "002D" : ["DS", "OrganAtRiskOverdoseVolumeFraction"], - "0040" : ["SQ", "ToleranceTableSequence"], - "0042" : ["IS", "ToleranceTableNumber"], - "0043" : ["SH", "ToleranceTableLabel"], - "0044" : ["DS", "GantryAngleTolerance"], - "0046" : ["DS", "BeamLimitingDeviceAngleTolerance"], - "0048" : ["SQ", "BeamLimitingDeviceToleranceSequence"], - "004A" : ["DS", "BeamLimitingDevicePositionTolerance"], - "004B" : ["FL", "SnoutPositionTolerance"], - "004C" : ["DS", "PatientSupportAngleTolerance"], - "004E" : ["DS", "TableTopEccentricAngleTolerance"], - "004F" : ["FL", "TableTopPitchAngleTolerance"], - "0050" : ["FL", "TableTopRollAngleTolerance"], - "0051" : ["DS", "TableTopVerticalPositionTolerance"], - "0052" : ["DS", "TableTopLongitudinalPositionTolerance"], - "0053" : ["DS", "TableTopLateralPositionTolerance"], - "0055" : ["CS", "RTPlanRelationship"], - "0070" : ["SQ", "FractionGroupSequence"], - "0071" : ["IS", "FractionGroupNumber"], - "0072" : ["LO", "FractionGroupDescription"], - "0078" : ["IS", "NumberOfFractionsPlanned"], - "0079" : ["IS", "NumberOfFractionPatternDigitsPerDay"], - "007A" : ["IS", "RepeatFractionCycleLength"], - "007B" : ["LT", "FractionPattern"], - "0080" : ["IS", "NumberOfBeams"], - "0082" : ["DS", "BeamDoseSpecificationPoint"], - "0084" : ["DS", "BeamDose"], - "0086" : ["DS", "BeamMeterset"], - "0088" : ["FL", "BeamDosePointDepth"], - "0089" : ["FL", "BeamDosePointEquivalentDepth"], - "008A" : ["FL", "BeamDosePointSSD"], - "00A0" : ["IS", "NumberOfBrachyApplicationSetups"], - "00A2" : ["DS", "BrachyApplicationSetupDoseSpecificationPoint"], - "00A4" : ["DS", "BrachyApplicationSetupDose"], - "00B0" : ["SQ", "BeamSequence"], - "00B2" : ["SH", "TreatmentMachineName"], - "00B3" : ["CS", "PrimaryDosimeterUnit"], - "00B4" : ["DS", "SourceAxisDistance"], - "00B6" : ["SQ", "BeamLimitingDeviceSequence"], - "00B8" : ["CS", "RTBeamLimitingDeviceType"], - "00BA" : ["DS", "SourceToBeamLimitingDeviceDistance"], - "00BB" : ["FL", "IsocenterToBeamLimitingDeviceDistance"], - "00BC" : ["IS", "NumberOfLeafJawPairs"], - "00BE" : ["DS", "LeafPositionBoundaries"], - "00C0" : ["IS", "BeamNumber"], - "00C2" : ["LO", "BeamName"], - "00C3" : ["ST", "BeamDescription"], - "00C4" : ["CS", "BeamType"], - "00C6" : ["CS", "RadiationType"], - "00C7" : ["CS", "HighDoseTechniqueType"], - "00C8" : ["IS", "ReferenceImageNumber"], - "00CA" : ["SQ", "PlannedVerificationImageSequence"], - "00CC" : ["LO", "ImagingDeviceSpecificAcquisitionParameters"], - "00CE" : ["CS", "TreatmentDeliveryType"], - "00D0" : ["IS", "NumberOfWedges"], - "00D1" : ["SQ", "WedgeSequence"], - "00D2" : ["IS", "WedgeNumber"], - "00D3" : ["CS", "WedgeType"], - "00D4" : ["SH", "WedgeID"], - "00D5" : ["IS", "WedgeAngle"], - "00D6" : ["DS", "WedgeFactor"], - "00D7" : ["FL", "TotalWedgeTrayWaterEquivalentThickness"], - "00D8" : ["DS", "WedgeOrientation"], - "00D9" : ["FL", "IsocenterToWedgeTrayDistance"], - "00DA" : ["DS", "SourceToWedgeTrayDistance"], - "00DB" : ["FL", "WedgeThinEdgePosition"], - "00DC" : ["SH", "BolusID"], - "00DD" : ["ST", "BolusDescription"], - "00E0" : ["IS", "NumberOfCompensators"], - "00E1" : ["SH", "MaterialID"], - "00E2" : ["DS", "TotalCompensatorTrayFactor"], - "00E3" : ["SQ", "CompensatorSequence"], - "00E4" : ["IS", "CompensatorNumber"], - "00E5" : ["SH", "CompensatorID"], - "00E6" : ["DS", "SourceToCompensatorTrayDistance"], - "00E7" : ["IS", "CompensatorRows"], - "00E8" : ["IS", "CompensatorColumns"], - "00E9" : ["DS", "CompensatorPixelSpacing"], - "00EA" : ["DS", "CompensatorPosition"], - "00EB" : ["DS", "CompensatorTransmissionData"], - "00EC" : ["DS", "CompensatorThicknessData"], - "00ED" : ["IS", "NumberOfBoli"], - "00EE" : ["CS", "CompensatorType"], - "00F0" : ["IS", "NumberOfBlocks"], - "00F2" : ["DS", "TotalBlockTrayFactor"], - "00F3" : ["FL", "TotalBlockTrayWaterEquivalentThickness"], - "00F4" : ["SQ", "BlockSequence"], - "00F5" : ["SH", "BlockTrayID"], - "00F6" : ["DS", "SourceToBlockTrayDistance"], - "00F7" : ["FL", "IsocenterToBlockTrayDistance"], - "00F8" : ["CS", "BlockType"], - "00F9" : ["LO", "AccessoryCode"], - "00FA" : ["CS", "BlockDivergence"], - "00FB" : ["CS", "BlockMountingPosition"], - "00FC" : ["IS", "BlockNumber"], - "00FE" : ["LO", "BlockName"], - "0100" : ["DS", "BlockThickness"], - "0102" : ["DS", "BlockTransmission"], - "0104" : ["IS", "BlockNumberOfPoints"], - "0106" : ["DS", "BlockData"], - "0107" : ["SQ", "ApplicatorSequence"], - "0108" : ["SH", "ApplicatorID"], - "0109" : ["CS", "ApplicatorType"], - "010A" : ["LO", "ApplicatorDescription"], - "010C" : ["DS", "CumulativeDoseReferenceCoefficient"], - "010E" : ["DS", "FinalCumulativeMetersetWeight"], - "0110" : ["IS", "NumberOfControlPoints"], - "0111" : ["SQ", "ControlPointSequence"], - "0112" : ["IS", "ControlPointIndex"], - "0114" : ["DS", "NominalBeamEnergy"], - "0115" : ["DS", "DoseRateSet"], - "0116" : ["SQ", "WedgePositionSequence"], - "0118" : ["CS", "WedgePosition"], - "011A" : ["SQ", "BeamLimitingDevicePositionSequence"], - "011C" : ["DS", "LeafJawPositions"], - "011E" : ["DS", "GantryAngle"], - "011F" : ["CS", "GantryRotationDirection"], - "0120" : ["DS", "BeamLimitingDeviceAngle"], - "0121" : ["CS", "BeamLimitingDeviceRotationDirection"], - "0122" : ["DS", "PatientSupportAngle"], - "0123" : ["CS", "PatientSupportRotationDirection"], - "0124" : ["DS", "TableTopEccentricAxisDistance"], - "0125" : ["DS", "TableTopEccentricAngle"], - "0126" : ["CS", "TableTopEccentricRotationDirection"], - "0128" : ["DS", "TableTopVerticalPosition"], - "0129" : ["DS", "TableTopLongitudinalPosition"], - "012A" : ["DS", "TableTopLateralPosition"], - "012C" : ["DS", "IsocenterPosition"], - "012E" : ["DS", "SurfaceEntryPoint"], - "0130" : ["DS", "SourceToSurfaceDistance"], - "0134" : ["DS", "CumulativeMetersetWeight"], - "0140" : ["FL", "TableTopPitchAngle"], - "0142" : ["CS", "TableTopPitchRotationDirection"], - "0144" : ["FL", "TableTopRollAngle"], - "0146" : ["CS", "TableTopRollRotationDirection"], - "0148" : ["FL", "HeadFixationAngle"], - "014A" : ["FL", "GantryPitchAngle"], - "014C" : ["CS", "GantryPitchRotationDirection"], - "014E" : ["FL", "GantryPitchAngleTolerance"], - "0180" : ["SQ", "PatientSetupSequence"], - "0182" : ["IS", "PatientSetupNumber"], - "0183" : ["LO", "PatientSetupLabel"], - "0184" : ["LO", "PatientAdditionalPosition"], - "0190" : ["SQ", "FixationDeviceSequence"], - "0192" : ["CS", "FixationDeviceType"], - "0194" : ["SH", "FixationDeviceLabel"], - "0196" : ["ST", "FixationDeviceDescription"], - "0198" : ["SH", "FixationDevicePosition"], - "0199" : ["FL", "FixationDevicePitchAngle"], - "019A" : ["FL", "FixationDeviceRollAngle"], - "01A0" : ["SQ", "ShieldingDeviceSequence"], - "01A2" : ["CS", "ShieldingDeviceType"], - "01A4" : ["SH", "ShieldingDeviceLabel"], - "01A6" : ["ST", "ShieldingDeviceDescription"], - "01A8" : ["SH", "ShieldingDevicePosition"], - "01B0" : ["CS", "SetupTechnique"], - "01B2" : ["ST", "SetupTechniqueDescription"], - "01B4" : ["SQ", "SetupDeviceSequence"], - "01B6" : ["CS", "SetupDeviceType"], - "01B8" : ["SH", "SetupDeviceLabel"], - "01BA" : ["ST", "SetupDeviceDescription"], - "01BC" : ["DS", "SetupDeviceParameter"], - "01D0" : ["ST", "SetupReferenceDescription"], - "01D2" : ["DS", "TableTopVerticalSetupDisplacement"], - "01D4" : ["DS", "TableTopLongitudinalSetupDisplacement"], - "01D6" : ["DS", "TableTopLateralSetupDisplacement"], - "0200" : ["CS", "BrachyTreatmentTechnique"], - "0202" : ["CS", "BrachyTreatmentType"], - "0206" : ["SQ", "TreatmentMachineSequence"], - "0210" : ["SQ", "SourceSequence"], - "0212" : ["IS", "SourceNumber"], - "0214" : ["CS", "SourceType"], - "0216" : ["LO", "SourceManufacturer"], - "0218" : ["DS", "ActiveSourceDiameter"], - "021A" : ["DS", "ActiveSourceLength"], - "0222" : ["DS", "SourceEncapsulationNominalThickness"], - "0224" : ["DS", "SourceEncapsulationNominalTransmission"], - "0226" : ["LO", "SourceIsotopeName"], - "0228" : ["DS", "SourceIsotopeHalfLife"], - "0229" : ["CS", "SourceStrengthUnits"], - "022A" : ["DS", "ReferenceAirKermaRate"], - "022B" : ["DS", "SourceStrength"], - "022C" : ["DA", "SourceStrengthReferenceDate"], - "022E" : ["TM", "SourceStrengthReferenceTime"], - "0230" : ["SQ", "ApplicationSetupSequence"], - "0232" : ["CS", "ApplicationSetupType"], - "0234" : ["IS", "ApplicationSetupNumber"], - "0236" : ["LO", "ApplicationSetupName"], - "0238" : ["LO", "ApplicationSetupManufacturer"], - "0240" : ["IS", "TemplateNumber"], - "0242" : ["SH", "TemplateType"], - "0244" : ["LO", "TemplateName"], - "0250" : ["DS", "TotalReferenceAirKerma"], - "0260" : ["SQ", "BrachyAccessoryDeviceSequence"], - "0262" : ["IS", "BrachyAccessoryDeviceNumber"], - "0263" : ["SH", "BrachyAccessoryDeviceID"], - "0264" : ["CS", "BrachyAccessoryDeviceType"], - "0266" : ["LO", "BrachyAccessoryDeviceName"], - "026A" : ["DS", "BrachyAccessoryDeviceNominalThickness"], - "026C" : ["DS", "BrachyAccessoryDeviceNominalTransmission"], - "0280" : ["SQ", "ChannelSequence"], - "0282" : ["IS", "ChannelNumber"], - "0284" : ["DS", "ChannelLength"], - "0286" : ["DS", "ChannelTotalTime"], - "0288" : ["CS", "SourceMovementType"], - "028A" : ["IS", "NumberOfPulses"], - "028C" : ["DS", "PulseRepetitionInterval"], - "0290" : ["IS", "SourceApplicatorNumber"], - "0291" : ["SH", "SourceApplicatorID"], - "0292" : ["CS", "SourceApplicatorType"], - "0294" : ["LO", "SourceApplicatorName"], - "0296" : ["DS", "SourceApplicatorLength"], - "0298" : ["LO", "SourceApplicatorManufacturer"], - "029C" : ["DS", "SourceApplicatorWallNominalThickness"], - "029E" : ["DS", "SourceApplicatorWallNominalTransmission"], - "02A0" : ["DS", "SourceApplicatorStepSize"], - "02A2" : ["IS", "TransferTubeNumber"], - "02A4" : ["DS", "TransferTubeLength"], - "02B0" : ["SQ", "ChannelShieldSequence"], - "02B2" : ["IS", "ChannelShieldNumber"], - "02B3" : ["SH", "ChannelShieldID"], - "02B4" : ["LO", "ChannelShieldName"], - "02B8" : ["DS", "ChannelShieldNominalThickness"], - "02BA" : ["DS", "ChannelShieldNominalTransmission"], - "02C8" : ["DS", "FinalCumulativeTimeWeight"], - "02D0" : ["SQ", "BrachyControlPointSequence"], - "02D2" : ["DS", "ControlPointRelativePosition"], - "02D4" : ["DS", "ControlPoint3DPosition"], - "02D6" : ["DS", "CumulativeTimeWeight"], - "02E0" : ["CS", "CompensatorDivergence"], - "02E1" : ["CS", "CompensatorMountingPosition"], - "02E2" : ["DS", "SourceToCompensatorDistance"], - "02E3" : ["FL", "TotalCompensatorTrayWaterEquivalentThickness"], - "02E4" : ["FL", "IsocenterToCompensatorTrayDistance"], - "02E5" : ["FL", "CompensatorColumnOffset"], - "02E6" : ["FL", "IsocenterToCompensatorDistances"], - "02E7" : ["FL", "CompensatorRelativeStoppingPowerRatio"], - "02E8" : ["FL", "CompensatorMillingToolDiameter"], - "02EA" : ["SQ", "IonRangeCompensatorSequence"], - "02EB" : ["LT", "CompensatorDescription"], - "0302" : ["IS", "RadiationMassNumber"], - "0304" : ["IS", "RadiationAtomicNumber"], - "0306" : ["SS", "RadiationChargeState"], - "0308" : ["CS", "ScanMode"], - "030A" : ["FL", "VirtualSourceAxisDistances"], - "030C" : ["SQ", "SnoutSequence"], - "030D" : ["FL", "SnoutPosition"], - "030F" : ["SH", "SnoutID"], - "0312" : ["IS", "NumberOfRangeShifters"], - "0314" : ["SQ", "RangeShifterSequence"], - "0316" : ["IS", "RangeShifterNumber"], - "0318" : ["SH", "RangeShifterID"], - "0320" : ["CS", "RangeShifterType"], - "0322" : ["LO", "RangeShifterDescription"], - "0330" : ["IS", "NumberOfLateralSpreadingDevices"], - "0332" : ["SQ", "LateralSpreadingDeviceSequence"], - "0334" : ["IS", "LateralSpreadingDeviceNumber"], - "0336" : ["SH", "LateralSpreadingDeviceID"], - "0338" : ["CS", "LateralSpreadingDeviceType"], - "033A" : ["LO", "LateralSpreadingDeviceDescription"], - "033C" : ["FL", "LateralSpreadingDeviceWaterEquivalentThickness"], - "0340" : ["IS", "NumberOfRangeModulators"], - "0342" : ["SQ", "RangeModulatorSequence"], - "0344" : ["IS", "RangeModulatorNumber"], - "0346" : ["SH", "RangeModulatorID"], - "0348" : ["CS", "RangeModulatorType"], - "034A" : ["LO", "RangeModulatorDescription"], - "034C" : ["SH", "BeamCurrentModulationID"], - "0350" : ["CS", "PatientSupportType"], - "0352" : ["SH", "PatientSupportID"], - "0354" : ["LO", "PatientSupportAccessoryCode"], - "0356" : ["FL", "FixationLightAzimuthalAngle"], - "0358" : ["FL", "FixationLightPolarAngle"], - "035A" : ["FL", "MetersetRate"], - "0360" : ["SQ", "RangeShifterSettingsSequence"], - "0362" : ["LO", "RangeShifterSetting"], - "0364" : ["FL", "IsocenterToRangeShifterDistance"], - "0366" : ["FL", "RangeShifterWaterEquivalentThickness"], - "0370" : ["SQ", "LateralSpreadingDeviceSettingsSequence"], - "0372" : ["LO", "LateralSpreadingDeviceSetting"], - "0374" : ["FL", "IsocenterToLateralSpreadingDeviceDistance"], - "0380" : ["SQ", "RangeModulatorSettingsSequence"], - "0382" : ["FL", "RangeModulatorGatingStartValue"], - "0384" : ["FL", "RangeModulatorGatingStopValue"], - "0386" : ["FL", "RangeModulatorGatingStartWaterEquivalentThickness"], - "0388" : ["FL", "RangeModulatorGatingStopWaterEquivalentThickness"], - "038A" : ["FL", "IsocenterToRangeModulatorDistance"], - "0390" : ["SH", "ScanSpotTuneID"], - "0392" : ["IS", "NumberOfScanSpotPositions"], - "0394" : ["FL", "ScanSpotPositionMap"], - "0396" : ["FL", "ScanSpotMetersetWeights"], - "0398" : ["FL", "ScanningSpotSize"], - "039A" : ["IS", "NumberOfPaintings"], - "03A0" : ["SQ", "IonToleranceTableSequence"], - "03A2" : ["SQ", "IonBeamSequence"], - "03A4" : ["SQ", "IonBeamLimitingDeviceSequence"], - "03A6" : ["SQ", "IonBlockSequence"], - "03A8" : ["SQ", "IonControlPointSequence"], - "03AA" : ["SQ", "IonWedgeSequence"], - "03AC" : ["SQ", "IonWedgePositionSequence"], - "0401" : ["SQ", "ReferencedSetupImageSequence"], - "0402" : ["ST", "SetupImageComment"], - "0410" : ["SQ", "MotionSynchronizationSequence"], - "0412" : ["FL", "ControlPointOrientation"], - "0420" : ["SQ", "GeneralAccessorySequence"], - "0421" : ["SH", "GeneralAccessoryID"], - "0422" : ["ST", "GeneralAccessoryDescription"], - "0423" : ["CS", "GeneralAccessoryType"], - "0424" : ["IS", "GeneralAccessoryNumber"], - "0431" : ["SQ", "ApplicatorGeometrySequence"], - "0432" : ["CS", "ApplicatorApertureShape"], - "0433" : ["FL", "ApplicatorOpening"], - "0434" : ["FL", "ApplicatorOpeningX"], - "0435" : ["FL", "ApplicatorOpeningY"], - "0436" : ["FL", "SourceToApplicatorMountingPositionDistance"] - }, - "300C" : { - "0002" : ["SQ", "ReferencedRTPlanSequence"], - "0004" : ["SQ", "ReferencedBeamSequence"], - "0006" : ["IS", "ReferencedBeamNumber"], - "0007" : ["IS", "ReferencedReferenceImageNumber"], - "0008" : ["DS", "StartCumulativeMetersetWeight"], - "0009" : ["DS", "EndCumulativeMetersetWeight"], - "000A" : ["SQ", "ReferencedBrachyApplicationSetupSequence"], - "000C" : ["IS", "ReferencedBrachyApplicationSetupNumber"], - "000E" : ["IS", "ReferencedSourceNumber"], - "0020" : ["SQ", "ReferencedFractionGroupSequence"], - "0022" : ["IS", "ReferencedFractionGroupNumber"], - "0040" : ["SQ", "ReferencedVerificationImageSequence"], - "0042" : ["SQ", "ReferencedReferenceImageSequence"], - "0050" : ["SQ", "ReferencedDoseReferenceSequence"], - "0051" : ["IS", "ReferencedDoseReferenceNumber"], - "0055" : ["SQ", "BrachyReferencedDoseReferenceSequence"], - "0060" : ["SQ", "ReferencedStructureSetSequence"], - "006A" : ["IS", "ReferencedPatientSetupNumber"], - "0080" : ["SQ", "ReferencedDoseSequence"], - "00A0" : ["IS", "ReferencedToleranceTableNumber"], - "00B0" : ["SQ", "ReferencedBolusSequence"], - "00C0" : ["IS", "ReferencedWedgeNumber"], - "00D0" : ["IS", "ReferencedCompensatorNumber"], - "00E0" : ["IS", "ReferencedBlockNumber"], - "00F0" : ["IS", "ReferencedControlPointIndex"], - "00F2" : ["SQ", "ReferencedControlPointSequence"], - "00F4" : ["IS", "ReferencedStartControlPointIndex"], - "00F6" : ["IS", "ReferencedStopControlPointIndex"], - "0100" : ["IS", "ReferencedRangeShifterNumber"], - "0102" : ["IS", "ReferencedLateralSpreadingDeviceNumber"], - "0104" : ["IS", "ReferencedRangeModulatorNumber"] - }, - "300E" : { - "0002" : ["CS", "ApprovalStatus"], - "0004" : ["DA", "ReviewDate"], - "0005" : ["TM", "ReviewTime"], - "0008" : ["PN", "ReviewerName"] - }, - "4000" : { - "0010" : ["LT", "Arbitrary"], - "4000" : ["LT", "TextComments"] - }, - "4008" : { - "0040" : ["SH", "ResultsID"], - "0042" : ["LO", "ResultsIDIssuer"], - "0050" : ["SQ", "ReferencedInterpretationSequence"], - "00FF" : ["CS", "ReportProductionStatusTrial"], - "0100" : ["DA", "InterpretationRecordedDate"], - "0101" : ["TM", "InterpretationRecordedTime"], - "0102" : ["PN", "InterpretationRecorder"], - "0103" : ["LO", "ReferenceToRecordedSound"], - "0108" : ["DA", "InterpretationTranscriptionDate"], - "0109" : ["TM", "InterpretationTranscriptionTime"], - "010A" : ["PN", "InterpretationTranscriber"], - "010B" : ["ST", "InterpretationText"], - "010C" : ["PN", "InterpretationAuthor"], - "0111" : ["SQ", "InterpretationApproverSequence"], - "0112" : ["DA", "InterpretationApprovalDate"], - "0113" : ["TM", "InterpretationApprovalTime"], - "0114" : ["PN", "PhysicianApprovingInterpretation"], - "0115" : ["LT", "InterpretationDiagnosisDescription"], - "0117" : ["SQ", "InterpretationDiagnosisCodeSequence"], - "0118" : ["SQ", "ResultsDistributionListSequence"], - "0119" : ["PN", "DistributionName"], - "011A" : ["LO", "DistributionAddress"], - "0200" : ["SH", "InterpretationID"], - "0202" : ["LO", "InterpretationIDIssuer"], - "0210" : ["CS", "InterpretationTypeID"], - "0212" : ["CS", "InterpretationStatusID"], - "0300" : ["ST", "Impressions"], - "4000" : ["ST", "ResultsComments"] - }, - "4010" : { - "0001" : ["CS", "LowEnergyDetectors"], - "0002" : ["CS", "HighEnergyDetectors"], - "0004" : ["SQ", "DetectorGeometrySequence"], - "1001" : ["SQ", "ThreatROIVoxelSequence"], - "1004" : ["FL", "ThreatROIBase"], - "1005" : ["FL", "ThreatROIExtents"], - "1006" : ["OB", "ThreatROIBitmap"], - "1007" : ["SH", "RouteSegmentID"], - "1008" : ["CS", "GantryType"], - "1009" : ["CS", "OOIOwnerType"], - "100A" : ["SQ", "RouteSegmentSequence"], - "1010" : ["US", "PotentialThreatObjectID"], - "1011" : ["SQ", "ThreatSequence"], - "1012" : ["CS", "ThreatCategory"], - "1013" : ["LT", "ThreatCategoryDescription"], - "1014" : ["CS", "ATDAbilityAssessment"], - "1015" : ["CS", "ATDAssessmentFlag"], - "1016" : ["FL", "ATDAssessmentProbability"], - "1017" : ["FL", "Mass"], - "1018" : ["FL", "Density"], - "1019" : ["FL", "ZEffective"], - "101A" : ["SH", "BoardingPassID"], - "101B" : ["FL", "CenterOfMass"], - "101C" : ["FL", "CenterOfPTO"], - "101D" : ["FL", "BoundingPolygon"], - "101E" : ["SH", "RouteSegmentStartLocationID"], - "101F" : ["SH", "RouteSegmentEndLocationID"], - "1020" : ["CS", "RouteSegmentLocationIDType"], - "1021" : ["CS", "AbortReason"], - "1023" : ["FL", "VolumeOfPTO"], - "1024" : ["CS", "AbortFlag"], - "1025" : ["DT", "RouteSegmentStartTime"], - "1026" : ["DT", "RouteSegmentEndTime"], - "1027" : ["CS", "TDRType"], - "1028" : ["CS", "InternationalRouteSegment"], - "1029" : ["LO", "ThreatDetectionAlgorithmandVersion"], - "102A" : ["SH", "AssignedLocation"], - "102B" : ["DT", "AlarmDecisionTime"], - "1031" : ["CS", "AlarmDecision"], - "1033" : ["US", "NumberOfTotalObjects"], - "1034" : ["US", "NumberOfAlarmObjects"], - "1037" : ["SQ", "PTORepresentationSequence"], - "1038" : ["SQ", "ATDAssessmentSequence"], - "1039" : ["CS", "TIPType"], - "103A" : ["CS", "DICOSVersion"], - "1041" : ["DT", "OOIOwnerCreationTime"], - "1042" : ["CS", "OOIType"], - "1043" : ["FL", "OOISize"], - "1044" : ["CS", "AcquisitionStatus"], - "1045" : ["SQ", "BasisMaterialsCodeSequence"], - "1046" : ["CS", "PhantomType"], - "1047" : ["SQ", "OOIOwnerSequence"], - "1048" : ["CS", "ScanType"], - "1051" : ["LO", "ItineraryID"], - "1052" : ["SH", "ItineraryIDType"], - "1053" : ["LO", "ItineraryIDAssigningAuthority"], - "1054" : ["SH", "RouteID"], - "1055" : ["SH", "RouteIDAssigningAuthority"], - "1056" : ["CS", "InboundArrivalType"], - "1058" : ["SH", "CarrierID"], - "1059" : ["CS", "CarrierIDAssigningAuthority"], - "1060" : ["FL", "SourceOrientation"], - "1061" : ["FL", "SourcePosition"], - "1062" : ["FL", "BeltHeight"], - "1064" : ["SQ", "AlgorithmRoutingCodeSequence"], - "1067" : ["CS", "TransportClassification"], - "1068" : ["LT", "OOITypeDescriptor"], - "1069" : ["FL", "TotalProcessingTime"], - "106C" : ["OB", "DetectorCalibrationData"] - } -}; - - - -/*** Static Methods ***/ - -/** - * Returns the VR for the specified group and element. - * @param {number} group - * @param {number} element - * @returns {string} - */ -daikon.Dictionary.getVR = function (group, element) { - var vr, elementData, groupData; - - groupData = daikon.Dictionary.dict[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - vr = elementData[0]; - } else if (element === 0) { - vr = 'UL'; + if (maxBytesToWrite < 4) + return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i2 = 0; i2 < str.length; ++i2) { + var codeUnit = str.charCodeAt(i2); + if (codeUnit >= 55296 && codeUnit <= 57343) { + var trailSurrogate = str.charCodeAt(++i2); + codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; + } + HEAP32[outPtr >> 2] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) + break; } - } - - if (!vr) { - groupData = daikon.Dictionary.dictPrivate[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - vr = elementData[0]; + HEAP32[outPtr >> 2] = 0; + return outPtr - startPtr; + } + Module["stringToUTF32"] = stringToUTF32; + function lengthBytesUTF32(str) { + var len = 0; + for (var i2 = 0; i2 < str.length; ++i2) { + var codeUnit = str.charCodeAt(i2); + if (codeUnit >= 55296 && codeUnit <= 57343) + ++i2; + len += 4; + } + return len; + } + Module["lengthBytesUTF32"] = lengthBytesUTF32; + function demangle(func2) { + var hasLibcxxabi = !!Module["___cxa_demangle"]; + if (hasLibcxxabi) { + try { + var buf = _malloc(func2.length); + writeStringToMemory(func2.substr(1), buf); + var status = _malloc(4); + var ret = Module["___cxa_demangle"](buf, 0, 0, status); + if (getValue(status, "i32") === 0 && ret) { + return Pointer_stringify(ret); } + } catch (e) { + } finally { + if (buf) + _free(buf); + if (status) + _free(status); + if (ret) + _free(ret); + } } - } - - if (!vr) { - vr = 'OB'; - } - - return vr; -}; - - - -/** - * Returns the description for the specified group and element. - * @param {number} group - * @param {number} element - * @returns {string} - */ -daikon.Dictionary.getDescription = function (group, element) { - var des, elementData, groupData; - - groupData = daikon.Dictionary.dict[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - des = elementData[1]; - } else if (element === 0) { - des = ("Group " + daikon.Utils.dec2hex(group) + " Length"); + var i2 = 3; + var basicTypes = { "v": "void", "b": "bool", "c": "char", "s": "short", "i": "int", "l": "long", "f": "float", "d": "double", "w": "wchar_t", "a": "signed char", "h": "unsigned char", "t": "unsigned short", "j": "unsigned int", "m": "unsigned long", "x": "long long", "y": "unsigned long long", "z": "..." }; + var subs = []; + var first = true; + function dump2(x) { + if (x) + Module.print(x); + Module.print(func2); + var pre = ""; + for (var a = 0; a < i2; a++) + pre += " "; + Module.print(pre + "^"); } - } - - if (!des) { - groupData = daikon.Dictionary.dictPrivate[daikon.Utils.dec2hex(group)]; - if (groupData) { - elementData = groupData[daikon.Utils.dec2hex(element)]; - if (elementData) { - des = elementData[1]; + function parseNested() { + i2++; + if (func2[i2] === "K") + i2++; + var parts = []; + while (func2[i2] !== "E") { + if (func2[i2] === "S") { + i2++; + var next = func2.indexOf("_", i2); + var num = func2.substring(i2, next) || 0; + parts.push(subs[num] || "?"); + i2 = next + 1; + continue; } + if (func2[i2] === "C") { + parts.push(parts[parts.length - 1]); + i2 += 2; + continue; + } + var size = parseInt(func2.substr(i2)); + var pre = size.toString().length; + if (!size || !pre) { + i2--; + break; + } + var curr = func2.substr(i2 + pre, size); + parts.push(curr); + subs.push(curr); + i2 += pre + size; + } + i2++; + return parts; } - } - - if (!des) { - des = 'PrivateData'; - } - - return des; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Dictionary; -} - -},{"./utilities.js":32}],23:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Tag = daikon.Tag || ((typeof require !== 'undefined') ? require('./tag.js') : null); -daikon.CompressionUtils = daikon.CompressionUtils || ((typeof require !== 'undefined') ? require('./compression-utils.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.RLE = daikon.RLE || ((typeof require !== 'undefined') ? require('./rle.js') : null); - -var jpeg = ((typeof require !== 'undefined') ? require('jpeg-lossless-decoder-js') : null); -var JpegDecoder = JpegDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-baseline.js').JpegImage : null); -var JpxImage = JpxImage || ((typeof require !== 'undefined') ? require('../lib/jpx.js') : null); -var JpegLSDecoder = JpegLSDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-ls.js') : null); - - -/*** Constructor ***/ - -/** - * The Image constructor. - * @property {object} tags - a map of tag id to tag (see daikon.Tag.createId) - * @property {object} tagsFlat - a flattened map of tags - * @type {Function} - */ -daikon.Image = daikon.Image || function () { - this.tags = {}; - this.tagsFlat = {}; - this.littleEndian = false; - this.index = -1; - this.decompressed = false; - this.privateDataAll = null; - this.convertedPalette = false; -}; - - -/*** Static Pseudo-constants ***/ - -daikon.Image.SLICE_DIRECTION_UNKNOWN = -1; -daikon.Image.SLICE_DIRECTION_AXIAL = 2; -daikon.Image.SLICE_DIRECTION_CORONAL = 1; -daikon.Image.SLICE_DIRECTION_SAGITTAL = 0; -daikon.Image.SLICE_DIRECTION_OBLIQUE = 3; -daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE = 0.8; - -daikon.Image.BYTE_TYPE_UNKNOWN = 0; -daikon.Image.BYTE_TYPE_BINARY = 1; -daikon.Image.BYTE_TYPE_INTEGER = 2; -daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED = 3; -daikon.Image.BYTE_TYPE_FLOAT = 4; -daikon.Image.BYTE_TYPE_COMPLEX = 5; -daikon.Image.BYTE_TYPE_RGB = 6; - - -/*** Static Methods ***/ - -daikon.Image.skipPaletteConversion = false; - - -daikon.Image.getSingleValueSafely = function (tag, index) { - if (tag && tag.value) { - return tag.value[index]; - } - - return null; -}; - - - -daikon.Image.getValueSafely = function (tag) { - if (tag) { - return tag.value; - } - - return null; -}; - - - -// originally from: http://public.kitware.com/pipermail/insight-users/2005-March/012246.html -daikon.Image.getMajorAxisFromPatientRelativeDirectionCosine = function(x, y, z) { - var axis, orientationX, orientationY, orientationZ, absX, absY, absZ; - - orientationX = (x < 0) ? "R" : "L"; - orientationY = (y < 0) ? "A" : "P"; - orientationZ = (z < 0) ? "F" : "H"; - - absX = Math.abs(x); - absY = Math.abs(y); - absZ = Math.abs(z); - - // The tests here really don't need to check the other dimensions, - // just the threshold, since the sum of the squares should be == 1.0 - // but just in case ... - - if ((absX > daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE) && (absX > absY) && (absX > absZ)) { - axis = orientationX; - } else if ((absY > daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE) && (absY > absX) && (absY > absZ)) { - axis = orientationY; - } else if ((absZ > daikon.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE) && (absZ > absX) && (absZ > absY)) { - axis = orientationZ; - } else { - axis = null; - } - - return axis; -}; - - -/*** Prototype Methods ***/ - -/** - * Returns the number of columns. - * @returns {number} - */ -daikon.Image.prototype.getCols = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_COLS[0], daikon.Tag.TAG_COLS[1]), 0); -}; - - - -/** - * Returns the number of rows. - * @returns {number} - */ -daikon.Image.prototype.getRows = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ROWS[0], daikon.Tag.TAG_ROWS[1]), 0); -}; - - - -/** - * Returns the series description. - * @returns {string} - */ -daikon.Image.prototype.getSeriesDescription = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_DESCRIPTION[0], daikon.Tag.TAG_SERIES_DESCRIPTION[1]), 0); -}; - - - -/** - * Returns the series instance UID. - * @returns {string} - */ -daikon.Image.prototype.getSeriesInstanceUID = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_INSTANCE_UID[0], daikon.Tag.TAG_SERIES_INSTANCE_UID[1]), 0); -}; - - - -/** - * Returns the series number. - * @returns {number} - */ -daikon.Image.prototype.getSeriesNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_NUMBER[0], daikon.Tag.TAG_SERIES_NUMBER[1]), 0); -}; - - - -/** - * Returns the echo number. - * @returns {number} - */ -daikon.Image.prototype.getEchoNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ECHO_NUMBER[0], daikon.Tag.TAG_ECHO_NUMBER[1]), 0); -}; - - - -/** - * Returns the image position. - * @return {number[]} - */ -daikon.Image.prototype.getImagePosition = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_POSITION[0], daikon.Tag.TAG_IMAGE_POSITION[1])); -}; - -/** - * Returns the image axis directions - * @return {number[]} - */ -daikon.Image.prototype.getImageDirections = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0], daikon.Tag.TAG_IMAGE_ORIENTATION[1])) -}; - - -/** - * Returns the image position value by index. - * @param {number} sliceDir - the index - * @returns {number} - */ -daikon.Image.prototype.getImagePositionSliceDir = function (sliceDir) { - var imagePos = daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_POSITION[0], daikon.Tag.TAG_IMAGE_POSITION[1])); - if (imagePos) { - if (sliceDir >= 0) { - return imagePos[sliceDir]; - } - } - - return 0; -}; - - -/** - * Returns the modality - * @returns {string} - */ -daikon.Image.prototype.getModality = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_MODALITY[0], daikon.Tag.TAG_MODALITY[1]), 0); -}; - - -/** - * Returns the slice location. - * @returns {number} - */ -daikon.Image.prototype.getSliceLocation = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_LOCATION[0], daikon.Tag.TAG_SLICE_LOCATION[1]), 0); -}; - - - -/** - * Returns the slice location vector. - * @returns {number[]} - */ -daikon.Image.prototype.getSliceLocationVector = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_SLICE_LOCATION_VECTOR[0], daikon.Tag.TAG_SLICE_LOCATION_VECTOR[1])); -}; - - - -/** - * Returns the image number. - * @returns {number} - */ -daikon.Image.prototype.getImageNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_NUM[0], daikon.Tag.TAG_IMAGE_NUM[1]), 0); -}; - - -/** - * Returns the temporal position. - * @returns {number} - */ -daikon.Image.prototype.getTemporalPosition = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TEMPORAL_POSITION[0], daikon.Tag.TAG_TEMPORAL_POSITION[1]), 0); -}; - - -/** - * Returns the temporal number. - * @returns {number} - */ -daikon.Image.prototype.getTemporalNumber = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0], daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]), 0); -}; - - -/** - * Returns the slice gap. - * @returns {number} - */ -daikon.Image.prototype.getSliceGap = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_GAP[0], daikon.Tag.TAG_SLICE_GAP[1]), 0); -}; - - -/** - * Returns the slice thickness. - * @returns {number} - */ -daikon.Image.prototype.getSliceThickness = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SLICE_THICKNESS[0], daikon.Tag.TAG_SLICE_THICKNESS[1]), 0); -}; - - -/** - * Returns the image maximum. - * @returns {number} - */ -daikon.Image.prototype.getImageMax = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_MAX[0], daikon.Tag.TAG_IMAGE_MAX[1]), 0); -}; - - -/** - * Returns the image minimum. - * @returns {number} - */ -daikon.Image.prototype.getImageMin = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_MIN[0], daikon.Tag.TAG_IMAGE_MIN[1]), 0); -}; - - -/** - * Returns the rescale slope. - * @returns {number} - */ -daikon.Image.prototype.getDataScaleSlope = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_SLOPE[0], daikon.Tag.TAG_DATA_SCALE_SLOPE[1]), 0); -}; - - -/** - * Returns the rescale intercept. - * @returns {number} - */ -daikon.Image.prototype.getDataScaleIntercept = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_INTERCEPT[0], daikon.Tag.TAG_DATA_SCALE_INTERCEPT[1]), 0); -}; - - - -daikon.Image.prototype.getDataScaleElscint = function () { - var scale = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon.Tag.TAG_DATA_SCALE_ELSCINT[1]), 0); - - if (!scale) { - scale = 1; - } - - var bandwidth = this.getPixelBandwidth(); - scale = Math.sqrt(bandwidth) / (10 * scale); - - if (scale <= 0) { - scale = 1; - } - - return scale; -}; - - -/** - * Returns the window width. - * @returns {number} - */ -daikon.Image.prototype.getWindowWidth = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_WINDOW_WIDTH[0], daikon.Tag.TAG_WINDOW_WIDTH[1]), 0); -}; - - -/** - * Returns the window center. - * @returns {number} - */ -daikon.Image.prototype.getWindowCenter = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_WINDOW_CENTER[0], daikon.Tag.TAG_WINDOW_CENTER[1]), 0); -}; - - - -daikon.Image.prototype.getPixelBandwidth = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_BANDWIDTH[0], daikon.Tag.TAG_PIXEL_BANDWIDTH[1]), 0); -}; - - - -daikon.Image.prototype.getSeriesId = function () { - var des = this.getSeriesDescription(); - var uid = this.getSeriesInstanceUID(); - var num = this.getSeriesNumber(); - var echo = this.getEchoNumber(); - var orientation = this.getOrientation(); - var cols = this.getCols(); - var rows = this.getRows(); - - var id = ""; - - if (des !== null) { - id += (" " + des); - } - - if (uid !== null) { - id += (" " + uid); - } - - if (num !== null) { - id += (" " + num); - } - - if (echo !== null) { - id += (" " + echo); - } - - if (orientation !== null) { - id += (" " + orientation); - } - - id += (" (" + cols + " x " + rows + ")"); - - return id; -}; - - -/** - * Returns the pixel spacing. - * @returns {number[]} - */ -daikon.Image.prototype.getPixelSpacing = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_SPACING[0], daikon.Tag.TAG_PIXEL_SPACING[1])); -}; - - -/** - * Returns the image type. - * @returns {string[]} - */ -daikon.Image.prototype.getImageType = function () { - return daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_TYPE[0], daikon.Tag.TAG_IMAGE_TYPE[1])); -}; - - -/** - * Returns the number of bits stored. - * @returns {number} - */ -daikon.Image.prototype.getBitsStored = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_BITS_STORED[0], daikon.Tag.TAG_BITS_STORED[1]), 0); -}; - - -/** - * Returns the number of bits allocated. - * @returns {number} - */ -daikon.Image.prototype.getBitsAllocated = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_BITS_ALLOCATED[0], daikon.Tag.TAG_BITS_ALLOCATED[1]), 0); -}; - - -/** - * Returns the frame time. - * @returns {number} - */ -daikon.Image.prototype.getFrameTime = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_FRAME_TIME[0], daikon.Tag.TAG_FRAME_TIME[1]), 0); -}; - - -/** - * Returns the acquisition matrix (e.g., "mosaic" data). - * @returns {number[]} - */ -daikon.Image.prototype.getAcquisitionMatrix = function () { - var mat, matPrivate, start, end, str; - - mat = [0, 0]; - mat[0] = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_ACQUISITION_MATRIX[0], daikon.Tag.TAG_ACQUISITION_MATRIX[1]), 0); - - if (this.privateDataAll === null) { - this.privateDataAll = this.getAllInterpretedPrivateData(); - } - - if ((this.privateDataAll !== null) && (this.privateDataAll.length > 0)) { - start = this.privateDataAll.indexOf("AcquisitionMatrixText"); - if (start !== -1) { - - end = this.privateDataAll.indexOf('\n', start); - - if (end !== -1) { - str = this.privateDataAll.substring(start, end); - matPrivate = str.match(/\d+/g); - - if ((matPrivate !== null) && (matPrivate.length === 2)) { - mat[0] = matPrivate[0]; - mat[1] = matPrivate[1]; - } else if ((matPrivate !== null) && (matPrivate.length === 1)) { - mat[0] = matPrivate[0]; + function parse(rawList, limit, allowVoid) { + limit = limit || Infinity; + var ret2 = "", list = []; + function flushList() { + return "(" + list.join(", ") + ")"; + } + var name; + if (func2[i2] === "N") { + name = parseNested().join("::"); + limit--; + if (limit === 0) + return rawList ? [name] : name; + } else { + if (func2[i2] === "K" || first && func2[i2] === "L") + i2++; + var size = parseInt(func2.substr(i2)); + if (size) { + var pre = size.toString().length; + name = func2.substr(i2 + pre, size); + i2 += pre + size; + } + } + first = false; + if (func2[i2] === "I") { + i2++; + var iList = parse(true); + var iRet = parse(true, 1, true); + ret2 += iRet[0] + " " + name + "<" + iList.join(", ") + ">"; + } else { + ret2 = name; + } + paramLoop: + while (i2 < func2.length && limit-- > 0) { + var c = func2[i2++]; + if (c in basicTypes) { + list.push(basicTypes[c]); + } else { + switch (c) { + case "P": + list.push(parse(true, 1, true)[0] + "*"); + break; + case "R": + list.push(parse(true, 1, true)[0] + "&"); + break; + case "L": + { + i2++; + var end = func2.indexOf("E", i2); + var size = end - i2; + list.push(func2.substr(i2, size)); + i2 += size + 2; + break; + } + ; + case "A": + { + var size = parseInt(func2.substr(i2)); + i2 += size.toString().length; + if (func2[i2] !== "_") + throw "?"; + i2++; + list.push(parse(true, 1, true)[0] + " [" + size + "]"); + break; + } + ; + case "E": + break paramLoop; + default: + ret2 += "?" + c; + break paramLoop; } + } } + if (!allowVoid && list.length === 1 && list[0] === "void") + list = []; + if (rawList) { + if (ret2) { + list.push(ret2 + "?"); + } + return list; + } else { + return ret2 + flushList(); + } + } + var parsed = func2; + try { + if (func2 == "Object._main" || func2 == "_main") { + return "main()"; + } + if (typeof func2 === "number") + func2 = Pointer_stringify(func2); + if (func2[0] !== "_") + return func2; + if (func2[1] !== "_") + return func2; + if (func2[2] !== "Z") + return func2; + switch (func2[3]) { + case "n": + return "operator new()"; + case "d": + return "operator delete()"; + } + parsed = parse(); + } catch (e) { + parsed += "?"; + } + if (parsed.indexOf("?") >= 0 && !hasLibcxxabi) { + Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"); + } + return parsed; + } + function demangleAll(text) { + return text.replace(/__Z[\w\d_]+/g, function(x) { + var y = demangle(x); + return x === y ? x : x + " [" + y + "]"; + }); + } + function jsStackTrace() { + var err = new Error(); + if (!err.stack) { + try { + throw new Error(0); + } catch (e) { + err = e; + } + if (!err.stack) { + return "(no stack trace available)"; + } + } + return err.stack.toString(); + } + function stackTrace() { + return demangleAll(jsStackTrace()); + } + Module["stackTrace"] = stackTrace; + var PAGE_SIZE = 4096; + function alignMemoryPage(x) { + if (x % 4096 > 0) { + x += 4096 - x % 4096; + } + return x; + } + var HEAP; + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; + var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; + var DYNAMIC_BASE = 0, DYNAMICTOP = 0; + function enlargeMemory() { + var OLD_TOTAL_MEMORY = TOTAL_MEMORY; + var LIMIT = Math.pow(2, 31); + if (DYNAMICTOP >= LIMIT) + return false; + while (TOTAL_MEMORY <= DYNAMICTOP) { + if (TOTAL_MEMORY < LIMIT / 2) { + TOTAL_MEMORY = alignMemoryPage(2 * TOTAL_MEMORY); + } else { + var last = TOTAL_MEMORY; + TOTAL_MEMORY = alignMemoryPage((3 * TOTAL_MEMORY + LIMIT) / 4); + if (TOTAL_MEMORY <= last) + return false; + } + } + TOTAL_MEMORY = Math.max(TOTAL_MEMORY, 16 * 1024 * 1024); + if (TOTAL_MEMORY >= LIMIT) + return false; + try { + if (ArrayBuffer.transfer) { + buffer = ArrayBuffer.transfer(buffer, TOTAL_MEMORY); + } else { + var oldHEAP8 = HEAP8; + buffer = new ArrayBuffer(TOTAL_MEMORY); + } + } catch (e) { + return false; + } + var success = _emscripten_replace_memory(buffer); + if (!success) + return false; + Module["buffer"] = buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(buffer); + Module["HEAP16"] = HEAP16 = new Int16Array(buffer); + Module["HEAP32"] = HEAP32 = new Int32Array(buffer); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buffer); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buffer); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buffer); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buffer); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buffer); + if (!ArrayBuffer.transfer) { + HEAP8.set(oldHEAP8); + } + return true; + } + var byteLength; + try { + byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get); + byteLength(new ArrayBuffer(4)); + } catch (e) { + byteLength = function(buffer2) { + return buffer2.byteLength; + }; + } + var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880; + var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 16777216; + var totalMemory = 64 * 1024; + while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) { + if (totalMemory < 16 * 1024 * 1024) { + totalMemory *= 2; + } else { + totalMemory += 16 * 1024 * 1024; + } + } + totalMemory = Math.max(totalMemory, 16 * 1024 * 1024); + if (totalMemory !== TOTAL_MEMORY) { + TOTAL_MEMORY = totalMemory; + } + assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!new Int32Array(1)["subarray"] && !!new Int32Array(1)["set"], "JS engine does not provide full typed array support"); + var buffer; + buffer = new ArrayBuffer(TOTAL_MEMORY); + HEAP8 = new Int8Array(buffer); + HEAP16 = new Int16Array(buffer); + HEAP32 = new Int32Array(buffer); + HEAPU8 = new Uint8Array(buffer); + HEAPU16 = new Uint16Array(buffer); + HEAPU32 = new Uint32Array(buffer); + HEAPF32 = new Float32Array(buffer); + HEAPF64 = new Float64Array(buffer); + HEAP32[0] = 255; + assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, "Typed arrays 2 must be run on a little-endian system"); + Module["HEAP"] = HEAP; + Module["buffer"] = buffer; + Module["HEAP8"] = HEAP8; + Module["HEAP16"] = HEAP16; + Module["HEAP32"] = HEAP32; + Module["HEAPU8"] = HEAPU8; + Module["HEAPU16"] = HEAPU16; + Module["HEAPU32"] = HEAPU32; + Module["HEAPF32"] = HEAPF32; + Module["HEAPF64"] = HEAPF64; + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(); + continue; + } + var func2 = callback.func; + if (typeof func2 === "number") { + if (callback.arg === void 0) { + Runtime.dynCall("v", func2); + } else { + Runtime.dynCall("vi", func2, [callback.arg]); + } + } else { + func2(callback.arg === void 0 ? null : callback.arg); + } + } + } + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATMAIN__ = []; + var __ATEXIT__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + var runtimeExited = false; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") + Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function ensureInitRuntime() { + if (runtimeInitialized) + return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__); + } + function preMain() { + callRuntimeCallbacks(__ATMAIN__); + } + function exitRuntime() { + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true; + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + Module["addOnPreRun"] = addOnPreRun; + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + Module["addOnInit"] = addOnInit; + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + Module["addOnPreMain"] = addOnPreMain; + function addOnExit(cb) { + __ATEXIT__.unshift(cb); + } + Module["addOnExit"] = addOnExit; + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + Module["addOnPostRun"] = addOnPostRun; + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) + u8array.length = numBytesWritten; + return u8array; + } + Module["intArrayFromString"] = intArrayFromString; + function intArrayToString(array) { + var ret = []; + for (var i2 = 0; i2 < array.length; i2++) { + var chr = array[i2]; + if (chr > 255) { + chr &= 255; + } + ret.push(String.fromCharCode(chr)); + } + return ret.join(""); + } + Module["intArrayToString"] = intArrayToString; + function writeStringToMemory(string, buffer2, dontAddNull) { + var array = intArrayFromString(string, dontAddNull); + var i2 = 0; + while (i2 < array.length) { + var chr = array[i2]; + HEAP8[buffer2 + i2 >> 0] = chr; + i2 = i2 + 1; + } + } + Module["writeStringToMemory"] = writeStringToMemory; + function writeArrayToMemory(array, buffer2) { + for (var i2 = 0; i2 < array.length; i2++) { + HEAP8[buffer2++ >> 0] = array[i2]; + } + } + Module["writeArrayToMemory"] = writeArrayToMemory; + function writeAsciiToMemory(str, buffer2, dontAddNull) { + for (var i2 = 0; i2 < str.length; ++i2) { + HEAP8[buffer2++ >> 0] = str.charCodeAt(i2); + } + if (!dontAddNull) + HEAP8[buffer2 >> 0] = 0; + } + Module["writeAsciiToMemory"] = writeAsciiToMemory; + function unSign(value, bits, ignore) { + if (value >= 0) { + return value; + } + return bits <= 32 ? 2 * Math.abs(1 << bits - 1) + value : Math.pow(2, bits) + value; + } + function reSign(value, bits, ignore) { + if (value <= 0) { + return value; + } + var half = bits <= 32 ? Math.abs(1 << bits - 1) : Math.pow(2, bits - 1); + if (value >= half && (bits <= 32 || value > half)) { + value = -2 * half + value; + } + return value; + } + if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) + Math["imul"] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 65535; + var bh = b >>> 16; + var bl = b & 65535; + return al * bl + (ah * bl + al * bh << 16) | 0; + }; + Math.imul = Math["imul"]; + if (!Math["clz32"]) + Math["clz32"] = function(x) { + x = x >>> 0; + for (var i2 = 0; i2 < 32; i2++) { + if (x & 1 << 31 - i2) + return i2; + } + return 32; + }; + Math.clz32 = Math["clz32"]; + var Math_abs = Math.abs; + var Math_cos = Math.cos; + var Math_sin = Math.sin; + var Math_tan = Math.tan; + var Math_acos = Math.acos; + var Math_asin = Math.asin; + var Math_atan = Math.atan; + var Math_atan2 = Math.atan2; + var Math_exp = Math.exp; + var Math_log = Math.log; + var Math_sqrt = Math.sqrt; + var Math_ceil = Math.ceil; + var Math_floor = Math.floor; + var Math_pow = Math.pow; + var Math_imul = Math.imul; + var Math_fround = Math.fround; + var Math_min = Math.min; + var Math_clz32 = Math.clz32; + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + function getUniqueRunDependency(id) { + return id; + } + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + Module["addRunDependency"] = addRunDependency; + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + Module["removeRunDependency"] = removeRunDependency; + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + var memoryInitializer = null; + var ASM_CONSTS = []; + STATIC_BASE = 8; + STATICTOP = STATIC_BASE + 59744; + __ATINIT__.push({ func: function() { + __GLOBAL__I_000101(); + } }, { func: function() { + __GLOBAL__sub_I_jpegls_cpp(); + } }, { func: function() { + __GLOBAL__sub_I_iostream_cpp(); + } }); + allocate([0, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 31, 194, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 237, 191, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 41, 192, 0, 0, 84, 144, 0, 0, 55, 192, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 115, 192, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 175, 192, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 241, 192, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 55, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 95, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 135, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 175, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 216, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 241, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 13, 194, 0, 0, 84, 144, 0, 0, 80, 194, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 44, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 139, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 179, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 219, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 3, 195, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 103, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 157, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 211, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 8, 196, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 71, 196, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 138, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 120, 196, 0, 0, 84, 144, 0, 0, 187, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 246, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 49, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 103, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 157, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 210, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 17, 198, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 86, 198, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 162, 198, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 182, 198, 0, 0, 84, 144, 0, 0, 196, 198, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 112, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 125, 199, 0, 0, 84, 144, 0, 0, 138, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 156, 199, 0, 0, 84, 144, 0, 0, 169, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 181, 199, 0, 0, 120, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 214, 199, 0, 0, 144, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 28, 200, 0, 0, 144, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 248, 199, 0, 0, 176, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 62, 200, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 99, 200, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 182, 221, 0, 0, 160, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 245, 221, 0, 0, 160, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 13, 222, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 38, 222, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 62, 222, 0, 0, 84, 144, 0, 0, 87, 222, 0, 0, 104, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 110, 222, 0, 0, 84, 144, 0, 0, 135, 222, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 161, 222, 0, 0, 56, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 187, 222, 0, 0, 84, 144, 0, 0, 205, 222, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 247, 222, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 33, 223, 0, 0, 44, 144, 0, 0, 82, 223, 0, 0, 124, 144, 0, 0, 131, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 120, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 178, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 136, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 225, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 120, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 16, 224, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 136, 3, 0, 0, 3, 244, 255, 255, 84, 144, 0, 0, 63, 224, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 187, 224, 0, 0, 48, 3, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 209, 224, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 64, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 227, 224, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 5, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 40, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 75, 225, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 109, 225, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 144, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 178, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 200, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 220, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 240, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 64, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 2, 226, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 23, 226, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 44, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 80, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 112, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 104, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 180, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 128, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 248, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 152, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 60, 227, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 176, 10, 0, 0, 2, 0, 0, 0, 184, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 129, 227, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 176, 10, 0, 0, 2, 0, 0, 0, 192, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 198, 227, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 200, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 11, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 200, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 80, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 108, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 136, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 164, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 192, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 216, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 6, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 224, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 76, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 232, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 146, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 240, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 216, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 248, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 237, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 248, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 73, 233, 0, 0, 44, 144, 0, 0, 50, 233, 0, 0, 124, 144, 0, 0, 28, 233, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 237, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 215, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 168, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 149, 232, 0, 0, 44, 144, 0, 0, 115, 232, 0, 0, 44, 144, 0, 0, 81, 232, 0, 0, 44, 144, 0, 0, 60, 232, 0, 0, 44, 144, 0, 0, 39, 232, 0, 0, 44, 144, 0, 0, 14, 232, 0, 0, 44, 144, 0, 0, 245, 231, 0, 0, 44, 144, 0, 0, 220, 231, 0, 0, 44, 144, 0, 0, 195, 231, 0, 0, 44, 144, 0, 0, 171, 231, 0, 0, 44, 144, 0, 0, 190, 232, 0, 0, 44, 144, 0, 0, 3, 233], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); + allocate([156, 143, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 248, 1, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 232, 1, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 216, 1, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 184, 1, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 168, 1, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 144, 1, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 128, 1, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 112, 1, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 80, 1, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 13, 0, 0, 0, 5, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 33, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 216, 3, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 104, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 104, 141, 0, 0, 64, 141, 0, 0, 84, 141, 0, 0, 124, 141, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 160, 1, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 40, 2, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 64, 2, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 19, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 80, 2, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 128, 2, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 160, 2, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 208, 2, 0, 0, 84, 0, 0, 0, 88, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 224, 2, 0, 0, 84, 0, 0, 0, 89, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 11, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 192, 3, 0, 0, 192, 4, 0, 0, 192, 5, 0, 0, 192, 6, 0, 0, 192, 7, 0, 0, 192, 8, 0, 0, 192, 9, 0, 0, 192, 10, 0, 0, 192, 11, 0, 0, 192, 12, 0, 0, 192, 13, 0, 0, 192, 14, 0, 0, 192, 15, 0, 0, 192, 16, 0, 0, 192, 17, 0, 0, 192, 18, 0, 0, 192, 19, 0, 0, 192, 20, 0, 0, 192, 21, 0, 0, 192, 22, 0, 0, 192, 23, 0, 0, 192, 24, 0, 0, 192, 25, 0, 0, 192, 26, 0, 0, 192, 27, 0, 0, 192, 28, 0, 0, 192, 29, 0, 0, 192, 30, 0, 0, 192, 31, 0, 0, 192, 0, 0, 0, 179, 1, 0, 0, 195, 2, 0, 0, 195, 3, 0, 0, 195, 4, 0, 0, 195, 5, 0, 0, 195, 6, 0, 0, 195, 7, 0, 0, 195, 8, 0, 0, 195, 9, 0, 0, 195, 10, 0, 0, 195, 11, 0, 0, 195, 12, 0, 0, 195, 13, 0, 0, 211, 14, 0, 0, 195, 15, 0, 0, 195, 0, 0, 12, 187, 1, 0, 12, 195, 2, 0, 12, 195, 3, 0, 12, 195, 4, 0, 12, 211, 88, 146, 0, 0, 200, 146, 0, 0, 56, 147, 0, 0, 56, 147, 0, 0, 120, 187, 0, 0, 168, 155, 0, 0, 168, 149, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 100, 0, 0, 0, 232, 3, 0, 0, 16, 39, 0, 0, 160, 134, 1, 0, 64, 66, 15, 0, 128, 150, 152, 0, 0, 225, 245, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 159, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 151, 215, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 143, 211, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 35640); + allocate([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 39844); + allocate([240, 2, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 20, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 90, 0, 0, 0, 92, 0, 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 16, 3, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 22, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 17, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 16, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 32, 3, 0, 0, 93, 0, 0, 0, 95, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 25, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 56, 3, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 3, 0, 0, 93, 0, 0, 0, 98, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 160, 3, 0, 0, 90, 0, 0, 0, 99, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 168, 3, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 168, 3, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 192, 3, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 192, 3, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 216, 3, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 240, 3, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 240, 3, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 96, 3, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 112, 3, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 72, 0, 0, 0, 116, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 33, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 34, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 5, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 5, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 119, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 5, 0, 0, 126, 0, 0, 0, 127, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 5, 0, 0, 128, 0, 0, 0, 129, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 9, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 5, 0, 0, 130, 0, 0, 0, 131, 0, 0, 0, 119, 0, 0, 0, 22, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 248, 255, 255, 255, 224, 5, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 132, 0, 0, 0, 133, 0, 0, 0, 119, 0, 0, 0, 30, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 248, 255, 255, 255, 8, 6, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 134, 0, 0, 0, 135, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6, 0, 0, 136, 0, 0, 0, 137, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 6, 0, 0, 138, 0, 0, 0, 139, 0, 0, 0, 119, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 40, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 6, 0, 0, 140, 0, 0, 0, 141, 0, 0, 0, 119, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 43, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 6, 0, 0, 142, 0, 0, 0, 143, 0, 0, 0, 119, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 46, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 6, 0, 0, 144, 0, 0, 0, 145, 0, 0, 0, 119, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 49, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 6, 0, 0, 146, 0, 0, 0, 147, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 0, 0, 148, 0, 0, 0, 149, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 150, 0, 0, 0, 151, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 7, 0, 0, 152, 0, 0, 0, 153, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 7, 0, 0, 154, 0, 0, 0, 155, 0, 0, 0, 119, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 7, 0, 0, 156, 0, 0, 0, 157, 0, 0, 0, 119, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 4, 0, 0, 158, 0, 0, 0, 159, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 5, 0, 0, 160, 0, 0, 0, 161, 0, 0, 0, 119, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 22, 0, 0, 0, 29, 0, 0, 0, 9, 0, 0, 0, 23, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 4, 0, 0, 162, 0, 0, 0, 163, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 13, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5, 0, 0, 164, 0, 0, 0, 165, 0, 0, 0, 119, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 166, 0, 0, 0, 167, 0, 0, 0, 119, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 168, 0, 0, 0, 169, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 168, 0, 0, 0, 170, 0, 0, 0, 119, 0, 0, 0, 24, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 30, 0, 0, 0, 25, 0, 0, 0, 31, 0, 0, 0, 26, 0, 0, 0, 32, 0, 0, 0, 13, 0, 0, 0, 27, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 80, 4, 0, 0, 168, 0, 0, 0, 171, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 16, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 112, 4, 0, 0, 168, 0, 0, 0, 172, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 18, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 144, 4, 0, 0, 168, 0, 0, 0, 173, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 176, 4, 0, 0, 168, 0, 0, 0, 174, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 192, 4, 0, 0, 168, 0, 0, 0, 175, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 97, 0, 0, 0, 108, 0, 0, 0, 115, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 99, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 117, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 116, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 111, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 97, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 98, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 3, 32, 2, 32, 2, 32, 2, 32, 2, 32, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 96, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 4, 192, 4, 192, 4, 192, 4, 192, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 97, 119, 83, 116, 114, 101, 97, 109, 32, 111, 114, 32, 114, 97, 119, 68, 97, 116, 97, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 116, 111, 32, 115, 111, 109, 101, 116, 104, 105, 110, 103, 0, 119, 105, 100, 116, 104, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 54, 53, 53, 51, 53, 93, 0, 104, 101, 105, 103, 104, 116, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 54, 53, 53, 51, 53, 93, 0, 98, 105, 116, 115, 112, 101, 114, 115, 97, 109, 112, 108, 101, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 50, 44, 32, 49, 54, 93, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 97, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 123, 78, 111, 110, 101, 44, 32, 83, 97, 109, 112, 108, 101, 44, 32, 76, 105, 110, 101, 125, 0, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 50, 53, 53, 93, 0, 117, 110, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 32, 115, 105, 122, 101, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 83, 97, 109, 112, 108, 101, 32, 105, 110, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 52, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 99, 97, 110, 32, 111, 110, 108, 121, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 78, 111, 110, 101, 32, 105, 110, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 49, 0, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 0, 78, 111, 32, 109, 111, 114, 101, 32, 98, 121, 116, 101, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 110, 32, 105, 110, 112, 117, 116, 32, 98, 117, 102, 102, 101, 114, 44, 32, 115, 116, 105, 108, 108, 32, 110, 101, 101, 100, 101, 100, 105, 110, 103, 32, 0, 65, 110, 32, 111, 100, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 98, 121, 116, 101, 115, 32, 40, 0, 41, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 115, 119, 97, 112, 112, 101, 100, 46, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 116, 69, 69, 69, 0, 49, 49, 80, 114, 111, 99, 101, 115, 115, 76, 105, 110, 101, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 116, 69, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 116, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 78, 83, 95, 57, 97, 108, 108, 111, 99, 97, 116, 111, 114, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 57, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 105, 110, 103, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 78, 83, 95, 57, 97, 108, 108, 111, 99, 97, 116, 111, 114, 73, 99, 69, 69, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 51, 84, 114, 97, 110, 115, 102, 111, 114, 109, 78, 111, 110, 101, 73, 116, 69, 69, 0, 50, 50, 80, 111, 115, 116, 80, 114, 111, 99, 101, 115, 83, 105, 110, 103, 108, 101, 83, 116, 114, 101, 97, 109, 0, 50, 53, 80, 111, 115, 116, 80, 114, 111, 99, 101, 115, 83, 105, 110, 103, 108, 101, 67, 111, 109, 112, 111, 110, 101, 110, 116, 0, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 116, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 55, 84, 114, 105, 112, 108, 101, 116, 73, 116, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 51, 84, 114, 97, 110, 115, 102, 111, 114, 109, 78, 111, 110, 101, 73, 104, 69, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 54, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 50, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 104, 76, 105, 56, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 76, 105, 56, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 104, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 116, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 55, 84, 114, 105, 112, 108, 101, 116, 73, 116, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 54, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 50, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 104, 76, 105, 56, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 76, 105, 56, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 104, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 67, 104, 97, 114, 76, 83, 32, 101, 114, 114, 111, 114, 0, 99, 104, 97, 114, 108, 115, 0, 49, 53, 99, 104, 97, 114, 108, 115, 95, 99, 97, 116, 101, 103, 111, 114, 121, 0, 112, 97, 114, 97, 109, 115, 46, 88, 116, 104, 117, 109, 98, 110, 97, 105, 108, 32, 105, 115, 32, 62, 32, 48, 32, 98, 117, 116, 32, 112, 97, 114, 97, 109, 115, 46, 116, 104, 117, 109, 98, 110, 97, 105, 108, 32, 61, 61, 32, 110, 117, 108, 108, 95, 112, 116, 114, 0, 49, 55, 74, 112, 101, 103, 77, 97, 114, 107, 101, 114, 83, 101, 103, 109, 101, 110, 116, 0, 49, 49, 74, 112, 101, 103, 83, 101, 103, 109, 101, 110, 116, 0, 50, 48, 74, 112, 101, 103, 73, 109, 97, 103, 101, 68, 97, 116, 97, 83, 101, 103, 109, 101, 110, 116, 0, 69, 120, 112, 101, 99, 116, 101, 100, 32, 74, 80, 69, 71, 32, 77, 97, 114, 107, 101, 114, 32, 115, 116, 97, 114, 116, 32, 98, 121, 116, 101, 32, 48, 120, 70, 70, 32, 98, 117, 116, 32, 116, 104, 101, 32, 98, 121, 116, 101, 32, 118, 97, 108, 117, 101, 32, 119, 97, 115, 32, 48, 120, 0, 74, 80, 69, 71, 32, 101, 110, 99, 111, 100, 105, 110, 103, 32, 119, 105, 116, 104, 32, 109, 97, 114, 107, 101, 114, 32, 0, 32, 105, 115, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 46, 0, 85, 110, 107, 110, 111, 119, 110, 32, 74, 80, 69, 71, 32, 109, 97, 114, 107, 101, 114, 32, 0, 32, 101, 110, 99, 111, 117, 110, 116, 101, 114, 101, 100, 46, 0, 109, 114, 102, 120, 0, 83, 116, 57, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 83, 116, 57, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 83, 116, 49, 51, 114, 117, 110, 116, 105, 109, 101, 95, 101, 114, 114, 111, 114, 0, 83, 116, 57, 116, 121, 112, 101, 95, 105, 110, 102, 111, 0, 83, 116, 56, 98, 97, 100, 95, 99, 97, 115, 116, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 54, 95, 95, 115, 104, 105, 109, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 57, 95, 95, 112, 111, 105, 110, 116, 101, 114, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 112, 98, 97, 115, 101, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 48, 95, 95, 115, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 49, 95, 95, 118, 109, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 33, 34, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 47, 85, 115, 101, 114, 115, 47, 99, 104, 97, 102, 101, 121, 47, 101, 109, 115, 100, 107, 95, 112, 111, 114, 116, 97, 98, 108, 101, 47, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 47, 49, 46, 51, 53, 46, 48, 47, 115, 121, 115, 116, 101, 109, 47, 105, 110, 99, 108, 117, 100, 101, 47, 108, 105, 98, 99, 120, 120, 47, 115, 116, 114, 105, 110, 103, 0, 95, 95, 116, 104, 114, 111, 119, 95, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 0, 33, 34, 118, 101, 99, 116, 111, 114, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 47, 85, 115, 101, 114, 115, 47, 99, 104, 97, 102, 101, 121, 47, 101, 109, 115, 100, 107, 95, 112, 111, 114, 116, 97, 98, 108, 101, 47, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 47, 49, 46, 51, 53, 46, 48, 47, 115, 121, 115, 116, 101, 109, 47, 105, 110, 99, 108, 117, 100, 101, 47, 108, 105, 98, 99, 120, 120, 47, 118, 101, 99, 116, 111, 114, 0, 112, 116, 104, 114, 101, 97, 100, 95, 111, 110, 99, 101, 32, 102, 97, 105, 108, 117, 114, 101, 32, 105, 110, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 95, 102, 97, 115, 116, 40, 41, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 114, 101, 116, 117, 114, 110, 101, 100, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 116, 104, 114, 101, 119, 32, 97, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 99, 97, 115, 116, 0, 99, 97, 110, 110, 111, 116, 32, 99, 114, 101, 97, 116, 101, 32, 112, 116, 104, 114, 101, 97, 100, 32, 107, 101, 121, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 99, 97, 110, 110, 111, 116, 32, 122, 101, 114, 111, 32, 111, 117, 116, 32, 116, 104, 114, 101, 97, 100, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 58, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 102, 111, 114, 101, 105, 103, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 0, 117, 110, 99, 97, 117, 103, 104, 116, 0, 84, 33, 34, 25, 13, 1, 2, 3, 17, 75, 28, 12, 16, 4, 11, 29, 18, 30, 39, 104, 110, 111, 112, 113, 98, 32, 5, 6, 15, 19, 20, 21, 26, 8, 22, 7, 40, 36, 23, 24, 9, 10, 14, 27, 31, 37, 35, 131, 130, 125, 38, 42, 43, 60, 61, 62, 63, 67, 71, 74, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 107, 108, 114, 115, 116, 121, 122, 123, 124, 0, 73, 108, 108, 101, 103, 97, 108, 32, 98, 121, 116, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 0, 68, 111, 109, 97, 105, 110, 32, 101, 114, 114, 111, 114, 0, 82, 101, 115, 117, 108, 116, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 98, 108, 101, 0, 78, 111, 116, 32, 97, 32, 116, 116, 121, 0, 80, 101, 114, 109, 105, 115, 115, 105, 111, 110, 32, 100, 101, 110, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 110, 111, 116, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 102, 105, 108, 101, 32, 111, 114, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 78, 111, 32, 115, 117, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 0, 70, 105, 108, 101, 32, 101, 120, 105, 115, 116, 115, 0, 86, 97, 108, 117, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 32, 102, 111, 114, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 0, 78, 111, 32, 115, 112, 97, 99, 101, 32, 108, 101, 102, 116, 32, 111, 110, 32, 100, 101, 118, 105, 99, 101, 0, 79, 117, 116, 32, 111, 102, 32, 109, 101, 109, 111, 114, 121, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 98, 117, 115, 121, 0, 73, 110, 116, 101, 114, 114, 117, 112, 116, 101, 100, 32, 115, 121, 115, 116, 101, 109, 32, 99, 97, 108, 108, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 105, 108, 121, 32, 117, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 73, 110, 118, 97, 108, 105, 100, 32, 115, 101, 101, 107, 0, 67, 114, 111, 115, 115, 45, 100, 101, 118, 105, 99, 101, 32, 108, 105, 110, 107, 0, 82, 101, 97, 100, 45, 111, 110, 108, 121, 32, 102, 105, 108, 101, 32, 115, 121, 115, 116, 101, 109, 0, 68, 105, 114, 101, 99, 116, 111, 114, 121, 32, 110, 111, 116, 32, 101, 109, 112, 116, 121, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 112, 101, 101, 114, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 116, 105, 109, 101, 100, 32, 111, 117, 116, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 102, 117, 115, 101, 100, 0, 72, 111, 115, 116, 32, 105, 115, 32, 100, 111, 119, 110, 0, 72, 111, 115, 116, 32, 105, 115, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 65, 100, 100, 114, 101, 115, 115, 32, 105, 110, 32, 117, 115, 101, 0, 66, 114, 111, 107, 101, 110, 32, 112, 105, 112, 101, 0, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 32, 111, 114, 32, 97, 100, 100, 114, 101, 115, 115, 0, 66, 108, 111, 99, 107, 32, 100, 101, 118, 105, 99, 101, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 0, 78, 111, 116], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 42396); + allocate([32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 73, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 84, 101, 120, 116, 32, 102, 105, 108, 101, 32, 98, 117, 115, 121, 0, 69, 120, 101, 99, 32, 102, 111, 114, 109, 97, 116, 32, 101, 114, 114, 111, 114, 0, 73, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 0, 65, 114, 103, 117, 109, 101, 110, 116, 32, 108, 105, 115, 116, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 83, 121, 109, 98, 111, 108, 105, 99, 32, 108, 105, 110, 107, 32, 108, 111, 111, 112, 0, 70, 105, 108, 101, 110, 97, 109, 101, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 111, 112, 101, 110, 32, 102, 105, 108, 101, 115, 32, 105, 110, 32, 115, 121, 115, 116, 101, 109, 0, 78, 111, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 66, 97, 100, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 0, 78, 111, 32, 99, 104, 105, 108, 100, 32, 112, 114, 111, 99, 101, 115, 115, 0, 66, 97, 100, 32, 97, 100, 100, 114, 101, 115, 115, 0, 70, 105, 108, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 108, 105, 110, 107, 115, 0, 78, 111, 32, 108, 111, 99, 107, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 100, 101, 97, 100, 108, 111, 99, 107, 32, 119, 111, 117, 108, 100, 32, 111, 99, 99, 117, 114, 0, 83, 116, 97, 116, 101, 32, 110, 111, 116, 32, 114, 101, 99, 111, 118, 101, 114, 97, 98, 108, 101, 0, 80, 114, 101, 118, 105, 111, 117, 115, 32, 111, 119, 110, 101, 114, 32, 100, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 99, 97, 110, 99, 101, 108, 101, 100, 0, 70, 117, 110, 99, 116, 105, 111, 110, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 0, 78, 111, 32, 109, 101, 115, 115, 97, 103, 101, 32, 111, 102, 32, 100, 101, 115, 105, 114, 101, 100, 32, 116, 121, 112, 101, 0, 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 114, 101, 109, 111, 118, 101, 100, 0, 68, 101, 118, 105, 99, 101, 32, 110, 111, 116, 32, 97, 32, 115, 116, 114, 101, 97, 109, 0, 78, 111, 32, 100, 97, 116, 97, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 68, 101, 118, 105, 99, 101, 32, 116, 105, 109, 101, 111, 117, 116, 0, 79, 117, 116, 32, 111, 102, 32, 115, 116, 114, 101, 97, 109, 115, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 0, 76, 105, 110, 107, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 118, 101, 114, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 101, 114, 114, 111, 114, 0, 66, 97, 100, 32, 109, 101, 115, 115, 97, 103, 101, 0, 70, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 32, 105, 110, 32, 98, 97, 100, 32, 115, 116, 97, 116, 101, 0, 78, 111, 116, 32, 97, 32, 115, 111, 99, 107, 101, 116, 0, 68, 101, 115, 116, 105, 110, 97, 116, 105, 111, 110, 32, 97, 100, 100, 114, 101, 115, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 77, 101, 115, 115, 97, 103, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 119, 114, 111, 110, 103, 32, 116, 121, 112, 101, 32, 102, 111, 114, 32, 115, 111, 99, 107, 101, 116, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 116, 121, 112, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 78, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 65, 100, 100, 114, 101, 115, 115, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 98, 121, 32, 112, 114, 111, 116, 111, 99, 111, 108, 0, 65, 100, 100, 114, 101, 115, 115, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 78, 101, 116, 119, 111, 114, 107, 32, 105, 115, 32, 100, 111, 119, 110, 0, 78, 101, 116, 119, 111, 114, 107, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 110, 101, 116, 119, 111, 114, 107, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 97, 98, 111, 114, 116, 101, 100, 0, 78, 111, 32, 98, 117, 102, 102, 101, 114, 32, 115, 112, 97, 99, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 83, 111, 99, 107, 101, 116, 32, 105, 115, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 110, 111, 116, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 67, 97, 110, 110, 111, 116, 32, 115, 101, 110, 100, 32, 97, 102, 116, 101, 114, 32, 115, 111, 99, 107, 101, 116, 32, 115, 104, 117, 116, 100, 111, 119, 110, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 108, 114, 101, 97, 100, 121, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 83, 116, 97, 108, 101, 32, 102, 105, 108, 101, 32, 104, 97, 110, 100, 108, 101, 0, 82, 101, 109, 111, 116, 101, 32, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 81, 117, 111, 116, 97, 32, 101, 120, 99, 101, 101, 100, 101, 100, 0, 78, 111, 32, 109, 101, 100, 105, 117, 109, 32, 102, 111, 117, 110, 100, 0, 87, 114, 111, 110, 103, 32, 109, 101, 100, 105, 117, 109, 32, 116, 121, 112, 101, 0, 78, 111, 32, 101, 114, 114, 111, 114, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 0, 0, 105, 110, 102, 105, 110, 105, 116, 121, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 4, 7, 3, 6, 5, 0, 80, 79, 83, 73, 88], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 52636); + allocate([17, 0, 10, 0, 17, 17, 17, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 15, 10, 17, 17, 17, 3, 10, 7, 0, 1, 19, 9, 11, 11, 0, 0, 9, 6, 11, 0, 0, 11, 0, 6, 17, 0, 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 10, 17, 17, 17, 0, 10, 0, 0, 2, 0, 9, 11, 0, 0, 0, 9, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 13, 0, 0, 0, 0, 9, 14, 0, 0, 0, 0, 0, 14, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9, 16, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 45, 43, 32, 32, 32, 48, 88, 48, 120, 0, 40, 110, 117, 108, 108, 41, 0, 45, 48, 88, 43, 48, 88, 32, 48, 88, 45, 48, 120, 43, 48, 120, 32, 48, 120, 0, 105, 110, 102, 0, 73, 78, 70, 0, 110, 97, 110, 0, 78, 65, 78, 0, 46, 0, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 119, 69, 69, 0, 117, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 108, 111, 99, 97, 108, 101, 32, 102, 111, 114, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 105, 110, 112, 117, 116, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 115, 104, 97, 114, 101, 100, 95, 99, 111, 117, 110, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 115, 121, 115, 116, 101, 109, 95, 101, 114, 114, 111, 114, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 101, 114, 114, 111, 114, 95, 99, 97, 116, 101, 103, 111, 114, 121, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 95, 95, 100, 111, 95, 109, 101, 115, 115, 97, 103, 101, 69, 0, 58, 32, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 55, 102, 97, 105, 108, 117, 114, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 57, 95, 95, 105, 111, 115, 116, 114, 101, 97, 109, 95, 99, 97, 116, 101, 103, 111, 114, 121, 69, 0, 105, 111, 115, 95, 98, 97, 115, 101, 58, 58, 99, 108, 101, 97, 114, 0, 105, 111, 115, 116, 114, 101, 97, 109, 0, 117, 110, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 111, 115, 116, 114, 101, 97, 109, 95, 99, 97, 116, 101, 103, 111, 114, 121, 32, 101, 114, 114, 111, 114, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102, 65, 66, 67, 68, 69, 70, 120, 88, 43, 45, 112, 80, 105, 73, 110, 78, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 102, 97, 99, 101, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 99, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 115, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 105, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 54, 95, 95, 110, 97, 114, 114, 111, 119, 95, 116, 111, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 55, 95, 95, 119, 105, 100, 101, 110, 95, 102, 114, 111, 109, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 119, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 95, 95, 105, 109, 112, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 119, 69, 69, 0, 37, 112, 0, 67, 0, 37, 0, 0, 0, 0, 0, 108, 0, 108, 108, 0, 0, 76, 0, 37, 112, 0, 0, 0, 0, 37, 72, 58, 37, 77, 58, 37, 83, 37, 109, 47, 37, 100, 47, 37, 121, 37, 89, 45, 37, 109, 45, 37, 100, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 37, 72, 58, 37, 77, 37, 72, 58, 37, 77, 58, 37, 83, 108, 111, 99, 97, 108, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 76, 102, 0, 109, 111, 110, 101, 121, 95, 103, 101, 116, 32, 101, 114, 114, 111, 114, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 46, 48, 76, 102, 0, 116, 114, 117, 101, 0, 102, 97, 108, 115, 101, 0, 83, 117, 110, 100, 97, 121, 0, 77, 111, 110, 100, 97, 121, 0, 84, 117, 101, 115, 100, 97, 121, 0, 87, 101, 100, 110, 101, 115, 100, 97, 121, 0, 84, 104, 117, 114, 115, 100, 97, 121, 0, 70, 114, 105, 100, 97, 121, 0, 83, 97, 116, 117, 114, 100, 97, 121, 0, 83, 117, 110, 0, 77, 111, 110, 0, 84, 117, 101, 0, 87, 101, 100, 0, 84, 104, 117, 0, 70, 114, 105, 0, 83, 97, 116, 0, 74, 97, 110, 117, 97, 114, 121, 0, 70, 101, 98, 114, 117, 97, 114, 121, 0, 77, 97, 114, 99, 104, 0, 65, 112, 114, 105, 108, 0, 77, 97, 121, 0, 74, 117, 110, 101, 0, 74, 117, 108, 121, 0, 65, 117, 103, 117, 115, 116, 0, 83, 101, 112, 116, 101, 109, 98, 101, 114, 0, 79, 99, 116, 111, 98, 101, 114, 0, 78, 111, 118, 101, 109, 98, 101, 114, 0, 68, 101, 99, 101, 109, 98, 101, 114, 0, 74, 97, 110, 0, 70, 101, 98, 0, 77, 97, 114, 0, 65, 112, 114, 0, 74, 117, 110, 0, 74, 117, 108, 0, 65, 117, 103, 0, 83, 101, 112, 0, 79, 99, 116, 0, 78, 111, 118, 0, 68, 101, 99, 0, 65, 77, 0, 80, 77, 0, 37, 109, 47, 37, 100, 47, 37, 121, 0, 37, 72, 58, 37, 77, 58, 37, 83, 0, 37, 97, 32, 37, 98, 32, 37, 100, 32, 37, 72, 58, 37, 77, 58, 37, 83, 32, 37, 89, 0, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 109, 101, 115, 115, 97, 103, 101, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 116, 105, 109, 101, 95, 112, 117, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 116, 105, 109, 101, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 112, 117, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 103, 101, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 99, 111, 100, 101, 99, 118, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 99, 116, 121, 112, 101, 95, 98, 97, 115, 101, 69, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 56215); + var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); + assert(tempDoublePtr % 8 == 0); + function copyTempFloat(ptr) { + HEAP8[tempDoublePtr] = HEAP8[ptr]; + HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1]; + HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2]; + HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]; + } + function copyTempDouble(ptr) { + HEAP8[tempDoublePtr] = HEAP8[ptr]; + HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1]; + HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2]; + HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]; + HEAP8[tempDoublePtr + 4] = HEAP8[ptr + 4]; + HEAP8[tempDoublePtr + 5] = HEAP8[ptr + 5]; + HEAP8[tempDoublePtr + 6] = HEAP8[ptr + 6]; + HEAP8[tempDoublePtr + 7] = HEAP8[ptr + 7]; + } + function _atexit(func2, arg2) { + __ATEXIT__.unshift({ func: func2, arg: arg2 }); + } + function ___cxa_atexit() { + return _atexit.apply(null, arguments); + } + Module["_i64Subtract"] = _i64Subtract; + function ___assert_fail(condition, filename, line, func2) { + ABORT = true; + throw "Assertion failed: " + Pointer_stringify(condition) + ", at: " + [filename ? Pointer_stringify(filename) : "unknown filename", line, func2 ? Pointer_stringify(func2) : "unknown function"] + " at " + stackTrace(); + } + function __ZSt18uncaught_exceptionv() { + return !!__ZSt18uncaught_exceptionv.uncaught_exception; + } + var EXCEPTIONS = { last: 0, caught: [], infos: {}, deAdjust: function(adjusted) { + if (!adjusted || EXCEPTIONS.infos[adjusted]) + return adjusted; + for (var ptr in EXCEPTIONS.infos) { + var info = EXCEPTIONS.infos[ptr]; + if (info.adjusted === adjusted) { + return ptr; + } + } + return adjusted; + }, addRef: function(ptr) { + if (!ptr) + return; + var info = EXCEPTIONS.infos[ptr]; + info.refcount++; + }, decRef: function(ptr) { + if (!ptr) + return; + var info = EXCEPTIONS.infos[ptr]; + assert(info.refcount > 0); + info.refcount--; + if (info.refcount === 0) { + if (info.destructor) { + Runtime.dynCall("vi", info.destructor, [ptr]); + } + delete EXCEPTIONS.infos[ptr]; + ___cxa_free_exception(ptr); + } + }, clearRef: function(ptr) { + if (!ptr) + return; + var info = EXCEPTIONS.infos[ptr]; + info.refcount = 0; + } }; + function ___resumeException(ptr) { + if (!EXCEPTIONS.last) { + EXCEPTIONS.last = ptr; + } + EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr)); + throw ptr; + } + function ___cxa_find_matching_catch() { + var thrown = EXCEPTIONS.last; + if (!thrown) { + return (asm["setTempRet0"](0), 0) | 0; + } + var info = EXCEPTIONS.infos[thrown]; + var throwntype = info.type; + if (!throwntype) { + return (asm["setTempRet0"](0), thrown) | 0; + } + var typeArray = Array.prototype.slice.call(arguments); + var pointer = Module["___cxa_is_pointer_type"](throwntype); + if (!___cxa_find_matching_catch.buffer) + ___cxa_find_matching_catch.buffer = _malloc(4); + HEAP32[___cxa_find_matching_catch.buffer >> 2] = thrown; + thrown = ___cxa_find_matching_catch.buffer; + for (var i2 = 0; i2 < typeArray.length; i2++) { + if (typeArray[i2] && Module["___cxa_can_catch"](typeArray[i2], throwntype, thrown)) { + thrown = HEAP32[thrown >> 2]; + info.adjusted = thrown; + return (asm["setTempRet0"](typeArray[i2]), thrown) | 0; + } + } + thrown = HEAP32[thrown >> 2]; + return (asm["setTempRet0"](throwntype), thrown) | 0; + } + function ___cxa_throw(ptr, type2, destructor) { + EXCEPTIONS.infos[ptr] = { ptr, adjusted: ptr, type: type2, destructor, refcount: 0 }; + EXCEPTIONS.last = ptr; + if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { + __ZSt18uncaught_exceptionv.uncaught_exception = 1; + } else { + __ZSt18uncaught_exceptionv.uncaught_exception++; + } + throw ptr; + } + Module["_memset"] = _memset; + var _BDtoILow = true; + var _emscripten_resume = true; + function ___gxx_personality_v0() { + } + var _emscripten_landingpad = true; + function __isLeapYear(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + function __arraySum(array, index) { + var sum = 0; + for (var i2 = 0; i2 <= index; sum += array[i2++]) + ; + return sum; + } + var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + function __addDays(date, days) { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = __isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; + if (days > daysInCurrentMonth - newDate.getDate()) { + days -= daysInCurrentMonth - newDate.getDate() + 1; + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1); + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1); + } + } else { + newDate.setDate(newDate.getDate() + days); + return newDate; + } + } + return newDate; + } + function _strftime(s, maxsize, format, tm) { + var tm_zone = HEAP32[tm + 40 >> 2]; + var date = { tm_sec: HEAP32[tm >> 2], tm_min: HEAP32[tm + 4 >> 2], tm_hour: HEAP32[tm + 8 >> 2], tm_mday: HEAP32[tm + 12 >> 2], tm_mon: HEAP32[tm + 16 >> 2], tm_year: HEAP32[tm + 20 >> 2], tm_wday: HEAP32[tm + 24 >> 2], tm_yday: HEAP32[tm + 28 >> 2], tm_isdst: HEAP32[tm + 32 >> 2], tm_gmtoff: HEAP32[tm + 36 >> 2], tm_zone: tm_zone ? Pointer_stringify(tm_zone) : "" }; + var pattern = Pointer_stringify(format); + var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S" }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); + } + var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; + var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; + function leadingSomething(value, digits, character) { + var str = typeof value === "number" ? value.toString() : value || ""; + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + function leadingNulls(value, digits) { + return leadingSomething(value, digits, "0"); + } + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0; + } + var compare; + if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare = sgn(date1.getDate() - date2.getDate()); + } + } + return compare; + } + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + case 1: + return janFourth; + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + function getWeekBasedYear(date2) { + var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } else { + return thisDate.getFullYear(); + } + } else { + return thisDate.getFullYear() - 1; + } + } + var EXPANSION_RULES_2 = { "%a": function(date2) { + return WEEKDAYS[date2.tm_wday].substring(0, 3); + }, "%A": function(date2) { + return WEEKDAYS[date2.tm_wday]; + }, "%b": function(date2) { + return MONTHS[date2.tm_mon].substring(0, 3); + }, "%B": function(date2) { + return MONTHS[date2.tm_mon]; + }, "%C": function(date2) { + var year = date2.tm_year + 1900; + return leadingNulls(year / 100 | 0, 2); + }, "%d": function(date2) { + return leadingNulls(date2.tm_mday, 2); + }, "%e": function(date2) { + return leadingSomething(date2.tm_mday, 2, " "); + }, "%g": function(date2) { + return getWeekBasedYear(date2).toString().substring(2); + }, "%G": function(date2) { + return getWeekBasedYear(date2); + }, "%H": function(date2) { + return leadingNulls(date2.tm_hour, 2); + }, "%I": function(date2) { + return leadingNulls(date2.tm_hour < 13 ? date2.tm_hour : date2.tm_hour - 12, 2); + }, "%j": function(date2) { + return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); + }, "%m": function(date2) { + return leadingNulls(date2.tm_mon + 1, 2); + }, "%M": function(date2) { + return leadingNulls(date2.tm_min, 2); + }, "%n": function() { + return "\n"; + }, "%p": function(date2) { + if (date2.tm_hour > 0 && date2.tm_hour < 13) { + return "AM"; + } else { + return "PM"; + } + }, "%S": function(date2) { + return leadingNulls(date2.tm_sec, 2); + }, "%t": function() { + return " "; + }, "%u": function(date2) { + var day = new Date(date2.tm_year + 1900, date2.tm_mon + 1, date2.tm_mday, 0, 0, 0, 0); + return day.getDay() || 7; + }, "%U": function(date2) { + var janFirst = new Date(date2.tm_year + 1900, 0, 1); + var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay()); + var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.tm_mday); + if (compareByDay(firstSunday, endDate) < 0) { + var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31; + var firstSundayUntilEndJanuary = 31 - firstSunday.getDate(); + var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate(); + return leadingNulls(Math.ceil(days / 7), 2); + } + return compareByDay(firstSunday, janFirst) === 0 ? "01" : "00"; + }, "%V": function(date2) { + var janFourthThisYear = new Date(date2.tm_year + 1900, 0, 4); + var janFourthNextYear = new Date(date2.tm_year + 1901, 0, 4); + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + var endDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); + if (compareByDay(endDate, firstWeekStartThisYear) < 0) { + return "53"; + } + if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { + return "01"; + } + var daysDifference; + if (firstWeekStartThisYear.getFullYear() < date2.tm_year + 1900) { + daysDifference = date2.tm_yday + 32 - firstWeekStartThisYear.getDate(); + } else { + daysDifference = date2.tm_yday + 1 - firstWeekStartThisYear.getDate(); + } + return leadingNulls(Math.ceil(daysDifference / 7), 2); + }, "%w": function(date2) { + var day = new Date(date2.tm_year + 1900, date2.tm_mon + 1, date2.tm_mday, 0, 0, 0, 0); + return day.getDay(); + }, "%W": function(date2) { + var janFirst = new Date(date2.tm_year, 0, 1); + var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1); + var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.tm_mday); + if (compareByDay(firstMonday, endDate) < 0) { + var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31; + var firstMondayUntilEndJanuary = 31 - firstMonday.getDate(); + var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate(); + return leadingNulls(Math.ceil(days / 7), 2); + } + return compareByDay(firstMonday, janFirst) === 0 ? "01" : "00"; + }, "%y": function(date2) { + return (date2.tm_year + 1900).toString().substring(2); + }, "%Y": function(date2) { + return date2.tm_year + 1900; + }, "%z": function(date2) { + var off = date2.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + off = off / 60 * 100 + off % 60; + return (ahead ? "+" : "-") + String("0000" + off).slice(-4); + }, "%Z": function(date2) { + return date2.tm_zone; + }, "%%": function() { + return "%"; + } }; + for (var rule in EXPANSION_RULES_2) { + if (pattern.indexOf(rule) >= 0) { + pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); + } + } + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; + } + function _strftime_l(s, maxsize, format, tm) { + return _strftime(s, maxsize, format, tm); + } + function _abort() { + Module["abort"](); + } + function _free() { + } + Module["_free"] = _free; + function ___cxa_free_exception(ptr) { + try { + return _free(ptr); + } catch (e) { + } + } + function ___cxa_end_catch() { + if (___cxa_end_catch.rethrown) { + ___cxa_end_catch.rethrown = false; + return; + } + asm["setThrew"](0); + var ptr = EXCEPTIONS.caught.pop(); + if (ptr) { + EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr)); + EXCEPTIONS.last = 0; + } + } + function _pthread_once(ptr, func2) { + if (!_pthread_once.seen) + _pthread_once.seen = {}; + if (ptr in _pthread_once.seen) + return; + Runtime.dynCall("v", func2); + _pthread_once.seen[ptr] = 1; + } + function ___lock() { + } + function ___unlock() { + } + var PTHREAD_SPECIFIC = {}; + function _pthread_getspecific(key2) { + return PTHREAD_SPECIFIC[key2] || 0; + } + function ___setErrNo(value) { + if (Module["___errno_location"]) + HEAP32[Module["___errno_location"]() >> 2] = value; + return value; + } + var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86 }; + function _sysconf(name) { + switch (name) { + case 30: + return PAGE_SIZE; + case 85: + return totalMemory / PAGE_SIZE; + case 132: + case 133: + case 12: + case 137: + case 138: + case 15: + case 235: + case 16: + case 17: + case 18: + case 19: + case 20: + case 149: + case 13: + case 10: + case 236: + case 153: + case 9: + case 21: + case 22: + case 159: + case 154: + case 14: + case 77: + case 78: + case 139: + case 80: + case 81: + case 82: + case 68: + case 67: + case 164: + case 11: + case 29: + case 47: + case 48: + case 95: + case 52: + case 51: + case 46: + return 200809; + case 79: + return 0; + case 27: + case 246: + case 127: + case 128: + case 23: + case 24: + case 160: + case 161: + case 181: + case 182: + case 242: + case 183: + case 184: + case 243: + case 244: + case 245: + case 165: + case 178: + case 179: + case 49: + case 50: + case 168: + case 169: + case 175: + case 170: + case 171: + case 172: + case 97: + case 76: + case 32: + case 173: + case 35: + return -1; + case 176: + case 177: + case 7: + case 155: + case 8: + case 157: + case 125: + case 126: + case 92: + case 93: + case 129: + case 130: + case 131: + case 94: + case 91: + return 1; + case 74: + case 60: + case 69: + case 70: + case 4: + return 1024; + case 31: + case 42: + case 72: + return 32; + case 87: + case 26: + case 33: + return 2147483647; + case 34: + case 1: + return 47839; + case 38: + case 36: + return 99; + case 43: + case 37: + return 2048; + case 0: + return 2097152; + case 3: + return 65536; + case 28: + return 32768; + case 44: + return 32767; + case 75: + return 16384; + case 39: + return 1e3; + case 89: + return 700; + case 71: + return 256; + case 40: + return 255; + case 2: + return 100; + case 180: + return 64; + case 25: + return 20; + case 5: + return 16; + case 6: + return 6; + case 73: + return 4; + case 84: { + if (typeof navigator === "object") + return navigator["hardwareConcurrency"] || 1; + return 1; + } + } + ___setErrNo(ERRNO_CODES.EINVAL); + return -1; + } + var _fabs = Math_abs; + var PTHREAD_SPECIFIC_NEXT_KEY = 1; + function _pthread_key_create(key2, destructor) { + if (key2 == 0) { + return ERRNO_CODES.EINVAL; + } + HEAP32[key2 >> 2] = PTHREAD_SPECIFIC_NEXT_KEY; + PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; + PTHREAD_SPECIFIC_NEXT_KEY++; + return 0; + } + var PATH = void 0; + function _emscripten_set_main_loop_timing(mode, value) { + Browser.mainLoop.timingMode = mode; + Browser.mainLoop.timingValue = value; + if (!Browser.mainLoop.func) { + return 1; + } + if (mode == 0) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { + setTimeout(Browser.mainLoop.runner, value); + }; + Browser.mainLoop.method = "timeout"; + } else if (mode == 1) { + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { + Browser.requestAnimationFrame(Browser.mainLoop.runner); + }; + Browser.mainLoop.method = "rAF"; + } else if (mode == 2) { + if (!window["setImmediate"]) { + let Browser_setImmediate_messageHandler2 = function(event) { + if (event.source === window && event.data === emscriptenMainLoopMessageId) { + event.stopPropagation(); + setImmediates.shift()(); + } + }; + var Browser_setImmediate_messageHandler = Browser_setImmediate_messageHandler2; + var setImmediates = []; + var emscriptenMainLoopMessageId = "__emcc"; + window.addEventListener("message", Browser_setImmediate_messageHandler2, true); + window["setImmediate"] = function Browser_emulated_setImmediate(func2) { + setImmediates.push(func2); + window.postMessage(emscriptenMainLoopMessageId, "*"); + }; + } + Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { + window["setImmediate"](Browser.mainLoop.runner); + }; + Browser.mainLoop.method = "immediate"; + } + return 0; + } + function _emscripten_set_main_loop(func2, fps, simulateInfiniteLoop, arg2, noSetTiming) { + Module["noExitRuntime"] = true; + assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."); + Browser.mainLoop.func = func2; + Browser.mainLoop.arg = arg2; + var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; + Browser.mainLoop.runner = function Browser_mainLoop_runner() { + if (ABORT) + return; + if (Browser.mainLoop.queue.length > 0) { + var start = Date.now(); + var blocker = Browser.mainLoop.queue.shift(); + blocker.func(blocker.arg); + if (Browser.mainLoop.remainingBlockers) { + var remaining = Browser.mainLoop.remainingBlockers; + var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining); + if (blocker.counted) { + Browser.mainLoop.remainingBlockers = next; + } else { + next = next + 0.5; + Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9; + } + } + console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms"); + Browser.mainLoop.updateStatus(); + setTimeout(Browser.mainLoop.runner, 0); + return; + } + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) + return; + Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; + if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { + Browser.mainLoop.scheduler(); + return; + } + if (Browser.mainLoop.method === "timeout" && Module.ctx) { + Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"); + Browser.mainLoop.method = ""; + } + Browser.mainLoop.runIter(function() { + if (typeof arg2 !== "undefined") { + Runtime.dynCall("vi", func2, [arg2]); + } else { + Runtime.dynCall("v", func2); + } + }); + if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) + return; + if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) + SDL.audio.queueNewAudioData(); + Browser.mainLoop.scheduler(); + }; + if (!noSetTiming) { + if (fps && fps > 0) + _emscripten_set_main_loop_timing(0, 1e3 / fps); + else + _emscripten_set_main_loop_timing(1, 1); + Browser.mainLoop.scheduler(); + } + if (simulateInfiniteLoop) { + throw "SimulateInfiniteLoop"; + } + } + var Browser = { mainLoop: { scheduler: null, method: "", currentlyRunningMainloop: 0, func: null, arg: 0, timingMode: 0, timingValue: 0, currentFrameNumber: 0, queue: [], pause: function() { + Browser.mainLoop.scheduler = null; + Browser.mainLoop.currentlyRunningMainloop++; + }, resume: function() { + Browser.mainLoop.currentlyRunningMainloop++; + var timingMode = Browser.mainLoop.timingMode; + var timingValue = Browser.mainLoop.timingValue; + var func2 = Browser.mainLoop.func; + Browser.mainLoop.func = null; + _emscripten_set_main_loop(func2, 0, false, Browser.mainLoop.arg, true); + _emscripten_set_main_loop_timing(timingMode, timingValue); + Browser.mainLoop.scheduler(); + }, updateStatus: function() { + if (Module["setStatus"]) { + var message = Module["statusMessage"] || "Please wait..."; + var remaining = Browser.mainLoop.remainingBlockers; + var expected = Browser.mainLoop.expectedBlockers; + if (remaining) { + if (remaining < expected) { + Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")"); + } else { + Module["setStatus"](message); + } + } else { + Module["setStatus"](""); + } + } + }, runIter: function(func2) { + if (ABORT) + return; + if (Module["preMainLoop"]) { + var preRet = Module["preMainLoop"](); + if (preRet === false) { + return; + } + } + try { + func2(); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else { + if (e && typeof e === "object" && e.stack) + Module.printErr("exception thrown: " + [e, e.stack]); + throw e; + } + } + if (Module["postMainLoop"]) + Module["postMainLoop"](); + } }, isFullScreen: false, pointerLock: false, moduleContextCreatedCallbacks: [], workers: [], init: function() { + if (!Module["preloadPlugins"]) + Module["preloadPlugins"] = []; + if (Browser.initted) + return; + Browser.initted = true; + try { + new Blob(); + Browser.hasBlobConstructor = true; + } catch (e) { + Browser.hasBlobConstructor = false; + console.log("warning: no blob constructor, cannot create blobs with mimetypes"); + } + Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null; + Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : void 0; + if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") { + console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); + Module.noImageDecoding = true; + } + var imagePlugin = {}; + imagePlugin["canHandle"] = function imagePlugin_canHandle(name) { + return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); + }; + imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) { + var b = null; + if (Browser.hasBlobConstructor) { + try { + b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + if (b.size !== byteArray.length) { + b = new Blob([new Uint8Array(byteArray).buffer], { type: Browser.getMimetype(name) }); + } + } catch (e) { + Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder"); + } + } + if (!b) { + var bb = new Browser.BlobBuilder(); + bb.append(new Uint8Array(byteArray).buffer); + b = bb.getBlob(); + } + var url = Browser.URLObject.createObjectURL(b); + var img = new Image(); + img.onload = function img_onload() { + assert(img.complete, "Image " + name + " could not be decoded"); + var canvas2 = document.createElement("canvas"); + canvas2.width = img.width; + canvas2.height = img.height; + var ctx = canvas2.getContext("2d"); + ctx.drawImage(img, 0, 0); + Module["preloadedImages"][name] = canvas2; + Browser.URLObject.revokeObjectURL(url); + if (onload) + onload(byteArray); + }; + img.onerror = function img_onerror(event) { + console.log("Image " + url + " could not be decoded"); + if (onerror) + onerror(); + }; + img.src = url; + }; + Module["preloadPlugins"].push(imagePlugin); + var audioPlugin = {}; + audioPlugin["canHandle"] = function audioPlugin_canHandle(name) { + return !Module.noAudioDecoding && name.substr(-4) in { ".ogg": 1, ".wav": 1, ".mp3": 1 }; + }; + audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) { + var done = false; + function finish(audio2) { + if (done) + return; + done = true; + Module["preloadedAudios"][name] = audio2; + if (onload) + onload(byteArray); + } + function fail() { + if (done) + return; + done = true; + Module["preloadedAudios"][name] = new Audio(); + if (onerror) + onerror(); + } + if (Browser.hasBlobConstructor) { + try { + var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); + } catch (e) { + return fail(); + } + var url = Browser.URLObject.createObjectURL(b); + var audio = new Audio(); + audio.addEventListener("canplaythrough", function() { + finish(audio); + }, false); + audio.onerror = function audio_onerror(event) { + if (done) + return; + console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach"); + function encode64(data) { + var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var PAD = "="; + var ret = ""; + var leftchar = 0; + var leftbits = 0; + for (var i2 = 0; i2 < data.length; i2++) { + leftchar = leftchar << 8 | data[i2]; + leftbits += 8; + while (leftbits >= 6) { + var curr = leftchar >> leftbits - 6 & 63; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar & 3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar & 15) << 2]; + ret += PAD; + } + return ret; + } + audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray); + finish(audio); + }; + audio.src = url; + Browser.safeSetTimeout(function() { + finish(audio); + }, 1e4); + } else { + return fail(); + } + }; + Module["preloadPlugins"].push(audioPlugin); + var canvas = Module["canvas"]; + function pointerLockChange() { + Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas; + } + if (canvas) { + canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || function() { + }; + canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || function() { + }; + canvas.exitPointerLock = canvas.exitPointerLock.bind(document); + document.addEventListener("pointerlockchange", pointerLockChange, false); + document.addEventListener("mozpointerlockchange", pointerLockChange, false); + document.addEventListener("webkitpointerlockchange", pointerLockChange, false); + document.addEventListener("mspointerlockchange", pointerLockChange, false); + if (Module["elementPointerLock"]) { + canvas.addEventListener("click", function(ev) { + if (!Browser.pointerLock && canvas.requestPointerLock) { + canvas.requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + }, createContext: function(canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module.ctx && canvas == Module.canvas) + return Module.ctx; + var ctx; + var contextHandle; + if (useWebGL) { + var contextAttributes = { antialias: false, alpha: false }; + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + canvas.style.backgroundColor = "black"; + } else { + ctx = canvas.getContext("2d"); + } + if (!ctx) + return null; + if (setInModule) { + if (!useWebGL) + assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it"); + Module.ctx = ctx; + if (useWebGL) + GL.makeContextCurrent(contextHandle); + Module.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(function(callback) { + callback(); + }); + Browser.init(); + } + return ctx; + }, destroyContext: function(canvas, useWebGL, setInModule) { + }, fullScreenHandlersInstalled: false, lockPointer: void 0, resizeCanvas: void 0, requestFullScreen: function(lockPointer, resizeCanvas, vrDevice) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + Browser.vrDevice = vrDevice; + if (typeof Browser.lockPointer === "undefined") + Browser.lockPointer = true; + if (typeof Browser.resizeCanvas === "undefined") + Browser.resizeCanvas = false; + if (typeof Browser.vrDevice === "undefined") + Browser.vrDevice = null; + var canvas = Module["canvas"]; + function fullScreenChange() { + Browser.isFullScreen = false; + var canvasContainer2 = canvas.parentNode; + if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer2) { + canvas.cancelFullScreen = document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["webkitCancelFullScreen"] || document["msExitFullscreen"] || document["exitFullscreen"] || function() { + }; + canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); + if (Browser.lockPointer) + canvas.requestPointerLock(); + Browser.isFullScreen = true; + if (Browser.resizeCanvas) + Browser.setFullScreenCanvasSize(); + } else { + canvasContainer2.parentNode.insertBefore(canvas, canvasContainer2); + canvasContainer2.parentNode.removeChild(canvasContainer2); + if (Browser.resizeCanvas) + Browser.setWindowedCanvasSize(); + } + if (Module["onFullScreen"]) + Module["onFullScreen"](Browser.isFullScreen); + Browser.updateCanvasDimensions(canvas); + } + if (!Browser.fullScreenHandlersInstalled) { + Browser.fullScreenHandlersInstalled = true; + document.addEventListener("fullscreenchange", fullScreenChange, false); + document.addEventListener("mozfullscreenchange", fullScreenChange, false); + document.addEventListener("webkitfullscreenchange", fullScreenChange, false); + document.addEventListener("MSFullscreenChange", fullScreenChange, false); + } + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + canvasContainer.requestFullScreen = canvasContainer["requestFullScreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullScreen"] ? function() { + canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]); + } : null); + if (vrDevice) { + canvasContainer.requestFullScreen({ vrDisplay: vrDevice }); + } else { + canvasContainer.requestFullScreen(); + } + }, nextRAF: 0, fakeRequestAnimationFrame: function(func2) { + var now = Date.now(); + if (Browser.nextRAF === 0) { + Browser.nextRAF = now + 1e3 / 60; + } else { + while (now + 2 >= Browser.nextRAF) { + Browser.nextRAF += 1e3 / 60; + } + } + var delay = Math.max(Browser.nextRAF - now, 0); + setTimeout(func2, delay); + }, requestAnimationFrame: function requestAnimationFrame(func2) { + if (typeof window === "undefined") { + Browser.fakeRequestAnimationFrame(func2); + } else { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || Browser.fakeRequestAnimationFrame; + } + window.requestAnimationFrame(func2); + } + }, safeCallback: function(func2) { + return function() { + if (!ABORT) + return func2.apply(null, arguments); + }; + }, allowAsyncCallbacks: true, queuedAsyncCallbacks: [], pauseAsyncCallbacks: function() { + Browser.allowAsyncCallbacks = false; + }, resumeAsyncCallbacks: function() { + Browser.allowAsyncCallbacks = true; + if (Browser.queuedAsyncCallbacks.length > 0) { + var callbacks = Browser.queuedAsyncCallbacks; + Browser.queuedAsyncCallbacks = []; + callbacks.forEach(function(func2) { + func2(); + }); + } + }, safeRequestAnimationFrame: function(func2) { + return Browser.requestAnimationFrame(function() { + if (ABORT) + return; + if (Browser.allowAsyncCallbacks) { + func2(); + } else { + Browser.queuedAsyncCallbacks.push(func2); + } + }); + }, safeSetTimeout: function(func2, timeout) { + Module["noExitRuntime"] = true; + return setTimeout(function() { + if (ABORT) + return; + if (Browser.allowAsyncCallbacks) { + func2(); + } else { + Browser.queuedAsyncCallbacks.push(func2); + } + }, timeout); + }, safeSetInterval: function(func2, timeout) { + Module["noExitRuntime"] = true; + return setInterval(function() { + if (ABORT) + return; + if (Browser.allowAsyncCallbacks) { + func2(); + } + }, timeout); + }, getMimetype: function(name) { + return { "jpg": "image/jpeg", "jpeg": "image/jpeg", "png": "image/png", "bmp": "image/bmp", "ogg": "audio/ogg", "wav": "audio/wav", "mp3": "audio/mpeg" }[name.substr(name.lastIndexOf(".") + 1)]; + }, getUserMedia: function(func2) { + if (!window.getUserMedia) { + window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]; + } + window.getUserMedia(func2); + }, getMovementX: function(event) { + return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0; + }, getMovementY: function(event) { + return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0; + }, getMouseWheelDelta: function(event) { + var delta = 0; + switch (event.type) { + case "DOMMouseScroll": + delta = event.detail; + break; + case "mousewheel": + delta = event.wheelDelta; + break; + case "wheel": + delta = event["deltaY"]; + break; + default: + throw "unrecognized mouse wheel event: " + event.type; + } + return delta; + }, mouseX: 0, mouseY: 0, mouseMovementX: 0, mouseMovementY: 0, touches: {}, lastTouches: {}, calculateMouseEvent: function(event) { + if (Browser.pointerLock) { + if (event.type != "mousemove" && "mozMovementX" in event) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + if (typeof SDL != "undefined") { + Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; + Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; + } else { + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } + } else { + var rect = Module["canvas"].getBoundingClientRect(); + var cw = Module["canvas"].width; + var ch = Module["canvas"].height; + var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset; + var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset; + if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { + var touch = event.touch; + if (touch === void 0) { + return; + } + var adjustedX = touch.pageX - (scrollX + rect.left); + var adjustedY = touch.pageY - (scrollY + rect.top); + adjustedX = adjustedX * (cw / rect.width); + adjustedY = adjustedY * (ch / rect.height); + var coords = { x: adjustedX, y: adjustedY }; + if (event.type === "touchstart") { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === "touchend" || event.type === "touchmove") { + var last = Browser.touches[touch.identifier]; + if (!last) + last = coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + var x = event.pageX - (scrollX + rect.left); + var y = event.pageY - (scrollY + rect.top); + x = x * (cw / rect.width); + y = y * (ch / rect.height); + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + } + }, xhrLoad: function(url, onload, onerror) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response); + } else { + onerror(); + } + }; + xhr.onerror = onerror; + xhr.send(null); + }, asyncLoad: function(url, onload, onerror, noRunDep) { + Browser.xhrLoad(url, function(arrayBuffer) { + assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); + onload(new Uint8Array(arrayBuffer)); + if (!noRunDep) + removeRunDependency("al " + url); + }, function(event) { + if (onerror) { + onerror(); + } else { + throw 'Loading data file "' + url + '" failed.'; + } + }); + if (!noRunDep) + addRunDependency("al " + url); + }, resizeListeners: [], updateResizeListeners: function() { + var canvas = Module["canvas"]; + Browser.resizeListeners.forEach(function(listener) { + listener(canvas.width, canvas.height); + }); + }, setCanvasSize: function(width, height, noUpdates) { + var canvas = Module["canvas"]; + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) + Browser.updateResizeListeners(); + }, windowedWidth: 0, windowedHeight: 0, setFullScreenCanvasSize: function() { + if (typeof SDL != "undefined") { + var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; + flags = flags | 8388608; + HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; + } + Browser.updateResizeListeners(); + }, setWindowedCanvasSize: function() { + if (typeof SDL != "undefined") { + var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; + flags = flags & ~8388608; + HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; + } + Browser.updateResizeListeners(); + }, updateCanvasDimensions: function(canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) { + if (w / h < Module["forcedAspectRatio"]) { + w = Math.round(h * Module["forcedAspectRatio"]); + } else { + h = Math.round(w / Module["forcedAspectRatio"]); + } + } + if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) + canvas.width = w; + if (canvas.height != h) + canvas.height = h; + if (typeof canvas.style != "undefined") { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) + canvas.width = wNative; + if (canvas.height != hNative) + canvas.height = hNative; + if (typeof canvas.style != "undefined") { + if (w != wNative || h != hNative) { + canvas.style.setProperty("width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } + } + }, wgetRequests: {}, nextWgetRequestHandle: 0, getNextWgetRequestHandle: function() { + var handle = Browser.nextWgetRequestHandle; + Browser.nextWgetRequestHandle++; + return handle; + } }; + function _pthread_setspecific(key2, value) { + if (!(key2 in PTHREAD_SPECIFIC)) { + return ERRNO_CODES.EINVAL; + } + PTHREAD_SPECIFIC[key2] = value; + return 0; + } + function _malloc(bytes) { + var ptr = Runtime.dynamicAlloc(bytes + 8); + return ptr + 8 & 4294967288; + } + Module["_malloc"] = _malloc; + function ___cxa_allocate_exception(size) { + return _malloc(size); + } + var SYSCALLS = { varargs: 0, get: function(varargs) { + SYSCALLS.varargs += 4; + var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; + return ret; + }, getStr: function() { + var ret = Pointer_stringify(SYSCALLS.get()); + return ret; + }, get64: function() { + var low = SYSCALLS.get(), high = SYSCALLS.get(); + if (low >= 0) + assert(high === 0); + else + assert(high === -1); + return low; + }, getZero: function() { + assert(SYSCALLS.get() === 0); + } }; + function ___syscall54(which, varargs) { + SYSCALLS.varargs = varargs; + try { + return 0; + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + Module["_i64Add"] = _i64Add; + Module["_bitshift64Lshr"] = _bitshift64Lshr; + function ___cxa_pure_virtual() { + ABORT = true; + throw "Pure virtual function called!"; + } + var _BDtoIHigh = true; + function _pthread_cleanup_push(routine, arg2) { + __ATEXIT__.push(function() { + Runtime.dynCall("vi", routine, [arg2]); + }); + _pthread_cleanup_push.level = __ATEXIT__.length; + } + function _pthread_cond_broadcast() { + return 0; + } + function ___cxa_guard_acquire(variable) { + if (!HEAP8[variable >> 0]) { + HEAP8[variable >> 0] = 1; + return 1; + } + return 0; + } + function _pthread_cleanup_pop() { + assert(_pthread_cleanup_push.level == __ATEXIT__.length, "cannot pop if something else added meanwhile!"); + __ATEXIT__.pop(); + _pthread_cleanup_push.level = __ATEXIT__.length; + } + function ___cxa_guard_release() { + } + function ___cxa_begin_catch(ptr) { + __ZSt18uncaught_exceptionv.uncaught_exception--; + EXCEPTIONS.caught.push(ptr); + EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); + return ptr; + } + function _llvm_eh_typeid_for(type2) { + return type2; + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src + num), dest); + return dest; + } + Module["_memcpy"] = _memcpy; + function ___syscall6(which, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + function _pthread_mutex_lock() { + } + var _emscripten_postinvoke = true; + function _sbrk(bytes) { + var self2 = _sbrk; + if (!self2.called) { + DYNAMICTOP = alignMemoryPage(DYNAMICTOP); + self2.called = true; + assert(Runtime.dynamicAlloc); + self2.alloc = Runtime.dynamicAlloc; + Runtime.dynamicAlloc = function() { + abort("cannot dynamically allocate, sbrk now has control"); + }; + } + var ret = DYNAMICTOP; + if (bytes != 0) { + var success = self2.alloc(bytes); + if (!success) + return -1 >>> 0; + } + return ret; + } + Module["_bitshift64Shl"] = _bitshift64Shl; + function ___cxa_guard_abort() { + } + Module["_memmove"] = _memmove; + var _emscripten_preinvoke = true; + var _BItoD = true; + function _pthread_cond_wait() { + return 0; + } + function ___cxa_rethrow() { + ___cxa_end_catch.rethrown = true; + var ptr = EXCEPTIONS.caught.pop(); + EXCEPTIONS.last = ptr; + throw ptr; + } + function _pthread_mutex_unlock() { + } + function _time(ptr) { + var ret = Date.now() / 1e3 | 0; + if (ptr) { + HEAP32[ptr >> 2] = ret; + } + return ret; + } + function _pthread_self() { + return 0; + } + function ___syscall140(which, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); + var offset = offset_low; + assert(offset_high === 0); + FS.llseek(stream, offset, whence); + HEAP32[result >> 2] = stream.position; + if (stream.getdents && offset === 0 && whence === 0) + stream.getdents = null; + return 0; + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + function ___syscall146(which, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + var ret = 0; + if (!___syscall146.buffer) + ___syscall146.buffer = []; + var buffer2 = ___syscall146.buffer; + for (var i2 = 0; i2 < iovcnt; i2++) { + var ptr = HEAP32[iov + i2 * 8 >> 2]; + var len = HEAP32[iov + (i2 * 8 + 4) >> 2]; + for (var j = 0; j < len; j++) { + var curr = HEAPU8[ptr + j]; + if (curr === 0 || curr === 10) { + Module["print"](UTF8ArrayToString(buffer2, 0)); + buffer2.length = 0; + } else { + buffer2.push(curr); + } + } + ret += len; + } + return ret; + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + function ___syscall145(which, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); + return SYSCALLS.doReadv(stream, iov, iovcnt); + } catch (e) { + if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) + abort(e); + return -e.errno; + } + } + var ___dso_handle = allocate(1, "i32*", ALLOC_STATIC); + Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { + Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice); + }; + Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func2) { + Browser.requestAnimationFrame(func2); + }; + Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { + Browser.setCanvasSize(width, height, noUpdates); + }; + Module["pauseMainLoop"] = function Module_pauseMainLoop() { + Browser.mainLoop.pause(); + }; + Module["resumeMainLoop"] = function Module_resumeMainLoop() { + Browser.mainLoop.resume(); + }; + Module["getUserMedia"] = function Module_getUserMedia() { + Browser.getUserMedia(); + }; + Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { + return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes); + }; + STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); + staticSealed = true; + STACK_MAX = STACK_BASE + TOTAL_STACK; + DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); + assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); + var cttz_i8 = allocate([8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0], "i8", ALLOC_DYNAMIC); + function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + try { + return Module["dynCall_iiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiii(index, a1, a2, a3, a4, a5) { + try { + Module["dynCall_viiiii"](index, a1, a2, a3, a4, a5); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiid(index, a1, a2, a3, a4, a5, a6) { + try { + return Module["dynCall_iiiiiid"](index, a1, a2, a3, a4, a5, a6); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_vi(index, a1) { + try { + Module["dynCall_vi"](index, a1); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_vii(index, a1, a2) { + try { + Module["dynCall_vii"](index, a1, a2); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { + try { + return Module["dynCall_iiiiiii"](index, a1, a2, a3, a4, a5, a6); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_ii(index, a1) { + try { + return Module["dynCall_ii"](index, a1); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) { + try { + return Module["dynCall_iiiiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiii(index, a1, a2, a3) { + try { + return Module["dynCall_iiii"](index, a1, a2, a3); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiiiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) { + try { + Module["dynCall_viiiiiiiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { + try { + Module["dynCall_viiiiii"](index, a1, a2, a3, a4, a5, a6); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { + try { + Module["dynCall_viiiiiii"](index, a1, a2, a3, a4, a5, a6, a7); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { + try { + Module["dynCall_viiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iii(index, a1, a2) { + try { + return Module["dynCall_iii"](index, a1, a2); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiii(index, a1, a2, a3, a4, a5) { + try { + return Module["dynCall_iiiiii"](index, a1, a2, a3, a4, a5); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_diii(index, a1, a2, a3) { + try { + return Module["dynCall_diii"](index, a1, a2, a3); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_i(index) { + try { + return Module["dynCall_i"](index); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiii(index, a1, a2, a3, a4) { + try { + return Module["dynCall_iiiii"](index, a1, a2, a3, a4); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viii(index, a1, a2, a3) { + try { + Module["dynCall_viii"](index, a1, a2, a3); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_v(index) { + try { + Module["dynCall_v"](index); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { + try { + return Module["dynCall_iiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_iiiiid(index, a1, a2, a3, a4, a5) { + try { + return Module["dynCall_iiiiid"](index, a1, a2, a3, a4, a5); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + function invoke_viiii(index, a1, a2, a3, a4) { + try { + Module["dynCall_viiii"](index, a1, a2, a3, a4); + } catch (e) { + if (typeof e !== "number" && e !== "longjmp") + throw e; + asm["setThrew"](1, 0); + } + } + Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength }; + Module.asmLibraryArg = { "abort": abort, "assert": assert, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_viiiii": invoke_viiiii, "invoke_iiiiiid": invoke_iiiiiid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_ii": invoke_ii, "invoke_iiiiiiiiiiii": invoke_iiiiiiiiiiii, "invoke_iiii": invoke_iiii, "invoke_viiiiiiiiiiiiiii": invoke_viiiiiiiiiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiiii": invoke_viiiiiiiiii, "invoke_iii": invoke_iii, "invoke_iiiiii": invoke_iiiiii, "invoke_diii": invoke_diii, "invoke_i": invoke_i, "invoke_iiiii": invoke_iiiii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_iiiiiiiii": invoke_iiiiiiiii, "invoke_iiiiid": invoke_iiiiid, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "_strftime": _strftime, "_pthread_cond_wait": _pthread_cond_wait, "___lock": ___lock, "_pthread_key_create": _pthread_key_create, "_abort": _abort, "___cxa_guard_acquire": ___cxa_guard_acquire, "___setErrNo": ___setErrNo, "___gxx_personality_v0": ___gxx_personality_v0, "___assert_fail": ___assert_fail, "___cxa_free_exception": ___cxa_free_exception, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "__isLeapYear": __isLeapYear, "___cxa_guard_release": ___cxa_guard_release, "__addDays": __addDays, "_strftime_l": _strftime_l, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_llvm_eh_typeid_for": _llvm_eh_typeid_for, "_sbrk": _sbrk, "___cxa_begin_catch": ___cxa_begin_catch, "_emscripten_memcpy_big": _emscripten_memcpy_big, "___cxa_end_catch": ___cxa_end_catch, "___resumeException": ___resumeException, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_sysconf": _sysconf, "_pthread_getspecific": _pthread_getspecific, "__arraySum": __arraySum, "_pthread_self": _pthread_self, "_pthread_mutex_unlock": _pthread_mutex_unlock, "_pthread_once": _pthread_once, "___syscall54": ___syscall54, "___unlock": ___unlock, "_pthread_cleanup_pop": _pthread_cleanup_pop, "_pthread_cond_broadcast": _pthread_cond_broadcast, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_pthread_setspecific": _pthread_setspecific, "___cxa_atexit": ___cxa_atexit, "___cxa_throw": ___cxa_throw, "___cxa_rethrow": ___cxa_rethrow, "___syscall6": ___syscall6, "_pthread_cleanup_push": _pthread_cleanup_push, "___cxa_pure_virtual": ___cxa_pure_virtual, "_time": _time, "_pthread_mutex_lock": _pthread_mutex_lock, "___cxa_guard_abort": ___cxa_guard_abort, "_atexit": _atexit, "___syscall140": ___syscall140, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "___dso_handle": ___dso_handle }; + var asm = function(global, env, buffer2) { + ; + var a = global.Int8Array; + var b = global.Int16Array; + var c = global.Int32Array; + var d = global.Uint8Array; + var e = global.Uint16Array; + var f = global.Uint32Array; + var g = global.Float32Array; + var h = global.Float64Array; + var i2 = new a(buffer2); + var j = new b(buffer2); + var k = new c(buffer2); + var l = new d(buffer2); + var m = new e(buffer2); + var n = new f(buffer2); + var o = new g(buffer2); + var p = new h(buffer2); + var q = global.byteLength; + var r = env.STACKTOP | 0; + var s = env.STACK_MAX | 0; + var t = env.tempDoublePtr | 0; + var u = env.ABORT | 0; + var v = env.cttz_i8 | 0; + var w = env.___dso_handle | 0; + var x = 0; + var y = 0; + var z = 0; + var A = 0; + var B = global.NaN, C = global.Infinity; + var D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0; + var M = 0; + var N = 0; + var O = 0; + var P = 0; + var Q = 0; + var R = 0; + var S = 0; + var T = 0; + var U = 0; + var V = 0; + var W = global.Math.floor; + var X = global.Math.abs; + var Y = global.Math.sqrt; + var Z = global.Math.pow; + var _ = global.Math.cos; + var $ = global.Math.sin; + var aa = global.Math.tan; + var ba = global.Math.acos; + var ca = global.Math.asin; + var da = global.Math.atan; + var ea = global.Math.atan2; + var fa = global.Math.exp; + var ga = global.Math.log; + var ha = global.Math.ceil; + var ia = global.Math.imul; + var ja = global.Math.min; + var ka = global.Math.clz32; + var la = env.abort; + var ma = env.assert; + var na = env.invoke_iiiiiiii; + var oa = env.invoke_viiiii; + var pa = env.invoke_iiiiiid; + var qa = env.invoke_vi; + var ra = env.invoke_vii; + var sa = env.invoke_iiiiiii; + var ta = env.invoke_ii; + var ua = env.invoke_iiiiiiiiiiii; + var va = env.invoke_iiii; + var wa = env.invoke_viiiiiiiiiiiiiii; + var xa = env.invoke_viiiiii; + var ya = env.invoke_viiiiiii; + var za = env.invoke_viiiiiiiiii; + var Aa = env.invoke_iii; + var Ba = env.invoke_iiiiii; + var Ca = env.invoke_diii; + var Da = env.invoke_i; + var Ea = env.invoke_iiiii; + var Fa = env.invoke_viii; + var Ga = env.invoke_v; + var Ha = env.invoke_iiiiiiiii; + var Ia = env.invoke_iiiiid; + var Ja = env.invoke_viiii; + var Ka = env._fabs; + var La = env._strftime; + var Ma = env._pthread_cond_wait; + var Na = env.___lock; + var Oa = env._pthread_key_create; + var Pa = env._abort; + var Qa = env.___cxa_guard_acquire; + var Ra = env.___setErrNo; + var Sa = env.___gxx_personality_v0; + var Ta = env.___assert_fail; + var Ua = env.___cxa_free_exception; + var Va = env.___cxa_allocate_exception; + var Wa = env.___cxa_find_matching_catch; + var Xa = env.__isLeapYear; + var Ya = env.___cxa_guard_release; + var Za = env.__addDays; + var _a = env._strftime_l; + var $a = env._emscripten_set_main_loop_timing; + var ab = env._llvm_eh_typeid_for; + var bb = env._sbrk; + var cb = env.___cxa_begin_catch; + var db = env._emscripten_memcpy_big; + var eb = env.___cxa_end_catch; + var fb = env.___resumeException; + var gb = env.__ZSt18uncaught_exceptionv; + var hb = env._sysconf; + var ib = env._pthread_getspecific; + var jb = env.__arraySum; + var kb = env._pthread_self; + var lb = env._pthread_mutex_unlock; + var mb = env._pthread_once; + var nb = env.___syscall54; + var ob = env.___unlock; + var pb = env._pthread_cleanup_pop; + var qb = env._pthread_cond_broadcast; + var rb = env._emscripten_set_main_loop; + var sb = env._pthread_setspecific; + var tb = env.___cxa_atexit; + var ub = env.___cxa_throw; + var vb = env.___cxa_rethrow; + var wb = env.___syscall6; + var xb = env._pthread_cleanup_push; + var yb = env.___cxa_pure_virtual; + var zb = env._time; + var Ab = env._pthread_mutex_lock; + var Bb = env.___cxa_guard_abort; + var Cb = env._atexit; + var Db = env.___syscall140; + var Eb = env.___syscall145; + var Fb = env.___syscall146; + var Gb = 0; + function Hb(newBuffer) { + if (q(newBuffer) & 16777215 || q(newBuffer) <= 16777215 || q(newBuffer) > 2147483648) + return false; + i2 = new a(newBuffer); + j = new b(newBuffer); + k = new c(newBuffer); + l = new d(newBuffer); + m = new e(newBuffer); + n = new f(newBuffer); + o = new g(newBuffer); + p = new h(newBuffer); + buffer2 = newBuffer; + return true; + } + function dc(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = r; + r = r + a2 | 0; + r = r + 15 & -16; + return b2 | 0; + } + function ec() { + return r | 0; + } + function fc(a2) { + a2 = a2 | 0; + r = a2; + } + function gc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + r = a2; + s = b2; + } + function hc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (!x) { + x = a2; + y = b2; + } + } + function ic(a2) { + a2 = a2 | 0; + i2[t >> 0] = i2[a2 >> 0]; + i2[t + 1 >> 0] = i2[a2 + 1 >> 0]; + i2[t + 2 >> 0] = i2[a2 + 2 >> 0]; + i2[t + 3 >> 0] = i2[a2 + 3 >> 0]; + } + function jc(a2) { + a2 = a2 | 0; + i2[t >> 0] = i2[a2 >> 0]; + i2[t + 1 >> 0] = i2[a2 + 1 >> 0]; + i2[t + 2 >> 0] = i2[a2 + 2 >> 0]; + i2[t + 3 >> 0] = i2[a2 + 3 >> 0]; + i2[t + 4 >> 0] = i2[a2 + 4 >> 0]; + i2[t + 5 >> 0] = i2[a2 + 5 >> 0]; + i2[t + 6 >> 0] = i2[a2 + 6 >> 0]; + i2[t + 7 >> 0] = i2[a2 + 7 >> 0]; + } + function kc(a2) { + a2 = a2 | 0; + M = a2; + } + function lc() { + return M | 0; + } + function mc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; + v2 = r; + r = r + 128 | 0; + n2 = v2 + 44 | 0; + q2 = v2 + 8 | 0; + j2 = v2 + 4 | 0; + m2 = v2; + o2 = c2 + 4 | 0; + p2 = c2 + 8 | 0; + x = 0; + Ja(35, k[c2 >> 2] | 0, k[o2 >> 2] | 0, k[p2 >> 2] | 0, d2 | 0); + l2 = x; + x = 0; + if (!(l2 & 1)) { + g2 = n2; + f2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[d2 >> 2]; + g2 = g2 + 4 | 0; + d2 = d2 + 4 | 0; + } while ((g2 | 0) < (f2 | 0)); + d2 = n2 + 12 | 0; + if ((k[d2 >> 2] | 0) == 0 ? (h2 = ia(((k[n2 + 8 >> 2] | 0) + 7 | 0) / 8 | 0, k[n2 >> 2] | 0) | 0, k[d2 >> 2] = h2, (k[n2 + 24 >> 2] | 0) != 0) : 0) { + l2 = ia(k[n2 + 16 >> 2] | 0, h2) | 0; + k[d2 >> 2] = l2; + } + x = 0; + qa(176, q2 | 0); + l2 = x; + x = 0; + if (!(l2 & 1)) { + d2 = n2 + 56 | 0; + do + if (k[d2 >> 2] | 0) { + x = 0; + d2 = ta(66, d2 | 0) | 0; + l2 = x; + x = 0; + if (!(l2 & 1)) { + k[j2 >> 2] = d2; + f2 = q2 + 28 | 0; + g2 = k[f2 >> 2] | 0; + if (g2 >>> 0 < (k[q2 + 32 >> 2] | 0) >>> 0) { + k[g2 >> 2] = d2; + k[f2 >> 2] = g2 + 4; + k[j2 >> 2] = 0; + s2 = 19; + break; + } + x = 0; + ra(57, q2 + 24 | 0, j2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + f2 = Wa(824, 0) | 0; + d2 = M; + g2 = k[j2 >> 2] | 0; + k[j2 >> 2] = 0; + if (!g2) + break; + Lb[k[(k[g2 >> 2] | 0) + 4 >> 2] & 255](g2); + break; + } else { + d2 = k[j2 >> 2] | 0; + k[j2 >> 2] = 0; + if (!d2) { + s2 = 19; + break; + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + s2 = 19; + break; + } + } else + s2 = 15; + } else + s2 = 19; + while (0); + a: + do + if ((s2 | 0) == 19) { + g2 = n2 + 4 | 0; + h2 = n2 + 8 | 0; + j2 = n2 + 16 | 0; + x = 0; + d2 = Ea(14, k[n2 >> 2] | 0, k[g2 >> 2] | 0, k[h2 >> 2] | 0, k[j2 >> 2] | 0) | 0; + l2 = x; + x = 0; + if (!(l2 & 1)) { + k[m2 >> 2] = d2; + l2 = q2 + 28 | 0; + f2 = k[l2 >> 2] | 0; + do + if (f2 >>> 0 >= (k[q2 + 32 >> 2] | 0) >>> 0) { + x = 0; + ra(57, q2 + 24 | 0, m2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(824, 0) | 0; + d2 = M; + g2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (!g2) + break a; + Lb[k[(k[g2 >> 2] | 0) + 4 >> 2] & 255](g2); + break a; + } else { + d2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + } else { + k[f2 >> 2] = d2; + k[l2 >> 2] = f2 + 4; + k[m2 >> 2] = 0; + } + while (0); + d2 = k[n2 + 28 >> 2] | 0; + if ((d2 | 0) != 0 ? (x = 0, ra(58, q2 | 0, d2 | 0), s2 = x, x = 0, s2 & 1) : 0) { + s2 = 15; + break; + } + b: + do + if (!(k[n2 + 24 >> 2] | 0)) { + d2 = ia(k[g2 >> 2] | 0, k[n2 >> 2] | 0) | 0; + d2 = ia(d2, ((k[h2 >> 2] | 0) + 7 | 0) / 8 | 0) | 0; + if ((k[j2 >> 2] | 0) > 0) { + g2 = 0; + while (1) { + x = 0; + Fa(4, q2 | 0, c2 | 0, n2 | 0); + s2 = x; + x = 0; + if (s2 & 1) + break; + f2 = k[o2 >> 2] | 0; + if (f2) { + k[o2 >> 2] = f2 + d2; + k[p2 >> 2] = (k[p2 >> 2] | 0) - d2; + } + g2 = g2 + 1 | 0; + if ((g2 | 0) >= (k[j2 >> 2] | 0)) + break b; + } + f2 = Wa(824, 0) | 0; + d2 = M; + s2 = 16; + break a; + } + } else { + x = 0; + Fa(4, q2 | 0, c2 | 0, n2 | 0); + s2 = x; + x = 0; + if (s2 & 1) { + s2 = 15; + break a; + } + } + while (0); + x = 0; + Aa(33, q2 | 0, a2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[b2 >> 2] = k[q2 + 16 >> 2]; + if (e2) + i2[e2 >> 0] = 0; + g2 = q2 + 24 | 0; + d2 = k[g2 >> 2] | 0; + if (d2) { + f2 = k[l2 >> 2] | 0; + if ((f2 | 0) != (d2 | 0)) { + do { + e2 = f2 + -4 | 0; + k[l2 >> 2] = e2; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + if (f2) + Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); + f2 = k[l2 >> 2] | 0; + } while ((f2 | 0) != (d2 | 0)); + d2 = k[g2 >> 2] | 0; + } + mj(d2); + } + e2 = 0; + r = v2; + return e2 | 0; + } else + s2 = 15; + } else + s2 = 15; + } + while (0); + if ((s2 | 0) == 15) { + f2 = Wa(824, 0) | 0; + d2 = M; + s2 = 16; + } + l2 = q2 + 24 | 0; + g2 = k[l2 >> 2] | 0; + if (g2) { + j2 = q2 + 28 | 0; + h2 = k[j2 >> 2] | 0; + if ((h2 | 0) != (g2 | 0)) { + do { + q2 = h2 + -4 | 0; + k[j2 >> 2] = q2; + h2 = k[q2 >> 2] | 0; + k[q2 >> 2] = 0; + if (h2) + Lb[k[(k[h2 >> 2] | 0) + 4 >> 2] & 255](h2); + h2 = k[j2 >> 2] | 0; + } while ((h2 | 0) != (g2 | 0)); + g2 = k[l2 >> 2] | 0; + } + mj(g2); + } + } else + s2 = 5; + } else + s2 = 5; + if ((s2 | 0) == 5) { + f2 = Wa(824, 0) | 0; + d2 = M; + } + q2 = (d2 | 0) == (ab(824) | 0); + h2 = cb(f2 | 0) | 0; + d2 = (e2 | 0) == 0; + if (!q2) { + if (!d2) + i2[e2 >> 0] = 0; + eb(); + e2 = 14; + r = v2; + return e2 | 0; + } + g2 = h2 + 12 | 0; + do + if (!d2) { + d2 = k[g2 >> 2] | 0; + x = 0; + f2 = Da(1) | 0; + q2 = x; + x = 0; + if (!(q2 & 1)) + if ((d2 | 0) == (f2 | 0)) { + wl(e2, Ob[k[(k[h2 >> 2] | 0) + 8 >> 2] & 127](h2) | 0) | 0; + s2 = 60; + break; + } else { + i2[e2 >> 0] = 0; + s2 = 60; + break; + } + } else + s2 = 60; + while (0); + if ((s2 | 0) == 60 ? (t2 = k[g2 >> 2] | 0, x = 0, u2 = Da(1) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { + e2 = (t2 | 0) == (u2 | 0) ? k[h2 + 8 >> 2] | 0 : 13; + eb(); + r = v2; + return e2 | 0; + } + d2 = Wa() | 0; + x = 0; + Ga(3); + v2 = x; + x = 0; + if (v2 & 1) { + v2 = Wa(0) | 0; + oc(v2); + } else + fb(d2 | 0); + return 0; + } + function nc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + j2 = r; + r = r + 112 | 0; + f2 = j2 + 96 | 0; + i3 = j2 + 84 | 0; + l2 = j2 + 72 | 0; + m2 = j2 + 60 | 0; + n2 = j2 + 48 | 0; + o2 = j2 + 36 | 0; + p2 = j2 + 24 | 0; + q2 = j2 + 12 | 0; + s2 = j2; + h2 = (b2 | 0) == 0; + if ((a2 | 0) == 0 & h2) { + e2 = Va(16) | 0; + x = 0; + Fa(5, f2 | 0, 48504, 52); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, f2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(f2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + g2 = k[d2 >> 2] | 0; + if ((g2 + -1 | 0) >>> 0 > 65534) { + e2 = Va(16) | 0; + x = 0; + Fa(5, i3 | 0, 48557, 41); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, i3 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(i3); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + f2 = k[d2 + 4 >> 2] | 0; + if ((f2 + -1 | 0) >>> 0 > 65534) { + e2 = Va(16) | 0; + x = 0; + Fa(5, l2 | 0, 48599, 42); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, l2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(l2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + e2 = k[d2 + 8 >> 2] | 0; + if ((e2 + -2 | 0) >>> 0 > 14) { + e2 = Va(16) | 0; + x = 0; + Fa(5, m2 | 0, 48642, 46); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, m2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(m2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + a2 = k[d2 + 24 >> 2] | 0; + if (a2 >>> 0 >= 3) { + e2 = Va(16) | 0; + x = 0; + Fa(5, n2 | 0, 48689, 65); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, n2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(n2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + b2 = k[d2 + 16 >> 2] | 0; + if ((b2 + -1 | 0) >>> 0 > 254) { + e2 = Va(16) | 0; + x = 0; + Fa(5, o2 | 0, 48755, 44); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, o2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(o2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + if (!h2 ? (o2 = ia(f2, g2) | 0, (ia(ia(o2, (e2 | 0) > 8 ? 2 : 1) | 0, b2) | 0) >>> 0 > c2 >>> 0) : 0) { + e2 = Va(16) | 0; + x = 0; + Fa(5, p2 | 0, 48800, 58); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, p2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(p2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + switch (b2 | 0) { + case 4: { + if ((a2 | 0) != 2) { + r = j2; + return; + } + e2 = Va(16) | 0; + x = 0; + Fa(5, q2 | 0, 48859, 73); + s2 = x; + x = 0; + if (!(s2 & 1)) { + x = 0; + b2 = Da(1) | 0; + s2 = x; + x = 0; + if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, q2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(q2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + case 3: { + r = j2; + return; + } + default: { + if (!a2) { + r = j2; + return; + } + e2 = Va(16) | 0; + x = 0; + Fa(5, s2 | 0, 48933, 73); + q2 = x; + x = 0; + if (!(q2 & 1)) { + x = 0; + b2 = Da(1) | 0; + q2 = x; + x = 0; + if (!(q2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, s2 | 0), q2 = x, x = 0, !(q2 & 1)) : 0) { + x = 0; + Fa(6, e2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(s2); + if (!a2) { + s2 = b2; + fb(s2 | 0); + } + } else + b2 = Wa() | 0; + Ua(e2 | 0); + s2 = b2; + fb(s2 | 0); + } + } + } + function oc(a2) { + a2 = a2 | 0; + cb(a2 | 0) | 0; + tj(); + } + function pc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 128 | 0; + f2 = m2 + 116 | 0; + g2 = m2; + x = 0; + k[f2 >> 2] = k[b2 >> 2]; + k[f2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[b2 + 8 >> 2]; + ra(59, g2 | 0, f2 | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) { + if (c2) { + e2 = g2 + 16 | 0; + b2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[c2 >> 2]; + e2 = e2 + 4 | 0; + c2 = c2 + 4 | 0; + } while ((e2 | 0) < (b2 | 0)); + } + x = 0; + k[f2 >> 2] = k[a2 >> 2]; + k[f2 + 4 >> 2] = k[a2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[a2 + 8 >> 2]; + ra(60, g2 | 0, f2 | 0); + g2 = x; + x = 0; + if (!(g2 & 1)) { + if (d2) + i2[d2 >> 0] = 0; + l2 = 0; + r = m2; + return l2 | 0; + } + } + a2 = Wa(824, 0) | 0; + g2 = M; + g2 = (g2 | 0) == (ab(824) | 0); + a2 = cb(a2 | 0) | 0; + b2 = (d2 | 0) == 0; + if (!g2) { + if (!b2) + i2[d2 >> 0] = 0; + eb(); + l2 = 14; + r = m2; + return l2 | 0; + } + e2 = a2 + 12 | 0; + do + if (!b2) { + b2 = k[e2 >> 2] | 0; + x = 0; + c2 = Da(1) | 0; + g2 = x; + x = 0; + if (!(g2 & 1)) + if ((b2 | 0) == (c2 | 0)) { + wl(d2, Ob[k[(k[a2 >> 2] | 0) + 8 >> 2] & 127](a2) | 0) | 0; + l2 = 10; + break; + } else { + i2[d2 >> 0] = 0; + l2 = 10; + break; + } + } else + l2 = 10; + while (0); + if ((l2 | 0) == 10 ? (h2 = k[e2 >> 2] | 0, x = 0, j2 = Da(1) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + l2 = (h2 | 0) == (j2 | 0) ? k[a2 + 8 >> 2] | 0 : 13; + eb(); + r = m2; + return l2 | 0; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + m2 = x; + x = 0; + if (m2 & 1) { + m2 = Wa(0) | 0; + oc(m2); + } else + fb(b2 | 0); + return 0; + } + function qc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 128 | 0; + e2 = j2 + 116 | 0; + d2 = j2; + x = 0; + k[e2 >> 2] = k[a2 >> 2]; + k[e2 + 4 >> 2] = k[a2 + 4 >> 2]; + k[e2 + 8 >> 2] = k[a2 + 8 >> 2]; + ra(59, d2 | 0, e2 | 0); + e2 = x; + x = 0; + if ((!(e2 & 1) ? (x = 0, qa(177, d2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) ? (x = 0, ra(61, d2 | 0, 1), e2 = x, x = 0, !(e2 & 1)) : 0) { + a2 = d2 + 16 | 0; + d2 = b2 + 84 | 0; + do { + k[b2 >> 2] = k[a2 >> 2]; + b2 = b2 + 4 | 0; + a2 = a2 + 4 | 0; + } while ((b2 | 0) < (d2 | 0)); + if (c2) + i2[c2 >> 0] = 0; + c2 = 0; + r = j2; + return c2 | 0; + } + e2 = Wa(824, 0) | 0; + b2 = M; + b2 = (b2 | 0) == (ab(824) | 0); + e2 = cb(e2 | 0) | 0; + a2 = (c2 | 0) == 0; + if (!b2) { + if (!a2) + i2[c2 >> 0] = 0; + eb(); + c2 = 14; + r = j2; + return c2 | 0; + } + b2 = e2 + 12 | 0; + do + if (!a2) { + a2 = k[b2 >> 2] | 0; + x = 0; + d2 = Da(1) | 0; + l2 = x; + x = 0; + if (!(l2 & 1)) + if ((a2 | 0) == (d2 | 0)) { + wl(c2, Ob[k[(k[e2 >> 2] | 0) + 8 >> 2] & 127](e2) | 0) | 0; + h2 = 13; + break; + } else { + i2[c2 >> 0] = 0; + h2 = 13; + break; + } + } else + h2 = 13; + while (0); + if ((h2 | 0) == 13 ? (f2 = k[b2 >> 2] | 0, x = 0, g2 = Da(1) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + l2 = (f2 | 0) == (g2 | 0) ? k[e2 + 8 >> 2] | 0 : 13; + eb(); + r = j2; + return l2 | 0; + } + a2 = Wa() | 0; + x = 0; + Ga(3); + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa(0) | 0; + oc(l2); + } else + fb(a2 | 0); + return 0; + } + function rc(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 48 | 0; + i3 = m2 + 36 | 0; + h2 = m2 + 24 | 0; + j2 = m2 + 12 | 0; + l2 = m2; + if (!((a2 | 0) != 0 & (c2 | 0) != 0 & (d2 | 0) != 0 & (f2 | 0) != 0)) { + e2 = 1; + r = m2; + return e2 | 0; + } + k[j2 >> 2] = 0; + k[j2 + 4 >> 2] = a2; + k[j2 + 8 >> 2] = b2; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + k[l2 + 8 >> 2] = e2; + k[h2 >> 2] = k[j2 >> 2]; + k[h2 + 4 >> 2] = k[j2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[j2 + 8 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[i3 + 4 >> 2] = k[l2 + 4 >> 2]; + k[i3 + 8 >> 2] = k[l2 + 8 >> 2]; + e2 = mc(h2, c2, i3, f2, g2) | 0; + r = m2; + return e2 | 0; + } + function sc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + f2 = e2 + 12 | 0; + g2 = e2; + h2 = g2; + k[h2 >> 2] = 0; + k[h2 + 4 >> 2] = 0; + k[g2 + 4 >> 2] = a2; + k[g2 + 8 >> 2] = b2; + k[f2 >> 2] = k[g2 >> 2]; + k[f2 + 4 >> 2] = k[g2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[g2 + 8 >> 2]; + c2 = qc(f2, c2, d2) | 0; + r = e2; + return c2 | 0; + } + function tc(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 48 | 0; + h2 = g2 + 36 | 0; + i3 = g2 + 24 | 0; + l2 = g2 + 12 | 0; + j2 = g2; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = a2; + k[l2 + 8 >> 2] = b2; + k[j2 >> 2] = 0; + k[j2 + 4 >> 2] = c2; + k[j2 + 8 >> 2] = d2; + k[i3 >> 2] = k[l2 >> 2]; + k[i3 + 4 >> 2] = k[l2 + 4 >> 2]; + k[i3 + 8 >> 2] = k[l2 + 8 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + k[h2 + 4 >> 2] = k[j2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[j2 + 8 >> 2]; + d2 = pc(i3, h2, e2, f2) | 0; + r = g2; + return d2 | 0; + } + function uc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = a2 + 4 | 0; + c2 = k[a2 >> 2] | 0; + e2 = ((k[j2 >> 2] | 0) - c2 >> 2) + 1 | 0; + if (e2 >>> 0 > 1073741823) { + jj(a2); + c2 = k[a2 >> 2] | 0; + } + l2 = a2 + 8 | 0; + d2 = (k[l2 >> 2] | 0) - c2 | 0; + if (d2 >> 2 >>> 0 < 536870911) { + d2 = d2 >> 1; + d2 = d2 >>> 0 < e2 >>> 0 ? e2 : d2; + c2 = (k[j2 >> 2] | 0) - c2 >> 2; + if (!d2) { + f2 = 0; + g2 = 0; + } else + h2 = 6; + } else { + d2 = 1073741823; + c2 = (k[j2 >> 2] | 0) - c2 >> 2; + h2 = 6; + } + if ((h2 | 0) == 6) { + f2 = d2; + g2 = lj(d2 << 2) | 0; + } + e2 = g2 + (c2 << 2) | 0; + d2 = e2; + i3 = g2 + (f2 << 2) | 0; + h2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + k[e2 >> 2] = h2; + h2 = g2 + (c2 + 1 << 2) | 0; + g2 = k[a2 >> 2] | 0; + c2 = k[j2 >> 2] | 0; + if ((c2 | 0) == (g2 | 0)) { + e2 = a2; + f2 = j2; + } else { + do { + c2 = c2 + -4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + k[e2 + -4 >> 2] = b2; + e2 = d2 + -4 | 0; + d2 = e2; + } while ((c2 | 0) != (g2 | 0)); + c2 = d2; + e2 = a2; + f2 = j2; + d2 = c2; + g2 = k[a2 >> 2] | 0; + c2 = k[j2 >> 2] | 0; + } + k[e2 >> 2] = d2; + k[f2 >> 2] = h2; + k[l2 >> 2] = i3; + e2 = g2; + if ((c2 | 0) != (e2 | 0)) + do { + c2 = c2 + -4 | 0; + d2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (d2) + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + } while ((c2 | 0) != (e2 | 0)); + if (!g2) + return; + mj(g2); + return; + } + function vc() { + if (i2[8] | 0) + return 35648; + if (!(Qa(8) | 0)) + return 35648; + tb(72, 35648, w | 0) | 0; + Ya(8); + return 35648; + } + function wc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 32 | 0; + j2 = m2; + Oi(j2, (1 << b2) + -1 | 0, 0); + f2 = k[j2 >> 2] | 0; + l2 = f2 + 1 | 0; + c2 = l2 << 1; + k[a2 >> 2] = 0; + g2 = a2 + 4 | 0; + k[g2 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a: + do + if (l2) { + if (!((f2 | 0) < -1 ? (x = 0, qa(178, a2 | 0), h2 = x, x = 0, h2 & 1) : 0)) + d2 = 4; + if ((d2 | 0) == 4 ? (x = 0, e2 = ta(67, c2 | 0) | 0, h2 = x, x = 0, !(h2 & 1)) : 0) { + k[g2 >> 2] = e2; + k[a2 >> 2] = e2; + k[a2 + 8 >> 2] = e2 + c2; + b2 = e2; + while (1) { + i2[b2 >> 0] = 0; + b2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = b2; + c2 = c2 + -1 | 0; + if (!c2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[g2 >> 2] | 0) != (b2 | 0)) + k[g2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + b2 = ~f2; + if ((f2 | 0) < (b2 | 0)) { + r = m2; + return; + } + g2 = j2 + 12 | 0; + h2 = j2 + 8 | 0; + f2 = j2 + 4 | 0; + e2 = b2; + do { + b2 = k[g2 >> 2] | 0; + if ((e2 | 0) > (0 - b2 | 0)) { + c2 = k[h2 >> 2] | 0; + if ((e2 | 0) > (0 - c2 | 0)) { + d2 = k[f2 >> 2] | 0; + if ((e2 | 0) > (0 - d2 | 0)) + if ((e2 | 0) >= 0) + if ((e2 | 0) > 0) + if ((d2 | 0) <= (e2 | 0)) + if ((c2 | 0) > (e2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (e2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[a2 >> 2] | 0) + (e2 + l2) >> 0] = b2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (l2 | 0)); + r = m2; + return; + } + function xc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + p2 = k[c2 + 16 >> 2] | 0; + switch (p2 | 0) { + case 64: + case 0: { + x = 0; + a2 = Aa(34, a2 | 0, b2 | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) + q2 = 16; + else + d2 = a2; + break; + } + default: { + e2 = (1 << k[b2 + 8 >> 2]) + -1 | 0; + o2 = k[b2 + 20 >> 2] | 0; + n2 = o2 << 1; + n2 = ((n2 + e2 | 0) / (n2 | 1 | 0) | 0) + 1 | 0; + a2 = 0; + while (1) + if ((1 << a2 | 0) < (n2 | 0)) + a2 = a2 + 1 | 0; + else + break; + d2 = 0; + while (1) + if ((1 << d2 | 0) < (e2 | 0)) + d2 = d2 + 1 | 0; + else { + g2 = d2; + break; + } + e2 = k[c2 >> 2] | 0; + x = 0; + d2 = ta(67, 4624) | 0; + m2 = x; + x = 0; + if (m2 & 1) + q2 = 16; + else { + f2 = ((g2 | 0) < 8 ? 8 : g2) + g2 << 1; + h2 = d2 + 4 | 0; + l2 = b2; + m2 = h2 + 84 | 0; + do { + k[h2 >> 2] = k[l2 >> 2]; + h2 = h2 + 4 | 0; + l2 = l2 + 4 | 0; + } while ((h2 | 0) < (m2 | 0)); + h2 = d2 + 88 | 0; + m2 = h2 + 40 | 0; + do { + k[h2 >> 2] = 0; + h2 = h2 + 4 | 0; + } while ((h2 | 0) < (m2 | 0)); + k[d2 >> 2] = 35660; + k[d2 + 128 >> 2] = e2; + k[d2 + 132 >> 2] = n2; + k[d2 + 136 >> 2] = o2; + k[d2 + 140 >> 2] = a2; + k[d2 + 144 >> 2] = g2; + k[d2 + 148 >> 2] = f2; + k[d2 + 152 >> 2] = p2; + a2 = d2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 172 >> 2] = k[b2 >> 2]; + k[d2 + 176 >> 2] = 0; + k[d2 + 180 >> 2] = 0; + k[d2 + 184 >> 2] = 0; + a2 = d2 + 4568 | 0; + e2 = d2 + 188 | 0; + do { + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + j[e2 + 10 >> 1] = 1; + e2 = e2 + 12 | 0; + } while ((e2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + } + } + } + if ((q2 | 0) == 16) { + q2 = Wa() | 0; + fb(q2 | 0); + } + if (!d2) + return d2 | 0; + x = 0; + ra(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, c2 | 0); + q2 = x; + x = 0; + if (!(q2 & 1)) + return d2 | 0; + a2 = Wa() | 0; + if (!d2) { + q2 = a2; + fb(q2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + q2 = a2; + fb(q2 | 0); + return 0; + } + function yc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + c2 = (k[b2 + 24 >> 2] | 0) == 2; + if (c2 ? (k[b2 + 16 >> 2] | 0) != 3 : 0) { + b2 = 0; + return b2 | 0; + } + n2 = k[b2 + 20 >> 2] | 0; + a2 = k[b2 + 8 >> 2] | 0; + a: + do + if (!n2) { + if (c2) { + if ((a2 | 0) != 8) + break; + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35688; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + switch (a2 | 0) { + case 8: { + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35716; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 12: { + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35744; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 16: { + d2 = lj(4600) | 0; + g2 = d2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = d2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 >> 2] = 35772; + a2 = d2 + 132 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 148 >> 2] = k[b2 >> 2]; + k[d2 + 152 >> 2] = 0; + k[d2 + 156 >> 2] = 0; + k[d2 + 160 >> 2] = 0; + a2 = d2 + 4544 | 0; + c2 = d2 + 164 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4556 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4568 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 28 >> 2] | 0)) + k[d2 + 20 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + default: + break a; + } + } + while (0); + m2 = (1 << a2) + -1 | 0; + if ((a2 | 0) < 9) { + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35800; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35660; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + } + if ((a2 | 0) >= 17) { + b2 = 0; + return b2 | 0; + } + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35828; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4624) | 0; + g2 = e2 + 4 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + g2 = e2 + 88 | 0; + l2 = g2 + 40 | 0; + do { + k[g2 >> 2] = 0; + g2 = g2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 >> 2] = 35856; + k[e2 + 128 >> 2] = m2; + k[e2 + 132 >> 2] = f2; + k[e2 + 136 >> 2] = n2; + k[e2 + 140 >> 2] = a2; + k[e2 + 144 >> 2] = c2; + k[e2 + 148 >> 2] = d2; + k[e2 + 152 >> 2] = 64; + a2 = e2 + 156 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 172 >> 2] = k[b2 >> 2]; + k[e2 + 176 >> 2] = 0; + k[e2 + 180 >> 2] = 0; + k[e2 + 184 >> 2] = 0; + a2 = e2 + 4568 | 0; + c2 = e2 + 188 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4580 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4592 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 28 >> 2] | 0)) + k[e2 + 20 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + return 0; + } + function zc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + p2 = k[c2 + 16 >> 2] | 0; + switch (p2 | 0) { + case 64: + case 0: { + x = 0; + a2 = Aa(35, a2 | 0, b2 | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) + q2 = 16; + else + d2 = a2; + break; + } + default: { + e2 = (1 << k[b2 + 8 >> 2]) + -1 | 0; + o2 = k[b2 + 20 >> 2] | 0; + n2 = o2 << 1; + n2 = ((n2 + e2 | 0) / (n2 | 1 | 0) | 0) + 1 | 0; + a2 = 0; + while (1) + if ((1 << a2 | 0) < (n2 | 0)) + a2 = a2 + 1 | 0; + else + break; + d2 = 0; + while (1) + if ((1 << d2 | 0) < (e2 | 0)) + d2 = d2 + 1 | 0; + else { + g2 = d2; + break; + } + e2 = k[c2 >> 2] | 0; + x = 0; + d2 = ta(67, 4632) | 0; + m2 = x; + x = 0; + if (m2 & 1) + q2 = 16; + else { + f2 = ((g2 | 0) < 8 ? 8 : g2) + g2 << 1; + k[d2 + 4 >> 2] = 0; + h2 = d2 + 8 | 0; + l2 = b2; + m2 = h2 + 84 | 0; + do { + k[h2 >> 2] = k[l2 >> 2]; + h2 = h2 + 4 | 0; + l2 = l2 + 4 | 0; + } while ((h2 | 0) < (m2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + m2 = d2 + 116 | 0; + k[m2 >> 2] = 0; + k[m2 + 4 >> 2] = 0; + k[m2 + 8 >> 2] = 0; + k[m2 + 12 >> 2] = 0; + k[m2 + 16 >> 2] = 0; + k[d2 >> 2] = 35884; + k[d2 + 136 >> 2] = e2; + k[d2 + 140 >> 2] = n2; + k[d2 + 144 >> 2] = o2; + k[d2 + 148 >> 2] = a2; + k[d2 + 152 >> 2] = g2; + k[d2 + 156 >> 2] = f2; + k[d2 + 160 >> 2] = p2; + a2 = d2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 180 >> 2] = k[b2 >> 2]; + k[d2 + 184 >> 2] = 0; + k[d2 + 188 >> 2] = 0; + k[d2 + 192 >> 2] = 0; + a2 = d2 + 4576 | 0; + e2 = d2 + 196 | 0; + do { + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + j[e2 + 10 >> 1] = 1; + e2 = e2 + 12 | 0; + } while ((e2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + } + } + } + if ((q2 | 0) == 16) { + q2 = Wa() | 0; + fb(q2 | 0); + } + if (!d2) + return d2 | 0; + x = 0; + ra(k[(k[d2 >> 2] | 0) + 8 >> 2] | 0, d2 | 0, c2 | 0); + q2 = x; + x = 0; + if (!(q2 & 1)) + return d2 | 0; + a2 = Wa() | 0; + if (!d2) { + q2 = a2; + fb(q2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + q2 = a2; + fb(q2 | 0); + return 0; + } + function Ac(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + c2 = (k[b2 + 24 >> 2] | 0) == 2; + if (c2 ? (k[b2 + 16 >> 2] | 0) != 3 : 0) { + b2 = 0; + return b2 | 0; + } + n2 = k[b2 + 20 >> 2] | 0; + a2 = k[b2 + 8 >> 2] | 0; + a: + do + if (!n2) { + if (c2) { + if ((a2 | 0) != 8) + break; + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35912; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + switch (a2 | 0) { + case 8: { + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35940; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 12: { + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35968; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + case 16: { + d2 = lj(4608) | 0; + k[d2 + 4 >> 2] = 0; + g2 = d2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[d2 + 92 >> 2] = 0; + k[d2 + 96 >> 2] = 0; + k[d2 + 100 >> 2] = 32; + k[d2 + 104 >> 2] = 0; + k[d2 + 108 >> 2] = 0; + i2[d2 + 112 >> 0] = 0; + a2 = d2 + 116 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[d2 >> 2] = 35996; + a2 = d2 + 140 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[d2 + 156 >> 2] = k[b2 >> 2]; + k[d2 + 160 >> 2] = 0; + k[d2 + 164 >> 2] = 0; + k[d2 + 168 >> 2] = 0; + a2 = d2 + 4552 | 0; + c2 = d2 + 172 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = d2 + 4564 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = d2 + 4576 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[d2 + 32 >> 2] | 0)) + k[d2 + 24 >> 2] = 1; + b2 = d2; + return b2 | 0; + } + default: + break a; + } + } + while (0); + m2 = (1 << a2) + -1 | 0; + if ((a2 | 0) < 9) { + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 36024; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 35884; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + } + if ((a2 | 0) >= 17) { + b2 = 0; + return b2 | 0; + } + f2 = n2 << 1; + f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; + if (c2) { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 36052; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } else { + a2 = 0; + while (1) + if ((1 << a2 | 0) < (f2 | 0)) + a2 = a2 + 1 | 0; + else + break; + c2 = 0; + while (1) + if ((1 << c2 | 0) < (m2 | 0)) + c2 = c2 + 1 | 0; + else + break; + d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; + e2 = lj(4632) | 0; + k[e2 + 4 >> 2] = 0; + g2 = e2 + 8 | 0; + h2 = b2; + l2 = g2 + 84 | 0; + do { + k[g2 >> 2] = k[h2 >> 2]; + g2 = g2 + 4 | 0; + h2 = h2 + 4 | 0; + } while ((g2 | 0) < (l2 | 0)); + k[e2 + 92 >> 2] = 0; + k[e2 + 96 >> 2] = 0; + k[e2 + 100 >> 2] = 32; + k[e2 + 104 >> 2] = 0; + k[e2 + 108 >> 2] = 0; + i2[e2 + 112 >> 0] = 0; + l2 = e2 + 116 | 0; + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + k[l2 + 12 >> 2] = 0; + k[l2 + 16 >> 2] = 0; + k[e2 >> 2] = 36080; + k[e2 + 136 >> 2] = m2; + k[e2 + 140 >> 2] = f2; + k[e2 + 144 >> 2] = n2; + k[e2 + 148 >> 2] = a2; + k[e2 + 152 >> 2] = c2; + k[e2 + 156 >> 2] = d2; + k[e2 + 160 >> 2] = 64; + a2 = e2 + 164 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[e2 + 180 >> 2] = k[b2 >> 2]; + k[e2 + 184 >> 2] = 0; + k[e2 + 188 >> 2] = 0; + k[e2 + 192 >> 2] = 0; + a2 = e2 + 4576 | 0; + c2 = e2 + 196 | 0; + do { + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + j[c2 + 8 >> 1] = 0; + j[c2 + 10 >> 1] = 1; + c2 = c2 + 12 | 0; + } while ((c2 | 0) != (a2 | 0)); + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + j[a2 + 8 >> 1] = 0; + i2[a2 + 10 >> 0] = 0; + b2 = e2 + 4588 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + j[b2 + 8 >> 1] = 0; + i2[b2 + 10 >> 0] = 0; + b2 = e2 + 4600 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[b2 + 16 >> 2] = 0; + k[b2 + 20 >> 2] = 0; + k[b2 + 24 >> 2] = 0; + i2[b2 + 28 >> 0] = 0; + if (!(k[e2 + 32 >> 2] | 0)) + k[e2 + 24 >> 2] = 1; + b2 = e2; + return b2 | 0; + } + return 0; + } + function Bc() { + var a2 = 0, b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + a2 = 2832; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 4880); + sw(2832, 0, 2048) | 0; + a2 = 0; + do { + g2 = 2832 + (a2 + 128 << 3) | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 1; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != 128); + a2 = 3088; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3096; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3104; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3112; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3120; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3128; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3136; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3144; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3152; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3160; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3168; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3176; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3184; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3192; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3200; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3208; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3216; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3224; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3232; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3240; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3248; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3256; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3264; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3272; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3280; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3288; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3296; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3304; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3312; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3320; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3328; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 3336; + k[a2 >> 2] = 1; + k[a2 + 4 >> 2] = 3; + a2 = 2896; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2904; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2912; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2920; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2928; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2936; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2944; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2952; + k[a2 >> 2] = 2; + k[a2 + 4 >> 2] = 5; + a2 = 2848; + k[a2 >> 2] = 3; + k[a2 + 4 >> 2] = 7; + a2 = 2856; + k[a2 >> 2] = 3; + k[a2 + 4 >> 2] = 7; + a2 = 0; + do { + g2 = 2832 + (a2 + 64 << 3) | 0; + k[g2 >> 2] = -1; + k[g2 + 4 >> 2] = 2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != 64); + a2 = 2960; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2968; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2976; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2984; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2992; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3e3; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3008; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3016; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3024; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3032; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3040; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3048; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3056; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3064; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3072; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 3080; + k[a2 >> 2] = -2; + k[a2 + 4 >> 2] = 4; + a2 = 2864; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2872; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2880; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2888; + k[a2 >> 2] = -3; + k[a2 + 4 >> 2] = 6; + a2 = 2840; + k[a2 >> 2] = -4; + k[a2 + 4 >> 2] = 8; + a2 = 4880; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 6928); + sw(4880, 0, 2048) | 0; + c2 = 2; + a2 = 0; + e2 = 0; + f2 = 0; + while (1) { + c2 = c2 << 16 >> 16; + b2 = 8 - c2 | 0; + d2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 1 | 2) << b2; + b2 = 0; + do { + g2 = 4880 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = e2; + k[g2 + 4 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (d2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 7) { + b2 = 2; + e2 = 1; + f2 = -1; + g2 = -1; + break; + } else { + c2 = (a2 >> 1) + 2 | 0; + e2 = b2 >> 16; + } + } + while (1) { + c2 = b2 << 16 >> 16; + a2 = 8 - c2 | 0; + d2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (e2 & 1 | 2) << a2; + b2 = 0; + do { + e2 = 4880 + (b2 + a2 << 3) | 0; + k[e2 >> 2] = f2; + k[e2 + 4 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (d2 | 0)); + } + a2 = (g2 << 16) + -65536 | 0; + e2 = a2 >> 31 ^ a2 >> 15; + b2 = (e2 >> 1) + 2 | 0; + if ((b2 | 0) > 8) { + a2 = 6928; + break; + } else { + f2 = a2 >> 16; + g2 = g2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 8976); + sw(6928, 0, 2048) | 0; + e2 = 3; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 3 | 4) << b2; + b2 = 0; + do { + g2 = 6928 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 12) { + e2 = 3; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 2) + 3 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 3 | 4) << a2; + b2 = 0; + do { + g2 = 6928 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 2) + 3 | 0; + if ((e2 | 0) > 8) { + a2 = 8976; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 11024); + sw(8976, 0, 2048) | 0; + e2 = 4; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 7 | 8) << b2; + b2 = 0; + do { + g2 = 8976 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 20) { + e2 = 4; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 3) + 4 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 7 | 8) << a2; + b2 = 0; + do { + g2 = 8976 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 3) + 4 | 0; + if ((e2 | 0) > 8) { + a2 = 11024; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 13072); + sw(11024, 0, 2048) | 0; + e2 = 5; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 15 | 16) << b2; + b2 = 0; + do { + g2 = 11024 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 32) { + e2 = 5; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 4) + 5 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 15 | 16) << a2; + b2 = 0; + do { + g2 = 11024 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 4) + 5 | 0; + if ((e2 | 0) > 8) { + a2 = 13072; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 15120); + sw(13072, 0, 2048) | 0; + e2 = 6; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 31 | 32) << b2; + b2 = 0; + do { + g2 = 13072 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 48) { + e2 = 6; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 5) + 6 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 31 | 32) << a2; + b2 = 0; + do { + g2 = 13072 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 5) + 6 | 0; + if ((e2 | 0) > 8) { + a2 = 15120; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 17168); + sw(15120, 0, 2048) | 0; + e2 = 7; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 63 | 64) << b2; + b2 = 0; + do { + g2 = 15120 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 64) { + e2 = 7; + b2 = 1; + d2 = -1; + f2 = -1; + break; + } else { + e2 = (a2 >> 6) + 7 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - e2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (b2 & 63 | 64) << a2; + b2 = 0; + do { + g2 = 15120 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + a2 = (f2 << 16) + -65536 | 0; + b2 = a2 >> 31 ^ a2 >> 15; + e2 = (b2 >> 6) + 7 | 0; + if ((e2 | 0) > 8) { + a2 = 17168; + break; + } else { + d2 = a2 >> 16; + f2 = f2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 19216); + sw(17168, 0, 2048) | 0; + e2 = 8; + a2 = 0; + d2 = 0; + f2 = 0; + while (1) { + b2 = 8 - e2 | 0; + c2 = 1 << b2; + if ((b2 | 0) != 31) { + a2 = (a2 & 127 | 128) << b2; + b2 = 0; + do { + g2 = 17168 + (b2 + a2 << 3) | 0; + k[g2 >> 2] = d2; + k[g2 + 4 >> 2] = e2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (f2 << 16) + 65536 | 0; + a2 = b2 >> 31 ^ b2 >> 15; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 64) { + f2 = 8; + d2 = 1; + e2 = -1; + g2 = -1; + break; + } else { + e2 = (a2 >> 7) + 8 | 0; + d2 = b2 >> 16; + } + } + while (1) { + a2 = 8 - f2 | 0; + c2 = 1 << a2; + if ((a2 | 0) != 31) { + a2 = (d2 & 127 | 128) << a2; + b2 = 0; + do { + d2 = 17168 + (b2 + a2 << 3) | 0; + k[d2 >> 2] = e2; + k[d2 + 4 >> 2] = f2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) < (c2 | 0)); + } + b2 = (g2 << 16) + -65536 | 0; + d2 = b2 >> 31 ^ b2 >> 15; + a2 = d2 >> 7; + if ((a2 | 0) > 0) { + a2 = 19216; + break; + } else { + f2 = a2 + 8 | 0; + e2 = b2 >> 16; + g2 = g2 + -1 | 0; + } + } + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 21264); + sw(19216, 0, 2048) | 0; + a2 = 21264; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 23312); + sw(21264, 0, 2048) | 0; + a2 = 23312; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 25360); + sw(23312, 0, 2048) | 0; + a2 = 25360; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 27408); + sw(25360, 0, 2048) | 0; + a2 = 27408; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 29456); + sw(27408, 0, 2048) | 0; + a2 = 29456; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 31504); + sw(29456, 0, 2048) | 0; + a2 = 31504; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 33552); + sw(31504, 0, 2048) | 0; + a2 = 33552; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + a2 = a2 + 8 | 0; + } while ((a2 | 0) != 35600); + sw(33552, 0, 2048) | 0; + wc(35600, 8); + tb(179, 35600, w | 0) | 0; + wc(35612, 10); + tb(179, 35612, w | 0) | 0; + wc(35624, 12); + tb(179, 35624, w | 0) | 0; + wc(35636, 16); + tb(179, 35636, w | 0) | 0; + return; + } + function Cc(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = k[a2 >> 2] | 0; + if (!b2) + return; + a2 = a2 + 4 | 0; + if ((k[a2 >> 2] | 0) != (b2 | 0)) + k[a2 >> 2] = b2; + mj(b2); + return; + } + function Dc(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36080; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Ec(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36080; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Fc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + re(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function Gc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35856; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + ge(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + ge(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Hc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ic(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36460; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Jc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36436; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Kc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36412; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Lc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + k[a2 >> 2] = 36388; + k[a2 + 4 >> 2] = c2; + n2 = a2 + 8 | 0; + f2 = k[c2 >> 2] | 0; + l2 = c2 + 16 | 0; + d2 = k[l2 >> 2] | 0; + g2 = ia(d2, f2) | 0; + k[n2 >> 2] = 0; + o2 = a2 + 12 | 0; + k[o2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (g2) { + if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) + m2 = 4; + if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { + k[n2 >> 2] = j2; + f2 = j2 + (g2 << 1) | 0; + k[a2 + 16 >> 2] = f2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[o2 >> 2] = f2; + f2 = k[c2 >> 2] | 0; + d2 = k[l2 >> 2] | 0; + break; + } + g2 = Wa() | 0; + e2 = k[n2 >> 2] | 0; + d2 = e2; + if (e2) { + f2 = k[o2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); + mj(e2); + } + o2 = g2; + fb(o2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2 << 1, d2) | 0; + k[g2 >> 2] = 0; + h2 = a2 + 24 | 0; + k[h2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + m2 = 13; + if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[h2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[h2 >> 2] | 0) + 1 | 0; + k[h2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + o2 = a2 + 36 | 0; + k[o2 >> 2] = k[b2 >> 2]; + k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + f2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[h2 >> 2] | 0) != (e2 | 0)) + k[h2 >> 2] = e2; + mj(e2); + } + e2 = k[n2 >> 2] | 0; + if (!e2) { + o2 = f2; + fb(o2 | 0); + } + d2 = k[o2 >> 2] | 0; + if ((d2 | 0) != (e2 | 0)) + k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + o2 = f2; + fb(o2 | 0); + } + function Mc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + g2 = a2 + 32 | 0; + Tm(g2, b2) | 0; + f2 = a2 + 44 | 0; + k[f2 >> 2] = 0; + h2 = a2 + 48 | 0; + e2 = k[h2 >> 2] | 0; + if (e2 & 8) { + b2 = i2[g2 >> 0] | 0; + if (!(b2 & 1)) { + b2 = ((b2 & 255) >>> 1) + (g2 + 1) | 0; + k[f2 >> 2] = b2; + c2 = g2 + 1 | 0; + d2 = g2 + 1 | 0; + } else { + b2 = (k[a2 + 40 >> 2] | 0) + (k[a2 + 36 >> 2] | 0) | 0; + k[f2 >> 2] = b2; + d2 = k[a2 + 40 >> 2] | 0; + c2 = d2; + } + k[a2 + 8 >> 2] = c2; + k[a2 + 12 >> 2] = d2; + k[a2 + 16 >> 2] = b2; + } + if (!(e2 & 16)) + return; + b2 = i2[g2 >> 0] | 0; + if (!(b2 & 1)) { + e2 = (b2 & 255) >>> 1; + k[f2 >> 2] = g2 + 1 + e2; + b2 = 10; + f2 = e2; + } else { + e2 = k[a2 + 36 >> 2] | 0; + k[f2 >> 2] = (k[a2 + 40 >> 2] | 0) + e2; + b2 = (k[g2 >> 2] & -2) + -1 | 0; + f2 = e2; + } + Wm(g2, b2, 0); + b2 = i2[g2 >> 0] | 0; + if (!(b2 & 1)) { + e2 = g2 + 1 | 0; + d2 = (b2 & 255) >>> 1; + c2 = g2 + 1 | 0; + } else { + c2 = k[a2 + 40 >> 2] | 0; + e2 = c2; + d2 = k[a2 + 36 >> 2] | 0; + } + b2 = a2 + 24 | 0; + k[b2 >> 2] = c2; + k[a2 + 20 >> 2] = c2; + k[a2 + 28 >> 2] = e2 + d2; + if (!(k[h2 >> 2] & 3)) + return; + k[b2 >> 2] = c2 + f2; + return; + } + function Nc(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 32 | 0; + g2 = o2 + 16 | 0; + n2 = o2 + 8 | 0; + h2 = o2; + x = 0; + ra(65, n2 | 0, a2 | 0); + l2 = x; + x = 0; + a: + do + if (l2 & 1) { + c2 = Wa(0) | 0; + d2 = a2; + e2 = a2; + } else { + do + if (i2[n2 >> 0] | 0) { + d2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + k[h2 >> 2] = k[a2 + (d2 + 24) >> 2]; + j2 = a2 + d2 | 0; + l2 = k[a2 + (d2 + 4) >> 2] | 0; + e2 = b2 + c2 | 0; + d2 = a2 + (d2 + 76) | 0; + c2 = k[d2 >> 2] | 0; + do + if ((c2 | 0) == -1) { + x = 0; + c2 = ta(68, j2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) + m2 = 13; + else { + k[g2 >> 2] = c2; + x = 0; + c2 = Aa(37, g2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + Qs(g2); + c2 = f2 << 24 >> 24; + k[d2 >> 2] = c2; + m2 = 9; + break; + } + c2 = Wa(0) | 0; + Qs(g2); + } + } else + m2 = 9; + while (0); + if ((m2 | 0) == 9) { + x = 0; + k[g2 >> 2] = k[h2 >> 2]; + c2 = sa(39, g2 | 0, b2 | 0, ((l2 & 176 | 0) == 32 ? e2 : b2) | 0, e2 | 0, j2 | 0, c2 & 255 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + if (c2) + break; + p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) + break; + else + m2 = 13; + } else + m2 = 13; + } + if ((m2 | 0) == 13) + c2 = Wa(0) | 0; + ro(n2); + d2 = a2; + e2 = a2; + break a; + } + while (0); + ro(n2); + r = o2; + return a2 | 0; + } + while (0); + cb(c2 | 0) | 0; + x = 0; + qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) { + eb(); + r = o2; + return a2 | 0; + } + c2 = Wa() | 0; + x = 0; + Ga(3); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa(0) | 0; + oc(p2); + } else + fb(c2 | 0); + return 0; + } + function Oc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + c2 = k[b2 + 48 >> 2] | 0; + if (c2 & 16) { + c2 = b2 + 44 | 0; + d2 = k[c2 >> 2] | 0; + e2 = k[b2 + 24 >> 2] | 0; + if (d2 >>> 0 < e2 >>> 0) + k[c2 >> 2] = e2; + else + e2 = d2; + d2 = k[b2 + 20 >> 2] | 0; + f2 = e2 - d2 | 0; + if (f2 >>> 0 > 4294967279) + ij(a2); + if (f2 >>> 0 < 11) { + i2[a2 >> 0] = f2 << 1; + c2 = a2 + 1 | 0; + } else { + b2 = f2 + 16 & -16; + c2 = lj(b2) | 0; + k[a2 + 8 >> 2] = c2; + k[a2 >> 2] = b2 | 1; + k[a2 + 4 >> 2] = f2; + } + if ((d2 | 0) != (e2 | 0)) { + b2 = c2; + while (1) { + i2[b2 >> 0] = i2[d2 >> 0] | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (e2 | 0)) + break; + else + b2 = b2 + 1 | 0; + } + c2 = c2 + f2 | 0; + } + i2[c2 >> 0] = 0; + return; + } + if (!(c2 & 8)) { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + d2 = k[b2 + 8 >> 2] | 0; + b2 = k[b2 + 16 >> 2] | 0; + f2 = b2 - d2 | 0; + if (f2 >>> 0 > 4294967279) + ij(a2); + if (f2 >>> 0 < 11) { + i2[a2 >> 0] = f2 << 1; + c2 = a2 + 1 | 0; + } else { + e2 = f2 + 16 & -16; + c2 = lj(e2) | 0; + k[a2 + 8 >> 2] = c2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = f2; + } + if ((d2 | 0) != (b2 | 0)) { + e2 = c2; + while (1) { + i2[e2 >> 0] = i2[d2 >> 0] | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (b2 | 0)) + break; + else + e2 = e2 + 1 | 0; + } + c2 = c2 + f2 | 0; + } + i2[c2 >> 0] = 0; + return; + } + function Pc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + k[a2 >> 2] = 36364; + k[a2 + 4 >> 2] = c2; + o2 = a2 + 8 | 0; + g2 = k[c2 >> 2] | 0; + m2 = c2 + 16 | 0; + f2 = k[m2 >> 2] | 0; + l2 = ia(f2, g2) | 0; + k[o2 >> 2] = 0; + p2 = a2 + 12 | 0; + k[p2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (l2) { + if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + n2 = 4; + if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[o2 >> 2] = j2; + g2 = j2 + (l2 << 1) | 0; + k[a2 + 16 >> 2] = g2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[p2 >> 2] = g2; + g2 = k[c2 >> 2] | 0; + f2 = k[m2 >> 2] | 0; + break; + } + h2 = Wa() | 0; + e2 = k[o2 >> 2] | 0; + f2 = e2; + if (e2) { + g2 = k[p2 >> 2] | 0; + if ((g2 | 0) != (e2 | 0)) + k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); + mj(e2); + } + p2 = h2; + fb(p2 | 0); + } + while (0); + h2 = a2 + 20 | 0; + f2 = ia(g2 << 1, f2) | 0; + k[h2 >> 2] = 0; + j2 = a2 + 24 | 0; + k[j2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!f2) { + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + n2 = 13; + if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[j2 >> 2] = e2; + k[h2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + f2; + do { + i2[e2 >> 0] = 0; + e2 = (k[j2 >> 2] | 0) + 1 | 0; + k[j2 >> 2] = e2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + g2 = Wa() | 0; + e2 = k[h2 >> 2] | 0; + if (e2) { + if ((k[j2 >> 2] | 0) != (e2 | 0)) + k[j2 >> 2] = e2; + mj(e2); + } + e2 = k[o2 >> 2] | 0; + if (!e2) { + p2 = g2; + fb(p2 | 0); + } + f2 = k[p2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + p2 = g2; + fb(p2 | 0); + } + function Qc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + k[a2 >> 2] = 36340; + k[a2 + 4 >> 2] = c2; + o2 = a2 + 8 | 0; + g2 = k[c2 >> 2] | 0; + m2 = c2 + 16 | 0; + f2 = k[m2 >> 2] | 0; + l2 = ia(f2, g2) | 0; + k[o2 >> 2] = 0; + p2 = a2 + 12 | 0; + k[p2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (l2) { + if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + n2 = 4; + if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[o2 >> 2] = j2; + g2 = j2 + (l2 << 1) | 0; + k[a2 + 16 >> 2] = g2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[p2 >> 2] = g2; + g2 = k[c2 >> 2] | 0; + f2 = k[m2 >> 2] | 0; + break; + } + h2 = Wa() | 0; + e2 = k[o2 >> 2] | 0; + f2 = e2; + if (e2) { + g2 = k[p2 >> 2] | 0; + if ((g2 | 0) != (e2 | 0)) + k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); + mj(e2); + } + p2 = h2; + fb(p2 | 0); + } + while (0); + h2 = a2 + 20 | 0; + f2 = ia(g2 << 1, f2) | 0; + k[h2 >> 2] = 0; + j2 = a2 + 24 | 0; + k[j2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!f2) { + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + n2 = 13; + if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[j2 >> 2] = e2; + k[h2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + f2; + do { + i2[e2 >> 0] = 0; + e2 = (k[j2 >> 2] | 0) + 1 | 0; + k[j2 >> 2] = e2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + g2 = Wa() | 0; + e2 = k[h2 >> 2] | 0; + if (e2) { + if ((k[j2 >> 2] | 0) != (e2 | 0)) + k[j2 >> 2] = e2; + mj(e2); + } + e2 = k[o2 >> 2] | 0; + if (!e2) { + p2 = g2; + fb(p2 | 0); + } + f2 = k[p2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + p2 = g2; + fb(p2 | 0); + } + function Rc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + k[a2 >> 2] = 36316; + k[a2 + 4 >> 2] = c2; + o2 = a2 + 8 | 0; + g2 = k[c2 >> 2] | 0; + m2 = c2 + 16 | 0; + f2 = k[m2 >> 2] | 0; + l2 = ia(f2, g2) | 0; + k[o2 >> 2] = 0; + p2 = a2 + 12 | 0; + k[p2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (l2) { + if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + n2 = 4; + if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[o2 >> 2] = j2; + g2 = j2 + (l2 << 1) | 0; + k[a2 + 16 >> 2] = g2; + sw(j2 | 0, 0, h2 | 0) | 0; + k[p2 >> 2] = g2; + g2 = k[c2 >> 2] | 0; + f2 = k[m2 >> 2] | 0; + break; + } + h2 = Wa() | 0; + e2 = k[o2 >> 2] | 0; + f2 = e2; + if (e2) { + g2 = k[p2 >> 2] | 0; + if ((g2 | 0) != (e2 | 0)) + k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); + mj(e2); + } + p2 = h2; + fb(p2 | 0); + } + while (0); + h2 = a2 + 20 | 0; + f2 = ia(g2 << 1, f2) | 0; + k[h2 >> 2] = 0; + j2 = a2 + 24 | 0; + k[j2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!f2) { + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + n2 = 13; + if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[j2 >> 2] = e2; + k[h2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + f2; + do { + i2[e2 >> 0] = 0; + e2 = (k[j2 >> 2] | 0) + 1 | 0; + k[j2 >> 2] = e2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + p2 = a2 + 32 | 0; + o2 = d2; + o2 = k[o2 >> 2] | 0; + d2 = d2 + 4 | 0; + d2 = k[d2 >> 2] | 0; + n2 = p2; + k[n2 >> 2] = o2; + p2 = p2 + 4 | 0; + k[p2 >> 2] = d2; + p2 = a2 + 40 | 0; + k[p2 >> 2] = o2; + p2 = a2 + 48 | 0; + k[p2 >> 2] = k[b2 >> 2]; + k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + g2 = Wa() | 0; + e2 = k[h2 >> 2] | 0; + if (e2) { + if ((k[j2 >> 2] | 0) != (e2 | 0)) + k[j2 >> 2] = e2; + mj(e2); + } + e2 = k[o2 >> 2] | 0; + if (!e2) { + p2 = g2; + fb(p2 | 0); + } + f2 = k[p2 >> 2] | 0; + if ((f2 | 0) != (e2 | 0)) + k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); + mj(e2); + p2 = g2; + fb(p2 | 0); + } + function Sc(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36316; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Tc(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36316; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Uc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 48 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 52 | 0; + Zc(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Zc(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Vc(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 48 >> 2] | 0; + if (!e2) { + e2 = a2 + 52 | 0; + Wc(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Xc(a2, e2, b2, c2, d2); + return; + } + } + function Wc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; + l2 = a2 + 4 | 0; + f2 = k[l2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + n2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[l2 >> 2] | 0; + h2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + n2 = k[g2 >> 2] | 0; + break; + } + b2 = k[g2 >> 2] | 0; + f2 = b2; + g2 = 0; + while (1) { + n2 = f2 + 4 | 0; + o2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[n2 >> 1] | 0; + j[n2 >> 1] = o2; + g2 = g2 + 1 | 0; + if ((g2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (h2 << 1) | 0; + } + n2 = b2; + f2 = k[l2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + return; + f2 = a2 + 32 | 0; + b2 = 0; + do { + o2 = k[f2 >> 2] | 0; + l2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << o2; + e2 = 32768 - l2 | 0; + a2 = e2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << o2) & 65535; + e2 = e2 + (m[n2 + (b2 * 6 | 0) >> 1] << o2) & 65535; + j[c2 + (b2 * 6 | 0) >> 1] = (l2 + 49152 + ((a2 + e2 | 0) >>> 2) & 65535) >>> o2; + j[c2 + (b2 * 6 | 0) + 2 >> 1] = a2 >>> o2; + j[c2 + (b2 * 6 | 0) + 4 >> 1] = e2 >>> o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + return; + } else { + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + d2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; + o2 = 32768 - d2 | 0; + a2 = o2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) & 65535; + o2 = o2 + (m[n2 + (b2 * 6 | 0) >> 1] << f2) & 65535; + j[c2 + (b2 << 1) >> 1] = (d2 + 49152 + ((a2 + o2 | 0) >>> 2) & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = a2 >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = o2 >>> f2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + l2 = e2 * 3 | 0; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; + p2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; + a2 = 32768 - p2 | 0; + d2 = a2 + (m[n2 + (b2 << 3) + 4 >> 1] << f2) & 65535; + a2 = a2 + (m[n2 + (b2 << 3) >> 1] << f2) & 65535; + j[c2 + (b2 << 1) >> 1] = (p2 + 49152 + ((d2 + a2 | 0) >>> 2) & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = d2 >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = a2 >>> f2; + j[c2 + (b2 + l2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + default: + return; + } + } + function Xc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Wc(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Wc(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Yc(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = r; + r = r + 176 | 0; + c2 = e2 + 152 | 0; + j2 = e2 + 16 | 0; + g2 = e2; + if (!(b2 & 1)) { + c2 = (b2 | 0) / 4 | 0; + if ((b2 | 0) > 3) { + d2 = 0; + do { + j2 = a2 + (d2 << 2) | 0; + h2 = k[j2 >> 2] | 0; + k[j2 >> 2] = h2 >>> 8 & 16711935 | h2 << 8 & -16711936; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (c2 | 0)); + } + if (!(b2 & 3)) { + r = e2; + return; + } + g2 = a2 + (b2 + -2) | 0; + j2 = a2 + (b2 + -1) | 0; + h2 = i2[g2 >> 0] | 0; + i2[g2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = h2; + r = e2; + return; + } + h2 = j2 + 56 | 0; + f2 = j2 + 4 | 0; + k[j2 >> 2] = 36160; + k[h2 >> 2] = 36180; + x = 0; + ra(62, j2 + 56 | 0, f2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + j2 = Wa() | 0; + qn(h2); + fb(j2 | 0); + } + k[j2 + 128 >> 2] = 0; + k[j2 + 132 >> 2] = -1; + k[j2 >> 2] = 36200; + k[j2 + 56 >> 2] = 36220; + x = 0; + qa(180, f2 | 0); + e2 = x; + x = 0; + do + if (e2 & 1) + c2 = Wa() | 0; + else { + k[f2 >> 2] = 36236; + e2 = j2 + 36 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[j2 + 52 >> 2] = 16; + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + k[c2 + 8 >> 2] = 0; + x = 0; + ra(63, f2 | 0, c2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + j2 = Wa() | 0; + Sm(c2); + Sm(e2); + xn(f2); + c2 = j2; + break; + } + Sm(c2); + x = 0; + c2 = va(28, j2 | 0, 49087, 24) | 0; + a2 = x; + x = 0; + if ((!(a2 & 1) ? (x = 0, d2 = Aa(36, c2 | 0, b2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) ? (x = 0, va(28, d2 | 0, 49112, 20) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { + a2 = Va(16) | 0; + x = 0; + ra(64, g2 | 0, f2 | 0); + b2 = x; + x = 0; + if (!(b2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, a2 | 0, 1, 35648, g2 | 0); + b2 = x; + x = 0; + if (b2 & 1) + d2 = 1; + else { + x = 0; + Fa(6, a2 | 0, 824, 96); + x = 0; + d2 = 0; + } + c2 = Wa() | 0; + Sm(g2); + if (!d2) { + g2 = c2; + k[j2 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + } else + c2 = Wa() | 0; + Ua(a2 | 0); + g2 = c2; + k[j2 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + g2 = Wa() | 0; + k[j2 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + while (0); + j2 = c2; + qn(h2); + fb(j2 | 0); + } + function Zc(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + n2 = a2 + 4 | 0; + f2 = k[n2 >> 2] | 0; + a: + do + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + break a; + f2 = a2 + 40 | 0; + a2 = 0; + do { + e2 = k[f2 >> 2] | 0; + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << e2; + g2 = m[b2 + (a2 * 6 | 0) + 4 >> 1] << e2; + l2 = (m[b2 + (a2 * 6 | 0) >> 1] << e2) - (g2 + h2 >> 2) + 16384 | 0; + j[c2 + (a2 * 6 | 0) >> 1] = (g2 + 32768 + l2 & 65535) >>> e2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (l2 & 65535) >>> e2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = (h2 + 32768 + l2 & 65535) >>> e2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (d2 | 0)); + } else { + g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((g2 | 0) <= 0) + break a; + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = 0; + do { + l2 = k[f2 >> 2] | 0; + p2 = m[b2 + (a2 + e2 << 1) >> 1] << l2; + q2 = m[b2 + (a2 + h2 << 1) >> 1] << l2; + o2 = (m[b2 + (a2 << 1) >> 1] << l2) - (q2 + p2 >> 2) + 16384 | 0; + j[c2 + (a2 * 6 | 0) >> 1] = (q2 + 32768 + o2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (o2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = (p2 + 32768 + o2 & 65535) >>> l2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (g2 | 0)); + } + break; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = e2 * 3 | 0; + g2 = 0; + do { + q2 = k[f2 >> 2] | 0; + p2 = m[b2 + (g2 + e2 << 1) >> 1] << q2; + s2 = m[b2 + (g2 + h2 << 1) >> 1] << q2; + o2 = (m[b2 + (g2 << 1) >> 1] << q2) - (s2 + p2 >> 2) + 16384 | 0; + r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; + t2 = ww((o2 & 65535) >>> q2 & 65535 | 0, 0, 16) | 0; + p2 = (p2 + 32768 + o2 & 65535) >>> q2 | M; + r2 = ww(r2 & 65535 | 0, 0, 48) | 0; + r2 = t2 | (s2 + 32768 + o2 & 65535) >>> q2 & 65535 | r2; + p2 = p2 & 65535 | M; + q2 = c2 + (g2 << 3) | 0; + o2 = q2; + j[o2 >> 1] = r2; + j[o2 + 2 >> 1] = r2 >>> 16; + q2 = q2 + 4 | 0; + j[q2 >> 1] = p2; + j[q2 + 2 >> 1] = p2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (l2 | 0)); + } + break; + } + default: { + } + } + while (0); + f2 = k[n2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + return; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + f2 = c2; + a2 = 0; + while (1) { + t2 = f2 + 4 | 0; + s2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[t2 >> 1] | 0; + j[t2 >> 1] = s2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + return; + } + function _c(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36340; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function $c(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36340; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function ad(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 48 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 52 | 0; + ed(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + ed(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function bd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 48 >> 2] | 0; + if (!e2) { + e2 = a2 + 52 | 0; + cd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + dd(a2, e2, b2, c2, d2); + return; + } + } + function cd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; + l2 = a2 + 4 | 0; + f2 = k[l2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + n2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[l2 >> 2] | 0; + h2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + n2 = k[g2 >> 2] | 0; + break; + } + b2 = k[g2 >> 2] | 0; + f2 = b2; + g2 = 0; + while (1) { + n2 = f2 + 4 | 0; + o2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[n2 >> 1] | 0; + j[n2 >> 1] = o2; + g2 = g2 + 1 | 0; + if ((g2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (h2 << 1) | 0; + } + n2 = b2; + f2 = k[l2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + return; + f2 = a2 + 32 | 0; + b2 = 0; + do { + e2 = k[f2 >> 2] | 0; + l2 = m[n2 + (b2 * 6 | 0) >> 1] << e2; + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << e2; + o2 = ((m[n2 + (b2 * 6 | 0) + 4 >> 1] << e2) + 32768 - ((a2 + l2 | 0) >>> 1) & 65535) >>> e2 & 65535; + j[c2 + (b2 * 6 | 0) >> 1] = (l2 + 32768 - a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 2 >> 1] = (a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 4 >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + return; + } else { + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + d2 = m[n2 + (b2 * 6 | 0) >> 1] << f2; + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; + o2 = ((m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) + 32768 - ((a2 + d2 | 0) >>> 1) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = (d2 + 32768 - a2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (a2 & 65535) >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + l2 = e2 * 3 | 0; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; + p2 = m[n2 + (b2 << 3) >> 1] << f2; + d2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; + a2 = ((m[n2 + (b2 << 3) + 4 >> 1] << f2) + 32768 - ((d2 + p2 | 0) >>> 1) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = (p2 + 32768 - d2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (d2 & 65535) >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = a2; + j[c2 + (b2 + l2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + default: + return; + } + } + function dd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + cd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + cd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function ed(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + n2 = a2 + 4 | 0; + f2 = k[n2 >> 2] | 0; + a: + do + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + break a; + f2 = a2 + 40 | 0; + a2 = 0; + do { + l2 = k[f2 >> 2] | 0; + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << l2; + g2 = (m[b2 + (a2 * 6 | 0) >> 1] << l2) + 32768 + h2 & 65535; + h2 = h2 & 65535; + e2 = ((m[b2 + (a2 * 6 | 0) + 4 >> 1] << l2) + 32768 + ((g2 + h2 | 0) >>> 1) & 65535) >>> l2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = g2 >>> l2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2 >>> l2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (d2 | 0)); + } else { + g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((g2 | 0) <= 0) + break a; + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = 0; + do { + o2 = k[f2 >> 2] | 0; + p2 = m[b2 + (a2 + e2 << 1) >> 1] << o2; + q2 = (m[b2 + (a2 << 1) >> 1] << o2) + 32768 + p2 & 65535; + p2 = p2 & 65535; + l2 = ((m[b2 + (a2 + h2 << 1) >> 1] << o2) + 32768 + ((q2 + p2 | 0) >>> 1) & 65535) >>> o2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = q2 >>> o2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = p2 >>> o2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = l2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (g2 | 0)); + } + break; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = e2 * 3 | 0; + g2 = 0; + do { + o2 = k[f2 >> 2] | 0; + q2 = m[b2 + (g2 + e2 << 1) >> 1] << o2; + s2 = (m[b2 + (g2 << 1) >> 1] << o2) + 32768 + q2 & 65535; + q2 = q2 & 65535; + p2 = ((m[b2 + (g2 + h2 << 1) >> 1] << o2) + 32768 + ((s2 + q2 | 0) >>> 1) & 65535) >>> o2; + r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; + q2 = ww(q2 >>> o2 & 65535 | 0, 0, 16) | 0; + p2 = M | p2; + r2 = ww(r2 & 65535 | 0, 0, 48) | 0; + r2 = s2 >>> o2 & 65535 | q2 | r2; + p2 = p2 & 65535 | M; + q2 = c2 + (g2 << 3) | 0; + o2 = q2; + j[o2 >> 1] = r2; + j[o2 + 2 >> 1] = r2 >>> 16; + q2 = q2 + 4 | 0; + j[q2 >> 1] = p2; + j[q2 + 2 >> 1] = p2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (l2 | 0)); + } + break; + } + default: { + } + } + while (0); + f2 = k[n2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + return; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + f2 = c2; + a2 = 0; + while (1) { + s2 = f2 + 4 | 0; + r2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[s2 >> 1] | 0; + j[s2 >> 1] = r2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + return; + } + function fd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36364; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function gd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36364; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function hd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 48 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 52 | 0; + ld(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + ld(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function id(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 48 >> 2] | 0; + if (!e2) { + e2 = a2 + 52 | 0; + jd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + kd(a2, e2, b2, c2, d2); + return; + } + } + function jd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; + l2 = a2 + 4 | 0; + f2 = k[l2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + n2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[l2 >> 2] | 0; + h2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + n2 = k[g2 >> 2] | 0; + break; + } + b2 = k[g2 >> 2] | 0; + f2 = b2; + g2 = 0; + while (1) { + n2 = f2 + 4 | 0; + o2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[n2 >> 1] | 0; + j[n2 >> 1] = o2; + g2 = g2 + 1 | 0; + if ((g2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (h2 << 1) | 0; + } + n2 = b2; + f2 = k[l2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + return; + f2 = a2 + 32 | 0; + b2 = 0; + do { + e2 = k[f2 >> 2] | 0; + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << e2; + o2 = (32768 - a2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << e2) & 65535) >>> e2 & 65535; + j[c2 + (b2 * 6 | 0) >> 1] = ((m[n2 + (b2 * 6 | 0) >> 1] << e2) + 32768 - a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 2 >> 1] = (a2 & 65535) >>> e2; + j[c2 + (b2 * 6 | 0) + 4 >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + return; + } else { + g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((g2 | 0) <= 0) + return; + h2 = e2 << 1; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; + o2 = (32768 - a2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = ((m[n2 + (b2 * 6 | 0) >> 1] << f2) + 32768 - a2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (a2 & 65535) >>> f2; + j[c2 + (b2 + h2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (g2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + h2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((h2 | 0) <= 0) + return; + l2 = e2 << 1; + g2 = e2 * 3 | 0; + f2 = k[a2 + 32 >> 2] | 0; + b2 = 0; + do { + o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; + d2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; + a2 = (32768 - d2 + (m[n2 + (b2 << 3) + 4 >> 1] << f2) & 65535) >>> f2 & 65535; + j[c2 + (b2 << 1) >> 1] = ((m[n2 + (b2 << 3) >> 1] << f2) + 32768 - d2 & 65535) >>> f2; + j[c2 + (b2 + e2 << 1) >> 1] = (d2 & 65535) >>> f2; + j[c2 + (b2 + l2 << 1) >> 1] = a2; + j[c2 + (b2 + g2 << 1) >> 1] = o2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (h2 | 0)); + return; + } + default: + return; + } + } + function kd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + jd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + jd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function ld(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + n2 = a2 + 4 | 0; + f2 = k[n2 >> 2] | 0; + a: + do + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) <= 0) + break a; + f2 = a2 + 40 | 0; + a2 = 0; + do { + l2 = k[f2 >> 2] | 0; + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << l2; + e2 = (h2 + 32768 + (m[b2 + (a2 * 6 | 0) + 4 >> 1] << l2) & 65535) >>> l2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = ((m[b2 + (a2 * 6 | 0) >> 1] << l2) + 32768 + h2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (h2 & 65535) >>> l2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (d2 | 0)); + } else { + g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((g2 | 0) <= 0) + break a; + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = 0; + do { + o2 = k[f2 >> 2] | 0; + p2 = m[b2 + (a2 + e2 << 1) >> 1] << o2; + l2 = (p2 + 32768 + (m[b2 + (a2 + h2 << 1) >> 1] << o2) & 65535) >>> o2 & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = ((m[b2 + (a2 << 1) >> 1] << o2) + 32768 + p2 & 65535) >>> o2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = (p2 & 65535) >>> o2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = l2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (g2 | 0)); + } + break; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { + h2 = e2 << 1; + f2 = a2 + 40 | 0; + a2 = e2 * 3 | 0; + g2 = 0; + do { + q2 = k[f2 >> 2] | 0; + s2 = m[b2 + (g2 + e2 << 1) >> 1] << q2; + p2 = ((m[b2 + (g2 << 1) >> 1] << q2) + 32768 + s2 & 65535) >>> q2; + o2 = (s2 + 32768 + (m[b2 + (g2 + h2 << 1) >> 1] << q2) & 65535) >>> q2; + r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; + q2 = ww((s2 & 65535) >>> q2 & 65535 | 0, 0, 16) | 0; + o2 = o2 | M; + r2 = ww(r2 & 65535 | 0, 0, 48) | 0; + r2 = q2 | p2 & 65535 | r2; + o2 = o2 & 65535 | M; + p2 = c2 + (g2 << 3) | 0; + q2 = p2; + j[q2 >> 1] = r2; + j[q2 + 2 >> 1] = r2 >>> 16; + p2 = p2 + 4 | 0; + j[p2 >> 1] = o2; + j[p2 + 2 >> 1] = o2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (l2 | 0)); + } + break; + } + default: { + } + } + while (0); + f2 = k[n2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + return; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + f2 = c2; + a2 = 0; + while (1) { + s2 = f2 + 4 | 0; + r2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[s2 >> 1] | 0; + j[s2 >> 1] = r2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + return; + } + function md(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + m2 = k[a2 >> 2] | 0; + if (!m2) { + a2 = 0; + r = n2; + return a2 | 0; + } + o2 = b2; + h2 = d2 - o2 | 0; + j2 = e2 + 12 | 0; + g2 = k[j2 >> 2] | 0; + h2 = (g2 | 0) > (h2 | 0) ? g2 - h2 | 0 : 0; + g2 = c2; + e2 = g2 - o2 | 0; + if ((e2 | 0) > 0 ? (Qb[k[(k[m2 >> 2] | 0) + 48 >> 2] & 63](m2, b2, e2) | 0) != (e2 | 0) : 0) { + k[a2 >> 2] = 0; + o2 = 0; + r = n2; + return o2 | 0; + } + do + if ((h2 | 0) > 0) { + Rm(l2, h2, f2); + x = 0; + e2 = va(k[(k[m2 >> 2] | 0) + 48 >> 2] | 0, m2 | 0, ((i2[l2 >> 0] & 1) == 0 ? l2 + 1 | 0 : k[l2 + 8 >> 2] | 0) | 0, h2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Sm(l2); + fb(o2 | 0); + } + if ((e2 | 0) == (h2 | 0)) { + Sm(l2); + break; + } + k[a2 >> 2] = 0; + Sm(l2); + o2 = 0; + r = n2; + return o2 | 0; + } + while (0); + d2 = d2 - g2 | 0; + if ((d2 | 0) > 0 ? (Qb[k[(k[m2 >> 2] | 0) + 48 >> 2] & 63](m2, c2, d2) | 0) != (d2 | 0) : 0) { + k[a2 >> 2] = 0; + o2 = 0; + r = n2; + return o2 | 0; + } + k[j2 >> 2] = 0; + o2 = m2; + r = n2; + return o2 | 0; + } + function nd(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36236; + Sm(a2 + 32 | 0); + xn(a2); + return; + } + function od(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36236; + Sm(a2 + 32 | 0); + xn(a2); + mj(a2); + return; + } + function pd(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + g2 = b2 + 44 | 0; + h2 = k[g2 >> 2] | 0; + l2 = b2 + 24 | 0; + m2 = k[l2 >> 2] | 0; + if (h2 >>> 0 < m2 >>> 0) { + k[g2 >> 2] = m2; + h2 = m2; + } + j2 = h2; + g2 = f2 & 24; + if (!g2) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + if ((e2 | 0) == 1 & (g2 | 0) == 24) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + a: + do + switch (e2 | 0) { + case 0: { + g2 = 0; + e2 = 0; + break; + } + case 1: + if (!(f2 & 8)) { + e2 = m2 - (k[b2 + 20 >> 2] | 0) | 0; + g2 = e2; + e2 = ((e2 | 0) < 0) << 31 >> 31; + break a; + } else { + e2 = (k[b2 + 12 >> 2] | 0) - (k[b2 + 8 >> 2] | 0) | 0; + g2 = e2; + e2 = ((e2 | 0) < 0) << 31 >> 31; + break a; + } + case 2: { + g2 = b2 + 32 | 0; + if (!(i2[g2 >> 0] & 1)) + g2 = g2 + 1 | 0; + else + g2 = k[b2 + 40 >> 2] | 0; + e2 = h2 - g2 | 0; + g2 = e2; + e2 = ((e2 | 0) < 0) << 31 >> 31; + break; + } + default: { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + } + while (0); + e2 = tw(g2 | 0, e2 | 0, c2 | 0, d2 | 0) | 0; + c2 = M; + if ((c2 | 0) >= 0) { + g2 = b2 + 32 | 0; + if (!(i2[g2 >> 0] & 1)) + g2 = g2 + 1 | 0; + else + g2 = k[b2 + 40 >> 2] | 0; + d2 = h2 - g2 | 0; + h2 = ((d2 | 0) < 0) << 31 >> 31; + if (!((h2 | 0) < (c2 | 0) | (h2 | 0) == (c2 | 0) & d2 >>> 0 < e2 >>> 0)) { + g2 = f2 & 8; + if (!((e2 | 0) == 0 & (c2 | 0) == 0)) { + if ((g2 | 0) != 0 ? (k[b2 + 12 >> 2] | 0) == 0 : 0) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + if ((f2 & 16 | 0) != 0 & (m2 | 0) == 0) { + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + } + if (g2) { + k[b2 + 12 >> 2] = (k[b2 + 8 >> 2] | 0) + e2; + k[b2 + 16 >> 2] = j2; + } + if (f2 & 16) + k[l2 >> 2] = (k[b2 + 20 >> 2] | 0) + e2; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = e2; + k[b2 + 4 >> 2] = c2; + return; + } + } + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function qd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + c2 = c2 + 8 | 0; + Sb[k[(k[b2 >> 2] | 0) + 16 >> 2] & 15](a2, b2, k[c2 >> 2] | 0, k[c2 + 4 >> 2] | 0, 0, d2); + return; + } + function rd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + b2 = a2 + 44 | 0; + c2 = k[b2 >> 2] | 0; + d2 = k[a2 + 24 >> 2] | 0; + if (c2 >>> 0 < d2 >>> 0) { + k[b2 >> 2] = d2; + c2 = d2; + } + if (!(k[a2 + 48 >> 2] & 8)) { + a2 = -1; + return a2 | 0; + } + e2 = a2 + 16 | 0; + b2 = k[e2 >> 2] | 0; + d2 = a2 + 12 | 0; + if (b2 >>> 0 < c2 >>> 0) { + d2 = k[d2 >> 2] | 0; + k[e2 >> 2] = c2; + b2 = c2; + } else + d2 = k[d2 >> 2] | 0; + if (d2 >>> 0 >= b2 >>> 0) { + a2 = -1; + return a2 | 0; + } + a2 = l[d2 >> 0] | 0; + return a2 | 0; + } + function sd(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + d2 = a2 + 44 | 0; + c2 = k[d2 >> 2] | 0; + e2 = k[a2 + 24 >> 2] | 0; + if (c2 >>> 0 < e2 >>> 0) { + k[d2 >> 2] = e2; + c2 = e2; + } + h2 = a2 + 8 | 0; + d2 = k[h2 >> 2] | 0; + j2 = a2 + 12 | 0; + f2 = k[j2 >> 2] | 0; + g2 = d2; + if (d2 >>> 0 >= f2 >>> 0) { + a2 = -1; + return a2 | 0; + } + if ((b2 | 0) == -1) { + k[h2 >> 2] = d2; + k[j2 >> 2] = f2 + -1; + k[a2 + 16 >> 2] = c2; + a2 = 0; + return a2 | 0; + } + if (!(k[a2 + 48 >> 2] & 16)) { + e2 = b2 & 255; + d2 = f2 + -1 | 0; + if (e2 << 24 >> 24 != (i2[d2 >> 0] | 0)) { + a2 = -1; + return a2 | 0; + } + } else { + e2 = b2 & 255; + d2 = f2 + -1 | 0; + } + k[h2 >> 2] = g2; + k[j2 >> 2] = d2; + k[a2 + 16 >> 2] = c2; + i2[d2 >> 0] = e2; + a2 = b2; + return a2 | 0; + } + function td(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; + s2 = r; + r = r + 16 | 0; + m2 = s2; + if ((b2 | 0) == -1) { + a2 = 0; + r = s2; + return a2 | 0; + } + n2 = a2 + 12 | 0; + o2 = a2 + 8 | 0; + p2 = (k[n2 >> 2] | 0) - (k[o2 >> 2] | 0) | 0; + q2 = a2 + 24 | 0; + c2 = k[q2 >> 2] | 0; + l2 = a2 + 28 | 0; + d2 = k[l2 >> 2] | 0; + do + if ((c2 | 0) == (d2 | 0)) { + h2 = a2 + 48 | 0; + if (!(k[h2 >> 2] & 16)) { + a2 = -1; + r = s2; + return a2 | 0; + } + j2 = a2 + 20 | 0; + g2 = k[j2 >> 2] | 0; + e2 = c2 - g2 | 0; + f2 = a2 + 44 | 0; + g2 = (k[f2 >> 2] | 0) - g2 | 0; + d2 = a2 + 32 | 0; + x = 0; + ra(67, d2 | 0, 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + if (!(i2[d2 >> 0] & 1)) + c2 = 10; + else + c2 = (k[d2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, d2 | 0, c2 | 0, 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + c2 = i2[d2 >> 0] | 0; + if (!(c2 & 1)) { + d2 = d2 + 1 | 0; + c2 = (c2 & 255) >>> 1; + } else { + d2 = k[a2 + 40 >> 2] | 0; + c2 = k[a2 + 36 >> 2] | 0; + } + t2 = d2 + c2 | 0; + k[j2 >> 2] = d2; + k[l2 >> 2] = t2; + j2 = d2 + e2 | 0; + k[q2 >> 2] = j2; + c2 = d2 + g2 | 0; + k[f2 >> 2] = c2; + d2 = t2; + break; + } + } + t2 = Wa(0) | 0; + cb(t2 | 0) | 0; + eb(); + t2 = -1; + r = s2; + return t2 | 0; + } else { + t2 = a2 + 44 | 0; + h2 = a2 + 48 | 0; + f2 = t2; + j2 = c2; + c2 = k[t2 >> 2] | 0; + } + while (0); + g2 = j2 + 1 | 0; + k[m2 >> 2] = g2; + e2 = k[(g2 >>> 0 < c2 >>> 0 ? f2 : m2) >> 2] | 0; + k[f2 >> 2] = e2; + if (k[h2 >> 2] & 8) { + c2 = a2 + 32 | 0; + if (!(i2[c2 >> 0] & 1)) + c2 = c2 + 1 | 0; + else + c2 = k[a2 + 40 >> 2] | 0; + k[o2 >> 2] = c2; + k[n2 >> 2] = c2 + p2; + k[a2 + 16 >> 2] = e2; + } + if ((j2 | 0) == (d2 | 0)) { + t2 = Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, b2 & 255) | 0; + r = s2; + return t2 | 0; + } else { + k[q2 >> 2] = g2; + i2[j2 >> 0] = b2; + t2 = b2 & 255; + r = s2; + return t2 | 0; + } + return 0; + } + function ud(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36200; + b2 = a2 + 56 | 0; + k[b2 >> 2] = 36220; + c2 = a2 + 4 | 0; + k[c2 >> 2] = 36236; + Sm(a2 + 36 | 0); + xn(c2); + qn(b2); + return; + } + function vd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36200; + b2 = a2 + 56 | 0; + k[b2 >> 2] = 36220; + c2 = a2 + 4 | 0; + k[c2 >> 2] = 36236; + Sm(a2 + 36 | 0); + xn(c2); + qn(b2); + mj(a2); + return; + } + function wd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + b2 = a2 + e2 | 0; + k[b2 >> 2] = 36200; + c2 = a2 + (e2 + 56) | 0; + k[c2 >> 2] = 36220; + d2 = a2 + (e2 + 4) | 0; + k[d2 >> 2] = 36236; + Sm(a2 + (e2 + 36) | 0); + xn(d2); + qn(c2); + mj(b2); + return; + } + function xd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36388; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function yd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36388; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function zd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Dd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Dd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Ad(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Bd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Cd(a2, e2, b2, c2, d2); + return; + } + } + function Bd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + n2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = n2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + h2 = m[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + e2 = 32768 - h2 + (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) | 0; + n2 = (m[l2 + (f2 * 6 | 0) >> 1] | 0) - h2 + 32768 | 0; + j[c2 + (f2 * 6 | 0) >> 1] = h2 + 49152 + (((e2 & 65535) + (n2 & 65535) | 0) >>> 2); + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + h2 = m[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + d2 = 32768 - h2 + (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) | 0; + n2 = (m[l2 + (b2 * 6 | 0) >> 1] | 0) - h2 + 32768 | 0; + j[c2 + (b2 << 1) >> 1] = h2 + 49152 + (((d2 & 65535) + (n2 & 65535) | 0) >>> 2); + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = n2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + o2 = m[l2 + (g2 << 3) + 2 >> 1] | 0; + h2 = 32768 - o2 + (m[l2 + (g2 << 3) + 4 >> 1] | 0) | 0; + d2 = (m[l2 + (g2 << 3) >> 1] | 0) - o2 + 32768 | 0; + j[c2 + (g2 << 1) >> 1] = o2 + 49152 + (((h2 & 65535) + (d2 & 65535) | 0) >>> 2); + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = n2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Cd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Bd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Bd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Dd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + g2 = m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0; + e2 = (m[b2 + (a2 * 6 | 0) >> 1] | 0) - ((g2 + h2 | 0) >>> 2) + 16384 | 0; + j[c2 + (a2 * 6 | 0) >> 1] = g2 + 32768 + e2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = h2 + 32768 + e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = m[b2 + (g2 + e2 << 1) >> 1] | 0; + o2 = m[b2 + (g2 + f2 << 1) >> 1] | 0; + h2 = (m[b2 + (g2 << 1) >> 1] | 0) - ((o2 + n2 | 0) >>> 2) + 16384 | 0; + j[c2 + (g2 * 6 | 0) >> 1] = o2 + 32768 + h2; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = n2 + 32768 + h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = m[b2 + (g2 + e2 << 1) >> 1] | 0; + p2 = m[b2 + (g2 + a2 << 1) >> 1] | 0; + o2 = (m[b2 + (g2 << 1) >> 1] | 0) - ((p2 + n2 | 0) >>> 2) + 16384 | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + r2 = ww(o2 & 65535 | 0, 0, 16) | 0; + n2 = n2 + 32768 + o2 | M; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = r2 | p2 + 32768 + o2 & 65535 | q2; + n2 = n2 & 65535 | M; + o2 = c2 + (g2 << 3) | 0; + p2 = o2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + o2 = o2 + 4 | 0; + j[o2 >> 1] = n2; + j[o2 + 2 >> 1] = n2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + r2 = a2 + 4 | 0; + q2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[r2 >> 1] | 0; + j[r2 >> 1] = q2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Ed(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36412; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Fd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36412; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Gd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Kd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Kd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Hd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Id(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Jd(a2, e2, b2, c2, d2); + return; + } + } + function Id(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + n2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = n2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + g2 = m[l2 + (f2 * 6 | 0) >> 1] | 0; + e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + h2 = e2 & 65535; + n2 = (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) + 32768 - ((h2 + g2 | 0) >>> 1) & 65535; + j[c2 + (f2 * 6 | 0) >> 1] = g2 + 32768 - h2; + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + g2 = m[l2 + (b2 * 6 | 0) >> 1] | 0; + h2 = d2 & 65535; + n2 = (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) + 32768 - ((h2 + g2 | 0) >>> 1) & 65535; + j[c2 + (b2 << 1) >> 1] = g2 + 32768 - h2; + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = n2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; + n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + p2 = m[l2 + (g2 << 3) >> 1] | 0; + o2 = h2 & 65535; + d2 = (m[l2 + (g2 << 3) + 4 >> 1] | 0) + 32768 - ((o2 + p2 | 0) >>> 1) & 65535; + j[c2 + (g2 << 1) >> 1] = p2 + 32768 - o2; + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = n2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Jd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Id(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Id(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Kd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + e2 = h2 & 65535; + g2 = (m[b2 + (a2 * 6 | 0) >> 1] | 0) + 32768 + e2 | 0; + e2 = (m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0) + 32768 + (((g2 & 65535) + e2 | 0) >>> 1) & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = g2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + h2 = n2 & 65535; + o2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + h2 | 0; + h2 = (m[b2 + (g2 + f2 << 1) >> 1] | 0) + 32768 + (((o2 & 65535) + h2 | 0) >>> 1) & 65535; + j[c2 + (g2 * 6 | 0) >> 1] = o2; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + o2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + n2 = o2 & 65535; + p2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + n2 & 65535; + n2 = (m[b2 + (g2 + a2 << 1) >> 1] | 0) + 32768 + ((p2 + n2 | 0) >>> 1) | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + o2 = ww(o2 & 65535 | 0, 0, 16) | 0; + n2 = M | n2; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = p2 | o2 | q2; + n2 = n2 & 65535 | M; + o2 = c2 + (g2 << 3) | 0; + p2 = o2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + o2 = o2 + 4 | 0; + j[o2 >> 1] = n2; + j[o2 + 2 >> 1] = n2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + q2 = a2 + 4 | 0; + p2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[q2 >> 1] | 0; + j[q2 >> 1] = p2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Ld(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36436; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Md(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36436; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Nd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Rd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Rd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Od(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Pd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Qd(a2, e2, b2, c2, d2); + return; + } + } + function Pd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + n2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = n2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + h2 = e2 & 65535; + n2 = 32768 - h2 + (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) & 65535; + j[c2 + (f2 * 6 | 0) >> 1] = (m[l2 + (f2 * 6 | 0) >> 1] | 0) + 32768 - h2; + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + h2 = d2 & 65535; + n2 = 32768 - h2 + (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) & 65535; + j[c2 + (b2 << 1) >> 1] = (m[l2 + (b2 * 6 | 0) >> 1] | 0) + 32768 - h2; + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = n2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; + n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + o2 = h2 & 65535; + d2 = 32768 - o2 + (m[l2 + (g2 << 3) + 4 >> 1] | 0) & 65535; + j[c2 + (g2 << 1) >> 1] = (m[l2 + (g2 << 3) >> 1] | 0) + 32768 - o2; + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = n2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Qd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Pd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Pd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Rd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + g2 = h2 & 65535; + e2 = g2 + 32768 + (m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0) & 65535; + j[c2 + (a2 * 6 | 0) >> 1] = (m[b2 + (a2 * 6 | 0) >> 1] | 0) + 32768 + g2; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + o2 = n2 & 65535; + h2 = o2 + 32768 + (m[b2 + (g2 + f2 << 1) >> 1] | 0) & 65535; + j[c2 + (g2 * 6 | 0) >> 1] = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + o2; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + o2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + n2 = o2 & 65535; + p2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + n2 | 0; + n2 = n2 + 32768 + (m[b2 + (g2 + a2 << 1) >> 1] | 0) | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + o2 = ww(o2 & 65535 | 0, 0, 16) | 0; + n2 = M | n2; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = p2 & 65535 | o2 | q2; + n2 = n2 & 65535 | M; + o2 = c2 + (g2 << 3) | 0; + p2 = o2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + o2 = o2 + 4 | 0; + j[o2 >> 1] = n2; + j[o2 + 2 >> 1] = n2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + q2 = a2 + 4 | 0; + p2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[q2 >> 1] | 0; + j[q2 >> 1] = p2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Sd(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36460; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) + return; + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + return; + } + function Td(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 36460; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + d2 = k[a2 + 8 >> 2] | 0; + if (!d2) { + mj(a2); + return; + } + b2 = a2 + 12 | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 | 0) != (d2 | 0)) + k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); + mj(d2); + mj(a2); + return; + } + function Ud(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + h2 = a2 + 40 | 0; + Yd(a2, b2, k[h2 >> 2] | 0, c2, d2); + k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + j2 = a2 + 4 | 0; + f2 = c2 << 1; + g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; + h2 = a2 + 20 | 0; + Yd(a2, b2, k[h2 >> 2] | 0, c2, d2); + b2 = k[j2 >> 2] | 0; + if ((k[b2 + 28 >> 2] | 0) == 536870912) + Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); + j2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 3, 35648); + j2 = x; + x = 0; + if (j2 & 1) { + j2 = Wa() | 0; + Ua(b2 | 0); + fb(j2 | 0); + } else + ub(b2 | 0, 824, 96); + } + function Vd(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Wd(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + Xd(a2, e2, b2, c2, d2); + return; + } + } + function Wd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + do + if (!(i2[f2 + 32 >> 0] | 0)) + l2 = b2; + else { + a2 = a2 + 8 | 0; + vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; + f2 = k[h2 >> 2] | 0; + g2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) { + l2 = k[a2 >> 2] | 0; + break; + } + a2 = k[a2 >> 2] | 0; + f2 = a2; + b2 = 0; + while (1) { + l2 = f2 + 4 | 0; + m2 = j[f2 >> 1] | 0; + j[f2 >> 1] = j[l2 >> 1] | 0; + j[l2 >> 1] = m2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + (g2 << 1) | 0; + } + l2 = a2; + f2 = k[h2 >> 2] | 0; + } + while (0); + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; + m2 = j[l2 + (f2 * 6 | 0) + 4 >> 1] | 0; + j[c2 + (f2 * 6 | 0) >> 1] = j[l2 + (f2 * 6 | 0) >> 1] | 0; + j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; + j[c2 + (f2 * 6 | 0) + 4 >> 1] = m2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; + m2 = j[l2 + (b2 * 6 | 0) + 4 >> 1] | 0; + j[c2 + (b2 << 1) >> 1] = j[l2 + (b2 * 6 | 0) >> 1] | 0; + j[c2 + (b2 + e2 << 1) >> 1] = d2; + j[c2 + (b2 + a2 << 1) >> 1] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; + d2 = j[l2 + (g2 << 3) + 4 >> 1] | 0; + m2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; + j[c2 + (g2 << 1) >> 1] = j[l2 + (g2 << 3) >> 1] | 0; + j[c2 + (g2 + e2 << 1) >> 1] = h2; + j[c2 + (g2 + a2 << 1) >> 1] = d2; + j[c2 + (g2 + b2 << 1) >> 1] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function Xd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = r; + r = r + 176 | 0; + o2 = n2 + 152 | 0; + q2 = n2 + 16 | 0; + p2 = n2; + j2 = a2 + 4 | 0; + f2 = k[j2 >> 2] | 0; + m2 = d2 << 1; + g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; + do + if (g2) { + h2 = a2 + 20 | 0; + while (1) { + f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; + if (!f2) + break; + if ((g2 | 0) == (f2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - f2 | 0; + } + if ((l2 | 0) == 26) { + f2 = k[j2 >> 2] | 0; + break; + } + l2 = q2 + 56 | 0; + j2 = q2 + 4 | 0; + k[q2 >> 2] = 36160; + k[l2 >> 2] = 36180; + x = 0; + ra(62, q2 + 56 | 0, j2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + q2 = Wa() | 0; + qn(l2); + fb(q2 | 0); + } + k[q2 + 128 >> 2] = 0; + k[q2 + 132 >> 2] = -1; + k[q2 >> 2] = 36200; + k[q2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + n2 = x; + x = 0; + do + if (n2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = q2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[q2 + 52 >> 2] = 16; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + f2 = Wa() | 0; + Sm(o2); + Sm(b2); + xn(j2); + break; + } + Sm(o2); + x = 0; + f2 = va(28, q2 | 0, 49029, 57) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, p2 | 0, j2 | 0); + o2 = x; + x = 0; + if (!(o2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, p2 | 0); + o2 = x; + x = 0; + if (o2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(p2); + if (!g2) { + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + p2 = f2; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + p2 = Wa() | 0; + k[q2 >> 2] = 36200; + k[l2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(l2); + fb(p2 | 0); + } + while (0); + q2 = f2; + qn(l2); + fb(q2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + if ((k[f2 + 28 >> 2] | 0) != 536870912) { + q2 = k[g2 >> 2] | 0; + Wd(a2, q2, c2, d2, e2); + r = n2; + return; + } + Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); + q2 = k[g2 >> 2] | 0; + Wd(a2, q2, c2, d2, e2); + r = n2; + return; + } + function Yd(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + l2 = a2 + 4 | 0; + a2 = k[l2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; + e2 = j[b2 + (a2 * 6 | 0) + 4 >> 1] | 0; + j[c2 + (a2 * 6 | 0) >> 1] = j[b2 + (a2 * 6 | 0) >> 1] | 0; + j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; + j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; + h2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + j[c2 + (g2 * 6 | 0) >> 1] = j[b2 + (g2 << 1) >> 1] | 0; + j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; + j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = j[b2 + (g2 << 1) >> 1] | 0; + q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; + o2 = m[b2 + (g2 + a2 << 1) >> 1] | 0; + p2 = ww(m[b2 + (g2 + e2 << 1) >> 1] | 0, 0, 16) | 0; + o2 = M | o2; + q2 = ww(q2 & 65535 | 0, 0, 48) | 0; + q2 = p2 | n2 & 65535 | q2; + o2 = o2 & 65535 | M; + n2 = c2 + (g2 << 3) | 0; + p2 = n2; + j[p2 >> 1] = q2; + j[p2 + 2 >> 1] = q2 >>> 16; + n2 = n2 + 4 | 0; + j[n2 >> 1] = o2; + j[n2 + 2 >> 1] = o2 >>> 16; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[l2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) <= 0) + return; + a2 = c2; + f2 = 0; + while (1) { + q2 = a2 + 4 | 0; + p2 = j[a2 >> 1] | 0; + j[a2 >> 1] = j[q2 >> 1] | 0; + j[q2 >> 1] = p2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + (g2 << 1) | 0; + } + return; + } + function Zd(a2) { + a2 = a2 | 0; + return; + } + function _d(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function $d(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + c2 = ia(k[a2 + 8 >> 2] | 0, c2) | 0; + a2 = k[a2 + 4 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, b2, c2) | 0) == (c2 | 0)) + return; + d2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, d2 | 0, 3, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(d2 | 0); + fb(a2 | 0); + } else + ub(d2 | 0, 824, 96); + } + function ae(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 16 | 0; + l2 = m2; + j2 = a2 + 8 | 0; + e2 = k[j2 >> 2] | 0; + d2 = ia(e2, c2) | 0; + do + if (d2) { + g2 = a2 + 4 | 0; + f2 = d2; + while (1) { + e2 = k[g2 >> 2] | 0; + e2 = Qb[k[(k[e2 >> 2] | 0) + 32 >> 2] & 63](e2, b2, f2) | 0; + if (!e2) + break; + d2 = f2 - e2 | 0; + if ((f2 | 0) == (e2 | 0)) { + h2 = 11; + break; + } else + f2 = d2; + } + if ((h2 | 0) == 11) { + e2 = k[j2 >> 2] | 0; + f2 = d2; + break; + } + d2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, d2 | 0, 3, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(d2 | 0); + fb(a2 | 0); + } else + ub(d2 | 0, 824, 96); + } else + f2 = 0; + while (0); + if ((e2 | 0) == 2) { + Yc(b2, c2 << 1); + e2 = k[j2 >> 2] | 0; + } + d2 = k[a2 + 12 >> 2] | 0; + if ((d2 | 0) <= (ia(e2, c2) | 0)) { + r = m2; + return; + } + a2 = k[a2 + 4 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 16 >> 2] & 15](l2, a2, d2 - f2 | 0, 0, 1, 24); + r = m2; + return; + } + function be(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function ce(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + d2 = a2 + 4 | 0; + vw(k[d2 >> 2] | 0, b2 | 0, ia(k[a2 + 8 >> 2] | 0, c2) | 0) | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + (k[a2 + 12 >> 2] | 0); + return; + } + function de(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + d2 = a2 + 4 | 0; + vw(b2 | 0, k[d2 >> 2] | 0, ia(k[a2 + 8 >> 2] | 0, c2) | 0) | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + (k[a2 + 12 >> 2] | 0); + return; + } + function ee(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + k[a2 + 112 >> 2] = 0; + k[a2 + 108 >> 2] = 0; + l2 = k[b2 >> 2] | 0; + e2 = l2; + do + if (l2) { + g2 = a2 + 92 | 0; + l2 = a2 + 96 | 0; + h2 = k[l2 >> 2] | 0; + j2 = k[g2 >> 2] | 0; + c2 = j2; + d2 = h2 - c2 | 0; + if (d2 >>> 0 >= 4e4) + if (d2 >>> 0 > 4e4 ? (f2 = j2 + 4e4 | 0, (h2 | 0) != (f2 | 0)) : 0) { + k[l2 >> 2] = f2; + f2 = c2; + } else + f2 = c2; + else { + fe(g2, 4e4 - d2 | 0); + f2 = k[g2 >> 2] | 0; + e2 = k[b2 >> 2] | 0; + } + c2 = a2 + 116 | 0; + k[c2 >> 2] = f2; + h2 = a2 + 124 | 0; + k[h2 >> 2] = f2; + j2 = a2 + 104 | 0; + k[j2 >> 2] = e2; + d2 = e2; + if (e2) { + if ((k[d2 + 12 >> 2] | 0) == (k[d2 + 16 >> 2] | 0)) { + b2 = (Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](d2) | 0) == -1; + d2 = k[h2 >> 2] | 0; + if (b2) + break; + e2 = k[c2 >> 2] | 0; + } else { + d2 = f2; + e2 = f2; + } + g2 = d2 - e2 | 0; + if (g2 >>> 0 <= 64) { + f2 = a2 + 92 | 0; + if ((d2 | 0) == (e2 | 0)) + d2 = e2; + else { + d2 = e2; + e2 = 0; + do { + i2[(k[f2 >> 2] | 0) + e2 >> 0] = i2[d2 + e2 >> 0] | 0; + e2 = e2 + 1 | 0; + d2 = k[c2 >> 2] | 0; + } while (e2 >>> 0 < g2 >>> 0); + e2 = k[h2 >> 2] | 0; + } + f2 = k[f2 >> 2] | 0; + b2 = f2; + m2 = b2 - d2 | 0; + k[c2 >> 2] = f2; + d2 = e2 + m2 | 0; + k[h2 >> 2] = d2; + f2 = a2 + 120 | 0; + k[f2 >> 2] = (k[f2 >> 2] | 0) + m2; + j2 = k[j2 >> 2] | 0; + d2 = Qb[k[(k[j2 >> 2] | 0) + 32 >> 2] & 63](j2, d2, (k[l2 >> 2] | 0) - (b2 + g2) | 0) | 0; + d2 = (k[h2 >> 2] | 0) + d2 | 0; + k[h2 >> 2] = d2; + } + } else + d2 = f2; + } else { + k[a2 + 104 >> 2] = 0; + d2 = k[b2 + 4 >> 2] | 0; + c2 = a2 + 116 | 0; + k[c2 >> 2] = d2; + d2 = d2 + (k[b2 + 8 >> 2] | 0) | 0; + k[a2 + 124 >> 2] = d2; + } + while (0); + c2 = k[c2 >> 2] | 0; + if (c2 >>> 0 >= d2 >>> 0) { + l2 = c2; + m2 = a2 + 120 | 0; + k[m2 >> 2] = l2; + qe(a2); + return; + } + while (1) { + if ((i2[c2 >> 0] | 0) == -1) { + d2 = 20; + break; + } + c2 = c2 + 1 | 0; + if (c2 >>> 0 >= d2 >>> 0) { + d2 = 20; + break; + } + } + if ((d2 | 0) == 20) { + m2 = a2 + 120 | 0; + k[m2 >> 2] = c2; + qe(a2); + return; + } + } + function fe(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = a2 + 8 | 0; + e2 = k[j2 >> 2] | 0; + l2 = a2 + 4 | 0; + c2 = k[l2 >> 2] | 0; + d2 = c2; + if ((e2 - d2 | 0) >>> 0 >= b2 >>> 0) { + do { + i2[c2 >> 0] = 0; + c2 = (k[l2 >> 2] | 0) + 1 | 0; + k[l2 >> 2] = c2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + return; + } + c2 = k[a2 >> 2] | 0; + f2 = d2 - c2 + b2 | 0; + if ((f2 | 0) < 0) { + jj(a2); + e2 = k[j2 >> 2] | 0; + c2 = k[a2 >> 2] | 0; + } + d2 = e2 - c2 | 0; + if (d2 >>> 0 < 1073741823) { + d2 = d2 << 1; + d2 = d2 >>> 0 < f2 >>> 0 ? f2 : d2; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + if (!d2) { + e2 = 0; + g2 = 0; + f2 = c2; + } else + h2 = 8; + } else { + d2 = 2147483647; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + h2 = 8; + } + if ((h2 | 0) == 8) { + e2 = d2; + g2 = lj(d2) | 0; + f2 = c2; + } + c2 = g2 + f2 | 0; + e2 = g2 + e2 | 0; + d2 = c2; + do { + i2[d2 >> 0] = 0; + d2 = c2 + 1 | 0; + c2 = d2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + b2 = k[a2 >> 2] | 0; + d2 = (k[l2 >> 2] | 0) - b2 | 0; + h2 = g2 + (f2 - d2) | 0; + vw(h2 | 0, b2 | 0, d2 | 0) | 0; + k[a2 >> 2] = h2; + k[l2 >> 2] = c2; + k[j2 >> 2] = e2; + if (!b2) + return; + mj(b2); + return; + } + function ge(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + u2 = r; + r = r + 32 | 0; + w2 = u2 + 12 | 0; + t2 = u2; + p2 = a2 + 180 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + s2 = k[a2 + 24 >> 2] | 0; + else + s2 = 1; + b2 = ia(s2 << 1, q2) | 0; + k[w2 >> 2] = 0; + y2 = w2 + 4 | 0; + k[y2 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[w2 >> 2] = d2; + v2 = d2 + (b2 << 1) | 0; + k[w2 + 8 >> 2] = v2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[y2 >> 2] = v2; + break; + } + d2 = Wa() | 0; + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[t2 >> 2] = 0; + v2 = t2 + 4 | 0; + k[v2 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + do + if (!s2) + g2 = 18; + else { + if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + k[t2 >> 2] = f2; + g2 = f2 + (s2 << 2) | 0; + k[t2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[v2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 12 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4604 | 0; + h2 = (ia(s2, q2) | 0) + 1 | 0; + i3 = a2 + 4608 | 0; + l2 = a2 + 92 | 0; + m2 = (s2 | 0) > 0; + n2 = a2 + 4600 | 0; + o2 = 0; + b: + while (1) { + c2 = k[w2 >> 2] | 0; + b2 = c2 + 2 | 0; + k[g2 >> 2] = b2; + c2 = c2 + (h2 << 1) | 0; + k[i3 >> 2] = c2; + if (!(o2 & 1)) + b2 = c2; + else { + k[g2 >> 2] = c2; + k[i3 >> 2] = b2; + } + e2 = k[l2 >> 2] | 0; + x = 0; + Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 28; + break; + } + if (m2) { + b2 = k[g2 >> 2] | 0; + c2 = k[i3 >> 2] | 0; + d2 = k[t2 >> 2] | 0; + e2 = 0; + do { + k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; + d2 = k[p2 >> 2] | 0; + j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; + j[c2 + -2 >> 1] = j[b2 >> 1] | 0; + x = 0; + ra(68, a2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 27; + break b; + } + d2 = k[t2 >> 2] | 0; + k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; + b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; + k[g2 >> 2] = b2; + c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; + k[i3 >> 2] = c2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (s2 | 0)); + } + o2 = o2 + 1 | 0; + if ((o2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 40; + break a; + } + } + if ((g2 | 0) == 27) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 28) { + d2 = Wa() | 0; + break; + } + } else + g2 = 40; + while (0); + do + if ((g2 | 0) == 40) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[v2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[w2 >> 2] | 0; + if (!b2) { + r = u2; + return; + } + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = u2; + return; + } + while (0); + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function he(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4604 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 180 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4608 | 0; + r2 = a2 + 4612 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (me(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = le(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function ie(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + e2 = a2 + 104 | 0; + if ((k[e2 >> 2] | 0) >>> 0 < 4) + je(a2); + f2 = a2 + 100 | 0; + g2 = a2 + 112 | 0; + h2 = a2 + 96 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 116 | 0; + b2 = k[f2 >> 2] | 0; + d2 = 0; + do { + c2 = i2[g2 >> 0] | 0; + if ((b2 | 0) > 31) + break; + b2 = k[h2 >> 2] | 0; + if (!(c2 << 24 >> 24)) { + i2[k[j2 >> 2] >> 0] = b2 >>> 24; + k[h2 >> 2] = k[h2 >> 2] << 8; + b2 = (k[f2 >> 2] | 0) + 8 | 0; + } else { + i2[k[j2 >> 2] >> 0] = b2 >>> 25; + k[h2 >> 2] = k[h2 >> 2] << 7; + b2 = (k[f2 >> 2] | 0) + 7 | 0; + } + k[f2 >> 2] = b2; + m2 = k[j2 >> 2] | 0; + c2 = (i2[m2 >> 0] | 0) == -1 & 1; + i2[g2 >> 0] = c2; + k[j2 >> 2] = m2 + 1; + k[e2 >> 2] = (k[e2 >> 2] | 0) + -1; + k[l2 >> 2] = (k[l2 >> 2] | 0) + 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < 4); + if (!(c2 << 24 >> 24)) + ke(a2, 0, (b2 | 0) % 8 | 0); + else + ke(a2, 0, (b2 + -1 | 0) % 8 | 0); + if ((k[e2 >> 2] | 0) >>> 0 < 4) + je(a2); + b2 = k[f2 >> 2] | 0; + c2 = 0; + do { + if ((b2 | 0) > 31) + break; + b2 = k[h2 >> 2] | 0; + if (!(i2[g2 >> 0] | 0)) { + i2[k[j2 >> 2] >> 0] = b2 >>> 24; + k[h2 >> 2] = k[h2 >> 2] << 8; + b2 = (k[f2 >> 2] | 0) + 8 | 0; + } else { + i2[k[j2 >> 2] >> 0] = b2 >>> 25; + k[h2 >> 2] = k[h2 >> 2] << 7; + b2 = (k[f2 >> 2] | 0) + 7 | 0; + } + k[f2 >> 2] = b2; + m2 = k[j2 >> 2] | 0; + i2[g2 >> 0] = (i2[m2 >> 0] | 0) == -1 & 1; + k[j2 >> 2] = m2 + 1; + k[e2 >> 2] = (k[e2 >> 2] | 0) + -1; + k[l2 >> 2] = (k[l2 >> 2] | 0) + 1; + c2 = c2 + 1 | 0; + } while ((c2 | 0) < 4); + if (!(k[a2 + 132 >> 2] | 0)) + return; + je(a2); + return; + } + function je(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0; + b2 = k[a2 + 132 >> 2] | 0; + if (!b2) { + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 4, 35648); + a2 = x; + x = 0; + if (!(a2 & 1)) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + c2 = a2 + 108 | 0; + d2 = a2 + 120 | 0; + f2 = k[d2 >> 2] | 0; + e2 = (k[c2 >> 2] | 0) - f2 | 0; + if ((Qb[k[(k[b2 >> 2] | 0) + 48 >> 2] & 63](b2, f2, e2) | 0) == (e2 | 0)) { + f2 = k[d2 >> 2] | 0; + k[c2 >> 2] = f2; + k[a2 + 104 >> 2] = (k[a2 + 124 >> 2] | 0) - f2; + return; + } + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 4, 35648); + f2 = x; + x = 0; + if (!(f2 & 1)) + ub(b2 | 0, 824, 96); + f2 = Wa() | 0; + Ua(b2 | 0); + fb(f2 | 0); + } + function ke(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + l2 = a2 + 100 | 0; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + k[l2 >> 2] = c2; + if ((c2 | 0) > -1) { + m2 = a2 + 96 | 0; + k[m2 >> 2] = k[m2 >> 2] | b2 << c2; + return; + } + m2 = a2 + 96 | 0; + k[m2 >> 2] = k[m2 >> 2] | b2 >> 0 - c2; + j2 = a2 + 104 | 0; + if ((k[j2 >> 2] | 0) >>> 0 < 4) { + je(a2); + c2 = k[l2 >> 2] | 0; + } + f2 = a2 + 112 | 0; + g2 = a2 + 108 | 0; + h2 = a2 + 116 | 0; + d2 = 0; + while (1) { + if ((c2 | 0) > 31) + break; + c2 = k[m2 >> 2] | 0; + if (!(i2[f2 >> 0] | 0)) { + i2[k[g2 >> 2] >> 0] = c2 >>> 24; + k[m2 >> 2] = k[m2 >> 2] << 8; + c2 = (k[l2 >> 2] | 0) + 8 | 0; + } else { + i2[k[g2 >> 2] >> 0] = c2 >>> 25; + k[m2 >> 2] = k[m2 >> 2] << 7; + c2 = (k[l2 >> 2] | 0) + 7 | 0; + } + k[l2 >> 2] = c2; + n2 = k[g2 >> 2] | 0; + i2[f2 >> 0] = (i2[n2 >> 0] | 0) == -1 & 1; + k[g2 >> 2] = n2 + 1; + k[j2 >> 2] = (k[j2 >> 2] | 0) + -1; + k[h2 >> 2] = (k[h2 >> 2] | 0) + 1; + d2 = d2 + 1 | 0; + if ((d2 | 0) >= 4) { + e2 = 11; + break; + } + } + a: + do + if ((e2 | 0) == 11) { + if ((c2 | 0) < 0) { + k[m2 >> 2] = k[m2 >> 2] | b2 >> 0 - c2; + if ((k[j2 >> 2] | 0) >>> 0 < 4) { + je(a2); + c2 = k[l2 >> 2] | 0; + d2 = 0; + } else + d2 = 0; + do { + if ((c2 | 0) > 31) + break a; + c2 = k[m2 >> 2] | 0; + if (!(i2[f2 >> 0] | 0)) { + i2[k[g2 >> 2] >> 0] = c2 >>> 24; + k[m2 >> 2] = k[m2 >> 2] << 8; + c2 = (k[l2 >> 2] | 0) + 8 | 0; + } else { + i2[k[g2 >> 2] >> 0] = c2 >>> 25; + k[m2 >> 2] = k[m2 >> 2] << 7; + c2 = (k[l2 >> 2] | 0) + 7 | 0; + } + k[l2 >> 2] = c2; + n2 = k[g2 >> 2] | 0; + i2[f2 >> 0] = (i2[n2 >> 0] | 0) == -1 & 1; + k[g2 >> 2] = n2 + 1; + k[j2 >> 2] = (k[j2 >> 2] | 0) + -1; + k[h2 >> 2] = (k[h2 >> 2] | 0) + 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < 4); + } + } + while (0); + k[m2 >> 2] = k[m2 >> 2] | b2 << c2; + return; + } + function le(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + pe(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 65535; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 65535; + return r2 | 0; + } + function me(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; + i3 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + l2 = k[a2 + 4608 >> 2] | 0; + n2 = k[a2 + 4604 >> 2] | 0; + e2 = j[l2 + (b2 + -1 << 1) >> 1] | 0; + h2 = e2 & 65535; + c2 = k[a2 + 144 >> 2] | 0; + f2 = 0; + while (1) { + d2 = l2 + (f2 + b2 << 1) | 0; + g2 = (m[d2 >> 1] | 0) - h2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) > (c2 | 0)) + break; + j[d2 >> 1] = e2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (i3 | 0)) { + f2 = i3; + break; + } + } + e2 = (f2 | 0) == (i3 | 0); + g2 = a2 + 4600 | 0; + d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (f2 | 0)) + c2 = f2; + else { + c2 = f2; + do { + ke(a2, 1, 1); + d2 = k[g2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[g2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + i3 = f2 + b2 | 0; + b2 = l2 + (i3 << 1) | 0; + a2 = ne(a2, m[b2 >> 1] | 0, h2, m[n2 + (i3 << 1) >> 1] | 0) | 0; + j[b2 >> 1] = a2; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = f2 + 1 | 0; + return a2 | 0; + } + if (!c2) { + a2 = i3; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = i3; + return a2 | 0; + } + function ne(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + h2 = c2 - d2 | 0; + i3 = a2 + 136 | 0; + g2 = a2 + 144 | 0; + e2 = k[g2 >> 2] | 0; + if ((((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0) > (e2 | 0)) { + f2 = d2 - c2 >> 31 | 1; + b2 = ia(f2, b2 - d2 | 0) | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + c2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = c2 - ((c2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + oe(a2, a2 + 4576 | 0, e2); + e2 = ia(e2, f2) | 0; + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(e2, g2) | 0) + d2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 65535; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 65535; + return i3 | 0; + } else { + b2 = b2 - c2 | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + f2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = f2 - ((f2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + oe(a2, a2 + 4588 | 0, e2); + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(g2, e2) | 0) + c2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 65535; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 65535; + return i3 | 0; + } + return 0; + } + function oe(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + pe(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function pe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function qe(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + h2 = a2 + 116 | 0; + b2 = k[h2 >> 2] | 0; + j2 = a2 + 120 | 0; + if (b2 >>> 0 < ((k[j2 >> 2] | 0) + -3 | 0) >>> 0) { + j2 = a2 + 112 | 0; + g2 = k[j2 >> 2] | 0; + a2 = a2 + 108 | 0; + k[a2 >> 2] = (l[b2 + 1 >> 0] << 16 | l[b2 >> 0] << 24 | l[b2 + 2 >> 0] << 8 | l[b2 + 3 >> 0]) >>> g2 | k[a2 >> 2]; + a2 = 32 - g2 >> 3; + k[h2 >> 2] = b2 + a2; + k[j2 >> 2] = (a2 << 3) + g2; + return; + } + g2 = a2 + 104 | 0; + c2 = k[g2 >> 2] | 0; + do + if (c2) { + if ((k[c2 + 12 >> 2] | 0) == (k[c2 + 16 >> 2] | 0)) { + if ((Ob[k[(k[c2 >> 2] | 0) + 36 >> 2] & 127](c2) | 0) == -1) + break; + b2 = k[h2 >> 2] | 0; + } + e2 = a2 + 124 | 0; + c2 = k[e2 >> 2] | 0; + f2 = c2 - b2 | 0; + if (f2 >>> 0 <= 64) { + d2 = a2 + 92 | 0; + if ((c2 | 0) == (b2 | 0)) + c2 = b2; + else { + c2 = 0; + do { + i2[(k[d2 >> 2] | 0) + c2 >> 0] = i2[b2 + c2 >> 0] | 0; + c2 = c2 + 1 | 0; + b2 = k[h2 >> 2] | 0; + } while (c2 >>> 0 < f2 >>> 0); + c2 = b2; + b2 = k[e2 >> 2] | 0; + } + n2 = k[d2 >> 2] | 0; + d2 = n2; + m2 = d2 - c2 | 0; + k[h2 >> 2] = n2; + c2 = b2 + m2 | 0; + k[e2 >> 2] = c2; + k[j2 >> 2] = (k[j2 >> 2] | 0) + m2; + g2 = k[g2 >> 2] | 0; + g2 = Qb[k[(k[g2 >> 2] | 0) + 32 >> 2] & 63](g2, c2, (k[a2 + 96 >> 2] | 0) - (d2 + f2) | 0) | 0; + k[e2 >> 2] = (k[e2 >> 2] | 0) + g2; + } + } + while (0); + g2 = a2 + 112 | 0; + f2 = a2 + 108 | 0; + a2 = k[a2 + 124 >> 2] | 0; + e2 = a2 + -1 | 0; + b2 = k[h2 >> 2] | 0; + while (1) { + if (b2 >>> 0 >= a2 >>> 0) { + c2 = 14; + break; + } + d2 = i2[b2 >> 0] | 0; + c2 = d2 & 255; + d2 = d2 << 24 >> 24 == -1; + if (d2) { + if ((b2 | 0) == (e2 | 0)) { + c2 = 25; + break; + } + b2 = b2 + 1 | 0; + if ((i2[b2 >> 0] | 0) < 0) { + c2 = 25; + break; + } + } else + b2 = b2 + 1 | 0; + n2 = k[g2 >> 2] | 0; + k[f2 >> 2] = c2 << 24 - n2 | k[f2 >> 2]; + k[h2 >> 2] = b2; + n2 = n2 + (d2 ? 7 : 8) | 0; + k[g2 >> 2] = n2; + if ((n2 | 0) >= 24) { + c2 = 33; + break; + } + } + if ((c2 | 0) == 14) { + if ((k[g2 >> 2] | 0) >= 1) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 5, 35648); + n2 = x; + x = 0; + if (!(n2 & 1)) + ub(b2 | 0, 824, 96); + n2 = Wa() | 0; + Ua(b2 | 0); + fb(n2 | 0); + } else if ((c2 | 0) == 25) { + if ((k[g2 >> 2] | 0) >= 1) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 5, 35648); + n2 = x; + x = 0; + if (!(n2 & 1)) + ub(b2 | 0, 824, 96); + n2 = Wa() | 0; + Ua(b2 | 0); + fb(n2 | 0); + } else if ((c2 | 0) == 33) { + a: + do + if (b2 >>> 0 < a2 >>> 0) + do { + if ((i2[b2 >> 0] | 0) == -1) + break a; + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < a2 >>> 0); + while (0); + k[j2 >> 2] = b2; + return; + } + } + function re(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function se(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = a2 + 8 | 0; + e2 = k[j2 >> 2] | 0; + l2 = a2 + 4 | 0; + c2 = k[l2 >> 2] | 0; + d2 = c2; + if ((e2 - d2 | 0) >>> 0 >= b2 >>> 0) { + do { + i2[c2 >> 0] = 0; + c2 = (k[l2 >> 2] | 0) + 1 | 0; + k[l2 >> 2] = c2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + return; + } + c2 = k[a2 >> 2] | 0; + f2 = d2 - c2 + b2 | 0; + if ((f2 | 0) < 0) { + jj(a2); + e2 = k[j2 >> 2] | 0; + c2 = k[a2 >> 2] | 0; + } + d2 = e2 - c2 | 0; + if (d2 >>> 0 < 1073741823) { + d2 = d2 << 1; + d2 = d2 >>> 0 < f2 >>> 0 ? f2 : d2; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + if (!d2) { + e2 = 0; + g2 = 0; + f2 = c2; + } else + h2 = 8; + } else { + d2 = 2147483647; + c2 = (k[l2 >> 2] | 0) - c2 | 0; + h2 = 8; + } + if ((h2 | 0) == 8) { + e2 = d2; + g2 = lj(d2) | 0; + f2 = c2; + } + c2 = g2 + f2 | 0; + e2 = g2 + e2 | 0; + d2 = c2; + do { + i2[d2 >> 0] = 0; + d2 = c2 + 1 | 0; + c2 = d2; + b2 = b2 + -1 | 0; + } while ((b2 | 0) != 0); + b2 = k[a2 >> 2] | 0; + d2 = (k[l2 >> 2] | 0) - b2 | 0; + h2 = g2 + (f2 - d2) | 0; + vw(h2 | 0, b2 | 0, d2 | 0) | 0; + k[a2 >> 2] = h2; + k[l2 >> 2] = c2; + k[j2 >> 2] = e2; + if (!b2) + return; + mj(b2); + return; + } + function te(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function ue(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function ve(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36052; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function we(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36052; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function xe(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + He(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function ye(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35828; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + Ae(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + Ae(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function ze(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ae(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 180 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + do + if (b2) { + if (!(b2 >>> 0 > 715827882 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 6 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + d2 = c2 + (b2 * 6 | 0) | 0; + k[v2 + 8 >> 2] = d2; + while (1) { + j[c2 >> 1] = 0; + j[c2 + 2 >> 1] = 0; + j[c2 + 4 >> 1] = 0; + b2 = b2 + -1 | 0; + if (!b2) + break; + else + c2 = c2 + 6 | 0; + } + k[w2 >> 2] = d2; + break; + } + d2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + g2 = 20; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + g2 = 18; + if ((g2 | 0) == 18 ? (e2 = q2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = f2; + g2 = f2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[u2 >> 2] = g2; + g2 = 20; + break; + } + d2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 20) { + e2 = a2 + 12 | 0; + a: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4604 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4608 | 0; + i3 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4600 | 0; + n2 = 0; + b: + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 6 | 0; + k[f2 >> 2] = b2; + c2 = c2 + (g2 * 6 | 0) | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = c2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + } + d2 = k[i3 >> 2] | 0; + x = 0; + Ja(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, b2 | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 30; + break; + } + if (l2) { + b2 = k[s2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; + y2 = k[o2 >> 2] | 0; + b2 = c2 + (y2 * 6 | 0) | 0; + c2 = c2 + ((y2 + -1 | 0) * 6 | 0) | 0; + j[b2 >> 1] = j[c2 >> 1] | 0; + j[b2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[b2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + c2 = (k[h2 >> 2] | 0) + -6 | 0; + b2 = k[f2 >> 2] | 0; + j[c2 >> 1] = j[b2 >> 1] | 0; + j[c2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; + j[c2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; + x = 0; + ra(69, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + g2 = 29; + break b; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; + c2 = (k[f2 >> 2] | 0) + (p2 * 6 | 0) | 0; + k[f2 >> 2] = c2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 6 | 0); + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(182, a2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + function Be(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + B2 = a2 + 180 | 0; + if ((k[B2 >> 2] | 0) <= 0) + return; + C2 = a2 + 4608 | 0; + D2 = a2 + 4604 | 0; + E2 = a2 + 4612 | 0; + A2 = 0; + while (1) { + x2 = A2 + -1 | 0; + f2 = k[C2 >> 2] | 0; + g2 = k[D2 >> 2] | 0; + b2 = A2 + 1 | 0; + e2 = m[g2 + (A2 * 6 | 0) >> 1] | 0; + z2 = k[E2 >> 2] | 0; + h2 = m[g2 + (x2 * 6 | 0) >> 1] | 0; + l2 = e2 - h2 | 0; + n2 = m[f2 + (x2 * 6 | 0) >> 1] | 0; + o2 = h2 - n2 | 0; + p2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) >> 1] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[z2 + l2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + o2 >> 0] | 0) | 0; + d2 = m[g2 + (A2 * 6 | 0) + 2 >> 1] | 0; + q2 = m[g2 + (x2 * 6 | 0) + 2 >> 1] | 0; + r2 = d2 - q2 | 0; + s2 = m[f2 + (x2 * 6 | 0) + 2 >> 1] | 0; + t2 = q2 - s2 | 0; + u2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) + 2 >> 1] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[z2 + r2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + t2 >> 0] | 0) | 0; + c2 = m[g2 + (A2 * 6 | 0) + 4 >> 1] | 0; + v2 = m[g2 + (x2 * 6 | 0) + 4 >> 1] | 0; + w2 = c2 - v2 | 0; + x2 = m[f2 + (x2 * 6 | 0) + 4 >> 1] | 0; + y2 = v2 - x2 | 0; + z2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) + 4 >> 1] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[z2 + w2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + y2 >> 0] | 0) | 0; + if (!(u2 | p2 | z2)) + b2 = (Ce(a2, A2, 0) | 0) + A2 | 0; + else { + g2 = m[f2 + (A2 * 6 | 0) >> 1] | 0; + f2 = e2 - n2 >> 31; + if ((f2 ^ o2 | 0) >= 0) + if ((f2 ^ l2 | 0) < 0) + e2 = n2; + else + e2 = n2 - h2 + e2 | 0; + g2 = De(a2, p2, g2, e2, 0) | 0; + f2 = m[(k[C2 >> 2] | 0) + (A2 * 6 | 0) + 2 >> 1] | 0; + e2 = d2 - s2 >> 31; + if ((e2 ^ t2 | 0) >= 0) + if ((e2 ^ r2 | 0) < 0) + d2 = s2; + else + d2 = s2 - q2 + d2 | 0; + e2 = De(a2, u2, f2, d2, 0) | 0; + f2 = m[(k[C2 >> 2] | 0) + (A2 * 6 | 0) + 4 >> 1] | 0; + d2 = c2 - x2 >> 31; + if ((d2 ^ y2 | 0) >= 0) + if ((d2 ^ w2 | 0) < 0) + c2 = x2; + else + c2 = x2 - v2 + c2 | 0; + y2 = De(a2, z2, f2, c2, 0) | 0; + z2 = k[C2 >> 2] | 0; + j[z2 + (A2 * 6 | 0) >> 1] = g2; + j[z2 + (A2 * 6 | 0) + 2 >> 1] = e2; + j[z2 + (A2 * 6 | 0) + 4 >> 1] = y2; + } + if ((b2 | 0) < (k[B2 >> 2] | 0)) + A2 = b2; + else + break; + } + return; + } + function Ce(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; + B2 = r; + r = r + 48 | 0; + q2 = B2 + 30 | 0; + p2 = B2 + 24 | 0; + o2 = B2 + 18 | 0; + s2 = B2 + 12 | 0; + x2 = B2 + 6 | 0; + y2 = B2; + z2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + A2 = k[a2 + 4608 >> 2] | 0; + t2 = k[a2 + 4604 >> 2] | 0; + w2 = b2 + -1 | 0; + u2 = j[A2 + (w2 * 6 | 0) >> 1] | 0; + v2 = j[A2 + (w2 * 6 | 0) + 2 >> 1] | 0; + w2 = j[A2 + (w2 * 6 | 0) + 4 >> 1] | 0; + c2 = u2 & 65535; + d2 = a2 + 144 | 0; + e2 = v2 & 65535; + f2 = w2 & 65535; + n2 = 0; + while (1) { + i3 = n2 + b2 | 0; + g2 = A2 + (i3 * 6 | 0) | 0; + h2 = A2 + (i3 * 6 | 0) + 2 | 0; + i3 = A2 + (i3 * 6 | 0) + 4 | 0; + C2 = (m[g2 >> 1] | 0) - c2 | 0; + l2 = k[d2 >> 2] | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) + break; + C2 = (m[h2 >> 1] | 0) - e2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) + break; + C2 = (m[i3 >> 1] | 0) - f2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) + break; + j[g2 >> 1] = u2; + j[h2 >> 1] = v2; + j[i3 >> 1] = w2; + n2 = n2 + 1 | 0; + if ((n2 | 0) == (z2 | 0)) { + n2 = z2; + break; + } + } + e2 = (n2 | 0) == (z2 | 0); + f2 = a2 + 4600 | 0; + d2 = k[36476 + (k[f2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[f2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[f2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + b2 = n2 + b2 | 0; + C2 = A2 + (b2 * 6 | 0) | 0; + j[x2 >> 1] = j[C2 >> 1] | 0; + j[x2 + 2 >> 1] = j[C2 + 2 >> 1] | 0; + j[x2 + 4 >> 1] = j[C2 + 4 >> 1] | 0; + j[y2 >> 1] = u2; + j[y2 + 2 >> 1] = v2; + j[y2 + 4 >> 1] = w2; + b2 = t2 + (b2 * 6 | 0) | 0; + j[o2 >> 1] = j[x2 >> 1] | 0; + j[o2 + 2 >> 1] = j[x2 + 2 >> 1] | 0; + j[o2 + 4 >> 1] = j[x2 + 4 >> 1] | 0; + j[p2 >> 1] = j[y2 >> 1] | 0; + j[p2 + 2 >> 1] = j[y2 + 2 >> 1] | 0; + j[p2 + 4 >> 1] = j[y2 + 4 >> 1] | 0; + j[q2 >> 1] = j[b2 >> 1] | 0; + j[q2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; + j[q2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; + Fe(s2, a2, o2, p2, q2); + j[C2 >> 1] = j[s2 >> 1] | 0; + j[C2 + 2 >> 1] = j[s2 + 2 >> 1] | 0; + j[C2 + 4 >> 1] = j[s2 + 4 >> 1] | 0; + C2 = k[f2 >> 2] | 0; + k[f2 >> 2] = (C2 | 0) < 1 ? 0 : C2 + -1 | 0; + C2 = n2 + 1 | 0; + r = B2; + return C2 | 0; + } + if (!c2) { + C2 = z2; + r = B2; + return C2 | 0; + } + ke(a2, 1, 1); + C2 = z2; + r = B2; + return C2 | 0; + } + function De(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + Ee(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 65535; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 65535; + return r2 | 0; + } + function Ee(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function Fe(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + r2 = b2 + 136 | 0; + o2 = m[e2 >> 1] | 0; + p2 = o2 - (m[d2 >> 1] | 0) >> 31 | 1; + f2 = ia(p2, (m[c2 >> 1] | 0) - o2 | 0) | 0; + l2 = b2 + 144 | 0; + g2 = k[l2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + w2 = b2 + 140 | 0; + i3 = k[w2 >> 2] | 0; + h2 = ((f2 | 0) < 0 ? i3 : 0) + f2 | 0; + i3 = h2 - ((h2 | 0) < ((i3 + 1 | 0) / 2 | 0 | 0) ? 0 : i3) | 0; + h2 = b2 + 4576 | 0; + Ge(b2, h2, i3); + t2 = m[e2 + 2 >> 1] | 0; + u2 = t2 - (m[d2 + 2 >> 1] | 0) >> 31 | 1; + f2 = ia(u2, (m[c2 + 2 >> 1] | 0) - t2 | 0) | 0; + g2 = k[l2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + q2 = k[w2 >> 2] | 0; + v2 = ((f2 | 0) < 0 ? q2 : 0) + f2 | 0; + q2 = v2 - ((v2 | 0) < ((q2 + 1 | 0) / 2 | 0 | 0) ? 0 : q2) | 0; + Ge(b2, h2, q2); + v2 = m[e2 + 4 >> 1] | 0; + s2 = v2 - (m[d2 + 4 >> 1] | 0) >> 31 | 1; + f2 = ia(s2, (m[c2 + 4 >> 1] | 0) - v2 | 0) | 0; + g2 = k[l2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + n2 = k[w2 >> 2] | 0; + f2 = ((f2 | 0) < 0 ? n2 : 0) + f2 | 0; + n2 = f2 - ((f2 | 0) < ((n2 + 1 | 0) / 2 | 0 | 0) ? 0 : n2) | 0; + Ge(b2, h2, n2); + h2 = k[l2 >> 2] | 0; + l2 = h2 << 1 | 1; + f2 = (ia(ia(l2, i3) | 0, p2) | 0) + o2 | 0; + c2 = 0 - h2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + g2 = k[r2 >> 2] | 0; + if ((g2 + h2 | 0) < (f2 | 0)) { + f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; + d2 = g2; + } else + d2 = g2; + } else { + f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; + d2 = k[r2 >> 2] | 0; + } + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + e2 = f2 & 65535; + f2 = (ia(ia(l2, q2) | 0, u2) | 0) + t2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + g2 = f2 & 65535; + f2 = (ia(ia(l2, n2) | 0, s2) | 0) + v2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; + if ((f2 & d2 | 0) == (f2 | 0)) { + w2 = f2; + w2 = w2 & 65535; + j[a2 >> 1] = e2; + v2 = a2 + 2 | 0; + j[v2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = w2; + return; + } + w2 = d2 & ~(f2 >> 31); + w2 = w2 & 65535; + j[a2 >> 1] = e2; + v2 = a2 + 2 | 0; + j[v2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = w2; + return; + } + function Ge(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Ee(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function He(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Ie(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36024; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Je(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36024; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Ke(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + zf(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function Le(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35800; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + sf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + sf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Me(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ne(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36712; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Oe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36688; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Pe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36664; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Qe(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + k[a2 >> 2] = 36640; + k[a2 + 4 >> 2] = c2; + m2 = a2 + 8 | 0; + d2 = k[c2 >> 2] | 0; + j2 = c2 + 16 | 0; + g2 = k[j2 >> 2] | 0; + f2 = ia(g2, d2) | 0; + k[m2 >> 2] = 0; + n2 = a2 + 12 | 0; + k[n2 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + do + if (!f2) + f2 = g2; + else { + if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) + l2 = 4; + if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[n2 >> 2] = h2; + k[m2 >> 2] = h2; + k[a2 + 16 >> 2] = h2 + f2; + d2 = h2; + do { + i2[d2 >> 0] = 0; + d2 = (k[n2 >> 2] | 0) + 1 | 0; + k[n2 >> 2] = d2; + f2 = f2 + -1 | 0; + } while ((f2 | 0) != 0); + f2 = k[j2 >> 2] | 0; + d2 = k[c2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + e2 = k[m2 >> 2] | 0; + if (e2) { + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + } + n2 = d2; + fb(n2 | 0); + } + while (0); + g2 = a2 + 20 | 0; + d2 = ia(f2, d2) | 0; + k[g2 >> 2] = 0; + f2 = a2 + 24 | 0; + k[f2 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + if (!d2) { + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) + l2 = 15; + if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + k[f2 >> 2] = e2; + k[g2 >> 2] = e2; + k[a2 + 28 >> 2] = e2 + d2; + do { + i2[e2 >> 0] = 0; + e2 = (k[f2 >> 2] | 0) + 1 | 0; + k[f2 >> 2] = e2; + d2 = d2 + -1 | 0; + } while ((d2 | 0) != 0); + n2 = a2 + 36 | 0; + k[n2 >> 2] = k[b2 >> 2]; + k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; + return; + } + d2 = Wa() | 0; + e2 = k[g2 >> 2] | 0; + if (e2) { + if ((k[f2 >> 2] | 0) != (e2 | 0)) + k[f2 >> 2] = e2; + mj(e2); + } + e2 = k[m2 >> 2] | 0; + if (!e2) { + n2 = d2; + fb(n2 | 0); + } + if ((k[n2 >> 2] | 0) != (e2 | 0)) + k[n2 >> 2] = e2; + mj(e2); + n2 = d2; + fb(n2 | 0); + } + function Re(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36640; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function Se(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36640; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function Te(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + Xe(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + Xe(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function Ue(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + Ve(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + We(a2, e2, b2, c2, d2); + return; + } + } + function Ve(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + m2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = m2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + g2 = l[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + e2 = 128 - g2 + (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) | 0; + j2 = (l[h2 + (f2 * 3 | 0) >> 0] | 0) - g2 + 128 | 0; + m2 = c2 + (f2 * 3 | 0) | 0; + i2[m2 >> 0] = g2 + 192 + (((e2 & 255) + (j2 & 255) | 0) >>> 2); + i2[m2 + 1 >> 0] = e2; + i2[m2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + d2 = l[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + j2 = 128 - d2 + (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) | 0; + m2 = (l[h2 + (b2 * 3 | 0) >> 0] | 0) - d2 + 128 | 0; + i2[c2 + b2 >> 0] = d2 + 192 + (((j2 & 255) + (m2 & 255) | 0) >>> 2); + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + n2 = l[h2 + (g2 << 2) + 1 >> 0] | 0; + d2 = 128 - n2 + (l[h2 + (g2 << 2) + 2 >> 0] | 0) | 0; + j2 = (l[h2 + (g2 << 2) >> 0] | 0) - n2 + 128 | 0; + i2[c2 + g2 >> 0] = n2 + 192 + (((d2 & 255) + (j2 & 255) | 0) >>> 2); + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function We(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + Ve(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + Ve(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function Xe(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = l[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + f2 = l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0; + h2 = (l[b2 + (a2 * 3 | 0) >> 0] | 0) - ((f2 + g2 | 0) >>> 2) + 64 | 0; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = f2 + 128 + h2; + i2[e2 + 1 >> 0] = h2; + i2[e2 + 2 >> 0] = g2 + 128 + h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = l[b2 + (g2 + e2) >> 0] | 0; + o2 = l[b2 + (g2 + f2) >> 0] | 0; + m2 = (l[b2 + g2 >> 0] | 0) - ((o2 + n2 | 0) >>> 2) + 64 | 0; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = o2 + 128 + m2; + i2[h2 + 1 >> 0] = m2; + i2[h2 + 2 >> 0] = n2 + 128 + m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + m2 = l[b2 + (g2 + e2) >> 0] | 0; + p2 = l[b2 + (g2 + a2) >> 0] | 0; + n2 = (l[b2 + g2 >> 0] | 0) - ((p2 + m2 | 0) >>> 2) + 64 | 0; + o2 = c2 + (g2 << 2) | 0; + n2 = n2 << 8 & 65280 | l[b2 + (g2 + f2) >> 0] << 24 | p2 + 128 + n2 & 255 | m2 + 128 + n2 << 16 & 16711680; + i2[o2 >> 0] = n2; + i2[o2 + 1 >> 0] = n2 >> 8; + i2[o2 + 2 >> 0] = n2 >> 16; + i2[o2 + 3 >> 0] = n2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + p2 = a2 + 2 | 0; + o2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[p2 >> 0] | 0; + i2[p2 >> 0] = o2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function Ye(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36664; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function Ze(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36664; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function _e(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + cf(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + cf(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function $e(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + af(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + bf(a2, e2, b2, c2, d2); + return; + } + } + function af(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + m2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = m2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + b2 = l[h2 + (f2 * 3 | 0) >> 0] | 0; + e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + g2 = e2 & 255; + j2 = (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) + 128 - ((g2 + b2 | 0) >>> 1) & 255; + m2 = c2 + (f2 * 3 | 0) | 0; + i2[m2 >> 0] = b2 + 128 - g2; + i2[m2 + 1 >> 0] = e2; + i2[m2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + g2 = l[h2 + (b2 * 3 | 0) >> 0] | 0; + d2 = j2 & 255; + m2 = (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) + 128 - ((d2 + g2 | 0) >>> 1) & 255; + i2[c2 + b2 >> 0] = g2 + 128 - d2; + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; + m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + o2 = l[h2 + (g2 << 2) >> 0] | 0; + n2 = d2 & 255; + j2 = (l[h2 + (g2 << 2) + 2 >> 0] | 0) + 128 - ((n2 + o2 | 0) >>> 1) & 255; + i2[c2 + g2 >> 0] = o2 + 128 - n2; + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function bf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + af(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + af(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function cf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + h2 = g2 & 255; + f2 = (l[b2 + (a2 * 3 | 0) >> 0] | 0) + 128 + h2 | 0; + h2 = (l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0) + 128 + (((f2 & 255) + h2 | 0) >>> 1) & 255; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = f2; + i2[e2 + 1 >> 0] = g2; + i2[e2 + 2 >> 0] = h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = i2[b2 + (g2 + e2) >> 0] | 0; + m2 = n2 & 255; + o2 = (l[b2 + g2 >> 0] | 0) + 128 + m2 | 0; + m2 = (l[b2 + (g2 + f2) >> 0] | 0) + 128 + (((o2 & 255) + m2 | 0) >>> 1) & 255; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = o2; + i2[h2 + 1 >> 0] = n2; + i2[h2 + 2 >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = l[b2 + (g2 + e2) >> 0] | 0; + m2 = (l[b2 + g2 >> 0] | 0) + 128 + n2 & 255; + o2 = c2 + (g2 << 2) | 0; + n2 = m2 | n2 << 8 | l[b2 + (g2 + f2) >> 0] << 24 | (l[b2 + (g2 + a2) >> 0] | 0) + 128 + ((m2 + n2 | 0) >>> 1) << 16 & 16711680; + i2[o2 >> 0] = n2; + i2[o2 + 1 >> 0] = n2 >> 8; + i2[o2 + 2 >> 0] = n2 >> 16; + i2[o2 + 3 >> 0] = n2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + o2 = a2 + 2 | 0; + n2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[o2 >> 0] | 0; + i2[o2 >> 0] = n2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function df(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36688; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function ef(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36688; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function ff(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + kf(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + kf(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function gf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + hf(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + jf(a2, e2, b2, c2, d2); + return; + } + } + function hf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + m2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = m2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + g2 = e2 & 255; + j2 = 128 - g2 + (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) & 255; + m2 = c2 + (f2 * 3 | 0) | 0; + i2[m2 >> 0] = (l[h2 + (f2 * 3 | 0) >> 0] | 0) + 128 - g2; + i2[m2 + 1 >> 0] = e2; + i2[m2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + d2 = j2 & 255; + m2 = 128 - d2 + (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) & 255; + i2[c2 + b2 >> 0] = (l[h2 + (b2 * 3 | 0) >> 0] | 0) + 128 - d2; + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = m2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; + m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + n2 = d2 & 255; + j2 = 128 - n2 + (l[h2 + (g2 << 2) + 2 >> 0] | 0) & 255; + i2[c2 + g2 >> 0] = (l[h2 + (g2 << 2) >> 0] | 0) + 128 - n2; + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function jf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + hf(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + hf(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function kf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + f2 = g2 & 255; + h2 = f2 + 128 + (l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0) & 255; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = (l[b2 + (a2 * 3 | 0) >> 0] | 0) + 128 + f2; + i2[e2 + 1 >> 0] = g2; + i2[e2 + 2 >> 0] = h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = i2[b2 + (g2 + e2) >> 0] | 0; + o2 = n2 & 255; + m2 = o2 + 128 + (l[b2 + (g2 + f2) >> 0] | 0) & 255; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = (l[b2 + g2 >> 0] | 0) + 128 + o2; + i2[h2 + 1 >> 0] = n2; + i2[h2 + 2 >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = l[b2 + (g2 + e2) >> 0] | 0; + o2 = c2 + (g2 << 2) | 0; + n2 = (l[b2 + g2 >> 0] | 0) + 128 + n2 & 255 | n2 << 8 | l[b2 + (g2 + f2) >> 0] << 24 | n2 + 128 + (l[b2 + (g2 + a2) >> 0] | 0) << 16 & 16711680; + i2[o2 >> 0] = n2; + i2[o2 + 1 >> 0] = n2 >> 8; + i2[o2 + 2 >> 0] = n2 >> 16; + i2[o2 + 3 >> 0] = n2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + o2 = a2 + 2 | 0; + n2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[o2 >> 0] | 0; + i2[o2 >> 0] = n2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function lf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36712; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = k[a2 + 8 >> 2] | 0; + if (!c2) + return; + b2 = a2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (c2 | 0)) + k[b2 >> 2] = c2; + mj(c2); + return; + } + function mf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36712; + b2 = k[a2 + 20 >> 2] | 0; + if (b2) { + c2 = a2 + 24 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function nf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = a2 + 36 | 0; + if (!(k[e2 >> 2] | 0)) { + e2 = a2 + 40 | 0; + rf(a2, b2, k[e2 >> 2] | 0, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } + f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; + g2 = a2 + 20 | 0; + rf(a2, b2, k[g2 >> 2] | 0, c2, d2); + a2 = k[e2 >> 2] | 0; + if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) + return; + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 3, 35648); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Ua(e2 | 0); + fb(g2 | 0); + } else + ub(e2 | 0, 824, 96); + } + function of(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + e2 = k[a2 + 36 >> 2] | 0; + if (!e2) { + e2 = a2 + 40 | 0; + pf(a2, k[e2 >> 2] | 0, b2, c2, d2); + k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); + return; + } else { + qf(a2, e2, b2, c2, d2); + return; + } + } + function pf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + h2 = a2 + 4 | 0; + f2 = k[h2 >> 2] | 0; + if (!(i2[f2 + 32 >> 0] | 0)) + h2 = b2; + else { + g2 = a2 + 8 | 0; + vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; + f2 = k[h2 >> 2] | 0; + b2 = k[f2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + f2 = k[g2 >> 2] | 0; + a2 = 0; + while (1) { + j2 = f2 + 2 | 0; + l2 = i2[f2 >> 0] | 0; + i2[f2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = l2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break; + else + f2 = f2 + b2 | 0; + } + f2 = k[h2 >> 2] | 0; + } + h2 = k[g2 >> 2] | 0; + } + switch (k[f2 + 16 >> 2] | 0) { + case 3: { + if ((k[f2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + f2 = 0; + else + return; + do { + e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; + j2 = i2[h2 + (f2 * 3 | 0) + 2 >> 0] | 0; + l2 = c2 + (f2 * 3 | 0) | 0; + i2[l2 >> 0] = i2[h2 + (f2 * 3 | 0) >> 0] | 0; + i2[l2 + 1 >> 0] = e2; + i2[l2 + 2 >> 0] = j2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + return; + } + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = 0; + do { + j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; + l2 = i2[h2 + (b2 * 3 | 0) + 2 >> 0] | 0; + i2[c2 + b2 >> 0] = i2[h2 + (b2 * 3 | 0) >> 0] | 0; + i2[c2 + (b2 + e2) >> 0] = j2; + i2[c2 + (b2 + a2) >> 0] = l2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (f2 | 0)); + return; + } + case 4: { + if ((k[f2 + 24 >> 2] | 0) != 1) + return; + f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; + if ((f2 | 0) <= 0) + return; + a2 = e2 << 1; + b2 = e2 * 3 | 0; + g2 = 0; + do { + d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; + j2 = i2[h2 + (g2 << 2) + 2 >> 0] | 0; + l2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; + i2[c2 + g2 >> 0] = i2[h2 + (g2 << 2) >> 0] | 0; + i2[c2 + (g2 + e2) >> 0] = d2; + i2[c2 + (g2 + a2) >> 0] = j2; + i2[c2 + (g2 + b2) >> 0] = l2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (f2 | 0)); + return; + } + default: + return; + } + } + function qf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 176 | 0; + n2 = m2 + 152 | 0; + p2 = m2 + 16 | 0; + o2 = m2; + g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; + j2 = a2 + 20 | 0; + f2 = k[j2 >> 2] | 0; + if (!g2) { + p2 = f2; + pf(a2, p2, c2, d2, e2); + r = m2; + return; + } + while (1) { + h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; + if (!h2) + break; + f2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (h2 | 0)) { + l2 = 26; + break; + } else + g2 = g2 - h2 | 0; + } + if ((l2 | 0) == 26) { + pf(a2, f2, c2, d2, e2); + r = m2; + return; + } + c2 = p2 + 56 | 0; + j2 = p2 + 4 | 0; + k[p2 >> 2] = 36160; + k[c2 >> 2] = 36180; + x = 0; + ra(62, p2 + 56 | 0, j2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + p2 = Wa() | 0; + qn(c2); + fb(p2 | 0); + } + k[p2 + 128 >> 2] = 0; + k[p2 + 132 >> 2] = -1; + k[p2 >> 2] = 36200; + k[p2 + 56 >> 2] = 36220; + x = 0; + qa(180, j2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + f2 = Wa() | 0; + else { + k[j2 >> 2] = 36236; + b2 = p2 + 36 | 0; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + k[b2 + 12 >> 2] = 0; + k[p2 + 52 >> 2] = 16; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + x = 0; + ra(63, j2 | 0, n2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + f2 = Wa() | 0; + Sm(n2); + Sm(b2); + xn(j2); + break; + } + Sm(n2); + x = 0; + f2 = va(28, p2 | 0, 49029, 57) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + h2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, h2 | 0, 3, 35648, o2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + g2 = 1; + else { + x = 0; + Fa(6, h2 | 0, 824, 96); + x = 0; + g2 = 0; + } + f2 = Wa() | 0; + Sm(o2); + if (!g2) { + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + } else + f2 = Wa() | 0; + Ua(h2 | 0); + o2 = f2; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + o2 = Wa() | 0; + k[p2 >> 2] = 36200; + k[c2 >> 2] = 36220; + k[j2 >> 2] = 36236; + Sm(b2); + xn(j2); + qn(c2); + fb(o2 | 0); + } + while (0); + p2 = f2; + qn(c2); + fb(p2 | 0); + } + function rf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + j2 = a2 + 4 | 0; + a2 = k[j2 >> 2] | 0; + a: + do + switch (k[a2 + 16 >> 2] | 0) { + case 3: { + if ((k[a2 + 24 >> 2] | 0) == 2) { + if ((d2 | 0) > 0) + a2 = 0; + else + break a; + while (1) { + g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; + h2 = i2[b2 + (a2 * 3 | 0) + 2 >> 0] | 0; + e2 = c2 + (a2 * 3 | 0) | 0; + i2[e2 >> 0] = i2[b2 + (a2 * 3 | 0) >> 0] | 0; + i2[e2 + 1 >> 0] = g2; + i2[e2 + 2 >> 0] = h2; + a2 = a2 + 1 | 0; + if ((a2 | 0) == (d2 | 0)) + break a; + } + } + a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; + if ((a2 | 0) > 0) { + f2 = e2 << 1; + g2 = 0; + do { + n2 = i2[b2 + (g2 + e2) >> 0] | 0; + m2 = i2[b2 + (g2 + f2) >> 0] | 0; + h2 = c2 + (g2 * 3 | 0) | 0; + i2[h2 >> 0] = i2[b2 + g2 >> 0] | 0; + i2[h2 + 1 >> 0] = n2; + i2[h2 + 2 >> 0] = m2; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (a2 | 0)); + } + break; + } + case 4: { + if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { + a2 = e2 << 1; + f2 = e2 * 3 | 0; + g2 = 0; + do { + n2 = c2 + (g2 << 2) | 0; + m2 = l[b2 + (g2 + e2) >> 0] << 8 | l[b2 + g2 >> 0] | l[b2 + (g2 + a2) >> 0] << 16 | l[b2 + (g2 + f2) >> 0] << 24; + i2[n2 >> 0] = m2; + i2[n2 + 1 >> 0] = m2 >> 8; + i2[n2 + 2 >> 0] = m2 >> 16; + i2[n2 + 3 >> 0] = m2 >> 24; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != (h2 | 0)); + } + break; + } + default: { + } + } + while (0); + a2 = k[j2 >> 2] | 0; + if (!(i2[a2 + 32 >> 0] | 0)) + return; + g2 = k[a2 + 16 >> 2] | 0; + if ((d2 | 0) > 0) { + a2 = c2; + f2 = 0; + } else + return; + while (1) { + n2 = a2 + 2 | 0; + m2 = i2[a2 >> 0] | 0; + i2[a2 >> 0] = i2[n2 >> 0] | 0; + i2[n2 >> 0] = m2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) + break; + else + a2 = a2 + g2 | 0; + } + return; + } + function sf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 180 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 3 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + f2 = 19; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = e2; + f2 = e2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + e2 = a2 + 12 | 0; + b: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4604 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4608 | 0; + j2 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4600 | 0; + n2 = 0; + c: + while (1) { + d2 = k[v2 >> 2] | 0; + b2 = d2 + 3 | 0; + k[f2 >> 2] = b2; + c2 = d2 + (g2 * 3 | 0) | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = g2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + b2 = 1; + } + c2 = k[j2 >> 2] | 0; + x = 0; + Ja(k[(k[c2 >> 2] | 0) + 12 >> 2] | 0, c2 | 0, d2 + (b2 * 3 | 0) | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + f2 = 29; + break; + } + if (l2) { + b2 = k[s2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; + y2 = k[o2 >> 2] | 0; + b2 = c2 + (y2 * 3 | 0) | 0; + c2 = c2 + ((y2 + -1 | 0) * 3 | 0) | 0; + i2[b2 >> 0] = i2[c2 >> 0] | 0; + i2[b2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[b2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + b2 = k[f2 >> 2] | 0; + c2 = (k[h2 >> 2] | 0) + -3 | 0; + i2[c2 >> 0] = i2[b2 >> 0] | 0; + i2[c2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[c2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + x = 0; + ra(70, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = 28; + break c; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; + c2 = (k[f2 >> 2] | 0) + (p2 * 3 | 0) | 0; + k[f2 >> 2] = c2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 3 | 0); + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + f2 = 41; + break b; + } + } + if ((f2 | 0) == 28) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 29) { + d2 = Wa() | 0; + break; + } + } else + f2 = 41; + while (0); + do + if ((f2 | 0) == 41) { + x = 0; + qa(182, a2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function tf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = a2 + 180 | 0; + if ((k[A2 >> 2] | 0) <= 0) + return; + B2 = a2 + 4608 | 0; + C2 = a2 + 4604 | 0; + D2 = a2 + 4612 | 0; + z2 = 0; + while (1) { + w2 = z2 + -1 | 0; + f2 = k[B2 >> 2] | 0; + g2 = k[C2 >> 2] | 0; + b2 = z2 + 1 | 0; + e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; + y2 = k[D2 >> 2] | 0; + h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; + j2 = e2 - h2 | 0; + m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; + n2 = h2 - m2 | 0; + o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; + d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; + q2 = d2 - p2 | 0; + r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; + s2 = p2 - r2 | 0; + t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; + c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; + u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; + v2 = c2 - u2 | 0; + w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; + x2 = u2 - w2 | 0; + y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; + if (!(t2 | o2 | y2)) + b2 = (uf(a2, z2, 0) | 0) + z2 | 0; + else { + g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; + f2 = e2 - m2 >> 31; + if ((f2 ^ n2 | 0) >= 0) + if ((f2 ^ j2 | 0) < 0) + e2 = m2; + else + e2 = m2 - h2 + e2 | 0; + g2 = vf(a2, o2, g2, e2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; + e2 = d2 - r2 >> 31; + if ((e2 ^ s2 | 0) >= 0) + if ((e2 ^ q2 | 0) < 0) + d2 = r2; + else + d2 = r2 - p2 + d2 | 0; + e2 = vf(a2, t2, f2, d2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; + d2 = c2 - w2 >> 31; + if ((d2 ^ x2 | 0) >= 0) + if ((d2 ^ v2 | 0) < 0) + c2 = w2; + else + c2 = w2 - u2 + c2 | 0; + y2 = vf(a2, y2, f2, c2, 0) | 0; + z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; + i2[z2 >> 0] = g2; + i2[z2 + 1 >> 0] = e2; + i2[z2 + 2 >> 0] = y2; + } + if ((b2 | 0) < (k[A2 >> 2] | 0)) + z2 = b2; + else + break; + } + return; + } + function uf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; + B2 = r; + r = r + 32 | 0; + A2 = B2 + 15 | 0; + p2 = B2 + 12 | 0; + o2 = B2 + 9 | 0; + q2 = B2 + 6 | 0; + w2 = B2 + 3 | 0; + x2 = B2; + y2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + z2 = k[a2 + 4608 >> 2] | 0; + s2 = k[a2 + 4604 >> 2] | 0; + v2 = z2 + ((b2 + -1 | 0) * 3 | 0) | 0; + t2 = i2[v2 >> 0] | 0; + u2 = i2[v2 + 1 >> 0] | 0; + v2 = i2[v2 + 2 >> 0] | 0; + c2 = t2 & 255; + d2 = a2 + 144 | 0; + e2 = u2 & 255; + f2 = v2 & 255; + n2 = 0; + while (1) { + g2 = z2 + ((n2 + b2 | 0) * 3 | 0) | 0; + h2 = g2 + 1 | 0; + j2 = g2 + 2 | 0; + C2 = (l[g2 >> 0] | 0) - c2 | 0; + m2 = k[d2 >> 2] | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) + break; + C2 = (l[h2 >> 0] | 0) - e2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) + break; + C2 = (l[j2 >> 0] | 0) - f2 | 0; + if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) + break; + i2[g2 >> 0] = t2; + i2[h2 >> 0] = u2; + i2[j2 >> 0] = v2; + n2 = n2 + 1 | 0; + if ((n2 | 0) == (y2 | 0)) { + n2 = y2; + break; + } + } + e2 = (n2 | 0) == (y2 | 0); + f2 = a2 + 4600 | 0; + d2 = k[36476 + (k[f2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[f2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[f2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + b2 = n2 + b2 | 0; + C2 = z2 + (b2 * 3 | 0) | 0; + i2[w2 >> 0] = i2[C2 >> 0] | 0; + i2[w2 + 1 >> 0] = i2[C2 + 1 >> 0] | 0; + i2[w2 + 2 >> 0] = i2[C2 + 2 >> 0] | 0; + i2[x2 >> 0] = t2; + i2[x2 + 1 >> 0] = u2; + i2[x2 + 2 >> 0] = v2; + b2 = s2 + (b2 * 3 | 0) | 0; + i2[o2 >> 0] = i2[w2 >> 0] | 0; + i2[o2 + 1 >> 0] = i2[w2 + 1 >> 0] | 0; + i2[o2 + 2 >> 0] = i2[w2 + 2 >> 0] | 0; + i2[p2 >> 0] = i2[x2 >> 0] | 0; + i2[p2 + 1 >> 0] = i2[x2 + 1 >> 0] | 0; + i2[p2 + 2 >> 0] = i2[x2 + 2 >> 0] | 0; + i2[A2 >> 0] = i2[b2 >> 0] | 0; + i2[A2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[A2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + xf(q2, a2, o2, p2, A2); + i2[C2 >> 0] = i2[q2 >> 0] | 0; + i2[C2 + 1 >> 0] = i2[q2 + 1 >> 0] | 0; + i2[C2 + 2 >> 0] = i2[q2 + 2 >> 0] | 0; + C2 = k[f2 >> 2] | 0; + k[f2 >> 2] = (C2 | 0) < 1 ? 0 : C2 + -1 | 0; + C2 = n2 + 1 | 0; + r = B2; + return C2 | 0; + } + if (!c2) { + C2 = y2; + r = B2; + return C2 | 0; + } + ke(a2, 1, 1); + C2 = y2; + r = B2; + return C2 | 0; + } + function vf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + wf(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 255; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 255; + return r2 | 0; + } + function wf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function xf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + r2 = b2 + 136 | 0; + o2 = l[e2 >> 0] | 0; + p2 = o2 - (l[d2 >> 0] | 0) >> 31 | 1; + f2 = ia(p2, (l[c2 >> 0] | 0) - o2 | 0) | 0; + m2 = b2 + 144 | 0; + g2 = k[m2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + w2 = b2 + 140 | 0; + j2 = k[w2 >> 2] | 0; + h2 = ((f2 | 0) < 0 ? j2 : 0) + f2 | 0; + j2 = h2 - ((h2 | 0) < ((j2 + 1 | 0) / 2 | 0 | 0) ? 0 : j2) | 0; + h2 = b2 + 4576 | 0; + yf(b2, h2, j2); + t2 = l[e2 + 1 >> 0] | 0; + u2 = t2 - (l[d2 + 1 >> 0] | 0) >> 31 | 1; + f2 = ia(u2, (l[c2 + 1 >> 0] | 0) - t2 | 0) | 0; + g2 = k[m2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + q2 = k[w2 >> 2] | 0; + v2 = ((f2 | 0) < 0 ? q2 : 0) + f2 | 0; + q2 = v2 - ((v2 | 0) < ((q2 + 1 | 0) / 2 | 0 | 0) ? 0 : q2) | 0; + yf(b2, h2, q2); + v2 = l[e2 + 2 >> 0] | 0; + s2 = v2 - (l[d2 + 2 >> 0] | 0) >> 31 | 1; + f2 = ia(s2, (l[c2 + 2 >> 0] | 0) - v2 | 0) | 0; + g2 = k[m2 >> 2] | 0; + if ((f2 | 0) > 0) + f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; + else + f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; + n2 = k[w2 >> 2] | 0; + f2 = ((f2 | 0) < 0 ? n2 : 0) + f2 | 0; + n2 = f2 - ((f2 | 0) < ((n2 + 1 | 0) / 2 | 0 | 0) ? 0 : n2) | 0; + yf(b2, h2, n2); + h2 = k[m2 >> 2] | 0; + m2 = h2 << 1 | 1; + f2 = (ia(ia(m2, j2) | 0, p2) | 0) + o2 | 0; + c2 = 0 - h2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + g2 = k[r2 >> 2] | 0; + if ((g2 + h2 | 0) < (f2 | 0)) { + f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; + d2 = g2; + } else + d2 = g2; + } else { + f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; + d2 = k[r2 >> 2] | 0; + } + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + e2 = f2 & 255; + f2 = (ia(ia(m2, q2) | 0, u2) | 0) + t2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; + if ((f2 & d2 | 0) != (f2 | 0)) + f2 = d2 & ~(f2 >> 31); + g2 = f2 & 255; + f2 = (ia(ia(m2, n2) | 0, s2) | 0) + v2 | 0; + if ((f2 | 0) >= (c2 | 0)) { + if ((d2 + h2 | 0) < (f2 | 0)) + f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; + } else + f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; + if ((f2 & d2 | 0) == (f2 | 0)) { + w2 = f2; + w2 = w2 & 255; + i2[a2 >> 0] = e2; + v2 = a2 + 1 | 0; + i2[v2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = w2; + return; + } + w2 = d2 & ~(f2 >> 31); + w2 = w2 & 255; + i2[a2 >> 0] = e2; + v2 = a2 + 1 | 0; + i2[v2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = w2; + return; + } + function yf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + wf(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function zf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Af(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35996; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Bf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35996; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Cf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 65535, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + Lf(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 1024; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 1024; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 1024; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function Df(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35772; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + Ff(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + Ff(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Ef(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Ff(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + u2 = r; + r = r + 32 | 0; + w2 = u2 + 12 | 0; + t2 = u2; + p2 = a2 + 156 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + s2 = k[a2 + 24 >> 2] | 0; + else + s2 = 1; + b2 = ia(s2 << 1, q2) | 0; + k[w2 >> 2] = 0; + y2 = w2 + 4 | 0; + k[y2 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[w2 >> 2] = d2; + v2 = d2 + (b2 << 1) | 0; + k[w2 + 8 >> 2] = v2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[y2 >> 2] = v2; + break; + } + d2 = Wa() | 0; + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[t2 >> 2] = 0; + v2 = t2 + 4 | 0; + k[v2 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + do + if (!s2) + g2 = 18; + else { + if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + k[t2 >> 2] = f2; + g2 = f2 + (s2 << 2) | 0; + k[t2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[v2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 12 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4580 | 0; + h2 = (ia(s2, q2) | 0) + 1 | 0; + i3 = a2 + 4584 | 0; + l2 = a2 + 92 | 0; + m2 = (s2 | 0) > 0; + n2 = a2 + 4576 | 0; + o2 = 0; + b: + while (1) { + c2 = k[w2 >> 2] | 0; + b2 = c2 + 2 | 0; + k[g2 >> 2] = b2; + c2 = c2 + (h2 << 1) | 0; + k[i3 >> 2] = c2; + if (!(o2 & 1)) + b2 = c2; + else { + k[g2 >> 2] = c2; + k[i3 >> 2] = b2; + } + e2 = k[l2 >> 2] | 0; + x = 0; + Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 28; + break; + } + if (m2) { + b2 = k[g2 >> 2] | 0; + c2 = k[i3 >> 2] | 0; + d2 = k[t2 >> 2] | 0; + e2 = 0; + do { + k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; + d2 = k[p2 >> 2] | 0; + j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; + j[c2 + -2 >> 1] = j[b2 >> 1] | 0; + x = 0; + ra(71, a2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 27; + break b; + } + d2 = k[t2 >> 2] | 0; + k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; + b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; + k[g2 >> 2] = b2; + c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; + k[i3 >> 2] = c2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (s2 | 0)); + } + o2 = o2 + 1 | 0; + if ((o2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 40; + break a; + } + } + if ((g2 | 0) == 27) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 28) { + d2 = Wa() | 0; + break; + } + } else + g2 = 40; + while (0); + do + if ((g2 | 0) == 40) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[v2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[w2 >> 2] | 0; + if (!b2) { + r = u2; + return; + } + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = u2; + return; + } + while (0); + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Gf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4580 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 156 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4584 | 0; + r2 = a2 + 4588 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (If(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Hf(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Hf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 65535 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 65535 ^ 65535; + h2 = (c2 - m2 ^ q2) - q2 << 16; + l2 = h2 >> 16; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ l2; + d2 = d2 >> 30 ^ d2 << 1; + e2 = d2 >> f2; + if ((e2 | 0) < 47) { + if ((e2 | 0) > 30) { + g2 = (e2 | 0) / 2 | 0; + ke(a2, 0, g2); + e2 = e2 - g2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, d2 & (1 << f2) + -1, f2); + } else { + ke(a2, 0, 31); + ke(a2, 1, 17); + ke(a2, d2 + 65535 & 65535, 16); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -65536 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + function If(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; + g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + h2 = k[a2 + 4584 >> 2] | 0; + l2 = k[a2 + 4580 >> 2] | 0; + e2 = j[h2 + (b2 + -1 << 1) >> 1] | 0; + d2 = 0; + while (1) { + c2 = h2 + (d2 + b2 << 1) | 0; + if ((j[c2 >> 1] | 0) != e2 << 16 >> 16) { + n2 = d2; + break; + } + j[c2 >> 1] = e2; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (g2 | 0)) { + n2 = g2; + break; + } + } + f2 = e2 & 65535; + e2 = (n2 | 0) == (g2 | 0); + i3 = a2 + 4576 | 0; + d2 = k[36476 + (k[i3 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[i3 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[i3 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (e2) { + if (!c2) { + a2 = g2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = g2; + return a2 | 0; + } + ke(a2, c2, d2 + 1 | 0); + c2 = n2 + b2 | 0; + e2 = h2 + (c2 << 1) | 0; + d2 = m[e2 >> 1] | 0; + c2 = m[l2 + (c2 << 1) >> 1] | 0; + l2 = f2 - c2 | 0; + if ((((l2 | 0) > -1 ? l2 : 0 - l2 | 0) | 0) < 1) { + c2 = d2 - f2 << 16 >> 16; + Jf(a2, a2 + 4564 | 0, c2); + c2 = c2 + f2 | 0; + } else { + l2 = c2 - f2 >> 31 | 1; + b2 = (ia(d2 - c2 << 16, l2) | 0) >> 16; + Jf(a2, a2 + 4552 | 0, b2); + c2 = (ia(b2, l2) | 0) + c2 | 0; + } + j[e2 >> 1] = c2; + a2 = k[i3 >> 2] | 0; + k[i3 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = n2 + 1 | 0; + return a2 | 0; + } + function Jf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Kf(a2, e2, d2, 63 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function Kf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -16 | 0; + if ((e2 | 0) < (d2 + -17 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -47 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 65535 & 65535, 16); + return; + } + function Lf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 65535, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8909] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8910] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 131072) { + if (f2 >>> 0 > 131072 ? (g2 = b2 + 131072 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 131072 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 65536; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -65536; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 65536) + break; + } + r = l2; + return; + } + function Mf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35968; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Nf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35968; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Of(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 4095, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + Xf(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 64; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 64; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 64; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function Pf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35744; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + Rf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + Rf(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function Qf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Rf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + u2 = r; + r = r + 32 | 0; + w2 = u2 + 12 | 0; + t2 = u2; + p2 = a2 + 156 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + s2 = k[a2 + 24 >> 2] | 0; + else + s2 = 1; + b2 = ia(s2 << 1, q2) | 0; + k[w2 >> 2] = 0; + y2 = w2 + 4 | 0; + k[y2 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[w2 >> 2] = d2; + v2 = d2 + (b2 << 1) | 0; + k[w2 + 8 >> 2] = v2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[y2 >> 2] = v2; + break; + } + d2 = Wa() | 0; + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[t2 >> 2] = 0; + v2 = t2 + 4 | 0; + k[v2 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + do + if (!s2) + g2 = 18; + else { + if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + k[t2 >> 2] = f2; + g2 = f2 + (s2 << 2) | 0; + k[t2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[v2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 12 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4580 | 0; + h2 = (ia(s2, q2) | 0) + 1 | 0; + i3 = a2 + 4584 | 0; + l2 = a2 + 92 | 0; + m2 = (s2 | 0) > 0; + n2 = a2 + 4576 | 0; + o2 = 0; + b: + while (1) { + c2 = k[w2 >> 2] | 0; + b2 = c2 + 2 | 0; + k[g2 >> 2] = b2; + c2 = c2 + (h2 << 1) | 0; + k[i3 >> 2] = c2; + if (!(o2 & 1)) + b2 = c2; + else { + k[g2 >> 2] = c2; + k[i3 >> 2] = b2; + } + e2 = k[l2 >> 2] | 0; + x = 0; + Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 28; + break; + } + if (m2) { + b2 = k[g2 >> 2] | 0; + c2 = k[i3 >> 2] | 0; + d2 = k[t2 >> 2] | 0; + e2 = 0; + do { + k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; + d2 = k[p2 >> 2] | 0; + j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; + j[c2 + -2 >> 1] = j[b2 >> 1] | 0; + x = 0; + ra(72, a2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 27; + break b; + } + d2 = k[t2 >> 2] | 0; + k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; + b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; + k[g2 >> 2] = b2; + c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; + k[i3 >> 2] = c2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (s2 | 0)); + } + o2 = o2 + 1 | 0; + if ((o2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 40; + break a; + } + } + if ((g2 | 0) == 27) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 28) { + d2 = Wa() | 0; + break; + } + } else + g2 = 40; + while (0); + do + if ((g2 | 0) == 40) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[v2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[w2 >> 2] | 0; + if (!b2) { + r = u2; + return; + } + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = u2; + return; + } + while (0); + b2 = k[t2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[v2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[w2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[y2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Sf(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4580 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 156 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4584 | 0; + r2 = a2 + 4588 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Uf(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Tf(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Tf(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 4095 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 4095 ^ 4095; + h2 = (c2 - m2 ^ q2) - q2 << 20; + l2 = h2 >> 20; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ l2; + d2 = d2 >> 30 ^ d2 << 1; + e2 = d2 >> f2; + if ((e2 | 0) < 35) { + if ((e2 | 0) > 30) { + g2 = (e2 | 0) / 2 | 0; + ke(a2, 0, g2); + e2 = e2 - g2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, d2 & (1 << f2) + -1, f2); + } else { + ke(a2, 0, 31); + ke(a2, 1, 5); + ke(a2, d2 + 4095 & 4095, 12); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -1048576 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + function Uf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; + g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + h2 = k[a2 + 4584 >> 2] | 0; + l2 = k[a2 + 4580 >> 2] | 0; + e2 = j[h2 + (b2 + -1 << 1) >> 1] | 0; + d2 = 0; + while (1) { + c2 = h2 + (d2 + b2 << 1) | 0; + if ((j[c2 >> 1] | 0) != e2 << 16 >> 16) { + n2 = d2; + break; + } + j[c2 >> 1] = e2; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (g2 | 0)) { + n2 = g2; + break; + } + } + f2 = e2 & 65535; + e2 = (n2 | 0) == (g2 | 0); + i3 = a2 + 4576 | 0; + d2 = k[36476 + (k[i3 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[i3 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[i3 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (e2) { + if (!c2) { + a2 = g2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = g2; + return a2 | 0; + } + ke(a2, c2, d2 + 1 | 0); + c2 = n2 + b2 | 0; + e2 = h2 + (c2 << 1) | 0; + d2 = m[e2 >> 1] | 0; + c2 = m[l2 + (c2 << 1) >> 1] | 0; + l2 = f2 - c2 | 0; + if ((((l2 | 0) > -1 ? l2 : 0 - l2 | 0) | 0) < 1) { + c2 = d2 - f2 << 20 >> 20; + Vf(a2, a2 + 4564 | 0, c2); + c2 = c2 + f2 | 0; + } else { + l2 = c2 - f2 >> 31 | 1; + b2 = (ia(d2 - c2 << 20, l2) | 0) >> 20; + Vf(a2, a2 + 4552 | 0, b2); + c2 = (ia(b2, l2) | 0) + c2 | 0; + } + j[e2 >> 1] = c2 & 4095; + a2 = k[i3 >> 2] | 0; + k[i3 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = n2 + 1 | 0; + return a2 | 0; + } + function Vf(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Wf(a2, e2, d2, 47 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function Wf(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -12 | 0; + if ((e2 | 0) < (d2 + -13 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -43 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 4095 & 4095, 12); + return; + } + function Xf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 4095, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8906] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8907] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 8192) { + if (f2 >>> 0 > 8192 ? (g2 = b2 + 8192 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 8192 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 4096; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -4096; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 4096) + break; + } + r = l2; + return; + } + function Yf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35940; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Zf(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35940; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function _f(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + hg(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 4; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 4; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function $f(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35716; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + bg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + bg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function ag(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function bg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 156 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + f2 = 19; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = e2; + f2 = e2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = f2; + f2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + e2 = a2 + 12 | 0; + b: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4580 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4584 | 0; + j2 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4576 | 0; + n2 = 0; + c: + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[f2 >> 2] = b2; + c2 = c2 + g2 | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = c2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + } + d2 = k[j2 >> 2] | 0; + x = 0; + Ja(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, b2 | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + f2 = 29; + break; + } + if (l2) { + b2 = k[f2 >> 2] | 0; + c2 = k[s2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[c2 + (d2 << 2) >> 2]; + c2 = k[o2 >> 2] | 0; + i2[b2 + c2 >> 0] = i2[b2 + (c2 + -1) >> 0] | 0; + i2[(k[h2 >> 2] | 0) + -1 >> 0] = i2[k[f2 >> 2] >> 0] | 0; + x = 0; + ra(73, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = 28; + break c; + } + c2 = k[s2 >> 2] | 0; + k[c2 + (d2 << 2) >> 2] = k[m2 >> 2]; + b2 = (k[f2 >> 2] | 0) + p2 | 0; + k[f2 >> 2] = b2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + p2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + f2 = 41; + break b; + } + } + if ((f2 | 0) == 28) { + c2 = Wa() | 0; + break; + } else if ((f2 | 0) == 29) { + c2 = Wa() | 0; + break; + } + } else + f2 = 41; + while (0); + do + if ((f2 | 0) == 41) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function cg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + o2 = a2 + 4580 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 156 | 0; + if ((k[r2 >> 2] | 0) <= 0) + return; + p2 = a2 + 4584 | 0; + q2 = a2 + 4588 | 0; + e2 = b2; + f2 = l[b2 + -1 >> 0] | 0; + b2 = l[b2 >> 0] | 0; + n2 = 0; + while (1) { + m2 = k[p2 >> 2] | 0; + j2 = l[m2 + (n2 + -1) >> 0] | 0; + d2 = n2 + 1 | 0; + c2 = l[e2 + d2 >> 0] | 0; + h2 = k[q2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - j2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (eg(a2, n2, 0) | 0) + n2 | 0; + c2 = k[o2 >> 2] | 0; + b2 = l[c2 + (d2 + -1) >> 0] | 0; + c2 = l[c2 + d2 >> 0] | 0; + } else { + f2 = b2 - j2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + m2 = dg(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; + i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; + } + if ((d2 | 0) >= (k[r2 >> 2] | 0)) + break; + e2 = k[o2 >> 2] | 0; + f2 = b2; + b2 = c2; + n2 = d2; + } + return; + } + function dg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 255 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 255 ^ 255; + h2 = (c2 - m2 ^ q2) - q2 << 24; + l2 = h2 >> 24; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + e2 = e2 ^ l2; + e2 = e2 >> 30 ^ e2 << 1; + d2 = e2 >> f2; + if ((d2 | 0) < 23) { + ke(a2, 1, d2 + 1 | 0); + ke(a2, e2 & (1 << f2) + -1, f2); + } else { + ke(a2, 1, 24); + ke(a2, e2 + 255 & 255, 8); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -16777216 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function eg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + h2 = k[a2 + 4584 >> 2] | 0; + m2 = k[a2 + 4580 >> 2] | 0; + e2 = i2[h2 + (b2 + -1) >> 0] | 0; + d2 = 0; + while (1) { + c2 = h2 + (d2 + b2) | 0; + if ((i2[c2 >> 0] | 0) != e2 << 24 >> 24) { + n2 = d2; + break; + } + i2[c2 >> 0] = e2; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (g2 | 0)) { + n2 = g2; + break; + } + } + f2 = e2 & 255; + e2 = (n2 | 0) == (g2 | 0); + j2 = a2 + 4576 | 0; + d2 = k[36476 + (k[j2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (n2 | 0)) + c2 = n2; + else { + c2 = n2; + do { + ke(a2, 1, 1); + d2 = k[j2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[j2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (e2) { + if (!c2) { + a2 = g2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = g2; + return a2 | 0; + } + ke(a2, c2, d2 + 1 | 0); + c2 = n2 + b2 | 0; + e2 = h2 + c2 | 0; + d2 = l[e2 >> 0] | 0; + c2 = l[m2 + c2 >> 0] | 0; + m2 = f2 - c2 | 0; + if ((((m2 | 0) > -1 ? m2 : 0 - m2 | 0) | 0) < 1) { + c2 = d2 - f2 << 24 >> 24; + fg(a2, a2 + 4564 | 0, c2); + c2 = c2 + f2 | 0; + } else { + m2 = c2 - f2 >> 31 | 1; + b2 = (ia(d2 - c2 << 24, m2) | 0) >> 24; + fg(a2, a2 + 4552 | 0, b2); + c2 = (ia(b2, m2) | 0) + c2 | 0; + } + i2[e2 >> 0] = c2; + a2 = k[j2 >> 2] | 0; + k[j2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = n2 + 1 | 0; + return a2 | 0; + } + function fg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + gg(a2, e2, d2, 31 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function gg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -8 | 0; + if ((e2 | 0) < (d2 + -9 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -39 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 255 & 255, 8); + return; + } + function hg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function ig(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35912; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function jg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35912; + b2 = k[a2 + 4592 >> 2] | 0; + if (b2) { + c2 = a2 + 4596 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function kg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 164 >> 2] = f2; + k[a2 + 168 >> 2] = d2; + tg(a2); + d2 = 0; + do { + k[a2 + 172 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4552 >> 2] = 4; + k[a2 + 4556 >> 2] = 0; + i2[a2 + 4560 >> 0] = h2; + i2[a2 + 4561 >> 0] = 1; + i2[a2 + 4562 >> 0] = 0; + k[a2 + 4564 >> 2] = 4; + k[a2 + 4568 >> 2] = 1; + i2[a2 + 4572 >> 0] = h2; + i2[a2 + 4573 >> 0] = 1; + i2[a2 + 4574 >> 0] = 0; + k[a2 + 4576 >> 2] = 0; + r = e2; + return; + } + function lg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4600) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35688; + e2 = b2 + 132 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 148 >> 2] = k[d2 >> 2]; + k[b2 + 152 >> 2] = 0; + k[b2 + 156 >> 2] = 0; + k[b2 + 160 >> 2] = 0; + e2 = b2 + 4544 | 0; + d2 = b2 + 164 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4556 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4568 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + ng(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + ng(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function mg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function ng(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + o2 = a2 + 156 | 0; + p2 = (k[o2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + q2 = k[a2 + 24 >> 2] | 0; + else + q2 = 1; + b2 = ia(q2 << 1, p2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 3 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!q2) + f2 = 19; + else { + if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[s2 >> 2] = e2; + f2 = e2 + (q2 << 2) | 0; + k[s2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + e2 = a2 + 12 | 0; + b: + do + if ((k[e2 >> 2] | 0) > 0) { + f2 = a2 + 4580 | 0; + g2 = (ia(q2, p2) | 0) + 1 | 0; + h2 = a2 + 4584 | 0; + j2 = a2 + 92 | 0; + l2 = (q2 | 0) > 0; + m2 = a2 + 4576 | 0; + n2 = 0; + c: + while (1) { + d2 = k[v2 >> 2] | 0; + b2 = d2 + 3 | 0; + k[f2 >> 2] = b2; + c2 = d2 + (g2 * 3 | 0) | 0; + k[h2 >> 2] = c2; + if (!(n2 & 1)) + b2 = g2; + else { + k[f2 >> 2] = c2; + k[h2 >> 2] = b2; + b2 = 1; + } + c2 = k[j2 >> 2] | 0; + x = 0; + Ja(k[(k[c2 >> 2] | 0) + 12 >> 2] | 0, c2 | 0, d2 + (b2 * 3 | 0) | 0, k[o2 >> 2] | 0, p2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + f2 = 29; + break; + } + if (l2) { + b2 = k[s2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + d2 = 0; + do { + k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; + y2 = k[o2 >> 2] | 0; + b2 = c2 + (y2 * 3 | 0) | 0; + c2 = c2 + ((y2 + -1 | 0) * 3 | 0) | 0; + i2[b2 >> 0] = i2[c2 >> 0] | 0; + i2[b2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[b2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + b2 = k[f2 >> 2] | 0; + c2 = (k[h2 >> 2] | 0) + -3 | 0; + i2[c2 >> 0] = i2[b2 >> 0] | 0; + i2[c2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[c2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + x = 0; + ra(74, a2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = 28; + break c; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; + c2 = (k[f2 >> 2] | 0) + (p2 * 3 | 0) | 0; + k[f2 >> 2] = c2; + k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 3 | 0); + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (q2 | 0)); + } + n2 = n2 + 1 | 0; + if ((n2 | 0) >= (k[e2 >> 2] | 0)) { + f2 = 41; + break b; + } + } + if ((f2 | 0) == 28) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 29) { + d2 = Wa() | 0; + break; + } + } else + f2 = 41; + while (0); + do + if ((f2 | 0) == 41) { + x = 0; + qa(182, a2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[w2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function og(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = a2 + 156 | 0; + if ((k[A2 >> 2] | 0) <= 0) + return; + B2 = a2 + 4584 | 0; + C2 = a2 + 4580 | 0; + D2 = a2 + 4588 | 0; + z2 = 0; + while (1) { + w2 = z2 + -1 | 0; + f2 = k[B2 >> 2] | 0; + g2 = k[C2 >> 2] | 0; + b2 = z2 + 1 | 0; + e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; + y2 = k[D2 >> 2] | 0; + h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; + j2 = e2 - h2 | 0; + m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; + n2 = h2 - m2 | 0; + o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; + d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; + q2 = d2 - p2 | 0; + r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; + s2 = p2 - r2 | 0; + t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; + c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; + u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; + v2 = c2 - u2 | 0; + w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; + x2 = u2 - w2 | 0; + y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; + if (!(t2 | o2 | y2)) + b2 = (pg(a2, z2, 0) | 0) + z2 | 0; + else { + g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; + f2 = e2 - m2 >> 31; + if ((f2 ^ n2 | 0) >= 0) + if ((f2 ^ j2 | 0) < 0) + e2 = m2; + else + e2 = m2 - h2 + e2 | 0; + g2 = qg(a2, o2, g2, e2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; + e2 = d2 - r2 >> 31; + if ((e2 ^ s2 | 0) >= 0) + if ((e2 ^ q2 | 0) < 0) + d2 = r2; + else + d2 = r2 - p2 + d2 | 0; + e2 = qg(a2, t2, f2, d2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; + d2 = c2 - w2 >> 31; + if ((d2 ^ x2 | 0) >= 0) + if ((d2 ^ v2 | 0) < 0) + c2 = w2; + else + c2 = w2 - u2 + c2 | 0; + y2 = qg(a2, y2, f2, c2, 0) | 0; + z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; + i2[z2 >> 0] = g2; + i2[z2 + 1 >> 0] = e2; + i2[z2 + 2 >> 0] = y2; + } + if ((b2 | 0) < (k[A2 >> 2] | 0)) + z2 = b2; + else + break; + } + return; + } + function pg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + m2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; + n2 = k[a2 + 4584 >> 2] | 0; + o2 = k[a2 + 4580 >> 2] | 0; + j2 = n2 + ((b2 + -1 | 0) * 3 | 0) | 0; + p2 = i2[j2 >> 0] | 0; + h2 = i2[j2 + 1 >> 0] | 0; + j2 = i2[j2 + 2 >> 0] | 0; + f2 = 0; + while (1) { + c2 = n2 + ((f2 + b2 | 0) * 3 | 0) | 0; + d2 = c2 + 1 | 0; + e2 = c2 + 2 | 0; + if (!(((i2[c2 >> 0] | 0) == p2 << 24 >> 24 ? (i2[d2 >> 0] | 0) == h2 << 24 >> 24 : 0) & (i2[e2 >> 0] | 0) == j2 << 24 >> 24)) + break; + i2[c2 >> 0] = p2; + i2[d2 >> 0] = h2; + i2[e2 >> 0] = j2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (m2 | 0)) { + f2 = m2; + break; + } + } + e2 = (f2 | 0) == (m2 | 0); + g2 = a2 + 4576 | 0; + d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (f2 | 0)) + c2 = f2; + else { + c2 = f2; + do { + ke(a2, 1, 1); + d2 = k[g2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[g2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + d2 = f2 + b2 | 0; + m2 = n2 + (d2 * 3 | 0) | 0; + n2 = m2 + 1 | 0; + c2 = i2[n2 >> 0] | 0; + b2 = m2 + 2 | 0; + e2 = i2[b2 >> 0] | 0; + o2 = o2 + (d2 * 3 | 0) | 0; + d2 = i2[o2 + 1 >> 0] | 0; + t2 = i2[o2 + 2 >> 0] | 0; + o2 = l[o2 >> 0] | 0; + q2 = o2 - (p2 & 255) >> 31 | 1; + r2 = (ia((l[m2 >> 0] | 0) - o2 << 24, q2) | 0) >> 24; + s2 = a2 + 4552 | 0; + rg(a2, s2, r2); + p2 = d2 & 255; + d2 = p2 - (h2 & 255) >> 31 | 1; + c2 = (ia((c2 & 255) - p2 << 24, d2) | 0) >> 24; + rg(a2, s2, c2); + h2 = t2 & 255; + j2 = h2 - (j2 & 255) >> 31 | 1; + e2 = (ia((e2 & 255) - h2 << 24, j2) | 0) >> 24; + rg(a2, s2, e2); + o2 = (ia(r2, q2) | 0) + o2 & 255; + p2 = (ia(c2, d2) | 0) + p2 & 255; + a2 = (ia(e2, j2) | 0) + h2 & 255; + i2[m2 >> 0] = o2; + i2[n2 >> 0] = p2; + i2[b2 >> 0] = a2; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = f2 + 1 | 0; + return a2 | 0; + } + if (!c2) { + t2 = m2; + return t2 | 0; + } + ke(a2, 1, 1); + t2 = m2; + return t2 | 0; + } + function qg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + i3 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 172 + (i3 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((g2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; + e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((e2 & 255 | 0) == (e2 | 0)) + m2 = e2; + else + m2 = e2 >> 31 & 255 ^ 255; + h2 = (c2 - m2 ^ q2) - q2 << 24; + l2 = h2 >> 24; + if (!f2) + e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + e2 = e2 ^ l2; + e2 = e2 >> 30 ^ e2 << 1; + d2 = e2 >> f2; + if ((d2 | 0) < 23) { + ke(a2, 1, d2 + 1 | 0); + ke(a2, e2 & (1 << f2) + -1, f2); + } else { + ke(a2, 1, 24); + ke(a2, e2 + 255 & 255, 8); + } + d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; + g2 = j[p2 >> 1] | 0; + e2 = g2 << 16 >> 16 == 64; + f2 = e2 & 1; + c2 = (k[d2 >> 2] | 0) + l2 >> f2; + g2 = e2 ? 32 : g2 << 16 >> 16; + k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -16777216 ? l2 : 0 - l2 | 0) >> f2; + f2 = g2 + 1 | 0; + j[p2 >> 1] = f2; + e2 = f2 + c2 | 0; + if ((e2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((c2 | 0) <= 0) { + p2 = c2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = c2 - f2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[d2 >> 2] = p2; + q2 = l2 ^ q2; + b2 = b2 >>> 31; + b2 = m2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function rg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + sg(a2, e2, d2, 31 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function sg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = c2 >> b2; + f2 = d2 + -8 | 0; + if ((e2 | 0) < (d2 + -9 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((f2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -39 | 0); + } else + ke(a2, 1, f2); + ke(a2, c2 + 255 & 255, 8); + return; + } + function tg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 160 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4588 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4592 | 0; + d2 = a2 + 4596 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4588 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 168 | 0; + e2 = a2 + 164 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function ug(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35884; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function vg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35884; + b2 = k[a2 + 4616 >> 2] | 0; + if (b2) { + c2 = a2 + 4620 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36612; + b2 = k[a2 + 120 >> 2] | 0; + if (b2) { + c2 = a2 + 124 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 92 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function wg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 188 >> 2] = f2; + k[a2 + 192 >> 2] = e2; + Gg(a2); + e2 = a2 + 140 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4576 >> 2] = h2; + k[a2 + 4580 >> 2] = 0; + i2[a2 + 4584 >> 0] = l2; + i2[a2 + 4585 >> 0] = 1; + i2[a2 + 4586 >> 0] = 0; + k[a2 + 4588 >> 2] = h2; + k[a2 + 4592 >> 2] = 1; + i2[a2 + 4596 >> 0] = l2; + i2[a2 + 4597 >> 0] = 1; + i2[a2 + 4598 >> 0] = 0; + k[a2 + 4600 >> 2] = 0; + r = g2; + return; + } + function xg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; + n2 = r; + r = r + 16 | 0; + l2 = n2; + h2 = a2 + 92 | 0; + g2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[h2 >> 2] | 0; + k[h2 >> 2] = g2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + k[l2 >> 2] = 0; + k[l2 + 4 >> 2] = d2; + h2 = c2 + 8 | 0; + k[l2 + 8 >> 2] = k[h2 >> 2]; + if (d2) { + b2 = lj(4624) | 0; + d2 = a2 + 8 | 0; + e2 = b2 + 4 | 0; + f2 = d2; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + e2 = b2 + 88 | 0; + g2 = e2 + 40 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[b2 >> 2] = 35660; + k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; + k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; + k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; + k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; + k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; + k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; + k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; + e2 = b2 + 156 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[b2 + 172 >> 2] = k[d2 >> 2]; + k[b2 + 176 >> 2] = 0; + k[b2 + 180 >> 2] = 0; + k[b2 + 184 >> 2] = 0; + e2 = b2 + 4568 | 0; + d2 = b2 + 188 | 0; + do { + k[d2 >> 2] = 0; + k[d2 + 4 >> 2] = 0; + j[d2 + 8 >> 1] = 0; + j[d2 + 10 >> 1] = 1; + d2 = d2 + 12 | 0; + } while ((d2 | 0) != (e2 | 0)); + f2 = a2 + 4 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + j[e2 + 8 >> 1] = 0; + i2[e2 + 10 >> 0] = 0; + g2 = b2 + 4580 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + j[g2 + 8 >> 1] = 0; + i2[g2 + 10 >> 0] = 0; + g2 = b2 + 4592 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[g2 + 16 >> 2] = 0; + k[g2 + 20 >> 2] = 0; + k[g2 + 24 >> 2] = 0; + i2[g2 + 28 >> 0] = 0; + if (!(k[b2 + 28 >> 2] | 0)) + k[b2 + 20 >> 2] = 1; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = b2; + if (d2) { + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + b2 = k[f2 >> 2] | 0; + } + ee(b2, l2); + } + l2 = a2 + 100 | 0; + k[l2 >> 2] = 32; + k[a2 + 96 >> 2] = 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 104 >> 2] = k[h2 >> 2]; + zg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + k[a2 + 132 >> 2] = b2; + e2 = a2 + 120 | 0; + h2 = a2 + 124 | 0; + d2 = k[h2 >> 2] | 0; + b2 = k[e2 >> 2] | 0; + f2 = b2; + g2 = d2 - f2 | 0; + if (g2 >>> 0 >= 4e3) { + if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { + k[h2 >> 2] = m2; + d2 = m2; + } + } else { + fe(e2, 4e3 - g2 | 0); + b2 = k[e2 >> 2] | 0; + f2 = b2; + d2 = k[h2 >> 2] | 0; + } + k[a2 + 108 >> 2] = f2; + k[a2 + 104 >> 2] = d2 - b2; + zg(a2); + m2 = a2 + 116 | 0; + m2 = k[m2 >> 2] | 0; + a2 = k[l2 >> 2] | 0; + a2 = a2 + -32 | 0; + a2 = (a2 | 0) / 8 | 0; + a2 = m2 - a2 | 0; + r = n2; + return a2 | 0; + } + function yg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { + p2 = a2 + 8 | 0; + s2 = a2 + 36 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 16 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 20 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function zg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + t2 = r; + r = r + 32 | 0; + v2 = t2 + 12 | 0; + s2 = t2; + p2 = a2 + 180 | 0; + q2 = (k[p2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 32 >> 2] | 0) == 1) + n2 = k[a2 + 24 >> 2] | 0; + else + n2 = 1; + b2 = ia(n2 << 1, q2) | 0; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + o2 = 6; + if ((o2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[w2 >> 2] = c2; + k[v2 >> 2] = c2; + k[v2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[s2 >> 2] = 0; + u2 = s2 + 4 | 0; + k[u2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + do + if (!n2) + o2 = 19; + else { + if (!(n2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), m2 = x, x = 0, m2 & 1) : 0)) + o2 = 17; + if ((o2 | 0) == 17 ? (d2 = n2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + k[s2 >> 2] = e2; + o2 = e2 + (n2 << 2) | 0; + k[s2 + 8 >> 2] = o2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[u2 >> 2] = o2; + o2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((o2 | 0) == 19) { + g2 = a2 + 12 | 0; + b: + do + if ((k[g2 >> 2] | 0) > 0) { + h2 = a2 + 4604 | 0; + j2 = (ia(n2, q2) | 0) + 1 | 0; + l2 = a2 + 4608 | 0; + m2 = a2 + 92 | 0; + f2 = a2 + 4600 | 0; + if ((n2 | 0) > 0) + e2 = 0; + else { + d2 = 0; + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[h2 >> 2] = b2; + c2 = c2 + j2 | 0; + k[l2 >> 2] = c2; + if (!(d2 & 1)) + b2 = c2; + else { + k[h2 >> 2] = c2; + k[l2 >> 2] = b2; + } + n2 = k[m2 >> 2] | 0; + x = 0; + Ja(k[(k[n2 >> 2] | 0) + 12 >> 2] | 0, n2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + n2 = x; + x = 0; + if (n2 & 1) + break; + d2 = d2 + 1 | 0; + if ((d2 | 0) >= (k[g2 >> 2] | 0)) { + o2 = 45; + break b; + } + } + c2 = Wa() | 0; + break; + } + c: + while (1) { + c2 = k[v2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[h2 >> 2] = b2; + c2 = c2 + j2 | 0; + k[l2 >> 2] = c2; + if (!(e2 & 1)) + b2 = c2; + else { + k[h2 >> 2] = c2; + k[l2 >> 2] = b2; + } + o2 = k[m2 >> 2] | 0; + x = 0; + Ja(k[(k[o2 >> 2] | 0) + 12 >> 2] | 0, o2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = 28; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = k[h2 >> 2] | 0; + d2 = 0; + do { + k[f2 >> 2] = k[b2 + (d2 << 2) >> 2]; + o2 = k[p2 >> 2] | 0; + i2[c2 + o2 >> 0] = i2[c2 + (o2 + -1) >> 0] | 0; + i2[(k[l2 >> 2] | 0) + -1 >> 0] = i2[k[h2 >> 2] >> 0] | 0; + x = 0; + ra(75, a2 | 0, 0); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = 36; + break c; + } + b2 = k[s2 >> 2] | 0; + k[b2 + (d2 << 2) >> 2] = k[f2 >> 2]; + c2 = (k[h2 >> 2] | 0) + q2 | 0; + k[h2 >> 2] = c2; + k[l2 >> 2] = (k[l2 >> 2] | 0) + q2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (n2 | 0)); + e2 = e2 + 1 | 0; + if ((e2 | 0) >= (k[g2 >> 2] | 0)) { + o2 = 45; + break b; + } + } + if ((o2 | 0) == 28) { + c2 = Wa() | 0; + break; + } else if ((o2 | 0) == 36) { + c2 = Wa() | 0; + break; + } + } else + o2 = 45; + while (0); + do + if ((o2 | 0) == 45) { + x = 0; + qa(182, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[s2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[u2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[v2 >> 2] | 0; + if (!b2) { + r = t2; + return; + } + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + r = t2; + return; + } + while (0); + b2 = k[s2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[u2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function Ag(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + o2 = a2 + 4604 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 180 | 0; + if ((k[r2 >> 2] | 0) <= 0) + return; + p2 = a2 + 4608 | 0; + q2 = a2 + 4612 | 0; + e2 = b2; + f2 = l[b2 + -1 >> 0] | 0; + b2 = l[b2 >> 0] | 0; + n2 = 0; + while (1) { + m2 = k[p2 >> 2] | 0; + j2 = l[m2 + (n2 + -1) >> 0] | 0; + d2 = n2 + 1 | 0; + c2 = l[e2 + d2 >> 0] | 0; + h2 = k[q2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - j2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Cg(a2, n2, 0) | 0) + n2 | 0; + c2 = k[o2 >> 2] | 0; + b2 = l[c2 + (d2 + -1) >> 0] | 0; + c2 = l[c2 + d2 >> 0] | 0; + } else { + f2 = b2 - j2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + m2 = Bg(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; + i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; + } + if ((d2 | 0) >= (k[r2 >> 2] | 0)) + break; + e2 = k[o2 >> 2] | 0; + f2 = b2; + b2 = c2; + n2 = d2; + } + return; + } + function Bg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + f2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; + g2 = j[p2 >> 1] | 0; + o2 = a2 + 196 + (f2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((g2 | 0) < (e2 | 0)) + if ((g2 << 1 | 0) < (e2 | 0)) + if ((g2 << 2 | 0) < (e2 | 0)) + if ((g2 << 3 | 0) < (e2 | 0)) + if ((g2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((g2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; + e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 136 | 0; + d2 = k[q2 >> 2] | 0; + if ((e2 & d2 | 0) == (e2 | 0)) + l2 = e2; + else + l2 = d2 & ~(e2 >> 31); + e2 = (c2 - l2 ^ r2) - r2 | 0; + i3 = a2 + 144 | 0; + d2 = k[i3 >> 2] | 0; + if ((e2 | 0) > 0) + e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; + else + e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; + n2 = a2 + 140 | 0; + h2 = k[n2 >> 2] | 0; + c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; + h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; + f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; + if (!(d2 | b2)) + e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; + else + e2 = 0; + d2 = e2 ^ h2; + Fg(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); + d2 = k[a2 + 160 >> 2] | 0; + b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; + e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; + c2 = j[p2 >> 1] | 0; + if ((c2 | 0) == (d2 | 0)) { + b2 = b2 >> 1; + e2 = e2 >> 1; + c2 = d2 >> 1; + } + k[o2 >> 2] = b2; + d2 = c2 + 1 | 0; + j[p2 >> 1] = d2; + b2 = d2 + e2 | 0; + if ((b2 | 0) >= 1) { + if ((e2 | 0) > 0) { + e2 = e2 - d2 | 0; + p2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + e2 = (e2 | 0) > 0 ? 0 : e2; + } + } else { + e2 = j[m2 >> 1] | 0; + j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); + e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; + } + k[f2 >> 2] = e2; + d2 = k[i3 >> 2] | 0; + c2 = d2 << 1 | 1; + b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; + if ((b2 | 0) >= (0 - d2 | 0)) { + e2 = k[q2 >> 2] | 0; + if ((e2 + d2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; + } else { + b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; + e2 = k[q2 >> 2] | 0; + } + if ((b2 & e2 | 0) == (b2 | 0)) { + r2 = b2; + r2 = r2 & 255; + return r2 | 0; + } + r2 = e2 & ~(b2 >> 31); + r2 = r2 & 255; + return r2 | 0; + } + function Cg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + j2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; + m2 = k[a2 + 4608 >> 2] | 0; + n2 = k[a2 + 4604 >> 2] | 0; + e2 = i2[m2 + (b2 + -1) >> 0] | 0; + h2 = e2 & 255; + c2 = a2 + 144 | 0; + f2 = 0; + while (1) { + d2 = m2 + (f2 + b2) | 0; + g2 = (l[d2 >> 0] | 0) - h2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) > (k[c2 >> 2] | 0)) + break; + i2[d2 >> 0] = e2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == (j2 | 0)) { + f2 = j2; + break; + } + } + e2 = (f2 | 0) == (j2 | 0); + g2 = a2 + 4600 | 0; + d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; + if ((1 << d2 | 0) > (f2 | 0)) + c2 = f2; + else { + c2 = f2; + do { + ke(a2, 1, 1); + d2 = k[g2 >> 2] | 0; + c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; + d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; + k[g2 >> 2] = d2; + d2 = k[36476 + (d2 << 2) >> 2] | 0; + } while ((c2 | 0) >= (1 << d2 | 0)); + } + if (!e2) { + ke(a2, c2, d2 + 1 | 0); + j2 = f2 + b2 | 0; + b2 = m2 + j2 | 0; + a2 = Dg(a2, l[b2 >> 0] | 0, h2, l[n2 + j2 >> 0] | 0) | 0; + i2[b2 >> 0] = a2; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + a2 = f2 + 1 | 0; + return a2 | 0; + } + if (!c2) { + a2 = j2; + return a2 | 0; + } + ke(a2, 1, 1); + a2 = j2; + return a2 | 0; + } + function Dg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + h2 = c2 - d2 | 0; + i3 = a2 + 136 | 0; + g2 = a2 + 144 | 0; + e2 = k[g2 >> 2] | 0; + if ((((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0) > (e2 | 0)) { + f2 = d2 - c2 >> 31 | 1; + b2 = ia(f2, b2 - d2 | 0) | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + c2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = c2 - ((c2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + Eg(a2, a2 + 4576 | 0, e2); + e2 = ia(e2, f2) | 0; + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(e2, g2) | 0) + d2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 255; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 255; + return i3 | 0; + } else { + b2 = b2 - c2 | 0; + if ((b2 | 0) > 0) + b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; + else + b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; + h2 = a2 + 140 | 0; + e2 = k[h2 >> 2] | 0; + f2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; + e2 = f2 - ((f2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; + Eg(a2, a2 + 4588 | 0, e2); + f2 = k[g2 >> 2] | 0; + g2 = f2 << 1 | 1; + e2 = (ia(g2, e2) | 0) + c2 | 0; + if ((e2 | 0) >= (0 - f2 | 0)) { + b2 = k[i3 >> 2] | 0; + if ((b2 + f2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; + } else { + e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; + b2 = k[i3 >> 2] | 0; + } + if ((e2 & b2 | 0) == (e2 | 0)) { + i3 = e2; + i3 = i3 & 255; + return i3 | 0; + } + i3 = b2 & ~(e2 >> 31); + i3 = i3 & 255; + return i3 | 0; + } + return 0; + } + function Eg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; + n2 = b2 + 9 | 0; + g2 = l[n2 >> 0] | 0; + m2 = b2 + 4 | 0; + j2 = k[m2 >> 2] | 0; + e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; + if ((g2 | 0) < (e2 | 0)) { + f2 = g2; + d2 = 0; + do { + f2 = f2 << 1; + d2 = d2 + 1 | 0; + } while ((f2 | 0) < (e2 | 0)); + e2 = d2; + } else + e2 = 0; + if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) + d2 = 1; + else + h2 = 5; + do + if ((h2 | 0) == 5) { + d2 = (c2 | 0) < 0; + if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { + d2 = 1; + break; + } + d2 = d2 & (e2 | 0) != 0; + } + while (0); + d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; + Fg(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); + if ((c2 | 0) < 0) { + a2 = b2 + 10 | 0; + i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; + } + d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = d2; + e2 = i2[n2 >> 0] | 0; + if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = e2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + k[b2 >> 2] = d2 >> 1; + a2 = (e2 & 255) >>> 1; + i2[n2 >> 0] = a2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = a2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[n2 >> 0] = b2; + return; + } + function Fg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0; + e2 = c2 >> b2; + f2 = a2 + 148 | 0; + g2 = d2 - (k[f2 >> 2] | 0) | 0; + if ((e2 | 0) < (g2 + -1 | 0)) { + if ((e2 | 0) > 30) { + d2 = (e2 | 0) / 2 | 0; + ke(a2, 0, d2); + e2 = e2 - d2 | 0; + } + ke(a2, 1, e2 + 1 | 0); + ke(a2, (1 << b2) + -1 & c2, b2); + return; + } + if ((g2 | 0) > 31) { + ke(a2, 0, 31); + ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); + } else + ke(a2, 1, g2); + b2 = k[f2 >> 2] | 0; + ke(a2, (1 << b2) + -1 & c2 + -1, b2); + return; + } + function Gg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 144 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 136 >> 2] | 0; + b2 = a2 + 152 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 152 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4616 | 0; + d2 = m2 << 1; + e2 = a2 + 4620 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4612 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 192 | 0; + j2 = a2 + 188 | 0; + g2 = a2 + 184 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Hg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35856; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Ig(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35856; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Jg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Kg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + Vg(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function Lg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + Mg(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function Mg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 172 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[C2 >> 2] = d2; + B2 = d2 + (b2 << 1) | 0; + k[C2 + 8 >> 2] = B2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[D2 >> 2] = B2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 18; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4596 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4600 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 160 | 0; + o2 = a2 + 168 | 0; + p2 = a2 + 164 | 0; + q2 = a2 + 156 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4592 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 2 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 << 1) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; + j[b2 + -2 >> 1] = j[c2 >> 1] | 0; + x = 0; + ra(76, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 29; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 30; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Ng(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; + q2 = a2 + 4596 | 0; + c2 = k[q2 >> 2] | 0; + u2 = a2 + 172 | 0; + b2 = k[u2 >> 2] | 0; + if ((b2 | 0) <= 0) + return; + r2 = a2 + 4600 | 0; + s2 = a2 + 4604 | 0; + t2 = a2 + 4592 | 0; + h2 = c2; + f2 = m[c2 + -2 >> 1] | 0; + c2 = m[c2 >> 1] | 0; + p2 = 0; + while (1) { + n2 = k[r2 >> 2] | 0; + g2 = j[n2 + (p2 + -1 << 1) >> 1] | 0; + o2 = g2 & 65535; + e2 = p2 + 1 | 0; + d2 = m[h2 + (e2 << 1) >> 1] | 0; + l2 = k[s2 >> 2] | 0; + h2 = c2 - f2 | 0; + f2 = f2 - o2 | 0; + l2 = ((((i2[l2 + (d2 - c2) >> 0] | 0) * 9 | 0) + (i2[l2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[l2 + f2 >> 0] | 0) | 0; + n2 = n2 + (p2 << 1) | 0; + if (!l2) { + b2 = Qg(a2, g2, n2, b2 - p2 | 0) | 0; + c2 = b2 + p2 | 0; + if ((c2 | 0) != (k[u2 >> 2] | 0)) { + o2 = Rg(a2, o2, m[(k[q2 >> 2] | 0) + (c2 << 1) >> 1] | 0) | 0; + j[(k[r2 >> 2] | 0) + (c2 << 1) >> 1] = o2; + o2 = k[t2 >> 2] | 0; + k[t2 >> 2] = (o2 | 0) < 1 ? 0 : o2 + -1 | 0; + b2 = b2 + 1 | 0; + } + e2 = b2 + p2 | 0; + d2 = k[q2 >> 2] | 0; + c2 = m[d2 + (e2 + -1 << 1) >> 1] | 0; + d2 = m[d2 + (e2 << 1) >> 1] | 0; + } else { + b2 = c2 - o2 >> 31; + if ((b2 ^ f2 | 0) < 0) + b2 = c2; + else + b2 = o2 + ((b2 ^ h2 | 0) < 0 ? 0 : h2) | 0; + o2 = Pg(a2, l2, m[n2 >> 1] | 0, b2, 0) | 0; + j[(k[r2 >> 2] | 0) + (p2 << 1) >> 1] = o2; + } + b2 = k[u2 >> 2] | 0; + if ((b2 | 0) <= (e2 | 0)) + break; + h2 = k[q2 >> 2] | 0; + f2 = c2; + c2 = d2; + p2 = e2; + } + return; + } + function Og(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + d2 = a2 + 116 | 0; + c2 = k[d2 >> 2] | 0; + if ((i2[c2 >> 0] | 0) != -1) { + e2 = a2 + 112 | 0; + b2 = k[e2 >> 2] | 0; + if ((b2 | 0) < 1) { + qe(a2); + b2 = k[e2 >> 2] | 0; + c2 = k[d2 >> 2] | 0; + } + a2 = a2 + 108 | 0; + d2 = k[a2 >> 2] | 0; + k[e2 >> 2] = b2 + -1; + b2 = d2 << 1; + k[a2 >> 2] = b2; + if ((i2[c2 >> 0] | 0) != -1) { + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 6, 35648); + a2 = x; + x = 0; + if (!(a2 & 1)) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + } else + b2 = k[a2 + 108 >> 2] | 0; + if (!b2) + return; + b2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, b2 | 0, 6, 35648); + a2 = x; + x = 0; + if (!(a2 & 1)) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + function Pg(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } + function Qg(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) > 0) + f2 = 0; + else + return e2 | 0; + do { + j[c2 + (f2 << 1) >> 1] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function Rg(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2 - c2 | 0; + g2 = a2 + 128 | 0; + d2 = a2 + 136 | 0; + if ((((f2 | 0) > -1 ? f2 : 0 - f2 | 0) | 0) > (k[d2 >> 2] | 0)) { + b2 = ia(Sg(a2, a2 + 4568 | 0) | 0, c2 - b2 >> 31 | 1) | 0; + e2 = k[d2 >> 2] | 0; + f2 = e2 << 1 | 1; + b2 = (ia(b2, f2) | 0) + c2 | 0; + if ((b2 | 0) >= (0 - e2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + e2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, f2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, f2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } else { + c2 = Sg(a2, a2 + 4580 | 0) | 0; + f2 = k[d2 >> 2] | 0; + e2 = f2 << 1 | 1; + b2 = (ia(e2, c2) | 0) + b2 | 0; + if ((b2 | 0) >= (0 - f2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + f2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, e2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, e2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } + return 0; + } + function Sg(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function Tg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 112 | 0; + if ((k[f2 >> 2] | 0) < 16) + qe(a2); + g2 = a2 + 108 | 0; + c2 = k[g2 >> 2] | 0; + if ((c2 | 0) >= 0) + if (!(c2 & 1073741824)) + if (!(c2 & 536870912)) + if (!(c2 & 268435456)) + if (!(c2 & 134217728)) + if (!(c2 & 67108864)) + if (!(c2 & 33554432)) + if (!(c2 & 16777216)) + if (!(c2 & 8388608)) + if (!(c2 & 4194304)) + if (!(c2 & 2097152)) + if (!(c2 & 1048576)) + if (!(c2 & 524288)) + if (!(c2 & 262144)) + if (!(c2 & 131072)) { + e2 = c2 >>> 12 & 16; + b2 = e2 + -1 | 0; + if (!e2) { + b2 = (k[f2 >> 2] | 0) + -15 | 0; + k[f2 >> 2] = b2; + d2 = c2 << 15; + k[g2 >> 2] = d2; + c2 = b2; + b2 = 15; + while (1) { + if ((c2 | 0) < 1) { + qe(a2); + e2 = k[g2 >> 2] | 0; + c2 = k[f2 >> 2] | 0; + } else + e2 = d2; + c2 = c2 + -1 | 0; + k[f2 >> 2] = c2; + d2 = e2 << 1; + k[g2 >> 2] = d2; + if ((e2 | 0) < 0) + break; + else + b2 = b2 + 1 | 0; + } + return b2 | 0; + } + } else + b2 = 14; + else + b2 = 13; + else + b2 = 12; + else + b2 = 11; + else + b2 = 10; + else + b2 = 9; + else + b2 = 8; + else + b2 = 7; + else + b2 = 6; + else + b2 = 5; + else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + a2 = b2 + 1 | 0; + k[f2 >> 2] = (k[f2 >> 2] | 0) - a2; + k[g2 >> 2] = c2 << a2; + g2 = b2; + return g2 | 0; + } + function Ug(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + d2 = a2 + 112 | 0; + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) < (b2 | 0)) { + qe(a2); + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) < (b2 | 0)) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } + e2 = a2 + 108 | 0; + a2 = k[e2 >> 2] | 0; + k[d2 >> 2] = c2 - b2; + k[e2 >> 2] = a2 << b2; + return a2 >>> (32 - b2 | 0) | 0; + } + function Vg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Wg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Xg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Yg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35828; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Zg(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35828; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function _g(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 6; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function $g(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + hh(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function ah(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + bh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function bh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 172 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!(b2 >>> 0 > 715827882 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 6 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + d2 = c2 + (b2 * 6 | 0) | 0; + k[C2 + 8 >> 2] = d2; + while (1) { + j[c2 >> 1] = 0; + j[c2 + 2 >> 1] = 0; + j[c2 + 4 >> 1] = 0; + b2 = b2 + -1 | 0; + if (!b2) + break; + else + c2 = c2 + 6 | 0; + } + k[D2 >> 2] = d2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 20; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 18; + if ((g2 | 0) == 18 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 20; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 20) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4596 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4600 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 160 | 0; + o2 = a2 + 168 | 0; + p2 = a2 + 164 | 0; + q2 = a2 + 156 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4592 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 6 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 * 6 | 0) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + b2 = k[v2 >> 2] | 0; + e2 = c2 + (b2 * 6 | 0) | 0; + c2 = c2 + ((b2 + -1 | 0) * 6 | 0) | 0; + j[e2 >> 1] = j[c2 >> 1] | 0; + j[e2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[e2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + e2 = (k[l2 >> 2] | 0) + -6 | 0; + c2 = k[g2 >> 2] | 0; + j[e2 >> 1] = j[c2 >> 1] | 0; + j[e2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[e2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + x = 0; + ra(77, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 31; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 * 6 | 0) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 * 6 | 0) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 6 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 32; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 44; + break a; + } + } + if ((g2 | 0) == 31) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 32) { + d2 = Wa() | 0; + break; + } + } else + g2 = 44; + while (0); + do + if ((g2 | 0) == 44) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); + mj(b2); + fb(d2 | 0); + } + function ch(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0; + N2 = r; + r = r + 32 | 0; + D2 = N2 + 24 | 0; + M2 = N2 + 18 | 0; + L2 = N2 + 12 | 0; + E2 = N2 + 6 | 0; + F2 = N2; + G2 = a2 + 172 | 0; + b2 = k[G2 >> 2] | 0; + if ((b2 | 0) <= 0) { + r = N2; + return; + } + H2 = a2 + 4600 | 0; + I2 = a2 + 4596 | 0; + J2 = a2 + 4604 | 0; + K2 = a2 + 4592 | 0; + C2 = 0; + while (1) { + d2 = C2 + -1 | 0; + e2 = k[H2 >> 2] | 0; + O2 = k[I2 >> 2] | 0; + c2 = C2 + 1 | 0; + f2 = m[O2 + (C2 * 6 | 0) >> 1] | 0; + B2 = k[J2 >> 2] | 0; + g2 = m[O2 + (d2 * 6 | 0) >> 1] | 0; + h2 = f2 - g2 | 0; + l2 = m[e2 + (d2 * 6 | 0) >> 1] | 0; + n2 = g2 - l2 | 0; + o2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) >> 1] | 0) - f2) >> 0] | 0) * 9 | 0) + (i2[B2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + n2 >> 0] | 0) | 0; + p2 = m[O2 + (C2 * 6 | 0) + 2 >> 1] | 0; + q2 = m[O2 + (d2 * 6 | 0) + 2 >> 1] | 0; + s2 = p2 - q2 | 0; + t2 = m[e2 + (d2 * 6 | 0) + 2 >> 1] | 0; + u2 = q2 - t2 | 0; + v2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) + 2 >> 1] | 0) - p2) >> 0] | 0) * 9 | 0) + (i2[B2 + s2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + u2 >> 0] | 0) | 0; + w2 = m[O2 + (C2 * 6 | 0) + 4 >> 1] | 0; + x2 = m[O2 + (d2 * 6 | 0) + 4 >> 1] | 0; + y2 = w2 - x2 | 0; + z2 = m[e2 + (d2 * 6 | 0) + 4 >> 1] | 0; + A2 = x2 - z2 | 0; + B2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) + 4 >> 1] | 0) - w2) >> 0] | 0) * 9 | 0) + (i2[B2 + y2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + A2 >> 0] | 0) | 0; + if (!(v2 | o2 | B2)) { + c2 = e2 + (d2 * 6 | 0) | 0; + j[L2 >> 1] = j[c2 >> 1] | 0; + j[L2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[L2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + j[D2 >> 1] = j[c2 >> 1] | 0; + j[D2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; + j[D2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; + b2 = dh(a2, D2, e2 + (C2 * 6 | 0) | 0, b2 - C2 | 0) | 0; + c2 = b2 + C2 | 0; + if ((c2 | 0) != (k[G2 >> 2] | 0)) { + O2 = (k[I2 >> 2] | 0) + (c2 * 6 | 0) | 0; + j[F2 >> 1] = j[O2 >> 1] | 0; + j[F2 + 2 >> 1] = j[O2 + 2 >> 1] | 0; + j[F2 + 4 >> 1] = j[O2 + 4 >> 1] | 0; + O2 = (k[H2 >> 2] | 0) + (c2 * 6 | 0) | 0; + j[M2 >> 1] = j[L2 >> 1] | 0; + j[M2 + 2 >> 1] = j[L2 + 2 >> 1] | 0; + j[M2 + 4 >> 1] = j[L2 + 4 >> 1] | 0; + j[D2 >> 1] = j[F2 >> 1] | 0; + j[D2 + 2 >> 1] = j[F2 + 2 >> 1] | 0; + j[D2 + 4 >> 1] = j[F2 + 4 >> 1] | 0; + eh(E2, a2, M2, D2); + j[O2 >> 1] = j[E2 >> 1] | 0; + j[O2 + 2 >> 1] = j[E2 + 2 >> 1] | 0; + j[O2 + 4 >> 1] = j[E2 + 4 >> 1] | 0; + O2 = k[K2 >> 2] | 0; + k[K2 >> 2] = (O2 | 0) < 1 ? 0 : O2 + -1 | 0; + b2 = b2 + 1 | 0; + } + c2 = b2 + C2 | 0; + } else { + d2 = m[e2 + (C2 * 6 | 0) >> 1] | 0; + b2 = f2 - l2 >> 31; + if ((b2 ^ n2 | 0) >= 0) + if ((b2 ^ h2 | 0) < 0) + b2 = l2; + else + b2 = l2 - g2 + f2 | 0; + else + b2 = f2; + f2 = fh(a2, o2, d2, b2, 0) | 0; + d2 = m[(k[H2 >> 2] | 0) + (C2 * 6 | 0) + 2 >> 1] | 0; + b2 = p2 - t2 >> 31; + if ((b2 ^ u2 | 0) >= 0) + if ((b2 ^ s2 | 0) < 0) + b2 = t2; + else + b2 = t2 - q2 + p2 | 0; + else + b2 = p2; + d2 = fh(a2, v2, d2, b2, 0) | 0; + e2 = m[(k[H2 >> 2] | 0) + (C2 * 6 | 0) + 4 >> 1] | 0; + b2 = w2 - z2 >> 31; + if ((b2 ^ A2 | 0) >= 0) + if ((b2 ^ y2 | 0) < 0) + b2 = z2; + else + b2 = z2 - x2 + w2 | 0; + else + b2 = w2; + B2 = fh(a2, B2, e2, b2, 0) | 0; + O2 = k[H2 >> 2] | 0; + j[O2 + (C2 * 6 | 0) >> 1] = f2; + j[O2 + (C2 * 6 | 0) + 2 >> 1] = d2; + j[O2 + (C2 * 6 | 0) + 4 >> 1] = B2; + } + b2 = k[G2 >> 2] | 0; + if ((c2 | 0) >= (b2 | 0)) + break; + else + C2 = c2; + } + r = N2; + return; + } + function dh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + f2 = 0; + do { + p2 = c2 + (f2 * 6 | 0) | 0; + j[p2 >> 1] = j[b2 >> 1] | 0; + j[p2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; + j[p2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function eh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0; + i3 = b2 + 4568 | 0; + o2 = gh(b2, i3) | 0; + g2 = gh(b2, i3) | 0; + i3 = gh(b2, i3) | 0; + f2 = b2 + 128 | 0; + e2 = m[d2 >> 1] | 0; + l2 = k[b2 + 136 >> 2] | 0; + n2 = l2 << 1 | 1; + e2 = (ia(ia(n2, o2) | 0, e2 - (m[c2 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; + o2 = 0 - l2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + f2 = k[f2 >> 2] | 0; + if ((f2 + l2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else { + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + f2 = k[f2 >> 2] | 0; + } + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + h2 = e2 & 65535; + e2 = m[d2 + 2 >> 1] | 0; + e2 = (ia(ia(n2, g2) | 0, e2 - (m[c2 + 2 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + l2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + g2 = e2 & 65535; + e2 = m[d2 + 4 >> 1] | 0; + e2 = (ia(ia(n2, i3) | 0, e2 - (m[c2 + 4 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + l2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) == (e2 | 0)) { + b2 = e2; + b2 = b2 & 65535; + j[a2 >> 1] = h2; + o2 = a2 + 2 | 0; + j[o2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = b2; + return; + } + b2 = f2 & ~(e2 >> 31); + b2 = b2 & 65535; + j[a2 >> 1] = h2; + o2 = a2 + 2 | 0; + j[o2 >> 1] = g2; + a2 = a2 + 4 | 0; + j[a2 >> 1] = b2; + return; + } + function fh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 65535; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 65535; + return a2 | 0; + } + function gh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function hh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function ih(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35800; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function jh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35800; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function kh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function lh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + th(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function mh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + nh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function nh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 172 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 3 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + f2 = 19; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = e2; + f2 = e2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + f2 = a2 + 8 | 0; + b: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4596 | 0; + h2 = ia(y2, w2) | 0; + j2 = h2 + 1 | 0; + l2 = a2 + 4600 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 160 | 0; + o2 = a2 + 168 | 0; + p2 = a2 + 164 | 0; + q2 = a2 + 156 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4592 | 0; + u2 = 0; + c: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 3 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (j2 * 3 | 0) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + b2 = k[v2 >> 2] | 0; + e2 = c2 + (b2 * 3 | 0) | 0; + c2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + c2 = k[g2 >> 2] | 0; + e2 = (k[l2 >> 2] | 0) + -3 | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + x = 0; + ra(78, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + f2 = 30; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 3 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + f2 = 31; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + f2 = 43; + break b; + } + } + if ((f2 | 0) == 30) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 31) { + d2 = Wa() | 0; + break; + } + } else + f2 = 43; + while (0); + do + if ((f2 | 0) == 43) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function oh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0; + M2 = r; + r = r + 16 | 0; + C2 = M2 + 12 | 0; + L2 = M2 + 9 | 0; + K2 = M2 + 6 | 0; + D2 = M2 + 3 | 0; + E2 = M2; + F2 = a2 + 172 | 0; + b2 = k[F2 >> 2] | 0; + if ((b2 | 0) <= 0) { + r = M2; + return; + } + G2 = a2 + 4600 | 0; + H2 = a2 + 4596 | 0; + I2 = a2 + 4604 | 0; + J2 = a2 + 4592 | 0; + B2 = 0; + while (1) { + y2 = B2 + -1 | 0; + d2 = k[G2 >> 2] | 0; + e2 = d2 + (y2 * 3 | 0) | 0; + N2 = k[H2 >> 2] | 0; + c2 = B2 + 1 | 0; + f2 = l[N2 + (B2 * 3 | 0) >> 0] | 0; + A2 = k[I2 >> 2] | 0; + g2 = l[N2 + (y2 * 3 | 0) >> 0] | 0; + h2 = f2 - g2 | 0; + j2 = l[e2 >> 0] | 0; + m2 = g2 - j2 | 0; + n2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) >> 0] | 0) - f2) >> 0] | 0) * 9 | 0) + (i2[A2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + m2 >> 0] | 0) | 0; + o2 = l[N2 + (B2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[N2 + (y2 * 3 | 0) + 1 >> 0] | 0; + q2 = o2 - p2 | 0; + s2 = l[d2 + (y2 * 3 | 0) + 1 >> 0] | 0; + t2 = p2 - s2 | 0; + u2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) + 1 >> 0] | 0) - o2) >> 0] | 0) * 9 | 0) + (i2[A2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + t2 >> 0] | 0) | 0; + v2 = l[N2 + (B2 * 3 | 0) + 2 >> 0] | 0; + w2 = l[N2 + (y2 * 3 | 0) + 2 >> 0] | 0; + x2 = v2 - w2 | 0; + y2 = l[d2 + (y2 * 3 | 0) + 2 >> 0] | 0; + z2 = w2 - y2 | 0; + A2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) + 2 >> 0] | 0) - v2) >> 0] | 0) * 9 | 0) + (i2[A2 + x2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + z2 >> 0] | 0) | 0; + if (!(u2 | n2 | A2)) { + i2[K2 >> 0] = i2[e2 >> 0] | 0; + i2[K2 + 1 >> 0] = i2[e2 + 1 >> 0] | 0; + i2[K2 + 2 >> 0] = i2[e2 + 2 >> 0] | 0; + i2[C2 >> 0] = i2[e2 >> 0] | 0; + i2[C2 + 1 >> 0] = i2[e2 + 1 >> 0] | 0; + i2[C2 + 2 >> 0] = i2[e2 + 2 >> 0] | 0; + b2 = ph(a2, C2, d2 + (B2 * 3 | 0) | 0, b2 - B2 | 0) | 0; + c2 = b2 + B2 | 0; + if ((c2 | 0) != (k[F2 >> 2] | 0)) { + N2 = (k[H2 >> 2] | 0) + (c2 * 3 | 0) | 0; + i2[E2 >> 0] = i2[N2 >> 0] | 0; + i2[E2 + 1 >> 0] = i2[N2 + 1 >> 0] | 0; + i2[E2 + 2 >> 0] = i2[N2 + 2 >> 0] | 0; + N2 = k[G2 >> 2] | 0; + i2[L2 >> 0] = i2[K2 >> 0] | 0; + i2[L2 + 1 >> 0] = i2[K2 + 1 >> 0] | 0; + i2[L2 + 2 >> 0] = i2[K2 + 2 >> 0] | 0; + i2[C2 >> 0] = i2[E2 >> 0] | 0; + i2[C2 + 1 >> 0] = i2[E2 + 1 >> 0] | 0; + i2[C2 + 2 >> 0] = i2[E2 + 2 >> 0] | 0; + qh(D2, a2, L2, C2); + N2 = N2 + (c2 * 3 | 0) | 0; + i2[N2 >> 0] = i2[D2 >> 0] | 0; + i2[N2 + 1 >> 0] = i2[D2 + 1 >> 0] | 0; + i2[N2 + 2 >> 0] = i2[D2 + 2 >> 0] | 0; + N2 = k[J2 >> 2] | 0; + k[J2 >> 2] = (N2 | 0) < 1 ? 0 : N2 + -1 | 0; + b2 = b2 + 1 | 0; + } + c2 = b2 + B2 | 0; + } else { + d2 = l[d2 + (B2 * 3 | 0) >> 0] | 0; + b2 = f2 - j2 >> 31; + if ((b2 ^ m2 | 0) >= 0) + if ((b2 ^ h2 | 0) < 0) + b2 = j2; + else + b2 = j2 - g2 + f2 | 0; + else + b2 = f2; + f2 = rh(a2, n2, d2, b2, 0) | 0; + d2 = l[(k[G2 >> 2] | 0) + (B2 * 3 | 0) + 1 >> 0] | 0; + b2 = o2 - s2 >> 31; + if ((b2 ^ t2 | 0) >= 0) + if ((b2 ^ q2 | 0) < 0) + b2 = s2; + else + b2 = s2 - p2 + o2 | 0; + else + b2 = o2; + d2 = rh(a2, u2, d2, b2, 0) | 0; + e2 = l[(k[G2 >> 2] | 0) + (B2 * 3 | 0) + 2 >> 0] | 0; + b2 = v2 - y2 >> 31; + if ((b2 ^ z2 | 0) >= 0) + if ((b2 ^ x2 | 0) < 0) + b2 = y2; + else + b2 = y2 - w2 + v2 | 0; + else + b2 = v2; + A2 = rh(a2, A2, e2, b2, 0) | 0; + N2 = (k[G2 >> 2] | 0) + (B2 * 3 | 0) | 0; + i2[N2 >> 0] = f2; + i2[N2 + 1 >> 0] = d2; + i2[N2 + 2 >> 0] = A2; + } + b2 = k[F2 >> 2] | 0; + if ((c2 | 0) >= (b2 | 0)) + break; + else + B2 = c2; + } + r = M2; + return; + } + function ph(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + f2 = 0; + do { + o2 = c2 + (f2 * 3 | 0) | 0; + i2[o2 >> 0] = i2[b2 >> 0] | 0; + i2[o2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[o2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function qh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; + j2 = b2 + 4568 | 0; + o2 = sh(b2, j2) | 0; + g2 = sh(b2, j2) | 0; + j2 = sh(b2, j2) | 0; + f2 = b2 + 128 | 0; + e2 = l[d2 >> 0] | 0; + m2 = k[b2 + 136 >> 2] | 0; + n2 = m2 << 1 | 1; + e2 = (ia(ia(n2, o2) | 0, e2 - (l[c2 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; + o2 = 0 - m2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + f2 = k[f2 >> 2] | 0; + if ((f2 + m2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else { + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + f2 = k[f2 >> 2] | 0; + } + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + h2 = e2 & 255; + e2 = l[d2 + 1 >> 0] | 0; + e2 = (ia(ia(n2, g2) | 0, e2 - (l[c2 + 1 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + m2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) != (e2 | 0)) + e2 = f2 & ~(e2 >> 31); + g2 = e2 & 255; + e2 = l[d2 + 2 >> 0] | 0; + e2 = (ia(ia(n2, j2) | 0, e2 - (l[c2 + 2 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; + if ((e2 | 0) >= (o2 | 0)) { + if ((f2 + m2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; + } else + e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; + if ((e2 & f2 | 0) == (e2 | 0)) { + b2 = e2; + b2 = b2 & 255; + i2[a2 >> 0] = h2; + o2 = a2 + 1 | 0; + i2[o2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = b2; + return; + } + b2 = f2 & ~(e2 >> 31); + b2 = b2 & 255; + i2[a2 >> 0] = h2; + o2 = a2 + 1 | 0; + i2[o2 >> 0] = g2; + a2 = a2 + 2 | 0; + i2[a2 >> 0] = b2; + return; + } + function rh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } + function sh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function th(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function uh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35772; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function vh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35772; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function wh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function xh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 65535, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + Fh(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 1024; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 1024; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 1024; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function yh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + zh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function zh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[C2 >> 2] = d2; + B2 = d2 + (b2 << 1) | 0; + k[C2 + 8 >> 2] = B2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[D2 >> 2] = B2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 18; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 2 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 << 1) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; + j[b2 + -2 >> 1] = j[c2 >> 1] | 0; + x = 0; + ra(79, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 29; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 30; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Ah(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4572 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 148 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4576 | 0; + r2 = a2 + 4580 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Ch(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Bh(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Bh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 65535 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 65535 ^ 65535; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 47) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 16) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 65535; + return b2 | 0; + } + function Ch(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 4576 | 0; + e2 = k[f2 >> 2] | 0; + c2 = j[e2 + (b2 + -1 << 1) >> 1] | 0; + g2 = a2 + 148 | 0; + e2 = Dh(a2, c2, e2 + (b2 << 1) | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; + d2 = e2 + b2 | 0; + if ((d2 | 0) == (k[g2 >> 2] | 0)) { + g2 = e2; + return g2 | 0; + } + c2 = c2 & 65535; + b2 = m[(k[a2 + 4572 >> 2] | 0) + (d2 << 1) >> 1] | 0; + g2 = c2 - b2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) + c2 = (Eh(a2, a2 + 4556 | 0) | 0) + c2 | 0; + else + c2 = (ia(Eh(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; + j[(k[f2 >> 2] | 0) + (d2 << 1) >> 1] = c2; + g2 = a2 + 4568 | 0; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + g2 = e2 + 1 | 0; + return g2 | 0; + } + function Dh(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) > 0) + f2 = 0; + else + return e2 | 0; + do { + j[c2 + (f2 << 1) >> 1] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function Eh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (46 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 16) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function Fh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 65535, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8909] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8910] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 131072) { + if (f2 >>> 0 > 131072 ? (g2 = b2 + 131072 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 131072 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 65536; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -65536; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 65536) + break; + } + r = l2; + return; + } + function Gh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35744; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Hh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35744; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Ih(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 16) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 2; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Jh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 4095, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + Rh(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 64; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 64; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 64; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function Kh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + Lh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function Lh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + g2 = 6; + if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[C2 >> 2] = d2; + B2 = d2 + (b2 << 1) | 0; + k[C2 + 8 >> 2] = B2; + sw(d2 | 0, 0, c2 | 0) | 0; + k[D2 >> 2] = B2; + break; + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + g2 = 18; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + g2 = 16; + if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = f2; + g2 = f2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = g2; + sw(f2 | 0, 0, e2 | 0) | 0; + k[B2 >> 2] = g2; + g2 = 18; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((g2 | 0) == 18) { + f2 = a2 + 8 | 0; + a: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + i3 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + b: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 2 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (i3 << 1) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; + j[b2 + -2 >> 1] = j[c2 >> 1] | 0; + x = 0; + ra(80, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + g2 = 29; + break b; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + g2 = 30; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + g2 = 42; + break a; + } + } + if ((g2 | 0) == 29) { + d2 = Wa() | 0; + break; + } else if ((g2 | 0) == 30) { + d2 = Wa() | 0; + break; + } + } else + g2 = 42; + while (0); + do + if ((g2 | 0) == 42) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); + mj(b2); + fb(d2 | 0); + } + function Mh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; + p2 = a2 + 4572 | 0; + b2 = k[p2 >> 2] | 0; + s2 = a2 + 148 | 0; + if ((k[s2 >> 2] | 0) <= 0) + return; + q2 = a2 + 4576 | 0; + r2 = a2 + 4580 | 0; + e2 = b2; + f2 = m[b2 + -2 >> 1] | 0; + b2 = m[b2 >> 1] | 0; + o2 = 0; + while (1) { + n2 = k[q2 >> 2] | 0; + l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; + d2 = o2 + 1 | 0; + c2 = m[e2 + (d2 << 1) >> 1] | 0; + h2 = k[r2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - l2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (Oh(a2, o2, 0) | 0) + o2 | 0; + c2 = k[p2 >> 2] | 0; + b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; + c2 = m[c2 + (d2 << 1) >> 1] | 0; + } else { + f2 = b2 - l2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + n2 = Nh(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; + j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; + } + if ((d2 | 0) >= (k[s2 >> 2] | 0)) + break; + e2 = k[p2 >> 2] | 0; + f2 = b2; + b2 = c2; + o2 = d2; + } + return; + } + function Nh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 4095 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 4095 ^ 4095; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 35) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 12) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 4095; + b2 = b2 & 65535; + return b2 | 0; + } + function Oh(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 4576 | 0; + e2 = k[f2 >> 2] | 0; + c2 = j[e2 + (b2 + -1 << 1) >> 1] | 0; + g2 = a2 + 148 | 0; + e2 = Ph(a2, c2, e2 + (b2 << 1) | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; + d2 = e2 + b2 | 0; + if ((d2 | 0) == (k[g2 >> 2] | 0)) { + g2 = e2; + return g2 | 0; + } + c2 = c2 & 65535; + b2 = m[(k[a2 + 4572 >> 2] | 0) + (d2 << 1) >> 1] | 0; + g2 = c2 - b2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) + c2 = (Qh(a2, a2 + 4556 | 0) | 0) + c2 | 0; + else + c2 = (ia(Qh(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; + j[(k[f2 >> 2] | 0) + (d2 << 1) >> 1] = c2 & 4095; + g2 = a2 + 4568 | 0; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + g2 = e2 + 1 | 0; + return g2 | 0; + } + function Ph(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + h2 = a2 + 112 | 0; + l2 = a2 + 108 | 0; + m2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[l2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[l2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + n2 = 8; + break; + } + g2 = k[m2 >> 2] | 0; + o2 = 1 << k[36476 + (g2 << 2) >> 2]; + p2 = d2 - f2 | 0; + p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; + f2 = p2 + f2 | 0; + if ((p2 | 0) == (o2 | 0)) + k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((n2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[m2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + Ua(e2 | 0); + fb(p2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) > 0) + f2 = 0; + else + return e2 | 0; + do { + j[c2 + (f2 << 1) >> 1] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function Qh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (34 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 12) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function Rh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 4095, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8906] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8907] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 8192) { + if (f2 >>> 0 > 8192 ? (g2 = b2 + 8192 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 8192 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 4096; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -4096; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 4096) + break; + } + r = l2; + return; + } + function Sh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35716; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function Th(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35716; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function Uh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function Vh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + bi(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 4; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 4; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function Wh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + Xh(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function Xh(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 1 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + f2 = 19; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = e2; + f2 = e2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = f2; + f2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + f2 = a2 + 8 | 0; + b: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + j2 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + c: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 1 | 0; + k[g2 >> 2] = c2; + d2 = d2 + j2 | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + e2 = k[v2 >> 2] | 0; + i2[c2 + e2 >> 0] = i2[c2 + (e2 + -1) >> 0] | 0; + i2[(k[l2 >> 2] | 0) + -1 >> 0] = i2[k[g2 >> 2] >> 0] | 0; + x = 0; + ra(81, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + f2 = 30; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + w2 | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + w2 | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + f2 = 31; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + f2 = 43; + break b; + } + } + if ((f2 | 0) == 30) { + c2 = Wa() | 0; + break; + } else if ((f2 | 0) == 31) { + c2 = Wa() | 0; + break; + } + } else + f2 = 43; + while (0); + do + if ((f2 | 0) == 43) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function Yh(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + o2 = a2 + 4572 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 148 | 0; + if ((k[r2 >> 2] | 0) <= 0) + return; + p2 = a2 + 4576 | 0; + q2 = a2 + 4580 | 0; + e2 = b2; + f2 = l[b2 + -1 >> 0] | 0; + b2 = l[b2 >> 0] | 0; + n2 = 0; + while (1) { + m2 = k[p2 >> 2] | 0; + j2 = l[m2 + (n2 + -1) >> 0] | 0; + d2 = n2 + 1 | 0; + c2 = l[e2 + d2 >> 0] | 0; + h2 = k[q2 >> 2] | 0; + g2 = b2 - f2 | 0; + e2 = f2 - j2 | 0; + h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; + if (!h2) { + d2 = (_h(a2, n2, 0) | 0) + n2 | 0; + c2 = k[o2 >> 2] | 0; + b2 = l[c2 + (d2 + -1) >> 0] | 0; + c2 = l[c2 + d2 >> 0] | 0; + } else { + f2 = b2 - j2 >> 31; + if ((f2 ^ e2 | 0) < 0) + e2 = b2; + else + e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; + m2 = Zh(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; + i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; + } + if ((d2 | 0) >= (k[r2 >> 2] | 0)) + break; + e2 = k[o2 >> 2] | 0; + f2 = b2; + b2 = c2; + n2 = d2; + } + return; + } + function Zh(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 255 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 255 ^ 255; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 23) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 8) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function _h(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 4576 | 0; + e2 = k[f2 >> 2] | 0; + c2 = i2[e2 + (b2 + -1) >> 0] | 0; + g2 = a2 + 148 | 0; + e2 = $h(a2, c2, e2 + b2 | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; + d2 = e2 + b2 | 0; + if ((d2 | 0) == (k[g2 >> 2] | 0)) { + g2 = e2; + return g2 | 0; + } + c2 = c2 & 255; + b2 = l[(k[a2 + 4572 >> 2] | 0) + d2 >> 0] | 0; + g2 = c2 - b2 | 0; + if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) + c2 = (ai(a2, a2 + 4556 | 0) | 0) + c2 | 0; + else + c2 = (ia(ai(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; + i2[(k[f2 >> 2] | 0) + d2 >> 0] = c2; + g2 = a2 + 4568 | 0; + a2 = k[g2 >> 2] | 0; + k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; + g2 = e2 + 1 | 0; + return g2 | 0; + } + function $h(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + sw(c2 | 0, b2 | 0, e2 | 0) | 0; + return e2 | 0; + } + function ai(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (22 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 8) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function bi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function ci(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35688; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function di(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35688; + b2 = k[a2 + 4584 >> 2] | 0; + if (b2) { + c2 = a2 + 4588 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function ei(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 3; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function fi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 32 | 0; + h2 = e2; + Oi(h2, 255, 0); + g2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; + d2 = k[b2 + 12 >> 2] | 0; + d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; + b2 = k[b2 + 16 >> 2] | 0; + c2 = k[h2 + 16 >> 2] | 0; + k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; + k[a2 + 156 >> 2] = f2; + k[a2 + 160 >> 2] = d2; + ni(a2); + d2 = 0; + do { + k[a2 + 164 + (d2 * 12 | 0) >> 2] = 4; + k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; + d2 = d2 + 1 | 0; + } while ((d2 | 0) != 365); + h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; + k[a2 + 4544 >> 2] = 4; + k[a2 + 4548 >> 2] = 0; + i2[a2 + 4552 >> 0] = h2; + i2[a2 + 4553 >> 0] = 1; + i2[a2 + 4554 >> 0] = 0; + k[a2 + 4556 >> 2] = 4; + k[a2 + 4560 >> 2] = 1; + i2[a2 + 4564 >> 0] = h2; + i2[a2 + 4565 >> 0] = 1; + i2[a2 + 4566 >> 0] = 0; + k[a2 + 4568 >> 2] = 0; + r = e2; + return; + } + function gi(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4596 >> 0] = e2 & 1; + b2 = a2 + 132 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + hi(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function hi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + v2 = a2 + 148 | 0; + w2 = (k[v2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + y2 = k[a2 + 20 >> 2] | 0; + else + y2 = 1; + b2 = ia(y2 << 1, w2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + (b2 * 3 | 0); + while (1) { + i2[c2 >> 0] = 0; + i2[c2 + 1 >> 0] = 0; + i2[c2 + 2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 3 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + d2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!y2) + f2 = 19; + else { + if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) + f2 = 17; + if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { + k[z2 >> 2] = e2; + f2 = e2 + (y2 << 2) | 0; + k[z2 + 8 >> 2] = f2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = f2; + f2 = 19; + break; + } + d2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((f2 | 0) == 19) { + f2 = a2 + 8 | 0; + b: + do + if ((k[f2 >> 2] | 0) > 0) { + g2 = a2 + 4572 | 0; + h2 = ia(y2, w2) | 0; + j2 = h2 + 1 | 0; + l2 = a2 + 4576 | 0; + m2 = (y2 | 0) > 0; + n2 = a2 + 136 | 0; + o2 = a2 + 144 | 0; + p2 = a2 + 140 | 0; + q2 = a2 + 132 | 0; + s2 = a2 + 88 | 0; + t2 = a2 + 4568 | 0; + u2 = 0; + c: + while (1) { + d2 = k[C2 >> 2] | 0; + c2 = d2 + 3 | 0; + k[g2 >> 2] = c2; + d2 = d2 + (j2 * 3 | 0) | 0; + k[l2 >> 2] = d2; + if (!(u2 & 1)) + b2 = d2; + else { + k[g2 >> 2] = d2; + k[l2 >> 2] = c2; + b2 = c2; + c2 = d2; + } + if (m2) { + e2 = k[z2 >> 2] | 0; + d2 = 0; + do { + k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; + b2 = k[v2 >> 2] | 0; + e2 = c2 + (b2 * 3 | 0) | 0; + c2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + c2 = k[g2 >> 2] | 0; + e2 = (k[l2 >> 2] | 0) + -3 | 0; + i2[e2 >> 0] = i2[c2 >> 0] | 0; + i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; + i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; + x = 0; + ra(82, a2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + f2 = 30; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; + c2 = (k[g2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[g2 >> 2] = c2; + b2 = (k[l2 >> 2] | 0) + (w2 * 3 | 0) | 0; + k[l2 >> 2] = b2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (y2 | 0)); + } + e2 = k[n2 >> 2] | 0; + if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 3 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { + f2 = 31; + break; + } + u2 = u2 + 1 | 0; + if ((u2 | 0) >= (k[f2 >> 2] | 0)) { + f2 = 43; + break b; + } + } + if ((f2 | 0) == 30) { + d2 = Wa() | 0; + break; + } else if ((f2 | 0) == 31) { + d2 = Wa() | 0; + break; + } + } else + f2 = 43; + while (0); + do + if ((f2 | 0) == 43) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + d2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(d2 | 0); + c2 = k[D2 >> 2] | 0; + if ((c2 | 0) != (b2 | 0)) + k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); + mj(b2); + fb(d2 | 0); + } + function ii(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = a2 + 148 | 0; + if ((k[A2 >> 2] | 0) <= 0) + return; + B2 = a2 + 4576 | 0; + C2 = a2 + 4572 | 0; + D2 = a2 + 4580 | 0; + z2 = 0; + while (1) { + w2 = z2 + -1 | 0; + f2 = k[B2 >> 2] | 0; + g2 = k[C2 >> 2] | 0; + b2 = z2 + 1 | 0; + e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; + y2 = k[D2 >> 2] | 0; + h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; + j2 = e2 - h2 | 0; + m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; + n2 = h2 - m2 | 0; + o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; + d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; + p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; + q2 = d2 - p2 | 0; + r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; + s2 = p2 - r2 | 0; + t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; + c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; + u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; + v2 = c2 - u2 | 0; + w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; + x2 = u2 - w2 | 0; + y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; + if (!(t2 | o2 | y2)) + b2 = (ji(a2, z2, 0) | 0) + z2 | 0; + else { + g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; + f2 = e2 - m2 >> 31; + if ((f2 ^ n2 | 0) >= 0) + if ((f2 ^ j2 | 0) < 0) + e2 = m2; + else + e2 = m2 - h2 + e2 | 0; + g2 = ki(a2, o2, g2, e2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; + e2 = d2 - r2 >> 31; + if ((e2 ^ s2 | 0) >= 0) + if ((e2 ^ q2 | 0) < 0) + d2 = r2; + else + d2 = r2 - p2 + d2 | 0; + e2 = ki(a2, t2, f2, d2, 0) | 0; + f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; + d2 = c2 - w2 >> 31; + if ((d2 ^ x2 | 0) >= 0) + if ((d2 ^ v2 | 0) < 0) + c2 = w2; + else + c2 = w2 - u2 + c2 | 0; + y2 = ki(a2, y2, f2, c2, 0) | 0; + z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; + i2[z2 >> 0] = g2; + i2[z2 + 1 >> 0] = e2; + i2[z2 + 2 >> 0] = y2; + } + if ((b2 | 0) < (k[A2 >> 2] | 0)) + z2 = b2; + else + break; + } + return; + } + function ji(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + j2 = r; + r = r + 16 | 0; + m2 = j2 + 3 | 0; + n2 = j2; + f2 = a2 + 4576 | 0; + c2 = k[f2 >> 2] | 0; + d2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; + g2 = i2[d2 >> 0] | 0; + h2 = i2[d2 + 1 >> 0] | 0; + d2 = i2[d2 + 2 >> 0] | 0; + i2[n2 >> 0] = g2; + i2[n2 + 1 >> 0] = h2; + i2[n2 + 2 >> 0] = d2; + l2 = a2 + 148 | 0; + e2 = (k[l2 >> 2] | 0) - b2 | 0; + i2[m2 >> 0] = i2[n2 >> 0] | 0; + i2[m2 + 1 >> 0] = i2[n2 + 1 >> 0] | 0; + i2[m2 + 2 >> 0] = i2[n2 + 2 >> 0] | 0; + e2 = li(a2, m2, c2 + (b2 * 3 | 0) | 0, e2) | 0; + c2 = e2 + b2 | 0; + if ((c2 | 0) == (k[l2 >> 2] | 0)) { + n2 = e2; + r = j2; + return n2 | 0; + } + m2 = (k[a2 + 4572 >> 2] | 0) + (c2 * 3 | 0) | 0; + b2 = i2[m2 >> 0] | 0; + l2 = i2[m2 + 1 >> 0] | 0; + m2 = i2[m2 + 2 >> 0] | 0; + n2 = k[f2 >> 2] | 0; + f2 = a2 + 4544 | 0; + p2 = mi(a2, f2) | 0; + o2 = mi(a2, f2) | 0; + b2 = b2 & 255; + b2 = (ia(b2 - (g2 & 255) >> 31 | 1, p2) | 0) + b2 & 255; + l2 = l2 & 255; + l2 = (ia(l2 - (h2 & 255) >> 31 | 1, o2) | 0) + l2 & 255; + m2 = m2 & 255; + m2 = (ia(m2 - (d2 & 255) >> 31 | 1, mi(a2, f2) | 0) | 0) + m2 & 255; + n2 = n2 + (c2 * 3 | 0) | 0; + i2[n2 >> 0] = b2; + i2[n2 + 1 >> 0] = l2; + i2[n2 + 2 >> 0] = m2; + n2 = a2 + 4568 | 0; + m2 = k[n2 >> 2] | 0; + k[n2 >> 2] = (m2 | 0) < 1 ? 0 : m2 + -1 | 0; + n2 = e2 + 1 | 0; + r = j2; + return n2 | 0; + } + function ki(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = b2 >> 31; + m2 = (q2 ^ b2) - q2 | 0; + p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 164 + (m2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + f2 = 5; + while (1) + if ((c2 << f2 | 0) < (e2 | 0)) + f2 = f2 + 1 | 0; + else + break; + } else + f2 = 4; + else + f2 = 3; + else + f2 = 2; + else + f2 = 1; + else + f2 = 0; + n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; + if ((c2 & 255 | 0) != (c2 | 0)) + c2 = c2 >> 31 & 255 ^ 255; + e2 = a2 + 112 | 0; + if ((k[e2 >> 2] | 0) < 8) + qe(a2); + d2 = a2 + 108 | 0; + g2 = k[d2 >> 2] | 0; + h2 = g2 >>> 24; + l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; + if (!l2) { + e2 = Tg(a2) | 0; + if ((e2 | 0) < 23) { + if (f2) + e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; + } else + e2 = (Ug(a2, 8) | 0) + 1 | 0; + e2 = e2 << 31 >> 31 ^ e2 >> 1; + if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; + k[d2 >> 2] = g2 << l2; + e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; + } + l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; + d2 = k[l2 >> 2] | 0; + if (!f2) { + a2 = j[p2 >> 1] | 0; + f2 = a2; + e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; + } else + f2 = j[p2 >> 1] | 0; + g2 = f2 << 16 >> 16 == 64; + a2 = g2 & 1; + h2 = d2 + e2 >> a2; + g2 = g2 ? 32 : f2 << 16 >> 16; + k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; + d2 = g2 + 1 | 0; + j[p2 >> 1] = d2; + f2 = d2 + h2 | 0; + if ((f2 | 0) < 1) { + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); + p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + if ((h2 | 0) <= 0) { + p2 = h2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + p2 = h2 - d2 | 0; + o2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); + p2 = (p2 | 0) > 0 ? 0 : p2; + k[l2 >> 2] = p2; + q2 = e2 ^ q2; + b2 = b2 >>> 31; + b2 = c2 + b2 | 0; + b2 = b2 + q2 | 0; + b2 = b2 & 255; + return b2 | 0; + } + function li(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4568 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + f2 = 0; + do { + o2 = c2 + (f2 * 3 | 0) | 0; + i2[o2 >> 0] = i2[b2 >> 0] | 0; + i2[o2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; + i2[o2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (e2 | 0)); + return e2 | 0; + } + function mi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + h2 = b2 + 9 | 0; + c2 = l[h2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; + c2 = Tg(a2) | 0; + do + if ((c2 | 0) < (22 - e2 | 0)) + if (!d2) { + a2 = k[f2 >> 2] | 0; + e2 = a2 + c2 | 0; + d2 = e2 & 1; + e2 = (d2 + e2 | 0) / 2 | 0; + g2 = 8; + break; + } else { + c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + j2 = e2 & 1; + d2 = j2; + f2 = 1; + e2 = (j2 + e2 | 0) / 2 | 0; + break; + } + else { + c2 = (Ug(a2, 8) | 0) + 1 | 0; + a2 = k[f2 >> 2] | 0; + e2 = c2 + a2 | 0; + f2 = e2 & 1; + e2 = (f2 + e2 | 0) / 2 | 0; + if (!d2) { + d2 = f2; + g2 = 8; + } else { + d2 = f2; + f2 = 1; + } + } + while (0); + if ((g2 | 0) == 8) + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; + e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[h2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + j2 = d2; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[h2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + j2 = j2 & 255; + j2 = j2 + 1 | 0; + j2 = j2 & 255; + i2[h2 >> 0] = j2; + return e2 | 0; + } + function Vp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 128 | 0; + f2 = m2; + o2 = m2 + 116 | 0; + p2 = m2 + 104 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 0, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = cv(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Wp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 240 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 204 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 0, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 23, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = cv(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Xp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 352 | 0; + t2 = z2 + 312 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 316 | 0; + s2 = z2 + 80 | 0; + h2 = z2 + 84 | 0; + y2 = z2 + 76 | 0; + w2 = z2 + 72 | 0; + u2 = z2 + 68 | 0; + v2 = z2 + 64 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58898, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, k[n2 >> 2] = k[c2 + 8 >> 2], p[n2 + 8 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 3) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(4, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(40, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function Yp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + y2 = r; + r = r + 16 | 0; + z2 = y2; + w2 = Ss(g2, 44212) | 0; + u2 = Ss(g2, 44368) | 0; + Mb[k[(k[u2 >> 2] | 0) + 20 >> 2] & 127](z2, u2); + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, g2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) + t2 = 8; + else { + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 4; + k[l2 >> 2] = g2; + l2 = a2 + 1 | 0; + t2 = 10; + } + break; + } + default: { + l2 = a2; + t2 = 10; + } + } + a: + do + if ((t2 | 0) == 10) { + v2 = c2; + b: + do + if ((v2 - l2 | 0) > 1 ? (i2[l2 >> 0] | 0) == 48 : 0) { + h2 = l2 + 1 | 0; + switch (i2[h2 >> 0] | 0) { + case 88: + case 120: + break; + default: { + t2 = 11; + break b; + } + } + x = 0; + g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, 48) | 0; + s2 = x; + x = 0; + if (s2 & 1) { + t2 = 8; + break a; + } + s2 = k[f2 >> 2] | 0; + k[f2 >> 2] = s2 + 4; + k[s2 >> 2] = g2; + l2 = l2 + 2 | 0; + x = 0; + g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, i2[h2 >> 0] | 0) | 0; + s2 = x; + x = 0; + if (s2 & 1) { + t2 = 8; + break a; + } + s2 = k[f2 >> 2] | 0; + k[f2 >> 2] = s2 + 4; + k[s2 >> 2] = g2; + if (l2 >>> 0 < c2 >>> 0) { + g2 = l2; + while (1) { + h2 = i2[g2 >> 0] | 0; + x = 0; + j2 = Da(3) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + x = 0; + h2 = Aa(39, h2 << 24 >> 24 | 0, j2 | 0) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + if (!h2) { + s2 = l2; + break b; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + s2 = l2; + break b; + } + } + g2 = Wa() | 0; + break a; + } else { + s2 = l2; + g2 = l2; + } + } else + t2 = 11; + while (0); + c: + do + if ((t2 | 0) == 11) + if (l2 >>> 0 < c2 >>> 0) { + g2 = l2; + while (1) { + h2 = i2[g2 >> 0] | 0; + x = 0; + j2 = Da(3) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + x = 0; + h2 = Aa(40, h2 << 24 >> 24 | 0, j2 | 0) | 0; + s2 = x; + x = 0; + if (s2 & 1) + break; + if (!h2) { + s2 = l2; + break c; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + s2 = l2; + break c; + } + } + g2 = Wa() | 0; + break a; + } else { + s2 = l2; + g2 = l2; + } + while (0); + p2 = i2[z2 >> 0] | 0; + q2 = z2 + 4 | 0; + if (((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0) { + if ((s2 | 0) != (g2 | 0) ? (m2 = g2 + -1 | 0, s2 >>> 0 < m2 >>> 0) : 0) { + j2 = s2; + h2 = m2; + do { + p2 = i2[j2 >> 0] | 0; + i2[j2 >> 0] = i2[h2 >> 0] | 0; + i2[h2 >> 0] = p2; + j2 = j2 + 1 | 0; + h2 = h2 + -1 | 0; + } while (j2 >>> 0 < h2 >>> 0); + } + x = 0; + m2 = ta(k[(k[u2 >> 2] | 0) + 16 >> 2] | 0, u2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 8; + break; + } + n2 = z2 + 8 | 0; + o2 = z2 + 1 | 0; + d: + do + if (s2 >>> 0 < g2 >>> 0) { + h2 = 0; + j2 = 0; + p2 = s2; + while (1) { + l2 = i2[((i2[z2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0) + j2 >> 0] | 0; + if (l2 << 24 >> 24 > 0 & (h2 | 0) == (l2 << 24 >> 24 | 0)) { + h2 = k[f2 >> 2] | 0; + k[f2 >> 2] = h2 + 4; + k[h2 >> 2] = m2; + h2 = i2[z2 >> 0] | 0; + l2 = 0; + j2 = (j2 >>> 0 < (((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + j2 | 0; + } else + l2 = h2; + x = 0; + h2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, i2[p2 >> 0] | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) + break; + A2 = k[f2 >> 2] | 0; + k[f2 >> 2] = A2 + 4; + k[A2 >> 2] = h2; + p2 = p2 + 1 | 0; + if (p2 >>> 0 >= g2 >>> 0) + break d; + else + h2 = l2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + h2 = d2 + (s2 - a2 << 2) | 0; + l2 = k[f2 >> 2] | 0; + if ((h2 | 0) != (l2 | 0)) { + j2 = l2 + -4 | 0; + if (h2 >>> 0 < j2 >>> 0) { + do { + A2 = k[h2 >> 2] | 0; + k[h2 >> 2] = k[j2 >> 2]; + k[j2 >> 2] = A2; + h2 = h2 + 4 | 0; + j2 = j2 + -4 | 0; + } while (h2 >>> 0 < j2 >>> 0); + m2 = w2; + h2 = l2; + } else { + m2 = w2; + h2 = l2; + } + } else + m2 = w2; + } else { + x = 0; + Ea(k[(k[w2 >> 2] | 0) + 48 >> 2] | 0, w2 | 0, s2 | 0, g2 | 0, k[f2 >> 2] | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + t2 = 8; + break; + } + h2 = (k[f2 >> 2] | 0) + (g2 - s2 << 2) | 0; + k[f2 >> 2] = h2; + m2 = w2; + } + e: + do + if (g2 >>> 0 < c2 >>> 0) { + while (1) { + h2 = i2[g2 >> 0] | 0; + if (h2 << 24 >> 24 == 46) { + j2 = g2; + break; + } + x = 0; + j2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, h2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + t2 = 4; + break; + } + A2 = k[f2 >> 2] | 0; + h2 = A2 + 4 | 0; + k[f2 >> 2] = h2; + k[A2 >> 2] = j2; + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) + break e; + } + if ((t2 | 0) == 4) { + g2 = Wa() | 0; + break a; + } + x = 0; + g2 = ta(k[(k[u2 >> 2] | 0) + 12 >> 2] | 0, u2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + t2 = 8; + break a; + } + A2 = k[f2 >> 2] | 0; + h2 = A2 + 4 | 0; + k[f2 >> 2] = h2; + k[A2 >> 2] = g2; + g2 = j2 + 1 | 0; + } + while (0); + x = 0; + Ea(k[(k[w2 >> 2] | 0) + 48 >> 2] | 0, w2 | 0, g2 | 0, c2 | 0, h2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) + t2 = 8; + else { + A2 = (k[f2 >> 2] | 0) + (v2 - g2 << 2) | 0; + k[f2 >> 2] = A2; + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? A2 : d2 + (b2 - a2 << 2) | 0; + Sm(z2); + r = y2; + return; + } + } + while (0); + if ((t2 | 0) == 8) + g2 = Wa() | 0; + Sm(z2); + fb(g2 | 0); + } + function Zp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 352 | 0; + t2 = z2 + 304 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 308 | 0; + s2 = z2 + 72 | 0; + h2 = z2 + 76 | 0; + y2 = z2 + 68 | 0; + w2 = z2 + 64 | 0; + u2 = z2 + 60 | 0; + v2 = z2 + 56 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58899, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, p[n2 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 3) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(4, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(40, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function _p(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 192 | 0; + j2 = o2; + a2 = o2 + 180 | 0; + m2 = o2 + 160 | 0; + n2 = o2 + 12 | 0; + h2 = o2 + 8 | 0; + l2 = o2 + 4 | 0; + i2[a2 >> 0] = i2[58901] | 0; + i2[a2 + 1 >> 0] = i2[58902] | 0; + i2[a2 + 2 >> 0] = i2[58903] | 0; + i2[a2 + 3 >> 0] = i2[58904] | 0; + i2[a2 + 4 >> 0] = i2[58905] | 0; + i2[a2 + 5 >> 0] = i2[58906] | 0; + f2 = fp() | 0; + k[j2 >> 2] = e2; + a2 = av(m2, 20, f2, a2, j2) | 0; + e2 = m2 + a2 | 0; + f2 = Fp(m2, e2, c2) | 0; + g2 = tn(c2) | 0; + k[h2 >> 2] = g2; + x = 0; + h2 = Aa(37, h2 | 0, 44212) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + zm(g2) | 0; + fb(p2 | 0); + } else { + zm(g2) | 0; + Zb[k[(k[h2 >> 2] | 0) + 48 >> 2] & 31](h2, m2, e2, n2) | 0; + p2 = n2 + (a2 << 2) | 0; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + p2 = cv(j2, n2, (f2 | 0) == (e2 | 0) ? p2 : n2 + (f2 - m2 << 2) | 0, p2, c2, d2) | 0; + r = o2; + return p2 | 0; + } + return 0; + } + function $p(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; + C2 = r; + r = r + 32 | 0; + v2 = C2 + 16 | 0; + u2 = C2 + 12 | 0; + z2 = C2 + 8 | 0; + w2 = C2 + 4 | 0; + y2 = C2; + m2 = tn(d2) | 0; + k[z2 >> 2] = m2; + x = 0; + z2 = Aa(37, z2 | 0, 44220) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + C2 = Wa() | 0; + zm(m2) | 0; + fb(C2 | 0); + } + zm(m2) | 0; + k[e2 >> 2] = 0; + t2 = z2 + 8 | 0; + m2 = k[b2 >> 2] | 0; + a: + do + if ((g2 | 0) != (h2 | 0)) { + b: + while (1) { + n2 = m2; + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + m2 = 0; + n2 = 0; + } + } else + m2 = 0; + q2 = (m2 | 0) == 0; + p2 = k[c2 >> 2] | 0; + o2 = p2; + do + if (p2) { + if ((k[p2 + 12 >> 2] | 0) == (k[p2 + 16 >> 2] | 0) ? (Ob[k[(k[p2 >> 2] | 0) + 36 >> 2] & 127](p2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + o2 = 0; + B2 = 12; + break; + } + if (!q2) { + B2 = 13; + break b; + } + } else + B2 = 12; + while (0); + if ((B2 | 0) == 12) { + B2 = 0; + if (q2) { + B2 = 13; + break; + } else + p2 = 0; + } + c: + do + if ((Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[g2 >> 0] | 0, 0) | 0) << 24 >> 24 == 37) { + p2 = g2 + 1 | 0; + if ((p2 | 0) == (h2 | 0)) { + B2 = 17; + break b; + } + s2 = Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[p2 >> 0] | 0, 0) | 0; + switch (s2 << 24 >> 24) { + case 48: + case 69: { + q2 = g2 + 2 | 0; + if ((q2 | 0) == (h2 | 0)) { + B2 = 20; + break b; + } + g2 = p2; + p2 = Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[q2 >> 0] | 0, 0) | 0; + m2 = s2; + break; + } + default: { + p2 = s2; + m2 = 0; + } + } + s2 = k[(k[a2 >> 2] | 0) + 36 >> 2] | 0; + k[w2 >> 2] = n2; + k[y2 >> 2] = o2; + k[u2 >> 2] = k[w2 >> 2]; + k[v2 >> 2] = k[y2 >> 2]; + s2 = ac[s2 & 15](a2, u2, v2, d2, e2, f2, p2, m2) | 0; + k[b2 >> 2] = s2; + g2 = g2 + 2 | 0; + } else { + n2 = i2[g2 >> 0] | 0; + if (n2 << 24 >> 24 > -1 ? (A2 = k[t2 >> 2] | 0, (j[A2 + (n2 << 24 >> 24 << 1) >> 1] & 8192) != 0) : 0) { + do { + g2 = g2 + 1 | 0; + if ((g2 | 0) == (h2 | 0)) { + g2 = h2; + break; + } + n2 = i2[g2 >> 0] | 0; + if (n2 << 24 >> 24 <= -1) + break; + } while ((j[A2 + (n2 << 24 >> 24 << 1) >> 1] & 8192) != 0); + n2 = p2; + while (1) { + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + m2 = 0; + } + } else + m2 = 0; + o2 = (m2 | 0) == 0; + do + if (p2) { + if ((k[p2 + 12 >> 2] | 0) != (k[p2 + 16 >> 2] | 0)) + if (o2) { + s2 = n2; + break; + } else + break c; + if ((Ob[k[(k[p2 >> 2] | 0) + 36 >> 2] & 127](p2) | 0) != -1) + if (o2 ^ (n2 | 0) == 0) { + s2 = n2; + p2 = n2; + break; + } else + break c; + else { + k[c2 >> 2] = 0; + n2 = 0; + B2 = 39; + break; + } + } else + B2 = 39; + while (0); + if ((B2 | 0) == 39) { + B2 = 0; + if (o2) + break c; + else { + s2 = n2; + p2 = 0; + } + } + o2 = m2 + 12 | 0; + n2 = k[o2 >> 2] | 0; + q2 = m2 + 16 | 0; + if ((n2 | 0) == (k[q2 >> 2] | 0)) + n2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; + else + n2 = l[n2 >> 0] | 0; + if ((n2 & 255) << 24 >> 24 <= -1) + break c; + if (!(j[(k[t2 >> 2] | 0) + (n2 << 24 >> 24 << 1) >> 1] & 8192)) + break c; + n2 = k[o2 >> 2] | 0; + if ((n2 | 0) == (k[q2 >> 2] | 0)) { + Ob[k[(k[m2 >> 2] | 0) + 40 >> 2] & 127](m2) | 0; + n2 = s2; + continue; + } else { + k[o2 >> 2] = n2 + 1; + n2 = s2; + continue; + } + } + } + o2 = m2 + 12 | 0; + n2 = k[o2 >> 2] | 0; + p2 = m2 + 16 | 0; + if ((n2 | 0) == (k[p2 >> 2] | 0)) + n2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; + else + n2 = l[n2 >> 0] | 0; + s2 = Vb[k[(k[z2 >> 2] | 0) + 12 >> 2] & 63](z2, n2 & 255) | 0; + if (s2 << 24 >> 24 != (Vb[k[(k[z2 >> 2] | 0) + 12 >> 2] & 63](z2, i2[g2 >> 0] | 0) | 0) << 24 >> 24) { + B2 = 57; + break b; + } + n2 = k[o2 >> 2] | 0; + if ((n2 | 0) == (k[p2 >> 2] | 0)) + Ob[k[(k[m2 >> 2] | 0) + 40 >> 2] & 127](m2) | 0; + else + k[o2 >> 2] = n2 + 1; + g2 = g2 + 1 | 0; + } + while (0); + m2 = k[b2 >> 2] | 0; + if (!((g2 | 0) != (h2 | 0) & (k[e2 >> 2] | 0) == 0)) + break a; + } + if ((B2 | 0) == 13) { + k[e2 >> 2] = 4; + break; + } else if ((B2 | 0) == 17) { + k[e2 >> 2] = 4; + break; + } else if ((B2 | 0) == 20) { + k[e2 >> 2] = 4; + break; + } else if ((B2 | 0) == 57) { + k[e2 >> 2] = 4; + m2 = k[b2 >> 2] | 0; + break; + } + } + while (0); + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + m2 = 0; + } + } else + m2 = 0; + g2 = (m2 | 0) == 0; + n2 = k[c2 >> 2] | 0; + do + if (n2) { + if ((k[n2 + 12 >> 2] | 0) == (k[n2 + 16 >> 2] | 0) ? (Ob[k[(k[n2 >> 2] | 0) + 36 >> 2] & 127](n2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + B2 = 67; + break; + } + if (!g2) + B2 = 68; + } else + B2 = 67; + while (0); + if ((B2 | 0) == 67 ? g2 : 0) + B2 = 68; + if ((B2 | 0) == 68) + k[e2 >> 2] = k[e2 >> 2] | 2; + r = C2; + return m2 | 0; + } + function aq(a2) { + a2 = a2 | 0; + return; + } + function bq(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function cq(a2) { + a2 = a2 | 0; + return 2; + } + function dq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = $p(a2, i3, h2, d2, e2, f2, 58907, 58915) | 0; + r = g2; + return a2 | 0; + } + function eq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + j2 = g2 + 8 | 0; + m2 = g2 + 4 | 0; + l2 = g2; + n2 = a2 + 8 | 0; + n2 = Ob[k[(k[n2 >> 2] | 0) + 20 >> 2] & 127](n2) | 0; + k[m2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + c2 = i2[n2 >> 0] | 0; + o2 = (c2 & 1) == 0; + b2 = o2 ? n2 + 1 | 0 : k[n2 + 8 >> 2] | 0; + c2 = b2 + (o2 ? (c2 & 255) >>> 1 : k[n2 + 4 >> 2] | 0) | 0; + k[j2 >> 2] = k[m2 >> 2]; + k[h2 >> 2] = k[l2 >> 2]; + a2 = $p(a2, j2, h2, d2, e2, f2, b2, c2) | 0; + r = g2; + return a2 | 0; + } + function fq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44220) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + gq(a2, f2 + 24 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function gq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[k[a2 >> 2] >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Hu(c2, h2, a2, a2 + 168 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 168) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 7 | 0; + r = g2; + return; + } + function hq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44220) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + iq(a2, f2 + 16 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function iq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[(k[a2 >> 2] | 0) + 4 >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Hu(c2, h2, a2, a2 + 288 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 288) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 12 | 0; + r = g2; + return; + } + function jq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44220) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + kq(a2, f2 + 20 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function kq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) { + if ((a2 | 0) < 69) + a2 = a2 + 2e3 | 0; + else + a2 = (a2 + -69 | 0) >>> 0 < 31 ? a2 + 1900 | 0 : a2; + k[b2 >> 2] = a2 + -1900; + } + r = g2; + return; + } + function lq(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0; + U2 = r; + r = r + 144 | 0; + j2 = U2 + 132 | 0; + h2 = U2 + 116 | 0; + N2 = U2 + 128 | 0; + w2 = U2 + 124 | 0; + I2 = U2 + 120 | 0; + O2 = U2 + 112 | 0; + P2 = U2 + 108 | 0; + Q2 = U2 + 104 | 0; + R2 = U2 + 100 | 0; + S2 = U2 + 96 | 0; + T2 = U2 + 92 | 0; + l2 = U2 + 88 | 0; + m2 = U2 + 84 | 0; + n2 = U2 + 80 | 0; + o2 = U2 + 76 | 0; + p2 = U2 + 72 | 0; + q2 = U2 + 68 | 0; + s2 = U2 + 64 | 0; + t2 = U2 + 60 | 0; + u2 = U2 + 56 | 0; + v2 = U2 + 52 | 0; + y2 = U2 + 48 | 0; + z2 = U2 + 44 | 0; + A2 = U2 + 40 | 0; + B2 = U2 + 36 | 0; + C2 = U2 + 32 | 0; + D2 = U2 + 28 | 0; + E2 = U2 + 24 | 0; + F2 = U2 + 20 | 0; + G2 = U2 + 16 | 0; + H2 = U2 + 12 | 0; + J2 = U2 + 8 | 0; + K2 = U2 + 4 | 0; + L2 = U2; + k[e2 >> 2] = 0; + M2 = tn(d2) | 0; + k[N2 >> 2] = M2; + x = 0; + N2 = Aa(37, N2 | 0, 44220) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = Wa() | 0; + zm(M2) | 0; + fb(W2 | 0); + } + zm(M2) | 0; + do + switch (g2 << 24 >> 24 | 0) { + case 65: + case 97: { + k[w2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[w2 >> 2]; + gq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 104: + case 66: + case 98: { + k[I2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[I2 >> 2]; + iq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 99: { + V2 = a2 + 8 | 0; + V2 = Ob[k[(k[V2 >> 2] | 0) + 12 >> 2] & 127](V2) | 0; + k[O2 >> 2] = k[b2 >> 2]; + k[P2 >> 2] = k[c2 >> 2]; + g2 = i2[V2 >> 0] | 0; + c2 = (g2 & 1) == 0; + W2 = c2 ? V2 + 1 | 0 : k[V2 + 8 >> 2] | 0; + V2 = W2 + (c2 ? (g2 & 255) >>> 1 : k[V2 + 4 >> 2] | 0) | 0; + k[h2 >> 2] = k[O2 >> 2]; + k[j2 >> 2] = k[P2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 101: + case 100: { + k[Q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[Q2 >> 2]; + mq(a2, f2 + 12 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 68: { + k[R2 >> 2] = k[b2 >> 2]; + k[S2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[R2 >> 2]; + k[j2 >> 2] = k[S2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58915, 58923) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 70: { + k[T2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[T2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58923, 58931) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 72: { + k[m2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[m2 >> 2]; + nq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 73: { + k[n2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[n2 >> 2]; + oq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 106: { + k[o2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[o2 >> 2]; + pq(a2, f2 + 28 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 109: { + k[p2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[p2 >> 2]; + qq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 77: { + k[q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[q2 >> 2]; + rq(a2, f2 + 4 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 116: + case 110: { + k[s2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[s2 >> 2]; + sq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 112: { + k[t2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[t2 >> 2]; + tq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 114: { + k[u2 >> 2] = k[b2 >> 2]; + k[v2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[u2 >> 2]; + k[j2 >> 2] = k[v2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58931, 58942) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 82: { + k[y2 >> 2] = k[b2 >> 2]; + k[z2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[y2 >> 2]; + k[j2 >> 2] = k[z2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58942, 58947) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 83: { + k[A2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[A2 >> 2]; + uq(a2, f2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 84: { + k[B2 >> 2] = k[b2 >> 2]; + k[C2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[B2 >> 2]; + k[j2 >> 2] = k[C2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, 58947, 58955) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 119: { + k[D2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[D2 >> 2]; + vq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 120: { + W2 = k[(k[a2 >> 2] | 0) + 20 >> 2] | 0; + k[E2 >> 2] = k[b2 >> 2]; + k[F2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[E2 >> 2]; + k[j2 >> 2] = k[F2 >> 2]; + h2 = Nb[W2 & 63](a2, h2, j2, d2, e2, f2) | 0; + break; + } + case 88: { + V2 = a2 + 8 | 0; + V2 = Ob[k[(k[V2 >> 2] | 0) + 24 >> 2] & 127](V2) | 0; + k[G2 >> 2] = k[b2 >> 2]; + k[H2 >> 2] = k[c2 >> 2]; + g2 = i2[V2 >> 0] | 0; + c2 = (g2 & 1) == 0; + W2 = c2 ? V2 + 1 | 0 : k[V2 + 8 >> 2] | 0; + V2 = W2 + (c2 ? (g2 & 255) >>> 1 : k[V2 + 4 >> 2] | 0) | 0; + k[h2 >> 2] = k[G2 >> 2]; + k[j2 >> 2] = k[H2 >> 2]; + V2 = $p(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 121: { + k[J2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[J2 >> 2]; + kq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 89: { + k[K2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[K2 >> 2]; + wq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 37: { + k[L2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[L2 >> 2]; + xq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + default: { + k[e2 >> 2] = k[e2 >> 2] | 4; + V2 = 28; + } + } + while (0); + if ((V2 | 0) == 28) + h2 = k[b2 >> 2] | 0; + r = U2; + return h2 | 0; + } + function mq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 31 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function nq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 24 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function oq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 12 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function pq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 3) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 366 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function qq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 13 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2 + -1; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function rq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 60 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function sq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + g2 = e2 + 8 | 0; + a: + while (1) { + e2 = k[b2 >> 2] | 0; + do + if (e2) { + if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) + if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { + k[b2 >> 2] = 0; + e2 = 0; + break; + } else { + e2 = k[b2 >> 2] | 0; + break; + } + } else + e2 = 0; + while (0); + e2 = (e2 | 0) == 0; + a2 = k[c2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) != (k[a2 + 16 >> 2] | 0)) + if (e2) + break; + else + break a; + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) != -1) + if (e2) + break; + else + break a; + else { + k[c2 >> 2] = 0; + h2 = 12; + break; + } + } else + h2 = 12; + while (0); + if ((h2 | 0) == 12) { + h2 = 0; + if (e2) { + a2 = 0; + break; + } else + a2 = 0; + } + e2 = k[b2 >> 2] | 0; + f2 = k[e2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[e2 + 16 >> 2] | 0)) + e2 = Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0; + else + e2 = l[f2 >> 0] | 0; + if ((e2 & 255) << 24 >> 24 <= -1) + break; + if (!(j[(k[g2 >> 2] | 0) + (e2 << 24 >> 24 << 1) >> 1] & 8192)) + break; + e2 = k[b2 >> 2] | 0; + a2 = e2 + 12 | 0; + f2 = k[a2 >> 2] | 0; + if ((f2 | 0) == (k[e2 + 16 >> 2] | 0)) { + Ob[k[(k[e2 >> 2] | 0) + 40 >> 2] & 127](e2) | 0; + continue; + } else { + k[a2 >> 2] = f2 + 1; + continue; + } + } + e2 = k[b2 >> 2] | 0; + do + if (e2) { + if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) + if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { + k[b2 >> 2] = 0; + e2 = 0; + break; + } else { + e2 = k[b2 >> 2] | 0; + break; + } + } else + e2 = 0; + while (0); + e2 = (e2 | 0) == 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0) ? (Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + h2 = 32; + break; + } + if (!e2) + h2 = 33; + } else + h2 = 32; + while (0); + if ((h2 | 0) == 32 ? e2 : 0) + h2 = 33; + if ((h2 | 0) == 33) + k[d2 >> 2] = k[d2 >> 2] | 2; + return; + } + function tq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 16 | 0; + h2 = m2 + 4 | 0; + j2 = m2; + l2 = a2 + 8 | 0; + l2 = Ob[k[(k[l2 >> 2] | 0) + 8 >> 2] & 127](l2) | 0; + a2 = i2[l2 >> 0] | 0; + if (!(a2 & 1)) + g2 = (a2 & 255) >>> 1; + else + g2 = k[l2 + 4 >> 2] | 0; + a2 = i2[l2 + 12 >> 0] | 0; + if (!(a2 & 1)) + a2 = (a2 & 255) >>> 1; + else + a2 = k[l2 + 16 >> 2] | 0; + do + if ((g2 | 0) != (0 - a2 | 0)) { + k[j2 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Hu(c2, h2, l2, l2 + 24 | 0, f2, e2, 0) | 0; + g2 = k[b2 >> 2] | 0; + if ((a2 | 0) == (l2 | 0) & (g2 | 0) == 12) { + k[b2 >> 2] = 0; + break; + } + if ((g2 | 0) < 12 & (a2 - l2 | 0) == 12) + k[b2 >> 2] = g2 + 12; + } else + k[e2 >> 2] = k[e2 >> 2] | 4; + while (0); + r = m2; + return; + } + function uq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 61 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function vq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 1) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 7 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function wq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = dv(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) + k[b2 >> 2] = a2 + -1900; + r = g2; + return; + } + function xq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + a2 = k[b2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } else + a2 = 0; + while (0); + f2 = (a2 | 0) == 0; + a2 = k[c2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0) ? (Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + h2 = 11; + break; + } + if (f2) { + g2 = a2; + h2 = 13; + } else + h2 = 12; + } else + h2 = 11; + while (0); + if ((h2 | 0) == 11) + if (f2) + h2 = 12; + else { + g2 = 0; + h2 = 13; + } + a: + do + if ((h2 | 0) == 12) + k[d2 >> 2] = k[d2 >> 2] | 6; + else if ((h2 | 0) == 13) { + a2 = k[b2 >> 2] | 0; + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = l[f2 >> 0] | 0; + if ((Qb[k[(k[e2 >> 2] | 0) + 36 >> 2] & 63](e2, a2 & 255, 0) | 0) << 24 >> 24 != 37) { + k[d2 >> 2] = k[d2 >> 2] | 4; + break; + } + a2 = k[b2 >> 2] | 0; + f2 = a2 + 12 | 0; + e2 = k[f2 >> 2] | 0; + if ((e2 | 0) == (k[a2 + 16 >> 2] | 0)) { + Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + a2 = k[b2 >> 2] | 0; + if (!a2) + a2 = 0; + else + h2 = 21; + } else { + k[f2 >> 2] = e2 + 1; + h2 = 21; + } + do + if ((h2 | 0) == 21) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } + while (0); + a2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0) ? (Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1 : 0) { + k[c2 >> 2] = 0; + h2 = 30; + break; + } + if (a2) + break a; + } else + h2 = 30; + while (0); + if ((h2 | 0) == 30 ? !a2 : 0) + break; + k[d2 >> 2] = k[d2 >> 2] | 2; + } + while (0); + return; + } + function yq(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + w2 = r; + r = r + 32 | 0; + q2 = w2 + 16 | 0; + p2 = w2 + 12 | 0; + u2 = w2 + 8 | 0; + s2 = w2 + 4 | 0; + t2 = w2; + i3 = tn(d2) | 0; + k[u2 >> 2] = i3; + x = 0; + u2 = Aa(37, u2 | 0, 44212) | 0; + o2 = x; + x = 0; + if (o2 & 1) { + w2 = Wa() | 0; + zm(i3) | 0; + fb(w2 | 0); + } + zm(i3) | 0; + k[e2 >> 2] = 0; + i3 = k[b2 >> 2] | 0; + a: + do + if ((g2 | 0) != (h2 | 0)) { + b: + while (1) { + l2 = i3; + if (i3) { + j2 = k[i3 + 12 >> 2] | 0; + if ((j2 | 0) == (k[i3 + 16 >> 2] | 0)) + j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) == -1) { + k[b2 >> 2] = 0; + i3 = 0; + n2 = 1; + o2 = 0; + } else { + n2 = 0; + o2 = l2; + } + } else { + i3 = 0; + n2 = 1; + o2 = l2; + } + m2 = k[c2 >> 2] | 0; + j2 = m2; + do + if (m2) { + l2 = k[m2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[m2 + 16 >> 2] | 0)) + l2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; + else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) != -1) + if (n2) + break; + else { + v2 = 17; + break b; + } + else { + k[c2 >> 2] = 0; + j2 = 0; + v2 = 15; + break; + } + } else + v2 = 15; + while (0); + if ((v2 | 0) == 15) { + v2 = 0; + if (n2) { + v2 = 17; + break; + } else + m2 = 0; + } + c: + do + if ((Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[g2 >> 2] | 0, 0) | 0) << 24 >> 24 == 37) { + l2 = g2 + 4 | 0; + if ((l2 | 0) == (h2 | 0)) { + v2 = 21; + break b; + } + n2 = Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[l2 >> 2] | 0, 0) | 0; + switch (n2 << 24 >> 24) { + case 48: + case 69: { + m2 = g2 + 8 | 0; + if ((m2 | 0) == (h2 | 0)) { + v2 = 24; + break b; + } + g2 = l2; + l2 = Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[m2 >> 2] | 0, 0) | 0; + i3 = n2; + break; + } + default: { + l2 = n2; + i3 = 0; + } + } + n2 = k[(k[a2 >> 2] | 0) + 36 >> 2] | 0; + k[s2 >> 2] = o2; + k[t2 >> 2] = j2; + k[p2 >> 2] = k[s2 >> 2]; + k[q2 >> 2] = k[t2 >> 2]; + o2 = ac[n2 & 15](a2, p2, q2, d2, e2, f2, l2, i3) | 0; + k[b2 >> 2] = o2; + g2 = g2 + 8 | 0; + } else { + if (!(Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, k[g2 >> 2] | 0) | 0)) { + l2 = i3 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = i3 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) + j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + j2 = k[j2 >> 2] | 0; + o2 = Vb[k[(k[u2 >> 2] | 0) + 28 >> 2] & 63](u2, j2) | 0; + if ((o2 | 0) != (Vb[k[(k[u2 >> 2] | 0) + 28 >> 2] & 63](u2, k[g2 >> 2] | 0) | 0)) { + v2 = 61; + break b; + } + j2 = k[l2 >> 2] | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) + Ob[k[(k[i3 >> 2] | 0) + 40 >> 2] & 127](i3) | 0; + else + k[l2 >> 2] = j2 + 4; + g2 = g2 + 4 | 0; + break; + } + do { + g2 = g2 + 4 | 0; + if ((g2 | 0) == (h2 | 0)) { + g2 = h2; + break; + } + } while (Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, k[g2 >> 2] | 0) | 0); + j2 = m2; + n2 = m2; + while (1) { + if (i3) { + l2 = k[i3 + 12 >> 2] | 0; + if ((l2 | 0) == (k[i3 + 16 >> 2] | 0)) + l2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) == -1) { + k[b2 >> 2] = 0; + m2 = 1; + i3 = 0; + } else + m2 = 0; + } else { + m2 = 1; + i3 = 0; + } + do + if (n2) { + l2 = k[n2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[n2 + 16 >> 2] | 0)) + l2 = Ob[k[(k[n2 >> 2] | 0) + 36 >> 2] & 127](n2) | 0; + else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) != -1) + if (m2 ^ (j2 | 0) == 0) { + o2 = j2; + n2 = j2; + break; + } else + break c; + else { + k[c2 >> 2] = 0; + j2 = 0; + v2 = 44; + break; + } + } else + v2 = 44; + while (0); + if ((v2 | 0) == 44) { + v2 = 0; + if (m2) + break c; + else { + o2 = j2; + n2 = 0; + } + } + l2 = i3 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = i3 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) + j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + j2 = k[j2 >> 2] | 0; + if (!(Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, j2) | 0)) + break c; + j2 = k[l2 >> 2] | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + Ob[k[(k[i3 >> 2] | 0) + 40 >> 2] & 127](i3) | 0; + j2 = o2; + continue; + } else { + k[l2 >> 2] = j2 + 4; + j2 = o2; + continue; + } + } + } + while (0); + i3 = k[b2 >> 2] | 0; + if (!((g2 | 0) != (h2 | 0) & (k[e2 >> 2] | 0) == 0)) + break a; + } + if ((v2 | 0) == 17) { + k[e2 >> 2] = 4; + break; + } else if ((v2 | 0) == 21) { + k[e2 >> 2] = 4; + break; + } else if ((v2 | 0) == 24) { + k[e2 >> 2] = 4; + break; + } else if ((v2 | 0) == 61) { + k[e2 >> 2] = 4; + i3 = k[b2 >> 2] | 0; + break; + } + } + while (0); + if (i3) { + g2 = k[i3 + 12 >> 2] | 0; + if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) + g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + i3 = 0; + l2 = 1; + } else + l2 = 0; + } else { + i3 = 0; + l2 = 1; + } + g2 = k[c2 >> 2] | 0; + do + if (g2) { + j2 = k[g2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) != -1) + if (l2) + break; + else { + v2 = 76; + break; + } + else { + k[c2 >> 2] = 0; + v2 = 74; + break; + } + } else + v2 = 74; + while (0); + if ((v2 | 0) == 74 ? l2 : 0) + v2 = 76; + if ((v2 | 0) == 76) + k[e2 >> 2] = k[e2 >> 2] | 2; + r = w2; + return i3 | 0; + } + function zq(a2) { + a2 = a2 | 0; + return; + } + function Aq(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Bq(a2) { + a2 = a2 | 0; + return 2; + } + function Cq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = yq(a2, i3, h2, d2, e2, f2, 44788, 44820) | 0; + r = g2; + return a2 | 0; + } + function Dq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + j2 = g2 + 8 | 0; + m2 = g2 + 4 | 0; + l2 = g2; + p2 = a2 + 8 | 0; + p2 = Ob[k[(k[p2 >> 2] | 0) + 20 >> 2] & 127](p2) | 0; + k[m2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + n2 = i2[p2 >> 0] | 0; + o2 = (n2 & 1) == 0; + c2 = p2 + 4 | 0; + b2 = o2 ? c2 : k[p2 + 8 >> 2] | 0; + c2 = b2 + ((o2 ? (n2 & 255) >>> 1 : k[c2 >> 2] | 0) << 2) | 0; + k[j2 >> 2] = k[m2 >> 2]; + k[h2 >> 2] = k[l2 >> 2]; + a2 = yq(a2, j2, h2, d2, e2, f2, b2, c2) | 0; + r = g2; + return a2 | 0; + } + function Eq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44212) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + Fq(a2, f2 + 24 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function Fq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[k[a2 >> 2] >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Su(c2, h2, a2, a2 + 168 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 168) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 7 | 0; + r = g2; + return; + } + function Gq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44212) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + Hq(a2, f2 + 16 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function Hq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 4 | 0; + i3 = g2; + a2 = a2 + 8 | 0; + a2 = Ob[k[(k[a2 >> 2] | 0) + 4 >> 2] & 127](a2) | 0; + k[i3 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + c2 = (Su(c2, h2, a2, a2 + 288 | 0, f2, e2, 0) | 0) - a2 | 0; + if ((c2 | 0) < 288) + k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 12 | 0; + r = g2; + return; + } + function Iq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2 + 4 | 0; + i3 = j2; + d2 = tn(d2) | 0; + k[g2 >> 2] = d2; + x = 0; + g2 = Aa(37, g2 | 0, 44212) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + l2 = Wa() | 0; + zm(d2) | 0; + fb(l2 | 0); + } else { + zm(d2) | 0; + k[i3 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[i3 >> 2]; + Jq(a2, f2 + 20 | 0, b2, h2, e2, g2); + r = j2; + return k[b2 >> 2] | 0; + } + return 0; + } + function Jq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) { + if ((a2 | 0) < 69) + a2 = a2 + 2e3 | 0; + else + a2 = (a2 + -69 | 0) >>> 0 < 31 ? a2 + 1900 | 0 : a2; + k[b2 >> 2] = a2 + -1900; + } + r = g2; + return; + } + function Kq(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0; + U2 = r; + r = r + 144 | 0; + j2 = U2 + 132 | 0; + h2 = U2 + 116 | 0; + N2 = U2 + 128 | 0; + w2 = U2 + 124 | 0; + I2 = U2 + 120 | 0; + O2 = U2 + 112 | 0; + P2 = U2 + 108 | 0; + Q2 = U2 + 104 | 0; + R2 = U2 + 100 | 0; + S2 = U2 + 96 | 0; + T2 = U2 + 92 | 0; + l2 = U2 + 88 | 0; + m2 = U2 + 84 | 0; + n2 = U2 + 80 | 0; + o2 = U2 + 76 | 0; + p2 = U2 + 72 | 0; + q2 = U2 + 68 | 0; + s2 = U2 + 64 | 0; + t2 = U2 + 60 | 0; + u2 = U2 + 56 | 0; + v2 = U2 + 52 | 0; + y2 = U2 + 48 | 0; + z2 = U2 + 44 | 0; + A2 = U2 + 40 | 0; + B2 = U2 + 36 | 0; + C2 = U2 + 32 | 0; + D2 = U2 + 28 | 0; + E2 = U2 + 24 | 0; + F2 = U2 + 20 | 0; + G2 = U2 + 16 | 0; + H2 = U2 + 12 | 0; + J2 = U2 + 8 | 0; + K2 = U2 + 4 | 0; + L2 = U2; + k[e2 >> 2] = 0; + M2 = tn(d2) | 0; + k[N2 >> 2] = M2; + x = 0; + N2 = Aa(37, N2 | 0, 44212) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = Wa() | 0; + zm(M2) | 0; + fb(W2 | 0); + } + zm(M2) | 0; + do + switch (g2 << 24 >> 24 | 0) { + case 65: + case 97: { + k[w2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[w2 >> 2]; + Fq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 104: + case 66: + case 98: { + k[I2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[I2 >> 2]; + Hq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 99: { + W2 = a2 + 8 | 0; + W2 = Ob[k[(k[W2 >> 2] | 0) + 12 >> 2] & 127](W2) | 0; + k[O2 >> 2] = k[b2 >> 2]; + k[P2 >> 2] = k[c2 >> 2]; + g2 = i2[W2 >> 0] | 0; + c2 = (g2 & 1) == 0; + V2 = W2 + 4 | 0; + W2 = c2 ? V2 : k[W2 + 8 >> 2] | 0; + V2 = W2 + ((c2 ? (g2 & 255) >>> 1 : k[V2 >> 2] | 0) << 2) | 0; + k[h2 >> 2] = k[O2 >> 2]; + k[j2 >> 2] = k[P2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 101: + case 100: { + k[Q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[Q2 >> 2]; + Lq(a2, f2 + 12 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 68: { + k[R2 >> 2] = k[b2 >> 2]; + k[S2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[R2 >> 2]; + k[j2 >> 2] = k[S2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44820, 44852) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 70: { + k[T2 >> 2] = k[b2 >> 2]; + k[l2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[T2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44852, 44884) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 72: { + k[m2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[m2 >> 2]; + Mq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 73: { + k[n2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[n2 >> 2]; + Nq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 106: { + k[o2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[o2 >> 2]; + Oq(a2, f2 + 28 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 109: { + k[p2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[p2 >> 2]; + Pq(a2, f2 + 16 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 77: { + k[q2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[q2 >> 2]; + Qq(a2, f2 + 4 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 116: + case 110: { + k[s2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[s2 >> 2]; + Rq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 112: { + k[t2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[t2 >> 2]; + Sq(a2, f2 + 8 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 114: { + k[u2 >> 2] = k[b2 >> 2]; + k[v2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[u2 >> 2]; + k[j2 >> 2] = k[v2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44884, 44928) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 82: { + k[y2 >> 2] = k[b2 >> 2]; + k[z2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[y2 >> 2]; + k[j2 >> 2] = k[z2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44928, 44948) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 83: { + k[A2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[A2 >> 2]; + Tq(a2, f2, b2, j2, e2, N2); + V2 = 28; + break; + } + case 84: { + k[B2 >> 2] = k[b2 >> 2]; + k[C2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[B2 >> 2]; + k[j2 >> 2] = k[C2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, 44948, 44980) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 119: { + k[D2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[D2 >> 2]; + Uq(a2, f2 + 24 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 120: { + W2 = k[(k[a2 >> 2] | 0) + 20 >> 2] | 0; + k[E2 >> 2] = k[b2 >> 2]; + k[F2 >> 2] = k[c2 >> 2]; + k[h2 >> 2] = k[E2 >> 2]; + k[j2 >> 2] = k[F2 >> 2]; + h2 = Nb[W2 & 63](a2, h2, j2, d2, e2, f2) | 0; + break; + } + case 88: { + W2 = a2 + 8 | 0; + W2 = Ob[k[(k[W2 >> 2] | 0) + 24 >> 2] & 127](W2) | 0; + k[G2 >> 2] = k[b2 >> 2]; + k[H2 >> 2] = k[c2 >> 2]; + g2 = i2[W2 >> 0] | 0; + c2 = (g2 & 1) == 0; + V2 = W2 + 4 | 0; + W2 = c2 ? V2 : k[W2 + 8 >> 2] | 0; + V2 = W2 + ((c2 ? (g2 & 255) >>> 1 : k[V2 >> 2] | 0) << 2) | 0; + k[h2 >> 2] = k[G2 >> 2]; + k[j2 >> 2] = k[H2 >> 2]; + V2 = yq(a2, h2, j2, d2, e2, f2, W2, V2) | 0; + k[b2 >> 2] = V2; + V2 = 28; + break; + } + case 121: { + k[J2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[J2 >> 2]; + Jq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 89: { + k[K2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[K2 >> 2]; + Vq(a2, f2 + 20 | 0, b2, j2, e2, N2); + V2 = 28; + break; + } + case 37: { + k[L2 >> 2] = k[c2 >> 2]; + k[j2 >> 2] = k[L2 >> 2]; + Wq(a2, b2, j2, e2, N2); + V2 = 28; + break; + } + default: { + k[e2 >> 2] = k[e2 >> 2] | 4; + V2 = 28; + } + } + while (0); + if ((V2 | 0) == 28) + h2 = k[b2 >> 2] | 0; + r = U2; + return h2 | 0; + } + function Lq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 31 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Mq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 24 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Nq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 + -1 | 0) >>> 0 < 12 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Oq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 3) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 366 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Pq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 13 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2 + -1; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Qq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 60 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Rq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + a: + while (1) { + a2 = k[b2 >> 2] | 0; + do + if (a2) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 1; + break; + } else { + g2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + g2 = 1; + while (0); + f2 = k[c2 >> 2] | 0; + do + if (f2) { + a2 = k[f2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[f2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (g2) { + g2 = f2; + break; + } else { + g2 = f2; + break a; + } + else { + k[c2 >> 2] = 0; + h2 = 15; + break; + } + } else + h2 = 15; + while (0); + if ((h2 | 0) == 15) { + h2 = 0; + if (g2) { + g2 = 0; + break; + } else + g2 = 0; + } + a2 = k[b2 >> 2] | 0; + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if (!(Qb[k[(k[e2 >> 2] | 0) + 12 >> 2] & 63](e2, 8192, a2) | 0)) + break; + a2 = k[b2 >> 2] | 0; + f2 = a2 + 12 | 0; + g2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (k[a2 + 16 >> 2] | 0)) { + Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + continue; + } else { + k[f2 >> 2] = g2 + 4; + continue; + } + } + a2 = k[b2 >> 2] | 0; + do + if (a2) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + f2 = 1; + break; + } else { + f2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + f2 = 1; + while (0); + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (f2) + break; + else { + h2 = 39; + break; + } + else { + k[c2 >> 2] = 0; + h2 = 37; + break; + } + } else + h2 = 37; + while (0); + if ((h2 | 0) == 37 ? f2 : 0) + h2 = 39; + if ((h2 | 0) == 39) + k[d2 >> 2] = k[d2 >> 2] | 2; + return; + } + function Sq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 16 | 0; + h2 = m2 + 4 | 0; + j2 = m2; + l2 = a2 + 8 | 0; + l2 = Ob[k[(k[l2 >> 2] | 0) + 8 >> 2] & 127](l2) | 0; + a2 = i2[l2 >> 0] | 0; + if (!(a2 & 1)) + g2 = (a2 & 255) >>> 1; + else + g2 = k[l2 + 4 >> 2] | 0; + a2 = i2[l2 + 12 >> 0] | 0; + if (!(a2 & 1)) + a2 = (a2 & 255) >>> 1; + else + a2 = k[l2 + 16 >> 2] | 0; + do + if ((g2 | 0) != (0 - a2 | 0)) { + k[j2 >> 2] = k[d2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Su(c2, h2, l2, l2 + 24 | 0, f2, e2, 0) | 0; + g2 = k[b2 >> 2] | 0; + if ((a2 | 0) == (l2 | 0) & (g2 | 0) == 12) { + k[b2 >> 2] = 0; + break; + } + if ((g2 | 0) < 12 & (a2 - l2 | 0) == 12) + k[b2 >> 2] = g2 + 12; + } else + k[e2 >> 2] = k[e2 >> 2] | 4; + while (0); + r = m2; + return; + } + function Tq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 2) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 61 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Uq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 1) | 0; + c2 = k[e2 >> 2] | 0; + if ((a2 | 0) < 7 & (c2 & 4 | 0) == 0) + k[b2 >> 2] = a2; + else + k[e2 >> 2] = c2 | 4; + r = g2; + return; + } + function Vq(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + g2 = r; + r = r + 16 | 0; + a2 = g2 + 4 | 0; + h2 = g2; + k[h2 >> 2] = k[d2 >> 2]; + k[a2 >> 2] = k[h2 >> 2]; + a2 = ev(c2, a2, e2, f2, 4) | 0; + if (!(k[e2 >> 2] & 4)) + k[b2 >> 2] = a2 + -1900; + r = g2; + return; + } + function Wq(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0; + a2 = k[b2 >> 2] | 0; + do + if (a2) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 1; + break; + } else { + g2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + g2 = 1; + while (0); + f2 = k[c2 >> 2] | 0; + do + if (f2) { + a2 = k[f2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[f2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (g2) { + h2 = f2; + i3 = 17; + break; + } else { + i3 = 16; + break; + } + else { + k[c2 >> 2] = 0; + i3 = 14; + break; + } + } else + i3 = 14; + while (0); + if ((i3 | 0) == 14) + if (g2) + i3 = 16; + else { + h2 = 0; + i3 = 17; + } + a: + do + if ((i3 | 0) == 16) + k[d2 >> 2] = k[d2 >> 2] | 6; + else if ((i3 | 0) == 17) { + a2 = k[b2 >> 2] | 0; + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((Qb[k[(k[e2 >> 2] | 0) + 52 >> 2] & 63](e2, a2, 0) | 0) << 24 >> 24 != 37) { + k[d2 >> 2] = k[d2 >> 2] | 4; + break; + } + a2 = k[b2 >> 2] | 0; + f2 = a2 + 12 | 0; + g2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (k[a2 + 16 >> 2] | 0)) { + Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + a2 = k[b2 >> 2] | 0; + if (!a2) + f2 = 1; + else + i3 = 25; + } else { + k[f2 >> 2] = g2 + 4; + i3 = 25; + } + do + if ((i3 | 0) == 25) { + f2 = k[a2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + else + a2 = k[f2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + f2 = 1; + break; + } else { + f2 = (k[b2 >> 2] | 0) == 0; + break; + } + } + while (0); + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; + else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (f2) + break a; + else + break; + else { + k[c2 >> 2] = 0; + i3 = 37; + break; + } + } else + i3 = 37; + while (0); + if ((i3 | 0) == 37 ? !f2 : 0) + break; + k[d2 >> 2] = k[d2 >> 2] | 2; + } + while (0); + return; + } + function Xq(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + return; + } + function Yq(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + b2 = k[a2 >> 2] | 0; + x = 0; + c2 = Da(3) | 0; + d2 = x; + x = 0; + do + if (!(d2 & 1)) { + if ((b2 | 0) != (c2 | 0) ? (x = 0, qa(188, k[a2 >> 2] | 0), d2 = x, x = 0, d2 & 1) : 0) + break; + return; + } + while (0); + d2 = Wa(0) | 0; + oc(d2); + } + function Zq(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + mj(a2); + return; + } + function _q(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0; + j2 = r; + r = r + 112 | 0; + h2 = j2 + 4 | 0; + c2 = j2; + k[c2 >> 2] = h2 + 100; + $q(a2 + 8 | 0, h2, c2, e2, f2, g2); + e2 = k[c2 >> 2] | 0; + c2 = k[b2 >> 2] | 0; + if ((h2 | 0) != (e2 | 0)) + do { + g2 = i2[h2 >> 0] | 0; + do + if (c2) { + d2 = c2 + 24 | 0; + f2 = k[d2 >> 2] | 0; + if ((f2 | 0) == (k[c2 + 28 >> 2] | 0)) { + b2 = (Vb[k[(k[c2 >> 2] | 0) + 52 >> 2] & 63](c2, g2 & 255) | 0) == -1; + c2 = b2 ? 0 : c2; + break; + } else { + k[d2 >> 2] = f2 + 1; + i2[f2 >> 0] = g2; + break; + } + } else + c2 = 0; + while (0); + h2 = h2 + 1 | 0; + } while ((h2 | 0) != (e2 | 0)); + r = j2; + return c2 | 0; + } + function $q(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 16 | 0; + j2 = l2; + i2[j2 >> 0] = 37; + g2 = j2 + 1 | 0; + i2[g2 >> 0] = e2; + h2 = j2 + 2 | 0; + i2[h2 >> 0] = f2; + i2[j2 + 3 >> 0] = 0; + if (f2 << 24 >> 24) { + i2[g2 >> 0] = f2; + i2[h2 >> 0] = e2; + } + a2 = b2 + (_a(b2 | 0, (k[c2 >> 2] | 0) - b2 | 0, j2 | 0, d2 | 0, k[a2 >> 2] | 0) | 0) | 0; + k[c2 >> 2] = a2; + r = l2; + return; + } + function ar(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + return; + } + function br(a2) { + a2 = a2 | 0; + Yq(a2 + 8 | 0); + mj(a2); + return; + } + function cr(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0; + h2 = r; + r = r + 416 | 0; + d2 = h2 + 8 | 0; + c2 = h2; + k[c2 >> 2] = d2 + 400; + dr(a2 + 8 | 0, d2, c2, e2, f2, g2); + a2 = k[c2 >> 2] | 0; + c2 = k[b2 >> 2] | 0; + if ((d2 | 0) != (a2 | 0)) { + e2 = d2; + do { + d2 = k[e2 >> 2] | 0; + if (!c2) + c2 = 0; + else { + f2 = c2 + 24 | 0; + g2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (k[c2 + 28 >> 2] | 0)) + d2 = Vb[k[(k[c2 >> 2] | 0) + 52 >> 2] & 63](c2, d2) | 0; + else { + k[f2 >> 2] = g2 + 4; + k[g2 >> 2] = d2; + } + c2 = (d2 | 0) == -1 ? 0 : c2; + } + e2 = e2 + 4 | 0; + } while ((e2 | 0) != (a2 | 0)); + } + r = h2; + return c2 | 0; + } + function dr(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 128 | 0; + j2 = g2 + 16 | 0; + l2 = g2 + 12 | 0; + h2 = g2; + i3 = g2 + 8 | 0; + k[l2 >> 2] = j2 + 100; + $q(a2, j2, l2, d2, e2, f2); + e2 = h2; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[i3 >> 2] = j2; + e2 = (k[c2 >> 2] | 0) - b2 >> 2; + f2 = Ak(k[a2 >> 2] | 0) | 0; + x = 0; + e2 = Ea(18, b2 | 0, i3 | 0, e2 | 0, h2 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + e2 = Wa() | 0; + if ((f2 | 0) != 0 ? (x = 0, ta(75, f2 | 0) | 0, l2 = x, x = 0, l2 & 1) : 0) { + l2 = Wa(0) | 0; + oc(l2); + } + fb(e2 | 0); + } + if ((f2 | 0) != 0 ? (x = 0, ta(75, f2 | 0) | 0, l2 = x, x = 0, l2 & 1) : 0) { + l2 = Wa(0) | 0; + oc(l2); + } + if ((e2 | 0) == -1) + $r(58955); + else { + k[c2 >> 2] = b2 + (e2 << 2); + r = g2; + return; + } + } + function er(a2) { + a2 = a2 | 0; + return; + } + function fr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function gr(a2) { + a2 = a2 | 0; + return 127; + } + function hr(a2) { + a2 = a2 | 0; + return 127; + } + function ir(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function jr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function kr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function lr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Rm(a2, 1, 45); + return; + } + function mr(a2) { + a2 = a2 | 0; + return 0; + } + function nr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function or(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function pr(a2) { + a2 = a2 | 0; + return; + } + function qr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function rr(a2) { + a2 = a2 | 0; + return 127; + } + function sr(a2) { + a2 = a2 | 0; + return 127; + } + function tr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function ur(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function vr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function wr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Rm(a2, 1, 45); + return; + } + function xr(a2) { + a2 = a2 | 0; + return 0; + } + function yr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function zr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Ar(a2) { + a2 = a2 | 0; + return; + } + function Br(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Cr(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Dr(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Er(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Fr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Gr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Hr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + dn(a2, 1, 45); + return; + } + function Ir(a2) { + a2 = a2 | 0; + return 0; + } + function Jr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Kr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Lr(a2) { + a2 = a2 | 0; + return; + } + function Mr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Nr(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Or(a2) { + a2 = a2 | 0; + return 2147483647; + } + function Pr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Qr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Rr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function Sr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + dn(a2, 1, 45); + return; + } + function Tr(a2) { + a2 = a2 | 0; + return 0; + } + function Ur(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Vr(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + i2[a2 >> 0] = 2; + i2[a2 + 1 >> 0] = 3; + i2[a2 + 2 >> 0] = 0; + i2[a2 + 3 >> 0] = 4; + return; + } + function Wr(a2) { + a2 = a2 | 0; + return; + } + function Xr(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Yr(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + B2 = r; + r = r + 240 | 0; + z2 = B2 + 24 | 0; + A2 = B2; + a2 = B2 + 136 | 0; + D2 = B2 + 16 | 0; + y2 = B2 + 12 | 0; + C2 = B2 + 8 | 0; + n2 = B2 + 134 | 0; + j2 = B2 + 4 | 0; + w2 = B2 + 124 | 0; + k[D2 >> 2] = a2; + E2 = D2 + 4 | 0; + k[E2 >> 2] = 189; + l2 = a2 + 100 | 0; + x = 0; + h2 = ta(68, e2 | 0) | 0; + v2 = x; + x = 0; + if (!(v2 & 1)) { + k[C2 >> 2] = h2; + x = 0; + a2 = Aa(37, C2 | 0, 44220) | 0; + v2 = x; + x = 0; + a: + do + if (!(v2 & 1) ? (i2[n2 >> 0] = 0, k[j2 >> 2] = k[c2 >> 2], m2 = k[e2 + 4 >> 2] | 0, x = 0, k[z2 >> 2] = k[j2 >> 2], m2 = ua(1, b2 | 0, z2 | 0, d2 | 0, C2 | 0, m2 | 0, f2 | 0, n2 | 0, a2 | 0, D2 | 0, y2 | 0, l2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + b: + do + if (m2) { + x = 0; + Ea(k[(k[a2 >> 2] | 0) + 32 >> 2] | 0, a2 | 0, 58976, 58986, w2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + G2 = 10; + break a; + } + j2 = k[y2 >> 2] | 0; + l2 = k[D2 >> 2] | 0; + a2 = j2 - l2 | 0; + if ((a2 | 0) > 98) { + a2 = Pl(a2 + 2 | 0) | 0; + h2 = a2; + if (!a2) { + x = 0; + Ga(6); + v2 = x; + x = 0; + if (!(v2 & 1)) { + a2 = 0; + G2 = 13; + } + } else + G2 = 13; + } else { + h2 = 0; + a2 = z2; + G2 = 13; + } + do + if ((G2 | 0) == 13) { + if (i2[n2 >> 0] | 0) { + i2[a2 >> 0] = 45; + a2 = a2 + 1 | 0; + } + u2 = w2 + 10 | 0; + v2 = w2; + if (l2 >>> 0 < j2 >>> 0) { + m2 = w2 + 1 | 0; + d2 = m2 + 1 | 0; + e2 = d2 + 1 | 0; + n2 = e2 + 1 | 0; + o2 = n2 + 1 | 0; + p2 = o2 + 1 | 0; + q2 = p2 + 1 | 0; + s2 = q2 + 1 | 0; + t2 = s2 + 1 | 0; + do { + j2 = i2[l2 >> 0] | 0; + do + if ((i2[w2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[m2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[d2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[e2 >> 0] | 0) != j2 << 24 >> 24) + if ((i2[n2 >> 0] | 0) == j2 << 24 >> 24) + j2 = n2; + else { + if ((i2[o2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = o2; + break; + } + if ((i2[p2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = p2; + break; + } + if ((i2[q2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = q2; + break; + } + if ((i2[s2 >> 0] | 0) == j2 << 24 >> 24) { + j2 = s2; + break; + } + j2 = (i2[t2 >> 0] | 0) == j2 << 24 >> 24 ? t2 : u2; + } + else + j2 = e2; + else + j2 = d2; + else + j2 = m2; + else + j2 = w2; + while (0); + i2[a2 >> 0] = i2[58976 + (j2 - v2) >> 0] | 0; + l2 = l2 + 1 | 0; + a2 = a2 + 1 | 0; + } while (l2 >>> 0 < (k[y2 >> 2] | 0) >>> 0); + } + i2[a2 >> 0] = 0; + k[A2 >> 2] = g2; + if ((jl(z2, 58987, A2) | 0) != 1 ? (x = 0, qa(190, 58991), g2 = x, x = 0, g2 & 1) : 0) + break; + if (h2) + Ql(h2); + break b; + } + while (0); + a2 = Wa() | 0; + if (!h2) { + j2 = a2; + h2 = D2; + break a; + } + Ql(h2); + j2 = a2; + h2 = D2; + break a; + } + while (0); + a2 = k[b2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } + } else + a2 = 0; + while (0); + h2 = (a2 | 0) == 0; + a2 = k[c2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + G2 = 37; + break; + } + } + if (!h2) + G2 = 38; + } else + G2 = 37; + while (0); + if ((G2 | 0) == 37 ? h2 : 0) + G2 = 38; + if ((G2 | 0) == 38) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(k[C2 >> 2] | 0) | 0; + a2 = k[D2 >> 2] | 0; + k[D2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[E2 >> 2] | 0, a2 | 0), G2 = x, x = 0, G2 & 1) : 0) { + G2 = Wa(0) | 0; + oc(G2); + } + r = B2; + return h2 | 0; + } else + G2 = 10; + while (0); + if ((G2 | 0) == 10) { + j2 = Wa() | 0; + h2 = D2; + } + zm(k[C2 >> 2] | 0) | 0; + a2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!a2) + F2 = j2; + else { + h2 = k[E2 >> 2] | 0; + G2 = 45; + } + } else { + j2 = Wa() | 0; + k[D2 >> 2] = 0; + h2 = 189; + G2 = 45; + } + if ((G2 | 0) == 45) { + x = 0; + qa(h2 | 0, a2 | 0); + G2 = x; + x = 0; + if (G2 & 1) { + G2 = Wa(0) | 0; + oc(G2); + } else + F2 = j2; + } + fb(F2 | 0); + return 0; + } + function Zr(a2) { + a2 = a2 | 0; + return; + } + function _r(a2, b2, c2, d2, e2, f2, g2, h2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + var p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0, $2 = 0, aa2 = 0, ba2 = 0, ca2 = 0, da2 = 0; + ba2 = r; + r = r + 512 | 0; + P2 = ba2 + 88 | 0; + t2 = ba2 + 96 | 0; + da2 = ba2 + 80 | 0; + T2 = ba2 + 72 | 0; + S2 = ba2 + 68 | 0; + U2 = ba2 + 500 | 0; + Q2 = ba2 + 497 | 0; + V2 = ba2 + 496 | 0; + Y2 = ba2 + 56 | 0; + aa2 = ba2 + 44 | 0; + _2 = ba2 + 32 | 0; + Z2 = ba2 + 20 | 0; + $2 = ba2 + 8 | 0; + R2 = ba2 + 4 | 0; + X2 = ba2; + k[P2 >> 2] = o2; + k[da2 >> 2] = t2; + ca2 = da2 + 4 | 0; + k[ca2 >> 2] = 189; + k[T2 >> 2] = t2; + k[S2 >> 2] = t2 + 400; + k[Y2 >> 2] = 0; + k[Y2 + 4 >> 2] = 0; + k[Y2 + 8 >> 2] = 0; + k[aa2 >> 2] = 0; + k[aa2 + 4 >> 2] = 0; + k[aa2 + 8 >> 2] = 0; + k[_2 >> 2] = 0; + k[_2 + 4 >> 2] = 0; + k[_2 + 8 >> 2] = 0; + k[Z2 >> 2] = 0; + k[Z2 + 4 >> 2] = 0; + k[Z2 + 8 >> 2] = 0; + k[$2 >> 2] = 0; + k[$2 + 4 >> 2] = 0; + k[$2 + 8 >> 2] = 0; + x = 0; + za(1, c2 | 0, d2 | 0, U2 | 0, Q2 | 0, V2 | 0, Y2 | 0, aa2 | 0, _2 | 0, Z2 | 0, R2 | 0); + O2 = x; + x = 0; + a: + do + if (O2 & 1) + h2 = Wa() | 0; + else { + k[n2 >> 2] = k[m2 >> 2]; + I2 = h2 + 8 | 0; + J2 = _2 + 4 | 0; + K2 = Z2 + 4 | 0; + L2 = Z2 + 8 | 0; + M2 = Z2 + 1 | 0; + N2 = _2 + 8 | 0; + O2 = _2 + 1 | 0; + z2 = (e2 & 512 | 0) != 0; + A2 = aa2 + 8 | 0; + B2 = aa2 + 1 | 0; + C2 = aa2 + 4 | 0; + D2 = $2 + 4 | 0; + E2 = $2 + 8 | 0; + F2 = $2 + 1 | 0; + G2 = U2 + 3 | 0; + H2 = Y2 + 4 | 0; + y2 = 0; + s2 = 0; + b: + while (1) { + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + o2 = (o2 | 0) == 0; + h2 = k[b2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (o2) { + w2 = h2; + break; + } else { + W2 = 235; + break b; + } + x = 0; + c2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((c2 | 0) != -1) + if (o2) { + w2 = h2; + break; + } else { + W2 = 235; + break b; + } + else { + k[b2 >> 2] = 0; + W2 = 15; + break; + } + } else + W2 = 15; + while (0); + if ((W2 | 0) == 15) { + W2 = 0; + if (o2) { + W2 = 235; + break; + } else + w2 = 0; + } + c: + do + switch (i2[U2 + y2 >> 0] | 0) { + case 1: { + if ((y2 | 0) != 3) { + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 24; + break b; + } + } else + o2 = l[h2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 <= -1) { + W2 = 40; + break b; + } + if (!(j[(k[I2 >> 2] | 0) + (o2 << 24 >> 24 << 1) >> 1] & 8192)) { + W2 = 40; + break b; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 24; + break b; + } + } else { + k[h2 >> 2] = c2 + 1; + o2 = l[c2 >> 0] | 0; + } + x = 0; + ra(67, $2 | 0, o2 & 255 | 0); + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 24; + break b; + } else { + o2 = w2; + d2 = w2; + W2 = 42; + } + } + break; + } + case 0: { + if ((y2 | 0) != 3) { + o2 = w2; + d2 = w2; + W2 = 42; + } + break; + } + case 3: { + h2 = i2[_2 >> 0] | 0; + o2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[J2 >> 2] | 0; + c2 = i2[Z2 >> 0] | 0; + d2 = (c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[K2 >> 2] | 0; + if ((o2 | 0) != (0 - d2 | 0)) { + if (!o2) { + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + h2 = i2[Z2 >> 0] | 0; + } else { + o2 = l[h2 >> 0] | 0; + h2 = c2; + } + if ((o2 & 255) << 24 >> 24 != (i2[((h2 & 1) == 0 ? M2 : k[L2 >> 2] | 0) >> 0] | 0)) + break c; + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + i2[g2 >> 0] = 1; + w2 = i2[Z2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[K2 >> 2] | 0) >>> 0 > 1 ? Z2 : s2; + break c; + } + e2 = k[a2 >> 2] | 0; + p2 = k[e2 + 12 >> 2] | 0; + c2 = k[e2 + 16 >> 2] | 0; + o2 = (p2 | 0) == (c2 | 0); + if (!d2) { + if (o2) { + x = 0; + o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + h2 = i2[_2 >> 0] | 0; + } else + o2 = l[p2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[((h2 & 1) == 0 ? O2 : k[N2 >> 2] | 0) >> 0] | 0)) { + i2[g2 >> 0] = 1; + break c; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + w2 = i2[_2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[J2 >> 2] | 0) >>> 0 > 1 ? _2 : s2; + break c; + } + if (o2) { + x = 0; + o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + c2 = k[a2 >> 2] | 0; + h2 = i2[_2 >> 0] | 0; + e2 = c2; + p2 = k[c2 + 12 >> 2] | 0; + c2 = k[c2 + 16 >> 2] | 0; + } else + o2 = l[p2 >> 0] | 0; + d2 = e2 + 12 | 0; + c2 = (p2 | 0) == (c2 | 0); + if ((o2 & 255) << 24 >> 24 == (i2[((h2 & 1) == 0 ? O2 : k[N2 >> 2] | 0) >> 0] | 0)) { + if (c2) { + x = 0; + ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[d2 >> 2] = p2 + 1; + w2 = i2[_2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[J2 >> 2] | 0) >>> 0 > 1 ? _2 : s2; + break c; + } + if (c2) { + x = 0; + o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + o2 = l[p2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[((i2[Z2 >> 0] & 1) == 0 ? M2 : k[L2 >> 2] | 0) >> 0] | 0)) { + W2 = 104; + break b; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + i2[g2 >> 0] = 1; + w2 = i2[Z2 >> 0] | 0; + s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[K2 >> 2] | 0) >>> 0 > 1 ? Z2 : s2; + } + break; + } + case 2: { + if (!(y2 >>> 0 < 2 | (s2 | 0) != 0) ? !(z2 | (y2 | 0) == 2 & (i2[G2 >> 0] | 0) != 0) : 0) { + s2 = 0; + break c; + } + u2 = i2[aa2 >> 0] | 0; + o2 = (u2 & 1) == 0; + v2 = k[A2 >> 2] | 0; + c2 = o2 ? B2 : v2; + q2 = c2; + d: + do + if ((y2 | 0) != 0 ? (l[U2 + (y2 + -1) >> 0] | 0) < 2 : 0) { + p2 = o2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0; + d2 = c2 + p2 | 0; + e2 = k[I2 >> 2] | 0; + e: + do + if (!p2) + h2 = q2; + else { + p2 = c2; + h2 = q2; + do { + o2 = i2[p2 >> 0] | 0; + if (o2 << 24 >> 24 <= -1) + break e; + if (!(j[e2 + (o2 << 24 >> 24 << 1) >> 1] & 8192)) + break e; + p2 = p2 + 1 | 0; + h2 = p2; + } while ((p2 | 0) != (d2 | 0)); + } + while (0); + d2 = h2 - q2 | 0; + e2 = i2[$2 >> 0] | 0; + o2 = (e2 & 1) == 0; + e2 = o2 ? (e2 & 255) >>> 1 : k[D2 >> 2] | 0; + if (e2 >>> 0 >= d2 >>> 0) { + o2 = o2 ? F2 : k[E2 >> 2] | 0; + p2 = o2 + e2 | 0; + if ((h2 | 0) != (q2 | 0)) { + o2 = o2 + (e2 - d2) | 0; + while (1) { + if ((i2[o2 >> 0] | 0) != (i2[c2 >> 0] | 0)) { + h2 = q2; + break d; + } + o2 = o2 + 1 | 0; + if ((o2 | 0) == (p2 | 0)) + break; + else + c2 = c2 + 1 | 0; + } + } + } else + h2 = q2; + } else + h2 = q2; + while (0); + o2 = (u2 & 1) == 0; + o2 = (o2 ? B2 : v2) + (o2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0; + f: + do + if ((h2 | 0) != (o2 | 0)) { + e2 = w2; + d2 = w2; + o2 = h2; + while (1) { + h2 = k[a2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + if ((h2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 0; + break; + } else { + h2 = k[a2 >> 2] | 0; + break; + } + } + } else + h2 = 0; + while (0); + c2 = (h2 | 0) == 0; + do + if (d2) { + if ((k[d2 + 12 >> 2] | 0) != (k[d2 + 16 >> 2] | 0)) + if (c2) { + h2 = e2; + p2 = d2; + break; + } else + break f; + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + if ((h2 | 0) != -1) + if (c2 ^ (e2 | 0) == 0) { + h2 = e2; + p2 = e2; + break; + } else + break f; + else { + k[b2 >> 2] = 0; + h2 = 0; + W2 = 131; + break; + } + } else { + h2 = e2; + W2 = 131; + } + while (0); + if ((W2 | 0) == 131) { + W2 = 0; + if (c2) + break f; + else + p2 = 0; + } + c2 = k[a2 >> 2] | 0; + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + } else + c2 = l[d2 >> 0] | 0; + if ((c2 & 255) << 24 >> 24 != (i2[o2 >> 0] | 0)) + break f; + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 21; + break b; + } + } else + k[d2 >> 2] = e2 + 1; + o2 = o2 + 1 | 0; + c2 = i2[aa2 >> 0] | 0; + w2 = (c2 & 1) == 0; + c2 = (w2 ? B2 : k[A2 >> 2] | 0) + (w2 ? (c2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0; + if ((o2 | 0) == (c2 | 0)) { + o2 = c2; + break; + } else { + e2 = h2; + d2 = p2; + } + } + } + while (0); + if (z2 ? (w2 = i2[aa2 >> 0] | 0, v2 = (w2 & 1) == 0, (o2 | 0) != ((v2 ? B2 : k[A2 >> 2] | 0) + (v2 ? (w2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0)) : 0) { + W2 = 143; + break b; + } + break; + } + case 4: { + q2 = i2[V2 >> 0] | 0; + h2 = w2; + e2 = w2; + o2 = 0; + g: + while (1) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + if ((k[c2 + 12 >> 2] | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + c2 = 0; + break; + } else { + c2 = k[a2 >> 2] | 0; + break; + } + } + } else + c2 = 0; + while (0); + d2 = (c2 | 0) == 0; + do + if (e2) { + if ((k[e2 + 12 >> 2] | 0) != (k[e2 + 16 >> 2] | 0)) + if (d2) { + p2 = h2; + break; + } else { + d2 = h2; + break g; + } + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + if ((c2 | 0) != -1) + if (d2 ^ (h2 | 0) == 0) { + p2 = h2; + e2 = h2; + break; + } else { + d2 = h2; + break g; + } + else { + k[b2 >> 2] = 0; + h2 = 0; + W2 = 156; + break; + } + } else + W2 = 156; + while (0); + if ((W2 | 0) == 156) { + W2 = 0; + if (d2) { + d2 = h2; + break; + } else { + p2 = h2; + e2 = 0; + } + } + h2 = k[a2 >> 2] | 0; + c2 = k[h2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + } else + h2 = l[c2 >> 0] | 0; + c2 = h2 & 255; + if (c2 << 24 >> 24 > -1 ? (j[(k[I2 >> 2] | 0) + (h2 << 24 >> 24 << 1) >> 1] & 2048) != 0 : 0) { + h2 = k[n2 >> 2] | 0; + if ((h2 | 0) == (k[P2 >> 2] | 0)) { + x = 0; + Fa(12, m2 | 0, n2 | 0, P2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + h2 = k[n2 >> 2] | 0; + } + k[n2 >> 2] = h2 + 1; + i2[h2 >> 0] = c2; + o2 = o2 + 1 | 0; + } else { + w2 = i2[Y2 >> 0] | 0; + if (!(c2 << 24 >> 24 == q2 << 24 >> 24 & ((o2 | 0) != 0 ? (((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) | 0) != 0 : 0))) { + d2 = p2; + break; + } + if ((t2 | 0) == (k[S2 >> 2] | 0)) { + x = 0; + Fa(13, da2 | 0, T2 | 0, S2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } + t2 = k[T2 >> 2] | 0; + } + w2 = t2 + 4 | 0; + k[T2 >> 2] = w2; + k[t2 >> 2] = o2; + t2 = w2; + o2 = 0; + } + h2 = k[a2 >> 2] | 0; + c2 = h2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[h2 >> 2] | 0) + 40 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 23; + break b; + } else { + h2 = p2; + continue; + } + } else { + k[c2 >> 2] = d2 + 1; + h2 = p2; + continue; + } + } + if ((o2 | 0) != 0 ? (k[da2 >> 2] | 0) != (t2 | 0) : 0) { + if ((t2 | 0) == (k[S2 >> 2] | 0)) { + x = 0; + Fa(13, da2 | 0, T2 | 0, S2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + t2 = k[T2 >> 2] | 0; + } + w2 = t2 + 4 | 0; + k[T2 >> 2] = w2; + k[t2 >> 2] = o2; + t2 = w2; + } + p2 = k[R2 >> 2] | 0; + if ((p2 | 0) > 0) { + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + o2 = (o2 | 0) == 0; + do + if (d2) { + if ((k[d2 + 12 >> 2] | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + W2 = 193; + break; + } + } + if (!o2) { + W2 = 198; + break b; + } + } else + W2 = 193; + while (0); + if ((W2 | 0) == 193) { + W2 = 0; + if (o2) { + W2 = 198; + break b; + } else + d2 = 0; + } + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + o2 = l[h2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[Q2 >> 0] | 0)) { + W2 = 198; + break b; + } + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 24; + break b; + } + } else + k[h2 >> 2] = c2 + 1; + if ((p2 | 0) > 0) { + e2 = d2; + c2 = d2; + q2 = p2; + while (1) { + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + h2 = (o2 | 0) == 0; + do + if (c2) { + if ((k[c2 + 12 >> 2] | 0) != (k[c2 + 16 >> 2] | 0)) + if (h2) { + o2 = e2; + p2 = c2; + break; + } else { + W2 = 222; + break b; + } + x = 0; + o2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + if ((o2 | 0) != -1) + if (h2 ^ (e2 | 0) == 0) { + o2 = e2; + p2 = e2; + break; + } else { + W2 = 222; + break b; + } + else { + k[b2 >> 2] = 0; + o2 = 0; + W2 = 215; + break; + } + } else { + o2 = e2; + W2 = 215; + } + while (0); + if ((W2 | 0) == 215) { + W2 = 0; + if (h2) { + W2 = 222; + break b; + } else + p2 = 0; + } + h2 = k[a2 >> 2] | 0; + c2 = k[h2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + } else + h2 = l[c2 >> 0] | 0; + if ((h2 & 255) << 24 >> 24 <= -1) { + W2 = 222; + break b; + } + if (!(j[(k[I2 >> 2] | 0) + (h2 << 24 >> 24 << 1) >> 1] & 2048)) { + W2 = 222; + break b; + } + if ((k[n2 >> 2] | 0) == (k[P2 >> 2] | 0) ? (x = 0, Fa(12, m2 | 0, n2 | 0, P2 | 0), w2 = x, x = 0, w2 & 1) : 0) { + W2 = 22; + break b; + } + h2 = k[a2 >> 2] | 0; + c2 = k[h2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + } else + h2 = l[c2 >> 0] | 0; + c2 = k[n2 >> 2] | 0; + k[n2 >> 2] = c2 + 1; + i2[c2 >> 0] = h2; + h2 = q2; + q2 = q2 + -1 | 0; + k[R2 >> 2] = q2; + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 22; + break b; + } + } else + k[d2 >> 2] = e2 + 1; + if ((h2 | 0) <= 1) + break; + else { + e2 = o2; + c2 = p2; + } + } + } + } + if ((k[n2 >> 2] | 0) == (k[m2 >> 2] | 0)) { + W2 = 233; + break b; + } + break; + } + default: { + } + } + while (0); + h: + do + if ((W2 | 0) == 42) + while (1) { + W2 = 0; + h2 = k[a2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 20; + break b; + } + if ((h2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 0; + break; + } else { + h2 = k[a2 >> 2] | 0; + break; + } + } + } else + h2 = 0; + while (0); + c2 = (h2 | 0) == 0; + do + if (d2) { + if ((k[d2 + 12 >> 2] | 0) != (k[d2 + 16 >> 2] | 0)) + if (c2) { + e2 = o2; + break; + } else + break h; + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 20; + break b; + } + if ((h2 | 0) != -1) + if (c2 ^ (o2 | 0) == 0) { + e2 = o2; + d2 = o2; + break; + } else + break h; + else { + k[b2 >> 2] = 0; + o2 = 0; + W2 = 54; + break; + } + } else + W2 = 54; + while (0); + if ((W2 | 0) == 54) { + W2 = 0; + if (c2) + break h; + else { + e2 = o2; + d2 = 0; + } + } + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + W2 = 20; + break b; + } + } else + o2 = l[h2 >> 0] | 0; + if ((o2 & 255) << 24 >> 24 <= -1) + break h; + if (!(j[(k[I2 >> 2] | 0) + (o2 << 24 >> 24 << 1) >> 1] & 8192)) + break h; + o2 = k[a2 >> 2] | 0; + h2 = o2 + 12 | 0; + c2 = k[h2 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 20; + break b; + } + } else { + k[h2 >> 2] = c2 + 1; + o2 = l[c2 >> 0] | 0; + } + x = 0; + ra(67, $2 | 0, o2 & 255 | 0); + W2 = x; + x = 0; + if (W2 & 1) { + W2 = 20; + break b; + } else { + o2 = e2; + W2 = 42; + } + } + while (0); + y2 = y2 + 1 | 0; + if (y2 >>> 0 >= 4) { + W2 = 235; + break; + } + } + i: + switch (W2 | 0) { + case 20: { + h2 = Wa() | 0; + break a; + } + case 21: { + h2 = Wa() | 0; + break a; + } + case 22: { + h2 = Wa() | 0; + break a; + } + case 23: { + h2 = Wa() | 0; + break a; + } + case 24: { + h2 = Wa() | 0; + break a; + } + case 40: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 104: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 143: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 198: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 222: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 233: { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break; + } + case 235: { + j: + do + if (s2) { + e2 = s2 + 1 | 0; + p2 = s2 + 8 | 0; + q2 = s2 + 4 | 0; + c2 = 1; + k: + while (1) { + o2 = i2[s2 >> 0] | 0; + if (!(o2 & 1)) + o2 = (o2 & 255) >>> 1; + else + o2 = k[q2 >> 2] | 0; + if (c2 >>> 0 >= o2 >>> 0) + break j; + o2 = k[a2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break k; + } + if ((o2 | 0) == -1) { + k[a2 >> 2] = 0; + o2 = 0; + break; + } else { + o2 = k[a2 >> 2] | 0; + break; + } + } + } else + o2 = 0; + while (0); + h2 = (o2 | 0) == 0; + o2 = k[b2 >> 2] | 0; + do + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break k; + } + if ((o2 | 0) == -1) { + k[b2 >> 2] = 0; + W2 = 253; + break; + } + } + if (!h2) { + W2 = 260; + break k; + } + } else + W2 = 253; + while (0); + if ((W2 | 0) == 253 ? (W2 = 0, h2) : 0) { + W2 = 260; + break; + } + o2 = k[a2 >> 2] | 0; + h2 = k[o2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break; + } + } else + o2 = l[h2 >> 0] | 0; + if (!(i2[s2 >> 0] & 1)) + h2 = e2; + else + h2 = k[p2 >> 2] | 0; + if ((o2 & 255) << 24 >> 24 != (i2[h2 + c2 >> 0] | 0)) { + W2 = 260; + break; + } + o2 = c2 + 1 | 0; + h2 = k[a2 >> 2] | 0; + c2 = h2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[h2 >> 2] | 0) + 40 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + W2 = 19; + break; + } else { + c2 = o2; + continue; + } + } else { + k[c2 >> 2] = d2 + 1; + c2 = o2; + continue; + } + } + if ((W2 | 0) == 19) { + h2 = Wa() | 0; + break a; + } else if ((W2 | 0) == 260) { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + break i; + } + } + while (0); + o2 = k[da2 >> 2] | 0; + if ((o2 | 0) != (t2 | 0) ? (k[X2 >> 2] = 0, cs(Y2, o2, t2, X2), (k[X2 >> 2] | 0) != 0) : 0) { + k[f2 >> 2] = k[f2 >> 2] | 4; + h2 = 0; + } else + h2 = 1; + break; + } + } + Sm($2); + Sm(Z2); + Sm(_2); + Sm(aa2); + Sm(Y2); + o2 = k[da2 >> 2] | 0; + k[da2 >> 2] = 0; + if ((o2 | 0) != 0 ? (x = 0, qa(k[ca2 >> 2] | 0, o2 | 0), da2 = x, x = 0, da2 & 1) : 0) { + da2 = Wa(0) | 0; + oc(da2); + } + r = ba2; + return h2 | 0; + } + while (0); + Sm($2); + Sm(Z2); + Sm(_2); + Sm(aa2); + Sm(Y2); + o2 = k[da2 >> 2] | 0; + k[da2 >> 2] = 0; + if ((o2 | 0) != 0 ? (x = 0, qa(k[ca2 >> 2] | 0, o2 | 0), da2 = x, x = 0, da2 & 1) : 0) { + da2 = Wa(0) | 0; + oc(da2); + } + fb(h2 | 0); + return 0; + } + function $r(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = Va(8) | 0; + x = 0; + ra(90, b2 | 0, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } else + ub(b2 | 0, 616, 80); + } + function as(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + v2 = r; + r = r + 144 | 0; + h2 = v2 + 24 | 0; + a2 = v2 + 32 | 0; + w2 = v2 + 16 | 0; + q2 = v2 + 8 | 0; + n2 = v2 + 4 | 0; + o2 = v2 + 28 | 0; + j2 = v2; + k[w2 >> 2] = a2; + A2 = w2 + 4 | 0; + k[A2 >> 2] = 189; + l2 = a2 + 100 | 0; + x = 0; + u2 = ta(68, e2 | 0) | 0; + m2 = x; + x = 0; + if (!(m2 & 1)) { + k[n2 >> 2] = u2; + x = 0; + m2 = Aa(37, n2 | 0, 44220) | 0; + a2 = x; + x = 0; + a: + do + if (!(a2 & 1) ? (i2[o2 >> 0] = 0, s2 = k[c2 >> 2] | 0, k[j2 >> 2] = s2, p2 = k[e2 + 4 >> 2] | 0, t2 = s2, x = 0, k[h2 >> 2] = k[j2 >> 2], p2 = ua(1, b2 | 0, h2 | 0, d2 | 0, n2 | 0, p2 | 0, f2 | 0, o2 | 0, m2 | 0, w2 | 0, q2 | 0, l2 | 0) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { + if (p2) { + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + if (i2[o2 >> 0] | 0) { + x = 0; + a2 = Aa(k[(k[m2 >> 2] | 0) + 28 >> 2] | 0, m2 | 0, 45) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + x = 0; + ra(67, g2 | 0, a2 | 0); + e2 = x; + x = 0; + if (e2 & 1) + break; + } + x = 0; + j2 = Aa(k[(k[m2 >> 2] | 0) + 28 >> 2] | 0, m2 | 0, 48) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + a2 = k[w2 >> 2] | 0; + l2 = k[q2 >> 2] | 0; + h2 = l2 + -1 | 0; + b: + do + if (a2 >>> 0 < h2 >>> 0) + do { + if ((i2[a2 >> 0] | 0) != j2 << 24 >> 24) + break b; + a2 = a2 + 1 | 0; + } while (a2 >>> 0 < h2 >>> 0); + while (0); + x = 0; + va(32, g2 | 0, a2 | 0, l2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break; + } + a2 = k[b2 >> 2] | 0; + do + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break a; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + break; + } else { + a2 = k[b2 >> 2] | 0; + break; + } + } + } else + a2 = 0; + while (0); + h2 = (a2 | 0) == 0; + do + if (s2) { + if ((k[t2 + 12 >> 2] | 0) == (k[t2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[s2 >> 2] | 0) + 36 >> 2] | 0, t2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break a; + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + z2 = 29; + break; + } + } + if (!h2) + z2 = 30; + } else + z2 = 29; + while (0); + if ((z2 | 0) == 29 ? h2 : 0) + z2 = 30; + if ((z2 | 0) == 30) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(u2) | 0; + a2 = k[w2 >> 2] | 0; + k[w2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[A2 >> 2] | 0, a2 | 0), A2 = x, x = 0, A2 & 1) : 0) { + A2 = Wa(0) | 0; + oc(A2); + } + r = v2; + return h2 | 0; + } + while (0); + h2 = Wa() | 0; + zm(u2) | 0; + a2 = k[w2 >> 2] | 0; + k[w2 >> 2] = 0; + if (!a2) + y2 = h2; + else + z2 = 36; + } else { + h2 = Wa() | 0; + k[w2 >> 2] = 0; + z2 = 36; + } + if ((z2 | 0) == 36) { + x = 0; + qa(k[A2 >> 2] | 0, a2 | 0); + A2 = x; + x = 0; + if (A2 & 1) { + A2 = Wa(0) | 0; + oc(A2); + } else + y2 = h2; + } + fb(y2 | 0); + return 0; + } + function bs(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; + z2 = r; + r = r + 112 | 0; + m2 = z2 + 100 | 0; + n2 = z2 + 88 | 0; + o2 = z2 + 76 | 0; + p2 = z2 + 64 | 0; + q2 = z2 + 52 | 0; + s2 = z2 + 48 | 0; + t2 = z2 + 36 | 0; + u2 = z2 + 24 | 0; + v2 = z2 + 12 | 0; + w2 = z2; + do + if (a2) { + a2 = Ss(b2, 43828) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](m2, a2); + w2 = k[m2 >> 2] | 0; + i2[c2 >> 0] = w2; + i2[c2 + 1 >> 0] = w2 >> 8; + i2[c2 + 2 >> 0] = w2 >> 16; + i2[c2 + 3 >> 0] = w2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[n2 >> 2]; + k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + Sm(n2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](o2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[o2 >> 2]; + k[h2 + 4 >> 2] = k[o2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[o2 + 8 >> 2]; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + Sm(o2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[d2 >> 0] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](p2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[p2 >> 2]; + k[f2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + Sm(p2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](q2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[q2 >> 2]; + k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; + k[q2 >> 2] = 0; + k[q2 + 4 >> 2] = 0; + k[q2 + 8 >> 2] = 0; + Sm(q2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(b2, 43764) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](s2, a2); + s2 = k[s2 >> 2] | 0; + i2[c2 >> 0] = s2; + i2[c2 + 1 >> 0] = s2 >> 8; + i2[c2 + 2 >> 0] = s2 >> 16; + i2[c2 + 3 >> 0] = s2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](t2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[t2 >> 2]; + k[j2 + 4 >> 2] = k[t2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[t2 + 8 >> 2]; + k[t2 >> 2] = 0; + k[t2 + 4 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + Sm(t2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[u2 >> 2]; + k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + Sm(u2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[d2 >> 0] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[v2 >> 2]; + k[f2 + 4 >> 2] = k[v2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[v2 + 8 >> 2]; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + Sm(v2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[w2 >> 2]; + k[g2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + Sm(w2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = y2; + r = z2; + return; + } + function cs(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = i2[a2 >> 0] | 0; + g2 = a2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + a: + do + if (((e2 & 1) == 0 ? (e2 & 255) >>> 1 : f2) | 0) { + if ((b2 | 0) != (c2 | 0)) { + e2 = c2 + -4 | 0; + if (e2 >>> 0 > b2 >>> 0) { + f2 = b2; + do { + h2 = k[f2 >> 2] | 0; + k[f2 >> 2] = k[e2 >> 2]; + k[e2 >> 2] = h2; + f2 = f2 + 4 | 0; + e2 = e2 + -4 | 0; + } while (f2 >>> 0 < e2 >>> 0); + } + e2 = i2[a2 >> 0] | 0; + f2 = k[g2 >> 2] | 0; + } + h2 = (e2 & 1) == 0; + g2 = h2 ? a2 + 1 | 0 : k[a2 + 8 >> 2] | 0; + c2 = c2 + -4 | 0; + a2 = g2 + (h2 ? (e2 & 255) >>> 1 : f2) | 0; + f2 = i2[g2 >> 0] | 0; + e2 = f2 << 24 >> 24 < 1 | f2 << 24 >> 24 == 127; + b: + do + if (c2 >>> 0 > b2 >>> 0) { + while (1) { + if (!e2 ? (f2 << 24 >> 24 | 0) != (k[b2 >> 2] | 0) : 0) + break; + g2 = (a2 - g2 | 0) > 1 ? g2 + 1 | 0 : g2; + b2 = b2 + 4 | 0; + f2 = i2[g2 >> 0] | 0; + e2 = f2 << 24 >> 24 < 1 | f2 << 24 >> 24 == 127; + if (b2 >>> 0 >= c2 >>> 0) + break b; + } + k[d2 >> 2] = 4; + break a; + } + while (0); + if (!e2 ? ((k[c2 >> 2] | 0) + -1 | 0) >>> 0 >= f2 << 24 >> 24 >>> 0 : 0) + k[d2 >> 2] = 4; + } + while (0); + return; + } + function ds(a2) { + a2 = a2 | 0; + return; + } + function es(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function fs(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + B2 = r; + r = r + 576 | 0; + w2 = B2 + 424 | 0; + A2 = B2; + a2 = B2 + 24 | 0; + D2 = B2 + 16 | 0; + y2 = B2 + 12 | 0; + C2 = B2 + 8 | 0; + n2 = B2 + 464 | 0; + j2 = B2 + 4 | 0; + z2 = B2 + 468 | 0; + k[D2 >> 2] = a2; + F2 = D2 + 4 | 0; + k[F2 >> 2] = 189; + l2 = a2 + 400 | 0; + x = 0; + h2 = ta(68, e2 | 0) | 0; + v2 = x; + x = 0; + if (!(v2 & 1)) { + k[C2 >> 2] = h2; + x = 0; + a2 = Aa(37, C2 | 0, 44212) | 0; + v2 = x; + x = 0; + a: + do + if (!(v2 & 1) ? (i2[n2 >> 0] = 0, k[j2 >> 2] = k[c2 >> 2], m2 = k[e2 + 4 >> 2] | 0, x = 0, k[w2 >> 2] = k[j2 >> 2], m2 = ua(2, b2 | 0, w2 | 0, d2 | 0, C2 | 0, m2 | 0, f2 | 0, n2 | 0, a2 | 0, D2 | 0, y2 | 0, l2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + b: + do + if (m2) { + x = 0; + Ea(k[(k[a2 >> 2] | 0) + 48 >> 2] | 0, a2 | 0, 59007, 59017, w2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + G2 = 10; + break a; + } + j2 = k[y2 >> 2] | 0; + l2 = k[D2 >> 2] | 0; + a2 = j2 - l2 | 0; + if ((a2 | 0) > 392) { + a2 = Pl((a2 >> 2) + 2 | 0) | 0; + h2 = a2; + if (!a2) { + x = 0; + Ga(6); + v2 = x; + x = 0; + if (!(v2 & 1)) { + a2 = 0; + G2 = 13; + } + } else + G2 = 13; + } else { + h2 = 0; + a2 = z2; + G2 = 13; + } + do + if ((G2 | 0) == 13) { + if (i2[n2 >> 0] | 0) { + i2[a2 >> 0] = 45; + a2 = a2 + 1 | 0; + } + u2 = w2 + 40 | 0; + v2 = w2; + if (l2 >>> 0 < j2 >>> 0) { + m2 = w2 + 4 | 0; + d2 = m2 + 4 | 0; + e2 = d2 + 4 | 0; + n2 = e2 + 4 | 0; + o2 = n2 + 4 | 0; + p2 = o2 + 4 | 0; + q2 = p2 + 4 | 0; + s2 = q2 + 4 | 0; + t2 = s2 + 4 | 0; + do { + j2 = k[l2 >> 2] | 0; + do + if ((k[w2 >> 2] | 0) != (j2 | 0)) + if ((k[m2 >> 2] | 0) != (j2 | 0)) + if ((k[d2 >> 2] | 0) != (j2 | 0)) + if ((k[e2 >> 2] | 0) != (j2 | 0)) + if ((k[n2 >> 2] | 0) == (j2 | 0)) + j2 = n2; + else { + if ((k[o2 >> 2] | 0) == (j2 | 0)) { + j2 = o2; + break; + } + if ((k[p2 >> 2] | 0) == (j2 | 0)) { + j2 = p2; + break; + } + if ((k[q2 >> 2] | 0) == (j2 | 0)) { + j2 = q2; + break; + } + if ((k[s2 >> 2] | 0) == (j2 | 0)) { + j2 = s2; + break; + } + j2 = (k[t2 >> 2] | 0) == (j2 | 0) ? t2 : u2; + } + else + j2 = e2; + else + j2 = d2; + else + j2 = m2; + else + j2 = w2; + while (0); + i2[a2 >> 0] = i2[59007 + (j2 - v2 >> 2) >> 0] | 0; + l2 = l2 + 4 | 0; + a2 = a2 + 1 | 0; + } while (l2 >>> 0 < (k[y2 >> 2] | 0) >>> 0); + } + i2[a2 >> 0] = 0; + k[A2 >> 2] = g2; + if ((jl(z2, 58987, A2) | 0) != 1 ? (x = 0, qa(190, 58991), g2 = x, x = 0, g2 & 1) : 0) + break; + if (h2) + Ql(h2); + break b; + } + while (0); + a2 = Wa() | 0; + if (!h2) { + j2 = a2; + h2 = D2; + break a; + } + Ql(h2); + j2 = a2; + h2 = D2; + break a; + } + while (0); + a2 = k[b2 >> 2] | 0; + do + if (a2) { + h2 = k[a2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + } else + a2 = k[h2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + j2 = 1; + break; + } else { + j2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + j2 = 1; + while (0); + a2 = k[c2 >> 2] | 0; + do + if (a2) { + h2 = k[a2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + G2 = 10; + break a; + } + } else + a2 = k[h2 >> 2] | 0; + if ((a2 | 0) != -1) + if (j2) + break; + else { + G2 = 40; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 38; + break; + } + } else + G2 = 38; + while (0); + if ((G2 | 0) == 38 ? j2 : 0) + G2 = 40; + if ((G2 | 0) == 40) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(k[C2 >> 2] | 0) | 0; + a2 = k[D2 >> 2] | 0; + k[D2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[F2 >> 2] | 0, a2 | 0), G2 = x, x = 0, G2 & 1) : 0) { + G2 = Wa(0) | 0; + oc(G2); + } + r = B2; + return h2 | 0; + } else + G2 = 10; + while (0); + if ((G2 | 0) == 10) { + j2 = Wa() | 0; + h2 = D2; + } + zm(k[C2 >> 2] | 0) | 0; + a2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!a2) + E2 = j2; + else { + h2 = k[F2 >> 2] | 0; + G2 = 47; + } + } else { + j2 = Wa() | 0; + k[D2 >> 2] = 0; + h2 = 189; + G2 = 47; + } + if ((G2 | 0) == 47) { + x = 0; + qa(h2 | 0, a2 | 0); + G2 = x; + x = 0; + if (G2 & 1) { + G2 = Wa(0) | 0; + oc(G2); + } else + E2 = j2; + } + fb(E2 | 0); + return 0; + } + function gs(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + var o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0; + Y2 = r; + r = r + 512 | 0; + K2 = Y2 + 96 | 0; + o2 = Y2 + 104 | 0; + _2 = Y2 + 88 | 0; + O2 = Y2 + 80 | 0; + N2 = Y2 + 76 | 0; + P2 = Y2 + 504 | 0; + L2 = Y2 + 72 | 0; + Q2 = Y2 + 68 | 0; + T2 = Y2 + 56 | 0; + X2 = Y2 + 44 | 0; + V2 = Y2 + 32 | 0; + U2 = Y2 + 20 | 0; + W2 = Y2 + 8 | 0; + M2 = Y2 + 4 | 0; + S2 = Y2; + k[K2 >> 2] = n2; + k[_2 >> 2] = o2; + Z2 = _2 + 4 | 0; + k[Z2 >> 2] = 189; + k[O2 >> 2] = o2; + k[N2 >> 2] = o2 + 400; + k[T2 >> 2] = 0; + k[T2 + 4 >> 2] = 0; + k[T2 + 8 >> 2] = 0; + k[X2 >> 2] = 0; + k[X2 + 4 >> 2] = 0; + k[X2 + 8 >> 2] = 0; + k[V2 >> 2] = 0; + k[V2 + 4 >> 2] = 0; + k[V2 + 8 >> 2] = 0; + k[U2 >> 2] = 0; + k[U2 + 4 >> 2] = 0; + k[U2 + 8 >> 2] = 0; + k[W2 >> 2] = 0; + k[W2 + 4 >> 2] = 0; + k[W2 + 8 >> 2] = 0; + x = 0; + za(2, c2 | 0, d2 | 0, P2 | 0, L2 | 0, Q2 | 0, T2 | 0, X2 | 0, V2 | 0, U2 | 0, M2 | 0); + J2 = x; + x = 0; + a: + do + if (J2 & 1) + c2 = Wa() | 0; + else { + k[m2 >> 2] = k[j2 >> 2]; + G2 = V2 + 4 | 0; + H2 = U2 + 4 | 0; + I2 = U2 + 8 | 0; + J2 = V2 + 8 | 0; + z2 = (e2 & 512 | 0) != 0; + A2 = X2 + 8 | 0; + B2 = X2 + 4 | 0; + C2 = W2 + 4 | 0; + D2 = W2 + 8 | 0; + E2 = P2 + 3 | 0; + F2 = T2 + 4 | 0; + y2 = 0; + q2 = 0; + b: + while (1) { + n2 = k[a2 >> 2] | 0; + do + if (n2) { + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[c2 >> 2] | 0; + if ((n2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + c2 = k[b2 >> 2] | 0; + do + if (c2) { + n2 = k[c2 + 12 >> 2] | 0; + if ((n2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[n2 >> 2] | 0; + if ((n2 | 0) != -1) + if (d2) { + w2 = c2; + break; + } else { + s2 = o2; + R2 = 244; + break b; + } + else { + k[b2 >> 2] = 0; + R2 = 16; + break; + } + } else + R2 = 16; + while (0); + if ((R2 | 0) == 16) { + R2 = 0; + if (d2) { + s2 = o2; + R2 = 244; + break; + } else + w2 = 0; + } + c: + do + switch (i2[P2 + y2 >> 0] | 0) { + case 1: { + if ((y2 | 0) != 3) { + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[c2 >> 2] | 0; + x = 0; + n2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } + if (!n2) { + R2 = 42; + break b; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } + } else { + k[c2 >> 2] = d2 + 4; + n2 = k[d2 >> 2] | 0; + } + x = 0; + ra(92, W2 | 0, n2 | 0); + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 26; + break b; + } else { + n2 = w2; + e2 = w2; + R2 = 44; + } + } else + n2 = o2; + break; + } + case 0: { + if ((y2 | 0) == 3) + n2 = o2; + else { + n2 = w2; + e2 = w2; + R2 = 44; + } + break; + } + case 3: { + c2 = i2[V2 >> 0] | 0; + n2 = (c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[G2 >> 2] | 0; + d2 = i2[U2 >> 0] | 0; + e2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[H2 >> 2] | 0; + if ((n2 | 0) == (0 - e2 | 0)) + n2 = o2; + else { + if (!n2) { + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + c2 = i2[U2 >> 0] | 0; + } else { + n2 = k[c2 >> 2] | 0; + c2 = d2; + } + if ((n2 | 0) != (k[((c2 & 1) == 0 ? H2 : k[I2 >> 2] | 0) >> 2] | 0)) { + n2 = o2; + break c; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[c2 >> 2] = d2 + 4; + i2[g2 >> 0] = 1; + w2 = i2[U2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) >>> 0 > 1 ? U2 : q2; + break c; + } + p2 = k[a2 >> 2] | 0; + s2 = k[p2 + 12 >> 2] | 0; + d2 = k[p2 + 16 >> 2] | 0; + n2 = (s2 | 0) == (d2 | 0); + if (!e2) { + if (n2) { + x = 0; + n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + c2 = i2[V2 >> 0] | 0; + } else + n2 = k[s2 >> 2] | 0; + if ((n2 | 0) != (k[((c2 & 1) == 0 ? G2 : k[J2 >> 2] | 0) >> 2] | 0)) { + i2[g2 >> 0] = 1; + n2 = o2; + break c; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[c2 >> 2] = d2 + 4; + w2 = i2[V2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[G2 >> 2] | 0) >>> 0 > 1 ? V2 : q2; + break c; + } + if (n2) { + x = 0; + n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + d2 = k[a2 >> 2] | 0; + c2 = i2[V2 >> 0] | 0; + p2 = d2; + s2 = k[d2 + 12 >> 2] | 0; + d2 = k[d2 + 16 >> 2] | 0; + } else + n2 = k[s2 >> 2] | 0; + e2 = p2 + 12 | 0; + d2 = (s2 | 0) == (d2 | 0); + if ((n2 | 0) == (k[((c2 & 1) == 0 ? G2 : k[J2 >> 2] | 0) >> 2] | 0)) { + if (d2) { + x = 0; + ta(k[(k[p2 >> 2] | 0) + 40 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[e2 >> 2] = s2 + 4; + w2 = i2[V2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[G2 >> 2] | 0) >>> 0 > 1 ? V2 : q2; + break c; + } + if (d2) { + x = 0; + n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + n2 = k[s2 >> 2] | 0; + if ((n2 | 0) != (k[((i2[U2 >> 0] & 1) == 0 ? H2 : k[I2 >> 2] | 0) >> 2] | 0)) { + R2 = 107; + break b; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[c2 >> 2] = d2 + 4; + i2[g2 >> 0] = 1; + w2 = i2[U2 >> 0] | 0; + n2 = o2; + q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) >>> 0 > 1 ? U2 : q2; + } + break; + } + case 2: { + if (!(y2 >>> 0 < 2 | (q2 | 0) != 0) ? !(z2 | (y2 | 0) == 2 & (i2[E2 >> 0] | 0) != 0) : 0) { + n2 = o2; + q2 = 0; + break c; + } + e2 = i2[X2 >> 0] | 0; + d2 = k[A2 >> 2] | 0; + c2 = (e2 & 1) == 0 ? B2 : d2; + n2 = c2; + d: + do + if ((y2 | 0) != 0 ? (l[P2 + (y2 + -1) >> 0] | 0) < 2 : 0) { + v2 = (e2 & 1) == 0; + e: + do + if ((c2 | 0) != ((v2 ? B2 : d2) + ((v2 ? (e2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) { + e2 = c2; + while (1) { + x = 0; + c2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, k[e2 >> 2] | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + R2 = 23; + break b; + } + if (!c2) + break; + e2 = e2 + 4 | 0; + n2 = e2; + c2 = i2[X2 >> 0] | 0; + d2 = k[A2 >> 2] | 0; + v2 = (c2 & 1) == 0; + if ((e2 | 0) == ((v2 ? B2 : d2) + ((v2 ? (c2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) { + e2 = c2; + break e; + } + } + e2 = i2[X2 >> 0] | 0; + d2 = k[A2 >> 2] | 0; + } + while (0); + s2 = (e2 & 1) == 0 ? B2 : d2; + c2 = s2; + t2 = n2 - c2 >> 2; + u2 = i2[W2 >> 0] | 0; + p2 = (u2 & 1) == 0; + u2 = p2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0; + if (u2 >>> 0 >= t2 >>> 0) { + p2 = p2 ? C2 : k[D2 >> 2] | 0; + v2 = p2 + (u2 << 2) | 0; + if (!t2) + c2 = n2; + else { + p2 = p2 + (u2 - t2 << 2) | 0; + while (1) { + if ((k[p2 >> 2] | 0) != (k[s2 >> 2] | 0)) + break d; + p2 = p2 + 4 | 0; + if ((p2 | 0) == (v2 | 0)) { + c2 = n2; + break; + } else + s2 = s2 + 4 | 0; + } + } + } + } else + c2 = n2; + while (0); + n2 = (e2 & 1) == 0; + n2 = (n2 ? B2 : d2) + ((n2 ? (e2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0; + f: + do + if ((c2 | 0) != (n2 | 0)) { + p2 = w2; + e2 = w2; + n2 = c2; + while (1) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (e2) { + c2 = k[e2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2 ^ (p2 | 0) == 0) { + c2 = p2; + s2 = p2; + break; + } else + break f; + else { + k[b2 >> 2] = 0; + c2 = 0; + R2 = 136; + break; + } + } else { + c2 = p2; + R2 = 136; + } + while (0); + if ((R2 | 0) == 136) { + R2 = 0; + if (d2) + break f; + else + s2 = 0; + } + d2 = k[a2 >> 2] | 0; + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + if ((d2 | 0) != (k[n2 >> 2] | 0)) + break f; + d2 = k[a2 >> 2] | 0; + e2 = d2 + 12 | 0; + p2 = k[e2 >> 2] | 0; + if ((p2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 22; + break b; + } + } else + k[e2 >> 2] = p2 + 4; + n2 = n2 + 4 | 0; + d2 = i2[X2 >> 0] | 0; + w2 = (d2 & 1) == 0; + d2 = (w2 ? B2 : k[A2 >> 2] | 0) + ((w2 ? (d2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0; + if ((n2 | 0) == (d2 | 0)) { + n2 = d2; + break; + } else { + p2 = c2; + e2 = s2; + } + } + } + while (0); + if (z2 ? (w2 = i2[X2 >> 0] | 0, v2 = (w2 & 1) == 0, (n2 | 0) != ((v2 ? B2 : k[A2 >> 2] | 0) + ((v2 ? (w2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) : 0) { + R2 = 148; + break b; + } else + n2 = o2; + break; + } + case 4: { + u2 = k[Q2 >> 2] | 0; + t2 = w2; + p2 = w2; + n2 = o2; + c2 = 0; + g: + while (1) { + d2 = k[a2 >> 2] | 0; + do + if (d2) { + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[a2 >> 2] = 0; + e2 = 1; + break; + } else { + e2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + e2 = 1; + while (0); + do + if (p2) { + d2 = k[p2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[p2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) != -1) + if (e2 ^ (t2 | 0) == 0) { + d2 = t2; + s2 = t2; + break; + } else { + o2 = t2; + break g; + } + else { + k[b2 >> 2] = 0; + d2 = 0; + R2 = 162; + break; + } + } else { + d2 = t2; + R2 = 162; + } + while (0); + if ((R2 | 0) == 162) { + R2 = 0; + if (e2) { + o2 = d2; + break; + } else + s2 = 0; + } + e2 = k[a2 >> 2] | 0; + o2 = k[e2 + 12 >> 2] | 0; + if ((o2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + e2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + } else + e2 = k[o2 >> 2] | 0; + x = 0; + o2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 2048, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + if (o2) { + o2 = k[m2 >> 2] | 0; + if ((o2 | 0) == (k[K2 >> 2] | 0)) { + x = 0; + Fa(14, j2 | 0, m2 | 0, K2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + o2 = k[m2 >> 2] | 0; + } + k[m2 >> 2] = o2 + 4; + k[o2 >> 2] = e2; + c2 = c2 + 1 | 0; + } else { + w2 = i2[T2 >> 0] | 0; + if (!((e2 | 0) == (u2 | 0) & ((c2 | 0) != 0 ? (((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[F2 >> 2] | 0) | 0) != 0 : 0))) { + o2 = d2; + break; + } + if ((n2 | 0) == (k[N2 >> 2] | 0)) { + x = 0; + Fa(13, _2 | 0, O2 | 0, N2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } + n2 = k[O2 >> 2] | 0; + } + w2 = n2 + 4 | 0; + k[O2 >> 2] = w2; + k[n2 >> 2] = c2; + n2 = w2; + c2 = 0; + } + e2 = k[a2 >> 2] | 0; + o2 = e2 + 12 | 0; + p2 = k[o2 >> 2] | 0; + if ((p2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 25; + break b; + } else { + t2 = d2; + p2 = s2; + continue; + } + } else { + k[o2 >> 2] = p2 + 4; + t2 = d2; + p2 = s2; + continue; + } + } + if ((c2 | 0) != 0 ? (k[_2 >> 2] | 0) != (n2 | 0) : 0) { + if ((n2 | 0) == (k[N2 >> 2] | 0)) { + x = 0; + Fa(13, _2 | 0, O2 | 0, N2 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + n2 = k[O2 >> 2] | 0; + } + w2 = n2 + 4 | 0; + k[O2 >> 2] = w2; + k[n2 >> 2] = c2; + n2 = w2; + } + s2 = k[M2 >> 2] | 0; + if ((s2 | 0) > 0) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (o2) { + c2 = k[o2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2) + break; + else { + R2 = 206; + break b; + } + else { + k[b2 >> 2] = 0; + R2 = 200; + break; + } + } else + R2 = 200; + while (0); + if ((R2 | 0) == 200) { + R2 = 0; + if (d2) { + R2 = 206; + break b; + } else + o2 = 0; + } + c2 = k[a2 >> 2] | 0; + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) != (k[L2 >> 2] | 0)) { + R2 = 206; + break b; + } + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 26; + break b; + } + } else + k[d2 >> 2] = e2 + 4; + if ((s2 | 0) > 0) { + p2 = o2; + e2 = o2; + t2 = s2; + while (1) { + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (e2) { + c2 = k[e2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2 ^ (p2 | 0) == 0) { + c2 = p2; + s2 = p2; + break; + } else { + R2 = 231; + break b; + } + else { + k[b2 >> 2] = 0; + c2 = 0; + R2 = 224; + break; + } + } else { + c2 = p2; + R2 = 224; + } + while (0); + if ((R2 | 0) == 224) { + R2 = 0; + if (d2) { + R2 = 231; + break b; + } else + s2 = 0; + } + d2 = k[a2 >> 2] | 0; + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + x = 0; + d2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 2048, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + if (!d2) { + R2 = 231; + break b; + } + if ((k[m2 >> 2] | 0) == (k[K2 >> 2] | 0) ? (x = 0, Fa(14, j2 | 0, m2 | 0, K2 | 0), w2 = x, x = 0, w2 & 1) : 0) { + R2 = 24; + break b; + } + d2 = k[a2 >> 2] | 0; + e2 = k[d2 + 12 >> 2] | 0; + if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + d2 = k[e2 >> 2] | 0; + e2 = k[m2 >> 2] | 0; + k[m2 >> 2] = e2 + 4; + k[e2 >> 2] = d2; + d2 = t2; + t2 = t2 + -1 | 0; + k[M2 >> 2] = t2; + e2 = k[a2 >> 2] | 0; + o2 = e2 + 12 | 0; + p2 = k[o2 >> 2] | 0; + if ((p2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 24; + break b; + } + } else + k[o2 >> 2] = p2 + 4; + if ((d2 | 0) <= 1) + break; + else { + p2 = c2; + e2 = s2; + } + } + } + } + if ((k[m2 >> 2] | 0) == (k[j2 >> 2] | 0)) { + R2 = 242; + break b; + } + break; + } + default: + n2 = o2; + } + while (0); + h: + do + if ((R2 | 0) == 44) + while (1) { + R2 = 0; + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = k[c2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + } else + c2 = k[d2 >> 2] | 0; + if ((c2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + do + if (e2) { + c2 = k[e2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { + x = 0; + c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + } else + c2 = k[c2 >> 2] | 0; + if ((c2 | 0) != -1) + if (d2 ^ (n2 | 0) == 0) { + p2 = n2; + e2 = n2; + break; + } else { + n2 = o2; + break h; + } + else { + k[b2 >> 2] = 0; + n2 = 0; + R2 = 57; + break; + } + } else + R2 = 57; + while (0); + if ((R2 | 0) == 57) { + R2 = 0; + if (d2) { + n2 = o2; + break h; + } else { + p2 = n2; + e2 = 0; + } + } + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + } else + n2 = k[c2 >> 2] | 0; + x = 0; + n2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, n2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + R2 = 21; + break b; + } + if (!n2) { + n2 = o2; + break h; + } + n2 = k[a2 >> 2] | 0; + c2 = n2 + 12 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 21; + break b; + } + } else { + k[c2 >> 2] = d2 + 4; + n2 = k[d2 >> 2] | 0; + } + x = 0; + ra(92, W2 | 0, n2 | 0); + R2 = x; + x = 0; + if (R2 & 1) { + R2 = 21; + break b; + } else { + n2 = p2; + R2 = 44; + } + } + while (0); + y2 = y2 + 1 | 0; + if (y2 >>> 0 >= 4) { + s2 = n2; + R2 = 244; + break; + } else + o2 = n2; + } + i: + switch (R2 | 0) { + case 21: { + c2 = Wa() | 0; + break a; + } + case 22: { + c2 = Wa() | 0; + break a; + } + case 23: { + c2 = Wa() | 0; + break a; + } + case 24: { + c2 = Wa() | 0; + break a; + } + case 25: { + c2 = Wa() | 0; + break a; + } + case 26: { + c2 = Wa() | 0; + break a; + } + case 42: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 107: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 148: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 206: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 231: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 242: { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break; + } + case 244: { + j: + do + if (q2) { + o2 = q2 + 4 | 0; + p2 = q2 + 8 | 0; + e2 = 1; + k: + while (1) { + n2 = i2[q2 >> 0] | 0; + if (!(n2 & 1)) + n2 = (n2 & 255) >>> 1; + else + n2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= n2 >>> 0) + break j; + n2 = k[a2 >> 2] | 0; + do + if (n2) { + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break k; + } + } else + n2 = k[c2 >> 2] | 0; + if ((n2 | 0) == -1) { + k[a2 >> 2] = 0; + d2 = 1; + break; + } else { + d2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + d2 = 1; + while (0); + n2 = k[b2 >> 2] | 0; + do + if (n2) { + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break k; + } + } else + n2 = k[c2 >> 2] | 0; + if ((n2 | 0) != -1) + if (d2) + break; + else { + R2 = 271; + break k; + } + else { + k[b2 >> 2] = 0; + R2 = 263; + break; + } + } else + R2 = 263; + while (0); + if ((R2 | 0) == 263 ? (R2 = 0, d2) : 0) { + R2 = 271; + break; + } + n2 = k[a2 >> 2] | 0; + c2 = k[n2 + 12 >> 2] | 0; + if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break; + } + } else + n2 = k[c2 >> 2] | 0; + if (!(i2[q2 >> 0] & 1)) + c2 = o2; + else + c2 = k[p2 >> 2] | 0; + if ((n2 | 0) != (k[c2 + (e2 << 2) >> 2] | 0)) { + R2 = 271; + break; + } + n2 = e2 + 1 | 0; + c2 = k[a2 >> 2] | 0; + d2 = c2 + 12 | 0; + e2 = k[d2 >> 2] | 0; + if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + R2 = 20; + break; + } else { + e2 = n2; + continue; + } + } else { + k[d2 >> 2] = e2 + 4; + e2 = n2; + continue; + } + } + if ((R2 | 0) == 20) { + c2 = Wa() | 0; + break a; + } else if ((R2 | 0) == 271) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + break i; + } + } + while (0); + n2 = k[_2 >> 2] | 0; + if ((n2 | 0) != (s2 | 0) ? (k[S2 >> 2] = 0, cs(T2, n2, s2, S2), (k[S2 >> 2] | 0) != 0) : 0) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = 0; + } else + c2 = 1; + break; + } + } + en(W2); + en(U2); + en(V2); + en(X2); + Sm(T2); + n2 = k[_2 >> 2] | 0; + k[_2 >> 2] = 0; + if ((n2 | 0) != 0 ? (x = 0, qa(k[Z2 >> 2] | 0, n2 | 0), _2 = x, x = 0, _2 & 1) : 0) { + _2 = Wa(0) | 0; + oc(_2); + } + r = Y2; + return c2 | 0; + } + while (0); + en(W2); + en(U2); + en(V2); + en(X2); + Sm(T2); + n2 = k[_2 >> 2] | 0; + k[_2 >> 2] = 0; + if ((n2 | 0) != 0 ? (x = 0, qa(k[Z2 >> 2] | 0, n2 | 0), _2 = x, x = 0, _2 & 1) : 0) { + _2 = Wa(0) | 0; + oc(_2); + } + fb(c2 | 0); + return 0; + } + function hs(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + v2 = r; + r = r + 432 | 0; + h2 = v2 + 424 | 0; + a2 = v2 + 24 | 0; + y2 = v2 + 16 | 0; + q2 = v2 + 8 | 0; + n2 = v2 + 4 | 0; + o2 = v2 + 428 | 0; + j2 = v2; + k[y2 >> 2] = a2; + A2 = y2 + 4 | 0; + k[A2 >> 2] = 189; + l2 = a2 + 400 | 0; + x = 0; + u2 = ta(68, e2 | 0) | 0; + m2 = x; + x = 0; + if (!(m2 & 1)) { + k[n2 >> 2] = u2; + x = 0; + m2 = Aa(37, n2 | 0, 44212) | 0; + a2 = x; + x = 0; + a: + do + if (!(a2 & 1) ? (i2[o2 >> 0] = 0, s2 = k[c2 >> 2] | 0, k[j2 >> 2] = s2, p2 = k[e2 + 4 >> 2] | 0, t2 = s2, x = 0, k[h2 >> 2] = k[j2 >> 2], p2 = ua(2, b2 | 0, h2 | 0, d2 | 0, n2 | 0, p2 | 0, f2 | 0, o2 | 0, m2 | 0, y2 | 0, q2 | 0, l2 | 0) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { + if (p2) { + if (!(i2[g2 >> 0] & 1)) + i2[g2 >> 0] = 0; + else + k[k[g2 + 8 >> 2] >> 2] = 0; + k[g2 + 4 >> 2] = 0; + if (i2[o2 >> 0] | 0) { + x = 0; + a2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, m2 | 0, 45) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + x = 0; + ra(92, g2 | 0, a2 | 0); + e2 = x; + x = 0; + if (e2 & 1) + break; + } + x = 0; + j2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, m2 | 0, 48) | 0; + e2 = x; + x = 0; + if (e2 & 1) + break; + a2 = k[y2 >> 2] | 0; + l2 = k[q2 >> 2] | 0; + h2 = l2 + -4 | 0; + b: + do + if (a2 >>> 0 < h2 >>> 0) + do { + if ((k[a2 >> 2] | 0) != (j2 | 0)) + break b; + a2 = a2 + 4 | 0; + } while (a2 >>> 0 < h2 >>> 0); + while (0); + x = 0; + va(33, g2 | 0, a2 | 0, l2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break; + } + a2 = k[b2 >> 2] | 0; + do + if (a2) { + h2 = k[a2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) + break a; + } else + a2 = k[h2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + h2 = 1; + break; + } else { + h2 = (k[b2 >> 2] | 0) == 0; + break; + } + } else + h2 = 1; + while (0); + do + if (s2) { + a2 = k[t2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[t2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[s2 >> 2] | 0) + 36 >> 2] | 0, t2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break a; + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (h2) + break; + else { + z2 = 32; + break; + } + else { + k[c2 >> 2] = 0; + z2 = 30; + break; + } + } else + z2 = 30; + while (0); + if ((z2 | 0) == 30 ? h2 : 0) + z2 = 32; + if ((z2 | 0) == 32) + k[f2 >> 2] = k[f2 >> 2] | 2; + h2 = k[b2 >> 2] | 0; + zm(u2) | 0; + a2 = k[y2 >> 2] | 0; + k[y2 >> 2] = 0; + if ((a2 | 0) != 0 ? (x = 0, qa(k[A2 >> 2] | 0, a2 | 0), A2 = x, x = 0, A2 & 1) : 0) { + A2 = Wa(0) | 0; + oc(A2); + } + r = v2; + return h2 | 0; + } + while (0); + h2 = Wa() | 0; + zm(u2) | 0; + a2 = k[y2 >> 2] | 0; + k[y2 >> 2] = 0; + if (!a2) + w2 = h2; + else + z2 = 38; + } else { + h2 = Wa() | 0; + k[y2 >> 2] = 0; + z2 = 38; + } + if ((z2 | 0) == 38) { + x = 0; + qa(k[A2 >> 2] | 0, a2 | 0); + A2 = x; + x = 0; + if (A2 & 1) { + A2 = Wa(0) | 0; + oc(A2); + } else + w2 = h2; + } + fb(w2 | 0); + return 0; + } + function is(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; + z2 = r; + r = r + 112 | 0; + m2 = z2 + 100 | 0; + n2 = z2 + 88 | 0; + o2 = z2 + 76 | 0; + p2 = z2 + 64 | 0; + q2 = z2 + 52 | 0; + s2 = z2 + 48 | 0; + t2 = z2 + 36 | 0; + u2 = z2 + 24 | 0; + v2 = z2 + 12 | 0; + w2 = z2; + do + if (a2) { + a2 = Ss(b2, 43956) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](m2, a2); + w2 = k[m2 >> 2] | 0; + i2[c2 >> 0] = w2; + i2[c2 + 1 >> 0] = w2 >> 8; + i2[c2 + 2 >> 0] = w2 >> 16; + i2[c2 + 3 >> 0] = w2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[n2 >> 2]; + k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + en(n2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](o2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[o2 >> 2]; + k[h2 + 4 >> 2] = k[o2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[o2 + 8 >> 2]; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + en(o2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[d2 >> 2] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[e2 >> 2] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](p2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[p2 >> 2]; + k[f2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + Sm(p2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](q2, a2); + if (!(i2[g2 >> 0] & 1)) + i2[g2 >> 0] = 0; + else + k[k[g2 + 8 >> 2] >> 2] = 0; + k[g2 + 4 >> 2] = 0; + x = 0; + ra(93, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[q2 >> 2]; + k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; + k[q2 >> 2] = 0; + k[q2 + 4 >> 2] = 0; + k[q2 + 8 >> 2] = 0; + en(q2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(b2, 43892) | 0; + Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](s2, a2); + s2 = k[s2 >> 2] | 0; + i2[c2 >> 0] = s2; + i2[c2 + 1 >> 0] = s2 >> 8; + i2[c2 + 2 >> 0] = s2 >> 16; + i2[c2 + 3 >> 0] = s2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](t2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[j2 >> 2] = k[t2 >> 2]; + k[j2 + 4 >> 2] = k[t2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[t2 + 8 >> 2]; + k[t2 >> 2] = 0; + k[t2 + 4 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + en(t2); + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + ; + k[h2 >> 2] = k[u2 >> 2]; + k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + en(u2); + h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[d2 >> 2] = h2; + h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[e2 >> 2] = h2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); + if (!(i2[f2 >> 0] & 1)) { + i2[f2 + 1 >> 0] = 0; + i2[f2 >> 0] = 0; + } else { + i2[k[f2 + 8 >> 2] >> 0] = 0; + k[f2 + 4 >> 2] = 0; + } + x = 0; + ra(91, f2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } + ; + k[f2 >> 2] = k[v2 >> 2]; + k[f2 + 4 >> 2] = k[v2 + 4 >> 2]; + k[f2 + 8 >> 2] = k[v2 + 8 >> 2]; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + Sm(v2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); + if (!(i2[g2 >> 0] & 1)) + i2[g2 >> 0] = 0; + else + k[k[g2 + 8 >> 2] >> 2] = 0; + k[g2 + 4 >> 2] = 0; + x = 0; + ra(93, g2 | 0, 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else { + k[g2 >> 2] = k[w2 >> 2]; + k[g2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + en(w2); + y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = y2; + r = z2; + return; + } + function js(a2) { + a2 = a2 | 0; + return; + } + function ks(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function ls(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + D2 = r; + r = r + 384 | 0; + u2 = D2 + 8 | 0; + g2 = D2; + j2 = D2 + 284 | 0; + l2 = D2 + 72 | 0; + h2 = D2 + 184 | 0; + F2 = D2 + 68 | 0; + A2 = D2 + 80 | 0; + w2 = D2 + 77 | 0; + B2 = D2 + 76 | 0; + G2 = D2 + 56 | 0; + I2 = D2 + 44 | 0; + H2 = D2 + 32 | 0; + m2 = D2 + 28 | 0; + t2 = D2 + 84 | 0; + z2 = D2 + 24 | 0; + y2 = D2 + 20 | 0; + v2 = D2 + 16 | 0; + k[l2 >> 2] = j2; + p[u2 >> 3] = f2; + j2 = il(j2, 100, 59018, u2) | 0; + do + if (j2 >>> 0 > 99) { + x = 0; + a2 = Da(3) | 0; + C2 = x; + x = 0; + if (!(C2 & 1) ? (x = 0, p[g2 >> 3] = f2, q2 = Ea(17, l2 | 0, a2 | 0, 59018, g2 | 0) | 0, C2 = x, x = 0, !(C2 & 1)) : 0) { + a2 = k[l2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) { + a2 = 0; + g2 = 0; + C2 = 7; + break; + } + a2 = k[l2 >> 2] | 0; + } + h2 = Pl(q2) | 0; + g2 = h2; + if (!h2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) + C2 = 7; + else { + s2 = 0; + C2 = 10; + } + } else { + s2 = h2; + C2 = 10; + } + } else { + a2 = 0; + g2 = 0; + C2 = 7; + } + } else { + g2 = 0; + a2 = 0; + s2 = h2; + q2 = j2; + C2 = 10; + } + while (0); + if ((C2 | 0) == 10) { + x = 0; + h2 = ta(68, d2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) + C2 = 7; + else { + k[F2 >> 2] = h2; + x = 0; + o2 = Aa(37, F2 | 0, 44220) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (n2 = k[l2 >> 2] | 0, x = 0, Ea(k[(k[o2 >> 2] | 0) + 32 >> 2] | 0, o2 | 0, n2 | 0, n2 + q2 | 0, s2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + if (!q2) + n2 = 0; + else + n2 = (i2[k[l2 >> 2] >> 0] | 0) == 45; + k[G2 >> 2] = 0; + k[G2 + 4 >> 2] = 0; + k[G2 + 8 >> 2] = 0; + k[I2 >> 2] = 0; + k[I2 + 4 >> 2] = 0; + k[I2 + 8 >> 2] = 0; + k[H2 >> 2] = 0; + k[H2 + 4 >> 2] = 0; + k[H2 + 8 >> 2] = 0; + x = 0; + za(3, c2 | 0, n2 | 0, F2 | 0, A2 | 0, w2 | 0, B2 | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + m2 = k[m2 >> 2] | 0; + if ((q2 | 0) > (m2 | 0)) { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = (q2 - m2 << 1 | 1) + m2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } else { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = m2 + 2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } + if (j2 >>> 0 > 100) { + j2 = Pl(j2) | 0; + l2 = j2; + if (!j2) { + x = 0; + Ga(6); + t2 = x; + x = 0; + if (!(t2 & 1)) { + j2 = 0; + C2 = 26; + } + } else + C2 = 26; + } else { + l2 = 0; + j2 = t2; + C2 = 26; + } + if ((C2 | 0) == 26) { + x = 0; + wa(1, j2 | 0, z2 | 0, y2 | 0, k[d2 + 4 >> 2] | 0, s2 | 0, s2 + q2 | 0, o2 | 0, n2 | 0, A2 | 0, i2[w2 >> 0] | 0, i2[B2 >> 0] | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + B2 = x; + x = 0; + if (!(B2 & 1) ? (k[v2 >> 2] = k[b2 >> 2], b2 = k[z2 >> 2] | 0, E2 = k[y2 >> 2] | 0, x = 0, k[u2 >> 2] = k[v2 >> 2], E2 = sa(39, u2 | 0, j2 | 0, b2 | 0, E2 | 0, d2 | 0, e2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + Sm(H2); + Sm(I2); + Sm(G2); + zm(h2) | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + r = D2; + return E2 | 0; + } + } + j2 = Wa() | 0; + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + } else + j2 = Wa() | 0; + Sm(H2); + Sm(I2); + Sm(G2); + } else + j2 = Wa() | 0; + zm(h2) | 0; + } + } + if ((C2 | 0) == 7) + j2 = Wa() | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + fb(j2 | 0); + return 0; + } + function ms(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + D2 = r; + r = r + 112 | 0; + o2 = D2 + 108 | 0; + p2 = D2 + 96 | 0; + t2 = D2 + 92 | 0; + u2 = D2 + 80 | 0; + v2 = D2 + 68 | 0; + w2 = D2 + 56 | 0; + y2 = D2 + 52 | 0; + z2 = D2 + 40 | 0; + A2 = D2 + 36 | 0; + B2 = D2 + 24 | 0; + q2 = D2 + 12 | 0; + s2 = D2; + do + if (a2) { + a2 = Ss(c2, 43828) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](o2, a2); + b2 = k[o2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](p2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[p2 >> 2]; + k[j2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + Sm(p2); + n2 = a2; + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](t2, a2); + b2 = k[t2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[u2 >> 2]; + k[j2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + Sm(u2); + n2 = a2; + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[f2 >> 0] = j2; + Mb[k[(k[n2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[v2 >> 2]; + k[g2 + 4 >> 2] = k[v2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[v2 + 8 >> 2]; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + Sm(v2); + Mb[k[(k[n2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[w2 >> 2]; + k[h2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + Sm(w2); + C2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(c2, 43764) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](y2, a2); + b2 = k[y2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](z2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[z2 >> 2]; + k[j2 + 4 >> 2] = k[z2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[z2 + 8 >> 2]; + k[z2 >> 2] = 0; + k[z2 + 4 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + Sm(z2); + m2 = a2; + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](A2, a2); + b2 = k[A2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](B2, a2); + if (!(i2[j2 >> 0] & 1)) { + i2[j2 + 1 >> 0] = 0; + i2[j2 >> 0] = 0; + } else { + i2[k[j2 + 8 >> 2] >> 0] = 0; + k[j2 + 4 >> 2] = 0; + } + x = 0; + ra(91, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[B2 >> 2]; + k[j2 + 4 >> 2] = k[B2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[B2 + 8 >> 2]; + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + Sm(B2); + m2 = a2; + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + i2[e2 >> 0] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + i2[f2 >> 0] = j2; + Mb[k[(k[m2 >> 2] | 0) + 20 >> 2] & 127](q2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[q2 >> 2]; + k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; + k[q2 >> 2] = 0; + k[q2 + 4 >> 2] = 0; + k[q2 + 8 >> 2] = 0; + Sm(q2); + Mb[k[(k[m2 >> 2] | 0) + 24 >> 2] & 127](s2, a2); + if (!(i2[h2 >> 0] & 1)) { + i2[h2 + 1 >> 0] = 0; + i2[h2 >> 0] = 0; + } else { + i2[k[h2 + 8 >> 2] >> 0] = 0; + k[h2 + 4 >> 2] = 0; + } + x = 0; + ra(91, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[s2 >> 2]; + k[h2 + 4 >> 2] = k[s2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[s2 + 8 >> 2]; + k[s2 >> 2] = 0; + k[s2 + 4 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + Sm(s2); + C2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = C2; + r = D2; + return; + } + function ns(a2, b2, c2, d2, e2, f2, g2, h2, l2, m2, n2, o2, p2, q2, r2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + p2 = p2 | 0; + q2 = q2 | 0; + r2 = r2 | 0; + var s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0; + k[c2 >> 2] = a2; + N2 = q2 + 4 | 0; + O2 = q2 + 8 | 0; + P2 = q2 + 1 | 0; + H2 = p2 + 4 | 0; + I2 = (d2 & 512 | 0) == 0; + J2 = p2 + 8 | 0; + K2 = p2 + 1 | 0; + L2 = g2 + 8 | 0; + M2 = (r2 | 0) > 0; + A2 = o2 + 4 | 0; + B2 = o2 + 8 | 0; + C2 = o2 + 1 | 0; + D2 = r2 + 1 | 0; + F2 = -2 - r2 - ((r2 | 0) < 0 ? ~r2 : -1) | 0; + G2 = (r2 | 0) > 0; + z2 = 0; + do { + switch (i2[l2 + z2 >> 0] | 0) { + case 0: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 1: { + k[b2 >> 2] = k[c2 >> 2]; + x2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 32) | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + break; + } + case 3: { + y2 = i2[q2 >> 0] | 0; + s2 = (y2 & 1) == 0; + if ((s2 ? (y2 & 255) >>> 1 : k[N2 >> 2] | 0) | 0) { + x2 = i2[(s2 ? P2 : k[O2 >> 2] | 0) >> 0] | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + } + break; + } + case 2: { + u2 = i2[p2 >> 0] | 0; + s2 = (u2 & 1) == 0; + u2 = s2 ? (u2 & 255) >>> 1 : k[H2 >> 2] | 0; + if (!(I2 | (u2 | 0) == 0)) { + t2 = s2 ? K2 : k[J2 >> 2] | 0; + v2 = t2 + u2 | 0; + s2 = k[c2 >> 2] | 0; + if (u2) + do { + i2[s2 >> 0] = i2[t2 >> 0] | 0; + t2 = t2 + 1 | 0; + s2 = s2 + 1 | 0; + } while ((t2 | 0) != (v2 | 0)); + k[c2 >> 2] = s2; + } + break; + } + case 4: { + s2 = k[c2 >> 2] | 0; + e2 = h2 ? e2 + 1 | 0 : e2; + w2 = e2; + v2 = k[L2 >> 2] | 0; + a: + do + if (e2 >>> 0 < f2 >>> 0) { + t2 = e2; + do { + u2 = i2[t2 >> 0] | 0; + if (u2 << 24 >> 24 <= -1) + break a; + if (!(j[v2 + (u2 << 24 >> 24 << 1) >> 1] & 2048)) + break a; + t2 = t2 + 1 | 0; + } while (t2 >>> 0 < f2 >>> 0); + } else + t2 = e2; + while (0); + u2 = t2; + if (M2) { + x2 = -2 - u2 - ~(u2 >>> 0 > w2 >>> 0 ? w2 : u2) | 0; + x2 = F2 >>> 0 > x2 >>> 0 ? F2 : x2; + if (t2 >>> 0 > e2 >>> 0 & G2) { + u2 = t2; + w2 = r2; + while (1) { + u2 = u2 + -1 | 0; + y2 = i2[u2 >> 0] | 0; + v2 = k[c2 >> 2] | 0; + k[c2 >> 2] = v2 + 1; + i2[v2 >> 0] = y2; + v2 = (w2 | 0) > 1; + if (!(u2 >>> 0 > e2 >>> 0 & v2)) + break; + else + w2 = w2 + -1 | 0; + } + } else + v2 = G2; + y2 = D2 + x2 | 0; + u2 = t2 + (x2 + 1) | 0; + if (v2) + w2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 48) | 0; + else + w2 = 0; + t2 = k[c2 >> 2] | 0; + k[c2 >> 2] = t2 + 1; + if ((y2 | 0) > 0) { + v2 = y2; + while (1) { + i2[t2 >> 0] = w2; + t2 = k[c2 >> 2] | 0; + k[c2 >> 2] = t2 + 1; + if ((v2 | 0) > 1) + v2 = v2 + -1 | 0; + else + break; + } + } + i2[t2 >> 0] = m2; + } else + u2 = t2; + if ((u2 | 0) != (e2 | 0)) { + y2 = i2[o2 >> 0] | 0; + t2 = (y2 & 1) == 0; + if (!((t2 ? (y2 & 255) >>> 1 : k[A2 >> 2] | 0) | 0)) + t2 = -1; + else + t2 = i2[(t2 ? C2 : k[B2 >> 2] | 0) >> 0] | 0; + if ((u2 | 0) != (e2 | 0)) { + v2 = 0; + w2 = 0; + while (1) { + if ((w2 | 0) == (t2 | 0)) { + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = n2; + v2 = v2 + 1 | 0; + y2 = i2[o2 >> 0] | 0; + t2 = (y2 & 1) == 0; + if (v2 >>> 0 < (t2 ? (y2 & 255) >>> 1 : k[A2 >> 2] | 0) >>> 0) { + t2 = i2[(t2 ? C2 : k[B2 >> 2] | 0) + v2 >> 0] | 0; + t2 = t2 << 24 >> 24 == 127 ? -1 : t2 << 24 >> 24; + w2 = 0; + } else { + t2 = w2; + w2 = 0; + } + } + u2 = u2 + -1 | 0; + x2 = i2[u2 >> 0] | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + if ((u2 | 0) == (e2 | 0)) + break; + else + w2 = w2 + 1 | 0; + } + } + } else { + x2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 48) | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 1; + i2[y2 >> 0] = x2; + } + t2 = k[c2 >> 2] | 0; + if ((s2 | 0) != (t2 | 0) ? (E2 = t2 + -1 | 0, s2 >>> 0 < E2 >>> 0) : 0) { + t2 = E2; + do { + y2 = i2[s2 >> 0] | 0; + i2[s2 >> 0] = i2[t2 >> 0] | 0; + i2[t2 >> 0] = y2; + s2 = s2 + 1 | 0; + t2 = t2 + -1 | 0; + } while (s2 >>> 0 < t2 >>> 0); + } + break; + } + default: { + } + } + z2 = z2 + 1 | 0; + } while ((z2 | 0) != 4); + t2 = i2[q2 >> 0] | 0; + e2 = (t2 & 1) == 0; + t2 = e2 ? (t2 & 255) >>> 1 : k[N2 >> 2] | 0; + if (t2 >>> 0 > 1) { + s2 = e2 ? P2 : k[O2 >> 2] | 0; + u2 = s2 + t2 | 0; + e2 = k[c2 >> 2] | 0; + if ((t2 | 0) != 1) { + s2 = s2 + 1 | 0; + do { + i2[e2 >> 0] = i2[s2 >> 0] | 0; + e2 = e2 + 1 | 0; + s2 = s2 + 1 | 0; + } while ((s2 | 0) != (u2 | 0)); + } + k[c2 >> 2] = e2; + } + switch (d2 & 176 | 0) { + case 32: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 16: + break; + default: + k[b2 >> 2] = a2; + } + return; + } + function os(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + z2 = r; + r = r + 176 | 0; + p2 = z2 + 56 | 0; + B2 = z2 + 52 | 0; + w2 = z2 + 64 | 0; + t2 = z2 + 61 | 0; + y2 = z2 + 60 | 0; + C2 = z2 + 40 | 0; + E2 = z2 + 28 | 0; + D2 = z2 + 16 | 0; + l2 = z2 + 12 | 0; + o2 = z2 + 68 | 0; + v2 = z2 + 8 | 0; + u2 = z2 + 4 | 0; + q2 = z2; + a2 = tn(d2) | 0; + k[B2 >> 2] = a2; + x = 0; + s2 = Aa(37, B2 | 0, 44220) | 0; + n2 = x; + x = 0; + do + if (n2 & 1) + F2 = 13; + else { + m2 = i2[f2 >> 0] | 0; + g2 = (m2 & 1) == 0; + n2 = f2 + 4 | 0; + if (!((g2 ? (m2 & 255) >>> 1 : k[n2 >> 2] | 0) | 0)) + m2 = 0; + else { + g2 = i2[(g2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0) >> 0] | 0; + x = 0; + h2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, 45) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 13; + break; + } + m2 = g2 << 24 >> 24 == h2 << 24 >> 24; + } + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + x = 0; + za(3, c2 | 0, m2 | 0, B2 | 0, w2 | 0, t2 | 0, y2 | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[n2 >> 2] | 0; + g2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : c2; + l2 = k[l2 >> 2] | 0; + if ((g2 | 0) > (l2 | 0)) { + G2 = i2[D2 >> 0] | 0; + h2 = i2[E2 >> 0] | 0; + g2 = (g2 - l2 << 1 | 1) + l2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } else { + G2 = i2[D2 >> 0] | 0; + g2 = i2[E2 >> 0] | 0; + g2 = l2 + 2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } + if (g2 >>> 0 > 100) { + g2 = Pl(g2) | 0; + h2 = g2; + if (!g2) { + x = 0; + Ga(6); + G2 = x; + x = 0; + if (!(G2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[n2 >> 2] | 0; + g2 = 0; + F2 = 17; + } + } else + F2 = 17; + } else { + h2 = 0; + g2 = o2; + F2 = 17; + } + if ((F2 | 0) == 17) { + G2 = (j2 & 1) == 0; + f2 = G2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0; + x = 0; + wa(1, g2 | 0, v2 | 0, u2 | 0, k[d2 + 4 >> 2] | 0, f2 | 0, f2 + (G2 ? (j2 & 255) >>> 1 : c2) | 0, s2 | 0, m2 | 0, w2 | 0, i2[t2 >> 0] | 0, i2[y2 >> 0] | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + G2 = x; + x = 0; + if (!(G2 & 1) ? (k[q2 >> 2] = k[b2 >> 2], G2 = k[v2 >> 2] | 0, A2 = k[u2 >> 2] | 0, x = 0, k[p2 >> 2] = k[q2 >> 2], A2 = sa(39, p2 | 0, g2 | 0, G2 | 0, A2 | 0, d2 | 0, e2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + Sm(D2); + Sm(E2); + Sm(C2); + zm(a2) | 0; + r = z2; + return A2 | 0; + } + } + g2 = Wa() | 0; + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + } else + g2 = Wa() | 0; + Sm(D2); + Sm(E2); + Sm(C2); + } + while (0); + if ((F2 | 0) == 13) + g2 = Wa() | 0; + zm(a2) | 0; + fb(g2 | 0); + return 0; + } + function ps(a2) { + a2 = a2 | 0; + return; + } + function qs(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function rs(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + D2 = r; + r = r + 992 | 0; + u2 = D2 + 8 | 0; + g2 = D2; + j2 = D2 + 888 | 0; + l2 = D2 + 880 | 0; + h2 = D2 + 480 | 0; + F2 = D2 + 76 | 0; + A2 = D2 + 884 | 0; + w2 = D2 + 72 | 0; + B2 = D2 + 68 | 0; + G2 = D2 + 56 | 0; + I2 = D2 + 44 | 0; + H2 = D2 + 32 | 0; + m2 = D2 + 28 | 0; + t2 = D2 + 80 | 0; + z2 = D2 + 24 | 0; + y2 = D2 + 20 | 0; + v2 = D2 + 16 | 0; + k[l2 >> 2] = j2; + p[u2 >> 3] = f2; + j2 = il(j2, 100, 59018, u2) | 0; + do + if (j2 >>> 0 > 99) { + x = 0; + a2 = Da(3) | 0; + C2 = x; + x = 0; + if (!(C2 & 1) ? (x = 0, p[g2 >> 3] = f2, q2 = Ea(17, l2 | 0, a2 | 0, 59018, g2 | 0) | 0, C2 = x, x = 0, !(C2 & 1)) : 0) { + a2 = k[l2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) { + a2 = 0; + g2 = 0; + C2 = 7; + break; + } + a2 = k[l2 >> 2] | 0; + } + h2 = Pl(q2 << 2) | 0; + g2 = h2; + if (!h2) { + x = 0; + Ga(6); + C2 = x; + x = 0; + if (C2 & 1) + C2 = 7; + else { + s2 = 0; + C2 = 10; + } + } else { + s2 = h2; + C2 = 10; + } + } else { + a2 = 0; + g2 = 0; + C2 = 7; + } + } else { + g2 = 0; + a2 = 0; + s2 = h2; + q2 = j2; + C2 = 10; + } + while (0); + if ((C2 | 0) == 10) { + x = 0; + h2 = ta(68, d2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) + C2 = 7; + else { + k[F2 >> 2] = h2; + x = 0; + o2 = Aa(37, F2 | 0, 44212) | 0; + n2 = x; + x = 0; + if (!(n2 & 1) ? (n2 = k[l2 >> 2] | 0, x = 0, Ea(k[(k[o2 >> 2] | 0) + 48 >> 2] | 0, o2 | 0, n2 | 0, n2 + q2 | 0, s2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + if (!q2) + n2 = 0; + else + n2 = (i2[k[l2 >> 2] >> 0] | 0) == 45; + k[G2 >> 2] = 0; + k[G2 + 4 >> 2] = 0; + k[G2 + 8 >> 2] = 0; + k[I2 >> 2] = 0; + k[I2 + 4 >> 2] = 0; + k[I2 + 8 >> 2] = 0; + k[H2 >> 2] = 0; + k[H2 + 4 >> 2] = 0; + k[H2 + 8 >> 2] = 0; + x = 0; + za(4, c2 | 0, n2 | 0, F2 | 0, A2 | 0, w2 | 0, B2 | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) { + m2 = k[m2 >> 2] | 0; + if ((q2 | 0) > (m2 | 0)) { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = (q2 - m2 << 1 | 1) + m2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } else { + c2 = i2[H2 >> 0] | 0; + j2 = i2[I2 >> 0] | 0; + j2 = m2 + 2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; + } + if (j2 >>> 0 > 100) { + j2 = Pl(j2 << 2) | 0; + l2 = j2; + if (!j2) { + x = 0; + Ga(6); + t2 = x; + x = 0; + if (!(t2 & 1)) { + j2 = 0; + C2 = 26; + } + } else + C2 = 26; + } else { + l2 = 0; + j2 = t2; + C2 = 26; + } + if ((C2 | 0) == 26) { + x = 0; + wa(2, j2 | 0, z2 | 0, y2 | 0, k[d2 + 4 >> 2] | 0, s2 | 0, s2 + (q2 << 2) | 0, o2 | 0, n2 | 0, A2 | 0, k[w2 >> 2] | 0, k[B2 >> 2] | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); + B2 = x; + x = 0; + if (!(B2 & 1) ? (k[v2 >> 2] = k[b2 >> 2], b2 = k[z2 >> 2] | 0, E2 = k[y2 >> 2] | 0, x = 0, k[u2 >> 2] = k[v2 >> 2], E2 = sa(40, u2 | 0, j2 | 0, b2 | 0, E2 | 0, d2 | 0, e2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + en(H2); + en(I2); + Sm(G2); + zm(h2) | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + r = D2; + return E2 | 0; + } + } + j2 = Wa() | 0; + if (l2) { + Ql(l2); + h2 = k[F2 >> 2] | 0; + } + } else + j2 = Wa() | 0; + en(H2); + en(I2); + Sm(G2); + } else + j2 = Wa() | 0; + zm(h2) | 0; + } + } + if ((C2 | 0) == 7) + j2 = Wa() | 0; + if (g2) + Ql(g2); + if (a2) + Ql(a2); + fb(j2 | 0); + return 0; + } + function ss(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0; + B2 = r; + r = r + 112 | 0; + m2 = B2 + 108 | 0; + n2 = B2 + 96 | 0; + q2 = B2 + 92 | 0; + s2 = B2 + 80 | 0; + t2 = B2 + 68 | 0; + u2 = B2 + 56 | 0; + v2 = B2 + 52 | 0; + w2 = B2 + 40 | 0; + y2 = B2 + 36 | 0; + z2 = B2 + 24 | 0; + o2 = B2 + 12 | 0; + p2 = B2; + do + if (a2) { + a2 = Ss(c2, 43956) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](m2, a2); + b2 = k[m2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[n2 >> 2]; + k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; + k[n2 >> 2] = 0; + k[n2 + 4 >> 2] = 0; + k[n2 + 8 >> 2] = 0; + en(n2); + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](q2, a2); + b2 = k[q2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](s2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[s2 >> 2]; + k[j2 + 4 >> 2] = k[s2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[s2 + 8 >> 2]; + k[s2 >> 2] = 0; + k[s2 + 4 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + en(s2); + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[e2 >> 2] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[f2 >> 2] = j2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](t2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[t2 >> 2]; + k[g2 + 4 >> 2] = k[t2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[t2 + 8 >> 2]; + k[t2 >> 2] = 0; + k[t2 + 4 >> 2] = 0; + k[t2 + 8 >> 2] = 0; + Sm(t2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](u2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[u2 >> 2]; + k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; + k[u2 >> 2] = 0; + k[u2 + 4 >> 2] = 0; + k[u2 + 8 >> 2] = 0; + en(u2); + A2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } else { + a2 = Ss(c2, 43892) | 0; + c2 = k[a2 >> 2] | 0; + do + if (b2) { + Mb[k[c2 + 44 >> 2] & 127](v2, a2); + b2 = k[v2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](w2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[w2 >> 2]; + k[j2 + 4 >> 2] = k[w2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[w2 + 8 >> 2]; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + en(w2); + break; + } + } else { + Mb[k[c2 + 40 >> 2] & 127](y2, a2); + b2 = k[y2 >> 2] | 0; + i2[d2 >> 0] = b2; + i2[d2 + 1 >> 0] = b2 >> 8; + i2[d2 + 2 >> 0] = b2 >> 16; + i2[d2 + 3 >> 0] = b2 >> 24; + Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](z2, a2); + if (!(i2[j2 >> 0] & 1)) + i2[j2 >> 0] = 0; + else + k[k[j2 + 8 >> 2] >> 2] = 0; + k[j2 + 4 >> 2] = 0; + x = 0; + ra(93, j2 | 0, 0); + d2 = x; + x = 0; + if (d2 & 1) { + j2 = Wa(0) | 0; + oc(j2); + } else { + k[j2 >> 2] = k[z2 >> 2]; + k[j2 + 4 >> 2] = k[z2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[z2 + 8 >> 2]; + k[z2 >> 2] = 0; + k[z2 + 4 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + en(z2); + break; + } + } + while (0); + j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; + k[e2 >> 2] = j2; + j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; + k[f2 >> 2] = j2; + Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](o2, a2); + if (!(i2[g2 >> 0] & 1)) { + i2[g2 + 1 >> 0] = 0; + i2[g2 >> 0] = 0; + } else { + i2[k[g2 + 8 >> 2] >> 0] = 0; + k[g2 + 4 >> 2] = 0; + } + x = 0; + ra(91, g2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } + ; + k[g2 >> 2] = k[o2 >> 2]; + k[g2 + 4 >> 2] = k[o2 + 4 >> 2]; + k[g2 + 8 >> 2] = k[o2 + 8 >> 2]; + k[o2 >> 2] = 0; + k[o2 + 4 >> 2] = 0; + k[o2 + 8 >> 2] = 0; + Sm(o2); + Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](p2, a2); + if (!(i2[h2 >> 0] & 1)) + i2[h2 >> 0] = 0; + else + k[k[h2 + 8 >> 2] >> 2] = 0; + k[h2 + 4 >> 2] = 0; + x = 0; + ra(93, h2 | 0, 0); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa(0) | 0; + oc(f2); + } else { + k[h2 >> 2] = k[p2 >> 2]; + k[h2 + 4 >> 2] = k[p2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[p2 + 8 >> 2]; + k[p2 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 + 8 >> 2] = 0; + en(p2); + A2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; + break; + } + } + while (0); + k[l2 >> 2] = A2; + r = B2; + return; + } + function ts(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2, m2, n2, o2, p2, q2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + p2 = p2 | 0; + q2 = q2 | 0; + var r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0; + k[c2 >> 2] = a2; + J2 = p2 + 4 | 0; + K2 = p2 + 8 | 0; + C2 = o2 + 4 | 0; + D2 = (d2 & 512 | 0) == 0; + E2 = o2 + 8 | 0; + F2 = (q2 | 0) > 0; + G2 = n2 + 4 | 0; + H2 = n2 + 8 | 0; + I2 = n2 + 1 | 0; + A2 = (q2 | 0) > 0; + z2 = 0; + do { + switch (i2[j2 + z2 >> 0] | 0) { + case 0: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 1: { + k[b2 >> 2] = k[c2 >> 2]; + x2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 32) | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 4; + k[y2 >> 2] = x2; + break; + } + case 3: { + y2 = i2[p2 >> 0] | 0; + r2 = (y2 & 1) == 0; + if ((r2 ? (y2 & 255) >>> 1 : k[J2 >> 2] | 0) | 0) { + x2 = k[(r2 ? J2 : k[K2 >> 2] | 0) >> 2] | 0; + y2 = k[c2 >> 2] | 0; + k[c2 >> 2] = y2 + 4; + k[y2 >> 2] = x2; + } + break; + } + case 2: { + v2 = i2[o2 >> 0] | 0; + r2 = (v2 & 1) == 0; + v2 = r2 ? (v2 & 255) >>> 1 : k[C2 >> 2] | 0; + if (!(D2 | (v2 | 0) == 0)) { + r2 = r2 ? C2 : k[E2 >> 2] | 0; + t2 = r2 + (v2 << 2) | 0; + u2 = k[c2 >> 2] | 0; + if (v2) { + s2 = u2; + while (1) { + k[s2 >> 2] = k[r2 >> 2]; + r2 = r2 + 4 | 0; + if ((r2 | 0) == (t2 | 0)) + break; + else + s2 = s2 + 4 | 0; + } + } + k[c2 >> 2] = u2 + (v2 << 2); + } + break; + } + case 4: { + r2 = k[c2 >> 2] | 0; + e2 = h2 ? e2 + 4 | 0 : e2; + a: + do + if (e2 >>> 0 < f2 >>> 0) { + s2 = e2; + do { + if (!(Qb[k[(k[g2 >> 2] | 0) + 12 >> 2] & 63](g2, 2048, k[s2 >> 2] | 0) | 0)) + break a; + s2 = s2 + 4 | 0; + } while (s2 >>> 0 < f2 >>> 0); + } else + s2 = e2; + while (0); + if (F2) { + if (s2 >>> 0 > e2 >>> 0 & A2) { + v2 = k[c2 >> 2] | 0; + u2 = q2; + while (1) { + s2 = s2 + -4 | 0; + t2 = v2 + 4 | 0; + k[v2 >> 2] = k[s2 >> 2]; + w2 = u2 + -1 | 0; + u2 = (u2 | 0) > 1; + if (s2 >>> 0 > e2 >>> 0 & u2) { + v2 = t2; + u2 = w2; + } else { + v2 = w2; + break; + } + } + k[c2 >> 2] = t2; + t2 = v2; + } else { + u2 = A2; + t2 = q2; + } + if (u2) + w2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 48) | 0; + else + w2 = 0; + x2 = k[c2 >> 2] | 0; + u2 = t2 + ((t2 | 0) < 0 ? ~t2 : -1) | 0; + if ((t2 | 0) > 0) { + v2 = x2; + while (1) { + k[v2 >> 2] = w2; + if ((t2 | 0) > 1) { + v2 = v2 + 4 | 0; + t2 = t2 + -1 | 0; + } else + break; + } + } + k[c2 >> 2] = x2 + (u2 + 2 << 2); + k[x2 + (u2 + 1 << 2) >> 2] = l2; + } + if ((s2 | 0) == (e2 | 0)) { + x2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 48) | 0; + y2 = k[c2 >> 2] | 0; + s2 = y2 + 4 | 0; + k[c2 >> 2] = s2; + k[y2 >> 2] = x2; + } else { + x2 = i2[n2 >> 0] | 0; + t2 = (x2 & 1) == 0; + y2 = k[G2 >> 2] | 0; + if (!((t2 ? (x2 & 255) >>> 1 : y2) | 0)) + t2 = -1; + else + t2 = i2[(t2 ? I2 : k[H2 >> 2] | 0) >> 0] | 0; + if ((s2 | 0) != (e2 | 0)) { + w2 = 0; + x2 = 0; + while (1) { + u2 = k[c2 >> 2] | 0; + if ((x2 | 0) == (t2 | 0)) { + v2 = u2 + 4 | 0; + k[c2 >> 2] = v2; + k[u2 >> 2] = m2; + w2 = w2 + 1 | 0; + u2 = i2[n2 >> 0] | 0; + t2 = (u2 & 1) == 0; + if (w2 >>> 0 < (t2 ? (u2 & 255) >>> 1 : y2) >>> 0) { + t2 = i2[(t2 ? I2 : k[H2 >> 2] | 0) + w2 >> 0] | 0; + u2 = v2; + t2 = t2 << 24 >> 24 == 127 ? -1 : t2 << 24 >> 24; + v2 = 0; + } else { + u2 = v2; + t2 = x2; + v2 = 0; + } + } else + v2 = x2; + s2 = s2 + -4 | 0; + x2 = k[s2 >> 2] | 0; + k[c2 >> 2] = u2 + 4; + k[u2 >> 2] = x2; + if ((s2 | 0) == (e2 | 0)) + break; + else + x2 = v2 + 1 | 0; + } + } + s2 = k[c2 >> 2] | 0; + } + if ((r2 | 0) != (s2 | 0) ? (B2 = s2 + -4 | 0, r2 >>> 0 < B2 >>> 0) : 0) { + s2 = B2; + do { + y2 = k[r2 >> 2] | 0; + k[r2 >> 2] = k[s2 >> 2]; + k[s2 >> 2] = y2; + r2 = r2 + 4 | 0; + s2 = s2 + -4 | 0; + } while (r2 >>> 0 < s2 >>> 0); + } + break; + } + default: { + } + } + z2 = z2 + 1 | 0; + } while ((z2 | 0) != 4); + r2 = i2[p2 >> 0] | 0; + e2 = (r2 & 1) == 0; + r2 = e2 ? (r2 & 255) >>> 1 : k[J2 >> 2] | 0; + if (r2 >>> 0 > 1) { + s2 = e2 ? J2 : k[K2 >> 2] | 0; + e2 = s2 + 4 | 0; + s2 = s2 + (r2 << 2) | 0; + t2 = k[c2 >> 2] | 0; + u2 = s2 - e2 | 0; + if ((r2 | 0) != 1) { + r2 = t2; + while (1) { + k[r2 >> 2] = k[e2 >> 2]; + e2 = e2 + 4 | 0; + if ((e2 | 0) == (s2 | 0)) + break; + else + r2 = r2 + 4 | 0; + } + } + k[c2 >> 2] = t2 + (u2 >>> 2 << 2); + } + switch (d2 & 176 | 0) { + case 32: { + k[b2 >> 2] = k[c2 >> 2]; + break; + } + case 16: + break; + default: + k[b2 >> 2] = a2; + } + return; + } + function us(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + z2 = r; + r = r + 480 | 0; + o2 = z2 + 468 | 0; + B2 = z2 + 464 | 0; + w2 = z2 + 472 | 0; + t2 = z2 + 56 | 0; + y2 = z2 + 52 | 0; + C2 = z2 + 40 | 0; + E2 = z2 + 28 | 0; + D2 = z2 + 16 | 0; + l2 = z2 + 12 | 0; + n2 = z2 + 64 | 0; + v2 = z2 + 8 | 0; + u2 = z2 + 4 | 0; + p2 = z2; + a2 = tn(d2) | 0; + k[B2 >> 2] = a2; + x = 0; + q2 = Aa(37, B2 | 0, 44212) | 0; + s2 = x; + x = 0; + do + if (s2 & 1) + F2 = 13; + else { + m2 = i2[f2 >> 0] | 0; + g2 = (m2 & 1) == 0; + s2 = f2 + 4 | 0; + if (!((g2 ? (m2 & 255) >>> 1 : k[s2 >> 2] | 0) | 0)) + m2 = 0; + else { + g2 = k[(g2 ? s2 : k[f2 + 8 >> 2] | 0) >> 2] | 0; + x = 0; + h2 = Aa(k[(k[q2 >> 2] | 0) + 44 >> 2] | 0, q2 | 0, 45) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 13; + break; + } + m2 = (g2 | 0) == (h2 | 0); + } + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + x = 0; + za(4, c2 | 0, m2 | 0, B2 | 0, w2 | 0, t2 | 0, y2 | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[s2 >> 2] | 0; + g2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : c2; + l2 = k[l2 >> 2] | 0; + if ((g2 | 0) > (l2 | 0)) { + G2 = i2[D2 >> 0] | 0; + h2 = i2[E2 >> 0] | 0; + g2 = (g2 - l2 << 1 | 1) + l2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } else { + G2 = i2[D2 >> 0] | 0; + g2 = i2[E2 >> 0] | 0; + g2 = l2 + 2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; + } + if (g2 >>> 0 > 100) { + g2 = Pl(g2 << 2) | 0; + h2 = g2; + if (!g2) { + x = 0; + Ga(6); + G2 = x; + x = 0; + if (!(G2 & 1)) { + j2 = i2[f2 >> 0] | 0; + c2 = k[s2 >> 2] | 0; + g2 = 0; + F2 = 17; + } + } else + F2 = 17; + } else { + h2 = 0; + g2 = n2; + F2 = 17; + } + if ((F2 | 0) == 17) { + G2 = (j2 & 1) == 0; + f2 = G2 ? s2 : k[f2 + 8 >> 2] | 0; + x = 0; + wa(2, g2 | 0, v2 | 0, u2 | 0, k[d2 + 4 >> 2] | 0, f2 | 0, f2 + ((G2 ? (j2 & 255) >>> 1 : c2) << 2) | 0, q2 | 0, m2 | 0, w2 | 0, k[t2 >> 2] | 0, k[y2 >> 2] | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); + G2 = x; + x = 0; + if (!(G2 & 1) ? (k[p2 >> 2] = k[b2 >> 2], G2 = k[v2 >> 2] | 0, A2 = k[u2 >> 2] | 0, x = 0, k[o2 >> 2] = k[p2 >> 2], A2 = sa(40, o2 | 0, g2 | 0, G2 | 0, A2 | 0, d2 | 0, e2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + en(D2); + en(E2); + Sm(C2); + zm(a2) | 0; + r = z2; + return A2 | 0; + } + } + g2 = Wa() | 0; + if (h2) { + Ql(h2); + a2 = k[B2 >> 2] | 0; + } + } else + g2 = Wa() | 0; + en(D2); + en(E2); + Sm(C2); + } + while (0); + if ((F2 | 0) == 13) + g2 = Wa() | 0; + zm(a2) | 0; + fb(g2 | 0); + return 0; + } + function vs(a2) { + a2 = a2 | 0; + return; + } + function ws(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function xs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = vk((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, 1) | 0; + return a2 >>> ((a2 | 0) != (-1 | 0) & 1) | 0; + } + function ys(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0; + h2 = r; + r = r + 16 | 0; + j2 = h2; + k[j2 >> 2] = 0; + k[j2 + 4 >> 2] = 0; + k[j2 + 8 >> 2] = 0; + g2 = i2[f2 >> 0] | 0; + l2 = (g2 & 1) == 0; + b2 = l2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0; + g2 = l2 ? (g2 & 255) >>> 1 : k[f2 + 4 >> 2] | 0; + f2 = b2 + g2 | 0; + a: + do + if ((g2 | 0) > 0) { + while (1) { + x = 0; + ra(67, j2 | 0, i2[b2 >> 0] | 0); + l2 = x; + x = 0; + if (l2 & 1) + break; + b2 = b2 + 1 | 0; + if (b2 >>> 0 >= f2 >>> 0) { + g2 = 4; + break a; + } + } + b2 = Wa() | 0; + g2 = 7; + } else + g2 = 4; + while (0); + b: + do + if ((g2 | 0) == 4) { + x = 0; + b2 = Ea(19, ((c2 | 0) == -1 ? -1 : c2 << 1) | 0, d2 | 0, e2 | 0, ((i2[j2 >> 0] & 1) == 0 ? j2 + 1 | 0 : k[j2 + 8 >> 2] | 0) | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + b2 = Wa() | 0; + g2 = 7; + break; + } + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + l2 = xl(b2) | 0; + f2 = b2 + l2 | 0; + c: + do + if ((l2 | 0) > 0) { + while (1) { + x = 0; + ra(67, a2 | 0, i2[b2 >> 0] | 0); + l2 = x; + x = 0; + if (l2 & 1) + break; + b2 = b2 + 1 | 0; + if (b2 >>> 0 >= f2 >>> 0) + break c; + } + b2 = Wa() | 0; + Sm(a2); + break b; + } + while (0); + Sm(j2); + r = h2; + return; + } + while (0); + Sm(j2); + fb(b2 | 0); + } + function zs(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function As(a2) { + a2 = a2 | 0; + return; + } + function Bs(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Cs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = vk((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, 1) | 0; + return a2 >>> ((a2 | 0) != (-1 | 0) & 1) | 0; + } + function Ds(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + v2 = r; + r = r + 224 | 0; + n2 = v2 + 184 | 0; + m2 = v2 + 192 | 0; + l2 = v2 + 180 | 0; + o2 = v2 + 176 | 0; + t2 = v2 + 168 | 0; + s2 = v2 + 40 | 0; + q2 = v2 + 32 | 0; + u2 = v2 + 28 | 0; + w2 = v2 + 16 | 0; + j2 = v2 + 8 | 0; + p2 = v2; + k[w2 >> 2] = 0; + k[w2 + 4 >> 2] = 0; + k[w2 + 8 >> 2] = 0; + k[j2 + 4 >> 2] = 0; + k[j2 >> 2] = 44696; + h2 = i2[f2 >> 0] | 0; + y2 = (h2 & 1) == 0; + g2 = f2 + 4 | 0; + b2 = y2 ? g2 : k[f2 + 8 >> 2] | 0; + f2 = y2 ? (h2 & 255) >>> 1 : k[g2 >> 2] | 0; + g2 = b2 + (f2 << 2) | 0; + h2 = m2 + 32 | 0; + a: + do + if ((f2 | 0) > 0) { + b: + while (1) { + k[o2 >> 2] = b2; + x = 0; + f2 = Ha(k[(k[j2 >> 2] | 0) + 12 >> 2] | 0, j2 | 0, n2 | 0, b2 | 0, g2 | 0, o2 | 0, m2 | 0, h2 | 0, l2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 12; + break; + } + if ((f2 | 0) == 2 ? 1 : (k[o2 >> 2] | 0) == (b2 | 0)) { + f2 = 5; + break; + } + if (m2 >>> 0 < (k[l2 >> 2] | 0) >>> 0) { + b2 = m2; + do { + x = 0; + ra(67, w2 | 0, i2[b2 >> 0] | 0); + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 11; + break b; + } + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < (k[l2 >> 2] | 0) >>> 0); + } + b2 = k[o2 >> 2] | 0; + if (!((f2 | 0) != 2 & b2 >>> 0 < g2 >>> 0)) { + f2 = 9; + break a; + } + } + if ((f2 | 0) == 5) { + x = 0; + qa(190, 58955); + x = 0; + b2 = Wa() | 0; + } else if ((f2 | 0) == 11) + b2 = Wa() | 0; + else if ((f2 | 0) == 12) + b2 = Wa() | 0; + } else + f2 = 9; + while (0); + c: + do + if ((f2 | 0) == 9) { + x = 0; + b2 = Ea(19, ((c2 | 0) == -1 ? -1 : c2 << 1) | 0, d2 | 0, e2 | 0, ((i2[w2 >> 0] & 1) == 0 ? w2 + 1 | 0 : k[w2 + 8 >> 2] | 0) | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + b2 = Wa() | 0; + break; + } + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[p2 + 4 >> 2] = 0; + k[p2 >> 2] = 44744; + y2 = xl(b2) | 0; + g2 = b2 + y2 | 0; + h2 = g2; + j2 = s2 + 128 | 0; + d: + do + if ((y2 | 0) > 0) { + e: + while (1) { + k[u2 >> 2] = b2; + x = 0; + f2 = Ha(k[(k[p2 >> 2] | 0) + 16 >> 2] | 0, p2 | 0, t2 | 0, b2 | 0, ((h2 - b2 | 0) > 32 ? b2 + 32 | 0 : g2) | 0, u2 | 0, s2 | 0, j2 | 0, q2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 24; + break; + } + if ((f2 | 0) == 2 ? 1 : (k[u2 >> 2] | 0) == (b2 | 0)) { + f2 = 18; + break; + } + if (s2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + b2 = s2; + do { + x = 0; + ra(92, a2 | 0, k[b2 >> 2] | 0); + y2 = x; + x = 0; + if (y2 & 1) { + f2 = 23; + break e; + } + b2 = b2 + 4 | 0; + } while (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0); + } + b2 = k[u2 >> 2] | 0; + if (!((f2 | 0) != 2 & b2 >>> 0 < g2 >>> 0)) + break d; + } + if ((f2 | 0) == 18) { + x = 0; + qa(190, 58955); + x = 0; + b2 = Wa() | 0; + } else if ((f2 | 0) == 23) + b2 = Wa() | 0; + else if ((f2 | 0) == 24) + b2 = Wa() | 0; + en(a2); + break c; + } + while (0); + Sm(w2); + r = v2; + return; + } + while (0); + Sm(w2); + fb(b2 | 0); + } + function Es(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function Fs(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44196; + f2 = a2 + 8 | 0; + x = 0; + ra(94, f2 | 0, 28); + e2 = x; + x = 0; + if (e2 & 1) + b2 = Wa() | 0; + else { + e2 = a2 + 144 | 0; + x = 0; + Fa(5, e2 | 0, 58885, 1); + d2 = x; + x = 0; + if (d2 & 1) + b2 = Wa() | 0; + else { + c2 = k[f2 >> 2] | 0; + d2 = a2 + 12 | 0; + b2 = k[d2 >> 2] | 0; + if ((b2 | 0) != (c2 | 0)) { + do + b2 = b2 + -4 | 0; + while ((b2 | 0) != (c2 | 0)); + k[d2 >> 2] = b2; + } + k[495] = 0; + k[494] = 43124; + x = 0; + ra(95, a2 | 0, 1976); + d2 = x; + x = 0; + do + if (((((((((((((!(d2 & 1) ? (k[497] = 0, k[496] = 43164, x = 0, ra(96, a2 | 0, 1984), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[499] = 0, k[498] = 44236, k[500] = 0, i2[2004] = 0, d2 = Ys() | 0, k[500] = d2, x = 0, ra(97, a2 | 0, 1992), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[503] = 0, k[502] = 44484, x = 0, ra(98, a2 | 0, 2008), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[505] = 0, k[504] = 44552, x = 0, ra(99, a2 | 0, 2016), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ra(100, 2024, 1), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ra(101, a2 | 0, 2024), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[511] = 0, k[510] = 44600, x = 0, ra(102, a2 | 0, 2040), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[513] = 0, k[512] = 44648, x = 0, ra(103, a2 | 0, 2048), d2 = x, x = 0, !(d2 & 1)) : 0) ? (bu(2056, 1), x = 0, ra(104, a2 | 0, 2056), d2 = x, x = 0, !(d2 & 1)) : 0) ? (cu(2080, 1), x = 0, ra(105, a2 | 0, 2080), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[529] = 0, k[528] = 43204, x = 0, ra(106, a2 | 0, 2112), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[531] = 0, k[530] = 43276, x = 0, ra(107, a2 | 0, 2120), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[533] = 0, k[532] = 43348, x = 0, ra(108, a2 | 0, 2128), d2 = x, x = 0, !(d2 & 1)) : 0) { + k[535] = 0; + k[534] = 43408; + x = 0; + ra(109, a2 | 0, 2136); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[537] = 0; + k[536] = 43716; + x = 0; + ra(110, a2 | 0, 2144); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[539] = 0; + k[538] = 43780; + x = 0; + ra(111, a2 | 0, 2152); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[541] = 0; + k[540] = 43844; + x = 0; + ra(112, a2 | 0, 2160); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[543] = 0; + k[542] = 43908; + x = 0; + ra(113, a2 | 0, 2168); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[545] = 0; + k[544] = 43972; + x = 0; + ra(114, a2 | 0, 2176); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[547] = 0; + k[546] = 44008; + x = 0; + ra(115, a2 | 0, 2184); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[549] = 0; + k[548] = 44044; + x = 0; + ra(116, a2 | 0, 2192); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[551] = 0; + k[550] = 44080; + x = 0; + ra(117, a2 | 0, 2200); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[553] = 0; + k[552] = 43468; + k[554] = 43516; + x = 0; + ra(118, a2 | 0, 2208); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[557] = 0; + k[556] = 43560; + k[558] = 43608; + x = 0; + ra(119, a2 | 0, 2224); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[561] = 0; + k[560] = 44464; + x = 0; + b2 = Da(3) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + b2 = Wa() | 0; + break; + } + k[562] = b2; + k[560] = 43652; + x = 0; + ra(120, a2 | 0, 2240); + d2 = x; + x = 0; + if (d2 & 1) { + g2 = 42; + break; + } + k[565] = 0; + k[564] = 44464; + x = 0; + b2 = Da(3) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + b2 = Wa() | 0; + break; + } + k[566] = b2; + k[564] = 43684; + x = 0; + ra(121, a2 | 0, 2256); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = 42; + break; + } + k[569] = 0; + k[568] = 44116; + x = 0; + ra(122, a2 | 0, 2272); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = 42; + break; + } + k[571] = 0; + k[570] = 44156; + x = 0; + ra(123, a2 | 0, 2280); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = 42; + break; + } + return; + } else + g2 = 42; + while (0); + if ((g2 | 0) == 42) + b2 = Wa() | 0; + Sm(e2); + } + Nv(f2); + } + fb(b2 | 0); + } + function Gs() { + var a2 = 0; + do + if ((i2[2288] | 0) == 0 ? (Qa(2288) | 0) != 0 : 0) { + x = 0; + Da(4) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2288); + fb(a2 | 0); + } else { + k[11246] = 44980; + Ya(2288); + break; + } + } + while (0); + return k[11246] | 0; + } + function Hs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + ym(b2); + e2 = a2 + 8 | 0; + d2 = k[e2 >> 2] | 0; + do + if ((k[a2 + 12 >> 2] | 0) - d2 >> 2 >>> 0 <= c2 >>> 0) { + x = 0; + ra(124, e2 | 0, c2 + 1 | 0); + a2 = x; + x = 0; + if (!(a2 & 1)) { + d2 = k[e2 >> 2] | 0; + break; + } + d2 = Wa() | 0; + if (b2) + zm(b2) | 0; + fb(d2 | 0); + } + while (0); + a2 = k[d2 + (c2 << 2) >> 2] | 0; + if (a2) { + zm(a2) | 0; + d2 = k[e2 >> 2] | 0; + } + k[d2 + (c2 << 2) >> 2] = b2; + return; + } + function Is(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + k[a2 >> 2] = 44196; + d2 = a2 + 8 | 0; + e2 = a2 + 12 | 0; + b2 = k[d2 >> 2] | 0; + if ((k[e2 >> 2] | 0) != (b2 | 0)) { + c2 = 0; + do { + b2 = k[b2 + (c2 << 2) >> 2] | 0; + if (b2) + zm(b2) | 0; + c2 = c2 + 1 | 0; + b2 = k[d2 >> 2] | 0; + } while (c2 >>> 0 < (k[e2 >> 2] | 0) - b2 >> 2 >>> 0); + } + Sm(a2 + 144 | 0); + Nv(d2); + return; + } + function Js(a2) { + a2 = a2 | 0; + Is(a2); + mj(a2); + return; + } + function Ks(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (Pv(a2, b2) | 0) + return k[(k[a2 + 8 >> 2] | 0) + (b2 << 2) >> 2] | 0; + else { + a2 = Va(4) | 0; + Aj(a2); + ub(a2 | 0, 640, 82); + } + return 0; + } + function Ls() { + Fs(2296, 1); + k[11245] = 2296; + return 44980; + } + function Ms() { + var a2 = 0; + a2 = Gs() | 0; + a2 = k[a2 >> 2] | 0; + k[11247] = a2; + ym(a2); + return 44988; + } + function Ns() { + var a2 = 0; + do + if ((i2[2456] | 0) == 0 ? (Qa(2456) | 0) != 0 : 0) { + x = 0; + Da(5) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2456); + fb(a2 | 0); + } else { + k[11248] = 44988; + Ya(2456); + break; + } + } + while (0); + return k[11248] | 0; + } + function Os(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + x = 0; + b2 = Da(6) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } else { + c2 = k[b2 >> 2] | 0; + k[a2 >> 2] = c2; + ym(c2); + return; + } + } + function Ps(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + b2 = k[b2 >> 2] | 0; + k[a2 >> 2] = b2; + ym(b2); + return; + } + function Qs(a2) { + a2 = a2 | 0; + zm(k[a2 >> 2] | 0) | 0; + return; + } + function Rs(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = r; + r = r + 16 | 0; + b2 = c2; + if ((k[a2 >> 2] | 0) != -1) { + k[b2 >> 2] = a2; + k[b2 + 4 >> 2] = 191; + k[b2 + 8 >> 2] = 0; + Om(a2, b2, 192); + } + r = c2; + return (k[a2 + 4 >> 2] | 0) + -1 | 0; + } + function Ss(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + a2 = k[a2 >> 2] | 0; + return Ks(a2, Rs(b2) | 0) | 0; + } + function Ts(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Us(a2) { + a2 = a2 | 0; + if (a2) + Lb[k[(k[a2 >> 2] | 0) + 4 >> 2] & 255](a2); + return; + } + function Vs(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = k[11052] | 0; + k[11052] = b2 + 1; + k[a2 + 4 >> 2] = b2 + 1; + return; + } + function Ws(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Xs(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if (c2 >>> 0 < 128) { + c2 = (Ys() | 0) + (c2 << 1) | 0; + c2 = (j[c2 >> 1] & b2) << 16 >> 16 != 0; + } else + c2 = 0; + return c2 | 0; + } + function Ys() { + var a2 = 0, b2 = 0; + x = 0; + a2 = Da(7) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + return k[a2 >> 2] | 0; + return 0; + } + function Zs(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + f2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + e2 = b2; + while (1) { + a2 = k[e2 >> 2] | 0; + if (a2 >>> 0 < 128) { + a2 = (Ys() | 0) + (a2 << 1) | 0; + a2 = m[a2 >> 1] | 0; + } else + a2 = 0; + j[d2 >> 1] = a2; + e2 = e2 + 4 | 0; + if ((e2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 2 | 0; + } + } + return b2 + (f2 << 2) | 0; + } + function _s(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a: + do + if ((c2 | 0) == (d2 | 0)) + c2 = d2; + else + while (1) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 < 128 ? (a2 = (Ys() | 0) + (a2 << 1) | 0, (j[a2 >> 1] & b2) << 16 >> 16 != 0) : 0) + break a; + c2 = c2 + 4 | 0; + if ((c2 | 0) == (d2 | 0)) { + c2 = d2; + break; + } + } + while (0); + return c2 | 0; + } + function $s(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a: + do + if ((c2 | 0) == (d2 | 0)) + c2 = d2; + else + while (1) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 >= 128) + break a; + a2 = (Ys() | 0) + (a2 << 1) | 0; + if (!((j[a2 >> 1] & b2) << 16 >> 16)) + break a; + c2 = c2 + 4 | 0; + if ((c2 | 0) == (d2 | 0)) { + c2 = d2; + break; + } + } + while (0); + return c2 | 0; + } + function at(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 >>> 0 < 128) { + b2 = (bt() | 0) + (b2 << 2) | 0; + b2 = k[b2 >> 2] | 0; + } + return b2 | 0; + } + function bt() { + var a2 = 0, b2 = 0; + x = 0; + a2 = Da(8) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + return k[a2 >> 2] | 0; + return 0; + } + function ct(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + do { + a2 = k[d2 >> 2] | 0; + if (a2 >>> 0 < 128) { + a2 = (bt() | 0) + (a2 << 2) | 0; + a2 = k[a2 >> 2] | 0; + } + k[d2 >> 2] = a2; + d2 = d2 + 4 | 0; + } while ((d2 | 0) != (c2 | 0)); + } + return b2 + (e2 << 2) | 0; + } + function dt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 >>> 0 < 128) { + b2 = (et() | 0) + (b2 << 2) | 0; + b2 = k[b2 >> 2] | 0; + } + return b2 | 0; + } + function et() { + var a2 = 0, b2 = 0; + x = 0; + a2 = Da(9) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + return k[a2 >> 2] | 0; + return 0; + } + function ft(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + do { + a2 = k[d2 >> 2] | 0; + if (a2 >>> 0 < 128) { + a2 = (et() | 0) + (a2 << 2) | 0; + a2 = k[a2 >> 2] | 0; + } + k[d2 >> 2] = a2; + d2 = d2 + 4 | 0; + } while ((d2 | 0) != (c2 | 0)); + } + return b2 + (e2 << 2) | 0; + } + function gt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return b2 << 24 >> 24 | 0; + } + function ht(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((b2 | 0) != (c2 | 0)) + while (1) { + k[d2 >> 2] = i2[b2 >> 0]; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 4 | 0; + } + return c2 | 0; + } + function it(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return (b2 >>> 0 < 128 ? b2 & 255 : c2) | 0; + } + function jt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = (c2 - b2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + f2 = b2; + a2 = e2; + while (1) { + e2 = k[f2 >> 2] | 0; + i2[a2 >> 0] = e2 >>> 0 < 128 ? e2 & 255 : d2; + f2 = f2 + 4 | 0; + if ((f2 | 0) == (c2 | 0)) + break; + else + a2 = a2 + 1 | 0; + } + } + return b2 + (g2 << 2) | 0; + } + function kt(a2) { + a2 = a2 | 0; + var b2 = 0; + k[a2 >> 2] = 44236; + b2 = k[a2 + 8 >> 2] | 0; + if ((b2 | 0) != 0 ? (i2[a2 + 12 >> 0] | 0) != 0 : 0) + nj(b2); + return; + } + function lt(a2) { + a2 = a2 | 0; + kt(a2); + mj(a2); + return; + } + function mt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (bt() | 0) + ((b2 & 255) << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + return b2 | 0; + } + function nt(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((b2 | 0) != (c2 | 0)) { + a2 = b2; + do { + b2 = i2[a2 >> 0] | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (bt() | 0) + (b2 << 24 >> 24 << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (c2 | 0)); + } + return c2 | 0; + } + function ot(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (et() | 0) + (b2 << 24 >> 24 << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + return b2 | 0; + } + function pt(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((b2 | 0) != (c2 | 0)) { + a2 = b2; + do { + b2 = i2[a2 >> 0] | 0; + if (b2 << 24 >> 24 > -1) { + b2 = (et() | 0) + (b2 << 24 >> 24 << 2) | 0; + b2 = k[b2 >> 2] & 255; + } + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } while ((a2 | 0) != (c2 | 0)); + } + return c2 | 0; + } + function qt(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return b2 | 0; + } + function rt(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((b2 | 0) != (c2 | 0)) + while (1) { + i2[d2 >> 0] = i2[b2 >> 0] | 0; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 1 | 0; + } + return c2 | 0; + } + function st(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return (b2 << 24 >> 24 > -1 ? b2 : c2) | 0; + } + function tt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + if ((b2 | 0) != (c2 | 0)) + while (1) { + a2 = i2[b2 >> 0] | 0; + i2[e2 >> 0] = a2 << 24 >> 24 > -1 ? a2 : d2; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + e2 = e2 + 1 | 0; + } + return c2 | 0; + } + function ut(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function vt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + k[e2 >> 2] = c2; + k[h2 >> 2] = f2; + return 3; + } + function wt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + k[e2 >> 2] = c2; + k[h2 >> 2] = f2; + return 3; + } + function xt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + k[e2 >> 2] = c2; + return 3; + } + function yt(a2) { + a2 = a2 | 0; + return 1; + } + function zt(a2) { + a2 = a2 | 0; + return 1; + } + function At(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + a2 = d2 - c2 | 0; + return (a2 >>> 0 < e2 >>> 0 ? a2 : e2) | 0; + } + function Bt(a2) { + a2 = a2 | 0; + return 1; + } + function Ct(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44304; + x = 0; + b2 = Da(3) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa() | 0; + fb(c2 | 0); + } else { + k[a2 + 8 >> 2] = b2; + return; + } + } + function Dt(a2) { + a2 = a2 | 0; + Gu(a2); + mj(a2); + return; + } + function Hl(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0, $2 = 0, aa2 = 0, ba2 = 0, ca2 = 0, da2 = 0, ea2 = 0, fa2 = 0, ga2 = 0; + ga2 = r; + r = r + 624 | 0; + ba2 = ga2 + 24 | 0; + da2 = ga2 + 16 | 0; + ca2 = ga2 + 588 | 0; + Y2 = ga2 + 576 | 0; + aa2 = ga2; + V2 = ga2 + 536 | 0; + fa2 = ga2 + 8 | 0; + ea2 = ga2 + 528 | 0; + L2 = (a2 | 0) != 0; + N2 = V2 + 40 | 0; + U2 = N2; + V2 = V2 + 39 | 0; + W2 = fa2 + 4 | 0; + X2 = Y2 + 12 | 0; + Y2 = Y2 + 11 | 0; + Z2 = ca2; + _2 = X2; + $2 = _2 - Z2 | 0; + O2 = -2 - Z2 | 0; + P2 = _2 + 2 | 0; + Q2 = ba2 + 288 | 0; + R2 = ca2 + 9 | 0; + S2 = R2; + T2 = ca2 + 8 | 0; + f2 = 0; + w2 = b2; + g2 = 0; + b2 = 0; + a: + while (1) { + do + if ((f2 | 0) > -1) + if ((g2 | 0) > (2147483647 - f2 | 0)) { + f2 = mk() | 0; + k[f2 >> 2] = 75; + f2 = -1; + break; + } else { + f2 = g2 + f2 | 0; + break; + } + while (0); + g2 = i2[w2 >> 0] | 0; + if (!(g2 << 24 >> 24)) { + K2 = 245; + break; + } else + h2 = w2; + b: + while (1) { + switch (g2 << 24 >> 24) { + case 37: { + g2 = h2; + K2 = 9; + break b; + } + case 0: { + g2 = h2; + break b; + } + default: { + } + } + J2 = h2 + 1 | 0; + g2 = i2[J2 >> 0] | 0; + h2 = J2; + } + c: + do + if ((K2 | 0) == 9) + while (1) { + K2 = 0; + if ((i2[g2 + 1 >> 0] | 0) != 37) + break c; + h2 = h2 + 1 | 0; + g2 = g2 + 2 | 0; + if ((i2[g2 >> 0] | 0) == 37) + K2 = 9; + else + break; + } + while (0); + y2 = h2 - w2 | 0; + if (L2 ? (k[a2 >> 2] & 32 | 0) == 0 : 0) + fl(w2, y2, a2) | 0; + if ((h2 | 0) != (w2 | 0)) { + w2 = g2; + g2 = y2; + continue; + } + o2 = g2 + 1 | 0; + h2 = i2[o2 >> 0] | 0; + m2 = (h2 << 24 >> 24) + -48 | 0; + if (m2 >>> 0 < 10) { + J2 = (i2[g2 + 2 >> 0] | 0) == 36; + o2 = J2 ? g2 + 3 | 0 : o2; + h2 = i2[o2 >> 0] | 0; + u2 = J2 ? m2 : -1; + b2 = J2 ? 1 : b2; + } else + u2 = -1; + g2 = h2 << 24 >> 24; + d: + do + if ((g2 & -32 | 0) == 32) { + m2 = 0; + while (1) { + if (!(1 << g2 + -32 & 75913)) { + q2 = m2; + g2 = o2; + break d; + } + m2 = 1 << (h2 << 24 >> 24) + -32 | m2; + o2 = o2 + 1 | 0; + h2 = i2[o2 >> 0] | 0; + g2 = h2 << 24 >> 24; + if ((g2 & -32 | 0) != 32) { + q2 = m2; + g2 = o2; + break; + } + } + } else { + q2 = 0; + g2 = o2; + } + while (0); + do + if (h2 << 24 >> 24 == 42) { + m2 = g2 + 1 | 0; + h2 = (i2[m2 >> 0] | 0) + -48 | 0; + if (h2 >>> 0 < 10 ? (i2[g2 + 2 >> 0] | 0) == 36 : 0) { + k[e2 + (h2 << 2) >> 2] = 10; + b2 = 1; + g2 = g2 + 3 | 0; + h2 = k[d2 + ((i2[m2 >> 0] | 0) + -48 << 3) >> 2] | 0; + } else { + if (b2) { + f2 = -1; + break a; + } + if (!L2) { + x2 = q2; + g2 = m2; + b2 = 0; + J2 = 0; + break; + } + b2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + h2 = k[b2 >> 2] | 0; + k[c2 >> 2] = b2 + 4; + b2 = 0; + g2 = m2; + } + if ((h2 | 0) < 0) { + x2 = q2 | 8192; + J2 = 0 - h2 | 0; + } else { + x2 = q2; + J2 = h2; + } + } else { + m2 = (h2 << 24 >> 24) + -48 | 0; + if (m2 >>> 0 < 10) { + h2 = 0; + do { + h2 = (h2 * 10 | 0) + m2 | 0; + g2 = g2 + 1 | 0; + m2 = (i2[g2 >> 0] | 0) + -48 | 0; + } while (m2 >>> 0 < 10); + if ((h2 | 0) < 0) { + f2 = -1; + break a; + } else { + x2 = q2; + J2 = h2; + } + } else { + x2 = q2; + J2 = 0; + } + } + while (0); + e: + do + if ((i2[g2 >> 0] | 0) == 46) { + m2 = g2 + 1 | 0; + h2 = i2[m2 >> 0] | 0; + if (h2 << 24 >> 24 != 42) { + o2 = (h2 << 24 >> 24) + -48 | 0; + if (o2 >>> 0 < 10) { + g2 = m2; + h2 = 0; + } else { + g2 = m2; + o2 = 0; + break; + } + while (1) { + h2 = (h2 * 10 | 0) + o2 | 0; + g2 = g2 + 1 | 0; + o2 = (i2[g2 >> 0] | 0) + -48 | 0; + if (o2 >>> 0 >= 10) { + o2 = h2; + break e; + } + } + } + m2 = g2 + 2 | 0; + h2 = (i2[m2 >> 0] | 0) + -48 | 0; + if (h2 >>> 0 < 10 ? (i2[g2 + 3 >> 0] | 0) == 36 : 0) { + k[e2 + (h2 << 2) >> 2] = 10; + g2 = g2 + 4 | 0; + o2 = k[d2 + ((i2[m2 >> 0] | 0) + -48 << 3) >> 2] | 0; + break; + } + if (b2) { + f2 = -1; + break a; + } + if (L2) { + g2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + o2 = k[g2 >> 2] | 0; + k[c2 >> 2] = g2 + 4; + g2 = m2; + } else { + g2 = m2; + o2 = 0; + } + } else + o2 = -1; + while (0); + s2 = 0; + while (1) { + h2 = (i2[g2 >> 0] | 0) + -65 | 0; + if (h2 >>> 0 > 57) { + f2 = -1; + break a; + } + m2 = g2 + 1 | 0; + h2 = i2[56223 + (s2 * 58 | 0) + h2 >> 0] | 0; + q2 = h2 & 255; + if ((q2 + -1 | 0) >>> 0 < 8) { + g2 = m2; + s2 = q2; + } else { + I2 = m2; + break; + } + } + if (!(h2 << 24 >> 24)) { + f2 = -1; + break; + } + m2 = (u2 | 0) > -1; + do + if (h2 << 24 >> 24 == 19) + if (m2) { + f2 = -1; + break a; + } else + K2 = 52; + else { + if (m2) { + k[e2 + (u2 << 2) >> 2] = q2; + G2 = d2 + (u2 << 3) | 0; + H2 = k[G2 + 4 >> 2] | 0; + K2 = aa2; + k[K2 >> 2] = k[G2 >> 2]; + k[K2 + 4 >> 2] = H2; + K2 = 52; + break; + } + if (!L2) { + f2 = 0; + break a; + } + Ml(aa2, q2, c2); + } + while (0); + if ((K2 | 0) == 52 ? (K2 = 0, !L2) : 0) { + w2 = I2; + g2 = y2; + continue; + } + u2 = i2[g2 >> 0] | 0; + u2 = (s2 | 0) != 0 & (u2 & 15 | 0) == 3 ? u2 & -33 : u2; + m2 = x2 & -65537; + H2 = (x2 & 8192 | 0) == 0 ? x2 : m2; + f: + do + switch (u2 | 0) { + case 110: + switch (s2 | 0) { + case 0: { + k[k[aa2 >> 2] >> 2] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 1: { + k[k[aa2 >> 2] >> 2] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 2: { + w2 = k[aa2 >> 2] | 0; + k[w2 >> 2] = f2; + k[w2 + 4 >> 2] = ((f2 | 0) < 0) << 31 >> 31; + w2 = I2; + g2 = y2; + continue a; + } + case 3: { + j[k[aa2 >> 2] >> 1] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 4: { + i2[k[aa2 >> 2] >> 0] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 6: { + k[k[aa2 >> 2] >> 2] = f2; + w2 = I2; + g2 = y2; + continue a; + } + case 7: { + w2 = k[aa2 >> 2] | 0; + k[w2 >> 2] = f2; + k[w2 + 4 >> 2] = ((f2 | 0) < 0) << 31 >> 31; + w2 = I2; + g2 = y2; + continue a; + } + default: { + w2 = I2; + g2 = y2; + continue a; + } + } + case 112: { + s2 = H2 | 8; + o2 = o2 >>> 0 > 8 ? o2 : 8; + u2 = 120; + K2 = 64; + break; + } + case 88: + case 120: { + s2 = H2; + K2 = 64; + break; + } + case 111: { + m2 = aa2; + h2 = k[m2 >> 2] | 0; + m2 = k[m2 + 4 >> 2] | 0; + if ((h2 | 0) == 0 & (m2 | 0) == 0) + g2 = N2; + else { + g2 = N2; + do { + g2 = g2 + -1 | 0; + i2[g2 >> 0] = h2 & 7 | 48; + h2 = uw(h2 | 0, m2 | 0, 3) | 0; + m2 = M; + } while (!((h2 | 0) == 0 & (m2 | 0) == 0)); + } + if (!(H2 & 8)) { + h2 = H2; + s2 = 0; + q2 = 56703; + K2 = 77; + } else { + s2 = U2 - g2 + 1 | 0; + h2 = H2; + o2 = (o2 | 0) < (s2 | 0) ? s2 : o2; + s2 = 0; + q2 = 56703; + K2 = 77; + } + break; + } + case 105: + case 100: { + h2 = aa2; + g2 = k[h2 >> 2] | 0; + h2 = k[h2 + 4 >> 2] | 0; + if ((h2 | 0) < 0) { + g2 = rw(0, 0, g2 | 0, h2 | 0) | 0; + h2 = M; + m2 = aa2; + k[m2 >> 2] = g2; + k[m2 + 4 >> 2] = h2; + m2 = 1; + q2 = 56703; + K2 = 76; + break f; + } + if (!(H2 & 2048)) { + q2 = H2 & 1; + m2 = q2; + q2 = (q2 | 0) == 0 ? 56703 : 56705; + K2 = 76; + } else { + m2 = 1; + q2 = 56704; + K2 = 76; + } + break; + } + case 117: { + h2 = aa2; + g2 = k[h2 >> 2] | 0; + h2 = k[h2 + 4 >> 2] | 0; + m2 = 0; + q2 = 56703; + K2 = 76; + break; + } + case 99: { + i2[V2 >> 0] = k[aa2 >> 2]; + w2 = V2; + h2 = 1; + s2 = 0; + u2 = 56703; + g2 = N2; + break; + } + case 109: { + g2 = mk() | 0; + g2 = nk(k[g2 >> 2] | 0) | 0; + K2 = 82; + break; + } + case 115: { + g2 = k[aa2 >> 2] | 0; + g2 = (g2 | 0) != 0 ? g2 : 56713; + K2 = 82; + break; + } + case 67: { + k[fa2 >> 2] = k[aa2 >> 2]; + k[W2 >> 2] = 0; + k[aa2 >> 2] = fa2; + o2 = -1; + K2 = 86; + break; + } + case 83: { + if (!o2) { + Ol(a2, 32, J2, 0, H2); + g2 = 0; + K2 = 98; + } else + K2 = 86; + break; + } + case 65: + case 71: + case 70: + case 69: + case 97: + case 103: + case 102: + case 101: { + n2 = +p[aa2 >> 3]; + k[da2 >> 2] = 0; + p[t >> 3] = n2; + if ((k[t + 4 >> 2] | 0) >= 0) + if (!(H2 & 2048)) { + G2 = H2 & 1; + F2 = G2; + G2 = (G2 | 0) == 0 ? 56721 : 56726; + } else { + F2 = 1; + G2 = 56723; + } + else { + n2 = -n2; + F2 = 1; + G2 = 56720; + } + p[t >> 3] = n2; + E2 = k[t + 4 >> 2] & 2146435072; + do + if (E2 >>> 0 < 2146435072 | (E2 | 0) == 2146435072 & 0 < 0) { + v2 = +Gk(n2, da2) * 2; + h2 = v2 != 0; + if (h2) + k[da2 >> 2] = (k[da2 >> 2] | 0) + -1; + C2 = u2 | 32; + if ((C2 | 0) == 97) { + w2 = u2 & 32; + y2 = (w2 | 0) == 0 ? G2 : G2 + 9 | 0; + x2 = F2 | 2; + g2 = 12 - o2 | 0; + do + if (!(o2 >>> 0 > 11 | (g2 | 0) == 0)) { + n2 = 8; + do { + g2 = g2 + -1 | 0; + n2 = n2 * 16; + } while ((g2 | 0) != 0); + if ((i2[y2 >> 0] | 0) == 45) { + n2 = -(n2 + (-v2 - n2)); + break; + } else { + n2 = v2 + n2 - n2; + break; + } + } else + n2 = v2; + while (0); + h2 = k[da2 >> 2] | 0; + g2 = (h2 | 0) < 0 ? 0 - h2 | 0 : h2; + g2 = Nl(g2, ((g2 | 0) < 0) << 31 >> 31, X2) | 0; + if ((g2 | 0) == (X2 | 0)) { + i2[Y2 >> 0] = 48; + g2 = Y2; + } + i2[g2 + -1 >> 0] = (h2 >> 31 & 2) + 43; + s2 = g2 + -2 | 0; + i2[s2 >> 0] = u2 + 15; + q2 = (o2 | 0) < 1; + m2 = (H2 & 8 | 0) == 0; + h2 = ca2; + while (1) { + G2 = ~~n2; + g2 = h2 + 1 | 0; + i2[h2 >> 0] = l[56687 + G2 >> 0] | w2; + n2 = (n2 - +(G2 | 0)) * 16; + do + if ((g2 - Z2 | 0) == 1) { + if (m2 & (q2 & n2 == 0)) + break; + i2[g2 >> 0] = 46; + g2 = h2 + 2 | 0; + } + while (0); + if (!(n2 != 0)) + break; + else + h2 = g2; + } + o2 = (o2 | 0) != 0 & (O2 + g2 | 0) < (o2 | 0) ? P2 + o2 - s2 | 0 : $2 - s2 + g2 | 0; + m2 = o2 + x2 | 0; + Ol(a2, 32, J2, m2, H2); + if (!(k[a2 >> 2] & 32)) + fl(y2, x2, a2) | 0; + Ol(a2, 48, J2, m2, H2 ^ 65536); + g2 = g2 - Z2 | 0; + if (!(k[a2 >> 2] & 32)) + fl(ca2, g2, a2) | 0; + h2 = _2 - s2 | 0; + Ol(a2, 48, o2 - (g2 + h2) | 0, 0, 0); + if (!(k[a2 >> 2] & 32)) + fl(s2, h2, a2) | 0; + Ol(a2, 32, J2, m2, H2 ^ 8192); + g2 = (m2 | 0) < (J2 | 0) ? J2 : m2; + break; + } + g2 = (o2 | 0) < 0 ? 6 : o2; + if (h2) { + h2 = (k[da2 >> 2] | 0) + -28 | 0; + k[da2 >> 2] = h2; + n2 = v2 * 268435456; + } else { + n2 = v2; + h2 = k[da2 >> 2] | 0; + } + E2 = (h2 | 0) < 0 ? ba2 : Q2; + D2 = E2; + h2 = E2; + do { + B2 = ~~n2 >>> 0; + k[h2 >> 2] = B2; + h2 = h2 + 4 | 0; + n2 = (n2 - +(B2 >>> 0)) * 1e9; + } while (n2 != 0); + m2 = h2; + h2 = k[da2 >> 2] | 0; + if ((h2 | 0) > 0) { + q2 = E2; + while (1) { + s2 = (h2 | 0) > 29 ? 29 : h2; + o2 = m2 + -4 | 0; + do + if (o2 >>> 0 < q2 >>> 0) + o2 = q2; + else { + h2 = 0; + do { + B2 = ww(k[o2 >> 2] | 0, 0, s2 | 0) | 0; + B2 = tw(B2 | 0, M | 0, h2 | 0, 0) | 0; + h2 = M; + A2 = Fw(B2 | 0, h2 | 0, 1e9, 0) | 0; + k[o2 >> 2] = A2; + h2 = Ew(B2 | 0, h2 | 0, 1e9, 0) | 0; + o2 = o2 + -4 | 0; + } while (o2 >>> 0 >= q2 >>> 0); + if (!h2) { + o2 = q2; + break; + } + o2 = q2 + -4 | 0; + k[o2 >> 2] = h2; + } + while (0); + while (1) { + if (m2 >>> 0 <= o2 >>> 0) + break; + h2 = m2 + -4 | 0; + if (!(k[h2 >> 2] | 0)) + m2 = h2; + else + break; + } + h2 = (k[da2 >> 2] | 0) - s2 | 0; + k[da2 >> 2] = h2; + if ((h2 | 0) > 0) + q2 = o2; + else + break; + } + } else + o2 = E2; + if ((h2 | 0) < 0) { + y2 = ((g2 + 25 | 0) / 9 | 0) + 1 | 0; + z2 = (C2 | 0) == 102; + w2 = o2; + while (1) { + x2 = 0 - h2 | 0; + x2 = (x2 | 0) > 9 ? 9 : x2; + do + if (w2 >>> 0 < m2 >>> 0) { + h2 = (1 << x2) + -1 | 0; + q2 = 1e9 >>> x2; + o2 = 0; + s2 = w2; + do { + B2 = k[s2 >> 2] | 0; + k[s2 >> 2] = (B2 >>> x2) + o2; + o2 = ia(B2 & h2, q2) | 0; + s2 = s2 + 4 | 0; + } while (s2 >>> 0 < m2 >>> 0); + h2 = (k[w2 >> 2] | 0) == 0 ? w2 + 4 | 0 : w2; + if (!o2) { + o2 = h2; + break; + } + k[m2 >> 2] = o2; + o2 = h2; + m2 = m2 + 4 | 0; + } else + o2 = (k[w2 >> 2] | 0) == 0 ? w2 + 4 | 0 : w2; + while (0); + h2 = z2 ? E2 : o2; + m2 = (m2 - h2 >> 2 | 0) > (y2 | 0) ? h2 + (y2 << 2) | 0 : m2; + h2 = (k[da2 >> 2] | 0) + x2 | 0; + k[da2 >> 2] = h2; + if ((h2 | 0) >= 0) { + w2 = o2; + break; + } else + w2 = o2; + } + } else + w2 = o2; + do + if (w2 >>> 0 < m2 >>> 0) { + h2 = (D2 - w2 >> 2) * 9 | 0; + q2 = k[w2 >> 2] | 0; + if (q2 >>> 0 < 10) + break; + else + o2 = 10; + do { + o2 = o2 * 10 | 0; + h2 = h2 + 1 | 0; + } while (q2 >>> 0 >= o2 >>> 0); + } else + h2 = 0; + while (0); + A2 = (C2 | 0) == 103; + B2 = (g2 | 0) != 0; + o2 = g2 - ((C2 | 0) != 102 ? h2 : 0) + ((B2 & A2) << 31 >> 31) | 0; + if ((o2 | 0) < (((m2 - D2 >> 2) * 9 | 0) + -9 | 0)) { + s2 = o2 + 9216 | 0; + z2 = (s2 | 0) / 9 | 0; + o2 = E2 + (z2 + -1023 << 2) | 0; + s2 = ((s2 | 0) % 9 | 0) + 1 | 0; + if ((s2 | 0) < 9) { + q2 = 10; + do { + q2 = q2 * 10 | 0; + s2 = s2 + 1 | 0; + } while ((s2 | 0) != 9); + } else + q2 = 10; + x2 = k[o2 >> 2] | 0; + y2 = (x2 >>> 0) % (q2 >>> 0) | 0; + if ((y2 | 0) == 0 ? (E2 + (z2 + -1022 << 2) | 0) == (m2 | 0) : 0) + q2 = w2; + else + K2 = 163; + do + if ((K2 | 0) == 163) { + K2 = 0; + v2 = (((x2 >>> 0) / (q2 >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992 : 9007199254740994; + s2 = (q2 | 0) / 2 | 0; + do + if (y2 >>> 0 < s2 >>> 0) + n2 = 0.5; + else { + if ((y2 | 0) == (s2 | 0) ? (E2 + (z2 + -1022 << 2) | 0) == (m2 | 0) : 0) { + n2 = 1; + break; + } + n2 = 1.5; + } + while (0); + do + if (F2) { + if ((i2[G2 >> 0] | 0) != 45) + break; + v2 = -v2; + n2 = -n2; + } + while (0); + s2 = x2 - y2 | 0; + k[o2 >> 2] = s2; + if (!(v2 + n2 != v2)) { + q2 = w2; + break; + } + C2 = s2 + q2 | 0; + k[o2 >> 2] = C2; + if (C2 >>> 0 > 999999999) { + h2 = w2; + while (1) { + q2 = o2 + -4 | 0; + k[o2 >> 2] = 0; + if (q2 >>> 0 < h2 >>> 0) { + h2 = h2 + -4 | 0; + k[h2 >> 2] = 0; + } + C2 = (k[q2 >> 2] | 0) + 1 | 0; + k[q2 >> 2] = C2; + if (C2 >>> 0 > 999999999) + o2 = q2; + else { + w2 = h2; + o2 = q2; + break; + } + } + } + h2 = (D2 - w2 >> 2) * 9 | 0; + s2 = k[w2 >> 2] | 0; + if (s2 >>> 0 < 10) { + q2 = w2; + break; + } else + q2 = 10; + do { + q2 = q2 * 10 | 0; + h2 = h2 + 1 | 0; + } while (s2 >>> 0 >= q2 >>> 0); + q2 = w2; + } + while (0); + C2 = o2 + 4 | 0; + w2 = q2; + m2 = m2 >>> 0 > C2 >>> 0 ? C2 : m2; + } + y2 = 0 - h2 | 0; + while (1) { + if (m2 >>> 0 <= w2 >>> 0) { + z2 = 0; + C2 = m2; + break; + } + o2 = m2 + -4 | 0; + if (!(k[o2 >> 2] | 0)) + m2 = o2; + else { + z2 = 1; + C2 = m2; + break; + } + } + do + if (A2) { + g2 = (B2 & 1 ^ 1) + g2 | 0; + if ((g2 | 0) > (h2 | 0) & (h2 | 0) > -5) { + u2 = u2 + -1 | 0; + g2 = g2 + -1 - h2 | 0; + } else { + u2 = u2 + -2 | 0; + g2 = g2 + -1 | 0; + } + m2 = H2 & 8; + if (m2) + break; + do + if (z2) { + m2 = k[C2 + -4 >> 2] | 0; + if (!m2) { + o2 = 9; + break; + } + if (!((m2 >>> 0) % 10 | 0)) { + q2 = 10; + o2 = 0; + } else { + o2 = 0; + break; + } + do { + q2 = q2 * 10 | 0; + o2 = o2 + 1 | 0; + } while (((m2 >>> 0) % (q2 >>> 0) | 0 | 0) == 0); + } else + o2 = 9; + while (0); + m2 = ((C2 - D2 >> 2) * 9 | 0) + -9 | 0; + if ((u2 | 32 | 0) == 102) { + m2 = m2 - o2 | 0; + m2 = (m2 | 0) < 0 ? 0 : m2; + g2 = (g2 | 0) < (m2 | 0) ? g2 : m2; + m2 = 0; + break; + } else { + m2 = m2 + h2 - o2 | 0; + m2 = (m2 | 0) < 0 ? 0 : m2; + g2 = (g2 | 0) < (m2 | 0) ? g2 : m2; + m2 = 0; + break; + } + } else + m2 = H2 & 8; + while (0); + x2 = g2 | m2; + q2 = (x2 | 0) != 0 & 1; + s2 = (u2 | 32 | 0) == 102; + if (s2) { + h2 = (h2 | 0) > 0 ? h2 : 0; + u2 = 0; + } else { + o2 = (h2 | 0) < 0 ? y2 : h2; + o2 = Nl(o2, ((o2 | 0) < 0) << 31 >> 31, X2) | 0; + if ((_2 - o2 | 0) < 2) + do { + o2 = o2 + -1 | 0; + i2[o2 >> 0] = 48; + } while ((_2 - o2 | 0) < 2); + i2[o2 + -1 >> 0] = (h2 >> 31 & 2) + 43; + D2 = o2 + -2 | 0; + i2[D2 >> 0] = u2; + h2 = _2 - D2 | 0; + u2 = D2; + } + y2 = F2 + 1 + g2 + q2 + h2 | 0; + Ol(a2, 32, J2, y2, H2); + if (!(k[a2 >> 2] & 32)) + fl(G2, F2, a2) | 0; + Ol(a2, 48, J2, y2, H2 ^ 65536); + do + if (s2) { + o2 = w2 >>> 0 > E2 >>> 0 ? E2 : w2; + h2 = o2; + do { + m2 = Nl(k[h2 >> 2] | 0, 0, R2) | 0; + do + if ((h2 | 0) == (o2 | 0)) { + if ((m2 | 0) != (R2 | 0)) + break; + i2[T2 >> 0] = 48; + m2 = T2; + } else { + if (m2 >>> 0 <= ca2 >>> 0) + break; + do { + m2 = m2 + -1 | 0; + i2[m2 >> 0] = 48; + } while (m2 >>> 0 > ca2 >>> 0); + } + while (0); + if (!(k[a2 >> 2] & 32)) + fl(m2, S2 - m2 | 0, a2) | 0; + h2 = h2 + 4 | 0; + } while (h2 >>> 0 <= E2 >>> 0); + do + if (x2) { + if (k[a2 >> 2] & 32) + break; + fl(56755, 1, a2) | 0; + } + while (0); + if ((g2 | 0) > 0 & h2 >>> 0 < C2 >>> 0) { + m2 = h2; + while (1) { + h2 = Nl(k[m2 >> 2] | 0, 0, R2) | 0; + if (h2 >>> 0 > ca2 >>> 0) + do { + h2 = h2 + -1 | 0; + i2[h2 >> 0] = 48; + } while (h2 >>> 0 > ca2 >>> 0); + if (!(k[a2 >> 2] & 32)) + fl(h2, (g2 | 0) > 9 ? 9 : g2, a2) | 0; + m2 = m2 + 4 | 0; + h2 = g2 + -9 | 0; + if (!((g2 | 0) > 9 & m2 >>> 0 < C2 >>> 0)) { + g2 = h2; + break; + } else + g2 = h2; + } + } + Ol(a2, 48, g2 + 9 | 0, 9, 0); + } else { + s2 = z2 ? C2 : w2 + 4 | 0; + if ((g2 | 0) > -1) { + q2 = (m2 | 0) == 0; + o2 = w2; + do { + h2 = Nl(k[o2 >> 2] | 0, 0, R2) | 0; + if ((h2 | 0) == (R2 | 0)) { + i2[T2 >> 0] = 48; + h2 = T2; + } + do + if ((o2 | 0) == (w2 | 0)) { + m2 = h2 + 1 | 0; + if (!(k[a2 >> 2] & 32)) + fl(h2, 1, a2) | 0; + if (q2 & (g2 | 0) < 1) { + h2 = m2; + break; + } + if (k[a2 >> 2] & 32) { + h2 = m2; + break; + } + fl(56755, 1, a2) | 0; + h2 = m2; + } else { + if (h2 >>> 0 <= ca2 >>> 0) + break; + do { + h2 = h2 + -1 | 0; + i2[h2 >> 0] = 48; + } while (h2 >>> 0 > ca2 >>> 0); + } + while (0); + m2 = S2 - h2 | 0; + if (!(k[a2 >> 2] & 32)) + fl(h2, (g2 | 0) > (m2 | 0) ? m2 : g2, a2) | 0; + g2 = g2 - m2 | 0; + o2 = o2 + 4 | 0; + } while (o2 >>> 0 < s2 >>> 0 & (g2 | 0) > -1); + } + Ol(a2, 48, g2 + 18 | 0, 18, 0); + if (k[a2 >> 2] & 32) + break; + fl(u2, _2 - u2 | 0, a2) | 0; + } + while (0); + Ol(a2, 32, J2, y2, H2 ^ 8192); + g2 = (y2 | 0) < (J2 | 0) ? J2 : y2; + } else { + s2 = (u2 & 32 | 0) != 0; + q2 = n2 != n2 | false; + h2 = q2 ? 0 : F2; + o2 = h2 + 3 | 0; + Ol(a2, 32, J2, o2, m2); + g2 = k[a2 >> 2] | 0; + if (!(g2 & 32)) { + fl(G2, h2, a2) | 0; + g2 = k[a2 >> 2] | 0; + } + if (!(g2 & 32)) + fl(q2 ? s2 ? 56747 : 56751 : s2 ? 56739 : 56743, 3, a2) | 0; + Ol(a2, 32, J2, o2, H2 ^ 8192); + g2 = (o2 | 0) < (J2 | 0) ? J2 : o2; + } + while (0); + w2 = I2; + continue a; + } + default: { + m2 = H2; + h2 = o2; + s2 = 0; + u2 = 56703; + g2 = N2; + } + } + while (0); + g: + do + if ((K2 | 0) == 64) { + m2 = aa2; + h2 = k[m2 >> 2] | 0; + m2 = k[m2 + 4 >> 2] | 0; + q2 = u2 & 32; + if (!((h2 | 0) == 0 & (m2 | 0) == 0)) { + g2 = N2; + do { + g2 = g2 + -1 | 0; + i2[g2 >> 0] = l[56687 + (h2 & 15) >> 0] | q2; + h2 = uw(h2 | 0, m2 | 0, 4) | 0; + m2 = M; + } while (!((h2 | 0) == 0 & (m2 | 0) == 0)); + K2 = aa2; + if ((s2 & 8 | 0) == 0 | (k[K2 >> 2] | 0) == 0 & (k[K2 + 4 >> 2] | 0) == 0) { + h2 = s2; + s2 = 0; + q2 = 56703; + K2 = 77; + } else { + h2 = s2; + s2 = 2; + q2 = 56703 + (u2 >> 4) | 0; + K2 = 77; + } + } else { + g2 = N2; + h2 = s2; + s2 = 0; + q2 = 56703; + K2 = 77; + } + } else if ((K2 | 0) == 76) { + g2 = Nl(g2, h2, N2) | 0; + h2 = H2; + s2 = m2; + K2 = 77; + } else if ((K2 | 0) == 82) { + K2 = 0; + H2 = tl(g2, 0, o2) | 0; + G2 = (H2 | 0) == 0; + w2 = g2; + h2 = G2 ? o2 : H2 - g2 | 0; + s2 = 0; + u2 = 56703; + g2 = G2 ? g2 + o2 | 0 : H2; + } else if ((K2 | 0) == 86) { + K2 = 0; + h2 = 0; + g2 = 0; + q2 = k[aa2 >> 2] | 0; + while (1) { + m2 = k[q2 >> 2] | 0; + if (!m2) + break; + g2 = Sk(ea2, m2) | 0; + if ((g2 | 0) < 0 | g2 >>> 0 > (o2 - h2 | 0) >>> 0) + break; + h2 = g2 + h2 | 0; + if (o2 >>> 0 > h2 >>> 0) + q2 = q2 + 4 | 0; + else + break; + } + if ((g2 | 0) < 0) { + f2 = -1; + break a; + } + Ol(a2, 32, J2, h2, H2); + if (!h2) { + g2 = 0; + K2 = 98; + } else { + m2 = 0; + o2 = k[aa2 >> 2] | 0; + while (1) { + g2 = k[o2 >> 2] | 0; + if (!g2) { + g2 = h2; + K2 = 98; + break g; + } + g2 = Sk(ea2, g2) | 0; + m2 = g2 + m2 | 0; + if ((m2 | 0) > (h2 | 0)) { + g2 = h2; + K2 = 98; + break g; + } + if (!(k[a2 >> 2] & 32)) + fl(ea2, g2, a2) | 0; + if (m2 >>> 0 >= h2 >>> 0) { + g2 = h2; + K2 = 98; + break; + } else + o2 = o2 + 4 | 0; + } + } + } + while (0); + if ((K2 | 0) == 98) { + K2 = 0; + Ol(a2, 32, J2, g2, H2 ^ 8192); + w2 = I2; + g2 = (J2 | 0) > (g2 | 0) ? J2 : g2; + continue; + } + if ((K2 | 0) == 77) { + K2 = 0; + m2 = (o2 | 0) > -1 ? h2 & -65537 : h2; + h2 = aa2; + h2 = (k[h2 >> 2] | 0) != 0 | (k[h2 + 4 >> 2] | 0) != 0; + if ((o2 | 0) != 0 | h2) { + h2 = (h2 & 1 ^ 1) + (U2 - g2) | 0; + w2 = g2; + h2 = (o2 | 0) > (h2 | 0) ? o2 : h2; + u2 = q2; + g2 = N2; + } else { + w2 = N2; + h2 = 0; + u2 = q2; + g2 = N2; + } + } + q2 = g2 - w2 | 0; + h2 = (h2 | 0) < (q2 | 0) ? q2 : h2; + o2 = s2 + h2 | 0; + g2 = (J2 | 0) < (o2 | 0) ? o2 : J2; + Ol(a2, 32, g2, o2, m2); + if (!(k[a2 >> 2] & 32)) + fl(u2, s2, a2) | 0; + Ol(a2, 48, g2, o2, m2 ^ 65536); + Ol(a2, 48, h2, q2, 0); + if (!(k[a2 >> 2] & 32)) + fl(w2, q2, a2) | 0; + Ol(a2, 32, g2, o2, m2 ^ 8192); + w2 = I2; + } + h: + do + if ((K2 | 0) == 245) { + if (!a2) + if (b2) { + f2 = 1; + while (1) { + b2 = k[e2 + (f2 << 2) >> 2] | 0; + if (!b2) + break; + Ml(d2 + (f2 << 3) | 0, b2, c2); + f2 = f2 + 1 | 0; + if ((f2 | 0) >= 10) { + f2 = 1; + break h; + } + } + if ((f2 | 0) < 10) + while (1) { + if (k[e2 + (f2 << 2) >> 2] | 0) { + f2 = -1; + break h; + } + f2 = f2 + 1 | 0; + if ((f2 | 0) >= 10) { + f2 = 1; + break; + } + } + else + f2 = 1; + } else + f2 = 0; + } + while (0); + r = ga2; + return f2 | 0; + } + function Il(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return $k(a2, b2, c2) | 0; + } + function Jl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 112 | 0; + g2 = h2; + e2 = g2; + f2 = e2 + 112 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (f2 | 0)); + e2 = g2 + 4 | 0; + k[e2 >> 2] = a2; + f2 = g2 + 8 | 0; + k[f2 >> 2] = -1; + k[g2 + 44 >> 2] = a2; + k[g2 + 76 >> 2] = -1; + qk(g2, 0); + d2 = +ok(g2, c2, 1); + c2 = (k[e2 >> 2] | 0) - (k[f2 >> 2] | 0) + (k[g2 + 108 >> 2] | 0) | 0; + if (b2) + k[b2 >> 2] = (c2 | 0) != 0 ? a2 + c2 | 0 : a2; + r = h2; + return +d2; + } + function Kl(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 112 | 0; + h2 = i3; + k[h2 >> 2] = 0; + f2 = h2 + 4 | 0; + k[f2 >> 2] = a2; + k[h2 + 44 >> 2] = a2; + g2 = h2 + 8 | 0; + k[g2 >> 2] = (a2 | 0) < 0 ? -1 : a2 + 2147483647 | 0; + k[h2 + 76 >> 2] = -1; + qk(h2, 0); + d2 = pk(h2, c2, 1, d2, e2) | 0; + if (b2) + k[b2 >> 2] = a2 + ((k[f2 >> 2] | 0) + (k[h2 + 108 >> 2] | 0) - (k[g2 >> 2] | 0)); + r = i3; + return d2 | 0; + } + function Ll(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + d2 = a2 + 20 | 0; + e2 = k[d2 >> 2] | 0; + a2 = (k[a2 + 16 >> 2] | 0) - e2 | 0; + a2 = a2 >>> 0 > c2 >>> 0 ? c2 : a2; + vw(e2 | 0, b2 | 0, a2 | 0) | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + a2; + return c2 | 0; + } + function Ml(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + a: + do + if (b2 >>> 0 <= 20) + do + switch (b2 | 0) { + case 9: { + d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + b2 = k[d2 >> 2] | 0; + k[c2 >> 2] = d2 + 4; + k[a2 >> 2] = b2; + break a; + } + case 10: { + d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + b2 = k[d2 >> 2] | 0; + k[c2 >> 2] = d2 + 4; + d2 = a2; + k[d2 >> 2] = b2; + k[d2 + 4 >> 2] = ((b2 | 0) < 0) << 31 >> 31; + break a; + } + case 11: { + d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + b2 = k[d2 >> 2] | 0; + k[c2 >> 2] = d2 + 4; + d2 = a2; + k[d2 >> 2] = b2; + k[d2 + 4 >> 2] = 0; + break a; + } + case 12: { + d2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); + b2 = d2; + e2 = k[b2 >> 2] | 0; + b2 = k[b2 + 4 >> 2] | 0; + k[c2 >> 2] = d2 + 8; + d2 = a2; + k[d2 >> 2] = e2; + k[d2 + 4 >> 2] = b2; + break a; + } + case 13: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + d2 = (d2 & 65535) << 16 >> 16; + e2 = a2; + k[e2 >> 2] = d2; + k[e2 + 4 >> 2] = ((d2 | 0) < 0) << 31 >> 31; + break a; + } + case 14: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + e2 = a2; + k[e2 >> 2] = d2 & 65535; + k[e2 + 4 >> 2] = 0; + break a; + } + case 15: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + d2 = (d2 & 255) << 24 >> 24; + e2 = a2; + k[e2 >> 2] = d2; + k[e2 + 4 >> 2] = ((d2 | 0) < 0) << 31 >> 31; + break a; + } + case 16: { + e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + d2 = k[e2 >> 2] | 0; + k[c2 >> 2] = e2 + 4; + e2 = a2; + k[e2 >> 2] = d2 & 255; + k[e2 + 4 >> 2] = 0; + break a; + } + case 17: { + e2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); + f2 = +p[e2 >> 3]; + k[c2 >> 2] = e2 + 8; + p[a2 >> 3] = f2; + break a; + } + case 18: { + e2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); + f2 = +p[e2 >> 3]; + k[c2 >> 2] = e2 + 8; + p[a2 >> 3] = f2; + break a; + } + default: + break a; + } + while (0); + while (0); + return; + } + function Nl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if (b2 >>> 0 > 0 | (b2 | 0) == 0 & a2 >>> 0 > 4294967295) + while (1) { + d2 = Fw(a2 | 0, b2 | 0, 10, 0) | 0; + c2 = c2 + -1 | 0; + i2[c2 >> 0] = d2 | 48; + d2 = Ew(a2 | 0, b2 | 0, 10, 0) | 0; + if (b2 >>> 0 > 9 | (b2 | 0) == 9 & a2 >>> 0 > 4294967295) { + a2 = d2; + b2 = M; + } else { + a2 = d2; + break; + } + } + if (a2) + while (1) { + c2 = c2 + -1 | 0; + i2[c2 >> 0] = (a2 >>> 0) % 10 | 0 | 48; + if (a2 >>> 0 < 10) + break; + else + a2 = (a2 >>> 0) / 10 | 0; + } + return c2 | 0; + } + function Ol(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 256 | 0; + g2 = h2; + do + if ((c2 | 0) > (d2 | 0) & (e2 & 73728 | 0) == 0) { + e2 = c2 - d2 | 0; + sw(g2 | 0, b2 | 0, (e2 >>> 0 > 256 ? 256 : e2) | 0) | 0; + b2 = k[a2 >> 2] | 0; + f2 = (b2 & 32 | 0) == 0; + if (e2 >>> 0 > 255) { + d2 = c2 - d2 | 0; + do { + if (f2) { + fl(g2, 256, a2) | 0; + b2 = k[a2 >> 2] | 0; + } + e2 = e2 + -256 | 0; + f2 = (b2 & 32 | 0) == 0; + } while (e2 >>> 0 > 255); + if (f2) + e2 = d2 & 255; + else + break; + } else if (!f2) + break; + fl(g2, e2, a2) | 0; + } + while (0); + r = h2; + return; + } + function Pl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0; + do + if (a2 >>> 0 < 245) { + o2 = a2 >>> 0 < 11 ? 16 : a2 + 11 & -8; + a2 = o2 >>> 3; + h2 = k[10218] | 0; + c2 = h2 >>> a2; + if (c2 & 3) { + a2 = (c2 & 1 ^ 1) + a2 | 0; + d2 = a2 << 1; + c2 = 40912 + (d2 << 2) | 0; + d2 = 40912 + (d2 + 2 << 2) | 0; + e2 = k[d2 >> 2] | 0; + f2 = e2 + 8 | 0; + g2 = k[f2 >> 2] | 0; + do + if ((c2 | 0) != (g2 | 0)) { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 12 | 0; + if ((k[b2 >> 2] | 0) == (e2 | 0)) { + k[b2 >> 2] = c2; + k[d2 >> 2] = g2; + break; + } else + Pa(); + } else + k[10218] = h2 & ~(1 << a2); + while (0); + M2 = a2 << 3; + k[e2 + 4 >> 2] = M2 | 3; + M2 = e2 + (M2 | 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + M2 = f2; + return M2 | 0; + } + g2 = k[10220] | 0; + if (o2 >>> 0 > g2 >>> 0) { + if (c2) { + d2 = 2 << a2; + d2 = c2 << a2 & (d2 | 0 - d2); + d2 = (d2 & 0 - d2) + -1 | 0; + i3 = d2 >>> 12 & 16; + d2 = d2 >>> i3; + e2 = d2 >>> 5 & 8; + d2 = d2 >>> e2; + f2 = d2 >>> 2 & 4; + d2 = d2 >>> f2; + c2 = d2 >>> 1 & 2; + d2 = d2 >>> c2; + a2 = d2 >>> 1 & 1; + a2 = (e2 | i3 | f2 | c2 | a2) + (d2 >>> a2) | 0; + d2 = a2 << 1; + c2 = 40912 + (d2 << 2) | 0; + d2 = 40912 + (d2 + 2 << 2) | 0; + f2 = k[d2 >> 2] | 0; + i3 = f2 + 8 | 0; + e2 = k[i3 >> 2] | 0; + do + if ((c2 | 0) != (e2 | 0)) { + if (e2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = e2 + 12 | 0; + if ((k[b2 >> 2] | 0) == (f2 | 0)) { + k[b2 >> 2] = c2; + k[d2 >> 2] = e2; + j2 = k[10220] | 0; + break; + } else + Pa(); + } else { + k[10218] = h2 & ~(1 << a2); + j2 = g2; + } + while (0); + M2 = a2 << 3; + g2 = M2 - o2 | 0; + k[f2 + 4 >> 2] = o2 | 3; + h2 = f2 + o2 | 0; + k[f2 + (o2 | 4) >> 2] = g2 | 1; + k[f2 + M2 >> 2] = g2; + if (j2) { + e2 = k[10223] | 0; + c2 = j2 >>> 3; + b2 = c2 << 1; + d2 = 40912 + (b2 << 2) | 0; + a2 = k[10218] | 0; + c2 = 1 << c2; + if (a2 & c2) { + a2 = 40912 + (b2 + 2 << 2) | 0; + b2 = k[a2 >> 2] | 0; + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + l2 = a2; + m2 = b2; + } + } else { + k[10218] = a2 | c2; + l2 = 40912 + (b2 + 2 << 2) | 0; + m2 = d2; + } + k[l2 >> 2] = e2; + k[m2 + 12 >> 2] = e2; + k[e2 + 8 >> 2] = m2; + k[e2 + 12 >> 2] = d2; + } + k[10220] = g2; + k[10223] = h2; + M2 = i3; + return M2 | 0; + } + a2 = k[10219] | 0; + if (a2) { + c2 = (a2 & 0 - a2) + -1 | 0; + L2 = c2 >>> 12 & 16; + c2 = c2 >>> L2; + K2 = c2 >>> 5 & 8; + c2 = c2 >>> K2; + M2 = c2 >>> 2 & 4; + c2 = c2 >>> M2; + a2 = c2 >>> 1 & 2; + c2 = c2 >>> a2; + d2 = c2 >>> 1 & 1; + d2 = k[41176 + ((K2 | L2 | M2 | a2 | d2) + (c2 >>> d2) << 2) >> 2] | 0; + c2 = (k[d2 + 4 >> 2] & -8) - o2 | 0; + a2 = d2; + while (1) { + b2 = k[a2 + 16 >> 2] | 0; + if (!b2) { + b2 = k[a2 + 20 >> 2] | 0; + if (!b2) { + i3 = c2; + break; + } + } + a2 = (k[b2 + 4 >> 2] & -8) - o2 | 0; + M2 = a2 >>> 0 < c2 >>> 0; + c2 = M2 ? a2 : c2; + a2 = b2; + d2 = M2 ? b2 : d2; + } + f2 = k[10222] | 0; + if (d2 >>> 0 < f2 >>> 0) + Pa(); + h2 = d2 + o2 | 0; + if (d2 >>> 0 >= h2 >>> 0) + Pa(); + g2 = k[d2 + 24 >> 2] | 0; + c2 = k[d2 + 12 >> 2] | 0; + do + if ((c2 | 0) == (d2 | 0)) { + a2 = d2 + 20 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + a2 = d2 + 16 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + n2 = 0; + break; + } + } + while (1) { + c2 = b2 + 20 | 0; + e2 = k[c2 >> 2] | 0; + if (e2) { + b2 = e2; + a2 = c2; + continue; + } + c2 = b2 + 16 | 0; + e2 = k[c2 >> 2] | 0; + if (!e2) + break; + else { + b2 = e2; + a2 = c2; + } + } + if (a2 >>> 0 < f2 >>> 0) + Pa(); + else { + k[a2 >> 2] = 0; + n2 = b2; + break; + } + } else { + e2 = k[d2 + 8 >> 2] | 0; + if (e2 >>> 0 < f2 >>> 0) + Pa(); + b2 = e2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (d2 | 0)) + Pa(); + a2 = c2 + 8 | 0; + if ((k[a2 >> 2] | 0) == (d2 | 0)) { + k[b2 >> 2] = c2; + k[a2 >> 2] = e2; + n2 = c2; + break; + } else + Pa(); + } + while (0); + do + if (g2) { + b2 = k[d2 + 28 >> 2] | 0; + a2 = 41176 + (b2 << 2) | 0; + if ((d2 | 0) == (k[a2 >> 2] | 0)) { + k[a2 >> 2] = n2; + if (!n2) { + k[10219] = k[10219] & ~(1 << b2); + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (d2 | 0)) + k[b2 >> 2] = n2; + else + k[g2 + 20 >> 2] = n2; + if (!n2) + break; + } + a2 = k[10222] | 0; + if (n2 >>> 0 < a2 >>> 0) + Pa(); + k[n2 + 24 >> 2] = g2; + b2 = k[d2 + 16 >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < a2 >>> 0) + Pa(); + else { + k[n2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = n2; + break; + } + while (0); + b2 = k[d2 + 20 >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[n2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = n2; + break; + } + } + while (0); + if (i3 >>> 0 < 16) { + M2 = i3 + o2 | 0; + k[d2 + 4 >> 2] = M2 | 3; + M2 = d2 + (M2 + 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + } else { + k[d2 + 4 >> 2] = o2 | 3; + k[d2 + (o2 | 4) >> 2] = i3 | 1; + k[d2 + (i3 + o2) >> 2] = i3; + b2 = k[10220] | 0; + if (b2) { + f2 = k[10223] | 0; + c2 = b2 >>> 3; + b2 = c2 << 1; + e2 = 40912 + (b2 << 2) | 0; + a2 = k[10218] | 0; + c2 = 1 << c2; + if (a2 & c2) { + b2 = 40912 + (b2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + p2 = b2; + q2 = a2; + } + } else { + k[10218] = a2 | c2; + p2 = 40912 + (b2 + 2 << 2) | 0; + q2 = e2; + } + k[p2 >> 2] = f2; + k[q2 + 12 >> 2] = f2; + k[f2 + 8 >> 2] = q2; + k[f2 + 12 >> 2] = e2; + } + k[10220] = i3; + k[10223] = h2; + } + M2 = d2 + 8 | 0; + return M2 | 0; + } else + q2 = o2; + } else + q2 = o2; + } else if (a2 >>> 0 <= 4294967231) { + a2 = a2 + 11 | 0; + m2 = a2 & -8; + l2 = k[10219] | 0; + if (l2) { + c2 = 0 - m2 | 0; + a2 = a2 >>> 8; + if (a2) + if (m2 >>> 0 > 16777215) + j2 = 31; + else { + q2 = (a2 + 1048320 | 0) >>> 16 & 8; + v2 = a2 << q2; + p2 = (v2 + 520192 | 0) >>> 16 & 4; + v2 = v2 << p2; + j2 = (v2 + 245760 | 0) >>> 16 & 2; + j2 = 14 - (p2 | q2 | j2) + (v2 << j2 >>> 15) | 0; + j2 = m2 >>> (j2 + 7 | 0) & 1 | j2 << 1; + } + else + j2 = 0; + a2 = k[41176 + (j2 << 2) >> 2] | 0; + a: + do + if (!a2) { + e2 = 0; + a2 = 0; + v2 = 86; + } else { + g2 = c2; + e2 = 0; + h2 = m2 << ((j2 | 0) == 31 ? 0 : 25 - (j2 >>> 1) | 0); + i3 = a2; + a2 = 0; + while (1) { + f2 = k[i3 + 4 >> 2] & -8; + c2 = f2 - m2 | 0; + if (c2 >>> 0 < g2 >>> 0) + if ((f2 | 0) == (m2 | 0)) { + f2 = i3; + a2 = i3; + v2 = 90; + break a; + } else + a2 = i3; + else + c2 = g2; + v2 = k[i3 + 20 >> 2] | 0; + i3 = k[i3 + 16 + (h2 >>> 31 << 2) >> 2] | 0; + e2 = (v2 | 0) == 0 | (v2 | 0) == (i3 | 0) ? e2 : v2; + if (!i3) { + v2 = 86; + break; + } else { + g2 = c2; + h2 = h2 << 1; + } + } + } + while (0); + if ((v2 | 0) == 86) { + if ((e2 | 0) == 0 & (a2 | 0) == 0) { + a2 = 2 << j2; + a2 = l2 & (a2 | 0 - a2); + if (!a2) { + q2 = m2; + break; + } + a2 = (a2 & 0 - a2) + -1 | 0; + n2 = a2 >>> 12 & 16; + a2 = a2 >>> n2; + l2 = a2 >>> 5 & 8; + a2 = a2 >>> l2; + p2 = a2 >>> 2 & 4; + a2 = a2 >>> p2; + q2 = a2 >>> 1 & 2; + a2 = a2 >>> q2; + e2 = a2 >>> 1 & 1; + e2 = k[41176 + ((l2 | n2 | p2 | q2 | e2) + (a2 >>> e2) << 2) >> 2] | 0; + a2 = 0; + } + if (!e2) { + h2 = c2; + i3 = a2; + } else { + f2 = e2; + v2 = 90; + } + } + if ((v2 | 0) == 90) + while (1) { + v2 = 0; + q2 = (k[f2 + 4 >> 2] & -8) - m2 | 0; + e2 = q2 >>> 0 < c2 >>> 0; + c2 = e2 ? q2 : c2; + a2 = e2 ? f2 : a2; + e2 = k[f2 + 16 >> 2] | 0; + if (e2) { + f2 = e2; + v2 = 90; + continue; + } + f2 = k[f2 + 20 >> 2] | 0; + if (!f2) { + h2 = c2; + i3 = a2; + break; + } else + v2 = 90; + } + if ((i3 | 0) != 0 ? h2 >>> 0 < ((k[10220] | 0) - m2 | 0) >>> 0 : 0) { + e2 = k[10222] | 0; + if (i3 >>> 0 < e2 >>> 0) + Pa(); + g2 = i3 + m2 | 0; + if (i3 >>> 0 >= g2 >>> 0) + Pa(); + f2 = k[i3 + 24 >> 2] | 0; + c2 = k[i3 + 12 >> 2] | 0; + do + if ((c2 | 0) == (i3 | 0)) { + a2 = i3 + 20 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + a2 = i3 + 16 | 0; + b2 = k[a2 >> 2] | 0; + if (!b2) { + o2 = 0; + break; + } + } + while (1) { + c2 = b2 + 20 | 0; + d2 = k[c2 >> 2] | 0; + if (d2) { + b2 = d2; + a2 = c2; + continue; + } + c2 = b2 + 16 | 0; + d2 = k[c2 >> 2] | 0; + if (!d2) + break; + else { + b2 = d2; + a2 = c2; + } + } + if (a2 >>> 0 < e2 >>> 0) + Pa(); + else { + k[a2 >> 2] = 0; + o2 = b2; + break; + } + } else { + d2 = k[i3 + 8 >> 2] | 0; + if (d2 >>> 0 < e2 >>> 0) + Pa(); + b2 = d2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (i3 | 0)) + Pa(); + a2 = c2 + 8 | 0; + if ((k[a2 >> 2] | 0) == (i3 | 0)) { + k[b2 >> 2] = c2; + k[a2 >> 2] = d2; + o2 = c2; + break; + } else + Pa(); + } + while (0); + do + if (f2) { + b2 = k[i3 + 28 >> 2] | 0; + a2 = 41176 + (b2 << 2) | 0; + if ((i3 | 0) == (k[a2 >> 2] | 0)) { + k[a2 >> 2] = o2; + if (!o2) { + k[10219] = k[10219] & ~(1 << b2); + break; + } + } else { + if (f2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = f2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (i3 | 0)) + k[b2 >> 2] = o2; + else + k[f2 + 20 >> 2] = o2; + if (!o2) + break; + } + a2 = k[10222] | 0; + if (o2 >>> 0 < a2 >>> 0) + Pa(); + k[o2 + 24 >> 2] = f2; + b2 = k[i3 + 16 >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < a2 >>> 0) + Pa(); + else { + k[o2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = o2; + break; + } + while (0); + b2 = k[i3 + 20 >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[o2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = o2; + break; + } + } + while (0); + b: + do + if (h2 >>> 0 >= 16) { + k[i3 + 4 >> 2] = m2 | 3; + k[i3 + (m2 | 4) >> 2] = h2 | 1; + k[i3 + (h2 + m2) >> 2] = h2; + b2 = h2 >>> 3; + if (h2 >>> 0 < 256) { + a2 = b2 << 1; + d2 = 40912 + (a2 << 2) | 0; + c2 = k[10218] | 0; + b2 = 1 << b2; + if (c2 & b2) { + b2 = 40912 + (a2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + s2 = b2; + t2 = a2; + } + } else { + k[10218] = c2 | b2; + s2 = 40912 + (a2 + 2 << 2) | 0; + t2 = d2; + } + k[s2 >> 2] = g2; + k[t2 + 12 >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = t2; + k[i3 + (m2 + 12) >> 2] = d2; + break; + } + b2 = h2 >>> 8; + if (b2) + if (h2 >>> 0 > 16777215) + d2 = 31; + else { + L2 = (b2 + 1048320 | 0) >>> 16 & 8; + M2 = b2 << L2; + K2 = (M2 + 520192 | 0) >>> 16 & 4; + M2 = M2 << K2; + d2 = (M2 + 245760 | 0) >>> 16 & 2; + d2 = 14 - (K2 | L2 | d2) + (M2 << d2 >>> 15) | 0; + d2 = h2 >>> (d2 + 7 | 0) & 1 | d2 << 1; + } + else + d2 = 0; + b2 = 41176 + (d2 << 2) | 0; + k[i3 + (m2 + 28) >> 2] = d2; + k[i3 + (m2 + 20) >> 2] = 0; + k[i3 + (m2 + 16) >> 2] = 0; + a2 = k[10219] | 0; + c2 = 1 << d2; + if (!(a2 & c2)) { + k[10219] = a2 | c2; + k[b2 >> 2] = g2; + k[i3 + (m2 + 24) >> 2] = b2; + k[i3 + (m2 + 12) >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = g2; + break; + } + b2 = k[b2 >> 2] | 0; + c: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (h2 | 0)) { + d2 = h2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); + while (1) { + a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; + c2 = k[a2 >> 2] | 0; + if (!c2) + break; + if ((k[c2 + 4 >> 2] & -8 | 0) == (h2 | 0)) { + y2 = c2; + break c; + } else { + d2 = d2 << 1; + b2 = c2; + } + } + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[a2 >> 2] = g2; + k[i3 + (m2 + 24) >> 2] = b2; + k[i3 + (m2 + 12) >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = g2; + break b; + } + } else + y2 = b2; + while (0); + b2 = y2 + 8 | 0; + a2 = k[b2 >> 2] | 0; + M2 = k[10222] | 0; + if (a2 >>> 0 >= M2 >>> 0 & y2 >>> 0 >= M2 >>> 0) { + k[a2 + 12 >> 2] = g2; + k[b2 >> 2] = g2; + k[i3 + (m2 + 8) >> 2] = a2; + k[i3 + (m2 + 12) >> 2] = y2; + k[i3 + (m2 + 24) >> 2] = 0; + break; + } else + Pa(); + } else { + M2 = h2 + m2 | 0; + k[i3 + 4 >> 2] = M2 | 3; + M2 = i3 + (M2 + 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + } + while (0); + M2 = i3 + 8 | 0; + return M2 | 0; + } else + q2 = m2; + } else + q2 = m2; + } else + q2 = -1; + while (0); + c2 = k[10220] | 0; + if (c2 >>> 0 >= q2 >>> 0) { + b2 = c2 - q2 | 0; + a2 = k[10223] | 0; + if (b2 >>> 0 > 15) { + k[10223] = a2 + q2; + k[10220] = b2; + k[a2 + (q2 + 4) >> 2] = b2 | 1; + k[a2 + c2 >> 2] = b2; + k[a2 + 4 >> 2] = q2 | 3; + } else { + k[10220] = 0; + k[10223] = 0; + k[a2 + 4 >> 2] = c2 | 3; + M2 = a2 + (c2 + 4) | 0; + k[M2 >> 2] = k[M2 >> 2] | 1; + } + M2 = a2 + 8 | 0; + return M2 | 0; + } + a2 = k[10221] | 0; + if (a2 >>> 0 > q2 >>> 0) { + L2 = a2 - q2 | 0; + k[10221] = L2; + M2 = k[10224] | 0; + k[10224] = M2 + q2; + k[M2 + (q2 + 4) >> 2] = L2 | 1; + k[M2 + 4 >> 2] = q2 | 3; + M2 = M2 + 8 | 0; + return M2 | 0; + } + do + if (!(k[10336] | 0)) { + a2 = hb(30) | 0; + if (!(a2 + -1 & a2)) { + k[10338] = a2; + k[10337] = a2; + k[10339] = -1; + k[10340] = -1; + k[10341] = 0; + k[10329] = 0; + y2 = (zb(0) | 0) & -16 ^ 1431655768; + k[10336] = y2; + break; + } else + Pa(); + } + while (0); + i3 = q2 + 48 | 0; + h2 = k[10338] | 0; + j2 = q2 + 47 | 0; + g2 = h2 + j2 | 0; + h2 = 0 - h2 | 0; + l2 = g2 & h2; + if (l2 >>> 0 <= q2 >>> 0) { + M2 = 0; + return M2 | 0; + } + a2 = k[10328] | 0; + if ((a2 | 0) != 0 ? (t2 = k[10326] | 0, y2 = t2 + l2 | 0, y2 >>> 0 <= t2 >>> 0 | y2 >>> 0 > a2 >>> 0) : 0) { + M2 = 0; + return M2 | 0; + } + d: + do + if (!(k[10329] & 4)) { + a2 = k[10224] | 0; + e: + do + if (a2) { + e2 = 41320; + while (1) { + c2 = k[e2 >> 2] | 0; + if (c2 >>> 0 <= a2 >>> 0 ? (r2 = e2 + 4 | 0, (c2 + (k[r2 >> 2] | 0) | 0) >>> 0 > a2 >>> 0) : 0) { + f2 = e2; + a2 = r2; + break; + } + e2 = k[e2 + 8 >> 2] | 0; + if (!e2) { + v2 = 174; + break e; + } + } + c2 = g2 - (k[10221] | 0) & h2; + if (c2 >>> 0 < 2147483647) { + e2 = bb(c2 | 0) | 0; + y2 = (e2 | 0) == ((k[f2 >> 2] | 0) + (k[a2 >> 2] | 0) | 0); + a2 = y2 ? c2 : 0; + if (y2) { + if ((e2 | 0) != (-1 | 0)) { + w2 = e2; + p2 = a2; + v2 = 194; + break d; + } + } else + v2 = 184; + } else + a2 = 0; + } else + v2 = 174; + while (0); + do + if ((v2 | 0) == 174) { + f2 = bb(0) | 0; + if ((f2 | 0) != (-1 | 0)) { + a2 = f2; + c2 = k[10337] | 0; + e2 = c2 + -1 | 0; + if (!(e2 & a2)) + c2 = l2; + else + c2 = l2 - a2 + (e2 + a2 & 0 - c2) | 0; + a2 = k[10326] | 0; + e2 = a2 + c2 | 0; + if (c2 >>> 0 > q2 >>> 0 & c2 >>> 0 < 2147483647) { + y2 = k[10328] | 0; + if ((y2 | 0) != 0 ? e2 >>> 0 <= a2 >>> 0 | e2 >>> 0 > y2 >>> 0 : 0) { + a2 = 0; + break; + } + e2 = bb(c2 | 0) | 0; + y2 = (e2 | 0) == (f2 | 0); + a2 = y2 ? c2 : 0; + if (y2) { + w2 = f2; + p2 = a2; + v2 = 194; + break d; + } else + v2 = 184; + } else + a2 = 0; + } else + a2 = 0; + } + while (0); + f: + do + if ((v2 | 0) == 184) { + f2 = 0 - c2 | 0; + do + if (i3 >>> 0 > c2 >>> 0 & (c2 >>> 0 < 2147483647 & (e2 | 0) != (-1 | 0)) ? (u2 = k[10338] | 0, u2 = j2 - c2 + u2 & 0 - u2, u2 >>> 0 < 2147483647) : 0) + if ((bb(u2 | 0) | 0) == (-1 | 0)) { + bb(f2 | 0) | 0; + break f; + } else { + c2 = u2 + c2 | 0; + break; + } + while (0); + if ((e2 | 0) != (-1 | 0)) { + w2 = e2; + p2 = c2; + v2 = 194; + break d; + } + } + while (0); + k[10329] = k[10329] | 4; + v2 = 191; + } else { + a2 = 0; + v2 = 191; + } + while (0); + if ((((v2 | 0) == 191 ? l2 >>> 0 < 2147483647 : 0) ? (w2 = bb(l2 | 0) | 0, x2 = bb(0) | 0, w2 >>> 0 < x2 >>> 0 & ((w2 | 0) != (-1 | 0) & (x2 | 0) != (-1 | 0))) : 0) ? (z2 = x2 - w2 | 0, A2 = z2 >>> 0 > (q2 + 40 | 0) >>> 0, A2) : 0) { + p2 = A2 ? z2 : a2; + v2 = 194; + } + if ((v2 | 0) == 194) { + a2 = (k[10326] | 0) + p2 | 0; + k[10326] = a2; + if (a2 >>> 0 > (k[10327] | 0) >>> 0) + k[10327] = a2; + g2 = k[10224] | 0; + g: + do + if (g2) { + f2 = 41320; + do { + a2 = k[f2 >> 2] | 0; + c2 = f2 + 4 | 0; + e2 = k[c2 >> 2] | 0; + if ((w2 | 0) == (a2 + e2 | 0)) { + B2 = a2; + C2 = c2; + D2 = e2; + E2 = f2; + v2 = 204; + break; + } + f2 = k[f2 + 8 >> 2] | 0; + } while ((f2 | 0) != 0); + if (((v2 | 0) == 204 ? (k[E2 + 12 >> 2] & 8 | 0) == 0 : 0) ? g2 >>> 0 < w2 >>> 0 & g2 >>> 0 >= B2 >>> 0 : 0) { + k[C2 >> 2] = D2 + p2; + M2 = (k[10221] | 0) + p2 | 0; + L2 = g2 + 8 | 0; + L2 = (L2 & 7 | 0) == 0 ? 0 : 0 - L2 & 7; + K2 = M2 - L2 | 0; + k[10224] = g2 + L2; + k[10221] = K2; + k[g2 + (L2 + 4) >> 2] = K2 | 1; + k[g2 + (M2 + 4) >> 2] = 40; + k[10225] = k[10340]; + break; + } + a2 = k[10222] | 0; + if (w2 >>> 0 < a2 >>> 0) { + k[10222] = w2; + a2 = w2; + } + c2 = w2 + p2 | 0; + f2 = 41320; + while (1) { + if ((k[f2 >> 2] | 0) == (c2 | 0)) { + e2 = f2; + c2 = f2; + v2 = 212; + break; + } + f2 = k[f2 + 8 >> 2] | 0; + if (!f2) { + c2 = 41320; + break; + } + } + if ((v2 | 0) == 212) + if (!(k[c2 + 12 >> 2] & 8)) { + k[e2 >> 2] = w2; + n2 = c2 + 4 | 0; + k[n2 >> 2] = (k[n2 >> 2] | 0) + p2; + n2 = w2 + 8 | 0; + n2 = (n2 & 7 | 0) == 0 ? 0 : 0 - n2 & 7; + j2 = w2 + (p2 + 8) | 0; + j2 = (j2 & 7 | 0) == 0 ? 0 : 0 - j2 & 7; + b2 = w2 + (j2 + p2) | 0; + m2 = n2 + q2 | 0; + o2 = w2 + m2 | 0; + l2 = b2 - (w2 + n2) - q2 | 0; + k[w2 + (n2 + 4) >> 2] = q2 | 3; + h: + do + if ((b2 | 0) != (g2 | 0)) { + if ((b2 | 0) == (k[10223] | 0)) { + M2 = (k[10220] | 0) + l2 | 0; + k[10220] = M2; + k[10223] = o2; + k[w2 + (m2 + 4) >> 2] = M2 | 1; + k[w2 + (M2 + m2) >> 2] = M2; + break; + } + h2 = p2 + 4 | 0; + c2 = k[w2 + (h2 + j2) >> 2] | 0; + if ((c2 & 3 | 0) == 1) { + i3 = c2 & -8; + f2 = c2 >>> 3; + i: + do + if (c2 >>> 0 >= 256) { + g2 = k[w2 + ((j2 | 24) + p2) >> 2] | 0; + d2 = k[w2 + (p2 + 12 + j2) >> 2] | 0; + do + if ((d2 | 0) == (b2 | 0)) { + e2 = j2 | 16; + d2 = w2 + (h2 + e2) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = w2 + (e2 + p2) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + J2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < a2 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + J2 = c2; + break; + } + } else { + e2 = k[w2 + ((j2 | 8) + p2) >> 2] | 0; + if (e2 >>> 0 < a2 >>> 0) + Pa(); + a2 = e2 + 12 | 0; + if ((k[a2 >> 2] | 0) != (b2 | 0)) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (b2 | 0)) { + k[a2 >> 2] = d2; + k[c2 >> 2] = e2; + J2 = d2; + break; + } else + Pa(); + } + while (0); + if (!g2) + break; + a2 = k[w2 + (p2 + 28 + j2) >> 2] | 0; + c2 = 41176 + (a2 << 2) | 0; + do + if ((b2 | 0) != (k[c2 >> 2] | 0)) { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + a2 = g2 + 16 | 0; + if ((k[a2 >> 2] | 0) == (b2 | 0)) + k[a2 >> 2] = J2; + else + k[g2 + 20 >> 2] = J2; + if (!J2) + break i; + } else { + k[c2 >> 2] = J2; + if (J2) + break; + k[10219] = k[10219] & ~(1 << a2); + break i; + } + while (0); + c2 = k[10222] | 0; + if (J2 >>> 0 < c2 >>> 0) + Pa(); + k[J2 + 24 >> 2] = g2; + b2 = j2 | 16; + a2 = k[w2 + (b2 + p2) >> 2] | 0; + do + if (a2) + if (a2 >>> 0 < c2 >>> 0) + Pa(); + else { + k[J2 + 16 >> 2] = a2; + k[a2 + 24 >> 2] = J2; + break; + } + while (0); + b2 = k[w2 + (h2 + b2) >> 2] | 0; + if (!b2) + break; + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[J2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = J2; + break; + } + } else { + d2 = k[w2 + ((j2 | 8) + p2) >> 2] | 0; + e2 = k[w2 + (p2 + 12 + j2) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + do + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < a2 >>> 0) + Pa(); + if ((k[d2 + 12 >> 2] | 0) == (b2 | 0)) + break; + Pa(); + } + while (0); + if ((e2 | 0) == (d2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + break; + } + do + if ((e2 | 0) == (c2 | 0)) + F2 = e2 + 8 | 0; + else { + if (e2 >>> 0 < a2 >>> 0) + Pa(); + a2 = e2 + 8 | 0; + if ((k[a2 >> 2] | 0) == (b2 | 0)) { + F2 = a2; + break; + } + Pa(); + } + while (0); + k[d2 + 12 >> 2] = e2; + k[F2 >> 2] = d2; + } + while (0); + b2 = w2 + ((i3 | j2) + p2) | 0; + e2 = i3 + l2 | 0; + } else + e2 = l2; + b2 = b2 + 4 | 0; + k[b2 >> 2] = k[b2 >> 2] & -2; + k[w2 + (m2 + 4) >> 2] = e2 | 1; + k[w2 + (e2 + m2) >> 2] = e2; + b2 = e2 >>> 3; + if (e2 >>> 0 < 256) { + a2 = b2 << 1; + d2 = 40912 + (a2 << 2) | 0; + c2 = k[10218] | 0; + b2 = 1 << b2; + do + if (!(c2 & b2)) { + k[10218] = c2 | b2; + K2 = 40912 + (a2 + 2 << 2) | 0; + L2 = d2; + } else { + b2 = 40912 + (a2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 >= (k[10222] | 0) >>> 0) { + K2 = b2; + L2 = a2; + break; + } + Pa(); + } + while (0); + k[K2 >> 2] = o2; + k[L2 + 12 >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = L2; + k[w2 + (m2 + 12) >> 2] = d2; + break; + } + b2 = e2 >>> 8; + do + if (!b2) + d2 = 0; + else { + if (e2 >>> 0 > 16777215) { + d2 = 31; + break; + } + K2 = (b2 + 1048320 | 0) >>> 16 & 8; + L2 = b2 << K2; + J2 = (L2 + 520192 | 0) >>> 16 & 4; + L2 = L2 << J2; + d2 = (L2 + 245760 | 0) >>> 16 & 2; + d2 = 14 - (J2 | K2 | d2) + (L2 << d2 >>> 15) | 0; + d2 = e2 >>> (d2 + 7 | 0) & 1 | d2 << 1; + } + while (0); + b2 = 41176 + (d2 << 2) | 0; + k[w2 + (m2 + 28) >> 2] = d2; + k[w2 + (m2 + 20) >> 2] = 0; + k[w2 + (m2 + 16) >> 2] = 0; + a2 = k[10219] | 0; + c2 = 1 << d2; + if (!(a2 & c2)) { + k[10219] = a2 | c2; + k[b2 >> 2] = o2; + k[w2 + (m2 + 24) >> 2] = b2; + k[w2 + (m2 + 12) >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = o2; + break; + } + b2 = k[b2 >> 2] | 0; + j: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (e2 | 0)) { + d2 = e2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); + while (1) { + a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; + c2 = k[a2 >> 2] | 0; + if (!c2) + break; + if ((k[c2 + 4 >> 2] & -8 | 0) == (e2 | 0)) { + M2 = c2; + break j; + } else { + d2 = d2 << 1; + b2 = c2; + } + } + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[a2 >> 2] = o2; + k[w2 + (m2 + 24) >> 2] = b2; + k[w2 + (m2 + 12) >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = o2; + break h; + } + } else + M2 = b2; + while (0); + b2 = M2 + 8 | 0; + a2 = k[b2 >> 2] | 0; + L2 = k[10222] | 0; + if (a2 >>> 0 >= L2 >>> 0 & M2 >>> 0 >= L2 >>> 0) { + k[a2 + 12 >> 2] = o2; + k[b2 >> 2] = o2; + k[w2 + (m2 + 8) >> 2] = a2; + k[w2 + (m2 + 12) >> 2] = M2; + k[w2 + (m2 + 24) >> 2] = 0; + break; + } else + Pa(); + } else { + M2 = (k[10221] | 0) + l2 | 0; + k[10221] = M2; + k[10224] = o2; + k[w2 + (m2 + 4) >> 2] = M2 | 1; + } + while (0); + M2 = w2 + (n2 | 8) | 0; + return M2 | 0; + } else + c2 = 41320; + while (1) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 <= g2 >>> 0 ? (b2 = k[c2 + 4 >> 2] | 0, d2 = a2 + b2 | 0, d2 >>> 0 > g2 >>> 0) : 0) + break; + c2 = k[c2 + 8 >> 2] | 0; + } + e2 = a2 + (b2 + -39) | 0; + a2 = a2 + (b2 + -47 + ((e2 & 7 | 0) == 0 ? 0 : 0 - e2 & 7)) | 0; + e2 = g2 + 16 | 0; + a2 = a2 >>> 0 < e2 >>> 0 ? g2 : a2; + b2 = a2 + 8 | 0; + c2 = w2 + 8 | 0; + c2 = (c2 & 7 | 0) == 0 ? 0 : 0 - c2 & 7; + M2 = p2 + -40 - c2 | 0; + k[10224] = w2 + c2; + k[10221] = M2; + k[w2 + (c2 + 4) >> 2] = M2 | 1; + k[w2 + (p2 + -36) >> 2] = 40; + k[10225] = k[10340]; + c2 = a2 + 4 | 0; + k[c2 >> 2] = 27; + k[b2 >> 2] = k[10330]; + k[b2 + 4 >> 2] = k[10331]; + k[b2 + 8 >> 2] = k[10332]; + k[b2 + 12 >> 2] = k[10333]; + k[10330] = w2; + k[10331] = p2; + k[10333] = 0; + k[10332] = b2; + b2 = a2 + 28 | 0; + k[b2 >> 2] = 7; + if ((a2 + 32 | 0) >>> 0 < d2 >>> 0) + do { + M2 = b2; + b2 = b2 + 4 | 0; + k[b2 >> 2] = 7; + } while ((M2 + 8 | 0) >>> 0 < d2 >>> 0); + if ((a2 | 0) != (g2 | 0)) { + f2 = a2 - g2 | 0; + k[c2 >> 2] = k[c2 >> 2] & -2; + k[g2 + 4 >> 2] = f2 | 1; + k[a2 >> 2] = f2; + b2 = f2 >>> 3; + if (f2 >>> 0 < 256) { + a2 = b2 << 1; + d2 = 40912 + (a2 << 2) | 0; + c2 = k[10218] | 0; + b2 = 1 << b2; + if (c2 & b2) { + b2 = 40912 + (a2 + 2 << 2) | 0; + a2 = k[b2 >> 2] | 0; + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + G2 = b2; + H2 = a2; + } + } else { + k[10218] = c2 | b2; + G2 = 40912 + (a2 + 2 << 2) | 0; + H2 = d2; + } + k[G2 >> 2] = g2; + k[H2 + 12 >> 2] = g2; + k[g2 + 8 >> 2] = H2; + k[g2 + 12 >> 2] = d2; + break; + } + b2 = f2 >>> 8; + if (b2) + if (f2 >>> 0 > 16777215) + d2 = 31; + else { + L2 = (b2 + 1048320 | 0) >>> 16 & 8; + M2 = b2 << L2; + K2 = (M2 + 520192 | 0) >>> 16 & 4; + M2 = M2 << K2; + d2 = (M2 + 245760 | 0) >>> 16 & 2; + d2 = 14 - (K2 | L2 | d2) + (M2 << d2 >>> 15) | 0; + d2 = f2 >>> (d2 + 7 | 0) & 1 | d2 << 1; + } + else + d2 = 0; + c2 = 41176 + (d2 << 2) | 0; + k[g2 + 28 >> 2] = d2; + k[g2 + 20 >> 2] = 0; + k[e2 >> 2] = 0; + b2 = k[10219] | 0; + a2 = 1 << d2; + if (!(b2 & a2)) { + k[10219] = b2 | a2; + k[c2 >> 2] = g2; + k[g2 + 24 >> 2] = c2; + k[g2 + 12 >> 2] = g2; + k[g2 + 8 >> 2] = g2; + break; + } + b2 = k[c2 >> 2] | 0; + k: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { + d2 = f2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); + while (1) { + a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; + c2 = k[a2 >> 2] | 0; + if (!c2) + break; + if ((k[c2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { + I2 = c2; + break k; + } else { + d2 = d2 << 1; + b2 = c2; + } + } + if (a2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[a2 >> 2] = g2; + k[g2 + 24 >> 2] = b2; + k[g2 + 12 >> 2] = g2; + k[g2 + 8 >> 2] = g2; + break g; + } + } else + I2 = b2; + while (0); + b2 = I2 + 8 | 0; + a2 = k[b2 >> 2] | 0; + M2 = k[10222] | 0; + if (a2 >>> 0 >= M2 >>> 0 & I2 >>> 0 >= M2 >>> 0) { + k[a2 + 12 >> 2] = g2; + k[b2 >> 2] = g2; + k[g2 + 8 >> 2] = a2; + k[g2 + 12 >> 2] = I2; + k[g2 + 24 >> 2] = 0; + break; + } else + Pa(); + } + } else { + M2 = k[10222] | 0; + if ((M2 | 0) == 0 | w2 >>> 0 < M2 >>> 0) + k[10222] = w2; + k[10330] = w2; + k[10331] = p2; + k[10333] = 0; + k[10227] = k[10336]; + k[10226] = -1; + b2 = 0; + do { + M2 = b2 << 1; + L2 = 40912 + (M2 << 2) | 0; + k[40912 + (M2 + 3 << 2) >> 2] = L2; + k[40912 + (M2 + 2 << 2) >> 2] = L2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != 32); + M2 = w2 + 8 | 0; + M2 = (M2 & 7 | 0) == 0 ? 0 : 0 - M2 & 7; + L2 = p2 + -40 - M2 | 0; + k[10224] = w2 + M2; + k[10221] = L2; + k[w2 + (M2 + 4) >> 2] = L2 | 1; + k[w2 + (p2 + -36) >> 2] = 40; + k[10225] = k[10340]; + } + while (0); + b2 = k[10221] | 0; + if (b2 >>> 0 > q2 >>> 0) { + L2 = b2 - q2 | 0; + k[10221] = L2; + M2 = k[10224] | 0; + k[10224] = M2 + q2; + k[M2 + (q2 + 4) >> 2] = L2 | 1; + k[M2 + 4 >> 2] = q2 | 3; + M2 = M2 + 8 | 0; + return M2 | 0; + } + } + M2 = mk() | 0; + k[M2 >> 2] = 12; + M2 = 0; + return M2 | 0; + } + function Ql(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; + if (!a2) + return; + b2 = a2 + -8 | 0; + h2 = k[10222] | 0; + if (b2 >>> 0 < h2 >>> 0) + Pa(); + c2 = k[a2 + -4 >> 2] | 0; + d2 = c2 & 3; + if ((d2 | 0) == 1) + Pa(); + o2 = c2 & -8; + q2 = a2 + (o2 + -8) | 0; + do + if (!(c2 & 1)) { + b2 = k[b2 >> 2] | 0; + if (!d2) + return; + i3 = -8 - b2 | 0; + l2 = a2 + i3 | 0; + m2 = b2 + o2 | 0; + if (l2 >>> 0 < h2 >>> 0) + Pa(); + if ((l2 | 0) == (k[10223] | 0)) { + b2 = a2 + (o2 + -4) | 0; + c2 = k[b2 >> 2] | 0; + if ((c2 & 3 | 0) != 3) { + u2 = l2; + f2 = m2; + break; + } + k[10220] = m2; + k[b2 >> 2] = c2 & -2; + k[a2 + (i3 + 4) >> 2] = m2 | 1; + k[q2 >> 2] = m2; + return; + } + e2 = b2 >>> 3; + if (b2 >>> 0 < 256) { + d2 = k[a2 + (i3 + 8) >> 2] | 0; + c2 = k[a2 + (i3 + 12) >> 2] | 0; + b2 = 40912 + (e2 << 1 << 2) | 0; + if ((d2 | 0) != (b2 | 0)) { + if (d2 >>> 0 < h2 >>> 0) + Pa(); + if ((k[d2 + 12 >> 2] | 0) != (l2 | 0)) + Pa(); + } + if ((c2 | 0) == (d2 | 0)) { + k[10218] = k[10218] & ~(1 << e2); + u2 = l2; + f2 = m2; + break; + } + if ((c2 | 0) != (b2 | 0)) { + if (c2 >>> 0 < h2 >>> 0) + Pa(); + b2 = c2 + 8 | 0; + if ((k[b2 >> 2] | 0) == (l2 | 0)) + g2 = b2; + else + Pa(); + } else + g2 = c2 + 8 | 0; + k[d2 + 12 >> 2] = c2; + k[g2 >> 2] = d2; + u2 = l2; + f2 = m2; + break; + } + g2 = k[a2 + (i3 + 24) >> 2] | 0; + d2 = k[a2 + (i3 + 12) >> 2] | 0; + do + if ((d2 | 0) == (l2 | 0)) { + c2 = a2 + (i3 + 20) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + c2 = a2 + (i3 + 16) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + j2 = 0; + break; + } + } + while (1) { + d2 = b2 + 20 | 0; + e2 = k[d2 >> 2] | 0; + if (e2) { + b2 = e2; + c2 = d2; + continue; + } + d2 = b2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + break; + else { + b2 = e2; + c2 = d2; + } + } + if (c2 >>> 0 < h2 >>> 0) + Pa(); + else { + k[c2 >> 2] = 0; + j2 = b2; + break; + } + } else { + e2 = k[a2 + (i3 + 8) >> 2] | 0; + if (e2 >>> 0 < h2 >>> 0) + Pa(); + b2 = e2 + 12 | 0; + if ((k[b2 >> 2] | 0) != (l2 | 0)) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (l2 | 0)) { + k[b2 >> 2] = d2; + k[c2 >> 2] = e2; + j2 = d2; + break; + } else + Pa(); + } + while (0); + if (g2) { + b2 = k[a2 + (i3 + 28) >> 2] | 0; + c2 = 41176 + (b2 << 2) | 0; + if ((l2 | 0) == (k[c2 >> 2] | 0)) { + k[c2 >> 2] = j2; + if (!j2) { + k[10219] = k[10219] & ~(1 << b2); + u2 = l2; + f2 = m2; + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (l2 | 0)) + k[b2 >> 2] = j2; + else + k[g2 + 20 >> 2] = j2; + if (!j2) { + u2 = l2; + f2 = m2; + break; + } + } + c2 = k[10222] | 0; + if (j2 >>> 0 < c2 >>> 0) + Pa(); + k[j2 + 24 >> 2] = g2; + b2 = k[a2 + (i3 + 16) >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < c2 >>> 0) + Pa(); + else { + k[j2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = j2; + break; + } + while (0); + b2 = k[a2 + (i3 + 20) >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[j2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = j2; + u2 = l2; + f2 = m2; + break; + } + else { + u2 = l2; + f2 = m2; + } + } else { + u2 = l2; + f2 = m2; + } + } else { + u2 = b2; + f2 = o2; + } + while (0); + if (u2 >>> 0 >= q2 >>> 0) + Pa(); + b2 = a2 + (o2 + -4) | 0; + c2 = k[b2 >> 2] | 0; + if (!(c2 & 1)) + Pa(); + if (!(c2 & 2)) { + if ((q2 | 0) == (k[10224] | 0)) { + t2 = (k[10221] | 0) + f2 | 0; + k[10221] = t2; + k[10224] = u2; + k[u2 + 4 >> 2] = t2 | 1; + if ((u2 | 0) != (k[10223] | 0)) + return; + k[10223] = 0; + k[10220] = 0; + return; + } + if ((q2 | 0) == (k[10223] | 0)) { + t2 = (k[10220] | 0) + f2 | 0; + k[10220] = t2; + k[10223] = u2; + k[u2 + 4 >> 2] = t2 | 1; + k[u2 + t2 >> 2] = t2; + return; + } + f2 = (c2 & -8) + f2 | 0; + e2 = c2 >>> 3; + do + if (c2 >>> 0 >= 256) { + g2 = k[a2 + (o2 + 16) >> 2] | 0; + b2 = k[a2 + (o2 | 4) >> 2] | 0; + do + if ((b2 | 0) == (q2 | 0)) { + c2 = a2 + (o2 + 12) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + c2 = a2 + (o2 + 8) | 0; + b2 = k[c2 >> 2] | 0; + if (!b2) { + p2 = 0; + break; + } + } + while (1) { + d2 = b2 + 20 | 0; + e2 = k[d2 >> 2] | 0; + if (e2) { + b2 = e2; + c2 = d2; + continue; + } + d2 = b2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + break; + else { + b2 = e2; + c2 = d2; + } + } + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[c2 >> 2] = 0; + p2 = b2; + break; + } + } else { + c2 = k[a2 + o2 >> 2] | 0; + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + d2 = c2 + 12 | 0; + if ((k[d2 >> 2] | 0) != (q2 | 0)) + Pa(); + e2 = b2 + 8 | 0; + if ((k[e2 >> 2] | 0) == (q2 | 0)) { + k[d2 >> 2] = b2; + k[e2 >> 2] = c2; + p2 = b2; + break; + } else + Pa(); + } + while (0); + if (g2) { + b2 = k[a2 + (o2 + 20) >> 2] | 0; + c2 = 41176 + (b2 << 2) | 0; + if ((q2 | 0) == (k[c2 >> 2] | 0)) { + k[c2 >> 2] = p2; + if (!p2) { + k[10219] = k[10219] & ~(1 << b2); + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = g2 + 16 | 0; + if ((k[b2 >> 2] | 0) == (q2 | 0)) + k[b2 >> 2] = p2; + else + k[g2 + 20 >> 2] = p2; + if (!p2) + break; + } + c2 = k[10222] | 0; + if (p2 >>> 0 < c2 >>> 0) + Pa(); + k[p2 + 24 >> 2] = g2; + b2 = k[a2 + (o2 + 8) >> 2] | 0; + do + if (b2) + if (b2 >>> 0 < c2 >>> 0) + Pa(); + else { + k[p2 + 16 >> 2] = b2; + k[b2 + 24 >> 2] = p2; + break; + } + while (0); + b2 = k[a2 + (o2 + 12) >> 2] | 0; + if (b2) + if (b2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[p2 + 20 >> 2] = b2; + k[b2 + 24 >> 2] = p2; + break; + } + } + } else { + d2 = k[a2 + o2 >> 2] | 0; + c2 = k[a2 + (o2 | 4) >> 2] | 0; + b2 = 40912 + (e2 << 1 << 2) | 0; + if ((d2 | 0) != (b2 | 0)) { + if (d2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + if ((k[d2 + 12 >> 2] | 0) != (q2 | 0)) + Pa(); + } + if ((c2 | 0) == (d2 | 0)) { + k[10218] = k[10218] & ~(1 << e2); + break; + } + if ((c2 | 0) != (b2 | 0)) { + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + b2 = c2 + 8 | 0; + if ((k[b2 >> 2] | 0) == (q2 | 0)) + n2 = b2; + else + Pa(); + } else + n2 = c2 + 8 | 0; + k[d2 + 12 >> 2] = c2; + k[n2 >> 2] = d2; + } + while (0); + k[u2 + 4 >> 2] = f2 | 1; + k[u2 + f2 >> 2] = f2; + if ((u2 | 0) == (k[10223] | 0)) { + k[10220] = f2; + return; + } + } else { + k[b2 >> 2] = c2 & -2; + k[u2 + 4 >> 2] = f2 | 1; + k[u2 + f2 >> 2] = f2; + } + b2 = f2 >>> 3; + if (f2 >>> 0 < 256) { + c2 = b2 << 1; + e2 = 40912 + (c2 << 2) | 0; + d2 = k[10218] | 0; + b2 = 1 << b2; + if (d2 & b2) { + b2 = 40912 + (c2 + 2 << 2) | 0; + c2 = k[b2 >> 2] | 0; + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + r2 = b2; + s2 = c2; + } + } else { + k[10218] = d2 | b2; + r2 = 40912 + (c2 + 2 << 2) | 0; + s2 = e2; + } + k[r2 >> 2] = u2; + k[s2 + 12 >> 2] = u2; + k[u2 + 8 >> 2] = s2; + k[u2 + 12 >> 2] = e2; + return; + } + b2 = f2 >>> 8; + if (b2) + if (f2 >>> 0 > 16777215) + e2 = 31; + else { + r2 = (b2 + 1048320 | 0) >>> 16 & 8; + s2 = b2 << r2; + q2 = (s2 + 520192 | 0) >>> 16 & 4; + s2 = s2 << q2; + e2 = (s2 + 245760 | 0) >>> 16 & 2; + e2 = 14 - (q2 | r2 | e2) + (s2 << e2 >>> 15) | 0; + e2 = f2 >>> (e2 + 7 | 0) & 1 | e2 << 1; + } + else + e2 = 0; + b2 = 41176 + (e2 << 2) | 0; + k[u2 + 28 >> 2] = e2; + k[u2 + 20 >> 2] = 0; + k[u2 + 16 >> 2] = 0; + c2 = k[10219] | 0; + d2 = 1 << e2; + a: + do + if (c2 & d2) { + b2 = k[b2 >> 2] | 0; + b: + do + if ((k[b2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { + e2 = f2 << ((e2 | 0) == 31 ? 0 : 25 - (e2 >>> 1) | 0); + while (1) { + c2 = b2 + 16 + (e2 >>> 31 << 2) | 0; + d2 = k[c2 >> 2] | 0; + if (!d2) + break; + if ((k[d2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { + t2 = d2; + break b; + } else { + e2 = e2 << 1; + b2 = d2; + } + } + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[c2 >> 2] = u2; + k[u2 + 24 >> 2] = b2; + k[u2 + 12 >> 2] = u2; + k[u2 + 8 >> 2] = u2; + break a; + } + } else + t2 = b2; + while (0); + b2 = t2 + 8 | 0; + c2 = k[b2 >> 2] | 0; + s2 = k[10222] | 0; + if (c2 >>> 0 >= s2 >>> 0 & t2 >>> 0 >= s2 >>> 0) { + k[c2 + 12 >> 2] = u2; + k[b2 >> 2] = u2; + k[u2 + 8 >> 2] = c2; + k[u2 + 12 >> 2] = t2; + k[u2 + 24 >> 2] = 0; + break; + } else + Pa(); + } else { + k[10219] = c2 | d2; + k[b2 >> 2] = u2; + k[u2 + 24 >> 2] = b2; + k[u2 + 12 >> 2] = u2; + k[u2 + 8 >> 2] = u2; + } + while (0); + u2 = (k[10226] | 0) + -1 | 0; + k[10226] = u2; + if (!u2) + b2 = 41328; + else + return; + while (1) { + b2 = k[b2 >> 2] | 0; + if (!b2) + break; + else + b2 = b2 + 8 | 0; + } + k[10226] = -1; + return; + } + function Rl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + if (a2) { + c2 = ia(b2, a2) | 0; + if ((b2 | a2) >>> 0 > 65535) + c2 = ((c2 >>> 0) / (a2 >>> 0) | 0 | 0) == (b2 | 0) ? c2 : -1; + } else + c2 = 0; + b2 = Pl(c2) | 0; + if (!b2) + return b2 | 0; + if (!(k[b2 + -4 >> 2] & 3)) + return b2 | 0; + sw(b2 | 0, 0, c2 | 0) | 0; + return b2 | 0; + } + function Sl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + if (!a2) { + a2 = Pl(b2) | 0; + return a2 | 0; + } + if (b2 >>> 0 > 4294967231) { + a2 = mk() | 0; + k[a2 >> 2] = 12; + a2 = 0; + return a2 | 0; + } + c2 = Tl(a2 + -8 | 0, b2 >>> 0 < 11 ? 16 : b2 + 11 & -8) | 0; + if (c2) { + a2 = c2 + 8 | 0; + return a2 | 0; + } + c2 = Pl(b2) | 0; + if (!c2) { + a2 = 0; + return a2 | 0; + } + d2 = k[a2 + -4 >> 2] | 0; + d2 = (d2 & -8) - ((d2 & 3 | 0) == 0 ? 8 : 4) | 0; + vw(c2 | 0, a2 | 0, (d2 >>> 0 < b2 >>> 0 ? d2 : b2) | 0) | 0; + Ql(a2); + a2 = c2; + return a2 | 0; + } + function Tl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = a2 + 4 | 0; + p2 = k[o2 >> 2] | 0; + i3 = p2 & -8; + l2 = a2 + i3 | 0; + h2 = k[10222] | 0; + c2 = p2 & 3; + if (!((c2 | 0) != 1 & a2 >>> 0 >= h2 >>> 0 & a2 >>> 0 < l2 >>> 0)) + Pa(); + d2 = a2 + (i3 | 4) | 0; + e2 = k[d2 >> 2] | 0; + if (!(e2 & 1)) + Pa(); + if (!c2) { + if (b2 >>> 0 < 256) { + a2 = 0; + return a2 | 0; + } + if (i3 >>> 0 >= (b2 + 4 | 0) >>> 0 ? (i3 - b2 | 0) >>> 0 <= k[10338] << 1 >>> 0 : 0) + return a2 | 0; + a2 = 0; + return a2 | 0; + } + if (i3 >>> 0 >= b2 >>> 0) { + c2 = i3 - b2 | 0; + if (c2 >>> 0 <= 15) + return a2 | 0; + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = c2 | 3; + k[d2 >> 2] = k[d2 >> 2] | 1; + Ul(a2 + b2 | 0, c2); + return a2 | 0; + } + if ((l2 | 0) == (k[10224] | 0)) { + c2 = (k[10221] | 0) + i3 | 0; + if (c2 >>> 0 <= b2 >>> 0) { + a2 = 0; + return a2 | 0; + } + n2 = c2 - b2 | 0; + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = n2 | 1; + k[10224] = a2 + b2; + k[10221] = n2; + return a2 | 0; + } + if ((l2 | 0) == (k[10223] | 0)) { + d2 = (k[10220] | 0) + i3 | 0; + if (d2 >>> 0 < b2 >>> 0) { + a2 = 0; + return a2 | 0; + } + c2 = d2 - b2 | 0; + if (c2 >>> 0 > 15) { + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = c2 | 1; + k[a2 + d2 >> 2] = c2; + d2 = a2 + (d2 + 4) | 0; + k[d2 >> 2] = k[d2 >> 2] & -2; + d2 = a2 + b2 | 0; + } else { + k[o2 >> 2] = p2 & 1 | d2 | 2; + d2 = a2 + (d2 + 4) | 0; + k[d2 >> 2] = k[d2 >> 2] | 1; + d2 = 0; + c2 = 0; + } + k[10220] = c2; + k[10223] = d2; + return a2 | 0; + } + if (e2 & 2) { + a2 = 0; + return a2 | 0; + } + m2 = (e2 & -8) + i3 | 0; + if (m2 >>> 0 < b2 >>> 0) { + a2 = 0; + return a2 | 0; + } + n2 = m2 - b2 | 0; + f2 = e2 >>> 3; + do + if (e2 >>> 0 >= 256) { + g2 = k[a2 + (i3 + 24) >> 2] | 0; + f2 = k[a2 + (i3 + 12) >> 2] | 0; + do + if ((f2 | 0) == (l2 | 0)) { + d2 = a2 + (i3 + 20) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = a2 + (i3 + 16) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + j2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < h2 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + j2 = c2; + break; + } + } else { + e2 = k[a2 + (i3 + 8) >> 2] | 0; + if (e2 >>> 0 < h2 >>> 0) + Pa(); + c2 = e2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (l2 | 0)) + Pa(); + d2 = f2 + 8 | 0; + if ((k[d2 >> 2] | 0) == (l2 | 0)) { + k[c2 >> 2] = f2; + k[d2 >> 2] = e2; + j2 = f2; + break; + } else + Pa(); + } + while (0); + if (g2) { + c2 = k[a2 + (i3 + 28) >> 2] | 0; + d2 = 41176 + (c2 << 2) | 0; + if ((l2 | 0) == (k[d2 >> 2] | 0)) { + k[d2 >> 2] = j2; + if (!j2) { + k[10219] = k[10219] & ~(1 << c2); + break; + } + } else { + if (g2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + c2 = g2 + 16 | 0; + if ((k[c2 >> 2] | 0) == (l2 | 0)) + k[c2 >> 2] = j2; + else + k[g2 + 20 >> 2] = j2; + if (!j2) + break; + } + d2 = k[10222] | 0; + if (j2 >>> 0 < d2 >>> 0) + Pa(); + k[j2 + 24 >> 2] = g2; + c2 = k[a2 + (i3 + 16) >> 2] | 0; + do + if (c2) + if (c2 >>> 0 < d2 >>> 0) + Pa(); + else { + k[j2 + 16 >> 2] = c2; + k[c2 + 24 >> 2] = j2; + break; + } + while (0); + c2 = k[a2 + (i3 + 20) >> 2] | 0; + if (c2) + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[j2 + 20 >> 2] = c2; + k[c2 + 24 >> 2] = j2; + break; + } + } + } else { + e2 = k[a2 + (i3 + 8) >> 2] | 0; + d2 = k[a2 + (i3 + 12) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + if ((e2 | 0) != (c2 | 0)) { + if (e2 >>> 0 < h2 >>> 0) + Pa(); + if ((k[e2 + 12 >> 2] | 0) != (l2 | 0)) + Pa(); + } + if ((d2 | 0) == (e2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + break; + } + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < h2 >>> 0) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (l2 | 0)) + g2 = c2; + else + Pa(); + } else + g2 = d2 + 8 | 0; + k[e2 + 12 >> 2] = d2; + k[g2 >> 2] = e2; + } + while (0); + if (n2 >>> 0 < 16) { + k[o2 >> 2] = m2 | p2 & 1 | 2; + b2 = a2 + (m2 | 4) | 0; + k[b2 >> 2] = k[b2 >> 2] | 1; + return a2 | 0; + } else { + k[o2 >> 2] = p2 & 1 | b2 | 2; + k[a2 + (b2 + 4) >> 2] = n2 | 3; + p2 = a2 + (m2 | 4) | 0; + k[p2 >> 2] = k[p2 >> 2] | 1; + Ul(a2 + b2 | 0, n2); + return a2 | 0; + } + return 0; + } + function Ul(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + q2 = a2 + b2 | 0; + c2 = k[a2 + 4 >> 2] | 0; + do + if (!(c2 & 1)) { + j2 = k[a2 >> 2] | 0; + if (!(c2 & 3)) + return; + n2 = a2 + (0 - j2) | 0; + m2 = j2 + b2 | 0; + i3 = k[10222] | 0; + if (n2 >>> 0 < i3 >>> 0) + Pa(); + if ((n2 | 0) == (k[10223] | 0)) { + d2 = a2 + (b2 + 4) | 0; + c2 = k[d2 >> 2] | 0; + if ((c2 & 3 | 0) != 3) { + t2 = n2; + g2 = m2; + break; + } + k[10220] = m2; + k[d2 >> 2] = c2 & -2; + k[a2 + (4 - j2) >> 2] = m2 | 1; + k[q2 >> 2] = m2; + return; + } + f2 = j2 >>> 3; + if (j2 >>> 0 < 256) { + e2 = k[a2 + (8 - j2) >> 2] | 0; + d2 = k[a2 + (12 - j2) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + if ((e2 | 0) != (c2 | 0)) { + if (e2 >>> 0 < i3 >>> 0) + Pa(); + if ((k[e2 + 12 >> 2] | 0) != (n2 | 0)) + Pa(); + } + if ((d2 | 0) == (e2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + t2 = n2; + g2 = m2; + break; + } + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < i3 >>> 0) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (n2 | 0)) + h2 = c2; + else + Pa(); + } else + h2 = d2 + 8 | 0; + k[e2 + 12 >> 2] = d2; + k[h2 >> 2] = e2; + t2 = n2; + g2 = m2; + break; + } + h2 = k[a2 + (24 - j2) >> 2] | 0; + e2 = k[a2 + (12 - j2) >> 2] | 0; + do + if ((e2 | 0) == (n2 | 0)) { + e2 = 16 - j2 | 0; + d2 = a2 + (e2 + 4) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = a2 + e2 | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + l2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < i3 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + l2 = c2; + break; + } + } else { + f2 = k[a2 + (8 - j2) >> 2] | 0; + if (f2 >>> 0 < i3 >>> 0) + Pa(); + c2 = f2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (n2 | 0)) + Pa(); + d2 = e2 + 8 | 0; + if ((k[d2 >> 2] | 0) == (n2 | 0)) { + k[c2 >> 2] = e2; + k[d2 >> 2] = f2; + l2 = e2; + break; + } else + Pa(); + } + while (0); + if (h2) { + c2 = k[a2 + (28 - j2) >> 2] | 0; + d2 = 41176 + (c2 << 2) | 0; + if ((n2 | 0) == (k[d2 >> 2] | 0)) { + k[d2 >> 2] = l2; + if (!l2) { + k[10219] = k[10219] & ~(1 << c2); + t2 = n2; + g2 = m2; + break; + } + } else { + if (h2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + c2 = h2 + 16 | 0; + if ((k[c2 >> 2] | 0) == (n2 | 0)) + k[c2 >> 2] = l2; + else + k[h2 + 20 >> 2] = l2; + if (!l2) { + t2 = n2; + g2 = m2; + break; + } + } + e2 = k[10222] | 0; + if (l2 >>> 0 < e2 >>> 0) + Pa(); + k[l2 + 24 >> 2] = h2; + c2 = 16 - j2 | 0; + d2 = k[a2 + c2 >> 2] | 0; + do + if (d2) + if (d2 >>> 0 < e2 >>> 0) + Pa(); + else { + k[l2 + 16 >> 2] = d2; + k[d2 + 24 >> 2] = l2; + break; + } + while (0); + c2 = k[a2 + (c2 + 4) >> 2] | 0; + if (c2) + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[l2 + 20 >> 2] = c2; + k[c2 + 24 >> 2] = l2; + t2 = n2; + g2 = m2; + break; + } + else { + t2 = n2; + g2 = m2; + } + } else { + t2 = n2; + g2 = m2; + } + } else { + t2 = a2; + g2 = b2; + } + while (0); + i3 = k[10222] | 0; + if (q2 >>> 0 < i3 >>> 0) + Pa(); + c2 = a2 + (b2 + 4) | 0; + d2 = k[c2 >> 2] | 0; + if (!(d2 & 2)) { + if ((q2 | 0) == (k[10224] | 0)) { + s2 = (k[10221] | 0) + g2 | 0; + k[10221] = s2; + k[10224] = t2; + k[t2 + 4 >> 2] = s2 | 1; + if ((t2 | 0) != (k[10223] | 0)) + return; + k[10223] = 0; + k[10220] = 0; + return; + } + if ((q2 | 0) == (k[10223] | 0)) { + s2 = (k[10220] | 0) + g2 | 0; + k[10220] = s2; + k[10223] = t2; + k[t2 + 4 >> 2] = s2 | 1; + k[t2 + s2 >> 2] = s2; + return; + } + g2 = (d2 & -8) + g2 | 0; + f2 = d2 >>> 3; + do + if (d2 >>> 0 >= 256) { + h2 = k[a2 + (b2 + 24) >> 2] | 0; + e2 = k[a2 + (b2 + 12) >> 2] | 0; + do + if ((e2 | 0) == (q2 | 0)) { + d2 = a2 + (b2 + 20) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + d2 = a2 + (b2 + 16) | 0; + c2 = k[d2 >> 2] | 0; + if (!c2) { + p2 = 0; + break; + } + } + while (1) { + e2 = c2 + 20 | 0; + f2 = k[e2 >> 2] | 0; + if (f2) { + c2 = f2; + d2 = e2; + continue; + } + e2 = c2 + 16 | 0; + f2 = k[e2 >> 2] | 0; + if (!f2) + break; + else { + c2 = f2; + d2 = e2; + } + } + if (d2 >>> 0 < i3 >>> 0) + Pa(); + else { + k[d2 >> 2] = 0; + p2 = c2; + break; + } + } else { + f2 = k[a2 + (b2 + 8) >> 2] | 0; + if (f2 >>> 0 < i3 >>> 0) + Pa(); + c2 = f2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (q2 | 0)) + Pa(); + d2 = e2 + 8 | 0; + if ((k[d2 >> 2] | 0) == (q2 | 0)) { + k[c2 >> 2] = e2; + k[d2 >> 2] = f2; + p2 = e2; + break; + } else + Pa(); + } + while (0); + if (h2) { + c2 = k[a2 + (b2 + 28) >> 2] | 0; + d2 = 41176 + (c2 << 2) | 0; + if ((q2 | 0) == (k[d2 >> 2] | 0)) { + k[d2 >> 2] = p2; + if (!p2) { + k[10219] = k[10219] & ~(1 << c2); + break; + } + } else { + if (h2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + c2 = h2 + 16 | 0; + if ((k[c2 >> 2] | 0) == (q2 | 0)) + k[c2 >> 2] = p2; + else + k[h2 + 20 >> 2] = p2; + if (!p2) + break; + } + d2 = k[10222] | 0; + if (p2 >>> 0 < d2 >>> 0) + Pa(); + k[p2 + 24 >> 2] = h2; + c2 = k[a2 + (b2 + 16) >> 2] | 0; + do + if (c2) + if (c2 >>> 0 < d2 >>> 0) + Pa(); + else { + k[p2 + 16 >> 2] = c2; + k[c2 + 24 >> 2] = p2; + break; + } + while (0); + c2 = k[a2 + (b2 + 20) >> 2] | 0; + if (c2) + if (c2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + k[p2 + 20 >> 2] = c2; + k[c2 + 24 >> 2] = p2; + break; + } + } + } else { + e2 = k[a2 + (b2 + 8) >> 2] | 0; + d2 = k[a2 + (b2 + 12) >> 2] | 0; + c2 = 40912 + (f2 << 1 << 2) | 0; + if ((e2 | 0) != (c2 | 0)) { + if (e2 >>> 0 < i3 >>> 0) + Pa(); + if ((k[e2 + 12 >> 2] | 0) != (q2 | 0)) + Pa(); + } + if ((d2 | 0) == (e2 | 0)) { + k[10218] = k[10218] & ~(1 << f2); + break; + } + if ((d2 | 0) != (c2 | 0)) { + if (d2 >>> 0 < i3 >>> 0) + Pa(); + c2 = d2 + 8 | 0; + if ((k[c2 >> 2] | 0) == (q2 | 0)) + o2 = c2; + else + Pa(); + } else + o2 = d2 + 8 | 0; + k[e2 + 12 >> 2] = d2; + k[o2 >> 2] = e2; + } + while (0); + k[t2 + 4 >> 2] = g2 | 1; + k[t2 + g2 >> 2] = g2; + if ((t2 | 0) == (k[10223] | 0)) { + k[10220] = g2; + return; + } + } else { + k[c2 >> 2] = d2 & -2; + k[t2 + 4 >> 2] = g2 | 1; + k[t2 + g2 >> 2] = g2; + } + c2 = g2 >>> 3; + if (g2 >>> 0 < 256) { + d2 = c2 << 1; + f2 = 40912 + (d2 << 2) | 0; + e2 = k[10218] | 0; + c2 = 1 << c2; + if (e2 & c2) { + c2 = 40912 + (d2 + 2 << 2) | 0; + d2 = k[c2 >> 2] | 0; + if (d2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + else { + r2 = c2; + s2 = d2; + } + } else { + k[10218] = e2 | c2; + r2 = 40912 + (d2 + 2 << 2) | 0; + s2 = f2; + } + k[r2 >> 2] = t2; + k[s2 + 12 >> 2] = t2; + k[t2 + 8 >> 2] = s2; + k[t2 + 12 >> 2] = f2; + return; + } + c2 = g2 >>> 8; + if (c2) + if (g2 >>> 0 > 16777215) + f2 = 31; + else { + r2 = (c2 + 1048320 | 0) >>> 16 & 8; + s2 = c2 << r2; + q2 = (s2 + 520192 | 0) >>> 16 & 4; + s2 = s2 << q2; + f2 = (s2 + 245760 | 0) >>> 16 & 2; + f2 = 14 - (q2 | r2 | f2) + (s2 << f2 >>> 15) | 0; + f2 = g2 >>> (f2 + 7 | 0) & 1 | f2 << 1; + } + else + f2 = 0; + c2 = 41176 + (f2 << 2) | 0; + k[t2 + 28 >> 2] = f2; + k[t2 + 20 >> 2] = 0; + k[t2 + 16 >> 2] = 0; + d2 = k[10219] | 0; + e2 = 1 << f2; + if (!(d2 & e2)) { + k[10219] = d2 | e2; + k[c2 >> 2] = t2; + k[t2 + 24 >> 2] = c2; + k[t2 + 12 >> 2] = t2; + k[t2 + 8 >> 2] = t2; + return; + } + c2 = k[c2 >> 2] | 0; + a: + do + if ((k[c2 + 4 >> 2] & -8 | 0) != (g2 | 0)) { + f2 = g2 << ((f2 | 0) == 31 ? 0 : 25 - (f2 >>> 1) | 0); + while (1) { + d2 = c2 + 16 + (f2 >>> 31 << 2) | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + break; + if ((k[e2 + 4 >> 2] & -8 | 0) == (g2 | 0)) { + c2 = e2; + break a; + } else { + f2 = f2 << 1; + c2 = e2; + } + } + if (d2 >>> 0 < (k[10222] | 0) >>> 0) + Pa(); + k[d2 >> 2] = t2; + k[t2 + 24 >> 2] = c2; + k[t2 + 12 >> 2] = t2; + k[t2 + 8 >> 2] = t2; + return; + } + while (0); + d2 = c2 + 8 | 0; + e2 = k[d2 >> 2] | 0; + s2 = k[10222] | 0; + if (!(e2 >>> 0 >= s2 >>> 0 & c2 >>> 0 >= s2 >>> 0)) + Pa(); + k[e2 + 12 >> 2] = t2; + k[d2 >> 2] = t2; + k[t2 + 8 >> 2] = e2; + k[t2 + 12 >> 2] = c2; + k[t2 + 24 >> 2] = 0; + return; + } + function Vl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = k[9321] | 0; + Zl(42048, d2, 42104); + k[10342] = 42892; + k[10344] = 42912; + k[10343] = 0; + a2 = k[10720] | 0; + x = 0; + ra(62, 41368 + a2 | 0, 42048); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + qn(41376); + fb(f2 | 0); + } + k[41368 + (a2 + 72) >> 2] = 0; + k[41368 + (a2 + 76) >> 2] = -1; + e2 = k[9322] | 0; + _l(42152, e2, 42112); + k[10364] = 42972; + k[10365] = 42992; + c2 = k[10740] | 0; + x = 0; + ra(62, 41456 + c2 | 0, 42152); + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + qn(41460); + fb(f2 | 0); + } + a2 = c2 + 72 | 0; + k[41456 + a2 >> 2] = 0; + b2 = c2 + 76 | 0; + k[41456 + b2 >> 2] = -1; + f2 = k[9320] | 0; + _l(42200, f2, 42120); + k[10385] = 42972; + k[10386] = 42992; + x = 0; + ra(62, 41540 + c2 | 0, 42200); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + qn(41544); + fb(g2 | 0); + } + k[41540 + a2 >> 2] = 0; + k[41540 + b2 >> 2] = -1; + g2 = k[41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + k[10406] = 42972; + k[10407] = 42992; + x = 0; + ra(62, 41624 + c2 | 0, g2 | 0); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + qn(41628); + fb(g2 | 0); + } + k[41624 + a2 >> 2] = 0; + k[41624 + b2 >> 2] = -1; + k[41368 + ((k[(k[10342] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41456; + a2 = 41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 4) | 0; + k[a2 >> 2] = k[a2 >> 2] | 8192; + k[41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41456; + $l(42248, d2, 42128); + k[10427] = 42932; + k[10429] = 42952; + k[10428] = 0; + a2 = k[10730] | 0; + x = 0; + ra(62, 41708 + a2 | 0, 42248); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41716); + fb(g2 | 0); + } + k[41708 + (a2 + 72) >> 2] = 0; + k[41708 + (a2 + 76) >> 2] = -1; + am(42304, e2, 42136); + k[10449] = 43012; + k[10450] = 43032; + c2 = k[10750] | 0; + x = 0; + ra(62, 41796 + c2 | 0, 42304); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41800); + fb(g2 | 0); + } + a2 = c2 + 72 | 0; + k[41796 + a2 >> 2] = 0; + b2 = c2 + 76 | 0; + k[41796 + b2 >> 2] = -1; + am(42352, f2, 42144); + k[10470] = 43012; + k[10471] = 43032; + x = 0; + ra(62, 41880 + c2 | 0, 42352); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41884); + fb(g2 | 0); + } + k[41880 + a2 >> 2] = 0; + k[41880 + b2 >> 2] = -1; + g2 = k[41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + k[10491] = 43012; + k[10492] = 43032; + x = 0; + ra(62, 41964 + c2 | 0, g2 | 0); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + vn(41968); + fb(g2 | 0); + } else { + k[41964 + a2 >> 2] = 0; + k[41964 + b2 >> 2] = -1; + k[41708 + ((k[(k[10427] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41796; + g2 = 41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 4) | 0; + k[g2 >> 2] = k[g2 >> 2] | 8192; + k[41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41796; + return; + } + } + function Wl(a2) { + a2 = a2 | 0; + x = 0; + ta(70, 41456) | 0; + a2 = x; + x = 0; + if (((!(a2 & 1) ? (x = 0, ta(70, 41624) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, ta(71, 41796) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, ta(71, 41964) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) + return; + a2 = Wa(0) | 0; + oc(a2); + } + function Xl() { + Vl(0); + tb(187, 56757, w | 0) | 0; + return; + } + function Yl() { + return; + } + function Zl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + zn(a2); + k[a2 >> 2] = 42600; + k[a2 + 32 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + k[a2 + 48 >> 2] = -1; + i2[a2 + 52 >> 0] = 0; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + ra(23, a2 | 0, d2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = Wa() | 0; + Qs(d2); + xn(a2); + fb(f2 | 0); + } else { + Qs(d2); + r = e2; + return; + } + } + function _l(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + zn(a2); + k[a2 >> 2] = 42536; + k[a2 + 32 >> 2] = b2; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + b2 = Aa(37, d2 | 0, 44280) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + Qs(d2); + xn(a2); + fb(f2 | 0); + } else { + Qs(d2); + k[a2 + 36 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + f2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = f2; + r = e2; + return; + } + } + function $l(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + On(a2); + k[a2 >> 2] = 42472; + k[a2 + 32 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + k[a2 + 48 >> 2] = -1; + i2[a2 + 52 >> 0] = 0; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + ra(21, a2 | 0, d2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + f2 = Wa() | 0; + Qs(d2); + Mn(a2); + fb(f2 | 0); + } else { + Qs(d2); + r = e2; + return; + } + } + function am(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2 + 4 | 0; + d2 = e2; + On(a2); + k[a2 >> 2] = 42408; + k[a2 + 32 >> 2] = b2; + Ps(f2, a2 + 4 | 0); + k[d2 >> 2] = k[f2 >> 2]; + x = 0; + b2 = Aa(37, d2 | 0, 44288) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + f2 = Wa() | 0; + Qs(d2); + Mn(a2); + fb(f2 | 0); + } else { + Qs(d2); + k[a2 + 36 >> 2] = b2; + k[a2 + 40 >> 2] = c2; + f2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = f2; + r = e2; + return; + } + } + function bm(a2) { + a2 = a2 | 0; + Mn(a2); + mj(a2); + return; + } + function cm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Ob[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](a2) | 0; + b2 = Ss(b2, 44288) | 0; + k[a2 + 36 >> 2] = b2; + b2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = b2; + return; + } + function dm(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2; + c2 = a2 + 36 | 0; + d2 = a2 + 40 | 0; + e2 = h2 + 8 | 0; + f2 = h2; + b2 = a2 + 32 | 0; + a: + while (1) { + a2 = k[c2 >> 2] | 0; + a2 = Wb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 31](a2, k[d2 >> 2] | 0, h2, e2, g2) | 0; + l2 = (k[g2 >> 2] | 0) - f2 | 0; + if ((gl(h2, 1, l2, k[b2 >> 2] | 0) | 0) != (l2 | 0)) { + a2 = -1; + break; + } + switch (a2 | 0) { + case 1: + break; + case 2: { + a2 = -1; + break a; + } + default: { + i3 = 4; + break a; + } + } + } + if ((i3 | 0) == 4) + a2 = ((dl(k[b2 >> 2] | 0) | 0) != 0) << 31 >> 31; + r = j2; + return a2 | 0; + } + function em(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + a: + do + if (!(i2[a2 + 44 >> 0] | 0)) + if ((c2 | 0) > 0) { + d2 = b2; + b2 = 0; + while (1) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, k[d2 >> 2] | 0) | 0) == -1) + break a; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + d2 = d2 + 4 | 0; + else + break; + } + } else + b2 = 0; + else + b2 = gl(b2, 4, c2, k[a2 + 32 >> 2] | 0) | 0; + while (0); + return b2 | 0; + } + function fm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + s2 = r; + r = r + 32 | 0; + o2 = s2 + 16 | 0; + c2 = s2 + 8 | 0; + n2 = s2 + 4 | 0; + m2 = s2; + p2 = (b2 | 0) == -1; + a: + do + if (!p2) { + k[c2 >> 2] = b2; + if (i2[a2 + 44 >> 0] | 0) + if ((gl(c2, 4, 1, k[a2 + 32 >> 2] | 0) | 0) == 1) { + q2 = 11; + break; + } else { + c2 = -1; + break; + } + k[n2 >> 2] = o2; + j2 = c2 + 4 | 0; + l2 = a2 + 36 | 0; + e2 = a2 + 40 | 0; + f2 = o2 + 8 | 0; + g2 = o2; + h2 = a2 + 32 | 0; + while (1) { + a2 = k[l2 >> 2] | 0; + a2 = ac[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](a2, k[e2 >> 2] | 0, c2, j2, m2, o2, f2, n2) | 0; + if ((k[m2 >> 2] | 0) == (c2 | 0)) { + c2 = -1; + break a; + } + if ((a2 | 0) == 3) + break; + d2 = (a2 | 0) == 1; + if (a2 >>> 0 >= 2) { + c2 = -1; + break a; + } + a2 = (k[n2 >> 2] | 0) - g2 | 0; + if ((gl(o2, 1, a2, k[h2 >> 2] | 0) | 0) != (a2 | 0)) { + c2 = -1; + break a; + } + if (d2) + c2 = d2 ? k[m2 >> 2] | 0 : c2; + else { + q2 = 11; + break a; + } + } + if ((gl(c2, 1, 1, k[h2 >> 2] | 0) | 0) != 1) + c2 = -1; + else + q2 = 11; + } else + q2 = 11; + while (0); + if ((q2 | 0) == 11) + c2 = p2 ? 0 : b2; + r = s2; + return c2 | 0; + } + function gm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = Ss(b2, 44288) | 0; + c2 = a2 + 36 | 0; + k[c2 >> 2] = d2; + d2 = Ob[k[(k[d2 >> 2] | 0) + 24 >> 2] & 127](d2) | 0; + b2 = a2 + 44 | 0; + k[b2 >> 2] = d2; + c2 = k[c2 >> 2] | 0; + c2 = (Ob[k[(k[c2 >> 2] | 0) + 28 >> 2] & 127](c2) | 0) & 1; + i2[a2 + 53 >> 0] = c2; + if ((k[b2 >> 2] | 0) > 8) + $r(56783); + return; + } + function hm(a2) { + a2 = a2 | 0; + Mn(a2); + mj(a2); + return; + } + function im(a2) { + a2 = a2 | 0; + return lm(a2, 0) | 0; + } + function jm(a2) { + a2 = a2 | 0; + return lm(a2, 1) | 0; + } + function km(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + j2 = l2 + 16 | 0; + h2 = l2 + 8 | 0; + d2 = l2 + 4 | 0; + e2 = l2; + f2 = a2 + 52 | 0; + c2 = (i2[f2 >> 0] | 0) != 0; + a: + do + if ((b2 | 0) == -1) + if (c2) + b2 = -1; + else { + b2 = k[a2 + 48 >> 2] | 0; + i2[f2 >> 0] = (b2 | 0) != -1 & 1; + } + else { + g2 = a2 + 48 | 0; + b: + do + if (c2) { + k[d2 >> 2] = k[g2 >> 2]; + c2 = k[a2 + 36 >> 2] | 0; + switch (ac[k[(k[c2 >> 2] | 0) + 12 >> 2] & 15](c2, k[a2 + 40 >> 2] | 0, d2, d2 + 4 | 0, e2, j2, j2 + 8 | 0, h2) | 0) { + case 1: + case 2: { + b2 = -1; + break a; + } + case 3: { + i2[j2 >> 0] = k[g2 >> 2]; + k[h2 >> 2] = j2 + 1; + break; + } + default: { + } + } + c2 = a2 + 32 | 0; + while (1) { + d2 = k[h2 >> 2] | 0; + if (d2 >>> 0 <= j2 >>> 0) + break b; + a2 = d2 + -1 | 0; + k[h2 >> 2] = a2; + if ((kl(i2[a2 >> 0] | 0, k[c2 >> 2] | 0) | 0) == -1) { + b2 = -1; + break a; + } + } + } + while (0); + k[g2 >> 2] = b2; + i2[f2 >> 0] = 1; + } + while (0); + r = l2; + return b2 | 0; + } + function lm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; + q2 = r; + r = r + 32 | 0; + p2 = q2 + 16 | 0; + o2 = q2 + 8 | 0; + l2 = q2 + 4 | 0; + m2 = q2; + e2 = a2 + 52 | 0; + a: + do + if (i2[e2 >> 0] | 0) { + d2 = a2 + 48 | 0; + c2 = k[d2 >> 2] | 0; + if (b2) { + k[d2 >> 2] = -1; + i2[e2 >> 0] = 0; + } + } else { + c2 = k[a2 + 44 >> 2] | 0; + c2 = (c2 | 0) > 1 ? c2 : 1; + n2 = a2 + 32 | 0; + if ((c2 | 0) > 0) { + e2 = 0; + do { + d2 = hl(k[n2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[p2 + e2 >> 0] = d2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (c2 | 0)); + } + b: + do + if (!(i2[a2 + 53 >> 0] | 0)) { + g2 = a2 + 40 | 0; + h2 = a2 + 36 | 0; + j2 = o2 + 4 | 0; + c: + while (1) { + s2 = k[g2 >> 2] | 0; + e2 = s2; + d2 = k[e2 >> 2] | 0; + e2 = k[e2 + 4 >> 2] | 0; + t2 = k[h2 >> 2] | 0; + f2 = p2 + c2 | 0; + switch (ac[k[(k[t2 >> 2] | 0) + 16 >> 2] & 15](t2, s2, p2, f2, l2, o2, j2, m2) | 0) { + case 2: { + c2 = -1; + break a; + } + case 3: + break c; + case 1: + break; + default: + break b; + } + t2 = k[g2 >> 2] | 0; + k[t2 >> 2] = d2; + k[t2 + 4 >> 2] = e2; + if ((c2 | 0) == 8) { + c2 = -1; + break a; + } + d2 = hl(k[n2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[f2 >> 0] = d2; + c2 = c2 + 1 | 0; + } + k[o2 >> 2] = i2[p2 >> 0]; + } else + k[o2 >> 2] = i2[p2 >> 0]; + while (0); + if (b2) { + c2 = k[o2 >> 2] | 0; + k[a2 + 48 >> 2] = c2; + break; + } + while (1) { + if ((c2 | 0) <= 0) + break; + c2 = c2 + -1 | 0; + if ((kl(i2[p2 + c2 >> 0] | 0, k[n2 >> 2] | 0) | 0) == -1) { + c2 = -1; + break a; + } + } + c2 = k[o2 >> 2] | 0; + } + while (0); + r = q2; + return c2 | 0; + } + function mm(a2) { + a2 = a2 | 0; + xn(a2); + mj(a2); + return; + } + function nm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Ob[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](a2) | 0; + b2 = Ss(b2, 44280) | 0; + k[a2 + 36 >> 2] = b2; + b2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; + i2[a2 + 44 >> 0] = b2; + return; + } + function om(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2 + 8 | 0; + g2 = j2; + c2 = a2 + 36 | 0; + d2 = a2 + 40 | 0; + e2 = h2 + 8 | 0; + f2 = h2; + b2 = a2 + 32 | 0; + a: + while (1) { + a2 = k[c2 >> 2] | 0; + a2 = Wb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 31](a2, k[d2 >> 2] | 0, h2, e2, g2) | 0; + l2 = (k[g2 >> 2] | 0) - f2 | 0; + if ((gl(h2, 1, l2, k[b2 >> 2] | 0) | 0) != (l2 | 0)) { + a2 = -1; + break; + } + switch (a2 | 0) { + case 1: + break; + case 2: { + a2 = -1; + break a; + } + default: { + i3 = 4; + break a; + } + } + } + if ((i3 | 0) == 4) + a2 = ((dl(k[b2 >> 2] | 0) | 0) != 0) << 31 >> 31; + r = j2; + return a2 | 0; + } + function pm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + a: + do + if (!(i2[a2 + 44 >> 0] | 0)) + if ((c2 | 0) > 0) { + d2 = b2; + b2 = 0; + while (1) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, l[d2 >> 0] | 0) | 0) == -1) + break a; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + d2 = d2 + 1 | 0; + else + break; + } + } else + b2 = 0; + else + b2 = gl(b2, 1, c2, k[a2 + 32 >> 2] | 0) | 0; + while (0); + return b2 | 0; + } + function qm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + s2 = r; + r = r + 32 | 0; + o2 = s2 + 16 | 0; + c2 = s2 + 8 | 0; + n2 = s2 + 4 | 0; + m2 = s2; + p2 = (b2 | 0) == -1; + a: + do + if (!p2) { + i2[c2 >> 0] = b2; + if (i2[a2 + 44 >> 0] | 0) + if ((gl(c2, 1, 1, k[a2 + 32 >> 2] | 0) | 0) == 1) { + q2 = 11; + break; + } else { + c2 = -1; + break; + } + k[n2 >> 2] = o2; + l2 = c2 + 1 | 0; + e2 = a2 + 36 | 0; + f2 = a2 + 40 | 0; + g2 = o2 + 8 | 0; + h2 = o2; + j2 = a2 + 32 | 0; + while (1) { + a2 = k[e2 >> 2] | 0; + a2 = ac[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](a2, k[f2 >> 2] | 0, c2, l2, m2, o2, g2, n2) | 0; + if ((k[m2 >> 2] | 0) == (c2 | 0)) { + c2 = -1; + break a; + } + if ((a2 | 0) == 3) + break; + d2 = (a2 | 0) == 1; + if (a2 >>> 0 >= 2) { + c2 = -1; + break a; + } + a2 = (k[n2 >> 2] | 0) - h2 | 0; + if ((gl(o2, 1, a2, k[j2 >> 2] | 0) | 0) != (a2 | 0)) { + c2 = -1; + break a; + } + if (d2) + c2 = d2 ? k[m2 >> 2] | 0 : c2; + else { + q2 = 11; + break a; + } + } + if ((gl(c2, 1, 1, k[j2 >> 2] | 0) | 0) != 1) + c2 = -1; + else + q2 = 11; + } else + q2 = 11; + while (0); + if ((q2 | 0) == 11) + c2 = p2 ? 0 : b2; + r = s2; + return c2 | 0; + } + function rm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = Ss(b2, 44280) | 0; + c2 = a2 + 36 | 0; + k[c2 >> 2] = d2; + d2 = Ob[k[(k[d2 >> 2] | 0) + 24 >> 2] & 127](d2) | 0; + b2 = a2 + 44 | 0; + k[b2 >> 2] = d2; + c2 = k[c2 >> 2] | 0; + c2 = (Ob[k[(k[c2 >> 2] | 0) + 28 >> 2] & 127](c2) | 0) & 1; + i2[a2 + 53 >> 0] = c2; + if ((k[b2 >> 2] | 0) > 8) + $r(56783); + return; + } + function sm(a2) { + a2 = a2 | 0; + xn(a2); + mj(a2); + return; + } + function tm(a2) { + a2 = a2 | 0; + return wm(a2, 0) | 0; + } + function um(a2) { + a2 = a2 | 0; + return wm(a2, 1) | 0; + } + function vm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + j2 = l2 + 16 | 0; + h2 = l2 + 4 | 0; + d2 = l2 + 8 | 0; + e2 = l2; + f2 = a2 + 52 | 0; + c2 = (i2[f2 >> 0] | 0) != 0; + a: + do + if ((b2 | 0) == -1) + if (c2) + b2 = -1; + else { + b2 = k[a2 + 48 >> 2] | 0; + i2[f2 >> 0] = (b2 | 0) != -1 & 1; + } + else { + g2 = a2 + 48 | 0; + b: + do + if (c2) { + i2[d2 >> 0] = k[g2 >> 2]; + c2 = k[a2 + 36 >> 2] | 0; + switch (ac[k[(k[c2 >> 2] | 0) + 12 >> 2] & 15](c2, k[a2 + 40 >> 2] | 0, d2, d2 + 1 | 0, e2, j2, j2 + 8 | 0, h2) | 0) { + case 1: + case 2: { + b2 = -1; + break a; + } + case 3: { + i2[j2 >> 0] = k[g2 >> 2]; + k[h2 >> 2] = j2 + 1; + break; + } + default: { + } + } + c2 = a2 + 32 | 0; + while (1) { + d2 = k[h2 >> 2] | 0; + if (d2 >>> 0 <= j2 >>> 0) + break b; + a2 = d2 + -1 | 0; + k[h2 >> 2] = a2; + if ((kl(i2[a2 >> 0] | 0, k[c2 >> 2] | 0) | 0) == -1) { + b2 = -1; + break a; + } + } + } + while (0); + k[g2 >> 2] = b2; + i2[f2 >> 0] = 1; + } + while (0); + r = l2; + return b2 | 0; + } + function wm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0; + s2 = r; + r = r + 32 | 0; + q2 = s2 + 16 | 0; + p2 = s2 + 8 | 0; + m2 = s2 + 4 | 0; + n2 = s2; + e2 = a2 + 52 | 0; + a: + do + if (i2[e2 >> 0] | 0) { + d2 = a2 + 48 | 0; + c2 = k[d2 >> 2] | 0; + if (b2) { + k[d2 >> 2] = -1; + i2[e2 >> 0] = 0; + } + } else { + c2 = k[a2 + 44 >> 2] | 0; + c2 = (c2 | 0) > 1 ? c2 : 1; + o2 = a2 + 32 | 0; + if ((c2 | 0) > 0) { + e2 = 0; + do { + d2 = hl(k[o2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[q2 + e2 >> 0] = d2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) < (c2 | 0)); + } + b: + do + if (!(i2[a2 + 53 >> 0] | 0)) { + g2 = a2 + 40 | 0; + h2 = a2 + 36 | 0; + j2 = p2 + 1 | 0; + c: + while (1) { + t2 = k[g2 >> 2] | 0; + e2 = t2; + d2 = k[e2 >> 2] | 0; + e2 = k[e2 + 4 >> 2] | 0; + u2 = k[h2 >> 2] | 0; + f2 = q2 + c2 | 0; + switch (ac[k[(k[u2 >> 2] | 0) + 16 >> 2] & 15](u2, t2, q2, f2, m2, p2, j2, n2) | 0) { + case 2: { + c2 = -1; + break a; + } + case 3: + break c; + case 1: + break; + default: + break b; + } + u2 = k[g2 >> 2] | 0; + k[u2 >> 2] = d2; + k[u2 + 4 >> 2] = e2; + if ((c2 | 0) == 8) { + c2 = -1; + break a; + } + d2 = hl(k[o2 >> 2] | 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + i2[f2 >> 0] = d2; + c2 = c2 + 1 | 0; + } + i2[p2 >> 0] = i2[q2 >> 0] | 0; + } else + i2[p2 >> 0] = i2[q2 >> 0] | 0; + while (0); + if (b2) { + c2 = i2[p2 >> 0] | 0; + k[a2 + 48 >> 2] = c2 & 255; + } else { + while (1) { + if ((c2 | 0) <= 0) + break; + c2 = c2 + -1 | 0; + if ((kl(l[q2 + c2 >> 0] | 0, k[o2 >> 2] | 0) | 0) == -1) { + c2 = -1; + break a; + } + } + c2 = i2[p2 >> 0] | 0; + } + c2 = c2 & 255; + } + while (0); + r = s2; + return c2 | 0; + } + function xm(a2) { + a2 = a2 | 0; + return; + } + function ym(a2) { + a2 = a2 | 0; + a2 = a2 + 4 | 0; + k[a2 >> 2] = (k[a2 >> 2] | 0) + 1; + return; + } + function zm(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = b2 + -1; + if (!b2) { + Lb[k[(k[a2 >> 2] | 0) + 8 >> 2] & 255](a2); + a2 = 1; + } else + a2 = 0; + return a2 | 0; + } + function Am(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 36868; + x = 0; + ra(86, a2 + 4 | 0, ((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0) | 0); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + fb(a2 | 0); + } else + return; + } + function Bm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = 36868; + x = 0; + ra(86, a2 + 4 | 0, b2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + fb(a2 | 0); + } else + return; + } + function Cm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = xl(b2) | 0; + c2 = lj(d2 + 13 | 0) | 0; + k[c2 >> 2] = d2; + k[c2 + 4 >> 2] = d2; + k[c2 + 8 >> 2] = 0; + c2 = c2 + 12 | 0; + vw(c2 | 0, b2 | 0, d2 + 1 | 0) | 0; + k[a2 >> 2] = c2; + return; + } + function Dm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + k[a2 >> 2] = c2; + k[a2 + 4 >> 2] = b2; + return; + } + function Em(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = r; + r = r + 16 | 0; + d2 = e2; + _b[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](d2, a2, b2); + if ((k[d2 + 4 >> 2] | 0) == (k[c2 + 4 >> 2] | 0)) + d2 = (k[d2 >> 2] | 0) == (k[c2 >> 2] | 0); + else + d2 = 0; + r = e2; + return d2 | 0; + } + function Fm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return ((k[b2 >> 2] | 0) == (c2 | 0) ? (k[b2 + 4 >> 2] | 0) == (a2 | 0) : 0) | 0; + } + function Gm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + b2 = nk(c2) | 0; + Qm(a2, b2, xl(b2) | 0); + return; + } + function Hm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = r; + r = r + 16 | 0; + f2 = g2; + d2 = k[b2 >> 2] | 0; + do + if (d2) { + e2 = i2[c2 >> 0] | 0; + if (!(e2 & 1)) + e2 = (e2 & 255) >>> 1; + else + e2 = k[c2 + 4 >> 2] | 0; + if (e2) { + Zm(c2, 56990) | 0; + d2 = k[b2 >> 2] | 0; + } + b2 = k[b2 + 4 >> 2] | 0; + _b[k[(k[b2 >> 2] | 0) + 24 >> 2] & 15](f2, b2, d2); + b2 = i2[f2 >> 0] | 0; + e2 = (b2 & 1) == 0; + x = 0; + va(30, c2 | 0, (e2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0) | 0, (e2 ? (b2 & 255) >>> 1 : k[f2 + 4 >> 2] | 0) | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + g2 = Wa() | 0; + Sm(f2); + fb(g2 | 0); + } else { + Sm(f2); + break; + } + } + while (0); + k[a2 >> 2] = k[c2 >> 2]; + k[a2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[a2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[c2 >> 2] = 0; + k[c2 + 4 >> 2] = 0; + k[c2 + 8 >> 2] = 0; + r = g2; + return; + } + function Im(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 32 | 0; + d2 = e2 + 12 | 0; + f2 = e2; + Qm(f2, c2, xl(c2) | 0); + x = 0; + Fa(10, d2 | 0, b2 | 0, f2 | 0); + c2 = x; + x = 0; + do + if (!(c2 & 1)) { + x = 0; + ra(87, a2 | 0, d2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + e2 = Wa() | 0; + Sm(d2); + d2 = e2; + break; + } else { + Sm(d2); + Sm(f2); + k[a2 >> 2] = 42664; + c2 = k[b2 + 4 >> 2] | 0; + f2 = a2 + 8 | 0; + k[f2 >> 2] = k[b2 >> 2]; + k[f2 + 4 >> 2] = c2; + r = e2; + return; + } + } else + d2 = Wa() | 0; + while (0); + Sm(f2); + fb(d2 | 0); + } + function Jm(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + f2 = r; + r = r + 48 | 0; + e2 = f2 + 24 | 0; + h2 = f2 + 16 | 0; + g2 = f2; + k[h2 >> 2] = b2; + k[h2 + 4 >> 2] = c2; + Pm(g2, d2); + x = 0; + Fa(10, e2 | 0, h2 | 0, g2 | 0); + d2 = x; + x = 0; + do + if (!(d2 & 1)) { + x = 0; + ra(87, a2 | 0, e2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa() | 0; + Sm(e2); + e2 = h2; + break; + } else { + Sm(e2); + Sm(g2); + k[a2 >> 2] = 42664; + k[a2 + 8 >> 2] = b2; + k[a2 + 12 >> 2] = c2; + r = f2; + return; + } + } else + e2 = Wa() | 0; + while (0); + Sm(g2); + fb(e2 | 0); + } + function Km(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + e2 = r; + r = r + 48 | 0; + d2 = e2 + 24 | 0; + g2 = e2 + 16 | 0; + f2 = e2; + k[g2 >> 2] = b2; + k[g2 + 4 >> 2] = c2; + Qm(f2, 58898, 0); + x = 0; + Fa(10, d2 | 0, g2 | 0, f2 | 0); + g2 = x; + x = 0; + do + if (!(g2 & 1)) { + x = 0; + ra(87, a2 | 0, d2 | 0); + g2 = x; + x = 0; + if (g2 & 1) { + g2 = Wa() | 0; + Sm(d2); + d2 = g2; + break; + } else { + Sm(d2); + Sm(f2); + k[a2 >> 2] = 42664; + k[a2 + 8 >> 2] = b2; + k[a2 + 12 >> 2] = c2; + r = e2; + return; + } + } else + d2 = Wa() | 0; + while (0); + Sm(f2); + fb(d2 | 0); + } + function Lm(a2) { + a2 = a2 | 0; + wj(a2); + return; + } + function Mm(a2) { + a2 = a2 | 0; + wj(a2); + mj(a2); + return; + } + function Nm(a2) { + a2 = a2 | 0; + return; + } + function Om(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + Ab(42676) | 0; + if ((k[a2 >> 2] | 0) == 1) + do + Ma(42704, 42676) | 0; + while ((k[a2 >> 2] | 0) == 1); + do + if (!(k[a2 >> 2] | 0)) { + k[a2 >> 2] = 1; + x = 0; + ta(72, 42676) | 0; + d2 = x; + x = 0; + if ((((!(d2 & 1) ? (x = 0, qa(c2 | 0, b2 | 0), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(73, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[a2 >> 2] = -1, x = 0, ta(72, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(74, 42704) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) + break; + d2 = Wa(0) | 0; + cb(d2 | 0) | 0; + x = 0; + ta(73, 42676) | 0; + d2 = x; + x = 0; + if ((!(d2 & 1) ? (k[a2 >> 2] = 0, x = 0, ta(72, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(74, 42704) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { + x = 0; + Ga(5); + x = 0; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + d2 = x; + x = 0; + if (d2 & 1) { + d2 = Wa(0) | 0; + oc(d2); + } else + fb(b2 | 0); + } else + lb(42676) | 0; + while (0); + return; + } + function Pm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (!(i2[b2 >> 0] & 1)) { + k[a2 >> 2] = k[b2 >> 2]; + k[a2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[a2 + 8 >> 2] = k[b2 + 8 >> 2]; + } else + Qm(a2, k[b2 + 8 >> 2] | 0, k[b2 + 4 >> 2] | 0); + return; + } + function Qm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (c2 >>> 0 > 4294967279) + ij(a2); + if (c2 >>> 0 < 11) { + i2[a2 >> 0] = c2 << 1; + a2 = a2 + 1 | 0; + } else { + e2 = c2 + 16 & -16; + d2 = lj(e2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = c2; + a2 = d2; + } + vw(a2 | 0, b2 | 0, c2 | 0) | 0; + i2[a2 + c2 >> 0] = 0; + return; + } + function Rm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (b2 >>> 0 > 4294967279) + ij(a2); + if (b2 >>> 0 < 11) { + i2[a2 >> 0] = b2 << 1; + a2 = a2 + 1 | 0; + } else { + e2 = b2 + 16 & -16; + d2 = lj(e2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = b2; + a2 = d2; + } + sw(a2 | 0, c2 | 0, b2 | 0) | 0; + i2[a2 + b2 >> 0] = 0; + return; + } + function Sm(a2) { + a2 = a2 | 0; + if (i2[a2 >> 0] & 1) + mj(k[a2 + 8 >> 2] | 0); + return; + } + function Tm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + if ((a2 | 0) != (b2 | 0)) { + c2 = i2[b2 >> 0] | 0; + d2 = (c2 & 1) == 0; + Vm(a2, d2 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, d2 ? (c2 & 255) >>> 1 : k[b2 + 4 >> 2] | 0) | 0; + } + return a2 | 0; + } + function Um(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return Vm(a2, b2, xl(b2) | 0) | 0; + } + function Vm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + f2 = 10; + else { + d2 = k[a2 >> 2] | 0; + f2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + e2 = (d2 & 1) == 0; + do + if (f2 >>> 0 >= c2 >>> 0) { + if (e2) + d2 = a2 + 1 | 0; + else + d2 = k[a2 + 8 >> 2] | 0; + xw(d2 | 0, b2 | 0, c2 | 0) | 0; + i2[d2 + c2 >> 0] = 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = c2 << 1; + break; + } else { + k[a2 + 4 >> 2] = c2; + break; + } + } else { + if (e2) + d2 = (d2 & 255) >>> 1; + else + d2 = k[a2 + 4 >> 2] | 0; + an(a2, f2, c2 - f2 | 0, d2, 0, d2, c2, b2); + } + while (0); + return a2 | 0; + } + function Wm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + d2 = i2[a2 >> 0] | 0; + e2 = (d2 & 1) == 0; + if (e2) + d2 = (d2 & 255) >>> 1; + else + d2 = k[a2 + 4 >> 2] | 0; + do + if (d2 >>> 0 >= b2 >>> 0) + if (e2) { + i2[a2 + 1 + b2 >> 0] = 0; + i2[a2 >> 0] = b2 << 1; + break; + } else { + i2[(k[a2 + 8 >> 2] | 0) + b2 >> 0] = 0; + k[a2 + 4 >> 2] = b2; + break; + } + else + Xm(a2, b2 - d2 | 0, c2) | 0; + while (0); + return; + } + function Xm(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + if (b2) { + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + e2 = 10; + else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + if (!(d2 & 1)) + f2 = (d2 & 255) >>> 1; + else + f2 = k[a2 + 4 >> 2] | 0; + if ((e2 - f2 | 0) >>> 0 < b2 >>> 0) { + bn(a2, e2, b2 - e2 + f2 | 0, f2, f2, 0, 0); + d2 = i2[a2 >> 0] | 0; + } + if (!(d2 & 1)) + e2 = a2 + 1 | 0; + else + e2 = k[a2 + 8 >> 2] | 0; + sw(e2 + f2 | 0, c2 | 0, b2 | 0) | 0; + d2 = f2 + b2 | 0; + if (!(i2[a2 >> 0] & 1)) + i2[a2 >> 0] = d2 << 1; + else + k[a2 + 4 >> 2] = d2; + i2[e2 + d2 >> 0] = 0; + } + return a2 | 0; + } + function Ym(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + if (b2 >>> 0 > 4294967279) + ij(a2); + c2 = i2[a2 >> 0] | 0; + if (!(c2 & 1)) + d2 = 10; + else { + c2 = k[a2 >> 2] | 0; + d2 = (c2 & -2) + -1 | 0; + c2 = c2 & 255; + } + if (!(c2 & 1)) + h2 = (c2 & 255) >>> 1; + else + h2 = k[a2 + 4 >> 2] | 0; + b2 = h2 >>> 0 > b2 >>> 0 ? h2 : b2; + if (b2 >>> 0 < 11) + g2 = 10; + else + g2 = (b2 + 16 & -16) + -1 | 0; + a: + do + if ((g2 | 0) != (d2 | 0)) { + do + if ((g2 | 0) != 10) { + b2 = g2 + 1 | 0; + if (g2 >>> 0 <= d2 >>> 0) { + x = 0; + b2 = ta(67, b2 | 0) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + a2 = Wa(0) | 0; + cb(a2 | 0) | 0; + eb(); + break a; + } + } else + b2 = lj(b2) | 0; + if (!(c2 & 1)) { + d2 = 1; + e2 = a2 + 1 | 0; + f2 = 0; + break; + } else { + d2 = 1; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + break; + } + } else { + b2 = a2 + 1 | 0; + d2 = 0; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + } + while (0); + if (!(c2 & 1)) + c2 = (c2 & 255) >>> 1; + else + c2 = k[a2 + 4 >> 2] | 0; + vw(b2 | 0, e2 | 0, c2 + 1 | 0) | 0; + if (f2) + mj(e2); + if (d2) { + k[a2 >> 2] = g2 + 1 | 1; + k[a2 + 4 >> 2] = h2; + k[a2 + 8 >> 2] = b2; + break; + } else { + i2[a2 >> 0] = h2 << 1; + break; + } + } + while (0); + return; + } + function Zm(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return $m(a2, b2, xl(b2) | 0) | 0; + } + function _m(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + c2 = i2[a2 >> 0] | 0; + d2 = (c2 & 1) != 0; + if (d2) { + e2 = (k[a2 >> 2] & -2) + -1 | 0; + f2 = k[a2 + 4 >> 2] | 0; + } else { + e2 = 10; + f2 = (c2 & 255) >>> 1; + } + if ((f2 | 0) == (e2 | 0)) { + bn(a2, e2, 1, e2, e2, 0, 0); + if (!(i2[a2 >> 0] & 1)) + e2 = 7; + else + e2 = 8; + } else if (d2) + e2 = 8; + else + e2 = 7; + if ((e2 | 0) == 7) { + i2[a2 >> 0] = (f2 << 1) + 2; + c2 = a2 + 1 | 0; + d2 = f2 + 1 | 0; + } else if ((e2 | 0) == 8) { + c2 = k[a2 + 8 >> 2] | 0; + d2 = f2 + 1 | 0; + k[a2 + 4 >> 2] = d2; + } + i2[c2 + f2 >> 0] = b2; + i2[c2 + d2 >> 0] = 0; + return; + } + function $m(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + e2 = 10; + else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + if (!(d2 & 1)) + f2 = (d2 & 255) >>> 1; + else + f2 = k[a2 + 4 >> 2] | 0; + if ((e2 - f2 | 0) >>> 0 >= c2 >>> 0) { + if (c2) { + if (!(d2 & 1)) + e2 = a2 + 1 | 0; + else + e2 = k[a2 + 8 >> 2] | 0; + vw(e2 + f2 | 0, b2 | 0, c2 | 0) | 0; + d2 = f2 + c2 | 0; + if (!(i2[a2 >> 0] & 1)) + i2[a2 >> 0] = d2 << 1; + else + k[a2 + 4 >> 2] = d2; + i2[e2 + d2 >> 0] = 0; + } + } else + an(a2, e2, c2 - e2 + f2 | 0, f2, f2, 0, c2, b2); + return a2 | 0; + } + function an(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0; + if ((-18 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + m2 = a2 + 1 | 0; + else + m2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 2147483623) { + j2 = c2 + b2 | 0; + l2 = b2 << 1; + j2 = j2 >>> 0 < l2 >>> 0 ? l2 : j2; + j2 = j2 >>> 0 < 11 ? 11 : j2 + 16 & -16; + } else + j2 = -17; + l2 = lj(j2) | 0; + if (e2) + vw(l2 | 0, m2 | 0, e2 | 0) | 0; + if (g2) + vw(l2 + e2 | 0, h2 | 0, g2 | 0) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + vw(l2 + (g2 + e2) | 0, m2 + (f2 + e2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 10) + mj(m2); + k[a2 + 8 >> 2] = l2; + k[a2 >> 2] = j2 | 1; + b2 = c2 + g2 | 0; + k[a2 + 4 >> 2] = b2; + i2[l2 + b2 >> 0] = 0; + return; + } + function bn(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0; + if ((-17 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + l2 = a2 + 1 | 0; + else + l2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 2147483623) { + h2 = c2 + b2 | 0; + j2 = b2 << 1; + h2 = h2 >>> 0 < j2 >>> 0 ? j2 : h2; + h2 = h2 >>> 0 < 11 ? 11 : h2 + 16 & -16; + } else + h2 = -17; + j2 = lj(h2) | 0; + if (e2) + vw(j2 | 0, l2 | 0, e2 | 0) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + vw(j2 + (g2 + e2) | 0, l2 + (f2 + e2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 10) + mj(l2); + k[a2 + 8 >> 2] = j2; + k[a2 >> 2] = h2 | 1; + return; + } + function cn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (c2 >>> 0 > 1073741807) + ij(a2); + if (c2 >>> 0 < 2) { + i2[a2 >> 0] = c2 << 1; + a2 = a2 + 4 | 0; + } else { + e2 = c2 + 4 & -4; + d2 = lj(e2 << 2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = c2; + a2 = d2; + } + Al(a2, b2, c2) | 0; + k[a2 + (c2 << 2) >> 2] = 0; + return; + } + function dn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (b2 >>> 0 > 1073741807) + ij(a2); + if (b2 >>> 0 < 2) { + i2[a2 >> 0] = b2 << 1; + a2 = a2 + 4 | 0; + } else { + e2 = b2 + 4 & -4; + d2 = lj(e2 << 2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = e2 | 1; + k[a2 + 4 >> 2] = b2; + a2 = d2; + } + Cl(a2, c2, b2) | 0; + k[a2 + (b2 << 2) >> 2] = 0; + return; + } + function en(a2) { + a2 = a2 | 0; + if (i2[a2 >> 0] & 1) + mj(k[a2 + 8 >> 2] | 0); + return; + } + function fn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return gn(a2, b2, zl(b2) | 0) | 0; + } + function gn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) + f2 = 1; + else { + d2 = k[a2 >> 2] | 0; + f2 = (d2 & -2) + -1 | 0; + d2 = d2 & 255; + } + e2 = (d2 & 1) == 0; + do + if (f2 >>> 0 >= c2 >>> 0) { + if (e2) + d2 = a2 + 4 | 0; + else + d2 = k[a2 + 8 >> 2] | 0; + Bl(d2, b2, c2) | 0; + k[d2 + (c2 << 2) >> 2] = 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = c2 << 1; + break; + } else { + k[a2 + 4 >> 2] = c2; + break; + } + } else { + if (e2) + d2 = (d2 & 255) >>> 1; + else + d2 = k[a2 + 4 >> 2] | 0; + kn(a2, f2, c2 - f2 | 0, d2, 0, d2, c2, b2); + } + while (0); + return a2 | 0; + } + function hn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + if (b2 >>> 0 > 1073741807) + ij(a2); + c2 = i2[a2 >> 0] | 0; + if (!(c2 & 1)) + d2 = 1; + else { + c2 = k[a2 >> 2] | 0; + d2 = (c2 & -2) + -1 | 0; + c2 = c2 & 255; + } + if (!(c2 & 1)) + h2 = (c2 & 255) >>> 1; + else + h2 = k[a2 + 4 >> 2] | 0; + b2 = h2 >>> 0 > b2 >>> 0 ? h2 : b2; + if (b2 >>> 0 < 2) + g2 = 1; + else + g2 = (b2 + 4 & -4) + -1 | 0; + a: + do + if ((g2 | 0) != (d2 | 0)) { + do + if ((g2 | 0) != 1) { + b2 = (g2 << 2) + 4 | 0; + if (g2 >>> 0 <= d2 >>> 0) { + x = 0; + b2 = ta(67, b2 | 0) | 0; + f2 = x; + x = 0; + if (f2 & 1) { + a2 = Wa(0) | 0; + cb(a2 | 0) | 0; + eb(); + break a; + } + } else + b2 = lj(b2) | 0; + if (!(c2 & 1)) { + d2 = 1; + e2 = a2 + 4 | 0; + f2 = 0; + break; + } else { + d2 = 1; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + break; + } + } else { + b2 = a2 + 4 | 0; + d2 = 0; + e2 = k[a2 + 8 >> 2] | 0; + f2 = 1; + } + while (0); + if (!(c2 & 1)) + c2 = (c2 & 255) >>> 1; + else + c2 = k[a2 + 4 >> 2] | 0; + Al(b2, e2, c2 + 1 | 0) | 0; + if (f2) + mj(e2); + if (d2) { + k[a2 >> 2] = g2 + 1 | 1; + k[a2 + 4 >> 2] = h2; + k[a2 + 8 >> 2] = b2; + break; + } else { + i2[a2 >> 0] = h2 << 1; + break; + } + } + while (0); + return; + } + function jn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + c2 = i2[a2 >> 0] | 0; + d2 = (c2 & 1) != 0; + if (d2) { + e2 = (k[a2 >> 2] & -2) + -1 | 0; + f2 = k[a2 + 4 >> 2] | 0; + } else { + e2 = 1; + f2 = (c2 & 255) >>> 1; + } + if ((f2 | 0) == (e2 | 0)) { + ln(a2, e2, 1, e2, e2, 0, 0); + if (!(i2[a2 >> 0] & 1)) + e2 = 7; + else + e2 = 8; + } else if (d2) + e2 = 8; + else + e2 = 7; + if ((e2 | 0) == 7) { + i2[a2 >> 0] = (f2 << 1) + 2; + c2 = a2 + 4 | 0; + d2 = f2 + 1 | 0; + } else if ((e2 | 0) == 8) { + c2 = k[a2 + 8 >> 2] | 0; + d2 = f2 + 1 | 0; + k[a2 + 4 >> 2] = d2; + } + k[c2 + (f2 << 2) >> 2] = b2; + k[c2 + (d2 << 2) >> 2] = 0; + return; + } + function kn(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0; + if ((1073741806 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + m2 = a2 + 4 | 0; + else + m2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 536870887) { + j2 = c2 + b2 | 0; + l2 = b2 << 1; + j2 = j2 >>> 0 < l2 >>> 0 ? l2 : j2; + j2 = j2 >>> 0 < 2 ? 2 : j2 + 4 & -4; + } else + j2 = 1073741807; + l2 = lj(j2 << 2) | 0; + if (e2) + Al(l2, m2, e2) | 0; + if (g2) + Al(l2 + (e2 << 2) | 0, h2, g2) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + Al(l2 + (g2 + e2 << 2) | 0, m2 + (f2 + e2 << 2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 1) + mj(m2); + k[a2 + 8 >> 2] = l2; + k[a2 >> 2] = j2 | 1; + b2 = c2 + g2 | 0; + k[a2 + 4 >> 2] = b2; + k[l2 + (b2 << 2) >> 2] = 0; + return; + } + function ln(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0; + if ((1073741807 - b2 | 0) >>> 0 < c2 >>> 0) + ij(a2); + if (!(i2[a2 >> 0] & 1)) + l2 = a2 + 4 | 0; + else + l2 = k[a2 + 8 >> 2] | 0; + if (b2 >>> 0 < 536870887) { + h2 = c2 + b2 | 0; + j2 = b2 << 1; + h2 = h2 >>> 0 < j2 >>> 0 ? j2 : h2; + h2 = h2 >>> 0 < 2 ? 2 : h2 + 4 & -4; + } else + h2 = 1073741807; + j2 = lj(h2 << 2) | 0; + if (e2) + Al(j2, l2, e2) | 0; + c2 = d2 - f2 | 0; + if ((c2 | 0) != (e2 | 0)) + Al(j2 + (g2 + e2 << 2) | 0, l2 + (f2 + e2 << 2) | 0, c2 - e2 | 0) | 0; + if ((b2 | 0) != 1) + mj(l2); + k[a2 + 8 >> 2] = j2; + k[a2 >> 2] = h2 | 1; + return; + } + function mn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + e2 = b2; + d2 = c2 - e2 | 0; + if (d2 >>> 0 > 4294967279) + ij(a2); + if (d2 >>> 0 < 11) { + i2[a2 >> 0] = d2 << 1; + f2 = a2 + 1 | 0; + } else { + g2 = d2 + 16 & -16; + f2 = lj(g2) | 0; + k[a2 + 8 >> 2] = f2; + k[a2 >> 2] = g2 | 1; + k[a2 + 4 >> 2] = d2; + } + a2 = c2 - e2 | 0; + if ((b2 | 0) != (c2 | 0)) { + d2 = f2; + while (1) { + i2[d2 >> 0] = i2[b2 >> 0] | 0; + b2 = b2 + 1 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 1 | 0; + } + } + i2[f2 + a2 >> 0] = 0; + return; + } + function nn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2; + d2 = c2 - f2 | 0; + e2 = d2 >> 2; + if (e2 >>> 0 > 1073741807) + ij(a2); + if (e2 >>> 0 < 2) { + i2[a2 >> 0] = d2 >>> 1; + a2 = a2 + 4 | 0; + } else { + g2 = e2 + 4 & -4; + d2 = lj(g2 << 2) | 0; + k[a2 + 8 >> 2] = d2; + k[a2 >> 2] = g2 | 1; + k[a2 + 4 >> 2] = e2; + a2 = d2; + } + e2 = (c2 - f2 | 0) >>> 2; + if ((b2 | 0) != (c2 | 0)) { + d2 = a2; + while (1) { + k[d2 >> 2] = k[b2 >> 2]; + b2 = b2 + 4 | 0; + if ((b2 | 0) == (c2 | 0)) + break; + else + d2 = d2 + 4 | 0; + } + } + k[a2 + (e2 << 2) >> 2] = 0; + return; + } + function on(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + c2 = r; + r = r + 16 | 0; + d2 = c2; + e2 = (k[a2 + 24 >> 2] | 0) == 0; + k[a2 + 16 >> 2] = e2 & 1 | b2; + if (!((e2 & 1 | b2) & k[a2 + 20 >> 2])) { + r = c2; + return; + } + b2 = Va(16) | 0; + Co() | 0; + k[d2 >> 2] = 1; + k[d2 + 4 >> 2] = 43112; + x = 0; + Fa(11, b2 | 0, 57437, d2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa() | 0; + Ua(b2 | 0); + fb(e2 | 0); + } else + ub(b2 | 0, 864, 112); + } + function pn(a2) { + a2 = a2 | 0; + var b2 = 0; + k[a2 >> 2] = 43068; + x = 0; + ra(88, a2 | 0, 0); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else { + Qs(a2 + 28 | 0); + Ql(k[a2 + 32 >> 2] | 0); + Ql(k[a2 + 36 >> 2] | 0); + Ql(k[a2 + 48 >> 2] | 0); + Ql(k[a2 + 60 >> 2] | 0); + return; + } + } + function qn(a2) { + a2 = a2 | 0; + pn(a2); + return; + } + function rn(a2) { + a2 = a2 | 0; + pn(a2); + mj(a2); + return; + } + function sn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + c2 = k[a2 + 40 >> 2] | 0; + d2 = a2 + 32 | 0; + e2 = a2 + 36 | 0; + if (c2) + do { + c2 = c2 + -1 | 0; + _b[k[(k[d2 >> 2] | 0) + (c2 << 2) >> 2] & 15](b2, a2, k[(k[e2 >> 2] | 0) + (c2 << 2) >> 2] | 0); + } while ((c2 | 0) != 0); + return; + } + function tn(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = r; + r = r + 16 | 0; + b2 = c2; + Ps(b2, a2 + 28 | 0); + r = c2; + return k[b2 >> 2] | 0; + } + function un(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + k[a2 + 24 >> 2] = b2; + k[a2 + 16 >> 2] = (b2 | 0) == 0 & 1; + k[a2 + 20 >> 2] = 0; + k[a2 + 4 >> 2] = 4098; + k[a2 + 12 >> 2] = 0; + k[a2 + 8 >> 2] = 6; + c2 = a2 + 28 | 0; + b2 = a2 + 32 | 0; + a2 = b2 + 40 | 0; + do { + k[b2 >> 2] = 0; + b2 = b2 + 4 | 0; + } while ((b2 | 0) < (a2 | 0)); + Os(c2); + return; + } + function vn(a2) { + a2 = a2 | 0; + pn(a2); + return; + } + function wn(a2) { + a2 = a2 | 0; + pn(a2); + mj(a2); + return; + } + function xn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42760; + Qs(a2 + 4 | 0); + return; + } + function yn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42760; + Qs(a2 + 4 | 0); + mj(a2); + return; + } + function zn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42760; + Os(a2 + 4 | 0); + a2 = a2 + 8 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 20 >> 2] = 0; + return; + } + function An(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function Bn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return a2 | 0; + } + function Cn(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function Dn(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function En(a2) { + a2 = a2 | 0; + return 0; + } + function Fn(a2) { + a2 = a2 | 0; + return 0; + } + function Gn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 12 | 0; + g2 = a2 + 16 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[f2 >> 2] = d2 + 1; + d2 = i2[d2 >> 0] | 0; + } else { + d2 = Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + if ((d2 | 0) == -1) + break a; + d2 = d2 & 255; + } + i2[e2 >> 0] = d2; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 1 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function Hn(a2) { + a2 = a2 | 0; + return -1; + } + function In(a2) { + a2 = a2 | 0; + var b2 = 0; + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) + a2 = -1; + else { + b2 = a2 + 12 | 0; + a2 = k[b2 >> 2] | 0; + k[b2 >> 2] = a2 + 1; + a2 = l[a2 >> 0] | 0; + } + return a2 | 0; + } + function Jn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function Kn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + f2 = a2 + 24 | 0; + g2 = a2 + 28 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, l[e2 >> 0] | 0) | 0) == -1) + break a; + } else { + h2 = i2[e2 >> 0] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = h2; + } + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 1 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function Ln(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function Mn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42824; + Qs(a2 + 4 | 0); + return; + } + function Nn(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42824; + Qs(a2 + 4 | 0); + mj(a2); + return; + } + function On(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 42824; + Os(a2 + 4 | 0); + a2 = a2 + 8 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 20 >> 2] = 0; + return; + } + function Pn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function Qn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return a2 | 0; + } + function Rn(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function Sn(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + b2 = a2; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + b2 = a2 + 8 | 0; + k[b2 >> 2] = -1; + k[b2 + 4 >> 2] = -1; + return; + } + function Tn(a2) { + a2 = a2 | 0; + return 0; + } + function Un(a2) { + a2 = a2 | 0; + return 0; + } + function Vn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = a2 + 12 | 0; + g2 = a2 + 16 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { + d2 = Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; + if ((d2 | 0) == -1) + break a; + } else { + k[f2 >> 2] = d2 + 4; + d2 = k[d2 >> 2] | 0; + } + k[e2 >> 2] = d2; + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 4 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function Wn(a2) { + a2 = a2 | 0; + return -1; + } + function Xn(a2) { + a2 = a2 | 0; + var b2 = 0; + if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) + a2 = -1; + else { + b2 = a2 + 12 | 0; + a2 = k[b2 >> 2] | 0; + k[b2 >> 2] = a2 + 4; + a2 = k[a2 >> 2] | 0; + } + return a2 | 0; + } + function Yn(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function Zn(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + f2 = a2 + 24 | 0; + g2 = a2 + 28 | 0; + a: + do + if ((c2 | 0) > 0) { + e2 = b2; + b2 = 0; + while (1) { + d2 = k[f2 >> 2] | 0; + if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { + if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, k[e2 >> 2] | 0) | 0) == -1) + break a; + } else { + h2 = k[e2 >> 2] | 0; + k[f2 >> 2] = d2 + 4; + k[d2 >> 2] = h2; + } + b2 = b2 + 1 | 0; + if ((b2 | 0) < (c2 | 0)) + e2 = e2 + 4 | 0; + else + break; + } + } else + b2 = 0; + while (0); + return b2 | 0; + } + function _n(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1; + } + function $n(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + return; + } + function ao(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); + return; + } + function bo(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + mj(a2); + return; + } + function co(a2) { + a2 = a2 | 0; + bo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function eo(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + d2 = r; + r = r + 16 | 0; + c2 = d2; + a: + do + if (k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { + x = 0; + ra(65, c2 | 0, a2 | 0); + b2 = x; + x = 0; + b: + do + if (b2 & 1) + b2 = Wa(0) | 0; + else { + do + if (i2[c2 >> 0] | 0) { + b2 = k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + e2 = x; + x = 0; + if (!(e2 & 1)) { + if ((b2 | 0) != -1) + break; + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + e2 | 0, k[a2 + (e2 + 16) >> 2] | 1 | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) + break; + } + b2 = Wa(0) | 0; + ro(c2); + break b; + } + while (0); + ro(c2); + break a; + } + while (0); + cb(b2 | 0) | 0; + x = 0; + qa(181, a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) { + eb(); + break; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else + fb(b2 | 0); + } + while (0); + r = d2; + return a2 | 0; + } + function fo(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = a2 + 16 | 0; + k[b2 >> 2] = k[b2 >> 2] | 1; + if (!(k[a2 + 20 >> 2] & 1)) + return; + else + vb(); + } + function go(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + return; + } + function ho(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); + return; + } + function io(a2) { + a2 = a2 | 0; + pn(a2 + 8 | 0); + mj(a2); + return; + } + function jo(a2) { + a2 = a2 | 0; + io(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function ko(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + d2 = r; + r = r + 16 | 0; + c2 = d2; + a: + do + if (k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { + x = 0; + ra(89, c2 | 0, a2 | 0); + b2 = x; + x = 0; + b: + do + if (b2 & 1) + b2 = Wa(0) | 0; + else { + do + if (i2[c2 >> 0] | 0) { + b2 = k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + e2 = x; + x = 0; + if (!(e2 & 1)) { + if ((b2 | 0) != -1) + break; + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + e2 | 0, k[a2 + (e2 + 16) >> 2] | 1 | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) + break; + } + b2 = Wa(0) | 0; + zo(c2); + break b; + } + while (0); + zo(c2); + break a; + } + while (0); + cb(b2 | 0) | 0; + x = 0; + qa(181, a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + e2 = x; + x = 0; + if (!(e2 & 1)) { + eb(); + break; + } + b2 = Wa() | 0; + x = 0; + Ga(3); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa(0) | 0; + oc(e2); + } else + fb(b2 | 0); + } + while (0); + r = d2; + return a2 | 0; + } + function lo(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return; + } + function mo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + return; + } + function no(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); + return; + } + function oo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + mj(a2); + return; + } + function po(a2) { + a2 = a2 | 0; + oo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function qo(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + i2[a2 >> 0] = 0; + k[a2 + 4 >> 2] = b2; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + if (!(k[b2 + (c2 + 16) >> 2] | 0)) { + c2 = k[b2 + (c2 + 72) >> 2] | 0; + if (c2) + eo(c2) | 0; + i2[a2 >> 0] = 1; + } + return; + } + function ro(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + a2 = a2 + 4 | 0; + c2 = k[a2 >> 2] | 0; + b2 = k[(k[c2 >> 2] | 0) + -12 >> 2] | 0; + do + if ((((k[c2 + (b2 + 24) >> 2] | 0) != 0 ? (k[c2 + (b2 + 16) >> 2] | 0) == 0 : 0) ? (k[c2 + (b2 + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(gb() | 0) : 0) { + b2 = k[a2 >> 2] | 0; + b2 = k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + c2 = x; + x = 0; + if (!(c2 & 1)) { + if ((b2 | 0) != -1) + break; + b2 = k[a2 >> 2] | 0; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, b2 + c2 | 0, k[b2 + (c2 + 16) >> 2] | 1 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) + break; + } + c2 = Wa(0) | 0; + cb(c2 | 0) | 0; + x = 0; + Ga(3); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + } + while (0); + return; + } + function so(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 32 | 0; + h2 = o2 + 20 | 0; + j2 = o2 + 16 | 0; + m2 = o2 + 8 | 0; + c2 = o2; + x = 0; + ra(65, m2 | 0, a2 | 0); + l2 = x; + x = 0; + a: + do + if (l2 & 1) { + c2 = Wa(0) | 0; + d2 = a2; + e2 = a2; + n2 = 19; + } else { + do + if (i2[m2 >> 0] | 0) { + l2 = tn(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + k[c2 >> 2] = l2; + x = 0; + l2 = Aa(37, c2 | 0, 43392) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + n2 = Wa(0) | 0; + Qs(c2); + c2 = n2; + } else { + Qs(c2); + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + g2 = k[a2 + (e2 + 24) >> 2] | 0; + d2 = a2 + e2 | 0; + e2 = a2 + (e2 + 76) | 0; + c2 = k[e2 >> 2] | 0; + do + if ((c2 | 0) == -1) { + c2 = tn(d2) | 0; + k[h2 >> 2] = c2; + x = 0; + c2 = Aa(37, h2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + Qs(h2); + c2 = f2 << 24 >> 24; + k[e2 >> 2] = c2; + n2 = 10; + break; + } + c2 = Wa(0) | 0; + Qs(h2); + } else + n2 = 10; + while (0); + if ((n2 | 0) == 10) { + p2 = k[(k[l2 >> 2] | 0) + 16 >> 2] | 0; + k[j2 >> 2] = g2; + x = 0; + k[h2 >> 2] = k[j2 >> 2]; + c2 = Ba(p2 | 0, l2 | 0, h2 | 0, d2 | 0, c2 & 255 | 0, b2 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + if (c2) + break; + p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) + break; + } + c2 = Wa(0) | 0; + } + } + ro(m2); + d2 = a2; + e2 = a2; + n2 = 19; + break a; + } + while (0); + ro(m2); + } + while (0); + do + if ((n2 | 0) == 19) { + cb(c2 | 0) | 0; + x = 0; + qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) { + eb(); + break; + } + c2 = Wa() | 0; + x = 0; + Ga(3); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa(0) | 0; + oc(p2); + } else + fb(c2 | 0); + } + while (0); + r = o2; + return a2 | 0; + } + function to(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 32 | 0; + h2 = o2 + 20 | 0; + j2 = o2 + 16 | 0; + m2 = o2 + 8 | 0; + c2 = o2; + x = 0; + ra(65, m2 | 0, a2 | 0); + l2 = x; + x = 0; + a: + do + if (l2 & 1) { + c2 = Wa(0) | 0; + d2 = a2; + e2 = a2; + n2 = 19; + } else { + do + if (i2[m2 >> 0] | 0) { + l2 = tn(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; + k[c2 >> 2] = l2; + x = 0; + l2 = Aa(37, c2 | 0, 43392) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + n2 = Wa(0) | 0; + Qs(c2); + c2 = n2; + } else { + Qs(c2); + e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + g2 = k[a2 + (e2 + 24) >> 2] | 0; + d2 = a2 + e2 | 0; + e2 = a2 + (e2 + 76) | 0; + c2 = k[e2 >> 2] | 0; + do + if ((c2 | 0) == -1) { + c2 = tn(d2) | 0; + k[h2 >> 2] = c2; + x = 0; + c2 = Aa(37, h2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + Qs(h2); + c2 = f2 << 24 >> 24; + k[e2 >> 2] = c2; + n2 = 10; + break; + } + c2 = Wa(0) | 0; + Qs(h2); + } else + n2 = 10; + while (0); + if ((n2 | 0) == 10) { + p2 = k[(k[l2 >> 2] | 0) + 24 >> 2] | 0; + k[j2 >> 2] = g2; + x = 0; + k[h2 >> 2] = k[j2 >> 2]; + c2 = Ba(p2 | 0, l2 | 0, h2 | 0, d2 | 0, c2 & 255 | 0, b2 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + if (c2) + break; + p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) + break; + } + c2 = Wa(0) | 0; + } + } + ro(m2); + d2 = a2; + e2 = a2; + n2 = 19; + break a; + } + while (0); + ro(m2); + } + while (0); + do + if ((n2 | 0) == 19) { + cb(c2 | 0) | 0; + x = 0; + qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); + p2 = x; + x = 0; + if (!(p2 & 1)) { + eb(); + break; + } + c2 = Wa() | 0; + x = 0; + Ga(3); + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa(0) | 0; + oc(p2); + } else + fb(c2 | 0); + } + while (0); + r = o2; + return a2 | 0; + } + function uo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + return; + } + function vo(a2) { + a2 = a2 | 0; + pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); + return; + } + function wo(a2) { + a2 = a2 | 0; + pn(a2 + 4 | 0); + mj(a2); + return; + } + function xo(a2) { + a2 = a2 | 0; + wo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); + return; + } + function yo(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + i2[a2 >> 0] = 0; + k[a2 + 4 >> 2] = b2; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + if (!(k[b2 + (c2 + 16) >> 2] | 0)) { + c2 = k[b2 + (c2 + 72) >> 2] | 0; + if (c2) + ko(c2) | 0; + i2[a2 >> 0] = 1; + } + return; + } + function zo(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + a2 = a2 + 4 | 0; + c2 = k[a2 >> 2] | 0; + b2 = k[(k[c2 >> 2] | 0) + -12 >> 2] | 0; + do + if ((((k[c2 + (b2 + 24) >> 2] | 0) != 0 ? (k[c2 + (b2 + 16) >> 2] | 0) == 0 : 0) ? (k[c2 + (b2 + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(gb() | 0) : 0) { + b2 = k[a2 >> 2] | 0; + b2 = k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; + x = 0; + b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; + c2 = x; + x = 0; + if (!(c2 & 1)) { + if ((b2 | 0) != -1) + break; + b2 = k[a2 >> 2] | 0; + c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; + x = 0; + ra(66, b2 + c2 | 0, k[b2 + (c2 + 16) >> 2] | 1 | 0); + c2 = x; + x = 0; + if (!(c2 & 1)) + break; + } + c2 = Wa(0) | 0; + cb(c2 | 0) | 0; + x = 0; + Ga(3); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + } + while (0); + return; + } + function Ao(a2) { + a2 = a2 | 0; + return 57453; + } + function Bo(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) != 1 & (c2 | 0) < 257) + Gm(a2, b2, c2); + else + Qm(a2, 57462, 35); + return; + } + function Co() { + if ((i2[1048] | 0) == 0 ? (Qa(1048) | 0) != 0 : 0) { + k[10778] = 43084; + tb(72, 43112, w | 0) | 0; + Ya(1048); + } + return 43112; + } + function Do(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + d2 = r; + r = r + 16 | 0; + e2 = d2 + 8 | 0; + f2 = d2; + h2 = c2; + g2 = k[h2 + 4 >> 2] | 0; + c2 = f2; + k[c2 >> 2] = k[h2 >> 2]; + k[c2 + 4 >> 2] = g2; + k[e2 >> 2] = k[f2 >> 2]; + k[e2 + 4 >> 2] = k[f2 + 4 >> 2]; + Im(a2, e2, b2); + k[a2 >> 2] = 43048; + r = d2; + return; + } + function Eo(a2) { + a2 = a2 | 0; + Lm(a2); + return; + } + function Fo(a2) { + a2 = a2 | 0; + Lm(a2); + mj(a2); + return; + } + function Go(a2) { + a2 = a2 | 0; + pn(a2); + mj(a2); + return; + } + function Ho(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Io(a2) { + a2 = a2 | 0; + return; + } + function Jo(a2) { + a2 = a2 | 0; + return; + } + function Ko(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Lo(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + a: + do + if ((d2 | 0) == (e2 | 0)) + g2 = 6; + else + while (1) { + if ((b2 | 0) == (c2 | 0)) { + b2 = -1; + break a; + } + a2 = i2[b2 >> 0] | 0; + f2 = i2[d2 >> 0] | 0; + if (a2 << 24 >> 24 < f2 << 24 >> 24) { + b2 = -1; + break a; + } + if (f2 << 24 >> 24 < a2 << 24 >> 24) { + b2 = 1; + break a; + } + b2 = b2 + 1 | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (e2 | 0)) { + g2 = 6; + break; + } + } + while (0); + if ((g2 | 0) == 6) + b2 = (b2 | 0) != (c2 | 0) & 1; + return b2 | 0; + } + function Mo(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + mn(a2, c2, d2); + return; + } + function No(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((b2 | 0) == (c2 | 0)) + a2 = 0; + else { + a2 = 0; + do { + a2 = (i2[b2 >> 0] | 0) + (a2 << 4) | 0; + d2 = a2 & -268435456; + a2 = (d2 >>> 24 | d2) ^ a2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (c2 | 0)); + } + return a2 | 0; + } + function Oo(a2) { + a2 = a2 | 0; + return; + } + function Po(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Qo(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + a: + do + if ((d2 | 0) == (e2 | 0)) + g2 = 6; + else + while (1) { + if ((b2 | 0) == (c2 | 0)) { + b2 = -1; + break a; + } + a2 = k[b2 >> 2] | 0; + f2 = k[d2 >> 2] | 0; + if ((a2 | 0) < (f2 | 0)) { + b2 = -1; + break a; + } + if ((f2 | 0) < (a2 | 0)) { + b2 = 1; + break a; + } + b2 = b2 + 4 | 0; + d2 = d2 + 4 | 0; + if ((d2 | 0) == (e2 | 0)) { + g2 = 6; + break; + } + } + while (0); + if ((g2 | 0) == 6) + b2 = (b2 | 0) != (c2 | 0) & 1; + return b2 | 0; + } + function Ro(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + nn(a2, c2, d2); + return; + } + function So(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((b2 | 0) == (c2 | 0)) + a2 = 0; + else { + a2 = 0; + do { + a2 = (k[b2 >> 2] | 0) + (a2 << 4) | 0; + d2 = a2 & -268435456; + a2 = (d2 >>> 24 | d2) ^ a2; + b2 = b2 + 4 | 0; + } while ((b2 | 0) != (c2 | 0)); + } + return a2 | 0; + } + function To(a2) { + a2 = a2 | 0; + return; + } + function Uo(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Vo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + q2 = r; + r = r + 64 | 0; + o2 = q2 + 56 | 0; + g2 = q2 + 52 | 0; + m2 = q2 + 48 | 0; + h2 = q2 + 44 | 0; + j2 = q2 + 40 | 0; + l2 = q2 + 36 | 0; + n2 = q2 + 32 | 0; + s2 = q2 + 8 | 0; + p2 = q2; + a: + do + if (!(k[d2 + 4 >> 2] & 1)) { + k[m2 >> 2] = -1; + s2 = k[(k[a2 >> 2] | 0) + 16 >> 2] | 0; + k[h2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[g2 >> 2] = k[h2 >> 2]; + k[o2 >> 2] = k[j2 >> 2]; + g2 = Nb[s2 & 63](a2, g2, o2, d2, e2, m2) | 0; + k[b2 >> 2] = g2; + switch (k[m2 >> 2] | 0) { + case 0: { + i2[f2 >> 0] = 0; + break a; + } + case 1: { + i2[f2 >> 0] = 1; + break a; + } + default: { + i2[f2 >> 0] = 1; + k[e2 >> 2] = 4; + break a; + } + } + } else { + g2 = tn(d2) | 0; + k[l2 >> 2] = g2; + x = 0; + a2 = Aa(37, l2 | 0, 44220) | 0; + m2 = x; + x = 0; + do + if (!(m2 & 1)) { + zm(g2) | 0; + g2 = tn(d2) | 0; + k[n2 >> 2] = g2; + x = 0; + j2 = Aa(37, n2 | 0, 44360) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + break; + } + zm(g2) | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 24 >> 2] | 0, s2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + h2 = s2 + 12 | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, h2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + k[p2 >> 2] = k[c2 >> 2]; + x = 0; + k[o2 >> 2] = k[p2 >> 2]; + g2 = na(7, b2 | 0, o2 | 0, s2 | 0, s2 + 24 | 0, a2 | 0, e2 | 0, 1) | 0; + e2 = x; + x = 0; + if (e2 & 1) { + g2 = Wa() | 0; + Sm(s2 + 12 | 0); + Sm(s2); + break; + } else { + i2[f2 >> 0] = (g2 | 0) == (s2 | 0) & 1; + g2 = k[b2 >> 2] | 0; + Sm(s2 + 12 | 0); + Sm(s2); + break a; + } + } + } else + h2 = s2; + g2 = Wa() | 0; + j2 = M; + if ((s2 | 0) != (h2 | 0)) + do { + h2 = h2 + -12 | 0; + Sm(h2); + } while ((h2 | 0) != (s2 | 0)); + } else { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + } + while (0); + fb(g2 | 0); + } + while (0); + r = q2; + return g2 | 0; + } + function Wo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Iu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function Xo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Ju(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function Yo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Ku(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function Zo(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Lu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function _o(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Mu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function $o(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Nu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function ap(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Ou(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function bp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Pu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function cp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Qu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function dp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; + C2 = r; + r = r + 240 | 0; + w2 = C2; + q2 = C2 + 208 | 0; + E2 = C2 + 32 | 0; + a2 = C2 + 28 | 0; + D2 = C2 + 16 | 0; + v2 = C2 + 12 | 0; + t2 = C2 + 48 | 0; + u2 = C2 + 8 | 0; + s2 = C2 + 4 | 0; + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + x = 0; + d2 = ta(68, d2 | 0) | 0; + p2 = x; + x = 0; + do + if (p2 & 1) + a2 = Wa() | 0; + else { + k[a2 >> 2] = d2; + x = 0; + a2 = Aa(37, a2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (!(p2 & 1) ? (x = 0, Ea(k[(k[a2 >> 2] | 0) + 32 >> 2] | 0, a2 | 0, 57498, 57524, q2 | 0) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { + zm(d2) | 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + if (!(i2[D2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[D2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, D2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + o2 = D2 + 8 | 0; + p2 = D2 + 1 | 0; + d2 = (i2[D2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[v2 >> 2] = d2; + k[u2 >> 2] = t2; + k[s2 >> 2] = 0; + n2 = D2 + 4 | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + F2 = 19; + break; + } + } else + F2 = 19; + while (0); + if ((F2 | 0) == 19) { + F2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[D2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[n2 >> 2] | 0; + if ((k[v2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, D2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break; + } + if (!(i2[D2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[D2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, D2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + F2 = 29; + break; + } + d2 = (i2[D2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[v2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 29; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, 16, d2, v2, s2, 0, E2, t2, u2, q2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 29; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((F2 | 0) == 29) { + a2 = Wa() | 0; + break; + } + x = 0; + Fa(8, D2 | 0, (k[v2 >> 2] | 0) - d2 | 0, 0); + G2 = x; + x = 0; + if ((!(G2 & 1) ? (y2 = i2[D2 >> 0] | 0, z2 = k[o2 >> 2] | 0, x = 0, A2 = Da(3) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) ? (x = 0, k[w2 >> 2] = f2, B2 = Ea(16, ((y2 & 1) == 0 ? p2 : z2) | 0, A2 | 0, 58882, w2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { + if ((B2 | 0) != 1) + k[e2 >> 2] = 4; + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 30; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + G2 = x; + x = 0; + if (G2 & 1) { + F2 = 30; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + F2 = 55; + break; + } + } + if (!d2) + F2 = 56; + } else + F2 = 55; + while (0); + if ((F2 | 0) == 55 ? d2 : 0) + F2 = 56; + if ((F2 | 0) == 56) + k[e2 >> 2] = k[e2 >> 2] | 2; + G2 = k[b2 >> 2] | 0; + Sm(D2); + Sm(E2); + r = C2; + return G2 | 0; + } else + F2 = 30; + } else + F2 = 30; + while (0); + if ((F2 | 0) == 30) + a2 = Wa() | 0; + Sm(D2); + break; + } + a2 = Wa() | 0; + zm(d2) | 0; + } + while (0); + Sm(E2); + fb(a2 | 0); + return 0; + } + function ep(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = k[d2 >> 2] | 0; + p2 = (o2 | 0) == (c2 | 0); + do + if (p2) { + m2 = (i2[l2 + 24 >> 0] | 0) == a2 << 24 >> 24; + if (!m2 ? (i2[l2 + 25 >> 0] | 0) != a2 << 24 >> 24 : 0) { + n2 = 5; + break; + } + k[d2 >> 2] = c2 + 1; + i2[c2 >> 0] = m2 ? 43 : 45; + k[e2 >> 2] = 0; + m2 = 0; + } else + n2 = 5; + while (0); + a: + do + if ((n2 | 0) == 5) { + n2 = i2[g2 >> 0] | 0; + if (a2 << 24 >> 24 == f2 << 24 >> 24 ? (((n2 & 1) == 0 ? (n2 & 255) >>> 1 : k[g2 + 4 >> 2] | 0) | 0) != 0 : 0) { + m2 = k[j2 >> 2] | 0; + if ((m2 - h2 | 0) >= 160) { + m2 = 0; + break; + } + b2 = k[e2 >> 2] | 0; + k[j2 >> 2] = m2 + 4; + k[m2 >> 2] = b2; + k[e2 >> 2] = 0; + m2 = 0; + break; + } + g2 = l2 + 26 | 0; + m2 = l2; + while (1) { + if ((i2[m2 >> 0] | 0) == a2 << 24 >> 24) + break; + m2 = m2 + 1 | 0; + if ((m2 | 0) == (g2 | 0)) { + m2 = g2; + break; + } + } + m2 = m2 - l2 | 0; + if ((m2 | 0) > 23) + m2 = -1; + else { + switch (b2 | 0) { + case 10: + case 8: { + if ((m2 | 0) >= (b2 | 0)) { + m2 = -1; + break a; + } + break; + } + case 16: { + if ((m2 | 0) >= 22) { + if (p2) { + m2 = -1; + break a; + } + if ((o2 - c2 | 0) >= 3) { + m2 = -1; + break a; + } + if ((i2[o2 + -1 >> 0] | 0) != 48) { + m2 = -1; + break a; + } + k[e2 >> 2] = 0; + m2 = i2[57498 + m2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + m2 = 0; + break a; + } + break; + } + default: { + } + } + m2 = i2[57498 + m2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + m2 = 0; + } + } + while (0); + return m2 | 0; + } + function fp() { + var a2 = 0, b2 = 0; + do + if ((i2[1968] | 0) == 0 ? (Qa(1968) | 0) != 0 : 0) { + x = 0; + a2 = va(31, 2147483647, 58885, 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Bb(1968); + fb(b2 | 0); + } else { + k[11196] = a2; + Ya(1968); + break; + } + } + while (0); + return k[11196] | 0; + } + function gp(a2) { + a2 = a2 | 0; + return; + } + function hp(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function ip(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + q2 = r; + r = r + 64 | 0; + o2 = q2 + 56 | 0; + g2 = q2 + 52 | 0; + m2 = q2 + 48 | 0; + h2 = q2 + 44 | 0; + j2 = q2 + 40 | 0; + l2 = q2 + 36 | 0; + n2 = q2 + 32 | 0; + s2 = q2 + 8 | 0; + p2 = q2; + a: + do + if (!(k[d2 + 4 >> 2] & 1)) { + k[m2 >> 2] = -1; + s2 = k[(k[a2 >> 2] | 0) + 16 >> 2] | 0; + k[h2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[g2 >> 2] = k[h2 >> 2]; + k[o2 >> 2] = k[j2 >> 2]; + g2 = Nb[s2 & 63](a2, g2, o2, d2, e2, m2) | 0; + k[b2 >> 2] = g2; + switch (k[m2 >> 2] | 0) { + case 0: { + i2[f2 >> 0] = 0; + break a; + } + case 1: { + i2[f2 >> 0] = 1; + break a; + } + default: { + i2[f2 >> 0] = 1; + k[e2 >> 2] = 4; + break a; + } + } + } else { + g2 = tn(d2) | 0; + k[l2 >> 2] = g2; + x = 0; + a2 = Aa(37, l2 | 0, 44212) | 0; + m2 = x; + x = 0; + do + if (!(m2 & 1)) { + zm(g2) | 0; + g2 = tn(d2) | 0; + k[n2 >> 2] = g2; + x = 0; + j2 = Aa(37, n2 | 0, 44368) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + break; + } + zm(g2) | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 24 >> 2] | 0, s2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + h2 = s2 + 12 | 0; + x = 0; + ra(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, h2 | 0, j2 | 0); + n2 = x; + x = 0; + if (!(n2 & 1)) { + k[p2 >> 2] = k[c2 >> 2]; + x = 0; + k[o2 >> 2] = k[p2 >> 2]; + g2 = na(8, b2 | 0, o2 | 0, s2 | 0, s2 + 24 | 0, a2 | 0, e2 | 0, 1) | 0; + e2 = x; + x = 0; + if (e2 & 1) { + g2 = Wa() | 0; + en(s2 + 12 | 0); + en(s2); + break; + } else { + i2[f2 >> 0] = (g2 | 0) == (s2 | 0) & 1; + g2 = k[b2 >> 2] | 0; + en(s2 + 12 | 0); + en(s2); + break a; + } + } + } else + h2 = s2; + g2 = Wa() | 0; + j2 = M; + if ((s2 | 0) != (h2 | 0)) + do { + h2 = h2 + -12 | 0; + en(h2); + } while ((h2 | 0) != (s2 | 0)); + } else { + s2 = Wa() | 0; + zm(g2) | 0; + g2 = s2; + } + while (0); + fb(g2 | 0); + } + while (0); + r = q2; + return g2 | 0; + } + function jp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Tu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function kp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Uu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function lp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Vu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function mp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Wu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function np(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Xu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function op(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Yu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function pp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = Zu(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function qp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = _u(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function rp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; + g2 = r; + r = r + 16 | 0; + h2 = g2 + 12 | 0; + i3 = g2 + 8 | 0; + l2 = g2 + 4 | 0; + j2 = g2; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[c2 >> 2]; + k[i3 >> 2] = k[l2 >> 2]; + k[h2 >> 2] = k[j2 >> 2]; + a2 = $u(a2, i3, h2, d2, e2, f2) | 0; + r = g2; + return a2 | 0; + } + function sp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0; + B2 = r; + r = r + 320 | 0; + v2 = B2; + p2 = B2 + 208 | 0; + D2 = B2 + 32 | 0; + a2 = B2 + 28 | 0; + C2 = B2 + 16 | 0; + u2 = B2 + 12 | 0; + s2 = B2 + 48 | 0; + t2 = B2 + 8 | 0; + q2 = B2 + 4 | 0; + k[D2 >> 2] = 0; + k[D2 + 4 >> 2] = 0; + k[D2 + 8 >> 2] = 0; + x = 0; + d2 = ta(68, d2 | 0) | 0; + o2 = x; + x = 0; + do + if (o2 & 1) + a2 = Wa() | 0; + else { + k[a2 >> 2] = d2; + x = 0; + a2 = Aa(37, a2 | 0, 44212) | 0; + o2 = x; + x = 0; + if (!(o2 & 1) ? (x = 0, Ea(k[(k[a2 >> 2] | 0) + 48 >> 2] | 0, a2 | 0, 57498, 57524, p2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { + zm(d2) | 0; + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + if (!(i2[C2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, a2 | 0, 0); + o2 = x; + x = 0; + a: + do + if (!(o2 & 1)) { + n2 = C2 + 8 | 0; + o2 = C2 + 1 | 0; + a2 = (i2[C2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[u2 >> 2] = a2; + k[t2 >> 2] = s2; + k[q2 >> 2] = 0; + m2 = C2 + 4 | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) { + g2 = j2; + break; + } else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + E2 = 20; + break; + } + } else + E2 = 20; + while (0); + if ((E2 | 0) == 20) { + E2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[C2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[m2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (a2 + h2 | 0)) { + x = 0; + Fa(8, C2 | 0, h2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break; + } + if (!(i2[C2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + E2 = 30; + break; + } + a2 = (i2[C2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[u2 >> 2] = a2 + h2; + } + j2 = d2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((h2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 30; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if (tp(h2, 16, a2, u2, q2, 0, D2, s2, t2, p2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 30; + break; + } else { + g2 = d2; + continue; + } + } else { + k[j2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((E2 | 0) == 30) { + a2 = Wa() | 0; + break; + } + x = 0; + Fa(8, C2 | 0, (k[u2 >> 2] | 0) - a2 | 0, 0); + F2 = x; + x = 0; + if ((!(F2 & 1) ? (w2 = i2[C2 >> 0] | 0, y2 = k[n2 >> 2] | 0, x = 0, z2 = Da(3) | 0, F2 = x, x = 0, !(F2 & 1)) : 0) ? (x = 0, k[v2 >> 2] = f2, A2 = Ea(16, ((w2 & 1) == 0 ? o2 : y2) | 0, z2 | 0, 58882, v2 | 0) | 0, F2 = x, x = 0, !(F2 & 1)) : 0) { + if ((A2 | 0) != 1) + k[e2 >> 2] = 4; + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 31; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 31; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + E2 = 59; + break; + } + else { + k[c2 >> 2] = 0; + E2 = 57; + break; + } + } else + E2 = 57; + while (0); + if ((E2 | 0) == 57 ? d2 : 0) + E2 = 59; + if ((E2 | 0) == 59) + k[e2 >> 2] = k[e2 >> 2] | 2; + F2 = k[b2 >> 2] | 0; + Sm(C2); + Sm(D2); + r = B2; + return F2 | 0; + } else + E2 = 31; + } else + E2 = 31; + while (0); + if ((E2 | 0) == 31) + a2 = Wa() | 0; + Sm(C2); + break; + } + a2 = Wa() | 0; + zm(d2) | 0; + } + while (0); + Sm(D2); + fb(a2 | 0); + return 0; + } + function tp(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = k[d2 >> 2] | 0; + p2 = (o2 | 0) == (c2 | 0); + do + if (p2) { + m2 = (k[l2 + 96 >> 2] | 0) == (a2 | 0); + if (!m2 ? (k[l2 + 100 >> 2] | 0) != (a2 | 0) : 0) { + n2 = 5; + break; + } + k[d2 >> 2] = c2 + 1; + i2[c2 >> 0] = m2 ? 43 : 45; + k[e2 >> 2] = 0; + m2 = 0; + } else + n2 = 5; + while (0); + a: + do + if ((n2 | 0) == 5) { + n2 = i2[g2 >> 0] | 0; + if ((a2 | 0) == (f2 | 0) ? (((n2 & 1) == 0 ? (n2 & 255) >>> 1 : k[g2 + 4 >> 2] | 0) | 0) != 0 : 0) { + m2 = k[j2 >> 2] | 0; + if ((m2 - h2 | 0) >= 160) { + m2 = 0; + break; + } + b2 = k[e2 >> 2] | 0; + k[j2 >> 2] = m2 + 4; + k[m2 >> 2] = b2; + k[e2 >> 2] = 0; + m2 = 0; + break; + } + g2 = l2 + 104 | 0; + m2 = l2; + while (1) { + if ((k[m2 >> 2] | 0) == (a2 | 0)) + break; + m2 = m2 + 4 | 0; + if ((m2 | 0) == (g2 | 0)) { + m2 = g2; + break; + } + } + m2 = m2 - l2 | 0; + g2 = m2 >> 2; + if ((m2 | 0) > 92) + m2 = -1; + else { + switch (b2 | 0) { + case 10: + case 8: { + if ((g2 | 0) >= (b2 | 0)) { + m2 = -1; + break a; + } + break; + } + case 16: { + if ((m2 | 0) >= 88) { + if (p2) { + m2 = -1; + break a; + } + if ((o2 - c2 | 0) >= 3) { + m2 = -1; + break a; + } + if ((i2[o2 + -1 >> 0] | 0) != 48) { + m2 = -1; + break a; + } + k[e2 >> 2] = 0; + m2 = i2[57498 + g2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + m2 = 0; + break a; + } + break; + } + default: { + } + } + m2 = i2[57498 + g2 >> 0] | 0; + k[d2 >> 2] = o2 + 1; + i2[o2 >> 0] = m2; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + m2 = 0; + } + } + while (0); + return m2 | 0; + } + function up(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + b2 = tn(b2) | 0; + k[h2 >> 2] = b2; + x = 0; + e2 = Aa(37, h2 | 0, 44220) | 0; + l2 = x; + x = 0; + if ((((!(l2 & 1) ? (x = 0, Ea(k[(k[e2 >> 2] | 0) + 32 >> 2] | 0, e2 | 0, 57498, 57524, c2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, g2 = Aa(37, h2 | 0, 44360) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, f2 = ta(k[(k[g2 >> 2] | 0) + 16 >> 2] | 0, g2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (i2[d2 >> 0] = f2, x = 0, ra(k[(k[g2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, g2 | 0), l2 = x, x = 0, !(l2 & 1)) : 0) { + zm(b2) | 0; + r = j2; + return; + } + l2 = Wa() | 0; + zm(b2) | 0; + fb(l2 | 0); + } + function vp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + m2 = r; + r = r + 16 | 0; + l2 = m2; + b2 = tn(b2) | 0; + k[l2 >> 2] = b2; + x = 0; + f2 = Aa(37, l2 | 0, 44220) | 0; + n2 = x; + x = 0; + if (((((!(n2 & 1) ? (x = 0, Ea(k[(k[f2 >> 2] | 0) + 32 >> 2] | 0, f2 | 0, 57498, 57530, c2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, j2 = Aa(37, l2 | 0, 44360) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, g2 = ta(k[(k[j2 >> 2] | 0) + 12 >> 2] | 0, j2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (i2[d2 >> 0] = g2, x = 0, h2 = ta(k[(k[j2 >> 2] | 0) + 16 >> 2] | 0, j2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (i2[e2 >> 0] = h2, x = 0, ra(k[(k[j2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, j2 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { + zm(b2) | 0; + r = m2; + return; + } + n2 = Wa() | 0; + zm(b2) | 0; + fb(n2 | 0); + } + function wp(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + var p2 = 0, q2 = 0; + a: + do + if (a2 << 24 >> 24 == f2 << 24 >> 24) + if (i2[b2 >> 0] | 0) { + i2[b2 >> 0] = 0; + c2 = k[e2 >> 2] | 0; + k[e2 >> 2] = c2 + 1; + i2[c2 >> 0] = 46; + c2 = i2[h2 >> 0] | 0; + if ((((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0 ? (p2 = k[m2 >> 2] | 0, (p2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + p2 = 0; + } else + p2 = 0; + } else + p2 = -1; + else { + if (a2 << 24 >> 24 == g2 << 24 >> 24 ? (g2 = i2[h2 >> 0] | 0, (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) { + if (!(i2[b2 >> 0] | 0)) { + p2 = -1; + break; + } + p2 = k[m2 >> 2] | 0; + if ((p2 - j2 | 0) >= 160) { + p2 = 0; + break; + } + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + k[n2 >> 2] = 0; + p2 = 0; + break; + } + f2 = o2 + 32 | 0; + p2 = o2; + while (1) { + if ((i2[p2 >> 0] | 0) == a2 << 24 >> 24) + break; + p2 = p2 + 1 | 0; + if ((p2 | 0) == (f2 | 0)) { + p2 = f2; + break; + } + } + f2 = p2 - o2 | 0; + if ((f2 | 0) > 31) + p2 = -1; + else { + g2 = i2[57498 + f2 >> 0] | 0; + switch (f2 | 0) { + case 24: + case 25: { + p2 = k[e2 >> 2] | 0; + if ((p2 | 0) != (d2 | 0) ? (l[p2 + -1 >> 0] & 95 | 0) != (l[c2 >> 0] & 127 | 0) : 0) { + p2 = -1; + break a; + } + k[e2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + p2 = 0; + break a; + } + case 23: + case 22: { + i2[c2 >> 0] = 80; + p2 = k[e2 >> 2] | 0; + k[e2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + p2 = 0; + break a; + } + default: { + p2 = g2 & 95; + if ((((p2 | 0) == (i2[c2 >> 0] | 0) ? (i2[c2 >> 0] = p2 | 128, (i2[b2 >> 0] | 0) != 0) : 0) ? (i2[b2 >> 0] = 0, c2 = i2[h2 >> 0] | 0, (((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) ? (q2 = k[m2 >> 2] | 0, (q2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = q2 + 4; + k[q2 >> 2] = j2; + } + m2 = k[e2 >> 2] | 0; + k[e2 >> 2] = m2 + 1; + i2[m2 >> 0] = g2; + if ((f2 | 0) > 21) { + p2 = 0; + break a; + } + k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; + p2 = 0; + break a; + } + } + } + } + while (0); + return p2 | 0; + } + function xp(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; + i3 = r; + r = r + 16 | 0; + h2 = i3; + b2 = tn(b2) | 0; + k[h2 >> 2] = b2; + x = 0; + e2 = Aa(37, h2 | 0, 44212) | 0; + j2 = x; + x = 0; + if ((((!(j2 & 1) ? (x = 0, Ea(k[(k[e2 >> 2] | 0) + 48 >> 2] | 0, e2 | 0, 57498, 57524, c2 | 0) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (x = 0, g2 = Aa(37, h2 | 0, 44368) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (x = 0, f2 = ta(k[(k[g2 >> 2] | 0) + 16 >> 2] | 0, g2 | 0) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (k[d2 >> 2] = f2, x = 0, ra(k[(k[g2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, g2 | 0), j2 = x, x = 0, !(j2 & 1)) : 0) { + zm(b2) | 0; + r = i3; + return; + } + j2 = Wa() | 0; + zm(b2) | 0; + fb(j2 | 0); + } + function yp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0; + l2 = r; + r = r + 16 | 0; + j2 = l2; + b2 = tn(b2) | 0; + k[j2 >> 2] = b2; + x = 0; + f2 = Aa(37, j2 | 0, 44212) | 0; + m2 = x; + x = 0; + if (((((!(m2 & 1) ? (x = 0, Ea(k[(k[f2 >> 2] | 0) + 48 >> 2] | 0, f2 | 0, 57498, 57530, c2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, i3 = Aa(37, j2 | 0, 44368) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, g2 = ta(k[(k[i3 >> 2] | 0) + 12 >> 2] | 0, i3 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (k[d2 >> 2] = g2, x = 0, h2 = ta(k[(k[i3 >> 2] | 0) + 16 >> 2] | 0, i3 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (k[e2 >> 2] = h2, x = 0, ra(k[(k[i3 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, i3 | 0), m2 = x, x = 0, !(m2 & 1)) : 0) { + zm(b2) | 0; + r = l2; + return; + } + m2 = Wa() | 0; + zm(b2) | 0; + fb(m2 | 0); + } + function zp(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + var p2 = 0, q2 = 0; + a: + do + if ((a2 | 0) == (f2 | 0)) + if (i2[b2 >> 0] | 0) { + i2[b2 >> 0] = 0; + c2 = k[e2 >> 2] | 0; + k[e2 >> 2] = c2 + 1; + i2[c2 >> 0] = 46; + c2 = i2[h2 >> 0] | 0; + if ((((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0 ? (p2 = k[m2 >> 2] | 0, (p2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + p2 = 0; + } else + p2 = 0; + } else + p2 = -1; + else { + if ((a2 | 0) == (g2 | 0) ? (g2 = i2[h2 >> 0] | 0, (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) { + if (!(i2[b2 >> 0] | 0)) { + p2 = -1; + break; + } + p2 = k[m2 >> 2] | 0; + if ((p2 - j2 | 0) >= 160) { + p2 = 0; + break; + } + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = p2 + 4; + k[p2 >> 2] = j2; + k[n2 >> 2] = 0; + p2 = 0; + break; + } + f2 = o2 + 128 | 0; + p2 = o2; + while (1) { + if ((k[p2 >> 2] | 0) == (a2 | 0)) + break; + p2 = p2 + 4 | 0; + if ((p2 | 0) == (f2 | 0)) { + p2 = f2; + break; + } + } + f2 = p2 - o2 | 0; + p2 = f2 >> 2; + if ((f2 | 0) <= 124) { + g2 = i2[57498 + p2 >> 0] | 0; + switch (p2 | 0) { + case 24: + case 25: { + p2 = k[e2 >> 2] | 0; + if ((p2 | 0) != (d2 | 0) ? (l[p2 + -1 >> 0] & 95 | 0) != (l[c2 >> 0] & 127 | 0) : 0) { + p2 = -1; + break a; + } + k[e2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + p2 = 0; + break a; + } + case 23: + case 22: { + i2[c2 >> 0] = 80; + break; + } + default: { + p2 = g2 & 95; + if ((((p2 | 0) == (i2[c2 >> 0] | 0) ? (i2[c2 >> 0] = p2 | 128, (i2[b2 >> 0] | 0) != 0) : 0) ? (i2[b2 >> 0] = 0, c2 = i2[h2 >> 0] | 0, (((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) ? (q2 = k[m2 >> 2] | 0, (q2 - j2 | 0) < 160) : 0) { + j2 = k[n2 >> 2] | 0; + k[m2 >> 2] = q2 + 4; + k[q2 >> 2] = j2; + } + } + } + m2 = k[e2 >> 2] | 0; + k[e2 >> 2] = m2 + 1; + i2[m2 >> 0] = g2; + if ((f2 | 0) > 84) + p2 = 0; + else { + k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; + p2 = 0; + } + } else + p2 = -1; + } + while (0); + return p2 | 0; + } + function Ap(a2) { + a2 = a2 | 0; + return; + } + function Bp(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Cp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 32 | 0; + f2 = m2 + 20 | 0; + g2 = m2 + 16 | 0; + h2 = m2 + 12 | 0; + l2 = m2; + a: + do + if (!(k[c2 + 4 >> 2] & 1)) { + l2 = k[(k[a2 >> 2] | 0) + 24 >> 2] | 0; + k[g2 >> 2] = k[b2 >> 2]; + k[f2 >> 2] = k[g2 >> 2]; + f2 = Wb[l2 & 31](a2, f2, c2, d2, e2 & 1) | 0; + } else { + f2 = tn(c2) | 0; + k[h2 >> 2] = f2; + x = 0; + g2 = Aa(37, h2 | 0, 44360) | 0; + j2 = x; + x = 0; + b: + do + if (j2 & 1) { + m2 = Wa() | 0; + zm(f2) | 0; + f2 = m2; + } else { + zm(f2) | 0; + f2 = k[g2 >> 2] | 0; + if (e2) + Mb[k[f2 + 24 >> 2] & 127](l2, g2); + else + Mb[k[f2 + 28 >> 2] & 127](l2, g2); + a2 = i2[l2 >> 0] | 0; + j2 = (a2 & 1) == 0; + f2 = l2 + 1 | 0; + e2 = l2 + 8 | 0; + h2 = j2 ? f2 : l2 + 1 | 0; + f2 = j2 ? f2 : k[l2 + 8 >> 2] | 0; + j2 = l2 + 4 | 0; + c2 = (a2 & 1) == 0; + c: + do + if ((f2 | 0) != ((c2 ? h2 : k[e2 >> 2] | 0) + (c2 ? (a2 & 255) >>> 1 : k[j2 >> 2] | 0) | 0)) { + d: + while (1) { + g2 = i2[f2 >> 0] | 0; + d2 = k[b2 >> 2] | 0; + do + if (d2) { + c2 = d2 + 24 | 0; + a2 = k[c2 >> 2] | 0; + if ((a2 | 0) != (k[d2 + 28 >> 2] | 0)) { + k[c2 >> 2] = a2 + 1; + i2[a2 >> 0] = g2; + break; + } + x = 0; + g2 = Aa(k[(k[d2 >> 2] | 0) + 52 >> 2] | 0, d2 | 0, g2 & 255 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break d; + if ((g2 | 0) == -1) + k[b2 >> 2] = 0; + } + while (0); + f2 = f2 + 1 | 0; + a2 = i2[l2 >> 0] | 0; + c2 = (a2 & 1) == 0; + if ((f2 | 0) == ((c2 ? h2 : k[e2 >> 2] | 0) + (c2 ? (a2 & 255) >>> 1 : k[j2 >> 2] | 0) | 0)) + break c; + } + f2 = Wa() | 0; + Sm(l2); + break b; + } + while (0); + f2 = k[b2 >> 2] | 0; + Sm(l2); + break a; + } + while (0); + fb(f2 | 0); + } + while (0); + r = m2; + return f2 | 0; + } + function Dp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 64 | 0; + f2 = m2; + o2 = m2 + 56 | 0; + p2 = m2 + 44 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 1, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = md(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Ep(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + if (d2 & 2048) { + i2[a2 >> 0] = 43; + a2 = a2 + 1 | 0; + } + if (d2 & 512) { + i2[a2 >> 0] = 35; + a2 = a2 + 1 | 0; + } + e2 = i2[b2 >> 0] | 0; + if (e2 << 24 >> 24) { + f2 = b2; + while (1) { + f2 = f2 + 1 | 0; + b2 = a2 + 1 | 0; + i2[a2 >> 0] = e2; + e2 = i2[f2 >> 0] | 0; + if (!(e2 << 24 >> 24)) { + a2 = b2; + break; + } else + a2 = b2; + } + } + a: + do + switch (d2 & 74 | 0) { + case 64: { + i2[a2 >> 0] = 111; + break; + } + case 8: + if (!(d2 & 16384)) { + i2[a2 >> 0] = 120; + break a; + } else { + i2[a2 >> 0] = 88; + break a; + } + default: + if (c2) { + i2[a2 >> 0] = 100; + break a; + } else { + i2[a2 >> 0] = 117; + break a; + } + } + while (0); + return; + } + function Fp(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + a: + do + switch (k[c2 + 4 >> 2] & 176 | 0) { + case 16: { + c2 = i2[a2 >> 0] | 0; + switch (c2 << 24 >> 24) { + case 43: + case 45: { + a2 = a2 + 1 | 0; + break a; + } + default: { + } + } + if ((b2 - a2 | 0) > 1 & c2 << 24 >> 24 == 48) { + switch (i2[a2 + 1 >> 0] | 0) { + case 88: + case 120: + break; + default: { + d2 = 7; + break a; + } + } + a2 = a2 + 2 | 0; + } else + d2 = 7; + break; + } + case 32: { + a2 = b2; + break; + } + default: + d2 = 7; + } + while (0); + return a2 | 0; + } + function Gp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 16 | 0; + v2 = u2; + s2 = Ss(g2, 44220) | 0; + l2 = Ss(g2, 44360) | 0; + Mb[k[(k[l2 >> 2] | 0) + 20 >> 2] & 127](v2, l2); + p2 = i2[v2 >> 0] | 0; + q2 = v2 + 4 | 0; + a: + do + if (!(((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0)) { + x = 0; + Ea(k[(k[s2 >> 2] | 0) + 32 >> 2] | 0, s2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + t2 = 5; + else { + g2 = d2 + (c2 - a2) | 0; + k[f2 >> 2] = g2; + t2 = 29; + } + } else { + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, g2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = g2; + j2 = a2 + 1 | 0; + break; + } + default: + j2 = a2; + } + b: + do + if ((c2 - j2 | 0) > 1 ? (i2[j2 >> 0] | 0) == 48 : 0) { + g2 = j2 + 1 | 0; + switch (i2[g2 >> 0] | 0) { + case 88: + case 120: + break; + default: + break b; + } + x = 0; + h2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, 48) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 1; + i2[p2 >> 0] = h2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, i2[g2 >> 0] | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 1; + i2[p2 >> 0] = g2; + j2 = j2 + 2 | 0; + } + while (0); + if ((j2 | 0) != (c2 | 0) ? (m2 = c2 + -1 | 0, j2 >>> 0 < m2 >>> 0) : 0) { + h2 = j2; + g2 = m2; + do { + p2 = i2[h2 >> 0] | 0; + i2[h2 >> 0] = i2[g2 >> 0] | 0; + i2[g2 >> 0] = p2; + h2 = h2 + 1 | 0; + g2 = g2 + -1 | 0; + } while (h2 >>> 0 < g2 >>> 0); + } + x = 0; + m2 = ta(k[(k[l2 >> 2] | 0) + 16 >> 2] | 0, l2 | 0) | 0; + p2 = x; + x = 0; + if (!(p2 & 1)) { + n2 = v2 + 8 | 0; + o2 = v2 + 1 | 0; + c: + do + if (j2 >>> 0 < c2 >>> 0) { + g2 = 0; + h2 = 0; + p2 = j2; + while (1) { + l2 = i2[((i2[v2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0) + h2 >> 0] | 0; + if (l2 << 24 >> 24 != 0 & (g2 | 0) == (l2 << 24 >> 24 | 0)) { + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = g2 + 1; + i2[g2 >> 0] = m2; + g2 = i2[v2 >> 0] | 0; + l2 = 0; + h2 = (h2 >>> 0 < (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + h2 | 0; + } else + l2 = g2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, i2[p2 >> 0] | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) + break; + w2 = k[f2 >> 2] | 0; + k[f2 >> 2] = w2 + 1; + i2[w2 >> 0] = g2; + p2 = p2 + 1 | 0; + if (p2 >>> 0 >= c2 >>> 0) + break c; + else + g2 = l2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + h2 = a2; + g2 = d2 + (j2 - h2) | 0; + a2 = k[f2 >> 2] | 0; + if ((g2 | 0) == (a2 | 0)) { + a2 = h2; + t2 = 29; + } else { + a2 = a2 + -1 | 0; + if (g2 >>> 0 < a2 >>> 0) + do { + w2 = i2[g2 >> 0] | 0; + i2[g2 >> 0] = i2[a2 >> 0] | 0; + i2[a2 >> 0] = w2; + g2 = g2 + 1 | 0; + a2 = a2 + -1 | 0; + } while (g2 >>> 0 < a2 >>> 0); + a2 = h2; + g2 = k[f2 >> 2] | 0; + t2 = 29; + } + } else + t2 = 5; + } + while (0); + if ((t2 | 0) == 5) + g2 = Wa() | 0; + else if ((t2 | 0) == 29) { + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? g2 : d2 + (b2 - a2) | 0; + Sm(v2); + r = u2; + return; + } + Sm(v2); + fb(g2 | 0); + } + function Hp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 96 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 74 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 1, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 22, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = md(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Ip(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 64 | 0; + f2 = m2; + o2 = m2 + 56 | 0; + p2 = m2 + 44 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 0, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = md(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Jp(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 112 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 75 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 0, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 23, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(1, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = md(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Kp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 176 | 0; + t2 = z2 + 84 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 88 | 0; + s2 = z2 + 80 | 0; + h2 = z2 + 118 | 0; + y2 = z2 + 76 | 0; + w2 = z2 + 72 | 0; + u2 = z2 + 68 | 0; + v2 = z2 + 64 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58898, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, k[n2 >> 2] = k[c2 + 8 >> 2], p[n2 + 8 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 1) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(2, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(39, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function Lp(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + if (c2 & 2048) { + i2[a2 >> 0] = 43; + a2 = a2 + 1 | 0; + } + if (c2 & 1024) { + i2[a2 >> 0] = 35; + a2 = a2 + 1 | 0; + } + g2 = c2 & 260; + e2 = c2 >>> 14; + h2 = (g2 | 0) == 260; + if (h2) + f2 = 0; + else { + i2[a2 >> 0] = 46; + i2[a2 + 1 >> 0] = 42; + a2 = a2 + 2 | 0; + f2 = 1; + } + c2 = i2[b2 >> 0] | 0; + if (c2 << 24 >> 24) { + d2 = a2; + while (1) { + b2 = b2 + 1 | 0; + a2 = d2 + 1 | 0; + i2[d2 >> 0] = c2; + c2 = i2[b2 >> 0] | 0; + if (!(c2 << 24 >> 24)) + break; + else + d2 = a2; + } + } + a: + do + switch (g2 | 0) { + case 4: + if (!(e2 & 1)) { + i2[a2 >> 0] = 102; + break a; + } else { + i2[a2 >> 0] = 70; + break a; + } + case 256: + if (!(e2 & 1)) { + i2[a2 >> 0] = 101; + break a; + } else { + i2[a2 >> 0] = 69; + break a; + } + default: { + c2 = (e2 & 1 | 0) != 0; + if (h2) + if (c2) { + i2[a2 >> 0] = 65; + break a; + } else { + i2[a2 >> 0] = 97; + break a; + } + else if (c2) { + i2[a2 >> 0] = 71; + break a; + } else { + i2[a2 >> 0] = 103; + break a; + } + } + } + while (0); + return f2 | 0; + } + function Mp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0; + z2 = r; + r = r + 16 | 0; + A2 = z2; + y2 = Ss(g2, 44220) | 0; + v2 = Ss(g2, 44360) | 0; + Mb[k[(k[v2 >> 2] | 0) + 20 >> 2] & 127](A2, v2); + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, g2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) + u2 = 8; + else { + m2 = k[f2 >> 2] | 0; + k[f2 >> 2] = m2 + 1; + i2[m2 >> 0] = g2; + m2 = a2 + 1 | 0; + u2 = 10; + } + break; + } + default: { + m2 = a2; + u2 = 10; + } + } + a: + do + if ((u2 | 0) == 10) { + w2 = c2; + b: + do + if ((w2 - m2 | 0) > 1 ? (i2[m2 >> 0] | 0) == 48 : 0) { + j2 = m2 + 1 | 0; + switch (i2[j2 >> 0] | 0) { + case 88: + case 120: + break; + default: { + u2 = 11; + break b; + } + } + x = 0; + g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, 48) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + u2 = 8; + break a; + } + t2 = k[f2 >> 2] | 0; + k[f2 >> 2] = t2 + 1; + i2[t2 >> 0] = g2; + m2 = m2 + 2 | 0; + x = 0; + g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, i2[j2 >> 0] | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + u2 = 8; + break a; + } + t2 = k[f2 >> 2] | 0; + k[f2 >> 2] = t2 + 1; + i2[t2 >> 0] = g2; + if (m2 >>> 0 < c2 >>> 0) { + g2 = m2; + while (1) { + j2 = i2[g2 >> 0] | 0; + x = 0; + l2 = Da(3) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + x = 0; + j2 = Aa(39, j2 << 24 >> 24 | 0, l2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + if (!j2) { + t2 = m2; + break b; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + t2 = m2; + break b; + } + } + g2 = Wa() | 0; + break a; + } else { + t2 = m2; + g2 = m2; + } + } else + u2 = 11; + while (0); + c: + do + if ((u2 | 0) == 11) + if (m2 >>> 0 < c2 >>> 0) { + g2 = m2; + while (1) { + j2 = i2[g2 >> 0] | 0; + x = 0; + l2 = Da(3) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + x = 0; + j2 = Aa(40, j2 << 24 >> 24 | 0, l2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + break; + if (!j2) { + t2 = m2; + break c; + } + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) { + t2 = m2; + break c; + } + } + g2 = Wa() | 0; + break a; + } else { + t2 = m2; + g2 = m2; + } + while (0); + q2 = i2[A2 >> 0] | 0; + s2 = A2 + 4 | 0; + if (((q2 & 1) == 0 ? (q2 & 255) >>> 1 : k[s2 >> 2] | 0) | 0) { + if ((t2 | 0) != (g2 | 0) ? (n2 = g2 + -1 | 0, t2 >>> 0 < n2 >>> 0) : 0) { + l2 = t2; + j2 = n2; + do { + q2 = i2[l2 >> 0] | 0; + i2[l2 >> 0] = i2[j2 >> 0] | 0; + i2[j2 >> 0] = q2; + l2 = l2 + 1 | 0; + j2 = j2 + -1 | 0; + } while (l2 >>> 0 < j2 >>> 0); + } + x = 0; + n2 = ta(k[(k[v2 >> 2] | 0) + 16 >> 2] | 0, v2 | 0) | 0; + q2 = x; + x = 0; + if (q2 & 1) { + u2 = 8; + break; + } + o2 = A2 + 8 | 0; + p2 = A2 + 1 | 0; + d: + do + if (t2 >>> 0 < g2 >>> 0) { + j2 = 0; + l2 = 0; + q2 = t2; + while (1) { + m2 = i2[((i2[A2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0) + l2 >> 0] | 0; + if (m2 << 24 >> 24 > 0 & (j2 | 0) == (m2 << 24 >> 24 | 0)) { + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = n2; + j2 = i2[A2 >> 0] | 0; + m2 = 0; + l2 = (l2 >>> 0 < (((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[s2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + l2 | 0; + } else + m2 = j2; + x = 0; + j2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, i2[q2 >> 0] | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) + break; + B2 = k[f2 >> 2] | 0; + k[f2 >> 2] = B2 + 1; + i2[B2 >> 0] = j2; + q2 = q2 + 1 | 0; + if (q2 >>> 0 >= g2 >>> 0) + break d; + else + j2 = m2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + j2 = d2 + (t2 - a2) | 0; + l2 = k[f2 >> 2] | 0; + if ((j2 | 0) != (l2 | 0) ? (h2 = l2 + -1 | 0, j2 >>> 0 < h2 >>> 0) : 0) { + do { + B2 = i2[j2 >> 0] | 0; + i2[j2 >> 0] = i2[h2 >> 0] | 0; + i2[h2 >> 0] = B2; + j2 = j2 + 1 | 0; + h2 = h2 + -1 | 0; + } while (j2 >>> 0 < h2 >>> 0); + j2 = y2; + } else + j2 = y2; + } else { + x = 0; + Ea(k[(k[y2 >> 2] | 0) + 32 >> 2] | 0, y2 | 0, t2 | 0, g2 | 0, k[f2 >> 2] | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) { + u2 = 8; + break; + } + k[f2 >> 2] = (k[f2 >> 2] | 0) + (g2 - t2); + j2 = y2; + } + e: + do + if (g2 >>> 0 < c2 >>> 0) { + while (1) { + h2 = i2[g2 >> 0] | 0; + if (h2 << 24 >> 24 == 46) + break; + x = 0; + h2 = Aa(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, h2 | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) { + u2 = 4; + break; + } + B2 = k[f2 >> 2] | 0; + k[f2 >> 2] = B2 + 1; + i2[B2 >> 0] = h2; + g2 = g2 + 1 | 0; + if (g2 >>> 0 >= c2 >>> 0) + break e; + } + if ((u2 | 0) == 4) { + g2 = Wa() | 0; + break a; + } + x = 0; + h2 = ta(k[(k[v2 >> 2] | 0) + 12 >> 2] | 0, v2 | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) { + u2 = 8; + break a; + } + B2 = k[f2 >> 2] | 0; + k[f2 >> 2] = B2 + 1; + i2[B2 >> 0] = h2; + g2 = g2 + 1 | 0; + } + while (0); + x = 0; + Ea(k[(k[y2 >> 2] | 0) + 32 >> 2] | 0, y2 | 0, g2 | 0, c2 | 0, k[f2 >> 2] | 0) | 0; + B2 = x; + x = 0; + if (B2 & 1) + u2 = 8; + else { + B2 = (k[f2 >> 2] | 0) + (w2 - g2) | 0; + k[f2 >> 2] = B2; + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? B2 : d2 + (b2 - a2) | 0; + Sm(A2); + r = z2; + return; + } + } + while (0); + if ((u2 | 0) == 8) + g2 = Wa() | 0; + Sm(A2); + fb(g2 | 0); + } + function Np(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 176 | 0; + t2 = z2 + 76 | 0; + n2 = z2 + 48 | 0; + m2 = z2 + 32 | 0; + i3 = z2 + 24 | 0; + f2 = z2 + 8 | 0; + l2 = z2; + q2 = z2 + 80 | 0; + s2 = z2 + 72 | 0; + h2 = z2 + 110 | 0; + y2 = z2 + 68 | 0; + w2 = z2 + 64 | 0; + u2 = z2 + 60 | 0; + v2 = z2 + 56 | 0; + j2 = l2; + k[j2 >> 2] = 37; + k[j2 + 4 >> 2] = 0; + j2 = Lp(l2 + 1 | 0, 58899, k[c2 + 4 >> 2] | 0) | 0; + k[s2 >> 2] = q2; + a2 = fp() | 0; + if (j2) { + k[f2 >> 2] = k[c2 + 8 >> 2]; + p[f2 + 8 >> 3] = e2; + f2 = av(q2, 30, a2, l2, f2) | 0; + } else { + p[i3 >> 3] = e2; + f2 = av(q2, 30, a2, l2, i3) | 0; + } + a: + do + if ((f2 | 0) > 29) { + x = 0; + a2 = Da(3) | 0; + f2 = x; + x = 0; + f2 = f2 & 1; + if (j2) { + if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) + A2 = 12; + } else if (!f2 ? (x = 0, p[n2 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + g2 = o2; + A2 = 12; + } + do + if ((A2 | 0) == 12) { + a2 = k[s2 >> 2] | 0; + if (!a2) { + x = 0; + Ga(6); + o2 = x; + x = 0; + if (o2 & 1) + break; + f2 = k[s2 >> 2] | 0; + } else + f2 = a2; + a2 = f2; + l2 = f2; + A2 = 16; + break a; + } + while (0); + a2 = Wa() | 0; + } else { + a2 = k[s2 >> 2] | 0; + l2 = 0; + g2 = f2; + A2 = 16; + } + while (0); + if ((A2 | 0) == 16) { + i3 = a2 + g2 | 0; + j2 = Fp(a2, i3, c2) | 0; + do + if ((a2 | 0) == (q2 | 0)) { + a2 = q2; + f2 = 0; + A2 = 22; + } else { + g2 = Pl(g2 << 1) | 0; + if (!g2) { + x = 0; + Ga(6); + A2 = x; + x = 0; + if (A2 & 1) { + f2 = 0; + A2 = 20; + break; + } + a2 = k[s2 >> 2] | 0; + } + f2 = g2; + h2 = g2; + A2 = 22; + } + while (0); + do + if ((A2 | 0) == 22) { + x = 0; + g2 = ta(68, c2 | 0) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[u2 >> 2] = g2; + x = 0; + ya(2, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + zm(g2) | 0; + break; + } + zm(g2) | 0; + k[v2 >> 2] = k[b2 >> 2]; + A2 = k[y2 >> 2] | 0; + a2 = k[w2 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[v2 >> 2]; + a2 = sa(39, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + A2 = x; + x = 0; + if (!(A2 & 1)) { + k[b2 >> 2] = a2; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + r = z2; + return a2 | 0; + } else + A2 = 20; + } else + A2 = 20; + } + while (0); + if ((A2 | 0) == 20) + a2 = Wa() | 0; + if (f2) + Ql(f2); + if (l2) + Ql(l2); + } + fb(a2 | 0); + return 0; + } + function Op(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + o2 = r; + r = r + 80 | 0; + j2 = o2; + a2 = o2 + 70 | 0; + m2 = o2 + 12 | 0; + n2 = o2 + 32 | 0; + h2 = o2 + 8 | 0; + l2 = o2 + 4 | 0; + i2[a2 >> 0] = i2[58901] | 0; + i2[a2 + 1 >> 0] = i2[58902] | 0; + i2[a2 + 2 >> 0] = i2[58903] | 0; + i2[a2 + 3 >> 0] = i2[58904] | 0; + i2[a2 + 4 >> 0] = i2[58905] | 0; + i2[a2 + 5 >> 0] = i2[58906] | 0; + f2 = fp() | 0; + k[j2 >> 2] = e2; + a2 = av(m2, 20, f2, a2, j2) | 0; + e2 = m2 + a2 | 0; + f2 = Fp(m2, e2, c2) | 0; + g2 = tn(c2) | 0; + k[h2 >> 2] = g2; + x = 0; + h2 = Aa(37, h2 | 0, 44220) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + p2 = Wa() | 0; + zm(g2) | 0; + fb(p2 | 0); + } else { + zm(g2) | 0; + Zb[k[(k[h2 >> 2] | 0) + 32 >> 2] & 31](h2, m2, e2, n2) | 0; + p2 = n2 + a2 | 0; + k[l2 >> 2] = k[b2 >> 2]; + k[j2 >> 2] = k[l2 >> 2]; + p2 = md(j2, n2, (f2 | 0) == (e2 | 0) ? p2 : n2 + (f2 - m2) | 0, p2, c2, d2) | 0; + r = o2; + return p2 | 0; + } + return 0; + } + function Pp(a2) { + a2 = a2 | 0; + return; + } + function Qp(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Rp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + f2 = l2 + 20 | 0; + g2 = l2 + 16 | 0; + h2 = l2 + 12 | 0; + j2 = l2; + a: + do + if (!(k[c2 + 4 >> 2] & 1)) { + j2 = k[(k[a2 >> 2] | 0) + 24 >> 2] | 0; + k[g2 >> 2] = k[b2 >> 2]; + k[f2 >> 2] = k[g2 >> 2]; + f2 = Wb[j2 & 31](a2, f2, c2, d2, e2 & 1) | 0; + } else { + f2 = tn(c2) | 0; + k[h2 >> 2] = f2; + x = 0; + g2 = Aa(37, h2 | 0, 44368) | 0; + h2 = x; + x = 0; + b: + do + if (h2 & 1) { + l2 = Wa() | 0; + zm(f2) | 0; + f2 = l2; + } else { + zm(f2) | 0; + f2 = k[g2 >> 2] | 0; + if (e2) + Mb[k[f2 + 24 >> 2] & 127](j2, g2); + else + Mb[k[f2 + 28 >> 2] & 127](j2, g2); + a2 = i2[j2 >> 0] | 0; + c2 = (a2 & 1) == 0; + f2 = j2 + 4 | 0; + e2 = j2 + 8 | 0; + h2 = c2 ? f2 : j2 + 4 | 0; + f2 = c2 ? f2 : k[j2 + 8 >> 2] | 0; + c2 = (a2 & 1) == 0; + c: + do + if ((f2 | 0) != ((c2 ? h2 : k[e2 >> 2] | 0) + ((c2 ? (a2 & 255) >>> 1 : k[h2 >> 2] | 0) << 2) | 0)) { + while (1) { + g2 = k[f2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + if (d2) { + c2 = d2 + 24 | 0; + a2 = k[c2 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 28 >> 2] | 0)) { + x = 0; + g2 = Aa(k[(k[d2 >> 2] | 0) + 52 >> 2] | 0, d2 | 0, g2 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + } else { + k[c2 >> 2] = a2 + 4; + k[a2 >> 2] = g2; + } + if ((g2 | 0) == -1) + k[b2 >> 2] = 0; + } + f2 = f2 + 4 | 0; + a2 = i2[j2 >> 0] | 0; + c2 = (a2 & 1) == 0; + if ((f2 | 0) == ((c2 ? h2 : k[e2 >> 2] | 0) + ((c2 ? (a2 & 255) >>> 1 : k[h2 >> 2] | 0) << 2) | 0)) + break c; + } + f2 = Wa() | 0; + en(j2); + break b; + } + while (0); + f2 = k[b2 >> 2] | 0; + en(j2); + break a; + } + while (0); + fb(f2 | 0); + } + while (0); + r = l2; + return f2 | 0; + } + function Sp(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + m2 = r; + r = r + 128 | 0; + f2 = m2; + o2 = m2 + 116 | 0; + p2 = m2 + 104 | 0; + h2 = m2 + 20 | 0; + l2 = m2 + 16 | 0; + j2 = m2 + 12 | 0; + n2 = m2 + 8 | 0; + g2 = m2 + 4 | 0; + i2[o2 >> 0] = i2[58887] | 0; + i2[o2 + 1 >> 0] = i2[58888] | 0; + i2[o2 + 2 >> 0] = i2[58889] | 0; + i2[o2 + 3 >> 0] = i2[58890] | 0; + i2[o2 + 4 >> 0] = i2[58891] | 0; + i2[o2 + 5 >> 0] = i2[58892] | 0; + Ep(o2 + 1 | 0, 58893, 1, k[c2 + 4 >> 2] | 0); + a2 = fp() | 0; + k[f2 >> 2] = e2; + e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; + o2 = Fp(p2, e2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + p2 = Wa() | 0; + zm(a2) | 0; + fb(p2 | 0); + } else { + zm(a2) | 0; + k[g2 >> 2] = k[b2 >> 2]; + o2 = k[l2 >> 2] | 0; + p2 = k[j2 >> 2] | 0; + k[f2 >> 2] = k[g2 >> 2]; + p2 = cv(f2, h2, o2, p2, c2, d2) | 0; + r = m2; + return p2 | 0; + } + return 0; + } + function Tp(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 16 | 0; + v2 = u2; + s2 = Ss(g2, 44212) | 0; + l2 = Ss(g2, 44368) | 0; + Mb[k[(k[l2 >> 2] | 0) + 20 >> 2] & 127](v2, l2); + p2 = i2[v2 >> 0] | 0; + q2 = v2 + 4 | 0; + a: + do + if (!(((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0)) { + x = 0; + Ea(k[(k[s2 >> 2] | 0) + 48 >> 2] | 0, s2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) + t2 = 5; + else { + g2 = d2 + (c2 - a2 << 2) | 0; + k[f2 >> 2] = g2; + t2 = 28; + } + } else { + k[f2 >> 2] = d2; + g2 = i2[a2 >> 0] | 0; + switch (g2 << 24 >> 24) { + case 43: + case 45: { + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, g2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 4; + k[j2 >> 2] = g2; + j2 = a2 + 1 | 0; + break; + } + default: + j2 = a2; + } + b: + do + if ((c2 - j2 | 0) > 1 ? (i2[j2 >> 0] | 0) == 48 : 0) { + g2 = j2 + 1 | 0; + switch (i2[g2 >> 0] | 0) { + case 88: + case 120: + break; + default: { + p2 = j2; + break b; + } + } + x = 0; + h2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, 48) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 4; + k[p2 >> 2] = h2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, i2[g2 >> 0] | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 5; + break a; + } + p2 = k[f2 >> 2] | 0; + k[f2 >> 2] = p2 + 4; + k[p2 >> 2] = g2; + p2 = j2 + 2 | 0; + } else + p2 = j2; + while (0); + if ((p2 | 0) != (c2 | 0) ? (m2 = c2 + -1 | 0, p2 >>> 0 < m2 >>> 0) : 0) { + h2 = p2; + g2 = m2; + do { + o2 = i2[h2 >> 0] | 0; + i2[h2 >> 0] = i2[g2 >> 0] | 0; + i2[g2 >> 0] = o2; + h2 = h2 + 1 | 0; + g2 = g2 + -1 | 0; + } while (h2 >>> 0 < g2 >>> 0); + } + x = 0; + l2 = ta(k[(k[l2 >> 2] | 0) + 16 >> 2] | 0, l2 | 0) | 0; + o2 = x; + x = 0; + if (!(o2 & 1)) { + m2 = v2 + 8 | 0; + n2 = v2 + 1 | 0; + c: + do + if (p2 >>> 0 < c2 >>> 0) { + g2 = 0; + h2 = 0; + o2 = p2; + while (1) { + j2 = i2[((i2[v2 >> 0] & 1) == 0 ? n2 : k[m2 >> 2] | 0) + h2 >> 0] | 0; + if (j2 << 24 >> 24 != 0 & (g2 | 0) == (j2 << 24 >> 24 | 0)) { + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = g2 + 4; + k[g2 >> 2] = l2; + g2 = i2[v2 >> 0] | 0; + j2 = 0; + h2 = (h2 >>> 0 < (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + h2 | 0; + } else + j2 = g2; + x = 0; + g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, i2[o2 >> 0] | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) + break; + w2 = k[f2 >> 2] | 0; + k[f2 >> 2] = w2 + 4; + k[w2 >> 2] = g2; + o2 = o2 + 1 | 0; + if (o2 >>> 0 >= c2 >>> 0) + break c; + else + g2 = j2 + 1 | 0; + } + g2 = Wa() | 0; + break a; + } + while (0); + j2 = a2; + g2 = d2 + (p2 - j2 << 2) | 0; + h2 = k[f2 >> 2] | 0; + if ((g2 | 0) != (h2 | 0)) { + a2 = h2 + -4 | 0; + if (g2 >>> 0 < a2 >>> 0) { + do { + w2 = k[g2 >> 2] | 0; + k[g2 >> 2] = k[a2 >> 2]; + k[a2 >> 2] = w2; + g2 = g2 + 4 | 0; + a2 = a2 + -4 | 0; + } while (g2 >>> 0 < a2 >>> 0); + a2 = j2; + g2 = h2; + t2 = 28; + } else { + a2 = j2; + g2 = h2; + t2 = 28; + } + } else { + a2 = j2; + t2 = 28; + } + } else + t2 = 5; + } + while (0); + if ((t2 | 0) == 5) + g2 = Wa() | 0; + else if ((t2 | 0) == 28) { + k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? g2 : d2 + (b2 - a2 << 2) | 0; + Sm(v2); + r = u2; + return; + } + Sm(v2); + fb(g2 | 0); + } + function Up(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + m2 = r; + r = r + 224 | 0; + g2 = m2 + 8 | 0; + a2 = m2; + o2 = m2 + 196 | 0; + i3 = m2 + 32 | 0; + l2 = m2 + 28 | 0; + j2 = m2 + 24 | 0; + n2 = m2 + 20 | 0; + h2 = m2 + 16 | 0; + p2 = a2; + k[p2 >> 2] = 37; + k[p2 + 4 >> 2] = 0; + Ep(a2 + 1 | 0, 58895, 1, k[c2 + 4 >> 2] | 0); + p2 = fp() | 0; + q2 = g2; + k[q2 >> 2] = e2; + k[q2 + 4 >> 2] = f2; + f2 = o2 + (av(o2, 22, p2, a2, g2) | 0) | 0; + e2 = Fp(o2, f2, c2) | 0; + a2 = tn(c2) | 0; + k[n2 >> 2] = a2; + x = 0; + ya(3, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); + f2 = x; + x = 0; + if (f2 & 1) { + q2 = Wa() | 0; + zm(a2) | 0; + fb(q2 | 0); + } else { + zm(a2) | 0; + k[h2 >> 2] = k[b2 >> 2]; + p2 = k[l2 >> 2] | 0; + q2 = k[j2 >> 2] | 0; + k[g2 >> 2] = k[h2 >> 2]; + q2 = cv(g2, i3, p2, q2, c2, d2) | 0; + r = m2; + return q2 | 0; + } + return 0; + } + function Et(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; + t2 = r; + r = r + 16 | 0; + q2 = t2; + o2 = t2 + 8 | 0; + a: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(k[j2 >> 2] | 0)) + break a; + j2 = j2 + 4 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + k[h2 >> 2] = f2; + k[e2 >> 2] = c2; + m2 = g2; + p2 = a2 + 8 | 0; + b: + do + if (!((f2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0))) { + a2 = f2; + l2 = j2; + c: + while (1) { + v2 = b2; + f2 = k[v2 + 4 >> 2] | 0; + j2 = q2; + k[j2 >> 2] = k[v2 >> 2]; + k[j2 + 4 >> 2] = f2; + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + f2 = Ba(21, a2 | 0, e2 | 0, l2 - c2 >> 2 | 0, m2 - a2 | 0, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 9; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 8; + break; + } + switch (f2 | 0) { + case 0: { + n2 = 1; + break b; + } + case -1: { + j2 = a2; + u2 = 14; + break c; + } + default: { + } + } + j2 = (k[h2 >> 2] | 0) + f2 | 0; + k[h2 >> 2] = j2; + if ((j2 | 0) == (g2 | 0)) { + u2 = 27; + break; + } + if ((l2 | 0) == (d2 | 0)) { + c2 = k[e2 >> 2] | 0; + a2 = j2; + j2 = d2; + } else { + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + c2 = va(34, o2 | 0, 0, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 35; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 34; + break; + } + if ((c2 | 0) == -1) { + n2 = 2; + break b; + } + if (c2 >>> 0 > (m2 - (k[h2 >> 2] | 0) | 0) >>> 0) { + n2 = 1; + break b; + } + if (c2) { + j2 = o2; + while (1) { + l2 = i2[j2 >> 0] | 0; + v2 = k[h2 >> 2] | 0; + k[h2 >> 2] = v2 + 1; + i2[v2 >> 0] = l2; + c2 = c2 + -1 | 0; + if (!c2) + break; + else + j2 = j2 + 1 | 0; + } + } + c2 = (k[e2 >> 2] | 0) + 4 | 0; + k[e2 >> 2] = c2; + d: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(k[j2 >> 2] | 0)) + break d; + j2 = j2 + 4 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + a2 = k[h2 >> 2] | 0; + } + if ((a2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0)) { + u2 = 47; + break b; + } else + l2 = j2; + } + if ((u2 | 0) == 8) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 9) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } else if ((u2 | 0) == 14) { + k[h2 >> 2] = j2; + e: + do + if ((c2 | 0) != (k[e2 >> 2] | 0)) { + while (1) { + v2 = k[c2 >> 2] | 0; + a2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + j2 = va(34, j2 | 0, v2 | 0, q2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + s2 = a2; + break; + } + if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 18; + break; + } + if ((j2 | 0) == -1) + break e; + j2 = (k[h2 >> 2] | 0) + j2 | 0; + k[h2 >> 2] = j2; + c2 = c2 + 4 | 0; + if ((c2 | 0) == (k[e2 >> 2] | 0)) + break e; + } + if ((u2 | 0) == 18) { + v2 = Wa(0) | 0; + oc(v2); + } + c2 = Wa() | 0; + if ((s2 | 0) != 0 ? (x = 0, ta(75, s2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } + while (0); + k[e2 >> 2] = c2; + n2 = 2; + break; + } else if ((u2 | 0) == 27) { + c2 = k[e2 >> 2] | 0; + u2 = 47; + break; + } else if ((u2 | 0) == 34) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 35) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } + } else + u2 = 47; + while (0); + if ((u2 | 0) == 47) + n2 = (c2 | 0) != (d2 | 0) & 1; + r = t2; + return n2 | 0; + } + function Ft(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; + t2 = r; + r = r + 16 | 0; + s2 = t2; + a: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(i2[j2 >> 0] | 0)) + break a; + j2 = j2 + 1 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + k[h2 >> 2] = f2; + k[e2 >> 2] = c2; + n2 = g2; + p2 = a2 + 8 | 0; + b: + do + if (!((f2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0))) { + a2 = f2; + m2 = j2; + c: + while (1) { + l2 = b2; + j2 = k[l2 + 4 >> 2] | 0; + f2 = s2; + k[f2 >> 2] = k[l2 >> 2]; + k[f2 + 4 >> 2] = j2; + f2 = m2; + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + l2 = Ba(22, a2 | 0, e2 | 0, f2 - c2 | 0, n2 - a2 >> 2 | 0, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 9; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 8; + break; + } + switch (l2 | 0) { + case 0: { + o2 = 2; + break b; + } + case -1: { + j2 = a2; + u2 = 14; + break c; + } + default: { + } + } + a2 = (k[h2 >> 2] | 0) + (l2 << 2) | 0; + k[h2 >> 2] = a2; + if ((a2 | 0) == (g2 | 0)) { + u2 = 31; + break; + } + c2 = k[e2 >> 2] | 0; + if ((m2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + c2 = Ea(20, a2 | 0, c2 | 0, 1, b2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 38; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 37; + break; + } + if (c2) { + o2 = 2; + break b; + } + k[h2 >> 2] = (k[h2 >> 2] | 0) + 4; + c2 = (k[e2 >> 2] | 0) + 1 | 0; + k[e2 >> 2] = c2; + d: + do + if ((c2 | 0) == (d2 | 0)) + j2 = d2; + else { + j2 = c2; + while (1) { + if (!(i2[j2 >> 0] | 0)) + break d; + j2 = j2 + 1 | 0; + if ((j2 | 0) == (d2 | 0)) { + j2 = d2; + break; + } + } + } + while (0); + a2 = k[h2 >> 2] | 0; + } + if ((a2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0)) { + u2 = 47; + break b; + } else + m2 = j2; + } + if ((u2 | 0) == 8) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 9) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } else if ((u2 | 0) == 14) { + k[h2 >> 2] = j2; + e: + do + if ((c2 | 0) != (k[e2 >> 2] | 0)) { + a2 = j2; + f: + while (1) { + j2 = Ak(k[p2 >> 2] | 0) | 0; + x = 0; + a2 = Ea(20, a2 | 0, c2 | 0, f2 - c2 | 0, s2 | 0) | 0; + v2 = x; + x = 0; + if (v2 & 1) { + u2 = 19; + break; + } + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + u2 = 18; + break; + } + switch (a2 | 0) { + case -1: { + u2 = 25; + break f; + } + case -2: { + u2 = 26; + break f; + } + case 0: { + c2 = c2 + 1 | 0; + break; + } + default: + c2 = c2 + a2 | 0; + } + a2 = (k[h2 >> 2] | 0) + 4 | 0; + k[h2 >> 2] = a2; + if ((c2 | 0) == (k[e2 >> 2] | 0)) { + q2 = c2; + break e; + } + } + if ((u2 | 0) == 18) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 19) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } else if ((u2 | 0) == 25) { + k[e2 >> 2] = c2; + o2 = 2; + break b; + } else if ((u2 | 0) == 26) { + k[e2 >> 2] = c2; + o2 = 1; + break b; + } + } else + q2 = c2; + while (0); + k[e2 >> 2] = q2; + o2 = (q2 | 0) != (d2 | 0) & 1; + break; + } else if ((u2 | 0) == 31) { + c2 = k[e2 >> 2] | 0; + u2 = 47; + break; + } else if ((u2 | 0) == 37) { + v2 = Wa(0) | 0; + oc(v2); + } else if ((u2 | 0) == 38) { + c2 = Wa() | 0; + if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { + v2 = Wa(0) | 0; + oc(v2); + } + fb(c2 | 0); + } + } else + u2 = 47; + while (0); + if ((u2 | 0) == 47) + o2 = (c2 | 0) != (d2 | 0) & 1; + r = t2; + return o2 | 0; + } + function Gt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = r; + r = r + 16 | 0; + f2 = g2; + k[e2 >> 2] = c2; + c2 = Ak(k[a2 + 8 >> 2] | 0) | 0; + x = 0; + a2 = va(34, f2 | 0, 0, b2 | 0) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + f2 = Wa() | 0; + if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } + fb(f2 | 0); + } + if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, b2 = x, x = 0, b2 & 1) : 0) { + b2 = Wa(0) | 0; + oc(b2); + } + switch (a2 | 0) { + case 0: + case -1: { + f2 = 2; + break; + } + default: { + a2 = a2 + -1 | 0; + if (a2 >>> 0 <= (d2 - (k[e2 >> 2] | 0) | 0) >>> 0) + if (!a2) + f2 = 0; + else + while (1) { + b2 = i2[f2 >> 0] | 0; + d2 = k[e2 >> 2] | 0; + k[e2 >> 2] = d2 + 1; + i2[d2 >> 0] = b2; + a2 = a2 + -1 | 0; + if (!a2) { + f2 = 0; + break; + } else + f2 = f2 + 1 | 0; + } + else + f2 = 1; + } + } + r = g2; + return f2 | 0; + } + function Ht(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + b2 = a2 + 8 | 0; + x = 0; + c2 = ta(75, k[b2 >> 2] | 0) | 0; + d2 = x; + x = 0; + do + if (d2 & 1) + e2 = 16; + else { + x = 0; + d2 = va(35, 0, 0, 4) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa(0) | 0; + if (!c2) + break; + x = 0; + ta(75, c2 | 0) | 0; + g2 = x; + x = 0; + if (!(g2 & 1)) + break; + g2 = Wa(0) | 0; + oc(g2); + } + if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } + if (!d2) { + a2 = k[b2 >> 2] | 0; + if (a2) { + x = 0; + a2 = ta(75, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + e2 = 16; + break; + } + if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } else + f2 = 0; + } else + f2 = 1; + } else + f2 = -1; + return f2 | 0; + } + while (0); + if ((e2 | 0) == 16) + a2 = Wa(0) | 0; + oc(a2); + return 0; + } + function It(a2) { + a2 = a2 | 0; + return 0; + } + function Jt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + j2 = d2; + i3 = a2 + 8 | 0; + a: + do + if ((c2 | 0) == (d2 | 0) | (e2 | 0) == 0) + a2 = 0; + else { + a2 = 0; + h2 = 0; + while (1) { + g2 = Ak(k[i3 >> 2] | 0) | 0; + x = 0; + f2 = va(36, c2 | 0, j2 - c2 | 0, b2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + m2 = g2; + break; + } + if ((g2 | 0) != 0 ? (x = 0, ta(75, g2 | 0) | 0, n2 = x, x = 0, n2 & 1) : 0) { + l2 = 5; + break; + } + switch (f2 | 0) { + case -2: + case -1: + break a; + case 0: { + c2 = c2 + 1 | 0; + f2 = 1; + break; + } + default: + c2 = c2 + f2 | 0; + } + a2 = f2 + a2 | 0; + h2 = h2 + 1 | 0; + if ((c2 | 0) == (d2 | 0) | h2 >>> 0 >= e2 >>> 0) + break a; + } + if ((l2 | 0) == 5) { + n2 = Wa(0) | 0; + oc(n2); + } + a2 = Wa() | 0; + if ((m2 | 0) != 0 ? (x = 0, ta(75, m2 | 0) | 0, n2 = x, x = 0, n2 & 1) : 0) { + n2 = Wa(0) | 0; + oc(n2); + } + fb(a2 | 0); + } + while (0); + return a2 | 0; + } + function Kt(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + a2 = k[a2 + 8 >> 2] | 0; + if (a2) { + x = 0; + a2 = ta(75, a2 | 0) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, c2 = x, x = 0, c2 & 1) : 0) { + c2 = Wa(0) | 0; + oc(c2); + } else + b2 = 4; + } else + b2 = 1; + return b2 | 0; + } + function Lt(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Mt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Rv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Nt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Sv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Ot(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + k[e2 >> 2] = c2; + return 3; + } + function Pt(a2) { + a2 = a2 | 0; + return 0; + } + function Qt(a2) { + a2 = a2 | 0; + return 0; + } + function Rt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + return Tv(c2, d2, e2, 1114111, 0) | 0; + } + function St(a2) { + a2 = a2 | 0; + return 4; + } + function Tt(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Ut(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Uv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Vt(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var i3 = 0; + a2 = r; + r = r + 16 | 0; + i3 = a2 + 4 | 0; + b2 = a2; + k[i3 >> 2] = c2; + k[b2 >> 2] = f2; + g2 = Vv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; + k[e2 >> 2] = k[i3 >> 2]; + k[h2 >> 2] = k[b2 >> 2]; + r = a2; + return g2 | 0; + } + function Wt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + k[e2 >> 2] = c2; + return 3; + } + function Xt(a2) { + a2 = a2 | 0; + return 0; + } + function Yt(a2) { + a2 = a2 | 0; + return 0; + } + function Zt(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + return Wv(c2, d2, e2, 1114111, 0) | 0; + } + function _t(a2) { + a2 = a2 | 0; + return 4; + } + function $t(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function au(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function bu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44384; + i2[a2 + 8 >> 0] = 46; + i2[a2 + 9 >> 0] = 44; + a2 = a2 + 12 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function cu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 + 4 >> 2] = b2 + -1; + k[a2 >> 2] = 44424; + k[a2 + 8 >> 2] = 46; + k[a2 + 12 >> 2] = 44; + a2 = a2 + 16 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + return; + } + function du(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 44384; + Sm(a2 + 12 | 0); + return; + } + function eu(a2) { + a2 = a2 | 0; + du(a2); + mj(a2); + return; + } + function fu(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 44424; + Sm(a2 + 16 | 0); + return; + } + function gu(a2) { + a2 = a2 | 0; + fu(a2); + mj(a2); + return; + } + function hu(a2) { + a2 = a2 | 0; + return i2[a2 + 8 >> 0] | 0; + } + function iu(a2) { + a2 = a2 | 0; + return k[a2 + 8 >> 2] | 0; + } + function ju(a2) { + a2 = a2 | 0; + return i2[a2 + 9 >> 0] | 0; + } + function ku(a2) { + a2 = a2 | 0; + return k[a2 + 12 >> 2] | 0; + } + function lu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Pm(a2, b2 + 12 | 0); + return; + } + function mu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Pm(a2, b2 + 16 | 0); + return; + } + function nu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Qm(a2, 59024, 4); + return; + } + function ou(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + cn(a2, 44996, zl(44996) | 0); + return; + } + function pu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Qm(a2, 59029, 5); + return; + } + function qu(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + cn(a2, 45016, zl(45016) | 0); + return; + } + function ru(a2) { + a2 = a2 | 0; + switch (k[a2 + 4 >> 2] & 74 | 0) { + case 64: { + a2 = 8; + break; + } + case 8: { + a2 = 16; + break; + } + case 0: { + a2 = 0; + break; + } + default: + a2 = 10; + } + return a2 | 0; + } + function su(a2) { + a2 = a2 | 0; + do + if ((i2[2464] | 0) == 0 ? (Qa(2464) | 0) != 0 : 0) { + if ((i2[2472] | 0) == 0 ? (Qa(2472) | 0) != 0 : 0) { + a2 = 45040; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 45208); + tb(193, 0, w | 0) | 0; + Ya(2472); + } + x = 0; + Aa(41, 45040, 59035) | 0; + a2 = x; + x = 0; + if (((((((((((((!(a2 & 1) ? (x = 0, Aa(41, 45052, 59042) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45064, 59049) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45076, 59057) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45088, 59067) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45100, 59076) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45112, 59083) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45124, 59092) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45136, 59096) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45148, 59100) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45160, 59104) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45172, 59108) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45184, 59112) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45196, 59116) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11302] = 45040; + Ya(2464); + break; + } + a2 = Wa() | 0; + Bb(2464); + fb(a2 | 0); + } + while (0); + return k[11302] | 0; + } + function tu(a2) { + a2 = a2 | 0; + do + if ((i2[2480] | 0) == 0 ? (Qa(2480) | 0) != 0 : 0) { + if ((i2[2488] | 0) == 0 ? (Qa(2488) | 0) != 0 : 0) { + a2 = 45212; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 45380); + tb(194, 0, w | 0) | 0; + Ya(2488); + } + x = 0; + Aa(42, 45212, 45380) | 0; + a2 = x; + x = 0; + if (((((((((((((!(a2 & 1) ? (x = 0, Aa(42, 45224, 45408) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45236, 45436) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45248, 45468) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45260, 45508) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45272, 45544) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45284, 45572) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45296, 45608) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45308, 45624) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45320, 45640) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45332, 45656) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45344, 45672) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45356, 45688) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45368, 45704) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11430] = 45212; + Ya(2480); + break; + } + a2 = Wa() | 0; + Bb(2480); + fb(a2 | 0); + } + while (0); + return k[11430] | 0; + } + function uu(a2) { + a2 = a2 | 0; + a: + do + if ((i2[2496] | 0) == 0 ? (Qa(2496) | 0) != 0 : 0) { + if ((i2[2504] | 0) == 0 ? (Qa(2504) | 0) != 0 : 0) { + a2 = 45724; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 46012); + tb(195, 0, w | 0) | 0; + Ya(2504); + } + x = 0; + Aa(41, 45724, 59120) | 0; + a2 = x; + x = 0; + do + if ((((((((((((((!(a2 & 1) ? (x = 0, Aa(41, 45736, 59128) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45748, 59137) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45760, 59143) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45772, 59149) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45784, 59153) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45796, 59158) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45808, 59163) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45820, 59170) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45832, 59180) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45844, 59188) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45856, 59197) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45868, 59206) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45880, 59210) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45892, 59214) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + x = 0; + Aa(41, 45904, 59218) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45916, 59149) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45928, 59222) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45940, 59226) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45952, 59230) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45964, 59234) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45976, 59238) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 45988, 59242) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(41, 46e3, 59246) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + k[11503] = 45724; + Ya(2496); + break a; + } + while (0); + a2 = Wa() | 0; + Bb(2496); + fb(a2 | 0); + } + while (0); + return k[11503] | 0; + } + function vu(a2) { + a2 = a2 | 0; + a: + do + if ((i2[2512] | 0) == 0 ? (Qa(2512) | 0) != 0 : 0) { + if ((i2[2520] | 0) == 0 ? (Qa(2520) | 0) != 0 : 0) { + a2 = 46016; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 46304); + tb(196, 0, w | 0) | 0; + Ya(2520); + } + x = 0; + Aa(42, 46016, 46304) | 0; + a2 = x; + x = 0; + do + if ((((((((((((((!(a2 & 1) ? (x = 0, Aa(42, 46028, 46336) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46040, 46372) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46052, 46396) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46064, 46420) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46076, 46436) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46088, 46456) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46100, 46476) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46112, 46504) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46124, 46544) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46136, 46576) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46148, 46612) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46160, 46648) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46172, 46664) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46184, 46680) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + x = 0; + Aa(42, 46196, 46696) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46208, 46420) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46220, 46712) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46232, 46728) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46244, 46744) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46256, 46760) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46268, 46776) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46280, 46792) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + x = 0; + Aa(42, 46292, 46808) | 0; + a2 = x; + x = 0; + if (a2 & 1) + break; + k[11706] = 46016; + Ya(2512); + break a; + } + while (0); + a2 = Wa() | 0; + Bb(2512); + fb(a2 | 0); + } + while (0); + return k[11706] | 0; + } + function wu(a2) { + a2 = a2 | 0; + do + if ((i2[2528] | 0) == 0 ? (Qa(2528) | 0) != 0 : 0) { + if ((i2[2536] | 0) == 0 ? (Qa(2536) | 0) != 0 : 0) { + a2 = 46828; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 47116); + tb(197, 0, w | 0) | 0; + Ya(2536); + } + x = 0; + Aa(41, 46828, 59250) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Aa(41, 46840, 59253) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11779] = 46828; + Ya(2528); + break; + } + a2 = Wa() | 0; + Bb(2528); + fb(a2 | 0); + } + while (0); + return k[11779] | 0; + } + function xu(a2) { + a2 = a2 | 0; + do + if ((i2[2544] | 0) == 0 ? (Qa(2544) | 0) != 0 : 0) { + if ((i2[2552] | 0) == 0 ? (Qa(2552) | 0) != 0 : 0) { + a2 = 47120; + do { + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + a2 = a2 + 12 | 0; + } while ((a2 | 0) != 47408); + tb(198, 0, w | 0) | 0; + Ya(2552); + } + x = 0; + Aa(42, 47120, 47408) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Aa(42, 47132, 47420) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { + k[11858] = 47120; + Ya(2544); + break; + } + a2 = Wa() | 0; + Bb(2544); + fb(a2 | 0); + } + while (0); + return k[11858] | 0; + } + function yu(a2) { + a2 = a2 | 0; + do + if ((i2[2560] | 0) == 0 ? (Qa(2560) | 0) != 0 : 0) { + x = 0; + Fa(5, 47436, 59256, 8); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2560); + fb(a2 | 0); + } else { + tb(199, 47436, w | 0) | 0; + Ya(2560); + break; + } + } + while (0); + return 47436; + } + function zu(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2568] | 0) == 0 ? (Qa(2568) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47448) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47484, 47448, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47484, w | 0) | 0; + Ya(2568); + break; + } + b2 = Wa() | 0; + Bb(2568); + fb(b2 | 0); + } + while (0); + return 47484; + } + function Au(a2) { + a2 = a2 | 0; + do + if ((i2[2576] | 0) == 0 ? (Qa(2576) | 0) != 0 : 0) { + x = 0; + Fa(5, 47496, 59265, 8); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2576); + fb(a2 | 0); + } else { + tb(199, 47496, w | 0) | 0; + Ya(2576); + break; + } + } + while (0); + return 47496; + } + function Bu(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2584] | 0) == 0 ? (Qa(2584) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47508) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47544, 47508, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47544, w | 0) | 0; + Ya(2584); + break; + } + b2 = Wa() | 0; + Bb(2584); + fb(b2 | 0); + } + while (0); + return 47544; + } + function Cu(a2) { + a2 = a2 | 0; + do + if ((i2[2592] | 0) == 0 ? (Qa(2592) | 0) != 0 : 0) { + x = 0; + Fa(5, 47556, 59274, 20); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2592); + fb(a2 | 0); + } else { + tb(199, 47556, w | 0) | 0; + Ya(2592); + break; + } + } + while (0); + return 47556; + } + function Du(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2600] | 0) == 0 ? (Qa(2600) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47568) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47652, 47568, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47652, w | 0) | 0; + Ya(2600); + break; + } + b2 = Wa() | 0; + Bb(2600); + fb(b2 | 0); + } + while (0); + return 47652; + } + function Eu(a2) { + a2 = a2 | 0; + do + if ((i2[2608] | 0) == 0 ? (Qa(2608) | 0) != 0 : 0) { + x = 0; + Fa(5, 47664, 59295, 11); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Bb(2608); + fb(a2 | 0); + } else { + tb(199, 47664, w | 0) | 0; + Ya(2608); + break; + } + } + while (0); + return 47664; + } + function Fu(a2) { + a2 = a2 | 0; + var b2 = 0; + do + if ((i2[2616] | 0) == 0 ? (Qa(2616) | 0) != 0 : 0) { + x = 0; + a2 = ta(76, 47676) | 0; + b2 = x; + x = 0; + if (!(b2 & 1) ? (x = 0, Fa(15, 47724, 47676, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { + tb(200, 47724, w | 0) | 0; + Ya(2616); + break; + } + b2 = Wa() | 0; + Bb(2616); + fb(b2 | 0); + } + while (0); + return 47724; + } + function Gu(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + k[a2 >> 2] = 44304; + a2 = a2 + 8 | 0; + b2 = k[a2 >> 2] | 0; + x = 0; + c2 = Da(3) | 0; + d2 = x; + x = 0; + do + if (!(d2 & 1)) { + if ((b2 | 0) != (c2 | 0) ? (x = 0, qa(188, k[a2 >> 2] | 0), d2 = x, x = 0, d2 & 1) : 0) + break; + return; + } + while (0); + d2 = Wa(0) | 0; + oc(d2); + } + function Hu(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; + z2 = r; + r = r + 112 | 0; + j2 = z2; + n2 = (d2 - c2 | 0) / 12 | 0; + do + if (n2 >>> 0 > 100) { + j2 = Pl(n2) | 0; + if ((j2 | 0) == 0 ? (x = 0, Ga(6), y2 = x, x = 0, y2 & 1) : 0) { + h2 = 0; + q2 = 6; + break; + } + h2 = j2; + q2 = 11; + } else { + h2 = 0; + q2 = 11; + } + while (0); + a: + do + if ((q2 | 0) == 11) { + if ((c2 | 0) == (d2 | 0)) + m2 = 0; + else { + q2 = c2; + o2 = 0; + p2 = j2; + while (1) { + m2 = i2[q2 >> 0] | 0; + if (!(m2 & 1)) + m2 = (m2 & 255) >>> 1; + else + m2 = k[q2 + 4 >> 2] | 0; + if (!m2) { + i2[p2 >> 0] = 2; + m2 = o2 + 1 | 0; + n2 = n2 + -1 | 0; + } else { + i2[p2 >> 0] = 1; + m2 = o2; + } + q2 = q2 + 12 | 0; + if ((q2 | 0) == (d2 | 0)) + break; + else { + o2 = m2; + p2 = p2 + 1 | 0; + } + } + } + w2 = (c2 | 0) == (d2 | 0); + y2 = (c2 | 0) == (d2 | 0); + v2 = 0; + s2 = m2; + b: + while (1) { + m2 = k[a2 >> 2] | 0; + do + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break b; + } + if ((m2 | 0) == -1) { + k[a2 >> 2] = 0; + m2 = 0; + break; + } else { + m2 = k[a2 >> 2] | 0; + break; + } + } + } else + m2 = 0; + while (0); + q2 = (m2 | 0) == 0; + o2 = k[b2 >> 2] | 0; + if (o2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break; + } + if ((m2 | 0) == -1) { + k[b2 >> 2] = 0; + o2 = 0; + } + } + } else + o2 = 0; + p2 = (o2 | 0) == 0; + m2 = k[a2 >> 2] | 0; + if (!((n2 | 0) != 0 & (q2 ^ p2))) { + q2 = 64; + break; + } + o2 = k[m2 + 12 >> 2] | 0; + if ((o2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break; + } + } else + m2 = l[o2 >> 0] | 0; + m2 = m2 & 255; + if (!g2) { + x = 0; + m2 = Aa(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, m2 | 0) | 0; + u2 = x; + x = 0; + if (u2 & 1) { + q2 = 5; + break; + } + } + u2 = v2 + 1 | 0; + if (w2) { + m2 = 0; + q2 = s2; + } else { + p2 = 0; + t2 = c2; + q2 = s2; + s2 = j2; + while (1) { + do + if ((i2[s2 >> 0] | 0) == 1) { + if (!(i2[t2 >> 0] & 1)) + o2 = t2 + 1 | 0; + else + o2 = k[t2 + 8 >> 2] | 0; + o2 = i2[o2 + v2 >> 0] | 0; + if (!g2) { + x = 0; + o2 = Aa(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, o2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 4; + break b; + } + } + if (m2 << 24 >> 24 != o2 << 24 >> 24) { + i2[s2 >> 0] = 0; + o2 = p2; + n2 = n2 + -1 | 0; + break; + } + o2 = i2[t2 >> 0] | 0; + if (!(o2 & 1)) + o2 = (o2 & 255) >>> 1; + else + o2 = k[t2 + 4 >> 2] | 0; + if ((o2 | 0) == (u2 | 0)) { + i2[s2 >> 0] = 2; + o2 = 1; + q2 = q2 + 1 | 0; + n2 = n2 + -1 | 0; + } else + o2 = 1; + } else + o2 = p2; + while (0); + t2 = t2 + 12 | 0; + if ((t2 | 0) == (d2 | 0)) { + m2 = o2; + break; + } else { + p2 = o2; + s2 = s2 + 1 | 0; + } + } + } + if (!m2) { + v2 = u2; + s2 = q2; + continue; + } + m2 = k[a2 >> 2] | 0; + o2 = m2 + 12 | 0; + p2 = k[o2 >> 2] | 0; + if ((p2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[m2 >> 2] | 0) + 40 >> 2] | 0, m2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 5; + break; + } + } else + k[o2 >> 2] = p2 + 1; + if ((q2 + n2 | 0) >>> 0 < 2 | y2) { + v2 = u2; + s2 = q2; + continue; + } else { + m2 = c2; + p2 = q2; + q2 = j2; + } + while (1) { + if ((i2[q2 >> 0] | 0) == 2) { + o2 = i2[m2 >> 0] | 0; + if (!(o2 & 1)) + o2 = (o2 & 255) >>> 1; + else + o2 = k[m2 + 4 >> 2] | 0; + if ((o2 | 0) != (u2 | 0)) { + i2[q2 >> 0] = 0; + p2 = p2 + -1 | 0; + } + } + m2 = m2 + 12 | 0; + if ((m2 | 0) == (d2 | 0)) { + v2 = u2; + s2 = p2; + continue b; + } else + q2 = q2 + 1 | 0; + } + } + if ((q2 | 0) == 4) { + c2 = Wa() | 0; + break; + } else if ((q2 | 0) == 5) { + c2 = Wa() | 0; + break; + } else if ((q2 | 0) == 64) { + do + if (m2) { + if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 6; + break a; + } + if ((m2 | 0) == -1) { + k[a2 >> 2] = 0; + m2 = 0; + break; + } else { + m2 = k[a2 >> 2] | 0; + break; + } + } + } else + m2 = 0; + while (0); + n2 = (m2 | 0) == 0; + do + if (!p2) { + if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; + A2 = x; + x = 0; + if (A2 & 1) { + q2 = 6; + break a; + } + if ((m2 | 0) == -1) { + k[b2 >> 2] = 0; + q2 = 76; + break; + } + } + if (!n2) + q2 = 77; + } else + q2 = 76; + while (0); + if ((q2 | 0) == 76 ? n2 : 0) + q2 = 77; + if ((q2 | 0) == 77) + k[f2 >> 2] = k[f2 >> 2] | 2; + c: + do + if ((c2 | 0) == (d2 | 0)) + q2 = 81; + else + while (1) { + if ((i2[j2 >> 0] | 0) == 2) + break c; + c2 = c2 + 12 | 0; + if ((c2 | 0) == (d2 | 0)) { + q2 = 81; + break; + } else + j2 = j2 + 1 | 0; + } + while (0); + if ((q2 | 0) == 81) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = d2; + } + if (h2) + Ql(h2); + r = z2; + return c2 | 0; + } + } + while (0); + if ((q2 | 0) == 6) + c2 = Wa() | 0; + if (h2) + Ql(h2); + fb(c2 | 0); + return 0; + } + function Iu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[B2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, B2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(21, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + k[f2 >> 2] = d2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Ju(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + g2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (g2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (g2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (g2) { + h2 = 0; + break; + } else + h2 = 0; + } + g2 = i2[B2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + g2 | 0)) { + x = 0; + Fa(8, B2 | 0, g2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + g2; + } + j2 = a2 + 12 | 0; + g2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + g2 = l[g2 >> 0] | 0; + if (ep(g2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(22, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + g2 = M; + E2 = x; + x = 0; + if (!(E2 & 1)) { + E2 = f2; + k[E2 >> 2] = d2; + k[E2 + 4 >> 2] = g2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Ku(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0; + B2 = r; + r = r + 240 | 0; + t2 = B2 + 202 | 0; + g2 = B2 + 200 | 0; + D2 = B2 + 24 | 0; + C2 = B2 + 12 | 0; + v2 = B2 + 8 | 0; + z2 = B2 + 40 | 0; + A2 = B2 + 4 | 0; + w2 = B2; + u2 = ru(d2) | 0; + up(D2, d2, t2, g2); + k[C2 >> 2] = 0; + k[C2 + 4 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + if (!(i2[C2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, a2 | 0, 0); + s2 = x; + x = 0; + a: + do + if (!(s2 & 1)) { + p2 = C2 + 8 | 0; + q2 = C2 + 1 | 0; + d2 = (i2[C2 >> 0] & 1) == 0 ? q2 : k[p2 >> 2] | 0; + k[v2 >> 2] = d2; + k[A2 >> 2] = z2; + k[w2 >> 2] = 0; + s2 = C2 + 4 | 0; + o2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + E2 = 16; + break; + } + } else + E2 = 16; + while (0); + if ((E2 | 0) == 16) { + E2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[C2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[s2 >> 2] | 0; + if ((k[v2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, C2 | 0, h2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break; + } + if (!(i2[C2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[C2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, C2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + E2 = 24; + break; + } + d2 = (i2[C2 >> 0] & 1) == 0 ? q2 : k[p2 >> 2] | 0; + k[v2 >> 2] = d2 + h2; + } + m2 = a2 + 12 | 0; + h2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, u2, d2, v2, w2, o2, D2, z2, A2, t2) | 0) + break; + g2 = k[m2 >> 2] | 0; + if ((g2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = g2 + 1; + continue; + } + } + if ((E2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + F2 = i2[D2 >> 0] | 0; + if ((((F2 & 1) == 0 ? (F2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) | 0) != 0 ? (y2 = k[A2 >> 2] | 0, (y2 - z2 | 0) < 160) : 0) { + F2 = k[w2 >> 2] | 0; + k[A2 >> 2] = y2 + 4; + k[y2 >> 2] = F2; + } + x = 0; + d2 = Ea(23, d2 | 0, k[v2 >> 2] | 0, e2 | 0, u2 | 0) | 0; + F2 = x; + x = 0; + if (!(F2 & 1)) { + j[f2 >> 1] = d2; + cs(D2, z2, k[A2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + F2 = x; + x = 0; + if (F2 & 1) { + E2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + E2 = 49; + break; + } + } + if (!d2) + E2 = 50; + } else + E2 = 49; + while (0); + if ((E2 | 0) == 49 ? d2 : 0) + E2 = 50; + if ((E2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + F2 = k[b2 >> 2] | 0; + Sm(C2); + Sm(D2); + r = B2; + return F2 | 0; + } else + E2 = 25; + } else + E2 = 25; + while (0); + if ((E2 | 0) == 25) + a2 = Wa() | 0; + Sm(C2); + Sm(D2); + fb(a2 | 0); + return 0; + } + function Lu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[B2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, B2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(24, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + k[f2 >> 2] = d2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Mu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + h2 = (a2 | 0) == 0; + g2 = k[c2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) + if (h2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (h2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + g2 = 0; + } + h2 = i2[B2 >> 0] | 0; + h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { + x = 0; + Fa(8, B2 | 0, h2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + h2; + } + j2 = a2 + 12 | 0; + h2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + h2 = l[h2 >> 0] | 0; + if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(25, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + k[f2 >> 2] = d2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Nu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 240 | 0; + s2 = A2 + 202 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + up(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = i2[g2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + g2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (g2) + break; + else + break b; + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break b; + } + if ((j2 | 0) != -1) + if (g2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + D2 = 16; + break; + } + } else + D2 = 16; + while (0); + if ((D2 | 0) == 16) { + D2 = 0; + if (g2) { + h2 = 0; + break; + } else + h2 = 0; + } + g2 = i2[B2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (d2 + g2 | 0)) { + x = 0; + Fa(8, B2 | 0, g2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + if (!(i2[B2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, d2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 24; + break; + } + d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = d2 + g2; + } + j2 = a2 + 12 | 0; + g2 = k[j2 >> 2] | 0; + m2 = a2 + 16 | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } + } else + g2 = l[g2 >> 0] | 0; + if (ep(g2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) + break; + g2 = k[j2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 24; + break; + } else + continue; + } else { + k[j2 >> 2] = g2 + 1; + continue; + } + } + if ((D2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + d2 = Ea(26, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + g2 = M; + E2 = x; + x = 0; + if (!(E2 & 1)) { + E2 = f2; + k[E2 >> 2] = d2; + k[E2 + 4 >> 2] = g2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + D2 = 49; + break; + } + } + if (!d2) + D2 = 50; + } else + D2 = 49; + while (0); + if ((D2 | 0) == 49 ? d2 : 0) + D2 = 50; + if ((D2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 25; + } else + D2 = 25; + while (0); + if ((D2 | 0) == 25) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Ou(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + E2 = r; + r = r + 240 | 0; + v2 = E2 + 208 | 0; + h2 = E2 + 203 | 0; + j2 = E2 + 202 | 0; + G2 = E2 + 24 | 0; + F2 = E2 + 12 | 0; + y2 = E2 + 8 | 0; + C2 = E2 + 40 | 0; + D2 = E2 + 4 | 0; + z2 = E2; + A2 = E2 + 201 | 0; + w2 = E2 + 200 | 0; + vp(G2, d2, v2, h2, j2); + k[F2 >> 2] = 0; + k[F2 + 4 >> 2] = 0; + k[F2 + 8 >> 2] = 0; + if (!(i2[F2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, a2 | 0, 0); + u2 = x; + x = 0; + a: + do + if (!(u2 & 1)) { + s2 = F2 + 8 | 0; + t2 = F2 + 1 | 0; + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2; + k[D2 >> 2] = C2; + k[z2 >> 2] = 0; + i2[A2 >> 0] = 1; + i2[w2 >> 0] = 69; + u2 = F2 + 4 | 0; + q2 = i2[h2 >> 0] | 0; + p2 = i2[j2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + j2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (j2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + H2 = 16; + break; + } + } else + H2 = 16; + while (0); + if ((H2 | 0) == 16) { + H2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[F2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; + if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { + x = 0; + Fa(8, F2 | 0, j2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if (!(i2[F2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2 + j2; + } + m2 = a2 + 12 | 0; + j2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((j2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } + } else + j2 = l[j2 >> 0] | 0; + if (wp(j2 & 255, A2, w2, d2, y2, q2, p2, G2, C2, D2, z2, v2) | 0) + break; + h2 = k[m2 >> 2] | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = h2 + 1; + continue; + } + } + if ((H2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + I2 = i2[G2 >> 0] | 0; + if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { + I2 = k[z2 >> 2] | 0; + k[D2 >> 2] = B2 + 4; + k[B2 >> 2] = I2; + } + x = 0; + g2 = +Ca(1, d2 | 0, k[y2 >> 2] | 0, e2 | 0); + I2 = x; + x = 0; + if (!(I2 & 1)) { + o[f2 >> 2] = g2; + cs(G2, C2, k[D2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + H2 = 49; + break; + } + } + if (!d2) + H2 = 50; + } else + H2 = 49; + while (0); + if ((H2 | 0) == 49 ? d2 : 0) + H2 = 50; + if ((H2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + I2 = k[b2 >> 2] | 0; + Sm(F2); + Sm(G2); + r = E2; + return I2 | 0; + } else + H2 = 25; + } else + H2 = 25; + while (0); + if ((H2 | 0) == 25) + a2 = Wa() | 0; + Sm(F2); + Sm(G2); + fb(a2 | 0); + return 0; + } + function Pu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + E2 = r; + r = r + 240 | 0; + v2 = E2 + 208 | 0; + h2 = E2 + 203 | 0; + j2 = E2 + 202 | 0; + G2 = E2 + 24 | 0; + F2 = E2 + 12 | 0; + y2 = E2 + 8 | 0; + C2 = E2 + 40 | 0; + D2 = E2 + 4 | 0; + z2 = E2; + A2 = E2 + 201 | 0; + w2 = E2 + 200 | 0; + vp(G2, d2, v2, h2, j2); + k[F2 >> 2] = 0; + k[F2 + 4 >> 2] = 0; + k[F2 + 8 >> 2] = 0; + if (!(i2[F2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, a2 | 0, 0); + u2 = x; + x = 0; + a: + do + if (!(u2 & 1)) { + s2 = F2 + 8 | 0; + t2 = F2 + 1 | 0; + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2; + k[D2 >> 2] = C2; + k[z2 >> 2] = 0; + i2[A2 >> 0] = 1; + i2[w2 >> 0] = 69; + u2 = F2 + 4 | 0; + q2 = i2[h2 >> 0] | 0; + o2 = i2[j2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + j2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (j2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + H2 = 16; + break; + } + } else + H2 = 16; + while (0); + if ((H2 | 0) == 16) { + H2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[F2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; + if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { + x = 0; + Fa(8, F2 | 0, j2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if (!(i2[F2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2 + j2; + } + m2 = a2 + 12 | 0; + j2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((j2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } + } else + j2 = l[j2 >> 0] | 0; + if (wp(j2 & 255, A2, w2, d2, y2, q2, o2, G2, C2, D2, z2, v2) | 0) + break; + h2 = k[m2 >> 2] | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = h2 + 1; + continue; + } + } + if ((H2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + I2 = i2[G2 >> 0] | 0; + if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { + I2 = k[z2 >> 2] | 0; + k[D2 >> 2] = B2 + 4; + k[B2 >> 2] = I2; + } + x = 0; + g2 = +Ca(2, d2 | 0, k[y2 >> 2] | 0, e2 | 0); + I2 = x; + x = 0; + if (!(I2 & 1)) { + p[f2 >> 3] = g2; + cs(G2, C2, k[D2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + H2 = 49; + break; + } + } + if (!d2) + H2 = 50; + } else + H2 = 49; + while (0); + if ((H2 | 0) == 49 ? d2 : 0) + H2 = 50; + if ((H2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + I2 = k[b2 >> 2] | 0; + Sm(F2); + Sm(G2); + r = E2; + return I2 | 0; + } else + H2 = 25; + } else + H2 = 25; + while (0); + if ((H2 | 0) == 25) + a2 = Wa() | 0; + Sm(F2); + Sm(G2); + fb(a2 | 0); + return 0; + } + function Qu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; + E2 = r; + r = r + 240 | 0; + v2 = E2 + 208 | 0; + h2 = E2 + 203 | 0; + j2 = E2 + 202 | 0; + G2 = E2 + 24 | 0; + F2 = E2 + 12 | 0; + y2 = E2 + 8 | 0; + C2 = E2 + 40 | 0; + D2 = E2 + 4 | 0; + z2 = E2; + A2 = E2 + 201 | 0; + w2 = E2 + 200 | 0; + vp(G2, d2, v2, h2, j2); + k[F2 >> 2] = 0; + k[F2 + 4 >> 2] = 0; + k[F2 + 8 >> 2] = 0; + if (!(i2[F2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, a2 | 0, 0); + u2 = x; + x = 0; + a: + do + if (!(u2 & 1)) { + s2 = F2 + 8 | 0; + t2 = F2 + 1 | 0; + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2; + k[D2 >> 2] = C2; + k[z2 >> 2] = 0; + i2[A2 >> 0] = 1; + i2[w2 >> 0] = 69; + u2 = F2 + 4 | 0; + q2 = i2[h2 >> 0] | 0; + o2 = i2[j2 >> 0] | 0; + a2 = k[b2 >> 2] | 0; + b: + while (1) { + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + j2 = (a2 | 0) == 0; + h2 = k[c2 >> 2] | 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) + if (j2) + break; + else + break b; + x = 0; + m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break b; + } + if ((m2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + H2 = 16; + break; + } + } else + H2 = 16; + while (0); + if ((H2 | 0) == 16) { + H2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[F2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; + if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { + x = 0; + Fa(8, F2 | 0, j2 << 1 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + if (!(i2[F2 >> 0] & 1)) + d2 = 10; + else + d2 = (k[F2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, F2 | 0, d2 | 0, 0); + n2 = x; + x = 0; + if (n2 & 1) { + H2 = 24; + break; + } + d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; + k[y2 >> 2] = d2 + j2; + } + m2 = a2 + 12 | 0; + j2 = k[m2 >> 2] | 0; + n2 = a2 + 16 | 0; + if ((j2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } + } else + j2 = l[j2 >> 0] | 0; + if (wp(j2 & 255, A2, w2, d2, y2, q2, o2, G2, C2, D2, z2, v2) | 0) + break; + h2 = k[m2 >> 2] | 0; + if ((h2 | 0) == (k[n2 >> 2] | 0)) { + x = 0; + ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 24; + break; + } else + continue; + } else { + k[m2 >> 2] = h2 + 1; + continue; + } + } + if ((H2 | 0) == 24) { + a2 = Wa() | 0; + break; + } + I2 = i2[G2 >> 0] | 0; + if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { + I2 = k[z2 >> 2] | 0; + k[D2 >> 2] = B2 + 4; + k[B2 >> 2] = I2; + } + x = 0; + g2 = +Ca(3, d2 | 0, k[y2 >> 2] | 0, e2 | 0); + I2 = x; + x = 0; + if (!(I2 & 1)) { + p[f2 >> 3] = g2; + cs(G2, C2, k[D2 >> 2] | 0, e2); + if (a2) { + if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break; + } + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + a2 = 0; + } + } + } else + a2 = 0; + d2 = (a2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + I2 = x; + x = 0; + if (I2 & 1) { + H2 = 25; + break a; + } + if ((a2 | 0) == -1) { + k[c2 >> 2] = 0; + H2 = 49; + break; + } + } + if (!d2) + H2 = 50; + } else + H2 = 49; + while (0); + if ((H2 | 0) == 49 ? d2 : 0) + H2 = 50; + if ((H2 | 0) == 50) + k[e2 >> 2] = k[e2 >> 2] | 2; + I2 = k[b2 >> 2] | 0; + Sm(F2); + Sm(G2); + r = E2; + return I2 | 0; + } else + H2 = 25; + } else + H2 = 25; + while (0); + if ((H2 | 0) == 25) + a2 = Wa() | 0; + Sm(F2); + Sm(G2); + fb(a2 | 0); + return 0; + } + function Ru(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + k[f2 >> 2] = d2; + d2 = Ak(b2) | 0; + b2 = pl(a2, c2, f2) | 0; + if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { + f2 = Wa(0) | 0; + oc(f2); + } + r = e2; + return b2 | 0; + } + function Su(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; + y2 = r; + r = r + 112 | 0; + j2 = y2; + m2 = (d2 - c2 | 0) / 12 | 0; + do + if (m2 >>> 0 > 100) { + j2 = Pl(m2) | 0; + if ((j2 | 0) == 0 ? (x = 0, Ga(6), w2 = x, x = 0, w2 & 1) : 0) { + h2 = 0; + o2 = 6; + break; + } + h2 = j2; + o2 = 11; + } else { + h2 = 0; + o2 = 11; + } + while (0); + a: + do + if ((o2 | 0) == 11) { + if ((c2 | 0) == (d2 | 0)) + l2 = 0; + else { + p2 = c2; + n2 = 0; + o2 = j2; + while (1) { + l2 = i2[p2 >> 0] | 0; + if (!(l2 & 1)) + l2 = (l2 & 255) >>> 1; + else + l2 = k[p2 + 4 >> 2] | 0; + if (!l2) { + i2[o2 >> 0] = 2; + l2 = n2 + 1 | 0; + m2 = m2 + -1 | 0; + } else { + i2[o2 >> 0] = 1; + l2 = n2; + } + p2 = p2 + 12 | 0; + if ((p2 | 0) == (d2 | 0)) + break; + else { + n2 = l2; + o2 = o2 + 1 | 0; + } + } + } + v2 = (c2 | 0) == (d2 | 0); + w2 = (c2 | 0) == (d2 | 0); + u2 = 0; + q2 = m2; + b: + while (1) { + m2 = k[a2 >> 2] | 0; + do + if (m2) { + n2 = k[m2 + 12 >> 2] | 0; + if ((n2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break b; + } + } else + m2 = k[n2 >> 2] | 0; + if ((m2 | 0) == -1) { + k[a2 >> 2] = 0; + p2 = 1; + break; + } else { + p2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + p2 = 1; + while (0); + n2 = k[b2 >> 2] | 0; + if (n2) { + m2 = k[n2 + 12 >> 2] | 0; + if ((m2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break; + } + } else + m2 = k[m2 >> 2] | 0; + if ((m2 | 0) == -1) { + k[b2 >> 2] = 0; + n2 = 0; + o2 = 1; + } else + o2 = 0; + } else { + n2 = 0; + o2 = 1; + } + m2 = k[a2 >> 2] | 0; + if (!((q2 | 0) != 0 & (p2 ^ o2))) { + o2 = 66; + break; + } + n2 = k[m2 + 12 >> 2] | 0; + if ((n2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break; + } + } else + m2 = k[n2 >> 2] | 0; + if (!g2) { + x = 0; + m2 = Aa(k[(k[e2 >> 2] | 0) + 28 >> 2] | 0, e2 | 0, m2 | 0) | 0; + t2 = x; + x = 0; + if (t2 & 1) { + o2 = 5; + break; + } + } + t2 = u2 + 1 | 0; + if (v2) { + m2 = 0; + p2 = q2; + } else { + p2 = 0; + s2 = c2; + o2 = q2; + q2 = j2; + while (1) { + do + if ((i2[q2 >> 0] | 0) == 1) { + if (!(i2[s2 >> 0] & 1)) + n2 = s2 + 4 | 0; + else + n2 = k[s2 + 8 >> 2] | 0; + n2 = k[n2 + (u2 << 2) >> 2] | 0; + if (!g2) { + x = 0; + n2 = Aa(k[(k[e2 >> 2] | 0) + 28 >> 2] | 0, e2 | 0, n2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 4; + break b; + } + } + if ((m2 | 0) != (n2 | 0)) { + i2[q2 >> 0] = 0; + n2 = p2; + o2 = o2 + -1 | 0; + break; + } + n2 = i2[s2 >> 0] | 0; + if (!(n2 & 1)) + n2 = (n2 & 255) >>> 1; + else + n2 = k[s2 + 4 >> 2] | 0; + if ((n2 | 0) == (t2 | 0)) { + i2[q2 >> 0] = 2; + n2 = 1; + l2 = l2 + 1 | 0; + o2 = o2 + -1 | 0; + } else + n2 = 1; + } else + n2 = p2; + while (0); + s2 = s2 + 12 | 0; + if ((s2 | 0) == (d2 | 0)) { + m2 = n2; + p2 = o2; + break; + } else { + p2 = n2; + q2 = q2 + 1 | 0; + } + } + } + if (!m2) { + u2 = t2; + q2 = p2; + continue; + } + m2 = k[a2 >> 2] | 0; + n2 = m2 + 12 | 0; + o2 = k[n2 >> 2] | 0; + if ((o2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + ta(k[(k[m2 >> 2] | 0) + 40 >> 2] | 0, m2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 5; + break; + } + } else + k[n2 >> 2] = o2 + 4; + if ((l2 + p2 | 0) >>> 0 < 2 | w2) { + u2 = t2; + q2 = p2; + continue; + } else { + m2 = c2; + o2 = j2; + } + while (1) { + if ((i2[o2 >> 0] | 0) == 2) { + n2 = i2[m2 >> 0] | 0; + if (!(n2 & 1)) + n2 = (n2 & 255) >>> 1; + else + n2 = k[m2 + 4 >> 2] | 0; + if ((n2 | 0) != (t2 | 0)) { + i2[o2 >> 0] = 0; + l2 = l2 + -1 | 0; + } + } + m2 = m2 + 12 | 0; + if ((m2 | 0) == (d2 | 0)) { + u2 = t2; + q2 = p2; + continue b; + } else + o2 = o2 + 1 | 0; + } + } + if ((o2 | 0) == 4) { + c2 = Wa() | 0; + break; + } else if ((o2 | 0) == 5) { + c2 = Wa() | 0; + break; + } else if ((o2 | 0) == 66) { + do + if (m2) { + l2 = k[m2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[m2 + 16 >> 2] | 0)) { + x = 0; + l2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 6; + break a; + } + } else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) == -1) { + k[a2 >> 2] = 0; + m2 = 1; + break; + } else { + m2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + m2 = 1; + while (0); + do + if (n2) { + l2 = k[n2 + 12 >> 2] | 0; + if ((l2 | 0) == (k[n2 + 16 >> 2] | 0)) { + x = 0; + l2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; + z2 = x; + x = 0; + if (z2 & 1) { + o2 = 6; + break a; + } + } else + l2 = k[l2 >> 2] | 0; + if ((l2 | 0) != -1) + if (m2) + break; + else { + o2 = 81; + break; + } + else { + k[b2 >> 2] = 0; + o2 = 79; + break; + } + } else + o2 = 79; + while (0); + if ((o2 | 0) == 79 ? m2 : 0) + o2 = 81; + if ((o2 | 0) == 81) + k[f2 >> 2] = k[f2 >> 2] | 2; + c: + do + if ((c2 | 0) == (d2 | 0)) + o2 = 85; + else + while (1) { + if ((i2[j2 >> 0] | 0) == 2) + break c; + c2 = c2 + 12 | 0; + if ((c2 | 0) == (d2 | 0)) { + o2 = 85; + break; + } else + j2 = j2 + 1 | 0; + } + while (0); + if ((o2 | 0) == 85) { + k[f2 >> 2] = k[f2 >> 2] | 4; + c2 = d2; + } + if (h2) + Ql(h2); + r = y2; + return c2 | 0; + } + } + while (0); + if ((o2 | 0) == 6) + c2 = Wa() | 0; + if (h2) + Ql(h2); + fb(c2 | 0); + return 0; + } + function Tu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (h2) { + g2 = 0; + break; + } else + j2 = 0; + } + g2 = i2[A2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, A2 | 0, g2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { + g2 = j2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(21, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + D2 = x; + x = 0; + if (!(D2 & 1)) { + k[f2 >> 2] = a2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Uu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 0; + j2 = 1; + } else + j2 = 0; + } else { + g2 = 0; + j2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + d2 = k[h2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + d2 = i2[A2 >> 0] | 0; + d2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + d2 | 0)) { + x = 0; + Fa(8, A2 | 0, d2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + d2; + } + j2 = g2 + 12 | 0; + d2 = k[j2 >> 2] | 0; + l2 = g2 + 16 | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if (tp(d2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) + break; + d2 = k[j2 >> 2] | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[g2 >> 2] | 0) + 40 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else + continue; + } else { + k[j2 >> 2] = d2 + 4; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(22, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + d2 = M; + D2 = x; + x = 0; + if (!(D2 & 1)) { + D2 = f2; + k[D2 >> 2] = a2; + k[D2 + 4 >> 2] = d2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Vu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; + A2 = r; + r = r + 320 | 0; + s2 = A2 + 208 | 0; + g2 = A2 + 200 | 0; + C2 = A2 + 24 | 0; + B2 = A2 + 12 | 0; + u2 = A2 + 8 | 0; + y2 = A2 + 40 | 0; + z2 = A2 + 4 | 0; + v2 = A2; + t2 = ru(d2) | 0; + xp(C2, d2, s2, g2); + k[B2 >> 2] = 0; + k[B2 + 4 >> 2] = 0; + k[B2 + 8 >> 2] = 0; + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + o2 = B2 + 8 | 0; + p2 = B2 + 1 | 0; + a2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = a2; + k[z2 >> 2] = y2; + k[v2 >> 2] = 0; + q2 = B2 + 4 | 0; + n2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + l2 = k[c2 >> 2] | 0; + do + if (l2) { + g2 = k[l2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[l2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[l2 >> 2] | 0) + 36 >> 2] | 0, l2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = l2; + break b; + } + else { + k[c2 >> 2] = 0; + D2 = 17; + break; + } + } else + D2 = 17; + while (0); + if ((D2 | 0) == 17) { + D2 = 0; + if (h2) { + g2 = 0; + break; + } else + l2 = 0; + } + g2 = i2[B2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; + if ((k[u2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, B2 | 0, g2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break; + } + if (!(i2[B2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[B2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, B2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + D2 = 25; + break; + } + a2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; + k[u2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, t2, a2, u2, v2, n2, C2, y2, z2, s2) | 0) { + g2 = l2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((D2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + E2 = i2[C2 >> 0] | 0; + if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { + E2 = k[v2 >> 2] | 0; + k[z2 >> 2] = w2 + 4; + k[w2 >> 2] = E2; + } + x = 0; + a2 = Ea(23, a2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; + E2 = x; + x = 0; + if (!(E2 & 1)) { + j[f2 >> 1] = a2; + cs(C2, y2, k[z2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + E2 = x; + x = 0; + if (E2 & 1) { + D2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + D2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + D2 = 51; + break; + } + } else + D2 = 51; + while (0); + if ((D2 | 0) == 51 ? d2 : 0) + D2 = 53; + if ((D2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + E2 = k[b2 >> 2] | 0; + Sm(B2); + Sm(C2); + r = A2; + return E2 | 0; + } else + D2 = 26; + } else + D2 = 26; + while (0); + if ((D2 | 0) == 26) + a2 = Wa() | 0; + Sm(B2); + Sm(C2); + fb(a2 | 0); + return 0; + } + function Wu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (h2) { + g2 = 0; + break; + } else + j2 = 0; + } + g2 = i2[A2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, A2 | 0, g2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { + g2 = j2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(24, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + D2 = x; + x = 0; + if (!(D2 & 1)) { + k[f2 >> 2] = a2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Xu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + h2 = 1; + } else { + d2 = g2; + h2 = 0; + } + } else { + d2 = 0; + h2 = 1; + } + j2 = k[c2 >> 2] | 0; + do + if (j2) { + g2 = k[j2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break; + else { + g2 = j2; + break b; + } + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (h2) { + g2 = 0; + break; + } else + j2 = 0; + } + g2 = i2[A2 >> 0] | 0; + g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { + x = 0; + Fa(8, A2 | 0, g2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + g2; + } + h2 = d2 + 12 | 0; + g2 = k[h2 >> 2] | 0; + l2 = d2 + 16 | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + g2 = k[g2 >> 2] | 0; + if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { + g2 = j2; + break; + } + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else { + g2 = d2; + continue; + } + } else { + k[h2 >> 2] = g2 + 4; + g2 = d2; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(25, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + D2 = x; + x = 0; + if (!(D2 & 1)) { + k[f2 >> 2] = a2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Yu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + z2 = r; + r = r + 320 | 0; + q2 = z2 + 208 | 0; + g2 = z2 + 200 | 0; + B2 = z2 + 24 | 0; + A2 = z2 + 12 | 0; + t2 = z2 + 8 | 0; + w2 = z2 + 40 | 0; + y2 = z2 + 4 | 0; + u2 = z2; + s2 = ru(d2) | 0; + xp(B2, d2, q2, g2); + k[A2 >> 2] = 0; + k[A2 + 4 >> 2] = 0; + k[A2 + 8 >> 2] = 0; + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + p2 = x; + x = 0; + a: + do + if (!(p2 & 1)) { + n2 = A2 + 8 | 0; + o2 = A2 + 1 | 0; + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2; + k[y2 >> 2] = w2; + k[u2 >> 2] = 0; + p2 = A2 + 4 | 0; + m2 = k[g2 >> 2] | 0; + g2 = k[b2 >> 2] | 0; + b: + while (1) { + if (g2) { + d2 = k[g2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) == -1) { + k[b2 >> 2] = 0; + g2 = 0; + j2 = 1; + } else + j2 = 0; + } else { + g2 = 0; + j2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + d2 = k[h2 + 12 >> 2] | 0; + if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break b; + } + } else + d2 = k[d2 >> 2] | 0; + if ((d2 | 0) != -1) + if (j2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + C2 = 17; + break; + } + } else + C2 = 17; + while (0); + if ((C2 | 0) == 17) { + C2 = 0; + if (j2) { + h2 = 0; + break; + } else + h2 = 0; + } + d2 = i2[A2 >> 0] | 0; + d2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[p2 >> 2] | 0; + if ((k[t2 >> 2] | 0) == (a2 + d2 | 0)) { + x = 0; + Fa(8, A2 | 0, d2 << 1 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + if (!(i2[A2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[A2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, A2 | 0, a2 | 0, 0); + l2 = x; + x = 0; + if (l2 & 1) { + C2 = 25; + break; + } + a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; + k[t2 >> 2] = a2 + d2; + } + j2 = g2 + 12 | 0; + d2 = k[j2 >> 2] | 0; + l2 = g2 + 16 | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } + } else + d2 = k[d2 >> 2] | 0; + if (tp(d2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) + break; + d2 = k[j2 >> 2] | 0; + if ((d2 | 0) == (k[l2 >> 2] | 0)) { + x = 0; + ta(k[(k[g2 >> 2] | 0) + 40 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 25; + break; + } else + continue; + } else { + k[j2 >> 2] = d2 + 4; + continue; + } + } + if ((C2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + D2 = i2[B2 >> 0] | 0; + if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { + D2 = k[u2 >> 2] | 0; + k[y2 >> 2] = v2 + 4; + k[v2 >> 2] = D2; + } + x = 0; + a2 = Ea(26, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; + d2 = M; + D2 = x; + x = 0; + if (!(D2 & 1)) { + D2 = f2; + k[D2 >> 2] = a2; + k[D2 + 4 >> 2] = d2; + cs(B2, w2, k[y2 >> 2] | 0, e2); + if (g2) { + a2 = k[g2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + D2 = x; + x = 0; + if (D2 & 1) { + C2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + C2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + C2 = 51; + break; + } + } else + C2 = 51; + while (0); + if ((C2 | 0) == 51 ? d2 : 0) + C2 = 53; + if ((C2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + D2 = k[b2 >> 2] | 0; + Sm(A2); + Sm(B2); + r = z2; + return D2 | 0; + } else + C2 = 26; + } else + C2 = 26; + while (0); + if ((C2 | 0) == 26) + a2 = Wa() | 0; + Sm(A2); + Sm(B2); + fb(a2 | 0); + return 0; + } + function Zu(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; + D2 = r; + r = r + 352 | 0; + u2 = D2 + 208 | 0; + h2 = D2 + 40 | 0; + j2 = D2 + 36 | 0; + F2 = D2 + 24 | 0; + E2 = D2 + 12 | 0; + w2 = D2 + 8 | 0; + B2 = D2 + 48 | 0; + C2 = D2 + 4 | 0; + y2 = D2; + z2 = D2 + 337 | 0; + v2 = D2 + 336 | 0; + yp(F2, d2, u2, h2, j2); + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + t2 = x; + x = 0; + a: + do + if (!(t2 & 1)) { + q2 = E2 + 8 | 0; + s2 = E2 + 1 | 0; + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2; + k[C2 >> 2] = B2; + k[y2 >> 2] = 0; + i2[z2 >> 0] = 1; + i2[v2 >> 0] = 69; + t2 = E2 + 4 | 0; + p2 = k[h2 >> 2] | 0; + n2 = k[j2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + b: + while (1) { + if (d2) { + h2 = k[d2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + l2 = 1; + } else + l2 = 0; + } else { + d2 = 0; + l2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + j2 = k[h2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break b; + } + } else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) != -1) + if (l2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + G2 = 17; + break; + } + } else + G2 = 17; + while (0); + if ((G2 | 0) == 17) { + G2 = 0; + if (l2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[E2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; + if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { + x = 0; + Fa(8, E2 | 0, j2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2 + j2; + } + l2 = d2 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } + } else + j2 = k[j2 >> 2] | 0; + if (zp(j2, z2, v2, a2, w2, p2, n2, F2, B2, C2, y2, u2) | 0) + break; + h2 = k[l2 >> 2] | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } else + continue; + } else { + k[l2 >> 2] = h2 + 4; + continue; + } + } + if ((G2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + H2 = i2[F2 >> 0] | 0; + if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { + H2 = k[y2 >> 2] | 0; + k[C2 >> 2] = A2 + 4; + k[A2 >> 2] = H2; + } + x = 0; + g2 = +Ca(1, a2 | 0, k[w2 >> 2] | 0, e2 | 0); + H2 = x; + x = 0; + if (!(H2 & 1)) { + o[f2 >> 2] = g2; + cs(F2, B2, k[C2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + G2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 51; + break; + } + } else + G2 = 51; + while (0); + if ((G2 | 0) == 51 ? d2 : 0) + G2 = 53; + if ((G2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + H2 = k[b2 >> 2] | 0; + Sm(E2); + Sm(F2); + r = D2; + return H2 | 0; + } else + G2 = 26; + } else + G2 = 26; + while (0); + if ((G2 | 0) == 26) + a2 = Wa() | 0; + Sm(E2); + Sm(F2); + fb(a2 | 0); + return 0; + } + function _u(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; + D2 = r; + r = r + 352 | 0; + u2 = D2 + 208 | 0; + h2 = D2 + 40 | 0; + j2 = D2 + 36 | 0; + F2 = D2 + 24 | 0; + E2 = D2 + 12 | 0; + w2 = D2 + 8 | 0; + B2 = D2 + 48 | 0; + C2 = D2 + 4 | 0; + y2 = D2; + z2 = D2 + 337 | 0; + v2 = D2 + 336 | 0; + yp(F2, d2, u2, h2, j2); + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + t2 = x; + x = 0; + a: + do + if (!(t2 & 1)) { + q2 = E2 + 8 | 0; + s2 = E2 + 1 | 0; + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2; + k[C2 >> 2] = B2; + k[y2 >> 2] = 0; + i2[z2 >> 0] = 1; + i2[v2 >> 0] = 69; + t2 = E2 + 4 | 0; + o2 = k[h2 >> 2] | 0; + n2 = k[j2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + b: + while (1) { + if (d2) { + h2 = k[d2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + l2 = 1; + } else + l2 = 0; + } else { + d2 = 0; + l2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + j2 = k[h2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break b; + } + } else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) != -1) + if (l2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + G2 = 17; + break; + } + } else + G2 = 17; + while (0); + if ((G2 | 0) == 17) { + G2 = 0; + if (l2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[E2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; + if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { + x = 0; + Fa(8, E2 | 0, j2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2 + j2; + } + l2 = d2 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } + } else + j2 = k[j2 >> 2] | 0; + if (zp(j2, z2, v2, a2, w2, o2, n2, F2, B2, C2, y2, u2) | 0) + break; + h2 = k[l2 >> 2] | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } else + continue; + } else { + k[l2 >> 2] = h2 + 4; + continue; + } + } + if ((G2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + H2 = i2[F2 >> 0] | 0; + if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { + H2 = k[y2 >> 2] | 0; + k[C2 >> 2] = A2 + 4; + k[A2 >> 2] = H2; + } + x = 0; + g2 = +Ca(2, a2 | 0, k[w2 >> 2] | 0, e2 | 0); + H2 = x; + x = 0; + if (!(H2 & 1)) { + p[f2 >> 3] = g2; + cs(F2, B2, k[C2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + G2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 51; + break; + } + } else + G2 = 51; + while (0); + if ((G2 | 0) == 51 ? d2 : 0) + G2 = 53; + if ((G2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + H2 = k[b2 >> 2] | 0; + Sm(E2); + Sm(F2); + r = D2; + return H2 | 0; + } else + G2 = 26; + } else + G2 = 26; + while (0); + if ((G2 | 0) == 26) + a2 = Wa() | 0; + Sm(E2); + Sm(F2); + fb(a2 | 0); + return 0; + } + function $u(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; + D2 = r; + r = r + 352 | 0; + u2 = D2 + 208 | 0; + h2 = D2 + 40 | 0; + j2 = D2 + 36 | 0; + F2 = D2 + 24 | 0; + E2 = D2 + 12 | 0; + w2 = D2 + 8 | 0; + B2 = D2 + 48 | 0; + C2 = D2 + 4 | 0; + y2 = D2; + z2 = D2 + 337 | 0; + v2 = D2 + 336 | 0; + yp(F2, d2, u2, h2, j2); + k[E2 >> 2] = 0; + k[E2 + 4 >> 2] = 0; + k[E2 + 8 >> 2] = 0; + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + t2 = x; + x = 0; + a: + do + if (!(t2 & 1)) { + q2 = E2 + 8 | 0; + s2 = E2 + 1 | 0; + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2; + k[C2 >> 2] = B2; + k[y2 >> 2] = 0; + i2[z2 >> 0] = 1; + i2[v2 >> 0] = 69; + t2 = E2 + 4 | 0; + o2 = k[h2 >> 2] | 0; + n2 = k[j2 >> 2] | 0; + d2 = k[b2 >> 2] | 0; + b: + while (1) { + if (d2) { + h2 = k[d2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + } else + h2 = k[h2 >> 2] | 0; + if ((h2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 0; + l2 = 1; + } else + l2 = 0; + } else { + d2 = 0; + l2 = 1; + } + h2 = k[c2 >> 2] | 0; + do + if (h2) { + j2 = k[h2 + 12 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break b; + } + } else + j2 = k[j2 >> 2] | 0; + if ((j2 | 0) != -1) + if (l2) + break; + else + break b; + else { + k[c2 >> 2] = 0; + G2 = 17; + break; + } + } else + G2 = 17; + while (0); + if ((G2 | 0) == 17) { + G2 = 0; + if (l2) { + h2 = 0; + break; + } else + h2 = 0; + } + j2 = i2[E2 >> 0] | 0; + j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; + if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { + x = 0; + Fa(8, E2 | 0, j2 << 1 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + if (!(i2[E2 >> 0] & 1)) + a2 = 10; + else + a2 = (k[E2 >> 2] & -2) + -1 | 0; + x = 0; + Fa(8, E2 | 0, a2 | 0, 0); + m2 = x; + x = 0; + if (m2 & 1) { + G2 = 25; + break; + } + a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; + k[w2 >> 2] = a2 + j2; + } + l2 = d2 + 12 | 0; + j2 = k[l2 >> 2] | 0; + m2 = d2 + 16 | 0; + if ((j2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } + } else + j2 = k[j2 >> 2] | 0; + if (zp(j2, z2, v2, a2, w2, o2, n2, F2, B2, C2, y2, u2) | 0) + break; + h2 = k[l2 >> 2] | 0; + if ((h2 | 0) == (k[m2 >> 2] | 0)) { + x = 0; + ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 25; + break; + } else + continue; + } else { + k[l2 >> 2] = h2 + 4; + continue; + } + } + if ((G2 | 0) == 25) { + a2 = Wa() | 0; + break; + } + H2 = i2[F2 >> 0] | 0; + if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { + H2 = k[y2 >> 2] | 0; + k[C2 >> 2] = A2 + 4; + k[A2 >> 2] = H2; + } + x = 0; + g2 = +Ca(3, a2 | 0, k[w2 >> 2] | 0, e2 | 0); + H2 = x; + x = 0; + if (!(H2 & 1)) { + p[f2 >> 3] = g2; + cs(F2, B2, k[C2 >> 2] | 0, e2); + if (d2) { + a2 = k[d2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) == -1) { + k[b2 >> 2] = 0; + d2 = 1; + } else + d2 = 0; + } else + d2 = 1; + do + if (h2) { + a2 = k[h2 + 12 >> 2] | 0; + if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { + x = 0; + a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; + H2 = x; + x = 0; + if (H2 & 1) { + G2 = 26; + break a; + } + } else + a2 = k[a2 >> 2] | 0; + if ((a2 | 0) != -1) + if (d2) + break; + else { + G2 = 53; + break; + } + else { + k[c2 >> 2] = 0; + G2 = 51; + break; + } + } else + G2 = 51; + while (0); + if ((G2 | 0) == 51 ? d2 : 0) + G2 = 53; + if ((G2 | 0) == 53) + k[e2 >> 2] = k[e2 >> 2] | 2; + H2 = k[b2 >> 2] | 0; + Sm(E2); + Sm(F2); + r = D2; + return H2 | 0; + } else + G2 = 26; + } else + G2 = 26; + while (0); + if ((G2 | 0) == 26) + a2 = Wa() | 0; + Sm(E2); + Sm(F2); + fb(a2 | 0); + return 0; + } + function av(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + f2 = r; + r = r + 16 | 0; + g2 = f2; + k[g2 >> 2] = e2; + e2 = Ak(c2) | 0; + c2 = ol(a2, b2, d2, g2) | 0; + if ((e2 | 0) != 0 ? (x = 0, ta(75, e2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { + g2 = Wa(0) | 0; + oc(g2); + } + r = f2; + return c2 | 0; + } + function bv(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + k[f2 >> 2] = d2; + d2 = Ak(b2) | 0; + x = 0; + b2 = va(37, a2 | 0, c2 | 0, f2 | 0) | 0; + a2 = x; + x = 0; + if (a2 & 1) { + b2 = Wa() | 0; + if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { + f2 = Wa(0) | 0; + oc(f2); + } + fb(b2 | 0); + } else { + if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { + f2 = Wa(0) | 0; + oc(f2); + } + r = e2; + return b2 | 0; + } + return 0; + } + function cv(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + n2 = r; + r = r + 16 | 0; + m2 = n2; + g2 = k[a2 >> 2] | 0; + a: + do + if (!g2) + g2 = 0; + else { + o2 = b2; + j2 = d2 - o2 >> 2; + l2 = e2 + 12 | 0; + h2 = k[l2 >> 2] | 0; + j2 = (h2 | 0) > (j2 | 0) ? h2 - j2 | 0 : 0; + h2 = c2; + o2 = h2 - o2 | 0; + e2 = o2 >> 2; + if ((o2 | 0) > 0 ? (Qb[k[(k[g2 >> 2] | 0) + 48 >> 2] & 63](g2, b2, e2) | 0) != (e2 | 0) : 0) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } + do + if ((j2 | 0) > 0) { + dn(m2, j2, f2); + x = 0; + e2 = va(k[(k[g2 >> 2] | 0) + 48 >> 2] | 0, g2 | 0, ((i2[m2 >> 0] & 1) == 0 ? m2 + 4 | 0 : k[m2 + 8 >> 2] | 0) | 0, j2 | 0) | 0; + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + en(m2); + fb(o2 | 0); + } + if ((e2 | 0) == (j2 | 0)) { + en(m2); + break; + } else { + k[a2 >> 2] = 0; + en(m2); + g2 = 0; + break a; + } + } + while (0); + o2 = d2 - h2 | 0; + d2 = o2 >> 2; + if ((o2 | 0) > 0 ? (Qb[k[(k[g2 >> 2] | 0) + 48 >> 2] & 63](g2, c2, d2) | 0) != (d2 | 0) : 0) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } + k[l2 >> 2] = 0; + } + while (0); + r = n2; + return g2 | 0; + } + function dv(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + f2 = k[a2 >> 2] | 0; + do + if (f2) { + if ((k[f2 + 12 >> 2] | 0) == (k[f2 + 16 >> 2] | 0)) + if ((Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0) == -1) { + k[a2 >> 2] = 0; + f2 = 0; + break; + } else { + f2 = k[a2 >> 2] | 0; + break; + } + } else + f2 = 0; + while (0); + g2 = (f2 | 0) == 0; + f2 = k[b2 >> 2] | 0; + do + if (f2) { + if ((k[f2 + 12 >> 2] | 0) == (k[f2 + 16 >> 2] | 0) ? (Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + r2 = 11; + break; + } + if (g2) + r2 = 13; + else + r2 = 12; + } else + r2 = 11; + while (0); + if ((r2 | 0) == 11) + if (g2) + r2 = 12; + else { + f2 = 0; + r2 = 13; + } + a: + do + if ((r2 | 0) == 12) { + k[c2 >> 2] = k[c2 >> 2] | 6; + f2 = 0; + } else if ((r2 | 0) == 13) { + g2 = k[a2 >> 2] | 0; + h2 = k[g2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = l[h2 >> 0] | 0; + h2 = g2 & 255; + if (h2 << 24 >> 24 > -1 ? (q2 = d2 + 8 | 0, (j[(k[q2 >> 2] | 0) + (g2 << 24 >> 24 << 1) >> 1] & 2048) != 0) : 0) { + m2 = (Qb[k[(k[d2 >> 2] | 0) + 36 >> 2] & 63](d2, h2, 0) | 0) << 24 >> 24; + g2 = k[a2 >> 2] | 0; + h2 = g2 + 12 | 0; + i3 = k[h2 >> 2] | 0; + if ((i3 | 0) == (k[g2 + 16 >> 2] | 0)) { + Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; + o2 = e2; + n2 = f2; + e2 = f2; + f2 = m2; + } else { + k[h2 >> 2] = i3 + 1; + o2 = e2; + n2 = f2; + e2 = f2; + f2 = m2; + } + while (1) { + f2 = f2 + -48 | 0; + p2 = o2 + -1 | 0; + g2 = k[a2 >> 2] | 0; + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) + if ((Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } else { + g2 = k[a2 >> 2] | 0; + break; + } + } else + g2 = 0; + while (0); + i3 = (g2 | 0) == 0; + if (e2) + if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) + if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { + k[b2 >> 2] = 0; + h2 = 0; + e2 = 0; + } else { + h2 = n2; + e2 = n2; + } + else + h2 = n2; + else { + h2 = n2; + e2 = 0; + } + g2 = k[a2 >> 2] | 0; + if (!((o2 | 0) > 1 & (i3 ^ (e2 | 0) == 0))) + break; + i3 = k[g2 + 12 >> 2] | 0; + if ((i3 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = l[i3 >> 0] | 0; + i3 = g2 & 255; + if (i3 << 24 >> 24 <= -1) + break a; + if (!(j[(k[q2 >> 2] | 0) + (g2 << 24 >> 24 << 1) >> 1] & 2048)) + break a; + f2 = ((Qb[k[(k[d2 >> 2] | 0) + 36 >> 2] & 63](d2, i3, 0) | 0) << 24 >> 24) + (f2 * 10 | 0) | 0; + g2 = k[a2 >> 2] | 0; + i3 = g2 + 12 | 0; + m2 = k[i3 >> 2] | 0; + if ((m2 | 0) == (k[g2 + 16 >> 2] | 0)) { + Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; + o2 = p2; + n2 = h2; + continue; + } else { + k[i3 >> 2] = m2 + 1; + o2 = p2; + n2 = h2; + continue; + } + } + do + if (g2) { + if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) + if ((Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1) { + k[a2 >> 2] = 0; + g2 = 0; + break; + } else { + g2 = k[a2 >> 2] | 0; + break; + } + } else + g2 = 0; + while (0); + g2 = (g2 | 0) == 0; + do + if (h2) { + if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0) ? (Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0) == -1 : 0) { + k[b2 >> 2] = 0; + r2 = 50; + break; + } + if (g2) + break a; + } else + r2 = 50; + while (0); + if ((r2 | 0) == 50 ? !g2 : 0) + break; + k[c2 >> 2] = k[c2 >> 2] | 2; + break; + } + k[c2 >> 2] = k[c2 >> 2] | 4; + f2 = 0; + } + while (0); + return f2 | 0; + } + function ev(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + f2 = k[a2 >> 2] | 0; + do + if (f2) { + g2 = k[f2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[f2 + 16 >> 2] | 0)) + f2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + f2 = k[g2 >> 2] | 0; + if ((f2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 1; + break; + } else { + h2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + h2 = 1; + while (0); + g2 = k[b2 >> 2] | 0; + do + if (g2) { + f2 = k[g2 + 12 >> 2] | 0; + if ((f2 | 0) == (k[g2 + 16 >> 2] | 0)) + f2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + f2 = k[f2 >> 2] | 0; + if ((f2 | 0) != -1) + if (h2) { + o2 = 17; + break; + } else { + o2 = 16; + break; + } + else { + k[b2 >> 2] = 0; + o2 = 14; + break; + } + } else + o2 = 14; + while (0); + if ((o2 | 0) == 14) + if (h2) + o2 = 16; + else { + g2 = 0; + o2 = 17; + } + a: + do + if ((o2 | 0) == 16) { + k[c2 >> 2] = k[c2 >> 2] | 6; + f2 = 0; + } else if ((o2 | 0) == 17) { + f2 = k[a2 >> 2] | 0; + h2 = k[f2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[f2 + 16 >> 2] | 0)) + f2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; + else + f2 = k[h2 >> 2] | 0; + if (!(Qb[k[(k[d2 >> 2] | 0) + 12 >> 2] & 63](d2, 2048, f2) | 0)) { + k[c2 >> 2] = k[c2 >> 2] | 4; + f2 = 0; + break; + } + f2 = (Qb[k[(k[d2 >> 2] | 0) + 52 >> 2] & 63](d2, f2, 0) | 0) << 24 >> 24; + h2 = k[a2 >> 2] | 0; + i3 = h2 + 12 | 0; + j2 = k[i3 >> 2] | 0; + if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { + Ob[k[(k[h2 >> 2] | 0) + 40 >> 2] & 127](h2) | 0; + m2 = e2; + l2 = g2; + i3 = g2; + } else { + k[i3 >> 2] = j2 + 4; + m2 = e2; + l2 = g2; + i3 = g2; + } + while (1) { + f2 = f2 + -48 | 0; + n2 = m2 + -1 | 0; + g2 = k[a2 >> 2] | 0; + do + if (g2) { + h2 = k[g2 + 12 >> 2] | 0; + if ((h2 | 0) == (k[g2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; + else + g2 = k[h2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[a2 >> 2] = 0; + j2 = 1; + break; + } else { + j2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + j2 = 1; + while (0); + do + if (i3) { + g2 = k[i3 + 12 >> 2] | 0; + if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) + g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[b2 >> 2] = 0; + i3 = 0; + e2 = 0; + g2 = 1; + break; + } else { + i3 = l2; + e2 = l2; + g2 = (l2 | 0) == 0; + break; + } + } else { + i3 = l2; + e2 = 0; + g2 = 1; + } + while (0); + h2 = k[a2 >> 2] | 0; + if (!((m2 | 0) > 1 & (j2 ^ g2))) + break; + g2 = k[h2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[h2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; + else + g2 = k[g2 >> 2] | 0; + if (!(Qb[k[(k[d2 >> 2] | 0) + 12 >> 2] & 63](d2, 2048, g2) | 0)) + break a; + f2 = ((Qb[k[(k[d2 >> 2] | 0) + 52 >> 2] & 63](d2, g2, 0) | 0) << 24 >> 24) + (f2 * 10 | 0) | 0; + g2 = k[a2 >> 2] | 0; + h2 = g2 + 12 | 0; + j2 = k[h2 >> 2] | 0; + if ((j2 | 0) == (k[g2 + 16 >> 2] | 0)) { + Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; + m2 = n2; + l2 = i3; + i3 = e2; + continue; + } else { + k[h2 >> 2] = j2 + 4; + m2 = n2; + l2 = i3; + i3 = e2; + continue; + } + } + do + if (h2) { + g2 = k[h2 + 12 >> 2] | 0; + if ((g2 | 0) == (k[h2 + 16 >> 2] | 0)) + g2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) == -1) { + k[a2 >> 2] = 0; + h2 = 1; + break; + } else { + h2 = (k[a2 >> 2] | 0) == 0; + break; + } + } else + h2 = 1; + while (0); + do + if (i3) { + g2 = k[i3 + 12 >> 2] | 0; + if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) + g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; + else + g2 = k[g2 >> 2] | 0; + if ((g2 | 0) != -1) + if (h2) + break a; + else + break; + else { + k[b2 >> 2] = 0; + o2 = 60; + break; + } + } else + o2 = 60; + while (0); + if ((o2 | 0) == 60 ? !h2 : 0) + break; + k[c2 >> 2] = k[c2 >> 2] | 2; + } + while (0); + return f2 | 0; + } + function fv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + f2 = a2 + 4 | 0; + d2 = (k[f2 >> 2] | 0) != 189; + h2 = k[a2 >> 2] | 0; + g2 = h2; + e2 = (k[c2 >> 2] | 0) - g2 | 0; + e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; + g2 = (k[b2 >> 2] | 0) - g2 | 0; + h2 = Sl(d2 ? h2 : 0, e2) | 0; + if (!h2) + ak(); + do + if (!d2) { + d2 = k[a2 >> 2] | 0; + k[a2 >> 2] = h2; + if (d2) { + x = 0; + qa(k[f2 >> 2] | 0, d2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa(0) | 0; + oc(h2); + } else { + i3 = k[a2 >> 2] | 0; + break; + } + } else + i3 = h2; + } else { + k[a2 >> 2] = h2; + i3 = h2; + } + while (0); + k[f2 >> 2] = 201; + k[b2 >> 2] = i3 + g2; + k[c2 >> 2] = (k[a2 >> 2] | 0) + e2; + return; + } + function gv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + f2 = a2 + 4 | 0; + d2 = (k[f2 >> 2] | 0) != 189; + h2 = k[a2 >> 2] | 0; + g2 = h2; + e2 = (k[c2 >> 2] | 0) - g2 | 0; + e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; + g2 = (k[b2 >> 2] | 0) - g2 >> 2; + h2 = Sl(d2 ? h2 : 0, e2) | 0; + if (!h2) + ak(); + do + if (!d2) { + d2 = k[a2 >> 2] | 0; + k[a2 >> 2] = h2; + if (d2) { + x = 0; + qa(k[f2 >> 2] | 0, d2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa(0) | 0; + oc(h2); + } else { + i3 = k[a2 >> 2] | 0; + break; + } + } else + i3 = h2; + } else { + k[a2 >> 2] = h2; + i3 = h2; + } + while (0); + k[f2 >> 2] = 201; + k[b2 >> 2] = i3 + (g2 << 2); + k[c2 >> 2] = (k[a2 >> 2] | 0) + (e2 >>> 2 << 2); + return; + } + function hv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + f2 = b2; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) { + e2 = 10; + j2 = (d2 & 255) >>> 1; + } else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + j2 = k[a2 + 4 >> 2] | 0; + d2 = d2 & 255; + } + h2 = c2 - f2 | 0; + do + if ((c2 | 0) != (b2 | 0)) { + if ((e2 - j2 | 0) >>> 0 < h2 >>> 0) { + bn(a2, e2, j2 + h2 - e2 | 0, j2, j2, 0, 0); + d2 = i2[a2 >> 0] | 0; + } + if (!(d2 & 1)) + g2 = a2 + 1 | 0; + else + g2 = k[a2 + 8 >> 2] | 0; + f2 = c2 + (j2 - f2) | 0; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + e2 = g2 + j2 | 0; + while (1) { + i2[e2 >> 0] = i2[d2 >> 0] | 0; + d2 = d2 + 1 | 0; + if ((d2 | 0) == (c2 | 0)) + break; + else + e2 = e2 + 1 | 0; + } + } + i2[g2 + f2 >> 0] = 0; + d2 = j2 + h2 | 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = d2 << 1; + break; + } else { + k[a2 + 4 >> 2] = d2; + break; + } + } + while (0); + return a2 | 0; + } + function iv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + f2 = a2 + 4 | 0; + d2 = (k[f2 >> 2] | 0) != 189; + h2 = k[a2 >> 2] | 0; + g2 = h2; + e2 = (k[c2 >> 2] | 0) - g2 | 0; + e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; + g2 = (k[b2 >> 2] | 0) - g2 >> 2; + h2 = Sl(d2 ? h2 : 0, e2) | 0; + if (!h2) + ak(); + do + if (!d2) { + d2 = k[a2 >> 2] | 0; + k[a2 >> 2] = h2; + if (d2) { + x = 0; + qa(k[f2 >> 2] | 0, d2 | 0); + h2 = x; + x = 0; + if (h2 & 1) { + h2 = Wa(0) | 0; + oc(h2); + } else { + i3 = k[a2 >> 2] | 0; + break; + } + } else + i3 = h2; + } else { + k[a2 >> 2] = h2; + i3 = h2; + } + while (0); + k[f2 >> 2] = 201; + k[b2 >> 2] = i3 + (g2 << 2); + k[c2 >> 2] = (k[a2 >> 2] | 0) + (e2 >>> 2 << 2); + return; + } + function jv(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + f2 = b2; + d2 = i2[a2 >> 0] | 0; + if (!(d2 & 1)) { + e2 = 1; + j2 = (d2 & 255) >>> 1; + } else { + d2 = k[a2 >> 2] | 0; + e2 = (d2 & -2) + -1 | 0; + j2 = k[a2 + 4 >> 2] | 0; + d2 = d2 & 255; + } + h2 = c2 - f2 >> 2; + do + if (h2) { + if ((e2 - j2 | 0) >>> 0 < h2 >>> 0) { + ln(a2, e2, j2 + h2 - e2 | 0, j2, j2, 0, 0); + d2 = i2[a2 >> 0] | 0; + } + if (!(d2 & 1)) + g2 = a2 + 4 | 0; + else + g2 = k[a2 + 8 >> 2] | 0; + f2 = j2 + ((c2 - f2 | 0) >>> 2) | 0; + if ((b2 | 0) != (c2 | 0)) { + d2 = b2; + e2 = g2 + (j2 << 2) | 0; + while (1) { + k[e2 >> 2] = k[d2 >> 2]; + d2 = d2 + 4 | 0; + if ((d2 | 0) == (c2 | 0)) + break; + else + e2 = e2 + 4 | 0; + } + } + k[g2 + (f2 << 2) >> 2] = 0; + d2 = j2 + h2 | 0; + if (!(i2[a2 >> 0] & 1)) { + i2[a2 >> 0] = d2 << 1; + break; + } else { + k[a2 + 4 >> 2] = d2; + break; + } + } + while (0); + return a2 | 0; + } + function kv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + i2[a2 + 128 >> 0] = 0; + do + if (b2) { + x = 0; + ra(125, a2 | 0, b2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa() | 0; + Nv(a2); + fb(c2 | 0); + } else { + cw(a2, b2); + break; + } + } + while (0); + return; + } + function lv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43148) | 0); + return; + } + function mv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43188) | 0); + return; + } + function nv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44220) | 0); + return; + } + function ov(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44212) | 0); + return; + } + function pv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44280) | 0); + return; + } + function qv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44288) | 0); + return; + } + function rv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44344) | 0); + return; + } + function sv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44352) | 0); + return; + } + function tv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44360) | 0); + return; + } + function uv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44368) | 0); + return; + } + function vv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43260) | 0); + return; + } + function wv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43332) | 0); + return; + } + function xv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43392) | 0); + return; + } + function yv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43452) | 0); + return; + } + function zv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43764) | 0); + return; + } + function Av(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43828) | 0); + return; + } + function Bv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43892) | 0); + return; + } + function Cv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43956) | 0); + return; + } + function Dv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43992) | 0); + return; + } + function Ev(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44028) | 0); + return; + } + function Fv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44064) | 0); + return; + } + function Gv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44100) | 0); + return; + } + function Hv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43544) | 0); + return; + } + function Iv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43636) | 0); + return; + } + function Jv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43668) | 0); + return; + } + function Kv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(43700) | 0); + return; + } + function Lv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44140) | 0); + return; + } + function Mv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Hs(a2, b2, Rs(44180) | 0); + return; + } + function Nv(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + c2 = k[a2 >> 2] | 0; + do + if (c2) { + d2 = a2 + 4 | 0; + b2 = k[d2 >> 2] | 0; + if ((b2 | 0) != (c2 | 0)) { + do + b2 = b2 + -4 | 0; + while ((b2 | 0) != (c2 | 0)); + k[d2 >> 2] = b2; + } + if ((a2 + 16 | 0) == (c2 | 0)) { + i2[a2 + 128 >> 0] = 0; + break; + } else { + mj(c2); + break; + } + } + while (0); + return; + } + function Ov(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = a2 + 4 | 0; + c2 = k[g2 >> 2] | 0; + d2 = k[a2 >> 2] | 0; + e2 = c2 - d2 >> 2; + if (e2 >>> 0 >= b2 >>> 0) { + if (e2 >>> 0 > b2 >>> 0 ? (f2 = d2 + (b2 << 2) | 0, (c2 | 0) != (f2 | 0)) : 0) { + do + c2 = c2 + -4 | 0; + while ((c2 | 0) != (f2 | 0)); + k[g2 >> 2] = c2; + } + } else + bw(a2, b2 - e2 | 0); + return; + } + function Pv(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + c2 = k[a2 + 8 >> 2] | 0; + if ((k[a2 + 12 >> 2] | 0) - c2 >> 2 >>> 0 > b2 >>> 0) + c2 = (k[c2 + (b2 << 2) >> 2] | 0) != 0; + else + c2 = 0; + return c2 | 0; + } + function Qv(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = a2 + 4 | 0; + b2 = k[c2 >> 2] | 0; + c2 = k[c2 + 4 >> 2] | 0; + a2 = (k[a2 >> 2] | 0) + (c2 >> 1) | 0; + if (c2 & 1) + b2 = k[(k[a2 >> 2] | 0) + b2 >> 2] | 0; + Lb[b2 & 255](a2); + return; + } + function Rv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var l2 = 0, n2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + if (h2 & 2) + if ((e2 - d2 | 0) < 3) + a2 = 1; + else { + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = -17; + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 1; + i2[l2 >> 0] = -69; + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 1; + i2[l2 >> 0] = -65; + l2 = 4; + } + else + l2 = 4; + a: + do + if ((l2 | 0) == 4) { + n2 = b2; + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 < b2 >>> 0) + while (1) { + h2 = j[a2 >> 1] | 0; + l2 = h2 & 65535; + if (l2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + do + if ((h2 & 65535) < 128) { + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 1) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2; + } else { + if ((h2 & 65535) < 2048) { + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 2) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = l2 >>> 6 | 192; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 & 63 | 128; + break; + } + if ((h2 & 65535) < 55296) { + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 3) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = l2 >>> 12 | 224; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 >>> 6 & 63 | 128; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 & 63 | 128; + break; + } + if ((h2 & 65535) >= 56320) { + if ((h2 & 65535) < 57344) { + a2 = 2; + break a; + } + a2 = k[f2 >> 2] | 0; + if ((e2 - a2 | 0) < 3) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = l2 >>> 12 | 224; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 >>> 6 & 63 | 128; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 & 63 | 128; + break; + } + if ((n2 - a2 | 0) < 4) { + a2 = 1; + break a; + } + a2 = a2 + 2 | 0; + h2 = m[a2 >> 1] | 0; + if ((h2 & 64512 | 0) != 56320) { + a2 = 2; + break a; + } + if ((e2 - (k[f2 >> 2] | 0) | 0) < 4) { + a2 = 1; + break a; + } + d2 = l2 & 960; + if (((d2 << 10) + 65536 | l2 << 10 & 64512 | h2 & 1023) >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[c2 >> 2] = a2; + a2 = (d2 >>> 6) + 1 | 0; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = a2 >>> 2 | 240; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 >>> 2 & 15 | a2 << 4 & 48 | 128; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = l2 << 4 & 48 | h2 >>> 6 & 15 | 128; + l2 = k[f2 >> 2] | 0; + k[f2 >> 2] = l2 + 1; + i2[l2 >> 0] = h2 & 63 | 128; + } + while (0); + a2 = (k[c2 >> 2] | 0) + 2 | 0; + k[c2 >> 2] = a2; + if (a2 >>> 0 >= b2 >>> 0) { + a2 = 0; + break; + } + } + else + a2 = 0; + } + while (0); + return a2 | 0; + } + function Sv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + if (h2 & 4) { + a2 = k[c2 >> 2] | 0; + h2 = b2; + if ((((h2 - a2 | 0) > 2 ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) ? (i2[a2 + 2 >> 0] | 0) == -65 : 0) { + k[c2 >> 2] = a2 + 3; + m2 = k[f2 >> 2] | 0; + } else + m2 = d2; + } else { + m2 = d2; + h2 = b2; + } + q2 = e2; + d2 = k[c2 >> 2] | 0; + a2 = d2 >>> 0 < b2 >>> 0; + a: + do + if (a2 & m2 >>> 0 < e2 >>> 0) + while (1) { + a2 = i2[d2 >> 0] | 0; + o2 = a2 & 255; + if (o2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + do + if (a2 << 24 >> 24 > -1) { + j[m2 >> 1] = a2 & 255; + k[c2 >> 2] = d2 + 1; + } else { + if ((a2 & 255) < 194) { + a2 = 2; + break a; + } + if ((a2 & 255) < 224) { + if ((h2 - d2 | 0) < 2) { + a2 = 1; + break a; + } + a2 = l[d2 + 1 >> 0] | 0; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = a2 & 63 | o2 << 6 & 1984; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + j[m2 >> 1] = a2; + k[c2 >> 2] = d2 + 2; + break; + } + if ((a2 & 255) < 240) { + if ((h2 - d2 | 0) < 3) { + a2 = 1; + break a; + } + n2 = i2[d2 + 1 >> 0] | 0; + a2 = i2[d2 + 2 >> 0] | 0; + switch (o2 | 0) { + case 224: { + if ((n2 & -32) << 24 >> 24 != -96) { + a2 = 2; + break a; + } + break; + } + case 237: { + if ((n2 & -32) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((n2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + a2 = a2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = (n2 & 255) << 6 & 4032 | o2 << 12 | a2 & 63; + if ((a2 & 65535) >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + j[m2 >> 1] = a2; + k[c2 >> 2] = d2 + 3; + break; + } + if ((a2 & 255) >= 245) { + a2 = 2; + break a; + } + if ((h2 - d2 | 0) < 4) { + a2 = 1; + break a; + } + n2 = i2[d2 + 1 >> 0] | 0; + a2 = i2[d2 + 2 >> 0] | 0; + d2 = i2[d2 + 3 >> 0] | 0; + switch (o2 | 0) { + case 240: { + if ((n2 + 112 & 255) >= 48) { + a2 = 2; + break a; + } + break; + } + case 244: { + if ((n2 & -16) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((n2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + p2 = a2 & 255; + if ((p2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = d2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + if ((q2 - m2 | 0) < 4) { + a2 = 1; + break a; + } + o2 = o2 & 7; + d2 = n2 & 255; + n2 = p2 << 6; + a2 = a2 & 63; + if ((d2 << 12 & 258048 | o2 << 18 | n2 & 4032 | a2) >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + j[m2 >> 1] = d2 << 2 & 60 | p2 >>> 4 & 3 | ((d2 >>> 4 & 3 | o2 << 2) << 6) + 16320 | 55296; + p2 = m2 + 2 | 0; + k[f2 >> 2] = p2; + j[p2 >> 1] = a2 | n2 & 960 | 56320; + k[c2 >> 2] = (k[c2 >> 2] | 0) + 4; + } + while (0); + m2 = (k[f2 >> 2] | 0) + 2 | 0; + k[f2 >> 2] = m2; + d2 = k[c2 >> 2] | 0; + a2 = d2 >>> 0 < b2 >>> 0; + if (!(a2 & m2 >>> 0 < e2 >>> 0)) { + r2 = 39; + break; + } + } + else + r2 = 39; + while (0); + if ((r2 | 0) == 39) + a2 = a2 & 1; + return a2 | 0; + } + function Tv(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, k2 = 0, m2 = 0, n2 = 0; + n2 = b2; + if ((((e2 & 4 | 0) != 0 ? (n2 - a2 | 0) > 2 : 0) ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) + e2 = (i2[a2 + 2 >> 0] | 0) == -65 ? a2 + 3 | 0 : a2; + else + e2 = a2; + a: + do + if ((c2 | 0) != 0 & e2 >>> 0 < b2 >>> 0) { + m2 = e2; + f2 = 0; + b: + while (1) { + e2 = i2[m2 >> 0] | 0; + k2 = e2 & 255; + if (k2 >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + do + if (e2 << 24 >> 24 > -1) + e2 = m2 + 1 | 0; + else { + if ((e2 & 255) < 194) { + e2 = m2; + f2 = 42; + break a; + } + if ((e2 & 255) < 224) { + if ((n2 - m2 | 0) < 2) { + e2 = m2; + f2 = 42; + break a; + } + e2 = l[m2 + 1 >> 0] | 0; + if ((e2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + if ((e2 & 63 | k2 << 6 & 1984) >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2 + 2 | 0; + break; + } + if ((e2 & 255) < 240) { + e2 = m2; + if ((n2 - e2 | 0) < 3) { + e2 = m2; + f2 = 42; + break a; + } + h2 = i2[m2 + 1 >> 0] | 0; + g2 = i2[m2 + 2 >> 0] | 0; + switch (k2 | 0) { + case 224: { + if ((h2 & -32) << 24 >> 24 != -96) { + f2 = 20; + break b; + } + break; + } + case 237: { + if ((h2 & -32) << 24 >> 24 != -128) { + f2 = 22; + break b; + } + break; + } + default: + if ((h2 & -64) << 24 >> 24 != -128) { + f2 = 24; + break b; + } + } + e2 = g2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + if (((h2 & 255) << 6 & 4032 | k2 << 12 & 61440 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2 + 3 | 0; + break; + } + if ((e2 & 255) >= 245) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2; + if ((c2 - f2 | 0) >>> 0 < 2 | (n2 - e2 | 0) < 4) { + e2 = m2; + f2 = 42; + break a; + } + j2 = i2[m2 + 1 >> 0] | 0; + g2 = i2[m2 + 2 >> 0] | 0; + h2 = i2[m2 + 3 >> 0] | 0; + switch (k2 | 0) { + case 240: { + if ((j2 + 112 & 255) >= 48) { + f2 = 32; + break b; + } + break; + } + case 244: { + if ((j2 & -16) << 24 >> 24 != -128) { + f2 = 34; + break b; + } + break; + } + default: + if ((j2 & -64) << 24 >> 24 != -128) { + f2 = 36; + break b; + } + } + g2 = g2 & 255; + if ((g2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + e2 = h2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = m2; + f2 = 42; + break a; + } + if (((j2 & 255) << 12 & 258048 | k2 << 18 & 1835008 | g2 << 6 & 4032 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = m2; + f2 = 42; + break a; + } + e2 = m2 + 4 | 0; + f2 = f2 + 1 | 0; + } + while (0); + f2 = f2 + 1 | 0; + if (!(f2 >>> 0 < c2 >>> 0 & e2 >>> 0 < b2 >>> 0)) { + f2 = 42; + break a; + } else + m2 = e2; + } + if ((f2 | 0) == 20) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 22) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 24) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 32) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 34) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 36) { + e2 = e2 - a2 | 0; + break; + } + } else + f2 = 42; + while (0); + if ((f2 | 0) == 42) + e2 = e2 - a2 | 0; + return e2 | 0; + } + function Uv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, l2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + l2 = e2; + if (h2 & 2) + if ((l2 - d2 | 0) < 3) + a2 = 1; + else { + k[f2 >> 2] = d2 + 1; + i2[d2 >> 0] = -17; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = -69; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = -65; + j2 = 4; + } + else + j2 = 4; + a: + do + if ((j2 | 0) == 4) { + a2 = k[c2 >> 2] | 0; + if (a2 >>> 0 < b2 >>> 0) + while (1) { + h2 = k[a2 >> 2] | 0; + if (h2 >>> 0 > g2 >>> 0 | (h2 & -2048 | 0) == 55296) { + a2 = 2; + break a; + } + do + if (h2 >>> 0 >= 128) { + if (h2 >>> 0 < 2048) { + a2 = k[f2 >> 2] | 0; + if ((l2 - a2 | 0) < 2) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2 >>> 6 | 192; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 & 63 | 128; + break; + } + a2 = k[f2 >> 2] | 0; + e2 = l2 - a2 | 0; + if (h2 >>> 0 < 65536) { + if ((e2 | 0) < 3) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2 >>> 12 | 224; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 >>> 6 & 63 | 128; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 & 63 | 128; + break; + } else { + if ((e2 | 0) < 4) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2 >>> 18 | 240; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 >>> 12 & 63 | 128; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 >>> 6 & 63 | 128; + j2 = k[f2 >> 2] | 0; + k[f2 >> 2] = j2 + 1; + i2[j2 >> 0] = h2 & 63 | 128; + break; + } + } else { + a2 = k[f2 >> 2] | 0; + if ((l2 - a2 | 0) < 1) { + a2 = 1; + break a; + } + k[f2 >> 2] = a2 + 1; + i2[a2 >> 0] = h2; + } + while (0); + a2 = (k[c2 >> 2] | 0) + 4 | 0; + k[c2 >> 2] = a2; + if (a2 >>> 0 >= b2 >>> 0) { + a2 = 0; + break; + } + } + else + a2 = 0; + } + while (0); + return a2 | 0; + } + function Vv(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + var j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + k[c2 >> 2] = a2; + k[f2 >> 2] = d2; + if (h2 & 4) { + a2 = k[c2 >> 2] | 0; + h2 = b2; + if ((((h2 - a2 | 0) > 2 ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) ? (i2[a2 + 2 >> 0] | 0) == -65 : 0) { + k[c2 >> 2] = a2 + 3; + d2 = k[f2 >> 2] | 0; + p2 = h2; + } else + p2 = h2; + } else + p2 = b2; + h2 = k[c2 >> 2] | 0; + a2 = h2 >>> 0 < b2 >>> 0; + a: + do + if (a2 & d2 >>> 0 < e2 >>> 0) + while (1) { + a2 = i2[h2 >> 0] | 0; + o2 = a2 & 255; + do + if (a2 << 24 >> 24 > -1) { + if (o2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = o2; + k[c2 >> 2] = h2 + 1; + } else { + if ((a2 & 255) < 194) { + a2 = 2; + break a; + } + if ((a2 & 255) < 224) { + if ((p2 - h2 | 0) < 2) { + a2 = 1; + break a; + } + a2 = l[h2 + 1 >> 0] | 0; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = a2 & 63 | o2 << 6 & 1984; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = a2; + k[c2 >> 2] = h2 + 2; + break; + } + if ((a2 & 255) < 240) { + if ((p2 - h2 | 0) < 3) { + a2 = 1; + break a; + } + j2 = i2[h2 + 1 >> 0] | 0; + a2 = i2[h2 + 2 >> 0] | 0; + switch (o2 | 0) { + case 224: { + if ((j2 & -32) << 24 >> 24 != -96) { + a2 = 2; + break a; + } + break; + } + case 237: { + if ((j2 & -32) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((j2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + a2 = a2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = (j2 & 255) << 6 & 4032 | o2 << 12 & 61440 | a2 & 63; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = a2; + k[c2 >> 2] = h2 + 3; + break; + } + if ((a2 & 255) >= 245) { + a2 = 2; + break a; + } + if ((p2 - h2 | 0) < 4) { + a2 = 1; + break a; + } + n2 = i2[h2 + 1 >> 0] | 0; + a2 = i2[h2 + 2 >> 0] | 0; + j2 = i2[h2 + 3 >> 0] | 0; + switch (o2 | 0) { + case 240: { + if ((n2 + 112 & 255) >= 48) { + a2 = 2; + break a; + } + break; + } + case 244: { + if ((n2 & -16) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + break; + } + default: + if ((n2 & -64) << 24 >> 24 != -128) { + a2 = 2; + break a; + } + } + m2 = a2 & 255; + if ((m2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = j2 & 255; + if ((a2 & 192 | 0) != 128) { + a2 = 2; + break a; + } + a2 = (n2 & 255) << 12 & 258048 | o2 << 18 & 1835008 | m2 << 6 & 4032 | a2 & 63; + if (a2 >>> 0 > g2 >>> 0) { + a2 = 2; + break a; + } + k[d2 >> 2] = a2; + k[c2 >> 2] = h2 + 4; + } + while (0); + d2 = (k[f2 >> 2] | 0) + 4 | 0; + k[f2 >> 2] = d2; + h2 = k[c2 >> 2] | 0; + a2 = h2 >>> 0 < b2 >>> 0; + if (!(a2 & d2 >>> 0 < e2 >>> 0)) { + q2 = 38; + break; + } + } + else + q2 = 38; + while (0); + if ((q2 | 0) == 38) + a2 = a2 & 1; + return a2 | 0; + } + function Wv(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, k2 = 0, m2 = 0, n2 = 0; + n2 = b2; + if ((((e2 & 4 | 0) != 0 ? (n2 - a2 | 0) > 2 : 0) ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) + e2 = (i2[a2 + 2 >> 0] | 0) == -65 ? a2 + 3 | 0 : a2; + else + e2 = a2; + a: + do + if ((c2 | 0) != 0 & e2 >>> 0 < b2 >>> 0) { + k2 = e2; + m2 = 0; + b: + while (1) { + e2 = i2[k2 >> 0] | 0; + j2 = e2 & 255; + do + if (e2 << 24 >> 24 > -1) { + if (j2 >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 1 | 0; + } else { + if ((e2 & 255) < 194) { + e2 = k2; + f2 = 42; + break a; + } + if ((e2 & 255) < 224) { + if ((n2 - k2 | 0) < 2) { + e2 = k2; + f2 = 42; + break a; + } + e2 = l[k2 + 1 >> 0] | 0; + if ((e2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + if ((e2 & 63 | j2 << 6 & 1984) >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 2 | 0; + break; + } + if ((e2 & 255) < 240) { + e2 = k2; + if ((n2 - e2 | 0) < 3) { + e2 = k2; + f2 = 42; + break a; + } + g2 = i2[k2 + 1 >> 0] | 0; + f2 = i2[k2 + 2 >> 0] | 0; + switch (j2 | 0) { + case 224: { + if ((g2 & -32) << 24 >> 24 != -96) { + f2 = 20; + break b; + } + break; + } + case 237: { + if ((g2 & -32) << 24 >> 24 != -128) { + f2 = 22; + break b; + } + break; + } + default: + if ((g2 & -64) << 24 >> 24 != -128) { + f2 = 24; + break b; + } + } + e2 = f2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + if (((g2 & 255) << 6 & 4032 | j2 << 12 & 61440 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 3 | 0; + break; + } + if ((e2 & 255) >= 245) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2; + if ((n2 - e2 | 0) < 4) { + e2 = k2; + f2 = 42; + break a; + } + h2 = i2[k2 + 1 >> 0] | 0; + f2 = i2[k2 + 2 >> 0] | 0; + g2 = i2[k2 + 3 >> 0] | 0; + switch (j2 | 0) { + case 240: { + if ((h2 + 112 & 255) >= 48) { + f2 = 32; + break b; + } + break; + } + case 244: { + if ((h2 & -16) << 24 >> 24 != -128) { + f2 = 34; + break b; + } + break; + } + default: + if ((h2 & -64) << 24 >> 24 != -128) { + f2 = 36; + break b; + } + } + f2 = f2 & 255; + if ((f2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + e2 = g2 & 255; + if ((e2 & 192 | 0) != 128) { + e2 = k2; + f2 = 42; + break a; + } + if (((h2 & 255) << 12 & 258048 | j2 << 18 & 1835008 | f2 << 6 & 4032 | e2 & 63) >>> 0 > d2 >>> 0) { + e2 = k2; + f2 = 42; + break a; + } + e2 = k2 + 4 | 0; + } + while (0); + m2 = m2 + 1 | 0; + if (!(m2 >>> 0 < c2 >>> 0 & e2 >>> 0 < b2 >>> 0)) { + f2 = 42; + break a; + } else + k2 = e2; + } + if ((f2 | 0) == 20) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 22) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 24) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 32) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 34) { + e2 = e2 - a2 | 0; + break; + } else if ((f2 | 0) == 36) { + e2 = e2 - a2 | 0; + break; + } + } else + f2 = 42; + while (0); + if ((f2 | 0) == 42) + e2 = e2 - a2 | 0; + return e2 | 0; + } + function Xv(a2) { + a2 = a2 | 0; + Sm(45196); + Sm(45184); + Sm(45172); + Sm(45160); + Sm(45148); + Sm(45136); + Sm(45124); + Sm(45112); + Sm(45100); + Sm(45088); + Sm(45076); + Sm(45064); + Sm(45052); + Sm(45040); + return; + } + function Yv(a2) { + a2 = a2 | 0; + en(45368); + en(45356); + en(45344); + en(45332); + en(45320); + en(45308); + en(45296); + en(45284); + en(45272); + en(45260); + en(45248); + en(45236); + en(45224); + en(45212); + return; + } + function Zv(a2) { + a2 = a2 | 0; + Sm(46e3); + Sm(45988); + Sm(45976); + Sm(45964); + Sm(45952); + Sm(45940); + Sm(45928); + Sm(45916); + Sm(45904); + Sm(45892); + Sm(45880); + Sm(45868); + Sm(45856); + Sm(45844); + Sm(45832); + Sm(45820); + Sm(45808); + Sm(45796); + Sm(45784); + Sm(45772); + Sm(45760); + Sm(45748); + Sm(45736); + Sm(45724); + return; + } + function _v(a2) { + a2 = a2 | 0; + en(46292); + en(46280); + en(46268); + en(46256); + en(46244); + en(46232); + en(46220); + en(46208); + en(46196); + en(46184); + en(46172); + en(46160); + en(46148); + en(46136); + en(46124); + en(46112); + en(46100); + en(46088); + en(46076); + en(46064); + en(46052); + en(46040); + en(46028); + en(46016); + return; + } + function $v(a2) { + a2 = a2 | 0; + Sm(47104); + Sm(47092); + Sm(47080); + Sm(47068); + Sm(47056); + Sm(47044); + Sm(47032); + Sm(47020); + Sm(47008); + Sm(46996); + Sm(46984); + Sm(46972); + Sm(46960); + Sm(46948); + Sm(46936); + Sm(46924); + Sm(46912); + Sm(46900); + Sm(46888); + Sm(46876); + Sm(46864); + Sm(46852); + Sm(46840); + Sm(46828); + return; + } + function aw(a2) { + a2 = a2 | 0; + en(47396); + en(47384); + en(47372); + en(47360); + en(47348); + en(47336); + en(47324); + en(47312); + en(47300); + en(47288); + en(47276); + en(47264); + en(47252); + en(47240); + en(47228); + en(47216); + en(47204); + en(47192); + en(47180); + en(47168); + en(47156); + en(47144); + en(47132); + en(47120); + return; + } + function bw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 32 | 0; + h2 = i3; + f2 = k[a2 + 8 >> 2] | 0; + c2 = k[a2 + 4 >> 2] | 0; + if (f2 - c2 >> 2 >>> 0 < b2 >>> 0) { + d2 = k[a2 >> 2] | 0; + g2 = c2 - d2 >> 2; + e2 = g2 + b2 | 0; + if (e2 >>> 0 > 1073741823) + jj(a2); + c2 = f2 - d2 | 0; + if (c2 >> 2 >>> 0 < 536870911) { + c2 = c2 >> 1; + c2 = c2 >>> 0 < e2 >>> 0 ? e2 : c2; + } else + c2 = 1073741823; + dw(h2, c2, g2, a2 + 16 | 0); + g2 = h2 + 8 | 0; + f2 = k[g2 >> 2] | 0; + sw(f2 | 0, 0, b2 << 2 | 0) | 0; + k[g2 >> 2] = f2 + (b2 << 2); + ew(a2, h2); + fw(h2); + } else + cw(a2, b2); + r = i3; + return; + } + function cw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + c2 = a2 + 4 | 0; + a2 = b2; + b2 = k[c2 >> 2] | 0; + do { + k[b2 >> 2] = 0; + b2 = (k[c2 >> 2] | 0) + 4 | 0; + k[c2 >> 2] = b2; + a2 = a2 + -1 | 0; + } while ((a2 | 0) != 0); + return; + } + function dw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = d2; + do + if (b2) { + e2 = d2 + 112 | 0; + if (b2 >>> 0 < 29 & (i2[e2 >> 0] | 0) == 0) { + i2[e2 >> 0] = 1; + break; + } else { + d2 = lj(b2 << 2) | 0; + break; + } + } else + d2 = 0; + while (0); + k[a2 >> 2] = d2; + c2 = d2 + (c2 << 2) | 0; + k[a2 + 8 >> 2] = c2; + k[a2 + 4 >> 2] = c2; + k[a2 + 12 >> 2] = d2 + (b2 << 2); + return; + } + function ew(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = k[a2 >> 2] | 0; + f2 = a2 + 4 | 0; + c2 = b2 + 4 | 0; + e2 = (k[f2 >> 2] | 0) - d2 | 0; + g2 = (k[c2 >> 2] | 0) + (0 - (e2 >> 2) << 2) | 0; + k[c2 >> 2] = g2; + vw(g2 | 0, d2 | 0, e2 | 0) | 0; + e2 = k[a2 >> 2] | 0; + k[a2 >> 2] = k[c2 >> 2]; + k[c2 >> 2] = e2; + e2 = b2 + 8 | 0; + d2 = k[f2 >> 2] | 0; + k[f2 >> 2] = k[e2 >> 2]; + k[e2 >> 2] = d2; + e2 = a2 + 8 | 0; + a2 = b2 + 12 | 0; + d2 = k[e2 >> 2] | 0; + k[e2 >> 2] = k[a2 >> 2]; + k[a2 >> 2] = d2; + k[b2 >> 2] = k[c2 >> 2]; + return; + } + function fw(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + c2 = k[a2 + 4 >> 2] | 0; + d2 = a2 + 8 | 0; + b2 = k[d2 >> 2] | 0; + if ((b2 | 0) != (c2 | 0)) { + do + b2 = b2 + -4 | 0; + while ((b2 | 0) != (c2 | 0)); + k[d2 >> 2] = b2; + } + c2 = k[a2 >> 2] | 0; + do + if (c2) { + b2 = k[a2 + 16 >> 2] | 0; + if ((b2 | 0) == (c2 | 0)) { + i2[b2 + 112 >> 0] = 0; + break; + } else { + mj(c2); + break; + } + } + while (0); + return; + } + function gw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + if (b2 >>> 0 > 1073741823) + jj(a2); + c2 = a2 + 128 | 0; + if (b2 >>> 0 < 29 & (i2[c2 >> 0] | 0) == 0) { + i2[c2 >> 0] = 1; + c2 = a2 + 16 | 0; + } else + c2 = lj(b2 << 2) | 0; + k[a2 + 4 >> 2] = c2; + k[a2 >> 2] = c2; + k[a2 + 8 >> 2] = c2 + (b2 << 2); + return; + } + function hw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) != (b2 | 0)) { + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + d2 = +ql(a2, g2, fp() | 0); + a2 = k[e2 >> 2] | 0; + if (!a2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + break; + } + if ((a2 | 0) == 34) + k[c2 >> 2] = 4; + } else { + k[c2 >> 2] = 4; + d2 = 0; + } + while (0); + r = h2; + return +d2; + } + function iw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) != (b2 | 0)) { + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + d2 = +ql(a2, g2, fp() | 0); + a2 = k[e2 >> 2] | 0; + if (!a2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + break; + } + if ((a2 | 0) == 34) + k[c2 >> 2] = 4; + } else { + k[c2 >> 2] = 4; + d2 = 0; + } + while (0); + r = h2; + return +d2; + } + function jw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) == (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + } else { + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + d2 = +ql(a2, g2, fp() | 0); + a2 = k[e2 >> 2] | 0; + if (!a2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + break; + } + if ((a2 | 0) == 34) + k[c2 >> 2] = 4; + } + while (0); + r = h2; + return +d2; + } + function kw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + break; + } + e2 = mk() | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = 0; + a2 = fk(a2, g2, d2, fp() | 0) | 0; + d2 = k[e2 >> 2] | 0; + if (!d2) + k[e2 >> 2] = f2; + if ((k[g2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + break; + } + if ((d2 | 0) == 34) { + k[c2 >> 2] = 4; + d2 = -1; + a2 = -1; + } else + d2 = M; + } else { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + } + while (0); + M = d2; + r = h2; + return a2 | 0; + } + function lw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = fk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 4294967295 | (e2 | 0) == 34) { + k[c2 >> 2] = 4; + a2 = -1; + break; + } else + break; + } else { + k[c2 >> 2] = 4; + a2 = 0; + } + while (0); + r = j2; + return a2 | 0; + } + function mw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = fk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 4294967295 | (e2 | 0) == 34) { + k[c2 >> 2] = 4; + a2 = -1; + break; + } else + break; + } else { + k[c2 >> 2] = 4; + a2 = 0; + } + while (0); + r = j2; + return a2 | 0; + } + function nw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + do + if ((a2 | 0) != (b2 | 0)) { + if ((i2[a2 >> 0] | 0) == 45) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = fk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 65535 | (e2 | 0) == 34) { + k[c2 >> 2] = 4; + a2 = -1; + break; + } else { + a2 = a2 & 65535; + break; + } + } else { + k[c2 >> 2] = 4; + a2 = 0; + } + while (0); + r = j2; + return a2 | 0; + } + function ow(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 16 | 0; + h2 = i3; + do + if ((a2 | 0) != (b2 | 0)) { + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = gk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + break; + } + if ((e2 | 0) == 34) { + k[c2 >> 2] = 4; + h2 = (d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 0; + M = h2 ? 2147483647 : -2147483648; + r = i3; + return (h2 ? -1 : 0) | 0; + } + } else { + k[c2 >> 2] = 4; + d2 = 0; + a2 = 0; + } + while (0); + M = d2; + r = i3; + return a2 | 0; + } + function pw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + i3 = r; + r = r + 16 | 0; + h2 = i3; + a: + do + if ((a2 | 0) == (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + } else { + f2 = mk() | 0; + g2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + a2 = gk(a2, h2, d2, fp() | 0) | 0; + d2 = M; + e2 = k[f2 >> 2] | 0; + if (!e2) + k[f2 >> 2] = g2; + if ((k[h2 >> 2] | 0) != (b2 | 0)) { + k[c2 >> 2] = 4; + a2 = 0; + break; + } + do + if ((e2 | 0) == 34) { + k[c2 >> 2] = 4; + if ((d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 0) { + a2 = 2147483647; + break a; + } + } else { + if ((d2 | 0) < -1 | (d2 | 0) == -1 & a2 >>> 0 < 2147483648) { + k[c2 >> 2] = 4; + break; + } + if ((d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 2147483647) { + k[c2 >> 2] = 4; + a2 = 2147483647; + break a; + } else + break a; + } + while (0); + a2 = -2147483648; + } + while (0); + r = i3; + return a2 | 0; + } + function qw() { + } + function rw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + d2 = b2 - d2 - (c2 >>> 0 > a2 >>> 0 | 0) >>> 0; + return (M = d2, a2 - c2 >>> 0 | 0) | 0; + } + function sw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = a2 + c2 | 0; + if ((c2 | 0) >= 20) { + b2 = b2 & 255; + f2 = a2 & 3; + g2 = b2 | b2 << 8 | b2 << 16 | b2 << 24; + e2 = d2 & ~3; + if (f2) { + f2 = a2 + 4 - f2 | 0; + while ((a2 | 0) < (f2 | 0)) { + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } + } + while ((a2 | 0) < (e2 | 0)) { + k[a2 >> 2] = g2; + a2 = a2 + 4 | 0; + } + } + while ((a2 | 0) < (d2 | 0)) { + i2[a2 >> 0] = b2; + a2 = a2 + 1 | 0; + } + return a2 - c2 | 0; + } + function tw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + c2 = a2 + c2 >>> 0; + return (M = b2 + d2 + (c2 >>> 0 < a2 >>> 0 | 0) >>> 0, c2 | 0) | 0; + } + function uw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) < 32) { + M = b2 >>> c2; + return a2 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; + } + M = 0; + return b2 >>> c2 - 32 | 0; + } + function vw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((c2 | 0) >= 4096) + return db(a2 | 0, b2 | 0, c2 | 0) | 0; + d2 = a2 | 0; + if ((a2 & 3) == (b2 & 3)) { + while (a2 & 3) { + if (!c2) + return d2 | 0; + i2[a2 >> 0] = i2[b2 >> 0] | 0; + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + c2 = c2 - 1 | 0; + } + while ((c2 | 0) >= 4) { + k[a2 >> 2] = k[b2 >> 2]; + a2 = a2 + 4 | 0; + b2 = b2 + 4 | 0; + c2 = c2 - 4 | 0; + } + } + while ((c2 | 0) > 0) { + i2[a2 >> 0] = i2[b2 >> 0] | 0; + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + c2 = c2 - 1 | 0; + } + return d2 | 0; + } + function ww(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) < 32) { + M = b2 << c2 | (a2 & (1 << c2) - 1 << 32 - c2) >>> 32 - c2; + return a2 << c2; + } + M = a2 << c2 - 32; + return 0; + } + function xw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if ((b2 | 0) < (a2 | 0) & (a2 | 0) < (b2 + c2 | 0)) { + d2 = a2; + b2 = b2 + c2 | 0; + a2 = a2 + c2 | 0; + while ((c2 | 0) > 0) { + a2 = a2 - 1 | 0; + b2 = b2 - 1 | 0; + c2 = c2 - 1 | 0; + i2[a2 >> 0] = i2[b2 >> 0] | 0; + } + a2 = d2; + } else + vw(a2, b2, c2) | 0; + return a2 | 0; + } + function yw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if ((c2 | 0) < 32) { + M = b2 >> c2; + return a2 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; + } + M = (b2 | 0) < 0 ? -1 : 0; + return b2 >> c2 - 32 | 0; + } + function zw(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = i2[v + (a2 & 255) >> 0] | 0; + if ((b2 | 0) < 8) + return b2 | 0; + b2 = i2[v + (a2 >> 8 & 255) >> 0] | 0; + if ((b2 | 0) < 8) + return b2 + 8 | 0; + b2 = i2[v + (a2 >> 16 & 255) >> 0] | 0; + if ((b2 | 0) < 8) + return b2 + 16 | 0; + return (i2[v + (a2 >>> 24) >> 0] | 0) + 24 | 0; + } + function Aw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + f2 = a2 & 65535; + e2 = b2 & 65535; + c2 = ia(e2, f2) | 0; + d2 = a2 >>> 16; + a2 = (c2 >>> 16) + (ia(e2, d2) | 0) | 0; + e2 = b2 >>> 16; + b2 = ia(e2, f2) | 0; + return (M = (a2 >>> 16) + (ia(e2, d2) | 0) + (((a2 & 65535) + b2 | 0) >>> 16) | 0, a2 + b2 << 16 | c2 & 65535 | 0) | 0; + } + function Bw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; + j2 = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + i3 = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + f2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + e2 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + h2 = rw(j2 ^ a2, i3 ^ b2, j2, i3) | 0; + g2 = M; + a2 = f2 ^ j2; + b2 = e2 ^ i3; + return rw((Gw(h2, g2, rw(f2 ^ c2, e2 ^ d2, f2, e2) | 0, M, 0) | 0) ^ a2, M ^ b2, a2, b2) | 0; + } + function Cw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; + e2 = r; + r = r + 16 | 0; + h2 = e2 | 0; + g2 = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + f2 = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; + j2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + i3 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; + a2 = rw(g2 ^ a2, f2 ^ b2, g2, f2) | 0; + b2 = M; + Gw(a2, b2, rw(j2 ^ c2, i3 ^ d2, j2, i3) | 0, M, h2) | 0; + d2 = rw(k[h2 >> 2] ^ g2, k[h2 + 4 >> 2] ^ f2, g2, f2) | 0; + c2 = M; + r = e2; + return (M = c2, d2) | 0; + } + function Dw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = a2; + f2 = c2; + c2 = Aw(e2, f2) | 0; + a2 = M; + return (M = (ia(b2, f2) | 0) + (ia(d2, e2) | 0) + a2 | a2 & 0, c2 | 0 | 0) | 0; + } + function Ew(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return Gw(a2, b2, c2, d2, 0) | 0; + } + function Fw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + f2 = r; + r = r + 16 | 0; + e2 = f2 | 0; + Gw(a2, b2, c2, d2, e2) | 0; + r = f2; + return (M = k[e2 + 4 >> 2] | 0, k[e2 >> 2] | 0) | 0; + } + function Gw(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + l2 = a2; + i3 = b2; + j2 = i3; + g2 = c2; + n2 = d2; + h2 = n2; + if (!j2) { + f2 = (e2 | 0) != 0; + if (!h2) { + if (f2) { + k[e2 >> 2] = (l2 >>> 0) % (g2 >>> 0); + k[e2 + 4 >> 2] = 0; + } + n2 = 0; + e2 = (l2 >>> 0) / (g2 >>> 0) >>> 0; + return (M = n2, e2) | 0; + } else { + if (!f2) { + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = b2 & 0; + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + } + f2 = (h2 | 0) == 0; + do + if (g2) { + if (!f2) { + f2 = (ka(h2 | 0) | 0) - (ka(j2 | 0) | 0) | 0; + if (f2 >>> 0 <= 31) { + m2 = f2 + 1 | 0; + h2 = 31 - f2 | 0; + b2 = f2 - 31 >> 31; + g2 = m2; + a2 = l2 >>> (m2 >>> 0) & b2 | j2 << h2; + b2 = j2 >>> (m2 >>> 0) & b2; + f2 = 0; + h2 = l2 << h2; + break; + } + if (!e2) { + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = i3 | b2 & 0; + n2 = 0; + e2 = 0; + return (M = n2, e2) | 0; + } + f2 = g2 - 1 | 0; + if (f2 & g2) { + h2 = (ka(g2 | 0) | 0) + 33 - (ka(j2 | 0) | 0) | 0; + p2 = 64 - h2 | 0; + m2 = 32 - h2 | 0; + i3 = m2 >> 31; + o2 = h2 - 32 | 0; + b2 = o2 >> 31; + g2 = h2; + a2 = m2 - 1 >> 31 & j2 >>> (o2 >>> 0) | (j2 << m2 | l2 >>> (h2 >>> 0)) & b2; + b2 = b2 & j2 >>> (h2 >>> 0); + f2 = l2 << p2 & i3; + h2 = (j2 << p2 | l2 >>> (o2 >>> 0)) & i3 | l2 << m2 & h2 - 33 >> 31; + break; + } + if (e2) { + k[e2 >> 2] = f2 & l2; + k[e2 + 4 >> 2] = 0; + } + if ((g2 | 0) == 1) { + o2 = i3 | b2 & 0; + p2 = a2 | 0 | 0; + return (M = o2, p2) | 0; + } else { + p2 = zw(g2 | 0) | 0; + o2 = j2 >>> (p2 >>> 0) | 0; + p2 = j2 << 32 - p2 | l2 >>> (p2 >>> 0) | 0; + return (M = o2, p2) | 0; + } + } else { + if (f2) { + if (e2) { + k[e2 >> 2] = (j2 >>> 0) % (g2 >>> 0); + k[e2 + 4 >> 2] = 0; + } + o2 = 0; + p2 = (j2 >>> 0) / (g2 >>> 0) >>> 0; + return (M = o2, p2) | 0; + } + if (!l2) { + if (e2) { + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = (j2 >>> 0) % (h2 >>> 0); + } + o2 = 0; + p2 = (j2 >>> 0) / (h2 >>> 0) >>> 0; + return (M = o2, p2) | 0; + } + f2 = h2 - 1 | 0; + if (!(f2 & h2)) { + if (e2) { + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = f2 & j2 | b2 & 0; + } + o2 = 0; + p2 = j2 >>> ((zw(h2 | 0) | 0) >>> 0); + return (M = o2, p2) | 0; + } + f2 = (ka(h2 | 0) | 0) - (ka(j2 | 0) | 0) | 0; + if (f2 >>> 0 <= 30) { + b2 = f2 + 1 | 0; + h2 = 31 - f2 | 0; + g2 = b2; + a2 = j2 << h2 | l2 >>> (b2 >>> 0); + b2 = j2 >>> (b2 >>> 0); + f2 = 0; + h2 = l2 << h2; + break; + } + if (!e2) { + o2 = 0; + p2 = 0; + return (M = o2, p2) | 0; + } + k[e2 >> 2] = a2 | 0; + k[e2 + 4 >> 2] = i3 | b2 & 0; + o2 = 0; + p2 = 0; + return (M = o2, p2) | 0; + } + while (0); + if (!g2) { + j2 = h2; + i3 = 0; + h2 = 0; + } else { + m2 = c2 | 0 | 0; + l2 = n2 | d2 & 0; + j2 = tw(m2 | 0, l2 | 0, -1, -1) | 0; + c2 = M; + i3 = h2; + h2 = 0; + do { + d2 = i3; + i3 = f2 >>> 31 | i3 << 1; + f2 = h2 | f2 << 1; + d2 = a2 << 1 | d2 >>> 31 | 0; + n2 = a2 >>> 31 | b2 << 1 | 0; + rw(j2, c2, d2, n2) | 0; + p2 = M; + o2 = p2 >> 31 | ((p2 | 0) < 0 ? -1 : 0) << 1; + h2 = o2 & 1; + a2 = rw(d2, n2, o2 & m2, (((p2 | 0) < 0 ? -1 : 0) >> 31 | ((p2 | 0) < 0 ? -1 : 0) << 1) & l2) | 0; + b2 = M; + g2 = g2 - 1 | 0; + } while ((g2 | 0) != 0); + j2 = i3; + i3 = 0; + } + g2 = 0; + if (e2) { + k[e2 >> 2] = a2; + k[e2 + 4 >> 2] = b2; + } + o2 = (f2 | 0) >>> 31 | (j2 | g2) << 1 | (g2 << 1 | f2 >>> 31) & 0 | i3; + p2 = (f2 << 1 | 0 >>> 31) & -2 | h2; + return (M = o2, p2) | 0; + } + function Hw(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + return Ib[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0) | 0; + } + function Iw(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + Jb[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0); + } + function Jw(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = +g2; + return Kb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, +g2) | 0; + } + function Kw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + Lb[a2 & 255](b2 | 0); + } + function Lw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + Mb[a2 & 127](b2 | 0, c2 | 0); + } + function Mw(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + return Nb[a2 & 63](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0) | 0; + } + function Nw(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return Ob[a2 & 127](b2 | 0) | 0; + } + function Ow(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + l2 = l2 | 0; + return Pb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0, l2 | 0) | 0; + } + function Pw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return Qb[a2 & 63](b2 | 0, c2 | 0, d2 | 0) | 0; + } + function Qw(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2, m2, n2, o2, p2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + p2 = p2 | 0; + Rb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0, l2 | 0, m2 | 0, n2 | 0, o2 | 0, p2 | 0); + } + function Rw(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + Sb[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0); + } + function Sw(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + Tb[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0); + } + function Tw(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + Ub[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0); + } + function Uw(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return Vb[a2 & 63](b2 | 0, c2 | 0) | 0; + } + function Vw(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + return Wb[a2 & 31](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0) | 0; + } + function Ww(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return +Xb[a2 & 3](b2 | 0, c2 | 0, d2 | 0); + } + function Xw(a2) { + a2 = a2 | 0; + return Yb[a2 & 15]() | 0; + } + function Yw(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + return Zb[a2 & 31](b2 | 0, c2 | 0, d2 | 0, e2 | 0) | 0; + } + function Zw(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + _b[a2 & 15](b2 | 0, c2 | 0, d2 | 0); + } + function _w(a2) { + a2 = a2 | 0; + $b[a2 & 7](); + } + function $w(a2, b2, c2, d2, e2, f2, g2, h2, i3) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + return ac[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0) | 0; + } + function ax(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + return bc[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, +f2) | 0; + } + function bx(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + cc[a2 & 63](b2 | 0, c2 | 0, d2 | 0, e2 | 0); + } + function cx(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + la(0); + return 0; + } + function dx(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + la(1); + } + function ex(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = +f2; + la(2); + return 0; + } + function fx(a2) { + a2 = a2 | 0; + la(3); + } + function gx(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + la(4); + } + function hx(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + la(5); + return 0; + } + function ix(a2) { + a2 = a2 | 0; + la(6); + return 0; + } + function jx(a2) { + a2 = a2 | 0; + return lb(a2 | 0) | 0; + } + function kx(a2) { + a2 = a2 | 0; + return Ab(a2 | 0) | 0; + } + function lx(a2) { + a2 = a2 | 0; + return qb(a2 | 0) | 0; + } + function mx(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + la(7); + return 0; + } + function nx(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + la(8); + return 0; + } + function ox(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2, m2, n2, o2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + k2 = k2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + n2 = n2 | 0; + o2 = o2 | 0; + la(9); + } + function px(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + la(10); + } + function qx(a2, b2, c2, d2, e2, f2, g2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + la(11); + } + function rx(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + j2 = j2 | 0; + la(12); + } + function sx(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + la(13); + return 0; + } + function tx(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + la(14); + return 0; + } + function ux(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + la(15); + return 0; + } + function vx() { + la(16); + return 0; + } + function wx(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + la(17); + return 0; + } + function xx(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + la(18); + } + function yx(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + ub(a2 | 0, b2 | 0, c2 | 0); + } + function zx() { + la(19); + } + function Ax() { + yb(); + } + function Bx() { + eb(); + } + function Cx() { + vb(); + } + function Dx(a2, b2, c2, d2, e2, f2, g2, h2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + la(20); + return 0; + } + function Ex(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = +e2; + la(21); + return 0; + } + function Fx(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + la(22); + } + function ni(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + l2 = r; + r = r + 32 | 0; + h2 = l2; + Oi(h2, 255, 0); + j2 = a2 + 152 | 0; + if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { + j2 = k[8900] | 0; + k[a2 + 4580 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); + r = l2; + return; + } + c2 = a2 + 4584 | 0; + d2 = a2 + 4588 | 0; + e2 = k[d2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + f2 = e2 - b2 | 0; + if (f2 >>> 0 >= 512) { + if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) + k[d2 >> 2] = g2; + } else { + se(c2, 512 - f2 | 0); + b2 = k[c2 >> 2] | 0; + } + h2 = a2 + 4580 | 0; + k[h2 >> 2] = b2 + 256; + g2 = a2 + 160 | 0; + e2 = a2 + 156 | 0; + f2 = -256; + while (1) { + b2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[e2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) + if ((f2 | 0) >= 0) { + if ((f2 | 0) < 1) { + i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; + f2 = 1; + continue; + } + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + } else + b2 = -1; + else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + if ((f2 | 0) == 256) + break; + } + r = l2; + return; + } + function oi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35660; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + a2 = a2 + 88 | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = 0; + if (!b2) + return; + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + return; + } + function pi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 35660; + b2 = k[a2 + 4608 >> 2] | 0; + if (b2) { + c2 = a2 + 4612 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + k[a2 >> 2] = 36736; + b2 = k[a2 + 92 >> 2] | 0; + if (b2) { + c2 = a2 + 96 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + } + c2 = a2 + 88 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = 0; + if (!b2) { + mj(a2); + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + mj(a2); + return; + } + function qi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; + u2 = r; + r = r + 352 | 0; + v2 = u2 + 328 | 0; + y2 = u2 + 192 | 0; + c2 = u2 + 343 | 0; + d2 = u2 + 342 | 0; + e2 = u2 + 341 | 0; + f2 = u2 + 340 | 0; + o2 = u2 + 176 | 0; + h2 = u2 + 168 | 0; + j2 = u2 + 160 | 0; + l2 = u2 + 152 | 0; + t2 = u2; + q2 = u2 + 136 | 0; + if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { + p2 = a2 + 4 | 0; + s2 = a2 + 32 | 0; + g2 = k[s2 >> 2] | 0; + if (!g2) { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[c2 >> 0] | 0; + Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + a2 = k[a2 + 12 >> 2] | 0; + if ((a2 | 0) == 8) + switch (g2 | 0) { + case 1: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[d2 >> 0] | 0; + Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[e2 >> 0] | 0; + Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(48) | 0; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[v2 >> 0] = i2[f2 >> 0] | 0; + Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = y2 + 56 | 0; + e2 = y2 + 4 | 0; + k[y2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, y2 + 56 | 0, e2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[y2 + 128 >> 2] = 0; + k[y2 + 132 >> 2] = -1; + k[y2 >> 2] = 36200; + k[y2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + u2 = x; + x = 0; + do + if (u2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = y2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[y2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + u2 = x; + x = 0; + if (u2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, y2 | 0, 49007, 21) | 0; + v2 = x; + x = 0; + do + if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, o2 | 0, e2 | 0); + v2 = x; + x = 0; + if (!(v2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, o2 | 0); + v2 = x; + x = 0; + if (v2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(o2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 34; + while (0); + if ((z2 | 0) == 34) + a2 = Wa() | 0; + k[y2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + if ((a2 | 0) <= 8) { + a2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, a2 | 0, 8, 35648); + z2 = x; + x = 0; + if (!(z2 & 1)) + ub(a2 | 0, 824, 96); + z2 = Wa() | 0; + Ua(a2 | 0); + fb(z2 | 0); + } + c2 = 16 - a2 | 0; + switch (g2 | 0) { + case 1: { + a2 = lj(60) | 0; + k[h2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[h2 >> 2]; + k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; + Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 2: { + a2 = lj(60) | 0; + k[j2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[j2 >> 2]; + k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; + Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + case 3: { + a2 = lj(60) | 0; + k[l2 >> 2] = c2; + x = 0; + k[y2 >> 2] = k[b2 >> 2]; + k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; + k[v2 >> 2] = k[l2 >> 2]; + k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; + Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); + z2 = x; + x = 0; + if (!(z2 & 1)) { + z2 = a2; + r = u2; + return z2 | 0; + } + z2 = Wa() | 0; + mj(a2); + fb(z2 | 0); + } + default: { + g2 = t2 + 56 | 0; + e2 = t2 + 4 | 0; + k[t2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, t2 + 56 | 0, e2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + z2 = Wa() | 0; + qn(g2); + fb(z2 | 0); + } + k[t2 + 128 >> 2] = 0; + k[t2 + 132 >> 2] = -1; + k[t2 >> 2] = 36200; + k[t2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + y2 = x; + x = 0; + do + if (y2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = t2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[t2 + 52 >> 2] = 16; + k[v2 >> 2] = 0; + k[v2 + 4 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, v2 | 0); + y2 = x; + x = 0; + if (y2 & 1) { + a2 = Wa() | 0; + Sm(v2); + Sm(f2); + xn(e2); + break; + } + Sm(v2); + x = 0; + a2 = va(28, t2 | 0, 49007, 21) | 0; + y2 = x; + x = 0; + do + if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, q2 | 0, e2 | 0); + y2 = x; + x = 0; + if (!(y2 & 1)) { + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Ja(36, d2 | 0, 9, 35648, q2 | 0); + y2 = x; + x = 0; + if (y2 & 1) + c2 = 1; + else { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } + a2 = Wa() | 0; + Sm(q2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + z2 = 64; + while (0); + if ((z2 | 0) == 64) + a2 = Wa() | 0; + k[t2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + z2 = a2; + fb(z2 | 0); + } + while (0); + z2 = a2; + qn(g2); + fb(z2 | 0); + } + } + } + c2 = k[b2 + 4 >> 2] | 0; + d2 = lj(16) | 0; + a2 = k[a2 + 16 >> 2] | 0; + if (!c2) { + z2 = k[b2 >> 2] | 0; + k[d2 >> 2] = 36132; + k[d2 + 4 >> 2] = z2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } else { + k[d2 >> 2] = 36108; + k[d2 + 4 >> 2] = c2; + k[d2 + 8 >> 2] = 1; + k[d2 + 12 >> 2] = a2; + z2 = d2; + r = u2; + return z2 | 0; + } + return 0; + } + function ri(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; + g2 = r; + r = r + 32 | 0; + l2 = g2; + Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); + h2 = k[b2 + 4 >> 2] | 0; + f2 = k[b2 + 8 >> 2] | 0; + f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; + e2 = k[b2 + 12 >> 2] | 0; + e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; + c2 = k[b2 + 16 >> 2] | 0; + d2 = k[l2 + 16 >> 2] | 0; + k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; + k[a2 + 180 >> 2] = f2; + k[a2 + 184 >> 2] = e2; + zi(a2); + e2 = a2 + 132 | 0; + b2 = (k[e2 >> 2] | 0) + 32 | 0; + b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; + f2 = 0; + do { + k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; + k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; + j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != 365); + h2 = (k[e2 >> 2] | 0) + 32 | 0; + h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; + l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; + k[a2 + 4568 >> 2] = h2; + k[a2 + 4572 >> 2] = 0; + i2[a2 + 4576 >> 0] = l2; + i2[a2 + 4577 >> 0] = 1; + i2[a2 + 4578 >> 0] = 0; + k[a2 + 4580 >> 2] = h2; + k[a2 + 4584 >> 2] = 1; + i2[a2 + 4588 >> 0] = l2; + i2[a2 + 4589 >> 0] = 1; + i2[a2 + 4590 >> 0] = 0; + k[a2 + 4592 >> 2] = 0; + r = g2; + return; + } + function si(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = a2 + 88 | 0; + f2 = k[b2 >> 2] | 0; + k[b2 >> 2] = 0; + b2 = k[g2 >> 2] | 0; + k[g2 >> 2] = f2; + if (b2) + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + g2 = d2 + 4 | 0; + f2 = k[g2 >> 2] | 0; + i2[a2 + 4620 >> 0] = e2 & 1; + b2 = a2 + 156 | 0; + k[b2 >> 2] = k[c2 >> 2]; + k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; + k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; + k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; + ee(a2, d2); + ti(a2); + b2 = k[a2 + 116 >> 2] | 0; + a2 = k[a2 + 112 >> 2] | 0; + while (1) { + e2 = b2 + -1 | 0; + c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; + if ((a2 | 0) < (c2 | 0)) + break; + else { + b2 = e2; + a2 = a2 - c2 | 0; + } + } + b2 = b2 - f2 | 0; + e2 = k[g2 >> 2] | 0; + if (!e2) + return; + k[g2 >> 2] = e2 + b2; + d2 = d2 + 8 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; + return; + } + function ti(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; + A2 = r; + r = r + 32 | 0; + C2 = A2 + 12 | 0; + z2 = A2; + h2 = a2 + 172 | 0; + y2 = (k[h2 >> 2] | 0) + 4 | 0; + if ((k[a2 + 28 >> 2] | 0) == 1) + j2 = k[a2 + 20 >> 2] | 0; + else + j2 = 1; + b2 = ia(j2 << 1, y2) | 0; + k[C2 >> 2] = 0; + D2 = C2 + 4 | 0; + k[D2 >> 2] = 0; + k[C2 + 8 >> 2] = 0; + a: + do + if (b2) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) + w2 = 6; + if ((w2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { + k[D2 >> 2] = c2; + k[C2 >> 2] = c2; + k[C2 + 8 >> 2] = c2 + b2; + while (1) { + i2[c2 >> 0] = 0; + c2 = (k[D2 >> 2] | 0) + 1 | 0; + k[D2 >> 2] = c2; + b2 = b2 + -1 | 0; + if (!b2) + break a; + } + } + c2 = Wa() | 0; + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + while (0); + k[z2 >> 2] = 0; + B2 = z2 + 4 | 0; + k[B2 >> 2] = 0; + k[z2 + 8 >> 2] = 0; + do + if (!j2) + w2 = 19; + else { + if (!(j2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), v2 = x, x = 0, v2 & 1) : 0)) + w2 = 17; + if ((w2 | 0) == 17 ? (d2 = j2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { + k[z2 >> 2] = e2; + w2 = e2 + (j2 << 2) | 0; + k[z2 + 8 >> 2] = w2; + sw(e2 | 0, 0, d2 | 0) | 0; + k[B2 >> 2] = w2; + w2 = 19; + break; + } + c2 = Wa() | 0; + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + while (0); + if ((w2 | 0) == 19) { + l2 = a2 + 8 | 0; + b2 = k[l2 >> 2] | 0; + b: + do + if ((b2 | 0) > 0) { + m2 = a2 + 4596 | 0; + n2 = ia(j2, y2) | 0; + o2 = n2 + 1 | 0; + p2 = a2 + 4600 | 0; + q2 = a2 + 160 | 0; + s2 = a2 + 168 | 0; + t2 = a2 + 164 | 0; + u2 = a2 + 156 | 0; + v2 = a2 + 88 | 0; + g2 = a2 + 4592 | 0; + if ((j2 | 0) > 0) + f2 = 0; + else { + f2 = 0; + while (1) { + e2 = k[C2 >> 2] | 0; + c2 = e2 + 1 | 0; + k[m2 >> 2] = c2; + d2 = e2 + o2 | 0; + k[p2 >> 2] = d2; + if (!(f2 & 1)) + c2 = o2; + else { + k[m2 >> 2] = d2; + k[p2 >> 2] = c2; + c2 = 1; + } + j2 = k[q2 >> 2] | 0; + if ((j2 | 0) <= (f2 | 0) ? (f2 | 0) < ((k[s2 >> 2] | 0) + j2 | 0) : 0) { + j2 = k[v2 >> 2] | 0; + x = 0; + Ja(k[(k[j2 >> 2] | 0) + 8 >> 2] | 0, j2 | 0, e2 + (c2 + ((k[u2 >> 2] | 0) - n2)) | 0, k[t2 >> 2] | 0, y2 | 0); + j2 = x; + x = 0; + if (j2 & 1) + break; + b2 = k[l2 >> 2] | 0; + } + f2 = f2 + 1 | 0; + if ((f2 | 0) >= (b2 | 0)) { + w2 = 50; + break b; + } + } + c2 = Wa() | 0; + break; + } + c: + while (1) { + c2 = k[C2 >> 2] | 0; + b2 = c2 + 1 | 0; + k[m2 >> 2] = b2; + c2 = c2 + o2 | 0; + k[p2 >> 2] = c2; + if (f2 & 1) { + k[m2 >> 2] = c2; + k[p2 >> 2] = b2; + b2 = c2; + } + e2 = k[z2 >> 2] | 0; + c2 = b2; + d2 = 0; + do { + k[g2 >> 2] = k[e2 + (d2 << 2) >> 2]; + w2 = k[h2 >> 2] | 0; + i2[c2 + w2 >> 0] = i2[c2 + (w2 + -1) >> 0] | 0; + i2[(k[p2 >> 2] | 0) + -1 >> 0] = i2[k[m2 >> 2] >> 0] | 0; + x = 0; + ra(83, a2 | 0, 0); + w2 = x; + x = 0; + if (w2 & 1) { + w2 = 38; + break c; + } + e2 = k[z2 >> 2] | 0; + k[e2 + (d2 << 2) >> 2] = k[g2 >> 2]; + c2 = (k[m2 >> 2] | 0) + y2 | 0; + k[m2 >> 2] = c2; + b2 = k[p2 >> 2] | 0; + k[p2 >> 2] = b2 + y2; + d2 = d2 + 1 | 0; + } while ((d2 | 0) < (j2 | 0)); + w2 = k[q2 >> 2] | 0; + if (((w2 | 0) <= (f2 | 0) ? (f2 | 0) < ((k[s2 >> 2] | 0) + w2 | 0) : 0) ? (w2 = k[v2 >> 2] | 0, x = 0, Ja(k[(k[w2 >> 2] | 0) + 8 >> 2] | 0, w2 | 0, b2 + (y2 + ((k[u2 >> 2] | 0) - n2)) | 0, k[t2 >> 2] | 0, y2 | 0), w2 = x, x = 0, w2 & 1) : 0) { + w2 = 30; + break; + } + f2 = f2 + 1 | 0; + if ((f2 | 0) >= (k[l2 >> 2] | 0)) { + w2 = 50; + break b; + } + } + if ((w2 | 0) == 30) { + c2 = Wa() | 0; + break; + } else if ((w2 | 0) == 38) { + c2 = Wa() | 0; + break; + } + } else + w2 = 50; + while (0); + do + if ((w2 | 0) == 50) { + x = 0; + qa(183, a2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + break; + } + b2 = k[z2 >> 2] | 0; + c2 = b2; + if (b2) { + d2 = k[B2 >> 2] | 0; + if ((d2 | 0) != (b2 | 0)) + k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); + mj(b2); + } + b2 = k[C2 >> 2] | 0; + if (!b2) { + r = A2; + return; + } + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + r = A2; + return; + } + while (0); + b2 = k[z2 >> 2] | 0; + d2 = b2; + if (b2) { + e2 = k[B2 >> 2] | 0; + if ((e2 | 0) != (b2 | 0)) + k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); + mj(b2); + } + } + b2 = k[C2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[D2 >> 2] | 0) != (b2 | 0)) + k[D2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + } + function ui(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; + p2 = a2 + 4596 | 0; + c2 = k[p2 >> 2] | 0; + t2 = a2 + 172 | 0; + b2 = k[t2 >> 2] | 0; + if ((b2 | 0) <= 0) + return; + q2 = a2 + 4600 | 0; + r2 = a2 + 4604 | 0; + s2 = a2 + 4592 | 0; + h2 = c2; + f2 = l[c2 + -1 >> 0] | 0; + c2 = l[c2 >> 0] | 0; + o2 = 0; + while (1) { + m2 = k[q2 >> 2] | 0; + g2 = i2[m2 + (o2 + -1) >> 0] | 0; + n2 = g2 & 255; + e2 = o2 + 1 | 0; + d2 = l[h2 + e2 >> 0] | 0; + j2 = k[r2 >> 2] | 0; + h2 = c2 - f2 | 0; + f2 = f2 - n2 | 0; + j2 = ((((i2[j2 + (d2 - c2) >> 0] | 0) * 9 | 0) + (i2[j2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[j2 + f2 >> 0] | 0) | 0; + m2 = m2 + o2 | 0; + if (!j2) { + b2 = wi(a2, g2, m2, b2 - o2 | 0) | 0; + c2 = b2 + o2 | 0; + if ((c2 | 0) != (k[t2 >> 2] | 0)) { + n2 = xi(a2, n2, l[(k[p2 >> 2] | 0) + c2 >> 0] | 0) | 0; + i2[(k[q2 >> 2] | 0) + c2 >> 0] = n2; + n2 = k[s2 >> 2] | 0; + k[s2 >> 2] = (n2 | 0) < 1 ? 0 : n2 + -1 | 0; + b2 = b2 + 1 | 0; + } + e2 = b2 + o2 | 0; + d2 = k[p2 >> 2] | 0; + c2 = l[d2 + (e2 + -1) >> 0] | 0; + d2 = l[d2 + e2 >> 0] | 0; + } else { + b2 = c2 - n2 >> 31; + if ((b2 ^ f2 | 0) < 0) + b2 = c2; + else + b2 = n2 + ((b2 ^ h2 | 0) < 0 ? 0 : h2) | 0; + n2 = vi(a2, j2, l[m2 >> 0] | 0, b2, 0) | 0; + i2[(k[q2 >> 2] | 0) + o2 >> 0] = n2; + } + b2 = k[t2 >> 2] | 0; + if ((b2 | 0) <= (e2 | 0)) + break; + h2 = k[p2 >> 2] | 0; + f2 = c2; + c2 = d2; + o2 = e2; + } + return; + } + function vi(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + r2 = b2 >> 31; + l2 = (r2 ^ b2) - r2 | 0; + p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; + c2 = j[p2 >> 1] | 0; + o2 = a2 + 188 + (l2 * 12 | 0) | 0; + e2 = k[o2 >> 2] | 0; + if ((c2 | 0) < (e2 | 0)) + if ((c2 << 1 | 0) < (e2 | 0)) + if ((c2 << 2 | 0) < (e2 | 0)) + if ((c2 << 3 | 0) < (e2 | 0)) + if ((c2 << 4 | 0) < (e2 | 0)) { + b2 = 5; + while (1) + if ((c2 << b2 | 0) < (e2 | 0)) + b2 = b2 + 1 | 0; + else + break; + } else + b2 = 4; + else + b2 = 3; + else + b2 = 2; + else + b2 = 1; + else + b2 = 0; + n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; + c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; + q2 = a2 + 128 | 0; + e2 = k[q2 >> 2] | 0; + if ((c2 & e2 | 0) == (c2 | 0)) + m2 = c2; + else + m2 = e2 & ~(c2 >> 31); + c2 = a2 + 112 | 0; + if ((k[c2 >> 2] | 0) < 8) + qe(a2); + e2 = a2 + 108 | 0; + d2 = k[e2 >> 2] | 0; + f2 = d2 >>> 24; + g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; + if (!g2) { + h2 = k[a2 + 148 >> 2] | 0; + e2 = k[a2 + 140 >> 2] | 0; + c2 = Tg(a2) | 0; + if ((c2 | 0) < (h2 + -1 - e2 | 0)) { + if (b2) + c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; + } else + c2 = (Ug(a2, e2) | 0) + 1 | 0; + c2 = c2 << 31 >> 31 ^ c2 >> 1; + if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { + c2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, c2 | 0, 5, 35648); + a2 = x; + x = 0; + if (a2 & 1) { + a2 = Wa() | 0; + Ua(c2 | 0); + fb(a2 | 0); + } else + ub(c2 | 0, 824, 96); + } + } else { + k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; + k[e2 >> 2] = d2 << g2; + c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; + } + h2 = a2 + 136 | 0; + d2 = k[h2 >> 2] | 0; + if (!b2) { + if (!d2) + e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; + else + e2 = 0; + g2 = e2 ^ c2; + } else + g2 = c2; + b2 = k[a2 + 152 >> 2] | 0; + e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; + f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; + c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; + d2 = j[p2 >> 1] | 0; + if ((d2 | 0) == (b2 | 0)) { + e2 = e2 >> 1; + c2 = c2 >> 1; + d2 = b2 >> 1; + } + k[o2 >> 2] = e2; + b2 = d2 + 1 | 0; + j[p2 >> 1] = b2; + e2 = b2 + c2 | 0; + if ((e2 | 0) >= 1) { + if ((c2 | 0) > 0) { + c2 = c2 - b2 | 0; + p2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); + c2 = (c2 | 0) > 0 ? 0 : c2; + } + } else { + c2 = j[n2 >> 1] | 0; + j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); + c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; + } + k[f2 >> 2] = c2; + b2 = k[h2 >> 2] | 0; + d2 = b2 << 1 | 1; + e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; + if ((e2 | 0) >= (0 - b2 | 0)) { + c2 = k[q2 >> 2] | 0; + if ((c2 + b2 | 0) < (e2 | 0)) + e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; + } else { + e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; + c2 = k[q2 >> 2] | 0; + } + if ((e2 & c2 | 0) == (e2 | 0)) { + a2 = e2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = c2 & ~(e2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } + function wi(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + h2 = a2 + 112 | 0; + j2 = a2 + 108 | 0; + l2 = a2 + 4592 | 0; + e2 = k[h2 >> 2] | 0; + f2 = 0; + while (1) { + if ((e2 | 0) < 1) { + qe(a2); + e2 = k[h2 >> 2] | 0; + } + g2 = k[j2 >> 2] | 0; + e2 = e2 + -1 | 0; + k[h2 >> 2] = e2; + k[j2 >> 2] = g2 << 1; + if ((g2 | 0) >= 0) { + m2 = 8; + break; + } + g2 = k[l2 >> 2] | 0; + n2 = 1 << k[36476 + (g2 << 2) >> 2]; + o2 = d2 - f2 | 0; + o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; + f2 = o2 + f2 | 0; + if ((o2 | 0) == (n2 | 0)) + k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; + if ((f2 | 0) == (d2 | 0)) { + e2 = d2; + break; + } + } + if ((m2 | 0) == 8) + if ((f2 | 0) != (d2 | 0)) { + e2 = k[l2 >> 2] | 0; + if ((e2 + -4 | 0) >>> 0 < 28) + e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; + else + e2 = 0; + e2 = e2 + f2 | 0; + if ((e2 | 0) > (d2 | 0)) { + e2 = Va(16) | 0; + if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { + tb(72, 35648, w | 0) | 0; + Ya(8); + } + x = 0; + Fa(7, e2 | 0, 5, 35648); + o2 = x; + x = 0; + if (o2 & 1) { + o2 = Wa() | 0; + Ua(e2 | 0); + fb(o2 | 0); + } else + ub(e2 | 0, 824, 96); + } + } else + e2 = d2; + if ((e2 | 0) <= 0) + return e2 | 0; + sw(c2 | 0, b2 | 0, e2 | 0) | 0; + return e2 | 0; + } + function xi(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2 - c2 | 0; + g2 = a2 + 128 | 0; + d2 = a2 + 136 | 0; + if ((((f2 | 0) > -1 ? f2 : 0 - f2 | 0) | 0) > (k[d2 >> 2] | 0)) { + b2 = ia(yi(a2, a2 + 4568 | 0) | 0, c2 - b2 >> 31 | 1) | 0; + e2 = k[d2 >> 2] | 0; + f2 = e2 << 1 | 1; + b2 = (ia(b2, f2) | 0) + c2 | 0; + if ((b2 | 0) >= (0 - e2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + e2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, f2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, f2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } else { + c2 = yi(a2, a2 + 4580 | 0) | 0; + f2 = k[d2 >> 2] | 0; + e2 = f2 << 1 | 1; + b2 = (ia(e2, c2) | 0) + b2 | 0; + if ((b2 | 0) >= (0 - f2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((d2 + f2 | 0) < (b2 | 0)) + b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, e2) | 0) | 0; + } else { + b2 = (ia(k[a2 + 132 >> 2] | 0, e2) | 0) + b2 | 0; + d2 = k[g2 >> 2] | 0; + } + if ((b2 & d2 | 0) == (b2 | 0)) { + a2 = b2; + a2 = a2 & 255; + return a2 | 0; + } + a2 = d2 & ~(b2 >> 31); + a2 = a2 & 255; + return a2 | 0; + } + return 0; + } + function yi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + m2 = b2 + 9 | 0; + c2 = l[m2 >> 0] | 0; + f2 = b2 + 4 | 0; + e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; + if ((c2 | 0) < (e2 | 0)) { + d2 = 0; + do { + c2 = c2 << 1; + d2 = d2 + 1 | 0; + } while ((c2 | 0) < (e2 | 0)); + } else + d2 = 0; + g2 = k[a2 + 148 >> 2] | 0; + h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; + c2 = k[a2 + 140 >> 2] | 0; + e2 = Tg(a2) | 0; + do + if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) + if (!d2) { + d2 = k[f2 >> 2] | 0; + a2 = d2 + e2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + j2 = 8; + break; + } else { + h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; + d2 = k[f2 >> 2] | 0; + e2 = h2 + d2 | 0; + g2 = e2 & 1; + c2 = g2; + f2 = 1; + e2 = (g2 + e2 | 0) / 2 | 0; + break; + } + else { + e2 = (Ug(a2, c2) | 0) + 1 | 0; + g2 = k[f2 >> 2] | 0; + a2 = e2 + g2 | 0; + c2 = a2 & 1; + a2 = (c2 + a2 | 0) / 2 | 0; + if (!d2) { + d2 = g2; + j2 = 8; + } else { + h2 = e2; + f2 = 1; + e2 = a2; + d2 = g2; + } + } + while (0); + if ((j2 | 0) == 8) { + h2 = e2; + f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; + e2 = a2; + } + e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; + if ((e2 | 0) < 0) { + j2 = b2 + 10 | 0; + i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; + } + c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; + k[b2 >> 2] = c2; + d2 = i2[m2 >> 0] | 0; + if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { + b2 = d2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + k[b2 >> 2] = c2 >> 1; + j2 = (d2 & 255) >>> 1; + i2[m2 >> 0] = j2; + b2 = b2 + 10 | 0; + i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; + b2 = j2; + b2 = b2 & 255; + b2 = b2 + 1 | 0; + b2 = b2 & 255; + i2[m2 >> 0] = b2; + return e2 | 0; + } + function zi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + o2 = r; + r = r + 32 | 0; + d2 = o2; + n2 = a2 + 136 | 0; + a: + do + if (!(k[n2 >> 2] | 0)) { + c2 = k[a2 + 128 >> 2] | 0; + b2 = a2 + 144 | 0; + if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) + switch (k[b2 >> 2] | 0) { + case 8: { + n2 = k[8900] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 10: { + n2 = k[8903] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 12: { + n2 = k[8906] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + case 16: { + n2 = k[8909] | 0; + k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); + r = o2; + return; + } + default: + break a; + } + } else + b2 = a2 + 144 | 0; + while (0); + m2 = 1 << k[b2 >> 2]; + c2 = a2 + 4608 | 0; + d2 = m2 << 1; + e2 = a2 + 4612 | 0; + f2 = k[e2 >> 2] | 0; + b2 = k[c2 >> 2] | 0; + g2 = f2 - b2 | 0; + if (d2 >>> 0 <= g2 >>> 0) { + if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) + k[e2 >> 2] = h2; + } else { + se(c2, d2 - g2 | 0); + b2 = k[c2 >> 2] | 0; + } + l2 = a2 + 4604 | 0; + k[l2 >> 2] = b2 + m2; + b2 = 0 - m2 | 0; + if ((m2 | 0) <= (b2 | 0)) { + r = o2; + return; + } + h2 = a2 + 184 | 0; + j2 = a2 + 180 | 0; + g2 = a2 + 176 | 0; + f2 = b2; + do { + b2 = k[h2 >> 2] | 0; + if ((f2 | 0) > (0 - b2 | 0)) { + c2 = k[j2 >> 2] | 0; + if ((f2 | 0) > (0 - c2 | 0)) { + d2 = k[g2 >> 2] | 0; + if ((f2 | 0) > (0 - d2 | 0)) { + e2 = k[n2 >> 2] | 0; + if ((f2 | 0) >= (0 - e2 | 0)) + if ((e2 | 0) < (f2 | 0)) + if ((d2 | 0) <= (f2 | 0)) + if ((c2 | 0) > (f2 | 0)) + b2 = 2; + else + b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; + else + b2 = 1; + else + b2 = 0; + else + b2 = -1; + } else + b2 = -2; + } else + b2 = -3; + } else + b2 = -4; + i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (m2 | 0)); + r = o2; + return; + } + function Ai(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Bi(a2) { + a2 = a2 | 0; + return 50767; + } + function Ci(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + Qm(a2, 50754, 12); + return; + } + function Di(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; + q2 = r; + r = r + 16 | 0; + s2 = q2; + k[s2 >> 2] = 0; + t2 = s2 + 4 | 0; + k[t2 >> 2] = 0; + k[s2 + 8 >> 2] = 0; + o2 = s2 + 8 | 0; + x = 0; + e2 = ta(67, 1) | 0; + n2 = x; + x = 0; + a: + do + if ((!(n2 & 1) ? (n2 = e2 + 1 | 0, i2[e2 >> 0] = c2, k[s2 >> 2] = e2, k[t2 >> 2] = n2, k[o2 >> 2] = n2, x = 0, ra(84, s2 | 0, b2 & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, ra(84, s2 | 0, a2 & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { + l2 = d2 & 255; + e2 = k[t2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= c2 >>> 0) { + b2 = k[s2 >> 2] | 0; + a2 = b2; + g2 = e2 - a2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + p2 = 52; + break; + } + a2 = k[s2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + b2 = a2; + } + j2 = b2; + e2 = c2 - j2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + c2 = k[t2 >> 2] | 0; + h2 = c2 - j2 | 0; + if (!e2) { + e2 = 0; + g2 = 0; + } else + p2 = 12; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + c2 = h2; + h2 = h2 - j2 | 0; + p2 = 12; + } + if ((p2 | 0) == 12) { + x = 0; + g2 = ta(67, e2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + p2 = 52; + break; + } + } + i2[g2 + h2 >> 0] = l2; + m2 = c2 - j2 | 0; + n2 = g2 + (h2 - m2) | 0; + vw(n2 | 0, b2 | 0, m2 | 0) | 0; + k[s2 >> 2] = n2; + k[t2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + e2; + if (a2) + mj(a2); + } else { + i2[e2 >> 0] = l2; + k[t2 >> 2] = (k[t2 >> 2] | 0) + 1; + } + b: + do + if ((d2 | 0) > 0) { + n2 = 0; + while (1) { + n2 = n2 + 1 | 0; + m2 = n2 & 255; + e2 = k[t2 >> 2] | 0; + b2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= b2 >>> 0) { + a2 = k[s2 >> 2] | 0; + c2 = a2; + g2 = e2 - c2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + l2 = x; + x = 0; + if (l2 & 1) + break; + a2 = k[s2 >> 2] | 0; + c2 = a2; + b2 = k[o2 >> 2] | 0; + } + l2 = a2; + e2 = b2 - l2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + b2 = k[t2 >> 2] | 0; + h2 = b2 - l2 | 0; + if (!e2) { + j2 = 0; + g2 = 0; + } else + p2 = 25; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + b2 = h2; + h2 = h2 - l2 | 0; + p2 = 25; + } + if ((p2 | 0) == 25) { + p2 = 0; + x = 0; + g2 = ta(67, e2 | 0) | 0; + j2 = x; + x = 0; + if (j2 & 1) + break; + else + j2 = e2; + } + i2[g2 + h2 >> 0] = m2; + e2 = g2 + (h2 + 1) | 0; + l2 = b2 - l2 | 0; + m2 = g2 + (h2 - l2) | 0; + vw(m2 | 0, a2 | 0, l2 | 0) | 0; + k[s2 >> 2] = m2; + k[t2 >> 2] = e2; + k[o2 >> 2] = g2 + j2; + if (c2) { + mj(c2); + e2 = k[t2 >> 2] | 0; + } + } else { + i2[e2 >> 0] = m2; + e2 = (k[t2 >> 2] | 0) + 1 | 0; + k[t2 >> 2] = e2; + } + c2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= c2 >>> 0) { + b2 = k[s2 >> 2] | 0; + a2 = b2; + g2 = e2 - a2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + m2 = x; + x = 0; + if (m2 & 1) + break; + a2 = k[s2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + b2 = a2; + } + l2 = b2; + e2 = c2 - l2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + g2 = k[t2 >> 2] | 0; + h2 = g2 - l2 | 0; + if (!e2) { + j2 = 0; + c2 = 0; + } else + p2 = 36; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + g2 = h2; + h2 = h2 - l2 | 0; + p2 = 36; + } + if ((p2 | 0) == 36) { + p2 = 0; + x = 0; + c2 = ta(67, e2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) + break; + else + j2 = e2; + } + i2[c2 + h2 >> 0] = 17; + e2 = c2 + (h2 + 1) | 0; + l2 = g2 - l2 | 0; + m2 = c2 + (h2 - l2) | 0; + vw(m2 | 0, b2 | 0, l2 | 0) | 0; + k[s2 >> 2] = m2; + k[t2 >> 2] = e2; + k[o2 >> 2] = c2 + j2; + if (a2) { + mj(a2); + e2 = k[t2 >> 2] | 0; + } + } else { + i2[e2 >> 0] = 17; + e2 = (k[t2 >> 2] | 0) + 1 | 0; + k[t2 >> 2] = e2; + } + c2 = k[o2 >> 2] | 0; + if (e2 >>> 0 >= c2 >>> 0) { + b2 = k[s2 >> 2] | 0; + a2 = b2; + g2 = e2 - a2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, s2 | 0); + m2 = x; + x = 0; + if (m2 & 1) + break; + a2 = k[s2 >> 2] | 0; + c2 = k[o2 >> 2] | 0; + b2 = a2; + } + j2 = b2; + e2 = c2 - j2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + c2 = k[t2 >> 2] | 0; + h2 = c2 - j2 | 0; + if (!e2) { + e2 = 0; + g2 = 0; + } else + p2 = 48; + } else { + h2 = k[t2 >> 2] | 0; + e2 = 2147483647; + c2 = h2; + h2 = h2 - j2 | 0; + p2 = 48; + } + if ((p2 | 0) == 48) { + p2 = 0; + x = 0; + g2 = ta(67, e2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) + break; + } + i2[g2 + h2 >> 0] = 0; + l2 = c2 - j2 | 0; + m2 = g2 + (h2 - l2) | 0; + vw(m2 | 0, b2 | 0, l2 | 0) | 0; + k[s2 >> 2] = m2; + k[t2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + e2; + if (a2) + mj(a2); + } else { + i2[e2 >> 0] = 0; + k[t2 >> 2] = (k[t2 >> 2] | 0) + 1; + } + if ((n2 | 0) >= (d2 | 0)) + break b; + } + f2 = Wa() | 0; + break a; + } + while (0); + x = 0; + h2 = ta(67, 20) | 0; + d2 = x; + x = 0; + if (!(d2 & 1)) { + k[h2 >> 2] = 36800; + i2[h2 + 4 >> 0] = -9; + a2 = h2 + 8 | 0; + k[a2 >> 2] = 0; + g2 = h2 + 12 | 0; + k[g2 >> 2] = 0; + c2 = h2 + 16 | 0; + k[c2 >> 2] = 0; + e2 = k[t2 >> 2] | 0; + d2 = k[s2 >> 2] | 0; + b2 = e2 - d2 | 0; + do + if ((e2 | 0) != (d2 | 0)) { + if (!((b2 | 0) < 0 ? (x = 0, qa(178, a2 | 0), d2 = x, x = 0, d2 & 1) : 0)) + p2 = 62; + if ((p2 | 0) == 62 ? (x = 0, f2 = ta(67, b2 | 0) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { + k[g2 >> 2] = f2; + k[a2 >> 2] = f2; + k[c2 >> 2] = f2 + b2; + e2 = k[s2 >> 2] | 0; + c2 = k[t2 >> 2] | 0; + if ((e2 | 0) == (c2 | 0)) + break; + do { + i2[f2 >> 0] = i2[e2 >> 0] | 0; + f2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = f2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) != (c2 | 0)); + e2 = k[s2 >> 2] | 0; + break; + } + f2 = Wa() | 0; + e2 = k[a2 >> 2] | 0; + if (e2) { + if ((k[g2 >> 2] | 0) != (e2 | 0)) + k[g2 >> 2] = e2; + mj(e2); + } + mj(h2); + break a; + } + while (0); + if (!e2) { + r = q2; + return h2 | 0; + } + if ((k[t2 >> 2] | 0) != (e2 | 0)) + k[t2 >> 2] = e2; + mj(e2); + r = q2; + return h2 | 0; + } else + p2 = 52; + } else + p2 = 52; + while (0); + if ((p2 | 0) == 52) + f2 = Wa() | 0; + e2 = k[s2 >> 2] | 0; + if (!e2) + fb(f2 | 0); + if ((k[t2 >> 2] | 0) != (e2 | 0)) + k[t2 >> 2] = e2; + mj(e2); + fb(f2 | 0); + return 0; + } + function Ei(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; + t2 = r; + r = r + 32 | 0; + p2 = t2 + 28 | 0; + v2 = t2 + 16 | 0; + s2 = t2 + 4 | 0; + q2 = t2; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + n2 = lj(5) | 0; + k[v2 >> 2] = n2; + o2 = v2 + 8 | 0; + k[o2 >> 2] = n2 + 5; + i2[n2 >> 0] = 74; + i2[n2 + 1 >> 0] = 70; + i2[n2 + 2 >> 0] = 73; + i2[n2 + 3 >> 0] = 70; + i2[n2 + 4 >> 0] = 0; + k[w2 >> 2] = n2 + 5; + x = 0; + ra(84, v2 | 0, k[a2 >> 2] & 65535 | 0); + n2 = x; + x = 0; + a: + do + if (!(n2 & 1)) { + l2 = k[a2 + 4 >> 2] & 255; + b2 = k[w2 >> 2] | 0; + d2 = k[o2 >> 2] | 0; + if (b2 >>> 0 >= d2 >>> 0) { + e2 = k[v2 >> 2] | 0; + f2 = e2; + g2 = b2 - f2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + n2 = x; + x = 0; + if (n2 & 1) { + u2 = 43; + break; + } + f2 = k[v2 >> 2] | 0; + d2 = k[o2 >> 2] | 0; + e2 = f2; + } + j2 = e2; + b2 = d2 - j2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; + d2 = k[w2 >> 2] | 0; + h2 = d2 - j2 | 0; + if (!b2) { + b2 = 0; + g2 = 0; + } else + u2 = 10; + } else { + h2 = k[w2 >> 2] | 0; + b2 = 2147483647; + d2 = h2; + h2 = h2 - j2 | 0; + u2 = 10; + } + if ((u2 | 0) == 10) { + x = 0; + g2 = ta(67, b2 | 0) | 0; + n2 = x; + x = 0; + if (n2 & 1) { + u2 = 43; + break; + } + } + i2[g2 + h2 >> 0] = l2; + m2 = d2 - j2 | 0; + n2 = g2 + (h2 - m2) | 0; + vw(n2 | 0, e2 | 0, m2 | 0) | 0; + k[v2 >> 2] = n2; + k[w2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + b2; + if (f2) + mj(f2); + } else { + i2[b2 >> 0] = l2; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + x = 0; + ra(84, v2 | 0, k[a2 + 8 >> 2] & 65535 | 0); + n2 = x; + x = 0; + if (!(n2 & 1) ? (x = 0, ra(84, v2 | 0, k[a2 + 12 >> 2] & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { + n2 = a2 + 16 | 0; + m2 = k[n2 >> 2] & 255; + b2 = k[w2 >> 2] | 0; + e2 = k[o2 >> 2] | 0; + if (b2 >>> 0 >= e2 >>> 0) { + f2 = k[v2 >> 2] | 0; + d2 = f2; + g2 = b2 - d2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + u2 = 43; + break; + } + f2 = k[v2 >> 2] | 0; + d2 = f2; + e2 = k[o2 >> 2] | 0; + } + l2 = f2; + b2 = e2 - l2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; + g2 = k[w2 >> 2] | 0; + h2 = g2 - l2 | 0; + if (!b2) { + j2 = 0; + e2 = 0; + } else + u2 = 23; + } else { + h2 = k[w2 >> 2] | 0; + b2 = 2147483647; + g2 = h2; + h2 = h2 - l2 | 0; + u2 = 23; + } + if ((u2 | 0) == 23) { + x = 0; + e2 = ta(67, b2 | 0) | 0; + j2 = x; + x = 0; + if (j2 & 1) { + u2 = 43; + break; + } else + j2 = b2; + } + i2[e2 + h2 >> 0] = m2; + b2 = e2 + (h2 + 1) | 0; + l2 = g2 - l2 | 0; + m2 = e2 + (h2 - l2) | 0; + vw(m2 | 0, f2 | 0, l2 | 0) | 0; + k[v2 >> 2] = m2; + k[w2 >> 2] = b2; + k[o2 >> 2] = e2 + j2; + if (d2) { + mj(d2); + b2 = k[w2 >> 2] | 0; + } + } else { + i2[b2 >> 0] = m2; + b2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = b2; + } + m2 = a2 + 20 | 0; + l2 = k[m2 >> 2] & 255; + d2 = k[o2 >> 2] | 0; + if (b2 >>> 0 >= d2 >>> 0) { + e2 = k[v2 >> 2] | 0; + f2 = e2; + g2 = b2 - f2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + j2 = x; + x = 0; + if (j2 & 1) { + u2 = 43; + break; + } + f2 = k[v2 >> 2] | 0; + d2 = k[o2 >> 2] | 0; + e2 = f2; + } + j2 = e2; + b2 = d2 - j2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; + d2 = k[w2 >> 2] | 0; + h2 = d2 - j2 | 0; + if (!b2) { + b2 = 0; + g2 = 0; + } else + u2 = 34; + } else { + h2 = k[w2 >> 2] | 0; + b2 = 2147483647; + d2 = h2; + h2 = h2 - j2 | 0; + u2 = 34; + } + if ((u2 | 0) == 34) { + x = 0; + g2 = ta(67, b2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + u2 = 43; + break; + } + } + i2[g2 + h2 >> 0] = l2; + l2 = d2 - j2 | 0; + y2 = g2 + (h2 - l2) | 0; + vw(y2 | 0, e2 | 0, l2 | 0) | 0; + k[v2 >> 2] = y2; + k[w2 >> 2] = g2 + (h2 + 1); + k[o2 >> 2] = g2 + b2; + if (f2) + mj(f2); + } else { + i2[b2 >> 0] = l2; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + b2 = k[n2 >> 2] | 0; + do + if ((b2 | 0) > 0) { + if (!(k[a2 + 24 >> 2] | 0)) { + k[q2 >> 2] = k[w2 >> 2]; + y2 = 0 + (ia(b2 * 3 | 0, k[m2 >> 2] | 0) | 0) | 0; + x = 0; + k[p2 >> 2] = k[q2 >> 2]; + Ea(15, v2 | 0, p2 | 0, 0, y2 | 0) | 0; + y2 = x; + x = 0; + if (y2 & 1) { + u2 = 43; + break a; + } else + break; + } + d2 = Va(16) | 0; + x = 0; + Fa(5, s2 | 0, 50792, 57); + y2 = x; + x = 0; + if (!(y2 & 1)) { + x = 0; + b2 = Da(1) | 0; + y2 = x; + x = 0; + if (!(y2 & 1) ? (x = 0, Ja(36, d2 | 0, 1, b2 | 0, s2 | 0), y2 = x, x = 0, !(y2 & 1)) : 0) { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } else + c2 = 1; + b2 = Wa() | 0; + Sm(s2); + if (!c2) { + c2 = b2; + break a; + } + } else + b2 = Wa() | 0; + Ua(d2 | 0); + c2 = b2; + break a; + } + while (0); + x = 0; + h2 = ta(67, 20) | 0; + y2 = x; + x = 0; + if (!(y2 & 1)) { + k[h2 >> 2] = 36800; + i2[h2 + 4 >> 0] = -32; + f2 = h2 + 8 | 0; + k[f2 >> 2] = 0; + g2 = h2 + 12 | 0; + k[g2 >> 2] = 0; + d2 = h2 + 16 | 0; + k[d2 >> 2] = 0; + b2 = k[w2 >> 2] | 0; + y2 = k[v2 >> 2] | 0; + e2 = b2 - y2 | 0; + do + if ((b2 | 0) != (y2 | 0)) { + if (!((e2 | 0) < 0 ? (x = 0, qa(178, f2 | 0), y2 = x, x = 0, y2 & 1) : 0)) + u2 = 53; + if ((u2 | 0) == 53 ? (x = 0, c2 = ta(67, e2 | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { + k[g2 >> 2] = c2; + k[f2 >> 2] = c2; + k[d2 >> 2] = c2 + e2; + b2 = k[v2 >> 2] | 0; + d2 = k[w2 >> 2] | 0; + if ((b2 | 0) == (d2 | 0)) + break; + do { + i2[c2 >> 0] = i2[b2 >> 0] | 0; + c2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (d2 | 0)); + b2 = k[v2 >> 2] | 0; + break; + } + b2 = Wa() | 0; + c2 = k[f2 >> 2] | 0; + if (c2) { + if ((k[g2 >> 2] | 0) != (c2 | 0)) + k[g2 >> 2] = c2; + mj(c2); + } + mj(h2); + u2 = 44; + break a; + } + while (0); + if (!b2) { + r = t2; + return h2 | 0; + } + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + r = t2; + return h2 | 0; + } else + u2 = 43; + } else + u2 = 43; + } else + u2 = 43; + while (0); + if ((u2 | 0) == 43) { + b2 = Wa() | 0; + u2 = 44; + } + if ((u2 | 0) == 44) + c2 = b2; + b2 = k[v2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[w2 >> 2] | 0) != (b2 | 0)) + k[w2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + return 0; + } + function Fi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + h2 = r; + r = r + 16 | 0; + l2 = h2; + k[l2 >> 2] = 0; + m2 = l2 + 4 | 0; + k[m2 >> 2] = 0; + k[l2 + 8 >> 2] = 0; + x = 0; + b2 = ta(67, 1) | 0; + g2 = x; + x = 0; + a: + do + if ((((((!(g2 & 1) ? (g2 = b2 + 1 | 0, i2[b2 >> 0] = 1, k[l2 >> 2] = b2, k[m2 >> 2] = g2, k[l2 + 8 >> 2] = g2, x = 0, ra(84, l2 | 0, k[a2 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 4 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 8 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 12 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 16 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, j2 = ta(67, 20) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { + k[j2 >> 2] = 36800; + i2[j2 + 4 >> 0] = -8; + e2 = j2 + 8 | 0; + k[e2 >> 2] = 0; + g2 = j2 + 12 | 0; + k[g2 >> 2] = 0; + a2 = j2 + 16 | 0; + k[a2 >> 2] = 0; + b2 = k[m2 >> 2] | 0; + n2 = k[l2 >> 2] | 0; + d2 = b2 - n2 | 0; + do + if ((b2 | 0) != (n2 | 0)) { + if (!((d2 | 0) < 0 ? (x = 0, qa(178, e2 | 0), n2 = x, x = 0, n2 & 1) : 0)) + f2 = 11; + if ((f2 | 0) == 11 ? (x = 0, c2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { + k[g2 >> 2] = c2; + k[e2 >> 2] = c2; + k[a2 >> 2] = c2 + d2; + b2 = k[l2 >> 2] | 0; + a2 = k[m2 >> 2] | 0; + if ((b2 | 0) == (a2 | 0)) + break; + do { + i2[c2 >> 0] = i2[b2 >> 0] | 0; + c2 = (k[g2 >> 2] | 0) + 1 | 0; + k[g2 >> 2] = c2; + b2 = b2 + 1 | 0; + } while ((b2 | 0) != (a2 | 0)); + b2 = k[l2 >> 2] | 0; + break; + } + c2 = Wa() | 0; + b2 = k[e2 >> 2] | 0; + if (b2) { + if ((k[g2 >> 2] | 0) != (b2 | 0)) + k[g2 >> 2] = b2; + mj(b2); + } + mj(j2); + break a; + } + while (0); + if (!b2) { + r = h2; + return j2 | 0; + } + if ((k[m2 >> 2] | 0) != (b2 | 0)) + k[m2 >> 2] = b2; + mj(b2); + r = h2; + return j2 | 0; + } else + f2 = 25; + while (0); + if ((f2 | 0) == 25) + c2 = Wa() | 0; + b2 = k[l2 >> 2] | 0; + if (!b2) + fb(c2 | 0); + if ((k[m2 >> 2] | 0) != (b2 | 0)) + k[m2 >> 2] = b2; + mj(b2); + fb(c2 | 0); + return 0; + } + function Gi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = lj(5) | 0; + i2[f2 >> 0] = 109; + i2[f2 + 1 >> 0] = 114; + i2[f2 + 2 >> 0] = 102; + i2[f2 + 3 >> 0] = 120; + i2[f2 + 4 >> 0] = a2; + x = 0; + e2 = ta(67, 20) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + e2 = Wa() | 0; + mj(f2); + fb(e2 | 0); + } + k[e2 >> 2] = 36800; + i2[e2 + 4 >> 0] = -24; + a2 = e2 + 8 | 0; + k[a2 >> 2] = 0; + b2 = e2 + 12 | 0; + k[b2 >> 2] = 0; + c2 = e2 + 16 | 0; + k[c2 >> 2] = 0; + x = 0; + d2 = ta(67, 5) | 0; + g2 = x; + x = 0; + if (!(g2 & 1)) { + k[b2 >> 2] = d2; + k[a2 >> 2] = d2; + k[c2 >> 2] = d2 + 5; + i2[d2 >> 0] = 109; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + d2 = f2 + 1 | 0; + i2[g2 >> 0] = i2[d2 >> 0] | 0; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + d2 = d2 + 1 | 0; + i2[g2 >> 0] = i2[d2 >> 0] | 0; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + d2 = d2 + 1 | 0; + i2[g2 >> 0] = i2[d2 >> 0] | 0; + g2 = (k[b2 >> 2] | 0) + 1 | 0; + k[b2 >> 2] = g2; + i2[g2 >> 0] = i2[d2 + 1 >> 0] | 0; + k[b2 >> 2] = (k[b2 >> 2] | 0) + 1; + mj(f2); + return e2 | 0; + } + g2 = Wa() | 0; + mj(e2); + mj(f2); + fb(g2 | 0); + return 0; + } + function Hi(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 16 | 0; + v2 = u2; + k[v2 >> 2] = 0; + w2 = v2 + 4 | 0; + k[w2 >> 2] = 0; + k[v2 + 8 >> 2] = 0; + s2 = v2 + 8 | 0; + x = 0; + e2 = ta(67, 1) | 0; + q2 = x; + x = 0; + a: + do + if (!(q2 & 1)) { + h2 = e2 + 1 | 0; + q2 = h2; + i2[e2 >> 0] = b2; + k[v2 >> 2] = e2; + k[w2 >> 2] = q2; + k[s2 >> 2] = q2; + if ((b2 | 0) > 0) { + g2 = h2; + q2 = 0; + do { + p2 = q2 + a2 & 255; + if (g2 >>> 0 >= h2 >>> 0) { + e2 = k[v2 >> 2] | 0; + j2 = e2; + g2 = g2 - j2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + o2 = x; + x = 0; + if (o2 & 1) { + t2 = 28; + break; + } + j2 = k[v2 >> 2] | 0; + h2 = k[s2 >> 2] | 0; + o2 = j2; + } else + o2 = e2; + n2 = o2; + e2 = h2 - n2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + h2 = k[w2 >> 2] | 0; + l2 = h2 - n2 | 0; + if (!e2) { + m2 = 0; + g2 = 0; + } else + t2 = 13; + } else { + l2 = k[w2 >> 2] | 0; + e2 = 2147483647; + h2 = l2; + l2 = l2 - n2 | 0; + t2 = 13; + } + if ((t2 | 0) == 13) { + t2 = 0; + x = 0; + g2 = ta(67, e2 | 0) | 0; + m2 = x; + x = 0; + if (m2 & 1) { + t2 = 28; + break; + } else + m2 = e2; + } + i2[g2 + l2 >> 0] = p2; + e2 = g2 + (l2 + 1) | 0; + n2 = h2 - n2 | 0; + p2 = g2 + (l2 - n2) | 0; + vw(p2 | 0, o2 | 0, n2 | 0) | 0; + k[v2 >> 2] = p2; + k[w2 >> 2] = e2; + k[s2 >> 2] = g2 + m2; + if (j2) { + mj(j2); + e2 = k[w2 >> 2] | 0; + } + } else { + i2[g2 >> 0] = p2; + e2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = e2; + } + h2 = k[s2 >> 2] | 0; + if (e2 >>> 0 >= h2 >>> 0) { + j2 = k[v2 >> 2] | 0; + g2 = j2; + l2 = e2 - g2 + 1 | 0; + if ((l2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 28; + break; + } + j2 = k[v2 >> 2] | 0; + g2 = j2; + h2 = k[s2 >> 2] | 0; + } + n2 = j2; + e2 = h2 - n2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < l2 >>> 0 ? l2 : e2; + l2 = k[w2 >> 2] | 0; + h2 = l2 - n2 | 0; + if (!e2) { + e2 = 0; + m2 = 0; + } else + t2 = 24; + } else { + h2 = k[w2 >> 2] | 0; + e2 = 2147483647; + l2 = h2; + h2 = h2 - n2 | 0; + t2 = 24; + } + if ((t2 | 0) == 24) { + t2 = 0; + x = 0; + m2 = ta(67, e2 | 0) | 0; + p2 = x; + x = 0; + if (p2 & 1) { + t2 = 28; + break; + } + } + i2[m2 + h2 >> 0] = 0; + o2 = l2 - n2 | 0; + p2 = m2 + (h2 - o2) | 0; + vw(p2 | 0, j2 | 0, o2 | 0) | 0; + k[v2 >> 2] = p2; + k[w2 >> 2] = m2 + (h2 + 1); + k[s2 >> 2] = m2 + e2; + if (g2) + mj(g2); + } else { + i2[e2 >> 0] = 0; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + q2 = q2 + 1 | 0; + g2 = k[w2 >> 2] | 0; + h2 = k[s2 >> 2] | 0; + } while ((q2 | 0) < (b2 | 0)); + if ((t2 | 0) == 28) { + f2 = Wa() | 0; + break; + } + e2 = c2 & 255; + if (g2 >>> 0 < h2 >>> 0) { + i2[g2 >> 0] = e2; + g2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = g2; + } else + t2 = 37; + } else { + g2 = h2; + e2 = c2 & 255; + t2 = 37; + } + if ((t2 | 0) == 37) { + j2 = k[v2 >> 2] | 0; + l2 = j2; + m2 = g2 - l2 + 1 | 0; + if ((m2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + t2 = 29; + break; + } + l2 = k[v2 >> 2] | 0; + h2 = k[s2 >> 2] | 0; + j2 = l2; + } + p2 = j2; + g2 = h2 - p2 | 0; + if (g2 >>> 0 < 1073741823) { + g2 = g2 << 1; + g2 = g2 >>> 0 < m2 >>> 0 ? m2 : g2; + m2 = k[w2 >> 2] | 0; + n2 = m2 - p2 | 0; + if (!g2) { + o2 = 0; + h2 = 0; + } else + t2 = 43; + } else { + n2 = k[w2 >> 2] | 0; + g2 = 2147483647; + m2 = n2; + n2 = n2 - p2 | 0; + t2 = 43; + } + if ((t2 | 0) == 43) { + x = 0; + h2 = ta(67, g2 | 0) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + t2 = 29; + break; + } else + o2 = g2; + } + i2[h2 + n2 >> 0] = e2; + g2 = h2 + (n2 + 1) | 0; + a2 = m2 - p2 | 0; + c2 = h2 + (n2 - a2) | 0; + vw(c2 | 0, j2 | 0, a2 | 0) | 0; + k[v2 >> 2] = c2; + k[w2 >> 2] = g2; + k[s2 >> 2] = h2 + o2; + if (l2) { + mj(l2); + g2 = k[w2 >> 2] | 0; + } + } + p2 = d2 & 255; + e2 = k[s2 >> 2] | 0; + if (g2 >>> 0 >= e2 >>> 0) { + h2 = k[v2 >> 2] | 0; + j2 = h2; + g2 = g2 - j2 + 1 | 0; + if ((g2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } + j2 = k[v2 >> 2] | 0; + e2 = k[s2 >> 2] | 0; + h2 = j2; + } + o2 = h2; + e2 = e2 - o2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; + l2 = k[w2 >> 2] | 0; + m2 = l2 - o2 | 0; + if (!e2) { + n2 = 0; + g2 = 0; + } else + t2 = 54; + } else { + m2 = k[w2 >> 2] | 0; + e2 = 2147483647; + l2 = m2; + m2 = m2 - o2 | 0; + t2 = 54; + } + if ((t2 | 0) == 54) { + x = 0; + g2 = ta(67, e2 | 0) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } else + n2 = e2; + } + i2[g2 + m2 >> 0] = p2; + e2 = g2 + (m2 + 1) | 0; + c2 = l2 - o2 | 0; + d2 = g2 + (m2 - c2) | 0; + vw(d2 | 0, h2 | 0, c2 | 0) | 0; + k[v2 >> 2] = d2; + k[w2 >> 2] = e2; + k[s2 >> 2] = g2 + n2; + if (j2) { + mj(j2); + e2 = k[w2 >> 2] | 0; + } + } else { + i2[g2 >> 0] = p2; + e2 = (k[w2 >> 2] | 0) + 1 | 0; + k[w2 >> 2] = e2; + } + g2 = k[s2 >> 2] | 0; + if (e2 >>> 0 >= g2 >>> 0) { + h2 = k[v2 >> 2] | 0; + j2 = h2; + l2 = e2 - j2 + 1 | 0; + if ((l2 | 0) < 0) { + x = 0; + qa(178, v2 | 0); + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } + j2 = k[v2 >> 2] | 0; + g2 = k[s2 >> 2] | 0; + h2 = j2; + } + n2 = h2; + e2 = g2 - n2 | 0; + if (e2 >>> 0 < 1073741823) { + e2 = e2 << 1; + e2 = e2 >>> 0 < l2 >>> 0 ? l2 : e2; + g2 = k[w2 >> 2] | 0; + m2 = g2 - n2 | 0; + if (!e2) { + e2 = 0; + l2 = 0; + } else + t2 = 65; + } else { + m2 = k[w2 >> 2] | 0; + e2 = 2147483647; + g2 = m2; + m2 = m2 - n2 | 0; + t2 = 65; + } + if ((t2 | 0) == 65) { + x = 0; + l2 = ta(67, e2 | 0) | 0; + d2 = x; + x = 0; + if (d2 & 1) { + t2 = 29; + break; + } + } + i2[l2 + m2 >> 0] = 0; + c2 = g2 - n2 | 0; + d2 = l2 + (m2 - c2) | 0; + vw(d2 | 0, h2 | 0, c2 | 0) | 0; + k[v2 >> 2] = d2; + k[w2 >> 2] = l2 + (m2 + 1); + k[s2 >> 2] = l2 + e2; + if (j2) + mj(j2); + } else { + i2[e2 >> 0] = 0; + k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; + } + x = 0; + m2 = ta(67, 20) | 0; + s2 = x; + x = 0; + if (!(s2 & 1)) { + k[m2 >> 2] = 36800; + i2[m2 + 4 >> 0] = -38; + j2 = m2 + 8 | 0; + k[j2 >> 2] = 0; + l2 = m2 + 12 | 0; + k[l2 >> 2] = 0; + g2 = m2 + 16 | 0; + k[g2 >> 2] = 0; + e2 = k[w2 >> 2] | 0; + s2 = k[v2 >> 2] | 0; + h2 = e2 - s2 | 0; + do + if ((e2 | 0) != (s2 | 0)) { + if (!((h2 | 0) < 0 ? (x = 0, qa(178, j2 | 0), s2 = x, x = 0, s2 & 1) : 0)) + t2 = 72; + if ((t2 | 0) == 72 ? (x = 0, f2 = ta(67, h2 | 0) | 0, s2 = x, x = 0, !(s2 & 1)) : 0) { + k[l2 >> 2] = f2; + k[j2 >> 2] = f2; + k[g2 >> 2] = f2 + h2; + e2 = k[v2 >> 2] | 0; + g2 = k[w2 >> 2] | 0; + if ((e2 | 0) == (g2 | 0)) + break; + do { + i2[f2 >> 0] = i2[e2 >> 0] | 0; + f2 = (k[l2 >> 2] | 0) + 1 | 0; + k[l2 >> 2] = f2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) != (g2 | 0)); + e2 = k[v2 >> 2] | 0; + break; + } + f2 = Wa() | 0; + e2 = k[j2 >> 2] | 0; + if (e2) { + if ((k[l2 >> 2] | 0) != (e2 | 0)) + k[l2 >> 2] = e2; + mj(e2); + } + mj(m2); + break a; + } + while (0); + if (!e2) { + r = u2; + return m2 | 0; + } + if ((k[w2 >> 2] | 0) != (e2 | 0)) + k[w2 >> 2] = e2; + mj(e2); + r = u2; + return m2 | 0; + } else + t2 = 29; + } else + t2 = 29; + while (0); + if ((t2 | 0) == 29) + f2 = Wa() | 0; + e2 = k[v2 >> 2] | 0; + if (!e2) + fb(f2 | 0); + if ((k[w2 >> 2] | 0) != (e2 | 0)) + k[w2 >> 2] = e2; + mj(e2); + fb(f2 | 0); + return 0; + } + function Ii(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + n2 = (b2 & 65535) >>> 8 & 255; + o2 = a2 + 4 | 0; + c2 = k[o2 >> 2] | 0; + p2 = a2 + 8 | 0; + d2 = k[p2 >> 2] | 0; + if (c2 >>> 0 >= d2 >>> 0) { + e2 = k[a2 >> 2] | 0; + f2 = e2; + g2 = c2 - f2 + 1 | 0; + if ((g2 | 0) < 0) { + jj(a2); + f2 = k[a2 >> 2] | 0; + d2 = k[p2 >> 2] | 0; + e2 = f2; + } + m2 = e2; + c2 = d2 - m2 | 0; + if (c2 >>> 0 < 1073741823) { + c2 = c2 << 1; + c2 = c2 >>> 0 < g2 >>> 0 ? g2 : c2; + g2 = k[o2 >> 2] | 0; + d2 = g2 - m2 | 0; + if (!c2) { + l2 = 0; + j2 = 0; + h2 = d2; + c2 = g2; + } else + q2 = 8; + } else { + d2 = k[o2 >> 2] | 0; + c2 = 2147483647; + g2 = d2; + d2 = d2 - m2 | 0; + q2 = 8; + } + if ((q2 | 0) == 8) { + l2 = c2; + j2 = lj(c2) | 0; + h2 = d2; + c2 = g2; + } + i2[j2 + h2 >> 0] = n2; + d2 = j2 + (h2 + 1) | 0; + m2 = c2 - m2 | 0; + n2 = j2 + (h2 - m2) | 0; + vw(n2 | 0, e2 | 0, m2 | 0) | 0; + k[a2 >> 2] = n2; + k[o2 >> 2] = d2; + k[p2 >> 2] = j2 + l2; + if (f2) { + mj(f2); + d2 = k[o2 >> 2] | 0; + } + } else { + i2[c2 >> 0] = n2; + d2 = (k[o2 >> 2] | 0) + 1 | 0; + k[o2 >> 2] = d2; + } + m2 = b2 & 255; + c2 = k[p2 >> 2] | 0; + if (d2 >>> 0 < c2 >>> 0) { + i2[d2 >> 0] = m2; + k[o2 >> 2] = (k[o2 >> 2] | 0) + 1; + return; + } + e2 = k[a2 >> 2] | 0; + f2 = e2; + d2 = d2 - f2 + 1 | 0; + if ((d2 | 0) < 0) { + jj(a2); + f2 = k[a2 >> 2] | 0; + c2 = k[p2 >> 2] | 0; + e2 = f2; + } + l2 = e2; + c2 = c2 - l2 | 0; + if (c2 >>> 0 < 1073741823) { + c2 = c2 << 1; + c2 = c2 >>> 0 < d2 >>> 0 ? d2 : c2; + g2 = k[o2 >> 2] | 0; + d2 = g2 - l2 | 0; + if (!c2) { + j2 = 0; + h2 = 0; + c2 = g2; + } else + q2 = 18; + } else { + d2 = k[o2 >> 2] | 0; + c2 = 2147483647; + g2 = d2; + d2 = d2 - l2 | 0; + q2 = 18; + } + if ((q2 | 0) == 18) { + j2 = c2; + h2 = lj(c2) | 0; + c2 = g2; + } + i2[h2 + d2 >> 0] = m2; + b2 = c2 - l2 | 0; + q2 = h2 + (d2 - b2) | 0; + vw(q2 | 0, e2 | 0, b2 | 0) | 0; + k[a2 >> 2] = q2; + k[o2 >> 2] = h2 + (d2 + 1); + k[p2 >> 2] = h2 + j2; + if (!f2) + return; + mj(f2); + return; + } + function Ji(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + e2 = k[a2 >> 2] | 0; + q2 = k[b2 >> 2] | 0; + p2 = q2; + j2 = e2; + n2 = c2; + l2 = d2 - n2 | 0; + if ((l2 | 0) <= 0) { + r2 = q2; + return r2 | 0; + } + o2 = a2 + 8 | 0; + b2 = k[o2 >> 2] | 0; + r2 = a2 + 4 | 0; + m2 = k[r2 >> 2] | 0; + f2 = m2; + if ((l2 | 0) <= (b2 - f2 | 0)) { + h2 = f2 - p2 | 0; + if ((l2 | 0) > (h2 | 0)) { + g2 = c2 + h2 | 0; + if ((g2 | 0) == (d2 | 0)) + b2 = m2; + else { + f2 = g2; + b2 = m2; + do { + i2[b2 >> 0] = i2[f2 >> 0] | 0; + b2 = (k[r2 >> 2] | 0) + 1 | 0; + k[r2 >> 2] = b2; + f2 = f2 + 1 | 0; + } while ((f2 | 0) != (d2 | 0)); + } + if ((h2 | 0) > 0) + h2 = b2; + else { + r2 = q2; + return r2 | 0; + } + } else { + h2 = m2; + g2 = d2; + } + e2 = h2 - (e2 + (l2 - j2 + p2)) | 0; + b2 = q2 + e2 | 0; + if (b2 >>> 0 < m2 >>> 0) { + f2 = h2; + do { + i2[f2 >> 0] = i2[b2 >> 0] | 0; + b2 = b2 + 1 | 0; + f2 = (k[r2 >> 2] | 0) + 1 | 0; + k[r2 >> 2] = f2; + } while ((b2 | 0) != (m2 | 0)); + } + xw(h2 + (0 - e2) | 0, q2 | 0, e2 | 0) | 0; + xw(q2 | 0, c2 | 0, g2 - n2 | 0) | 0; + r2 = q2; + return r2 | 0; + } + f2 = f2 - j2 + l2 | 0; + if ((f2 | 0) < 0) { + jj(a2); + b2 = k[o2 >> 2] | 0; + e2 = k[a2 >> 2] | 0; + } + g2 = e2; + b2 = b2 - g2 | 0; + if (b2 >>> 0 < 1073741823) { + b2 = b2 << 1; + b2 = b2 >>> 0 < f2 >>> 0 ? f2 : b2; + f2 = p2 - g2 | 0; + if (!b2) { + g2 = 0; + l2 = 0; + } else + h2 = 15; + } else { + b2 = 2147483647; + f2 = p2 - g2 | 0; + h2 = 15; + } + if ((h2 | 0) == 15) { + g2 = b2; + l2 = lj(b2) | 0; + } + j2 = l2 + f2 | 0; + b2 = j2; + h2 = l2 + g2 | 0; + if ((c2 | 0) != (d2 | 0)) { + e2 = c2; + g2 = j2; + do { + i2[g2 >> 0] = i2[e2 >> 0] | 0; + g2 = b2 + 1 | 0; + b2 = g2; + e2 = e2 + 1 | 0; + } while ((e2 | 0) != (d2 | 0)); + e2 = k[a2 >> 2] | 0; + } + c2 = p2 - e2 | 0; + d2 = l2 + (f2 - c2) | 0; + vw(d2 | 0, e2 | 0, c2 | 0) | 0; + p2 = (k[r2 >> 2] | 0) - p2 | 0; + c2 = b2; + vw(c2 | 0, q2 | 0, p2 | 0) | 0; + b2 = k[a2 >> 2] | 0; + k[a2 >> 2] = d2; + k[r2 >> 2] = c2 + p2; + k[o2 >> 2] = h2; + if (!b2) { + r2 = j2; + return r2 | 0; + } + mj(b2); + r2 = j2; + return r2 | 0; + } + function Ki(a2) { + a2 = a2 | 0; + var b2 = 0; + k[a2 >> 2] = 36800; + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) + return; + a2 = a2 + 12 | 0; + if ((k[a2 >> 2] | 0) != (b2 | 0)) + k[a2 >> 2] = b2; + mj(b2); + return; + } + function Li(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + k[a2 >> 2] = 36800; + b2 = k[a2 + 8 >> 2] | 0; + if (!b2) { + mj(a2); + return; + } + c2 = a2 + 12 | 0; + if ((k[c2 >> 2] | 0) != (b2 | 0)) + k[c2 >> 2] = b2; + mj(b2); + mj(a2); + return; + } + function Mi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + Ni(b2, -1); + Ni(b2, i2[a2 + 4 >> 0] | 0); + e2 = a2 + 12 | 0; + d2 = a2 + 8 | 0; + a2 = (k[e2 >> 2] | 0) - (k[d2 >> 2] | 0) + 2 | 0; + Ni(b2, (a2 & 65535) >>> 8 & 255); + Ni(b2, a2 & 255); + a2 = k[d2 >> 2] | 0; + if ((k[e2 >> 2] | 0) == (a2 | 0)) + return; + else + c2 = 0; + do { + Ni(b2, i2[a2 + c2 >> 0] | 0); + c2 = c2 + 1 | 0; + a2 = k[d2 >> 2] | 0; + } while (c2 >>> 0 < ((k[e2 >> 2] | 0) - a2 | 0) >>> 0); + return; + } + function Ni(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + e2 = k[a2 + 4 >> 2] | 0; + if (e2) { + c2 = e2 + 24 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) == (k[e2 + 28 >> 2] | 0)) { + Vb[k[(k[e2 >> 2] | 0) + 52 >> 2] & 63](e2, b2 & 255) | 0; + return; + } else { + k[c2 >> 2] = d2 + 1; + i2[d2 >> 0] = b2; + return; + } + } + c2 = a2 + 16 | 0; + d2 = k[c2 >> 2] | 0; + if (d2 >>> 0 < (k[a2 + 12 >> 2] | 0) >>> 0) { + k[c2 >> 2] = d2 + 1; + i2[(k[a2 + 8 >> 2] | 0) + d2 >> 0] = b2; + return; + } + c2 = Va(16) | 0; + x = 0; + d2 = Da(1) | 0; + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } + x = 0; + Fa(7, c2 | 0, 4, d2 | 0); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa() | 0; + Ua(c2 | 0); + fb(b2 | 0); + } else + ub(c2 | 0, 824, 96); + } + function Oi(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + e2 = (b2 | 0) < 4095 ? (b2 + 128 | 0) / 256 | 0 : 16; + f2 = (c2 * 3 | 0) + 2 + e2 | 0; + d2 = c2 + 1 | 0; + f2 = (f2 | 0) < (d2 | 0) | (f2 | 0) > (b2 | 0) ? d2 : f2; + k[a2 + 4 >> 2] = f2; + d2 = (e2 << 2 | 3) + (c2 * 5 | 0) | 0; + d2 = (d2 | 0) > (b2 | 0) | (d2 | 0) < (f2 | 0) ? f2 : d2; + k[a2 + 8 >> 2] = d2; + c2 = (c2 * 7 | 0) + 4 + (e2 * 17 | 0) | 0; + k[a2 + 12 >> 2] = (c2 | 0) > (b2 | 0) | (c2 | 0) < (d2 | 0) ? d2 : c2; + k[a2 >> 2] = b2; + k[a2 + 16 >> 2] = 64; + return; + } + function Pi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + l2 = r; + r = r + 128 | 0; + h2 = l2 + 100 | 0; + d2 = l2 + 16 | 0; + c2 = l2 + 112 | 0; + j2 = l2 + 4 | 0; + m2 = l2; + e2 = d2; + f2 = a2 + 20 | 0; + g2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[f2 >> 2]; + e2 = e2 + 4 | 0; + f2 = f2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[d2 + 16 >> 2] = k[a2 + 4 >> 2]; + f2 = zc(c2, d2, a2 + 56 | 0) | 0; + c2 = k[(k[f2 >> 2] | 0) + 16 >> 2] | 0; + a2 = a2 + 8 | 0; + x = 0; + k[h2 >> 2] = k[a2 >> 2]; + k[h2 + 4 >> 2] = k[a2 + 4 >> 2]; + k[h2 + 8 >> 2] = k[a2 + 8 >> 2]; + c2 = Aa(c2 | 0, f2 | 0, h2 | 0) | 0; + a2 = x; + x = 0; + do + if (a2 & 1) + c2 = Wa() | 0; + else { + e2 = b2 + 4 | 0; + k[j2 >> 2] = k[e2 >> 2]; + k[j2 + 4 >> 2] = k[e2 + 4 >> 2]; + k[j2 + 8 >> 2] = k[e2 + 8 >> 2]; + e2 = b2 + 16 | 0; + a2 = k[e2 >> 2] | 0; + h2 = j2 + 8 | 0; + k[h2 >> 2] = (k[h2 >> 2] | 0) - a2; + h2 = j2 + 4 | 0; + k[h2 >> 2] = (k[h2 >> 2] | 0) + a2; + h2 = k[(k[f2 >> 2] | 0) + 12 >> 2] | 0; + k[m2 >> 2] = c2; + x = 0; + c2 = Ea(h2 | 0, f2 | 0, m2 | 0, j2 | 0, ((i2[b2 >> 0] | 0) == 0 ? 0 : (k[b2 + 8 >> 2] | 0) + a2 | 0) | 0) | 0; + j2 = x; + x = 0; + if (j2 & 1) { + c2 = Wa() | 0; + d2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + d2 = k[m2 >> 2] | 0; + k[m2 >> 2] = 0; + if (d2) + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + if (!(k[b2 + 4 >> 2] | 0)) + k[e2 >> 2] = (k[e2 >> 2] | 0) + c2; + if (!f2) { + r = l2; + return; + } + Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); + r = l2; + return; + } + while (0); + if (!f2) + fb(c2 | 0); + Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); + fb(c2 | 0); + } + function Qi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + k[a2 >> 2] = k[b2 >> 2]; + k[a2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[a2 + 8 >> 2] = k[b2 + 8 >> 2]; + i2[a2 + 12 >> 0] = 0; + b2 = a2 + 16 | 0; + a2 = b2 + 100 | 0; + do { + k[b2 >> 2] = 0; + b2 = b2 + 4 | 0; + } while ((b2 | 0) < (a2 | 0)); + return; + } + function Ri(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; + u2 = r; + r = r + 32 | 0; + t2 = u2 + 4 | 0; + o2 = u2 + 16 | 0; + v2 = u2; + Si(a2); + p2 = a2 + 16 | 0; + e2 = k[a2 + 24 >> 2] | 0; + a: + do + if ((e2 + -2 | 0) >>> 0 <= 14) { + q2 = a2 + 40 | 0; + c2 = k[q2 >> 2] | 0; + if (c2 >>> 0 > 2) + c2 = 5; + else { + s2 = a2 + 32 | 0; + f2 = k[s2 >> 2] | 0; + switch (f2 | 0) { + case 0: { + c2 = 1; + break a; + } + case 4: { + if ((c2 | 0) == 2) { + c2 = 2; + break a; + } + break; + } + case 3: + break; + default: + if (c2) { + c2 = 2; + break a; + } + } + n2 = a2 + 100 | 0; + c2 = a2 + 108 | 0; + d2 = k[c2 >> 2] | 0; + if ((d2 | 0) < 1) { + d2 = k[p2 >> 2] | 0; + k[c2 >> 2] = d2; + c2 = k[a2 + 20 >> 2] | 0; + k[a2 + 112 >> 2] = c2; + } else + c2 = k[a2 + 112 >> 2] | 0; + j2 = Dw(c2 | 0, ((c2 | 0) < 0) << 31 >> 31 | 0, d2 | 0, ((d2 | 0) < 0) << 31 >> 31 | 0) | 0; + h2 = (e2 + 7 | 0) / 8 | 0; + h2 = Dw(j2 | 0, M | 0, h2 | 0, ((h2 | 0) < 0) << 31 >> 31 | 0) | 0; + j2 = b2 + 4 | 0; + c2 = k[j2 >> 2] | 0; + g2 = b2 + 8 | 0; + if ((c2 | 0) != 0 ? (l2 = k[g2 >> 2] | 0, m2 = Dw(f2 | 0, ((f2 | 0) < 0) << 31 >> 31 | 0, h2 | 0, M | 0) | 0, e2 = M, 0 < (e2 | 0) | 0 == (e2 | 0) & l2 >>> 0 < m2 >>> 0) : 0) { + c2 = Va(16) | 0; + x = 0; + d2 = Da(1) | 0; + v2 = x; + x = 0; + if (!(v2 & 1) ? (x = 0, Fa(7, c2 | 0, 3, d2 | 0), v2 = x, x = 0, !(v2 & 1)) : 0) + ub(c2 | 0, 824, 96); + v2 = Wa() | 0; + Ua(c2 | 0); + fb(v2 | 0); + } + l2 = a2 + 52 | 0; + m2 = a2 + 12 | 0; + if ((f2 | 0) > 0) + f2 = 0; + else { + r = u2; + return; + } + while (1) { + Ti(a2, (f2 | 0) == 0); + d2 = xc(o2, p2, l2) | 0; + e2 = k[(k[d2 >> 2] | 0) + 8 >> 2] | 0; + x = 0; + k[t2 >> 2] = k[b2 >> 2]; + k[t2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[t2 + 8 >> 2] = k[b2 + 8 >> 2]; + e2 = Aa(e2 | 0, d2 | 0, t2 | 0) | 0; + w2 = x; + x = 0; + if (w2 & 1) { + e2 = 32; + break; + } + w2 = k[(k[d2 >> 2] | 0) + 16 >> 2] | 0; + k[v2 >> 2] = e2; + x = 0; + oa(w2 | 0, d2 | 0, v2 | 0, n2 | 0, a2 | 0, (i2[m2 >> 0] | 0) != 0 | 0); + w2 = x; + x = 0; + if (w2 & 1) { + e2 = 30; + break; + } + e2 = k[v2 >> 2] | 0; + k[v2 >> 2] = 0; + if (e2) + Lb[k[(k[e2 >> 2] | 0) + 4 >> 2] & 255](e2); + if (!c2) + c2 = 0; + else { + c2 = c2 + h2 | 0; + k[j2 >> 2] = c2; + k[g2 >> 2] = (k[g2 >> 2] | 0) - h2; + } + e2 = (k[q2 >> 2] | 0) == 0; + f2 = (e2 & 1) + f2 | 0; + if (d2) + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + if (!e2) { + e2 = 34; + break; + } + if ((f2 | 0) >= (k[s2 >> 2] | 0)) { + e2 = 34; + break; + } + } + if ((e2 | 0) == 30) { + c2 = Wa() | 0; + e2 = k[v2 >> 2] | 0; + k[v2 >> 2] = 0; + if (e2) + Lb[k[(k[e2 >> 2] | 0) + 4 >> 2] & 255](e2); + } else if ((e2 | 0) == 32) { + c2 = Wa() | 0; + if (!d2) { + w2 = c2; + fb(w2 | 0); + } + } else if ((e2 | 0) == 34) { + r = u2; + return; + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + w2 = c2; + fb(w2 | 0); + } + } else + c2 = 2; + while (0); + d2 = Va(16) | 0; + x = 0; + e2 = Da(1) | 0; + w2 = x; + x = 0; + if (!(w2 & 1) ? (x = 0, Fa(7, d2 | 0, c2 | 0, e2 | 0), w2 = x, x = 0, !(w2 & 1)) : 0) + ub(d2 | 0, 824, 96); + w2 = Wa() | 0; + Ua(d2 | 0); + fb(w2 | 0); + } + function Si(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + if ((Wi(a2) | 0) << 24 >> 24 != -40) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + e2 = x; + x = 0; + if (!(e2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) + ub(b2 | 0, 824, 96); + e2 = Wa() | 0; + Ua(b2 | 0); + fb(e2 | 0); + } + b2 = Wi(a2) | 0; + if (b2 << 24 >> 24 == -38) + return; + while (1) { + d2 = ((Vi(a2) | 0) & 255) << 8; + d2 = d2 | (Vi(a2) | 0) & 255; + b2 = Xi(a2, b2) | 0; + c2 = -2 - b2 + d2 | 0; + if ((c2 | 0) < 0) + break; + if ((c2 | 0) > 0) { + b2 = d2 + -2 - b2 | 0; + c2 = 0; + do { + Vi(a2) | 0; + c2 = c2 + 1 | 0; + } while ((c2 | 0) != (b2 | 0)); + } + b2 = Wi(a2) | 0; + if (b2 << 24 >> 24 == -38) { + e2 = 8; + break; + } + } + if ((e2 | 0) == 8) + return; + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + e2 = x; + x = 0; + if (!(e2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) + ub(b2 | 0, 824, 96); + e2 = Wa() | 0; + Ua(b2 | 0); + fb(e2 | 0); + } + function Ti(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + if (!b2) { + if ((Vi(a2) | 0) << 24 >> 24 != -1) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 12, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + if ((Vi(a2) | 0) << 24 >> 24 != -38) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + } + Vi(a2) | 0; + Vi(a2) | 0; + c2 = Vi(a2) | 0; + d2 = c2 & 255; + do + if (c2 << 24 >> 24 == 1) { + Vi(a2) | 0; + c2 = 0; + e2 = 20; + } else { + if ((d2 | 0) == (k[a2 + 32 >> 2] | 0)) { + b2 = Vi(a2) | 0; + if (!(c2 << 24 >> 24)) + break; + else { + c2 = 0; + e2 = 20; + break; + } + } + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 2, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + while (0); + if ((e2 | 0) == 20) + while (1) { + Vi(a2) | 0; + c2 = c2 + 1 | 0; + b2 = Vi(a2) | 0; + if ((c2 | 0) == (d2 | 0)) + break; + else + e2 = 20; + } + k[a2 + 36 >> 2] = b2 & 255; + e2 = Vi(a2) | 0; + c2 = a2 + 40 | 0; + k[c2 >> 2] = e2 & 255; + if ((e2 & 255) >= 3) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + if ((Vi(a2) | 0) << 24 >> 24) { + b2 = Va(16) | 0; + x = 0; + c2 = Da(1) | 0; + a2 = x; + x = 0; + if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) + ub(b2 | 0, 824, 96); + a2 = Wa() | 0; + Ua(b2 | 0); + fb(a2 | 0); + } + d2 = a2 + 28 | 0; + if (k[d2 >> 2] | 0) + return; + b2 = k[a2 + 108 >> 2] | 0; + if (!b2) + b2 = k[a2 + 16 >> 2] | 0; + if (!(k[c2 >> 2] | 0)) + c2 = 1; + else + c2 = k[a2 + 32 >> 2] | 0; + e2 = ia(c2, b2) | 0; + a2 = ia(e2, ((k[a2 + 24 >> 2] | 0) + 7 | 0) / 8 | 0) | 0; + k[d2 >> 2] = a2; + return; + } + function Ui(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + if ((c2 | 0) <= 0) + return; + n2 = b2 + 4 | 0; + o2 = b2 + 8 | 0; + q2 = 0; + do { + p2 = Vi(a2) | 0; + d2 = k[n2 >> 2] | 0; + e2 = k[o2 >> 2] | 0; + if (d2 >>> 0 >= e2 >>> 0) { + f2 = k[b2 >> 2] | 0; + g2 = f2; + h2 = d2 - g2 + 1 | 0; + if ((h2 | 0) < 0) { + jj(b2); + g2 = k[b2 >> 2] | 0; + e2 = k[o2 >> 2] | 0; + f2 = g2; + } + m2 = f2; + d2 = e2 - m2 | 0; + if (d2 >>> 0 < 1073741823) { + d2 = d2 << 1; + d2 = d2 >>> 0 < h2 >>> 0 ? h2 : d2; + h2 = k[n2 >> 2] | 0; + e2 = h2 - m2 | 0; + if (!d2) { + l2 = 0; + j2 = 0; + d2 = h2; + } else + r2 = 10; + } else { + e2 = k[n2 >> 2] | 0; + d2 = 2147483647; + h2 = e2; + e2 = e2 - m2 | 0; + r2 = 10; + } + if ((r2 | 0) == 10) { + r2 = 0; + l2 = d2; + j2 = lj(d2) | 0; + d2 = h2; + } + i2[j2 + e2 >> 0] = p2; + m2 = d2 - m2 | 0; + p2 = j2 + (e2 - m2) | 0; + vw(p2 | 0, f2 | 0, m2 | 0) | 0; + k[b2 >> 2] = p2; + k[n2 >> 2] = j2 + (e2 + 1); + k[o2 >> 2] = j2 + l2; + if (g2) + mj(g2); + } else { + i2[d2 >> 0] = p2; + k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; + } + q2 = q2 + 1 | 0; + } while ((q2 | 0) != (c2 | 0)); + return; + } + function Vi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0; + c2 = k[a2 >> 2] | 0; + if (c2) { + a2 = c2 + 12 | 0; + b2 = k[a2 >> 2] | 0; + if ((b2 | 0) == (k[c2 + 16 >> 2] | 0)) + a2 = Ob[k[(k[c2 >> 2] | 0) + 40 >> 2] & 127](c2) | 0; + else { + k[a2 >> 2] = b2 + 1; + a2 = l[b2 >> 0] | 0; + } + e2 = a2 & 255; + return e2 | 0; + } + d2 = a2 + 8 | 0; + e2 = k[d2 >> 2] | 0; + if (e2) { + a2 = a2 + 4 | 0; + b2 = k[a2 >> 2] | 0; + c2 = i2[b2 >> 0] | 0; + if (!b2) { + e2 = c2; + return e2 | 0; + } + k[a2 >> 2] = b2 + 1; + k[d2 >> 2] = e2 + -1; + e2 = c2; + return e2 | 0; + } + a2 = Va(16) | 0; + x = 0; + b2 = Da(1) | 0; + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa() | 0; + Ua(a2 | 0); + fb(e2 | 0); + } + x = 0; + Fa(7, a2 | 0, 4, b2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + e2 = Wa() | 0; + Ua(a2 | 0); + fb(e2 | 0); + } else + ub(a2 | 0, 824, 96); + return 0; + } + function Wi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; + c2 = r; + r = r + 176 | 0; + b2 = c2 + 152 | 0; + i3 = c2 + 16 | 0; + g2 = c2; + h2 = Vi(a2) | 0; + d2 = h2 & 255; + if (h2 << 24 >> 24 == -1) { + do + b2 = Vi(a2) | 0; + while (b2 << 24 >> 24 == -1); + r = c2; + return b2 | 0; + } + h2 = i3 + 56 | 0; + f2 = i3 + 4 | 0; + k[i3 >> 2] = 36160; + k[h2 >> 2] = 36180; + x = 0; + ra(62, i3 + 56 | 0, f2 | 0); + e2 = x; + x = 0; + if (e2 & 1) { + i3 = Wa() | 0; + qn(h2); + fb(i3 | 0); + } + k[i3 + 128 >> 2] = 0; + k[i3 + 132 >> 2] = -1; + k[i3 >> 2] = 36200; + k[i3 + 56 >> 2] = 36220; + x = 0; + qa(180, f2 | 0); + e2 = x; + x = 0; + do + if (e2 & 1) + b2 = Wa() | 0; + else { + k[f2 >> 2] = 36236; + e2 = i3 + 36 | 0; + k[e2 >> 2] = 0; + k[e2 + 4 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + k[e2 + 12 >> 2] = 0; + k[i3 + 52 >> 2] = 16; + k[b2 >> 2] = 0; + k[b2 + 4 >> 2] = 0; + k[b2 + 8 >> 2] = 0; + x = 0; + ra(63, f2 | 0, b2 | 0); + c2 = x; + x = 0; + if (c2 & 1) { + i3 = Wa() | 0; + Sm(b2); + Sm(e2); + xn(f2); + b2 = i3; + break; + } + Sm(b2); + k[i3 + ((k[(k[i3 >> 2] | 0) + -12 >> 2] | 0) + 76) >> 2] = 48; + x = 0; + b2 = va(28, i3 | 0, 50907, 62) | 0; + c2 = x; + x = 0; + if (!(c2 & 1) ? (c2 = b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0, k[c2 >> 2] = k[c2 >> 2] & -75 | 8, c2 = b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0, k[c2 >> 2] = k[c2 >> 2] | 16384, k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 12) >> 2] = 2, x = 0, Aa(38, b2 | 0, d2 | 0) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { + c2 = Va(16) | 0; + x = 0; + ra(64, g2 | 0, f2 | 0); + d2 = x; + x = 0; + if (!(d2 & 1)) { + x = 0; + b2 = Da(1) | 0; + d2 = x; + x = 0; + if (!(d2 & 1) ? (x = 0, Ja(36, c2 | 0, 12, b2 | 0, g2 | 0), d2 = x, x = 0, !(d2 & 1)) : 0) { + x = 0; + Fa(6, c2 | 0, 824, 96); + x = 0; + a2 = 0; + } else + a2 = 1; + b2 = Wa() | 0; + Sm(g2); + if (!a2) { + g2 = b2; + k[i3 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + } else + b2 = Wa() | 0; + Ua(c2 | 0); + g2 = b2; + k[i3 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + g2 = Wa() | 0; + k[i3 >> 2] = 36200; + k[h2 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(e2); + xn(f2); + qn(h2); + fb(g2 | 0); + } + while (0); + i3 = b2; + qn(h2); + fb(i3 | 0); + return 0; + } + function Xi(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + c2 = r; + r = r + 320 | 0; + h2 = c2 + 300 | 0; + l2 = c2 + 152 | 0; + i3 = c2 + 288 | 0; + m2 = c2 + 16 | 0; + j2 = c2; + switch (b2 << 24 >> 24) { + case -9: { + n2 = (Vi(a2) | 0) & 255; + k[a2 + 24 >> 2] = n2; + n2 = ((Vi(a2) | 0) & 255) << 8 | (Vi(a2) | 0) & 255; + m2 = ((Vi(a2) | 0) & 255) << 8 | (Vi(a2) | 0) & 255; + k[a2 + 16 >> 2] = m2; + k[a2 + 20 >> 2] = n2; + n2 = (Vi(a2) | 0) & 255; + k[a2 + 32 >> 2] = n2; + n2 = 6; + r = c2; + return n2 | 0; + } + case -8: { + n2 = Yi(a2) | 0; + r = c2; + return n2 | 0; + } + case -24: { + n2 = Zi(a2) | 0; + r = c2; + return n2 | 0; + } + case -53: + case -54: + case -55: + case -57: + case -58: + case -59: + case -61: + case -62: + case -63: + case -64: { + g2 = l2 + 56 | 0; + e2 = l2 + 4 | 0; + k[l2 >> 2] = 36160; + k[g2 >> 2] = 36180; + x = 0; + ra(62, l2 + 56 | 0, e2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + n2 = Wa() | 0; + qn(g2); + fb(n2 | 0); + } + k[l2 + 128 >> 2] = 0; + k[l2 + 132 >> 2] = -1; + k[l2 >> 2] = 36200; + k[l2 + 56 >> 2] = 36220; + x = 0; + qa(180, e2 | 0); + m2 = x; + x = 0; + do + if (m2 & 1) + a2 = Wa() | 0; + else { + k[e2 >> 2] = 36236; + f2 = l2 + 36 | 0; + k[f2 >> 2] = 0; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = 0; + k[f2 + 12 >> 2] = 0; + k[l2 + 52 >> 2] = 16; + k[h2 >> 2] = 0; + k[h2 + 4 >> 2] = 0; + k[h2 + 8 >> 2] = 0; + x = 0; + ra(63, e2 | 0, h2 | 0); + m2 = x; + x = 0; + if (m2 & 1) { + a2 = Wa() | 0; + Sm(h2); + Sm(f2); + xn(e2); + break; + } + Sm(h2); + x = 0; + a2 = va(28, l2 | 0, 50970, 26) | 0; + m2 = x; + x = 0; + do + if ((!(m2 & 1) ? (x = 0, d2 = Aa(38, a2 | 0, b2 & 255 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, va(28, d2 | 0, 50997, 18) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, i3 | 0, e2 | 0); + m2 = x; + x = 0; + if (!(m2 & 1)) { + x = 0; + a2 = Da(1) | 0; + m2 = x; + x = 0; + if (!(m2 & 1) ? (x = 0, Ja(36, d2 | 0, 10, a2 | 0, i3 | 0), m2 = x, x = 0, !(m2 & 1)) : 0) { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } else + c2 = 1; + a2 = Wa() | 0; + Sm(i3); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + n2 = 20; + while (0); + if ((n2 | 0) == 20) + a2 = Wa() | 0; + k[l2 >> 2] = 36200; + k[g2 >> 2] = 36220; + k[e2 >> 2] = 36236; + Sm(f2); + xn(e2); + qn(g2); + n2 = a2; + fb(n2 | 0); + } + while (0); + n2 = a2; + qn(g2); + fb(n2 | 0); + } + case -25: + case -32: + case -2: { + n2 = 0; + r = c2; + return n2 | 0; + } + default: { + i3 = m2 + 56 | 0; + f2 = m2 + 4 | 0; + k[m2 >> 2] = 36160; + k[i3 >> 2] = 36180; + x = 0; + ra(62, m2 + 56 | 0, f2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + n2 = Wa() | 0; + qn(i3); + fb(n2 | 0); + } + k[m2 + 128 >> 2] = 0; + k[m2 + 132 >> 2] = -1; + k[m2 >> 2] = 36200; + k[m2 + 56 >> 2] = 36220; + x = 0; + qa(180, f2 | 0); + l2 = x; + x = 0; + do + if (l2 & 1) + a2 = Wa() | 0; + else { + k[f2 >> 2] = 36236; + g2 = m2 + 36 | 0; + k[g2 >> 2] = 0; + k[g2 + 4 >> 2] = 0; + k[g2 + 8 >> 2] = 0; + k[g2 + 12 >> 2] = 0; + k[m2 + 52 >> 2] = 16; + k[h2 >> 2] = 0; + k[h2 + 4 >> 2] = 0; + k[h2 + 8 >> 2] = 0; + x = 0; + ra(63, f2 | 0, h2 | 0); + l2 = x; + x = 0; + if (l2 & 1) { + a2 = Wa() | 0; + Sm(h2); + Sm(g2); + xn(f2); + break; + } + Sm(h2); + x = 0; + a2 = va(28, m2 | 0, 51016, 20) | 0; + l2 = x; + x = 0; + do + if ((!(l2 & 1) ? (x = 0, e2 = Aa(38, a2 | 0, b2 & 255 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, va(28, e2 | 0, 51037, 13) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { + d2 = Va(16) | 0; + x = 0; + ra(64, j2 | 0, f2 | 0); + l2 = x; + x = 0; + if (!(l2 & 1)) { + x = 0; + a2 = Da(1) | 0; + l2 = x; + x = 0; + if (!(l2 & 1) ? (x = 0, Ja(36, d2 | 0, 11, a2 | 0, j2 | 0), l2 = x, x = 0, !(l2 & 1)) : 0) { + x = 0; + Fa(6, d2 | 0, 824, 96); + x = 0; + c2 = 0; + } else + c2 = 1; + a2 = Wa() | 0; + Sm(j2); + if (!c2) + break; + } else + a2 = Wa() | 0; + Ua(d2 | 0); + } else + n2 = 40; + while (0); + if ((n2 | 0) == 40) + a2 = Wa() | 0; + k[m2 >> 2] = 36200; + k[i3 >> 2] = 36220; + k[f2 >> 2] = 36236; + Sm(g2); + xn(f2); + qn(i3); + n2 = a2; + fb(n2 | 0); + } + while (0); + n2 = a2; + qn(i3); + fb(n2 | 0); + } + } + return 0; + } + function Yi(a2) { + a2 = a2 | 0; + var b2 = 0; + if ((Vi(a2) | 0) << 24 >> 24 != 1) { + a2 = 1; + return a2 | 0; + } + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 52 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 56 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 60 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 64 >> 2] = b2; + b2 = ((Vi(a2) | 0) & 255) << 8; + b2 = b2 | (Vi(a2) | 0) & 255; + k[a2 + 68 >> 2] = b2; + a2 = 11; + return a2 | 0; + } + function Zi(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + c2 = r; + r = r + 16 | 0; + e2 = c2; + k[e2 >> 2] = 0; + f2 = e2 + 4 | 0; + k[f2 >> 2] = 0; + k[e2 + 8 >> 2] = 0; + x = 0; + Fa(9, a2 | 0, e2 | 0, 4); + b2 = x; + x = 0; + a: + do + if (b2 & 1) + d2 = 3; + else { + b2 = k[e2 >> 2] | 0; + b: + do + if (!(yl(b2, 51051, 4) | 0)) { + x = 0; + b2 = ta(69, a2 | 0) | 0; + g2 = x; + x = 0; + if (g2 & 1) { + d2 = 3; + break a; + } + b2 = b2 & 255; + switch (b2 | 0) { + case 3: + case 2: + case 1: + case 0: { + k[a2 + 44 >> 2] = b2; + a2 = 5; + b2 = k[e2 >> 2] | 0; + break b; + } + case 5: + case 4: { + b2 = Va(16) | 0; + x = 0; + a2 = Da(1) | 0; + g2 = x; + x = 0; + if (!(g2 & 1) ? (x = 0, Fa(7, b2 | 0, 7, a2 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) { + x = 0; + Fa(6, b2 | 0, 824, 96); + x = 0; + d2 = 3; + break a; + } + a2 = Wa() | 0; + Ua(b2 | 0); + break a; + } + default: { + b2 = Va(16) | 0; + x = 0; + a2 = Da(1) | 0; + g2 = x; + x = 0; + if (!(g2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, a2 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) { + x = 0; + Fa(6, b2 | 0, 824, 96); + x = 0; + d2 = 3; + break a; + } + a2 = Wa() | 0; + Ua(b2 | 0); + break a; + } + } + } else + a2 = 4; + while (0); + if (!b2) { + r = c2; + return a2 | 0; + } + if ((k[f2 >> 2] | 0) != (b2 | 0)) + k[f2 >> 2] = b2; + mj(b2); + r = c2; + return a2 | 0; + } + while (0); + if ((d2 | 0) == 3) + a2 = Wa() | 0; + b2 = k[e2 >> 2] | 0; + if (!b2) + fb(a2 | 0); + if ((k[f2 >> 2] | 0) != (b2 | 0)) + k[f2 >> 2] = b2; + mj(b2); + fb(a2 | 0); + return 0; + } + function _i(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + d2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; + k[a2 + d2 >> 2] = 36200; + b2 = a2 + (d2 + 56) | 0; + k[b2 >> 2] = 36220; + c2 = a2 + (d2 + 4) | 0; + k[c2 >> 2] = 36236; + Sm(a2 + (d2 + 36) | 0); + xn(c2); + qn(b2); + return; + } + function $i(a2) { + a2 = a2 | 0; + return; + } + function aj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function bj(a2) { + a2 = a2 | 0; + i2[a2 >> 0] = 0; + a2 = a2 + 4 | 0; + k[a2 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + k[a2 + 8 >> 2] = 0; + k[a2 + 12 >> 2] = 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 20 >> 2] = 0; + k[a2 + 24 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + return; + } + function cj(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + b2 = Gi(b2) | 0; + k[f2 >> 2] = b2; + c2 = a2 + 28 | 0; + d2 = k[c2 >> 2] | 0; + if (d2 >>> 0 < (k[a2 + 32 >> 2] | 0) >>> 0) { + k[d2 >> 2] = b2; + k[c2 >> 2] = d2 + 4; + k[f2 >> 2] = 0; + r = e2; + return; + } + x = 0; + ra(57, a2 + 24 | 0, f2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + b2 = Wa() | 0; + c2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + if (!c2) + fb(b2 | 0); + Lb[k[(k[c2 >> 2] | 0) + 4 >> 2] & 255](c2); + fb(b2 | 0); + } else { + b2 = k[f2 >> 2] | 0; + k[f2 >> 2] = 0; + if (!b2) { + r = e2; + return; + } + Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); + r = e2; + return; + } + } + function dj(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + d2 = a2 + 4 | 0; + k[d2 >> 2] = k[b2 >> 2]; + k[d2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[d2 + 8 >> 2] = k[b2 + 8 >> 2]; + Ni(a2, -1); + Ni(a2, -40); + d2 = a2 + 28 | 0; + e2 = a2 + 24 | 0; + b2 = k[e2 >> 2] | 0; + if ((k[d2 >> 2] | 0) == (b2 | 0)) { + Ni(a2, -1); + Ni(a2, -39); + a2 = a2 + 16 | 0; + a2 = k[a2 >> 2] | 0; + return a2 | 0; + } else + c2 = 0; + do { + f2 = k[b2 + (c2 << 2) >> 2] | 0; + Mb[k[(k[f2 >> 2] | 0) + 8 >> 2] & 127](f2, a2); + c2 = c2 + 1 | 0; + b2 = k[e2 >> 2] | 0; + } while (c2 >>> 0 < (k[d2 >> 2] | 0) - b2 >> 2 >>> 0); + Ni(a2, -1); + Ni(a2, -39); + f2 = a2 + 16 | 0; + f2 = k[f2 >> 2] | 0; + return f2 | 0; + } + function ej(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + m2 = r; + r = r + 48 | 0; + h2 = m2 + 32 | 0; + e2 = m2 + 12 | 0; + i3 = m2 + 8 | 0; + l2 = m2 + 4 | 0; + n2 = m2; + d2 = c2 + 36 | 0; + do + if (((((k[d2 >> 2] | 0) == 0 ? (k[c2 + 40 >> 2] | 0) == 0 : 0) ? (k[c2 + 44 >> 2] | 0) == 0 : 0) ? (k[c2 + 48 >> 2] | 0) == 0 : 0) ? (k[c2 + 52 >> 2] | 0) == 0 : 0) { + d2 = k[c2 + 8 >> 2] | 0; + if ((d2 | 0) <= 12) { + f2 = a2 + 28 | 0; + g2 = a2 + 32 | 0; + break; + } + Oi(e2, (1 << d2) + -1 | 0, k[c2 + 20 >> 2] | 0); + d2 = Fi(e2) | 0; + k[i3 >> 2] = d2; + f2 = a2 + 28 | 0; + e2 = k[f2 >> 2] | 0; + g2 = a2 + 32 | 0; + if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[e2 >> 2] = d2; + k[f2 >> 2] = e2 + 4; + k[i3 >> 2] = 0; + break; + } + x = 0; + ra(57, a2 + 24 | 0, i3 | 0); + h2 = x; + x = 0; + if (!(h2 & 1)) { + d2 = k[i3 >> 2] | 0; + k[i3 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + c2 = Wa() | 0; + d2 = k[i3 >> 2] | 0; + k[i3 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } else + j2 = 6; + while (0); + do + if ((j2 | 0) == 6) { + d2 = Fi(d2) | 0; + k[h2 >> 2] = d2; + f2 = a2 + 28 | 0; + e2 = k[f2 >> 2] | 0; + g2 = a2 + 32 | 0; + if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[e2 >> 2] = d2; + k[f2 >> 2] = e2 + 4; + k[h2 >> 2] = 0; + break; + } + x = 0; + ra(57, a2 + 24 | 0, h2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + d2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + c2 = Wa() | 0; + d2 = k[h2 >> 2] | 0; + k[h2 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } + while (0); + d2 = a2 + 20 | 0; + e2 = (k[d2 >> 2] | 0) + 1 | 0; + k[d2 >> 2] = e2; + d2 = k[c2 + 24 >> 2] | 0; + h2 = (d2 | 0) == 0 ? 1 : k[c2 + 16 >> 2] | 0; + d2 = Hi(e2, h2, k[c2 + 20 >> 2] | 0, d2) | 0; + k[l2 >> 2] = d2; + e2 = k[f2 >> 2] | 0; + do + if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[e2 >> 2] = d2; + k[f2 >> 2] = e2 + 4; + k[l2 >> 2] = 0; + } else { + x = 0; + ra(57, a2 + 24 | 0, l2 | 0); + j2 = x; + x = 0; + if (!(j2 & 1)) { + d2 = k[l2 >> 2] | 0; + k[l2 >> 2] = 0; + if (!d2) + break; + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + break; + } + c2 = Wa() | 0; + d2 = k[l2 >> 2] | 0; + k[l2 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } + while (0); + i3 = lj(104) | 0; + k[i3 >> 2] = 36820; + k[i3 + 4 >> 2] = h2; + e2 = i3 + 8 | 0; + k[e2 >> 2] = k[b2 >> 2]; + k[e2 + 4 >> 2] = k[b2 + 4 >> 2]; + k[e2 + 8 >> 2] = k[b2 + 8 >> 2]; + e2 = i3 + 20 | 0; + d2 = e2 + 84 | 0; + do { + k[e2 >> 2] = k[c2 >> 2]; + e2 = e2 + 4 | 0; + c2 = c2 + 4 | 0; + } while ((e2 | 0) < (d2 | 0)); + k[n2 >> 2] = i3; + c2 = k[f2 >> 2] | 0; + if (c2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { + k[c2 >> 2] = i3; + k[f2 >> 2] = c2 + 4; + k[n2 >> 2] = 0; + r = m2; + return; + } + x = 0; + ra(57, a2 + 24 | 0, n2 | 0); + a2 = x; + x = 0; + if (a2 & 1) { + c2 = Wa() | 0; + d2 = k[n2 >> 2] | 0; + k[n2 >> 2] = 0; + if (!d2) { + n2 = c2; + fb(n2 | 0); + } + Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); + n2 = c2; + fb(n2 | 0); + } else { + c2 = k[n2 >> 2] | 0; + k[n2 >> 2] = 0; + if (!c2) { + r = m2; + return; + } + Lb[k[(k[c2 >> 2] | 0) + 4 >> 2] & 255](c2); + r = m2; + return; + } + } + function fj(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2, m2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + j2 = j2 | 0; + l2 = l2 | 0; + m2 = m2 | 0; + var n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0; + p2 = r; + r = r + 96 | 0; + o2 = p2; + n2 = sc(a2, b2, o2, 0) | 0; + if (n2) { + e2 = n2; + r = p2; + return e2 | 0; + } + i2[o2 + 32 >> 0] = 0; + s2 = k[o2 + 8 >> 2] | 0; + u2 = k[o2 >> 2] | 0; + t2 = k[o2 + 4 >> 2] | 0; + n2 = ia(t2, u2) | 0; + q2 = k[o2 + 16 >> 2] | 0; + n2 = ia(ia(n2, (s2 | 0) < 9 ? 1 : 2) | 0, q2) | 0; + k[d2 >> 2] = n2; + n2 = Pl(n2) | 0; + k[c2 >> 2] = n2; + k[e2 >> 2] = u2; + k[f2 >> 2] = t2; + k[g2 >> 2] = s2; + k[h2 >> 2] = k[o2 + 12 >> 2]; + k[j2 >> 2] = q2; + k[l2 >> 2] = k[o2 + 20 >> 2]; + k[m2 >> 2] = k[o2 + 24 >> 2]; + e2 = tc(n2, k[d2 >> 2] | 0, a2, b2, 0, 0) | 0; + r = p2; + return e2 | 0; + } + function gj(a2, b2, c2, d2, e2, f2, g2, h2, i3) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + g2 = g2 | 0; + h2 = h2 | 0; + i3 = i3 | 0; + var j2 = 0, l2 = 0, m2 = 0, n2 = 0; + m2 = r; + r = r + 96 | 0; + j2 = m2 + 4 | 0; + g2 = m2; + l2 = j2; + n2 = l2 + 84 | 0; + do { + k[l2 >> 2] = 0; + l2 = l2 + 4 | 0; + } while ((l2 | 0) < (n2 | 0)); + k[j2 + 16 >> 2] = f2; + k[j2 + 8 >> 2] = e2; + k[j2 >> 2] = c2; + k[j2 + 4 >> 2] = d2; + c2 = Pl(b2) | 0; + k[h2 >> 2] = c2; + k[g2 >> 2] = 0; + c2 = rc(h2, b2, g2, a2, b2, j2, 0) | 0; + k[i3 >> 2] = k[g2 >> 2]; + r = m2; + return c2 | 0; + } + function hj(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0; + c2 = r; + r = r + 16 | 0; + k[c2 >> 2] = b2; + b2 = k[9320] | 0; + ml(b2, a2, c2) | 0; + el(10, b2) | 0; + Pa(); + } + function ij(a2) { + a2 = a2 | 0; + Ta(51337, 51366, 1164, 51442); + } + function jj(a2) { + a2 = a2 | 0; + Ta(51463, 51486, 303, 51442); + } + function kj() { + var a2 = 0, b2 = 0; + a2 = r; + r = r + 16 | 0; + if (!(mb(37024, 4) | 0)) { + b2 = ib(k[9255] | 0) | 0; + r = a2; + return b2 | 0; + } else + hj(51562, a2); + return 0; + } + function lj(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = (a2 | 0) == 0 ? 1 : a2; + a2 = Pl(b2) | 0; + a: + do + if (!a2) { + while (1) { + a2 = uj() | 0; + if (!a2) + break; + $b[a2 & 7](); + a2 = Pl(b2) | 0; + if (a2) + break a; + } + b2 = Va(4) | 0; + k[b2 >> 2] = 36844; + ub(b2 | 0, 592, 78); + } + while (0); + return a2 | 0; + } + function mj(a2) { + a2 = a2 | 0; + Ql(a2); + return; + } + function nj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function oj(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36844; + return; + } + function pj(a2) { + a2 = a2 | 0; + return; + } + function qj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function rj(a2) { + a2 = a2 | 0; + return 51611; + } + function sj(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = r; + r = r + 16 | 0; + x = 0; + Ga(a2 | 0); + a2 = x; + x = 0; + if (!(a2 & 1)) { + x = 0; + ra(85, 51626, b2 | 0); + x = 0; + } + a2 = Wa(0) | 0; + cb(a2 | 0) | 0; + x = 0; + ra(85, 51666, b2 + 8 | 0); + x = 0; + a2 = Wa(0) | 0; + x = 0; + Ga(3); + b2 = x; + x = 0; + if (b2 & 1) { + b2 = Wa(0) | 0; + oc(b2); + } else + oc(a2); + } + function tj() { + var a2 = 0, b2 = 0, c2 = 0; + x = 0; + a2 = Da(2) | 0; + c2 = x; + x = 0; + if (c2 & 1) { + c2 = Wa(0) | 0; + oc(c2); + } + if (((a2 | 0) != 0 ? (b2 = k[a2 >> 2] | 0, (b2 | 0) != 0) : 0) ? (c2 = b2 + 48 | 0, (k[c2 >> 2] & -256 | 0) == 1126902528 ? (k[c2 + 4 >> 2] | 0) == 1129074247 : 0) : 0) + sj(k[b2 + 12 >> 2] | 0); + c2 = k[9208] | 0; + k[9208] = c2 + 0; + sj(c2); + } + function uj() { + var a2 = 0; + a2 = k[9214] | 0; + k[9214] = a2 + 0; + return a2 | 0; + } + function vj(a2) { + a2 = a2 | 0; + return; + } + function wj(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36868; + dk(a2 + 4 | 0); + return; + } + function xj(a2) { + a2 = a2 | 0; + wj(a2); + mj(a2); + return; + } + function yj(a2) { + a2 = a2 | 0; + return k[a2 + 4 >> 2] | 0; + } + function zj(a2) { + a2 = a2 | 0; + return; + } + function Aj(a2) { + a2 = a2 | 0; + k[a2 >> 2] = 36888; + return; + } + function Bj(a2) { + a2 = a2 | 0; + return; + } + function Cj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Dj(a2) { + a2 = a2 | 0; + return 51716; + } + function Ej(a2) { + a2 = a2 | 0; + return; + } + function Fj(a2) { + a2 = a2 | 0; + return; + } + function Gj(a2) { + a2 = a2 | 0; + return; + } + function Hj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Ij(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Jj(a2) { + a2 = a2 | 0; + mj(a2); + return; + } + function Kj(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = r; + r = r + 64 | 0; + f2 = g2; + if ((a2 | 0) != (b2 | 0)) + if ((b2 | 0) != 0 ? (e2 = Qj(b2, 656, 672, 0) | 0, (e2 | 0) != 0) : 0) { + b2 = f2; + d2 = b2 + 56 | 0; + do { + k[b2 >> 2] = 0; + b2 = b2 + 4 | 0; + } while ((b2 | 0) < (d2 | 0)); + k[f2 >> 2] = e2; + k[f2 + 8 >> 2] = a2; + k[f2 + 12 >> 2] = -1; + k[f2 + 48 >> 2] = 1; + cc[k[(k[e2 >> 2] | 0) + 28 >> 2] & 63](e2, f2, k[c2 >> 2] | 0, 1); + if ((k[f2 + 24 >> 2] | 0) == 1) { + k[c2 >> 2] = k[f2 + 16 >> 2]; + b2 = 1; + } else + b2 = 0; + } else + b2 = 0; + else + b2 = 1; + r = g2; + return b2 | 0; + } + function Lj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0; + a2 = b2 + 16 | 0; + e2 = k[a2 >> 2] | 0; + do + if (e2) { + if ((e2 | 0) != (c2 | 0)) { + d2 = b2 + 36 | 0; + k[d2 >> 2] = (k[d2 >> 2] | 0) + 1; + k[b2 + 24 >> 2] = 2; + i2[b2 + 54 >> 0] = 1; + break; + } + a2 = b2 + 24 | 0; + if ((k[a2 >> 2] | 0) == 2) + k[a2 >> 2] = d2; + } else { + k[a2 >> 2] = c2; + k[b2 + 24 >> 2] = d2; + k[b2 + 36 >> 2] = 1; + } + while (0); + return; + } + function Mj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Lj(0, b2, c2, d2); + return; + } + function Nj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Lj(0, b2, c2, d2); + else { + a2 = k[a2 + 8 >> 2] | 0; + cc[k[(k[a2 >> 2] | 0) + 28 >> 2] & 63](a2, b2, c2, d2); + } + return; + } + function Oj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + f2 = k[a2 + 4 >> 2] | 0; + e2 = f2 >> 8; + if (f2 & 1) + e2 = k[(k[c2 >> 2] | 0) + e2 >> 2] | 0; + a2 = k[a2 >> 2] | 0; + cc[k[(k[a2 >> 2] | 0) + 28 >> 2] & 63](a2, b2, c2 + e2 | 0, (f2 & 2 | 0) != 0 ? d2 : 2); + return; + } + function Pj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + a: + do + if ((a2 | 0) != (k[b2 + 8 >> 2] | 0)) { + f2 = k[a2 + 12 >> 2] | 0; + e2 = a2 + 16 + (f2 << 3) | 0; + Oj(a2 + 16 | 0, b2, c2, d2); + if ((f2 | 0) > 1) { + f2 = b2 + 54 | 0; + a2 = a2 + 24 | 0; + do { + Oj(a2, b2, c2, d2); + if (i2[f2 >> 0] | 0) + break a; + a2 = a2 + 8 | 0; + } while (a2 >>> 0 < e2 >>> 0); + } + } else + Lj(0, b2, c2, d2); + while (0); + return; + } + function Qj(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + q2 = r; + r = r + 64 | 0; + p2 = q2; + o2 = k[a2 >> 2] | 0; + n2 = a2 + (k[o2 + -8 >> 2] | 0) | 0; + o2 = k[o2 + -4 >> 2] | 0; + k[p2 >> 2] = c2; + k[p2 + 4 >> 2] = a2; + k[p2 + 8 >> 2] = b2; + k[p2 + 12 >> 2] = d2; + d2 = p2 + 16 | 0; + a2 = p2 + 20 | 0; + b2 = p2 + 24 | 0; + e2 = p2 + 28 | 0; + f2 = p2 + 32 | 0; + g2 = p2 + 40 | 0; + h2 = (o2 | 0) == (c2 | 0); + l2 = d2; + m2 = l2 + 36 | 0; + do { + k[l2 >> 2] = 0; + l2 = l2 + 4 | 0; + } while ((l2 | 0) < (m2 | 0)); + j[d2 + 36 >> 1] = 0; + i2[d2 + 38 >> 0] = 0; + a: + do + if (h2) { + k[p2 + 48 >> 2] = 1; + Sb[k[(k[c2 >> 2] | 0) + 20 >> 2] & 15](c2, p2, n2, n2, 1, 0); + d2 = (k[b2 >> 2] | 0) == 1 ? n2 : 0; + } else { + Jb[k[(k[o2 >> 2] | 0) + 24 >> 2] & 15](o2, p2, n2, 1, 0); + switch (k[p2 + 36 >> 2] | 0) { + case 0: { + d2 = (k[g2 >> 2] | 0) == 1 & (k[e2 >> 2] | 0) == 1 & (k[f2 >> 2] | 0) == 1 ? k[a2 >> 2] | 0 : 0; + break a; + } + case 1: + break; + default: { + d2 = 0; + break a; + } + } + if ((k[b2 >> 2] | 0) != 1 ? !((k[g2 >> 2] | 0) == 0 & (k[e2 >> 2] | 0) == 1 & (k[f2 >> 2] | 0) == 1) : 0) { + d2 = 0; + break; + } + d2 = k[d2 >> 2] | 0; + } + while (0); + r = q2; + return d2 | 0; + } + function Rj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + i2[b2 + 53 >> 0] = 1; + do + if ((k[b2 + 4 >> 2] | 0) == (d2 | 0)) { + i2[b2 + 52 >> 0] = 1; + d2 = b2 + 16 | 0; + a2 = k[d2 >> 2] | 0; + if (!a2) { + k[d2 >> 2] = c2; + k[b2 + 24 >> 2] = e2; + k[b2 + 36 >> 2] = 1; + if (!((e2 | 0) == 1 ? (k[b2 + 48 >> 2] | 0) == 1 : 0)) + break; + i2[b2 + 54 >> 0] = 1; + break; + } + if ((a2 | 0) != (c2 | 0)) { + e2 = b2 + 36 | 0; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + i2[b2 + 54 >> 0] = 1; + break; + } + a2 = b2 + 24 | 0; + d2 = k[a2 >> 2] | 0; + if ((d2 | 0) == 2) { + k[a2 >> 2] = e2; + d2 = e2; + } + if ((d2 | 0) == 1 ? (k[b2 + 48 >> 2] | 0) == 1 : 0) + i2[b2 + 54 >> 0] = 1; + } + while (0); + return; + } + function Sj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; + a: + do + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { + if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (f2 = b2 + 28 | 0, (k[f2 >> 2] | 0) != 1) : 0) + k[f2 >> 2] = d2; + } else { + if ((a2 | 0) != (k[b2 >> 2] | 0)) { + q2 = k[a2 + 12 >> 2] | 0; + h2 = a2 + 16 + (q2 << 3) | 0; + Uj(a2 + 16 | 0, b2, c2, d2, e2); + f2 = a2 + 24 | 0; + if ((q2 | 0) <= 1) + break; + g2 = k[a2 + 8 >> 2] | 0; + if ((g2 & 2 | 0) == 0 ? (j2 = b2 + 36 | 0, (k[j2 >> 2] | 0) != 1) : 0) { + if (!(g2 & 1)) { + g2 = b2 + 54 | 0; + while (1) { + if (i2[g2 >> 0] | 0) + break a; + if ((k[j2 >> 2] | 0) == 1) + break a; + Uj(f2, b2, c2, d2, e2); + f2 = f2 + 8 | 0; + if (f2 >>> 0 >= h2 >>> 0) + break a; + } + } + g2 = b2 + 24 | 0; + a2 = b2 + 54 | 0; + while (1) { + if (i2[a2 >> 0] | 0) + break a; + if ((k[j2 >> 2] | 0) == 1 ? (k[g2 >> 2] | 0) == 1 : 0) + break a; + Uj(f2, b2, c2, d2, e2); + f2 = f2 + 8 | 0; + if (f2 >>> 0 >= h2 >>> 0) + break a; + } + } + g2 = b2 + 54 | 0; + while (1) { + if (i2[g2 >> 0] | 0) + break a; + Uj(f2, b2, c2, d2, e2); + f2 = f2 + 8 | 0; + if (f2 >>> 0 >= h2 >>> 0) + break a; + } + } + if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (p2 = b2 + 20 | 0, (k[p2 >> 2] | 0) != (c2 | 0)) : 0) { + k[b2 + 32 >> 2] = d2; + m2 = b2 + 44 | 0; + if ((k[m2 >> 2] | 0) == 4) + break; + g2 = k[a2 + 12 >> 2] | 0; + h2 = a2 + 16 + (g2 << 3) | 0; + j2 = b2 + 52 | 0; + d2 = b2 + 53 | 0; + n2 = b2 + 54 | 0; + l2 = a2 + 8 | 0; + o2 = b2 + 24 | 0; + b: + do + if ((g2 | 0) > 0) { + g2 = 0; + f2 = 0; + a2 = a2 + 16 | 0; + while (1) { + i2[j2 >> 0] = 0; + i2[d2 >> 0] = 0; + Tj(a2, b2, c2, c2, 1, e2); + if (i2[n2 >> 0] | 0) { + q2 = 20; + break b; + } + do + if (i2[d2 >> 0] | 0) { + if (!(i2[j2 >> 0] | 0)) + if (!(k[l2 >> 2] & 1)) { + f2 = 1; + q2 = 20; + break b; + } else { + f2 = 1; + break; + } + if ((k[o2 >> 2] | 0) == 1) + break b; + if (!(k[l2 >> 2] & 2)) + break b; + else { + g2 = 1; + f2 = 1; + } + } + while (0); + a2 = a2 + 8 | 0; + if (a2 >>> 0 >= h2 >>> 0) { + q2 = 20; + break; + } + } + } else { + g2 = 0; + f2 = 0; + q2 = 20; + } + while (0); + do + if ((q2 | 0) == 20) { + if ((!g2 ? (k[p2 >> 2] = c2, c2 = b2 + 40 | 0, k[c2 >> 2] = (k[c2 >> 2] | 0) + 1, (k[b2 + 36 >> 2] | 0) == 1) : 0) ? (k[o2 >> 2] | 0) == 2 : 0) { + i2[n2 >> 0] = 1; + if (f2) + break; + } else + q2 = 24; + if ((q2 | 0) == 24 ? f2 : 0) + break; + k[m2 >> 2] = 4; + break a; + } + while (0); + k[m2 >> 2] = 3; + break; + } + if ((d2 | 0) == 1) + k[b2 + 32 >> 2] = 1; + } + while (0); + return; + } + function Tj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0; + h2 = k[a2 + 4 >> 2] | 0; + g2 = h2 >> 8; + if (h2 & 1) + g2 = k[(k[d2 >> 2] | 0) + g2 >> 2] | 0; + a2 = k[a2 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, d2 + g2 | 0, (h2 & 2 | 0) != 0 ? e2 : 2, f2); + return; + } + function Uj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + g2 = k[a2 + 4 >> 2] | 0; + f2 = g2 >> 8; + if (g2 & 1) + f2 = k[(k[c2 >> 2] | 0) + f2 >> 2] | 0; + a2 = k[a2 >> 2] | 0; + Jb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 15](a2, b2, c2 + f2 | 0, (g2 & 2 | 0) != 0 ? d2 : 2, e2); + return; + } + function Vj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0; + a: + do + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { + if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (f2 = b2 + 28 | 0, (k[f2 >> 2] | 0) != 1) : 0) + k[f2 >> 2] = d2; + } else { + if ((a2 | 0) != (k[b2 >> 2] | 0)) { + h2 = k[a2 + 8 >> 2] | 0; + Jb[k[(k[h2 >> 2] | 0) + 24 >> 2] & 15](h2, b2, c2, d2, e2); + break; + } + if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (g2 = b2 + 20 | 0, (k[g2 >> 2] | 0) != (c2 | 0)) : 0) { + k[b2 + 32 >> 2] = d2; + d2 = b2 + 44 | 0; + if ((k[d2 >> 2] | 0) == 4) + break; + f2 = b2 + 52 | 0; + i2[f2 >> 0] = 0; + j2 = b2 + 53 | 0; + i2[j2 >> 0] = 0; + a2 = k[a2 + 8 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, c2, 1, e2); + if (i2[j2 >> 0] | 0) { + if (!(i2[f2 >> 0] | 0)) { + f2 = 1; + h2 = 13; + } + } else { + f2 = 0; + h2 = 13; + } + do + if ((h2 | 0) == 13) { + k[g2 >> 2] = c2; + j2 = b2 + 40 | 0; + k[j2 >> 2] = (k[j2 >> 2] | 0) + 1; + if ((k[b2 + 36 >> 2] | 0) == 1 ? (k[b2 + 24 >> 2] | 0) == 2 : 0) { + i2[b2 + 54 >> 0] = 1; + if (f2) + break; + } else + h2 = 16; + if ((h2 | 0) == 16 ? f2 : 0) + break; + k[d2 >> 2] = 4; + break a; + } + while (0); + k[d2 >> 2] = 3; + break; + } + if ((d2 | 0) == 1) + k[b2 + 32 >> 2] = 1; + } + while (0); + return; + } + function Wj(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0; + do + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { + if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (g2 = b2 + 28 | 0, (k[g2 >> 2] | 0) != 1) : 0) + k[g2 >> 2] = d2; + } else if ((a2 | 0) == (k[b2 >> 2] | 0)) { + if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (f2 = b2 + 20 | 0, (k[f2 >> 2] | 0) != (c2 | 0)) : 0) { + k[b2 + 32 >> 2] = d2; + k[f2 >> 2] = c2; + e2 = b2 + 40 | 0; + k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; + if ((k[b2 + 36 >> 2] | 0) == 1 ? (k[b2 + 24 >> 2] | 0) == 2 : 0) + i2[b2 + 54 >> 0] = 1; + k[b2 + 44 >> 2] = 4; + break; + } + if ((d2 | 0) == 1) + k[b2 + 32 >> 2] = 1; + } + while (0); + return; + } + function Xj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Rj(0, b2, c2, d2, e2); + else { + m2 = b2 + 52 | 0; + n2 = i2[m2 >> 0] | 0; + o2 = b2 + 53 | 0; + p2 = i2[o2 >> 0] | 0; + l2 = k[a2 + 12 >> 2] | 0; + g2 = a2 + 16 + (l2 << 3) | 0; + i2[m2 >> 0] = 0; + i2[o2 >> 0] = 0; + Tj(a2 + 16 | 0, b2, c2, d2, e2, f2); + a: + do + if ((l2 | 0) > 1) { + h2 = b2 + 24 | 0; + j2 = a2 + 8 | 0; + l2 = b2 + 54 | 0; + a2 = a2 + 24 | 0; + do { + if (i2[l2 >> 0] | 0) + break a; + if (!(i2[m2 >> 0] | 0)) { + if ((i2[o2 >> 0] | 0) != 0 ? (k[j2 >> 2] & 1 | 0) == 0 : 0) + break a; + } else { + if ((k[h2 >> 2] | 0) == 1) + break a; + if (!(k[j2 >> 2] & 2)) + break a; + } + i2[m2 >> 0] = 0; + i2[o2 >> 0] = 0; + Tj(a2, b2, c2, d2, e2, f2); + a2 = a2 + 8 | 0; + } while (a2 >>> 0 < g2 >>> 0); + } + while (0); + i2[m2 >> 0] = n2; + i2[o2 >> 0] = p2; + } + return; + } + function Yj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Rj(0, b2, c2, d2, e2); + else { + a2 = k[a2 + 8 >> 2] | 0; + Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, d2, e2, f2); + } + return; + } + function Zj(a2, b2, c2, d2, e2, f2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + f2 = f2 | 0; + if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) + Rj(0, b2, c2, d2, e2); + return; + } + function _j(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = r; + r = r + 16 | 0; + d2 = e2; + k[d2 >> 2] = k[c2 >> 2]; + a2 = Qb[k[(k[a2 >> 2] | 0) + 16 >> 2] & 63](a2, b2, d2) | 0; + if (a2) + k[c2 >> 2] = k[d2 >> 2]; + r = e2; + return a2 & 1 | 0; + } + function $j(a2) { + a2 = a2 | 0; + if (!a2) + a2 = 0; + else + a2 = (Qj(a2, 656, 704, 0) | 0) != 0; + return a2 & 1 | 0; + } + function ak() { + var a2 = 0; + a2 = Va(4) | 0; + oj(a2); + ub(a2 | 0, 592, 78); + } + function bk() { + var a2 = 0, b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + e2 = r; + r = r + 48 | 0; + g2 = e2 + 32 | 0; + c2 = e2 + 24 | 0; + h2 = e2 + 16 | 0; + f2 = e2; + e2 = e2 + 36 | 0; + a2 = kj() | 0; + if ((a2 | 0) != 0 ? (d2 = k[a2 >> 2] | 0, (d2 | 0) != 0) : 0) { + a2 = d2 + 48 | 0; + b2 = k[a2 >> 2] | 0; + a2 = k[a2 + 4 >> 2] | 0; + if (!((b2 & -256 | 0) == 1126902528 & (a2 | 0) == 1129074247)) { + k[c2 >> 2] = k[9257]; + hj(51919, c2); + } + if ((b2 | 0) == 1126902529 & (a2 | 0) == 1129074247) + a2 = k[d2 + 44 >> 2] | 0; + else + a2 = d2 + 80 | 0; + k[e2 >> 2] = a2; + d2 = k[d2 >> 2] | 0; + a2 = k[d2 + 4 >> 2] | 0; + if (Qb[k[(k[608 >> 2] | 0) + 16 >> 2] & 63](608, d2, e2) | 0) { + h2 = k[e2 >> 2] | 0; + e2 = k[9257] | 0; + h2 = Ob[k[(k[h2 >> 2] | 0) + 8 >> 2] & 127](h2) | 0; + k[f2 >> 2] = e2; + k[f2 + 4 >> 2] = a2; + k[f2 + 8 >> 2] = h2; + hj(51833, f2); + } else { + k[h2 >> 2] = k[9257]; + k[h2 + 4 >> 2] = a2; + hj(51878, h2); + } + } + hj(51957, g2); + } + function ck() { + var a2 = 0; + a2 = r; + r = r + 16 | 0; + if (!(Oa(37020, 184) | 0)) { + r = a2; + return; + } else + hj(51730, a2); + } + function dk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = (k[a2 >> 2] | 0) + -4 | 0; + b2 = k[c2 >> 2] | 0; + k[c2 >> 2] = b2 + -1; + if ((b2 + -1 | 0) < 0) + mj((k[a2 >> 2] | 0) + -12 | 0); + return; + } + function ek(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = r; + r = r + 16 | 0; + Ql(a2); + if (!(sb(k[9255] | 0, 0) | 0)) { + r = b2; + return; + } else + hj(51780, b2); + } + function fk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a2 = rl(a2, b2, c2) | 0; + return a2 | 0; + } + function gk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + a2 = sl(a2, b2, c2) | 0; + return a2 | 0; + } + function hk() { + return 37296; + } + function ik() { + return 37300; + } + function jk() { + return 37304; + } + function kk(a2) { + a2 = a2 | 0; + return ((a2 | 0) == 32 | (a2 + -9 | 0) >>> 0 < 5) & 1 | 0; + } + function lk(a2) { + a2 = a2 | 0; + if ((a2 + -48 | 0) >>> 0 < 10) + a2 = 1; + else + a2 = ((a2 | 32) + -97 | 0) >>> 0 < 6; + return a2 & 1 | 0; + } + function mk() { + var a2 = 0; + if (!(k[9258] | 0)) + a2 = 37308; + else { + a2 = (kb() | 0) + 60 | 0; + a2 = k[a2 >> 2] | 0; + } + return a2 | 0; + } + function nk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = 0; + while (1) { + if ((l[51978 + b2 >> 0] | 0) == (a2 | 0)) { + c2 = 2; + break; + } + b2 = b2 + 1 | 0; + if ((b2 | 0) == 87) { + b2 = 87; + a2 = 52066; + c2 = 5; + break; + } + } + if ((c2 | 0) == 2) + if (!b2) + a2 = 52066; + else { + a2 = 52066; + c2 = 5; + } + if ((c2 | 0) == 5) + while (1) { + c2 = a2; + while (1) { + a2 = c2 + 1 | 0; + if (!(i2[c2 >> 0] | 0)) + break; + else + c2 = a2; + } + b2 = b2 + -1 | 0; + if (!b2) + break; + else + c2 = 5; + } + return a2 | 0; + } + function ok(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0; + K2 = r; + r = r + 512 | 0; + G2 = K2; + switch (b2 | 0) { + case 0: { + J2 = 24; + I2 = -149; + y2 = 4; + break; + } + case 1: { + J2 = 53; + I2 = -1074; + y2 = 4; + break; + } + case 2: { + J2 = 53; + I2 = -1074; + y2 = 4; + break; + } + default: + d2 = 0; + } + a: + do + if ((y2 | 0) == 4) { + D2 = a2 + 4 | 0; + A2 = a2 + 100 | 0; + do { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + } while ((kk(b2) | 0) != 0); + b: + do + switch (b2 | 0) { + case 43: + case 45: { + e2 = 1 - (((b2 | 0) == 45 & 1) << 1) | 0; + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + H2 = e2; + break b; + } else { + b2 = rk(a2) | 0; + H2 = e2; + break b; + } + } + default: + H2 = 1; + } + while (0); + e2 = b2; + b2 = 0; + do { + if ((e2 | 32 | 0) != (i2[53870 + b2 >> 0] | 0)) + break; + do + if (b2 >>> 0 < 7) { + e2 = k[D2 >> 2] | 0; + if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = e2 + 1; + e2 = l[e2 >> 0] | 0; + break; + } else { + e2 = rk(a2) | 0; + break; + } + } + while (0); + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < 8); + c: + do + switch (b2 | 0) { + case 8: + break; + case 3: { + y2 = 23; + break; + } + default: { + g2 = (c2 | 0) != 0; + if (g2 & b2 >>> 0 > 3) + if ((b2 | 0) == 8) + break c; + else { + y2 = 23; + break c; + } + d: + do + if (!b2) { + b2 = 0; + do { + if ((e2 | 32 | 0) != (i2[56747 + b2 >> 0] | 0)) + break d; + do + if (b2 >>> 0 < 2) { + e2 = k[D2 >> 2] | 0; + if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = e2 + 1; + e2 = l[e2 >> 0] | 0; + break; + } else { + e2 = rk(a2) | 0; + break; + } + } + while (0); + b2 = b2 + 1 | 0; + } while (b2 >>> 0 < 3); + } + while (0); + switch (b2 | 0) { + case 3: { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 40) + b2 = 1; + else { + if (!(k[A2 >> 2] | 0)) { + d2 = B; + break a; + } + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + d2 = B; + break a; + } + while (1) { + e2 = k[D2 >> 2] | 0; + if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = e2 + 1; + e2 = l[e2 >> 0] | 0; + } else + e2 = rk(a2) | 0; + if (!((e2 + -48 | 0) >>> 0 < 10 | (e2 + -65 | 0) >>> 0 < 26) ? !((e2 | 0) == 95 | (e2 + -97 | 0) >>> 0 < 26) : 0) + break; + b2 = b2 + 1 | 0; + } + if ((e2 | 0) == 41) { + d2 = B; + break a; + } + e2 = (k[A2 >> 2] | 0) == 0; + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (!g2) { + J2 = mk() | 0; + k[J2 >> 2] = 22; + qk(a2, 0); + d2 = 0; + break a; + } + if (!b2) { + d2 = B; + break a; + } + while (1) { + b2 = b2 + -1 | 0; + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (!b2) { + d2 = B; + break a; + } + } + } + case 0: { + do + if ((e2 | 0) == 48) { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 32 | 0) != 120) { + if (!(k[A2 >> 2] | 0)) { + b2 = 48; + break; + } + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + b2 = 48; + break; + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + g2 = 0; + } else { + b2 = rk(a2) | 0; + g2 = 0; + } + e: + while (1) { + switch (b2 | 0) { + case 46: { + y2 = 74; + break e; + } + case 48: + break; + default: { + w2 = 0; + h2 = 0; + v2 = 0; + e2 = 0; + m2 = g2; + n2 = 0; + u2 = 0; + j2 = 1; + g2 = 0; + d2 = 0; + break e; + } + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + g2 = 1; + continue; + } else { + b2 = rk(a2) | 0; + g2 = 1; + continue; + } + } + if ((y2 | 0) == 74) { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 48) { + g2 = 0; + e2 = 0; + do { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + g2 = tw(g2 | 0, e2 | 0, -1, -1) | 0; + e2 = M; + } while ((b2 | 0) == 48); + w2 = 0; + h2 = 0; + v2 = g2; + m2 = 1; + n2 = 1; + u2 = 0; + j2 = 1; + g2 = 0; + d2 = 0; + } else { + w2 = 0; + h2 = 0; + v2 = 0; + e2 = 0; + m2 = g2; + n2 = 1; + u2 = 0; + j2 = 1; + g2 = 0; + d2 = 0; + } + } + while (1) { + s2 = b2 + -48 | 0; + o2 = b2 | 32; + if (s2 >>> 0 >= 10) { + t2 = (b2 | 0) == 46; + if (!(t2 | (o2 + -97 | 0) >>> 0 < 6)) { + o2 = v2; + s2 = w2; + break; + } + if (t2) + if (!n2) { + t2 = h2; + e2 = w2; + s2 = w2; + n2 = 1; + o2 = u2; + f2 = j2; + } else { + o2 = v2; + s2 = w2; + b2 = 46; + break; + } + else + y2 = 86; + } else + y2 = 86; + if ((y2 | 0) == 86) { + y2 = 0; + b2 = (b2 | 0) > 57 ? o2 + -87 | 0 : s2; + do + if (!((w2 | 0) < 0 | (w2 | 0) == 0 & h2 >>> 0 < 8)) { + if ((w2 | 0) < 0 | (w2 | 0) == 0 & h2 >>> 0 < 14) { + q2 = j2 * 0.0625; + o2 = u2; + f2 = q2; + d2 = d2 + q2 * +(b2 | 0); + break; + } + if ((u2 | 0) != 0 | (b2 | 0) == 0) { + o2 = u2; + f2 = j2; + } else { + o2 = 1; + f2 = j2; + d2 = d2 + j2 * 0.5; + } + } else { + o2 = u2; + f2 = j2; + g2 = b2 + (g2 << 4) | 0; + } + while (0); + h2 = tw(h2 | 0, w2 | 0, 1, 0) | 0; + t2 = v2; + s2 = M; + m2 = 1; + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + w2 = s2; + v2 = t2; + b2 = l[b2 >> 0] | 0; + u2 = o2; + j2 = f2; + continue; + } else { + w2 = s2; + v2 = t2; + b2 = rk(a2) | 0; + u2 = o2; + j2 = f2; + continue; + } + } + if (!m2) { + b2 = (k[A2 >> 2] | 0) == 0; + if (!b2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (c2) { + if (!b2 ? (x2 = k[D2 >> 2] | 0, k[D2 >> 2] = x2 + -1, (n2 | 0) != 0) : 0) + k[D2 >> 2] = x2 + -2; + } else + qk(a2, 0); + d2 = +(H2 | 0) * 0; + break a; + } + m2 = (n2 | 0) == 0; + n2 = m2 ? h2 : o2; + m2 = m2 ? s2 : e2; + if ((s2 | 0) < 0 | (s2 | 0) == 0 & h2 >>> 0 < 8) { + e2 = s2; + do { + g2 = g2 << 4; + h2 = tw(h2 | 0, e2 | 0, 1, 0) | 0; + e2 = M; + } while ((e2 | 0) < 0 | (e2 | 0) == 0 & h2 >>> 0 < 8); + } + if ((b2 | 32 | 0) == 112) { + e2 = Dl(a2, c2) | 0; + b2 = M; + if ((e2 | 0) == 0 & (b2 | 0) == -2147483648) { + if (!c2) { + qk(a2, 0); + d2 = 0; + break a; + } + if (!(k[A2 >> 2] | 0)) { + e2 = 0; + b2 = 0; + } else { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + e2 = 0; + b2 = 0; + } + } + } else if (!(k[A2 >> 2] | 0)) { + e2 = 0; + b2 = 0; + } else { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + e2 = 0; + b2 = 0; + } + G2 = ww(n2 | 0, m2 | 0, 2) | 0; + G2 = tw(G2 | 0, M | 0, -32, -1) | 0; + b2 = tw(G2 | 0, M | 0, e2 | 0, b2 | 0) | 0; + e2 = M; + if (!g2) { + d2 = +(H2 | 0) * 0; + break a; + } + if ((e2 | 0) > 0 | (e2 | 0) == 0 & b2 >>> 0 > (0 - I2 | 0) >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 17976931348623157e292 * 17976931348623157e292; + break a; + } + G2 = I2 + -106 | 0; + F2 = ((G2 | 0) < 0) << 31 >> 31; + if ((e2 | 0) < (F2 | 0) | (e2 | 0) == (F2 | 0) & b2 >>> 0 < G2 >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 22250738585072014e-324 * 22250738585072014e-324; + break a; + } + if ((g2 | 0) > -1) { + do { + F2 = !(d2 >= 0.5); + G2 = F2 & 1 | g2 << 1; + g2 = G2 ^ 1; + d2 = d2 + (F2 ? d2 : d2 + -1); + b2 = tw(b2 | 0, e2 | 0, -1, -1) | 0; + e2 = M; + } while ((G2 | 0) > -1); + h2 = b2; + j2 = d2; + } else { + h2 = b2; + j2 = d2; + } + b2 = rw(32, 0, I2 | 0, ((I2 | 0) < 0) << 31 >> 31 | 0) | 0; + b2 = tw(h2 | 0, e2 | 0, b2 | 0, M | 0) | 0; + I2 = M; + if (0 > (I2 | 0) | 0 == (I2 | 0) & J2 >>> 0 > b2 >>> 0) + if ((b2 | 0) < 0) { + b2 = 0; + y2 = 127; + } else + y2 = 125; + else { + b2 = J2; + y2 = 125; + } + if ((y2 | 0) == 125) + if ((b2 | 0) < 53) + y2 = 127; + else { + e2 = b2; + f2 = +(H2 | 0); + d2 = 0; + } + if ((y2 | 0) == 127) { + d2 = +(H2 | 0); + e2 = b2; + f2 = d2; + d2 = +Ck(+Hk(1, 84 - b2 | 0), d2); + } + J2 = (g2 & 1 | 0) == 0 & (j2 != 0 & (e2 | 0) < 32); + d2 = f2 * (J2 ? 0 : j2) + (d2 + f2 * +(((J2 & 1) + g2 | 0) >>> 0)) - d2; + if (!(d2 != 0)) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + } + d2 = +Ik(d2, h2); + break a; + } else + b2 = e2; + while (0); + E2 = I2 + J2 | 0; + F2 = 0 - E2 | 0; + g2 = 0; + f: + while (1) { + switch (b2 | 0) { + case 46: { + y2 = 138; + break f; + } + case 48: + break; + default: { + e2 = 0; + o2 = 0; + n2 = 0; + break f; + } + } + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + g2 = 1; + continue; + } else { + b2 = rk(a2) | 0; + g2 = 1; + continue; + } + } + if ((y2 | 0) == 138) { + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 48) { + e2 = 0; + b2 = 0; + while (1) { + e2 = tw(e2 | 0, b2 | 0, -1, -1) | 0; + g2 = M; + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if ((b2 | 0) == 48) + b2 = g2; + else { + o2 = g2; + g2 = 1; + n2 = 1; + break; + } + } + } else { + e2 = 0; + o2 = 0; + n2 = 1; + } + } + k[G2 >> 2] = 0; + m2 = b2 + -48 | 0; + h2 = (b2 | 0) == 46; + g: + do + if (h2 | m2 >>> 0 < 10) { + z2 = G2 + 496 | 0; + w2 = 0; + t2 = 0; + u2 = h2; + y2 = o2; + s2 = g2; + x2 = n2; + g2 = 0; + h2 = 0; + n2 = 0; + h: + while (1) { + do + if (u2) + if (!x2) { + e2 = w2; + o2 = t2; + x2 = 1; + } else { + o2 = y2; + b2 = w2; + m2 = t2; + break h; + } + else { + u2 = tw(w2 | 0, t2 | 0, 1, 0) | 0; + t2 = M; + v2 = (b2 | 0) != 48; + if ((h2 | 0) >= 125) { + if (!v2) { + o2 = y2; + w2 = u2; + break; + } + k[z2 >> 2] = k[z2 >> 2] | 1; + o2 = y2; + w2 = u2; + break; + } + o2 = G2 + (h2 << 2) | 0; + if (g2) + m2 = b2 + -48 + ((k[o2 >> 2] | 0) * 10 | 0) | 0; + k[o2 >> 2] = m2; + g2 = g2 + 1 | 0; + m2 = (g2 | 0) == 9; + o2 = y2; + w2 = u2; + s2 = 1; + g2 = m2 ? 0 : g2; + h2 = (m2 & 1) + h2 | 0; + n2 = v2 ? u2 : n2; + } + while (0); + b2 = k[D2 >> 2] | 0; + if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { + k[D2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + m2 = b2 + -48 | 0; + u2 = (b2 | 0) == 46; + if (!(u2 | m2 >>> 0 < 10)) { + m2 = x2; + y2 = 161; + break g; + } else + y2 = o2; + } + s2 = (s2 | 0) != 0; + y2 = 169; + } else { + w2 = 0; + t2 = 0; + s2 = g2; + m2 = n2; + g2 = 0; + h2 = 0; + n2 = 0; + y2 = 161; + } + while (0); + do + if ((y2 | 0) == 161) { + z2 = (m2 | 0) == 0; + e2 = z2 ? w2 : e2; + o2 = z2 ? t2 : o2; + s2 = (s2 | 0) != 0; + if (!((b2 | 32 | 0) == 101 & s2)) + if ((b2 | 0) > -1) { + b2 = w2; + m2 = t2; + y2 = 169; + break; + } else { + b2 = w2; + m2 = t2; + y2 = 171; + break; + } + m2 = Dl(a2, c2) | 0; + b2 = M; + if ((m2 | 0) == 0 & (b2 | 0) == -2147483648) { + if (!c2) { + qk(a2, 0); + d2 = 0; + break; + } + if (!(k[A2 >> 2] | 0)) { + m2 = 0; + b2 = 0; + } else { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + m2 = 0; + b2 = 0; + } + } + e2 = tw(m2 | 0, b2 | 0, e2 | 0, o2 | 0) | 0; + s2 = w2; + o2 = M; + m2 = t2; + y2 = 173; + } + while (0); + if ((y2 | 0) == 169) + if (k[A2 >> 2] | 0) { + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if (s2) { + s2 = b2; + y2 = 173; + } else + y2 = 172; + } else + y2 = 171; + if ((y2 | 0) == 171) + if (s2) { + s2 = b2; + y2 = 173; + } else + y2 = 172; + do + if ((y2 | 0) == 172) { + J2 = mk() | 0; + k[J2 >> 2] = 22; + qk(a2, 0); + d2 = 0; + } else if ((y2 | 0) == 173) { + b2 = k[G2 >> 2] | 0; + if (!b2) { + d2 = +(H2 | 0) * 0; + break; + } + if (((m2 | 0) < 0 | (m2 | 0) == 0 & s2 >>> 0 < 10) & ((e2 | 0) == (s2 | 0) & (o2 | 0) == (m2 | 0)) ? J2 >>> 0 > 30 | (b2 >>> J2 | 0) == 0 : 0) { + d2 = +(H2 | 0) * +(b2 >>> 0); + break; + } + a2 = (I2 | 0) / -2 | 0; + D2 = ((a2 | 0) < 0) << 31 >> 31; + if ((o2 | 0) > (D2 | 0) | (o2 | 0) == (D2 | 0) & e2 >>> 0 > a2 >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 17976931348623157e292 * 17976931348623157e292; + break; + } + a2 = I2 + -106 | 0; + D2 = ((a2 | 0) < 0) << 31 >> 31; + if ((o2 | 0) < (D2 | 0) | (o2 | 0) == (D2 | 0) & e2 >>> 0 < a2 >>> 0) { + J2 = mk() | 0; + k[J2 >> 2] = 34; + d2 = +(H2 | 0) * 22250738585072014e-324 * 22250738585072014e-324; + break; + } + if (g2) { + if ((g2 | 0) < 9) { + m2 = G2 + (h2 << 2) | 0; + b2 = k[m2 >> 2] | 0; + do { + b2 = b2 * 10 | 0; + g2 = g2 + 1 | 0; + } while ((g2 | 0) != 9); + k[m2 >> 2] = b2; + } + h2 = h2 + 1 | 0; + } + if ((n2 | 0) < 9 ? (n2 | 0) <= (e2 | 0) & (e2 | 0) < 18 : 0) { + if ((e2 | 0) == 9) { + d2 = +(H2 | 0) * +((k[G2 >> 2] | 0) >>> 0); + break; + } + if ((e2 | 0) < 9) { + d2 = +(H2 | 0) * +((k[G2 >> 2] | 0) >>> 0) / +(k[37312 + (8 - e2 << 2) >> 2] | 0); + break; + } + a2 = J2 + 27 + (ia(e2, -3) | 0) | 0; + b2 = k[G2 >> 2] | 0; + if ((a2 | 0) > 30 | (b2 >>> a2 | 0) == 0) { + d2 = +(H2 | 0) * +(b2 >>> 0) * +(k[37312 + (e2 + -10 << 2) >> 2] | 0); + break; + } + } + b2 = (e2 | 0) % 9 | 0; + if (!b2) { + g2 = 0; + b2 = 0; + } else { + s2 = (e2 | 0) > -1 ? b2 : b2 + 9 | 0; + m2 = k[37312 + (8 - s2 << 2) >> 2] | 0; + if (h2) { + n2 = 1e9 / (m2 | 0) | 0; + g2 = 0; + b2 = 0; + o2 = 0; + do { + A2 = G2 + (o2 << 2) | 0; + D2 = k[A2 >> 2] | 0; + a2 = ((D2 >>> 0) / (m2 >>> 0) | 0) + b2 | 0; + k[A2 >> 2] = a2; + b2 = ia((D2 >>> 0) % (m2 >>> 0) | 0, n2) | 0; + a2 = (o2 | 0) == (g2 | 0) & (a2 | 0) == 0; + o2 = o2 + 1 | 0; + e2 = a2 ? e2 + -9 | 0 : e2; + g2 = a2 ? o2 & 127 : g2; + } while ((o2 | 0) != (h2 | 0)); + if (b2) { + k[G2 + (h2 << 2) >> 2] = b2; + h2 = h2 + 1 | 0; + } + } else { + g2 = 0; + h2 = 0; + } + b2 = 0; + e2 = 9 - s2 + e2 | 0; + } + i: + while (1) { + t2 = (e2 | 0) < 18; + u2 = (e2 | 0) == 18; + v2 = G2 + (g2 << 2) | 0; + do { + if (!t2) { + if (!u2) + break i; + if ((k[v2 >> 2] | 0) >>> 0 >= 9007199) { + e2 = 18; + break i; + } + } + m2 = 0; + n2 = h2 + 127 | 0; + while (1) { + s2 = n2 & 127; + o2 = G2 + (s2 << 2) | 0; + n2 = ww(k[o2 >> 2] | 0, 0, 29) | 0; + n2 = tw(n2 | 0, M | 0, m2 | 0, 0) | 0; + m2 = M; + if (m2 >>> 0 > 0 | (m2 | 0) == 0 & n2 >>> 0 > 1e9) { + a2 = Ew(n2 | 0, m2 | 0, 1e9, 0) | 0; + n2 = Fw(n2 | 0, m2 | 0, 1e9, 0) | 0; + m2 = a2; + } else + m2 = 0; + k[o2 >> 2] = n2; + a2 = (s2 | 0) == (g2 | 0); + h2 = (s2 | 0) != (h2 + 127 & 127 | 0) | a2 ? h2 : (n2 | 0) == 0 ? s2 : h2; + if (a2) + break; + else + n2 = s2 + -1 | 0; + } + b2 = b2 + -29 | 0; + } while ((m2 | 0) == 0); + g2 = g2 + 127 & 127; + if ((g2 | 0) == (h2 | 0)) { + a2 = h2 + 127 & 127; + h2 = G2 + ((h2 + 126 & 127) << 2) | 0; + k[h2 >> 2] = k[h2 >> 2] | k[G2 + (a2 << 2) >> 2]; + h2 = a2; + } + k[G2 + (g2 << 2) >> 2] = m2; + e2 = e2 + 9 | 0; + } + j: + while (1) { + w2 = h2 + 1 & 127; + v2 = G2 + ((h2 + 127 & 127) << 2) | 0; + while (1) { + t2 = (e2 | 0) == 18; + u2 = (e2 | 0) > 27 ? 9 : 1; + s2 = t2 ^ 1; + while (1) { + n2 = g2 & 127; + o2 = (n2 | 0) == (h2 | 0); + do + if (!o2) { + m2 = k[G2 + (n2 << 2) >> 2] | 0; + if (m2 >>> 0 < 9007199) { + y2 = 219; + break; + } + if (m2 >>> 0 > 9007199) + break; + m2 = g2 + 1 & 127; + if ((m2 | 0) == (h2 | 0)) { + y2 = 219; + break; + } + m2 = k[G2 + (m2 << 2) >> 2] | 0; + if (m2 >>> 0 < 254740991) { + y2 = 219; + break; + } + if (!(m2 >>> 0 > 254740991 | s2)) { + e2 = n2; + break j; + } + } else + y2 = 219; + while (0); + if ((y2 | 0) == 219 ? (y2 = 0, t2) : 0) { + y2 = 220; + break j; + } + b2 = b2 + u2 | 0; + if ((g2 | 0) == (h2 | 0)) + g2 = h2; + else + break; + } + s2 = (1 << u2) + -1 | 0; + t2 = 1e9 >>> u2; + n2 = g2; + m2 = 0; + o2 = g2; + while (1) { + D2 = G2 + (o2 << 2) | 0; + a2 = k[D2 >> 2] | 0; + g2 = (a2 >>> u2) + m2 | 0; + k[D2 >> 2] = g2; + m2 = ia(a2 & s2, t2) | 0; + g2 = (o2 | 0) == (n2 | 0) & (g2 | 0) == 0; + o2 = o2 + 1 & 127; + e2 = g2 ? e2 + -9 | 0 : e2; + g2 = g2 ? o2 : n2; + if ((o2 | 0) == (h2 | 0)) + break; + else + n2 = g2; + } + if (!m2) + continue; + if ((w2 | 0) != (g2 | 0)) + break; + k[v2 >> 2] = k[v2 >> 2] | 1; + } + k[G2 + (h2 << 2) >> 2] = m2; + h2 = w2; + } + if ((y2 | 0) == 220) + if (o2) { + k[G2 + (w2 + -1 << 2) >> 2] = 0; + e2 = h2; + h2 = w2; + } else + e2 = n2; + d2 = +((k[G2 + (e2 << 2) >> 2] | 0) >>> 0); + e2 = g2 + 1 & 127; + if ((e2 | 0) == (h2 | 0)) { + h2 = g2 + 2 & 127; + k[G2 + (h2 + -1 << 2) >> 2] = 0; + } + q2 = +(H2 | 0); + f2 = q2 * (d2 * 1e9 + +((k[G2 + (e2 << 2) >> 2] | 0) >>> 0)); + t2 = b2 + 53 | 0; + o2 = t2 - I2 | 0; + s2 = (o2 | 0) < (J2 | 0); + e2 = s2 & 1; + n2 = s2 ? (o2 | 0) < 0 ? 0 : o2 : J2; + if ((n2 | 0) < 53) { + L2 = +Ck(+Hk(1, 105 - n2 | 0), f2); + j2 = +Ek(f2, +Hk(1, 53 - n2 | 0)); + p2 = L2; + d2 = j2; + j2 = L2 + (f2 - j2); + } else { + p2 = 0; + d2 = 0; + j2 = f2; + } + m2 = g2 + 2 & 127; + do + if ((m2 | 0) == (h2 | 0)) + f2 = d2; + else { + m2 = k[G2 + (m2 << 2) >> 2] | 0; + do + if (m2 >>> 0 >= 5e8) { + if (m2 >>> 0 > 5e8) { + d2 = q2 * 0.75 + d2; + break; + } + if ((g2 + 3 & 127 | 0) == (h2 | 0)) { + d2 = q2 * 0.5 + d2; + break; + } else { + d2 = q2 * 0.75 + d2; + break; + } + } else { + if ((m2 | 0) == 0 ? (g2 + 3 & 127 | 0) == (h2 | 0) : 0) + break; + d2 = q2 * 0.25 + d2; + } + while (0); + if ((53 - n2 | 0) <= 1) { + f2 = d2; + break; + } + if (+Ek(d2, 1) != 0) { + f2 = d2; + break; + } + f2 = d2 + 1; + } + while (0); + d2 = j2 + f2 - p2; + do + if ((t2 & 2147483647 | 0) > (-2 - E2 | 0)) { + if (+X(+d2) >= 9007199254740992) { + e2 = s2 & (n2 | 0) == (o2 | 0) ? 0 : e2; + b2 = b2 + 1 | 0; + d2 = d2 * 0.5; + } + if ((b2 + 50 | 0) <= (F2 | 0) ? !(f2 != 0 & (e2 | 0) != 0) : 0) + break; + J2 = mk() | 0; + k[J2 >> 2] = 34; + } + while (0); + d2 = +Ik(d2, b2); + } + while (0); + break a; + } + default: { + if (k[A2 >> 2] | 0) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + J2 = mk() | 0; + k[J2 >> 2] = 22; + qk(a2, 0); + d2 = 0; + break a; + } + } + } + } + while (0); + if ((y2 | 0) == 23) { + e2 = (k[A2 >> 2] | 0) == 0; + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + if ((c2 | 0) != 0 & b2 >>> 0 > 3) + do { + if (!e2) + k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; + b2 = b2 + -1 | 0; + } while (b2 >>> 0 > 3); + } + d2 = +(H2 | 0) * C; + } + while (0); + r = K2; + return +d2; + } + function pk(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; + a: + do + if (b2 >>> 0 > 36) { + e2 = mk() | 0; + k[e2 >> 2] = 22; + e2 = 0; + d2 = 0; + } else { + r2 = a2 + 4 | 0; + q2 = a2 + 100 | 0; + do { + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + } while ((kk(f2) | 0) != 0); + b: + do + switch (f2 | 0) { + case 43: + case 45: { + g2 = ((f2 | 0) == 45) << 31 >> 31; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + p2 = g2; + break b; + } else { + f2 = rk(a2) | 0; + p2 = g2; + break b; + } + } + default: + p2 = 0; + } + while (0); + g2 = (b2 | 0) == 0; + do + if ((b2 & -17 | 0) == 0 & (f2 | 0) == 48) { + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + if ((f2 | 32 | 0) != 120) + if (g2) { + b2 = 8; + n2 = 46; + break; + } else { + n2 = 32; + break; + } + b2 = k[r2 >> 2] | 0; + if (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = b2 + 1; + f2 = l[b2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + if ((l[53879 + (f2 + 1) >> 0] | 0) > 15) { + d2 = (k[q2 >> 2] | 0) == 0; + if (!d2) + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + if (!c2) { + qk(a2, 0); + e2 = 0; + d2 = 0; + break a; + } + if (d2) { + e2 = 0; + d2 = 0; + break a; + } + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + e2 = 0; + d2 = 0; + break a; + } else { + b2 = 16; + n2 = 46; + } + } else { + b2 = g2 ? 10 : b2; + if ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0) + n2 = 32; + else { + if (k[q2 >> 2] | 0) + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + qk(a2, 0); + e2 = mk() | 0; + k[e2 >> 2] = 22; + e2 = 0; + d2 = 0; + break a; + } + } + while (0); + if ((n2 | 0) == 32) + if ((b2 | 0) == 10) { + b2 = f2 + -48 | 0; + if (b2 >>> 0 < 10) { + f2 = 0; + while (1) { + g2 = (f2 * 10 | 0) + b2 | 0; + b2 = k[r2 >> 2] | 0; + if (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = b2 + 1; + f2 = l[b2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + b2 = f2 + -48 | 0; + if (!(b2 >>> 0 < 10 & g2 >>> 0 < 429496729)) { + b2 = g2; + break; + } else + f2 = g2; + } + g2 = 0; + } else { + b2 = 0; + g2 = 0; + } + c2 = f2 + -48 | 0; + if (c2 >>> 0 < 10) { + while (1) { + h2 = Dw(b2 | 0, g2 | 0, 10, 0) | 0; + j2 = M; + m2 = ((c2 | 0) < 0) << 31 >> 31; + o2 = ~m2; + if (j2 >>> 0 > o2 >>> 0 | (j2 | 0) == (o2 | 0) & h2 >>> 0 > ~c2 >>> 0) { + h2 = b2; + break; + } + b2 = tw(h2 | 0, j2 | 0, c2 | 0, m2 | 0) | 0; + g2 = M; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + c2 = f2 + -48 | 0; + if (!(c2 >>> 0 < 10 & (g2 >>> 0 < 429496729 | (g2 | 0) == 429496729 & b2 >>> 0 < 2576980378))) { + h2 = b2; + break; + } + } + if (c2 >>> 0 > 9) { + f2 = h2; + b2 = p2; + } else { + b2 = 10; + n2 = 72; + } + } else { + f2 = b2; + b2 = p2; + } + } else + n2 = 46; + c: + do + if ((n2 | 0) == 46) { + if (!(b2 + -1 & b2)) { + n2 = i2[54136 + ((b2 * 23 | 0) >>> 5 & 7) >> 0] | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (c2 >>> 0 < b2 >>> 0) { + f2 = 0; + while (1) { + h2 = c2 | f2 << n2; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (!(h2 >>> 0 < 134217728 & c2 >>> 0 < b2 >>> 0)) + break; + else + f2 = h2; + } + c2 = 0; + } else { + c2 = 0; + h2 = 0; + } + j2 = uw(-1, -1, n2 | 0) | 0; + m2 = M; + if ((g2 & 255) >>> 0 >= b2 >>> 0 | (c2 >>> 0 > m2 >>> 0 | (c2 | 0) == (m2 | 0) & h2 >>> 0 > j2 >>> 0)) { + g2 = c2; + n2 = 72; + break; + } else + f2 = c2; + while (1) { + h2 = ww(h2 | 0, f2 | 0, n2 | 0) | 0; + c2 = M; + h2 = g2 & 255 | h2; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + if ((g2 & 255) >>> 0 >= b2 >>> 0 | (c2 >>> 0 > m2 >>> 0 | (c2 | 0) == (m2 | 0) & h2 >>> 0 > j2 >>> 0)) { + g2 = c2; + n2 = 72; + break c; + } else + f2 = c2; + } + } + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (c2 >>> 0 < b2 >>> 0) { + f2 = 0; + while (1) { + h2 = c2 + (ia(f2, b2) | 0) | 0; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + c2 = g2 & 255; + if (!(h2 >>> 0 < 119304647 & c2 >>> 0 < b2 >>> 0)) + break; + else + f2 = h2; + } + c2 = 0; + } else { + h2 = 0; + c2 = 0; + } + if ((g2 & 255) >>> 0 < b2 >>> 0) { + n2 = Ew(-1, -1, b2 | 0, 0) | 0; + o2 = M; + m2 = c2; + while (1) { + if (m2 >>> 0 > o2 >>> 0 | (m2 | 0) == (o2 | 0) & h2 >>> 0 > n2 >>> 0) { + g2 = m2; + n2 = 72; + break c; + } + c2 = Dw(h2 | 0, m2 | 0, b2 | 0, 0) | 0; + j2 = M; + g2 = g2 & 255; + if (j2 >>> 0 > 4294967295 | (j2 | 0) == -1 & c2 >>> 0 > ~g2 >>> 0) { + g2 = m2; + n2 = 72; + break c; + } + h2 = tw(g2 | 0, 0, c2 | 0, j2 | 0) | 0; + c2 = M; + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + g2 = i2[53879 + (f2 + 1) >> 0] | 0; + if ((g2 & 255) >>> 0 >= b2 >>> 0) { + g2 = c2; + n2 = 72; + break; + } else + m2 = c2; + } + } else { + g2 = c2; + n2 = 72; + } + } + while (0); + if ((n2 | 0) == 72) + if ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0) { + do { + f2 = k[r2 >> 2] | 0; + if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { + k[r2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + } while ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0); + g2 = mk() | 0; + k[g2 >> 2] = 34; + g2 = e2; + f2 = d2; + b2 = (d2 & 1 | 0) == 0 & true ? p2 : 0; + } else { + f2 = h2; + b2 = p2; + } + if (k[q2 >> 2] | 0) + k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; + if (!(g2 >>> 0 < e2 >>> 0 | (g2 | 0) == (e2 | 0) & f2 >>> 0 < d2 >>> 0)) { + if (!((d2 & 1 | 0) != 0 | false | (b2 | 0) != 0)) { + r2 = mk() | 0; + k[r2 >> 2] = 34; + d2 = tw(d2 | 0, e2 | 0, -1, -1) | 0; + e2 = M; + break; + } + if (g2 >>> 0 > e2 >>> 0 | (g2 | 0) == (e2 | 0) & f2 >>> 0 > d2 >>> 0) { + r2 = mk() | 0; + k[r2 >> 2] = 34; + break; + } + } + d2 = ((b2 | 0) < 0) << 31 >> 31; + d2 = rw(f2 ^ b2 | 0, g2 ^ d2 | 0, b2 | 0, d2 | 0) | 0; + e2 = M; + } + while (0); + M = e2; + return d2 | 0; + } + function qk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + k[a2 + 104 >> 2] = b2; + c2 = k[a2 + 4 >> 2] | 0; + d2 = k[a2 + 8 >> 2] | 0; + e2 = d2 - c2 | 0; + k[a2 + 108 >> 2] = e2; + if ((b2 | 0) != 0 & (e2 | 0) > (b2 | 0)) + k[a2 + 100 >> 2] = c2 + b2; + else + k[a2 + 100 >> 2] = d2; + return; + } + function rk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + c2 = a2 + 104 | 0; + f2 = k[c2 >> 2] | 0; + if ((f2 | 0) != 0 ? (k[a2 + 108 >> 2] | 0) >= (f2 | 0) : 0) + g2 = 4; + else { + b2 = cl(a2) | 0; + if ((b2 | 0) >= 0) { + e2 = k[c2 >> 2] | 0; + c2 = a2 + 8 | 0; + if (e2) { + d2 = k[c2 >> 2] | 0; + f2 = k[a2 + 4 >> 2] | 0; + c2 = d2; + e2 = e2 - (k[a2 + 108 >> 2] | 0) + -1 | 0; + if ((c2 - f2 | 0) > (e2 | 0)) + k[a2 + 100 >> 2] = f2 + e2; + else + g2 = 9; + } else { + d2 = k[c2 >> 2] | 0; + c2 = d2; + g2 = 9; + } + if ((g2 | 0) == 9) + k[a2 + 100 >> 2] = c2; + c2 = k[a2 + 4 >> 2] | 0; + if (d2) { + a2 = a2 + 108 | 0; + k[a2 >> 2] = d2 + 1 - c2 + (k[a2 >> 2] | 0); + } + c2 = c2 + -1 | 0; + if ((l[c2 >> 0] | 0 | 0) != (b2 | 0)) + i2[c2 >> 0] = b2; + } else + g2 = 4; + } + if ((g2 | 0) == 4) { + k[a2 + 100 >> 2] = 0; + b2 = -1; + } + return b2 | 0; + } + function sk(a2) { + a2 = a2 | 0; + var b2 = 0; + if (a2 >>> 0 > 4294963200) { + b2 = mk() | 0; + k[b2 >> 2] = 0 - a2; + a2 = -1; + } + return a2 | 0; } - } - - if (mat[1] === 0) { - mat[1] = mat[0]; - } - - return mat; -}; - - -/** - * Returns the TR. - * @returns {number} - */ -daikon.Image.prototype.getTR = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TR, daikon.Tag.TAG_TR[1]), 0); -}; - - - -daikon.Image.prototype.putTag = function (tag) { - if (this.tags[tag.id] && this.tags[tag.id].value[0] !== tag.value[0]) { - return; - } - this.tags[tag.id] = tag; - this.putFlattenedTag(this.tagsFlat, tag); -}; - - - -daikon.Image.prototype.putFlattenedTag = function (tags, tag) { - var ctr; - - if (tag.sublist) { - for (ctr = 0; ctr < tag.value.length; ctr += 1) { - this.putFlattenedTag(tags, tag.value[ctr]); + function tk(a2) { + a2 = a2 | 0; + return 0; } - } else { - if (!tags[tag.id]) { - tags[tag.id] = tag; + function uk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + return d2 | 0; } - } -}; - - -/** - * Returns a tag matching the specified group and element. - * @param {number} group - * @param {number} element - * @returns {daikon.Tag} - */ -daikon.Image.prototype.getTag = function (group, element) { - var tagId = daikon.Tag.createId(group, element); - - if (this.tags[tagId]) { - return this.tags[tagId]; - } - - return this.tagsFlat[tagId]; -}; - - -/** - * Returns the pixel data tag. - * @returns {daikon.Tag} - */ -daikon.Image.prototype.getPixelData = function () { - return this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])]; -}; - - - -daikon.Image.prototype.getPixelDataBytes = function () { - if (this.isCompressed()) { - this.decompress(); - } - - if (this.isPalette() && !daikon.Image.skipPaletteConversion) { - this.convertPalette(); - } - - return this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value.buffer; -}; - - -/** - * Returns the raw pixel data. - * @returns {ArrayBuffer} - */ -daikon.Image.prototype.getRawData = function () { - return this.getPixelDataBytes(); -}; - - -/** - * Returns interpreted pixel data (considers datatype, byte order, data scales). - * @param {boolean} asArray - if true, the returned data is a JavaScript Array - * @param {boolean} asObject - if true, an object is returned with properties: data, min, max, minIndex, maxIndex, numCols, numRows - * @param {number} frameIndex - if provided, only the desired frame in a multi-frame dataset is returned - * @returns {Float32Array|Array|object} - */ -daikon.Image.prototype.getInterpretedData = function (asArray, asObject, frameIndex) { - var datatype, numBytes, numElements, dataView, data, ctr, mask, slope, intercept, min, max, value, minIndex, - maxIndex, littleEndian, rawValue, rawData, allFrames, elementsPerFrame, totalElements, offset, dataCtr; - allFrames = arguments.length < 3; - mask = daikon.Utils.createBitMask(this.getBitsAllocated() / 8, this.getBitsStored(), - this.getDataType() === daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED); - datatype = this.getPixelRepresentation() ? daikon.Image.BYTE_TYPE_INTEGER : daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED; - numBytes = this.getBitsAllocated() / 8; - rawData = this.getRawData(); - dataView = new DataView(rawData); - totalElements = rawData.byteLength / numBytes; - elementsPerFrame = totalElements / this.getNumberOfFrames(); - numElements = allFrames ? totalElements : elementsPerFrame; - offset = allFrames ? 0 : frameIndex * elementsPerFrame; - slope = this.getDataScaleSlope() || 1; - intercept = this.getDataScaleIntercept() || 0; - min = daikon.Utils.MAX_VALUE; - max = daikon.Utils.MIN_VALUE; - minIndex = -1; - maxIndex = -1; - littleEndian = this.littleEndian; - - if (asArray) { - data = new Array(numElements); - } else { - data = new Float32Array(numElements); - } - var getWord; - if (datatype === daikon.Image.BYTE_TYPE_INTEGER) { - if (numBytes === 1) { - getWord = dataView.getInt8.bind(dataView) - } else if (numBytes === 2) { - getWord = dataView.getInt16.bind(dataView) + function vk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return -1 | 0; } - } else if (datatype === daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED) { - if (numBytes === 1) { - getWord = dataView.getUint8.bind(dataView) - } else if (numBytes === 2) { - getWord = dataView.getUint16.bind(dataView) + function wk(a2) { + a2 = a2 | 0; + Ql(a2); + return; } - } - - // invert pixel values if INVERTED or MONOCHROME1 - var invert = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_LUT_SHAPE[0], daikon.Tag.TAG_LUT_SHAPE[1]), 0) === "INVERSE"; - invert = invert || this.getPhotometricInterpretation() === "MONOCHROME1"; - if (invert) { - var maxVal = Math.pow(2, this.getBitsStored()) - 1; - var minVal = 0; - if (datatype === daikon.Image.BYTE_TYPE_INTEGER) { - maxVal /= 2; - minVal = -maxVal; + function xk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return (a2 + -48 | 0) >>> 0 < 10 | 0; } - var originalGetWord = getWord; - getWord = function(offset, endian) { - var val = maxVal - originalGetWord(offset, endian); - return Math.min(maxVal, Math.max(minVal, val)); + function yk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + return lk(a2) | 0; } - } - - for (ctr = offset, dataCtr = 0; dataCtr < numElements; ctr++, dataCtr++) { - rawValue = getWord(ctr * numBytes, littleEndian); - - value = ((rawValue & mask) * slope) + intercept; - data[dataCtr] = value; - - if (value < min) { - min = value; - minIndex = dataCtr; + function zk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + if (((i2[b2 >> 0] | 0) != 0 ? (vl(b2, 58885) | 0) != 0 : 0) ? (vl(b2, 54145) | 0) != 0 : 0) + c2 = 0; + else if (!c2) + c2 = Rl(1, 4) | 0; + return c2 | 0; } - - if (value > max) { - max = value; - maxIndex = dataCtr; + function Ak(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = (kb() | 0) + 176 | 0; + c2 = k[b2 >> 2] | 0; + if (a2) + k[b2 >> 2] = a2; + return c2 | 0; } - } - - if (asObject) { - return {data: data, min: min, minIndex: minIndex, max: max, maxIndex: maxIndex, numCols: this.getCols(), - numRows: this.getRows()}; - } - - return data; -}; - - - -daikon.Image.prototype.convertPalette = function () { - var data, reds, greens, blues, rgb, numBytes, numElements, ctr, index, rVal, gVal, bVal; - - data = this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value; - - reds = this.getPalleteValues(daikon.Tag.TAG_PALETTE_RED); - greens = this.getPalleteValues(daikon.Tag.TAG_PALETTE_GREEN); - blues = this.getPalleteValues(daikon.Tag.TAG_PALETTE_BLUE); - - if ((reds !== null) && (reds.length > 0) && (greens !== null) && (greens.length > 0) && (blues !== null) && - (blues.length > 0) && !this.convertedPalette) { - rgb = new DataView(new ArrayBuffer(this.getRows() * this.getCols() * this.getNumberOfFrames() * 3)); - numBytes = parseInt(Math.ceil(this.getBitsAllocated() / 8)); - numElements = data.byteLength / numBytes; - - if (numBytes === 1) { - for (ctr = 0; ctr < numElements; ctr += 1) { - index = data.getUint8(ctr); - rVal = reds[index]; - gVal = greens[index]; - bVal = blues[index]; - rgb.setUint8((ctr * 3), rVal); - rgb.setUint8((ctr * 3) + 1, gVal); - rgb.setUint8((ctr * 3) + 2, bVal); - } - } else if (numBytes === 2) { - for (ctr = 0; ctr < numElements; ctr += 1) { - index = data.getUint16(ctr * 2); - rVal = reds[index]; - gVal = greens[index]; - bVal = blues[index]; - rgb.setUint8((ctr * 3), rVal); - rgb.setUint8((ctr * 3) + 1, gVal); - rgb.setUint8((ctr * 3) + 2, bVal); - } + function Bk(a2, b2) { + a2 = +a2; + b2 = +b2; + var c2 = 0, d2 = 0; + p[t >> 3] = a2; + d2 = k[t >> 2] | 0; + c2 = k[t + 4 >> 2] | 0; + p[t >> 3] = b2; + c2 = k[t + 4 >> 2] & -2147483648 | c2 & 2147483647; + k[t >> 2] = d2; + k[t + 4 >> 2] = c2; + return + +p[t >> 3]; } - - data = rgb; - this.convertedPalette = true; - } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = data; -}; - - - -daikon.Image.prototype.decompressJPEG = function (jpg) { - if (this.isCompressedJPEGLossless()) { - var decoder = new jpeg.lossless.Decoder(); - return decoder.decode(jpg); - } else if (this.isCompressedJPEGBaseline()) { - var decoder = new JpegDecoder(); - decoder.parse(new Uint8Array(jpg)); - var width = decoder.width; - var height = decoder.height; - - var decoded; - if (this.getBitsAllocated() === 8) { - decoded = decoder.getData(width, height); - } else if (this.getBitsAllocated() === 16) { - decoded = decoder.getData16(width, height); + function Ck(a2, b2) { + a2 = +a2; + b2 = +b2; + return + +Bk(a2, b2); } - - return decoded; - } else if (this.isCompressedJPEG2000()) { - var decoder = new JpxImage(); - decoder.parse(new Uint8Array(jpg)); - return decoder.tiles[0].items; - } else if (this.isCompressedJPEGLS()) { - var decoder = new JpegLSDecoder(); - return decoder.decodeJPEGLS(new Uint8Array(jpg), this.getDataType() === daikon.Image.BYTE_TYPE_INTEGER); - } -}; - - - -daikon.Image.prototype.decompress = function () { - var jpegs, rle, decoder, decompressed, numFrames, frameSize, temp, ctr, width, height, numComponents, decoded; - - decompressed = null; - - if (!this.decompressed) { - this.decompressed = true; - - frameSize = this.getRows() * this.getCols() * parseInt(Math.ceil(this.getBitsAllocated() / 8)); - numFrames = this.getNumberOfFrames(); - - if (this.isCompressedJPEGLossless()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new jpeg.lossless.Decoder(); - temp = decoder.decode(jpegs[ctr]); - numComponents = decoder.numComp; - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); - } - - (new Uint8Array(decompressed.buffer)).set(new Uint8Array(temp.buffer), (ctr * frameSize * numComponents)); - temp = null; - } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedJPEGBaseline()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new JpegDecoder(); - decoder.parse(new Uint8Array(jpegs[ctr])); - width = decoder.width; - height = decoder.height; - numComponents = decoder.components.length; - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); - } - - if (this.getBitsAllocated() === 8) { - decoded = decoder.getData(width, height); - } else if (this.getBitsAllocated() === 16) { - decoded = decoder.getData16(width, height); + function Dk(a2, b2) { + a2 = +a2; + b2 = +b2; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + p[t >> 3] = a2; + c2 = k[t >> 2] | 0; + j2 = k[t + 4 >> 2] | 0; + p[t >> 3] = b2; + l2 = k[t >> 2] | 0; + m2 = k[t + 4 >> 2] | 0; + d2 = uw(c2 | 0, j2 | 0, 52) | 0; + d2 = d2 & 2047; + h2 = uw(l2 | 0, m2 | 0, 52) | 0; + h2 = h2 & 2047; + n2 = j2 & -2147483648; + g2 = ww(l2 | 0, m2 | 0, 1) | 0; + i3 = M; + a: + do + if (!((g2 | 0) == 0 & (i3 | 0) == 0) ? (f2 = m2 & 2147483647, !(f2 >>> 0 > 2146435072 | (f2 | 0) == 2146435072 & l2 >>> 0 > 0 | (d2 | 0) == 2047)) : 0) { + e2 = ww(c2 | 0, j2 | 0, 1) | 0; + f2 = M; + if (!(f2 >>> 0 > i3 >>> 0 | (f2 | 0) == (i3 | 0) & e2 >>> 0 > g2 >>> 0)) + return +((e2 | 0) == (g2 | 0) & (f2 | 0) == (i3 | 0) ? a2 * 0 : a2); + if (!d2) { + d2 = ww(c2 | 0, j2 | 0, 12) | 0; + e2 = M; + if ((e2 | 0) > -1 | (e2 | 0) == -1 & d2 >>> 0 > 4294967295) { + f2 = d2; + d2 = 0; + do { + d2 = d2 + -1 | 0; + f2 = ww(f2 | 0, e2 | 0, 1) | 0; + e2 = M; + } while ((e2 | 0) > -1 | (e2 | 0) == -1 & f2 >>> 0 > 4294967295); + } else + d2 = 0; + c2 = ww(c2 | 0, j2 | 0, 1 - d2 | 0) | 0; + e2 = M; + } else + e2 = j2 & 1048575 | 1048576; + if (!h2) { + f2 = ww(l2 | 0, m2 | 0, 12) | 0; + g2 = M; + if ((g2 | 0) > -1 | (g2 | 0) == -1 & f2 >>> 0 > 4294967295) { + h2 = 0; + do { + h2 = h2 + -1 | 0; + f2 = ww(f2 | 0, g2 | 0, 1) | 0; + g2 = M; + } while ((g2 | 0) > -1 | (g2 | 0) == -1 & f2 >>> 0 > 4294967295); + } else + h2 = 0; + l2 = ww(l2 | 0, m2 | 0, 1 - h2 | 0) | 0; + j2 = M; + } else + j2 = m2 & 1048575 | 1048576; + i3 = rw(c2 | 0, e2 | 0, l2 | 0, j2 | 0) | 0; + g2 = M; + f2 = (g2 | 0) > -1 | (g2 | 0) == -1 & i3 >>> 0 > 4294967295; + b: + do + if ((d2 | 0) > (h2 | 0)) { + while (1) { + if (f2) + if ((c2 | 0) == (l2 | 0) & (e2 | 0) == (j2 | 0)) + break; + else { + c2 = i3; + e2 = g2; + } + c2 = ww(c2 | 0, e2 | 0, 1) | 0; + e2 = M; + d2 = d2 + -1 | 0; + i3 = rw(c2 | 0, e2 | 0, l2 | 0, j2 | 0) | 0; + g2 = M; + f2 = (g2 | 0) > -1 | (g2 | 0) == -1 & i3 >>> 0 > 4294967295; + if ((d2 | 0) <= (h2 | 0)) + break b; + } + b2 = a2 * 0; + break a; + } + while (0); + if (f2) + if ((c2 | 0) == (l2 | 0) & (e2 | 0) == (j2 | 0)) { + b2 = a2 * 0; + break; + } else { + e2 = g2; + c2 = i3; + } + if (e2 >>> 0 < 1048576 | (e2 | 0) == 1048576 & c2 >>> 0 < 0) + do { + c2 = ww(c2 | 0, e2 | 0, 1) | 0; + e2 = M; + d2 = d2 + -1 | 0; + } while (e2 >>> 0 < 1048576 | (e2 | 0) == 1048576 & c2 >>> 0 < 0); + if ((d2 | 0) > 0) { + m2 = tw(c2 | 0, e2 | 0, 0, -1048576) | 0; + c2 = M; + d2 = ww(d2 | 0, 0, 52) | 0; + c2 = c2 | M; + d2 = m2 | d2; + } else { + d2 = uw(c2 | 0, e2 | 0, 1 - d2 | 0) | 0; + c2 = M; } - - daikon.Utils.fillBuffer(decoded, decompressed, (ctr * frameSize * numComponents), - parseInt(Math.ceil(this.getBitsAllocated() / 8))); - - decoded = null; + k[t >> 2] = d2; + k[t + 4 >> 2] = c2 | n2; + b2 = +p[t >> 3]; + } else + o2 = 3; + while (0); + if ((o2 | 0) == 3) { + b2 = a2 * b2; + b2 = b2 / b2; + } + return +b2; + } + function Ek(a2, b2) { + a2 = +a2; + b2 = +b2; + return + +Dk(a2, b2); + } + function Fk(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0; + p[t >> 3] = a2; + c2 = k[t >> 2] | 0; + d2 = k[t + 4 >> 2] | 0; + e2 = uw(c2 | 0, d2 | 0, 52) | 0; + e2 = e2 & 2047; + switch (e2 | 0) { + case 0: { + if (a2 != 0) { + a2 = +Fk(a2 * 18446744073709552e3, b2); + c2 = (k[b2 >> 2] | 0) + -64 | 0; + } else + c2 = 0; + k[b2 >> 2] = c2; + break; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedJPEG2000()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new JpxImage(); - decoder.parse(new Uint8Array(jpegs[ctr])); - width = decoder.width; - height = decoder.height; - decoded = decoder.tiles[0].items; - numComponents = decoder.componentsCount; - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); - } - - daikon.Utils.fillBuffer(decoded, decompressed, (ctr * frameSize * numComponents), - parseInt(Math.ceil(this.getBitsAllocated() / 8))); - - decoded = null; + case 2047: + break; + default: { + k[b2 >> 2] = e2 + -1022; + k[t >> 2] = c2; + k[t + 4 >> 2] = d2 & -2146435073 | 1071644672; + a2 = +p[t >> 3]; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedJPEGLS()) { - jpegs = this.getJpegs(); - - for (ctr = 0; ctr < jpegs.length; ctr+=1) { - decoder = new JpegLSDecoder(); - var decoded = decoder.decodeJPEGLS(new Uint8Array(jpegs[ctr]), this.getDataType() === daikon.Image.BYTE_TYPE_INTEGER); - width = decoded.columns; - height = decoded.rows; - decoded = decoded.pixelData; - numComponents = this.getNumberOfSamplesPerPixel(); - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); - } - - daikon.Utils.fillBuffer(decoded, decompressed, (ctr * frameSize * numComponents), - parseInt(Math.ceil(this.getBitsAllocated() / 8))); - - decoded = null; + } + return +a2; + } + function Gk(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + return + +Fk(a2, b2); + } + function Hk(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + var c2 = 0; + if ((b2 | 0) > 1023) { + a2 = a2 * 898846567431158e293; + c2 = b2 + -1023 | 0; + if ((c2 | 0) > 1023) { + c2 = b2 + -2046 | 0; + c2 = (c2 | 0) > 1023 ? 1023 : c2; + a2 = a2 * 898846567431158e293; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; - } else if (this.isCompressedRLE()) { - rle = this.getRLE(); - - for (ctr = 0; ctr < rle.length; ctr+=1) { - decoder = new daikon.RLE(); - temp = decoder.decode(rle[ctr], this.littleEndian, this.getRows() * this.getCols()); - numComponents = (decoder.numSegments === 3 ? 3 : 1); - - if (decompressed === null) { - decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); - } - - (new Uint8Array(decompressed.buffer)).set(new Uint8Array(temp.buffer), (ctr * frameSize * numComponents)); - temp = null; + } else if ((b2 | 0) < -1022) { + a2 = a2 * 22250738585072014e-324; + c2 = b2 + 1022 | 0; + if ((c2 | 0) < -1022) { + c2 = b2 + 2044 | 0; + c2 = (c2 | 0) < -1022 ? -1022 : c2; + a2 = a2 * 22250738585072014e-324; } - - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else + c2 = b2; + c2 = ww(c2 + 1023 | 0, 0, 52) | 0; + b2 = M; + k[t >> 2] = c2; + k[t + 4 >> 2] = b2; + return +(a2 * +p[t >> 3]); } - } -}; - - -/** - * Returns true if pixel data is found. - * @returns {boolean} - */ -daikon.Image.prototype.hasPixelData = function () { - return (this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])] !== undefined); -}; - - - -daikon.Image.prototype.clearPixelData = function () { - this.tags[daikon.Tag.createId(daikon.Tag.TAG_PIXEL_DATA[0], daikon.Tag.TAG_PIXEL_DATA[1])].value = null; -}; - - -/** - * Returns an orientation string (e.g., XYZ+--). - * @returns {string} - */ -daikon.Image.prototype.getOrientation = function () { - var orientation = null, - dirCos = daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0], daikon.Tag.TAG_IMAGE_ORIENTATION[1])), - ctr, - spacing, - rowSpacing, - swapZ, - bigRow = 0, bigCol = 0, - biggest = 0, orient = ''; - - if (!dirCos || (dirCos.length !== 6)) { - return null; - } - - spacing = this.getPixelSpacing(); - - if (!spacing) { - return null; - } - - rowSpacing = spacing[0]; - swapZ = true; - - for (ctr = 0; ctr < 3; ctr += 1) { - if (Math.abs(dirCos[ctr]) > biggest) { - biggest = Math.abs(dirCos[ctr]); - bigRow = ctr; + function Ik(a2, b2) { + a2 = +a2; + b2 = b2 | 0; + return + +Hk(a2, b2); } - } - - biggest = 0; - for (; ctr < 6; ctr += 1) { - if (Math.abs(dirCos[ctr]) > biggest) { - biggest = Math.abs(dirCos[ctr]); - bigCol = ctr; + function Jk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return Kk(0, a2, b2, (c2 | 0) != 0 ? c2 : 37344) | 0; } - } - - switch (bigRow) { - case 0: - orient += ('X'); - if (bigCol === 4) { - orient += ("YZ"); - } else { - orient += ("ZY"); - } - break; - case 1: - orient += ('Y'); - if (bigCol === 3) { - orient += ("XZ"); - } else { - orient += ("ZX"); - } - break; - case 2: - orient += ('Z'); - if (bigCol === 3) { - orient += ("XY"); - } else { - orient += ("YX"); - } - break; - default: - break; - } - - switch (bigRow) { - case 0: - if (dirCos[bigRow] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } - if (bigCol === 4) { - if (dirCos[bigCol] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } - } else { - if (dirCos[bigCol] > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + function Kk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; + j2 = r; + r = r + 16 | 0; + e2 = j2; + g2 = (d2 | 0) == 0 ? 37348 : d2; + d2 = k[g2 >> 2] | 0; + a: + do + if (!b2) + if (!d2) + d2 = 0; + else + h2 = 15; + else { + f2 = (a2 | 0) == 0 ? e2 : a2; + if (!c2) + d2 = -2; + else { + if (!d2) { + d2 = i2[b2 >> 0] | 0; + e2 = d2 & 255; + if (d2 << 24 >> 24 > -1) { + k[f2 >> 2] = e2; + d2 = d2 << 24 >> 24 != 0 & 1; + break; + } + d2 = e2 + -194 | 0; + if (d2 >>> 0 > 50) { + h2 = 15; + break; + } + d2 = k[37076 + (d2 << 2) >> 2] | 0; + e2 = c2 + -1 | 0; + if (e2) { + b2 = b2 + 1 | 0; + h2 = 9; + } + } else { + e2 = c2; + h2 = 9; + } + b: + do + if ((h2 | 0) == 9) { + a2 = i2[b2 >> 0] | 0; + l2 = (a2 & 255) >>> 3; + if ((l2 + -16 | l2 + (d2 >> 26)) >>> 0 > 7) { + h2 = 15; + break a; + } + while (1) { + b2 = b2 + 1 | 0; + d2 = (a2 & 255) + -128 | d2 << 6; + e2 = e2 + -1 | 0; + if ((d2 | 0) >= 0) + break; + if (!e2) + break b; + a2 = i2[b2 >> 0] | 0; + if ((a2 & -64) << 24 >> 24 != -128) { + h2 = 15; + break a; + } + } + k[g2 >> 2] = 0; + k[f2 >> 2] = d2; + d2 = c2 - e2 | 0; + break a; + } + while (0); + k[g2 >> 2] = d2; + d2 = -2; } - } - break; - case 1: - if (dirCos[bigRow] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } - if (bigCol === 3) { - if (dirCos[bigCol] > 0.0) { - orient += ('-'); - } else { - orient += ('+'); + } + while (0); + if ((h2 | 0) == 15) { + k[g2 >> 2] = 0; + d2 = mk() | 0; + k[d2 >> 2] = 84; + d2 = -1; + } + r = j2; + return d2 | 0; + } + function Lk(a2) { + a2 = a2 | 0; + if (!a2) + a2 = 1; + else + a2 = (k[a2 >> 2] | 0) == 0; + return a2 & 1 | 0; + } + function Mk(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; + n2 = r; + r = r + 1040 | 0; + j2 = n2 + 8 | 0; + m2 = n2; + i3 = k[b2 >> 2] | 0; + k[m2 >> 2] = i3; + l2 = (a2 | 0) != 0; + d2 = l2 ? d2 : 256; + a2 = l2 ? a2 : j2; + f2 = i3; + a: + do + if ((d2 | 0) != 0 & (i3 | 0) != 0) { + h2 = d2; + i3 = f2; + d2 = 0; + while (1) { + f2 = c2 >>> 2; + g2 = f2 >>> 0 >= h2 >>> 0; + if (!(c2 >>> 0 > 131 | g2)) { + f2 = i3; + break a; + } + f2 = g2 ? h2 : f2; + c2 = c2 - f2 | 0; + f2 = Nk(a2, m2, f2, e2) | 0; + if ((f2 | 0) == -1) { + d2 = c2; + break; + } + o2 = (a2 | 0) == (j2 | 0); + i3 = o2 ? 0 : f2; + g2 = h2 - i3 | 0; + a2 = o2 ? a2 : a2 + (f2 << 2) | 0; + d2 = f2 + d2 | 0; + f2 = k[m2 >> 2] | 0; + if ((h2 | 0) != (i3 | 0) & (f2 | 0) != 0) { + h2 = g2; + i3 = f2; + } else { + h2 = g2; + break a; + } } - } else { - if (dirCos[bigCol] > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + c2 = d2; + h2 = 0; + f2 = k[m2 >> 2] | 0; + d2 = -1; + } else { + h2 = d2; + d2 = 0; + } + while (0); + b: + do + if ((f2 | 0) != 0 ? (h2 | 0) != 0 & (c2 | 0) != 0 : 0) { + g2 = f2; + f2 = a2; + while (1) { + a2 = Kk(f2, g2, c2, e2) | 0; + if ((a2 + 2 | 0) >>> 0 < 3) + break; + g2 = (k[m2 >> 2] | 0) + a2 | 0; + k[m2 >> 2] = g2; + h2 = h2 + -1 | 0; + d2 = d2 + 1 | 0; + if (!((h2 | 0) != 0 & (c2 | 0) != (a2 | 0))) + break b; + else { + c2 = c2 - a2 | 0; + f2 = f2 + 4 | 0; + } } - } - break; - case 2: - if (dirCos[bigRow] > 0.0) { - orient += ('+'); - } else { - orient += ('-'); - } - //Has to be X or Y so opposite senses - if (dirCos[bigCol] > 0.0) { - orient += ('-'); + switch (a2 | 0) { + case -1: { + d2 = -1; + break b; + } + case 0: { + k[m2 >> 2] = 0; + break b; + } + default: { + k[e2 >> 2] = 0; + break b; + } + } + } + while (0); + if (l2) + k[b2 >> 2] = k[m2 >> 2]; + r = n2; + return d2 | 0; + } + function Nk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; + e2 = k[b2 >> 2] | 0; + if ((d2 | 0) != 0 ? (f2 = k[d2 >> 2] | 0, (f2 | 0) != 0) : 0) + if (!a2) { + d2 = c2; + g2 = e2; + m2 = 16; } else { - orient += ('+'); + k[d2 >> 2] = 0; + j2 = a2; + d2 = c2; + h2 = f2; + m2 = 37; } - break; - default: - break; - } - - if (rowSpacing === 0.0) { - orient += ('+'); - orientation = orient; - } else { - if (swapZ) { - switch (orient.charAt(2)) { - case 'X': - if (rowSpacing > 0.0) { - orient += ('-'); - } else { - orient += ('+'); - } - break; - case 'Y': - case 'Z': - if (rowSpacing > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + else if (!a2) { + d2 = c2; + m2 = 7; + } else { + f2 = a2; + d2 = c2; + m2 = 6; + } + a: + while (1) + if ((m2 | 0) == 6) { + if (!d2) { + m2 = 26; + break; + } else + a2 = f2; + while (1) { + f2 = i2[e2 >> 0] | 0; + do + if (((f2 & 255) + -1 | 0) >>> 0 < 127 ? d2 >>> 0 > 4 & (e2 & 3 | 0) == 0 : 0) { + g2 = e2; + while (1) { + e2 = k[g2 >> 2] | 0; + if ((e2 + -16843009 | e2) & -2139062144) { + f2 = e2; + e2 = g2; + m2 = 32; + break; + } + k[a2 >> 2] = e2 & 255; + k[a2 + 4 >> 2] = l[g2 + 1 >> 0]; + k[a2 + 8 >> 2] = l[g2 + 2 >> 0]; + e2 = g2 + 4 | 0; + f2 = a2 + 16 | 0; + k[a2 + 12 >> 2] = l[g2 + 3 >> 0]; + d2 = d2 + -4 | 0; + if (d2 >>> 0 > 4) { + a2 = f2; + g2 = e2; + } else { + m2 = 31; + break; + } + } + if ((m2 | 0) == 31) { + a2 = f2; + f2 = i2[e2 >> 0] | 0; + break; + } else if ((m2 | 0) == 32) { + f2 = f2 & 255; + break; + } } + while (0); + f2 = f2 & 255; + if ((f2 + -1 | 0) >>> 0 >= 127) break; - default: + e2 = e2 + 1 | 0; + k[a2 >> 2] = f2; + d2 = d2 + -1 | 0; + if (!d2) { + m2 = 26; + break a; + } else + a2 = a2 + 4 | 0; + } + f2 = f2 + -194 | 0; + if (f2 >>> 0 > 50) { + m2 = 48; + break; + } + j2 = a2; + h2 = k[37076 + (f2 << 2) >> 2] | 0; + e2 = e2 + 1 | 0; + m2 = 37; + continue; + } else if ((m2 | 0) == 7) { + f2 = i2[e2 >> 0] | 0; + if (((f2 & 255) + -1 | 0) >>> 0 < 127 ? (e2 & 3 | 0) == 0 : 0) { + f2 = k[e2 >> 2] | 0; + if (!((f2 + -16843009 | f2) & -2139062144)) + do { + e2 = e2 + 4 | 0; + d2 = d2 + -4 | 0; + f2 = k[e2 >> 2] | 0; + } while (((f2 + -16843009 | f2) & -2139062144 | 0) == 0); + f2 = f2 & 255; + } + f2 = f2 & 255; + if ((f2 + -1 | 0) >>> 0 < 127) { + d2 = d2 + -1 | 0; + e2 = e2 + 1 | 0; + m2 = 7; + continue; + } + f2 = f2 + -194 | 0; + if (f2 >>> 0 > 50) { + m2 = 48; + break; + } + f2 = k[37076 + (f2 << 2) >> 2] | 0; + g2 = e2 + 1 | 0; + m2 = 16; + continue; + } else if ((m2 | 0) == 16) { + m2 = (l[g2 >> 0] | 0) >>> 3; + if ((m2 + -16 | m2 + (f2 >> 26)) >>> 0 > 7) { + m2 = 17; + break; + } + e2 = g2 + 1 | 0; + if (f2 & 33554432) { + if ((i2[e2 >> 0] & -64) << 24 >> 24 != -128) { + m2 = 20; break; - } - } else { - switch (orient.charAt(2)) { - case 'X': - if (rowSpacing > 0.0) { - orient += ('+'); - } else { - orient += ('-'); + } + e2 = g2 + 2 | 0; + if (f2 & 524288) { + if ((i2[e2 >> 0] & -64) << 24 >> 24 != -128) { + m2 = 23; + break; } + e2 = g2 + 3 | 0; + } + } + d2 = d2 + -1 | 0; + m2 = 7; + continue; + } else if ((m2 | 0) == 37) { + f2 = l[e2 >> 0] | 0; + m2 = f2 >>> 3; + if ((m2 + -16 | m2 + (h2 >> 26)) >>> 0 > 7) { + m2 = 38; + break; + } + g2 = e2 + 1 | 0; + a2 = f2 + -128 | h2 << 6; + if ((a2 | 0) < 0) { + f2 = l[g2 >> 0] | 0; + if ((f2 & 192 | 0) != 128) { + m2 = 41; break; - case 'Y': - case 'Z': - if (rowSpacing > 0.0) { - orient += ('-'); - } else { - orient += ('+'); + } + g2 = e2 + 2 | 0; + a2 = f2 + -128 | a2 << 6; + if ((a2 | 0) < 0) { + f2 = l[g2 >> 0] | 0; + if ((f2 & 192 | 0) != 128) { + m2 = 44; + break; } - break; - default: - break; + a2 = f2 + -128 | a2 << 6; + e2 = e2 + 3 | 0; + } else + e2 = g2; + } else + e2 = g2; + k[j2 >> 2] = a2; + f2 = j2 + 4 | 0; + d2 = d2 + -1 | 0; + m2 = 6; + continue; + } + if ((m2 | 0) == 17) { + e2 = g2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 20) { + e2 = g2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 23) { + e2 = g2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 26) + k[b2 >> 2] = e2; + else if ((m2 | 0) == 38) { + a2 = j2; + f2 = h2; + e2 = e2 + -1 | 0; + m2 = 47; + } else if ((m2 | 0) == 41) { + d2 = j2; + c2 = e2 + -1 | 0; + m2 = 52; + } else if ((m2 | 0) == 44) { + d2 = j2; + c2 = e2 + -1 | 0; + m2 = 52; + } + if ((m2 | 0) == 47) + if (!f2) + m2 = 48; + else { + d2 = a2; + c2 = e2; + m2 = 52; } - } - - orientation = orient; - } - - return orientation; -}; - - -/** - * Returns true if this image is "mosaic". - * @returns {boolean} - */ -daikon.Image.prototype.isMosaic = function () { - var imageType, labeledAsMosaic = false, canReadAsMosaic, ctr, matSize; - - imageType = this.getImageType(); - - if (imageType !== null) { - for (ctr = 0; ctr < imageType.length; ctr += 1) { - if (imageType[ctr].toUpperCase().indexOf("MOSAIC") !== -1) { - labeledAsMosaic = true; - break; + if ((m2 | 0) == 48) + if (!(i2[e2 >> 0] | 0)) { + if (a2) { + k[a2 >> 2] = 0; + k[b2 >> 2] = 0; + } + c2 = c2 - d2 | 0; + } else { + d2 = a2; + c2 = e2; + m2 = 52; } + if ((m2 | 0) == 52) { + m2 = mk() | 0; + k[m2 >> 2] = 84; + if (!d2) + c2 = -1; + else { + k[b2 >> 2] = c2; + c2 = -1; + } + } + return c2 | 0; } - } - - matSize = this.getAcquisitionMatrix(); - canReadAsMosaic = (matSize[0] > 0) && ((matSize[0] < this.getRows()) || (matSize[1] < this.getCols())); - return labeledAsMosaic && canReadAsMosaic; -}; - - -/** - * Returns true if this image uses palette colors. - * @returns {boolean} - */ -daikon.Image.prototype.isPalette = function () { - var value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); - - if (value !== null) { - if (value.toLowerCase().indexOf("palette") !== -1) { - return true; - } - } - - return false; -}; - - - -daikon.Image.prototype.getMosaicCols = function() { - return this.getCols() / this.getAcquisitionMatrix()[1]; -}; - - - -daikon.Image.prototype.getMosaicRows = function() { - return this.getRows() / this.getAcquisitionMatrix()[0]; -}; - - - -daikon.Image.prototype.isElscint = function() { - var tag = this.getTag(daikon.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon.Tag.TAG_DATA_SCALE_ELSCINT[1]); - return (tag !== undefined); -}; - - -/** - * Returns true if this image stores compressed data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressed = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { - return true; - } else if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { - return true; - } - } - - return false; -}; - - -/** - * Returns true if this image stores JPEG data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEG = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { - return true; - } - } - - return false; -}; - - -/** - * Returns true of this image stores lossless JPEG data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEGLossless = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1) !== -1)) { - return true; - } - } - - return false; -}; - - -/** - * Returns true if this image stores baseline JPEG data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEGBaseline = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT) !== -1)) { - return true; - } - } - - return false; -}; - - -/** - * Returns true if this image stores JPEG2000 data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEG2000 = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS) !== -1)) { - return true; + function Ok(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + g2 = r; + r = r + 16 | 0; + d2 = g2; + a: + do + if (!b2) + d2 = 0; + else { + do + if (c2) { + f2 = (a2 | 0) == 0 ? d2 : a2; + d2 = i2[b2 >> 0] | 0; + a2 = d2 & 255; + if (d2 << 24 >> 24 > -1) { + k[f2 >> 2] = a2; + d2 = d2 << 24 >> 24 != 0 & 1; + break a; + } + d2 = a2 + -194 | 0; + if (d2 >>> 0 <= 50) { + a2 = b2 + 1 | 0; + e2 = k[37076 + (d2 << 2) >> 2] | 0; + if (c2 >>> 0 < 4 ? (e2 & -2147483648 >>> ((c2 * 6 | 0) + -6 | 0) | 0) != 0 : 0) + break; + d2 = l[a2 >> 0] | 0; + c2 = d2 >>> 3; + if ((c2 + -16 | c2 + (e2 >> 26)) >>> 0 <= 7) { + d2 = d2 + -128 | e2 << 6; + if ((d2 | 0) >= 0) { + k[f2 >> 2] = d2; + d2 = 2; + break a; + } + a2 = l[b2 + 2 >> 0] | 0; + if ((a2 & 192 | 0) == 128) { + a2 = a2 + -128 | d2 << 6; + if ((a2 | 0) >= 0) { + k[f2 >> 2] = a2; + d2 = 3; + break a; + } + d2 = l[b2 + 3 >> 0] | 0; + if ((d2 & 192 | 0) == 128) { + k[f2 >> 2] = d2 + -128 | a2 << 6; + d2 = 4; + break a; + } + } + } + } + } + while (0); + d2 = mk() | 0; + k[d2 >> 2] = 84; + d2 = -1; + } + while (0); + r = g2; + return d2 | 0; } - } - - return false; -}; - - -/** - * Returns true if this image stores JPEG-LS data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedJPEGLS = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if ((transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS) !== -1) || - (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS) !== -1)) { - return true; + function Pk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + do + if (a2) { + if (b2 >>> 0 < 128) { + i2[a2 >> 0] = b2; + a2 = 1; + break; + } + if (b2 >>> 0 < 2048) { + i2[a2 >> 0] = b2 >>> 6 | 192; + i2[a2 + 1 >> 0] = b2 & 63 | 128; + a2 = 2; + break; + } + if (b2 >>> 0 < 55296 | (b2 & -8192 | 0) == 57344) { + i2[a2 >> 0] = b2 >>> 12 | 224; + i2[a2 + 1 >> 0] = b2 >>> 6 & 63 | 128; + i2[a2 + 2 >> 0] = b2 & 63 | 128; + a2 = 3; + break; + } + if ((b2 + -65536 | 0) >>> 0 < 1048576) { + i2[a2 >> 0] = b2 >>> 18 | 240; + i2[a2 + 1 >> 0] = b2 >>> 12 & 63 | 128; + i2[a2 + 2 >> 0] = b2 >>> 6 & 63 | 128; + i2[a2 + 3 >> 0] = b2 & 63 | 128; + a2 = 4; + break; + } else { + a2 = mk() | 0; + k[a2 >> 2] = 84; + a2 = -1; + break; + } + } else + a2 = 1; + while (0); + return a2 | 0; } - } - - return false; -}; - - -/** - * Returns true if this image stores RLE data. - * @returns {boolean} - */ -daikon.Image.prototype.isCompressedRLE = function() { - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - var transferSyntax = this.getTransferSyntax(); - if (transferSyntax) { - if (transferSyntax.indexOf(daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { - return true; + function Qk(a2, b2, c2, d2, e2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + e2 = e2 | 0; + var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; + l2 = r; + r = r + 272 | 0; + h2 = l2 + 8 | 0; + j2 = l2; + g2 = k[b2 >> 2] | 0; + k[j2 >> 2] = g2; + i3 = (a2 | 0) != 0; + e2 = i3 ? d2 : 256; + d2 = i3 ? a2 : h2; + a2 = g2; + a: + do + if ((e2 | 0) != 0 & (g2 | 0) != 0) { + g2 = e2; + f2 = a2; + e2 = 0; + while (1) { + a2 = c2 >>> 0 >= g2 >>> 0; + if (!(a2 | c2 >>> 0 > 32)) { + a2 = f2; + break a; + } + a2 = a2 ? g2 : c2; + c2 = c2 - a2 | 0; + a2 = Rk(d2, j2, a2, 0) | 0; + if ((a2 | 0) == -1) { + e2 = c2; + break; + } + n2 = (d2 | 0) == (h2 | 0); + m2 = n2 ? 0 : a2; + f2 = g2 - m2 | 0; + d2 = n2 ? d2 : d2 + a2 | 0; + e2 = a2 + e2 | 0; + a2 = k[j2 >> 2] | 0; + if ((g2 | 0) != (m2 | 0) & (a2 | 0) != 0) { + g2 = f2; + f2 = a2; + } else { + g2 = f2; + break a; + } + } + c2 = e2; + g2 = 0; + a2 = k[j2 >> 2] | 0; + e2 = -1; + } else { + g2 = e2; + e2 = 0; + } + while (0); + b: + do + if ((a2 | 0) != 0 ? (g2 | 0) != 0 & (c2 | 0) != 0 : 0) { + f2 = a2; + a2 = d2; + while (1) { + d2 = Pk(a2, k[f2 >> 2] | 0, 0) | 0; + if ((d2 + 1 | 0) >>> 0 < 2) + break; + f2 = (k[j2 >> 2] | 0) + 4 | 0; + k[j2 >> 2] = f2; + c2 = c2 + -1 | 0; + e2 = e2 + 1 | 0; + if (!((g2 | 0) != (d2 | 0) & (c2 | 0) != 0)) + break b; + else { + g2 = g2 - d2 | 0; + a2 = a2 + d2 | 0; + } + } + if (!d2) + k[j2 >> 2] = 0; + else + e2 = -1; + } + while (0); + if (i3) + k[b2 >> 2] = k[j2 >> 2]; + r = l2; + return e2 | 0; } - } - - return false; -}; - - -/** - * Returns the number of frames. - * @returns {number} - */ -daikon.Image.prototype.getNumberOfFrames = function () { - var value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_NUMBER_OF_FRAMES[0], daikon.Tag.TAG_NUMBER_OF_FRAMES[1]), 0); - - if (value !== null) { - return value; - } - - return 1; -}; - - -/** - * Returns the number of samples per pixel. - * @returns {number} - */ -daikon.Image.prototype.getNumberOfSamplesPerPixel = function () { - var value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SAMPLES_PER_PIXEL[0], daikon.Tag.TAG_SAMPLES_PER_PIXEL[1]), 0); - - if (value !== null) { - return value; - } - - return 1; -}; - - - -daikon.Image.prototype.getNumberOfImplicitFrames = function () { - var pixelData, length, size; - - if (this.isCompressed()) { - return 1; - } - - pixelData = this.getPixelData(); - length = pixelData.offsetEnd - pixelData.offsetValue; - size = this.getCols() * this.getRows() * (parseInt(this.getBitsAllocated() / 8)); - - return parseInt(length / size); -}; - - -/** - * Returns the pixel representation. - * @returns {number} - */ -daikon.Image.prototype.getPixelRepresentation = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PIXEL_REPRESENTATION[0], daikon.Tag.TAG_PIXEL_REPRESENTATION[1]), 0); -}; - - -/** - * Returns the photometric interpretation. - * @returns {string} - */ -daikon.Image.prototype.getPhotometricInterpretation = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); -}; - - -/** - * Returns the patient name. - * @returns {string} - */ -daikon.Image.prototype.getPatientName = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PATIENT_NAME[0], daikon.Tag.TAG_PATIENT_NAME[1]), 0); -}; - - -/** - * Returns the patient ID. - * @returns {string} - */ -daikon.Image.prototype.getPatientID = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PATIENT_ID[0], daikon.Tag.TAG_PATIENT_ID[1]), 0); -}; - - -/** - * Returns the study time. - * @returns {string} - */ -daikon.Image.prototype.getStudyTime = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_STUDY_TIME[0], daikon.Tag.TAG_STUDY_TIME[1]), 0); -}; - - -/** - * Returns the transfer syntax. - * @returns {string} - */ -daikon.Image.prototype.getTransferSyntax = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_TRANSFER_SYNTAX[0], daikon.Tag.TAG_TRANSFER_SYNTAX[1]), 0); -}; - - -/** - * Returns the study date. - * @returns {string} - */ -daikon.Image.prototype.getStudyDate = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_STUDY_DATE[0], daikon.Tag.TAG_STUDY_DATE[1]), 0); -}; - - -/** - * Returns the planar configuration. - * @returns {number} - */ -daikon.Image.prototype.getPlanarConfig = function () { - return daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_PLANAR_CONFIG[0], daikon.Tag.TAG_PLANAR_CONFIG[1]), 0); -}; - - -/** - * Returns all descriptive info for this image. - * @returns {string} - */ -daikon.Image.prototype.getImageDescription = function () { - var value, string = ""; - - value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_STUDY_DES[0], daikon.Tag.TAG_STUDY_DES[1]), 0); - if (value !== null) { - string += (" " + value); - } - - value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_SERIES_DESCRIPTION[0], daikon.Tag.TAG_SERIES_DESCRIPTION[1]), 0); - if (value !== null) { - string += (" " + value); - } - - value = daikon.Image.getSingleValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_COMMENTS[0], daikon.Tag.TAG_IMAGE_COMMENTS[1]), 0); - if (value !== null) { - string += (" " + value); - } - - return string.trim(); -}; - - -/** - * Returns the datatype (e.g., daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED). - * @returns {number} - */ -daikon.Image.prototype.getDataType = function () { - var interp, dataType; - - dataType = this.getPixelRepresentation(); - - if (dataType === null) { - return daikon.Image.BYTE_TYPE_UNKNOWN; - } - - interp = this.getPhotometricInterpretation(); - if (interp !== null) { - if ((interp.trim().indexOf('RGB') !== -1) || (interp.trim().indexOf('YBR') !== -1) || - (interp.trim().toLowerCase().indexOf('palette') !== -1)) { - return daikon.Image.BYTE_TYPE_RGB; + function Rk(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + g2 = h2; + a: + do + if (!a2) { + a2 = k[b2 >> 2] | 0; + d2 = k[a2 >> 2] | 0; + if (!d2) + c2 = 0; + else { + c2 = 0; + do { + if (d2 >>> 0 > 127) { + d2 = Pk(g2, d2, 0) | 0; + if ((d2 | 0) == -1) { + c2 = -1; + break a; + } + } else + d2 = 1; + c2 = d2 + c2 | 0; + a2 = a2 + 4 | 0; + d2 = k[a2 >> 2] | 0; + } while ((d2 | 0) != 0); + } + } else { + b: + do + if (c2 >>> 0 > 3) { + d2 = c2; + e2 = k[b2 >> 2] | 0; + while (1) { + f2 = k[e2 >> 2] | 0; + if ((f2 + -1 | 0) >>> 0 > 126) { + if (!f2) + break; + f2 = Pk(a2, f2, 0) | 0; + if ((f2 | 0) == -1) { + c2 = -1; + break a; + } + a2 = a2 + f2 | 0; + d2 = d2 - f2 | 0; + } else { + i2[a2 >> 0] = f2; + a2 = a2 + 1 | 0; + d2 = d2 + -1 | 0; + e2 = k[b2 >> 2] | 0; + } + e2 = e2 + 4 | 0; + k[b2 >> 2] = e2; + if (d2 >>> 0 <= 3) + break b; + } + i2[a2 >> 0] = 0; + k[b2 >> 2] = 0; + c2 = c2 - d2 | 0; + break a; + } else + d2 = c2; + while (0); + if (d2) { + e2 = k[b2 >> 2] | 0; + while (1) { + f2 = k[e2 >> 2] | 0; + if ((f2 + -1 | 0) >>> 0 > 126) { + if (!f2) { + e2 = 19; + break; + } + f2 = Pk(g2, f2, 0) | 0; + if ((f2 | 0) == -1) { + c2 = -1; + break a; + } + if (d2 >>> 0 < f2 >>> 0) { + e2 = 22; + break; + } + Pk(a2, k[e2 >> 2] | 0, 0) | 0; + a2 = a2 + f2 | 0; + d2 = d2 - f2 | 0; + } else { + i2[a2 >> 0] = f2; + a2 = a2 + 1 | 0; + d2 = d2 + -1 | 0; + e2 = k[b2 >> 2] | 0; + } + e2 = e2 + 4 | 0; + k[b2 >> 2] = e2; + if (!d2) + break a; + } + if ((e2 | 0) == 19) { + i2[a2 >> 0] = 0; + k[b2 >> 2] = 0; + c2 = c2 - d2 | 0; + break; + } else if ((e2 | 0) == 22) { + c2 = c2 - d2 | 0; + break; + } + } + } + while (0); + r = h2; + return c2 | 0; } - } - - if (dataType === 0) { - return daikon.Image.BYTE_TYPE_INTEGER_UNSIGNED; - } else if (dataType === 1) { - return daikon.Image.BYTE_TYPE_INTEGER; - } else { - return daikon.Image.BYTE_TYPE_UNKNOWN; - } -}; - - - -// originally from: http://public.kitware.com/pipermail/insight-users/2005-March/012246.html -daikon.Image.prototype.getAcquiredSliceDirection = function () { - var dirCos, rowAxis, colAxis, label; - - dirCos = daikon.Image.getValueSafely(this.getTag(daikon.Tag.TAG_IMAGE_ORIENTATION[0], daikon.Tag.TAG_IMAGE_ORIENTATION[1])); - - if (!dirCos || (dirCos.length !== 6)) { - return daikon.Image.SLICE_DIRECTION_UNKNOWN; - } - - rowAxis = daikon.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[0], dirCos[1], dirCos[2]); - colAxis = daikon.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[3], dirCos[4], dirCos[5]); - - if ((rowAxis !== null) && (colAxis !== null)) { - if (((rowAxis === "R") || (rowAxis === "L")) && ((colAxis === "A") || (colAxis === "P"))) { - label = daikon.Image.SLICE_DIRECTION_AXIAL; - } else if (((colAxis === "R") || (colAxis === "L")) && ((rowAxis === "A") || (rowAxis === "P"))) { - label = daikon.Image.SLICE_DIRECTION_AXIAL; - } else if (((rowAxis === "R") || (rowAxis === "L")) && ((colAxis === "H") || (colAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_CORONAL; - } else if (((colAxis === "R") || (colAxis === "L")) && ((rowAxis === "H") || (rowAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_CORONAL; - } else if (((rowAxis === "A") || (rowAxis === "P")) && ((colAxis === "H") || (colAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_SAGITTAL; - } else if (((colAxis === "A") || (colAxis === "P")) && ((rowAxis === "H") || (rowAxis === "F"))) { - label = daikon.Image.SLICE_DIRECTION_SAGITTAL; + function Sk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + if (!a2) + a2 = 0; + else + a2 = Pk(a2, b2, 0) | 0; + return a2 | 0; } - } else { - label = daikon.Image.SLICE_DIRECTION_OBLIQUE; - } - - return label; -}; - - - -// returns an array of tags -/** - * Returns encapsulated data tags. - * @returns {daikon.Tag[]} - */ -daikon.Image.prototype.getEncapsulatedData = function () { - var buffer, parser; - - daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); - - buffer = this.getPixelData().value.buffer; - parser = new daikon.Parser(); - return parser.parseEncapsulated(new DataView(buffer)); -}; - - - -daikon.Image.prototype.getJpegs = function () { - var encapTags, numTags, ctr, currentJpeg, data = [], dataConcat = []; - - encapTags = this.getEncapsulatedData(); - - // organize data as an array of an array of JPEG parts - if (encapTags) { - numTags = encapTags.length; - - for (ctr = 0; ctr < numTags; ctr += 1) { - if (daikon.CompressionUtils.isHeaderJPEG(encapTags[ctr].value) || - daikon.CompressionUtils.isHeaderJPEG2000(encapTags[ctr].value)) { - currentJpeg = []; - currentJpeg.push(encapTags[ctr].value.buffer); - data.push(currentJpeg); - } else if (currentJpeg && encapTags[ctr].value) { - currentJpeg.push(encapTags[ctr].value.buffer); + function Tk(a2) { + a2 = a2 | 0; + return 0; + } + function Uk(a2) { + a2 = a2 | 0; + return; + } + function Vk(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; + j2 = r; + r = r + 16 | 0; + h2 = j2; + g2 = b2 & 255; + i2[h2 >> 0] = g2; + d2 = a2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + if (!(bl(a2) | 0)) { + e2 = k[d2 >> 2] | 0; + f2 = 4; + } else + c2 = -1; + else + f2 = 4; + do + if ((f2 | 0) == 4) { + d2 = a2 + 20 | 0; + f2 = k[d2 >> 2] | 0; + if (f2 >>> 0 < e2 >>> 0 ? (c2 = b2 & 255, (c2 | 0) != (i2[a2 + 75 >> 0] | 0)) : 0) { + k[d2 >> 2] = f2 + 1; + i2[f2 >> 0] = g2; + break; + } + if ((Qb[k[a2 + 36 >> 2] & 63](a2, h2, 1) | 0) == 1) + c2 = l[h2 >> 0] | 0; + else + c2 = -1; } + while (0); + r = j2; + return c2 | 0; } - } - - // concat into an array of full JPEGs - for (ctr = 0; ctr < data.length; ctr += 1) { - if (data[ctr].length > 1) { - dataConcat[ctr] = daikon.Utils.concatArrayBuffers2(data[ctr]); - } else { - dataConcat[ctr] = data[ctr][0]; + function Wk(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = r; + r = r + 16 | 0; + c2 = b2; + k[c2 >> 2] = k[a2 + 60 >> 2]; + a2 = sk(wb(6, c2 | 0) | 0) | 0; + r = b2; + return a2 | 0; } - - data[ctr] = null; - } - - return dataConcat; -}; - - - -daikon.Image.prototype.getRLE = function () { - var encapTags, numTags, ctr, data = []; - - encapTags = this.getEncapsulatedData(); - - // organize data as an array of an array of JPEG parts - if (encapTags) { - numTags = encapTags.length; - - // the first sublist item contains offsets, need offsets? - for (ctr = 1; ctr < numTags; ctr += 1) { - if (encapTags[ctr].value) { - data.push(encapTags[ctr].value.buffer); + function Xk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + l2 = r; + r = r + 48 | 0; + f2 = l2 + 16 | 0; + e2 = l2; + d2 = l2 + 32 | 0; + k[d2 >> 2] = b2; + g2 = d2 + 4 | 0; + j2 = a2 + 48 | 0; + m2 = k[j2 >> 2] | 0; + k[g2 >> 2] = c2 - ((m2 | 0) != 0 & 1); + h2 = a2 + 44 | 0; + k[d2 + 8 >> 2] = k[h2 >> 2]; + k[d2 + 12 >> 2] = m2; + if (!(k[9258] | 0)) { + k[f2 >> 2] = k[a2 + 60 >> 2]; + k[f2 + 4 >> 2] = d2; + k[f2 + 8 >> 2] = 2; + d2 = sk(Eb(145, f2 | 0) | 0) | 0; + } else { + xb(185, a2 | 0); + k[e2 >> 2] = k[a2 + 60 >> 2]; + k[e2 + 4 >> 2] = d2; + k[e2 + 8 >> 2] = 2; + d2 = sk(Eb(145, e2 | 0) | 0) | 0; + pb(0); + } + if ((d2 | 0) >= 1) { + g2 = k[g2 >> 2] | 0; + if (d2 >>> 0 > g2 >>> 0) { + f2 = k[h2 >> 2] | 0; + e2 = a2 + 4 | 0; + k[e2 >> 2] = f2; + k[a2 + 8 >> 2] = f2 + (d2 - g2); + if (!(k[j2 >> 2] | 0)) + d2 = c2; + else { + k[e2 >> 2] = f2 + 1; + i2[b2 + (c2 + -1) >> 0] = i2[f2 >> 0] | 0; + d2 = c2; + } } + } else { + k[a2 >> 2] = k[a2 >> 2] | d2 & 48 ^ 16; + k[a2 + 8 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + } + r = l2; + return d2 | 0; } - } - - return data; -}; - - -/** - * Returns a string of interpreted private data. - * @returns {string} - */ -daikon.Image.prototype.getAllInterpretedPrivateData = function() { - var ctr, key, tag, str = ""; - - var sorted_keys = Object.keys(this.tags).sort(); - - for (ctr = 0; ctr < sorted_keys.length; ctr+=1) { - key = sorted_keys[ctr]; - if (this.tags.hasOwnProperty(key)) { - tag = this.tags[key]; - if (tag.hasInterpretedPrivateData()) { - str += tag.value; + function Yk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0; + e2 = r; + r = r + 32 | 0; + f2 = e2; + d2 = e2 + 20 | 0; + k[f2 >> 2] = k[a2 + 60 >> 2]; + k[f2 + 4 >> 2] = 0; + k[f2 + 8 >> 2] = b2; + k[f2 + 12 >> 2] = d2; + k[f2 + 16 >> 2] = c2; + if ((sk(Db(140, f2 | 0) | 0) | 0) < 0) { + k[d2 >> 2] = -1; + a2 = -1; + } else + a2 = k[d2 >> 2] | 0; + r = e2; + return a2 | 0; + } + function Zk(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; + p2 = r; + r = r + 48 | 0; + m2 = p2 + 16 | 0; + l2 = p2; + d2 = p2 + 32 | 0; + n2 = a2 + 28 | 0; + e2 = k[n2 >> 2] | 0; + k[d2 >> 2] = e2; + o2 = a2 + 20 | 0; + e2 = (k[o2 >> 2] | 0) - e2 | 0; + k[d2 + 4 >> 2] = e2; + k[d2 + 8 >> 2] = b2; + k[d2 + 12 >> 2] = c2; + i3 = a2 + 60 | 0; + j2 = a2 + 44 | 0; + b2 = 2; + e2 = e2 + c2 | 0; + while (1) { + if (!(k[9258] | 0)) { + k[m2 >> 2] = k[i3 >> 2]; + k[m2 + 4 >> 2] = d2; + k[m2 + 8 >> 2] = b2; + g2 = sk(Fb(146, m2 | 0) | 0) | 0; + } else { + xb(186, a2 | 0); + k[l2 >> 2] = k[i3 >> 2]; + k[l2 + 4 >> 2] = d2; + k[l2 + 8 >> 2] = b2; + g2 = sk(Fb(146, l2 | 0) | 0) | 0; + pb(0); } + if ((e2 | 0) == (g2 | 0)) { + e2 = 6; + break; + } + if ((g2 | 0) < 0) { + e2 = 8; + break; + } + e2 = e2 - g2 | 0; + f2 = k[d2 + 4 >> 2] | 0; + if (g2 >>> 0 <= f2 >>> 0) + if ((b2 | 0) == 2) { + k[n2 >> 2] = (k[n2 >> 2] | 0) + g2; + h2 = f2; + b2 = 2; + } else + h2 = f2; + else { + h2 = k[j2 >> 2] | 0; + k[n2 >> 2] = h2; + k[o2 >> 2] = h2; + h2 = k[d2 + 12 >> 2] | 0; + g2 = g2 - f2 | 0; + d2 = d2 + 8 | 0; + b2 = b2 + -1 | 0; + } + k[d2 >> 2] = (k[d2 >> 2] | 0) + g2; + k[d2 + 4 >> 2] = h2 - g2; + } + if ((e2 | 0) == 6) { + m2 = k[j2 >> 2] | 0; + k[a2 + 16 >> 2] = m2 + (k[a2 + 48 >> 2] | 0); + a2 = m2; + k[n2 >> 2] = a2; + k[o2 >> 2] = a2; + } else if ((e2 | 0) == 8) { + k[a2 + 16 >> 2] = 0; + k[n2 >> 2] = 0; + k[o2 >> 2] = 0; + k[a2 >> 2] = k[a2 >> 2] | 32; + if ((b2 | 0) == 2) + c2 = 0; + else + c2 = c2 - (k[d2 + 4 >> 2] | 0) | 0; + } + r = p2; + return c2 | 0; } - } - - return str; -}; - - -/** - * Returns a string representation of this image. - * @returns {string} - */ -daikon.Image.prototype.toString = function () { - var ctr, tag, key, str = ""; - - var sorted_keys = Object.keys(this.tags).sort(); - - for (ctr = 0; ctr < sorted_keys.length; ctr+=1) { - key = sorted_keys[ctr]; - if (this.tags.hasOwnProperty(key)) { - tag = this.tags[key]; - str += (tag.toHTMLString() + "
"); + function _k(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + e2 = r; + r = r + 80 | 0; + d2 = e2; + k[a2 + 36 >> 2] = 8; + if ((k[a2 >> 2] & 64 | 0) == 0 ? (k[d2 >> 2] = k[a2 + 60 >> 2], k[d2 + 4 >> 2] = 21505, k[d2 + 8 >> 2] = e2 + 12, (nb(54, d2 | 0) | 0) != 0) : 0) + i2[a2 + 75 >> 0] = -1; + d2 = Zk(a2, b2, c2) | 0; + r = e2; + return d2 | 0; } - } - - str = str.replace(/\n\s*\n/g, '\n'); // replace mutli-newlines with single newline - str = str.replace(/(?:\r\n|\r|\n)/g, '
'); // replace newlines with
- - return str; -}; - - - -daikon.Image.prototype.getPalleteValues = function (tagID) { - /*jslint bitwise: true */ - - var valsBig, valsLittle, value, numVals, ctr, valsBigMax, valsBigMin, valsLittleMax, valsLittleMin, valsBigDiff, - valsLittleDiff; - - valsBig = null; - valsLittle = null; - - value = daikon.Image.getValueSafely(this.getTag(tagID[0], tagID[1])); - - if (value !== null) { - numVals = value.buffer.byteLength / 2; - valsBig = []; - valsLittle = []; - - for (ctr = 0; ctr < numVals; ctr += 1) { - valsBig[ctr] = (value.getUint16(ctr * 2, false) & 0xFFFF); - valsLittle[ctr] = (value.getUint16(ctr * 2, true) & 0xFFFF); + function $k(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = a2 + 84 | 0; + f2 = k[d2 >> 2] | 0; + g2 = c2 + 256 | 0; + e2 = tl(f2, 0, g2) | 0; + e2 = (e2 | 0) == 0 ? g2 : e2 - f2 | 0; + c2 = e2 >>> 0 < c2 >>> 0 ? e2 : c2; + vw(b2 | 0, f2 | 0, c2 | 0) | 0; + k[a2 + 4 >> 2] = f2 + c2; + b2 = f2 + e2 | 0; + k[a2 + 8 >> 2] = b2; + k[d2 >> 2] = b2; + return c2 | 0; } - - valsBigMax = Math.max.apply(Math, valsBig); - valsBigMin = Math.min.apply(Math, valsBig); - valsLittleMax = Math.max.apply(Math, valsLittle); - valsLittleMin = Math.min.apply(Math, valsLittle); - valsBigDiff = Math.abs(valsBigMax - valsBigMin); - valsLittleDiff = Math.abs(valsLittleMax - valsLittleMin); - - if (valsBigDiff < valsLittleDiff) { - return this.scalePalette(valsBig); - } else { - return this.scalePalette(valsLittle); + function al(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = a2 + 74 | 0; + c2 = i2[b2 >> 0] | 0; + i2[b2 >> 0] = c2 + 255 | c2; + b2 = a2 + 20 | 0; + c2 = a2 + 44 | 0; + if ((k[b2 >> 2] | 0) >>> 0 > (k[c2 >> 2] | 0) >>> 0) + Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0; + k[a2 + 16 >> 2] = 0; + k[a2 + 28 >> 2] = 0; + k[b2 >> 2] = 0; + b2 = k[a2 >> 2] | 0; + if (b2 & 20) + if (!(b2 & 4)) + b2 = -1; + else { + k[a2 >> 2] = b2 | 32; + b2 = -1; + } + else { + b2 = k[c2 >> 2] | 0; + k[a2 + 8 >> 2] = b2; + k[a2 + 4 >> 2] = b2; + b2 = 0; + } + return b2 | 0; } - } - - return null; -}; - - - -daikon.Image.prototype.scalePalette = function (pal) { - var min, max, ctr, slope, intercept; - - max = Math.max.apply(Math, pal); - min = Math.min.apply(Math, pal); - - if ((max > 255) || (min < 0)) { - slope = 255.0 / (max - min); - intercept = min; - - for (ctr = 0; ctr < pal.length; ctr += 1) { - pal[ctr] = parseInt(Math.round((pal[ctr] - intercept) * slope)); + function bl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + b2 = a2 + 74 | 0; + c2 = i2[b2 >> 0] | 0; + i2[b2 >> 0] = c2 + 255 | c2; + b2 = k[a2 >> 2] | 0; + if (!(b2 & 8)) { + k[a2 + 8 >> 2] = 0; + k[a2 + 4 >> 2] = 0; + b2 = k[a2 + 44 >> 2] | 0; + k[a2 + 28 >> 2] = b2; + k[a2 + 20 >> 2] = b2; + k[a2 + 16 >> 2] = b2 + (k[a2 + 48 >> 2] | 0); + b2 = 0; + } else { + k[a2 >> 2] = b2 | 32; + b2 = -1; + } + return b2 | 0; } - } - - return pal; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Image; -} - -},{"../lib/jpeg-baseline.js":2,"../lib/jpeg-ls.js":3,"../lib/jpx.js":4,"./compression-utils.js":21,"./parser.js":27,"./rle.js":28,"./tag.js":31,"./utilities.js":32,"jpeg-lossless-decoder-js":14}],24:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; - - -/*** Constructor ***/ -daikon.OrderedMapIterator = daikon.OrderedMapIterator || function (orderedMap) { - this.orderedMap = orderedMap; - this.index = 0; -}; - - -/*** Prototype Methods ***/ - -daikon.OrderedMapIterator.prototype.hasNext = function() { - return (this.index < this.orderedMap.orderedKeys.length); -}; - - - -daikon.OrderedMapIterator.prototype.next = function() { - var item = this.orderedMap.get(this.orderedMap.orderedKeys[this.index]); - this.index += 1; - return item; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.OrderedMapIterator; -} - -},{}],25:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ****/ - -/** - * daikon - * @type {*|{}} - */ -var daikon = daikon || {}; - -daikon.CompressionUtils = daikon.CompressionUtils || ((typeof require !== 'undefined') ? require('./compression-utils.js') : null); -daikon.Dictionary = daikon.Dictionary || ((typeof require !== 'undefined') ? require('./dictionary.js') : null); -daikon.Image = daikon.Image || ((typeof require !== 'undefined') ? require('./image.js') : null); -daikon.OrderedMapIterator = daikon.OrderedMapIterator || ((typeof require !== 'undefined') ? require('./iterator.js') : null); -daikon.OrderedMap = daikon.OrderedMap || ((typeof require !== 'undefined') ? require('./orderedmap.js') : null); -daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); -daikon.RLE = daikon.RLE || ((typeof require !== 'undefined') ? require('./rle.js') : null); -daikon.Series = daikon.Series || ((typeof require !== 'undefined') ? require('./series.js') : null); -daikon.Tag = daikon.Tag || ((typeof require !== 'undefined') ? require('./tag.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.Siemens = daikon.Siemens || ((typeof require !== 'undefined') ? require('./siemens.js') : null); - -var jpeg = jpeg || {}; -jpeg.lossless = jpeg.lossless || {}; -jpeg.lossless.Decoder = ((typeof require !== 'undefined') ? require('jpeg-lossless-decoder-js') : null); - -var JpegDecoder = JpegDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-baseline.js').JpegImage : null); - -var JpxImage = JpxImage || ((typeof require !== 'undefined') ? require('../lib/jpx.js') : null); - -var CharLS = CharLS || ((typeof require !== 'undefined') ? require('../lib/charLS-DynamicMemory-browser.js') : null); -var JpegLSDecoder = JpegLSDecoder || ((typeof require !== 'undefined') ? require('../lib/jpeg-ls.js') : null); - -//use fflate not pako -//var pako = pako || ((typeof require !== 'undefined') ? require('pako') : null); -var fflate = fflate || ((typeof require !== 'undefined') ? require('fflate') : null); - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon; -} - -},{"../lib/charLS-DynamicMemory-browser.js":1,"../lib/jpeg-baseline.js":2,"../lib/jpeg-ls.js":3,"../lib/jpx.js":4,"./compression-utils.js":21,"./dictionary.js":22,"./image.js":23,"./iterator.js":24,"./orderedmap.js":26,"./parser.js":27,"./rle.js":28,"./series.js":29,"./siemens.js":30,"./tag.js":31,"./utilities.js":32,"fflate":7,"jpeg-lossless-decoder-js":14}],26:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require */ - -"use strict"; - -// Based on: http://stackoverflow.com/questions/3549894/javascript-data-structure-for-fast-lookup-and-ordered-looping - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.OrderedMapIterator = daikon.OrderedMapIterator || ((typeof require !== 'undefined') ? require('./iterator.js') : null); - - -/*** Constructor ***/ -daikon.OrderedMap = daikon.OrderedMap || function () { - this.map = {}; - this.orderedKeys = []; -}; - - - -daikon.OrderedMap.prototype.put = function(key, value) { - if (key in this.map) { // key already exists, replace value - this.map[key] = value; - } else { // insert new key and value - this.orderedKeys.push(key); - this.orderedKeys.sort(function(a, b) { return parseFloat(a) - parseFloat(b); }); - this.map[key] = value; - } -}; - - - -daikon.OrderedMap.prototype.remove = function(key) { - var index = this.orderedKeys.indexOf(key); - if(index === -1) { - throw new Error('key does not exist'); - } - - this.orderedKeys.splice(index, 1); - delete this.map[key]; -}; - - - -daikon.OrderedMap.prototype.get = function(key) { - if (key in this.map) { - return this.map[key]; - } - - return null; -}; - - - -daikon.OrderedMap.prototype.iterator = function() { - return new daikon.OrderedMapIterator(this); -}; - - - -daikon.OrderedMap.prototype.getOrderedValues = function() { - var orderedValues = [], it = this.iterator(); - - while (it.hasNext()) { - orderedValues.push(it.next()); - } - - return orderedValues; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.OrderedMap; -} - -},{"./iterator.js":24}],27:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Tag = daikon.Tag || ((typeof require !== 'undefined') ? require('./tag.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.Dictionary = daikon.Dictionary || ((typeof require !== 'undefined') ? require('./dictionary.js') : null); -daikon.Image = daikon.Image || ((typeof require !== 'undefined') ? require('./image.js') : null); - -//use fflate not pako -//var pako = pako || ((typeof require !== 'undefined') ? require('pako') : null); -var fflate = fflate || ((typeof require !== 'undefined') ? require('fflate') : null); - -/*** Constructor ***/ - -/** - * The Parser constructor. - * @property {boolean} explicit - * @property {boolean} littleEndian - * @type {Function} - */ -daikon.Parser = daikon.Parser || function () { - this.littleEndian = true; - this.explicit = true; - this.metaFound = false; - this.metaFinished = false; - this.metaFinishedOffset = -1; - this.needsDeflate = false; - this.inflated = null; - this.encapsulation = false; - this.level = 0; - this.error = null; -}; - - -/*** Static Fields ***/ - -/** - * Global property to output string representation of tags as they are parsed. - * @type {boolean} - */ -daikon.Parser.verbose = false; - - -/*** Static Pseudo-constants ***/ - -daikon.Parser.MAGIC_COOKIE_OFFSET = 128; -daikon.Parser.MAGIC_COOKIE = [68, 73, 67, 77]; -daikon.Parser.VRS = ["AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD", "IS", "LO", "LT", "OB", "OD", "OF", "OW", "PN", "SH", "SL", "SS", "ST", "TM", "UI", "UL", "UN", "US", "UT", "UC"]; -daikon.Parser.DATA_VRS = ["OB", "OW", "OF", "SQ", "UT", "UN", "UC"]; -daikon.Parser.RAW_DATA_VRS = ["OB", "OD", "OF", "OW", "UN"]; -daikon.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE = "1.2.840.10008.1.2"; -daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE = "1.2.840.10008.1.2.1"; -daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG = "1.2.840.10008.1.2.2"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG = "1.2.840.10008.1.2.4"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS = "1.2.840.10008.1.2.4.57"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1 = "1.2.840.10008.1.2.4.70"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT = "1.2.840.10008.1.2.4.50"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT = "1.2.840.10008.1.2.4.51"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS = "1.2.840.10008.1.2.4.80"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS = "1.2.840.10008.1.2.4.81"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS = "1.2.840.10008.1.2.4.90"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000 = "1.2.840.10008.1.2.4.91"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE = "1.2.840.10008.1.2.5"; -daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE = "1.2.840.10008.1.2.1.99"; -daikon.Parser.UNDEFINED_LENGTH = 0xFFFFFFFF; - - -/*** Static Methods ***/ - -/** - * Returns true if the DICOM magic cookie is found. - * @param {DataView} data - * @returns {boolean} - */ -daikon.Parser.isMagicCookieFound = function (data) { - var offset = daikon.Parser.MAGIC_COOKIE_OFFSET, magicCookieLength = daikon.Parser.MAGIC_COOKIE.length, ctr; - - for (ctr = 0; ctr < magicCookieLength; ctr += 1) { - if (data.getUint8(offset + ctr) !== daikon.Parser.MAGIC_COOKIE[ctr]) { - return false; + function cl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + c2 = r; + r = r + 16 | 0; + b2 = c2; + if ((k[a2 + 8 >> 2] | 0) == 0 ? (al(a2) | 0) != 0 : 0) + b2 = -1; + else if ((Qb[k[a2 + 32 >> 2] & 63](a2, b2, 1) | 0) == 1) + b2 = l[b2 >> 0] | 0; + else + b2 = -1; + r = c2; + return b2 | 0; + } + function dl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0; + do + if (a2) { + if ((k[a2 + 76 >> 2] | 0) <= -1) { + b2 = Gl(a2) | 0; + break; + } + c2 = (Tk(a2) | 0) == 0; + b2 = Gl(a2) | 0; + if (!c2) + Uk(a2); + } else { + if (!(k[9323] | 0)) + b2 = 0; + else + b2 = dl(k[9323] | 0) | 0; + Na(37060); + a2 = k[9264] | 0; + if (a2) + do { + if ((k[a2 + 76 >> 2] | 0) > -1) + c2 = Tk(a2) | 0; + else + c2 = 0; + if ((k[a2 + 20 >> 2] | 0) >>> 0 > (k[a2 + 28 >> 2] | 0) >>> 0) + b2 = Gl(a2) | 0 | b2; + if (c2) + Uk(a2); + a2 = k[a2 + 56 >> 2] | 0; + } while ((a2 | 0) != 0); + ob(37060); + } + while (0); + return b2 | 0; } - } - - return true; -}; - - -/*** Prototype Methods ***/ - -/** - * Parses this data and returns an image object. - * @param {DataView} data - * @returns {daikon.Image|null} - */ -daikon.Parser.prototype.parse = function (data) { - var image = null, offset, tag, copyMeta, copyDeflated; - - try { - image = new daikon.Image(); - offset = this.findFirstTagOffset(data); - tag = this.getNextTag(data, offset); - - while (tag !== null) { - if (daikon.Parser.verbose) { - console.log(tag.toString()); + function el(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + if ((k[b2 + 76 >> 2] | 0) >= 0 ? (Tk(b2) | 0) != 0 : 0) { + if ((i2[b2 + 75 >> 0] | 0) != (a2 | 0) ? (d2 = b2 + 20 | 0, e2 = k[d2 >> 2] | 0, e2 >>> 0 < (k[b2 + 16 >> 2] | 0) >>> 0) : 0) { + k[d2 >> 2] = e2 + 1; + i2[e2 >> 0] = a2; + c2 = a2 & 255; + } else + c2 = Vk(b2, a2) | 0; + Uk(b2); + } else + g2 = 3; + do + if ((g2 | 0) == 3) { + if ((i2[b2 + 75 >> 0] | 0) != (a2 | 0) ? (f2 = b2 + 20 | 0, c2 = k[f2 >> 2] | 0, c2 >>> 0 < (k[b2 + 16 >> 2] | 0) >>> 0) : 0) { + k[f2 >> 2] = c2 + 1; + i2[c2 >> 0] = a2; + c2 = a2 & 255; + break; + } + c2 = Vk(b2, a2) | 0; } - - image.putTag(tag); - - if (tag.isPixelData()) { + while (0); + return c2 | 0; + } + function fl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + d2 = c2 + 16 | 0; + e2 = k[d2 >> 2] | 0; + if (!e2) + if (!(bl(c2) | 0)) { + e2 = k[d2 >> 2] | 0; + f2 = 4; + } else + d2 = 0; + else + f2 = 4; + a: + do + if ((f2 | 0) == 4) { + g2 = c2 + 20 | 0; + f2 = k[g2 >> 2] | 0; + if ((e2 - f2 | 0) >>> 0 < b2 >>> 0) { + d2 = Qb[k[c2 + 36 >> 2] & 63](c2, a2, b2) | 0; + break; + } + b: + do + if ((i2[c2 + 75 >> 0] | 0) > -1) { + d2 = b2; + while (1) { + if (!d2) { + e2 = f2; + d2 = 0; + break b; + } + e2 = d2 + -1 | 0; + if ((i2[a2 + e2 >> 0] | 0) == 10) + break; + else + d2 = e2; + } + if ((Qb[k[c2 + 36 >> 2] & 63](c2, a2, d2) | 0) >>> 0 < d2 >>> 0) + break a; + b2 = b2 - d2 | 0; + a2 = a2 + d2 | 0; + e2 = k[g2 >> 2] | 0; + } else { + e2 = f2; + d2 = 0; + } + while (0); + vw(e2 | 0, a2 | 0, b2 | 0) | 0; + k[g2 >> 2] = (k[g2 >> 2] | 0) + b2; + d2 = d2 + b2 | 0; + } + while (0); + return d2 | 0; + } + function gl(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = ia(c2, b2) | 0; + if ((k[d2 + 76 >> 2] | 0) > -1) { + f2 = (Tk(d2) | 0) == 0; + a2 = fl(a2, e2, d2) | 0; + if (!f2) + Uk(d2); + } else + a2 = fl(a2, e2, d2) | 0; + if ((a2 | 0) != (e2 | 0)) + c2 = (a2 >>> 0) / (b2 >>> 0) | 0; + return c2 | 0; + } + function hl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + if ((k[a2 + 76 >> 2] | 0) >= 0 ? (Tk(a2) | 0) != 0 : 0) { + b2 = a2 + 4 | 0; + c2 = k[b2 >> 2] | 0; + if (c2 >>> 0 < (k[a2 + 8 >> 2] | 0) >>> 0) { + k[b2 >> 2] = c2 + 1; + b2 = l[c2 >> 0] | 0; + } else + b2 = cl(a2) | 0; + } else + d2 = 3; + do + if ((d2 | 0) == 3) { + b2 = a2 + 4 | 0; + c2 = k[b2 >> 2] | 0; + if (c2 >>> 0 < (k[a2 + 8 >> 2] | 0) >>> 0) { + k[b2 >> 2] = c2 + 1; + b2 = l[c2 >> 0] | 0; + break; + } else { + b2 = cl(a2) | 0; break; + } } - - if (this.needsDeflate && (tag.offsetEnd >= this.metaFinishedOffset)) { - this.needsDeflate = false; - copyMeta = data.buffer.slice(0, tag.offsetEnd); - copyDeflated = data.buffer.slice(tag.offsetEnd); - //this.inflated = daikon.Utils.concatArrayBuffers(copyMeta, pako.inflateRaw(copyDeflated)); - this.inflated = daikon.Utils.concatArrayBuffers(copyMeta, fflate.decompressSync(new Uint8Array(copyDeflated))); - data = new DataView(this.inflated); + while (0); + return b2 | 0; + } + function il(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0; + e2 = r; + r = r + 16 | 0; + f2 = e2; + k[f2 >> 2] = d2; + d2 = ol(a2, b2, c2, f2) | 0; + r = e2; + return d2 | 0; + } + function jl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + d2 = r; + r = r + 16 | 0; + e2 = d2; + k[e2 >> 2] = c2; + c2 = pl(a2, b2, e2) | 0; + r = d2; + return c2 | 0; + } + function kl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; + do + if ((a2 | 0) != -1) { + if ((k[b2 + 76 >> 2] | 0) > -1) + e2 = Tk(b2) | 0; + else + e2 = 0; + if (!((k[b2 + 8 >> 2] | 0) == 0 ? (al(b2) | 0) != 0 : 0)) + f2 = 6; + if ((f2 | 0) == 6 ? (c2 = b2 + 4 | 0, d2 = k[c2 >> 2] | 0, d2 >>> 0 > ((k[b2 + 44 >> 2] | 0) + -8 | 0) >>> 0) : 0) { + f2 = d2 + -1 | 0; + k[c2 >> 2] = f2; + i2[f2 >> 0] = a2; + k[b2 >> 2] = k[b2 >> 2] & -17; + if (!e2) + break; + Uk(b2); + break; + } + if (e2) { + Uk(b2); + a2 = -1; + } else + a2 = -1; + } else + a2 = -1; + while (0); + return a2 | 0; + } + function ll(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + h2 = r; + r = r + 16 | 0; + d2 = h2; + e2 = Pl(240) | 0; + do + if (e2) { + k[d2 >> 2] = k[c2 >> 2]; + d2 = ol(e2, 240, b2, d2) | 0; + if (d2 >>> 0 < 240) { + b2 = Sl(e2, d2 + 1 | 0) | 0; + k[a2 >> 2] = (b2 | 0) != 0 ? b2 : e2; + break; + } + Ql(e2); + if ((d2 | 0) >= 0 ? (g2 = d2 + 1 | 0, f2 = Pl(g2) | 0, k[a2 >> 2] = f2, (f2 | 0) != 0) : 0) + d2 = ol(f2, g2, b2, c2) | 0; + else + d2 = -1; + } else + d2 = -1; + while (0); + r = h2; + return d2 | 0; + } + function ml(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; + s2 = r; + r = r + 224 | 0; + n2 = s2 + 80 | 0; + q2 = s2 + 96 | 0; + p2 = s2; + o2 = s2 + 136 | 0; + d2 = q2; + e2 = d2 + 40 | 0; + do { + k[d2 >> 2] = 0; + d2 = d2 + 4 | 0; + } while ((d2 | 0) < (e2 | 0)); + k[n2 >> 2] = k[c2 >> 2]; + if ((Hl(0, b2, n2, p2, q2) | 0) < 0) + c2 = -1; + else { + if ((k[a2 + 76 >> 2] | 0) > -1) + l2 = Tk(a2) | 0; + else + l2 = 0; + c2 = k[a2 >> 2] | 0; + m2 = c2 & 32; + if ((i2[a2 + 74 >> 0] | 0) < 1) + k[a2 >> 2] = c2 & -33; + c2 = a2 + 48 | 0; + if (!(k[c2 >> 2] | 0)) { + e2 = a2 + 44 | 0; + f2 = k[e2 >> 2] | 0; + k[e2 >> 2] = o2; + g2 = a2 + 28 | 0; + k[g2 >> 2] = o2; + h2 = a2 + 20 | 0; + k[h2 >> 2] = o2; + k[c2 >> 2] = 80; + j2 = a2 + 16 | 0; + k[j2 >> 2] = o2 + 80; + d2 = Hl(a2, b2, n2, p2, q2) | 0; + if (f2) { + Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0; + d2 = (k[h2 >> 2] | 0) == 0 ? -1 : d2; + k[e2 >> 2] = f2; + k[c2 >> 2] = 0; + k[j2 >> 2] = 0; + k[g2 >> 2] = 0; + k[h2 >> 2] = 0; + } + } else + d2 = Hl(a2, b2, n2, p2, q2) | 0; + c2 = k[a2 >> 2] | 0; + k[a2 >> 2] = c2 | m2; + if (l2) + Uk(a2); + c2 = (c2 & 32 | 0) == 0 ? d2 : -1; + } + r = s2; + return c2 | 0; + } + function nl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, m2 = 0, n2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0; + P2 = r; + r = r + 304 | 0; + G2 = P2 + 16 | 0; + I2 = P2 + 8 | 0; + H2 = P2 + 33 | 0; + J2 = P2; + y2 = P2 + 32 | 0; + if ((k[a2 + 76 >> 2] | 0) > -1) + O2 = Tk(a2) | 0; + else + O2 = 0; + d2 = i2[b2 >> 0] | 0; + a: + do + if (d2 << 24 >> 24) { + K2 = a2 + 4 | 0; + L2 = a2 + 100 | 0; + F2 = a2 + 108 | 0; + z2 = a2 + 8 | 0; + A2 = H2 + 10 | 0; + B2 = H2 + 33 | 0; + C2 = I2 + 4 | 0; + D2 = H2 + 46 | 0; + E2 = H2 + 94 | 0; + f2 = d2; + d2 = 0; + g2 = b2; + s2 = 0; + e2 = 0; + b2 = 0; + b: + while (1) { + c: + do + if (!(kk(f2 & 255) | 0)) { + f2 = (i2[g2 >> 0] | 0) == 37; + d: + do + if (f2) { + n2 = g2 + 1 | 0; + h2 = i2[n2 >> 0] | 0; + e: + do + switch (h2 << 24 >> 24) { + case 37: + break d; + case 42: { + x2 = 0; + h2 = g2 + 2 | 0; + break; + } + default: { + h2 = (h2 & 255) + -48 | 0; + if (h2 >>> 0 < 10 ? (i2[g2 + 2 >> 0] | 0) == 36 : 0) { + k[G2 >> 2] = k[c2 >> 2]; + while (1) { + x2 = (k[G2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + f2 = k[x2 >> 2] | 0; + k[G2 >> 2] = x2 + 4; + if (h2 >>> 0 > 1) + h2 = h2 + -1 | 0; + else + break; + } + x2 = f2; + h2 = g2 + 3 | 0; + break e; + } + h2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); + x2 = k[h2 >> 2] | 0; + k[c2 >> 2] = h2 + 4; + h2 = n2; + } + } + while (0); + f2 = i2[h2 >> 0] | 0; + g2 = f2 & 255; + if ((g2 + -48 | 0) >>> 0 < 10) { + f2 = 0; + while (1) { + n2 = (f2 * 10 | 0) + -48 + g2 | 0; + h2 = h2 + 1 | 0; + f2 = i2[h2 >> 0] | 0; + g2 = f2 & 255; + if ((g2 + -48 | 0) >>> 0 >= 10) + break; + else + f2 = n2; + } + } else + n2 = 0; + if (f2 << 24 >> 24 == 109) { + h2 = h2 + 1 | 0; + q2 = i2[h2 >> 0] | 0; + f2 = (x2 | 0) != 0 & 1; + e2 = 0; + b2 = 0; + } else { + q2 = f2; + f2 = 0; + } + g2 = h2 + 1 | 0; + switch (q2 & 255 | 0) { + case 104: { + w2 = (i2[g2 >> 0] | 0) == 104; + g2 = w2 ? h2 + 2 | 0 : g2; + h2 = w2 ? -2 : -1; + break; + } + case 108: { + w2 = (i2[g2 >> 0] | 0) == 108; + g2 = w2 ? h2 + 2 | 0 : g2; + h2 = w2 ? 3 : 1; + break; + } + case 106: { + h2 = 3; + break; + } + case 116: + case 122: { + h2 = 1; + break; + } + case 76: { + h2 = 2; + break; + } + case 110: + case 112: + case 67: + case 83: + case 91: + case 99: + case 115: + case 88: + case 71: + case 70: + case 69: + case 65: + case 103: + case 102: + case 101: + case 97: + case 120: + case 117: + case 111: + case 105: + case 100: { + g2 = h2; + h2 = 0; + break; + } + default: { + N2 = 152; + break b; + } + } + q2 = l[g2 >> 0] | 0; + t2 = (q2 & 47 | 0) == 3; + q2 = t2 ? q2 | 32 : q2; + t2 = t2 ? 1 : h2; + switch (q2 | 0) { + case 99: { + w2 = s2; + v2 = (n2 | 0) < 1 ? 1 : n2; + break; + } + case 91: { + w2 = s2; + v2 = n2; + break; + } + case 110: { + if (!x2) { + h2 = s2; + break c; + } + switch (t2 | 0) { + case -2: { + i2[x2 >> 0] = s2; + h2 = s2; + break c; + } + case -1: { + j[x2 >> 1] = s2; + h2 = s2; + break c; + } + case 0: { + k[x2 >> 2] = s2; + h2 = s2; + break c; + } + case 1: { + k[x2 >> 2] = s2; + h2 = s2; + break c; + } + case 3: { + h2 = x2; + k[h2 >> 2] = s2; + k[h2 + 4 >> 2] = ((s2 | 0) < 0) << 31 >> 31; + h2 = s2; + break c; + } + default: { + h2 = s2; + break c; + } + } + } + default: { + qk(a2, 0); + do { + h2 = k[K2 >> 2] | 0; + if (h2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = h2 + 1; + h2 = l[h2 >> 0] | 0; + } else + h2 = rk(a2) | 0; + } while ((kk(h2) | 0) != 0); + h2 = k[K2 >> 2] | 0; + if (k[L2 >> 2] | 0) { + h2 = h2 + -1 | 0; + k[K2 >> 2] = h2; + } + w2 = (k[F2 >> 2] | 0) + s2 + h2 - (k[z2 >> 2] | 0) | 0; + v2 = n2; + } + } + qk(a2, v2); + h2 = k[K2 >> 2] | 0; + n2 = k[L2 >> 2] | 0; + if (h2 >>> 0 < n2 >>> 0) + k[K2 >> 2] = h2 + 1; + else { + if ((rk(a2) | 0) < 0) { + N2 = 152; + break b; + } + n2 = k[L2 >> 2] | 0; + } + if (n2) + k[K2 >> 2] = (k[K2 >> 2] | 0) + -1; + f: + do + switch (q2 | 0) { + case 91: + case 99: + case 115: { + u2 = (q2 | 0) == 99; + g: + do + if ((q2 & 239 | 0) == 99) { + sw(H2 | 0, -1, 257) | 0; + i2[H2 >> 0] = 0; + if ((q2 | 0) == 115) { + i2[B2 >> 0] = 0; + i2[A2 >> 0] = 0; + i2[A2 + 1 >> 0] = 0; + i2[A2 + 2 >> 0] = 0; + i2[A2 + 3 >> 0] = 0; + i2[A2 + 4 >> 0] = 0; + } + } else { + Q2 = g2 + 1 | 0; + s2 = (i2[Q2 >> 0] | 0) == 94; + h2 = s2 & 1; + q2 = s2 ? Q2 : g2; + g2 = s2 ? g2 + 2 | 0 : Q2; + sw(H2 | 0, s2 & 1 | 0, 257) | 0; + i2[H2 >> 0] = 0; + switch (i2[g2 >> 0] | 0) { + case 45: { + s2 = (h2 ^ 1) & 255; + i2[D2 >> 0] = s2; + g2 = q2 + 2 | 0; + break; + } + case 93: { + s2 = (h2 ^ 1) & 255; + i2[E2 >> 0] = s2; + g2 = q2 + 2 | 0; + break; + } + default: + s2 = (h2 ^ 1) & 255; + } + while (1) { + h2 = i2[g2 >> 0] | 0; + h: + do + switch (h2 << 24 >> 24) { + case 0: { + N2 = 152; + break b; + } + case 93: + break g; + case 45: { + q2 = g2 + 1 | 0; + h2 = i2[q2 >> 0] | 0; + switch (h2 << 24 >> 24) { + case 93: + case 0: { + h2 = 45; + break h; + } + default: { + } + } + g2 = i2[g2 + -1 >> 0] | 0; + if ((g2 & 255) < (h2 & 255)) { + g2 = g2 & 255; + do { + g2 = g2 + 1 | 0; + i2[H2 + g2 >> 0] = s2; + h2 = i2[q2 >> 0] | 0; + } while ((g2 | 0) < (h2 & 255 | 0)); + g2 = q2; + } else + g2 = q2; + break; + } + default: { + } + } + while (0); + i2[H2 + ((h2 & 255) + 1) >> 0] = s2; + g2 = g2 + 1 | 0; + } + } + while (0); + q2 = u2 ? v2 + 1 | 0 : 31; + s2 = (t2 | 0) == 1; + t2 = (f2 | 0) != 0; + i: + do + if (s2) { + if (t2) { + b2 = Pl(q2 << 2) | 0; + if (!b2) { + e2 = 0; + N2 = 152; + break b; + } + } else + b2 = x2; + k[I2 >> 2] = 0; + k[C2 >> 2] = 0; + e2 = 0; + j: + while (1) { + n2 = (b2 | 0) == 0; + do { + k: + while (1) { + h2 = k[K2 >> 2] | 0; + if (h2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = h2 + 1; + h2 = l[h2 >> 0] | 0; + } else + h2 = rk(a2) | 0; + if (!(i2[H2 + (h2 + 1) >> 0] | 0)) + break j; + i2[y2 >> 0] = h2; + switch (Kk(J2, y2, 1, I2) | 0) { + case -1: { + e2 = 0; + N2 = 152; + break b; + } + case -2: + break; + default: + break k; + } + } + if (!n2) { + k[b2 + (e2 << 2) >> 2] = k[J2 >> 2]; + e2 = e2 + 1 | 0; + } + } while (!(t2 & (e2 | 0) == (q2 | 0))); + e2 = q2 << 1 | 1; + h2 = Sl(b2, e2 << 2) | 0; + if (!h2) { + e2 = 0; + N2 = 152; + break b; + } + Q2 = q2; + q2 = e2; + b2 = h2; + e2 = Q2; + } + if (!(Lk(I2) | 0)) { + e2 = 0; + N2 = 152; + break b; + } else { + n2 = e2; + e2 = 0; + } + } else { + if (t2) { + e2 = Pl(q2) | 0; + if (!e2) { + e2 = 0; + b2 = 0; + N2 = 152; + break b; + } else + h2 = 0; + while (1) { + do { + b2 = k[K2 >> 2] | 0; + if (b2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { + n2 = h2; + b2 = 0; + break i; + } + i2[e2 + h2 >> 0] = b2; + h2 = h2 + 1 | 0; + } while ((h2 | 0) != (q2 | 0)); + b2 = q2 << 1 | 1; + h2 = Sl(e2, b2) | 0; + if (!h2) { + b2 = 0; + N2 = 152; + break b; + } else { + Q2 = q2; + q2 = b2; + e2 = h2; + h2 = Q2; + } + } + } + if (!x2) { + e2 = n2; + while (1) { + b2 = k[K2 >> 2] | 0; + if (b2 >>> 0 < e2 >>> 0) { + k[K2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { + n2 = 0; + e2 = 0; + b2 = 0; + break i; + } + e2 = k[L2 >> 2] | 0; + } + } else { + e2 = 0; + while (1) { + b2 = k[K2 >> 2] | 0; + if (b2 >>> 0 < n2 >>> 0) { + k[K2 >> 2] = b2 + 1; + b2 = l[b2 >> 0] | 0; + } else + b2 = rk(a2) | 0; + if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { + n2 = e2; + e2 = x2; + b2 = 0; + break i; + } + i2[x2 + e2 >> 0] = b2; + n2 = k[L2 >> 2] | 0; + e2 = e2 + 1 | 0; + } + } + } + while (0); + h2 = k[K2 >> 2] | 0; + if (k[L2 >> 2] | 0) { + h2 = h2 + -1 | 0; + k[K2 >> 2] = h2; + } + h2 = h2 - (k[z2 >> 2] | 0) + (k[F2 >> 2] | 0) | 0; + if (!h2) + break b; + if (!((h2 | 0) == (v2 | 0) | u2 ^ 1)) + break b; + do + if (t2) + if (s2) { + k[x2 >> 2] = b2; + break; + } else { + k[x2 >> 2] = e2; + break; + } + while (0); + if (!u2) { + if (b2) + k[b2 + (n2 << 2) >> 2] = 0; + if (!e2) { + e2 = 0; + break f; + } + i2[e2 + n2 >> 0] = 0; + } + break; + } + case 120: + case 88: + case 112: { + h2 = 16; + N2 = 134; + break; + } + case 111: { + h2 = 8; + N2 = 134; + break; + } + case 117: + case 100: { + h2 = 10; + N2 = 134; + break; + } + case 105: { + h2 = 0; + N2 = 134; + break; + } + case 71: + case 103: + case 70: + case 102: + case 69: + case 101: + case 65: + case 97: { + m2 = +ok(a2, t2, 0); + if ((k[F2 >> 2] | 0) == ((k[z2 >> 2] | 0) - (k[K2 >> 2] | 0) | 0)) + break b; + if (x2) + switch (t2 | 0) { + case 0: { + o[x2 >> 2] = m2; + break f; + } + case 1: { + p[x2 >> 3] = m2; + break f; + } + case 2: { + p[x2 >> 3] = m2; + break f; + } + default: + break f; + } + break; + } + default: { + } + } + while (0); + l: + do + if ((N2 | 0) == 134) { + N2 = 0; + h2 = pk(a2, h2, 0, -1, -1) | 0; + if ((k[F2 >> 2] | 0) == ((k[z2 >> 2] | 0) - (k[K2 >> 2] | 0) | 0)) + break b; + if ((x2 | 0) != 0 & (q2 | 0) == 112) { + k[x2 >> 2] = h2; + break; + } + if (x2) + switch (t2 | 0) { + case -2: { + i2[x2 >> 0] = h2; + break l; + } + case -1: { + j[x2 >> 1] = h2; + break l; + } + case 0: { + k[x2 >> 2] = h2; + break l; + } + case 1: { + k[x2 >> 2] = h2; + break l; + } + case 3: { + Q2 = x2; + k[Q2 >> 2] = h2; + k[Q2 + 4 >> 2] = M; + break l; + } + default: + break l; + } + } + while (0); + d2 = ((x2 | 0) != 0 & 1) + d2 | 0; + h2 = (k[F2 >> 2] | 0) + w2 + (k[K2 >> 2] | 0) - (k[z2 >> 2] | 0) | 0; + break c; + } + while (0); + g2 = g2 + (f2 & 1) | 0; + qk(a2, 0); + f2 = k[K2 >> 2] | 0; + if (f2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + if ((f2 | 0) != (l[g2 >> 0] | 0)) { + N2 = 21; + break b; + } + h2 = s2 + 1 | 0; + } else { + while (1) { + f2 = g2 + 1 | 0; + if (!(kk(l[f2 >> 0] | 0) | 0)) + break; + else + g2 = f2; + } + qk(a2, 0); + do { + f2 = k[K2 >> 2] | 0; + if (f2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { + k[K2 >> 2] = f2 + 1; + f2 = l[f2 >> 0] | 0; + } else + f2 = rk(a2) | 0; + } while ((kk(f2) | 0) != 0); + f2 = k[K2 >> 2] | 0; + if (k[L2 >> 2] | 0) { + f2 = f2 + -1 | 0; + k[K2 >> 2] = f2; + } + h2 = (k[F2 >> 2] | 0) + s2 + f2 - (k[z2 >> 2] | 0) | 0; + } + while (0); + g2 = g2 + 1 | 0; + f2 = i2[g2 >> 0] | 0; + if (!(f2 << 24 >> 24)) + break a; + else + s2 = h2; + } + if ((N2 | 0) == 21) { + if (k[L2 >> 2] | 0) + k[K2 >> 2] = (k[K2 >> 2] | 0) + -1; + if ((d2 | 0) != 0 | (f2 | 0) > -1) + break; + else { + d2 = 0; + N2 = 153; + } + } else if ((N2 | 0) == 152) { + if (!d2) { + d2 = f2; + N2 = 153; + } + } + if ((N2 | 0) == 153) { + f2 = d2; + d2 = -1; + } + if (f2) { + Ql(e2); + Ql(b2); + } + } else + d2 = 0; + while (0); + if (O2) + Uk(a2); + r = P2; + return d2 | 0; + } + function ol(a2, b2, c2, d2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + d2 = d2 | 0; + var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; + m2 = r; + r = r + 128 | 0; + e2 = m2 + 112 | 0; + l2 = m2; + f2 = l2; + g2 = 37352; + h2 = f2 + 112 | 0; + do { + k[f2 >> 2] = k[g2 >> 2]; + f2 = f2 + 4 | 0; + g2 = g2 + 4 | 0; + } while ((f2 | 0) < (h2 | 0)); + if ((b2 + -1 | 0) >>> 0 > 2147483646) + if (!b2) { + b2 = 1; + j2 = 4; + } else { + b2 = mk() | 0; + k[b2 >> 2] = 75; + b2 = -1; } - - tag = this.getNextTag(data, tag.offsetEnd); + else { + e2 = a2; + j2 = 4; + } + if ((j2 | 0) == 4) { + j2 = -2 - e2 | 0; + j2 = b2 >>> 0 > j2 >>> 0 ? j2 : b2; + k[l2 + 48 >> 2] = j2; + a2 = l2 + 20 | 0; + k[a2 >> 2] = e2; + k[l2 + 44 >> 2] = e2; + b2 = e2 + j2 | 0; + e2 = l2 + 16 | 0; + k[e2 >> 2] = b2; + k[l2 + 28 >> 2] = b2; + b2 = ml(l2, c2, d2) | 0; + if (j2) { + c2 = k[a2 >> 2] | 0; + i2[c2 + (((c2 | 0) == (k[e2 >> 2] | 0)) << 31 >> 31) >> 0] = 0; + } + } + r = m2; + return b2 | 0; } - } catch (err) { - this.error = err; - } - - if (image !== null) { - image.littleEndian = this.littleEndian; - } - - return image; -}; - - - -daikon.Parser.prototype.parseEncapsulated = function (data) { - var offset = 0, tag, tags = []; - - this.encapsulation = true; - - try { - tag = this.getNextTag(data, offset); - - while (tag !== null) { - if (tag.isSublistItem()) { - tags.push(tag); + function pl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = r; + r = r + 112 | 0; + d2 = f2; + e2 = d2; + g2 = e2 + 112 | 0; + do { + k[e2 >> 2] = 0; + e2 = e2 + 4 | 0; + } while ((e2 | 0) < (g2 | 0)); + k[d2 + 32 >> 2] = 29; + k[d2 + 44 >> 2] = a2; + k[d2 + 76 >> 2] = -1; + k[d2 + 84 >> 2] = a2; + g2 = nl(d2, b2, c2) | 0; + r = f2; + return g2 | 0; + } + function ql(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + return + +Jl(a2, b2, 2); + } + function rl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = Kl(a2, b2, c2, -1, -1) | 0; + return a2 | 0; + } + function sl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + a2 = Kl(a2, b2, c2, 0, -2147483648) | 0; + return a2 | 0; + } + function tl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; + f2 = b2 & 255; + d2 = (c2 | 0) != 0; + a: + do + if (d2 & (a2 & 3 | 0) != 0) { + e2 = b2 & 255; + while (1) { + if ((i2[a2 >> 0] | 0) == e2 << 24 >> 24) { + g2 = 6; + break a; + } + a2 = a2 + 1 | 0; + c2 = c2 + -1 | 0; + d2 = (c2 | 0) != 0; + if (!(d2 & (a2 & 3 | 0) != 0)) { + g2 = 5; + break; + } + } + } else + g2 = 5; + while (0); + if ((g2 | 0) == 5) + if (d2) + g2 = 6; + else + c2 = 0; + b: + do + if ((g2 | 0) == 6) { + e2 = b2 & 255; + if ((i2[a2 >> 0] | 0) != e2 << 24 >> 24) { + d2 = ia(f2, 16843009) | 0; + c: + do + if (c2 >>> 0 > 3) + while (1) { + f2 = k[a2 >> 2] ^ d2; + if ((f2 & -2139062144 ^ -2139062144) & f2 + -16843009) + break; + a2 = a2 + 4 | 0; + c2 = c2 + -4 | 0; + if (c2 >>> 0 <= 3) { + g2 = 11; + break c; + } + } + else + g2 = 11; + while (0); + if ((g2 | 0) == 11) { + if (!c2) { + c2 = 0; + break; + } + } + while (1) { + if ((i2[a2 >> 0] | 0) == e2 << 24 >> 24) + break b; + a2 = a2 + 1 | 0; + c2 = c2 + -1 | 0; + if (!c2) { + c2 = 0; + break; + } + } + } + } + while (0); + return ((c2 | 0) != 0 ? a2 : 0) | 0; + } + function ul(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + c2 = b2; + a: + do + if (!((c2 ^ a2) & 3)) { + if (c2 & 3) + do { + c2 = i2[b2 >> 0] | 0; + i2[a2 >> 0] = c2; + if (!(c2 << 24 >> 24)) + break a; + b2 = b2 + 1 | 0; + a2 = a2 + 1 | 0; + } while ((b2 & 3 | 0) != 0); + c2 = k[b2 >> 2] | 0; + if (!((c2 & -2139062144 ^ -2139062144) & c2 + -16843009)) { + d2 = a2; + while (1) { + b2 = b2 + 4 | 0; + a2 = d2 + 4 | 0; + k[d2 >> 2] = c2; + c2 = k[b2 >> 2] | 0; + if ((c2 & -2139062144 ^ -2139062144) & c2 + -16843009) + break; + else + d2 = a2; + } + } + d2 = 8; + } else + d2 = 8; + while (0); + if ((d2 | 0) == 8) { + d2 = i2[b2 >> 0] | 0; + i2[a2 >> 0] = d2; + if (d2 << 24 >> 24) + do { + b2 = b2 + 1 | 0; + a2 = a2 + 1 | 0; + d2 = i2[b2 >> 0] | 0; + i2[a2 >> 0] = d2; + } while (d2 << 24 >> 24 != 0); + } + return a2 | 0; + } + function vl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0; + d2 = i2[a2 >> 0] | 0; + c2 = i2[b2 >> 0] | 0; + if (d2 << 24 >> 24 == 0 ? 1 : d2 << 24 >> 24 != c2 << 24 >> 24) + b2 = d2; + else { + do { + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + d2 = i2[a2 >> 0] | 0; + c2 = i2[b2 >> 0] | 0; + } while (!(d2 << 24 >> 24 == 0 ? 1 : d2 << 24 >> 24 != c2 << 24 >> 24)); + b2 = d2; + } + return (b2 & 255) - (c2 & 255) | 0; + } + function wl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + ul(a2, b2) | 0; + return a2 | 0; + } + function xl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0; + d2 = a2; + a: + do + if (!(d2 & 3)) + c2 = 4; + else { + b2 = a2; + a2 = d2; + while (1) { + if (!(i2[b2 >> 0] | 0)) + break a; + b2 = b2 + 1 | 0; + a2 = b2; + if (!(a2 & 3)) { + a2 = b2; + c2 = 4; + break; + } + } + } + while (0); + if ((c2 | 0) == 4) { + while (1) { + b2 = k[a2 >> 2] | 0; + if (!((b2 & -2139062144 ^ -2139062144) & b2 + -16843009)) + a2 = a2 + 4 | 0; + else + break; } - - if (daikon.Parser.verbose) { - console.log(tag.toString()); + if ((b2 & 255) << 24 >> 24) + do + a2 = a2 + 1 | 0; + while ((i2[a2 >> 0] | 0) != 0); + } + return a2 - d2 | 0; + } + function yl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0, e2 = 0; + if (!c2) + b2 = 0; + else { + d2 = i2[a2 >> 0] | 0; + a: + do + if (!(d2 << 24 >> 24)) + d2 = 0; + else + while (1) { + c2 = c2 + -1 | 0; + e2 = i2[b2 >> 0] | 0; + if (!(d2 << 24 >> 24 == e2 << 24 >> 24 & ((c2 | 0) != 0 & e2 << 24 >> 24 != 0))) + break a; + a2 = a2 + 1 | 0; + b2 = b2 + 1 | 0; + d2 = i2[a2 >> 0] | 0; + if (!(d2 << 24 >> 24)) { + d2 = 0; + break; + } + } + while (0); + b2 = (d2 & 255) - (l[b2 >> 0] | 0) | 0; + } + return b2 | 0; + } + function zl(a2) { + a2 = a2 | 0; + var b2 = 0; + b2 = a2; + while (1) + if (!(k[b2 >> 2] | 0)) + break; + else + b2 = b2 + 4 | 0; + return b2 - a2 >> 2 | 0; + } + function Al(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if (c2) { + d2 = a2; + while (1) { + c2 = c2 + -1 | 0; + k[d2 >> 2] = k[b2 >> 2]; + if (!c2) + break; + else { + b2 = b2 + 4 | 0; + d2 = d2 + 4 | 0; + } } - - tag = this.getNextTag(data, tag.offsetEnd); + } + return a2 | 0; } - } catch (err) { - this.error = err; - - } - - return tags; -}; - - - -daikon.Parser.prototype.testForValidTag = function (data) { - var offset, tag = null; - - try { - offset = this.findFirstTagOffset(data); - tag = this.getNextTag(data, offset, false); - } catch (err) { - this.error = err; - } - - return tag; -}; - - - -daikon.Parser.prototype.getNextTag = function (data, offset, testForTag) { - var group = 0, element, value = null, offsetStart = offset, offsetValue, length = 0, little = true, vr = null, tag; - - if (offset >= data.byteLength) { - return null; + function Bl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + d2 = (c2 | 0) == 0; + if (a2 - b2 >> 2 >>> 0 < c2 >>> 0) { + if (!d2) + do { + c2 = c2 + -1 | 0; + k[a2 + (c2 << 2) >> 2] = k[b2 + (c2 << 2) >> 2]; + } while ((c2 | 0) != 0); + } else if (!d2) { + d2 = b2; + b2 = a2; + while (1) { + c2 = c2 + -1 | 0; + k[b2 >> 2] = k[d2 >> 2]; + if (!c2) + break; + else { + d2 = d2 + 4 | 0; + b2 = b2 + 4 | 0; + } + } + } + return a2 | 0; + } + function Cl(a2, b2, c2) { + a2 = a2 | 0; + b2 = b2 | 0; + c2 = c2 | 0; + var d2 = 0; + if (c2) { + d2 = a2; + while (1) { + c2 = c2 + -1 | 0; + k[d2 >> 2] = b2; + if (!c2) + break; + else + d2 = d2 + 4 | 0; + } + } + return a2 | 0; + } + function Dl(a2, b2) { + a2 = a2 | 0; + b2 = b2 | 0; + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; + g2 = a2 + 4 | 0; + c2 = k[g2 >> 2] | 0; + h2 = a2 + 100 | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + switch (c2 | 0) { + case 43: + case 45: { + d2 = (c2 | 0) == 45 & 1; + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + if ((b2 | 0) != 0 & (c2 + -48 | 0) >>> 0 > 9 ? (k[h2 >> 2] | 0) != 0 : 0) { + k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; + f2 = d2; + } else + f2 = d2; + break; + } + default: + f2 = 0; + } + if ((c2 + -48 | 0) >>> 0 > 9) + if (!(k[h2 >> 2] | 0)) { + d2 = -2147483648; + c2 = 0; + } else { + k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; + d2 = -2147483648; + c2 = 0; + } + else { + d2 = 0; + do { + d2 = c2 + -48 + (d2 * 10 | 0) | 0; + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + } while ((c2 + -48 | 0) >>> 0 < 10 & (d2 | 0) < 214748364); + b2 = ((d2 | 0) < 0) << 31 >> 31; + if ((c2 + -48 | 0) >>> 0 < 10) { + do { + b2 = Dw(d2 | 0, b2 | 0, 10, 0) | 0; + d2 = M; + c2 = tw(c2 | 0, ((c2 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; + d2 = tw(c2 | 0, M | 0, b2 | 0, d2 | 0) | 0; + b2 = M; + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + } while ((c2 + -48 | 0) >>> 0 < 10 & ((b2 | 0) < 21474836 | (b2 | 0) == 21474836 & d2 >>> 0 < 2061584302)); + e2 = d2; + } else + e2 = d2; + if ((c2 + -48 | 0) >>> 0 < 10) + do { + c2 = k[g2 >> 2] | 0; + if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { + k[g2 >> 2] = c2 + 1; + c2 = l[c2 >> 0] | 0; + } else + c2 = rk(a2) | 0; + } while ((c2 + -48 | 0) >>> 0 < 10); + if (k[h2 >> 2] | 0) + k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; + a2 = (f2 | 0) != 0; + c2 = rw(0, 0, e2 | 0, b2 | 0) | 0; + d2 = a2 ? M : b2; + c2 = a2 ? c2 : e2; + } + M = d2; + return c2 | 0; + } + function El(a2) { + a2 = a2 | 0; + if (!(k[a2 + 68 >> 2] | 0)) + Uk(a2); + return; + } + function Fl(a2) { + a2 = a2 | 0; + if (!(k[a2 + 68 >> 2] | 0)) + Uk(a2); + return; + } + function Gl(a2) { + a2 = a2 | 0; + var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; + b2 = a2 + 20 | 0; + f2 = a2 + 28 | 0; + if ((k[b2 >> 2] | 0) >>> 0 > (k[f2 >> 2] | 0) >>> 0 ? (Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0, (k[b2 >> 2] | 0) == 0) : 0) + b2 = -1; + else { + g2 = a2 + 4 | 0; + c2 = k[g2 >> 2] | 0; + d2 = a2 + 8 | 0; + e2 = k[d2 >> 2] | 0; + if (c2 >>> 0 < e2 >>> 0) + Qb[k[a2 + 40 >> 2] & 63](a2, c2 - e2 | 0, 1) | 0; + k[a2 + 16 >> 2] = 0; + k[f2 >> 2] = 0; + k[b2 >> 2] = 0; + k[d2 >> 2] = 0; + k[g2 >> 2] = 0; + b2 = 0; + } + return b2 | 0; + } + var Ib = [cx, _q, cr, Yr, as, fs, hs, Hu, Su, cx, cx, cx, cx, cx, cx, cx]; + var Jb = [dx, si, gi, Wh, Kh, yh, mh, ah, Lg, Wj, Vj, Sj, dx, dx, dx, dx]; + var Kb = [ex, ls, rs, ex]; + var Lb = [fx, oi, pi, ci, di, Sh, Th, Gh, Hh, uh, vh, ih, jh, Yg, Zg, Hg, Ig, ug, vg, ig, jg, Yf, Zf, Mf, Nf, Af, Bf, Ie, Je, ve, we, Dc, Ec, Zd, be, _d, mo, oo, no, po, ud, vd, _i, wd, nd, od, Sc, Tc, _c, $c, fd, gd, xd, yd, Ed, Fd, Ld, Md, Sd, Td, te, ue, Re, Se, Ye, Ze, df, ef, lf, mf, Wg, Xg, Nm, Ai, Ki, Li, $i, aj, pj, qj, wj, xj, Bj, Cj, Ej, Hj, Fj, Gj, Ij, Jj, Mn, bm, hm, xn, mm, sm, Lm, Mm, yn, Nn, $n, bo, ao, co, go, io, ho, jo, uo, wo, vo, xo, Eo, Fo, pn, Go, Ho, Io, Ko, Us, Oo, Po, To, Uo, gp, hp, Ap, Bp, Pp, Qp, aq, bq, zq, Aq, Xq, Zq, ar, br, er, fr, pr, qr, Ar, Br, Lr, Mr, Wr, Xr, ds, es, js, ks, ps, qs, vs, ws, As, Bs, Is, Js, kt, lt, Gu, Dt, du, eu, fu, gu, Jo, Ts, Ws, ut, Lt, Tt, $t, au, bj, Si, jj, Cc, zn, fo, ie, Og, ek, El, Fl, Wl, wk, Zr, $r, Vs, Qv, Xv, Yv, Zv, _v, $v, aw, Sm, en, Ql, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx]; + var Mb = [gx, ri, fi, Vh, Jh, xh, lh, $g, Kg, wg, kg, _f, Of, Cf, Ke, xe, Fc, An, Mi, Pi, cm, gm, nm, rm, Pn, ir, jr, kr, lr, nr, or, tr, ur, vr, wr, yr, zr, Er, Fr, Gr, Hr, Jr, Kr, Pr, Qr, Rr, Sr, Ur, Vr, zs, Es, lu, nu, pu, mu, ou, qu, uc, cj, Qi, Ri, Ti, un, Mc, Oc, qo, on, _m, he, Be, tf, Gf, Sf, cg, og, Ag, Ng, ch, oh, Ah, Mh, Yh, ii, ui, Ii, hj, Cm, Am, sn, yo, Bm, Ym, jn, hn, kv, lv, mv, nv, ov, pv, Ct, qv, rv, sv, tv, uv, vv, wv, xv, yv, zv, Av, Bv, Cv, Dv, Ev, Fv, Gv, Hv, Iv, Jv, Kv, Lv, Mv, Ov, gw, gx, gx]; + var Nb = [hx, Vo, Wo, Xo, Yo, Zo, _o, $o, ap, bp, cp, dp, ip, jp, kp, lp, mp, np, op, pp, qp, rp, sp, Hp, Jp, Up, Wp, dq, eq, fq, hq, jq, Cq, Dq, Eq, Gq, Iq, os, us, md, cv, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx]; + var Ob = [ix, En, Fn, rd, In, Bi, rj, yj, Dj, Wk, dm, Un, Wn, Xn, Tn, im, jm, om, Hn, tm, um, Ao, cq, su, uu, wu, Cu, Eu, yu, Au, Bq, tu, vu, xu, Du, Fu, zu, Bu, gr, hr, mr, rr, sr, xr, Cr, Dr, Ir, Nr, Or, Tr, Ht, It, Kt, hu, ju, iu, ku, yt, zt, Bt, Pt, Qt, St, Xt, Yt, _t, Ei, lj, tn, Vi, eo, ko, jx, kx, lx, Ak, zl, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix]; + var Pb = [mx, _r, gs, mx]; + var Qb = [nx, Bn, Gn, Kn, Em, Fm, Kj, Ll, Zk, Yk, Xk, _k, Qn, Vn, em, Zn, pm, No, So, xs, Cs, nt, pt, st, Xs, ct, ft, it, Nc, Il, $m, zk, hv, jv, Pk, Ok, Jk, ll, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx]; + var Rb = [ox, ns, ts, ox]; + var Sb = [px, pd, Zj, Yj, Xj, Rn, Cn, ys, Ds, px, px, px, px, px, px, px]; + var Tb = [qx, Gp, Mp, Tp, Yp, qx, qx, qx]; + var Ub = [rx, bs, is, ms, ss, rx, rx, rx]; + var Vb = [sx, qi, ei, Uh, Ih, wh, kh, _g, Jg, yg, mg, ag, Qf, Ef, Me, ze, Hc, sd, td, Yn, fm, km, _n, Jn, qm, vm, Ln, mt, ot, qt, at, dt, gt, dj, yc, Ac, so, Ss, to, yk, xk, Um, fn, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx]; + var Wb = [tx, Lo, Qo, Cp, Dp, Ip, Op, Rp, Sp, Vp, _p, tt, Gt, Jt, jt, xt, At, Ot, Rt, Wt, Zt, Qk, Mk, tx, tx, tx, tx, tx, tx, tx, tx, tx]; + var Xb = [ux, jw, iw, hw]; + var Yb = [vx, vc, kj, fp, Ls, Ms, Ns, hk, jk, ik, vx, vx, vx, vx, vx, vx]; + var Zb = [wx, xg, lg, $f, Pf, Df, Le, ye, Gc, rt, Zs, _s, $s, ht, Di, Ji, Ru, bv, Nk, uk, Kk, pw, ow, nw, mw, lw, kw, wx, wx, wx, wx, wx]; + var _b = [xx, Dm, Ci, Bo, ej, Qm, yx, Km, Wm, Ui, Hm, Do, fv, gv, iv, cn]; + var $b = [zx, Ax, bk, Bx, ck, Cx, ak, zx]; + var ac = [Dx, lq, Kq, Et, Ft, vt, wt, Mt, Nt, Ut, Vt, Dx, Dx, Dx, Dx, Dx]; + var bc = [Ex, Kp, Np, Xp, Zp, Ex, Ex, Ex]; + var cc = [Fx, ce, de, $d, ae, qd, Uc, Vc, ad, bd, hd, id, zd, Ad, Gd, Hd, Nd, Od, Ud, Vd, Te, Ue, _e, $e, ff, gf, nf, of, Mj, Nj, Pj, Sn, Dn, Mo, Ro, nc, Jm, Ic, Jc, Kc, Lc, Pc, Qc, Rc, Ne, Oe, Pe, Qe, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx]; + return { _jpegls_encode: gj, ___cxa_can_catch: _j, _free: Ql, _jpegls_decode: fj, ___cxa_is_pointer_type: $j, _i64Add: tw, _memmove: xw, _i64Subtract: rw, _memset: sw, _malloc: Pl, _memcpy: vw, _bitshift64Lshr: uw, _bitshift64Shl: ww, __GLOBAL__I_000101: Xl, __GLOBAL__sub_I_jpegls_cpp: Bc, __GLOBAL__sub_I_iostream_cpp: Yl, runPostSets: qw, _emscripten_replace_memory: Hb, stackAlloc: dc, stackSave: ec, stackRestore: fc, establishStackSpace: gc, setThrew: hc, setTempRet0: kc, getTempRet0: lc, dynCall_iiiiiiii: Hw, dynCall_viiiii: Iw, dynCall_iiiiiid: Jw, dynCall_vi: Kw, dynCall_vii: Lw, dynCall_iiiiiii: Mw, dynCall_ii: Nw, dynCall_iiiiiiiiiiii: Ow, dynCall_iiii: Pw, dynCall_viiiiiiiiiiiiiii: Qw, dynCall_viiiiii: Rw, dynCall_viiiiiii: Sw, dynCall_viiiiiiiiii: Tw, dynCall_iii: Uw, dynCall_iiiiii: Vw, dynCall_diii: Ww, dynCall_i: Xw, dynCall_iiiii: Yw, dynCall_viii: Zw, dynCall_v: _w, dynCall_iiiiiiiii: $w, dynCall_iiiiid: ax, dynCall_viiii: bx }; + }(Module.asmGlobalArg, Module.asmLibraryArg, buffer); + var _jpegls_encode = Module["_jpegls_encode"] = asm["_jpegls_encode"]; + var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; + var _free = Module["_free"] = asm["_free"]; + var _jpegls_decode = Module["_jpegls_decode"] = asm["_jpegls_decode"]; + var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; + var _i64Add = Module["_i64Add"] = asm["_i64Add"]; + var _memmove = Module["_memmove"] = asm["_memmove"]; + var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; + var _memset = Module["_memset"] = asm["_memset"]; + var _malloc = Module["_malloc"] = asm["_malloc"]; + var _memcpy = Module["_memcpy"] = asm["_memcpy"]; + var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"]; + var runPostSets = Module["runPostSets"] = asm["runPostSets"]; + var __GLOBAL__sub_I_iostream_cpp = Module["__GLOBAL__sub_I_iostream_cpp"] = asm["__GLOBAL__sub_I_iostream_cpp"]; + var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; + var __GLOBAL__sub_I_jpegls_cpp = Module["__GLOBAL__sub_I_jpegls_cpp"] = asm["__GLOBAL__sub_I_jpegls_cpp"]; + var __GLOBAL__I_000101 = Module["__GLOBAL__I_000101"] = asm["__GLOBAL__I_000101"]; + var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; + var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"]; + var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; + var dynCall_iiiiiid = Module["dynCall_iiiiiid"] = asm["dynCall_iiiiiid"]; + var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; + var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; + var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"]; + var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; + var dynCall_iiiiiiiiiiii = Module["dynCall_iiiiiiiiiiii"] = asm["dynCall_iiiiiiiiiiii"]; + var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; + var dynCall_viiiiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiiiii"] = asm["dynCall_viiiiiiiiiiiiiii"]; + var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; + var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; + var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = asm["dynCall_viiiiiiiiii"]; + var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; + var dynCall_iiiiii = Module["dynCall_iiiiii"] = asm["dynCall_iiiiii"]; + var dynCall_diii = Module["dynCall_diii"] = asm["dynCall_diii"]; + var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; + var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; + var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; + var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; + var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = asm["dynCall_iiiiiiiii"]; + var dynCall_iiiiid = Module["dynCall_iiiiid"] = asm["dynCall_iiiiid"]; + var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; + Runtime.stackAlloc = asm["stackAlloc"]; + Runtime.stackSave = asm["stackSave"]; + Runtime.stackRestore = asm["stackRestore"]; + Runtime.establishStackSpace = asm["establishStackSpace"]; + Runtime.setTempRet0 = asm["setTempRet0"]; + Runtime.getTempRet0 = asm["getTempRet0"]; + function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status; + } + ExitStatus.prototype = new Error(); + ExitStatus.prototype.constructor = ExitStatus; + var initialStackTop; + var preloadStartTime = null; + var calledMain = false; + dependenciesFulfilled = function runCaller() { + if (!Module["calledRun"]) + run(); + if (!Module["calledRun"]) + dependenciesFulfilled = runCaller; + }; + Module["callMain"] = Module.callMain = function callMain(args) { + assert(runDependencies == 0, "cannot call main when async dependencies remain! (listen on __ATMAIN__)"); + assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called"); + args = args || []; + ensureInitRuntime(); + var argc = args.length + 1; + function pad() { + for (var i3 = 0; i3 < 4 - 1; i3++) { + argv.push(0); + } + } + var argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)]; + pad(); + for (var i2 = 0; i2 < argc - 1; i2 = i2 + 1) { + argv.push(allocate(intArrayFromString(args[i2]), "i8", ALLOC_NORMAL)); + pad(); + } + argv.push(0); + argv = allocate(argv, "i32", ALLOC_NORMAL); + try { + var ret = Module["_main"](argc, argv, 0); + exit(ret, true); + } catch (e) { + if (e instanceof ExitStatus) { + return; + } else if (e == "SimulateInfiniteLoop") { + Module["noExitRuntime"] = true; + return; + } else { + if (e && typeof e === "object" && e.stack) + Module.printErr("exception thrown: " + [e, e.stack]); + throw e; + } + } finally { + calledMain = true; + } + }; + function run(args) { + args = args || Module["arguments"]; + if (preloadStartTime === null) + preloadStartTime = Date.now(); + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) + return; + if (Module["calledRun"]) + return; + function doRun() { + if (Module["calledRun"]) + return; + Module["calledRun"] = true; + if (ABORT) + return; + ensureInitRuntime(); + preMain(); + if (Module["onRuntimeInitialized"]) + Module["onRuntimeInitialized"](); + if (Module["_main"] && shouldRunNow) + Module["callMain"](args); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + Module["run"] = Module.run = run; + function exit(status, implicit) { + if (implicit && Module["noExitRuntime"]) { + return; + } + if (Module["noExitRuntime"]) { + } else { + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + exitRuntime(); + if (Module["onExit"]) + Module["onExit"](status); + } + if (ENVIRONMENT_IS_NODE) { + process["stdout"]["once"]("drain", function() { + process["exit"](status); + }); + console.log(" "); + setTimeout(function() { + process["exit"](status); + }, 500); + } else if (ENVIRONMENT_IS_SHELL && typeof quit === "function") { + quit(status); + } + throw new ExitStatus(status); + } + Module["exit"] = Module.exit = exit; + var abortDecorators = []; + function abort(what) { + if (what !== void 0) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what); + } else { + what = ""; + } + ABORT = true; + EXITSTATUS = 1; + var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."; + var output = "abort(" + what + ") at " + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach(function(decorator) { + output = decorator(output, what); + }); + } + throw output; + } + Module["abort"] = Module.abort = abort; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + var shouldRunNow = true; + if (Module["noInitialRun"]) { + shouldRunNow = false; + } + run(); + return Module; + }; + var moduleType = typeof module; + if (moduleType !== "undefined" && module.exports) { + module.exports = CharLS; } + } +}); - if (this.metaFinished) { - little = this.littleEndian; - group = data.getUint16(offset, little); - } else { - group = data.getUint16(offset, true); - - if (((this.metaFinishedOffset !== -1) && (offset >= this.metaFinishedOffset)) || (group !== 0x0002)) { - this.metaFinished = true; - little = this.littleEndian; - group = data.getUint16(offset, little); +// lib/jpeg-ls.js +var require_jpeg_ls = __commonJS({ + "lib/jpeg-ls.js"(exports2, module2) { + "use strict"; + var CharLS3 = CharLS3 || (typeof require !== "undefined" ? require_charLS_DynamicMemory_browser() : null); + var JpegLS = function() { + var charLS; + function constructor() { + } + constructor.prototype = { + decodeJPEGLS: function(pixelData, signed) { + return decodeJPEGLS(pixelData, signed); + } + }; + function jpegLSDecode(data, isSigned) { + var dataPtr = charLS._malloc(data.length); + charLS.writeArrayToMemory(data, dataPtr); + var imagePtrPtr = charLS._malloc(4); + var imageSizePtr = charLS._malloc(4); + var widthPtr = charLS._malloc(4); + var heightPtr = charLS._malloc(4); + var bitsPerSamplePtr = charLS._malloc(4); + var stridePtr = charLS._malloc(4); + var allowedLossyErrorPtr = charLS._malloc(4); + var componentsPtr = charLS._malloc(4); + var interleaveModePtr = charLS._malloc(4); + var result = charLS.ccall( + "jpegls_decode", + "number", + ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], + [dataPtr, data.length, imagePtrPtr, imageSizePtr, widthPtr, heightPtr, bitsPerSamplePtr, stridePtr, componentsPtr, allowedLossyErrorPtr, interleaveModePtr] + ); + var image = { + result, + width: charLS.getValue(widthPtr, "i32"), + height: charLS.getValue(heightPtr, "i32"), + bitsPerSample: charLS.getValue(bitsPerSamplePtr, "i32"), + stride: charLS.getValue(stridePtr, "i32"), + components: charLS.getValue(componentsPtr, "i32"), + allowedLossyError: charLS.getValue(allowedLossyErrorPtr, "i32"), + interleaveMode: charLS.getValue(interleaveModePtr, "i32"), + pixelData: void 0 + }; + var imagePtr = charLS.getValue(imagePtrPtr, "*"); + if (image.bitsPerSample <= 8) { + image.pixelData = new Uint8Array(image.width * image.height * image.components); + image.pixelData.set(new Uint8Array(charLS.HEAP8.buffer, imagePtr, image.pixelData.length)); } else { - little = true; + if (isSigned) { + image.pixelData = new Int16Array(image.width * image.height * image.components); + image.pixelData.set(new Int16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); + } else { + image.pixelData = new Uint16Array(image.width * image.height * image.components); + image.pixelData.set(new Uint16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); + } + } + charLS._free(dataPtr); + charLS._free(imagePtr); + charLS._free(imagePtrPtr); + charLS._free(imageSizePtr); + charLS._free(widthPtr); + charLS._free(heightPtr); + charLS._free(bitsPerSamplePtr); + charLS._free(stridePtr); + charLS._free(componentsPtr); + charLS._free(interleaveModePtr); + return image; + } + function initializeJPEGLS() { + if (typeof CharLS3 === "undefined") { + throw "No JPEG-LS decoder loaded"; + } + if (!charLS) { + charLS = CharLS3(); + if (!charLS || !charLS._jpegls_decode) { + throw "JPEG-LS failed to initialize"; + } + } + } + function decodeJPEGLS(pixelData, signed) { + initializeJPEGLS(); + var image = jpegLSDecode(pixelData, signed); + if (image.result !== 0 && image.result !== 6) { + throw "JPEG-LS decoder failed to decode frame (error code " + image.result + ")"; } + var imageFrame = {}; + imageFrame.columns = image.width; + imageFrame.rows = image.height; + imageFrame.pixelData = image.pixelData; + return imageFrame; + } + return constructor; + }(); + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = JpegLS; } + } +}); - if (!this.metaFound && (group === 0x0002)) { - this.metaFound = true; +// node_modules/fflate/lib/node.cjs +var require_node = __commonJS({ + "node_modules/fflate/lib/node.cjs"(exports2) { + "use strict"; + var Worker; + var workerAdd = ";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global"; + try { + Worker = require("worker_threads").Worker; + } catch (e) { } - - offset += 2; - - element = data.getUint16(offset, little); - offset += 2; - if (this.explicit || !this.metaFinished) { - vr = daikon.Utils.getStringAt(data, offset, 2); - - if (!this.metaFound && this.metaFinished && (daikon.Parser.VRS.indexOf(vr) === -1)) { - vr = daikon.Dictionary.getVR(group, element); - length = data.getUint32(offset, little); - offset += 4; - this.explicit = false; - } else { - offset += 2; - - if (daikon.Parser.DATA_VRS.indexOf(vr) !== -1) { - offset += 2; // skip two empty bytes - - length = data.getUint32(offset, little); - offset += 4; - } else { - length = data.getUint16(offset, little); - offset += 2; + var node_worker_1 = {}; + node_worker_1["default"] = Worker ? function(c, _, msg, transfer, cb) { + var done = false; + var w = new Worker(c + workerAdd, { eval: true }).on("error", function(e) { + return cb(e, null); + }).on("message", function(m) { + return cb(null, m); + }).on("exit", function(c2) { + if (c2 && !done) + cb(new Error("exited with code " + c2), null); + }); + w.postMessage(msg, transfer); + w.terminate = function() { + done = true; + return Worker.prototype.terminate.call(w); + }; + return w; + } : function(_, __, ___, ____, cb) { + setImmediate(function() { + return cb(new Error("async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)"), null); + }); + var NOP = function() { + }; + return { + terminate: NOP, + postMessage: NOP + }; + }; + var u8 = Uint8Array; + var u16 = Uint16Array; + var u32 = Uint32Array; + var fleb = new u8([ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 0, + /* unused */ + 0, + 0, + /* impossible */ + 0 + ]); + var fdeb = new u8([ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 10, + 11, + 11, + 12, + 12, + 13, + 13, + /* unused */ + 0, + 0 + ]); + var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); + var freb = function(eb, start) { + var b = new u16(31); + for (var i3 = 0; i3 < 31; ++i3) { + b[i3] = start += 1 << eb[i3 - 1]; + } + var r = new u32(b[30]); + for (var i3 = 1; i3 < 30; ++i3) { + for (var j = b[i3]; j < b[i3 + 1]; ++j) { + r[j] = j - b[i3] << 5 | i3; + } + } + return [b, r]; + }; + var _a = freb(fleb, 2); + var fl = _a[0]; + var revfl = _a[1]; + fl[28] = 258, revfl[258] = 28; + var _b = freb(fdeb, 0); + var fd = _b[0]; + var revfd = _b[1]; + var rev = new u16(32768); + for (i2 = 0; i2 < 32768; ++i2) { + x = (i2 & 43690) >>> 1 | (i2 & 21845) << 1; + x = (x & 52428) >>> 2 | (x & 13107) << 2; + x = (x & 61680) >>> 4 | (x & 3855) << 4; + rev[i2] = ((x & 65280) >>> 8 | (x & 255) << 8) >>> 1; + } + var x; + var i2; + var hMap = function(cd, mb, r) { + var s = cd.length; + var i3 = 0; + var l = new u16(mb); + for (; i3 < s; ++i3) { + if (cd[i3]) + ++l[cd[i3] - 1]; + } + var le = new u16(mb); + for (i3 = 0; i3 < mb; ++i3) { + le[i3] = le[i3 - 1] + l[i3 - 1] << 1; + } + var co; + if (r) { + co = new u16(1 << mb); + var rvb = 15 - mb; + for (i3 = 0; i3 < s; ++i3) { + if (cd[i3]) { + var sv = i3 << 4 | cd[i3]; + var r_1 = mb - cd[i3]; + var v = le[cd[i3] - 1]++ << r_1; + for (var m = v | (1 << r_1) - 1; v <= m; ++v) { + co[rev[v] >>> rvb] = sv; } + } } - } else { - vr = daikon.Dictionary.getVR(group, element); - length = data.getUint32(offset, little); - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - vr = 'SQ'; + } else { + co = new u16(s); + for (i3 = 0; i3 < s; ++i3) { + if (cd[i3]) { + co[i3] = rev[le[cd[i3] - 1]++] >>> 15 - cd[i3]; + } } - - offset += 4; - } - - offsetValue = offset; - - var isPixelData = ((group === daikon.Tag.TAG_PIXEL_DATA[0]) && (element === daikon.Tag.TAG_PIXEL_DATA[1])); - /* - color lookup data will be in (0028,12XX), so don't try to treat these as a sublist even though it can look like a list. Example: - (0028,1201) OW 0000\ffff\ffff\0000\ffff\ffff\0000\cccc\0000\0000\1e1e\0000\0101... # 512, 1 RedPaletteColorLookupTableData - (0028,1202) OW 0000\ffff\0000\ffff\8080\3333\ffff\b3b3\0000\0000\1e1e\0000\0101... # 512, 1 GreenPaletteColorLookupTableData - (0028,1203) OW 0000\0000\ffff\ffff\0000\4d4d\0000\0000\0000\0000\1e1e\0000\0101... # 512, 1 BluePaletteColorLookupTableData - */ - var isLookupTableData = 0x0028 === group && element>= 0x1201 && element<0x1300; - - if ((vr === 'SQ') || (!isLookupTableData && !isPixelData && !this.encapsulation && (daikon.Parser.DATA_VRS.indexOf(vr) !== -1) && (vr !== 'UC'))) { - value = this.parseSublist(data, offset, length, vr !== 'SQ'); - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - length = value[value.length - 1].offsetEnd - offset; + } + return co; + }; + var flt = new u8(288); + for (i2 = 0; i2 < 144; ++i2) + flt[i2] = 8; + var i2; + for (i2 = 144; i2 < 256; ++i2) + flt[i2] = 9; + var i2; + for (i2 = 256; i2 < 280; ++i2) + flt[i2] = 7; + var i2; + for (i2 = 280; i2 < 288; ++i2) + flt[i2] = 8; + var i2; + var fdt = new u8(32); + for (i2 = 0; i2 < 32; ++i2) + fdt[i2] = 5; + var i2; + var flm = /* @__PURE__ */ hMap(flt, 9, 0); + var flrm = /* @__PURE__ */ hMap(flt, 9, 1); + var fdm = /* @__PURE__ */ hMap(fdt, 5, 0); + var fdrm = /* @__PURE__ */ hMap(fdt, 5, 1); + var max = function(a) { + var m = a[0]; + for (var i3 = 1; i3 < a.length; ++i3) { + if (a[i3] > m) + m = a[i3]; + } + return m; + }; + var bits = function(d, p, m) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8) >> (p & 7) & m; + }; + var bits16 = function(d, p) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7); + }; + var shft = function(p) { + return (p + 7) / 8 | 0; + }; + var slc = function(v, s, e) { + if (s == null || s < 0) + s = 0; + if (e == null || e > v.length) + e = v.length; + var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s); + n.set(v.subarray(s, e)); + return n; + }; + exports2.FlateErrorCode = { + UnexpectedEOF: 0, + InvalidBlockType: 1, + InvalidLengthLiteral: 2, + InvalidDistance: 3, + StreamFinished: 4, + NoStreamHandler: 5, + InvalidHeader: 6, + NoCallback: 7, + InvalidUTF8: 8, + ExtraFieldTooLong: 9, + InvalidDate: 10, + FilenameTooLong: 11, + StreamFinishing: 12, + InvalidZipData: 13, + UnknownCompressionMethod: 14 + }; + var ec = [ + "unexpected EOF", + "invalid block type", + "invalid length/literal", + "invalid distance", + "stream finished", + "no stream handler", + , + "no callback", + "invalid UTF-8 data", + "extra field too long", + "date not in range 1980-2099", + "filename too long", + "stream finishing", + "invalid zip data" + // determined by unknown compression method + ]; + var err = function(ind, msg, nt) { + var e = new Error(msg || ec[ind]); + e.code = ind; + if (Error.captureStackTrace) + Error.captureStackTrace(e, err); + if (!nt) + throw e; + return e; + }; + var inflt = function(dat, buf, st) { + var sl = dat.length; + if (!sl || st && st.f && !st.l) + return buf || new u8(0); + var noBuf = !buf || st; + var noSt = !st || st.i; + if (!st) + st = {}; + if (!buf) + buf = new u8(sl * 3); + var cbuf = function(l2) { + var bl = buf.length; + if (l2 > bl) { + var nbuf = new u8(Math.max(bl * 2, l2)); + nbuf.set(buf); + buf = nbuf; } - } else if ((length > 0) && !testForTag) { - if (length === daikon.Parser.UNDEFINED_LENGTH) { - if (isPixelData) { - length = (data.byteLength - offset); + }; + var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; + var tbts = sl * 8; + do { + if (!lm) { + final = bits(dat, pos, 1); + var type2 = bits(dat, pos + 1, 3); + pos += 3; + if (!type2) { + var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l; + if (t > sl) { + if (noSt) + err(0); + break; } + if (noBuf) + cbuf(bt + l); + buf.set(dat.subarray(s, t), bt); + st.b = bt += l, st.p = pos = t * 8, st.f = final; + continue; + } else if (type2 == 1) + lm = flrm, dm = fdrm, lbt = 9, dbt = 5; + else if (type2 == 2) { + var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; + var tl = hLit + bits(dat, pos + 5, 31) + 1; + pos += 14; + var ldt = new u8(tl); + var clt = new u8(19); + for (var i3 = 0; i3 < hcLen; ++i3) { + clt[clim[i3]] = bits(dat, pos + i3 * 3, 7); + } + pos += hcLen * 3; + var clb = max(clt), clbmsk = (1 << clb) - 1; + var clm = hMap(clt, clb, 1); + for (var i3 = 0; i3 < tl; ) { + var r = clm[bits(dat, pos, clbmsk)]; + pos += r & 15; + var s = r >>> 4; + if (s < 16) { + ldt[i3++] = s; + } else { + var c = 0, n = 0; + if (s == 16) + n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i3 - 1]; + else if (s == 17) + n = 3 + bits(dat, pos, 7), pos += 3; + else if (s == 18) + n = 11 + bits(dat, pos, 127), pos += 7; + while (n--) + ldt[i3++] = c; + } + } + var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); + lbt = max(lt); + dbt = max(dt); + lm = hMap(lt, lbt, 1); + dm = hMap(dt, dbt, 1); + } else + err(1); + if (pos > tbts) { + if (noSt) + err(0); + break; + } } - - value = data.buffer.slice(offset, offset + length); - } - - offset += length; - tag = new daikon.Tag(group, element, vr, value, offsetStart, offsetValue, offset, this.littleEndian, this.charset); - - if (tag.value) { - if (tag.isTransformSyntax()) { - // 传输语法已存在 - this.transformSyntaxAlreadyExist = true; - if (tag.value[0] === daikon.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE) { - this.explicit = false; - this.littleEndian = true; - } else if (tag.value[0] === daikon.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG) { - this.explicit = true; - this.littleEndian = false; - } else if (tag.value[0] === daikon.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE) { - this.needsDeflate = true; - this.explicit = true; - this.littleEndian = true; - } else { - this.explicit = true; - this.littleEndian = true; + if (noBuf) + cbuf(bt + 131072); + var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; + var lpos = pos; + for (; ; lpos = pos) { + var c = lm[bits16(dat, pos) & lms], sym = c >>> 4; + pos += c & 15; + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (!c) + err(2); + if (sym < 256) + buf[bt++] = sym; + else if (sym == 256) { + lpos = pos, lm = null; + break; + } else { + var add = sym - 254; + if (sym > 264) { + var i3 = sym - 257, b = fleb[i3]; + add = bits(dat, pos, (1 << b) - 1) + fl[i3]; + pos += b; } - } else if (tag.isMetaLength()) { - this.metaFinishedOffset = tag.value[0] + offset; - } else if (tag.isCharset()) { - var charset = tag.value; - if (charset.length == 2) { - charset = (charset[0] || "ISO 2022 IR 6") + "\\" + charset[1]; + var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4; + if (!d) + err(3); + pos += d & 15; + var dt = fd[dsym]; + if (dsym > 3) { + var b = fdeb[dsym]; + dt += bits16(dat, pos) & (1 << b) - 1, pos += b; + } + if (pos > tbts) { + if (noSt) + err(0); + break; } - else if (charset.length == 1) { - - charset = charset[0]; + if (noBuf) + cbuf(bt + 131072); + var end = bt + add; + for (; bt < end; bt += 4) { + buf[bt] = buf[bt - dt]; + buf[bt + 1] = buf[bt + 1 - dt]; + buf[bt + 2] = buf[bt + 2 - dt]; + buf[bt + 3] = buf[bt + 3 - dt]; } - this.charset = charset; + bt = end; + } } - } - - return tag; -}; - - - -daikon.Parser.prototype.parseSublist = function (data, offset, length, raw) { - var sublistItem, - offsetEnd = offset + length, - tags = []; - - this.level++; - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - sublistItem = this.parseSublistItem(data, offset, raw); - - while (!sublistItem.isSequenceDelim()) { - tags.push(sublistItem); - offset = sublistItem.offsetEnd; - sublistItem = this.parseSublistItem(data, offset, raw); + st.l = lm, st.p = lpos, st.b = bt, st.f = final; + if (lm) + final = 1, st.m = lbt, st.d = dm, st.n = dbt; + } while (!final); + return bt == buf.length ? buf : slc(buf, 0, bt); + }; + var wbits = function(d, p, v) { + v <<= p & 7; + var o = p / 8 | 0; + d[o] |= v; + d[o + 1] |= v >>> 8; + }; + var wbits16 = function(d, p, v) { + v <<= p & 7; + var o = p / 8 | 0; + d[o] |= v; + d[o + 1] |= v >>> 8; + d[o + 2] |= v >>> 16; + }; + var hTree = function(d, mb) { + var t = []; + for (var i3 = 0; i3 < d.length; ++i3) { + if (d[i3]) + t.push({ s: i3, f: d[i3] }); + } + var s = t.length; + var t2 = t.slice(); + if (!s) + return [et, 0]; + if (s == 1) { + var v = new u8(t[0].s + 1); + v[t[0].s] = 1; + return [v, 1]; + } + t.sort(function(a, b) { + return a.f - b.f; + }); + t.push({ s: -1, f: 25001 }); + var l = t[0], r = t[1], i0 = 0, i1 = 1, i22 = 2; + t[0] = { s: -1, f: l.f + r.f, l, r }; + while (i1 != s - 1) { + l = t[t[i0].f < t[i22].f ? i0++ : i22++]; + r = t[i0 != i1 && t[i0].f < t[i22].f ? i0++ : i22++]; + t[i1++] = { s: -1, f: l.f + r.f, l, r }; + } + var maxSym = t2[0].s; + for (var i3 = 1; i3 < s; ++i3) { + if (t2[i3].s > maxSym) + maxSym = t2[i3].s; + } + var tr = new u16(maxSym + 1); + var mbt = ln(t[i1 - 1], tr, 0); + if (mbt > mb) { + var i3 = 0, dt = 0; + var lft = mbt - mb, cst = 1 << lft; + t2.sort(function(a, b) { + return tr[b.s] - tr[a.s] || a.f - b.f; + }); + for (; i3 < s; ++i3) { + var i2_1 = t2[i3].s; + if (tr[i2_1] > mb) { + dt += cst - (1 << mbt - tr[i2_1]); + tr[i2_1] = mb; + } else + break; } - - tags.push(sublistItem); - } else { - while (offset < offsetEnd) { - sublistItem = this.parseSublistItem(data, offset, raw); - tags.push(sublistItem); - offset = sublistItem.offsetEnd; + dt >>>= lft; + while (dt > 0) { + var i2_2 = t2[i3].s; + if (tr[i2_2] < mb) + dt -= 1 << mb - tr[i2_2]++ - 1; + else + ++i3; } - } - - this.level--; - - return tags; -}; - - - -daikon.Parser.prototype.parseSublistItem = function (data, offset, raw) { - var group, element, length, offsetEnd, tag, offsetStart = offset, value = null, offsetValue, sublistItemTag, tags = []; - - group = data.getUint16(offset, this.littleEndian); - offset += 2; - - element = data.getUint16(offset, this.littleEndian); - offset += 2; - - length = data.getUint32(offset, this.littleEndian); - offset += 4; - - offsetValue = offset; - - if (length === daikon.Parser.UNDEFINED_LENGTH) { - tag = this.getNextTag(data, offset); - - while (tag && !tag.isSublistItemDelim()) { - tags.push(tag); - offset = tag.offsetEnd; - tag = this.getNextTag(data, offset); + for (; i3 >= 0 && dt; --i3) { + var i2_3 = t2[i3].s; + if (tr[i2_3] == mb) { + --tr[i2_3]; + ++dt; + } } - - tag && tags.push(tag); - tag && (offset = tag.offsetEnd); - } else if (raw) { - value = data.buffer.slice(offset, offset + length); - offset = offset + length; - } else { - offsetEnd = offset + length; - - while (offset < offsetEnd) { - tag = this.getNextTag(data, offset); - tags.push(tag); - offset = tag.offsetEnd; + mbt = mb; + } + return [new u8(tr), mbt]; + }; + var ln = function(n, l, d) { + return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d; + }; + var lc = function(c) { + var s = c.length; + while (s && !c[--s]) + ; + var cl = new u16(++s); + var cli = 0, cln = c[0], cls = 1; + var w = function(v) { + cl[cli++] = v; + }; + for (var i3 = 1; i3 <= s; ++i3) { + if (c[i3] == cln && i3 != s) + ++cls; + else { + if (!cln && cls > 2) { + for (; cls > 138; cls -= 138) + w(32754); + if (cls > 2) { + w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305); + cls = 0; + } + } else if (cls > 3) { + w(cln), --cls; + for (; cls > 6; cls -= 6) + w(8304); + if (cls > 2) + w(cls - 3 << 5 | 8208), cls = 0; + } + while (cls--) + w(cln); + cls = 1; + cln = c[i3]; } - } - - sublistItemTag = new daikon.Tag(group, element, null, value || tags, offsetStart, offsetValue, offset, this.littleEndian); - - return sublistItemTag; -}; - - - -daikon.Parser.prototype.findFirstTagOffset = function (data) { - var offset = 0, - magicCookieLength = daikon.Parser.MAGIC_COOKIE.length, - searchOffsetMax = daikon.Parser.MAGIC_COOKIE_OFFSET * 5, - found = false, - ctr = 0, - ctrIn = 0, - ch = 0; - - if (daikon.Parser.isMagicCookieFound(data)) { - offset = daikon.Parser.MAGIC_COOKIE_OFFSET + magicCookieLength; - } else { - for (ctr = 0; ctr < searchOffsetMax; ctr += 1) { - ch = data.getUint8(ctr); - if (ch === daikon.Parser.MAGIC_COOKIE[0]) { - found = true; - for (ctrIn = 1; ctrIn < magicCookieLength; ctrIn += 1) { - if (data.getUint8(ctr + ctrIn) !== daikon.Parser.MAGIC_COOKIE[ctrIn]) { - found = false; + } + return [cl.subarray(0, cli), s]; + }; + var clen = function(cf, cl) { + var l = 0; + for (var i3 = 0; i3 < cl.length; ++i3) + l += cf[i3] * cl[i3]; + return l; + }; + var wfblk = function(out, pos, dat) { + var s = dat.length; + var o = shft(pos + 2); + out[o] = s & 255; + out[o + 1] = s >>> 8; + out[o + 2] = out[o] ^ 255; + out[o + 3] = out[o + 1] ^ 255; + for (var i3 = 0; i3 < s; ++i3) + out[o + i3 + 4] = dat[i3]; + return (o + 4 + s) * 8; + }; + var wblk = function(dat, out, final, syms, lf, df, eb, li, bs, bl, p) { + wbits(out, p++, final); + ++lf[256]; + var _a2 = hTree(lf, 15), dlt = _a2[0], mlb = _a2[1]; + var _b2 = hTree(df, 15), ddt = _b2[0], mdb = _b2[1]; + var _c = lc(dlt), lclt = _c[0], nlc = _c[1]; + var _d = lc(ddt), lcdt = _d[0], ndc = _d[1]; + var lcfreq = new u16(19); + for (var i3 = 0; i3 < lclt.length; ++i3) + lcfreq[lclt[i3] & 31]++; + for (var i3 = 0; i3 < lcdt.length; ++i3) + lcfreq[lcdt[i3] & 31]++; + var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1]; + var nlcc = 19; + for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc) + ; + var flen = bl + 5 << 3; + var ftlen = clen(lf, flt) + clen(df, fdt) + eb; + var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]); + if (flen <= ftlen && flen <= dtlen) + return wfblk(out, p, dat.subarray(bs, bs + bl)); + var lm, ll, dm, dl; + wbits(out, p, 1 + (dtlen < ftlen)), p += 2; + if (dtlen < ftlen) { + lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt; + var llm = hMap(lct, mlcb, 0); + wbits(out, p, nlc - 257); + wbits(out, p + 5, ndc - 1); + wbits(out, p + 10, nlcc - 4); + p += 14; + for (var i3 = 0; i3 < nlcc; ++i3) + wbits(out, p + 3 * i3, lct[clim[i3]]); + p += 3 * nlcc; + var lcts = [lclt, lcdt]; + for (var it = 0; it < 2; ++it) { + var clct = lcts[it]; + for (var i3 = 0; i3 < clct.length; ++i3) { + var len = clct[i3] & 31; + wbits(out, p, llm[len]), p += lct[len]; + if (len > 15) + wbits(out, p, clct[i3] >>> 5 & 127), p += clct[i3] >>> 12; + } + } + } else { + lm = flm, ll = flt, dm = fdm, dl = fdt; + } + for (var i3 = 0; i3 < li; ++i3) { + if (syms[i3] > 255) { + var len = syms[i3] >>> 18 & 31; + wbits16(out, p, lm[len + 257]), p += ll[len + 257]; + if (len > 7) + wbits(out, p, syms[i3] >>> 23 & 31), p += fleb[len]; + var dst = syms[i3] & 31; + wbits16(out, p, dm[dst]), p += dl[dst]; + if (dst > 3) + wbits16(out, p, syms[i3] >>> 5 & 8191), p += fdeb[dst]; + } else { + wbits16(out, p, lm[syms[i3]]), p += ll[syms[i3]]; + } + } + wbits16(out, p, lm[256]); + return p + ll[256]; + }; + var deo = /* @__PURE__ */ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]); + var et = /* @__PURE__ */ new u8(0); + var dflt = function(dat, lvl, plvl, pre, post, lst) { + var s = dat.length; + var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7e3)) + post); + var w = o.subarray(pre, o.length - post); + var pos = 0; + if (!lvl || s < 8) { + for (var i3 = 0; i3 <= s; i3 += 65535) { + var e = i3 + 65535; + if (e >= s) { + w[pos >> 3] = lst; + } + pos = wfblk(w, pos + 1, dat.subarray(i3, e)); + } + } else { + var opt = deo[lvl - 1]; + var n = opt >>> 13, c = opt & 8191; + var msk_1 = (1 << plvl) - 1; + var prev = new u16(32768), head = new u16(msk_1 + 1); + var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1; + var hsh = function(i4) { + return (dat[i4] ^ dat[i4 + 1] << bs1_1 ^ dat[i4 + 2] << bs2_1) & msk_1; + }; + var syms = new u32(25e3); + var lf = new u16(288), df = new u16(32); + var lc_1 = 0, eb = 0, i3 = 0, li = 0, wi = 0, bs = 0; + for (; i3 < s; ++i3) { + var hv = hsh(i3); + var imod = i3 & 32767, pimod = head[hv]; + prev[imod] = pimod; + head[hv] = imod; + if (wi <= i3) { + var rem = s - i3; + if ((lc_1 > 7e3 || li > 24576) && rem > 423) { + pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i3 - bs, pos); + li = lc_1 = eb = 0, bs = i3; + for (var j = 0; j < 286; ++j) + lf[j] = 0; + for (var j = 0; j < 30; ++j) + df[j] = 0; + } + var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767; + if (rem > 2 && hv == hsh(i3 - dif)) { + var maxn = Math.min(n, rem) - 1; + var maxd = Math.min(32767, i3); + var ml = Math.min(258, rem); + while (dif <= maxd && --ch_1 && imod != pimod) { + if (dat[i3 + l] == dat[i3 + l - dif]) { + var nl = 0; + for (; nl < ml && dat[i3 + nl] == dat[i3 + nl - dif]; ++nl) + ; + if (nl > l) { + l = nl, d = dif; + if (nl > maxn) + break; + var mmd = Math.min(dif, nl - 2); + var md = 0; + for (var j = 0; j < mmd; ++j) { + var ti = i3 - dif + j + 32768 & 32767; + var pti = prev[ti]; + var cd = ti - pti + 32768 & 32767; + if (cd > md) + md = cd, pimod = ti; } + } } - - if (found) { - offset = ctr + magicCookieLength; - break; - } + imod = pimod, pimod = prev[imod]; + dif += imod - pimod + 32768 & 32767; + } + } + if (d) { + syms[li++] = 268435456 | revfl[l] << 18 | revfd[d]; + var lin = revfl[l] & 31, din = revfd[d] & 31; + eb += fleb[lin] + fdeb[din]; + ++lf[257 + lin]; + ++df[din]; + wi = i3 + l; + ++lc_1; + } else { + syms[li++] = dat[i3]; + ++lf[dat[i3]]; + } + } + } + pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i3 - bs, pos); + if (!lst && pos & 7) + pos = wfblk(w, pos + 1, et); + } + return slc(o, 0, pre + shft(pos) + post); + }; + var crct = /* @__PURE__ */ function() { + var t = new Int32Array(256); + for (var i3 = 0; i3 < 256; ++i3) { + var c = i3, k = 9; + while (--k) + c = (c & 1 && -306674912) ^ c >>> 1; + t[i3] = c; + } + return t; + }(); + var crc = function() { + var c = -1; + return { + p: function(d) { + var cr = c; + for (var i3 = 0; i3 < d.length; ++i3) + cr = crct[cr & 255 ^ d[i3]] ^ cr >>> 8; + c = cr; + }, + d: function() { + return ~c; + } + }; + }; + var adler = function() { + var a = 1, b = 0; + return { + p: function(d) { + var n = a, m = b; + var l = d.length | 0; + for (var i3 = 0; i3 != l; ) { + var e = Math.min(i3 + 2655, l); + for (; i3 < e; ++i3) + m += n += d[i3]; + n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16); + } + a = n, b = m; + }, + d: function() { + a %= 65521, b %= 65521; + return (a & 255) << 24 | a >>> 8 << 16 | (b & 255) << 8 | b >>> 8; + } + }; + }; + var dopt = function(dat, opt, pre, post, st) { + return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 12 + opt.mem, pre, post, !st); + }; + var mrg = function(a, b) { + var o = {}; + for (var k in a) + o[k] = a[k]; + for (var k in b) + o[k] = b[k]; + return o; + }; + var wcln = function(fn, fnStr, td2) { + var dt = fn(); + var st = fn.toString(); + var ks = st.slice(st.indexOf("[") + 1, st.lastIndexOf("]")).replace(/\s+/g, "").split(","); + for (var i3 = 0; i3 < dt.length; ++i3) { + var v = dt[i3], k = ks[i3]; + if (typeof v == "function") { + fnStr += ";" + k + "="; + var st_1 = v.toString(); + if (v.prototype) { + if (st_1.indexOf("[native code]") != -1) { + var spInd = st_1.indexOf(" ", 8) + 1; + fnStr += st_1.slice(spInd, st_1.indexOf("(", spInd)); + } else { + fnStr += st_1; + for (var t in v.prototype) + fnStr += ";" + k + ".prototype." + t + "=" + v.prototype[t].toString(); } + } else + fnStr += st_1; + } else + td2[k] = v; + } + return [fnStr, td2]; + }; + var ch = []; + var cbfs = function(v) { + var tl = []; + for (var k in v) { + if (v[k].buffer) { + tl.push((v[k] = new v[k].constructor(v[k])).buffer); + } + } + return tl; + }; + var wrkr = function(fns, init, id, cb) { + var _a2; + if (!ch[id]) { + var fnStr = "", td_1 = {}, m = fns.length - 1; + for (var i3 = 0; i3 < m; ++i3) + _a2 = wcln(fns[i3], fnStr, td_1), fnStr = _a2[0], td_1 = _a2[1]; + ch[id] = wcln(fns[m], fnStr, td_1); + } + var td2 = mrg({}, ch[id][1]); + return node_worker_1["default"](ch[id][0] + ";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=" + init.toString() + "}", id, td2, cbfs(td2), cb); + }; + var bInflt = function() { + return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; + }; + var bDflt = function() { + return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; + }; + var gze = function() { + return [gzh, gzhl, wbytes, crc, crct]; + }; + var guze = function() { + return [gzs, gzl]; + }; + var zle = function() { + return [zlh, wbytes, adler]; + }; + var zule = function() { + return [zlv]; + }; + var pbf = function(msg) { + return postMessage(msg, [msg.buffer]); + }; + var gu8 = function(o) { + return o && o.size && new u8(o.size); + }; + var cbify = function(dat, opts, fns, init, id, cb) { + var w = wrkr(fns, init, id, function(err2, dat2) { + w.terminate(); + cb(err2, dat2); + }); + w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []); + return function() { + w.terminate(); + }; + }; + var astrm = function(strm) { + strm.ondata = function(dat, final) { + return postMessage([dat, final], [dat.buffer]); + }; + return function(ev) { + return strm.push(ev.data[0], ev.data[1]); + }; + }; + var astrmify = function(fns, strm, opts, init, id) { + var t; + var w = wrkr(fns, init, id, function(err2, dat) { + if (err2) + w.terminate(), strm.ondata.call(strm, err2); + else { + if (dat[1]) + w.terminate(); + strm.ondata.call(strm, err2, dat[0], dat[1]); } + }); + w.postMessage(opts); + strm.push = function(d, f) { + if (!strm.ondata) + err(5); + if (t) + strm.ondata(err(4, 0, 1), null, !!f); + w.postMessage([d, t = f], [d.buffer]); + }; + strm.terminate = function() { + w.terminate(); + }; + }; + var b2 = function(d, b) { + return d[b] | d[b + 1] << 8; + }; + var b4 = function(d, b) { + return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; + }; + var b8 = function(d, b) { + return b4(d, b) + b4(d, b + 4) * 4294967296; + }; + var wbytes = function(d, b, v) { + for (; v; ++b) + d[b] = v, v >>>= 8; + }; + var gzh = function(c, o) { + var fn = o.filename; + c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; + if (o.mtime != 0) + wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1e3)); + if (fn) { + c[3] = 8; + for (var i3 = 0; i3 <= fn.length; ++i3) + c[i3 + 10] = fn.charCodeAt(i3); + } + }; + var gzs = function(d) { + if (d[0] != 31 || d[1] != 139 || d[2] != 8) + err(6, "invalid gzip data"); + var flg = d[3]; + var st = 10; + if (flg & 4) + st += d[10] | (d[11] << 8) + 2; + for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) + ; + return st + (flg & 2); + }; + var gzl = function(d) { + var l = d.length; + return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0; + }; + var gzhl = function(o) { + return 10 + (o.filename && o.filename.length + 1 || 0); + }; + var zlh = function(c, o) { + var lv = o.level, fl2 = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2; + c[0] = 120, c[1] = fl2 << 6 | (fl2 ? 32 - 2 * fl2 : 1); + }; + var zlv = function(d) { + if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31) + err(6, "invalid zlib data"); + if (d[1] & 32) + err(6, "invalid zlib data: preset dictionaries not supported"); + }; + function AsyncCmpStrm(opts, cb) { + if (!cb && typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + return opts; } - - return offset; -}; - - - -daikon.Parser.prototype.hasError = function () { - return (this.error !== null); -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Parser; -} - -},{"./dictionary.js":22,"./image.js":23,"./tag.js":31,"./utilities.js":32,"fflate":7}],28:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; - - -/*** Constructor ***/ - -/** - * The RLE constructor. - * @type {Function} - */ -daikon.RLE = daikon.RLE || function () { - this.rawData = null; - this.bytesRead = 0; - this.bytesPut = 0; - this.segElemPut = 0; - this.numSegments = 0; - this.segmentOffsets = []; - this.littleEndian = true; - this.segmentIndex = 0; - this.numElements = 0; - this.size = 0; - this.output = null; -}; - - -/*** Static Pseudo-constants ***/ - -daikon.RLE.HEADER_SIZE = 64; - - -/*** Prototype Methods ***/ - -/** - * Decodes the RLE data. - * @param {ArrayBuffer} data - * @param {boolean} littleEndian - * @param {number} numElements - * @returns {DataView} - */ -daikon.RLE.prototype.decode = function (data, littleEndian, numElements) { - var ctr; - - this.rawData = new DataView(data); - this.littleEndian = littleEndian; - this.numElements = numElements; - - this.readHeader(); - this.output = new DataView(new ArrayBuffer(this.size)); - - for (ctr = 0; ctr < this.numSegments; ctr+=1) { - this.readNextSegment(); + var Deflate = /* @__PURE__ */ function() { + function Deflate2(opts, cb) { + if (!cb && typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + this.o = opts || {}; + } + Deflate2.prototype.p = function(c, f) { + this.ondata(dopt(c, this.o, 0, 0, !f), f); + }; + Deflate2.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + this.d = final; + this.p(chunk, final || false); + }; + return Deflate2; + }(); + exports2.Deflate = Deflate; + var AsyncDeflate = /* @__PURE__ */ function() { + function AsyncDeflate2(opts, cb) { + astrmify([ + bDflt, + function() { + return [astrm, Deflate]; + } + ], this, AsyncCmpStrm.call(this, opts, cb), function(ev) { + var strm = new Deflate(ev.data); + onmessage = astrm(strm); + }, 6); + } + return AsyncDeflate2; + }(); + exports2.AsyncDeflate = AsyncDeflate; + function deflate(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bDflt + ], function(ev) { + return pbf(deflateSync(ev.data[0], ev.data[1])); + }, 0, cb); } - - return this.processData(); -}; - - -daikon.RLE.prototype.processData = function () { - /*jslint bitwise: true */ - - var ctr, temp1, temp2, temp3, value, outputProcessed, offset; - - if (this.numSegments === 1) { - return this.output; - } else if (this.numSegments === 2) { - outputProcessed = new DataView(new ArrayBuffer(this.size)); - - for (ctr = 0; ctr < this.numElements; ctr+=1) { - temp1 = (this.output.getInt8(ctr)); - temp2 = (this.output.getInt8(ctr + this.numElements)); - value = (((temp1 & 0xFF) << 8) | (temp2 & 0xFF)); - outputProcessed.setInt16(ctr * 2, value, this.littleEndian); - } - - return outputProcessed; - } else if (this.numSegments === 3) { // rgb - outputProcessed = new DataView(new ArrayBuffer(this.size)); - offset = (2 * this.numElements); - - for (ctr = 0; ctr < this.numElements; ctr+=1) { - outputProcessed.setInt8(ctr * 3, this.output.getInt8(ctr)); - outputProcessed.setInt8(ctr * 3 + 1, this.output.getInt8(ctr + this.numElements)); - outputProcessed.setInt8(ctr * 3 + 2, this.output.getInt8(ctr + offset)); - } - - return outputProcessed; - } else { - throw new Error("RLE data with " + this.numSegments + " segments is not supported!"); + exports2.deflate = deflate; + function deflateSync(data, opts) { + return dopt(data, opts || {}, 0, 0); } -}; - - - -daikon.RLE.prototype.readHeader = function () { - var ctr; - - this.numSegments = this.getInt32(); - this.size = this.numElements * this.numSegments; - - for (ctr = 0; ctr < this.numSegments; ctr+=1) { - this.segmentOffsets[ctr] = this.getInt32(); + exports2.deflateSync = deflateSync; + var Inflate = /* @__PURE__ */ function() { + function Inflate2(cb) { + this.s = {}; + this.p = new u8(0); + this.ondata = cb; + } + Inflate2.prototype.e = function(c) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + var l = this.p.length; + var n = new u8(l + c.length); + n.set(this.p), n.set(c, l), this.p = n; + }; + Inflate2.prototype.c = function(final) { + this.d = this.s.i = final || false; + var bts = this.s.b; + var dt = inflt(this.p, this.o, this.s); + this.ondata(slc(dt, bts, this.s.b), this.d); + this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; + this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7; + }; + Inflate2.prototype.push = function(chunk, final) { + this.e(chunk), this.c(final); + }; + return Inflate2; + }(); + exports2.Inflate = Inflate; + var AsyncInflate = /* @__PURE__ */ function() { + function AsyncInflate2(cb) { + this.ondata = cb; + astrmify([ + bInflt, + function() { + return [astrm, Inflate]; + } + ], this, 0, function() { + var strm = new Inflate(); + onmessage = astrm(strm); + }, 7); + } + return AsyncInflate2; + }(); + exports2.AsyncInflate = AsyncInflate; + function inflate(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bInflt + ], function(ev) { + return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); + }, 1, cb); } - - this.bytesRead = daikon.RLE.HEADER_SIZE; -}; - - - -daikon.RLE.prototype.hasValidInput = function () { - return ((this.bytesRead < this.rawData.buffer.byteLength) && - (this.bytesPut < this.size) && (this.segElemPut < this.numElements)); -}; - - - -daikon.RLE.prototype.readNextSegment = function () { - var code; - - this.bytesRead = this.segmentOffsets[this.segmentIndex]; - this.segElemPut = 0; - - while (this.hasValidInput()) { - code = this.get(); - - if ((code >= 0) && (code < 128)) { - this.readLiteral(code); - } else if ((code <= -1) && (code > -128)) { - this.readEncoded(code); - } else if (code === -128) { - console.warn("RLE: unsupported code!"); - } + exports2.inflate = inflate; + function inflateSync(data, out) { + return inflt(data, out); } - - this.segmentIndex+=1; -}; - - - -daikon.RLE.prototype.readLiteral = function (code) { - var ctr, length = (code + 1); - - if (this.hasValidInput()) { - for (ctr = 0; ctr < length; ctr+=1) { - this.put(this.get()); + exports2.inflateSync = inflateSync; + var Gzip = /* @__PURE__ */ function() { + function Gzip2(opts, cb) { + this.c = crc(); + this.l = 0; + this.v = 1; + Deflate.call(this, opts, cb); + } + Gzip2.prototype.push = function(chunk, final) { + Deflate.prototype.push.call(this, chunk, final); + }; + Gzip2.prototype.p = function(c, f) { + this.c.p(c); + this.l += c.length; + var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f); + if (this.v) + gzh(raw, this.o), this.v = 0; + if (f) + wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l); + this.ondata(raw, f); + }; + return Gzip2; + }(); + exports2.Gzip = Gzip; + exports2.Compress = Gzip; + var AsyncGzip = /* @__PURE__ */ function() { + function AsyncGzip2(opts, cb) { + astrmify([ + bDflt, + gze, + function() { + return [astrm, Deflate, Gzip]; + } + ], this, AsyncCmpStrm.call(this, opts, cb), function(ev) { + var strm = new Gzip(ev.data); + onmessage = astrm(strm); + }, 8); + } + return AsyncGzip2; + }(); + exports2.AsyncGzip = AsyncGzip; + exports2.AsyncCompress = AsyncGzip; + function gzip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bDflt, + gze, + function() { + return [gzipSync]; } - } else { - console.warn("RLE: insufficient data!"); + ], function(ev) { + return pbf(gzipSync(ev.data[0], ev.data[1])); + }, 2, cb); } -}; - - - -daikon.RLE.prototype.readEncoded = function (code) { - var ctr, - runLength = (1 - code), - encoded = this.get(); - - for (ctr = 0; ctr < runLength; ctr+=1) { - this.put(encoded); + exports2.gzip = gzip; + exports2.compress = gzip; + function gzipSync(data, opts) { + if (!opts) + opts = {}; + var c = crc(), l = data.length; + c.p(data); + var d = dopt(data, opts, gzhl(opts), 8), s = d.length; + return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d; } -}; - - - -daikon.RLE.prototype.getInt32 = function () { - var value = this.rawData.getInt32(this.bytesRead, this.littleEndian); - this.bytesRead += 4; - return value; -}; - - - -daikon.RLE.prototype.getInt16 = function () { - var value = this.rawData.getInt16(this.bytesRead, this.littleEndian); - this.bytesRead += 2; - return value; -}; - - - -daikon.RLE.prototype.get = function () { - var value = this.rawData.getInt8(this.bytesRead); - this.bytesRead += 1; - return value; -}; - - - -daikon.RLE.prototype.put = function (val) { - this.output.setInt8(this.bytesPut, val); - this.bytesPut += 1; - this.segElemPut += 1; -}; - - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.RLE; -} - -},{}],29:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Parser = daikon.Parser || ((typeof require !== 'undefined') ? require('./parser.js') : null); -daikon.Image = daikon.Image || ((typeof require !== 'undefined') ? require('./image.js') : null); -daikon.OrderedMap = daikon.OrderedMap || ((typeof require !== 'undefined') ? require('./orderedmap.js') : null); -daikon.OrderedMapIterator = daikon.OrderedMapIterator || ((typeof require !== 'undefined') ? require('./iterator.js') : null); -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); - - -/*** Constructor ***/ - -/** - * The Series constructor. - * @property {daikon.Image[]} images - * @type {Function} - */ -daikon.Series = daikon.Series || function () { - this.images = []; - this.imagesOriginalOrder = null; - this.isMosaic = false; - this.isElscint = false; - this.isCompressed = false; - this.numberOfFrames = 0; - this.numberOfFramesInFile = 0; - this.isMultiFrame = false; - this.isMultiFrameVolume = false; - this.isMultiFrameTimeseries = false; - this.isImplicitTimeseries = false; - this.sliceSense = false; - this.sliceDir = daikon.Image.SLICE_DIRECTION_UNKNOWN; - this.error = null; -}; - - -/*** Static fields ***/ -daikon.Series.parserError = null; - -/** - * True to keep original order of images, ignoring metadata-based ordering. - * @type {boolean} - */ -daikon.Series.useExplicitOrdering = false; - -/** - * A hint to software to use this explicit distance (mm) between slices (see daikon.Series.useExplicitOrdering) - * @type {number} - */ -daikon.Series.useExplicitSpacing = 0; - - -/*** Static Methods ***/ - -/** - * Parses the DICOM header and return an image object. - * @param {DataView} data - * @returns {daikon.Image|null} - */ -daikon.Series.parseImage = function (data) { - var parser, image; - - parser = new daikon.Parser(); - image = parser.parse(data); - - if (parser.hasError()) { - daikon.Series.parserError = parser.error; - return null; + exports2.gzipSync = gzipSync; + exports2.compressSync = gzipSync; + var Gunzip = /* @__PURE__ */ function() { + function Gunzip2(cb) { + this.v = 1; + Inflate.call(this, cb); + } + Gunzip2.prototype.push = function(chunk, final) { + Inflate.prototype.e.call(this, chunk); + if (this.v) { + var s = this.p.length > 3 ? gzs(this.p) : 4; + if (s >= this.p.length && !final) + return; + this.p = this.p.subarray(s), this.v = 0; + } + if (final) { + if (this.p.length < 8) + err(6, "invalid gzip data"); + this.p = this.p.subarray(0, -8); + } + Inflate.prototype.c.call(this, final); + }; + return Gunzip2; + }(); + exports2.Gunzip = Gunzip; + var AsyncGunzip = /* @__PURE__ */ function() { + function AsyncGunzip2(cb) { + this.ondata = cb; + astrmify([ + bInflt, + guze, + function() { + return [astrm, Inflate, Gunzip]; + } + ], this, 0, function() { + var strm = new Gunzip(); + onmessage = astrm(strm); + }, 9); + } + return AsyncGunzip2; + }(); + exports2.AsyncGunzip = AsyncGunzip; + function gunzip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bInflt, + guze, + function() { + return [gunzipSync]; + } + ], function(ev) { + return pbf(gunzipSync(ev.data[0])); + }, 3, cb); } - - if (parser.inflated) { - image.inflated = parser.inflated; + exports2.gunzip = gunzip; + function gunzipSync(data, out) { + return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data))); } - - return image; -}; - - - -daikon.Series.getMosaicOffset = function (mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, xLocVal, - yLocVal, zLocVal) { - var xLoc, yLoc, zLoc; - - xLoc = xLocVal; - yLoc = yLocVal; - zLoc = zLocVal; - - xLoc = ((zLoc % mosaicCols) * mosaicColWidth) + xLoc; - yLoc = (((parseInt(zLoc / mosaicCols)) * mosaicRowHeight) + yLoc) * mosaicWidth; - - return (xLoc + yLoc); -}; - - - -daikon.Series.orderDicoms = function (images, numFrames, sliceDir) { - var hasImagePosition, hasSliceLocation, hasImageNumber, timeMap, timeIt, ctr, ctrIn, dg, ordered, - imagesOrderedByTimeAndSpace; - - hasImagePosition = (images[0].getImagePosition() !== null); - hasSliceLocation = (images[0].getSliceLocation() !== null); - hasImageNumber = (images[0].getImageNumber() !== null); - - timeMap = daikon.Series.orderByTime(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation); - timeIt = timeMap.orderedKeys; - - imagesOrderedByTimeAndSpace = []; - - for (ctr = 0; ctr < timeIt.length; ctr += 1) { - dg = timeMap.get(timeIt[ctr]); - - if (hasImagePosition) { - ordered = daikon.Series.orderByImagePosition(dg, sliceDir); - } else if (hasSliceLocation) { - ordered = daikon.Series.orderBySliceLocation(dg); - } else if (hasImageNumber) { - ordered = daikon.Series.orderByImageNumber(dg); - } else { - ordered = dg; + exports2.gunzipSync = gunzipSync; + var Zlib = /* @__PURE__ */ function() { + function Zlib2(opts, cb) { + this.c = adler(); + this.v = 1; + Deflate.call(this, opts, cb); + } + Zlib2.prototype.push = function(chunk, final) { + Deflate.prototype.push.call(this, chunk, final); + }; + Zlib2.prototype.p = function(c, f) { + this.c.p(c); + var raw = dopt(c, this.o, this.v && 2, f && 4, !f); + if (this.v) + zlh(raw, this.o), this.v = 0; + if (f) + wbytes(raw, raw.length - 4, this.c.d()); + this.ondata(raw, f); + }; + return Zlib2; + }(); + exports2.Zlib = Zlib; + var AsyncZlib = /* @__PURE__ */ function() { + function AsyncZlib2(opts, cb) { + astrmify([ + bDflt, + zle, + function() { + return [astrm, Deflate, Zlib]; + } + ], this, AsyncCmpStrm.call(this, opts, cb), function(ev) { + var strm = new Zlib(ev.data); + onmessage = astrm(strm); + }, 10); + } + return AsyncZlib2; + }(); + exports2.AsyncZlib = AsyncZlib; + function zlib(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bDflt, + zle, + function() { + return [zlibSync]; } - - for (ctrIn = 0; ctrIn < ordered.length; ctrIn += 1) { - imagesOrderedByTimeAndSpace.push(ordered[ctrIn]); + ], function(ev) { + return pbf(zlibSync(ev.data[0], ev.data[1])); + }, 4, cb); + } + exports2.zlib = zlib; + function zlibSync(data, opts) { + if (!opts) + opts = {}; + var a = adler(); + a.p(data); + var d = dopt(data, opts, 2, 4); + return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d; + } + exports2.zlibSync = zlibSync; + var Unzlib = /* @__PURE__ */ function() { + function Unzlib2(cb) { + this.v = 1; + Inflate.call(this, cb); + } + Unzlib2.prototype.push = function(chunk, final) { + Inflate.prototype.e.call(this, chunk); + if (this.v) { + if (this.p.length < 2 && !final) + return; + this.p = this.p.subarray(2), this.v = 0; } + if (final) { + if (this.p.length < 4) + err(6, "invalid zlib data"); + this.p = this.p.subarray(0, -4); + } + Inflate.prototype.c.call(this, final); + }; + return Unzlib2; + }(); + exports2.Unzlib = Unzlib; + var AsyncUnzlib = /* @__PURE__ */ function() { + function AsyncUnzlib2(cb) { + this.ondata = cb; + astrmify([ + bInflt, + zule, + function() { + return [astrm, Inflate, Unzlib]; + } + ], this, 0, function() { + var strm = new Unzlib(); + onmessage = astrm(strm); + }, 11); + } + return AsyncUnzlib2; + }(); + exports2.AsyncUnzlib = AsyncUnzlib; + function unzlib(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bInflt, + zule, + function() { + return [unzlibSync]; + } + ], function(ev) { + return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); + }, 5, cb); } - - for (ctrIn = 0; ctrIn < imagesOrderedByTimeAndSpace.length; ctrIn += 1) { - imagesOrderedByTimeAndSpace[ctrIn].index = ctrIn; + exports2.unzlib = unzlib; + function unzlibSync(data, out) { + return inflt((zlv(data), data.subarray(2, -4)), out); } - - return imagesOrderedByTimeAndSpace; -}; - - - -daikon.Series.orderByImagePosition = function (images, sliceDir) { - var dicomMap, ctr; - dicomMap = new daikon.OrderedMap(); - - for (ctr = 0; ctr < images.length; ctr += 1) { - dicomMap.put(images[ctr].getImagePositionSliceDir(sliceDir), images[ctr]); + exports2.unzlibSync = unzlibSync; + var Decompress = /* @__PURE__ */ function() { + function Decompress2(cb) { + this.G = Gunzip; + this.I = Inflate; + this.Z = Unzlib; + this.ondata = cb; + } + Decompress2.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + if (!this.s) { + if (this.p && this.p.length) { + var n = new u8(this.p.length + chunk.length); + n.set(this.p), n.set(chunk, this.p.length); + } else + this.p = chunk; + if (this.p.length > 2) { + var _this_1 = this; + var cb = function() { + _this_1.ondata.apply(_this_1, arguments); + }; + this.s = this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8 ? new this.G(cb) : (this.p[0] & 15) != 8 || this.p[0] >> 4 > 7 || (this.p[0] << 8 | this.p[1]) % 31 ? new this.I(cb) : new this.Z(cb); + this.s.push(this.p, final); + this.p = null; + } + } else + this.s.push(chunk, final); + }; + return Decompress2; + }(); + exports2.Decompress = Decompress; + var AsyncDecompress = /* @__PURE__ */ function() { + function AsyncDecompress2(cb) { + this.G = AsyncGunzip; + this.I = AsyncInflate; + this.Z = AsyncUnzlib; + this.ondata = cb; + } + AsyncDecompress2.prototype.push = function(chunk, final) { + Decompress.prototype.push.call(this, chunk, final); + }; + return AsyncDecompress2; + }(); + exports2.AsyncDecompress = AsyncDecompress; + function decompress(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzip(data, opts, cb) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflate(data, opts, cb) : unzlib(data, opts, cb); } - - return dicomMap.getOrderedValues(); -}; - - - -daikon.Series.orderBySliceLocation = function (images) { - var dicomMap, ctr; - dicomMap = new daikon.OrderedMap(); - - for (ctr = 0; ctr < images.length; ctr += 1) { - dicomMap.put(images[ctr].getSliceLocation(), images[ctr]); + exports2.decompress = decompress; + function decompressSync(data, out) { + return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, out) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, out) : unzlibSync(data, out); } - - return dicomMap.getOrderedValues(); -}; - - - -daikon.Series.orderByImageNumber = function (images) { - var dicomMap, ctr; - dicomMap = new daikon.OrderedMap(); - - for (ctr = 0; ctr < images.length; ctr += 1) { - dicomMap.put(images[ctr].getImageNumber(), images[ctr]); + exports2.decompressSync = decompressSync; + var fltn = function(d, p, t, o) { + for (var k in d) { + var val = d[k], n = p + k, op = o; + if (Array.isArray(val)) + op = mrg(o, val[1]), val = val[0]; + if (val instanceof u8) + t[n] = [val, op]; + else { + t[n += "/"] = [new u8(0), op]; + fltn(val, n, t, o); + } + } + }; + var te = typeof TextEncoder != "undefined" && /* @__PURE__ */ new TextEncoder(); + var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder(); + var tds = 0; + try { + td.decode(et, { stream: true }); + tds = 1; + } catch (e) { } - - return dicomMap.getOrderedValues(); -}; - - - -daikon.Series.hasMatchingSlice = function (dg, image, sliceDir, doImagePos, doSliceLoc) { - var matchingNum = 0, ctr, current, imagePos, sliceLoc, imageNum; - - if (doImagePos) { - matchingNum = image.getImagePositionSliceDir(sliceDir); - } else if (doSliceLoc) { - matchingNum = image.getSliceLocation(); - } else { - matchingNum = image.getImageNumber(); + var dutf8 = function(d) { + for (var r = "", i3 = 0; ; ) { + var c = d[i3++]; + var eb = (c > 127) + (c > 223) + (c > 239); + if (i3 + eb > d.length) + return [r, slc(d, i3 - 1)]; + if (!eb) + r += String.fromCharCode(c); + else if (eb == 3) { + c = ((c & 15) << 18 | (d[i3++] & 63) << 12 | (d[i3++] & 63) << 6 | d[i3++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023); + } else if (eb & 1) + r += String.fromCharCode((c & 31) << 6 | d[i3++] & 63); + else + r += String.fromCharCode((c & 15) << 12 | (d[i3++] & 63) << 6 | d[i3++] & 63); + } + }; + var DecodeUTF8 = /* @__PURE__ */ function() { + function DecodeUTF82(cb) { + this.ondata = cb; + if (tds) + this.t = new TextDecoder(); + else + this.p = et; + } + DecodeUTF82.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + final = !!final; + if (this.t) { + this.ondata(this.t.decode(chunk, { stream: true }), final); + if (final) { + if (this.t.decode().length) + err(8); + this.t = null; + } + return; + } + if (!this.p) + err(4); + var dat = new u8(this.p.length + chunk.length); + dat.set(this.p); + dat.set(chunk, this.p.length); + var _a2 = dutf8(dat), ch2 = _a2[0], np = _a2[1]; + if (final) { + if (np.length) + err(8); + this.p = null; + } else + this.p = np; + this.ondata(ch2, final); + }; + return DecodeUTF82; + }(); + exports2.DecodeUTF8 = DecodeUTF8; + var EncodeUTF8 = /* @__PURE__ */ function() { + function EncodeUTF82(cb) { + this.ondata = cb; + } + EncodeUTF82.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + this.ondata(strToU8(chunk), this.d = final || false); + }; + return EncodeUTF82; + }(); + exports2.EncodeUTF8 = EncodeUTF8; + function strToU8(str, latin1) { + if (latin1) { + var ar_1 = new u8(str.length); + for (var i3 = 0; i3 < str.length; ++i3) + ar_1[i3] = str.charCodeAt(i3); + return ar_1; + } + if (te) + return te.encode(str); + var l = str.length; + var ar = new u8(str.length + (str.length >> 1)); + var ai = 0; + var w = function(v) { + ar[ai++] = v; + }; + for (var i3 = 0; i3 < l; ++i3) { + if (ai + 5 > ar.length) { + var n = new u8(ai + 8 + (l - i3 << 1)); + n.set(ar); + ar = n; + } + var c = str.charCodeAt(i3); + if (c < 128 || latin1) + w(c); + else if (c < 2048) + w(192 | c >> 6), w(128 | c & 63); + else if (c > 55295 && c < 57344) + c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i3) & 1023, w(240 | c >> 18), w(128 | c >> 12 & 63), w(128 | c >> 6 & 63), w(128 | c & 63); + else + w(224 | c >> 12), w(128 | c >> 6 & 63), w(128 | c & 63); + } + return slc(ar, 0, ai); } - - for (ctr = 0; ctr < dg.length; ctr += 1) { - current = dg[ctr]; - - if (doImagePos) { - imagePos = current.getImagePositionSliceDir(sliceDir); - if (imagePos === matchingNum) { - return true; + exports2.strToU8 = strToU8; + function strFromU8(dat, latin1) { + if (latin1) { + var r = ""; + for (var i3 = 0; i3 < dat.length; i3 += 16384) + r += String.fromCharCode.apply(null, dat.subarray(i3, i3 + 16384)); + return r; + } else if (td) + return td.decode(dat); + else { + var _a2 = dutf8(dat), out = _a2[0], ext = _a2[1]; + if (ext.length) + err(8); + return out; + } + } + exports2.strFromU8 = strFromU8; + var dbf = function(l) { + return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; + }; + var slzh = function(d, b) { + return b + 30 + b2(d, b + 26) + b2(d, b + 28); + }; + var zh = function(d, b, z) { + var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); + var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2]; + return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; + }; + var z64e = function(d, b) { + for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) + ; + return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; + }; + var exfl = function(ex) { + var le = 0; + if (ex) { + for (var k in ex) { + var l = ex[k].length; + if (l > 65535) + err(9); + le += l + 4; + } + } + return le; + }; + var wzh = function(d, b, f, fn, u, c, ce, co) { + var fl2 = fn.length, ex = f.extra, col = co && co.length; + var exl = exfl(ex); + wbytes(d, b, ce != null ? 33639248 : 67324752), b += 4; + if (ce != null) + d[b++] = 20, d[b++] = f.os; + d[b] = 20, b += 2; + d[b++] = f.flag << 1 | (c < 0 && 8), d[b++] = u && 8; + d[b++] = f.compression & 255, d[b++] = f.compression >> 8; + var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980; + if (y < 0 || y > 119) + err(10); + wbytes(d, b, y << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >>> 1), b += 4; + if (c != -1) { + wbytes(d, b, f.crc); + wbytes(d, b + 4, c < 0 ? -c - 2 : c); + wbytes(d, b + 8, f.size); + } + wbytes(d, b + 12, fl2); + wbytes(d, b + 14, exl), b += 16; + if (ce != null) { + wbytes(d, b, col); + wbytes(d, b + 6, f.attrs); + wbytes(d, b + 10, ce), b += 14; + } + d.set(fn, b); + b += fl2; + if (exl) { + for (var k in ex) { + var exf = ex[k], l = exf.length; + wbytes(d, b, +k); + wbytes(d, b + 2, l); + d.set(exf, b + 4), b += 4 + l; + } + } + if (col) + d.set(co, b), b += col; + return b; + }; + var wzf = function(o, b, c, d, e) { + wbytes(o, b, 101010256); + wbytes(o, b + 8, c); + wbytes(o, b + 10, c); + wbytes(o, b + 12, d); + wbytes(o, b + 16, e); + }; + var ZipPassThrough = /* @__PURE__ */ function() { + function ZipPassThrough2(filename) { + this.filename = filename; + this.c = crc(); + this.size = 0; + this.compression = 0; + } + ZipPassThrough2.prototype.process = function(chunk, final) { + this.ondata(null, chunk, final); + }; + ZipPassThrough2.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + this.c.p(chunk); + this.size += chunk.length; + if (final) + this.crc = this.c.d(); + this.process(chunk, final || false); + }; + return ZipPassThrough2; + }(); + exports2.ZipPassThrough = ZipPassThrough; + var ZipDeflate = /* @__PURE__ */ function() { + function ZipDeflate2(filename, opts) { + var _this_1 = this; + if (!opts) + opts = {}; + ZipPassThrough.call(this, filename); + this.d = new Deflate(opts, function(dat, final) { + _this_1.ondata(null, dat, final); + }); + this.compression = 8; + this.flag = dbf(opts.level); + } + ZipDeflate2.prototype.process = function(chunk, final) { + try { + this.d.push(chunk, final); + } catch (e) { + this.ondata(e, null, final); + } + }; + ZipDeflate2.prototype.push = function(chunk, final) { + ZipPassThrough.prototype.push.call(this, chunk, final); + }; + return ZipDeflate2; + }(); + exports2.ZipDeflate = ZipDeflate; + var AsyncZipDeflate = /* @__PURE__ */ function() { + function AsyncZipDeflate2(filename, opts) { + var _this_1 = this; + if (!opts) + opts = {}; + ZipPassThrough.call(this, filename); + this.d = new AsyncDeflate(opts, function(err2, dat, final) { + _this_1.ondata(err2, dat, final); + }); + this.compression = 8; + this.flag = dbf(opts.level); + this.terminate = this.d.terminate; + } + AsyncZipDeflate2.prototype.process = function(chunk, final) { + this.d.push(chunk, final); + }; + AsyncZipDeflate2.prototype.push = function(chunk, final) { + ZipPassThrough.prototype.push.call(this, chunk, final); + }; + return AsyncZipDeflate2; + }(); + exports2.AsyncZipDeflate = AsyncZipDeflate; + var Zip = /* @__PURE__ */ function() { + function Zip2(cb) { + this.ondata = cb; + this.u = []; + this.d = 1; + } + Zip2.prototype.add = function(file) { + var _this_1 = this; + if (!this.ondata) + err(5); + if (this.d & 2) + this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false); + else { + var f = strToU8(file.filename), fl_1 = f.length; + var com = file.comment, o = com && strToU8(com); + var u = fl_1 != file.filename.length || o && com.length != o.length; + var hl_1 = fl_1 + exfl(file.extra) + 30; + if (fl_1 > 65535) + this.ondata(err(11, 0, 1), null, false); + var header = new u8(hl_1); + wzh(header, 0, file, f, u, -1); + var chks_1 = [header]; + var pAll_1 = function() { + for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) { + var chk = chks_2[_i]; + _this_1.ondata(null, chk, false); } - } else if (doSliceLoc) { - sliceLoc = current.getSliceLocation(); - if (sliceLoc === matchingNum) { - return true; + chks_1 = []; + }; + var tr_1 = this.d; + this.d = 0; + var ind_1 = this.u.length; + var uf_1 = mrg(file, { + f, + u, + o, + t: function() { + if (file.terminate) + file.terminate(); + }, + r: function() { + pAll_1(); + if (tr_1) { + var nxt = _this_1.u[ind_1 + 1]; + if (nxt) + nxt.r(); + else + _this_1.d = 1; + } + tr_1 = 1; } - } else { - imageNum = current.getImageNumber(); - if (imageNum === matchingNum) { - return true; + }); + var cl_1 = 0; + file.ondata = function(err2, dat, final) { + if (err2) { + _this_1.ondata(err2, dat, final); + _this_1.terminate(); + } else { + cl_1 += dat.length; + chks_1.push(dat); + if (final) { + var dd = new u8(16); + wbytes(dd, 0, 134695760); + wbytes(dd, 4, file.crc); + wbytes(dd, 8, cl_1); + wbytes(dd, 12, file.size); + chks_1.push(dd); + uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size; + if (tr_1) + uf_1.r(); + tr_1 = 1; + } else if (tr_1) + pAll_1(); } + }; + this.u.push(uf_1); } - } - - return false; -}; - - - -daikon.Series.orderByTime = function (images, numFrames, sliceDir, hasImagePosition, hasSliceLocation) { - var dicomMap, hasTemporalPosition, hasTemporalNumber, ctr, image, tempPos, dg, timeBySliceMap, imageNum, - sliceMarker, slice, dicomsCopy, dicomsCopyIndex, sliceIt, timeIt, dgFound, it; - - dicomMap = new daikon.OrderedMap(); - hasTemporalPosition = (numFrames > 1) && (images[0].getTemporalPosition() !== null); - hasTemporalNumber = (numFrames > 1) && (images[0].getTemporalNumber() !== null) && (images[0].getTemporalNumber() === numFrames); - - if (hasTemporalPosition && hasTemporalNumber) { // explicit series - for (ctr = 0; ctr < images.length; ctr += 1) { - image = images[ctr]; - - tempPos = image.getTemporalPosition(); - dg = dicomMap.get(tempPos); - if (!dg) { - dg = []; - dicomMap.put(tempPos, dg); - } - - dg.push(image); + }; + Zip2.prototype.end = function() { + var _this_1 = this; + if (this.d & 2) { + this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true); + return; } - } else { // implicit series - // order data by slice then time - timeBySliceMap = new daikon.OrderedMap(); - for (ctr = 0; ctr < images.length; ctr += 1) { - if (images[ctr] !== null) { - imageNum = images[ctr].getImageNumber(); - sliceMarker = ctr; - if (hasImagePosition) { - sliceMarker = images[ctr].getImagePositionSliceDir(sliceDir); - } else if (hasSliceLocation) { - sliceMarker = images[ctr].getSliceLocation(); - } - - slice = timeBySliceMap.get(sliceMarker); - if (slice === null) { - slice = new daikon.OrderedMap(); - timeBySliceMap.put(sliceMarker, slice); - } - - slice.put(ctr, images[ctr]); + if (this.d) + this.e(); + else + this.u.push({ + r: function() { + if (!(_this_1.d & 1)) + return; + _this_1.u.splice(-1, 1); + _this_1.e(); + }, + t: function() { } + }); + this.d = 3; + }; + Zip2.prototype.e = function() { + var bt = 0, l = 0, tl = 0; + for (var _i = 0, _a2 = this.u; _i < _a2.length; _i++) { + var f = _a2[_i]; + tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0); } - - // copy into DICOM array (ordered by slice by time) - dicomsCopy = []; - dicomsCopyIndex = 0; - sliceIt = timeBySliceMap.iterator(); - while (sliceIt.hasNext()) { - slice = sliceIt.next(); - timeIt = slice.iterator(); - while (timeIt.hasNext()) { - dicomsCopy[dicomsCopyIndex] = timeIt.next(); - dicomsCopyIndex += 1; - } + var out = new u8(tl + 22); + for (var _b2 = 0, _c = this.u; _b2 < _c.length; _b2++) { + var f = _c[_b2]; + wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o); + bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b; } - - // groups dicoms by timepoint - for (ctr = 0; ctr < dicomsCopy.length; ctr += 1) { - if (dicomsCopy[ctr] !== null) { - dgFound = null; - it = dicomMap.iterator(); - while (it.hasNext()) { - dg = it.next(); - if (!daikon.Series.hasMatchingSlice(dg, dicomsCopy[ctr], sliceDir, hasImagePosition, hasSliceLocation)) { - dgFound = dg; - break; - } - } - - if (dgFound === null) { - dgFound = []; - dicomMap.put(dicomMap.orderedKeys.length, dgFound); - } - - dgFound.push(dicomsCopy[ctr]); - } + wzf(out, bt, this.u.length, tl, l); + this.ondata(null, out, true); + this.d = 2; + }; + Zip2.prototype.terminate = function() { + for (var _i = 0, _a2 = this.u; _i < _a2.length; _i++) { + var f = _a2[_i]; + f.t(); } + this.d = 2; + }; + return Zip2; + }(); + exports2.Zip = Zip; + function zip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + var r = {}; + fltn(data, "", r, opts); + var k = Object.keys(r); + var lft = k.length, o = 0, tot = 0; + var slft = lft, files = new Array(lft); + var term = []; + var tAll = function() { + for (var i4 = 0; i4 < term.length; ++i4) + term[i4](); + }; + var cbd = function(a, b) { + mt(function() { + cb(a, b); + }); + }; + mt(function() { + cbd = cb; + }); + var cbf = function() { + var out = new u8(tot + 22), oe = o, cdl = tot - o; + tot = 0; + for (var i4 = 0; i4 < slft; ++i4) { + var f = files[i4]; + try { + var l = f.c.length; + wzh(out, tot, f, f.f, f.u, l); + var badd = 30 + f.f.length + exfl(f.extra); + var loc = tot + badd; + out.set(f.c, loc); + wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l; + } catch (e) { + return cbd(e, null); + } + } + wzf(out, o, files.length, cdl, oe); + cbd(null, out); + }; + if (!lft) + cbf(); + var _loop_1 = function(i4) { + var fn = k[i4]; + var _a2 = r[fn], file = _a2[0], p = _a2[1]; + var c = crc(), size = file.length; + c.p(file); + var f = strToU8(fn), s = f.length; + var com = p.comment, m = com && strToU8(com), ms = m && m.length; + var exl = exfl(p.extra); + var compression = p.level == 0 ? 0 : 8; + var cbl = function(e, d) { + if (e) { + tAll(); + cbd(e, null); + } else { + var l = d.length; + files[i4] = mrg(p, { + size, + crc: c.d(), + c: d, + f, + m, + u: s != fn.length || m && com.length != ms, + compression + }); + o += 30 + s + exl + l; + tot += 76 + 2 * (s + exl) + (ms || 0) + l; + if (!--lft) + cbf(); + } + }; + if (s > 65535) + cbl(err(11, 0, 1), null); + if (!compression) + cbl(null, file); + else if (size < 16e4) { + try { + cbl(null, deflateSync(file, p)); + } catch (e) { + cbl(e, null); + } + } else + term.push(deflate(file, p, cbl)); + }; + for (var i3 = 0; i3 < slft; ++i3) { + _loop_1(i3); + } + return tAll; } - - return dicomMap; -}; - - -/*** Prototype Methods ***/ - -daikon.Series.prototype.getOrder = function () { - var ctr, order = []; - - for (ctr = 0; ctr < this.imagesOriginalOrder.length; ctr += 1) { - order[ctr] = this.imagesOriginalOrder[ctr].index; - } - - return order; -}; - - -/** - * Returns the series ID. - * @returns {string} - */ -daikon.Series.prototype.toString = function () { - return this.images[0].getSeriesId(); -}; - - -/** - * Returns a nice name for the series. - * @returns {string|null} - */ -daikon.Series.prototype.getName = function () { - var des = this.images[0].getSeriesDescription(); - var uid = this.images[0].getSeriesInstanceUID(); - - if (des !== null) { - return des; - } - - if (uid !== null) { - return uid; - } - - return null; -}; - - -/** - * Adds an image to the series. - * @param {daikon.Image} image - */ -daikon.Series.prototype.addImage = function (image) { - this.images.push(image); -}; - - -/** - * Returns true if the specified image is part of the series (or if no images are yet part of the series). - * @param {daikon.Image} image - * @returns {boolean} - */ -daikon.Series.prototype.matchesSeries = function (image) { - if (this.images.length === 0) { - return true; + exports2.zip = zip; + function zipSync(data, opts) { + if (!opts) + opts = {}; + var r = {}; + var files = []; + fltn(data, "", r, opts); + var o = 0; + var tot = 0; + for (var fn in r) { + var _a2 = r[fn], file = _a2[0], p = _a2[1]; + var compression = p.level == 0 ? 0 : 8; + var f = strToU8(fn), s = f.length; + var com = p.comment, m = com && strToU8(com), ms = m && m.length; + var exl = exfl(p.extra); + if (s > 65535) + err(11); + var d = compression ? deflateSync(file, p) : file, l = d.length; + var c = crc(); + c.p(file); + files.push(mrg(p, { + size: file.length, + crc: c.d(), + c: d, + f, + m, + u: s != fn.length || m && com.length != ms, + o, + compression + })); + o += 30 + s + exl + l; + tot += 76 + 2 * (s + exl) + (ms || 0) + l; + } + var out = new u8(tot + 22), oe = o, cdl = tot - o; + for (var i3 = 0; i3 < files.length; ++i3) { + var f = files[i3]; + wzh(out, f.o, f, f.f, f.u, f.c.length); + var badd = 30 + f.f.length + exfl(f.extra); + out.set(f.c, f.o + badd); + wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0); + } + wzf(out, o, files.length, cdl, oe); + return out; } - - return (this.images[0].getSeriesId() === image.getSeriesId()); -}; - - -/** - * Orders and organizes the images in this series. - */ -daikon.Series.prototype.buildSeries = function () { - var hasFrameTime, ctr, sliceLoc, orderedImages, sliceLocationFirst, sliceLocationLast, sliceLocDiff, - sliceLocations, orientation, imagePos; - - this.isMosaic = this.images[0].isMosaic(); - this.isElscint = this.images[0].isElscint(); - this.isCompressed = this.images[0].isCompressed(); - - // check for multi-frame - this.numberOfFrames = this.images[0].getNumberOfFrames(); - this.numberOfFramesInFile = this.images[0].getNumberOfImplicitFrames(); - this.isMultiFrame = (this.numberOfFrames > 1) || (this.isMosaic && (this.images[0].length > 1)); - this.isMultiFrameVolume = false; - this.isMultiFrameTimeseries = false; - this.isImplicitTimeseries = false; - - if (this.isMultiFrame) { - hasFrameTime = (this.images[0].getFrameTime() > 0); - if (this.isMosaic) { - this.isMultiFrameTimeseries = true; + exports2.zipSync = zipSync; + var UnzipPassThrough = /* @__PURE__ */ function() { + function UnzipPassThrough2() { + } + UnzipPassThrough2.prototype.push = function(data, final) { + this.ondata(null, data, final); + }; + UnzipPassThrough2.compression = 0; + return UnzipPassThrough2; + }(); + exports2.UnzipPassThrough = UnzipPassThrough; + var UnzipInflate = /* @__PURE__ */ function() { + function UnzipInflate2() { + var _this_1 = this; + this.i = new Inflate(function(dat, final) { + _this_1.ondata(null, dat, final); + }); + } + UnzipInflate2.prototype.push = function(data, final) { + try { + this.i.push(data, final); + } catch (e) { + this.ondata(e, null, final); + } + }; + UnzipInflate2.compression = 8; + return UnzipInflate2; + }(); + exports2.UnzipInflate = UnzipInflate; + var AsyncUnzipInflate = /* @__PURE__ */ function() { + function AsyncUnzipInflate2(_, sz) { + var _this_1 = this; + if (sz < 32e4) { + this.i = new Inflate(function(dat, final) { + _this_1.ondata(null, dat, final); + }); + } else { + this.i = new AsyncInflate(function(err2, dat, final) { + _this_1.ondata(err2, dat, final); + }); + this.terminate = this.i.terminate; + } + } + AsyncUnzipInflate2.prototype.push = function(data, final) { + if (this.i.terminate) + data = slc(data, 0); + this.i.push(data, final); + }; + AsyncUnzipInflate2.compression = 8; + return AsyncUnzipInflate2; + }(); + exports2.AsyncUnzipInflate = AsyncUnzipInflate; + var Unzip = /* @__PURE__ */ function() { + function Unzip2(cb) { + this.onfile = cb; + this.k = []; + this.o = { + 0: UnzipPassThrough + }; + this.p = et; + } + Unzip2.prototype.push = function(chunk, final) { + var _this_1 = this; + if (!this.onfile) + err(5); + if (!this.p) + err(4); + if (this.c > 0) { + var len = Math.min(this.c, chunk.length); + var toAdd = chunk.subarray(0, len); + this.c -= len; + if (this.d) + this.d.push(toAdd, !this.c); + else + this.k[0].push(toAdd); + chunk = chunk.subarray(len); + if (chunk.length) + return this.push(chunk, final); } else { - if (hasFrameTime) { - this.isMultiFrameTimeseries = true; - } else if (this.numberOfFramesInFile > 1) { - this.isMultiFrameTimeseries = true; - this.numberOfFrames = this.images.length; + var f = 0, i3 = 0, is = void 0, buf = void 0; + if (!this.p.length) + buf = chunk; + else if (!chunk.length) + buf = this.p; + else { + buf = new u8(this.p.length + chunk.length); + buf.set(this.p), buf.set(chunk, this.p.length); + } + var l = buf.length, oc = this.c, add = oc && this.d; + var _loop_2 = function() { + var _a2; + var sig = b4(buf, i3); + if (sig == 67324752) { + f = 1, is = i3; + this_1.d = null; + this_1.c = 0; + var bf = b2(buf, i3 + 6), cmp_1 = b2(buf, i3 + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i3 + 26), es = b2(buf, i3 + 28); + if (l > i3 + 30 + fnl + es) { + var chks_3 = []; + this_1.k.unshift(chks_3); + f = 2; + var sc_1 = b4(buf, i3 + 18), su_1 = b4(buf, i3 + 22); + var fn_1 = strFromU8(buf.subarray(i3 + 30, i3 += 30 + fnl), !u); + if (sc_1 == 4294967295) { + _a2 = dd ? [-2] : z64e(buf, i3), sc_1 = _a2[0], su_1 = _a2[1]; + } else if (dd) + sc_1 = -1; + i3 += es; + this_1.c = sc_1; + var d_1; + var file_1 = { + name: fn_1, + compression: cmp_1, + start: function() { + if (!file_1.ondata) + err(5); + if (!sc_1) + file_1.ondata(null, et, true); + else { + var ctr = _this_1.o[cmp_1]; + if (!ctr) + file_1.ondata(err(14, "unknown compression type " + cmp_1, 1), null, false); + d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1); + d_1.ondata = function(err2, dat3, final2) { + file_1.ondata(err2, dat3, final2); + }; + for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) { + var dat2 = chks_4[_i]; + d_1.push(dat2, false); + } + if (_this_1.k[0] == chks_3 && _this_1.c) + _this_1.d = d_1; + else + d_1.push(et, true); + } + }, + terminate: function() { + if (d_1 && d_1.terminate) + d_1.terminate(); + } + }; + if (sc_1 >= 0) + file_1.size = sc_1, file_1.originalSize = su_1; + this_1.onfile(file_1); + } + return "break"; + } else if (oc) { + if (sig == 134695760) { + is = i3 += 12 + (oc == -2 && 8), f = 3, this_1.c = 0; + return "break"; + } else if (sig == 33639248) { + is = i3 -= 4, f = 3, this_1.c = 0; + return "break"; + } + } + }; + var this_1 = this; + for (; i3 < l - 4; ++i3) { + var state_1 = _loop_2(); + if (state_1 === "break") + break; + } + this.p = et; + if (oc < 0) { + var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 134695760 && 4)) : buf.subarray(0, i3); + if (add) + add.push(dat, !!f); + else + this.k[+(f == 2)].push(dat); + } + if (f & 2) + return this.push(buf.subarray(i3), final); + this.p = buf.subarray(i3); + } + if (final) { + if (this.c) + err(13); + this.p = null; + } + }; + Unzip2.prototype.register = function(decoder) { + this.o[decoder.compression] = decoder; + }; + return Unzip2; + }(); + exports2.Unzip = Unzip; + var mt = typeof queueMicrotask == "function" ? queueMicrotask : typeof setTimeout == "function" ? setTimeout : function(fn) { + fn(); + }; + function unzip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + var term = []; + var tAll = function() { + for (var i4 = 0; i4 < term.length; ++i4) + term[i4](); + }; + var files = {}; + var cbd = function(a, b) { + mt(function() { + cb(a, b); + }); + }; + mt(function() { + cbd = cb; + }); + var e = data.length - 22; + for (; b4(data, e) != 101010256; --e) { + if (!e || data.length - e > 65558) { + cbd(err(13, 0, 1), null); + return tAll; + } + } + ; + var lft = b2(data, e + 8); + if (lft) { + var c = lft; + var o = b4(data, e + 16); + var z = o == 4294967295 || c == 65535; + if (z) { + var ze = b4(data, e - 12); + z = b4(data, ze) == 101075792; + if (z) { + c = lft = b4(data, ze + 32); + o = b4(data, ze + 48); + } + } + var fltr = opts && opts.filter; + var _loop_3 = function(i4) { + var _a2 = zh(data, o, z), c_1 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); + o = no; + var cbl = function(e2, d) { + if (e2) { + tAll(); + cbd(e2, null); } else { - this.isMultiFrameVolume = true; + if (d) + files[fn] = d; + if (!--lft) + cbd(null, files); } + }; + if (!fltr || fltr({ + name: fn, + size: sc, + originalSize: su, + compression: c_1 + })) { + if (!c_1) + cbl(null, slc(data, b, b + sc)); + else if (c_1 == 8) { + var infl = data.subarray(b, b + sc); + if (sc < 32e4) { + try { + cbl(null, inflateSync(infl, new u8(su))); + } catch (e2) { + cbl(e2, null); + } + } else + term.push(inflate(infl, { size: su }, cbl)); + } else + cbl(err(14, "unknown compression type " + c_1, 1), null); + } else + cbl(null, null); + }; + for (var i3 = 0; i3 < c; ++i3) { + _loop_3(i3); } + } else + cbd(null, {}); + return tAll; } + exports2.unzip = unzip; + function unzipSync(data, opts) { + var files = {}; + var e = data.length - 22; + for (; b4(data, e) != 101010256; --e) { + if (!e || data.length - e > 65558) + err(13); + } + ; + var c = b2(data, e + 8); + if (!c) + return {}; + var o = b4(data, e + 16); + var z = o == 4294967295 || c == 65535; + if (z) { + var ze = b4(data, e - 12); + z = b4(data, ze) == 101075792; + if (z) { + c = b4(data, ze + 32); + o = b4(data, ze + 48); + } + } + var fltr = opts && opts.filter; + for (var i3 = 0; i3 < c; ++i3) { + var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); + o = no; + if (!fltr || fltr({ + name: fn, + size: sc, + originalSize: su, + compression: c_2 + })) { + if (!c_2) + files[fn] = slc(data, b, b + sc); + else if (c_2 == 8) + files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su)); + else + err(14, "unknown compression type " + c_2); + } + } + return files; + } + exports2.unzipSync = unzipSync; + } +}); - if (!this.isMosaic && (this.numberOfFrames <= 1)) { // check for implicit frame count - imagePos = (this.images[0].getImagePosition() || []); - sliceLoc = imagePos.toString(); - this.numberOfFrames = 0; - - for (ctr = 0; ctr < this.images.length; ctr += 1) { - imagePos = (this.images[ctr].getImagePosition() || []); - - if (imagePos.toString() === sliceLoc) { - this.numberOfFrames += 1; - } +// src/parser.js +var require_parser3 = __commonJS({ + "src/parser.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Tag = daikon2.Tag || (typeof require !== "undefined" ? require_tag() : null); + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Dictionary = daikon2.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); + daikon2.Image = daikon2.Image || (typeof require !== "undefined" ? require_image() : null); + var fflate2 = fflate2 || (typeof require !== "undefined" ? require_node() : null); + daikon2.Parser = daikon2.Parser || function() { + this.littleEndian = true; + this.explicit = true; + this.metaFound = false; + this.metaFinished = false; + this.metaFinishedOffset = -1; + this.needsDeflate = false; + this.inflated = null; + this.encapsulation = false; + this.level = 0; + this.error = null; + }; + daikon2.Parser.verbose = false; + daikon2.Parser.MAGIC_COOKIE_OFFSET = 128; + daikon2.Parser.MAGIC_COOKIE = [68, 73, 67, 77]; + daikon2.Parser.VRS = ["AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD", "IS", "LO", "LT", "OB", "OD", "OF", "OW", "PN", "SH", "SL", "SS", "ST", "TM", "UI", "UL", "UN", "US", "UT", "UC"]; + daikon2.Parser.DATA_VRS = ["OB", "OW", "OF", "SQ", "UT", "UN", "UC"]; + daikon2.Parser.RAW_DATA_VRS = ["OB", "OD", "OF", "OW", "UN"]; + daikon2.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE = "1.2.840.10008.1.2"; + daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE = "1.2.840.10008.1.2.1"; + daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG = "1.2.840.10008.1.2.2"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG = "1.2.840.10008.1.2.4"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS = "1.2.840.10008.1.2.4.57"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1 = "1.2.840.10008.1.2.4.70"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT = "1.2.840.10008.1.2.4.50"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT = "1.2.840.10008.1.2.4.51"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS = "1.2.840.10008.1.2.4.80"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS = "1.2.840.10008.1.2.4.81"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS = "1.2.840.10008.1.2.4.90"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000 = "1.2.840.10008.1.2.4.91"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE = "1.2.840.10008.1.2.5"; + daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE = "1.2.840.10008.1.2.1.99"; + daikon2.Parser.UNDEFINED_LENGTH = 4294967295; + daikon2.Parser.isMagicCookieFound = function(data) { + var offset = daikon2.Parser.MAGIC_COOKIE_OFFSET, magicCookieLength = daikon2.Parser.MAGIC_COOKIE.length, ctr; + for (ctr = 0; ctr < magicCookieLength; ctr += 1) { + if (data.getUint8(offset + ctr) !== daikon2.Parser.MAGIC_COOKIE[ctr]) { + return false; + } + } + return true; + }; + daikon2.Parser.prototype.parse = function(data) { + var image = null, offset, tag, copyMeta, copyDeflated; + try { + image = new daikon2.Image(); + offset = this.findFirstTagOffset(data); + tag = this.getNextTag(data, offset); + while (tag !== null) { + if (daikon2.Parser.verbose) { + console.log(tag.toString()); + } + image.putTag(tag); + if (tag.isPixelData()) { + break; + } + if (this.needsDeflate && tag.offsetEnd >= this.metaFinishedOffset) { + this.needsDeflate = false; + copyMeta = data.buffer.slice(0, tag.offsetEnd); + copyDeflated = data.buffer.slice(tag.offsetEnd); + this.inflated = daikon2.Utils.concatArrayBuffers(copyMeta, fflate2.decompressSync(new Uint8Array(copyDeflated))); + data = new DataView(this.inflated); + } + tag = this.getNextTag(data, tag.offsetEnd); } - - if (this.numberOfFrames > 1) { - this.isImplicitTimeseries = true; + } catch (err) { + this.error = err; + } + if (image !== null) { + image.littleEndian = this.littleEndian; + } + return image; + }; + daikon2.Parser.prototype.parseEncapsulated = function(data) { + var offset = 0, tag, tags = []; + this.encapsulation = true; + try { + tag = this.getNextTag(data, offset); + while (tag !== null) { + if (tag.isSublistItem()) { + tags.push(tag); + } + if (daikon2.Parser.verbose) { + console.log(tag.toString()); + } + tag = this.getNextTag(data, tag.offsetEnd); } - } - - this.sliceDir = this.images[0].getAcquiredSliceDirection(); - - if (daikon.Series.useExplicitOrdering) { - orderedImages = this.images.slice(); - } else { - orderedImages = daikon.Series.orderDicoms(this.images, this.numberOfFrames, this.sliceDir); - } - - sliceLocationFirst = orderedImages[0].getImagePositionSliceDir(this.sliceDir); - sliceLocationLast = orderedImages[orderedImages.length - 1].getImagePositionSliceDir(this.sliceDir); - sliceLocDiff = sliceLocationLast - sliceLocationFirst; - - if (daikon.Series.useExplicitOrdering) { - this.sliceSense = false; - } else if (this.isMosaic) { - this.sliceSense = true; - } else if (this.isMultiFrame) { - sliceLocations = orderedImages[0].getSliceLocationVector(); - if (sliceLocations !== null) { - orientation = orderedImages[0].getOrientation(); - - if (orientation.charAt(2) === 'Z') { - this.sliceSense = (sliceLocations[0] - sliceLocations[sliceLocations.length - 1]) < 0; - } else { - this.sliceSense = (sliceLocations[0] - sliceLocations[sliceLocations.length - 1]) > 0; - } + } catch (err) { + this.error = err; + } + return tags; + }; + daikon2.Parser.prototype.testForValidTag = function(data) { + var offset, tag = null; + try { + offset = this.findFirstTagOffset(data); + tag = this.getNextTag(data, offset, false); + } catch (err) { + this.error = err; + } + return tag; + }; + daikon2.Parser.prototype.getNextTag = function(data, offset, testForTag) { + var group = 0, element, value = null, offsetStart = offset, offsetValue, length = 0, little = true, vr = null, tag; + if (offset >= data.byteLength) { + return null; + } + if (this.metaFinished) { + little = this.littleEndian; + group = data.getUint16(offset, little); + } else { + group = data.getUint16(offset, true); + if (this.metaFinishedOffset !== -1 && offset >= this.metaFinishedOffset || group !== 2) { + this.metaFinished = true; + little = this.littleEndian; + group = data.getUint16(offset, little); } else { - this.sliceSense = sliceLocationFirst < 0 ? false : true; // maybe??? + little = true; } - } else { - /* - * "The direction of the axes is defined fully by the patient's orientation. The x-axis is increasing to the left hand side of the patient. The - * y-axis is increasing to the posterior side of the patient. The z-axis is increasing toward the head of the patient." - */ - if ((this.sliceDir === daikon.Image.SLICE_DIRECTION_SAGITTAL) || (this.sliceDir === daikon.Image.SLICE_DIRECTION_CORONAL)) { - if (sliceLocDiff > 0) { - this.sliceSense = false; - } else { - this.sliceSense = true; - } + } + if (!this.metaFound && group === 2) { + this.metaFound = true; + } + offset += 2; + element = data.getUint16(offset, little); + offset += 2; + if (this.explicit || !this.metaFinished) { + vr = daikon2.Utils.getStringAt(data, offset, 2); + if (!this.metaFound && this.metaFinished && daikon2.Parser.VRS.indexOf(vr) === -1) { + vr = daikon2.Dictionary.getVR(group, element); + length = data.getUint32(offset, little); + offset += 4; + this.explicit = false; } else { - if (sliceLocDiff > 0) { - this.sliceSense = true; - } else { - this.sliceSense = false; - } + offset += 2; + if (daikon2.Parser.DATA_VRS.indexOf(vr) !== -1) { + offset += 2; + length = data.getUint32(offset, little); + offset += 4; + } else { + length = data.getUint16(offset, little); + offset += 2; + } } - } - - this.imagesOriginalOrder = this.images; - this.images = orderedImages; -}; - - -/** - * Concatenates image data (asynchronously). - * @param {object} progressMeter -- the object must have a drawProgress(percent, label) function [e.g., drawProgress(.5, "Loading...")] - * @param {Function} onFinishedImageRead -- callback - */ -daikon.Series.prototype.concatenateImageData = function (progressMeter, onFinishedImageRead) { - var buffer, data, length; - - if (this.isMosaic) { - data = this.getMosaicData(this.images[0], this.images[0].getPixelDataBytes()); - } else { - data = this.images[0].getPixelDataBytes(); - } - - length = this.validatePixelDataLength(this.images[0]); - this.images[0].clearPixelData(); - buffer = new Uint8Array(new ArrayBuffer(length * this.images.length)); - buffer.set(new Uint8Array(data, 0, length), 0); - - setTimeout(daikon.Utils.bind(this, function() { this.concatenateNextImageData(buffer, length, progressMeter, 1, onFinishedImageRead)}), 0); -}; - - - -daikon.Series.prototype.concatenateNextImageData = function (buffer, frameSize, progressMeter, index, - onFinishedImageRead) { - var data, length; - - if (index >= this.images.length) { - if (progressMeter) { - progressMeter.drawProgress(1, "Reading DICOM Images"); + } else { + vr = daikon2.Dictionary.getVR(group, element); + length = data.getUint32(offset, little); + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + vr = "SQ"; } - - onFinishedImageRead(buffer.buffer); - } else { - if (progressMeter) { - progressMeter.drawProgress(index / this.images.length, "Reading DICOM Images"); + offset += 4; + } + offsetValue = offset; + var isPixelData = group === daikon2.Tag.TAG_PIXEL_DATA[0] && element === daikon2.Tag.TAG_PIXEL_DATA[1]; + var isLookupTableData = 40 === group && element >= 4609 && element < 4864; + if (vr === "SQ" || !isLookupTableData && !isPixelData && !this.encapsulation && daikon2.Parser.DATA_VRS.indexOf(vr) !== -1 && vr !== "UC") { + value = this.parseSublist(data, offset, length, vr !== "SQ"); + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + length = value[value.length - 1].offsetEnd - offset; } - - if (this.isMosaic) { - data = this.getMosaicData(this.images[index], this.images[index].getPixelDataBytes()); - } else { - data = this.images[index].getPixelDataBytes(); + } else if (length > 0 && !testForTag) { + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + if (isPixelData) { + length = data.byteLength - offset; + } } - - length = this.validatePixelDataLength(this.images[index]); - this.images[index].clearPixelData(); - buffer.set(new Uint8Array(data, 0, length), (frameSize * index)); - - setTimeout(daikon.Utils.bind(this, function() {this.concatenateNextImageData(buffer, frameSize, progressMeter, - index + 1, onFinishedImageRead);}), 0); - } -}; - - - -daikon.Series.prototype.validatePixelDataLength = function (image) { - var length = image.getPixelDataBytes().byteLength, - sliceLength = image.getCols() * image.getRows(); - - // pixel data length should be divisible by slice size, if not, try to figure out correct pixel data length - if ((length % sliceLength) === 0) { - return length; - } - - return sliceLength * image.getNumberOfFrames() * image.getNumberOfSamplesPerPixel() * (image.getBitsAllocated() / 8); -}; - - - -daikon.Series.prototype.getMosaicData = function (image, data) { - var mosaicWidth, mosaicHeight, mosaicRows, mosaicCols, mosaicRowHeight, mosaicColWidth, - numBytes, ctrS, ctrR, ctrC, numSlices, numRows, numCols, buffer, dataTyped, offset, ctr, index = 0; - - numBytes = parseInt(this.images[0].getBitsAllocated() / 8); - numSlices = this.images[0].getMosaicCols() * this.images[0].getMosaicRows(); - numRows = parseInt(this.images[0].getRows() / this.images[0].getMosaicRows()); - numCols = parseInt(this.images[0].getCols() / this.images[0].getMosaicCols()); - - mosaicWidth = this.images[0].getCols(); - mosaicHeight = this.images[0].getRows(); - mosaicRows = this.images[0].getMosaicRows(); - mosaicCols = this.images[0].getMosaicCols(); - mosaicRowHeight = parseInt(mosaicHeight / mosaicRows); - mosaicColWidth = parseInt(mosaicWidth / mosaicCols); - - buffer = new Uint8Array(new ArrayBuffer(numSlices * numRows * numCols * numBytes)); - dataTyped = new Uint8Array(data); - - for (ctrS = 0; ctrS < numSlices; ctrS += 1) { - for (ctrR = 0; ctrR < numRows; ctrR += 1) { - for (ctrC = 0; ctrC < numCols; ctrC += 1) { - offset = daikon.Series.getMosaicOffset(mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, ctrC, - ctrR, ctrS); - for (ctr = 0; ctr < numBytes; ctr += 1) { - buffer[index] = dataTyped[(offset * numBytes) + ctr]; - index += 1; - } + value = data.buffer.slice(offset, offset + length); + } + offset += length; + tag = new daikon2.Tag(group, element, vr, value, offsetStart, offsetValue, offset, this.littleEndian, this.charset); + if (tag.value) { + if (tag.isTransformSyntax()) { + this.transformSyntaxAlreadyExist = true; + if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE) { + this.explicit = false; + this.littleEndian = true; + } else if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG) { + this.explicit = true; + this.littleEndian = false; + } else if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE) { + this.needsDeflate = true; + this.explicit = true; + this.littleEndian = true; + } else { + this.explicit = true; + this.littleEndian = true; + } + } else if (tag.isMetaLength()) { + this.metaFinishedOffset = tag.value[0] + offset; + } else if (tag.isCharset()) { + var charset = tag.value; + if (charset.length == 2) { + charset = (charset[0] || "ISO 2022 IR 6") + "\\" + charset[1]; + } else if (charset.length == 1) { + charset = charset[0]; + } + this.charset = charset; + } + } + return tag; + }; + daikon2.Parser.prototype.parseSublist = function(data, offset, length, raw) { + var sublistItem, offsetEnd = offset + length, tags = []; + this.level++; + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + sublistItem = this.parseSublistItem(data, offset, raw); + while (!sublistItem.isSequenceDelim()) { + tags.push(sublistItem); + offset = sublistItem.offsetEnd; + sublistItem = this.parseSublistItem(data, offset, raw); + } + tags.push(sublistItem); + } else { + while (offset < offsetEnd) { + sublistItem = this.parseSublistItem(data, offset, raw); + tags.push(sublistItem); + offset = sublistItem.offsetEnd; + } + } + this.level--; + return tags; + }; + daikon2.Parser.prototype.parseSublistItem = function(data, offset, raw) { + var group, element, length, offsetEnd, tag, offsetStart = offset, value = null, offsetValue, sublistItemTag, tags = []; + group = data.getUint16(offset, this.littleEndian); + offset += 2; + element = data.getUint16(offset, this.littleEndian); + offset += 2; + length = data.getUint32(offset, this.littleEndian); + offset += 4; + offsetValue = offset; + if (length === daikon2.Parser.UNDEFINED_LENGTH) { + tag = this.getNextTag(data, offset); + while (tag && !tag.isSublistItemDelim()) { + tags.push(tag); + offset = tag.offsetEnd; + tag = this.getNextTag(data, offset); + } + tag && tags.push(tag); + tag && (offset = tag.offsetEnd); + } else if (raw) { + value = data.buffer.slice(offset, offset + length); + offset = offset + length; + } else { + offsetEnd = offset + length; + while (offset < offsetEnd) { + tag = this.getNextTag(data, offset); + tags.push(tag); + offset = tag.offsetEnd; + } + } + sublistItemTag = new daikon2.Tag(group, element, null, value || tags, offsetStart, offsetValue, offset, this.littleEndian); + return sublistItemTag; + }; + daikon2.Parser.prototype.findFirstTagOffset = function(data) { + var offset = 0, magicCookieLength = daikon2.Parser.MAGIC_COOKIE.length, searchOffsetMax = daikon2.Parser.MAGIC_COOKIE_OFFSET * 5, found = false, ctr = 0, ctrIn = 0, ch = 0; + if (daikon2.Parser.isMagicCookieFound(data)) { + offset = daikon2.Parser.MAGIC_COOKIE_OFFSET + magicCookieLength; + } else { + for (ctr = 0; ctr < searchOffsetMax; ctr += 1) { + ch = data.getUint8(ctr); + if (ch === daikon2.Parser.MAGIC_COOKIE[0]) { + found = true; + for (ctrIn = 1; ctrIn < magicCookieLength; ctrIn += 1) { + if (data.getUint8(ctr + ctrIn) !== daikon2.Parser.MAGIC_COOKIE[ctrIn]) { + found = false; + } } + if (found) { + offset = ctr + magicCookieLength; + break; + } + } } + } + return offset; + }; + daikon2.Parser.prototype.hasError = function() { + return this.error !== null; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Parser; } + } +}); - return buffer.buffer; -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Series; -} - -},{"./image.js":23,"./iterator.js":24,"./orderedmap.js":26,"./parser.js":27,"./utilities.js":32}],30:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); - - -/*** Constructor ***/ - -/** - * The Siemens constructor. - * @params {ArrayBuffer} buffer - * @type {Function} - */ -daikon.Siemens = daikon.Siemens || function (buffer) { - this.output = ""; - this.data = new DataView(buffer, 0); -}; - - -/*** Static Pseudo-constants ***/ - -daikon.Siemens.CSA2_MAGIC_NUMBER = [83, 86, 49, 48]; -daikon.Siemens.NAME_LENGTH = 64; -daikon.Siemens.ELEMENT_CSA1 = 0x1010; -daikon.Siemens.ELEMENT_CSA2 = 0x1020; -daikon.Siemens.GROUP_CSA = 0x029; - - -/*** Prototype Methods ***/ - -/** - * Reads the Siemens header. (See http://nipy.org/nibabel/dicom/siemens_csa.html) - * @returns {string} - */ -daikon.Siemens.prototype.readHeader = function () { - /*jslint bitwise: true */ - - var ctr, match; - - try { - if (this.data.byteLength > daikon.Siemens.CSA2_MAGIC_NUMBER.length) { - match = true; - - for (ctr = 0; ctr < daikon.Siemens.CSA2_MAGIC_NUMBER.length; ctr += 1) { - match &= (this.data.getUint8(ctr) === daikon.Siemens.CSA2_MAGIC_NUMBER[ctr]); - } - - if (match) { - this.readHeaderAtOffset(daikon.Siemens.CSA2_MAGIC_NUMBER.length + 4); - } else { - this.readHeaderAtOffset(0); +// src/image.js +var require_image = __commonJS({ + "src/image.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Tag = daikon2.Tag || (typeof require !== "undefined" ? require_tag() : null); + daikon2.CompressionUtils = daikon2.CompressionUtils || (typeof require !== "undefined" ? require_compression_utils() : null); + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.RLE = daikon2.RLE || (typeof require !== "undefined" ? require_rle() : null); + var jpeg2 = typeof require !== "undefined" ? require_main() : null; + var JpegDecoder2 = JpegDecoder2 || (typeof require !== "undefined" ? require_jpeg_baseline().JpegImage : null); + var JpxImage2 = JpxImage2 || (typeof require !== "undefined" ? require_jpx() : null); + var JpegLSDecoder2 = JpegLSDecoder2 || (typeof require !== "undefined" ? require_jpeg_ls() : null); + daikon2.Image = daikon2.Image || function() { + this.tags = {}; + this.tagsFlat = {}; + this.littleEndian = false; + this.index = -1; + this.decompressed = false; + this.privateDataAll = null; + this.convertedPalette = false; + }; + daikon2.Image.SLICE_DIRECTION_UNKNOWN = -1; + daikon2.Image.SLICE_DIRECTION_AXIAL = 2; + daikon2.Image.SLICE_DIRECTION_CORONAL = 1; + daikon2.Image.SLICE_DIRECTION_SAGITTAL = 0; + daikon2.Image.SLICE_DIRECTION_OBLIQUE = 3; + daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE = 0.8; + daikon2.Image.BYTE_TYPE_UNKNOWN = 0; + daikon2.Image.BYTE_TYPE_BINARY = 1; + daikon2.Image.BYTE_TYPE_INTEGER = 2; + daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED = 3; + daikon2.Image.BYTE_TYPE_FLOAT = 4; + daikon2.Image.BYTE_TYPE_COMPLEX = 5; + daikon2.Image.BYTE_TYPE_RGB = 6; + daikon2.Image.skipPaletteConversion = false; + daikon2.Image.getSingleValueSafely = function(tag, index) { + if (tag && tag.value) { + return tag.value[index]; + } + return null; + }; + daikon2.Image.getValueSafely = function(tag) { + if (tag) { + return tag.value; + } + return null; + }; + daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine = function(x, y, z) { + var axis, orientationX, orientationY, orientationZ, absX, absY, absZ; + orientationX = x < 0 ? "R" : "L"; + orientationY = y < 0 ? "A" : "P"; + orientationZ = z < 0 ? "F" : "H"; + absX = Math.abs(x); + absY = Math.abs(y); + absZ = Math.abs(z); + if (absX > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absX > absY && absX > absZ) { + axis = orientationX; + } else if (absY > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absY > absX && absY > absZ) { + axis = orientationY; + } else if (absZ > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absZ > absX && absZ > absY) { + axis = orientationZ; + } else { + axis = null; + } + return axis; + }; + daikon2.Image.prototype.getCols = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_COLS[0], daikon2.Tag.TAG_COLS[1]), 0); + }; + daikon2.Image.prototype.getRows = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ROWS[0], daikon2.Tag.TAG_ROWS[1]), 0); + }; + daikon2.Image.prototype.getSeriesDescription = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_DESCRIPTION[0], daikon2.Tag.TAG_SERIES_DESCRIPTION[1]), 0); + }; + daikon2.Image.prototype.getSeriesInstanceUID = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_INSTANCE_UID[0], daikon2.Tag.TAG_SERIES_INSTANCE_UID[1]), 0); + }; + daikon2.Image.prototype.getSeriesNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_NUMBER[0], daikon2.Tag.TAG_SERIES_NUMBER[1]), 0); + }; + daikon2.Image.prototype.getEchoNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ECHO_NUMBER[0], daikon2.Tag.TAG_ECHO_NUMBER[1]), 0); + }; + daikon2.Image.prototype.getImagePosition = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_POSITION[0], daikon2.Tag.TAG_IMAGE_POSITION[1])); + }; + daikon2.Image.prototype.getImageDirections = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])); + }; + daikon2.Image.prototype.getImagePositionSliceDir = function(sliceDir) { + var imagePos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_POSITION[0], daikon2.Tag.TAG_IMAGE_POSITION[1])); + if (imagePos) { + if (sliceDir >= 0) { + return imagePos[sliceDir]; + } + } + return 0; + }; + daikon2.Image.prototype.getModality = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_MODALITY[0], daikon2.Tag.TAG_MODALITY[1]), 0); + }; + daikon2.Image.prototype.getSliceLocation = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_LOCATION[0], daikon2.Tag.TAG_SLICE_LOCATION[1]), 0); + }; + daikon2.Image.prototype.getSliceLocationVector = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_LOCATION_VECTOR[0], daikon2.Tag.TAG_SLICE_LOCATION_VECTOR[1])); + }; + daikon2.Image.prototype.getImageNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_NUM[0], daikon2.Tag.TAG_IMAGE_NUM[1]), 0); + }; + daikon2.Image.prototype.getTemporalPosition = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TEMPORAL_POSITION[0], daikon2.Tag.TAG_TEMPORAL_POSITION[1]), 0); + }; + daikon2.Image.prototype.getTemporalNumber = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0], daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]), 0); + }; + daikon2.Image.prototype.getSliceGap = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_GAP[0], daikon2.Tag.TAG_SLICE_GAP[1]), 0); + }; + daikon2.Image.prototype.getSliceThickness = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_THICKNESS[0], daikon2.Tag.TAG_SLICE_THICKNESS[1]), 0); + }; + daikon2.Image.prototype.getImageMax = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_MAX[0], daikon2.Tag.TAG_IMAGE_MAX[1]), 0); + }; + daikon2.Image.prototype.getImageMin = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_MIN[0], daikon2.Tag.TAG_IMAGE_MIN[1]), 0); + }; + daikon2.Image.prototype.getDataScaleSlope = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_SLOPE[0], daikon2.Tag.TAG_DATA_SCALE_SLOPE[1]), 0); + }; + daikon2.Image.prototype.getDataScaleIntercept = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_INTERCEPT[0], daikon2.Tag.TAG_DATA_SCALE_INTERCEPT[1]), 0); + }; + daikon2.Image.prototype.getDataScaleElscint = function() { + var scale = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon2.Tag.TAG_DATA_SCALE_ELSCINT[1]), 0); + if (!scale) { + scale = 1; + } + var bandwidth = this.getPixelBandwidth(); + scale = Math.sqrt(bandwidth) / (10 * scale); + if (scale <= 0) { + scale = 1; + } + return scale; + }; + daikon2.Image.prototype.getWindowWidth = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_WINDOW_WIDTH[0], daikon2.Tag.TAG_WINDOW_WIDTH[1]), 0); + }; + daikon2.Image.prototype.getWindowCenter = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_WINDOW_CENTER[0], daikon2.Tag.TAG_WINDOW_CENTER[1]), 0); + }; + daikon2.Image.prototype.getPixelBandwidth = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_BANDWIDTH[0], daikon2.Tag.TAG_PIXEL_BANDWIDTH[1]), 0); + }; + daikon2.Image.prototype.getSeriesId = function() { + var des = this.getSeriesDescription(); + var uid = this.getSeriesInstanceUID(); + var num = this.getSeriesNumber(); + var echo = this.getEchoNumber(); + var orientation = this.getOrientation(); + var cols = this.getCols(); + var rows = this.getRows(); + var id = ""; + if (des !== null) { + id += " " + des; + } + if (uid !== null) { + id += " " + uid; + } + if (num !== null) { + id += " " + num; + } + if (echo !== null) { + id += " " + echo; + } + if (orientation !== null) { + id += " " + orientation; + } + id += " (" + cols + " x " + rows + ")"; + return id; + }; + daikon2.Image.prototype.getPixelSpacing = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_SPACING[0], daikon2.Tag.TAG_PIXEL_SPACING[1])); + }; + daikon2.Image.prototype.getImageType = function() { + return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_TYPE[0], daikon2.Tag.TAG_IMAGE_TYPE[1])); + }; + daikon2.Image.prototype.getBitsStored = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_BITS_STORED[0], daikon2.Tag.TAG_BITS_STORED[1]), 0); + }; + daikon2.Image.prototype.getBitsAllocated = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_BITS_ALLOCATED[0], daikon2.Tag.TAG_BITS_ALLOCATED[1]), 0); + }; + daikon2.Image.prototype.getFrameTime = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_FRAME_TIME[0], daikon2.Tag.TAG_FRAME_TIME[1]), 0); + }; + daikon2.Image.prototype.getAcquisitionMatrix = function() { + var mat, matPrivate, start, end, str; + mat = [0, 0]; + mat[0] = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ACQUISITION_MATRIX[0], daikon2.Tag.TAG_ACQUISITION_MATRIX[1]), 0); + if (this.privateDataAll === null) { + this.privateDataAll = this.getAllInterpretedPrivateData(); + } + if (this.privateDataAll !== null && this.privateDataAll.length > 0) { + start = this.privateDataAll.indexOf("AcquisitionMatrixText"); + if (start !== -1) { + end = this.privateDataAll.indexOf("\n", start); + if (end !== -1) { + str = this.privateDataAll.substring(start, end); + matPrivate = str.match(/\d+/g); + if (matPrivate !== null && matPrivate.length === 2) { + mat[0] = matPrivate[0]; + mat[1] = matPrivate[1]; + } else if (matPrivate !== null && matPrivate.length === 1) { + mat[0] = matPrivate[0]; } + } } - } catch (error) { - console.log(error); - } - - return this.output; -}; - - - -daikon.Siemens.prototype.readHeaderAtOffset = function (offset) { - var numTags, ctr; - - this.output += '\n'; - - numTags = daikon.Utils.swap32(this.data.getUint32(offset)); - - if ((numTags < 1) || (numTags > 128)) { - return this.output; - } - - offset += 4; - - offset += 4; // unused - - for (ctr = 0; ctr < numTags; ctr += 1) { - offset = this.readTag(offset); - - if (offset === -1) { - break; + } + if (mat[1] === 0) { + mat[1] = mat[0]; + } + return mat; + }; + daikon2.Image.prototype.getTR = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TR, daikon2.Tag.TAG_TR[1]), 0); + }; + daikon2.Image.prototype.putTag = function(tag) { + if (this.tags[tag.id] && this.tags[tag.id].value[0] !== tag.value[0]) { + return; + } + this.tags[tag.id] = tag; + this.putFlattenedTag(this.tagsFlat, tag); + }; + daikon2.Image.prototype.putFlattenedTag = function(tags, tag) { + var ctr; + if (tag.sublist) { + for (ctr = 0; ctr < tag.value.length; ctr += 1) { + this.putFlattenedTag(tags, tag.value[ctr]); } - } - - return this.output; -}; - - - -daikon.Siemens.prototype.readTag = function (offset) { - var name, ctr, numItems; - - name = this.readString(offset, daikon.Siemens.NAME_LENGTH); - - offset += daikon.Siemens.NAME_LENGTH; - - offset += 4; // vm - - offset += 4; - - offset += 4; // syngodt - - numItems = daikon.Utils.swap32(this.data.getUint32(offset)); - offset += 4; - - offset += 4; // unused - - this.output += (" " + name + "="); - - for (ctr = 0; ctr < numItems; ctr += 1) { - offset = this.readItem(offset); - - if (offset === -1) { - break; - } else if ((offset % 4) !== 0) { - offset += (4 - (offset % 4)); + } else { + if (!tags[tag.id]) { + tags[tag.id] = tag; } - } - - this.output += ('\n'); - - return offset; -}; - - - -daikon.Siemens.prototype.readString = function (offset, length) { - var char2, ctr, str = ""; - - for (ctr = 0; ctr < length; ctr += 1) { - char2 = this.data.getUint8(offset + ctr); - - if (char2 === 0) { - break; + } + }; + daikon2.Image.prototype.getTag = function(group, element) { + var tagId = daikon2.Tag.createId(group, element); + if (this.tags[tagId]) { + return this.tags[tagId]; + } + return this.tagsFlat[tagId]; + }; + daikon2.Image.prototype.getPixelData = function() { + return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])]; + }; + daikon2.Image.prototype.getPixelDataBytes = function() { + if (this.isCompressed()) { + this.decompress(); + } + if (this.isPalette() && !daikon2.Image.skipPaletteConversion) { + this.convertPalette(); + } + return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value.buffer; + }; + daikon2.Image.prototype.getRawData = function() { + return this.getPixelDataBytes(); + }; + daikon2.Image.prototype.getInterpretedData = function(asArray, asObject, frameIndex) { + var datatype, numBytes, numElements, dataView, data, ctr, mask, slope, intercept, min, max, value, minIndex, maxIndex, littleEndian, rawValue, rawData, allFrames, elementsPerFrame, totalElements, offset, dataCtr; + allFrames = arguments.length < 3; + mask = daikon2.Utils.createBitMask( + this.getBitsAllocated() / 8, + this.getBitsStored(), + this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED + ); + datatype = this.getPixelRepresentation() ? daikon2.Image.BYTE_TYPE_INTEGER : daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED; + numBytes = this.getBitsAllocated() / 8; + rawData = this.getRawData(); + dataView = new DataView(rawData); + totalElements = rawData.byteLength / numBytes; + elementsPerFrame = totalElements / this.getNumberOfFrames(); + numElements = allFrames ? totalElements : elementsPerFrame; + offset = allFrames ? 0 : frameIndex * elementsPerFrame; + slope = this.getDataScaleSlope() || 1; + intercept = this.getDataScaleIntercept() || 0; + min = daikon2.Utils.MAX_VALUE; + max = daikon2.Utils.MIN_VALUE; + minIndex = -1; + maxIndex = -1; + littleEndian = this.littleEndian; + if (asArray) { + data = new Array(numElements); + } else { + data = new Float32Array(numElements); + } + var getWord; + if (datatype === daikon2.Image.BYTE_TYPE_INTEGER) { + if (numBytes === 1) { + getWord = dataView.getInt8.bind(dataView); + } else if (numBytes === 2) { + getWord = dataView.getInt16.bind(dataView); } - - str += String.fromCharCode(char2); - } - - return str; -}; - - - -daikon.Siemens.prototype.readItem = function (offset) { - var itemLength; - - itemLength = daikon.Utils.swap32(this.data.getUint32(offset)); - - if ((offset + itemLength) > this.data.buffer.length) { - return -1; - } - - offset += 16; - - if (itemLength > 0) { - this.output += (this.readString(offset, itemLength) + " "); - } - - return offset + itemLength; -}; - - -/** - * Returns true if the specified group and element indicate this tag can be read. - * @param {number} group - * @param {number} element - * @returns {boolean} - */ -daikon.Siemens.prototype.canRead = function (group, element) { - return (group === daikon.Siemens.GROUP_CSA) && ((element === daikon.Siemens.ELEMENT_CSA1) || (element === daikon.Siemens.ELEMENT_CSA2)); -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Siemens; -} - -},{"./utilities.js":32}],31:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require */ - -"use strict"; - -/*** Imports ***/ -var daikon = daikon || {}; -daikon.Utils = daikon.Utils || ((typeof require !== 'undefined') ? require('./utilities.js') : null); -daikon.Dictionary = daikon.Dictionary || ((typeof require !== 'undefined') ? require('./dictionary.js') : null); -daikon.Siemens = daikon.Siemens || ((typeof require !== 'undefined') ? require('./siemens.js') : null); - - -/*** Constructor ***/ - -/** - * The Tag constuctor. - * @property {number} group - * @property {number} element - * @property {string} vr - * @property {number} offsetStart - * @property {number} offsetValue - * @property {number} offsetEnd - * @property {boolean} sublist - true if this tag is a sublist - * @property {number|number[]|string|string[]|object} value - * @type {Function} - */ -daikon.Tag = daikon.Tag || function (group, element, vr, value, offsetStart, offsetValue, offsetEnd, littleEndian, charset) { - this.group = group; - this.element = element; - this.vr = vr; - this.offsetStart = offsetStart; - this.offsetValue = offsetValue; - this.offsetEnd = offsetEnd; - this.sublist = false; - this.preformatted = false; - this.id = daikon.Tag.createId(group, element); - - if (value instanceof Array) { - this.value = value; - this.sublist = true; - } else if (value !== null) { - var dv = new DataView(value); - this.value = daikon.Tag.convertValue(vr, dv, littleEndian, charset); - - if ((this.value === dv) && this.isPrivateData()) { - this.value = daikon.Tag.convertPrivateValue(group, element, dv); - this.preformatted = (this.value !== dv); + } else if (datatype === daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED) { + if (numBytes === 1) { + getWord = dataView.getUint8.bind(dataView); + } else if (numBytes === 2) { + getWord = dataView.getUint16.bind(dataView); } - } else { - this.value = null; - } -}; - - -/*** Static Pseudo-constants ***/ - -daikon.Tag.PRIVATE_DATA_READERS = [daikon.Siemens]; - -daikon.Tag.VR_AE_MAX_LENGTH = 16; -daikon.Tag.VR_AS_MAX_LENGTH = 4; -daikon.Tag.VR_AT_MAX_LENGTH = 4; -daikon.Tag.VR_CS_MAX_LENGTH = 16; -daikon.Tag.VR_DA_MAX_LENGTH = 8; -daikon.Tag.VR_DS_MAX_LENGTH = 16; -daikon.Tag.VR_DT_MAX_LENGTH = 26; -daikon.Tag.VR_FL_MAX_LENGTH = 4; -daikon.Tag.VR_FD_MAX_LENGTH = 8; -daikon.Tag.VR_IS_MAX_LENGTH = 12; -daikon.Tag.VR_LO_MAX_LENGTH = 64; -daikon.Tag.VR_LT_MAX_LENGTH = 10240; -daikon.Tag.VR_OB_MAX_LENGTH = -1; -daikon.Tag.VR_OD_MAX_LENGTH = -1; -daikon.Tag.VR_OF_MAX_LENGTH = -1; -daikon.Tag.VR_OW_MAX_LENGTH = -1; -daikon.Tag.VR_PN_MAX_LENGTH = 64 * 5; -daikon.Tag.VR_SH_MAX_LENGTH = 16; -daikon.Tag.VR_SL_MAX_LENGTH = 4; -daikon.Tag.VR_SS_MAX_LENGTH = 2; -daikon.Tag.VR_ST_MAX_LENGTH = 1024; -daikon.Tag.VR_TM_MAX_LENGTH = 16; -daikon.Tag.VR_UI_MAX_LENGTH = 64; -daikon.Tag.VR_UL_MAX_LENGTH = 4; -daikon.Tag.VR_UN_MAX_LENGTH = -1; -daikon.Tag.VR_US_MAX_LENGTH = 2; -daikon.Tag.VR_UT_MAX_LENGTH = -1; -daikon.Tag.VR_UC_MAX_LENGTH = -1; - -// metadata -daikon.Tag.TAG_TRANSFER_SYNTAX = [0x0002, 0x0010]; -daikon.Tag.TAG_META_LENGTH = [0x0002, 0x0000]; - -// sublists -daikon.Tag.TAG_SUBLIST_ITEM = [0xFFFE, 0xE000]; -daikon.Tag.TAG_SUBLIST_ITEM_DELIM = [0xFFFE, 0xE00D]; -daikon.Tag.TAG_SUBLIST_SEQ_DELIM = [0xFFFE, 0xE0DD]; - -// image dims -daikon.Tag.TAG_ROWS = [0x0028, 0x0010]; -daikon.Tag.TAG_COLS = [0x0028, 0x0011]; -daikon.Tag.TAG_ACQUISITION_MATRIX = [0x0018, 0x1310]; -daikon.Tag.TAG_NUMBER_OF_FRAMES = [0x0028, 0x0008]; -daikon.Tag.TAG_NUMBER_TEMPORAL_POSITIONS = [0x0020, 0x0105]; - -// voxel dims -daikon.Tag.TAG_PIXEL_SPACING = [0x0028, 0x0030]; -daikon.Tag.TAG_SLICE_THICKNESS = [0x0018, 0x0050]; -daikon.Tag.TAG_SLICE_GAP = [0x0018, 0x0088]; -daikon.Tag.TAG_TR = [0x0018, 0x0080]; -daikon.Tag.TAG_FRAME_TIME = [0x0018, 0x1063]; - -// datatype -daikon.Tag.TAG_BITS_ALLOCATED = [0x0028, 0x0100]; -daikon.Tag.TAG_BITS_STORED = [0x0028, 0x0101]; -daikon.Tag.TAG_PIXEL_REPRESENTATION = [0x0028, 0x0103]; -daikon.Tag.TAG_HIGH_BIT = [0x0028, 0x0102]; -daikon.Tag.TAG_PHOTOMETRIC_INTERPRETATION = [0x0028, 0x0004]; -daikon.Tag.TAG_SAMPLES_PER_PIXEL = [0x0028, 0x0002]; -daikon.Tag.TAG_PLANAR_CONFIG = [0x0028, 0x0006]; -daikon.Tag.TAG_PALETTE_RED = [0x0028, 0x1201]; -daikon.Tag.TAG_PALETTE_GREEN = [0x0028, 0x1202]; -daikon.Tag.TAG_PALETTE_BLUE = [0x0028, 0x1203]; - -// data scale -daikon.Tag.TAG_DATA_SCALE_SLOPE = [0x0028, 0x1053]; -daikon.Tag.TAG_DATA_SCALE_INTERCEPT = [0x0028, 0x1052]; -daikon.Tag.TAG_DATA_SCALE_ELSCINT = [0x0207, 0x101F]; -daikon.Tag.TAG_PIXEL_BANDWIDTH = [0x0018, 0x0095]; - -// range -daikon.Tag.TAG_IMAGE_MIN = [0x0028, 0x0106]; -daikon.Tag.TAG_IMAGE_MAX = [0x0028, 0x0107]; -daikon.Tag.TAG_WINDOW_CENTER = [0x0028, 0x1050]; -daikon.Tag.TAG_WINDOW_WIDTH = [0x0028, 0x1051]; - -// descriptors -daikon.Tag.TAG_SPECIFIC_CHAR_SET = [0x0008, 0x0005]; -daikon.Tag.TAG_PATIENT_NAME = [0x0010, 0x0010]; -daikon.Tag.TAG_PATIENT_ID = [0x0010, 0x0020]; -daikon.Tag.TAG_STUDY_DATE = [0x0008, 0x0020]; -daikon.Tag.TAG_STUDY_TIME = [0x0008, 0x0030]; -daikon.Tag.TAG_STUDY_DES = [0x0008, 0x1030]; -daikon.Tag.TAG_IMAGE_TYPE = [0x0008, 0x0008]; -daikon.Tag.TAG_IMAGE_COMMENTS = [0x0020, 0x4000]; -daikon.Tag.TAG_SEQUENCE_NAME = [0x0018, 0x0024]; -daikon.Tag.TAG_MODALITY = [0x0008, 0x0060]; - -// session ID -daikon.Tag.TAG_FRAME_OF_REF_UID = [0x0020, 0x0052]; - -// study ID -daikon.Tag.TAG_STUDY_UID = [0x0020, 0x000D]; - -// volume ID -daikon.Tag.TAG_SERIES_DESCRIPTION = [0x0008, 0x103E]; -daikon.Tag.TAG_SERIES_INSTANCE_UID = [0x0020, 0x000E]; -daikon.Tag.TAG_SERIES_NUMBER = [0x0020, 0x0011]; -daikon.Tag.TAG_ECHO_NUMBER = [0x0018, 0x0086]; -daikon.Tag.TAG_TEMPORAL_POSITION = [0x0020, 0x0100]; - -// slice ID -daikon.Tag.TAG_IMAGE_NUM = [0x0020, 0x0013]; -daikon.Tag.TAG_SLICE_LOCATION = [0x0020, 0x1041]; - -// orientation -daikon.Tag.TAG_IMAGE_ORIENTATION = [0x0020, 0x0037]; -daikon.Tag.TAG_IMAGE_POSITION = [0x0020, 0x0032]; -daikon.Tag.TAG_SLICE_LOCATION_VECTOR = [0x0018, 0x2005]; - -// LUT shape -daikon.Tag.TAG_LUT_SHAPE = [0x2050, 0x0020]; - -// pixel data -daikon.Tag.TAG_PIXEL_DATA = [0x7FE0, 0x0010]; - - -/*** Static methods ***/ - -/** - * Create an ID string based on the specified group and element - * @param {number} group - * @param {number} element - * @returns {string} - */ -daikon.Tag.createId = function (group, element) { - var groupStr = daikon.Utils.dec2hex(group), - elemStr = daikon.Utils.dec2hex(element); - return groupStr + elemStr; -}; - - - -daikon.Tag.getUnsignedInteger16 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 2; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getUint16(ctr * 2, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getSignedInteger16 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 2; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getInt16(ctr * 2, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getFloat32 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 4; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getFloat32(ctr * 4, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getSignedInteger32 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 4; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getInt32(ctr * 4, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getUnsignedInteger32 = function (rawData, littleEndian) { - var data, mul, ctr; - - mul = rawData.byteLength / 4; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getUint32(ctr * 4, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getFloat64 = function (rawData, littleEndian) { - var data, mul, ctr; - - if (rawData.byteLength < 8) { - return 0; - } - - mul = rawData.byteLength / 8; - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = rawData.getFloat64(ctr * 8, littleEndian); - } - - return data; -}; - - - -daikon.Tag.getDoubleElscint = function (rawData) { - var data = [], reordered = [], ctr; - - for (ctr = 0; ctr < 8; ctr += 1) { - data[ctr] = rawData.getUint8(ctr); - } - - reordered[0] = data[3]; - reordered[1] = data[2]; - reordered[2] = data[1]; - reordered[3] = data[0]; - reordered[4] = data[7]; - reordered[5] = data[6]; - reordered[6] = data[5]; - reordered[7] = data[4]; - - data = [daikon.Utils.bytesToDouble(reordered)]; - - return data; -}; - - - -daikon.Tag.getFixedLengthStringValue = function (rawData, maxLength, charset, vr) { - var data, mul, ctr; - - mul = Math.floor(rawData.byteLength / maxLength); - data = []; - for (ctr = 0; ctr < mul; ctr += 1) { - data[ctr] = daikon.Utils.getStringAt(rawData, ctr * maxLength, maxLength, charset, vr); - } - - return data; -}; - - - -daikon.Tag.getStringValue = function (rawData, charset, vr) { - var data = daikon.Utils.getStringAt(rawData, 0, rawData.byteLength, charset, vr).split('\\'), ctr; - - for (ctr = 0; ctr < data.length; ctr += 1) { - data[ctr] = daikon.Utils.trim(data[ctr]); - } - - return data; -}; - - - -daikon.Tag.getDateStringValue = function (rawData) { - var dotFormat = (daikon.Tag.getSingleStringValue(rawData)[0].indexOf('.') !== -1), - stringData = daikon.Tag.getFixedLengthStringValue(rawData, dotFormat ? 10 : daikon.Tag.VR_DA_MAX_LENGTH), - parts = null, - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - if (dotFormat) { - parts = stringData[ctr].split('.'); - if (parts.length === 3) { - data[ctr] = new Date(daikon.Utils.safeParseInt(parts[0]), - daikon.Utils.safeParseInt(parts[1]) - 1, - daikon.Utils.safeParseInt(parts[2])); - } else { - data[ctr] = new Date(); - } - } else if (stringData[ctr].length === 8) { - data[ctr] = new Date(daikon.Utils.safeParseInt(stringData[ctr].substring(0, 4)), - daikon.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1, - daikon.Utils.safeParseInt(stringData[ctr].substring(6, 8))); - } else { - data[ctr] = Date.parse(stringData[ctr]); + } + var invert = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_LUT_SHAPE[0], daikon2.Tag.TAG_LUT_SHAPE[1]), 0) === "INVERSE"; + invert = invert || this.getPhotometricInterpretation() === "MONOCHROME1"; + if (invert) { + var maxVal = Math.pow(2, this.getBitsStored()) - 1; + var minVal = 0; + if (datatype === daikon2.Image.BYTE_TYPE_INTEGER) { + maxVal /= 2; + minVal = -maxVal; + } + var originalGetWord = getWord; + getWord = function(offset2, endian) { + var val = maxVal - originalGetWord(offset2, endian); + return Math.min(maxVal, Math.max(minVal, val)); + }; + } + for (ctr = offset, dataCtr = 0; dataCtr < numElements; ctr++, dataCtr++) { + rawValue = getWord(ctr * numBytes, littleEndian); + value = (rawValue & mask) * slope + intercept; + data[dataCtr] = value; + if (value < min) { + min = value; + minIndex = dataCtr; + } + if (value > max) { + max = value; + maxIndex = dataCtr; + } + } + if (asObject) { + return { + data, + min, + minIndex, + max, + maxIndex, + numCols: this.getCols(), + numRows: this.getRows() + }; + } + return data; + }; + daikon2.Image.prototype.convertPalette = function() { + var data, reds, greens, blues, rgb, numBytes, numElements, ctr, index, rVal, gVal, bVal; + data = this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value; + reds = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_RED); + greens = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_GREEN); + blues = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_BLUE); + if (reds !== null && reds.length > 0 && greens !== null && greens.length > 0 && blues !== null && blues.length > 0 && !this.convertedPalette) { + rgb = new DataView(new ArrayBuffer(this.getRows() * this.getCols() * this.getNumberOfFrames() * 3)); + numBytes = parseInt(Math.ceil(this.getBitsAllocated() / 8)); + numElements = data.byteLength / numBytes; + if (numBytes === 1) { + for (ctr = 0; ctr < numElements; ctr += 1) { + index = data.getUint8(ctr); + rVal = reds[index]; + gVal = greens[index]; + bVal = blues[index]; + rgb.setUint8(ctr * 3, rVal); + rgb.setUint8(ctr * 3 + 1, gVal); + rgb.setUint8(ctr * 3 + 2, bVal); + } + } else if (numBytes === 2) { + for (ctr = 0; ctr < numElements; ctr += 1) { + index = data.getUint16(ctr * 2); + rVal = reds[index]; + gVal = greens[index]; + bVal = blues[index]; + rgb.setUint8(ctr * 3, rVal); + rgb.setUint8(ctr * 3 + 1, gVal); + rgb.setUint8(ctr * 3 + 2, bVal); + } } - - if (!daikon.Utils.isValidDate(data[ctr])) { - data[ctr] = stringData[ctr]; + data = rgb; + this.convertedPalette = true; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = data; + }; + daikon2.Image.prototype.decompressJPEG = function(jpg) { + if (this.isCompressedJPEGLossless()) { + var decoder = new jpeg2.lossless.Decoder(); + return decoder.decode(jpg); + } else if (this.isCompressedJPEGBaseline()) { + var decoder = new JpegDecoder2(); + decoder.parse(new Uint8Array(jpg)); + var width = decoder.width; + var height = decoder.height; + var decoded; + if (this.getBitsAllocated() === 8) { + decoded = decoder.getData(width, height); + } else if (this.getBitsAllocated() === 16) { + decoded = decoder.getData16(width, height); } - } - - return data; -}; - - - -daikon.Tag.getDateTimeStringValue = function (rawData) { - var stringData = daikon.Tag.getStringValue(rawData), - data = [], - ctr, - year = null, - month = null, - date = null, - hours = null, - minutes = null, - seconds = null; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - if (stringData[ctr].length >= 4) { - year = parseInt(stringData[ctr].substring(0, 4), 10); // required - - if (stringData[ctr].length >= 6) { - month = daikon.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1; + return decoded; + } else if (this.isCompressedJPEG2000()) { + var decoder = new JpxImage2(); + decoder.parse(new Uint8Array(jpg)); + return decoder.tiles[0].items; + } else if (this.isCompressedJPEGLS()) { + var decoder = new JpegLSDecoder2(); + return decoder.decodeJPEGLS(new Uint8Array(jpg), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER); + } + }; + daikon2.Image.prototype.decompress = function() { + var jpegs, rle, decoder, decompressed, numFrames, frameSize, temp, ctr, width, height, numComponents, decoded; + decompressed = null; + if (!this.decompressed) { + this.decompressed = true; + frameSize = this.getRows() * this.getCols() * parseInt(Math.ceil(this.getBitsAllocated() / 8)); + numFrames = this.getNumberOfFrames(); + if (this.isCompressedJPEGLossless()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new jpeg2.lossless.Decoder(); + temp = decoder.decode(jpegs[ctr]); + numComponents = decoder.numComp; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - if (stringData[ctr].length >= 8) { - date = daikon.Utils.safeParseInt(stringData[ctr].substring(6, 8)); + new Uint8Array(decompressed.buffer).set(new Uint8Array(temp.buffer), ctr * frameSize * numComponents); + temp = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedJPEGBaseline()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new JpegDecoder2(); + decoder.parse(new Uint8Array(jpegs[ctr])); + width = decoder.width; + height = decoder.height; + numComponents = decoder.components.length; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - if (stringData[ctr].length >= 10) { - hours = daikon.Utils.safeParseInt(stringData[ctr].substring(8, 10)); + if (this.getBitsAllocated() === 8) { + decoded = decoder.getData(width, height); + } else if (this.getBitsAllocated() === 16) { + decoded = decoder.getData16(width, height); } - - if (stringData[ctr].length >= 12) { - minutes = daikon.Utils.safeParseInt(stringData[ctr].substring(10, 12)); + daikon2.Utils.fillBuffer( + decoded, + decompressed, + ctr * frameSize * numComponents, + parseInt(Math.ceil(this.getBitsAllocated() / 8)) + ); + decoded = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedJPEG2000()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new JpxImage2(); + decoder.parse(new Uint8Array(jpegs[ctr])); + width = decoder.width; + height = decoder.height; + decoded = decoder.tiles[0].items; + numComponents = decoder.componentsCount; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - if (stringData[ctr].length >= 14) { - seconds = daikon.Utils.safeParseInt(stringData[ctr].substring(12, 14)); + daikon2.Utils.fillBuffer( + decoded, + decompressed, + ctr * frameSize * numComponents, + parseInt(Math.ceil(this.getBitsAllocated() / 8)) + ); + decoded = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedJPEGLS()) { + jpegs = this.getJpegs(); + for (ctr = 0; ctr < jpegs.length; ctr += 1) { + decoder = new JpegLSDecoder2(); + var decoded = decoder.decodeJPEGLS(new Uint8Array(jpegs[ctr]), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER); + width = decoded.columns; + height = decoded.rows; + decoded = decoded.pixelData; + numComponents = this.getNumberOfSamplesPerPixel(); + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } - - data[ctr] = new Date(year, month, date, hours, minutes, seconds); - } else { - data[ctr] = Date.parse(stringData[ctr]); + daikon2.Utils.fillBuffer( + decoded, + decompressed, + ctr * frameSize * numComponents, + parseInt(Math.ceil(this.getBitsAllocated() / 8)) + ); + decoded = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; + } else if (this.isCompressedRLE()) { + rle = this.getRLE(); + for (ctr = 0; ctr < rle.length; ctr += 1) { + decoder = new daikon2.RLE(); + temp = decoder.decode(rle[ctr], this.littleEndian, this.getRows() * this.getCols()); + numComponents = decoder.numSegments === 3 ? 3 : 1; + if (decompressed === null) { + decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); + } + new Uint8Array(decompressed.buffer).set(new Uint8Array(temp.buffer), ctr * frameSize * numComponents); + temp = null; + } + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } - - if (!daikon.Utils.isValidDate(data[ctr])) { - data[ctr] = stringData[ctr]; + } + }; + daikon2.Image.prototype.hasPixelData = function() { + return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])] !== void 0; + }; + daikon2.Image.prototype.clearPixelData = function() { + this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = null; + }; + daikon2.Image.prototype.getOrientation = function() { + var orientation = null, dirCos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])), ctr, spacing, rowSpacing, swapZ, bigRow = 0, bigCol = 0, biggest = 0, orient = ""; + if (!dirCos || dirCos.length !== 6) { + return null; + } + spacing = this.getPixelSpacing(); + if (!spacing) { + return null; + } + rowSpacing = spacing[0]; + swapZ = true; + for (ctr = 0; ctr < 3; ctr += 1) { + if (Math.abs(dirCos[ctr]) > biggest) { + biggest = Math.abs(dirCos[ctr]); + bigRow = ctr; } - } - - return data; -}; - - - -daikon.Tag.getTimeStringValue = function (rawData, ms) { - var stringData = daikon.Tag.getStringValue(rawData), - data = []; - - if (ms) { - var parts = null, - ctr, - hours = 0, - minutes = 0, - seconds = 0; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - if (stringData[ctr].indexOf(':') !== -1) { - parts = stringData[ctr].split(':'); - hours = daikon.Utils.safeParseInt(parts[0]); - - if (parts.length > 1) { - minutes = daikon.Utils.safeParseInt(parts[1]); - } - - if (parts.length > 2) { - seconds = daikon.Utils.safeParseFloat(parts[2]); - } + } + biggest = 0; + for (; ctr < 6; ctr += 1) { + if (Math.abs(dirCos[ctr]) > biggest) { + biggest = Math.abs(dirCos[ctr]); + bigCol = ctr; + } + } + switch (bigRow) { + case 0: + orient += "X"; + if (bigCol === 4) { + orient += "YZ"; + } else { + orient += "ZY"; + } + break; + case 1: + orient += "Y"; + if (bigCol === 3) { + orient += "XZ"; + } else { + orient += "ZX"; + } + break; + case 2: + orient += "Z"; + if (bigCol === 3) { + orient += "XY"; + } else { + orient += "YX"; + } + break; + default: + break; + } + switch (bigRow) { + case 0: + if (dirCos[bigRow] > 0) { + orient += "-"; + } else { + orient += "+"; + } + if (bigCol === 4) { + if (dirCos[bigCol] > 0) { + orient += "-"; } else { - if (stringData[ctr].length >= 2) { - hours = daikon.Utils.safeParseInt(stringData[ctr].substring(0, 2)); - } - - if (stringData[ctr].length >= 4) { - minutes = daikon.Utils.safeParseInt(stringData[ctr].substring(2, 4)); - } - - if (stringData[ctr].length >= 6) { - seconds = daikon.Utils.safeParseFloat(stringData[ctr].substring(4)); - } + orient += "+"; } - - data[ctr] = Math.round((hours * 60 * 60 * 1000) + (minutes * 60 * 1000) + (seconds * 1000)); + } else { + if (dirCos[bigCol] > 0) { + orient += "+"; + } else { + orient += "-"; + } + } + break; + case 1: + if (dirCos[bigRow] > 0) { + orient += "-"; + } else { + orient += "+"; + } + if (bigCol === 3) { + if (dirCos[bigCol] > 0) { + orient += "-"; + } else { + orient += "+"; + } + } else { + if (dirCos[bigCol] > 0) { + orient += "+"; + } else { + orient += "-"; + } + } + break; + case 2: + if (dirCos[bigRow] > 0) { + orient += "+"; + } else { + orient += "-"; + } + if (dirCos[bigCol] > 0) { + orient += "-"; + } else { + orient += "+"; + } + break; + default: + break; + } + if (rowSpacing === 0) { + orient += "+"; + orientation = orient; + } else { + if (swapZ) { + switch (orient.charAt(2)) { + case "X": + if (rowSpacing > 0) { + orient += "-"; + } else { + orient += "+"; + } + break; + case "Y": + case "Z": + if (rowSpacing > 0) { + orient += "+"; + } else { + orient += "-"; + } + break; + default: + break; + } + } else { + switch (orient.charAt(2)) { + case "X": + if (rowSpacing > 0) { + orient += "+"; + } else { + orient += "-"; + } + break; + case "Y": + case "Z": + if (rowSpacing > 0) { + orient += "-"; + } else { + orient += "+"; + } + break; + default: + break; + } } - - return data; - } - - - return stringData; -}; - - - -daikon.Tag.getDoubleStringValue = function (rawData) { - var stringData = daikon.Tag.getStringValue(rawData), - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - data[ctr] = parseFloat(stringData[ctr]); - } - - return data; -}; - - - -daikon.Tag.getIntegerStringValue = function (rawData) { - var stringData = daikon.Tag.getStringValue(rawData), - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - data[ctr] = parseInt(stringData[ctr], 10); - } - - return data; -}; - - - -daikon.Tag.getSingleStringValue = function (rawData, maxLength, charset, vr) { - var len = rawData.byteLength; - if (maxLength) { - len = Math.min(rawData.byteLength, maxLength); - } - return [daikon.Utils.trim(daikon.Utils.getStringAt(rawData, 0, len, charset, vr))]; -}; - - - -daikon.Tag.getPersonNameStringValue = function (rawData, charset, vr) { - var stringData = daikon.Tag.getStringValue(rawData, charset, vr), - data = [], - ctr; - - for (ctr = 0; ctr < stringData.length; ctr += 1) { - data[ctr] = stringData[ctr].replace('^', ' '); - } - - return data; -}; - - - -daikon.Tag.convertPrivateValue = function (group, element, rawData) { - var ctr, privReader; - - for (ctr = 0; ctr < daikon.Tag.PRIVATE_DATA_READERS.length; ctr += 1) { - privReader = new daikon.Tag.PRIVATE_DATA_READERS[ctr](rawData.buffer); - if (privReader.canRead(group, element)) { - return privReader.readHeader(); + orientation = orient; + } + return orientation; + }; + daikon2.Image.prototype.isMosaic = function() { + var imageType, labeledAsMosaic = false, canReadAsMosaic, ctr, matSize; + imageType = this.getImageType(); + if (imageType !== null) { + for (ctr = 0; ctr < imageType.length; ctr += 1) { + if (imageType[ctr].toUpperCase().indexOf("MOSAIC") !== -1) { + labeledAsMosaic = true; + break; + } + } + } + matSize = this.getAcquisitionMatrix(); + canReadAsMosaic = matSize[0] > 0 && (matSize[0] < this.getRows() || matSize[1] < this.getCols()); + return labeledAsMosaic && canReadAsMosaic; + }; + daikon2.Image.prototype.isPalette = function() { + var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); + if (value !== null) { + if (value.toLowerCase().indexOf("palette") !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.getMosaicCols = function() { + return this.getCols() / this.getAcquisitionMatrix()[1]; + }; + daikon2.Image.prototype.getMosaicRows = function() { + return this.getRows() / this.getAcquisitionMatrix()[0]; + }; + daikon2.Image.prototype.isElscint = function() { + var tag = this.getTag(daikon2.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon2.Tag.TAG_DATA_SCALE_ELSCINT[1]); + return tag !== void 0; + }; + daikon2.Image.prototype.isCompressed = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { + return true; + } else if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEG = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEGLossless = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEGBaseline = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEG2000 = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedJPEGLS = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.isCompressedRLE = function() { + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + var transferSyntax = this.getTransferSyntax(); + if (transferSyntax) { + if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { + return true; + } + } + return false; + }; + daikon2.Image.prototype.getNumberOfFrames = function() { + var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_NUMBER_OF_FRAMES[0], daikon2.Tag.TAG_NUMBER_OF_FRAMES[1]), 0); + if (value !== null) { + return value; + } + return 1; + }; + daikon2.Image.prototype.getNumberOfSamplesPerPixel = function() { + var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SAMPLES_PER_PIXEL[0], daikon2.Tag.TAG_SAMPLES_PER_PIXEL[1]), 0); + if (value !== null) { + return value; + } + return 1; + }; + daikon2.Image.prototype.getNumberOfImplicitFrames = function() { + var pixelData, length, size; + if (this.isCompressed()) { + return 1; + } + pixelData = this.getPixelData(); + length = pixelData.offsetEnd - pixelData.offsetValue; + size = this.getCols() * this.getRows() * parseInt(this.getBitsAllocated() / 8); + return parseInt(length / size); + }; + daikon2.Image.prototype.getPixelRepresentation = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_REPRESENTATION[0], daikon2.Tag.TAG_PIXEL_REPRESENTATION[1]), 0); + }; + daikon2.Image.prototype.getPhotometricInterpretation = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); + }; + daikon2.Image.prototype.getPatientName = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PATIENT_NAME[0], daikon2.Tag.TAG_PATIENT_NAME[1]), 0); + }; + daikon2.Image.prototype.getPatientID = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PATIENT_ID[0], daikon2.Tag.TAG_PATIENT_ID[1]), 0); + }; + daikon2.Image.prototype.getStudyTime = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_TIME[0], daikon2.Tag.TAG_STUDY_TIME[1]), 0); + }; + daikon2.Image.prototype.getTransferSyntax = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TRANSFER_SYNTAX[0], daikon2.Tag.TAG_TRANSFER_SYNTAX[1]), 0); + }; + daikon2.Image.prototype.getStudyDate = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_DATE[0], daikon2.Tag.TAG_STUDY_DATE[1]), 0); + }; + daikon2.Image.prototype.getPlanarConfig = function() { + return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PLANAR_CONFIG[0], daikon2.Tag.TAG_PLANAR_CONFIG[1]), 0); + }; + daikon2.Image.prototype.getImageDescription = function() { + var value, string = ""; + value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_DES[0], daikon2.Tag.TAG_STUDY_DES[1]), 0); + if (value !== null) { + string += " " + value; + } + value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_DESCRIPTION[0], daikon2.Tag.TAG_SERIES_DESCRIPTION[1]), 0); + if (value !== null) { + string += " " + value; + } + value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_COMMENTS[0], daikon2.Tag.TAG_IMAGE_COMMENTS[1]), 0); + if (value !== null) { + string += " " + value; + } + return string.trim(); + }; + daikon2.Image.prototype.getDataType = function() { + var interp, dataType; + dataType = this.getPixelRepresentation(); + if (dataType === null) { + return daikon2.Image.BYTE_TYPE_UNKNOWN; + } + interp = this.getPhotometricInterpretation(); + if (interp !== null) { + if (interp.trim().indexOf("RGB") !== -1 || interp.trim().indexOf("YBR") !== -1 || interp.trim().toLowerCase().indexOf("palette") !== -1) { + return daikon2.Image.BYTE_TYPE_RGB; } - } - - return rawData; -}; - - - -daikon.Tag.convertValue = function (vr, rawData, littleEndian, charset) { - var data = null; - // http://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html - if (vr === 'AE') { - data = daikon.Tag.getSingleStringValue(rawData, daikon.Tag.VR_AE_MAX_LENGTH); - } else if (vr === 'AS') { - data = daikon.Tag.getFixedLengthStringValue(rawData, daikon.Tag.VR_AS_MAX_LENGTH); - } else if (vr === 'AT') { - data = daikon.Tag.getUnsignedInteger16(rawData, littleEndian); - } else if (vr === 'CS') { - data = daikon.Tag.getStringValue(rawData); - } else if (vr === 'DA') { - data = daikon.Tag.getDateStringValue(rawData); - } else if (vr === 'DS') { - data = daikon.Tag.getDoubleStringValue(rawData); - } else if (vr === 'DT') { - data = daikon.Tag.getDateTimeStringValue(rawData); - } else if (vr === 'FL') { - data = daikon.Tag.getFloat32(rawData, littleEndian); - } else if (vr === 'FD') { - data = daikon.Tag.getFloat64(rawData, littleEndian); - } else if (vr === 'FE') { // special Elscint double (see dictionary) - data = daikon.Tag.getDoubleElscint(rawData, littleEndian); - } else if (vr === 'IS') { - data = daikon.Tag.getIntegerStringValue(rawData); - } else if (vr === 'LO') { - data = daikon.Tag.getStringValue(rawData, charset, vr); - } else if (vr === 'LT') { - data = daikon.Tag.getSingleStringValue(rawData, daikon.Tag.VR_AT_MAX_LENGTH, charset, vr); - } else if (vr === 'OB') { - data = rawData; - } else if (vr === 'OD') { - data = rawData; - } else if (vr === 'OF') { - data = rawData; - } else if (vr === 'OW') { - data = rawData; - } else if (vr === 'PN') { - data = daikon.Tag.getPersonNameStringValue(rawData, charset, vr); - } else if (vr === 'SH') { - data = daikon.Tag.getStringValue(rawData, charset, vr); - } else if (vr === 'SL') { - data = daikon.Tag.getSignedInteger32(rawData, littleEndian); - } else if (vr === 'SQ') { - data = null; - } else if (vr === 'SS') { - data = daikon.Tag.getSignedInteger16(rawData, littleEndian); - } else if (vr === 'ST') { - data = daikon.Tag.getSingleStringValue(rawData, daikon.Tag.VR_ST_MAX_LENGTH, charset, vr); - } else if (vr === 'TM') { - data = daikon.Tag.getTimeStringValue(rawData); - } else if (vr === 'UI') { - data = daikon.Tag.getStringValue(rawData); - } else if (vr === 'UL') { - data = daikon.Tag.getUnsignedInteger32(rawData, littleEndian); - } else if (vr === 'UN') { - data = rawData; - } else if (vr === 'US') { - data = daikon.Tag.getUnsignedInteger16(rawData, littleEndian); - } else if (vr === 'UT') { - data = daikon.Tag.getSingleStringValue(rawData, Number.MAX_SAFE_INTEGER, charset, vr); - } else if (vr === 'UC') { - data = daikon.Tag.getStringValue(rawData); - } - - return data; -}; - - -/*** Prototype Methods ***/ - -/** - * Returns a string representation of this tag. - * @param {number} [level] - the indentation level - * @param {boolean} [html] - * @returns {string} - */ -daikon.Tag.prototype.toString = function (level, html) { - var valueStr = '', - ctr, - groupStr = daikon.Utils.dec2hex(this.group), - elemStr = daikon.Utils.dec2hex(this.element), - tagStr = '(' + groupStr + ',' + elemStr + ')', - des = '', - padding; - - if (level === undefined) { - level = 0; - } - - padding = ""; - for (ctr = 0; ctr < level; ctr += 1) { - if (html) { - padding += "  "; - } else { - padding += " "; + } + if (dataType === 0) { + return daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED; + } else if (dataType === 1) { + return daikon2.Image.BYTE_TYPE_INTEGER; + } else { + return daikon2.Image.BYTE_TYPE_UNKNOWN; + } + }; + daikon2.Image.prototype.getAcquiredSliceDirection = function() { + var dirCos, rowAxis, colAxis, label; + dirCos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])); + if (!dirCos || dirCos.length !== 6) { + return daikon2.Image.SLICE_DIRECTION_UNKNOWN; + } + rowAxis = daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[0], dirCos[1], dirCos[2]); + colAxis = daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[3], dirCos[4], dirCos[5]); + if (rowAxis !== null && colAxis !== null) { + if ((rowAxis === "R" || rowAxis === "L") && (colAxis === "A" || colAxis === "P")) { + label = daikon2.Image.SLICE_DIRECTION_AXIAL; + } else if ((colAxis === "R" || colAxis === "L") && (rowAxis === "A" || rowAxis === "P")) { + label = daikon2.Image.SLICE_DIRECTION_AXIAL; + } else if ((rowAxis === "R" || rowAxis === "L") && (colAxis === "H" || colAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_CORONAL; + } else if ((colAxis === "R" || colAxis === "L") && (rowAxis === "H" || rowAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_CORONAL; + } else if ((rowAxis === "A" || rowAxis === "P") && (colAxis === "H" || colAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_SAGITTAL; + } else if ((colAxis === "A" || colAxis === "P") && (rowAxis === "H" || rowAxis === "F")) { + label = daikon2.Image.SLICE_DIRECTION_SAGITTAL; } - } - - if (this.sublist) { - for (ctr = 0; ctr < this.value.length; ctr += 1) { - valueStr += ('\n' + (this.value[ctr].toString(level + 1, html))); - } - } else if (this.vr === 'SQ') { - valueStr = ''; - } else if (this.isPixelData()) { - valueStr = ''; - } else if (!this.value) { - valueStr = ''; - } else { - if (html && this.preformatted) { - valueStr = "[
"+this.value +"
]"; + } else { + label = daikon2.Image.SLICE_DIRECTION_OBLIQUE; + } + return label; + }; + daikon2.Image.prototype.getEncapsulatedData = function() { + var buffer2, parser; + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + buffer2 = this.getPixelData().value.buffer; + parser = new daikon2.Parser(); + return parser.parseEncapsulated(new DataView(buffer2)); + }; + daikon2.Image.prototype.getJpegs = function() { + var encapTags, numTags, ctr, currentJpeg, data = [], dataConcat = []; + encapTags = this.getEncapsulatedData(); + if (encapTags) { + numTags = encapTags.length; + for (ctr = 0; ctr < numTags; ctr += 1) { + if (daikon2.CompressionUtils.isHeaderJPEG(encapTags[ctr].value) || daikon2.CompressionUtils.isHeaderJPEG2000(encapTags[ctr].value)) { + currentJpeg = []; + currentJpeg.push(encapTags[ctr].value.buffer); + data.push(currentJpeg); + } else if (currentJpeg && encapTags[ctr].value) { + currentJpeg.push(encapTags[ctr].value.buffer); + } + } + } + for (ctr = 0; ctr < data.length; ctr += 1) { + if (data[ctr].length > 1) { + dataConcat[ctr] = daikon2.Utils.concatArrayBuffers2(data[ctr]); } else { - valueStr = '[' + this.value + ']'; + dataConcat[ctr] = data[ctr][0]; } - } - - if (this.isSublistItem()) { - tagStr = "Sequence Item"; - } else if (this.isSublistItemDelim()) { - tagStr = "Sequence Item Delimiter"; - } else if (this.isSequenceDelim()) { - tagStr = "Sequence Delimiter"; - } else if (this.isPixelData()) { - tagStr = "Pixel Data"; - } else { - des = daikon.Utils.convertCamcelCaseToTitleCase(daikon.Dictionary.getDescription(this.group, this.element)); - } - - if (html) { - return padding + "" + tagStr + "   " + des + '   ' + valueStr; - } else { - return padding + ' ' + tagStr + ' ' + des + ' ' + valueStr; - } -}; - - -/** - * Returns an HTML string representation of this tag. - * @param {number} level - the indentation level - * @returns {string} - */ -daikon.Tag.prototype.toHTMLString = function (level) { - return this.toString(level, true); -}; - - -/** - * Returns true if this is the transform syntax tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isTransformSyntax = function () { - return (this.group === daikon.Tag.TAG_TRANSFER_SYNTAX[0]) && (this.element === daikon.Tag.TAG_TRANSFER_SYNTAX[1]); -}; - - -/** - * Returns true if this is the char set tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isCharset = function () { - return (this.group === daikon.Tag.TAG_SPECIFIC_CHAR_SET[0]) && (this.element === daikon.Tag.TAG_SPECIFIC_CHAR_SET[1]); -}; - - -/** - * Returns true if this is the pixel data tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isPixelData = function () { - return (this.group === daikon.Tag.TAG_PIXEL_DATA[0]) && (this.element === daikon.Tag.TAG_PIXEL_DATA[1]); -}; - - -/** - * Returns true if this tag contains private data. - * @returns {boolean} - */ -daikon.Tag.prototype.isPrivateData = function () { - /*jslint bitwise: true */ - return ((this.group & 1) === 1); -}; - - -/** - * Returns true if this tag contains private data that can be read. - * @returns {boolean} - */ -daikon.Tag.prototype.hasInterpretedPrivateData = function () { - return this.isPrivateData() && daikon.Utils.isString(this.value); -}; - - -/** - * Returns true if this tag is a sublist item. - * @returns {boolean} - */ -daikon.Tag.prototype.isSublistItem = function () { - return (this.group === daikon.Tag.TAG_SUBLIST_ITEM[0]) && (this.element === daikon.Tag.TAG_SUBLIST_ITEM[1]); -}; - - -/** - * Returns true if this tag is a sublist item delimiter. - * @returns {boolean} - */ -daikon.Tag.prototype.isSublistItemDelim = function () { - return (this.group === daikon.Tag.TAG_SUBLIST_ITEM_DELIM[0]) && (this.element === daikon.Tag.TAG_SUBLIST_ITEM_DELIM[1]); -}; - - -/** - * Returns true if this tag is a sequence delimiter. - * @returns {boolean} - */ -daikon.Tag.prototype.isSequenceDelim = function () { - return (this.group === daikon.Tag.TAG_SUBLIST_SEQ_DELIM[0]) && (this.element === daikon.Tag.TAG_SUBLIST_SEQ_DELIM[1]); -}; - - -/** - * Returns true if this is a meta length tag. - * @returns {boolean} - */ -daikon.Tag.prototype.isMetaLength = function () { - return (this.group === daikon.Tag.TAG_META_LENGTH[0]) && (this.element === daikon.Tag.TAG_META_LENGTH[1]); -}; - - -/*** Exports ***/ - -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Tag; -} - -},{"./dictionary.js":22,"./siemens.js":30,"./utilities.js":32}],32:[function(require,module,exports){ - -/*jslint browser: true, node: true */ -/*global require, module */ - -"use strict"; - -/*** Imports ***/ -var convertBytes = require('@wearemothership/dicom-character-set').convertBytes; -var daikon = daikon || {}; -daikon.Utils = daikon.Utils || {}; - - -daikon.Utils.crcTable = null; - - -/*** Static Pseudo-constants ***/ - -daikon.Utils.MAX_VALUE = 9007199254740991; -daikon.Utils.MIN_VALUE = -9007199254740991; - - - -/*** Static methods ***/ - -daikon.Utils.dec2hex = function (i) { - return (i + 0x10000).toString(16).substr(-4).toUpperCase(); -}; - - - -// http://stackoverflow.com/questions/966225/how-can-i-create-a-two-dimensional-array-in-javascript -daikon.Utils.createArray = function (length) { - var arr = new Array(length || 0), - i = length; - - if (arguments.length > 1) { - var args = Array.prototype.slice.call(arguments, 1); - while(i--) arr[length-1 - i] = daikon.Utils.createArray.apply(this, args); - } - - return arr; -}; - - -daikon.Utils.getStringAt = function (dataview, start, length, charset, vr) { - var strBuff = new Uint8Array(dataview.buffer, dataview.byteOffset + start, length); - var str = convertBytes(charset || "ISO 2022 IR 6", strBuff, {vr: vr} ); - - while (str && str.charCodeAt(str.length - 1) === 0) { - str = str.slice(0,-1); - } - - return str; -}; - - - -daikon.Utils.trim = function (str) { - return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); -}; - - - -daikon.Utils.stripLeadingZeros = function (str) { - return str.replace(/^[0]+/g, ""); -}; - - - -daikon.Utils.safeParseInt = function (str) { - str = daikon.Utils.stripLeadingZeros(str); - if (str.length > 0) { - return parseInt(str, 10); - } - - return 0; -}; - - - -daikon.Utils.convertCamcelCaseToTitleCase = function (str) { - var result = str.replace(/([A-Z][a-z])/g, " $1"); - return daikon.Utils.trim(result.charAt(0).toUpperCase() + result.slice(1)); -}; - - - -daikon.Utils.safeParseFloat = function (str) { - str = daikon.Utils.stripLeadingZeros(str); - if (str.length > 0) { - return parseFloat(str); - } - - return 0; -}; - - -// http://stackoverflow.com/questions/8361086/convert-byte-array-to-numbers-in-javascript -daikon.Utils.bytesToDouble = function (data) { - var sign = (data[0] & 1<<7)>>7; - - var exponent = (((data[0] & 127) << 4) | (data[1]&(15<<4))>>4); - - if(exponent == 0) return 0; - if(exponent == 0x7ff) return (sign) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - - var mul = Math.pow(2,exponent - 1023 - 52); - var mantissa = data[7]+ - data[6]*Math.pow(2,8)+ - data[5]*Math.pow(2,8*2)+ - data[4]*Math.pow(2,8*3)+ - data[3]*Math.pow(2,8*4)+ - data[2]*Math.pow(2,8*5)+ - (data[1]&15)*Math.pow(2,8*6)+ - Math.pow(2,52); - - return Math.pow(-1,sign)*mantissa*mul; -}; - - - -daikon.Utils.concatArrayBuffers = function (buffer1, buffer2) { - var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); - tmp.set(new Uint8Array(buffer1), 0); - tmp.set(new Uint8Array(buffer2), buffer1.byteLength); - return tmp.buffer; -}; - - - -daikon.Utils.concatArrayBuffers2 = function (buffers) { - var length = 0, offset = 0, ctr; - - for (ctr = 0; ctr < buffers.length; ctr += 1) { - length += buffers[ctr].byteLength; - } - - var tmp = new Uint8Array(length); - - for (ctr = 0; ctr < buffers.length; ctr += 1) { - tmp.set(new Uint8Array(buffers[ctr]), offset); - offset += buffers[ctr].byteLength; - - } - - return tmp.buffer; -}; - - - -daikon.Utils.fillBuffer = function (array, buffer, offset, numBytes) { - var ctr; - - if (numBytes === 1) { - for (ctr = 0; ctr < array.length; ctr+=1) { - buffer.setUint8(offset + ctr, array[ctr]); + data[ctr] = null; + } + return dataConcat; + }; + daikon2.Image.prototype.getRLE = function() { + var encapTags, numTags, ctr, data = []; + encapTags = this.getEncapsulatedData(); + if (encapTags) { + numTags = encapTags.length; + for (ctr = 1; ctr < numTags; ctr += 1) { + if (encapTags[ctr].value) { + data.push(encapTags[ctr].value.buffer); + } + } + } + return data; + }; + daikon2.Image.prototype.getAllInterpretedPrivateData = function() { + var ctr, key2, tag, str = ""; + var sorted_keys = Object.keys(this.tags).sort(); + for (ctr = 0; ctr < sorted_keys.length; ctr += 1) { + key2 = sorted_keys[ctr]; + if (this.tags.hasOwnProperty(key2)) { + tag = this.tags[key2]; + if (tag.hasInterpretedPrivateData()) { + str += tag.value; + } + } + } + return str; + }; + daikon2.Image.prototype.toString = function() { + var ctr, tag, key2, str = ""; + var sorted_keys = Object.keys(this.tags).sort(); + for (ctr = 0; ctr < sorted_keys.length; ctr += 1) { + key2 = sorted_keys[ctr]; + if (this.tags.hasOwnProperty(key2)) { + tag = this.tags[key2]; + str += tag.toHTMLString() + "
"; + } + } + str = str.replace(/\n\s*\n/g, "\n"); + str = str.replace(/(?:\r\n|\r|\n)/g, "
"); + return str; + }; + daikon2.Image.prototype.getPalleteValues = function(tagID) { + var valsBig, valsLittle, value, numVals, ctr, valsBigMax, valsBigMin, valsLittleMax, valsLittleMin, valsBigDiff, valsLittleDiff; + valsBig = null; + valsLittle = null; + value = daikon2.Image.getValueSafely(this.getTag(tagID[0], tagID[1])); + if (value !== null) { + numVals = value.buffer.byteLength / 2; + valsBig = []; + valsLittle = []; + for (ctr = 0; ctr < numVals; ctr += 1) { + valsBig[ctr] = value.getUint16(ctr * 2, false) & 65535; + valsLittle[ctr] = value.getUint16(ctr * 2, true) & 65535; + } + valsBigMax = Math.max.apply(Math, valsBig); + valsBigMin = Math.min.apply(Math, valsBig); + valsLittleMax = Math.max.apply(Math, valsLittle); + valsLittleMin = Math.min.apply(Math, valsLittle); + valsBigDiff = Math.abs(valsBigMax - valsBigMin); + valsLittleDiff = Math.abs(valsLittleMax - valsLittleMin); + if (valsBigDiff < valsLittleDiff) { + return this.scalePalette(valsBig); + } else { + return this.scalePalette(valsLittle); } - } else if (numBytes === 2) { - for (ctr = 0; ctr < array.length; ctr+=1) { - buffer.setUint16(offset + (ctr * 2), array[ctr], true); + } + return null; + }; + daikon2.Image.prototype.scalePalette = function(pal) { + var min, max, ctr, slope, intercept; + max = Math.max.apply(Math, pal); + min = Math.min.apply(Math, pal); + if (max > 255 || min < 0) { + slope = 255 / (max - min); + intercept = min; + for (ctr = 0; ctr < pal.length; ctr += 1) { + pal[ctr] = parseInt(Math.round((pal[ctr] - intercept) * slope)); } + } + return pal; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Image; } -}; - - - -daikon.Utils.fillBufferRGB = function (array, buffer, offset) { - var r, g, b, ctr, numElements = (parseInt(array.length / 3)); - - for (ctr = 0; ctr < numElements; ctr+=1) { - r = array[ctr * 3]; - g = array[ctr * 3 + 1]; - b = array[ctr * 3 + 2]; + } +}); - buffer.setUint8(offset + ctr, parseInt((r + b + g) / 3), true); +// src/iterator.js +var require_iterator = __commonJS({ + "src/iterator.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || function(orderedMap) { + this.orderedMap = orderedMap; + this.index = 0; + }; + daikon2.OrderedMapIterator.prototype.hasNext = function() { + return this.index < this.orderedMap.orderedKeys.length; + }; + daikon2.OrderedMapIterator.prototype.next = function() { + var item = this.orderedMap.get(this.orderedMap.orderedKeys[this.index]); + this.index += 1; + return item; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.OrderedMapIterator; } -}; - - + } +}); -daikon.Utils.bind = function (scope, fn, args, appendArgs) { - if (arguments.length === 2) { - return function () { - return fn.apply(scope, arguments); - }; +// src/orderedmap.js +var require_orderedmap = __commonJS({ + "src/orderedmap.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); + daikon2.OrderedMap = daikon2.OrderedMap || function() { + this.map = {}; + this.orderedKeys = []; + }; + daikon2.OrderedMap.prototype.put = function(key2, value) { + if (key2 in this.map) { + this.map[key2] = value; + } else { + this.orderedKeys.push(key2); + this.orderedKeys.sort(function(a, b) { + return parseFloat(a) - parseFloat(b); + }); + this.map[key2] = value; + } + }; + daikon2.OrderedMap.prototype.remove = function(key2) { + var index = this.orderedKeys.indexOf(key2); + if (index === -1) { + throw new Error("key does not exist"); + } + this.orderedKeys.splice(index, 1); + delete this.map[key2]; + }; + daikon2.OrderedMap.prototype.get = function(key2) { + if (key2 in this.map) { + return this.map[key2]; + } + return null; + }; + daikon2.OrderedMap.prototype.iterator = function() { + return new daikon2.OrderedMapIterator(this); + }; + daikon2.OrderedMap.prototype.getOrderedValues = function() { + var orderedValues = [], it = this.iterator(); + while (it.hasNext()) { + orderedValues.push(it.next()); + } + return orderedValues; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.OrderedMap; } + } +}); - var method = fn, - slice = Array.prototype.slice; - - return function () { - var callArgs = args || arguments; - - if (appendArgs === true) { - callArgs = slice.call(arguments, 0); - callArgs = callArgs.concat(args); - } else if (typeof appendArgs === 'number') { - callArgs = slice.call(arguments, 0); // copy arguments first - Ext.Array.insert(callArgs, appendArgs, args); +// src/series.js +var require_series = __commonJS({ + "src/series.js"(exports2, module2) { + "use strict"; + var daikon2 = daikon2 || {}; + daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); + daikon2.Image = daikon2.Image || (typeof require !== "undefined" ? require_image() : null); + daikon2.OrderedMap = daikon2.OrderedMap || (typeof require !== "undefined" ? require_orderedmap() : null); + daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); + daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); + daikon2.Series = daikon2.Series || function() { + this.images = []; + this.imagesOriginalOrder = null; + this.isMosaic = false; + this.isElscint = false; + this.isCompressed = false; + this.numberOfFrames = 0; + this.numberOfFramesInFile = 0; + this.isMultiFrame = false; + this.isMultiFrameVolume = false; + this.isMultiFrameTimeseries = false; + this.isImplicitTimeseries = false; + this.sliceSense = false; + this.sliceDir = daikon2.Image.SLICE_DIRECTION_UNKNOWN; + this.error = null; + }; + daikon2.Series.parserError = null; + daikon2.Series.useExplicitOrdering = false; + daikon2.Series.useExplicitSpacing = 0; + daikon2.Series.parseImage = function(data) { + var parser, image; + parser = new daikon2.Parser(); + image = parser.parse(data); + if (parser.hasError()) { + daikon2.Series.parserError = parser.error; + return null; + } + if (parser.inflated) { + image.inflated = parser.inflated; + } + return image; + }; + daikon2.Series.getMosaicOffset = function(mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, xLocVal, yLocVal, zLocVal) { + var xLoc, yLoc, zLoc; + xLoc = xLocVal; + yLoc = yLocVal; + zLoc = zLocVal; + xLoc = zLoc % mosaicCols * mosaicColWidth + xLoc; + yLoc = (parseInt(zLoc / mosaicCols) * mosaicRowHeight + yLoc) * mosaicWidth; + return xLoc + yLoc; + }; + daikon2.Series.orderDicoms = function(images, numFrames, sliceDir) { + var hasImagePosition, hasSliceLocation, hasImageNumber, timeMap, timeIt, ctr, ctrIn, dg, ordered, imagesOrderedByTimeAndSpace; + hasImagePosition = images[0].getImagePosition() !== null; + hasSliceLocation = images[0].getSliceLocation() !== null; + hasImageNumber = images[0].getImageNumber() !== null; + timeMap = daikon2.Series.orderByTime(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation); + timeIt = timeMap.orderedKeys; + imagesOrderedByTimeAndSpace = []; + for (ctr = 0; ctr < timeIt.length; ctr += 1) { + dg = timeMap.get(timeIt[ctr]); + if (hasImagePosition) { + ordered = daikon2.Series.orderByImagePosition(dg, sliceDir); + } else if (hasSliceLocation) { + ordered = daikon2.Series.orderBySliceLocation(dg); + } else if (hasImageNumber) { + ordered = daikon2.Series.orderByImageNumber(dg); + } else { + ordered = dg; } - - return method.apply(scope || window, callArgs); + for (ctrIn = 0; ctrIn < ordered.length; ctrIn += 1) { + imagesOrderedByTimeAndSpace.push(ordered[ctrIn]); + } + } + for (ctrIn = 0; ctrIn < imagesOrderedByTimeAndSpace.length; ctrIn += 1) { + imagesOrderedByTimeAndSpace[ctrIn].index = ctrIn; + } + return imagesOrderedByTimeAndSpace; }; -}; - - - -daikon.Utils.toArrayBuffer = function (buffer) { - var ab, view, i; - - ab = new ArrayBuffer(buffer.length); - view = new Uint8Array(ab); - for (i = 0; i < buffer.length; i += 1) { - view[i] = buffer[i]; - } - return ab; -}; - - - -// http://stackoverflow.com/questions/203739/why-does-instanceof-return-false-for-some-literals -daikon.Utils.isString = function (s) { - return typeof(s) === 'string' || s instanceof String; -}; - - - -// http://stackoverflow.com/questions/1353684/detecting-an-invalid-date-date-instance-in-javascript -daikon.Utils.isValidDate = function(d) { - if (Object.prototype.toString.call(d) === "[object Date]") { - if (isNaN(d.getTime())) { - return false; + daikon2.Series.orderByImagePosition = function(images, sliceDir) { + var dicomMap, ctr; + dicomMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + dicomMap.put(images[ctr].getImagePositionSliceDir(sliceDir), images[ctr]); + } + return dicomMap.getOrderedValues(); + }; + daikon2.Series.orderBySliceLocation = function(images) { + var dicomMap, ctr; + dicomMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + dicomMap.put(images[ctr].getSliceLocation(), images[ctr]); + } + return dicomMap.getOrderedValues(); + }; + daikon2.Series.orderByImageNumber = function(images) { + var dicomMap, ctr; + dicomMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + dicomMap.put(images[ctr].getImageNumber(), images[ctr]); + } + return dicomMap.getOrderedValues(); + }; + daikon2.Series.hasMatchingSlice = function(dg, image, sliceDir, doImagePos, doSliceLoc) { + var matchingNum = 0, ctr, current, imagePos, sliceLoc, imageNum; + if (doImagePos) { + matchingNum = image.getImagePositionSliceDir(sliceDir); + } else if (doSliceLoc) { + matchingNum = image.getSliceLocation(); + } else { + matchingNum = image.getImageNumber(); + } + for (ctr = 0; ctr < dg.length; ctr += 1) { + current = dg[ctr]; + if (doImagePos) { + imagePos = current.getImagePositionSliceDir(sliceDir); + if (imagePos === matchingNum) { + return true; + } + } else if (doSliceLoc) { + sliceLoc = current.getSliceLocation(); + if (sliceLoc === matchingNum) { + return true; + } } else { + imageNum = current.getImageNumber(); + if (imageNum === matchingNum) { return true; + } } - } else { - return false; - } -}; - - - -daikon.Utils.swap32 = function (val) { - /*jslint bitwise: true */ - return ((val & 0xFF) << 24) | ((val & 0xFF00) << 8) | ((val >> 8) & 0xFF00) | ((val >> 24) & 0xFF); -}; - - - -daikon.Utils.swap16 = function (val) { - /*jslint bitwise: true */ - return ((((val & 0xFF) << 8) | ((val >> 8) & 0xFF)) << 16) >> 16; // since JS uses 32-bit when bit shifting -}; - - -// http://stackoverflow.com/questions/18638900/javascript-crc32 -daikon.Utils.makeCRCTable = function(){ - var c; - var crcTable = []; - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + return false; + }; + daikon2.Series.orderByTime = function(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation) { + var dicomMap, hasTemporalPosition, hasTemporalNumber, ctr, image, tempPos, dg, timeBySliceMap, imageNum, sliceMarker, slice, dicomsCopy, dicomsCopyIndex, sliceIt, timeIt, dgFound, it; + dicomMap = new daikon2.OrderedMap(); + hasTemporalPosition = numFrames > 1 && images[0].getTemporalPosition() !== null; + hasTemporalNumber = numFrames > 1 && images[0].getTemporalNumber() !== null && images[0].getTemporalNumber() === numFrames; + if (hasTemporalPosition && hasTemporalNumber) { + for (ctr = 0; ctr < images.length; ctr += 1) { + image = images[ctr]; + tempPos = image.getTemporalPosition(); + dg = dicomMap.get(tempPos); + if (!dg) { + dg = []; + dicomMap.put(tempPos, dg); + } + dg.push(image); } - crcTable[n] = c; - } - return crcTable; -}; - -daikon.Utils.crc32 = function(dataView) { - var crcTable = daikon.Utils.crcTable || (daikon.Utils.crcTable = daikon.Utils.makeCRCTable()); - var crc = 0 ^ (-1); - - for (var i = 0; i < dataView.byteLength; i++ ) { - crc = (crc >>> 8) ^ crcTable[(crc ^ dataView.getUint8(i)) & 0xFF]; + } else { + timeBySliceMap = new daikon2.OrderedMap(); + for (ctr = 0; ctr < images.length; ctr += 1) { + if (images[ctr] !== null) { + imageNum = images[ctr].getImageNumber(); + sliceMarker = ctr; + if (hasImagePosition) { + sliceMarker = images[ctr].getImagePositionSliceDir(sliceDir); + } else if (hasSliceLocation) { + sliceMarker = images[ctr].getSliceLocation(); + } + slice = timeBySliceMap.get(sliceMarker); + if (slice === null) { + slice = new daikon2.OrderedMap(); + timeBySliceMap.put(sliceMarker, slice); + } + slice.put(ctr, images[ctr]); + } + } + dicomsCopy = []; + dicomsCopyIndex = 0; + sliceIt = timeBySliceMap.iterator(); + while (sliceIt.hasNext()) { + slice = sliceIt.next(); + timeIt = slice.iterator(); + while (timeIt.hasNext()) { + dicomsCopy[dicomsCopyIndex] = timeIt.next(); + dicomsCopyIndex += 1; + } + } + for (ctr = 0; ctr < dicomsCopy.length; ctr += 1) { + if (dicomsCopy[ctr] !== null) { + dgFound = null; + it = dicomMap.iterator(); + while (it.hasNext()) { + dg = it.next(); + if (!daikon2.Series.hasMatchingSlice(dg, dicomsCopy[ctr], sliceDir, hasImagePosition, hasSliceLocation)) { + dgFound = dg; + break; + } + } + if (dgFound === null) { + dgFound = []; + dicomMap.put(dicomMap.orderedKeys.length, dgFound); + } + dgFound.push(dicomsCopy[ctr]); + } + } + } + return dicomMap; + }; + daikon2.Series.prototype.getOrder = function() { + var ctr, order = []; + for (ctr = 0; ctr < this.imagesOriginalOrder.length; ctr += 1) { + order[ctr] = this.imagesOriginalOrder[ctr].index; + } + return order; + }; + daikon2.Series.prototype.toString = function() { + return this.images[0].getSeriesId(); + }; + daikon2.Series.prototype.getName = function() { + var des = this.images[0].getSeriesDescription(); + var uid = this.images[0].getSeriesInstanceUID(); + if (des !== null) { + return des; + } + if (uid !== null) { + return uid; + } + return null; + }; + daikon2.Series.prototype.addImage = function(image) { + this.images.push(image); + }; + daikon2.Series.prototype.matchesSeries = function(image) { + if (this.images.length === 0) { + return true; + } + return this.images[0].getSeriesId() === image.getSeriesId(); + }; + daikon2.Series.prototype.buildSeries = function() { + var hasFrameTime, ctr, sliceLoc, orderedImages, sliceLocationFirst, sliceLocationLast, sliceLocDiff, sliceLocations, orientation, imagePos; + this.isMosaic = this.images[0].isMosaic(); + this.isElscint = this.images[0].isElscint(); + this.isCompressed = this.images[0].isCompressed(); + this.numberOfFrames = this.images[0].getNumberOfFrames(); + this.numberOfFramesInFile = this.images[0].getNumberOfImplicitFrames(); + this.isMultiFrame = this.numberOfFrames > 1 || this.isMosaic && this.images[0].length > 1; + this.isMultiFrameVolume = false; + this.isMultiFrameTimeseries = false; + this.isImplicitTimeseries = false; + if (this.isMultiFrame) { + hasFrameTime = this.images[0].getFrameTime() > 0; + if (this.isMosaic) { + this.isMultiFrameTimeseries = true; + } else { + if (hasFrameTime) { + this.isMultiFrameTimeseries = true; + } else if (this.numberOfFramesInFile > 1) { + this.isMultiFrameTimeseries = true; + this.numberOfFrames = this.images.length; + } else { + this.isMultiFrameVolume = true; + } + } + } + if (!this.isMosaic && this.numberOfFrames <= 1) { + imagePos = this.images[0].getImagePosition() || []; + sliceLoc = imagePos.toString(); + this.numberOfFrames = 0; + for (ctr = 0; ctr < this.images.length; ctr += 1) { + imagePos = this.images[ctr].getImagePosition() || []; + if (imagePos.toString() === sliceLoc) { + this.numberOfFrames += 1; + } + } + if (this.numberOfFrames > 1) { + this.isImplicitTimeseries = true; + } + } + this.sliceDir = this.images[0].getAcquiredSliceDirection(); + if (daikon2.Series.useExplicitOrdering) { + orderedImages = this.images.slice(); + } else { + orderedImages = daikon2.Series.orderDicoms(this.images, this.numberOfFrames, this.sliceDir); + } + sliceLocationFirst = orderedImages[0].getImagePositionSliceDir(this.sliceDir); + sliceLocationLast = orderedImages[orderedImages.length - 1].getImagePositionSliceDir(this.sliceDir); + sliceLocDiff = sliceLocationLast - sliceLocationFirst; + if (daikon2.Series.useExplicitOrdering) { + this.sliceSense = false; + } else if (this.isMosaic) { + this.sliceSense = true; + } else if (this.isMultiFrame) { + sliceLocations = orderedImages[0].getSliceLocationVector(); + if (sliceLocations !== null) { + orientation = orderedImages[0].getOrientation(); + if (orientation.charAt(2) === "Z") { + this.sliceSense = sliceLocations[0] - sliceLocations[sliceLocations.length - 1] < 0; + } else { + this.sliceSense = sliceLocations[0] - sliceLocations[sliceLocations.length - 1] > 0; + } + } else { + this.sliceSense = sliceLocationFirst < 0 ? false : true; + } + } else { + if (this.sliceDir === daikon2.Image.SLICE_DIRECTION_SAGITTAL || this.sliceDir === daikon2.Image.SLICE_DIRECTION_CORONAL) { + if (sliceLocDiff > 0) { + this.sliceSense = false; + } else { + this.sliceSense = true; + } + } else { + if (sliceLocDiff > 0) { + this.sliceSense = true; + } else { + this.sliceSense = false; + } + } + } + this.imagesOriginalOrder = this.images; + this.images = orderedImages; + }; + daikon2.Series.prototype.concatenateImageData = function(progressMeter, onFinishedImageRead) { + var buffer2, data, length; + if (this.isMosaic) { + data = this.getMosaicData(this.images[0], this.images[0].getPixelDataBytes()); + } else { + data = this.images[0].getPixelDataBytes(); + } + length = this.validatePixelDataLength(this.images[0]); + this.images[0].clearPixelData(); + buffer2 = new Uint8Array(new ArrayBuffer(length * this.images.length)); + buffer2.set(new Uint8Array(data, 0, length), 0); + setTimeout(daikon2.Utils.bind(this, function() { + this.concatenateNextImageData(buffer2, length, progressMeter, 1, onFinishedImageRead); + }), 0); + }; + daikon2.Series.prototype.concatenateNextImageData = function(buffer2, frameSize, progressMeter, index, onFinishedImageRead) { + var data, length; + if (index >= this.images.length) { + if (progressMeter) { + progressMeter.drawProgress(1, "Reading DICOM Images"); + } + onFinishedImageRead(buffer2.buffer); + } else { + if (progressMeter) { + progressMeter.drawProgress(index / this.images.length, "Reading DICOM Images"); + } + if (this.isMosaic) { + data = this.getMosaicData(this.images[index], this.images[index].getPixelDataBytes()); + } else { + data = this.images[index].getPixelDataBytes(); + } + length = this.validatePixelDataLength(this.images[index]); + this.images[index].clearPixelData(); + buffer2.set(new Uint8Array(data, 0, length), frameSize * index); + setTimeout(daikon2.Utils.bind(this, function() { + this.concatenateNextImageData( + buffer2, + frameSize, + progressMeter, + index + 1, + onFinishedImageRead + ); + }), 0); + } + }; + daikon2.Series.prototype.validatePixelDataLength = function(image) { + var length = image.getPixelDataBytes().byteLength, sliceLength = image.getCols() * image.getRows(); + if (length % sliceLength === 0) { + return length; + } + return sliceLength * image.getNumberOfFrames() * image.getNumberOfSamplesPerPixel() * (image.getBitsAllocated() / 8); + }; + daikon2.Series.prototype.getMosaicData = function(image, data) { + var mosaicWidth, mosaicHeight, mosaicRows, mosaicCols, mosaicRowHeight, mosaicColWidth, numBytes, ctrS, ctrR, ctrC, numSlices, numRows, numCols, buffer2, dataTyped, offset, ctr, index = 0; + numBytes = parseInt(this.images[0].getBitsAllocated() / 8); + numSlices = this.images[0].getMosaicCols() * this.images[0].getMosaicRows(); + numRows = parseInt(this.images[0].getRows() / this.images[0].getMosaicRows()); + numCols = parseInt(this.images[0].getCols() / this.images[0].getMosaicCols()); + mosaicWidth = this.images[0].getCols(); + mosaicHeight = this.images[0].getRows(); + mosaicRows = this.images[0].getMosaicRows(); + mosaicCols = this.images[0].getMosaicCols(); + mosaicRowHeight = parseInt(mosaicHeight / mosaicRows); + mosaicColWidth = parseInt(mosaicWidth / mosaicCols); + buffer2 = new Uint8Array(new ArrayBuffer(numSlices * numRows * numCols * numBytes)); + dataTyped = new Uint8Array(data); + for (ctrS = 0; ctrS < numSlices; ctrS += 1) { + for (ctrR = 0; ctrR < numRows; ctrR += 1) { + for (ctrC = 0; ctrC < numCols; ctrC += 1) { + offset = daikon2.Series.getMosaicOffset( + mosaicCols, + mosaicColWidth, + mosaicRowHeight, + mosaicWidth, + ctrC, + ctrR, + ctrS + ); + for (ctr = 0; ctr < numBytes; ctr += 1) { + buffer2[index] = dataTyped[offset * numBytes + ctr]; + index += 1; + } + } + } + } + return buffer2.buffer; + }; + var moduleType3 = typeof module2; + if (moduleType3 !== "undefined" && module2.exports) { + module2.exports = daikon2.Series; } + } +}); - return (crc ^ (-1)) >>> 0; -}; +// src/main.js +var daikon = daikon || {}; +daikon.CompressionUtils = daikon.CompressionUtils || (typeof require !== "undefined" ? require_compression_utils() : null); +daikon.Dictionary = daikon.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); +daikon.Image = daikon.Image || (typeof require !== "undefined" ? require_image() : null); +daikon.OrderedMapIterator = daikon.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); +daikon.OrderedMap = daikon.OrderedMap || (typeof require !== "undefined" ? require_orderedmap() : null); +daikon.Parser = daikon.Parser || (typeof require !== "undefined" ? require_parser3() : null); +daikon.RLE = daikon.RLE || (typeof require !== "undefined" ? require_rle() : null); +daikon.Series = daikon.Series || (typeof require !== "undefined" ? require_series() : null); +daikon.Tag = daikon.Tag || (typeof require !== "undefined" ? require_tag() : null); +daikon.Utils = daikon.Utils || (typeof require !== "undefined" ? require_utilities() : null); +daikon.Siemens = daikon.Siemens || (typeof require !== "undefined" ? require_siemens() : null); +var jpeg = jpeg || {}; +jpeg.lossless = jpeg.lossless || {}; +jpeg.lossless.Decoder = typeof require !== "undefined" ? require_main() : null; +var JpegDecoder = JpegDecoder || (typeof require !== "undefined" ? require_jpeg_baseline().JpegImage : null); +var JpxImage = JpxImage || (typeof require !== "undefined" ? require_jpx() : null); +var CharLS2 = CharLS2 || (typeof require !== "undefined" ? require_charLS_DynamicMemory_browser() : null); +var JpegLSDecoder = JpegLSDecoder || (typeof require !== "undefined" ? require_jpeg_ls() : null); +var fflate = fflate || (typeof require !== "undefined" ? require_node() : null); +var moduleType2 = typeof module; +if (moduleType2 !== "undefined" && module.exports) { + module.exports = daikon; +} +/*! image-JPEG2000 - v0.3.1 - 2015-08-26 | https://github.com/OHIF/image-JPEG2000 */ +/*! CharLS.js - v2.0.1 - 2016-06-08 | (c) 2016 Chris Hafey | https://github.com/chafey/charls */ +/*! + Copyright (c) 2007-2010, Jan de Vaan + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -daikon.Utils.createBitMask = function (numBytes, bitsStored, unsigned) { - var mask = 0xFFFFFFFF; - mask >>>= (((4 - numBytes) * 8) + ((numBytes * 8) - bitsStored)); + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. - if (unsigned) { - if (numBytes == 1) { - mask &= 0x000000FF; - } else if (numBytes == 2) { - mask &= 0x0000FFFF; - } else if (numBytes == 4) { - mask &= 0xFFFFFFFF; - } else if (numBytes == 8) { - mask = 0xFFFFFFFF; - } - } else { - mask = 0xFFFFFFFF; - } + * Neither the name of my employer, nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. - return mask; -}; + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/*! + The MIT License (MIT) + Copyright (c) 2014 Chris Hafey (chafey@gmail.com) + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: -/*** Exports ***/ + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. -var moduleType = typeof module; -if ((moduleType !== 'undefined') && module.exports) { - module.exports = daikon.Utils; -} + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + */ +/*! Bundled license information: -},{"@wearemothership/dicom-character-set":5}]},{},[25])(25) -}); +@wearemothership/dicom-character-set/dist/dicom-character-set.min.js: + (*! @wearemothership/dicom-character-set - 1.0.4-opt.1 - 2021-03-22 | (c) 2018 Radialogica, LLC | https://github.com/radialogica/dicom-character-set *) +*/